vvcdec: add vvc decoder
vvc decoder plug-in to avcodec.
split frames into slices/tiles and send them to vvc_thread for further decoding
reorder and wait for the frame decoding to be done and output the frame
Features:
+ Support I, P, B frames
+ Support 8/10/12 bits, chroma 400, 420, 422, and 444 and range extension
+ Support VVC new tools like MIP, CCLM, AFFINE, GPM, DMVR, PROF, BDOF, LMCS, ALF
+ 295 conformace clips passed
- Not support RPR, IBC, PALETTE, and other minor features yet
Performance:
C code FPS on an i7-12700K (x86):
BQTerrace_1920x1080_60_10_420_22_RA.vvc 93.0
Chimera_8bit_1080P_1000_frames.vvc 184.3
NovosobornayaSquare_1920x1080.bin 191.3
RitualDance_1920x1080_60_10_420_32_LD.266 150.7
RitualDance_1920x1080_60_10_420_37_RA.266 170.0
Tango2_3840x2160_60_10_420_27_LD.266 33.7
C code FPS on a M1 Mac Pro (ARM):
BQTerrace_1920x1080_60_10_420_22_RA.vvc 58.7
Chimera_8bit_1080P_1000_frames.vvc 153.3
NovosobornayaSquare_1920x1080.bin 150.3
RitualDance_1920x1080_60_10_420_32_LD.266 105.0
RitualDance_1920x1080_60_10_420_37_RA.266 133.0
Tango2_3840x2160_60_10_420_27_LD.266 21.7
Asm optimizations still working in progress. please check
https://github.com/ffvvc/FFmpeg/wiki#performance-data for the latest
Contributors (based on code merge order):
Nuo Mi <nuomi2021@gmail.com>
Xu Mu <toxumu@outlook.com>
Frank Plowman <post@frankplowman.com>
Shaun Loo <shaunloo10@gmail.com>
Wu Jianhua <toqsxw@outlook.com>
Thank you for reporting issues and providing performance reports:
Łukasz Czech <lukaszcz18@wp.pl>
Xu Fulong <839789740@qq.com>
Thank you for providing review comments:
Ronald S. Bultje <rsbultje@gmail.com>
James Almer <jamrial@gmail.com>
Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Co-authored-by: Xu Mu <toxumu@outlook.com>
Co-authored-by: Frank Plowman <post@frankplowman.com>
Co-authored-by: Shaun Loo <shaunloo10@gmail.com>
Co-authored-by: Wu Jianhua <toqsxw@outlook.com>
This commit is contained in:
parent
e7ef457d6b
commit
301ed950d1
6 changed files with 1023 additions and 2 deletions
|
|
@ -16,6 +16,7 @@ version <next>:
|
|||
- qrencode filter and qrencodesrc source
|
||||
- quirc filter
|
||||
- lavu/eval: introduce randomi() function in expressions
|
||||
- VVC decoder
|
||||
|
||||
version 6.1:
|
||||
- libaribcaption decoder
|
||||
|
|
|
|||
1
configure
vendored
1
configure
vendored
|
|
@ -3029,6 +3029,7 @@ vp6f_decoder_select="vp6_decoder"
|
|||
vp7_decoder_select="h264pred videodsp vp8dsp"
|
||||
vp8_decoder_select="h264pred videodsp vp8dsp"
|
||||
vp9_decoder_select="videodsp vp9_parser vp9_superframe_split_bsf"
|
||||
vvc_decoder_select="cabac golomb videodsp"
|
||||
wcmv_decoder_select="inflate_wrapper"
|
||||
webp_decoder_select="vp8_decoder exif"
|
||||
wmalossless_decoder_select="llauddsp"
|
||||
|
|
|
|||
|
|
@ -389,6 +389,7 @@ extern const FFCodec ff_vp9_rkmpp_decoder;
|
|||
extern const FFCodec ff_vp9_v4l2m2m_decoder;
|
||||
extern const FFCodec ff_vqa_decoder;
|
||||
extern const FFCodec ff_vqc_decoder;
|
||||
extern const FFCodec ff_vvc_decoder;
|
||||
extern const FFCodec ff_wbmp_decoder;
|
||||
extern const FFCodec ff_wbmp_encoder;
|
||||
extern const FFCodec ff_webp_decoder;
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
#include "version_major.h"
|
||||
|
||||
#define LIBAVCODEC_VERSION_MINOR 36
|
||||
#define LIBAVCODEC_VERSION_MINOR 37
|
||||
#define LIBAVCODEC_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
clean::
|
||||
$(RM) $(CLEANSUFFIXES:%=libavcodec/vvc/%)
|
||||
|
||||
OBJS-$(CONFIG_VVC_DECODER) += vvc/vvcdsp.o \
|
||||
OBJS-$(CONFIG_VVC_DECODER) += vvc/vvcdec.o \
|
||||
vvc/vvcdsp.o \
|
||||
vvc/vvc_cabac.o \
|
||||
vvc/vvc_ctu.o \
|
||||
vvc/vvc_data.o \
|
||||
|
|
|
|||
1017
libavcodec/vvc/vvcdec.c
Normal file
1017
libavcodec/vvc/vvcdec.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue