1.16. 無狀態編解碼器控制參考

無狀態編解碼器控制類旨在支援無狀態解碼器和編碼器(即硬體加速器)。

這些驅動程式通常由記憶體到記憶體無狀態影片解碼器介面支援,並處理已解析的畫素格式,例如 V4L2_PIX_FMT_H264_SLICE。

1.16.1. 無狀態編解碼器控制 ID

V4L2_CID_CODEC_STATELESS_CLASS (class)

無狀態編解碼器類描述符。

V4L2_CID_STATELESS_H264_SPS (struct)

指定關聯的 H264 切片資料的序列引數集(從碼流中提取)。這包括配置 H264 無狀態硬體解碼流水線的必要引數。碼流引數根據ITU-T Rec. H.264 規範(2017 年 4 月版),第 7.4.2.1.1 節 “序列引數集資料語義”定義。有關更多文件,請參閱上述規範,除非有明確的註釋另行說明。

type v4l2_ctrl_h264_sps
struct v4l2_ctrl_h264_sps

__u8

profile_idc

__u8

constraint_set_flags

參見序列引數集約束集標誌

__u8

level_idc

__u8

seq_parameter_set_id

__u8

chroma_format_idc

__u8

bit_depth_luma_minus8

__u8

bit_depth_chroma_minus8

__u8

log2_max_frame_num_minus4

__u8

pic_order_cnt_type

__u8

log2_max_pic_order_cnt_lsb_minus4

__u8

max_num_ref_frames

__u8

num_ref_frames_in_pic_order_cnt_cycle

__s32

offset_for_ref_frame[255]

__s32

offset_for_non_ref_pic

__s32

offset_for_top_to_bottom_field

__u16

pic_width_in_mbs_minus1

__u16

pic_height_in_map_units_minus1

__u32

flags

參見序列引數集標誌

序列 引數 約束 標誌

V4L2_H264_SPS_CONSTRAINT_SET0_FLAG

0x00000001

V4L2_H264_SPS_CONSTRAINT_SET1_FLAG

0x00000002

V4L2_H264_SPS_CONSTRAINT_SET2_FLAG

0x00000004

V4L2_H264_SPS_CONSTRAINT_SET3_FLAG

0x00000008

V4L2_H264_SPS_CONSTRAINT_SET4_FLAG

0x00000010

V4L2_H264_SPS_CONSTRAINT_SET5_FLAG

0x00000020

序列 引數 標誌

V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE

0x00000001

V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS

0x00000002

V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO

0x00000004

V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED

0x00000008

V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY

0x00000010

V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD

0x00000020

V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE

0x00000040

V4L2_CID_STATELESS_H264_PPS (struct)

指定關聯的 H264 切片資料的圖片引數集(從碼流中提取)。這包括配置 H264 無狀態硬體解碼流水線的必要引數。碼流引數根據ITU-T Rec. H.264 規範(2017 年 4 月版),第 7.4.2.2 節 “圖片引數集 RBSP 語義”定義。有關更多文件,請參閱上述規範,除非有明確的註釋另行說明。

type v4l2_ctrl_h264_pps
struct v4l2_ctrl_h264_pps

__u8

pic_parameter_set_id

__u8

seq_parameter_set_id

__u8

num_slice_groups_minus1

__u8

num_ref_idx_l0_default_active_minus1

__u8

num_ref_idx_l1_default_active_minus1

__u8

weighted_bipred_idc

__s8

pic_init_qp_minus26

__s8

pic_init_qs_minus26

__s8

chroma_qp_index_offset

__s8

second_chroma_qp_index_offset

__u16

flags

參見圖片引數集標誌

圖片 引數 標誌

V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE

0x0001

V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT

0x0002

V4L2_H264_PPS_FLAG_WEIGHTED_PRED

0x0004

V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT

0x0008

V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED

0x0010

V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT

0x0020

V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE

0x0040

V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT

0x0080

V4L2_CID_STATELESS_H264_SCALING_MATRIX必須用於此圖片。

V4L2_CID_STATELESS_H264_SCALING_MATRIX (struct)

指定關聯的 H264 切片資料的縮放矩陣(從碼流中提取)。碼流引數根據ITU-T Rec. H.264 規範(2017 年 4 月版),第 7.4.2.1.1.1 節 “縮放列表語義”定義。有關更多文件,請參閱上述規範,除非有明確的註釋另行說明。

type v4l2_ctrl_h264_scaling_matrix
struct v4l2_ctrl_h264_scaling_matrix

__u8

scaling_list_4x4[6][16]

應用逆掃描過程後的縮放矩陣。預期列表順序為 Intra Y、Intra Cb、Intra Cr、Inter Y、Inter Cb、Inter Cr。每個縮放列表中的值都應按柵格掃描順序排列。

__u8

scaling_list_8x8[6][64]

應用逆掃描過程後的縮放矩陣。預期列表順序為 Intra Y、Inter Y、Intra Cb、Inter Cb、Intra Cr、Inter Cr。每個縮放列表中的值都應按柵格掃描順序排列。

V4L2_CID_STATELESS_H264_SLICE_PARAMS (struct)

指定關聯的 H264 切片資料的切片引數(從碼流中提取)。這包括配置 H264 無狀態硬體解碼流水線的必要引數。碼流引數根據ITU-T Rec. H.264 規範(2017 年 4 月版),第 7.4.3 節 “切片頭語義”定義。有關更多文件,請參閱上述規範,除非有明確的註釋另行說明。

type v4l2_ctrl_h264_slice_params
struct v4l2_ctrl_h264_slice_params

__u32

header_bit_size

從該切片的開頭到 slice_data() 的位偏移量。

__u32

first_mb_in_slice

__u8

slice_type

__u8

colour_plane_id

__u8

redundant_pic_cnt

__u8

cabac_init_idc

__s8

slice_qp_delta

__s8

slice_qs_delta

__u8

disable_deblocking_filter_idc

__s8

slice_alpha_c0_offset_div2

__s8

slice_beta_offset_div2

__u8

num_ref_idx_l0_active_minus1

如果未設定 num_ref_idx_active_override_flag,則此欄位必須設定為 num_ref_idx_l0_default_active_minus1 的值

__u8

num_ref_idx_l1_active_minus1

如果未設定 num_ref_idx_active_override_flag,則此欄位必須設定為 num_ref_idx_l1_default_active_minus1 的值

__u8

reserved

應用程式和驅動程式必須將此設定為零。

struct v4l2_h264_reference

ref_pic_list0[32]

應用每切片修改後的參考圖片列表

struct v4l2_h264_reference

ref_pic_list1[32]

應用每切片修改後的參考圖片列表

__u32

flags

參見切片引數標誌

切片 引數 標誌

V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED

0x00000001

V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH

0x00000002

V4L2_CID_STATELESS_H264_PRED_WEIGHTS (struct)

根據ITU-T Rec. H.264 規範(2017 年 4 月版),第 7.4.3.2 節 “預測權重表語義”定義的預測權重表。預測權重表必須由應用程式在 7.3.3 節 “切片頭語法”中解釋的條件下傳遞。

type v4l2_ctrl_h264_pred_weights
struct v4l2_ctrl_h264_pred_weights

__u16

luma_log2_weight_denom

__u16

chroma_log2_weight_denom

struct v4l2_h264_weight_factors

weight_factors[2]

索引 0 處的權重因子是參考列表 0 的權重因子,索引 1 處的權重因子是參考列表 1 的權重因子。

type v4l2_h264_weight_factors
struct v4l2_h264_weight_factors

__s16

luma_weight[32]

__s16

luma_offset[32]

__s16

chroma_weight[32][2]

__s16

chroma_offset[32][2]

圖片 參考

type v4l2_h264_reference
struct v4l2_h264_reference

__u8

fields

指定如何引用圖片。參見參考欄位

__u8

index

索引到v4l2_ctrl_h264_decode_params.dpb 陣列中。

參考 欄位

V4L2_H264_TOP_FIELD_REF

0x1

場對中的頂部場用於短期參考。

V4L2_H264_BOTTOM_FIELD_REF

0x2

場對中的底部場用於短期參考。

V4L2_H264_FRAME_REF

0x3

幀(或頂部/底部場,如果它是場對)用於短期參考。

V4L2_CID_STATELESS_H264_DECODE_PARAMS (struct)

指定關聯的 H264 切片資料的解碼引數(從碼流中提取)。這包括配置 H264 無狀態硬體解碼流水線的必要引數。碼流引數根據ITU-T Rec. H.264 規範(2017 年 4 月版)定義。有關更多文件,請參閱上述規範,除非有明確的註釋另行說明。

type v4l2_ctrl_h264_decode_params
struct v4l2_ctrl_h264_decode_params

struct v4l2_h264_dpb_entry

dpb[16]

__u16

nal_ref_idc

來自 NAL 單元頭的 NAL 參考 ID 值

__u16

frame_num

__s32

top_field_order_cnt

編碼頂部場的圖片順序計數

__s32

bottom_field_order_cnt

編碼底部場的圖片順序計數

__u16

idr_pic_id

__u16

pic_order_cnt_lsb

__s32

delta_pic_order_cnt_bottom

__s32

delta_pic_order_cnt0

__s32

delta_pic_order_cnt1

__u32

dec_ref_pic_marking_bit_size

dec_ref_pic_marking() 語法元素的大小(以位為單位)。

__u32

pic_order_cnt_bit_size

圖片順序計數相關語法元素的組合大小(以位為單位):pic_order_cnt_lsb、delta_pic_order_cnt_bottom、delta_pic_order_cnt0 和 delta_pic_order_cnt1。

__u32

slice_group_change_cycle

__u32

reserved

應用程式和驅動程式必須將此設定為零。

__u32

flags

參見解碼引數標誌

解碼 引數 標誌

V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC

0x00000001

該圖片是 IDR 圖片

V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC

0x00000002

V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD

0x00000004

V4L2_H264_DECODE_PARAM_FLAG_PFRAME

0x00000008

V4L2_H264_DECODE_PARAM_FLAG_BFRAME

0x00000010

type v4l2_h264_dpb_entry
struct v4l2_h264_dpb_entry

__u64

reference_ts

用作參考的 V4L2 捕獲緩衝區的時間戳,與 B 編碼幀和 P 編碼幀一起使用。時間戳指的是 struct v4l2_buffer 中的 timestamp 欄位。使用 v4l2_timeval_to_ns() 函式將 struct v4l2_buffer 中的 struct timeval 轉換為 __u64。

__u32

pic_num

對於短期參考,這必須與派生值 PicNum (8-28) 匹配,對於長期參考,這必須與派生值 LongTermPicNum (8-29) 匹配。當解碼幀(而不是場)時,pic_num 與 FrameNumWrap 相同。

__u16

frame_num

對於短期參考,這必須與切片頭語法中的 frame_num 值匹配(如果需要,驅動程式將包裝該值)。對於長期參考,這必須設定為 dec_ref_pic_marking() 語法中描述的 long_term_frame_idx 的值。

__u8

fields

指定如何引用 DPB 條目。參見參考欄位

__u8

reserved[5]

應用程式和驅動程式必須將此設定為零。

__s32

top_field_order_cnt

__s32

bottom_field_order_cnt

__u32

flags

參見DPB 條目標誌

DPB 條目 標誌

V4L2_H264_DPB_ENTRY_FLAG_VALID

0x00000001

DPB 條目有效(非空)並且應考慮。

V4L2_H264_DPB_ENTRY_FLAG_ACTIVE

0x00000002

DPB 條目用於參考。

V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM

0x00000004

DPB 條目用於長期參考。

V4L2_H264_DPB_ENTRY_FLAG_FIELD

0x00000008

DPB 條目是單個場或互補場對。

V4L2_CID_STATELESS_H264_DECODE_MODE (enum)

指定要使用的解碼模式。目前公開基於切片和基於幀的解碼,但以後可能會新增新模式。此控制用作 V4L2_PIX_FMT_H264_SLICE 畫素格式的修飾符。支援 V4L2_PIX_FMT_H264_SLICE 的應用程式需要設定此控制以指定緩衝區預期的解碼模式。驅動程式可能會公開單個或多個解碼模式,具體取決於它們可以支援的內容。

type v4l2_stateless_h264_decode_mode

V4L2_STATELESS_H264_DECODE_MODE_SLICE_BASED

0

解碼以切片粒度完成。OUTPUT 緩衝區必須包含單個切片。選擇此模式時,應設定 V4L2_CID_STATELESS_H264_SLICE_PARAMS 控制。當多個切片組成一個幀時,需要使用 V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF 標誌。

V4L2_STATELESS_H264_DECODE_MODE_FRAME_BASED

1

解碼以幀粒度完成。OUTPUT 緩衝區必須包含解碼幀所需的所有切片。OUTPUT 緩衝區還必須包含兩個場。此模式將由硬體解析切片頭部的裝置支援。選擇此模式時,不應設定 V4L2_CID_STATELESS_H264_SLICE_PARAMS 控制。

V4L2_CID_STATELESS_H264_START_CODE (enum)

指定每個切片預期的 H264 切片起始碼。此控制用作 V4L2_PIX_FMT_H264_SLICE 畫素格式的修飾符。支援 V4L2_PIX_FMT_H264_SLICE 的應用程式需要設定此控制以指定緩衝區預期的起始碼。驅動程式可能會公開單個或多個起始碼,具體取決於它們可以支援的內容。

type v4l2_stateless_h264_start_code

V4L2_STATELESS_H264_START_CODE_NONE

0

選擇此值指定 H264 切片在沒有任何起始碼的情況下傳遞給驅動程式。碼流資料應根據ITU-T Rec. H.264 規範(2017 年 4 月版) 7.3.1 NAL 單元語法,因此在需要時包含模擬防止位元組。

V4L2_STATELESS_H264_START_CODE_ANNEX_B

1

選擇此值指定 H264 切片預計以 Annex B 起始碼作為字首。根據ITU-T Rec. H.264 規範(2017 年 4 月版),有效的起始碼可以是 3 位元組 0x000001 或 4 位元組 0x00000001。

V4L2_CID_STATELESS_FWHT_PARAMS (struct)

指定關聯的 FWHT 資料的 FWHT(快速沃爾什哈達瑪變換)引數(從碼流中提取)。這包括配置 FWHT 無狀態硬體解碼流水線的必要引數。此編解碼器特定於 vicodec 測試驅動程式。

type v4l2_ctrl_fwht_params
struct v4l2_ctrl_fwht_params

__u64

backward_ref_ts

用作後向參考的 V4L2 捕獲緩衝區的時間戳,與 P 編碼幀一起使用。時間戳指的是 struct v4l2_buffer 中的 timestamp 欄位。使用 v4l2_timeval_to_ns() 函式將 struct v4l2_buffer 中的 struct timeval 轉換為 __u64。

__u32

version

編解碼器的版本。設定為 V4L2_FWHT_VERSION

__u32

width

幀的寬度。

__u32

height

幀的高度。

__u32

flags

幀的標誌,參見FWHT 標誌

__u32

colorspace

幀的色彩空間,來自 enum v4l2_colorspace

__u32

xfer_func

傳遞函式,來自 enum v4l2_xfer_func

__u32

ycbcr_enc

Y’CbCr 編碼,來自 enum v4l2_ycbcr_encoding

__u32

quantization

量化範圍,來自 enum v4l2_quantization

1.16.2. FWHT 標誌

V4L2_FWHT_FL_IS_INTERLACED

0x00000001

如果這是隔行掃描格式,則設定。

V4L2_FWHT_FL_IS_BOTTOM_FIRST

0x00000002

如果這是底部優先 (NTSC) 隔行掃描格式,則設定。

V4L2_FWHT_FL_IS_ALTERNATE

0x00000004

如果每個“幀”僅包含一個場,則設定。

V4L2_FWHT_FL_IS_BOTTOM_FIELD

0x00000008

如果設定了 V4L2_FWHT_FL_IS_ALTERNATE,則如果此“幀”是底部場,則設定此標誌,否則它是頂部場。

V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED

0x00000010

如果 Y’(亮度)平面未壓縮,則設定。

V4L2_FWHT_FL_CB_IS_UNCOMPRESSED

0x00000020

如果 Cb 平面未壓縮,則設定。

V4L2_FWHT_FL_CR_IS_UNCOMPRESSED

0x00000040

如果 Cr 平面未壓縮,則設定。

V4L2_FWHT_FL_CHROMA_FULL_HEIGHT

0x00000080

如果色度平面與亮度平面具有相同的高度,則設定此標誌,否則色度平面是亮度平面高度的一半。

V4L2_FWHT_FL_CHROMA_FULL_WIDTH

0x00000100

如果色度平面與亮度平面具有相同的寬度,則設定此標誌,否則色度平面是亮度平面寬度的一半。

V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED

0x00000200

如果 alpha 平面未壓縮,則設定。

V4L2_FWHT_FL_I_FRAME

0x00000400

如果這是 I 幀,則設定。

V4L2_FWHT_FL_COMPONENTS_NUM_MSK

0x00070000

顏色分量數減一。

V4L2_FWHT_FL_PIXENC_MSK

0x00180000

畫素編碼的掩碼。

V4L2_FWHT_FL_PIXENC_YUV

0x00080000

如果畫素編碼是 YUV,則設定。

V4L2_FWHT_FL_PIXENC_RGB

0x00100000

如果畫素編碼是 RGB,則設定。

V4L2_FWHT_FL_PIXENC_HSV

0x00180000

如果畫素編碼是 HSV,則設定。

V4L2_CID_STATELESS_VP8_FRAME (struct)

指定關聯的 VP8 解析幀資料的幀引數。這包括配置 VP8 無狀態硬體解碼流水線的必要引數。碼流引數根據VP8定義。

type v4l2_ctrl_vp8_frame
struct v4l2_ctrl_vp8_frame

struct v4l2_vp8_segment

segment

帶有基於段的調整元資料的結構。

struct v4l2_vp8_loop_filter

lf

帶有環路濾波器級別調整元資料的結構。

struct v4l2_vp8_quantization

quant

帶有 VP8 解量化索引元資料的結構。

struct v4l2_vp8_entropy

entropy

帶有 VP8 熵編碼器機率元資料的結構。

struct v4l2_vp8_entropy_coder_state

coder_state

帶有 VP8 熵編碼器狀態的結構。

__u16

width

width

__u16

height

幀的寬度。必須為所有幀設定。

__u8

height

幀的高度。必須為所有幀設定。

__u8

horizontal_scale

水平縮放因子。

__u8

version

vertical_scale

__u8

垂直縮放因子。

version

__u8

碼流版本。

prob_skip_false

__u8

指示宏塊未跳過的機率。

prob_intra

__u8

指示宏塊是內部預測的機率。

prob_last

__u8

指示最後一個參考幀用於幀間預測的機率

prob_gf

__u32

指示黃金參考幀用於幀間預測的機率

num_dct_parts

__u32

DCT 係數分割槽的數量。必須是以下之一:1、2、4 或 8。

first_part_size

__u32

第一個分割槽的大小,即控制分割槽。

first_part_header_bits

__u64

第一個分割槽頭部部分的大小(以位為單位)。

dct_part_sizes[8]

__u64

DCT 係數大小。

dct_part_sizes[8]

__u64

last_frame_ts

用作最後一個參考幀的 V4L2 捕獲緩衝區的時間戳,與幀間編碼幀一起使用。時間戳指的是 struct v4l2_buffer 中的 timestamp 欄位。使用 v4l2_timeval_to_ns() 函式將 struct v4l2_buffer 中的 struct timeval 轉換為 __u64。

__u64

flags

golden_frame_ts

alt_frame_ts

用作備用參考幀的 V4L2 捕獲緩衝區的時間戳,與幀間編碼幀一起使用。時間戳指的是 struct v4l2_buffer 中的 timestamp 欄位。使用 v4l2_timeval_to_ns() 函式將 struct v4l2_buffer 中的 struct timeval 轉換為 __u64。

flags

參見幀標誌

標誌

V4L2_VP8_FRAME_FLAG_KEY_FRAME

0x01

指示幀是否為關鍵幀。

V4L2_VP8_FRAME_FLAG_EXPERIMENTAL

0x02

實驗性碼流。

V4L2_VP8_FRAME_FLAG_SHOW_FRAME

0x04

顯示幀標誌,指示幀是否用於顯示。

V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF

0x08

啟用/停用跳過沒有非零係數的宏塊。

V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN

0x10

引用黃金幀時運動向量的符號。
V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT

__u8

0x20

引用備用幀時運動向量的符號。

__u8

type v4l2_vp8_entropy_coder_state

struct v4l2_vp8_entropy_coder_state

__u8

range

“Range”的編碼器狀態值

__u8

value

應用程式和驅動程式必須將此設定為零。

“Value”的編碼器狀態值
bit_count

__s8

剩餘位數。

padding

__s8

type v4l2_vp8_segment

struct v4l2_vp8_segment

__u8

quant_update[4]

有符號量化器值更新。

__u8

value

應用程式和驅動程式必須將此設定為零。

__u32

flags

請參閱 分段標誌

分段 標誌

V4L2_VP8_SEGMENT_FLAG_ENABLED

flags

啟用/停用基於分段的調整。

V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP

V4L2_VP8_FRAME_FLAG_KEY_FRAME

指示宏塊分段對映是否在此幀中更新。

V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA

V4L2_VP8_FRAME_FLAG_EXPERIMENTAL

指示分段特徵資料是否在此幀中更新。

V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE

V4L2_VP8_FRAME_FLAG_SHOW_FRAME

如果設定,則分段特徵資料模式為增量值。 如果清除,則為絕對值。

type v4l2_vp8_loop_filter
結構體 v4l2_vp8_loop_filter

__s8

ref_frm_delta[4]

參考調整(有符號)增量值。

__s8

mb_mode_delta[4]

宏塊預測模式調整(有符號)增量值。

__u8

sharpness_level

銳度級別

__u8

level

濾波器級別

__u16

value

應用程式和驅動程式必須將此設定為零。

__u32

flags

請參閱 環路濾波器標誌

環路 濾波器 標誌

V4L2_VP8_LF_ADJ_ENABLE

flags

啟用/停用宏塊級別環路濾波器調整。

V4L2_VP8_LF_DELTA_UPDATE

V4L2_VP8_FRAME_FLAG_KEY_FRAME

指示是否更新調整中使用的增量值。

V4L2_VP8_LF_FILTER_TYPE_SIMPLE

V4L2_VP8_FRAME_FLAG_EXPERIMENTAL

如果設定,則指示濾波器型別為簡單型別。 如果清除,則濾波器型別為正常型別。

type v4l2_vp8_quantization
結構體 v4l2_vp8_quantization

__u8

y_ac_qi

亮度 AC 係數表索引。

__s8

y_dc_delta

亮度 DC 增量值。

__s8

y2_dc_delta

Y2 塊 DC 增量值。

__s8

y2_ac_delta

Y2 塊 AC 增量值。

__s8

uv_dc_delta

色度 DC 增量值。

__s8

uv_ac_delta

色度 AC 增量值。

__u16

value

應用程式和驅動程式必須將此設定為零。

type v4l2_vp8_entropy
結構體 v4l2_vp8_entropy

__u8

coeff_probs[4][8][3][11]

係數更新機率。

__u8

y_mode_probs[4]

亮度模式更新機率。

__u8

uv_mode_probs[3]

色度模式更新機率。

__u8

mv_probs[2][19]

MV 解碼更新機率。

__u8

padding[3]

應用程式和驅動程式必須將此設定為零。

V4L2_CID_STATELESS_MPEG2_SEQUENCE (結構體)

指定與相關 MPEG-2 切片資料對應的序列引數(從位元流中提取)。 這包括與 ISO 13818-2 指定的位元流的序列頭和序列擴充套件部分中的語法元素匹配的欄位。

type v4l2_ctrl_mpeg2_sequence
結構體 v4l2_ctrl_mpeg2_sequence

__u16

horizontal_size

幀的亮度分量的可顯示部分的寬度。

__u16

vertical_size

幀的亮度分量的可顯示部分的高度。

__u32

vbv_buffer_size

用於計算影片緩衝驗證器所需的尺寸,定義為(以位為單位):16 * 1024 * vbv_buffer_size。

__u16

profile_and_level_indication

從位元流中提取的當前配置檔案和級別指示。

__u8

chroma_format

色度子取樣格式(1:4:2:0,2:4:2:2,3:4:4:4)。

__u8

flags

請參閱 MPEG-2 序列標誌

MPEG-2 序列 標誌

V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE

flags

指示序列的所有幀都是逐行掃描而不是隔行掃描。

V4L2_CID_STATELESS_MPEG2_PICTURE (結構體)

指定與相關 MPEG-2 切片資料對應的圖片引數(從位元流中提取)。 這包括與 ISO 13818-2 指定的位元流的圖片頭和圖片編碼擴充套件部分中的語法元素匹配的欄位。

type v4l2_ctrl_mpeg2_picture
結構體 v4l2_ctrl_mpeg2_picture

__u64

backward_ref_ts

用作後向參考的 V4L2 捕獲緩衝區的時間戳,用於 B 編碼幀和 P 編碼幀。 時間戳是指結構體 v4l2_buffer 中的 timestamp 欄位。 使用 v4l2_timeval_to_ns() 函式將結構體 v4l2_buffer 中的結構體 timeval 轉換為 __u64。

