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