Re: [FFmpeg-devel] [PATCH 1/3] avcodec/diracdec: Inline svq3_get_ue_golomb() and merge the sign bit decoding into it

2016-01-13 Thread Rostislav Pehlivanov
On Tue, 2016-01-12 at 23:32 +0100, Michael Niedermayer wrote:
> From: Michael Niedermayer 
> 
> This avoids closing and opening the bit reader
> 
> Signed-off-by: Michael Niedermayer 
> ---
>  libavcodec/diracdec.c |   37 ++---
>  1 file changed, 34 insertions(+), 3 deletions(-)
>  

LGTM,

Thanks
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 1/3] avcodec/diracdec: Inline svq3_get_ue_golomb() and merge the sign bit decoding into it

2016-01-13 Thread Michael Niedermayer
On Wed, Jan 13, 2016 at 04:11:40PM +, Rostislav Pehlivanov wrote:
> On Tue, 2016-01-12 at 23:32 +0100, Michael Niedermayer wrote:
> > From: Michael Niedermayer 
> > 
> > This avoids closing and opening the bit reader
> > 
> > Signed-off-by: Michael Niedermayer 
> > ---
> >  libavcodec/diracdec.c |   37 ++---
> >  1 file changed, 34 insertions(+), 3 deletions(-)
> >  
> 
> LGTM,

applied

thx

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The bravest are surely those who have the clearest vision
of what is before them, glory and danger alike, and yet
notwithstanding go out to meet it. -- Thucydides


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH 1/3] avcodec/diracdec: Inline svq3_get_ue_golomb() and merge the sign bit decoding into it

2016-01-12 Thread Michael Niedermayer
From: Michael Niedermayer 

This avoids closing and opening the bit reader

Signed-off-by: Michael Niedermayer 
---
 libavcodec/diracdec.c |   37 ++---
 1 file changed, 34 insertions(+), 3 deletions(-)

diff --git a/libavcodec/diracdec.c b/libavcodec/diracdec.c
index c67f845..fe879bb 100644
--- a/libavcodec/diracdec.c
+++ b/libavcodec/diracdec.c
@@ -485,13 +485,44 @@ static av_cold int dirac_decode_end(AVCodecContext *avctx)
 static inline int coeff_unpack_golomb(GetBitContext *gb, int qfactor, int 
qoffset)
 {
 int sign, coeff;
+uint32_t buf;
 
-coeff = svq3_get_ue_golomb(gb);
+OPEN_READER(re, gb);
+UPDATE_CACHE(re, gb);
+buf = GET_CACHE(re, gb);
+
+if (buf & 0xAA80) {
+buf >>= 32 - 8;
+SKIP_BITS(re, gb, ff_interleaved_golomb_vlc_len[buf]);
+
+coeff = ff_interleaved_ue_golomb_vlc_code[buf];
+} else {
+unsigned ret = 1;
+
+do {
+buf >>= 32 - 8;
+SKIP_BITS(re, gb,
+   FFMIN(ff_interleaved_golomb_vlc_len[buf], 8));
+
+if (ff_interleaved_golomb_vlc_len[buf] != 9) {
+ret <<= (ff_interleaved_golomb_vlc_len[buf] - 1) >> 1;
+ret  |= ff_interleaved_dirac_golomb_vlc_code[buf];
+break;
+}
+ret = (ret << 4) | ff_interleaved_dirac_golomb_vlc_code[buf];
+UPDATE_CACHE(re, gb);
+buf = GET_CACHE(re, gb);
+} while (ret<0x800U && BITS_AVAILABLE(re, gb));
+
+coeff = ret - 1;
+}
 if (coeff) {
 coeff = (coeff * qfactor + qoffset + 2) >> 2;
-sign  = get_bits1(gb);
-coeff = (coeff ^ -sign) + sign;
+sign  = SHOW_SBITS(re, gb, 1);
+LAST_SKIP_BITS(re, gb, 1);
+coeff = (coeff ^ sign) - sign;
 }
+CLOSE_READER(re, gb);
 return coeff;
 }
 
-- 
1.7.9.5

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 1/3] avcodec/diracdec: Inline svq3_get_ue_golomb() and merge the sign bit decoding into it

2016-01-12 Thread Michael Niedermayer
On Tue, Jan 12, 2016 at 11:32:56PM +0100, Michael Niedermayer wrote:
> From: Michael Niedermayer 
> 
> This avoids closing and opening the bit reader
> 
> Signed-off-by: Michael Niedermayer 
> ---
>  libavcodec/diracdec.c |   37 ++---
>  1 file changed, 34 insertions(+), 3 deletions(-)

Note, theres alot more that can be done to speed this up, this patchset
is just a few steps ...

[...]
-- 
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In fact, the RIAA has been known to suggest that students drop out
of college or go to community college in order to be able to afford
settlements. -- The RIAA


signature.asc
Description: Digital signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel