Skip to content
Snippets Groups Projects
Commit 5de599cb authored by Nicolas Dufresne's avatar Nicolas Dufresne
Browse files

docs: uapi: media: Document Mediatek 10bit tiled formats


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: default avatarNicolas Dufresne <nicolas.dufresne@collabora.com>
parent a4fdfd96
No related branches found
No related tags found
No related merge requests found
...@@ -275,19 +275,6 @@ please make a proposal on the linux-media mailing list. ...@@ -275,19 +275,6 @@ please make a proposal on the linux-media mailing list.
Decoder's implementation can be found here, Decoder's implementation can be found here,
`aspeed_codec <https://github.com/AspeedTech-BMC/aspeed_codec/>`__ `aspeed_codec <https://github.com/AspeedTech-BMC/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 .. raw:: latex
\normalsize \normalsize
...@@ -144,6 +144,20 @@ All components are stored with the same number of bits per component. ...@@ -144,6 +144,20 @@ All components are stored with the same number of bits per component.
- Cb, Cr - Cb, Cr
- Yes - Yes
- 4x4 tiles - 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 * - V4L2_PIX_FMT_NV16
- 'NV16' - 'NV16'
- 8 - 8
...@@ -369,6 +383,8 @@ two non-contiguous planes. ...@@ -369,6 +383,8 @@ two non-contiguous planes.
.. _V4L2-PIX-FMT-NV15-4L4: .. _V4L2-PIX-FMT-NV15-4L4:
.. _V4L2-PIX-FMT-NV12M-10BE-8L128: .. _V4L2-PIX-FMT-NV12M-10BE-8L128:
.. _V4L2-PIX-FMT-NV12-10BE-8L128: .. _V4L2-PIX-FMT-NV12-10BE-8L128:
.. _V4L2-PIX-FMT-MT2110T:
.. _V4L2-PIX-FMT-MT2110R:
Tiled NV15 Tiled NV15
---------- ----------
...@@ -514,6 +530,119 @@ be in different tiles. ...@@ -514,6 +530,119 @@ be in different tiles.
``V4L2_PIX_FMT_NV12_10BE_8L128`` is similar to ``V4L2_PIX_FMT_NV12M_10BE_8L128`` but stores ``V4L2_PIX_FMT_NV12_10BE_8L128`` is similar to ``V4L2_PIX_FMT_NV12M_10BE_8L128`` but stores
two planes in one memory. 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 is 640 bytes
long, divided into 8 partitions of 80 bytes. The first 16 bytes of the
partition represent the 2 least significant bits of pixel data. The remaining
64 bytes represent the 8 most significant bits of pixel data.
.. kernel-figure:: mt2110t.svg
:alt: mt2110t.svg
:align: center
Layout of MT2110T Chroma Tile
Filtering out the upper 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: 1
* -
- start + 0:
- start + 1:
- . . .
- start\ +\ 15:
* - Bits 1:0
- Y'\ :sub:`0:0`
- Y'\ :sub:`0:1`
- . . .
- Y'\ :sub:`0:15`
* - Bit 3:2
- Y'\ :sub:`1:0`
- Y'\ :sub:`1:1`
- . . .
- Y'\ :sub:`1:15`
* - Bits 5:4
- Y'\ :sub:`2:0`
- Y'\ :sub:`2:1`
- . . .
- Y'\ :sub:`2:15`
* - Bits 7:6
- 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: 2
:stub-columns: 1
* -
- :cspan:`3` Byte 0
- ...
- :cspan:`3` Byte 3
* -
- 7:6
- 5:4
- 3:2
- 1:0
- ...
- 7:6
- 5:4
- 3:2
- 1:0
* - start + 0:
- Y'\ :sub:`0:3`
- Y'\ :sub:`0:2`
- Y'\ :sub:`0:1`
- Y'\ :sub:`0:0`
- ...
- Y'\ :sub:`0:15`
- Y'\ :sub:`0:14`
- Y'\ :sub:`0:13`
- Y'\ :sub:`0:12`
* - start + 4:
- Y'\ :sub:`1:3`
- Y'\ :sub:`1:2`
- Y'\ :sub:`1:1`
- Y'\ :sub:`1:0`
- ...
- Y'\ :sub:`1:15`
- Y'\ :sub:`1:14`
- Y'\ :sub:`1:13`
- Y'\ :sub:`1:12`
* - start + 8:
- Y'\ :sub:`2:3`
- Y'\ :sub:`2:2`
- Y'\ :sub:`2:1`
- Y'\ :sub:`2:0`
- ...
- Y'\ :sub:`2:15`
- Y'\ :sub:`2:14`
- Y'\ :sub:`2:13`
- Y'\ :sub:`2:12`
* - start\ +\ 12:
- Y'\ :sub:`3:3`
- Y'\ :sub:`3:2`
- Y'\ :sub:`3:1`
- Y'\ :sub:`3:0`
- ...
- Y'\ :sub:`3:15`
- Y'\ :sub:`3:14`
- Y'\ :sub:`3:13`
- Y'\ :sub:`3:12`
.. _V4L2-PIX-FMT-NV16: .. _V4L2-PIX-FMT-NV16:
.. _V4L2-PIX-FMT-NV61: .. _V4L2-PIX-FMT-NV61:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment