From: Benjamin Gaignard <benjamin.gaignard@collabora.com>
To: ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de,
mchehab@kernel.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, heiko@sntech.de,
hverkuil@xs4all.nl, nicolas.dufresne@collabora.com,
jernej.skrabec@gmail.com
Cc: linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, kernel@collabora.com,
Benjamin Gaignard <benjamin.gaignard@collabora.com>
Subject: [PATCH v4 00/12] AV1 stateless decoder for RK3588
Date: Tue, 14 Feb 2023 15:05:45 +0100 [thread overview]
Message-ID: <20230214140557.537984-1-benjamin.gaignard@collabora.com> (raw)
This series implement AV1 stateless decoder for RK3588 SoC.
The hardware 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, NV12_10LE40_4L4, NV12 and P010 pixels formats.
Even if Rockchip have named the hardware VPU981 it looks like a VC9000 but
with a different registers mapping.
It is based on Daniel's "[PATCH v6] media: Add AV1 uAPI" patches [1] and my
own series to fix 10 bits handling in verisilicon driver "[PATCH v8 0/6]
media: verisilicon: HEVC: fix 10bits handling" [2].
The full branch can be found here:
https://gitlab.collabora.com/linux/for-upstream/-/commits/rk3588_av1_decoder_v4
Fluster score is: 200/239 while testing AV1-TEST-VECTORS with GStreamer-AV1-V4L2SL-Gst1.0.
The failing tests are:
- the 2 tests with 2 spatial layers: few errors in luma/chroma values
- tests with resolution < hardware limit (64x64)
- 10bits film grain test: bad macroblocks while decoding, the same 8bits
test is working fine.
Changes in v4:
- Squash "Save bit depth for AV1 decoder" and "Check AV1 bitstreams bit
depth" patches.
- Double motion vectors buffer size.
- Fix the various errors reported by Hans.
Changes in v3:
- Fix arrays loops limites.
- Remove unused field.
- Reset raw pixel formats list when bit depth or film grain feature
values change.
- Enable post-processor P010 support
Changes in v2:
- Remove useless +1 in sbs computation.
- Describe NV12_10LE40_4L4 pixels format.
- Post-processor could generate P010.
- Fix comments done on v1.
- The last patch make sure that only post-processed formats are used when film
grain feature is enabled.
Benjamin
[1] https://patchwork.kernel.org/project/linux-media/patch/20230214124254.13356-1-daniel.almeida@collabora.com/
[2] https://www.spinics.net/lists/linux-media/msg226954.html
Benjamin Gaignard (11):
dt-bindings: media: rockchip-vpu: Add rk3588 vpu compatible
media: Add NV12_10LE40_4L4 pixel format
media: verisilicon: Get bit depth for V4L2_PIX_FMT_NV12_10LE40_4L4
media: verisilicon: Add AV1 decoder mode and controls
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
media: verisilicon: Conditionally ignore native formats
Nicolas Dufresne (1):
v4l2-common: Add support for fractional bpp
.../bindings/media/rockchip-vpu.yaml | 1 +
.../media/v4l/pixfmt-yuv-planar.rst | 4 +
drivers/media/platform/verisilicon/Makefile | 3 +
drivers/media/platform/verisilicon/hantro.h | 8 +
.../media/platform/verisilicon/hantro_drv.c | 68 +-
.../media/platform/verisilicon/hantro_hw.h | 102 +
.../platform/verisilicon/hantro_postproc.c | 9 +-
.../media/platform/verisilicon/hantro_v4l2.c | 67 +-
.../media/platform/verisilicon/hantro_v4l2.h | 5 +-
.../verisilicon/rockchip_av1_entropymode.c | 4424 +++++++++++++++++
.../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 | 2234 +++++++++
.../verisilicon/rockchip_vpu981_regs.h | 477 ++
.../platform/verisilicon/rockchip_vpu_hw.c | 134 +
drivers/media/v4l2-core/v4l2-common.c | 149 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 1 +
include/media/v4l2-common.h | 2 +
include/uapi/linux/videodev2.h | 1 +
20 files changed, 8301 insertions(+), 97 deletions(-)
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
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
next reply other threads:[~2023-02-14 14:29 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-14 14:05 Benjamin Gaignard [this message]
2023-02-14 14:05 ` [PATCH v4 01/12] dt-bindings: media: rockchip-vpu: Add rk3588 vpu compatible Benjamin Gaignard
2023-02-14 14:05 ` [PATCH v4 02/12] v4l2-common: Add support for fractional bpp Benjamin Gaignard
2023-02-14 14:05 ` [PATCH v4 03/12] media: Add NV12_10LE40_4L4 pixel format Benjamin Gaignard
2023-02-14 14:05 ` [PATCH v4 04/12] media: verisilicon: Get bit depth for V4L2_PIX_FMT_NV12_10LE40_4L4 Benjamin Gaignard
2023-02-14 14:05 ` [PATCH v4 05/12] media: verisilicon: Add AV1 decoder mode and controls Benjamin Gaignard
2023-02-14 14:05 ` [PATCH v4 06/12] media: verisilicon: Check AV1 bitstreams bit depth Benjamin Gaignard
2023-02-18 13:11 ` Ezequiel Garcia
2023-02-20 16:24 ` Benjamin Gaignard
2023-02-20 19:00 ` Nicolas Dufresne
2023-02-21 8:18 ` Benjamin Gaignard
2023-02-14 14:05 ` [PATCH v4 07/12] media: verisilicon: Compute motion vectors size for AV1 frames Benjamin Gaignard
2023-02-14 14:05 ` [PATCH v4 08/12] media: verisilicon: Add AV1 entropy helpers Benjamin Gaignard
2023-02-14 14:05 ` [PATCH v4 09/12] media: verisilicon: Add Rockchip AV1 decoder Benjamin Gaignard
2023-02-14 14:05 ` [PATCH v4 10/12] media: verisilicon: Add film grain feature to AV1 driver Benjamin Gaignard
2023-02-14 14:05 ` [PATCH v4 11/12] media: verisilicon: Enable AV1 decoder on rk3588 Benjamin Gaignard
2023-02-14 14:05 ` [PATCH v4 12/12] media: verisilicon: Conditionally ignore native formats Benjamin Gaignard
2023-02-18 13:16 ` [PATCH v4 00/12] AV1 stateless decoder for RK3588 Ezequiel Garcia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230214140557.537984-1-benjamin.gaignard@collabora.com \
--to=benjamin.gaignard@collabora.com \
--cc=devicetree@vger.kernel.org \
--cc=ezequiel@vanguardiasur.com.ar \
--cc=heiko@sntech.de \
--cc=hverkuil@xs4all.nl \
--cc=jernej.skrabec@gmail.com \
--cc=kernel@collabora.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=mchehab@kernel.org \
--cc=nicolas.dufresne@collabora.com \
--cc=p.zabel@pengutronix.de \
--cc=robh+dt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox