devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/9] AV1 stateless decoder for RK3588
@ 2022-12-19 15:56 Benjamin Gaignard
  2022-12-19 15:56 ` [PATCH v1 1/9] dt-bindings: media: rockchip-vpu: Add rk3588 vpu compatible Benjamin Gaignard
                   ` (10 more replies)
  0 siblings, 11 replies; 49+ messages in thread
From: Benjamin Gaignard @ 2022-12-19 15:56 UTC (permalink / raw)
  To: ezequiel, p.zabel, mchehab, robh+dt, krzysztof.kozlowski+dt,
	heiko, daniel.almeida, nicolas.dufresne
  Cc: linux-media, linux-rockchip, devicetree, linux-arm-kernel,
	linux-kernel, kernel, Benjamin Gaignard

This series implement AV1 stateless decoder for RK3588 SoC.
The harware support 8 and 10 bits bitstreams up to 7680x4320.
AV1 feature like film grain or scaling are done by the postprocessor.
The driver can produce NV12_4L4 and NV12 pixel formats.
A native 10bits NV12_4L4 format is possible but need more investigation
to be completly documented and enabled.

It is based on Daniel's "[RFC,v3] media: Add AV1 uAPI" [1] patches and
Sebastian's device-tree patches for RK3588.

The full branch can be found here:
https://gitlab.collabora.com/linux/for-upstream/-/commits/rk3588_av1_decoder_v1

Fluster score is: 151/239 while testing AV1-TEST-VECTORS with GStreamer-AV1-V4L2SL-Gst1.0.
The failing tests are:
- 10bits bitstream because 10bits output formats aren't yet implemented.
- the 2 tests with 2 spatial layers: few errors in luma/chroma values
- tests with resolution < hardware limit (64x64)

Benjamin

Benjamin Gaignard (9):
  dt-bindings: media: rockchip-vpu: Add rk3588 vpu compatible
  media: verisilicon: Add AV1 decoder mode and controls
  media: verisilicon: Save bit depth for AV1 decoder
  media: verisilicon: Check AV1 bitstreams bit depth
  media: verisilicon: Compute motion vectors size for AV1 frames
  media: verisilicon: Add AV1 entropy helpers
  media: verisilicon: Add Rockchip AV1 decoder
  media: verisilicon: Add film grain feature to AV1 driver
  media: verisilicon: Enable AV1 decoder on rk3588

 .../bindings/media/rockchip-vpu.yaml          |    1 +
 drivers/media/platform/verisilicon/Makefile   |    3 +
 drivers/media/platform/verisilicon/hantro.h   |    5 +
 .../media/platform/verisilicon/hantro_drv.c   |   54 +
 .../media/platform/verisilicon/hantro_hw.h    |  102 +
 .../platform/verisilicon/hantro_postproc.c    |    3 +
 .../media/platform/verisilicon/hantro_v4l2.c  |    5 +
 .../verisilicon/rockchip_av1_entropymode.c    | 4536 +++++++++++++++++
 .../verisilicon/rockchip_av1_entropymode.h    |  272 +
 .../verisilicon/rockchip_av1_filmgrain.c      |  401 ++
 .../verisilicon/rockchip_av1_filmgrain.h      |   36 +
 .../verisilicon/rockchip_vpu981_hw_av1_dec.c  | 2280 +++++++++
 .../verisilicon/rockchip_vpu981_regs.h        |  477 ++
 .../platform/verisilicon/rockchip_vpu_hw.c    |  116 +
 14 files changed, 8291 insertions(+)
 create mode 100644 drivers/media/platform/verisilicon/rockchip_av1_entropymode.c
 create mode 100644 drivers/media/platform/verisilicon/rockchip_av1_entropymode.h
 create mode 100644 drivers/media/platform/verisilicon/rockchip_av1_filmgrain.c
 create mode 100644 drivers/media/platform/verisilicon/rockchip_av1_filmgrain.h
 create mode 100644 drivers/media/platform/verisilicon/rockchip_vpu981_hw_av1_dec.c
 create mode 100644 drivers/media/platform/verisilicon/rockchip_vpu981_regs.h

