D3D11_VIDEO_DECODER_CONFIG 구조체(d3d11.h)
DXVA(DirectX Video Acceleration)용 Microsoft Direct3D 11 디코더 디바이스의 구성에 대해 설명합니다.
구문
typedef struct D3D11_VIDEO_DECODER_CONFIG {
GUID guidConfigBitstreamEncryption;
GUID guidConfigMBcontrolEncryption;
GUID guidConfigResidDiffEncryption;
UINT ConfigBitstreamRaw;
UINT ConfigMBcontrolRasterOrder;
UINT ConfigResidDiffHost;
UINT ConfigSpatialResid8;
UINT ConfigResid8Subtraction;
UINT ConfigSpatialHost8or9Clipping;
UINT ConfigSpatialResidInterleaved;
UINT ConfigIntraResidUnsigned;
UINT ConfigResidDiffAccelerator;
UINT ConfigHostInverseScan;
UINT ConfigSpecificIDCT;
UINT Config4GroupedCoefs;
USHORT ConfigMinRenderTargetBuffCount;
USHORT ConfigDecoderSpecific;
} D3D11_VIDEO_DECODER_CONFIG;
멤버
guidConfigBitstreamEncryption
D3D11CryptoSession 메커니즘을 사용하여 비트스트림 데이터 버퍼를 암호화하는 경우 이 GUID를 0으로 설정해야 합니다. 암호화가 적용되지 않으면 값이 DXVA_NoEncrypt. ConfigBitstreamRaw가 0이면 값이 DXVA_NoEncrypt 합니다.
guidConfigMBcontrolEncryption
매크로 블록 컨트롤 데이터 버퍼가 D3D11CryptoSession 메커니즘을 사용하여 암호화된 경우 이 GUID를 0으로 설정해야 합니다. 암호화가 적용되지 않으면 값이 DXVA_NoEncrypt. ConfigBitstreamRaw가 1이면 값이 DXVA_NoEncrypt 합니다.
guidConfigResidDiffEncryption
D3D11CryptoSession 메커니즘을 사용하여 잔차 디코딩 데이터 버퍼를 암호화하는 경우 이 GUID를 0으로 설정해야 합니다. 암호화가 적용되지 않으면 값이 DXVA_NoEncrypt. ConfigBitstreamRaw가 1이면 값이 DXVA_NoEncrypt 합니다.
ConfigBitstreamRaw
호스트 디코더가 원시 비트 스트림 데이터를 보내는지 여부를 나타냅니다. 값이 1이면 그림의 데이터가 비트 스트림 버퍼에서 원시 비트 스트림 콘텐츠로 전송됩니다. 값이 0이면 매크로 블록 컨트롤 명령 버퍼를 사용하여 그림 데이터가 전송됩니다. ConfigResidDiffHost 또는 ConfigResidDiffAccelerator가 1이면 값은 0이어야 합니다.
ConfigMBcontrolRasterOrder
macroblock 컨트롤 명령이 래스터 검사 순서인지 또는 임의 순서인지를 지정합니다. 값이 1이면 각 macroblock 컨트롤 명령 버퍼 내의 macroblock 컨트롤 명령이 래스터 스캔 순서로 표시됩니다. 값이 0이면 순서가 임의입니다. 일부 비트 스트림 형식의 경우 래스터 순서를 강제로 적용하면 처리해야 하는 필수 macroblock 컨트롤 버퍼 수가 크게 증가하거나 컨트롤 정보의 호스트 순서를 다시 지정해야 합니다. 따라서 임의 순서를 지원하는 것이 더 효율적일 수 있습니다.
ConfigResidDiffHost
호스트 잔차 구성을 포함합니다. 값이 1이면 일부 잔차 디코딩 데이터가 호스트에서 공간 도메인의 블록으로 전송될 수 있습니다. 값이 0이면 공간 도메인 데이터가 전송되지 않습니다.
ConfigSpatialResid8
호스트 기반 잔차 디코딩을 사용할 때 예측된(인트라가 아닌) 그림의 잔차 공간 도메인 블록을 나타내는 데 사용되는 단어 크기를 나타냅니다.
ConfigResidDiffHost가 1이고 ConfigSpatialResid8이 1인 경우 호스트는 8비트 부호 있는 샘플을 사용하는 비인트라 매크로 블록에 대한 잔차 공간 도메인 블록과 ConfigIntraResidUnsigned의 값에 따라 달라지는 형식으로 예측된(인트라가 아닌) 그림의 인트라 매크로 블록에 대해 잔차 공간 도메인 블록을 보냅니다.
- ConfigIntraResidUnsigned가 0이면 매크로 블록 내의 공간 도메인 블록은 상수 참조 값 2^(BPP–1)을 기준으로 8비트 부호 있는 정수 값으로 전송됩니다.
- ConfigIntraResidUnsigned가 1이면 매크로 블록 내 공간 도메인 블록은 상수 참조 값 0을 기준으로 8비트 부호 없는 정수 값으로 전송됩니다.
- ConfigIntraResidUnsigned가 0이면 매크로 블록 내 공간 도메인 블록은 상수 참조 값 2^(BPP–1)를 기준으로 16비트 부호 있는 정수 값으로 전송됩니다.
- ConfigIntraResidUnsigned가 1이면 매크로 블록 내 공간 도메인 블록은 상수 참조 값 0을 기준으로 16비트 부호 없는 정수 값으로 전송됩니다.
인트라 그림의 경우 BPP(픽셀당 비트)가 8인 경우 8비트 샘플을 사용하고 BPP 8인 경우 > 16비트 샘플을 사용하여 공간 도메인 블록을 보내야 합니다. ConfigIntraResidUnsigned가 0이면 이러한 샘플은 상수 참조 값 2^(BPP–1)를 기준으로 부호 있는 정수 값으로 전송되고 ConfigIntraResidUnsigned가 1이면 이러한 샘플은 상수 참조 값 0을 기준으로 부호 없는 정수 값으로 전송됩니다.
ConfigResid8Subtraction
값이 1이면 8비트 차이 오버플로 블록이 추가되지 않고 빼집니다. ConfigSpatialResid8이 1이 아니면 값은 0이어야 합니다.
차이를 추가하는 대신 빼는 기능을 사용하면 8비트 차이 디코딩이 비디오 디코더 사양에 필요한 전체 ±255 범위의 값을 완전히 준수할 수 있습니다. +255는 두 개의 부호 있는 8비트 숫자의 추가로 나타낼 수 없지만 범위의 모든 숫자±255는 부호 있는 두 8비트 숫자 사이의 차이로 나타낼 수 있기 때문입니다(+255 = +127 - -128).
ConfigSpatialHost8or9Clipping
값이 1이면 매크로 블록 내의 공간 도메인 블록을 호스트의 8비트 범위로 잘려야 하며, 호스트에서 인트라 매크로 블록이 아닌 매크로 블록의 공간 도메인 블록을 호스트의 9비트 범위로 잘려야 합니다. 값이 0이면 호스트에서 이러한 클리핑이 필요하지 않습니다.
ConfigSpatialResid8이 0이고 ConfigResidDiffHost가 1이 아니면 값은 0이어야 합니다.
ConfigSpatialResidInterleaved
값이 1이면 모든 공간 도메인 잔차 데이터가 YUV 형식의 색차 인터리빙 패턴과 일치하는 색차 인터리브 형식으로 전송되어야 합니다. ConfigResidDiffHost가 1이고 YUV 형식이 NV12 또는 NV21이 아니면 값은 0이어야 합니다.
ConfigIntraResidUnsigned
호스트 기반 차이 디코딩을 사용할 때 인트라 블록에 대한 잔차 데이터의 공간 도메인 블록을 나타내는 방법을 나타냅니다.
ConfigResidDiffHost가 1이고 ConfigIntraResidUnsigned가 0인 경우 인트라 매크로 블록에 대한 공간 도메인 잔차 데이터 블록은 다음과 같이 전송되어야 합니다.
- 비인트라 그림에서 ConfigSpatialResid8 이 0이면 매크로블록 내의 공간 도메인 잔차 데이터 블록은 상수 참조 값 2^(BPP–1)를 기준으로 16비트 부호 있는 정수 값으로 전송됩니다.
- 인트라가 아닌 그림에서 ConfigSpatialResid8 이 1이면 매크로블록 내의 공간 도메인 잔차 데이터 블록은 상수 참조 값 2^(BPP–1)을 기준으로 8비트 부호 있는 정수 값으로 전송됩니다.
- 인트라 그림에서 BPP가 8이면 ConfigSpatialResid8 값에 관계없이 상수 참조 값 2^(BPP–1)에 상대적인 8비트 부호 있는 정수 값으로 인트라 매크로 블록의 공간 도메인 잔차 데이터 블록이 전송됩니다.
- 인트라가 아닌 그림에서 ConfigSpatialResid8 이 0이면 매크로블록 내의 공간 도메인 잔차 데이터 블록은 상수 참조 값 0을 기준으로 16비트 부호 없는 정수 값으로 전송되어야 합니다.
- 인트라가 아닌 그림에서 ConfigSpatialResid8 이 1이면 매크로 블록 내의 공간 도메인 잔차 데이터 블록이 상수 참조 값 0을 기준으로 8비트 부호 없는 정수 값으로 전송됩니다.
- 인트라 그림에서 BPP가 8이면 ConfigSpatialResid8 값에 관계없이 매크로 블록 내의 공간 도메인 잔차 데이터 블록이 상수 참조 값 0을 기준으로 8비트 부호 없는 정수 값으로 전송됩니다.
ConfigResidDiffAccelerator
값이 1이면 가속기 기반 IDCT를 위해 계수 데이터의 변환 도메인 블록을 호스트에서 보낼 수 있습니다. 값이 0이면 가속기 기반 IDCT가 사용되지 않습니다. ConfigResidDiffHost와 ConfigResidDiffAccelerator가 모두 1인 경우 매크로 블록 수준 컨트롤 명령으로 표시된 대로 호스트 및 가속기에서 일부 잔차 디코딩이 수행됨을 나타냅니다.
ConfigBitstreamRaw가 1인 경우 값은 0이어야 합니다.
ConfigHostInverseScan
값이 1이면 변환 도메인 블록 처리에 대한 역 검색이 호스트에서 수행되고 변환 계수에 대한 절대 인덱스가 대신 전송됩니다. 값이 0이면 액셀러레이터에서 역 검사가 수행됩니다.
ConfigResidDiffAccelerator가 0이거나 Config4GroupedCoefs가 1인 경우 값은 0이어야 합니다.
ConfigSpecificIDCT
값이 1이면 ITU-T Recommendation H.263의 부록 W에 지정된 IDCT가 사용됩니다. 값이 0이면 모든 규격 IDCT를 오프 호스트 IDCT에 사용할 수 있습니다.
H.263 부속서는 MPEG-2 corrigendum 2의 IDCT 요구 사항을 준수하지 않으므로 MPEG-2 비디오에 사용하기 위해 값이 1이 아니어야 합니다.
ConfigResidDiffAccelerator가 0이면 값은 0이어야 하며, 이는 순전히 호스트 기반 잔차 디코딩을 나타냅니다.
Config4GroupedCoefs
값이 1이면 오프 호스트 IDCT에 대한 변환 계수가 DXVA_TCoef4Group 구조를 사용하여 전송됩니다. 값이 0이면 DXVA_TCoefSingle 구조체가 사용됩니다. ConfigResidDiffAccelerator가 0이거나 ConfigHostInverseScan이 1인 경우 값은 0이어야 합니다.
ConfigMinRenderTargetBuffCount
디코더 디바이스가 한 번에 처리하는 프레임 수를 지정합니다.
ConfigDecoderSpecific
디코더 관련 구성 정보를 포함합니다.
요구 사항
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱 | UWP 앱] |
머리글 | d3d11.h |