__u64

forward_ref_ts

用作前向參考的 V4L2 捕獲緩衝區的時間戳,用於 B 編碼幀。 時間戳是指結構體 v4l2_buffer 中的 timestamp 欄位。 使用 v4l2_timeval_to_ns() 函式將結構體 v4l2_buffer 中的結構體 timeval 轉換為 __u64。

__u32

flags

請參閱 MPEG-2 圖片標誌

__u8

f_code[2][2]

運動向量程式碼。

__u8

picture_coding_type

當前切片覆蓋的幀的圖片編碼型別(V4L2_MPEG2_PIC_CODING_TYPE_I、V4L2_MPEG2_PIC_CODING_TYPE_P 或 V4L2_MPEG2_PIC_CODING_TYPE_B)。

__u8

picture_structure

圖片結構(1:隔行掃描頂場,2:隔行掃描底場,3:逐行掃描幀)。

__u8

intra_dc_precision

離散餘弦變換的精度(0:8 位精度,1:9 位精度,2:10 位精度,3:11 位精度)。

__u8

reserved[5]

應用程式和驅動程式必須將此設定為零。

MPEG-2 圖片 標誌

V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST

0x00000001

如果設定並且它是隔行掃描流,則首先輸出頂場。

V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT

0x00000002

如果設定,則僅使用幀 DCT 和幀預測。

V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV

0x00000004

如果設定,則為內部宏塊編碼運動向量。

V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE

0x00000008

此標誌影響反量化過程。

V4L2_MPEG2_PIC_FLAG_INTRA_VLC

0x00000010

此標誌影響變換系數資料的解碼。

V4L2_MPEG2_PIC_FLAG_ALT_SCAN

0x00000020

此標誌影響變換系數資料的解碼。

V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST

0x00000040

此標誌影響逐行掃描幀的解碼過程。

V4L2_MPEG2_PIC_FLAG_PROGRESSIVE

0x00000080

指示當前幀是否為逐行掃描。

V4L2_CID_STATELESS_MPEG2_QUANTISATION (結構體)

指定與相關 MPEG-2 切片資料對應的量化矩陣(按 Z 字形掃描順序排列)。 此控制元件由核心初始化為矩陣預設值。 如果位元流傳輸使用者定義的量化矩陣載入,則應用程式應使用此控制元件。 如果需要重置量化矩陣(例如,在序列頭中),則應用程式還應設定控制元件以載入預設值。 此過程由規範的第 6.3.7 節“量化矩陣擴充套件”指定。

type v4l2_ctrl_mpeg2_quantisation
結構體 v4l2_ctrl_mpeg2_quantisation

__u8

intra_quantiser_matrix[64]

按 Z 字形掃描順序排列的內部編碼幀的量化矩陣係數。 它與亮度和色度分量相關,儘管它可以被非 4:2:0 YUV 格式的色度特定矩陣取代。

__u8

non_intra_quantiser_matrix[64]

按 Z 字形掃描順序排列的非內部編碼幀的量化矩陣係數。 它與亮度和色度分量相關,儘管它可以被非 4:2:0 YUV 格式的色度特定矩陣取代。

__u8

chroma_intra_quantiser_matrix[64]

按 Z 字形掃描順序排列的內部編碼幀的色度分量的量化矩陣係數。 僅與非 4:2:0 YUV 格式相關。

__u8

chroma_non_intra_quantiser_matrix[64]

按 Z 字形掃描順序排列的非內部編碼幀的色度分量的量化矩陣係數。 僅與非 4:2:0 YUV 格式相關。

V4L2_CID_STATELESS_VP9_COMPRESSED_HDR (結構體)

儲存從當前壓縮幀頭解析的 VP9 機率更新。 陣列元素中的零值表示不更新相關機率。 運動向量相關的更新包含新值或零。 所有其他更新都包含使用 inv_map_table[] 轉換的值(請參閱 VP9 中的 6.3.5)。

type v4l2_ctrl_vp9_compressed_hdr
結構體 v4l2_ctrl_vp9_compressed_hdr

__u8

tx_mode

指定 TX 模式。 有關更多詳細資訊,請參閱 TX 模式

__u8

tx8[2][1]

TX 8x8 機率增量。

__u8

tx16[2][2]

TX 16x16 機率增量。

__u8

tx32[2][3]

TX 32x32 機率增量。

__u8

coef[4][2][2][6][6][3]

係數機率增量。

__u8

skip[3]

跳過機率增量。

__u8

inter_mode[7][3]

幀間預測模式機率增量。

__u8

interp_filter[4][2]

插值濾波器機率增量。

__u8

is_inter[4]

是幀間塊機率增量。

__u8

comp_mode[5]

複合預測模式機率增量。

__u8

single_ref[5][2]

單參考機率增量。

__u8

comp_ref[5]

複合參考機率增量。

__u8

y_mode[4][9]

Y 預測模式機率增量。

__u8

uv_mode[10][9]

UV 預測模式機率增量。

__u8

partition[16][3]

分割槽機率增量。

__u8

mv.joint[3]

運動向量聯合機率增量。

__u8

mv.sign[2]

運動向量符號機率增量。

__u8

mv.classes[2][10]

運動向量類機率增量。

__u8

mv.class0_bit[2]

運動向量 class0 位機率增量。

__u8

mv.bits[2][10]

運動向量位機率增量。

__u8

mv.class0_fr[2][2][3]

運動向量 class0 分數位機率增量。

__u8

mv.fr[2][3]

運動向量分數位機率增量。

__u8

mv.class0_hp[2]

運動向量 class0 高精度分數位機率增量。

__u8

mv.hp[2]

運動向量高精度分數位機率增量。

TX 模式

V4L2_VP9_TX_MODE_ONLY_4X4

0

變換大小為 4x4。

V4L2_VP9_TX_MODE_ALLOW_8X8

1

變換大小最大可為 8x8。

V4L2_VP9_TX_MODE_ALLOW_16X16

2

變換大小最大可為 16x16。

V4L2_VP9_TX_MODE_ALLOW_32X32

3

變換大小最大可為 32x32。

V4L2_VP9_TX_MODE_SELECT

4

位元流包含每個塊的變換大小。

有關更多詳細資訊,請參閱 VP9 規範的“7.3.1 Tx 模式語義”部分。

V4L2_CID_STATELESS_VP9_FRAME (結構體)

指定與相關 VP9 幀解碼請求對應的幀引數。 這包括為 VP9 配置無狀態硬體解碼管道所需的引數。 位元流引數根據 VP9 定義。

type v4l2_ctrl_vp9_frame
結構體 v4l2_ctrl_vp9_frame

結構體 v4l2_vp9_loop_filter

lf

環路濾波器引數。 有關更多詳細資訊,請參閱結構體 v4l2_vp9_loop_filter

結構體 v4l2_vp9_quantization

quant

量化引數。 有關更多詳細資訊,請參閱 v4l2_vp9_quantization

結構體 v4l2_vp9_segmentation

seg

分段引數。 有關更多詳細資訊,請參閱 v4l2_vp9_segmentation

__u32

flags

V4L2_VP9_FRAME_FLAG_* 標誌的組合。 請參閱 幀標誌

__u16

compressed_header_size

壓縮標頭大小(以位元組為單位)。

__u16

uncompressed_header_size

未壓縮標頭大小(以位元組為單位)。

__u16

frame_width_minus_1

加 1 以獲取以畫素表示的幀寬度。 請參閱 VP9 中的 7.2.3 節。

__u16

frame_height_minus_1

加 1 以獲取以畫素表示的幀高度。 請參閱 VP9 中的 7.2.3 節。

__u16

render_width_minus_1

加 1 以獲取預期渲染寬度(以畫素表示)。 這不會在解碼過程中使用,但可能被 HW 縮放器用於準備好掃描輸出的幀。 請參閱 VP9 中的 7.2.4 節。

__u16

render_height_minus_1

加 1 以獲取預期渲染高度(以畫素表示)。 這不會在解碼過程中使用,但可能被 HW 縮放器用於準備好掃描輸出的幀。 請參閱 VP9 中的 7.2.4 節。

__u64

第一個分割槽頭部部分的大小(以位為單位)。

“last”參考緩衝區時間戳。 時間戳是指結構體 v4l2_buffer 中的 timestamp 欄位。 使用 v4l2_timeval_to_ns() 函式將結構體 v4l2_buffer 中的結構體 timeval 轉換為 __u64。

__u64

DCT 係數大小。

“golden”參考緩衝區時間戳。 時間戳是指結構體 v4l2_buffer 中的 timestamp 欄位。 使用 v4l2_timeval_to_ns() 函式將結構體 v4l2_buffer 中的結構體 timeval 轉換為 __u64。

__u64

last_frame_ts

“alt”參考緩衝區時間戳。 時間戳是指結構體 v4l2_buffer 中的 timestamp 欄位。 使用 v4l2_timeval_to_ns() 函式將結構體 v4l2_buffer 中的結構體 timeval 轉換為 __u64。

__u8

ref_frame_sign_bias

一個位欄位,用於指定是否為給定的參考幀設定了符號偏差。 有關更多詳細資訊,請參閱 參考幀符號偏差

__u8

reset_frame_context

指定是否應將幀上下文重置為預設值。 有關更多詳細資訊,請參閱 重置幀上下文

__u8

frame_context_idx

應使用/更新的幀上下文。

__u8

profile

VP9 配置檔案。 可以是 0、1、2 或 3。

__u8

bit_depth

元件深度(以位為單位)。 可以是 8、10 或 12。 請注意,並非所有配置檔案都支援 10 位和/或 12 位深度。

__u8

interpolation_filter

指定用於執行幀間預測的濾波器選擇。 有關更多詳細資訊,請參閱 插值濾波器

__u8

tile_cols_log2

指定每個圖塊寬度的以 2 為底的對數(其中寬度以 8x8 塊為單位測量)。 應小於或等於 6。

__u8

tile_rows_log2

指定每個圖塊高度的以 2 為底的對數(其中高度以 8x8 塊為單位測量)。

__u8

reference_mode

指定要使用的幀間預測型別。 有關更多詳細資訊,請參閱 參考模式。 請注意,這是作為壓縮標頭解析過程的一部分派生的,因此應該屬於 :c:type: v4l2_ctrl_vp9_compressed_hdr 可選控制元件。 如果驅動程式不需要壓縮標頭,則將此值設定為零是安全的。

__u8

reserved[7]

應用程式和驅動程式必須將此設定為零。

alt_frame_ts

V4L2_VP9_FRAME_FLAG_KEY_FRAME

0x001

該幀是關鍵幀。

V4L2_VP9_FRAME_FLAG_SHOW_FRAME

0x002

應顯示該幀。

V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT

0x004

解碼應具有錯誤恢復能力。

V4L2_VP9_FRAME_FLAG_INTRA_ONLY

0x008

該幀不引用其他幀。

V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC_MV

0x010

該幀可以使用高精度運動向量。

V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_CTX

0x020

應在解碼後更新幀上下文。

V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MODE

0x040

使用並行解碼。

V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING

0x080

啟用垂直子取樣。

V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING

0x100

啟用水平子取樣。

V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FULL_SWING

0x200

使用完整 UV 範圍。

參考 符號 偏差

V4L2_VP9_SIGN_BIAS_LAST

0x1

為上一個參考幀設定符號偏差。

V4L2_VP9_SIGN_BIAS_GOLDEN

0x2

為黃金參考幀設定符號偏差。

V4L2_VP9_SIGN_BIAS_ALT

0x2

為備用參考幀設定符號偏差。

重置 上下文

V4L2_VP9_RESET_FRAME_CTX_NONE

0

不重置任何幀上下文。

V4L2_VP9_RESET_FRAME_CTX_SPEC

1

重置 v4l2_ctrl_vp9_frame.frame_context_idx 指向的幀上下文。

V4L2_VP9_RESET_FRAME_CTX_ALL

2

重置所有幀上下文。

有關更多詳細資訊,請參閱 VP9 規範的“7.2 未壓縮標頭語義”部分。

插值 濾波器

V4L2_VP9_INTERP_FILTER_EIGHTTAP

0

八抽頭濾波器。

V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMOOTH

1

八抽頭平滑濾波器。

V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHARP

2

八抽頭銳化濾波器。

V4L2_VP9_INTERP_FILTER_BILINEAR

3

雙線性濾波器。

V4L2_VP9_INTERP_FILTER_SWITCHABLE

4

濾波器選擇在塊級別進行訊號通知。

有關更多詳細資訊,請參閱 VP9 規範的“7.2.7 插值濾波器語義”部分。

參考 模式

V4L2_VP9_REFERENCE_MODE_SINGLE_REFERENCE

0

指示所有幀間塊僅使用單個參考幀來生成運動補償預測。

