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