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
블록의 계수 값을 나타냅니다. TCoefValue는 IDCT 작업에 대한 계수 값을 가속기로 전달하기 전에 호스트가 하위 수준 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 포함) |
참조
피드백
다음에 대한 사용자 의견 제출 및 보기