[FFmpeg-devel] [PATCH v2 00/14] add vvc decoder

Nuo Mi nuomi2021 at gmail.com
Fri Jul 7 17:05:26 EEST 2023


Major changes since v1:
* 12 bits and range extension support added.  Thanks to GSOC contributor frankplow.
* Make parser and inter prediction blockless to improve performance on high core count CPU.

Fixed following review comment since v1:
* Rename vvc prefix for executor, thanks to Lynne and Rémi
* Remove ff_vvc_executor_wakeup and ThreadInfo.idx, thanks to Rémi

Nuo Mi (14):
  vvcdec: add thread executor
  vvcdec: add vvc decoder stub
  vvcdec: add sps, pps, sh parser
  vvcdec: add cabac decoder
  vvcdec: add reference management
  vvcdec: add motion vector decoder
  vvcdec: add inter prediction
  vvcdec: add inv transform 1d
  vvcdec: add intra prediction
  vvcdec: add LMCS, Deblocking, SAO, and ALF filters
  vvcdec: add dsp init and inv transform
  vvcdec: add CTU parser
  vvcdec: add CTU thread logical
  vvcdec: add full vvc decoder

 configure                            |    1 +
 libavcodec/Makefile                  |    1 +
 libavcodec/allcodecs.c               |    1 +
 libavcodec/executor.c                |  182 ++
 libavcodec/executor.h                |   67 +
 libavcodec/vvc/Makefile              |   17 +
 libavcodec/vvc/vvc_cabac.c           | 2483 +++++++++++++++++++
 libavcodec/vvc/vvc_cabac.h           |  126 +
 libavcodec/vvc/vvc_ctu.c             | 2457 ++++++++++++++++++
 libavcodec/vvc/vvc_ctu.h             |  421 ++++
 libavcodec/vvc/vvc_data.c            | 3295 ++++++++++++++++++++++++
 libavcodec/vvc/vvc_data.h            |   69 +
 libavcodec/vvc/vvc_filter.c          | 1330 ++++++++++
 libavcodec/vvc/vvc_filter.h          |   70 +
 libavcodec/vvc/vvc_filter_template.c | 1088 ++++++++
 libavcodec/vvc/vvc_inter.c           |  992 ++++++++
 libavcodec/vvc/vvc_inter.h           |   42 +
 libavcodec/vvc/vvc_inter_template.c  | 1473 +++++++++++
 libavcodec/vvc/vvc_intra.c           |  771 ++++++
 libavcodec/vvc/vvc_intra.h           |   49 +
 libavcodec/vvc/vvc_intra_template.c  | 1018 ++++++++
 libavcodec/vvc/vvc_itx_1d.c          |  713 ++++++
 libavcodec/vvc/vvc_itx_1d.h          |   52 +
 libavcodec/vvc/vvc_mvs.c             | 1803 ++++++++++++++
 libavcodec/vvc/vvc_mvs.h             |   46 +
 libavcodec/vvc/vvc_ps.c              | 3436 ++++++++++++++++++++++++++
 libavcodec/vvc/vvc_ps.h              |  828 +++++++
 libavcodec/vvc/vvc_refs.c            |  502 ++++
 libavcodec/vvc/vvc_refs.h            |   51 +
 libavcodec/vvc/vvc_thread.c          |  804 ++++++
 libavcodec/vvc/vvc_thread.h          |   73 +
 libavcodec/vvc/vvcdec.c              | 1204 +++++++++
 libavcodec/vvc/vvcdec.h              |  314 +++
 libavcodec/vvc/vvcdsp.c              |  323 +++
 libavcodec/vvc/vvcdsp.h              |  182 ++
 libavcodec/vvc/vvcdsp_template.c     |  119 +
 36 files changed, 26403 insertions(+)
 create mode 100644 libavcodec/executor.c
 create mode 100644 libavcodec/executor.h
 create mode 100644 libavcodec/vvc/Makefile
 create mode 100644 libavcodec/vvc/vvc_cabac.c
 create mode 100644 libavcodec/vvc/vvc_cabac.h
 create mode 100644 libavcodec/vvc/vvc_ctu.c
 create mode 100644 libavcodec/vvc/vvc_ctu.h
 create mode 100644 libavcodec/vvc/vvc_data.c
 create mode 100644 libavcodec/vvc/vvc_data.h
 create mode 100644 libavcodec/vvc/vvc_filter.c
 create mode 100644 libavcodec/vvc/vvc_filter.h
 create mode 100644 libavcodec/vvc/vvc_filter_template.c
 create mode 100644 libavcodec/vvc/vvc_inter.c
 create mode 100644 libavcodec/vvc/vvc_inter.h
 create mode 100644 libavcodec/vvc/vvc_inter_template.c
 create mode 100644 libavcodec/vvc/vvc_intra.c
 create mode 100644 libavcodec/vvc/vvc_intra.h
 create mode 100644 libavcodec/vvc/vvc_intra_template.c
 create mode 100644 libavcodec/vvc/vvc_itx_1d.c
 create mode 100644 libavcodec/vvc/vvc_itx_1d.h
 create mode 100644 libavcodec/vvc/vvc_mvs.c
 create mode 100644 libavcodec/vvc/vvc_mvs.h
 create mode 100644 libavcodec/vvc/vvc_ps.c
 create mode 100644 libavcodec/vvc/vvc_ps.h
 create mode 100644 libavcodec/vvc/vvc_refs.c
 create mode 100644 libavcodec/vvc/vvc_refs.h
 create mode 100644 libavcodec/vvc/vvc_thread.c
 create mode 100644 libavcodec/vvc/vvc_thread.h
 create mode 100644 libavcodec/vvc/vvcdec.c
 create mode 100644 libavcodec/vvc/vvcdec.h
 create mode 100644 libavcodec/vvc/vvcdsp.c
 create mode 100644 libavcodec/vvc/vvcdsp.h
 create mode 100644 libavcodec/vvc/vvcdsp_template.c

--
2.25.1



More information about the ffmpeg-devel mailing list