]> git.sesse.net Git - ffmpeg/commit
diracdec: rewrite golomb reader
authorLynne <dev@lynne.ee>
Sun, 1 Mar 2020 11:23:53 +0000 (11:23 +0000)
committerLynne <dev@lynne.ee>
Thu, 12 Mar 2020 20:26:48 +0000 (20:26 +0000)
commit675bb1f4f9de76f2c0eb1c8b1be6781a2cd52d29
tree482aee9776d2e790c5b18bc11cd51cee300b1bd7
parentd778be6e4a0565e9a96adec57339e4c8a2464664
diracdec: rewrite golomb reader

This version is able to output multiple coefficients at a time and
is able to altogether remove actual golomb code parsing.
Its also able to partially recover the last coefficient in case
the packet is incomplete.

Total decoder performance gain for 8bit 420 1080p lossless: 40%.
Total decoder performance gain for 10bit 420 1080p lossless: 40%.

clang was able to vectorize the loop much better than
my handwritten assembly, but gcc was very naive and didn't.

Lookup table is a rewritten version of vc2hqdecode.
libavcodec/dirac_vlc.c
libavcodec/dirac_vlc.h
libavcodec/diracdec.c