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 요소는 지그재그, 대체 세로 또는 대체 가로 역 검색을 나타냅니다. 이러한 macroblock 컨트롤 명령은 DXVA_MBctrl_I_OffHostIDCT_1 또는 DXVA_MBctrl_P_OffHostIDCT_1구조에 정의됩니다. 이 경우 TCoefIDX 블록에 대해 마지막으로 전송된 계수 다음에 지정된 검사 순서에서 현재 계수 앞에 오는 값이 0인 계수의 수를 포함합니다(또는 블록 앞에 없는 경우 블록의 시작을 기준으로 함). 역 스캔 순서에서 마지막으로 보낸 계수 이후의 나머지 계수는 값이 0이 되도록 암시됩니다.
- 임의 순서 지정: bConfigHostInverseScan 1이면 macroblock 컨트롤 명령의 MBscanMethod 요소는 임의 순서를 나타냅니다. 이러한 macroblock 컨트롤 명령은 DXVA_MBctrl_I_OffHostIDCT_1 및 DXVA_MBctrl_P_OffHostIDCT_1구조에 정의되어 있습니다. 이 경우 TCoefIDX 블록 내 계수의 래스터 인덱스(TCoefIDX = u + 8 * v, 여기서 사용자와 v는 변환 도메인 가로 및 세로 주파수 좌표) 및 전송되지 않은 계수는 값 0을 포함하도록 암시됩니다.
TCoefEOB
현재 계수가 변환 계수의 현재 블록과 연결된 마지막 계수인지 여부를 나타냅니다. 값 1은 현재 계수가 블록의 마지막 계수이고 값이 0이 아님을 나타냅니다. 이 필드는 wIndexWithEOB 멤버 중 가장 중요한 비트에 있습니다.
TCoefValue
블록의 계수 값을 나타냅니다. IDCT 작업에 대한 계수 값을 가속기로 전달하기 전에 TCoefValue 호스트에서 Low-Level IDCT 처리 요소에 지정된 대로 적절한 범위로 잘려야 합니다. 필요한 경우 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 포함) |