comparison cavs.c @ 3409:584ff6431043 libavcodec

simplify intra prediction mode decoding
author michael
date Tue, 04 Jul 2006 17:06:43 +0000
parents 73c648ae1c74
children 3b72265410f3
comparison
equal deleted inserted replaced
3408:73c648ae1c74 3409:584ff6431043
883 int nA,nB,predpred; 883 int nA,nB,predpred;
884 int pos = scan3x3[block]; 884 int pos = scan3x3[block];
885 885
886 nA = h->pred_mode_Y[pos-1]; 886 nA = h->pred_mode_Y[pos-1];
887 nB = h->pred_mode_Y[pos-3]; 887 nB = h->pred_mode_Y[pos-3];
888 if((nA == NOT_AVAIL) || (nB == NOT_AVAIL)) 888 predpred = FFMIN(nA,nB);
889 predpred = 2; 889 if(predpred == NOT_AVAIL) // if either is not available
890 else 890 predpred = INTRA_L_LP;
891 predpred = FFMIN(nA,nB); 891 if(!get_bits1(gb)){
892 if(get_bits1(gb)) 892 int rem_mode= get_bits(gb, 2);
893 h->pred_mode_Y[pos] = predpred; 893 predpred = rem_mode + (rem_mode >= predpred);
894 else { 894 }
895 h->pred_mode_Y[pos] = get_bits(gb,2); 895 h->pred_mode_Y[pos] = predpred;
896 if(h->pred_mode_Y[pos] >= predpred)
897 h->pred_mode_Y[pos]++;
898 }
899 } 896 }
900 pred_mode_uv = get_ue_golomb(gb); 897 pred_mode_uv = get_ue_golomb(gb);
901 if(pred_mode_uv > 6) { 898 if(pred_mode_uv > 6) {
902 av_log(h->s.avctx, AV_LOG_ERROR, "illegal intra chroma pred mode\n"); 899 av_log(h->s.avctx, AV_LOG_ERROR, "illegal intra chroma pred mode\n");
903 pred_mode_uv = 0; 900 pred_mode_uv = 0;