From patchwork Fri Aug 4 19:27:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Dufresne X-Patchwork-Id: 13342292 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DA75EC04A6A for ; Fri, 4 Aug 2023 19:28:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230217AbjHDT2D (ORCPT ); Fri, 4 Aug 2023 15:28:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52422 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230209AbjHDT15 (ORCPT ); Fri, 4 Aug 2023 15:27:57 -0400 Received: from madras.collabora.co.uk (madras.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e5ab]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2A4E8E42; Fri, 4 Aug 2023 12:27:56 -0700 (PDT) Received: from whitebuilder.lan (unknown [IPv6:2606:6d00:15:bae9::c73]) (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 madras.collabora.co.uk (Postfix) with ESMTPSA id 7131F66071BD; Fri, 4 Aug 2023 20:27:54 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1691177275; bh=6ekBO0zpTVZAC3DReb0ZrVE85OlDeCtyq1+I+9C3jxc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZLkiIEnr9fB9++iuFu7aJZt3UaC7V7qQY2iI60VJ7wLXIIzrsYW/5lEVtyjEhCa01 sgFurM6Dg4Tp9AUFEJBRIMFFE82VtYTw9jUdrAx/ToF5u54HqHXxAZh4CrP30h4D9b N7SI0YmYs8gRdwby9jhq4EfzP1pOJDQWAsJs7xgjhZTMYhCl1SmUwBMT7kd9GmGm+j swWkyS/2ABJpDE2d/OgRfyOE1bdSbUmEEcXL+VVLoAjZMwL7U0dbRak3trpsUPhMEE 0WQscIcjVnq5asKEASLXKGsvIU5CkEkkTp3wxzmdgr9I3/DejNxoQDm760d3Q/wpqr J7KIBP18l6DnA== From: Nicolas Dufresne To: Mauro Carvalho Chehab Cc: kernel@collabora.com, Nicolas Dufresne , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/5] docs: uapi: media: Properly locate NV12MT diagram Date: Fri, 4 Aug 2023 15:27:33 -0400 Message-Id: <20230804192737.19016-2-nicolas.dufresne@collabora.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230804192737.19016-1-nicolas.dufresne@collabora.com> References: <20230804192737.19016-1-nicolas.dufresne@collabora.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org The diagram have been pushed back at the end of a list of unrelated pixels formats. Move it back next its related pixel format. Signed-off-by: Nicolas Dufresne Reviewed-by: Andrzej Pietrasiewicz --- .../media/v4l/pixfmt-yuv-planar.rst | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst index 1840224faa41..fb826923ff1d 100644 --- a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst +++ b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst @@ -322,6 +322,22 @@ If the vertical resolution is an odd number of tiles, the last row of tiles is stored in linear order. The layouts of the luma and chroma planes are identical. +.. _nv12mt: + +.. kernel-figure:: nv12mt.svg + :alt: nv12mt.svg + :align: center + + V4L2_PIX_FMT_NV12MT macroblock Z shape memory layout + +.. _nv12mt_ex: + +.. kernel-figure:: nv12mt_example.svg + :alt: nv12mt_example.svg + :align: center + + Example V4L2_PIX_FMT_NV12MT memory layout of tiles + ``V4L2_PIX_FMT_NV12_4L4`` stores pixels in 4x4 tiles, and stores tiles linearly in memory. The line stride and image height must be aligned to a multiple of 4. The layouts of the luma and chroma planes are @@ -369,22 +385,6 @@ image height must be aligned to a multiple of 32. The number of luma and chroma tiles are identical, even though the tile size differ. The image is formed of two non-contiguous planes. -.. _nv12mt: - -.. kernel-figure:: nv12mt.svg - :alt: nv12mt.svg - :align: center - - V4L2_PIX_FMT_NV12MT macroblock Z shape memory layout - -.. _nv12mt_ex: - -.. kernel-figure:: nv12mt_example.svg - :alt: nv12mt_example.svg - :align: center - - Example V4L2_PIX_FMT_NV12MT memory layout of tiles - .. _V4L2-PIX-FMT-NV15-4L4: Tiled NV15 From patchwork Fri Aug 4 19:27:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Dufresne X-Patchwork-Id: 13342294 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 135F2C001DB for ; Fri, 4 Aug 2023 19:28:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230303AbjHDT2G (ORCPT ); Fri, 4 Aug 2023 15:28:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230221AbjHDT16 (ORCPT ); Fri, 4 Aug 2023 15:27:58 -0400 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8930DE7; Fri, 4 Aug 2023 12:27:57 -0700 (PDT) Received: from whitebuilder.lan (unknown [IPv6:2606:6d00:15:bae9::c73]) (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 madras.collabora.co.uk (Postfix) with ESMTPSA id 6F65566071CA; Fri, 4 Aug 2023 20:27:55 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1691177276; bh=T+nWXy+s8Yq0uMZoc9sAaLpZ/9LxtX7E47JjruJ49z0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=evanNoIKFIYtHmTwKnLhG8kgKOe+Iwx0JxmRF5Bzf50noJcmISXS3nlzu/BRHH9on MqEvJOUzouN/EFmdCqHQUDvtNWcPWqA57Dq/6MB3to8kb9HfFzuhoBHOE/neEj39Kx 0GGqrQqjWo9hVLwudTngy6AqO3zEqLxYwygytNTiOOVe2QNSJBV/eGwehj1XU4e96R CzVp9odcjCCnQlCTHOETNMj9QtMnlkXmMmjXMMkeM2D51jQ+KoOJv7BVCp290wAvPz oDYG6YE/NGAhdRb2GZmKNGlMBIIJeOtvpjJpl0T2COnEKPa6EiFx9JSPYkoYhondIA OqYHunMYnl4Xw== From: Nicolas Dufresne To: Mauro Carvalho Chehab Cc: kernel@collabora.com, Nicolas Dufresne , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/5] docs: uapi: media: Move NV12_10BE_8L128 to NV15 section Date: Fri, 4 Aug 2023 15:27:34 -0400 Message-Id: <20230804192737.19016-3-nicolas.dufresne@collabora.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230804192737.19016-1-nicolas.dufresne@collabora.com> References: <20230804192737.19016-1-nicolas.dufresne@collabora.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org This is a 15 bits per pixel (or packed 10 bit format), so move it into the relevant section. Signed-off-by: Nicolas Dufresne Reviewed-by: Andrzej Pietrasiewicz --- .../media/v4l/pixfmt-yuv-planar.rst | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst index fb826923ff1d..1d43532095c0 100644 --- a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst +++ b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst @@ -295,8 +295,6 @@ of the luma plane. .. _V4L2-PIX-FMT-NV12-32L32: .. _V4L2-PIX-FMT-NV12M-8L128: .. _V4L2-PIX-FMT-NV12-8L128: -.. _V4L2-PIX-FMT-NV12M-10BE-8L128: -.. _V4L2-PIX-FMT-NV12-10BE-8L128: .. _V4L2-PIX-FMT-MM21: Tiled NV12 @@ -361,6 +359,25 @@ The layouts of the luma and chroma planes are identical. ``V4L2_PIX_FMT_NV12_8L128`` is similar to ``V4L2_PIX_FMT_NV12M_8L128`` but stores two planes in one memory. +``V4L2_PIX_FMT_MM21`` store luma pixel in 16x32 tiles, and chroma pixels +in 16x16 tiles. The line stride must be aligned to a multiple of 16 and the +image height must be aligned to a multiple of 32. The number of luma and chroma +tiles are identical, even though the tile size differ. The image is formed of +two non-contiguous planes. + + +.. _V4L2-PIX-FMT-NV15-4L4: +.. _V4L2-PIX-FMT-NV12M-10BE-8L128: +.. _V4L2-PIX-FMT-NV12-10BE-8L128: + +Tiled NV15 +---------- + +``V4L2_PIX_FMT_NV15_4L4`` Semi-planar 10-bit YUV 4:2:0 formats, using 4x4 tiling. +All components are packed without any padding between each other. +As a side-effect, each group of 4 components are stored over 5 bytes +(YYYY or UVUV = 4 * 10 bits = 40 bits = 5 bytes). + ``V4L2_PIX_FMT_NV12M_10BE_8L128`` is similar to ``V4L2_PIX_FMT_NV12M`` but stores 10 bits pixels in 2D 8x128 tiles, and stores tiles linearly in memory. the data is arranged in big endian order. @@ -379,21 +396,6 @@ byte 4: Y3(bits 7-0) ``V4L2_PIX_FMT_NV12_10BE_8L128`` is similar to ``V4L2_PIX_FMT_NV12M_10BE_8L128`` but stores two planes in one memory. -``V4L2_PIX_FMT_MM21`` store luma pixel in 16x32 tiles, and chroma pixels -in 16x16 tiles. The line stride must be aligned to a multiple of 16 and the -image height must be aligned to a multiple of 32. The number of luma and chroma -tiles are identical, even though the tile size differ. The image is formed of -two non-contiguous planes. - -.. _V4L2-PIX-FMT-NV15-4L4: - -Tiled NV15 ----------- - -Semi-planar 10-bit YUV 4:2:0 formats, using 4x4 tiling. -All components are packed without any padding between each other. -As a side-effect, each group of 4 components are stored over 5 bytes -(YYYY or UVUV = 4 * 10 bits = 40 bits = 5 bytes). .. _V4L2-PIX-FMT-NV16: .. _V4L2-PIX-FMT-NV61: From patchwork Fri Aug 4 19:27:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Dufresne X-Patchwork-Id: 13342293 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 46F9CC41513 for ; Fri, 4 Aug 2023 19:28:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230253AbjHDT2E (ORCPT ); Fri, 4 Aug 2023 15:28:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52434 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230230AbjHDT17 (ORCPT ); Fri, 4 Aug 2023 15:27:59 -0400 Received: from madras.collabora.co.uk (madras.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e5ab]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2363C1BE; Fri, 4 Aug 2023 12:27:58 -0700 (PDT) Received: from whitebuilder.lan (unknown [IPv6:2606:6d00:15:bae9::c73]) (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 madras.collabora.co.uk (Postfix) with ESMTPSA id 7146A66071C9; Fri, 4 Aug 2023 20:27:56 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1691177277; bh=LMhH1wONP8tWsG5O7bN1Ursg3fodt2Yw3qtQ4QgE28o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kO/bGZBByva56tXgXep3stUzCOTEZd7QrH+nhQNG2r/9C2v1mBFRwMWow7BJLyWUA wkdP+wJtJJaS4ORjbyjWZS3RekHGYn0TPGLGu5Bbru8Zl1JLy+0n5/NsZFT7j5KjXy FdZbn3+JoXMbNM6bEh4AdTTcB8EWgBZEToX6sA5A5RSL1Qw4EmQEGgPMxXICJivKzp cmbRRNiKGbpSpBiviziniaJMdDeHmmJgVXZeMq8mysBd6tEKcmuMIpinO468/+eEWG 54cYMcNWJIVfj1jh5K+JEfOqLNtDMVaDnPmTR2jOvrXP//CRYJYS8CfvgpWlooyeiu 9prNN80hL+Esw== From: Nicolas Dufresne To: Mauro Carvalho Chehab Cc: kernel@collabora.com, Nicolas Dufresne , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/5] docs: uapi: media: Add common documentation of tiled NV15 Date: Fri, 4 Aug 2023 15:27:35 -0400 Message-Id: <20230804192737.19016-4-nicolas.dufresne@collabora.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230804192737.19016-1-nicolas.dufresne@collabora.com> References: <20230804192737.19016-1-nicolas.dufresne@collabora.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org This way we don't have to repeat over and over how the pixels are packed in NV15. Signed-off-by: Nicolas Dufresne --- .../media/v4l/pixfmt-yuv-planar.rst | 79 ++++++++++++++++--- 1 file changed, 68 insertions(+), 11 deletions(-) diff --git a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst index 1d43532095c0..052927bd9396 100644 --- a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst +++ b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst @@ -373,10 +373,74 @@ two non-contiguous planes. Tiled NV15 ---------- -``V4L2_PIX_FMT_NV15_4L4`` Semi-planar 10-bit YUV 4:2:0 formats, using 4x4 tiling. -All components are packed without any padding between each other. -As a side-effect, each group of 4 components are stored over 5 bytes -(YYYY or UVUV = 4 * 10 bits = 40 bits = 5 bytes). +Semi-planar 10-bit YUV 4:2:0 formats. All components are packed +without any padding between each other. Each pixels occupy 15 bits +and are usually stored in group of 4 components stored over 5 bytes +(YYYY or UVUV = 4 * 10 bits = 40 bits = 5 bytes) or partitioned into +upper 8 bit and lower 2 bits. + +.. flat-table:: Sample of 4 NV15 luma pixels + :header-rows: 2 + :stub-columns: 0 + + * - + - 8 + - 7 + - 6 + - 5 + - 4 + - 3 + - 2 + - 1 + - 0 + * - byte 0 + - Y'\ :sub:`0:0` + - Y'\ :sub:`0:1` + - Y'\ :sub:`0:2` + - Y'\ :sub:`0:3` + - Y'\ :sub:`0:4` + - Y'\ :sub:`0:5` + - Y'\ :sub:`0:6` + - Y'\ :sub:`0:7` + * - byte 1 + - Y'\ :sub:`0:8` + - Y'\ :sub:`0:9` + - Y'\ :sub:`1:0` + - Y'\ :sub:`1:1` + - Y'\ :sub:`1:2` + - Y'\ :sub:`1:3` + - Y'\ :sub:`1:4` + - Y'\ :sub:`1:5` + * - byte 2 + - Y'\ :sub:`1:6` + - Y'\ :sub:`1:7` + - Y'\ :sub:`1:8` + - Y'\ :sub:`1:9` + - Y'\ :sub:`2:0` + - Y'\ :sub:`2:1` + - Y'\ :sub:`2:2` + - Y'\ :sub:`2:3` + * - byte 3 + - Y'\ :sub:`2:4` + - Y'\ :sub:`2:5` + - Y'\ :sub:`2:6` + - Y'\ :sub:`2:7` + - Y'\ :sub:`2:8` + - Y'\ :sub:`2:9` + - Y'\ :sub:`3:0` + - Y'\ :sub:`3:1` + * - byte 4 + - Y'\ :sub:`3:2` + - Y'\ :sub:`3:3` + - Y'\ :sub:`3:4` + - Y'\ :sub:`3:5` + - Y'\ :sub:`3:6` + - Y'\ :sub:`3:7` + - Y'\ :sub:`3:8` + - Y'\ :sub:`3:9` + +``V4L2_PIX_FMT_NV15_4L4`` stores pixels in 4x4 tiles, and stores tiles linearly +in memory. ``V4L2_PIX_FMT_NV12M_10BE_8L128`` is similar to ``V4L2_PIX_FMT_NV12M`` but stores 10 bits pixels in 2D 8x128 tiles, and stores tiles linearly in memory. @@ -385,13 +449,6 @@ The image height must be aligned to a multiple of 128. The layouts of the luma and chroma planes are identical. Note the tile size is 8bytes multiplied by 128 bytes, it means that the low bits and high bits of one pixel may be in different tiles. -The 10 bit pixels are packed, so 5 bytes contain 4 10-bit pixels layout like -this (for luma): -byte 0: Y0(bits 9-2) -byte 1: Y0(bits 1-0) Y1(bits 9-4) -byte 2: Y1(bits 3-0) Y2(bits 9-6) -byte 3: Y2(bits 5-0) Y3(bits 9-8) -byte 4: Y3(bits 7-0) ``V4L2_PIX_FMT_NV12_10BE_8L128`` is similar to ``V4L2_PIX_FMT_NV12M_10BE_8L128`` but stores two planes in one memory. From patchwork Fri Aug 4 19:27:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Dufresne X-Patchwork-Id: 13342296 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0795FC001DF for ; Fri, 4 Aug 2023 19:28:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230370AbjHDT2J (ORCPT ); Fri, 4 Aug 2023 15:28:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52452 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230216AbjHDT2D (ORCPT ); Fri, 4 Aug 2023 15:28:03 -0400 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 94B671BF; Fri, 4 Aug 2023 12:27:59 -0700 (PDT) Received: from whitebuilder.lan (unknown [IPv6:2606:6d00:15:bae9::c73]) (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 madras.collabora.co.uk (Postfix) with ESMTPSA id 8A9FA66071BC; Fri, 4 Aug 2023 20:27:57 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1691177278; bh=fEfrE1N2g63pRTvitamxCMKZ1ziXiBr1RyUOiNjvvv0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RrlbyMJ2oOONQyazsZbz+idXA/jQnnpQ2vzc3MGwfc8h4MPj7AuZUmLZWrd2We7NV 90Aj9lgMovi5ZP5Sdtn2iqt6Xhkd3pft8ibY6LsTs/Mi4J+xCTwb0/r9iTcYgfS7WL 0vmOwyJ1bkXMXDw+HCV1dYJaMZNca/oEybE7Vt1Buwj/5j9WIrpA9RhCTytrwo9aNB WUY1IVKEKaFV57tSr+peHMiuelVRUoF3Jy8egh/JyDAZKjflBN8Sg6WtqRReDHkJ4O 4edQWHtYL+NKIeQlqF42NBh0u5pUsHubPYRZsQTBSPu7tvgoxUJuyxf8+1xiT4Bj9P Lxv1xnEaft3tA== From: Nicolas Dufresne To: Mauro Carvalho Chehab , Matthias Brugger , AngeloGioacchino Del Regno Cc: kernel@collabora.com, Nicolas Dufresne , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: [PATCH 4/5] docs: uapi: media: Add a layout diagram for MT2110T Date: Fri, 4 Aug 2023 15:27:36 -0400 Message-Id: <20230804192737.19016-5-nicolas.dufresne@collabora.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230804192737.19016-1-nicolas.dufresne@collabora.com> References: <20230804192737.19016-1-nicolas.dufresne@collabora.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org This diagram details the partitioning done in each tiles. Signed-off-by: Nicolas Dufresne --- .../userspace-api/media/v4l/mt2110t.svg | 268 ++++++++++++++++++ 1 file changed, 268 insertions(+) create mode 100644 Documentation/userspace-api/media/v4l/mt2110t.svg diff --git a/Documentation/userspace-api/media/v4l/mt2110t.svg b/Documentation/userspace-api/media/v4l/mt2110t.svg new file mode 100644 index 000000000000..d4fc223f5fde --- /dev/null +++ b/Documentation/userspace-api/media/v4l/mt2110t.svg @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MSB 8 bits + + + + + + + LSB 2 bits + + + + + + + MSB 8 bits + + + + + + + LSB 2 bits + + + + + + + MSB 8 bits + + + + + + + LSB 2 bits + + + + + + + MSB 8 bits + + + + + + + LSB 2 bits + + + + + + + MSB 8 bits + + + + + + + LSB 2 bits + + + + + + + MSB 8 bits + + + + + + + LSB 2 bits + + + + + + + MSB 8 bits + + + + + + + LSB 2 bits + + + + + + + MSB 8 bits + + + + + + + LSB 2 bits + + + + + + + + + + + 16 px + + + + + + + + + + + 32 px + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From patchwork Fri Aug 4 19:27:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Dufresne X-Patchwork-Id: 13342295 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 266E9C04A94 for ; Fri, 4 Aug 2023 19:28:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230328AbjHDT2I (ORCPT ); Fri, 4 Aug 2023 15:28:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52444 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229455AbjHDT2C (ORCPT ); Fri, 4 Aug 2023 15:28:02 -0400 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9EFA5E7; Fri, 4 Aug 2023 12:28:00 -0700 (PDT) Received: from whitebuilder.lan (unknown [IPv6:2606:6d00:15:bae9::c73]) (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 madras.collabora.co.uk (Postfix) with ESMTPSA id EF8C066071BD; Fri, 4 Aug 2023 20:27:58 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1691177279; bh=8/5SfF/HBdqSJinGjaWZ6eEDcCeD+eygD3VveqLdlW4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QDS9zxe6VkDNgulJeiUhBZEPGxDSDv2Ktwo1iGTdIvlSJ85EmuVbacN8+IPKaDnpH bDqG1t4jeWsLwZJ8inhBIhQ3VaABIGPqcviXVkfvzza7dsVMM9VKk7biAK6OGQPZip RIdB9drDytFeGiPw8xxghBAWCQdRqN9SLOCNF6N4kkJBNVLuD3ciLNDEWaRon8DUGY fcmgNASVLzlOgs805N3fdyz6ce/vGqlxWJbmZHc10/N1PO/x9eHSqcPQjZOijy1lU4 mtvfxTJnCsnz8oHEiDWEyhVz1RHo+nA0a1m7XA1aQPICnJ6FxS4vHCYLTOxMj3X0dE Mf2u+g4VJaHiA== From: Nicolas Dufresne To: Mauro Carvalho Chehab Cc: kernel@collabora.com, Nicolas Dufresne , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/5] docs: uapi: media: Document Mediatek 10bit tiled formats Date: Fri, 4 Aug 2023 15:27:37 -0400 Message-Id: <20230804192737.19016-6-nicolas.dufresne@collabora.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230804192737.19016-1-nicolas.dufresne@collabora.com> References: <20230804192737.19016-1-nicolas.dufresne@collabora.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Document V4L2_PIX_FMT_MT2110T and V4L2_PIX_FMT_MT2110R. These two formats are nearly identical, reusing MM21 format and expending it by inserting chunk of 16 bytes of lower 2 bit pixel data after each chunk of 64 bytes higher 8 bit of data. Signed-off-by: Nicolas Dufresne --- .../media/v4l/pixfmt-reserved.rst | 13 -- .../media/v4l/pixfmt-yuv-planar.rst | 122 ++++++++++++++++++ 2 files changed, 122 insertions(+), 13 deletions(-) diff --git a/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst b/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst index 296ad2025e8d..58f6ae25b2e7 100644 --- a/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst +++ b/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst @@ -275,19 +275,6 @@ please make a proposal on the linux-media mailing list. Decoder's implementation can be found here, `aspeed_codec `__ - * .. _V4L2-PIX-FMT-MT2110T: - - - ``V4L2_PIX_FMT_MT2110T`` - - 'MT2110T' - - This format is two-planar 10-Bit tile mode and having similitude with - ``V4L2_PIX_FMT_MM21`` in term of alignment and tiling. Used for VP9, AV1 - and HEVC. - * .. _V4L2-PIX-FMT-MT2110R: - - - ``V4L2_PIX_FMT_MT2110R`` - - 'MT2110R' - - This format is two-planar 10-Bit raster mode and having similitude with - ``V4L2_PIX_FMT_MM21`` in term of alignment and tiling. Used for AVC. .. raw:: latex \normalsize diff --git a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst index 052927bd9396..6ef5cd6bd9e2 100644 --- a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst +++ b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst @@ -144,6 +144,20 @@ All components are stored with the same number of bits per component. - Cb, Cr - Yes - 4x4 tiles + * - V4L2_PIX_FMT_MT2110T + - 'MT2T' + - 15 + - 4:2:0 + - Cb, Cr + - No + - 16x32 / 16x16 tiles tiled low bits + * - V4L2_PIX_FMT_MT2110R + - 'MT2R' + - 15 + - 4:2:0 + - Cb, Cr + - No + - 16x32 / 16x16 tiles raster low bits * - V4L2_PIX_FMT_NV16 - 'NV16' - 8 @@ -369,6 +383,8 @@ two non-contiguous planes. .. _V4L2-PIX-FMT-NV15-4L4: .. _V4L2-PIX-FMT-NV12M-10BE-8L128: .. _V4L2-PIX-FMT-NV12-10BE-8L128: +.. _V4L2-PIX-FMT-MT2110T: +.. _V4L2-PIX-FMT-MT2110R: Tiled NV15 ---------- @@ -453,6 +469,112 @@ it means that the low bits and high bits of one pixel may be in different tiles. ``V4L2_PIX_FMT_NV12_10BE_8L128`` is similar to ``V4L2_PIX_FMT_NV12M_10BE_8L128`` but stores two planes in one memory. +``V4L2_PIX_FMT_MT2110T``` is one of Mediatek packed 10bit YUV 4:2:0 formats. +It is fully packed 10bit 4:2:0 format like NV15 (15 bits per pixel), except +that the lower two bits data is stored in separate partitions. The format is +composed of 16x32 luma tiles, and 16x16 chroma tiles. Each tiles have 640 +bytes separate in 8 partitions of 80 bytes each. The first 64 bytes represents +the 8 most significant bits of pixel data. The remaining 16 bytes contains the +2 least significant of pixel data. + +.. kernel-figure:: mt2110t.svg + :alt: mt2110t.svg + :align: center + + Layout of Example MT2110T Chroma Tile + +Filtering out the lower part of each partitions results in a valid +``V4L2_PIX_FMT_MM21`` frame. A partition is a sub-tile of size 16 x 4. The +lower two bits is said to be tiled since each bytes contains the lower two +bits of the column of for pixel matching the same index. The chroma tiles +only have 4 partitions. + +.. flat-table:: MT2110T LSB bits layout + :header-rows: 1 + :stub-columns: 0 + + * - + - start + 0 + - start + 1 + - . . . + - start\ +\ 15 + * - bits 0:2 + - Y'\ :sub:`0:0` + - Y'\ :sub:`0:1` + - . . . + - Y'\ :sub:`0:15` + * - bits 2:3 + - Y'\ :sub:`1:0` + - Y'\ :sub:`1:1` + - . . . + - Y'\ :sub:`1:15` + * - bits 4:5 + - Y'\ :sub:`2:0` + - Y'\ :sub:`2:1` + - . . . + - Y'\ :sub:`2:15` + * - bits 6:7 + - Y'\ :sub:`3:0` + - Y'\ :sub:`3:1` + - . . . + - Y'\ :sub:`3:15` + +``V4L2_PIX_FMT_MT2110R`` is identical to ``V4L2_PIX_FMT_MT2110T`` except that +the least significant two bits layout is in raster order. This means the first byte +contains 4 pixels of the first row, with 4 bytes per line. + +.. flat-table:: MT2110R LSB bits layout + :header-rows: 1 + :stub-columns: 0 + + * - + - b0 + - + - + - + - ... + - b3 + * - start + 0 + - Y'\ :sub:`0:0` + - Y'\ :sub:`0:1` + - Y'\ :sub:`0:2` + - Y'\ :sub:`0:3` + - ... + - Y'\ :sub:`0:12` + - Y'\ :sub:`0:13` + - Y'\ :sub:`0:14` + - Y'\ :sub:`0:15` + * - start + 4 + - Y'\ :sub:`1:0` + - Y'\ :sub:`1:1` + - Y'\ :sub:`1:2` + - Y'\ :sub:`1:3` + - ... + - Y'\ :sub:`1:12` + - Y'\ :sub:`1:13` + - Y'\ :sub:`1:14` + - Y'\ :sub:`1:15` + * - start + 8 + - Y'\ :sub:`2:0` + - Y'\ :sub:`2:1` + - Y'\ :sub:`2:2` + - Y'\ :sub:`2:3` + - ... + - Y'\ :sub:`2:12` + - Y'\ :sub:`2:13` + - Y'\ :sub:`2:14` + - Y'\ :sub:`2:15` + * - start\ +\ 12 + - Y'\ :sub:`3:0` + - Y'\ :sub:`3:1` + - Y'\ :sub:`3:2` + - Y'\ :sub:`3:3` + - ... + - Y'\ :sub:`3:12` + - Y'\ :sub:`3:13` + - Y'\ :sub:`3:14` + - Y'\ :sub:`3:15` + .. _V4L2-PIX-FMT-NV16: .. _V4L2-PIX-FMT-NV61: