Mercurial > libavcodec.hg
changeset 8411:b749b637ecfa libavcodec
Optimize get_dct8x8_allowed().
30 cpu cycles faster on pentium dual.
author | michael |
---|---|
date | Sat, 20 Dec 2008 23:11:30 +0000 |
parents | b0ec9768b39b |
children | 2d48043ab521 |
files | h264.c h264.h |
diffstat | 2 files changed, 5 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/h264.c Sat Dec 20 18:06:01 2008 +0000 +++ b/h264.c Sat Dec 20 23:11:30 2008 +0000 @@ -4039,13 +4039,10 @@ } static inline int get_dct8x8_allowed(H264Context *h){ - int i; - for(i=0; i<4; i++){ - if(!IS_SUB_8X8(h->sub_mb_type[i]) - || (!h->sps.direct_8x8_inference_flag && IS_DIRECT(h->sub_mb_type[i]))) - return 0; - } - return 1; + if(h->sps.direct_8x8_inference_flag) + return !(*(uint64_t*)h->sub_mb_type & ((MB_TYPE_16x8|MB_TYPE_8x16|MB_TYPE_8x8 )*0x0001000100010001ULL)); + else + return !(*(uint64_t*)h->sub_mb_type & ((MB_TYPE_16x8|MB_TYPE_8x16|MB_TYPE_8x8|MB_TYPE_DIRECT2)*0x0001000100010001ULL)); } /**