DXVA_TCoefSingle 구조체(dxva.h)
DXVA_TCoefSingle 구조체는 호스트 디코더에 의해 가속기로 전송되어 IDCT 계수 값을 지정합니다.
구문
typedef struct _DXVA_TCoefSingle {
WORD wIndexWithEOB;
SHORT TCoefValue;
} DXVA_TCoefSingle, *LPDXVA_TCoefSingle;
멤버
wIndexWithEOB
이 멤버에는 TCoefIDX 및 TCoefEOB의 두 필드가 포함됩니다.
TCoefIDX
DXVA_ConfigPictureDecode 구조체의 bConfigHostInverseScan 멤버에서 결정된 대로 블록에 있는 계수의 검사 인덱스를 지정합니다. 이 필드는 wIndexWithEOB 멤버의 15개의 가장 중요한 비트에 있습니다.
TCoefIDX를 사용할 수 있는 방법에는 두 가지가 있습니다.
- 실행 길이 순서: bConfigHostInverseScan 이 0이면 macroblock 컨트롤 명령의 MBscanMethod 요소는 지그재그, 대체 세로 또는 대체 가로 역 검사를 나타냅니다. 이러한 매크로 블록 컨트롤 명령은 DXVA_MBctrl_I_OffHostIDCT_1 또는 DXVA_MBctrl_P_OffHostIDCT_1 구조에 정의되어 있습니다. 이 경우 TCoefIDX 는 블록에 대해 마지막으로 전송된 계수 다음에 지정된 검사 순서로 현재 계수 앞에 오는 값이 0인 계수의 수를 포함합니다(또는 블록 앞에 없는 경우 블록의 시작을 기준으로 함). 역 스캔 순서에서 마지막으로 보낸 계수 이후의 나머지 계수는 값이 0이 되도록 암시됩니다.
- 임의 순서 지정: bConfigHostInverseScan 이 1이면 macroblock 컨트롤 명령의 MBscanMethod 요소가 임의 순서를 나타냅니다. 이러한 매크로 블록 컨트롤 명령은 DXVA_MBctrl_I_OffHostIDCT_1 및 DXVA_MBctrl_P_OffHostIDCT_1 구조에 정의되어 있습니다. 이 경우 TCoefIDX 는 블록 내에서 계수의 래스터 인덱스를 포함하기만 하면 됩니다(TCoefIDX = u + 8 * v, 여기서 사용자와 v는 변환 도메인 가로 및 세로 주파수 좌표임). 전송되지 않은 계수는 값 0을 포함하도록 암시됩니다.
TCoefEOB
현재 계수가 변환 계수의 현재 블록과 연결된 마지막 계수인지 여부를 나타냅니다. 값 1은 현재 계수가 블록의 마지막 계수이며 값이 0이 아님을 나타냅니다. 이 필드는 wIndexWithEOB 멤버의 가장 중요한 비트에 있습니다.
TCoefValue
블록의 계수 값을 나타냅니다. IDCT 작업을 위해 계수 값을 가속기로 전달하기 전에 호스트가 하위 수준 IDCT 처리 요소에 지정된 대로 TCoefValue를 적절한 범위로 잘려야 합니다. 필요한 경우 MPEG-2 불일치 제어는 가속기가 아닌 호스트의 책임이기도 합니다. (이를 위해서는 0이 아닌 추가 "팬텀" 계수를 생성해야 할 수 있습니다.)
설명
DXVA_TCoefSingle 구조체는 HostResidDiff 플래그(DXVA_MBctrl_P_OffHostIDCT_1 또는 DXVA_MBctrl_I_OffHostIDCT_1 구조체의 wMBtype 멤버에서 비트 10)가 1이고 DXVA_ConfigPictureDecode구조체의 bConfig4GroupedCoefs 멤버가 0일 때마다 사용됩니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | dxva.h(Dxva.h 포함) |