-- 
2.34.1


^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2022-12-23 23:20 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-19 15:56 [PATCH v1 0/9] AV1 stateless decoder for RK3588 Benjamin Gaignard
2022-12-19 15:56 ` [PATCH v1 1/9] dt-bindings: media: rockchip-vpu: Add rk3588 vpu compatible Benjamin Gaignard
2022-12-19 16:06   ` Krzysztof Kozlowski
2022-12-19 16:44     ` Benjamin Gaignard
2022-12-20  9:55   ` Krzysztof Kozlowski
2022-12-19 15:56 ` [PATCH v1 2/9] media: verisilicon: Add AV1 decoder mode and controls Benjamin Gaignard
2022-12-19 18:25   ` kernel test robot
2022-12-19 20:26     ` Nicolas Dufresne
2022-12-19 20:28   ` Nicolas Dufresne
2022-12-19 15:56 ` [PATCH v1 3/9] media: verisilicon: Save bit depth for AV1 decoder Benjamin Gaignard
2022-12-19 20:37   ` Nicolas Dufresne
2022-12-19 21:29     ` Ezequiel Garcia
2022-12-20 13:05       ` Benjamin Gaignard
2022-12-19 22:08   ` kernel test robot
2022-12-19 15:56 ` [PATCH v1 4/9] media: verisilicon: Check AV1 bitstreams bit depth Benjamin Gaignard
2022-12-19 20:38   ` Nicolas Dufresne
2022-12-20 13:02     ` Benjamin Gaignard
2022-12-21 16:16       ` Nicolas Dufresne
2022-12-19 15:56 ` [PATCH v1 5/9] media: verisilicon: Compute motion vectors size for AV1 frames Benjamin Gaignard
2022-12-19 20:42   ` Nicolas Dufresne
2022-12-20 13:13     ` Benjamin Gaignard
2022-12-19 15:56 ` [PATCH v1 6/9] media: verisilicon: Add AV1 entropy helpers Benjamin Gaignard
2022-12-19 20:51   ` Nicolas Dufresne
2022-12-20 10:19   ` Andrzej Pietrasiewicz
2022-12-20 12:19     ` Benjamin Gaignard
2022-12-19 15:56 ` [PATCH v1 7/9] media: verisilicon: Add Rockchip AV1 decoder Benjamin Gaignard
2022-12-19 19:16   ` kernel test robot
2022-12-19 21:56   ` Nicolas Dufresne
2022-12-20 14:49     ` Benjamin Gaignard
2022-12-21 16:30       ` Nicolas Dufresne
2022-12-21 16:37         ` Benjamin Gaignard
2022-12-23 23:15           ` Daniel Almeida
2022-12-23 23:20             ` Daniel Almeida
2022-12-19 15:56 ` [PATCH v1 8/9] media: verisilicon: Add film grain feature to AV1 driver Benjamin Gaignard
2022-12-19 20:47   ` kernel test robot
2022-12-19 15:56 ` [PATCH v1 9/9] media: verisilicon: Enable AV1 decoder on rk3588 Benjamin Gaignard
2022-12-19 20:22 ` [PATCH v1 0/9] AV1 stateless decoder for RK3588 Nicolas Dufresne
2022-12-19 21:07 ` Ezequiel Garcia
2022-12-19 21:54   ` Michael Grzeschik
2022-12-20  1:52     ` Ezequiel Garcia
2022-12-20 12:26       ` Benjamin Gaignard
2022-12-20 13:40       ` Michael Grzeschik
2022-12-20 17:15         ` Nicolas Dufresne
2022-12-20 17:50           ` Ezequiel Garcia
2022-12-21 22:17           ` Michael Grzeschik
2022-12-20 17:00     ` Nicolas Dufresne
2022-12-21 22:01       ` Michael Grzeschik
2022-12-22 13:24         ` Ezequiel Garcia
2022-12-21 16:33   ` Nicolas Dufresne

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).