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 }