From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D2928CA0EDA for ; Mon, 11 Aug 2025 23:16:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: List-Subscribe:List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: MIME-Version:References:In-Reply-To:Date:Cc:To:From:Subject:Message-ID: Reply-To:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date :Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=ulINkVSBTZg8ctW6MOLlgigfI5/2dK6tj6WFozXs1GQ=; b=gi1rgTLcyjjFpJysamhd0zOEBU fuaWK/0yqwZuu0lhQVy/ez1L6PIyocBeqEnrtkByq75T99kmnj6nIfd3QvhUJcSLq1jHH8D17CQhB jhBGLOediorf7rIAkJXb9dRHPEnFMxkUQ72Bp/bhZ8ilqpZstkgZy4KUN3pOQHqj4Cn4yp1E0yQA+ L0xae/9spNN4LocilvfJX9uEtSpiESLElIbh/lWCYSc4Rw+Ivk5n3t6M/o0GF8xoNBnWaeiMDhCb9 3ci5WpOoj2T0LED4uWbujbN5WNSwSBwSCsbxlMaCOdSXshji0vxL3W2bqoh+5EcaY1HnLTPH4Wb7q vQ/WqBlQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1ulbkz-00000009MOA-1ngF; Mon, 11 Aug 2025 23:16:45 +0000 Received: from bali.collaboradmins.com ([2a01:4f8:201:9162::2]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1ulZ7H-000000090vy-1PVJ; Mon, 11 Aug 2025 20:27:36 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1754944053; bh=97/FktGL1WOXce4gBvBtsbBUHJjxPvrKCEWOXUD7x0A=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=V7mApP9gHD2h8fQ/FCG0mp2/K5QdXJNnbdr4X1Dm5Ny53ABy3jt6WwcwFdGDJ0AG+ 9oaiI43faZxshCNzTAgHMDzGGfiHkRctvSaoBwDaL7YU76QCHPxICQTuT9jWxScDvw D/ujR0cMQCRBhUEr8R7v5D0XpEKfCm1LSkYg94fIe3L3reaq/zybv0JZEtPym8BxdX Czx3xfeLm4LthxppoH4sdImmoHGyPuJOgqPBullyVQ6/P9nG0NYHl+4+6UuGLCtSw0 VPKgmDPiKuWwYD6pDNwq7vIzd51BwzsHVkANfL7BeQESSudlXTg1BnHk8R0xVUNyhe uXUT5iUdP13LA== Received: from [IPv6:2606:6d00:11:5a76::c41] (unknown [IPv6:2606:6d00:11:5a76::c41]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: nicolas) by bali.collaboradmins.com (Postfix) with ESMTPSA id CA64817E0C87; Mon, 11 Aug 2025 22:27:31 +0200 (CEST) Message-ID: <017fee1a5aa36205430d0e32c84629375523f5ff.camel@collabora.com> Subject: Re: [PATCH v2 1/7] media: rkvdec: Add HEVC backend From: Nicolas Dufresne To: Jonas Karlman Cc: Ezequiel Garcia , Detlev Casanova , Mauro Carvalho Chehab , Heiko Stuebner , Alex Bee , Sebastian Fricke , 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 Date: Mon, 11 Aug 2025 16:27:29 -0400 In-Reply-To: References: <20250810212454.3237486-1-jonas@kwiboo.se> <20250810212454.3237486-2-jonas@kwiboo.se> <9c8cb837d10d3cdd54fe34dedfe40c10e848f648.camel@collabora.com> Autocrypt: addr=nicolas.dufresne@collabora.com; prefer-encrypt=mutual; keydata=mQGiBEUQN0MRBACQYceNSezSdMjx7sx6gwKkMghrrODgl3B0eXBTgNp6c431IfOOEsdvk oOh1kwoYcQgbg4MXw6beOltysX4e8fFWsiRkc2nvvRW9ir9kHDm49MkBLqaDjTqOkYKNMiurFW+go zpr/lUW15QqT6v68RYe0zRdtwGZqeLzX2LVuukGwCg4AISzswrrYHNV7vQLcbaUhPgIl0D+gILYT9 TJgAEK4YHW+bFRcY+cgUFoLQqQayECMlctKoLOE69nIYOc/hDr9uih1wxrQ/yL0NJvQCohSPyoyLF 9b2EuIGhQVp05XP7FzlTxhYvGO/DtO08ec85+bTfVBMV6eeY4MS3ZU+1z7ObD7Pf29YjyTehN2Dan 6w1g2rBk5MoA/9nDocSlk4pbFpsYSFmVHsDiAOFje3+iY4ftVDKunKYWMhwRVBjAREOByBagmRau0 cLEcElpf4hX5f978GoxSGIsiKoDAlXX+ICDOWC1/EXhEEmBR1gL0QJgiVviNyLfGJlZWnPjw6xhhm tHYWTDxBOP5peztyc2PqeKsLsLWzAr7QnTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhc0BuZHVmcmVz bmUuY2E+iGIEExECACIFAlXA3CACGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEHFTAi2sB qgcJngAnRDBTr8bhzuH0KQwFP1nEYtfgpKdAKCrQ/sJfuG/8zsd7J8wVl7y3e8ARbRDTmljb2xhcy BEdWZyZXNuZSAoQi4gU2MuIEluZm9ybWF0aXF1ZSkgPG5pY29sYXMuZHVmcmVzbmVAZ21haWwuY29 tPohgBBMRAgAgBQJFlCyOAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQcVMCLawGqBwhLQCg zYlrLBj6KIAZ4gmsfjXD6ZtddT8AoIeGDicVq5WvMHNWign6ApQcZUihtElOaWNvbGFzIER1ZnJlc 25lIChCLiBTYy4gSW5mb3JtYXRpcXVlKSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udW s+iGIEExECACIFAkuzca8CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEHFTAi2sBqgcQX8 An2By6LDEeMxi4B9hUbpvRnzaaeNqAJ9Rox8rfqHZnSErw9bCHiBwvwJZ77QxTmljb2xhcyBEdWZy ZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPohiBBMRAgAiBQJNzZzPAhsDBgsJC AcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBxUwItrAaoHLlxAKCYAGf4JL7DYDLs/188CPMGuwLypw CfWKc9DorA9f5pyYlD5pQo6SgSoiC0R05pY29sYXMgRHVmcmVzbmUgKEIgU2MuIEluZm9ybWF0aXF 1ZSkgPG5pY29sYXMuZHVmcmVzbmVAdXNoZXJicm9va2UuY2E+iGAEExECACAFAkUQN0MCGwMGCwkI BwMCBBUCCAMEFgIDAQIeAQIXgAAKCRBxUwItrAaoHPTnAJ0WGgJJVspoctAvEcI00mtp5WAFGgCgr +E7ItOqZEHAs+xabBgknYZIFPU= Organization: Collabora Canada User-Agent: Evolution 3.56.2 (3.56.2-1.fc42) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250811_132735_545899_6DA8AA57 X-CRM114-Status: GOOD ( 33.63 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============2965990975784024890==" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org --===============2965990975784024890== Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-i9Oq4aZo3lZiAeIGW3ru" --=-i9Oq4aZo3lZiAeIGW3ru Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Le lundi 11 ao=C3=BBt 2025 =C3=A0 21:46 +0200, Jonas Karlman a =C3=A9crit= =C2=A0: > Hi Nicolas, >=20 > On 8/11/2025 9:12 PM, Nicolas Dufresne wrote: > > Le dimanche 10 ao=C3=BBt 2025 =C3=A0 21:24 +0000, Jonas Karlman a =C3= =A9crit=C2=A0: > > > The Rockchip VDEC supports the HEVC codec with the Main and Main10 > > > Profile up to Level 5.1 High tier: 4096x2304@60 fps. > > >=20 > > > Add the backend for HEVC format to the decoder. > > >=20 > > > Signed-off-by: Alex Bee > > > Signed-off-by: Nicolas Dufresne > > > Signed-off-by: Sebastian Fricke > > > Signed-off-by: Jonas Karlman > > > --- > > > Changes in v2: > > > - Use new_value in transpose_and_flatten_matrices() > > > - Add NULL check for ctrl->new_elems in rkvdec_hevc_run_preamble() > > > - Set RKVDEC_WR_DDR_ALIGN_EN for RK3328 > > > --- > > > =C2=A0.../media/platform/rockchip/rkvdec/Makefile=C2=A0=C2=A0 |=C2=A0= =C2=A0=C2=A0 2 +- > > > =C2=A0.../rockchip/rkvdec/rkvdec-hevc-data.c=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0 | 1848 +++++++++++++++++ > > > =C2=A0.../platform/rockchip/rkvdec/rkvdec-hevc.c=C2=A0=C2=A0=C2=A0 |= =C2=A0 817 ++++++++ > > > =C2=A0.../platform/rockchip/rkvdec/rkvdec-regs.h=C2=A0=C2=A0=C2=A0 |= =C2=A0=C2=A0=C2=A0 2 + > > > =C2=A0.../media/platform/rockchip/rkvdec/rkvdec.c=C2=A0=C2=A0 |=C2=A0= =C2=A0 76 + > > > =C2=A0.../media/platform/rockchip/rkvdec/rkvdec.h=C2=A0=C2=A0 |=C2=A0= =C2=A0=C2=A0 1 + > > > =C2=A06 files changed, 2745 insertions(+), 1 deletion(-) > > > =C2=A0create mode 100644 drivers/media/platform/rockchip/rkvdec/rkvde= c-hevc- > > > data.c > > > =C2=A0create mode 100644 drivers/media/platform/rockchip/rkvdec/rkvde= c-hevc.c > > >=20 > > > diff --git a/drivers/media/platform/rockchip/rkvdec/Makefile > > > b/drivers/media/platform/rockchip/rkvdec/Makefile > > > index cb86b429cfaa..a77122641d14 100644 > > > --- a/drivers/media/platform/rockchip/rkvdec/Makefile > > > +++ b/drivers/media/platform/rockchip/rkvdec/Makefile > > > @@ -1,3 +1,3 @@ > > > =C2=A0obj-$(CONFIG_VIDEO_ROCKCHIP_VDEC) +=3D rockchip-vdec.o > > > =C2=A0 > > > -rockchip-vdec-y +=3D rkvdec.o rkvdec-h264.o rkvdec-vp9.o > > > +rockchip-vdec-y +=3D rkvdec.o rkvdec-h264.o rkvdec-hevc.o rkvdec-vp9= .o > > > diff --git a/drivers/media/platform/rockchip/rkvdec/rkvdec-hevc-data.= c > > > b/drivers/media/platform/rockchip/rkvdec/rkvdec-hevc-data.c > > > new file mode 100644 > > > index 000000000000..eac4ea604949 > > > --- /dev/null > > > +++ b/drivers/media/platform/rockchip/rkvdec/rkvdec-hevc-data.c > > > @@ -0,0 +1,1848 @@ > > > +// SPDX-License-Identifier: GPL-2.0 > > > +/* > > > + * Rockchip Video Decoder driver > > > + * > > > + * Copyright (C) 2023 Collabora, Ltd. > > > + * Sebastian Fricke > > > + */ > > > + > > > +#include > > > + > > > +#define RKV_CABAC_TABLE_SIZE 27456 > > > + > > > +/* > > > + * This file is #include from rkvdec-hevc.c and not compiled. > > > + */ > > > +static const u8 rkvdec_hevc_cabac_table[RKV_CABAC_TABLE_SIZE] =3D { > > > + 0x07, 0x0f, 0x48, 0x58, 0x58, 0x40, 0x40, 0x40, 0x40, 0x40, 0x0f, > > > 0x40, 0x40, 0x40, 0x0f, > >=20 > > Nit, in H.264 case, we managed to fill the CABAC based on the spect wit= h > > macros, > > didn't we figure-out this one ? I didn't check in Detlev tree, I'm just > > asking > > here. >=20 > As hinted at in the cover letter: in the initial implementation used for > LibreELEC I just shamelessly copied the cabac data 1:1 from the Rockchip > mpp library, for this series it was replaced with the cabac table from > Sebastian Fricke prior series to add a HEVC backend [1]. Sebastian > mentioned following regarding the cabac table: >=20 > """ > Notable design decisions: > - The giant static array of cabac values is moved to a separate c file, > I did so because a separate .h file would be incorrect as it doesn't > expose anything of any value for any other file than the rkvdec-hevc.c > file. Other options were: > =C2=A0 - Calculating the values instead of storing the results (No clear = pattern > =C2=A0=C2=A0=C2=A0 found for the calculation using the static array and t= he formulas from the > =C2=A0=C2=A0=C2=A0 specification) > =C2=A0 - Supply them via firmware (Adding firmware makes the whole softwa= re > =C2=A0=C2=A0=C2=A0 way more complicated and the usage of the driver less = obvious) > """ >=20 > I have not explored any other way to handle the cabac table based on > these design decisions. >=20 > [1] > https://lore.kernel.org/linux-media/20230101-patch-series-v2-6-2-rc1-v2-0= -fa1897efac14@collabora.com/ I see, I guess if we don't know how it was generated, there isn't much we c= an do about it. cheers, Nicolas >=20 > Regards, > Jonas >=20 > >=20 > > Nicolas >=20 > [snip] --=-i9Oq4aZo3lZiAeIGW3ru Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iF0EABECAB0WIQSScpfJiL+hb5vvd45xUwItrAaoHAUCaJpSMQAKCRBxUwItrAao HOTrAKChQb418dF5D1psffW41seij+dvEgCgmJmwxhVAqiRs4EdF46/syDW1+7w= =5k7o -----END PGP SIGNATURE----- --=-i9Oq4aZo3lZiAeIGW3ru-- --===============2965990975784024890== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip --===============2965990975784024890==--