[FFmpeg-devel] [PATCH 00/10] Dirac decoder improvements for the HQ profile
Rostislav Pehlivanov
atomnuker at gmail.com
Tue Jul 12 01:47:32 EEST 2016
On 23 June 2016 at 18:06, Rostislav Pehlivanov <rpehlivanov at 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 at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
Pushed all except the parallel idwt.
Thanks.
More information about the ffmpeg-devel
mailing list