V4L2_VP9_REFERENCE_MODE_COMPOUND_REFERENCE

1

要求所有幀間塊都使用複合模式。 不允許單參考幀預測。

V4L2_VP9_REFERENCE_MODE_SELECT

2

允許每個單獨的幀間塊在單預測模式和複合預測模式之間進行選擇。

有關更多詳細資訊,請參閱 VP9 規範的“7.3.6 幀參考模式語義”部分。

type v4l2_vp9_segmentation

編碼量化引數。 有關更多詳細資訊,請參閱 VP9 規範的“7.2.10 分段引數語法”部分。

結構體 v4l2_vp9_segmentation

__u8

feature_data[8][4]

附加到每個特徵的資料。 僅當啟用該特徵時,資料條目才有效。 應該使用段號作為第一維 (0..7) 以及 V4L2_VP9_SEG_* 之一作為第二維來索引陣列。 請參閱 段特徵 ID

__u8

feature_enabled[8]

定義在每個段中啟用哪些特徵的位掩碼。 每個段的值都是 V4L2_VP9_SEGMENT_FEATURE_ENABLED(id) 值的組合,其中 id 是 V4L2_VP9_SEG_* 之一。 請參閱 段特徵 ID

__u8

tree_probs[7]

指定在解碼段 ID 時要使用的機率值。 有關更多詳細資訊,請參閱 VP9 的“5.15 分段對映”部分。

__u8

pred_probs[3]

指定在解碼預測段 ID 時要使用的機率值。 有關更多詳細資訊,請參閱 VP9 的“6.4.14 獲取段 ID 語法”部分。

__u8

flags

V4L2_VP9_SEGMENTATION_FLAG_* 標誌的組合。 請參閱 分段標誌

__u8

reserved[5]

應用程式和驅動程式必須將此設定為零。

特徵 ID

V4L2_VP9_SEG_LVL_ALT_Q

0

量化器段特徵。

V4L2_VP9_SEG_LVL_ALT_L

1

環路濾波器段特徵。

V4L2_VP9_SEG_LVL_REF_FRAME

2

參考幀段特徵。

V4L2_VP9_SEG_LVL_SKIP

3

跳過段特徵。

V4L2_VP9_SEG_LVL_MAX

4

段特徵的數量。

分段 標誌

V4L2_VP9_SEGMENTATION_FLAG_ENABLED

flags

指示此幀是否使用分段工具。

V4L2_VP9_SEGMENTATION_FLAG_UPDATE_MAP

V4L2_VP8_FRAME_FLAG_KEY_FRAME

指示應在此幀的解碼期間更新分段對映。

V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL_UPDATE

V4L2_VP8_FRAME_FLAG_EXPERIMENTAL

指示對分段對映的更新是相對於現有分段對映進行編碼的。

V4L2_VP9_SEGMENTATION_FLAG_UPDATE_DATA

V4L2_VP8_FRAME_FLAG_SHOW_FRAME

指示即將為每個段指定新引數。

V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_DELTA_UPDATE

V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF

指示分段引數表示要使用的實際值。

type v4l2_vp9_quantization

編碼量化引數。 有關更多詳細資訊,請參閱 VP9 規範的“7.2.9 量化引數語法”部分。

結構體 v4l2_vp9_quantization

__u8

base_q_idx

指示基本幀 qindex。

__s8

delta_q_y_dc

指示相對於 base_q_idx 的 Y DC 量化器。

__s8

delta_q_uv_dc

指示相對於 base_q_idx 的 UV DC 量化器。

__s8

delta_q_uv_ac

指示相對於 base_q_idx 的 UV AC 量化器。

__u8

reserved[4]

應用程式和驅動程式必須將此設定為零。

type v4l2_vp9_loop_filter

此結構體包含所有環路濾波器相關引數。 有關更多詳細資訊,請參閱 VP9 規範的“7.2.8 環路濾波器語義”部分。

結構體 v4l2_vp9_loop_filter

__s8

ref_deltas[4]

包含基於所選參考幀對濾波器級別所需的調整。

__s8

mode_deltas[2]

包含基於所選模式對濾波器級別所需的調整。

__u8

level

指示環路濾波器強度。

__u8

sharpness

指示清晰度級別。

__u8

flags

V4L2_VP9_LOOP_FILTER_FLAG_* 標誌的組合。 請參閱 環路濾波器標誌

__u8

reserved[7]

應用程式和驅動程式必須將此設定為零。

環路 濾波器 標誌

V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED

0x1

設定後,濾波器級別取決於用於預測塊的模式和參考幀。

V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE

0x2

設定後,位元流包含其他語法元素,這些元素指定要更新哪些模式和參考幀增量。

V4L2_CID_STATELESS_HEVC_SPS (結構體)

指定與相關 HEVC 切片資料對應的序列引數集欄位(從位元流中提取)。 這些位元流引數根據 ITU H.265/HEVC 定義。 它們在規範的第 7.4.3.2 節“序列引數集 RBSP 語義”中描述。

type v4l2_ctrl_hevc_sps
結構體 v4l2_ctrl_hevc_sps

__u8

video_parameter_set_id

指定活動 VPS 的 vps_video_parameter_set_id 的值,如 H.265 規範的“7.4.3.2.1 常規序列引數集 RBSP 語義”部分中所述。

__u8

seq_parameter_set_id

提供 SPS 的識別符號,以便其他語法元素參考,如 H.265 規範的“7.4.3.2.1 常規序列引數集 RBSP 語義”部分中所述。

__u16

pic_width_in_luma_samples

指定每個解碼圖片以亮度樣本為單位的寬度。

__u16

pic_height_in_luma_samples

指定每個解碼圖片以亮度樣本為單位的高度。

__u8

bit_depth_luma_minus8

此值加 8 指定亮度陣列樣本的位深度。

__u8

bit_depth_chroma_minus8

此值加 8 指定色度陣列樣本的位深度。

__u8

log2_max_pic_order_cnt_lsb_minus4

指定變數 MaxPicOrderCntLsb 的值。

__u8

sps_max_dec_pic_buffering_minus1

此值加 1 指定編碼影片序列 (CVS) 解碼圖片緩衝區的最大所需大小。

__u8

sps_max_num_reorder_pics

指示允許的最大圖片數量。

__u8

sps_max_latency_increase_plus1

用於指示 MaxLatencyPictures,它指示輸出順序中可以在任何圖片之前並且在解碼順序中跟隨該圖片的最大圖片數量。

__u8

log2_min_luma_coding_block_size_minus3

此值加 3 指定最小亮度編碼塊大小。

__u8

log2_diff_max_min_luma_coding_block_size

指定最大和最小亮度編碼塊大小之間的差異。

__u8

log2_min_luma_transform_block_size_minus2

此值加 2 指定最小亮度變換塊大小。

__u8

log2_diff_max_min_luma_transform_block_size

指定最大和最小亮度變換塊大小之間的差異。

__u8

max_transform_hierarchy_depth_inter

指定以幀間預測模式編碼的編碼單元的變換單元的最大層次深度。

__u8

max_transform_hierarchy_depth_intra

指定以幀內預測模式編碼的編碼單元的變換單元的最大層次深度。

__u8

pcm_sample_bit_depth_luma_minus1

此值加 1 指定用於表示亮度分量的每個 PCM 樣本值的位數。

__u8

pcm_sample_bit_depth_chroma_minus1

指定用於表示色度分量的每個 PCM 樣本值的位數。

__u8

log2_min_pcm_luma_coding_block_size_minus3

加 3 指定了編碼塊的最小尺寸。

__u8

log2_diff_max_min_pcm_luma_coding_block_size

指定了編碼塊的最大尺寸和最小尺寸之間的差值。

__u8

num_short_term_ref_pic_sets

指定了 SPS 中包含的 st_ref_pic_set() 語法結構的數目。

__u8

num_long_term_ref_pics_sps

指定了 SPS 中指定的候選長期參考圖片的數目。

__u8

chroma_format_idc

指定了色度取樣。

__u8

sps_max_sub_layers_minus1

此值加 1 指定了時間子層的最大數目。

__u64

flags

參見 序列引數集標誌

序列 引數 標誌

V4L2_HEVC_SPS_FLAG_SEPARATE_COLOUR_PLANE

0x00000001

V4L2_HEVC_SPS_FLAG_SCALING_LIST_ENABLED

0x00000002

V4L2_HEVC_SPS_FLAG_AMP_ENABLED

0x00000004

V4L2_HEVC_SPS_FLAG_SAMPLE_ADAPTIVE_OFFSET

0x00000008

V4L2_HEVC_SPS_FLAG_PCM_ENABLED

0x00000010

V4L2_HEVC_SPS_FLAG_PCM_LOOP_FILTER_DISABLED

0x00000020

V4L2_HEVC_SPS_FLAG_LONG_TERM_REF_PICS_PRESENT

0x00000040

V4L2_HEVC_SPS_FLAG_SPS_TEMPORAL_MVP_ENABLED

0x00000080

V4L2_HEVC_SPS_FLAG_STRONG_INTRA_SMOOTHING_ENABLED

0x00000100

V4L2_CID_STATELESS_HEVC_PPS (struct)

指定了關聯的 HEVC 片資料(從位元流中提取)的影像引數集欄位。這些位元流引數根據 ITU H.265/HEVC 定義。它們在規範的第 7.4.3.3 節“影像引數集 RBSP 語義”中描述。

type v4l2_ctrl_hevc_pps
struct v4l2_ctrl_hevc_pps

__u8

pic_parameter_set_id

標識了 PPS 以供其他語法元素參考。

__u8

num_extra_slice_header_bits

指定了片頭 RBSP 中存在的額外片頭位元數,這些片頭用於引用 PPS 的編碼影像。

__u8

num_ref_idx_l0_default_active_minus1

此值加 1 指定了 num_ref_idx_l0_active_minus1 的推斷值。

__u8

num_ref_idx_l1_default_active_minus1

此值加 1 指定了 num_ref_idx_l1_active_minus1 的推斷值。

__s8

init_qp_minus26

此值加 26 指定了引用 PPS 的每個片的 SliceQp Y 的初始值。

__u8

diff_cu_qp_delta_depth

指定了亮度編碼樹塊大小與傳達 cu_qp_delta_abs 和 cu_qp_delta_sign_flag 的編碼單元的最小亮度編碼塊大小之間的差值。

__s8

pps_cb_qp_offset

指定了亮度量化引數 Cb 的偏移量。

__s8

pps_cr_qp_offset

指定了亮度量化引數 Cr 的偏移量。

__u8

num_tile_columns_minus1

此值加 1 指定了劃分影像的瓦片列數。

__u8

num_tile_rows_minus1

此值加 1 指定了劃分影像的瓦片行數。

__u8

column_width_minus1[20]

此值加 1 指定了第 i 個瓦片列的寬度,以編碼樹塊為單位。

__u8

row_height_minus1[22]

此值加 1 指定了第 i 個瓦片行的高度,以編碼樹塊為單位。

__s8

pps_beta_offset_div2

指定了除以 2 的 beta 預設去塊引數偏移量。

__s8

pps_tc_offset_div2

指定了除以 2 的 tC 預設去塊引數偏移量。

__u8

log2_parallel_merge_level_minus2

此值加 2 指定了變數 Log2ParMrgLevel 的值。

__u8

padding[4]

應用程式和驅動程式必須將此設定為零。

__u64

flags

參見 影像引數集標誌

圖片 引數 標誌

V4L2_HEVC_PPS_FLAG_DEPENDENT_SLICE_SEGMENT_ENABLED

0x00000001

V4L2_HEVC_PPS_FLAG_OUTPUT_FLAG_PRESENT

0x00000002

V4L2_HEVC_PPS_FLAG_SIGN_DATA_HIDING_ENABLED

0x00000004

V4L2_HEVC_PPS_FLAG_CABAC_INIT_PRESENT

0x00000008

V4L2_HEVC_PPS_FLAG_CONSTRAINED_INTRA_PRED

0x00000010

V4L2_HEVC_PPS_FLAG_TRANSFORM_SKIP_ENABLED

0x00000020

V4L2_HEVC_PPS_FLAG_CU_QP_DELTA_ENABLED

0x00000040

V4L2_HEVC_PPS_FLAG_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT

0x00000080

V4L2_HEVC_PPS_FLAG_WEIGHTED_PRED

0x00000100

V4L2_HEVC_PPS_FLAG_WEIGHTED_BIPRED

0x00000200

V4L2_HEVC_PPS_FLAG_TRANSQUANT_BYPASS_ENABLED

0x00000400

V4L2_HEVC_PPS_FLAG_TILES_ENABLED

0x00000800

V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED

0x00001000

V4L2_HEVC_PPS_FLAG_LOOP_FILTER_ACROSS_TILES_ENABLED

