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