FFmpeg/libavcodec/vvc
Nuo Mi 301ed950d1 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>
2024-01-03 23:15:12 +08:00
..
Makefile vvcdec: add vvc decoder 2024-01-03 23:15:12 +08:00
vvc_cabac.c vvcdec: add cabac decoder 2024-01-03 23:15:06 +08:00
vvc_cabac.h vvcdec: add cabac decoder 2024-01-03 23:15:06 +08:00
vvc_ctu.c vvcdec: add CTU parser 2024-01-03 23:15:12 +08:00
vvc_ctu.h vvcdec: add CTU parser 2024-01-03 23:15:12 +08:00
vvc_data.c
vvc_data.h
vvc_filter.c vvcdec: add LMCS, Deblocking, SAO, and ALF filters 2024-01-03 23:15:12 +08:00
vvc_filter.h vvcdec: add LMCS, Deblocking, SAO, and ALF filters 2024-01-03 23:15:12 +08:00
vvc_filter_template.c vvcdec: add LMCS, Deblocking, SAO, and ALF filters 2024-01-03 23:15:12 +08:00
vvc_inter.c vvcdec: add inter prediction 2024-01-03 23:15:11 +08:00
vvc_inter.h vvcdec: add inter prediction 2024-01-03 23:15:11 +08:00
vvc_inter_template.c vvcdec: add inter prediction 2024-01-03 23:15:11 +08:00
vvc_intra.c vvcdec: add intra prediction 2024-01-03 23:15:12 +08:00
vvc_intra.h vvcdec: add intra prediction 2024-01-03 23:15:12 +08:00
vvc_intra_template.c vvcdec: add intra prediction 2024-01-03 23:15:12 +08:00
vvc_itx_1d.c vvcdec: add inv transform 1d 2024-01-03 23:15:11 +08:00
vvc_itx_1d.h vvcdec: add inv transform 1d 2024-01-03 23:15:11 +08:00
vvc_mvs.c vvcdec: add motion vector decoder 2024-01-03 23:15:11 +08:00
vvc_mvs.h vvcdec: add motion vector decoder 2024-01-03 23:15:11 +08:00
vvc_ps.c
vvc_ps.h
vvc_refs.c vvcdec: add reference management 2024-01-03 23:15:11 +08:00
vvc_refs.h vvcdec: add reference management 2024-01-03 23:15:11 +08:00
vvc_thread.c vvcdec: add CTU thread logical 2024-01-03 23:15:12 +08:00
vvc_thread.h vvcdec: add CTU thread logical 2024-01-03 23:15:12 +08:00
vvcdec.c vvcdec: add vvc decoder 2024-01-03 23:15:12 +08:00
vvcdec.h vvcdec: add inter prediction 2024-01-03 23:15:11 +08:00
vvcdsp.c vvcdec: add dsp init and inv transform 2024-01-03 23:15:12 +08:00
vvcdsp.h vvcdec: add inter prediction 2024-01-03 23:15:11 +08:00
vvcdsp_template.c vvcdec: add dsp init and inv transform 2024-01-03 23:15:12 +08:00