0x00002000

V4L2_HEVC_PPS_FLAG_PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED

0x00004000

V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_OVERRIDE_ENABLED

0x00008000

V4L2_HEVC_PPS_FLAG_PPS_DISABLE_DEBLOCKING_FILTER

0x00010000

V4L2_HEVC_PPS_FLAG_LISTS_MODIFICATION_PRESENT

0x00020000

V4L2_HEVC_PPS_FLAG_SLICE_SEGMENT_HEADER_EXTENSION_PRESENT

0x00040000

V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT

0x00080000

指定了 PPS 中是否存在去塊濾波器控制語法元素

V4L2_HEVC_PPS_FLAG_UNIFORM_SPACING

0x00100000

指定了瓦片列邊界以及瓦片行邊界在影像上均勻分佈

V4L2_CID_STATELESS_HEVC_SLICE_PARAMS (struct)

指定了各種片特定的引數,特別是來自位元流的 NAL 單元頭、通用片分段頭和加權預測引數部分。這些位元流引數根據 ITU H.265/HEVC 定義。它們在規範的第 7.4.7 節“通用片分段頭語義”中描述。此控制元件是一個動態大小的一維陣列,使用時必須設定 V4L2_CTRL_FLAG_DYNAMIC_ARRAY 標誌。

type v4l2_ctrl_hevc_slice_params
struct v4l2_ctrl_hevc_slice_params

__u32

bit_size

當前片資料的大小(以位元為單位)。

__u32

data_byte_offset

當前片資料中影片資料的偏移量(以位元組為單位)。

__u32

num_entry_point_offsets

指定了片頭中入口點偏移語法元素的數目。當驅動程式支援時,必須設定 V4L2_CID_STATELESS_HEVC_ENTRY_POINT_OFFSETS

__u8

nal_unit_type

指定了片的編碼型別(B、P 或 I)。

__u8

nuh_temporal_id_plus1

減 1 指定了 NAL 單元的時間識別符號。

__u8

slice_type

(V4L2_HEVC_SLICE_TYPE_I、V4L2_HEVC_SLICE_TYPE_P 或 V4L2_HEVC_SLICE_TYPE_B)。

__u8

colour_plane_id

指定了與當前片關聯的顏色平面。

__s32

slice_pic_order_cnt

指定了影像順序計數。

__u8

num_ref_idx_l0_active_minus1

此值加 1 指定了參考影像列表 0 的最大參考索引,該索引可用於解碼片。

__u8

num_ref_idx_l1_active_minus1

此值加 1 指定了參考影像列表 1 的最大參考索引,該索引可用於解碼片。

__u8

collocated_ref_idx

指定了用於時間運動向量預測的並置影像的參考索引。

__u8

five_minus_max_num_merge_cand

指定了片中支援的最大合併運動向量預測候選數目減 5。

__s8

slice_qp_delta

指定了用於片中編碼塊的 QpY 的初始值。

__s8

slice_cb_qp_offset

指定了要新增到 pps_cb_qp_offset 值中的差值。

__s8

slice_cr_qp_offset

指定了要新增到 pps_cr_qp_offset 值中的差值。

__s8

slice_act_y_qp_offset

指定了第 8.6.2 節中匯出的亮度量化引數 qP 的偏移量

__s8

slice_act_cb_qp_offset

指定了第 8.6.2 節中匯出的 cb 量化引數 qP 的偏移量

__s8

slice_act_cr_qp_offset

指定了第 8.6.2 節中匯出的 cr 量化引數 qP 的偏移量

__s8

slice_beta_offset_div2

指定了除以 2 的 beta 去塊引數偏移量。

__s8

slice_tc_offset_div2

指定了除以 2 的 tC 去塊引數偏移量。

__u8

pic_struct

指示影像應顯示為幀還是一個或多個場。

__u32

slice_segment_addr

指定了片分段中第一個編碼樹塊的地址。

__u8

ref_idx_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]

作為 DPB 中索引的 L0 參考元素的列表。

__u8

ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]

作為 DPB 中索引的 L1 參考元素的列表。

__u16

short_term_ref_pic_set_size

指定了規範中描述為 st_ref_pic_set() 的短期參考影像集的大小(以位元為單位),包含在片頭或 SPS 中(第 7.3.6.1 節)。

__u16

long_term_ref_pic_set_size

指定了包含在片頭或 SPS 中的長期參考影像集的大小(以位元為單位)。它是規範第 7.3.6.1 節中條件塊 if(long_term_ref_pics_present_flag) 中的位元數。

__u8

value

應用程式和驅動程式必須將此設定為零。

struct v4l2_hevc_pred_weight_table

pred_weight_table

幀間預測的預測權重係數。

__u64

flags

參見 片引數標誌

引數 標誌

V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_LUMA

0x00000001

V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_CHROMA

0x00000002

V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_TEMPORAL_MVP_ENABLED

0x00000004

V4L2_HEVC_SLICE_PARAMS_FLAG_MVD_L1_ZERO

0x00000008

V4L2_HEVC_SLICE_PARAMS_FLAG_CABAC_INIT

0x00000010

V4L2_HEVC_SLICE_PARAMS_FLAG_COLLOCATED_FROM_L0

0x00000020

V4L2_HEVC_SLICE_PARAMS_FLAG_USE_INTEGER_MV

0x00000040

V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_DEBLOCKING_FILTER_DISABLED

0x00000080

V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED

0x00000100

V4L2_HEVC_SLICE_PARAMS_FLAG_DEPENDENT_SLICE_SEGMENT

0x00000200

V4L2_CID_STATELESS_HEVC_ENTRY_POINT_OFFSETS (integer)

指定了以位元組為單位的入口點偏移量。此控制元件是一個動態大小的陣列。入口點偏移量的數目由 elems 欄位報告。此位元流引數根據 ITU H.265/HEVC 定義。它們在規範的第 7.4.7.1 節“通用片分段頭語義”中描述。當在一個請求中提交多個片時,此陣列的長度必須是請求中所有片的 num_entry_point_offsets 的總和。

V4L2_CID_STATELESS_HEVC_SCALING_MATRIX (struct)

指定了用於變換系數縮放過程的 HEVC 縮放矩陣引數。這些矩陣和引數根據 ITU H.265/HEVC 定義。它們在規範的第 7.4.5 節“縮放列表資料語義”中描述。

type v4l2_ctrl_hevc_scaling_matrix
struct v4l2_ctrl_hevc_scaling_matrix

__u8

scaling_list_4x4[6][16]

縮放列表用於變換系數的縮放過程。每個縮放列表上的值都按光柵掃描順序排列。

__u8

scaling_list_8x8[6][64]

縮放列表用於變換系數的縮放過程。每個縮放列表上的值都按光柵掃描順序排列。

__u8

scaling_list_16x16[6][64]

縮放列表用於變換系數的縮放過程。每個縮放列表上的值都按光柵掃描順序排列。

__u8

scaling_list_32x32[2][64]

縮放列表用於變換系數的縮放過程。每個縮放列表上的值都按光柵掃描順序排列。

__u8

scaling_list_dc_coef_16x16[6]

縮放列表用於變換系數的縮放過程。每個縮放列表上的值都按光柵掃描順序排列。

__u8

scaling_list_dc_coef_32x32[2]

縮放列表用於變換系數的縮放過程。每個縮放列表上的值都按光柵掃描順序排列。

type v4l2_hevc_dpb_entry
struct v4l2_hevc_dpb_entry

__u64

timestamp

用作參考的 V4L2 捕獲緩衝區的時間戳,與 B 編碼幀和 P 編碼幀一起使用。時間戳指的是 struct v4l2_buffer 中的 timestamp 欄位。使用 v4l2_timeval_to_ns() 函式將 struct v4l2_buffer 中的 struct timeval 轉換為 __u64。

__u8

flags

參考幀的長期標誌 (V4L2_HEVC_DPB_ENTRY_LONG_TERM_REFERENCE)。該標誌的設定如 ITU HEVC 規範第“8.3.2 參考影像集解碼過程”一章中所述。

__u8

field_pic

參考是場影像還是幀。參見 HEVC dpb 場影像標誌

__s32

pic_order_cnt_val

當前影像的影像順序計數。

__u8

padding[2]

應用程式和驅動程式必須將此設定為零。

HEVC dpb 影像 標誌

V4L2_HEVC_SEI_PIC_STRUCT_FRAME

0

(逐行)幀

V4L2_HEVC_SEI_PIC_STRUCT_TOP_FIELD

1

頂場

V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_FIELD

2

底場

V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM

3

頂場、底場,按該順序排列

V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP

4

底場、頂場,按該順序排列

V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM_TOP

5

頂場、底場、頂場重複,按該順序排列

V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM

6

底場、頂場、底場重複,按該順序排列

V4L2_HEVC_SEI_PIC_STRUCT_FRAME_DOUBLING

7

幀加倍

V4L2_HEVC_SEI_PIC_STRUCT_FRAME_TRIPLING

8

幀三倍化

V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED_PREVIOUS_BOTTOM

9

頂場與輸出順序中的前一個底場配對

V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAIRED_PREVIOUS_TOP

10

底場與輸出順序中的前一個頂場配對

V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED_NEXT_BOTTOM

11

頂場與輸出順序中的下一個底場配對

V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAIRED_NEXT_TOP

12

底場與輸出順序中的下一個頂場配對

type v4l2_hevc_pred_weight_table
struct v4l2_hevc_pred_weight_table

__s8

delta_luma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]

應用於列表 0 的亮度預測值的加權因子的差。

__s8

luma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]

應用於列表 0 的亮度預測值的附加偏移量。

__s8

delta_chroma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]

應用於列表 0 的色度預測值的加權因子的差。

__s8

chroma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]

應用於列表 0 的色度預測值的附加偏移量的差。

__s8

delta_luma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]

應用於列表 1 的亮度預測值的加權因子的差。

__s8

luma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]

應用於列表 1 的亮度預測值的附加偏移量。

__s8

delta_chroma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]

應用於列表 1 的色度預測值的加權因子的差。

__s8

chroma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]

應用於列表 1 的色度預測值的附加偏移量的差。

__u8

luma_log2_weight_denom

所有亮度加權因子的分母的以 2 為底的對數。

__s8

delta_chroma_log2_weight_denom

所有色度加權因子的分母的以 2 為底的對數的差。

__u8

padding[6]

應用程式和驅動程式必須將此設定為零。

V4L2_CID_STATELESS_HEVC_DECODE_MODE (enum)

指定要使用的解碼模式。當前公開基於片的解碼和基於幀的解碼,但稍後可能會新增新模式。此控制元件用作 V4L2_PIX_FMT_HEVC_SLICE 畫素格式的修飾符。支援 V4L2_PIX_FMT_HEVC_SLICE 的應用程式需要設定此控制元件,以便指定緩衝區的預期解碼模式。驅動程式可以公開單個或多個解碼模式,具體取決於它們可以支援的模式。

type v4l2_stateless_hevc_decode_mode

V4L2_STATELESS_HEVC_DECODE_MODE_SLICE_BASED

0

解碼以片粒度完成。OUTPUT 緩衝區必須包含單個片。

V4L2_STATELESS_HEVC_DECODE_MODE_FRAME_BASED

1

解碼以幀粒度完成。OUTPUT 緩衝區必須包含解碼幀所需的所有片。

V4L2_CID_STATELESS_HEVC_START_CODE (enum)

指定每個片預期的 HEVC 片起始碼。此控制元件用作 V4L2_PIX_FMT_HEVC_SLICE 畫素格式的修飾符。支援 V4L2_PIX_FMT_HEVC_SLICE 的應用程式需要設定此控制元件,以便指定緩衝區的預期起始碼。驅動程式可以公開單個或多個起始碼,具體取決於它們可以支援的起始碼。

type v4l2_stateless_hevc_start_code

V4L2_STATELESS_HEVC_START_CODE_NONE

0

選擇此值指定 HEVC 片傳遞給驅動程式時沒有任何起始碼。位元流資料應符合 ITU H.265/HEVC 7.3.1.1 通用 NAL 單元語法,因此在需要時包含模擬防止位元組。

V4L2_STATELESS_HEVC_START_CODE_ANNEX_B

1

選擇此值指定 HEVC 片預期以 Annex B 起始碼作為字首。根據 ITU H.265/HEVC,有效的起始碼可以是 3 位元組 0x000001 或 4 位元組 0x00000001。

V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (integer)

指定 NAL 單元的優先順序識別符號,該識別符號將應用於基本層。預設情況下,此值對於基本層設定為 0,下一層將分配優先順序 ID 為 1、2、3,依此類推。影片編碼器無法決定要應用於層的優先順序 ID,因此這必須來自客戶端。這適用於 H264,有效範圍為 0 到 63。源 Rec. ITU-T H.264 (06/2019);G.7.4.1.1、G.8.8.1。

