DXVADDI_CONFIGPICTUREDECODE 구조체(d3dumddi.h)

DXVADDI_CONFIGPICTUREDECODE 구조는 압축된 그림 디코딩에 대한 구성을 설명합니다.

구문

typedef struct _DXVADDI_CONFIGPICTUREDECODE {
  [in] GUID   guidConfigBitstreamEncryption;
  [in] GUID   guidConfigMBcontrolEncryption;
  [in] GUID   guidConfigResidDiffEncryption;
  [in] UINT   ConfigBitstreamRaw;
  [in] UINT   ConfigMBcontrolRasterOrder;
  [in] UINT   ConfigResidDiffHost;
  [in] UINT   ConfigSpatialResid8;
  [in] UINT   ConfigResid8Subtraction;
  [in] UINT   ConfigSpatialHost8or9Clipping;
  [in] UINT   ConfigSpatialResidInterleaved;
  [in] UINT   ConfigIntraResidUnsigned;
  [in] UINT   ConfigResidDiffAccelerator;
  [in] UINT   ConfigHostInverseScan;
  [in] UINT   ConfigSpecificIDCT;
  [in] UINT   Config4GroupedCoefs;
  [in] USHORT ConfigMinRenderTargetBuffCount;
  [in] USHORT ConfigDecoderSpecific;
} DXVADDI_CONFIGPICTUREDECODE;

멤버

[in] guidConfigBitstreamEncryption

비트 스트림을 구성하기 위한 암호화 GUID입니다.

[in] guidConfigMBcontrolEncryption

macroblock 컨트롤을 구성하기 위한 암호화 GUID입니다.

[in] guidConfigResidDiffEncryption

잔차 차이 디코딩을 구성하기 위한 암호화 GUID입니다.

[in] ConfigBitstreamRaw

비트 스트림 처리 표시기입니다. 이 멤버의 값이 1이면 그림 데이터가 비트스트림 버퍼에 원시 비트스트림 콘텐츠로 전송됨을 나타냅니다. 값이 0이면 매크로 블록 컨트롤 명령 버퍼를 사용하여 그림 데이터가 전송됨을 나타냅니다.

ConfigResidDiffHost 또는 ConfigResidDiffAccelerator 멤버가 1이면 이 멤버를 0으로 설정합니다. ConfigBitstreamRaw 의 값은 기본 지원 수준입니다. 값 1이 선호됩니다.

[in] ConfigMBcontrolRasterOrder

macroblock 컨트롤 명령이 래스터 검색 순서인지 또는 임의의 순서인지를 지정하는 UINT 값입니다. 이 멤버의 값이 1이면 각 macroblock 컨트롤 명령 버퍼 내의 macroblock 컨트롤 명령이 래스터 검색 순서로 지정됩니다. 값이 0이면 임의의 순서를 나타냅니다. 드라이버는 래스터 검사 순서에 대한 지원을 제한할 수 있습니다. 그러나 드라이버는 임의 및 래스터 검사 순서를 모두 지원해야 합니다.

[in] ConfigResidDiffHost

호스트 잔차 구성입니다. 이 멤버의 값이 1이면 일부 잔차 디코딩 데이터가 호스트에서 공간 도메인의 블록으로 전송될 수 있음을 지정합니다. 값이 0이면 공간 도메인 데이터가 전송되지 않습니다. ConfigBitstreamRaw 멤버가 1이면 이 멤버를 0으로 설정합니다. 가속기는 0과 1을 모두 지원해야 합니다.

[in] ConfigSpatialResid8

호스트 기반 잔차 디코딩을 사용하는 경우(즉 , ConfigResidDiffHost 멤버가 1로 설정된 경우) 예측된(비인트라) 그림에 대한 잔차 공간 도메인 블록을 나타내는 데 사용되는 단어 크기입니다.

ConfigSpatialResid8 이 1이고 ConfigResidDiffHost 가 1이면 호스트는 다음과 같이 ConfigIntraResidUnsigned 멤버에 의존하는 형식으로 예측된(nonintra) 그림의 인트라 매크로 블록 및 8비트 부호 있는 샘플을 사용하는 인트라 매크로 블록에 대해 잔차 공간 도메인 블록을 보냅니다.

  • ConfigIntraResidUnsigned 가 0이면 매크로 블록 내의 공간 도메인 블록은 상수 참조 값 128을 기준으로 하는 8비트 부호 있는 정수 값으로 전송됩니다.

  • ConfigIntraResidUnsigned 가 1이면 인트라 매크로 블록에 대한 공간 도메인 블록이 0의 상수 참조 값을 기준으로 하는 8비트 부호 없는 정수 값으로 전송됩니다.

