On 23 June 2016 at 18:06, Rostislav Pehlivanov <rpehliva...@ob-encoder.com> wrote:
> This set of commits significantly improves the stability and performance > of the decoder, both with other profiles and the VC-2 HQ profile. > > Suggestions on how to improve the performance of the VLC parser are highly > apperciated since it's the biggest bottleneck so far. Another bottleneck > is the lack of SIMD for iDWT for over 8 bit depths. > > All of the changes were ported over from this branch which specialized the > Dirac decoder for the HQ profile: > https://github.com/atomnuker/ffmpeg_dirac_trimmed > > The only feature missing from the current FFmpeg decoder is the lack of > support > for field coded interlaced content. This was the reason why that decoder > exists, > it was too messy and interfered with the reference frames code. > Suggestions or > patches on how to bring that to the current decoder would be nice. > Other than that, that decoder is still more stable as it's far simpler to > fuzz. > > Rostislav Pehlivanov (10): > diracdsp: add SIMD for the 10 bit version of put_signed_rect_clamped > diracdsp: add dequantization SIMD > diracdec: simplify golomb parsing and dequantization > diracdec: decode HQ profile slices in rows > diractab: expose the maximum quantization index as a macro > diracdec: rewrite HQ slice decoding > diracdec: implement a LUT-based Golomb code parser > diracdec: do not allocate and free slice parameters every frame > diracdec: run the final decoding stage/idwt for every plane in > parallel > diracdec: do not memset the entire coefficient buffer for HQ pictures > > libavcodec/Makefile | 3 +- > libavcodec/dirac_vlc.c | 242 ++++++++++++++++++++++++++ > libavcodec/dirac_vlc.h | 51 ++++++ > libavcodec/diracdec.c | 387 > +++++++++++++++++++++++++---------------- > libavcodec/diracdsp.c | 24 +++ > libavcodec/diracdsp.h | 4 + > libavcodec/diractab.h | 2 + > libavcodec/vc2enc.c | 9 +- > libavcodec/x86/diracdsp.asm | 88 ++++++++++ > libavcodec/x86/diracdsp_init.c | 8 + > 10 files changed, 659 insertions(+), 159 deletions(-) > create mode 100644 libavcodec/dirac_vlc.c > create mode 100644 libavcodec/dirac_vlc.h > > -- > 2.8.1.369.geae769a > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > Pushed all except the parallel idwt. Thanks. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel