1.17. JPEG 控制參考

JPEG 類包括用於 JPEG 編碼器和解碼器常見功能的控制元件。目前,它包括實現帶有霍夫曼熵編碼的漸進式基線 DCT 壓縮過程的編解碼器的功能。

1.17.1. JPEG 控制 ID

V4L2_CID_JPEG_CLASS (類)

JPEG 類描述符。為此控制元件呼叫 ioctls VIDIOC_QUERYCTRL、VIDIOC_QUERY_EXT_CTRL 和 VIDIOC_QUERYMENU 將返回此控制元件類的描述。

V4L2_CID_JPEG_CHROMA_SUBSAMPLING (選單)

色度子取樣因子描述了輸入影像的每個分量如何相對於每個空間維度中的最大采樣率進行取樣。有關詳細資訊,請參閱 ITU-T.81,條款 A.1.1。V4L2_CID_JPEG_CHROMA_SUBSAMPLING 控制元件決定了輸入影像從 RGB 轉換為 Y’CbCr 顏色空間後,Cb 和 Cr 分量如何進行下采樣。

V4L2_JPEG_CHROMA_SUBSAMPLING_444

無色度子取樣,每個畫素具有 Y、Cr 和 Cb 值。

V4L2_JPEG_CHROMA_SUBSAMPLING_422

將 Cr、Cb 分量水平子取樣 2 倍。

V4L2_JPEG_CHROMA_SUBSAMPLING_420

將 Cr、Cb 分量水平和垂直子取樣 2 倍。

V4L2_JPEG_CHROMA_SUBSAMPLING_411

將 Cr、Cb 分量水平子取樣 4 倍。

V4L2_JPEG_CHROMA_SUBSAMPLING_410

將 Cr、Cb 分量水平子取樣 4 倍,垂直子取樣 2 倍。

V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY

僅使用亮度分量。

V4L2_CID_JPEG_RESTART_INTERVAL (整數)

重啟間隔決定了插入 RSTm 標記(m = 0..7)的間隔。這些標記的目的是額外重新初始化編碼器程序,以便獨立處理影像塊。對於有失真壓縮過程,重啟間隔單位是 MCU(最小編碼單元),其值包含在 DRI(定義重啟間隔)標記中。如果 V4L2_CID_JPEG_RESTART_INTERVAL 控制元件設定為 0,則不會插入 DRI 和 RSTm 標記。

V4L2_CID_JPEG_COMPRESSION_QUALITY (整數)

決定影像質量和大小之間的權衡。它為應用程式控制影像質量提供了一種更簡單的方法,無需直接重新配置亮度量化表和色度量化表。在驅動程式使用應用程式直接配置的量化表(透過其他地方定義的介面)的情況下,驅動程式應將 V4L2_CID_JPEG_COMPRESSION_QUALITY 控制元件設定為 0。

此控制元件的值範圍是驅動程式特定的。只有正的、非零的值才有意義。推薦範圍是 1 - 100,其中值越大表示影像質量越好。

V4L2_CID_JPEG_ACTIVE_MARKER (位掩碼)

指定壓縮流中包含哪些 JPEG 標記。此控制元件僅對編碼器有效。

V4L2_JPEG_ACTIVE_MARKER_APP0

應用程式資料段 APP0

V4L2_JPEG_ACTIVE_MARKER_APP1

應用程式資料段 APP1

V4L2_JPEG_ACTIVE_MARKER_COM

註釋段。

V4L2_JPEG_ACTIVE_MARKER_DQT

量化表段。

V4L2_JPEG_ACTIVE_MARKER_DHT

霍夫曼表段。

有關 JPEG 規範的更多詳細資訊,請參閱 ITU-T.81JFIFW3C JPEG JFIF