다음을 통해 공유


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인 경우 호스트는 8비트 부호 있는 샘플을 사용하는 비인트라 매크로 블록과 ConfigIntraResidUnsigned 멤버에 의존하는 형식으로 예측된(비인트라) 그림의 인트라 매크로 블록에 대해 잔차 공간 도메인 블록을 보냅니다.

  • 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까지의 범위를 완전히 준수할 수 있습니다. 이 기능은 +255가 부호 있는 8비트 숫자 2개를 추가하는 것으로 표시될 수 없지만 -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 형식의 크로미넌스 인터리브 패턴과 일치하는 chrominance 인터리브 형식으로 전송됩니다. 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이면 macroblock 수준 컨트롤 명령으로 표시된 대로 호스트 및 가속기에서 일부 잔차 디코딩이 수행됩니다. 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의 사용을 나타내며, 이 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