V4L2_CID_MPEG_VIDEO_LTR_COUNT (integer)

指定編碼器在任何給定時間可以保留的長期參考 (LTR) 幀的最大數目。這適用於 H264 和 HEVC 編碼器。

V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (integer)

設定此控制元件後,下一個排隊的幀將被標記為長期參考 (LTR) 幀,並給定此 LTR 索引,其範圍從 0 到 LTR_COUNT-1。這適用於 H264 和 HEVC 編碼器。源 Rec. ITU-T H.264 (06/2019);表 7.9

V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (bitmask)

指定用於編碼在此控制元件設定後排隊的下一個幀的長期參考 (LTR) 幀。這提供了一個位元掩碼,其中包含位元 [0, LTR_COUNT-1]。這適用於 H264 和 HEVC 編碼器。

V4L2_CID_STATELESS_HEVC_DECODE_PARAMS (struct)

指定各種解碼引數,特別是所有列表(短、長、之前、當前、之後)的參考影像順序計數 (POC) 以及每個列表的條目數。這些引數根據 ITU H.265/HEVC 定義。它們在規範的第 8.3 節“片解碼過程”中描述。

type v4l2_ctrl_hevc_decode_params
struct v4l2_ctrl_hevc_decode_params

__s32

pic_order_cnt_val

規範第 8.3.1 節“影像順序計數的解碼過程”中描述的 PicOrderCntVal。

__u16

short_term_ref_pic_set_size

指定了片頭或 SPS 中包含的第一個片中描述為 st_ref_pic_set() 的短期參考影像集的大小(以位元為單位)(規範第 7.3.6.1 節)。

__u16

long_term_ref_pic_set_size

指定了包含在片頭或 SPS 中的第一個片中的長期參考影像集的大小(以位元為單位)。它是規範第 7.3.6.1 節中條件塊 if(long_term_ref_pics_present_flag) 中的位元數。

__u8

num_active_dpb_entries

dpb 中的條目數。

__u8

num_poc_st_curr_before

當前幀之前的短期集中的參考影像數。

__u8

num_poc_st_curr_after

當前幀之後的短期集中的參考影像數。

__u8

num_poc_lt_curr

長期集中的參考影像數。

__u8

poc_st_curr_before[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]

規範第 8.3.2 節“參考影像集解碼過程”中描述的 PocStCurrBefore:提供 DPB 陣列中短期之前參考的索引。

__u8

poc_st_curr_after[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]

規範第 8.3.2 節“參考影像集解碼過程”中描述的 PocStCurrAfter:提供 DPB 陣列中短期之後參考的索引。

__u8

poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]

規範第 8.3.2 節“參考影像集解碼過程”中描述的 PocLtCurr:提供 DPB 陣列中長期參考的索引。

__u8

num_delta_pocs_of_ref_rps_idx

當片頭中的 short_term_ref_pic_set_sps_flag 等於 0 時,它與派生值 NumDeltaPocs[RefRpsIdx] 相同。它可用於解析片頭中的 RPS 資料,而不是使用 @short_term_ref_pic_set_size 跳過它。當片頭中的 short_term_ref_pic_set_sps_flag 的值等於 1 時,num_delta_pocs_of_ref_rps_idx 應設定為 0。

struct v4l2_hevc_dpb_entry

dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]

解碼影像緩衝區,用於參考幀的元資料。

__u64

flags

參見 解碼引數標誌

解碼 引數 標誌

V4L2_HEVC_DECODE_PARAM_FLAG_IRAP_PIC

0x00000001

V4L2_HEVC_DECODE_PARAM_FLAG_IDR_PIC

0x00000002

V4L2_HEVC_DECODE_PARAM_FLAG_NO_OUTPUT_OF_PRIOR

0x00000004

V4L2_CID_STATELESS_AV1_SEQUENCE (struct)

表示 AV1 序列 OBU(開放位元流單元)。有關更多詳細資訊,請參見 AV1 中的 5.5 節“序列頭 OBU 語法”。

type v4l2_ctrl_av1_sequence
struct v4l2_ctrl_av1_sequence

__u32

flags

參見 AV1 序列標誌

__u8

seq_profile

指定了編碼影片序列中可以使用的功能。

__u8

order_hint_bits

指定了每個幀的 order_hint 欄位使用的位元數。

__u8

bit_depth

用於序列的位元深度,如 AV1 中的 5.5.2 節“顏色配置語法”中所述。

__u8

reserved

應用程式和驅動程式必須將此設定為零。

__u16

max_frame_width_minus_1

指定了此序列頭表示的幀的最大幀寬減 1。

__u16

max_frame_height_minus_1

指定了此序列頭表示的幀的最大幀高減 1。

AV1 序列 標誌

V4L2_AV1_SEQUENCE_FLAG_STILL_PICTURE

0x00000001

如果設定,則指定編碼影片序列僅包含一個編碼幀。如果未設定,則指定編碼影片序列包含一個或多個編碼幀。

V4L2_AV1_SEQUENCE_FLAG_USE_128X128_SUPERBLOCK

0x00000002

如果設定,則指示超塊包含 128x128 亮度樣本。當等於 0 時,指示超塊包含 64x64 亮度樣本。包含的色度樣本數取決於 subsampling_x 和 subsampling_y。

V4L2_AV1_SEQUENCE_FLAG_ENABLE_FILTER_INTRA

0x00000004

如果設定,則指定可以存在 use_filter_intra 語法元素。如果未設定,則指定將不存在 use_filter_intra 語法元素。

V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTRA_EDGE_FILTER

0x00000008

指定是否應啟用幀內邊緣過濾過程。

V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTERINTRA_COMPOUND

0x00000010

如果設定,則指定幀間塊的模式資訊可能包含語法元素 interintra。如果未設定,則指定語法元素 interintra 將不存在。

V4L2_AV1_SEQUENCE_FLAG_ENABLE_MASKED_COMPOUND

0x00000020

如果設定,則指定幀間塊的模式資訊可能包含語法元素 compound_type。如果未設定,則指定語法元素 compound_type 將不存在。

V4L2_AV1_SEQUENCE_FLAG_ENABLE_WARPED_MOTION

0x00000040

如果設定,則指示 allow_warped_motion 語法元素可能存在。如果未設定,則指示 allow_warped_motion 語法元素將不存在。

V4L2_AV1_SEQUENCE_FLAG_ENABLE_DUAL_FILTER

0x00000080

如果設定,則指示幀間預測濾波器型別可以在水平方向和垂直方向上獨立指定。如果標誌等於 0,則只能指定一種濾波器型別,然後將其用於兩個方向。

V4L2_AV1_SEQUENCE_FLAG_ENABLE_ORDER_HINT

0x00000100

如果設定,則指示可以基於順序提示的值使用工具。如果未設定,則指示基於順序提示的工具被停用。

V4L2_AV1_SEQUENCE_FLAG_ENABLE_JNT_COMP

0x00000200

如果設定,則指示距離權重過程可以用於幀間預測。

V4L2_AV1_SEQUENCE_FLAG_ENABLE_REF_FRAME_MVS

0x00000400

如果設定,則指示 use_ref_frame_mvs 語法元素可能存在。如果未設定,則指示 use_ref_frame_mvs 語法元素將不存在。

V4L2_AV1_SEQUENCE_FLAG_ENABLE_SUPERRES

0x00000800

如果設定,則指定 use_superres 語法元素將存在於未壓縮的頭中。如果未設定,則指定 use_superres 語法元素將不存在(而是在未壓縮的頭中將 use_superres 設定為 0 而不讀取)。

V4L2_AV1_SEQUENCE_FLAG_ENABLE_CDEF

0x00001000

如果設定,則指定可以啟用 cdef 過濾。如果未設定,則指定 cdef 過濾被停用。

V4L2_AV1_SEQUENCE_FLAG_ENABLE_RESTORATION

0x00002000

如果設定,則指定可以啟用迴圈恢復過濾。如果未設定,則指定迴圈恢復過濾被停用。

V4L2_AV1_SEQUENCE_FLAG_MONO_CHROME

0x00004000

如果設定,則指示影片不包含 U 和 V 顏色平面。如果未設定,則指示影片包含 Y、U 和 V 顏色平面。

V4L2_AV1_SEQUENCE_FLAG_COLOR_RANGE

0x00008000

如果設定,則表示全範圍表示,即“全範圍量化”。如果未設定,則表示工作室範圍表示,即“有限範圍量化”。

V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_X

0x00010000

指定色度子取樣格式。

V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_Y

0x00020000

指定色度子取樣格式。

V4L2_AV1_SEQUENCE_FLAG_FILM_GRAIN_PARAMS_PRESENT

0x00040000

指定影片紋理引數是否存在於編碼影片序列中。

V4L2_AV1_SEQUENCE_FLAG_SEPARATE_UV_DELTA_Q

0x00080000

如果設定,則指示 U 和 V 平面可能具有單獨的增量量化值。如果未設定,則指示 U 和 V 平面將共享相同的增量量化值。

V4L2_CID_STATELESS_AV1_TILE_GROUP_ENTRY (struct)

表示 AV1 圖塊組中的單個 AV1 圖塊。請注意,可以使用 struct v4l2_ctrl_av1_frame 中的 tile_row 和 tile_col 從 struct v4l2_av1_tile_info 中檢索 MiRowStart、MiRowEnd、MiColStart 和 MiColEnd。有關更多詳細資訊,請參見 AV1 中的 6.10.1 節“通用圖塊組 OBU 語義”。

type v4l2_ctrl_av1_tile_group_entry
struct v4l2_ctrl_av1_tile_group_entry

__u32

tile_offset

來自 OBU 資料的偏移量,即編碼圖塊資料實際開始的位置。

__u32

tile_size

指定了編碼圖塊的大小(以位元組為單位)。等效於 AV1 中的“TileSize”。

__u32

tile_row

指定了當前圖塊的行。等效於 AV1 中的“TileRow”。

__u32

tile_col

指定了當前圖塊的列。等效於 AV1 中的“TileColumn”。

type v4l2_av1_warp_model

AV1 變形模型,如 AV1 的第 3 節“符號和縮寫術語”中所述。

V4L2_AV1_WARP_MODEL_IDENTITY

0

變形模型只是一個恆等變換。

V4L2_AV1_WARP_MODEL_TRANSLATION

1

變形模型是一個純粹的平移。

V4L2_AV1_WARP_MODEL_ROTZOOM

2

變形模型是一個旋轉 + 對稱縮放 + 平移。

V4L2_AV1_WARP_MODEL_AFFINE

3

變形模型是一個通用的仿射變換。

type v4l2_av1_reference_frame

AV1 參考幀,如 AV1 的 6.10.24 節“參考幀語義”中所述。

V4L2_AV1_REF_INTRA_FRAME

0

幀內參考幀。

V4L2_AV1_REF_LAST_FRAME

1

Last 幀參考。

V4L2_AV1_REF_LAST2_FRAME

2

Last2 幀參考。

V4L2_AV1_REF_LAST3_FRAME

3

Last3 幀參考。

V4L2_AV1_REF_GOLDEN_FRAME

4

Golden 幀參考。

V4L2_AV1_REF_BWDREF_FRAME

5

BWD 幀參考。

V4L2_AV1_REF_ALTREF2_FRAME

6

ALTREF2 幀參考。

V4L2_AV1_REF_ALTREF_FRAME

7

ALTREF 幀參考。

type v4l2_av1_global_motion

AV1 全域性運動引數,如 AV1 的 6.8.17 節“全域性運動引數語義”中所述。

struct v4l2_av1_global_motion

__u8

flags[V4L2_AV1_TOTAL_REFS_PER_FRAME]

一個位域,包含每個參考幀的標誌。有關更多詳細資訊,請參見 AV1 全域性運動標誌

enum v4l2_av1_warp_model

type[V4L2_AV1_TOTAL_REFS_PER_FRAME]

使用的全域性運動變換型別。

__s32

params[V4L2_AV1_TOTAL_REFS_PER_FRAME][6]

此欄位的含義與 AV1 中的“gm_params”相同。

__u8

invalid

位域,指示給定參考幀的全域性運動引數是否無效。 請參見 7.11.3.6 節設定剪下過程和變數“warpValid”。 使用 V4L2_AV1_GLOBAL_MOTION_IS_INVALID(ref) 建立合適的掩碼。

__u8

reserved[3]

應用程式和驅動程式必須將此設定為零。

AV1 全域性 運動 標誌

V4L2_AV1_GLOBAL_MOTION_FLAG_IS_GLOBAL

0x00000001

指定特定參考幀是否存在全域性運動引數。

V4L2_AV1_GLOBAL_MOTION_FLAG_IS_ROT_ZOOM

