D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095 구조체(d3d12umddi.h)
해당 구조에 대해 D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAGS 값이 보고되면 드라이버는 드라이버에서 수행한 수정(복사 API 클라이언트 입력)의 여부에 관계없이 EncodeFrame 실행 후 값을 작성해야 합니다. 그렇지 않으면 드라이버가 EncodeFrame을 호출할 때 연결된 API 클라이언트 입력에서 값을 복사해야 합니다.
구문
typedef struct D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095 {
UINT64 CompoundPredictionType;
D3D12DDI_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG_0095 LoopFilter;
D3D12DDI_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG_0095 LoopFilterDelta;
D3D12DDI_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG_0095 Quantization;
D3D12DDI_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG_0095 QuantizationDelta;
D3D12DDI_VIDEO_ENCODER_AV1_CDEF_CONFIG_0095 CDEF;
D3D12DDI_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG_0095 SegmentationConfig;
UINT64 PrimaryRefFrame;
UINT64 ReferenceIndices[7];
} D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095;
멤버
CompoundPredictionType
연결된 플래그가 D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAG_COMPOUND_PREDICTION_MODE.
LoopFilter
연결된 플래그가 D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAG_LOOP_FILTER.
LoopFilterDelta
연결된 플래그가 D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAG_LOOP_FILTER_DELTA.
Quantization
연결된 플래그가 D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAG_QUANTIZATION.
QuantizationDelta
연결된 플래그가 D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAG_QUANTIZATION_DELTA.
CDEF
연결된 플래그가 D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAG_CDEF_DATA.
SegmentationConfig
이 멤버는 선택한 구분 모드에 따라 다른 모드로 작동합니다.
- 현재 프레임에 대해 D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_0095_FLAG_ENABLE_FRAME_SEGMENTATION_AUTO 있는 경우 드라이버는 다음을 수행합니다.
- API 클라이언트에서 프레임 헤더의 segmentation_params() 구문을 코딩하는 데 사용할 SegmentationConfig를 계산하고 씁니다.
- 압축된 비트스트림에서 직접 read_segment_id() 맵 정보를 계산하고 씁니다.
- 현재 프레임에 대해 D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_CUSTOM 있는 경우 드라이버는 다음을 수행합니다.
- API 클라이언트의 인코딩 프레임 매개 변수에서 API 클라이언트가 보낸 SegmentationConfig 를 여기에 복사하여 프레임 헤더의 segmentation_params() 구문을 코딩합니다.
- API 클라이언트에서 보낸 read_segment_id() 맵을 압축된 비트스트림의 인코딩 프레임 매개 변수에 직접 복사합니다.
- 그렇지 않으면(두 구분 모드가 모두 꺼져 있음):
- 드라이버는 모든 0을 작성해야 합니다.
- API 클라이언트는 프레임 헤더의 segmentation_params() 섹션에서 그에 따라 segmentation_enabled = 0을 작성합니다.
PrimaryRefFrame
연결된 플래그가 D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAG_PRIMARY_REF_FRAME. 플래그가 설정된 경우 드라이버는 세그먼트 ID 맵, CDF 등이 상속되는 기본 참조 프레임의 선택을 제어합니다.
D3D12DDI_VIDEO_ENCODER_AV1_FEATURE_0095_FLAG_AUTO_SEGMENTATION 함께 사용하면 드라이버가 적용 가능한 경우 PRIMARY_REF_NONE 이외의 값을 강제로 적용하여 드라이버에 AV1 구문(segmentation_update_map, segmentation_temporal_update 및 segmentation_update_data)을 완전히 제어할 수 segmentation_params().
ReferenceIndices[7]
플래그가 보고되면 드라이버는 사용자 입력 D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA_0095 따라 ReferenceIndices 배열의 순서를 변경하거나 다시 매핑할 수 있습니다(참조 수는 변경되지 않음). ReferenceIndices. 그렇지 않으면 드라이버는 이 매개 변수의 각 배열 항목을 D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA_0095.ReferenceIndices에서 있는 그대로 복사해야 합니다.
API 클라이언트는 이 출력 매개 변수에서 AV1 구문을 ref_frame_idx 그림 헤더를 작성합니다.
설명
자세한 내용은 D3D12 AV1 비디오 인코딩을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 11 버전 24H2(WDDM 3.2) |
머리글 | d3d12umddi.h |