# HG changeset patch # User michael # Date 1267175620 0 # Node ID 1f512abdf680c1124dc270296b9b3bb1478801b7 # Parent 14535f3deafbfcdce154146636cf433467617eae Simplify code to set cbp_* this seems 1 cpu cycle slower even though we practically just remove code. Speed loss seems caused by the merge of if(left_type), iam commiting this anyway as i cant imagine this to be anything but compiler messup. diff -r 14535f3deafb -r 1f512abdf680 h264.h --- a/h264.h Fri Feb 26 08:55:43 2010 +0000 +++ b/h264.h Fri Feb 26 09:13:40 2010 +0000 @@ -947,24 +947,16 @@ // top_cbp if(top_type) { h->top_cbp = h->cbp_table[top_xy]; - } else if(IS_INTRA(mb_type)) { - h->top_cbp = 0x1CF; } else { - h->top_cbp = 0x00F; + h->top_cbp = IS_INTRA(mb_type) ? 0x1CF : 0x00F; } // left_cbp if (left_type[0]) { h->left_cbp = h->cbp_table[left_xy[0]] & 0x1f0; - } else if(IS_INTRA(mb_type)) { - h->left_cbp = 0x1CF; + h->left_cbp |= ((h->cbp_table[left_xy[0]]>>((left_block[0]&(~1))+1))&0x1) << 1; + h->left_cbp |= ((h->cbp_table[left_xy[1]]>>((left_block[2]&(~1))+1))&0x1) << 3; } else { - h->left_cbp = 0x00F; - } - if (left_type[0]) { - h->left_cbp |= ((h->cbp_table[left_xy[0]]>>((left_block[0]&(~1))+1))&0x1) << 1; - } - if (left_type[1]) { - h->left_cbp |= ((h->cbp_table[left_xy[1]]>>((left_block[2]&(~1))+1))&0x1) << 3; + h->left_cbp = IS_INTRA(mb_type) ? 0x1CF : 0x00F; } } }