Documentation/userspace-api/media/v4l/yuv-formats.rst
Source file repositories/reference/linux-study-clean/Documentation/userspace-api/media/v4l/yuv-formats.rst
File Facts
- System
- Linux kernel
- Corpus path
Documentation/userspace-api/media/v4l/yuv-formats.rst- Extension
.rst- Size
- 4737 bytes
- Lines
- 276
- Domain
- Support Tooling And Documentation
- Bucket
- Documentation
- Inferred role
- Support Tooling And Documentation: documentation
- Status
- atlas-only
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
.. c:namespace:: V4L
.. _yuv-formats:
***********
YUV Formats
***********
YUV is the format native to TV broadcast and composite video signals. It
separates the brightness information (Y) from the color information (U
and V or Cb and Cr). The color information consists of red and blue
*color difference* signals, this way the green component can be
reconstructed by subtracting from the brightness component. See
:ref:`colorspaces` for conversion examples. YUV was chosen because
early television would only transmit brightness information. To add
color in a way compatible with existing receivers a new signal carrier
was added to transmit the color difference signals.
Subsampling
===========
YUV formats commonly encode images with a lower resolution for the chroma
components than for the luma component. This compression technique, taking
advantage of the human eye being more sensitive to luminance than color
differences, is called chroma subsampling.
While many combinations of subsampling factors in the horizontal and vertical
direction are possible, common factors are 1 (no subsampling), 2 and 4, with
horizontal subsampling always larger than or equal to vertical subsampling.
Common combinations are named as follows.
- `4:4:4`: No subsampling
- `4:2:2`: Horizontal subsampling by 2, no vertical subsampling
- `4:2:0`: Horizontal subsampling by 2, vertical subsampling by 2
- `4:1:1`: Horizontal subsampling by 4, no vertical subsampling
- `4:1:0`: Horizontal subsampling by 4, vertical subsampling by 4
Subsampling the chroma component effectively creates chroma values that can be
located in different spatial locations:
- .. _yuv-chroma-centered:
The subsampled chroma value may be calculated by simply averaging the chroma
value of two consecutive pixels. It effectively models the chroma of a pixel
sited between the two original pixels. This is referred to as centered or
interstitially sited chroma.
- .. _yuv-chroma-cosited:
The other option is to subsample chroma values in a way that place them in
the same spatial sites as the pixels. This may be performed by skipping every
other chroma sample (creating aliasing artifacts), or with filters using an
odd number of taps. This is referred to as co-sited chroma.
The following examples show different combination of chroma siting in a 4x4
image.
.. flat-table:: 4:2:2 subsampling, interstitially sited
:header-rows: 1
:stub-columns: 1
* -
- 0
-
- 1
-
- 2
-
Annotation
- Atlas domain: Support Tooling And Documentation / Documentation.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.