다음을 통해 공유


D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_0082_0 구조체(d3d12umddi.h)

D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_0082_0 구조체는 H.264 인코딩에 연결된 EncodeFrame 명령에 대한 그림 수준 컨트롤 요소를 설명합니다.

구문

typedef struct D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_0082_0 {
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS_0080                                           Flags;
  D3D12DDI_VIDEO_ENCODER_FRAME_TYPE_H264_0080                                                                 FrameType;
  UINT                                                                                                        pic_parameter_set_id;
  UINT                                                                                                        idr_pic_id;
  UINT                                                                                                        PictureOrderCountNumber;
  UINT                                                                                                        FrameDecodingOrderNumber;
  UINT                                                                                                        TemporalLayerIndex;
  UINT                                                                                                        List0ReferenceFramesCount;
  UINT                                                                                                        *pList0ReferenceFrames;
  UINT                                                                                                        List1ReferenceFramesCount;
  UINT                                                                                                        *pList1ReferenceFrames;
  UINT                                                                                                        ReferenceFramesReconPictureDescriptorsCount;
  D3D12DDI_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264_0080                                               *pReferenceFramesReconPictureDescriptors;
  UCHAR                                                                                                       adaptive_ref_pic_marking_mode_flag;
  UINT                                                                                                        RefPicMarkingOperationsCommandsCount;
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION_0082_0           *pRefPicMarkingOperationsCommands;
  UINT                                                                                                        List0RefPicModificationsCount;
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION_0082_0 *pList0RefPicModifications;
  UINT                                                                                                        List1RefPicModificationsCount;
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION_0082_0 *pList1RefPicModifications;
  UINT                                                                                                        QPMapValuesCount;
  INT8                                                                                                        *pRateControlQPMap;
} D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_0082_0;

멤버

Flags

인코딩할 이 프레임의 구성 플래그를 지정하는 D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS_0080 값입니다. 플래그를 결합할 수 있습니다.

FrameType

그림 형식을 설정하는 D3D12DDI_VIDEO_ENCODER_FRAME_TYPE_H264_0080 값입니다. 값을 선택하기 전에 코덱별 플래그가 형식을 지원하는지 확인합니다.

참고

FrameType 은 호스트에서 설정한 사진 그룹(GOP) 구조 구성과 동기화된 상태로 유지되어야 합니다. GOP는 표시 순서로 정의됩니다. 그림 형식 선택은 GOP를 따라야 하지만 인코딩 순서로 선택해야 합니다.

pic_parameter_set_id

현재 프레임의 조각 머리글에서 PPS(그림 매개 변수 집합)를 참조하는 데 사용되는 값입니다.

idr_pic_id

프레임이 D3D12DDI_VIDEO_ENCODER_FRAME_TYPE_H264_0080_IDR_FRAME 형식인 경우 idr_pic_id 프레임에 있는 모든 조각 헤더에 사용할 IDR(순간 디코더 새로 고침) 프레임을 식별합니다.

PictureOrderCountNumber

현재 프레임 표시 순서입니다.

FrameDecodingOrderNumber

프레임 디코딩 순서는 각 참조 그림 다음에 증가되는 요소 frame_num 조각 머리글로 표시된 의미 체계를 사용합니다.

TemporalLayerIndex

임시 계층 구조의 그림 계층 번호입니다. D3D12DDI_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_0082_0 최대 계층 수를 확인합니다.

List0ReferenceFramesCount

이 프레임에 사용할 과거 프레임 참조 수입니다. 이 값은 D3D12DDI_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_0082_0 노출된 값과 일관되어야 합니다.

pList0ReferenceFrames

이 프레임에 사용할 과거 프레임 참조 프레임 목록에 대한 포인터입니다. 이 배열의 각 정수 값은 pReferenceFramesReconPictureDescriptors 로 인덱싱되어 디코딩된 그림 버퍼(DPB)에 보관된 그림을 참조합니다.

List1ReferenceFramesCount

이 프레임에 사용할 이후 프레임 참조 수입니다. 이 값은 D3D12DDI_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_0082_0 노출된 값과 일관되어야 합니다.

pList1ReferenceFrames