ConfigSpatialResid8 이 0이고 ConfigResidDiffHost 가 1이면 호스트는 다음과 같이 ConfigIntraResidUnsigned 형식으로 예측된(비인트라) 그림의 인트라 매크로 블록 및 16비트 부호 있는 샘플을 사용하는 비인트라 매크로 블록에 대해 잔차 공간 도메인 데이터 블록을 보냅니다.

  • ConfigIntraResidUnsigned 가 0이면 인트라 매크로 블록에 대한 공간 도메인 블록이 2^(BPP-1)의 상수 참조 값을 기준으로 하는 16비트 부호 있는 정수 값으로 전송됩니다. 여기서 BPP 는 압축되지 않은 비디오의 샘플당 비트 수(일반적으로 값 8)입니다.

  • ConfigIntraResidUnsigned 가 1이면 매크로 블록 내 공간 도메인 블록이 0의 상수 참조 값을 기준으로 하는 16비트 부호 없는 정수 값으로 전송됩니다.

ConfigResidDiffHost 가 0이면 ConfigSpatialResid8 은 0이어야 합니다. ConfigResidDiffHost 가 1이면 ConfigSpatialResid8 은 임의의 값일 수 있습니다.

참고

BPP 가 8인 인트라 그림의 경우 8비트 샘플을 사용하여 공간 도메인 블록을 보내야 합니다. BPP 가 8보다 큰 인트라 그림의 경우 16비트 샘플을 사용하여 공간 도메인 블록을 보내야 합니다. ConfigIntraResidUnsigned 가 0이면 이러한 샘플은 2^(BPP-1)의 상수 참조 값을 기준으로 하는 부호 있는 정수 값으로 전송됩니다. ConfigIntraResidUnsigned 가 1이면 이러한 샘플은 0의 상수 참조 값을 기준으로 하는 부호 없는 정수 값으로 전송됩니다.

[in] ConfigResid8Subtraction

8비트 차이 오버플로 블록을 빼거나 추가할지 여부를 지정하는 UINT 값입니다. 이 멤버를 1로 설정하면 8비트 차이 오버플로 블록이 추가되지 않고 빼집니다. ConfigSpatialResid8 이 1이 아니면 이 멤버는 0이어야 합니다. ConfigSpatialResid8 이 1이면 ConfigResid8Subtraction 의 기본값은 1입니다. 차이를 추가하는 대신 빼는 기능을 사용하면 8비트 차이 디코딩이 비디오 디코더 사양에 필요한 값의 -255에서 +255까지의 범위를 완전히 준수할 수 있습니다. 이 기능을 사용하면 서명된 8비트 숫자 2개를 추가하여 +255를 나타낼 수 없지만 -255부터 +255까지의 범위에서 임의의 숫자를 두 개의 부호 있는 8비트 숫자 사이의 차이로 나타낼 수 있기 때문에 전체 준수를 사용할 수 있습니다(+255는 +127 -128과 같음).

[in] ConfigSpatialHost8or9Clipping

호스트에서 클리핑을 수행할지 여부를 지정하는 UINT 값입니다. 이 멤버를 1로 설정하면 인트라 매크로 블록에 대한 공간 도메인 블록이 호스트의 8비트 범위로 잘리고, 인트라 매크로 블록이 아닌 매크로 블록의 공간 도메인 블록은 호스트의 9비트 범위로 잘립니다. 값이 0이면 호스트에서 이러한 클리핑을 수행하지 않음을 나타냅니다. ConfigSpatialResid8 이 0으로 설정되고 ConfigResidDiffHost 가 1로 설정되지 않는 한 이 멤버는 0이어야 합니다. ConfigSpatialHost8or9Clipping 의 기본값은 0입니다.

[in] ConfigSpatialResidInterleaved

공간 도메인 잔차 차이 데이터를 크로미넌스 인터리브 형식으로 보낼지 여부를 지정하는 UINT 값입니다. 이 멤버를 1로 설정하면 모든 공간 도메인 잔차 차이 데이터가 YUV 형식 색차 인터리빙 패턴과 일치하는 색으로 인터리브된 형태로 전송됩니다. ConfigResidDiffHost 가 1이고 YUV 형식이 NV12 또는 NV21이 아니면 이 멤버는 0이어야 합니다. ConfigSpatialResidInterleaved의 기본값은 0입니다.

[in] ConfigIntraResidUnsigned

호스트 기반 차이 디코딩을 사용할 때(즉, ConfigResidDiffHost 멤버가 1인 경우) 인트라 블록에 대한 잔차 차이 데이터의 공간 도메인 블록을 나타내는 방법입니다.

ConfigIntraResidUnsigned 가 0으로 설정되고 ConfigResidDiffHost 가 1로 설정된 경우 인트라 매크로 블록에 대한 공간 도메인 잔차 데이터 블록은 다음과 같이 전송됩니다.

  • ConfigSpatialResid8 멤버가 0이면 인트라 그림에서 인트라 매크로블록에 대한 공간 도메인 잔차 데이터 블록은 2^(BPP-1)의 상수 참조 값을 기준으로 하는 16비트 부호 있는 정수 값으로 전송됩니다. 여기서 BPP 는 압축되지 않은 비디오의 샘플당 비트 수입니다(일반적으로 값 8).

  • ConfigSpatialResid8 이 1이고 BPP 가 8(ConfigSpatialResid8 의 값에 관계없이)인 경우 인트라 그림에서 매크로 블록 내의 공간 도메인 잔차 데이터 블록은 상수 참조 값 128에 상대적인 8비트 부호 있는 정수 값으로 전송됩니다.

