Mercurial > libavcodec.hg
comparison h264_loopfilter.c @ 10901:2a5c3d89201d libavcodec
Another microopt, 4 cpu cycles for avoidance of FFABS().
| author | michael |
|---|---|
| date | Sat, 16 Jan 2010 16:14:32 +0000 |
| parents | 28ac79270704 |
| children | 1e41e6ab9a18 |
comparison
equal
deleted
inserted
replaced
| 10900:a69d6f292f95 | 10901:2a5c3d89201d |
|---|---|
| 553 int bn_idx= b_idx - (dir ? 8:1); | 553 int bn_idx= b_idx - (dir ? 8:1); |
| 554 int v = 0; | 554 int v = 0; |
| 555 | 555 |
| 556 for( l = 0; !v && l < 1 + (h->slice_type_nos == FF_B_TYPE); l++ ) { | 556 for( l = 0; !v && l < 1 + (h->slice_type_nos == FF_B_TYPE); l++ ) { |
| 557 v |= ref2frm[l][h->ref_cache[l][b_idx]] != ref2frmn[l][h->ref_cache[l][bn_idx]] | | 557 v |= ref2frm[l][h->ref_cache[l][b_idx]] != ref2frmn[l][h->ref_cache[l][bn_idx]] | |
| 558 FFABS( h->mv_cache[l][b_idx][0] - h->mv_cache[l][bn_idx][0] ) >= 4 | | 558 h->mv_cache[l][b_idx][0] - h->mv_cache[l][bn_idx][0] + 3 >= 7U | |
| 559 FFABS( h->mv_cache[l][b_idx][1] - h->mv_cache[l][bn_idx][1] ) >= mvy_limit; | 559 FFABS( h->mv_cache[l][b_idx][1] - h->mv_cache[l][bn_idx][1] ) >= mvy_limit; |
| 560 } | 560 } |
| 561 | 561 |
| 562 if(h->slice_type_nos == FF_B_TYPE && v){ | 562 if(h->slice_type_nos == FF_B_TYPE && v){ |
| 563 v=0; | 563 v=0; |
| 564 for( l = 0; !v && l < 2; l++ ) { | 564 for( l = 0; !v && l < 2; l++ ) { |
| 565 int ln= 1-l; | 565 int ln= 1-l; |
| 566 v |= ref2frm[l][h->ref_cache[l][b_idx]] != ref2frmn[ln][h->ref_cache[ln][bn_idx]] | | 566 v |= ref2frm[l][h->ref_cache[l][b_idx]] != ref2frmn[ln][h->ref_cache[ln][bn_idx]] | |
| 567 FFABS( h->mv_cache[l][b_idx][0] - h->mv_cache[ln][bn_idx][0] ) >= 4 | | 567 h->mv_cache[l][b_idx][0] - h->mv_cache[ln][bn_idx][0] + 3 >= 7U | |
| 568 FFABS( h->mv_cache[l][b_idx][1] - h->mv_cache[ln][bn_idx][1] ) >= mvy_limit; | 568 FFABS( h->mv_cache[l][b_idx][1] - h->mv_cache[ln][bn_idx][1] ) >= mvy_limit; |
| 569 } | 569 } |
| 570 } | 570 } |
| 571 | 571 |
| 572 bS[0] = bS[1] = bS[2] = bS[3] = v; | 572 bS[0] = bS[1] = bS[2] = bS[3] = v; |
