From: Michael Niedermayer Date: Wed, 24 Feb 2010 16:16:08 +0000 (+0000) Subject: Replace mvd>2 + mvd>32 by MIN((mvd+28)*17>>9, 2) X-Git-Tag: v0.6~1100 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=6d0155c79c5a30ecea5be1edac47c1f412a7a124;p=coroid%2Flibav_saccubus.git Replace mvd>2 + mvd>32 by MIN((mvd+28)*17>>9, 2) same speed as far as i can meassure but it might have fewer branches on some archs. Idea from x264 / jason Originally committed as revision 22027 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/libavcodec/h264_cabac.c b/libavcodec/h264_cabac.c index 576273c3a..708255c6f 100644 --- a/libavcodec/h264_cabac.c +++ b/libavcodec/h264_cabac.c @@ -915,7 +915,7 @@ static int decode_cabac_mb_mvd( H264Context *h, int list, int n, int l ) { int ctxbase = (l == 0) ? 40 : 47; int mvd; - if(!get_cabac(&h->cabac, &h->cabac_state[ctxbase+(amvd>2) + (amvd>32)])) + if(!get_cabac(&h->cabac, &h->cabac_state[ctxbase+FFMIN(((amvd+28)*17)>>9,2)])) return 0; mvd= 1;