Mercurial > libavcodec.hg
changeset 11103:3bc0125e19fe libavcodec
Detect equal 4x4 blocks in spatial direct MBs.
19 cycles slower MV generation
575 cycles faster MC
author | michael |
---|---|
date | Mon, 08 Feb 2010 13:05:24 +0000 |
parents | 3b135f70c097 |
children | bb877c9cb102 |
files | h264_direct.c |
diffstat | 1 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/h264_direct.c Mon Feb 08 04:24:50 2010 +0000 +++ b/h264_direct.c Mon Feb 08 13:05:24 2010 +0000 @@ -345,7 +345,8 @@ if(ref[1] == 0) fill_rectangle(&h->mv_cache[1][scan8[i8*4]], 2, 2, 8, 0, 4); } - }else + }else{ + int m=0; for(i4=0; i4<4; i4++){ const int16_t *mv_col = l1mv[x8*2 + (i4&1) + (y8*2 + (i4>>1))*b4_stride]; if(FFABS(mv_col[0]) <= 1 && FFABS(mv_col[1]) <= 1){ @@ -353,8 +354,12 @@ *(uint32_t*)h->mv_cache[0][scan8[i8*4+i4]] = 0; if(ref[1] == 0) *(uint32_t*)h->mv_cache[1][scan8[i8*4+i4]] = 0; + m++; } } + if(!(m&3)) + h->sub_mb_type[i8]+= MB_TYPE_16x16 - MB_TYPE_8x8; + } } } }