summaryrefslogtreecommitdiff
path: root/libavcodec/h264.h
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2010-02-25 14:26:12 +0000
committerMichael Niedermayer <michaelni@gmx.at>2010-02-25 14:26:12 +0000
commit662a5b23707a6c56cd37ad710b1595f7d9f6539b (patch)
treee31f7e91c8901e1c2c1a0af117876d4abe6c4184 /libavcodec/h264.h
parent5b0fb5244d3fb7758521c6988abdc26879c57968 (diff)
Reorder intra4x4_pred_mode so that we can read/write 4 values at once.
3-7 cpu cycles faster Originally committed as revision 22053 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/h264.h')
-rw-r--r--libavcodec/h264.h10
1 files changed, 3 insertions, 7 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index cded523ed6..557814905e 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -886,11 +886,7 @@ static void fill_decode_caches(H264Context *h, int mb_type){
if(IS_INTRA4x4(mb_type)){
if(IS_INTRA4x4(top_type)){
- int8_t *mode= h->intra4x4_pred_mode + h->mb2br_xy[top_xy];
- h->intra4x4_pred_mode_cache[4+8*0]= mode[4];
- h->intra4x4_pred_mode_cache[5+8*0]= mode[5];
- h->intra4x4_pred_mode_cache[6+8*0]= mode[6];
- h->intra4x4_pred_mode_cache[7+8*0]= mode[3];
+ AV_COPY32(h->intra4x4_pred_mode_cache+4+8*0, h->intra4x4_pred_mode + h->mb2br_xy[top_xy]);
}else{
int pred;
if(!(top_type & type_mask))
@@ -906,8 +902,8 @@ static void fill_decode_caches(H264Context *h, int mb_type){
for(i=0; i<2; i++){
if(IS_INTRA4x4(left_type[i])){
int8_t *mode= h->intra4x4_pred_mode + h->mb2br_xy[left_xy[i]];
- h->intra4x4_pred_mode_cache[3+8*1 + 2*8*i]= mode[left_block[0+2*i]];
- h->intra4x4_pred_mode_cache[3+8*2 + 2*8*i]= mode[left_block[1+2*i]];
+ h->intra4x4_pred_mode_cache[3+8*1 + 2*8*i]= mode[6-left_block[0+2*i]];
+ h->intra4x4_pred_mode_cache[3+8*2 + 2*8*i]= mode[6-left_block[1+2*i]];
}else{
int pred;
if(!(left_type[i] & type_mask))