0x00000002

指定特定參考幀是否使用旋轉和縮放全域性運動。

V4L2_AV1_GLOBAL_MOTION_FLAG_IS_TRANSLATION

0x00000004

指定特定參考幀是否使用平移全域性運動

type v4l2_av1_frame_restoration_type

AV1 幀恢復型別。

V4L2_AV1_FRAME_RESTORE_NONE

0

不應用任何過濾。

V4L2_AV1_FRAME_RESTORE_WIENER

1

呼叫 Wiener 濾波器過程。

V4L2_AV1_FRAME_RESTORE_SGRPROJ

2

呼叫自引導濾波器過程。

V4L2_AV1_FRAME_RESTORE_SWITCHABLE

3

恢復濾波器是可切換的。

type v4l2_av1_loop_restoration

AV1 環路恢復,如 AV1 的 6.10.15 節“環路恢復引數語義”中所述。

struct v4l2_av1_loop_restoration

__u8

flags

參見 AV1 環路恢復標誌

__u8

lr_unit_shift

指定亮度恢復大小是否應減半。

__u8

lr_uv_shift

指定色度大小是否應為亮度大小的一半。

__u8

reserved

應用程式和驅動程式必須將此設定為零。

v4l2_av1_frame_restoration_type

frame_restoration_type[V4L2_AV1_NUM_PLANES_MAX]

指定用於每個平面的恢復型別。

__u8

loop_restoration_size[V4L2_AV1_MAX_NUM_PLANES]

指定當前平面中以樣本為單位的環路恢復單元的大小。

AV1 環路 恢復 標誌

V4L2_AV1_LOOP_RESTORATION_FLAG_USES_LR

0x00000001

保留與 AV1 中 UsesLr 相同的含義。

V4L2_AV1_LOOP_RESTORATION_FLAG_USES_CHROMA_LR

0x00000002

保留與 AV1 中 UsesChromaLr 相同的含義。

type v4l2_av1_cdef

AV1 CDEF 引數語義,如 AV1 的 6.10.14 節“CDEF 引數語義”中所述。

struct v4l2_av1_cdef

__u8

damping_minus_3

控制去環濾波器的阻尼量。

__u8

bits

指定需要多少位才能指定要應用的 CDEF 濾波器。

__u8

y_pri_strength[V4L2_AV1_CDEF_MAX]

指定主濾波器的強度。

__u8

y_sec_strength[V4L2_AV1_CDEF_MAX]

指定輔助濾波器的強度。

__u8

uv_pri_strength[V4L2_AV1_CDEF_MAX]

指定主濾波器的強度。

__u8

uv_sec_strength[V4L2_AV1_CDEF_MAX]

指定輔助濾波器的強度。

type v4l2_av1_segment_feature

AV1 段特徵,如 AV1 的第 3 節“符號和縮寫詞”中所述。

V4L2_AV1_SEG_LVL_ALT_Q

0

量化器段特徵的索引。

V4L2_AV1_SEG_LVL_ALT_LF_Y_V

1

垂直亮度環路濾波器段特徵的索引。

V4L2_AV1_SEG_LVL_REF_FRAME

5

參考幀段特徵的索引。

V4L2_AV1_SEG_LVL_REF_SKIP

6

跳過段特徵的索引。

V4L2_AV1_SEG_LVL_REF_GLOBALMV

7

全域性 mv 特徵的索引。

V4L2_AV1_SEG_LVL_MAX

8

段特徵的數量。

type v4l2_av1_segmentation

AV1 分割引數,如 AV1 的 6.8.13 節“分割引數語義”中所定義。

struct v4l2_av1_segmentation

__u8

flags

參見 AV1 分割標誌

__u8

last_active_seg_id

指示具有某些啟用特徵的最高編號的段 ID。 在解碼段 ID 時,這用於僅解碼與使用段對應的選項。

__u8

feature_enabled[V4L2_AV1_MAX_SEGMENTS]

位掩碼,定義在每個段中啟用哪些特徵。 使用 V4L2_AV1_SEGMENT_FEATURE_ENABLED 構建合適的掩碼。

__u16

feature_data[V4L2_AV1_MAX_SEGMENTS][V4L2_AV1_SEG_LVL_MAX]

附加到每個特徵的資料。 僅當啟用該特徵時,資料條目才有效。

AV1 分割 標誌

V4L2_AV1_SEGMENTATION_FLAG_ENABLED

0x00000001

如果設定,指示此幀使用分割工具。 如果未設定,指示該幀不使用分割。

V4L2_AV1_SEGMENTATION_FLAG_UPDATE_MAP

0x00000002

如果設定,指示在解碼此幀期間更新分割圖。 如果未設定,指示使用上一幀的分割圖。

V4L2_AV1_SEGMENTATION_FLAG_TEMPORAL_UPDATE

0x00000004

如果設定,指示對分割圖的更新是相對於現有分割圖進行編碼的。 如果未設定,指示新的分割圖是在沒有參考現有分割圖的情況下進行編碼的。

V4L2_AV1_SEGMENTATION_FLAG_UPDATE_DATA

0x00000008

如果設定,指示對分割圖的更新是相對於現有分割圖進行編碼的。 如果未設定,指示新的分割圖是在沒有參考現有分割圖的情況下進行編碼的。

V4L2_AV1_SEGMENTATION_FLAG_SEG_ID_PRE_SKIP

0x00000010

如果設定,指示將在跳過語法元素之前讀取段 ID。 如果未設定,指示將首先讀取跳過語法元素。

type v4l2_av1_loop_filter

AV1 環路濾波器引數,如 AV1 的 6.8.10 節“環路濾波器語義”中所定義。

struct v4l2_av1_loop_filter

__u8

flags

有關更多詳細資訊,請參見 AV1 環路濾波器標誌

__u8

level[4]

一個數組,包含環路濾波器強度值。 來自陣列的不同環路濾波器強度值取決於要過濾的影像平面和要過濾的邊緣方向(垂直或水平)而使用。

__u8

sharpness

指示清晰度級別。 loop_filter_level 和 loop_filter_sharpness 一起確定何時過濾塊邊緣,以及過濾可以改變樣本值的程度。 環路濾波器過程在 AV1 的 7.14 節中描述。

__u8

ref_deltas[V4L2_AV1_TOTAL_REFS_PER_FRAME]

包含基於所選參考幀對濾波器級別所需的調整。 如果不存在此語法元素,它將保持其先前的值。

__u8

mode_deltas[2]

包含基於所選模式對濾波器級別所需的調整。 如果不存在此語法元素,它將保持其先前的值。

__u8

delta_lf_res

指定應應用於解碼環路濾波器增量值的左移。

AV1 環路 濾波器 標誌

V4L2_AV1_LOOP_FILTER_FLAG_DELTA_ENABLED

0x00000001

如果設定,表示濾波器級別取決於用於預測塊的模式和參考幀。 如果未設定,表示濾波器級別不取決於模式和參考幀。

V4L2_AV1_LOOP_FILTER_FLAG_DELTA_UPDATE

0x00000002

如果設定,表示存在額外的語法元素,用於指定要更新哪些模式和參考幀增量。 如果未設定,表示不存在這些語法元素。

V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_PRESENT

0x00000004

指定是否存在環路濾波器增量值

V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_MULTI

0x00000008

等於 1 的值指定為水平亮度邊緣、垂直亮度邊緣、U 邊緣和 V 邊緣傳送單獨的環路濾波器增量。 等於 0 的 delta_lf_multi 值指定對所有邊緣使用相同的環路濾波器增量。

type v4l2_av1_quantization

AV1 量化引數,如 AV1 的 6.8.11 節“量化引數語義”中所定義。

struct v4l2_av1_quantization

__u8

flags

有關更多詳細資訊,請參見 AV1 環路濾波器標誌

__u8

base_q_idx

指示基本幀 qindex。 這用於 Y AC 係數,並用作其他量化器的基本值。

__u8

delta_q_y_dc

指示相對於 base_q_idx 的 Y DC 量化器。

__u8

delta_q_u_dc

指示相對於 base_q_idx 的 U DC 量化器。

__u8

delta_q_u_ac

指示相對於 base_q_idx 的 U AC 量化器。

__u8

delta_q_v_dc

指示相對於 base_q_idx 的 V DC 量化器。

__u8

delta_q_v_ac

指示相對於 base_q_idx 的 V AC 量化器。

__u8

qm_y

指定量化器矩陣中應用於亮度平面解碼的級別。

__u8

qm_u

指定量化器矩陣中應用於色度 U 平面解碼的級別。

__u8

qm_v

指定量化器矩陣中應用於色度 V 平面解碼的級別。

__u8

delta_q_res

指定應應用於解碼量化器索引增量值的左移。

AV1 量化 標誌

V4L2_AV1_QUANTIZATION_FLAG_DIFF_UV_DELTA

0x00000001

如果設定,指示 U 和 V 增量量化器值是單獨編碼的。 如果未設定,指示 U 和 V 增量量化器值共享一個公共值。

V4L2_AV1_QUANTIZATION_FLAG_USING_QMATRIX

0x00000002

如果設定,指定量化器矩陣將用於計算量化器。

V4L2_AV1_QUANTIZATION_FLAG_DELTA_Q_PRESENT

0x00000004

指定是否存在量化器索引增量值。

type v4l2_av1_tile_info

AV1 切片資訊,如 ref:av1 的 6.8.14 節“切片資訊語義”中所定義。

struct v4l2_av1_tile_info

__u8

flags

有關更多詳細資訊,請參見 AV1 切片資訊標誌

__u8

context_update_tile_id

指定用於 CDF 更新的切片。

__u8

tile_cols

指定跨幀的切片數。

__u8

tile_rows

指定沿幀向下的切片數。

__u32

mi_col_starts[V4L2_AV1_MAX_TILE_COLS + 1]

一個數組,指定影像中每個切片的起始列(以 4x4 亮度樣本為單位)。

__u32

mi_row_starts[V4L2_AV1_MAX_TILE_ROWS + 1]

一個數組,指定影像中每個切片的起始行(以 4x4 亮度樣本為單位)。

__u32

width_in_sbs_minus_1[V4L2_AV1_MAX_TILE_COLS]

指定以超塊為單位的切片寬度減 1。

__u32

height_in_sbs_minus_1[V4L2_AV1_MAX_TILE_ROWS]

指定以超塊為單位的切片高度減 1。

__u8

tile_size_bytes

指定編碼每個切片大小所需的位元組數。

__u8

reserved[3]

應用程式和驅動程式必須將此設定為零。

AV1 切片 資訊 標誌

V4L2_AV1_TILE_INFO_FLAG_UNIFORM_TILE_SPACING

0x00000001

如果設定,表示切片在幀中均勻分佈。 (換句話說,所有切片的大小都相同,除了右邊緣和底邊緣的切片可能較小)。 如果未設定,表示將編碼切片大小。

type v4l2_av1_frame_type

AV1 幀型別

V4L2_AV1_KEY_FRAME

0

關鍵幀。

V4L2_AV1_INTER_FRAME

1

幀間幀。

V4L2_AV1_INTRA_ONLY_FRAME

2

僅幀內幀。

V4L2_AV1_SWITCH_FRAME

3

切換幀。

type v4l2_av1_interpolation_filter

AV1 插值濾波器

V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP

0

八抽頭濾波器。

V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH

1

八抽頭平滑濾波器。

V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP

2

八抽頭銳化濾波器。

V4L2_AV1_INTERPOLATION_FILTER_BILINEAR

3

雙線性濾波器。

V4L2_AV1_INTERPOLATION_FILTER_SWITCHABLE

4

濾波器選擇在塊級別進行訊號通知。

type v4l2_av1_tx_mode

AV1 Tx 模式,如 AV1 的 6.8.21 節“TX 模式語義”中所述。

V4L2_AV1_TX_MODE_ONLY_4X4

0

逆變換將僅使用 4x4 變換。

V4L2_AV1_TX_MODE_LARGEST

1

逆變換將使用適合塊內部的最大變換大小。

V4L2_AV1_TX_MODE_SELECT

2

變換大小的選擇是為每個塊顯式指定的。

V4L2_CID_STATELESS_AV1_FRAME (struct)

表示幀頭 OBU。 有關更多詳細資訊,請參見 AV1 的 6.8 節“幀頭 OBU 語義”。

type v4l2_ctrl_av1_frame
struct v4l2_ctrl_av1_frame

struct v4l2_av1_tile_info

tile_info

切片資訊

struct v4l2_av1_quantization

quantization

量化引數。

__u8

superres_denom

上取樣率的分母。

struct v4l2_av1_segmentation

segmentation

分割引數。

struct v4l2_av1_loop_filter

loop_filter

環路濾波器引數

struct v4l2_av1_cdef

cdef

