[FFmpeg-devel] [PATCH 00/10] Dirac decoder improvements for the HQ profile
Rostislav Pehlivanov
rpehlivanov at ob-encoder.com
Thu Jun 23 19:06:54 CEST 2016
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
More information about the ffmpeg-devel
mailing list