Mercurial > libavcodec.hg
comparison h264.c @ 4001:34fdffe98bd0 libavcodec
Rename ABS macro to FFABS.
author | diego |
---|---|
date | Wed, 11 Oct 2006 23:17:58 +0000 |
parents | eeab02251056 |
children | 33d3d4ab9f59 |
comparison
equal
deleted
inserted
replaced
4000:eeab02251056 | 4001:34fdffe98bd0 |
---|---|
1341 int td = clip(poc1 - poc0, -128, 127); | 1341 int td = clip(poc1 - poc0, -128, 127); |
1342 if(td == 0 /* FIXME || pic0 is a long-term ref */){ | 1342 if(td == 0 /* FIXME || pic0 is a long-term ref */){ |
1343 h->dist_scale_factor[i] = 256; | 1343 h->dist_scale_factor[i] = 256; |
1344 }else{ | 1344 }else{ |
1345 int tb = clip(poc - poc0, -128, 127); | 1345 int tb = clip(poc - poc0, -128, 127); |
1346 int tx = (16384 + (ABS(td) >> 1)) / td; | 1346 int tx = (16384 + (FFABS(td) >> 1)) / td; |
1347 h->dist_scale_factor[i] = clip((tb*tx + 32) >> 6, -1024, 1023); | 1347 h->dist_scale_factor[i] = clip((tb*tx + 32) >> 6, -1024, 1023); |
1348 } | 1348 } |
1349 } | 1349 } |
1350 if(FRAME_MBAFF){ | 1350 if(FRAME_MBAFF){ |
1351 for(i=0; i<h->ref_count[0]; i++){ | 1351 for(i=0; i<h->ref_count[0]; i++){ |
1472 | 1472 |
1473 if(IS_16X16(*mb_type)){ | 1473 if(IS_16X16(*mb_type)){ |
1474 fill_rectangle(&h->ref_cache[0][scan8[0]], 4, 4, 8, (uint8_t)ref[0], 1); | 1474 fill_rectangle(&h->ref_cache[0][scan8[0]], 4, 4, 8, (uint8_t)ref[0], 1); |
1475 fill_rectangle(&h->ref_cache[1][scan8[0]], 4, 4, 8, (uint8_t)ref[1], 1); | 1475 fill_rectangle(&h->ref_cache[1][scan8[0]], 4, 4, 8, (uint8_t)ref[1], 1); |
1476 if(!IS_INTRA(mb_type_col) | 1476 if(!IS_INTRA(mb_type_col) |
1477 && ( (l1ref0[0] == 0 && ABS(l1mv0[0][0]) <= 1 && ABS(l1mv0[0][1]) <= 1) | 1477 && ( (l1ref0[0] == 0 && FFABS(l1mv0[0][0]) <= 1 && FFABS(l1mv0[0][1]) <= 1) |
1478 || (l1ref0[0] < 0 && l1ref1[0] == 0 && ABS(l1mv1[0][0]) <= 1 && ABS(l1mv1[0][1]) <= 1 | 1478 || (l1ref0[0] < 0 && l1ref1[0] == 0 && FFABS(l1mv1[0][0]) <= 1 && FFABS(l1mv1[0][1]) <= 1 |
1479 && (h->x264_build>33 || !h->x264_build)))){ | 1479 && (h->x264_build>33 || !h->x264_build)))){ |
1480 if(ref[0] > 0) | 1480 if(ref[0] > 0) |
1481 fill_rectangle(&h->mv_cache[0][scan8[0]], 4, 4, 8, pack16to32(mv[0][0],mv[0][1]), 4); | 1481 fill_rectangle(&h->mv_cache[0][scan8[0]], 4, 4, 8, pack16to32(mv[0][0],mv[0][1]), 4); |
1482 else | 1482 else |
1483 fill_rectangle(&h->mv_cache[0][scan8[0]], 4, 4, 8, 0, 4); | 1483 fill_rectangle(&h->mv_cache[0][scan8[0]], 4, 4, 8, 0, 4); |
1508 || (l1ref0[x8 + y8*h->b8_stride] < 0 && l1ref1[x8 + y8*h->b8_stride] == 0 | 1508 || (l1ref0[x8 + y8*h->b8_stride] < 0 && l1ref1[x8 + y8*h->b8_stride] == 0 |
1509 && (h->x264_build>33 || !h->x264_build)))){ | 1509 && (h->x264_build>33 || !h->x264_build)))){ |
1510 const int16_t (*l1mv)[2]= l1ref0[x8 + y8*h->b8_stride] == 0 ? l1mv0 : l1mv1; | 1510 const int16_t (*l1mv)[2]= l1ref0[x8 + y8*h->b8_stride] == 0 ? l1mv0 : l1mv1; |
1511 if(IS_SUB_8X8(sub_mb_type)){ | 1511 if(IS_SUB_8X8(sub_mb_type)){ |
1512 const int16_t *mv_col = l1mv[x8*3 + y8*3*h->b_stride]; | 1512 const int16_t *mv_col = l1mv[x8*3 + y8*3*h->b_stride]; |
1513 if(ABS(mv_col[0]) <= 1 && ABS(mv_col[1]) <= 1){ | 1513 if(FFABS(mv_col[0]) <= 1 && FFABS(mv_col[1]) <= 1){ |
1514 if(ref[0] == 0) | 1514 if(ref[0] == 0) |
1515 fill_rectangle(&h->mv_cache[0][scan8[i8*4]], 2, 2, 8, 0, 4); | 1515 fill_rectangle(&h->mv_cache[0][scan8[i8*4]], 2, 2, 8, 0, 4); |
1516 if(ref[1] == 0) | 1516 if(ref[1] == 0) |
1517 fill_rectangle(&h->mv_cache[1][scan8[i8*4]], 2, 2, 8, 0, 4); | 1517 fill_rectangle(&h->mv_cache[1][scan8[i8*4]], 2, 2, 8, 0, 4); |
1518 } | 1518 } |
1519 }else | 1519 }else |
1520 for(i4=0; i4<4; i4++){ | 1520 for(i4=0; i4<4; i4++){ |
1521 const int16_t *mv_col = l1mv[x8*2 + (i4&1) + (y8*2 + (i4>>1))*h->b_stride]; | 1521 const int16_t *mv_col = l1mv[x8*2 + (i4&1) + (y8*2 + (i4>>1))*h->b_stride]; |
1522 if(ABS(mv_col[0]) <= 1 && ABS(mv_col[1]) <= 1){ | 1522 if(FFABS(mv_col[0]) <= 1 && FFABS(mv_col[1]) <= 1){ |
1523 if(ref[0] == 0) | 1523 if(ref[0] == 0) |
1524 *(uint32_t*)h->mv_cache[0][scan8[i8*4+i4]] = 0; | 1524 *(uint32_t*)h->mv_cache[0][scan8[i8*4+i4]] = 0; |
1525 if(ref[1] == 0) | 1525 if(ref[1] == 0) |
1526 *(uint32_t*)h->mv_cache[1][scan8[i8*4+i4]] = 0; | 1526 *(uint32_t*)h->mv_cache[1][scan8[i8*4+i4]] = 0; |
1527 } | 1527 } |
4211 for(ref1=0; ref1 < h->ref_count[1]; ref1++){ | 4211 for(ref1=0; ref1 < h->ref_count[1]; ref1++){ |
4212 int poc1 = h->ref_list[1][ref1].poc; | 4212 int poc1 = h->ref_list[1][ref1].poc; |
4213 int td = clip(poc1 - poc0, -128, 127); | 4213 int td = clip(poc1 - poc0, -128, 127); |
4214 if(td){ | 4214 if(td){ |
4215 int tb = clip(cur_poc - poc0, -128, 127); | 4215 int tb = clip(cur_poc - poc0, -128, 127); |
4216 int tx = (16384 + (ABS(td) >> 1)) / td; | 4216 int tx = (16384 + (FFABS(td) >> 1)) / td; |
4217 int dist_scale_factor = clip((tb*tx + 32) >> 6, -1024, 1023) >> 2; | 4217 int dist_scale_factor = clip((tb*tx + 32) >> 6, -1024, 1023) >> 2; |
4218 if(dist_scale_factor < -64 || dist_scale_factor > 128) | 4218 if(dist_scale_factor < -64 || dist_scale_factor > 128) |
4219 h->implicit_weight[ref0][ref1] = 32; | 4219 h->implicit_weight[ref0][ref1] = 32; |
4220 else | 4220 else |
4221 h->implicit_weight[ref0][ref1] = 64 - dist_scale_factor; | 4221 h->implicit_weight[ref0][ref1] = 64 - dist_scale_factor; |
6731 | 6731 |
6732 const int q0 = pix[0]; | 6732 const int q0 = pix[0]; |
6733 const int q1 = pix[1]; | 6733 const int q1 = pix[1]; |
6734 const int q2 = pix[2]; | 6734 const int q2 = pix[2]; |
6735 | 6735 |
6736 if( ABS( p0 - q0 ) < alpha && | 6736 if( FFABS( p0 - q0 ) < alpha && |
6737 ABS( p1 - p0 ) < beta && | 6737 FFABS( p1 - p0 ) < beta && |
6738 ABS( q1 - q0 ) < beta ) { | 6738 FFABS( q1 - q0 ) < beta ) { |
6739 | 6739 |
6740 if(ABS( p0 - q0 ) < (( alpha >> 2 ) + 2 )){ | 6740 if(FFABS( p0 - q0 ) < (( alpha >> 2 ) + 2 )){ |
6741 if( ABS( p2 - p0 ) < beta) | 6741 if( FFABS( p2 - p0 ) < beta) |
6742 { | 6742 { |
6743 const int p3 = pix[-4]; | 6743 const int p3 = pix[-4]; |
6744 /* p0', p1', p2' */ | 6744 /* p0', p1', p2' */ |
6745 pix[-1] = ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3; | 6745 pix[-1] = ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3; |
6746 pix[-2] = ( p2 + p1 + p0 + q0 + 2 ) >> 2; | 6746 pix[-2] = ( p2 + p1 + p0 + q0 + 2 ) >> 2; |
6747 pix[-3] = ( 2*p3 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3; | 6747 pix[-3] = ( 2*p3 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3; |
6748 } else { | 6748 } else { |
6749 /* p0' */ | 6749 /* p0' */ |
6750 pix[-1] = ( 2*p1 + p0 + q1 + 2 ) >> 2; | 6750 pix[-1] = ( 2*p1 + p0 + q1 + 2 ) >> 2; |
6751 } | 6751 } |
6752 if( ABS( q2 - q0 ) < beta) | 6752 if( FFABS( q2 - q0 ) < beta) |
6753 { | 6753 { |
6754 const int q3 = pix[3]; | 6754 const int q3 = pix[3]; |
6755 /* q0', q1', q2' */ | 6755 /* q0', q1', q2' */ |
6756 pix[0] = ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3; | 6756 pix[0] = ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3; |
6757 pix[1] = ( p0 + q0 + q1 + q2 + 2 ) >> 2; | 6757 pix[1] = ( p0 + q0 + q1 + q2 + 2 ) >> 2; |
6817 const int p2 = pix[-3]; | 6817 const int p2 = pix[-3]; |
6818 const int q0 = pix[0]; | 6818 const int q0 = pix[0]; |
6819 const int q1 = pix[1]; | 6819 const int q1 = pix[1]; |
6820 const int q2 = pix[2]; | 6820 const int q2 = pix[2]; |
6821 | 6821 |
6822 if( ABS( p0 - q0 ) < alpha && | 6822 if( FFABS( p0 - q0 ) < alpha && |
6823 ABS( p1 - p0 ) < beta && | 6823 FFABS( p1 - p0 ) < beta && |
6824 ABS( q1 - q0 ) < beta ) { | 6824 FFABS( q1 - q0 ) < beta ) { |
6825 int tc = tc0; | 6825 int tc = tc0; |
6826 int i_delta; | 6826 int i_delta; |
6827 | 6827 |
6828 if( ABS( p2 - p0 ) < beta ) { | 6828 if( FFABS( p2 - p0 ) < beta ) { |
6829 pix[-2] = p1 + clip( ( p2 + ( ( p0 + q0 + 1 ) >> 1 ) - ( p1 << 1 ) ) >> 1, -tc0, tc0 ); | 6829 pix[-2] = p1 + clip( ( p2 + ( ( p0 + q0 + 1 ) >> 1 ) - ( p1 << 1 ) ) >> 1, -tc0, tc0 ); |
6830 tc++; | 6830 tc++; |
6831 } | 6831 } |
6832 if( ABS( q2 - q0 ) < beta ) { | 6832 if( FFABS( q2 - q0 ) < beta ) { |
6833 pix[1] = q1 + clip( ( q2 + ( ( p0 + q0 + 1 ) >> 1 ) - ( q1 << 1 ) ) >> 1, -tc0, tc0 ); | 6833 pix[1] = q1 + clip( ( q2 + ( ( p0 + q0 + 1 ) >> 1 ) - ( q1 << 1 ) ) >> 1, -tc0, tc0 ); |
6834 tc++; | 6834 tc++; |
6835 } | 6835 } |
6836 | 6836 |
6837 i_delta = clip( (((q0 - p0 ) << 2) + (p1 - q1) + 4) >> 3, -tc, tc ); | 6837 i_delta = clip( (((q0 - p0 ) << 2) + (p1 - q1) + 4) >> 3, -tc, tc ); |
6846 | 6846 |
6847 const int q0 = pix[0]; | 6847 const int q0 = pix[0]; |
6848 const int q1 = pix[1]; | 6848 const int q1 = pix[1]; |
6849 const int q2 = pix[2]; | 6849 const int q2 = pix[2]; |
6850 | 6850 |
6851 if( ABS( p0 - q0 ) < alpha && | 6851 if( FFABS( p0 - q0 ) < alpha && |
6852 ABS( p1 - p0 ) < beta && | 6852 FFABS( p1 - p0 ) < beta && |
6853 ABS( q1 - q0 ) < beta ) { | 6853 FFABS( q1 - q0 ) < beta ) { |
6854 | 6854 |
6855 if(ABS( p0 - q0 ) < (( alpha >> 2 ) + 2 )){ | 6855 if(FFABS( p0 - q0 ) < (( alpha >> 2 ) + 2 )){ |
6856 if( ABS( p2 - p0 ) < beta) | 6856 if( FFABS( p2 - p0 ) < beta) |
6857 { | 6857 { |
6858 const int p3 = pix[-4]; | 6858 const int p3 = pix[-4]; |
6859 /* p0', p1', p2' */ | 6859 /* p0', p1', p2' */ |
6860 pix[-1] = ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3; | 6860 pix[-1] = ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3; |
6861 pix[-2] = ( p2 + p1 + p0 + q0 + 2 ) >> 2; | 6861 pix[-2] = ( p2 + p1 + p0 + q0 + 2 ) >> 2; |
6862 pix[-3] = ( 2*p3 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3; | 6862 pix[-3] = ( 2*p3 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3; |
6863 } else { | 6863 } else { |
6864 /* p0' */ | 6864 /* p0' */ |
6865 pix[-1] = ( 2*p1 + p0 + q1 + 2 ) >> 2; | 6865 pix[-1] = ( 2*p1 + p0 + q1 + 2 ) >> 2; |
6866 } | 6866 } |
6867 if( ABS( q2 - q0 ) < beta) | 6867 if( FFABS( q2 - q0 ) < beta) |
6868 { | 6868 { |
6869 const int q3 = pix[3]; | 6869 const int q3 = pix[3]; |
6870 /* q0', q1', q2' */ | 6870 /* q0', q1', q2' */ |
6871 pix[0] = ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3; | 6871 pix[0] = ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3; |
6872 pix[1] = ( p0 + q0 + q1 + q2 + 2 ) >> 2; | 6872 pix[1] = ( p0 + q0 + q1 + q2 + 2 ) >> 2; |
6909 const int p0 = pix[-1]; | 6909 const int p0 = pix[-1]; |
6910 const int p1 = pix[-2]; | 6910 const int p1 = pix[-2]; |
6911 const int q0 = pix[0]; | 6911 const int q0 = pix[0]; |
6912 const int q1 = pix[1]; | 6912 const int q1 = pix[1]; |
6913 | 6913 |
6914 if( ABS( p0 - q0 ) < alpha && | 6914 if( FFABS( p0 - q0 ) < alpha && |
6915 ABS( p1 - p0 ) < beta && | 6915 FFABS( p1 - p0 ) < beta && |
6916 ABS( q1 - q0 ) < beta ) { | 6916 FFABS( q1 - q0 ) < beta ) { |
6917 const int i_delta = clip( (((q0 - p0 ) << 2) + (p1 - q1) + 4) >> 3, -tc, tc ); | 6917 const int i_delta = clip( (((q0 - p0 ) << 2) + (p1 - q1) + 4) >> 3, -tc, tc ); |
6918 | 6918 |
6919 pix[-1] = clip_uint8( p0 + i_delta ); /* p0' */ | 6919 pix[-1] = clip_uint8( p0 + i_delta ); /* p0' */ |
6920 pix[0] = clip_uint8( q0 - i_delta ); /* q0' */ | 6920 pix[0] = clip_uint8( q0 - i_delta ); /* q0' */ |
6921 tprintf("filter_mb_mbaff_edgecv i:%d, qp:%d, indexA:%d, alpha:%d, beta:%d, tc:%d\n# bS:%d -> [%02x, %02x, %02x, %02x, %02x, %02x] =>[%02x, %02x, %02x, %02x]\n", i, qp[qp_index], index_a, alpha, beta, tc, bS[bS_index], pix[-3], p1, p0, q0, q1, pix[2], p1, pix[-1], pix[0], q1); | 6921 tprintf("filter_mb_mbaff_edgecv i:%d, qp:%d, indexA:%d, alpha:%d, beta:%d, tc:%d\n# bS:%d -> [%02x, %02x, %02x, %02x, %02x, %02x] =>[%02x, %02x, %02x, %02x]\n", i, qp[qp_index], index_a, alpha, beta, tc, bS[bS_index], pix[-3], p1, p0, q0, q1, pix[2], p1, pix[-1], pix[0], q1); |
6924 const int p0 = pix[-1]; | 6924 const int p0 = pix[-1]; |
6925 const int p1 = pix[-2]; | 6925 const int p1 = pix[-2]; |
6926 const int q0 = pix[0]; | 6926 const int q0 = pix[0]; |
6927 const int q1 = pix[1]; | 6927 const int q1 = pix[1]; |
6928 | 6928 |
6929 if( ABS( p0 - q0 ) < alpha && | 6929 if( FFABS( p0 - q0 ) < alpha && |
6930 ABS( p1 - p0 ) < beta && | 6930 FFABS( p1 - p0 ) < beta && |
6931 ABS( q1 - q0 ) < beta ) { | 6931 FFABS( q1 - q0 ) < beta ) { |
6932 | 6932 |
6933 pix[-1] = ( 2*p1 + p0 + q1 + 2 ) >> 2; /* p0' */ | 6933 pix[-1] = ( 2*p1 + p0 + q1 + 2 ) >> 2; /* p0' */ |
6934 pix[0] = ( 2*q1 + q0 + p1 + 2 ) >> 2; /* q0' */ | 6934 pix[0] = ( 2*q1 + q0 + p1 + 2 ) >> 2; /* q0' */ |
6935 tprintf("filter_mb_mbaff_edgecv i:%d\n# bS:4 -> [%02x, %02x, %02x, %02x, %02x, %02x] =>[%02x, %02x, %02x, %02x, %02x, %02x]\n", i, pix[-3], p1, p0, q0, q1, pix[2], pix[-3], pix[-2], pix[-1], pix[0], pix[1], pix[2]); | 6935 tprintf("filter_mb_mbaff_edgecv i:%d\n# bS:4 -> [%02x, %02x, %02x, %02x, %02x, %02x] =>[%02x, %02x, %02x, %02x, %02x, %02x]\n", i, pix[-3], p1, p0, q0, q1, pix[2], pix[-3], pix[-2], pix[-1], pix[0], pix[1], pix[2]); |
6936 } | 6936 } |
6958 const int p2 = pix[-3*pix_next]; | 6958 const int p2 = pix[-3*pix_next]; |
6959 const int q0 = pix[0]; | 6959 const int q0 = pix[0]; |
6960 const int q1 = pix[1*pix_next]; | 6960 const int q1 = pix[1*pix_next]; |
6961 const int q2 = pix[2*pix_next]; | 6961 const int q2 = pix[2*pix_next]; |
6962 | 6962 |
6963 if( ABS( p0 - q0 ) < alpha && | 6963 if( FFABS( p0 - q0 ) < alpha && |
6964 ABS( p1 - p0 ) < beta && | 6964 FFABS( p1 - p0 ) < beta && |
6965 ABS( q1 - q0 ) < beta ) { | 6965 FFABS( q1 - q0 ) < beta ) { |
6966 | 6966 |
6967 const int p3 = pix[-4*pix_next]; | 6967 const int p3 = pix[-4*pix_next]; |
6968 const int q3 = pix[ 3*pix_next]; | 6968 const int q3 = pix[ 3*pix_next]; |
6969 | 6969 |
6970 if(ABS( p0 - q0 ) < (( alpha >> 2 ) + 2 )){ | 6970 if(FFABS( p0 - q0 ) < (( alpha >> 2 ) + 2 )){ |
6971 if( ABS( p2 - p0 ) < beta) { | 6971 if( FFABS( p2 - p0 ) < beta) { |
6972 /* p0', p1', p2' */ | 6972 /* p0', p1', p2' */ |
6973 pix[-1*pix_next] = ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3; | 6973 pix[-1*pix_next] = ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3; |
6974 pix[-2*pix_next] = ( p2 + p1 + p0 + q0 + 2 ) >> 2; | 6974 pix[-2*pix_next] = ( p2 + p1 + p0 + q0 + 2 ) >> 2; |
6975 pix[-3*pix_next] = ( 2*p3 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3; | 6975 pix[-3*pix_next] = ( 2*p3 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3; |
6976 } else { | 6976 } else { |
6977 /* p0' */ | 6977 /* p0' */ |
6978 pix[-1*pix_next] = ( 2*p1 + p0 + q1 + 2 ) >> 2; | 6978 pix[-1*pix_next] = ( 2*p1 + p0 + q1 + 2 ) >> 2; |
6979 } | 6979 } |
6980 if( ABS( q2 - q0 ) < beta) { | 6980 if( FFABS( q2 - q0 ) < beta) { |
6981 /* q0', q1', q2' */ | 6981 /* q0', q1', q2' */ |
6982 pix[0*pix_next] = ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3; | 6982 pix[0*pix_next] = ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3; |
6983 pix[1*pix_next] = ( p0 + q0 + q1 + q2 + 2 ) >> 2; | 6983 pix[1*pix_next] = ( p0 + q0 + q1 + q2 + 2 ) >> 2; |
6984 pix[2*pix_next] = ( 2*q3 + 3*q2 + q1 + q0 + p0 + 4 ) >> 3; | 6984 pix[2*pix_next] = ( 2*q3 + 3*q2 + q1 + q0 + p0 + 4 ) >> 3; |
6985 } else { | 6985 } else { |
7311 int b_idx= 8 + 4 + edge * (dir ? 8:1); | 7311 int b_idx= 8 + 4 + edge * (dir ? 8:1); |
7312 int bn_idx= b_idx - (dir ? 8:1); | 7312 int bn_idx= b_idx - (dir ? 8:1); |
7313 int v = 0; | 7313 int v = 0; |
7314 for( l = 0; !v && l < 1 + (h->slice_type == B_TYPE); l++ ) { | 7314 for( l = 0; !v && l < 1 + (h->slice_type == B_TYPE); l++ ) { |
7315 v |= ref2frm[h->ref_cache[l][b_idx]+2] != ref2frm[h->ref_cache[l][bn_idx]+2] || | 7315 v |= ref2frm[h->ref_cache[l][b_idx]+2] != ref2frm[h->ref_cache[l][bn_idx]+2] || |
7316 ABS( h->mv_cache[l][b_idx][0] - h->mv_cache[l][bn_idx][0] ) >= 4 || | 7316 FFABS( h->mv_cache[l][b_idx][0] - h->mv_cache[l][bn_idx][0] ) >= 4 || |
7317 ABS( h->mv_cache[l][b_idx][1] - h->mv_cache[l][bn_idx][1] ) >= mvy_limit; | 7317 FFABS( h->mv_cache[l][b_idx][1] - h->mv_cache[l][bn_idx][1] ) >= mvy_limit; |
7318 } | 7318 } |
7319 bS[0] = bS[1] = bS[2] = bS[3] = v; | 7319 bS[0] = bS[1] = bS[2] = bS[3] = v; |
7320 mv_done = 1; | 7320 mv_done = 1; |
7321 } | 7321 } |
7322 else | 7322 else |
7335 else if(!mv_done) | 7335 else if(!mv_done) |
7336 { | 7336 { |
7337 bS[i] = 0; | 7337 bS[i] = 0; |
7338 for( l = 0; l < 1 + (h->slice_type == B_TYPE); l++ ) { | 7338 for( l = 0; l < 1 + (h->slice_type == B_TYPE); l++ ) { |
7339 if( ref2frm[h->ref_cache[l][b_idx]+2] != ref2frm[h->ref_cache[l][bn_idx]+2] || | 7339 if( ref2frm[h->ref_cache[l][b_idx]+2] != ref2frm[h->ref_cache[l][bn_idx]+2] || |
7340 ABS( h->mv_cache[l][b_idx][0] - h->mv_cache[l][bn_idx][0] ) >= 4 || | 7340 FFABS( h->mv_cache[l][b_idx][0] - h->mv_cache[l][bn_idx][0] ) >= 4 || |
7341 ABS( h->mv_cache[l][b_idx][1] - h->mv_cache[l][bn_idx][1] ) >= mvy_limit ) { | 7341 FFABS( h->mv_cache[l][b_idx][1] - h->mv_cache[l][bn_idx][1] ) >= mvy_limit ) { |
7342 bS[i] = 1; | 7342 bS[i] = 1; |
7343 break; | 7343 break; |
7344 } | 7344 } |
7345 } | 7345 } |
7346 } | 7346 } |
8503 printf("%d ", ref[j]); | 8503 printf("%d ", ref[j]); |
8504 } | 8504 } |
8505 printf("\n");*/ | 8505 printf("\n");*/ |
8506 | 8506 |
8507 for(j=0; j<16; j++){ | 8507 for(j=0; j<16; j++){ |
8508 int diff= ABS(src[j] - ref[j]); | 8508 int diff= FFABS(src[j] - ref[j]); |
8509 | 8509 |
8510 error+= diff*diff; | 8510 error+= diff*diff; |
8511 max_error= FFMAX(max_error, diff); | 8511 max_error= FFMAX(max_error, diff); |
8512 } | 8512 } |
8513 } | 8513 } |