이 프레임에 사용할 이후 프레임 참조 프레임 목록에 대한 포인터입니다. 이 배열의 각 정수 값은 pReferenceFramesReconPictureDescriptors 로 인덱싱되어 DPB에 보관된 그림을 참조합니다.

ReferenceFramesReconPictureDescriptorsCount

pReferenceFramesReconPictureDescriptors의 항목 수입니다.

pReferenceFramesReconPictureDescriptors

D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0.ReferenceFrames에 보관된 DPB 버퍼의 현재 상태를 설명하는 D3D12DDI_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264_0080 구조체에 대한 포인터입니다. L0/L1 목록 인덱스는 과거/미래 참조에서 이 설명자 배열로 매핑됩니다.

차례로 이 설명자 배열은 이 프레임에 대한 참조 그림을 D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0.ReferenceFrames 재구성된 그림 배열의 리소스 인덱스에 매핑합니다. 또한 각 참조 그림에 대해 인코딩 및 표시 주문 번호와 장기 참조인지 여부를 나타냅니다.

이 배열의 크기는 연결된 EncodeFrame 명령에 대한 D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0.ReferenceFrames.NumTextures와 일치합니다.

adaptive_ref_pic_marking_mode_flag

프레임 참조 처리에 대한 의미 체계 모드를 정의합니다. 이 플래그는 다음 값 중 하나일 수 있습니다.

참조 그림 표시 모드
0 슬라이딩 윈도우 참조 그림 표시 모드: 단기 참조 그림에 대한 첫 실행 메커니즘을 제공하는 표시 모드입니다.
1 적응형 참조 그림 표시 모드: 참조 그림의 표시를 "참조에 사용되지 않음"으로 지정하고 장기 프레임 인덱스를 할당하는 구문 요소를 제공하는 참조 그림 표시 모드입니다.

RefPicMarkingOperationsCommandsCount

현재 프레임과 연결된 작업을 표시하는 참조 그림의 수입니다. 이 멤버를 사용하려면 adaptive_ref_pic_marking_mode_flag 1로 설정해야 합니다.

pRefPicMarkingOperationsCommands

RefPicMarkingOperationsCommandsCount의 목록이 포함된 D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION_0082_0 구조체에 대한 포인터는 현재 프레임과 연결된 작업을 표시하는 그림을 참조합니다. 이 멤버를 사용하려면 adaptive_ref_pic_marking_mode_flag 1로 설정해야 합니다.

이 목록에서 설명하는 작업은 인코딩 세션 중에 그에 따라 DPB 설명자에 반영되어야 합니다.

List0RefPicModificationsCount

L0 목록에 대한 목록 수정 횟수입니다.

pList0RefPicModifications

L0 목록에 대한 List0RefPicModificationsCount 수정 명령이 포함된 D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION_0082_0 구조체에 대한 포인터입니다.

List1RefPicModificationsCount

L1 목록의 목록 수정 횟수입니다.

pList1RefPicModifications

L1 목록에 대한 List1RefPicModificationsCount 수정 명령이 포함된 D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION_0082_0 구조체에 대한 포인터입니다.

QPMapValuesCount

pRateControlQPMap이 가리키는 배열에 있는 요소의 수입니다. 이 값은 프레임의 코딩 블록 수와 일치하여 프레임 해상도를 가장 가까운 정렬 값으로 반올림해야 합니다.

pRateControlQPMap

행/열 검색 순서로 이 프레임의 각 제곱 영역에서 사용할 QP(양자화 매개 변수) 맵 값을 포함하는 배열에 대한 포인터입니다. QP 맵 차원은 현재 해상도 및 제곱 영역 크기를 전달하는 D3D12DDI_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS_0080_2.QPMapRegionPixelsSize 를 사용하여 계산할 수 있습니다.

설명

현재 프레임이 참조 그림으로 표시된 경우, 재구성된 그림 참조 목록의 이후 명령에 배치하려면 호스트의 비트스트림과 함께 재구성된 그림이 출력에 포함되어야 합니다. 일부 프레임 형식에 대한 제한 사항이 참조로 표시될 수 있으므로 해당 값을 설정하기 전에 검사 기능을 지원합니다.

일반 정보는 D3D12 비디오 인코딩을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 11(WDDM 3.0)
머리글 d3d12umddi.h

추가 정보

D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_0082_0