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。