다음을 통해 공유


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

추가 정보

D3D12DDI_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT_0095

D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAGS