106 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
 | |
| 
 | |
| .. _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)``
 | |
|     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`.
 |