114 lines
4.1 KiB
ReStructuredText
114 lines
4.1 KiB
ReStructuredText
|
.. Permission is granted to copy, distribute and/or modify this
|
||
|
.. document under the terms of the GNU Free Documentation License,
|
||
|
.. Version 1.1 or any later version published by the Free Software
|
||
|
.. Foundation, with no Invariant Sections, no Front-Cover Texts
|
||
|
.. and no Back-Cover Texts. A copy of the license is included at
|
||
|
.. Documentation/media/uapi/fdl-appendix.rst.
|
||
|
..
|
||
|
.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
|
||
|
|
||
|
.. _jpeg-controls:
|
||
|
|
||
|
**********************
|
||
|
JPEG Control Reference
|
||
|
**********************
|
||
|
|
||
|
The JPEG class includes controls for common features of JPEG encoders
|
||
|
and decoders. Currently it includes features for codecs implementing
|
||
|
progressive baseline DCT compression process with Huffman entrophy
|
||
|
coding.
|
||
|
|
||
|
|
||
|
.. _jpeg-control-id:
|
||
|
|
||
|
JPEG Control IDs
|
||
|
================
|
||
|
|
||
|
``V4L2_CID_JPEG_CLASS (class)``
|
||
|
The JPEG class descriptor. Calling
|
||
|
:ref:`VIDIOC_QUERYCTRL` for this control will
|
||
|
return a description of this control class.
|
||
|
|
||
|
``V4L2_CID_JPEG_CHROMA_SUBSAMPLING (menu)``
|
||
|
The chroma subsampling factors describe how each component of an
|
||
|
input image is sampled, in respect to maximum sample rate in each
|
||
|
spatial dimension. See :ref:`itu-t81`, clause A.1.1. for more
|
||
|
details. The ``V4L2_CID_JPEG_CHROMA_SUBSAMPLING`` control determines
|
||
|
how Cb and Cr components are downsampled after converting an input
|
||
|
image from RGB to Y'CbCr color space.
|
||
|
|
||
|
.. tabularcolumns:: |p{7.5cm}|p{10.0cm}|
|
||
|
|
||
|
.. flat-table::
|
||
|
:header-rows: 0
|
||
|
:stub-columns: 0
|
||
|
|
||
|
* - ``V4L2_JPEG_CHROMA_SUBSAMPLING_444``
|
||
|
- No chroma subsampling, each pixel has Y, Cr and Cb values.
|
||
|
* - ``V4L2_JPEG_CHROMA_SUBSAMPLING_422``
|
||
|
- Horizontally subsample Cr, Cb components by a factor of 2.
|
||
|
* - ``V4L2_JPEG_CHROMA_SUBSAMPLING_420``
|
||
|
- Subsample Cr, Cb components horizontally and vertically by 2.
|
||
|
* - ``V4L2_JPEG_CHROMA_SUBSAMPLING_411``
|
||
|
- Horizontally subsample Cr, Cb components by a factor of 4.
|
||
|
* - ``V4L2_JPEG_CHROMA_SUBSAMPLING_410``
|
||
|
- Subsample Cr, Cb components horizontally by 4 and vertically by 2.
|
||
|
* - ``V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY``
|
||
|
- Use only luminance component.
|
||
|
|
||
|
|
||
|
|
||
|
``V4L2_CID_JPEG_RESTART_INTERVAL (integer)``
|
||
|
The restart interval determines an interval of inserting RSTm
|
||
|
markers (m = 0..7). The purpose of these markers is to additionally
|
||
|
reinitialize the encoder process, in order to process blocks of an
|
||
|
image independently. For the lossy compression processes the restart
|
||
|
interval unit is MCU (Minimum Coded Unit) and its value is contained
|
||
|
in DRI (Define Restart Interval) marker. If
|
||
|
``V4L2_CID_JPEG_RESTART_INTERVAL`` control is set to 0, DRI and RSTm
|
||
|
markers will not be inserted.
|
||
|
|
||
|
.. _jpeg-quality-control:
|
||
|
|
||
|
``V4L2_CID_JPEG_COMPRESSION_QUALITY (integer)``
|
||
|
``V4L2_CID_JPEG_COMPRESSION_QUALITY`` control determines trade-off
|
||
|
between image quality and size. It provides simpler method for
|
||
|
applications to control image quality, without a need for direct
|
||
|
reconfiguration of luminance and chrominance quantization tables. In
|
||
|
cases where a driver uses quantization tables configured directly by
|
||
|
an application, using interfaces defined elsewhere,
|
||
|
``V4L2_CID_JPEG_COMPRESSION_QUALITY`` control should be set by
|
||
|
driver to 0.
|
||
|
|
||
|
The value range of this control is driver-specific. Only positive,
|
||
|
non-zero values are meaningful. The recommended range is 1 - 100,
|
||
|
where larger values correspond to better image quality.
|
||
|
|
||
|
.. _jpeg-active-marker-control:
|
||
|
|
||
|
``V4L2_CID_JPEG_ACTIVE_MARKER (bitmask)``
|
||
|
Specify which JPEG markers are included in compressed stream. This
|
||
|
control is valid only for encoders.
|
||
|
|
||
|
|
||
|
|
||
|
.. flat-table::
|
||
|
:header-rows: 0
|
||
|
:stub-columns: 0
|
||
|
|
||
|
* - ``V4L2_JPEG_ACTIVE_MARKER_APP0``
|
||
|
- Application data segment APP\ :sub:`0`.
|
||
|
* - ``V4L2_JPEG_ACTIVE_MARKER_APP1``
|
||
|
- Application data segment APP\ :sub:`1`.
|
||
|
* - ``V4L2_JPEG_ACTIVE_MARKER_COM``
|
||
|
- Comment segment.
|
||
|
* - ``V4L2_JPEG_ACTIVE_MARKER_DQT``
|
||
|
- Quantization tables segment.
|
||
|
* - ``V4L2_JPEG_ACTIVE_MARKER_DHT``
|
||
|
- Huffman tables segment.
|
||
|
|
||
|
|
||
|
|
||
|
For more details about JPEG specification, refer to :ref:`itu-t81`,
|
||
|
:ref:`jfif`, :ref:`w3c-jpeg-jfif`.
|