CDEF 引數

__u8

skip_mode_frame[2]

當 skip_mode 等於 1 時,指定用於複合預測的幀。

__u8

primary_ref_frame

指定哪個參考幀包含應在幀開始時載入的 CDF 值和其他狀態。

struct v4l2_av1_loop_restoration

loop_restoration

環路恢復引數。

struct v4l2_av1_global_motion

global_motion

全域性運動引數。

__u32

flags

有關更多詳細資訊,請參見 AV1 幀標誌

enum v4l2_av1_frame_type

frame_type

指定 AV1 幀型別

__u32

order_hint

指定此幀的預期輸出順序的 OrderHintBits 最低有效位。

__u32

upscaled_width

上取樣的寬度。

enum v4l2_av1_interpolation_filter

interpolation_filter

指定用於執行幀間預測的濾波器選擇。

enum v4l2_av1_tx_mode

tx_mode

指定如何確定變換大小。

__u32

frame_width_minus_1

加 1 以獲得幀的寬度。

__u32

frame_height_minus_1

加 1 以獲得幀的高度。

__u16

render_width_minus_1

加 1 以獲得以亮度樣本為單位的幀的渲染寬度。

__u16

render_height_minus_1

加 1 以獲得以亮度樣本為單位的幀的渲染高度。

__u32

current_frame_id

指定當前幀的幀 ID 號。 幀 ID 號是附加資訊,不會影響解碼過程,但為解碼器提供了一種檢測丟失的參考幀的方法,以便可以採取適當的措施。

__u8

buffer_removal_time[V4L2_AV1_MAX_OPERATING_POINTS]

指定從操作點 opNum 的最後一個隨機訪問點的刪除時間開始計數的 DecCT 時鐘週期為單位的幀刪除時間。

__u8

reserved[4]

應用程式和驅動程式必須將此設定為零。

__u32

order_hints[V4L2_AV1_TOTAL_REFS_PER_FRAME]

指定每個參考幀的預期輸出順序提示。 此欄位對應於規範中的 OrderHints 變數(5.9.2 節“未壓縮的標頭語法”)。 因此,這僅用於非幀內幀,否則將被忽略。 order_hints[0] 始終被忽略。

__u64

reference_frame_ts[V4L2_AV1_TOTAL_REFS_PER_FRAME]

列舉 v4l2_av1_reference_frame 中從 V4L2_AV1_REF_LAST_FRAME 開始列舉的每個參考幀的 V4L2 時間戳。 這表示參考槽的狀態,如規範中所述,並由使用者空間透過 7.20 節中的“參考幀更新過程”進行更新。 時間戳引用 struct v4l2_buffer 中的 timestamp 欄位。 使用 v4l2_timeval_to_ns() 函式將 struct v4l2_buffer 中的 struct timeval 轉換為 __u64。

__s8

ref_frame_idx[V4L2_AV1_REFS_PER_FRAME]

表示幀間幀使用的參考的有序列表的 reference_frame_ts 中的索引。 匹配同名的位元流語法元素。

__u8

refresh_frame_flags

包含一個位掩碼,指定在解碼當前幀後將使用當前幀更新哪些參考幀槽。

AV1 標誌

V4L2_AV1_FRAME_FLAG_SHOW_FRAME

0x00000001

如果設定,指定一旦解碼應立即輸出此幀。 如果未設定,指定不應立即輸出此幀;如果稍後的未壓縮標頭使用的 show_existing_frame 等於 1,則可能會稍後輸出此幀。

V4L2_AV1_FRAME_FLAG_SHOWABLE_FRAME

0x00000002

如果設定,指定可以使用 show_existing_frame 機制輸出幀。 如果未設定,指定將不使用 show_existing_frame 機制輸出此幀。

V4L2_AV1_FRAME_FLAG_ERROR_RESILIENT_MODE

0x00000004

指定是否啟用錯誤恢復模式。

V4L2_AV1_FRAME_FLAG_DISABLE_CDF_UPDATE

0x00000008

指定是否應停用符號解碼過程中的 CDF 更新。

V4L2_AV1_FRAME_FLAG_ALLOW_SCREEN_CONTENT_TOOLS

0x00000010

如果設定,指示幀內塊可以使用調色盤編碼。 如果未設定,指示從不使用調色盤編碼。

V4L2_AV1_FRAME_FLAG_FORCE_INTEGER_MV

0x00000020

如果設定,指定運動向量始終為整數。 如果未設定,指定運動向量可以包含小數位。

V4L2_AV1_FRAME_FLAG_ALLOW_INTRABC

0x00000040

如果設定,指示可以在此幀中使用幀內塊複製。 如果未設定,指示在此幀中不允許幀內塊複製。

V4L2_AV1_FRAME_FLAG_USE_SUPERRES

0x00000080

如果設定,指示需要上取樣。

V4L2_AV1_FRAME_FLAG_ALLOW_HIGH_PRECISION_MV

0x00000100

如果設定,指定運動向量指定為八分之一畫素精度。 如果未設定,指定運動向量指定為四分之一畫素精度;

V4L2_AV1_FRAME_FLAG_IS_MOTION_MODE_SWITCHABLE

0x00000200

如果未設定,指定僅使用 SIMPLE 運動模式。

V4L2_AV1_FRAME_FLAG_USE_REF_FRAME_MVS

0x00000400

如果設定,指定在解碼當前幀時可以使用來自先前幀的運動向量資訊。 如果未設定,指定將不使用此資訊。

V4L2_AV1_FRAME_FLAG_DISABLE_FRAME_END_UPDATE_CDF

0x00000800

如果設定,指示已停用幀結束 CDF 更新。 如果未設定,指示已啟用幀結束 CDF 更新

V4L2_AV1_FRAME_FLAG_ALLOW_WARPED_MOTION

0x00001000

如果設定,指示語法元素 motion_mode 可能存在,如果未設定,指示語法元素 motion_mode 將不存在。

V4L2_AV1_FRAME_FLAG_REFERENCE_SELECT

0x00002000

如果設定,指定幀間塊的模式資訊包含語法元素 comp_mode,該元素指示是使用單參考預測還是複合參考預測。 如果未設定,指定所有幀間塊將使用單預測。

V4L2_AV1_FRAME_FLAG_REDUCED_TX_SET

0x00004000

如果設定,指定該幀僅限於變換型別的縮減子集。

V4L2_AV1_FRAME_FLAG_SKIP_MODE_ALLOWED

0x00008000

此標誌保留與 AV1 中的 SkipModeAllowed 相同的含義。

V4L2_AV1_FRAME_FLAG_SKIP_MODE_PRESENT

0x00010000

如果設定,指定語法元素 skip_mode 將存在,如果未設定,指定此幀將不使用 skip_mode。

V4L2_AV1_FRAME_FLAG_FRAME_SIZE_OVERRIDE

0x00020000

如果設定,指定幀大小將指定為參考幀之一的大小,或者從 frame_width_minus_1 和 frame_height_minus_1 語法元素計算得出。 如果未設定,指定幀大小等於序列標頭中的大小。

V4L2_AV1_FRAME_FLAG_BUFFER_REMOVAL_TIME_PRESENT

0x00040000

如果設定,指定 buffer_removal_time 存在。 如果未設定,指定 buffer_removal_time 不存在。

V4L2_AV1_FRAME_FLAG_FRAME_REFS_SHORT_SIGNALING

0x00080000

如果設定,指示僅顯式地發出兩個參考幀的訊號。 如果未設定,指示顯式地發出所有參考幀的訊號。

V4L2_CID_STATELESS_AV1_FILM_GRAIN (struct)

表示可選的膠片顆粒引數。 有關更多詳細資訊,請參見 AV1 的 6.8.20 節“膠片顆粒引數語義”。

type v4l2_ctrl_av1_film_grain
struct v4l2_ctrl_av1_film_grain

__u8

flags

參見 AV1 膠片顆粒標誌

__u8

cr_mult

表示 cr 分量的乘數,用於推導 cr 分量縮放函式的輸入索引。

__u16

grain_seed

指定在膠片顆粒合成期間使用的偽隨機數的起始值。

__u8

film_grain_params_ref_idx

指示哪個參考幀包含用於此幀的膠片顆粒引數。

__u8

num_y_points

指定亮度分段線性縮放函式的點數。

__u8

point_y_value[V4L2_AV1_MAX_NUM_Y_POINTS]

表示亮度分量的分段線性縮放函式的第 i 個點的 x(亮度值)座標。 這些值以 0..255 的比例發出訊號。 對於 10 位影片,這些值對應於亮度值除以 4。 對於 12 位影片,這些值對應於亮度值除以 16。

__u8

point_y_scaling[V4L2_AV1_MAX_NUM_Y_POINTS]

表示亮度分量的分段線性縮放函式的第 i 個點的縮放(輸出)值。

__u8

num_cb_points

指定 cb 分量的分段線性縮放函式的點數。

__u8

point_cb_value[V4L2_AV1_MAX_NUM_CB_POINTS]

表示 cb 分量的分段線性縮放函式的第 i 個點的 x 座標。 這些值以 0..255 的比例發出訊號。

__u8

point_cb_scaling[V4L2_AV1_MAX_NUM_CB_POINTS]

表示 cb 分量的分段線性縮放函式的第 i 個點的縮放(輸出)值。

__u8

num_cr_points

表示 cr 分量的分段線性縮放函式的點數。

__u8

point_cr_value[V4L2_AV1_MAX_NUM_CR_POINTS]

表示 cr 分量的分段線性縮放函式的第 i 個點的 x 座標。 這些值以 0..255 的比例發出訊號。

__u8

point_cr_scaling[V4L2_AV1_MAX_NUM_CR_POINTS]

表示 cr 分量的分段線性縮放函式的第 i 個點的縮放(輸出)值。

__u8

grain_scaling_minus_8

表示應用於色度分量值的 shift - 8。 grain_scaling_minus_8 可以取 0..3 的值,並確定膠片顆粒標準偏差的範圍和量化步長。

__u8

ar_coeff_lag

指定亮度和色度的自迴歸係數數。

__u8

ar_coeffs_y_plus_128[V4L2_AV1_AR_COEFFS_SIZE]

指定用於 Y 平面的自迴歸係數。

__u8

ar_coeffs_cb_plus_128[V4L2_AV1_AR_COEFFS_SIZE]

指定用於 U 平面的自迴歸係數。

__u8

ar_coeffs_cr_plus_128[V4L2_AV1_AR_COEFFS_SIZE]

指定用於 V 平面的自迴歸係數。

__u8

ar_coeff_shift_minus_6

指定自迴歸係數的範圍。 值 0、1、2 和 3 分別對應於 [-2, 2)、[-1, 1)、[-0.5, 0.5) 和 [-0.25, 0.25) 的自迴歸係數範圍。

__u8

grain_scale_shift

指定在高斯隨機數應在顆粒合成過程中縮減多少。

__u8

cb_mult

表示 cb 分量的乘數,用於推導 cb 分量縮放函式的輸入索引。

__u8

cb_luma_mult

表示平均亮度分量的乘數,用於推導 cb 分量縮放函式的輸入索引。

__u8

cr_luma_mult

表示平均亮度分量的乘數,用於推導 cr 分量縮放函式的輸入索引。

__u16

cb_offset

表示用於推導 cb 分量縮放函式的輸入索引的偏移量。

__u16

cr_offset

表示用於推導 cr 分量縮放函式的輸入索引的偏移量。

__u8

reserved[4]

應用程式和驅動程式必須將此設定為零。

AV1 膠片 顆粒 標誌

V4L2_AV1_FILM_GRAIN_FLAG_APPLY_GRAIN

0x00000001

如果設定,指定應將膠片顆粒新增到此幀。 如果未設定,指定不應新增膠片顆粒。

V4L2_AV1_FILM_GRAIN_FLAG_UPDATE_GRAIN

0x00000002

如果設定,表示應傳送一組新引數。 如果未設定,指定應使用上一組引數。

V4L2_AV1_FILM_GRAIN_FLAG_CHROMA_SCALING_FROM_LUMA

0x00000004

如果設定,則指定色度縮放是從亮度縮放推斷出來的。

V4L2_AV1_FILM_GRAIN_FLAG_OVERLAP

0x00000008

如果設定,則表示應應用膠片顆粒塊之間的重疊。 如果未設定,則表示不應應用膠片顆粒塊之間的重疊。

V4L2_AV1_FILM_GRAIN_FLAG_CLIP_TO_RESTRICTED_RANGE

0x00000010

如果設定,則表示在新增膠片顆粒後,應對取樣值應用限制範圍(工作室範圍,即有限範圍)的剪下(有關工作室範圍的解釋,請參閱 color_range 的語義)。 如果未設定,則表示在新增膠片顆粒後,應對取樣值應用全範圍的剪下。