From: Fiona Glaser Date: Wed, 25 Nov 2009 04:24:14 +0000 (-0800) Subject: Minor deblocking optimization, update comments X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a9885c789e5a4703cf43b6601cc347836484f853;p=libx264 Minor deblocking optimization, update comments --- diff --git a/common/frame.c b/common/frame.c index 0ae0e9a1..5ff70c9b 100644 --- a/common/frame.c +++ b/common/frame.c @@ -747,16 +747,13 @@ void x264_frame_deblock_row( x264_t *h, int mb_y ) bS[i] = bS[i-1];\ else\ {\ - /* FIXME: A given frame may occupy more than one position in\ - * the reference list. So we should compare the frame numbers,\ - * not the indices in the ref list.\ - * No harm yet, as we don't generate that case.*/\ int i8p= mb_8x8+(x>>1)+(y>>1)*s8x8;\ int i8q= mbn_8x8+(xn>>1)+(yn>>1)*s8x8;\ int i4p= mb_4x4+x+y*s4x4;\ int i4q= mbn_4x4+xn+yn*s4x4;\ int refs_equal;\ - if( h->mb.ref[0][i8p] < 0 || h->mb.ref[0][i8q] < 0 )\ + /* We don't use duplicate refs in B-frames, so we can take this shortcut for now. */ \ + if( h->sh.i_type == SLICE_TYPE_B || h->mb.ref[0][i8p] < 0 || h->mb.ref[0][i8q] < 0 )\ refs_equal = h->mb.ref[0][i8p] == h->mb.ref[0][i8q];\ else if( !h->mb.b_interlaced )\ refs_equal = h->fref0[h->mb.ref[0][i8p]]->i_poc == h->fref0[h->mb.ref[0][i8q]]->i_poc;\