ConfigIntraResidUnsigned 가 1로 설정되고 ConfigResidDiffHost 가 1로 설정된 경우 인트라 매크로 블록에 대한 공간 도메인 잔차 데이터 블록이 다음과 같이 전송됩니다.

  • ConfigSpatialResid8 이 0이면 인트라 그림에서 인트라 매크로블록에 대한 공간 도메인 잔차 데이터 블록은 0의 상수 참조 값을 기준으로 하는 16비트 부호 없는 정수 값으로 전송됩니다.

  • ConfigSpatialResid8 이 1이고 BPP 가 8(ConfigSpatialResid8 값에 관계없이)인 경우 인트라 그림에서 매크로 블록 내의 공간 도메인 잔차 데이터 블록은 상수 참조 값 0에 상대적인 8비트 부호 없는 정수 값으로 전송됩니다.

ConfigResidDiffHost가 1이 아니면 ConfigIntraResidUnsigned 는 0이어야 합니다. ConfigIntraResidUnsigned의 기본값은 0입니다.

[in] ConfigResidDiffAccelerator

액셀러레이터 잔차 구성입니다. 이 멤버의 값이 1이면 계수 데이터의 변환 도메인 블록을 호스트에서 가속기 기반 IDCT로 보낼 수 있음을 나타냅니다. 값이 0이면 가속기 기반 IDCT가 사용되지 않음을 나타냅니다.

ConfigResidDiffHost 멤버와 ConfigResidDiffAccelerator 가 모두 1이면 매크로 블록 수준 컨트롤 명령으로 표시된 대로 호스트 및 가속기에서 일부 잔차 디코딩이 수행됩니다. bConfigBitstreamRaw 멤버가 1이면 ConfigResidDiffAccelerator 는 0이어야 합니다.

ConfigResidDiffAccelerator 의 기본값은 1입니다.

ConfigResidDiffAcceleratorConfigResidDiffHost 가 1로 설정된 경우 매크로 블록 기준으로 호스트와 액셀러레이터 간에 잔차 디코딩을 공유할 수 있습니다. 이 공유는 ConfigResidDiffAccelerator 가 1로 설정되고 ConfigResidDiffHost 가 0으로 설정된 경우보다 훨씬 높은 수준의 가속기 기능입니다.

[in] ConfigHostInverseScan

호스트 또는 액셀러레이터에서 변환 도메인 블록 처리에 대한 역 검색을 수행할지 여부를 지정하는 UINT 값입니다. 이 멤버의 값이 1이면 변환 도메인 블록 처리에 대한 역 검색이 호스트에서 수행되고 변환 계수 대신 절대 인덱스가 전송됨을 나타냅니다. 값이 0이면 역 스캔이 가속기에서 수행됨을 나타냅니다. ConfigResidDiffAccelerator 가 0이거나 Config4GroupedCoefs 멤버가 1인 경우 ConfigHostInverseScan 은 0이어야 합니다.

ConfigResidDiffAccelerator 가 1이면 ConfigHostInverseScan 의 기본값은 1입니다.

[in] ConfigSpecificIDCT

오프 호스트 IDCT에 특정 IDCT 메서드를 사용하도록 지정하는 UINT 값입니다. 이 멤버의 값 1은 ITU-T 권장 사항 H.263의 부록 W에 지정된 IDCT의 사용을 나타내며, 국제 통신 연합 웹 사이트에서 알아볼 수 있습니다. 값이 0이면 모든 규격 IDCT를 오프 호스트 IDCT에 사용할 수 있음을 나타냅니다. (0과 1 이외의 값은 예약되어 있습니다.)

ConfigResidDiffAccelerator 가 0이면 ConfigSpecificIDCT 가 0이어야 합니다. 이는 호스트 기반 잔차 디코딩을 나타냅니다.

참고

MPEG-2 비디오에서 사용하기 위해 ConfigSpecificIDCT 를 1로 설정하면 안 됩니다.

[in] Config4GroupedCoefs

오프 호스트 IDCT에 대한 변환 계수를 보내는 방법을 지정하는 UINT 값입니다. 이 멤버의 값이 1이면 오프 호스트 IDCT에 대한 변환 계수가 DXVA_TCoefSingle 구조가 아닌 DXVA_TCoef4Group 구조를 사용하여 전송됨을 나타냅니다. ConfigResidDiffAccelerator 가 0이거나 ConfigHostInverseScan 이 1이면 Config4GroupedCoefs 가 0입니다.

ConfigResidDiffAccelerator 가 1이면 Config4GroupedCoefs 의 기본값은 0입니다.

[in] ConfigMinRenderTargetBuffCount

렌더링 대상 버퍼의 최소 수를 지정하는 USHORT 값입니다.

[in] ConfigDecoderSpecific

구성할 디코더별 기능을 지정하는 USHORT 값입니다. 디코더의 기능에 대한 자세한 내용은 해당 디코더의 사양을 참조하세요. 디코더 목록은 비디오 디코딩에 대한 기능 제공을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
헤더 d3dumddi.h(D3dumddi.h 포함)

참고 항목

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

GetCaps