1.15. 编解码器控制参考¶
下面描述了编解码器控制类中的所有控件。首先是通用控件,然后是特定于某些硬件的控件。
注意
这些控件适用于所有编解码器,而不仅仅是 MPEG。这些定义以 V4L2_CID_MPEG/V4L2_MPEG 为前缀,因为这些控件最初是为 MPEG 编解码器制作的,后来扩展到涵盖所有编码格式。
1.15.1. 通用编解码器控制¶
1.15.1.1. 编解码器控制 ID¶
V4L2_CID_CODEC_CLASS (类)
编解码器类描述符。调用 ioctls VIDIOC_QUERYCTRL、VIDIOC_QUERY_EXT_CTRL 和 VIDIOC_QUERYMENU 获取此控件将返回此控制类的描述。此描述可以用作 GUI 中选项卡页面的标题,例如。
V4L2_CID_MPEG_STREAM_TYPE
(枚举)
- enum v4l2_mpeg_stream_type -
MPEG-1、-2 或 -4 输出流类型。这里不能假设任何事情。每个硬件 MPEG 编码器倾向于支持可用 MPEG 流类型的不同子集。此控件特定于多路复用 MPEG 流。当前定义的流类型为
|
MPEG-2 程序流 |
|
MPEG-2 传输流 |
|
MPEG-1 系统流 |
|
MPEG-2 DVD 兼容流 |
|
MPEG-1 VCD 兼容流 |
|
MPEG-2 SVCD 兼容流 |
V4L2_CID_MPEG_STREAM_PID_PMT (整数)
MPEG 传输流的程序映射表数据包 ID (默认值为 16)
V4L2_CID_MPEG_STREAM_PID_AUDIO (整数)
MPEG 传输流的音频数据包 ID (默认值为 256)
V4L2_CID_MPEG_STREAM_PID_VIDEO (整数)
MPEG 传输流的视频数据包 ID (默认值为 260)
V4L2_CID_MPEG_STREAM_PID_PCR (整数)
MPEG 传输流中携带 PCR 字段的数据包 ID (默认值为 259)
V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (整数)
MPEG PES 的音频 ID
V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (整数)
MPEG PES 的视频 ID
V4L2_CID_MPEG_STREAM_VBI_FMT
(枚举)
- enum v4l2_mpeg_stream_vbi_fmt -
某些卡可以将 VBI 数据(例如,隐藏式字幕、图文电视)嵌入到 MPEG 流中。此控件选择是否应嵌入 VBI 数据,如果应嵌入,则应使用哪种嵌入方法。可能的 VBI 格式列表取决于驱动程序。当前定义的 VBI 格式类型为
|
MPEG 流中没有 VBI |
|
私有数据包中的 VBI,IVTV 格式 (在内核源代码的文件 |
V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ
(枚举)
- enum v4l2_mpeg_audio_sampling_freq -
MPEG 音频采样频率。可能的值为
|
44.1 kHz |
|
48 kHz |
|
32 kHz |
V4L2_CID_MPEG_AUDIO_ENCODING
(枚举)
- enum v4l2_mpeg_audio_encoding -
MPEG 音频编码。此控件特定于多路复用 MPEG 流。可能的值为
|
MPEG-1/2 Layer I 编码 |
|
MPEG-1/2 Layer II 编码 |
|
MPEG-1/2 Layer III 编码 |
|
MPEG-2/4 AAC(高级音频编码) |
|
AC-3 也称为 ATSC A/52 编码 |
V4L2_CID_MPEG_AUDIO_L1_BITRATE
(枚举)
- enum v4l2_mpeg_audio_l1_bitrate -
MPEG-1/2 Layer I 比特率。可能的值为
|
32 千比特/秒 |
|
64 千比特/秒 |
|
96 千比特/秒 |
|
128 千比特/秒 |
|
160 千比特/秒 |
|
192 千比特/秒 |
|
224 千比特/秒 |
|
256 千比特/秒 |
|
288 千比特/秒 |
|
320 千比特/秒 |
|
352 千比特/秒 |
|
384 千比特/秒 |
|
416 千比特/秒 |
|
448 千比特/秒 |
V4L2_CID_MPEG_AUDIO_L2_BITRATE
(枚举)
- enum v4l2_mpeg_audio_l2_bitrate -
MPEG-1/2 Layer II 比特率。可能的值为
|
32 千比特/秒 |
|
48 千比特/秒 |
|
56 千比特/秒 |
|
64 千比特/秒 |
|
80 千比特/秒 |
|
96 千比特/秒 |
|
112 千比特/秒 |
|
128 千比特/秒 |
|
160 千比特/秒 |
|
192 千比特/秒 |
|
224 千比特/秒 |
|
256 千比特/秒 |
|
320 千比特/秒 |
|
384 千比特/秒 |
V4L2_CID_MPEG_AUDIO_L3_BITRATE
(枚举)
- enum v4l2_mpeg_audio_l3_bitrate -
MPEG-1/2 Layer III 比特率。可能的值为
|
32 千比特/秒 |
|
40 千比特/秒 |
|
48 千比特/秒 |
|
56 千比特/秒 |
|
64 千比特/秒 |
|
80 千比特/秒 |
|
96 千比特/秒 |
|
112 千比特/秒 |
|
128 千比特/秒 |
|
160 千比特/秒 |
|
192 千比特/秒 |
|
224 千比特/秒 |
|
256 千比特/秒 |
|
320 千比特/秒 |
V4L2_CID_MPEG_AUDIO_AAC_BITRATE (整数)
AAC 比特率,以比特每秒为单位。
V4L2_CID_MPEG_AUDIO_AC3_BITRATE
(枚举)
- enum v4l2_mpeg_audio_ac3_bitrate -
AC-3 比特率。可能的值为
|
32 千比特/秒 |
|
40 千比特/秒 |
|
48 千比特/秒 |
|
56 千比特/秒 |
|
64 千比特/秒 |
|
80 千比特/秒 |
|
96 千比特/秒 |
|
112 千比特/秒 |
|
128 千比特/秒 |
|
160 千比特/秒 |
|
192 千比特/秒 |
|
224 千比特/秒 |
|
256 千比特/秒 |
|
320 千比特/秒 |
|
384 千比特/秒 |
|
448 千比特/秒 |
|
512 千比特/秒 |
|
576 千比特/秒 |
|
640 千比特/秒 |
V4L2_CID_MPEG_AUDIO_MODE
(枚举)
- enum v4l2_mpeg_audio_mode -
MPEG 音频模式。可能的值为
|
立体声 |
|
联合立体声 |
|
双语 |
|
单声道 |
V4L2_CID_MPEG_AUDIO_MODE_EXTENSION
(枚举)
- enum v4l2_mpeg_audio_mode_extension -
联合立体声音频模式扩展。在 Layer I 和 II 中,它们指示哪些子带处于强度立体声中。所有其他子带都以立体声编码。Layer III 尚不支持。可能的值为
|
子带 4-31 处于强度立体声中 |
|
子带 8-31 处于强度立体声中 |
|
子带 12-31 处于强度立体声中 |
|
子带 16-31 处于强度立体声中 |
V4L2_CID_MPEG_AUDIO_EMPHASIS
(枚举)
- enum v4l2_mpeg_audio_emphasis -
音频加重。可能的值为
|
无 |
|
50/15 微秒加重 |
|
CCITT J.17 |
V4L2_CID_MPEG_AUDIO_CRC
(枚举)
- enum v4l2_mpeg_audio_crc -
CRC 方法。可能的值为
|
无 |
|
16 位奇偶校验 |
V4L2_CID_MPEG_AUDIO_MUTE (布尔值)
捕获时使音频静音。这不是通过使音频硬件静音来完成的,音频硬件仍然会产生轻微的嘶嘶声,而是在编码器本身中完成的,从而保证了固定且可重复的音频比特流。0 = 取消静音,1 = 静音。
V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK
(枚举)
- enum v4l2_mpeg_audio_dec_playback -
确定应如何播放单语音频。可能的值为
|
自动确定最佳播放模式。 |
|
立体声播放。 |
|
左声道播放。 |
|
右声道播放。 |
|
单声道播放。 |
|
左右声道交换的立体声播放。 |
V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK
(枚举)
- enum v4l2_mpeg_audio_dec_playback -
确定应如何播放多语音频。
V4L2_CID_MPEG_VIDEO_ENCODING
(枚举)
- enum v4l2_mpeg_video_encoding -
MPEG 视频编码方法。此控件专用于多路复用的 MPEG 流。可能的值为:
|
MPEG-1 视频编码 |
|
MPEG-2 视频编码 |
|
MPEG-4 AVC (H.264) 视频编码 |
V4L2_CID_MPEG_VIDEO_ASPECT
(枚举)
- enum v4l2_mpeg_video_aspect -
视频宽高比。可能的值为:
|
|
|
|
V4L2_CID_MPEG_VIDEO_B_FRAMES (整数)
B 帧的数量(默认值为 2)
V4L2_CID_MPEG_VIDEO_GOP_SIZE (整数)
GOP 大小(默认值为 12)
V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (布尔值)
GOP 闭合(默认值为 1)
V4L2_CID_MPEG_VIDEO_PULLDOWN (布尔值)
启用 3:2 下拉(默认值为 0)
V4L2_CID_MPEG_VIDEO_BITRATE_MODE
(枚举)
- enum v4l2_mpeg_video_bitrate_mode -
视频比特率模式。可能的值为:
|
可变比特率 |
|
恒定比特率 |
|
恒定质量 |
V4L2_CID_MPEG_VIDEO_BITRATE (整数)
平均视频比特率,单位为比特/秒。
V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (整数)
峰值视频比特率,单位为比特/秒。必须大于或等于平均视频比特率。如果视频比特率模式设置为恒定比特率,则忽略此值。
V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY (整数)
恒定质量级别控制。当
V4L2_CID_MPEG_VIDEO_BITRATE_MODE
的值为V4L2_MPEG_VIDEO_BITRATE_MODE_CQ
时,此控件适用。有效范围为 1 到 100,其中 1 表示最低质量,100 表示最高质量。编码器将决定适当的量化参数和比特率,以产生所请求的帧质量。
V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (枚举)
- enum v4l2_mpeg_video_frame_skip_mode -
指示编码器在什么条件下应该跳过帧。如果编码帧会导致编码流大于选定的数据限制,则会跳过该帧。可能的值为:
|
禁用帧跳过模式。 |
|
启用帧跳过模式,缓冲区限制由选定的级别设置,并由标准定义。 |
|
启用帧跳过模式,缓冲区限制由 VBV (MPEG1/2/4) 或 CPB (H264) 缓冲区大小 控件设置。 |
V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (整数)
对于捕获的每一帧,跳过此数量的后续帧(默认值为 0)。
V4L2_CID_MPEG_VIDEO_MUTE (布尔值)
捕获时将视频“静音”为固定颜色。这对于测试很有用,可以生成固定的视频比特流。0 = 取消静音,1 = 静音。
V4L2_CID_MPEG_VIDEO_MUTE_YUV (整数)
设置视频的“静音”颜色。提供的 32 位整数的解释如下(位 0 = 最低有效位):
位 0:7 |
V 色度信息 |
位 8:15 |
U 色度信息 |
位 16:23 |
Y 亮度信息 |
位 24:31 |
必须为零。 |
V4L2_CID_MPEG_VIDEO_DEC_PTS (整数64)
此只读控件返回当前显示帧的 33 位视频呈现时间戳,如 ITU T-REC-H.222.0 和 ISO/IEC 13818-1 中定义。这与 ioctl VIDIOC_DECODER_CMD, VIDIOC_TRY_DECODER_CMD 中使用的 PTS 相同。
V4L2_CID_MPEG_VIDEO_DEC_FRAME (整数64)
此只读控件返回当前显示(解码)帧的帧计数器。每当启动解码器时,此值都会重置为 0。
V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (整数64)
此控件在 YUV 颜色空间中设置隐藏颜色。它描述了在参考帧丢失的情况下客户端对错误隐藏颜色的偏好。解码器应使用首选颜色填充参考缓冲区,并将其用于将来的解码。该控件每个通道使用 16 位。适用于解码器。
8 位格式 |
10 位格式 |
12 位格式 |
|
Y 亮度 |
位 0:7 |
位 0:9 |
位 0:11 |
Cb 色度 |
位 16:23 |
位 16:25 |
位 16:27 |
Cr 色度 |
位 32:39 |
位 32:41 |
位 32:43 |
必须为零 |
位 48:63 |
位 48:63 |
位 48:63 |
V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (布尔值)
如果启用,则解码器期望每个缓冲区接收单个切片,否则解码器期望每个缓冲区接收单个帧。适用于解码器,所有编解码器。
V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (布尔值)
如果启用了显示延迟,则解码器在处理一定数量的 OUTPUT 缓冲区后,将强制返回 CAPTURE 缓冲区(解码的帧)。可以通过
V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY
设置延迟。此功能可用于例如生成视频缩略图。适用于解码器。V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (整数)
解码器的显示延迟值。解码器在设置的“显示延迟”帧数后,将强制返回解码的帧。如果此数字较低,则可能会导致返回的帧不按显示顺序排列,此外,硬件可能仍将返回的缓冲区用作后续帧的参考图片。
V4L2_CID_MPEG_VIDEO_AU_DELIMITER (布尔值)
如果启用,则将生成 AUD(访问单元分隔符)NALU。这可能有助于在无需完全解析每个 NALU 的情况下找到帧的开头。适用于 H264 和 HEVC 编码器。
V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (布尔值)
启用在视频可用性信息中写入采样宽高比。适用于 H264 编码器。
V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC
(枚举)
- enum v4l2_mpeg_video_h264_vui_sar_idc -
H.264 编码的 VUI 采样宽高比指示符。该值在标准中的表 E-1 中定义。适用于 H264 编码器。
|
未指定 |
|
1x1 |
|
12x11 |
|
10x11 |
|
16x11 |
|
40x33 |
|
24x11 |
|
20x11 |
|
32x11 |
|
80x33 |
|
18x11 |
|
15x11 |
|
64x33 |
|
160x99 |
|
4x3 |
|
3x2 |
|
2x1 |
|
扩展 SAR |
V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (整数)
H.264 VUI 编码的扩展采样宽高比宽度。适用于 H264 编码器。
V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (整数)
H.264 VUI 编码的扩展采样宽高比高度。适用于 H264 编码器。
V4L2_CID_MPEG_VIDEO_H264_LEVEL
(枚举)
- enum v4l2_mpeg_video_h264_level -
H264 视频基本流的级别信息。适用于 H264 编码器。可能的值为:
|
级别 1.0 |
|
级别 1B |
|
级别 1.1 |
|
级别 1.2 |
|
级别 1.3 |
|
级别 2.0 |
|
级别 2.1 |
|
级别 2.2 |
|
级别 3.0 |
|
级别 3.1 |
|
级别 3.2 |
|
级别 4.0 |
|
级别 4.1 |
|
级别 4.2 |
|
级别 5.0 |
|
级别 5.1 |
|
级别 5.2 |
|
级别 6.0 |
|
级别 6.1 |
|
级别 6.2 |
V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL
(枚举)
- enum v4l2_mpeg_video_mpeg2_level -
MPEG2 基本流的级别信息。适用于 MPEG2 编解码器。可能的值为:
|
低级别 (LL) |
|
主级别 (ML) |
|
高-1440 级别 (H-14) |
|
高级别 (HL) |
V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL
(枚举)
- enum v4l2_mpeg_video_mpeg4_level -
MPEG4 基本流的级别信息。适用于 MPEG4 编码器。可能的值为:
|
级别 0 |
|
级别 0b |
|
级别 1 |
|
级别 2 |
|
级别 3 |
|
级别 3b |
|
级别 4 |
|
级别 5 |
V4L2_CID_MPEG_VIDEO_H264_PROFILE
(枚举)
- enum v4l2_mpeg_video_h264_profile -
H264 的配置文件信息。适用于 H264 编码器。可能的值为:
|
基线配置文件 |
|
约束基线配置文件 |
|
主配置文件 |
|
扩展配置文件 |
|
高配置文件 |
|
高 10 配置文件 |
|
高 422 配置文件 |
|
高 444 预测配置文件 |
|
高 10 帧内配置文件 |
|
高 422 帧内配置文件 |
|
高 444 帧内配置文件 |
|
CAVLC 444 帧内配置文件 |
|
可缩放基线配置文件 |
|
可缩放高配置文件 |
|
可缩放高帧内配置文件 |
|
立体高配置文件 |
|
多视图高配置文件 |
|
约束高配置文件 |
V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE
(枚举)
- enum v4l2_mpeg_video_mpeg2_profile -
MPEG2 的配置文件信息。适用于 MPEG2 编解码器。可能的值有:
|
简单配置文件 (SP) |
|
主要配置文件 (MP) |
|
SNR 可伸缩配置文件 (SNR) |
|
空间可伸缩配置文件 (Spt) |
|
高配置文件 (HP) |
|
多视点配置文件 (MVP) |
V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE
(枚举)
- enum v4l2_mpeg_video_mpeg4_profile -
MPEG4 的配置文件信息。适用于 MPEG4 编码器。可能的值有:
|
简单配置文件 |
|
高级简单配置文件 |
|
核心配置文件 |
|
简单可伸缩配置文件 |
|
高级编码效率配置文件 |
V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (整数)
用于编码的最大参考图片数量。适用于编码器。
V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE
(枚举)
- enum v4l2_mpeg_video_multi_slice_mode -
确定编码器如何处理将帧划分为片。适用于编码器。可能的值有:
|
每帧一个片。 |
|
多个片,每个片设置最大宏块数。 |
|
多个片,每个片设置最大字节大小。 |
V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (整数)
一个片中的最大宏块数。当
V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE
设置为V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB
时使用。适用于编码器。V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (整数)
一个片的最大字节大小。当
V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE
设置为V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES
时使用。适用于编码器。
V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE
(枚举)
- enum v4l2_mpeg_video_h264_loop_filter_mode -
H264 编码器的环路滤波模式。可能的值有:
|
启用环路滤波器。 |
|
禁用环路滤波器。 |
|
在片边界禁用环路滤波器。 |
V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (整数)
H264 标准中定义的环路滤波 alpha 系数。此值对应于 slice_alpha_c0_offset_div2 片头字段,应在 -6 到 +6 的范围内(包括端点)。实际 alpha 偏移量 FilterOffsetA 是此值的两倍。适用于 H264 编码器。
V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (整数)
H264 标准中定义的环路滤波 beta 系数。此值对应于 slice_beta_offset_div2 片头字段,应在 -6 到 +6 的范围内(包括端点)。实际 beta 偏移量 FilterOffsetB 是此值的两倍。适用于 H264 编码器。
V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE
(枚举)
- enum v4l2_mpeg_video_h264_entropy_mode -
H264 的熵编码模式 - CABAC/CAVLC。适用于 H264 编码器。可能的值有:
|
使用 CAVLC 熵编码。 |
|
使用 CABAC 熵编码。 |
V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (布尔值)
为 H264 启用 8X8 变换。适用于 H264 编码器。
V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (布尔值)
为 H264 启用约束帧内预测。适用于 H264 编码器。
V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (整数)
指定应添加到亮度量化参数以确定色度量化参数的偏移量。适用于 H264 编码器。
V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (整数)
循环帧内宏块刷新。这是每帧刷新的连续宏块数。每帧刷新一组连续的宏块,直到循环完成并从帧顶部开始。将此控件设置为零表示宏块将不被刷新。请注意,当
V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD
控件设置为非零值时,此控件将不起作用。适用于 H264、H263 和 MPEG4 编码器。
V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE (枚举)
- enum v4l2_mpeg_video_intra_refresh_period_type -
设置帧内刷新类型。刷新整个帧的周期由 V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD 指定。请注意,如果不存在此控件,则未定义使用哪种刷新类型,并且由驱动程序决定。适用于 H264 和 HEVC 编码器。可能的值有:
|
在指定周期后,整个帧将完全随机刷新。 |
|
在指定周期后,整个帧的 MB 将按循环顺序完全刷新。 |
V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD (整数)
帧内宏块刷新周期。这将设置刷新整个帧的周期。换句话说,这定义了将对整个帧进行帧内刷新的帧数。例如:将周期设置为 1 表示将刷新整个帧,将周期设置为 2 表示将在 frameX 上刷新一半的宏块,并在 frameX + 1 中刷新另一半宏块,依此类推。将周期设置为零表示未指定周期。请注意,如果客户端将此控件设置为非零值,则应忽略
V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB
控件。适用于 H264 和 HEVC 编码器。V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (布尔值)
启用帧级速率控制。如果禁用此控件,则每种帧类型的量化参数是恒定的,并使用适当的控件设置(例如
V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP
)。如果启用帧速率控制,则会调整量化参数以满足选定的比特率。可以使用适当的控件设置量化参数的最小值和最大值(例如V4L2_CID_MPEG_VIDEO_H263_MIN_QP
)。适用于编码器。V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (布尔值)
启用宏块级速率控制。适用于 MPEG4 和 H264 编码器。
V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (布尔值)
MPEG4 的四分之一像素运动估计。适用于 MPEG4 编码器。
V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (整数)
H263 的 I 帧的量化参数。有效范围:从 1 到 31。
V4L2_CID_MPEG_VIDEO_H263_MIN_QP (整数)
H263 的最小量化参数。有效范围:从 1 到 31。
V4L2_CID_MPEG_VIDEO_H263_MAX_QP (整数)
H263 的最大量化参数。有效范围:从 1 到 31。
V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (整数)
H263 的 P 帧的量化参数。有效范围:从 1 到 31。
V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (整数)
H263 的 B 帧的量化参数。有效范围:从 1 到 31。
V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (整数)
H264 的 I 帧的量化参数。有效范围:从 0 到 51。
V4L2_CID_MPEG_VIDEO_H264_MIN_QP (整数)
H264 的最小量化参数。有效范围:从 0 到 51。
V4L2_CID_MPEG_VIDEO_H264_MAX_QP (整数)
H264 的最大量化参数。有效范围:从 0 到 51。
V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (整数)
H264 的 P 帧的量化参数。有效范围:从 0 到 51。
V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (整数)
H264 的 B 帧的量化参数。有效范围:从 0 到 51。
V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (整数)
H264 I 帧的最小量化参数,用于将 I 帧质量限制在一定范围内。有效范围:从 0 到 51。如果还设置了 V4L2_CID_MPEG_VIDEO_H264_MIN_QP,则应选择量化参数以满足两个要求。
V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (整数)
H264 I 帧的最大量化参数,用于将 I 帧质量限制在一定范围内。有效范围:从 0 到 51。如果还设置了 V4L2_CID_MPEG_VIDEO_H264_MAX_QP,则应选择量化参数以满足两个要求。
V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (整数)
H264 P 帧的最小量化参数,用于将 P 帧质量限制在一定范围内。有效范围:从 0 到 51。如果还设置了 V4L2_CID_MPEG_VIDEO_H264_MIN_QP,则应选择量化参数以满足两个要求。
V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (整数)
H264 P 帧的最大量化参数,用于将 P 帧质量限制在一定范围内。有效范围:从 0 到 51。如果还设置了 V4L2_CID_MPEG_VIDEO_H264_MAX_QP,则应选择量化参数以满足两个要求。
V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP (整数)
H264 B 帧的最小量化参数,用于将 B 帧质量限制在一定范围内。有效范围:从 0 到 51。如果还设置了 V4L2_CID_MPEG_VIDEO_H264_MIN_QP,则应选择量化参数以满足两个要求。
V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP (整数)
H264 B 帧的最大量化参数,用于将 B 帧质量限制在一定范围内。有效范围:从 0 到 51。如果还设置了 V4L2_CID_MPEG_VIDEO_H264_MAX_QP,则应选择量化参数以满足两个要求。
V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (整数)
MPEG4 的 I 帧的量化参数。有效范围:从 1 到 31。
V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (整数)
MPEG4 的最小量化参数。有效范围:从 1 到 31。
V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (整数)
MPEG4 的最大量化参数。有效范围:从 1 到 31。
V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (整数)
MPEG4 的 P 帧的量化参数。有效范围:从 1 到 31。
V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (整数)
MPEG4 的 B 帧的量化参数。有效范围:从 1 到 31。
V4L2_CID_MPEG_VIDEO_VBV_SIZE (整数)
视频缓冲验证器 (Video Buffer Verifier, VBV) 的大小,单位为千字节 (KB),用作帧跳过的限制。VBV 在标准中被定义为验证产生的码流是否能够成功解码的一种方法。标准将其描述为“一个概念上连接到编码器输出的假设解码器的一部分。其目的是对编码器或编辑过程可能产生的数据速率的可变性提供约束。” 适用于 MPEG1、MPEG2、MPEG4 编码器。
V4L2_CID_MPEG_VIDEO_VBV_DELAY (整数)
设置 VBV 缓冲区控制的初始延迟,单位为毫秒。
V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (整数)
水平搜索范围定义了在参考帧中搜索和匹配当前宏块 (MB) 的最大水平搜索区域,单位为像素。此 V4L2 控制宏用于设置视频编码器中运动估计模块的水平搜索范围。
V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (整数)
垂直搜索范围定义了在参考帧中搜索和匹配当前宏块 (MB) 的最大垂直搜索区域,单位为像素。此 V4L2 控制宏用于设置视频编码器中运动估计模块的垂直搜索范围。
V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (按钮)
强制下一个排队的缓冲区为关键帧。适用于编码器。这是一个通用的、与编解码器无关的关键帧控制。
V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (整数)
编码图像缓冲区 (Coded Picture Buffer, CPB) 的大小,单位为千字节 (KB),用作帧跳过的限制。CPB 在 H.264 标准中被定义为验证产生的码流是否能够成功解码的一种方法。适用于 H.264 编码器。
V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (整数)
H.264 开放 GOP 中 I 帧之间的周期。在开放 GOP 的情况下,这是两个 I 帧之间的周期。IDR(即时解码刷新)帧之间的周期取自 GOP_SIZE 控制。IDR 帧,代表即时解码刷新,是一个 I 帧,其后没有引用之前的帧。这意味着可以从 IDR 帧重新启动码流,而无需存储或解码任何之前的帧。适用于 H.264 编码器。
V4L2_CID_MPEG_VIDEO_HEADER_MODE
(枚举)
- enum v4l2_mpeg_video_header_mode -
确定标头是作为第一个缓冲区返回还是与第一个帧一起返回。适用于编码器。可能的值为
|
码流标头单独在第一个缓冲区中返回。 |
|
码流标头与第一个编码帧一起返回。 |
V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (布尔值)
重复视频序列标头。重复这些标头使随机访问视频流更容易。适用于 MPEG1、2 和 4 编码器。
V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (布尔值)
为 MPEG4 解码器启用去块后处理滤波器。适用于 MPEG4 解码器。
V4L2_CID_MPEG_VIDEO_MPEG4_VOP_TIME_RES (整数)
MPEG4 的 vop_time_increment_resolution 值。适用于 MPEG4 编码器。
V4L2_CID_MPEG_VIDEO_MPEG4_VOP_TIME_INC (整数)
MPEG4 的 vop_time_increment 值。适用于 MPEG4 编码器。
V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (布尔值)
启用在编码的比特流中生成帧打包补充增强信息。帧打包 SEI 消息包含用于 3D 查看的 L 和 R 平面的排列。适用于 H.264 编码器。
V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (布尔值)
将当前帧设置为帧打包 SEI 中的 frame0。适用于 H.264 编码器。
V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE
(枚举)
- enum v4l2_mpeg_video_h264_sei_fp_arrangement_type -
H.264 SEI 的帧打包排列类型。适用于 H.264 编码器。可能的值为
|
像素交替来自 L 和 R。 |
|
L 和 R 按列交错。 |
|
L 和 R 按行交错。 |
|
L 在左侧,R 在右侧。 |
|
L 在顶部,R 在底部。 |
|
每个帧一个视图。 |
V4L2_CID_MPEG_VIDEO_H264_FMO (布尔值)
启用编码比特流中的灵活宏块排序。这是一种用于重构图片中宏块顺序的技术。适用于 H.264 编码器。
V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE
(枚举)
- enum v4l2_mpeg_video_h264_fmo_map_type -
使用 FMO 时,映射类型将图像划分为宏块的不同扫描模式。适用于 H.264 编码器。可能的值为
|
切片以游程长度顺序一个接一个地交错。 |
|
基于编码器和解码器都知道的数学函数来散布宏块。 |
|
宏块排列在矩形区域或感兴趣区域中。 |
|
切片组以循环方式从中心向外增长。 |
|
切片组以光栅扫描模式从左向右增长。 |
|
切片组以擦拭扫描模式从上到下增长。 |
|
用户定义的映射类型。 |
V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (整数)
FMO 中的切片组数量。适用于 H.264 编码器。
V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION
(枚举)
- enum v4l2_mpeg_video_h264_fmo_change_dir -
指定光栅和擦拭映射的切片组更改方向。适用于 H.264 编码器。可能的值为
|
光栅扫描或向右擦拭。 |
|
反向光栅扫描或向左擦拭。 |
V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (整数)
指定光栅和擦拭映射的第一个切片组的大小。适用于 H.264 编码器。
V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (整数)
指定交错映射的连续宏块数。适用于 H.264 编码器。
V4L2_CID_MPEG_VIDEO_H264_ASO (布尔值)
在编码比特流中启用任意切片排序。适用于 H.264 编码器。
V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (整数)
指定 ASO 中的切片顺序。适用于 H.264 编码器。提供的 32 位整数的解释如下(位 0 = 最低有效位)
位 0:15 |
切片 ID |
位 16:32 |
切片位置或顺序 |
V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (布尔值)
启用 H.264 分层编码。适用于 H.264 编码器。
V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE
(枚举)
- enum v4l2_mpeg_video_h264_hierarchical_coding_type -
指定分层编码类型。适用于 H.264 编码器。可能的值为
|
分层 B 编码。 |
|
分层 P 编码。 |
V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (整数)
指定分层编码层的数量。适用于 H.264 编码器。
V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (整数)
为每层指定用户定义的 QP。适用于 H.264 编码器。提供的 32 位整数的解释如下(位 0 = 最低有效位)
位 0:15 |
QP 值 |
位 16:32 |
层数 |
V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR (整数)
指示 H.264 编码器分层编码层 0 的比特率 (bps)。
V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR (整数)
指示 H.264 编码器分层编码层 1 的比特率 (bps)。
V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR (整数)
指示 H.264 编码器分层编码层 2 的比特率 (bps)。
V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR (整数)
指示 H.264 编码器分层编码层 3 的比特率 (bps)。
V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR (整数)
指示 H.264 编码器分层编码层 4 的比特率 (bps)。
V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR (整数)
指示 H.264 编码器分层编码层 5 的比特率 (bps)。
V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR (整数)
指示 H.264 编码器分层编码层 6 的比特率 (bps)。
V4L2_CID_FWHT_I_FRAME_QP (整数)
FWHT 的 I 帧的量化参数。有效范围:从 1 到 31。
V4L2_CID_FWHT_P_FRAME_QP (整数)
FWHT 的 P 帧的量化参数。有效范围:从 1 到 31。
V4L2_CID_MPEG_VIDEO_AVERAGE_QP (整数)
此只读控件返回当前编码帧的平均 QP 值。该值适用于最后出队的捕获缓冲区 (VIDIOC_DQBUF)。其有效范围取决于编码格式和参数。对于 H.264,其有效范围为 0 到 51。对于 HEVC,其有效范围对于 8 位为 0 到 51,对于 10 位为 0 到 63。对于 H.263 和 MPEG4,其有效范围为 1 到 31。对于 VP8,其有效范围为 0 到 127。对于 VP9,其有效范围为 0 到 255。如果设置了编解码器的 MIN_QP 和 MAX_QP,则 QP 将满足这两个要求。编解码器需要始终使用指定的范围,而不是 HW 自定义范围。适用于编码器
1.15.2. MFC 5.1 MPEG 控制¶
以下 MPEG 类控制处理特定于三星 S5P 系列 SoC 中存在的 Multi Format Codec 5.1 设备的 MPEG 解码和编码设置。
1.15.2.1. MFC 5.1 控制 ID¶
V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (布尔值)
如果启用了显示延迟,则解码器在处理一定数量的 OUTPUT 缓冲区后,会被强制返回一个 CAPTURE 缓冲区(解码帧)。可以通过
V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY
设置延迟。此功能可以用于例如生成视频的缩略图。适用于 H264 解码器。注意
此控件已弃用。请改用标准的
V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY
控件。V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (整数)
H264 解码器的显示延迟值。解码器在设置的“显示延迟”帧数之后会被强制返回解码帧。如果此数字较低,可能会导致返回的帧顺序不一致,此外,硬件可能仍将返回的缓冲区用作后续帧的参考图像。
注意
此控件已弃用。请改用标准的
V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY
控件。V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (整数)
用于编码 P 图像的参考图像数量。适用于 H264 编码器。
V4L2_CID_MPEG_MFC51_VIDEO_PADDING (布尔值)
编码器中的填充启用 - 使用颜色代替重复的边界像素。适用于编码器。
V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (整数)
编码器中的填充颜色。适用于编码器。提供的 32 位整数按以下方式解释(位 0 = 最低有效位)
位 0:7 |
V 色度信息 |
位 8:15 |
U 色度信息 |
位 16:23 |
Y 亮度信息 |
位 24:31 |
必须为零。 |
V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (整数)
MFC 速率控制的反应系数。适用于编码器。
注意
仅当启用帧级别 RC 时有效。
对于紧凑的 CBR,此字段必须很小(例如 2 ~ 10)。对于 VBR,此字段必须很大(例如 100 ~ 1000)。
不建议使用大于 FRAME_RATE * (10^9 / BIT_RATE) 的数字。
V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (布尔值)
暗区域的自适应速率控制。仅当启用 H.264 和宏块级别 RC 时有效 (
V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE
)。适用于 H264 编码器。V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (布尔值)
平滑区域的自适应速率控制。仅当启用 H.264 和宏块级别 RC 时有效 (
V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE
)。适用于 H264 编码器。V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (布尔值)
静态区域的自适应速率控制。仅当启用 H.264 和宏块级别 RC 时有效 (
V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE
)。适用于 H264 编码器。V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (布尔值)
活动区域的自适应速率控制。仅当启用 H.264 和宏块级别 RC 时有效 (
V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE
)。适用于 H264 编码器。
V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE
(枚举)
注意
此控件已弃用。请改用标准的
V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE
控件。- enum v4l2_mpeg_mfc51_video_frame_skip_mode -
指示编码器在什么条件下应该跳过帧。如果编码帧会导致编码流大于选定的数据限制,则会跳过该帧。可能的值为:
|
禁用帧跳过模式。 |
|
启用帧跳过模式,缓冲区限制由选定的级别设置,并由标准定义。 |
|
启用跳帧模式,缓冲区限制由 VBV (MPEG1/2/4) 或 CPB (H264) 缓冲区大小控件设置。 |
V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (整数)
启用具有固定目标比特的速率控制。如果启用此设置,则编码器的速率控制逻辑将计算 GOP 的平均比特率,并使其保持在或等于设置的比特率目标之下。否则,速率控制逻辑将计算流的整体平均比特率,并使其保持在或等于设置的比特率之下。在第一种情况下,整个流的平均比特率将小于设置的比特率。这是因为平均值是针对较少数量的帧计算的,另一方面,启用此设置将确保流满足严格的带宽限制。适用于编码器。
V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE
(枚举)
- enum v4l2_mpeg_mfc51_video_force_frame_type -
强制下一个排队的缓冲区的帧类型。适用于编码器。可能的值为
|
禁用强制特定帧类型。 |
|
强制 I 帧。 |
|
强制非编码帧。 |
1.15.3. CX2341x MPEG 控制¶
以下 MPEG 类控制处理特定于 Conexant CX23415 和 CX23416 MPEG 编码芯片的 MPEG 编码设置。
1.15.3.1. CX2341x 控制 ID¶
V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE
(枚举)
- enum v4l2_mpeg_cx2341x_video_spatial_filter_mode -
设置空间滤波器模式(默认
MANUAL
)。可能的值为
|
手动选择滤波器 |
|
自动选择滤波器 |
V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (整数 (0-15))
空间滤波器的设置。0 = 关闭,15 = 最大。(默认为 0。)
V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE
(枚举)
- enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type -
选择用于亮度空间滤波器的算法(默认
1D_HOR
)。可能的值
|
无滤波器 |
|
一维水平 |
|
一维垂直 |
|
二维可分离 |
|
二维对称不可分离 |
V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE
(枚举)
- enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type -
选择用于色度空间滤波器的算法(默认
1D_HOR
)。可能的值为
|
无滤波器 |
|
一维水平 |
V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE
(枚举)
- enum v4l2_mpeg_cx2341x_video_temporal_filter_mode -
设置时间滤波器模式(默认
MANUAL
)。可能的值为
|
手动选择滤波器 |
|
自动选择滤波器 |
V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (整数 (0-31))
时间滤波器的设置。0 = 关闭,31 = 最大。(全尺度捕获的默认值为 8,缩放捕获的默认值为 0。)
V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE
(枚举)
- enum v4l2_mpeg_cx2341x_video_median_filter_type -
中值滤波器类型(默认
OFF
)。可能的值为
|
无滤波器 |
|
水平滤波器 |
|
垂直滤波器 |
|
水平和垂直滤波器 |
|
对角滤波器 |
V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (整数 (0-255))
启用亮度中值滤波器的阈值上限(默认值 0)
V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (整数 (0-255))
启用亮度中值滤波器的阈值下限(默认值 255)
V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (整数 (0-255))
启用色度中值滤波器的阈值上限(默认值 0)
V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (整数 (0-255))
启用色度中值滤波器的阈值下限(默认值 255)
V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (布尔值)
CX2341X MPEG 编码器可以在每四个视频帧之间在流中插入一个空的 MPEG-2 PES 数据包。数据包大小为 2048 字节,包括 packet_start_code_prefix 和 stream_id 字段。 stream_id 为 0xBF(私有流 2)。有效负载由 0x00 字节组成,由应用程序填充。0 = 不插入,1 = 插入数据包。
1.15.4. VPX 控制参考¶
VPX 控制包括用于 VPx 视频编解码器编码参数的控制。
1.15.4.1. VPX 控制 ID¶
V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS
(枚举)
- enum v4l2_vp8_num_partitions -
要在 VP8 编码器中使用的令牌分区数。可能的值为
|
1 个系数分区 |
|
2 个系数分区 |
|
4 个系数分区 |
|
8 个系数分区 |
V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (布尔值)
设置此项可以防止在帧内模式决策中使用帧内 4x4 模式。
V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES
(枚举)
- enum v4l2_vp8_num_ref_frames -
用于编码 P 帧的参考图像数量。可能的值为
|
将搜索上次编码的帧 |
|
将在上次编码的帧、黄金帧和备用参考 (altref) 帧中搜索两帧。编码器实现将决定选择哪两帧。 |
|
将搜索上次编码的帧、黄金帧和 altref 帧。 |
V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (整数)
指示环路滤波器级别。环路滤波器级别的调整是通过相对于基线环路滤波器值的增量值来完成的。
V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (整数)
此参数会影响环路滤波器。任何大于零的值都会削弱环路滤波器上的去块效应。
V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (整数)
设置黄金帧的刷新周期。周期以帧数定义。对于值“n”,从第一个关键帧开始,每第 n 帧将被视为黄金帧。例如,对于编码序列 0、1、2、3、4、5、6、7,其中黄金帧刷新周期设置为 4,则帧 0、4、8 等将被视为黄金帧,因为帧 0 始终是关键帧。
V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL
(枚举)
- enum v4l2_vp8_golden_frame_sel -
选择用于编码的黄金帧。可能的值为
|
使用第 (n-2) 帧作为黄金帧,当前帧索引为“n”。 |
|
使用由 |
V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (整数)
VP8 的最小量化参数。
V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (整数)
VP8 的最大量化参数。
V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (整数)
VP8 的 I 帧的量化参数。
V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (整数)
VP8 的 P 帧的量化参数。
V4L2_CID_MPEG_VIDEO_VP8_PROFILE
(枚举)
- enum v4l2_mpeg_video_vp8_profile -
此控件允许选择 VP8 编码器的配置文件。它也用于枚举 VP8 编码器或解码器支持的配置文件。可能的值为
|
配置文件 0 |
|
配置文件 1 |
|
配置文件 2 |
|
配置文件 3 |
V4L2_CID_MPEG_VIDEO_VP9_PROFILE
(枚举)
- enum v4l2_mpeg_video_vp9_profile -
此控件允许选择 VP9 编码器的配置文件。它也用于枚举 VP9 编码器或解码器支持的配置文件。可能的值为
|
配置文件 0 |
|
配置文件 1 |
|
配置文件 2 |
|
配置文件 3 |
V4L2_CID_MPEG_VIDEO_VP9_LEVEL (枚举)
- enum v4l2_mpeg_video_vp9_level -
此控件允许选择 VP9 编码器的级别。它也用于枚举 VP9 编码器或解码器支持的级别。更多信息可以在 webmproject 找到。可能的值为
|
级别 1 |
|
级别 1.1 |
|
级别 2 |
|
级别 2.1 |
|
级别 3 |
|
级别 3.1 |
|
级别 4 |
|
级别 4.1 |
|
级别 5 |
|
级别 5.1 |
|
级别 5.2 |
|
级别 6 |
|
级别 6.1 |
|
级别 6.2 |
1.15.5. 高效视频编码 (HEVC/H.265) 控制参考¶
HEVC/H.265 控制包括用于 HEVC/H.265 视频编解码器的编码参数的控制。
1.15.5.1. HEVC/H.265 控制 ID¶
V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (整数)
HEVC 的最小量化参数。有效范围:8 位为 0 到 51,10 位为 0 到 63。
V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (整数)
HEVC 的最大量化参数。有效范围:8 位为 0 到 51,10 位为 0 到 63。
V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (整数)
HEVC 的 I 帧的量化参数。有效范围:[V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]。
V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (整数)
HEVC 的 P 帧的量化参数。有效范围:[V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]。
V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (整数)
HEVC 的 B 帧的量化参数。有效范围:[V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]。
V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP (整数)
HEVC I 帧的最小量化参数,以将 I 帧质量限制在某个范围内。有效范围:8 位为 0 到 51,10 位为 0 到 63。如果还设置了 V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,则应选择量化参数以满足这两个要求。
V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP (整数)
HEVC I 帧的最大量化参数,以将 I 帧质量限制在某个范围内。有效范围:8 位为 0 到 51,10 位为 0 到 63。如果还设置了 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP,则应选择量化参数以满足这两个要求。
V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP (整数)
HEVC P 帧的最小量化参数,以将 P 帧质量限制在某个范围内。有效范围:8 位为 0 到 51,10 位为 0 到 63。如果还设置了 V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,则应选择量化参数以满足这两个要求。
V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (整数)
HEVC P 帧的最大量化参数,以将 P 帧质量限制在某个范围内。有效范围:8 位为 0 到 51,10 位为 0 到 63。如果还设置了 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP,则应选择量化参数以满足这两个要求。
V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (整数)
HEVC B 帧的最小量化参数,以将 B 帧质量限制在某个范围内。有效范围:8 位为 0 到 51,10 位为 0 到 63。如果还设置了 V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP,则应选择量化参数以满足这两个要求。
V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (整数)
HEVC B 帧的最大量化参数,以将 B 帧质量限制在某个范围内。有效范围:8 位为 0 到 51,10 位为 0 到 63。如果还设置了 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP,则应选择量化参数以满足这两个要求。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (布尔值)
HIERARCHICAL_QP 允许主机通过 HIERARCHICAL_QP_LAYER 指定每个时间层的量化参数值。这仅在 HIERARCHICAL_CODING_LAYER 大于 1 时有效。将控制值设置为 1 可启用对各层 QP 值的设置。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE
(枚举)
- enum v4l2_mpeg_video_hevc_hier_coding_type -
选择用于编码的分层编码类型。可能的值为
|
对分层编码使用 B 帧。 |
|
对分层编码使用 P 帧。 |
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (整数)
选择分层编码层。在正常编码(非分层编码)中,它应为零。可能的值为 [0, 6]。0 表示分层编码层 0,1 表示分层编码层 1,依此类推。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (整数)
指示分层编码层 0 的量化参数。有效范围:[V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (整数)
指示分层编码层 1 的量化参数。有效范围:[V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (整数)
指示分层编码层 2 的量化参数。有效范围:[V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (整数)
指示分层编码层 3 的量化参数。有效范围:[V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (整数)
指示分层编码层 4 的量化参数。有效范围:[V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (整数)
指示分层编码层 5 的量化参数。有效范围:[V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (整数)
指示分层编码层 6 的量化参数。有效范围:[V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]。
V4L2_CID_MPEG_VIDEO_HEVC_PROFILE
(枚举)
- enum v4l2_mpeg_video_hevc_profile -
选择所需的 HEVC 编码器配置文件。
|
主配置文件。 |
|
主静态图像配置文件。 |
|
主 10 配置文件。 |
V4L2_CID_MPEG_VIDEO_HEVC_LEVEL
(枚举)
- enum v4l2_mpeg_video_hevc_level -
选择所需的 HEVC 编码器级别。
|
级别 1.0 |
|
级别 2.0 |
|
级别 2.1 |
|
级别 3.0 |
|
级别 3.1 |
|
级别 4.0 |
|
级别 4.1 |
|
级别 5.0 |
|
级别 5.1 |
|
级别 5.2 |
|
级别 6.0 |
|
级别 6.1 |
|
级别 6.2 |
V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (整数)
指示一秒钟内均匀分布的子间隔数,称为刻度。这是一个 16 位无符号整数,最大值可达 0xffff,最小值为 1。
V4L2_CID_MPEG_VIDEO_HEVC_TIER
(枚举)
- enum v4l2_mpeg_video_hevc_tier -
TIER_FLAG 指定 HEVC 编码图片的层级信息。层级的制定是为了处理最大比特率不同的应用程序。将标志设置为 0 将选择 HEVC 层级作为主层级,将此标志设置为 1 表示高层级。高层级适用于需要高比特率的应用程序。
|
主层级。 |
|
高层级。 |
V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (整数)
选择 HEVC 最大编码单元深度。
V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE
(枚举)
- enum v4l2_mpeg_video_hevc_loop_filter_mode -
HEVC 编码器的环路滤波器模式。可能的值为
|
禁用环路滤波器。 |
|
启用环路滤波器。 |
|
在片边界禁用环路滤波器。 |
V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (整数)
选择 HEVC 环路滤波器 beta 偏移。有效范围为 [-6, +6]。
V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (整数)
选择 HEVC 环路滤波器 tc 偏移。有效范围为 [-6, +6]。
V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE
(枚举)
- enum v4l2_mpeg_video_hevc_hier_refresh_type -
选择 HEVC 编码器的刷新类型。主机必须在 V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD 中指定周期。
|
对分层编码使用 B 帧。 |
|
使用 CRA (Clean Random Access Unit) 图片编码。 |
|
使用 IDR (瞬时解码刷新) 图像编码。 |
V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (整数)
选择 HEVC 编码器的刷新周期。这指定两个 CRA/IDR 图像之间 I 图像的数量。仅当 REFRESH_TYPE 不为 0 时有效。
V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (布尔值)
指示 HEVC 无损编码。设置为 0 将禁用无损编码。设置为 1 将启用无损编码。
V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (布尔值)
指示 HEVC 编码器的恒定帧内预测。指定约束的帧内预测,其中帧内最大编码单元 (LCU) 预测仅使用残差数据和相邻帧内 LCU 的解码样本执行。将值设置为 1 将启用恒定帧内预测,将值设置为 0 将禁用恒定帧内预测。
V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (布尔值)
指示 HEVC 编码器的波前并行处理。设置为 0 将禁用此功能,设置为 1 将启用波前并行处理。
V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (布尔值)
将该值设置为 1 可为 HEVC 编码器启用 P 帧和 B 帧的组合。
V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (布尔值)
指示 HEVC 编码器的时间标识符,通过将值设置为 1 启用。
V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (布尔值)
当设置为 1 时,指示双线性插值有条件地用于 CVS 中的帧内预测滤波过程。当设置为 0 时,指示双线性插值不用于 CVS 中。
V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (整数)
指示最大合并候选运动向量数。取值范围为 0 到 4。
V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (布尔值)
指示 HEVC 编码器的时间运动向量预测。设置为 1 将启用预测。设置为 0 将禁用预测。
V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (布尔值)
指定 HEVC 是否生成带有长度字段大小而不是起始码模式的流。长度字段的大小可通过 V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD 控制进行配置。将值设置为 0 将禁用不带起始码模式的编码。将值设置为 1 将启用不带起始码模式的编码。
V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD
(枚举)
- enum v4l2_mpeg_video_hevc_size_of_length_field -
指示长度字段的大小。当启用 WITHOUT_STARTCODE_ENABLE 编码时,此设置有效。
|
生成起始码模式 (正常)。 |
|
生成长度字段大小而不是起始码模式,长度为 1。 |
|
生成长度字段大小而不是起始码模式,长度为 2。 |
|
生成长度字段大小而不是起始码模式,长度为 4。 |
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (整数)
指示 HEVC 编码器的分层编码层 0 的比特率。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (整数)
指示 HEVC 编码器的分层编码层 1 的比特率。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (整数)
指示 HEVC 编码器的分层编码层 2 的比特率。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (整数)
指示 HEVC 编码器的分层编码层 3 的比特率。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (整数)
指示 HEVC 编码器的分层编码层 4 的比特率。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (整数)
指示 HEVC 编码器的分层编码层 5 的比特率。
V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (整数)
指示 HEVC 编码器的分层编码层 6 的比特率。
V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (整数)
选择 HEVC 编码器所需的 P 参考图片数量。 P 帧可以使用 1 或 2 个帧进行参考。
V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (整数)
指示是否在每个 IDR 上生成 SPS 和 PPS。设置为 0 将禁用在每个 IDR 上生成 SPS 和 PPS。设置为 1 将启用在每个 IDR 上生成 SPS 和 PPS。