다음을 통해 공유


DXVA_MBctrl_I_HostResidDiff_1 구조체(dxva.h)

DXVA_MBctrl_I_HostResidDiff_1 구조체는 호스트 디코더에 의해 macroblock당 한 번 가속기로 전송되어 인트라 그림대한 macroblock 컨트롤 명령을 지정합니다.

통사론

typedef struct _DXVA_MBctrl_I_HostResidDiff_1 {
  WORD  wMBaddress;
  WORD  wMBtype;
  DWORD dwMB_SNL;
  WORD  wPatternCode;
  WORD  wPC_Overflow;
  DWORD dwReservedBits2;
} DXVA_MBctrl_I_HostResidDiff_1;

회원

wMBaddress

현재 macroblock의 매크로 블록 주소를 래스터 검색 순서로 지정합니다. 매크로 블록 주소의 예는 매크로 블록 주소참조하세요.

wMBtype

처리 중인 macroblock의 형식을 지정합니다. 다음 비트는 매크로 블록 처리를 정의합니다.

비트 설명
15-12 MvertFieldSel_3(비트 15, 가장 중요한 비트)에서 MvertFieldSel_0(비트 12)
매크로 블록 컨트롤 명령의 뒷부분에서 보낸 해당 동작 벡터에 대한 세로 필드 선택을 지정합니다. 프레임 그림 구조가 있는 프레임 기반 동작(예: H.261 및 H.263)의 경우 이러한 비트는 모두 0이어야 합니다. MvertFieldSel_0, MvertFieldSel_1, MvertFieldSel_2 및 MvertFieldSel_3 비트는 MPEG-2 섹션 6.3.17.2의 motion_vertical_field_select[r][s] 비트에 해당합니다.
11 예약 비트
0이어야 합니다.
10 HostResidDiff
공간 도메인 잔차 디코딩된 블록을 보낼지 또는 현재 macroblock에 대해 호스트 외부 IDCT에 대해 변환 계수를 보낼지 여부를 지정합니다.
HostResidDiff는 이 구조에서 항상 1과 같습니다. bConfigResidDiffHost가 0인 경우 이 플래그는 0이어야 합니다. bConfigResidDiffAccelerator가 0인 경우 이 플래그는 1이어야 합니다. bConfigResidDiffHost 및 bConfigResidDiffAccelerator 멤버는 DXVA_ConfigPictureDecode 구조체에 포함됩니다.
9 및 8 MotionType
0이어야 합니다.
7 및 6 MBscanMethod
이러한 비트는 의미가 없으며 0으로 설정해야 합니다.
5 fieldResidual
잔차 블록이 MPEG-2에 지정된 필드 IDCT 구조를 사용하는지 여부를 나타냅니다.
DXVA_PictureParameters bPicStructure 멤버가 1 또는 2이면 1이어야 합니다. MPEG-2에 사용되는 경우 MPEG-2 구문의 frame_pred_frame_DCT 플래그가 1이면 FieldResidual이 0이어야 하며 매크로 블록에 대한 dct_type 있는 경우 MPEG-2 구문의 dct_type 변수와 같아야 합니다.
4 H261LoopFilter
0이어야 합니다.
3 Motion4MV
0이어야 합니다.
2 MotionBackward
0이어야 합니다.
1 MotionForward
0이어야 합니다.
0 IntraMacroblock
1이어야 합니다.

dwMB_SNL

현재 매크로 블록 다음에 생성할 건너뛴 매크로 블록 수를 지정하고 현재 매크로 블록 블록의 잔차 데이터 위치를 나타냅니다. 이 멤버에는 가장 중요한 8비트에서 MBskipsFollowing MBdataLocation 최소 24비트에서 두 개의 변수가 포함됩니다. MBskipsFollowing 현재 매크로 블록 다음에 생성될 건너뛴 매크로 블록의 수를 나타냅니다. MBdataLocation 잔차 블록 데이터 버퍼의 인덱스입니다. 이 인덱스는 32비트 배수로 표현된 현재 macroblock 블록의 잔차 데이터 위치를 나타냅니다.

wPatternCode

매크로 블록의 각 블록에 대해 잔차 데이터가 전송되는지 여부를 나타냅니다. 인트라 그림에서 매크로 블록의 모든 블록에 대해 잔차 데이터가 전송됩니다. 현재 매크로 블록의 모든 블록을 참조하는 wPatternCode 비트는 이 구조에서 1이어야 합니다.

wPatternCode 비트(11-i)(비트 0이 가장 낮은 비트)는 i 블록에 대해 잔차 차이 데이터가 전송되는지 여부를 나타냅니다. 여기서 i MPEG-2 그림 6-10에 지정된 대로 매크로 블록 내의 블록 인덱스입니다. 6-11 및 6-12(Y에 대한 래스터 스캔 순서, 래스터 스캔 순서로 Cb의 4:2:0 블록, 그 뒤를 이어 Cr의 4:2:0 블록, Cb의 4:2:2 블록, Cr의 4:2:2 블록, Cb의 4:4:4 블록, 4:4:4 블록 뒤에 Cr)이 뒤따랐습니다. 코딩된 블록의 데이터(비트(11i)가 1과 같음)은 동일한 인덱싱 순서로 잔차 코딩 버퍼에 있습니다(증가). 4:2:0 MPEG-2 데이터의 경우 wPatternCode 값은 CBP의 디코딩된 값(코딩된 블록 패턴)을 6비트 위치(4:2:2 및 4:4:4 크로마 형식에 사용되는 하위 비트 위치)로 왼쪽으로 이동하는 데 해당합니다.

DXVA_ConfigPictureDecode 구조체의 bConfigSpatialResidInterleaved 멤버가 1이면 호스트 기반 잔차가 사용 중인 YUV 픽셀 형식과 일치하는 chroma 인터리브 형식으로 전송됩니다. 이 경우 각 Cb 및 공간적으로 해당하는 Cr 블록 쌍은 단일 잔차 구조체 단위로 처리됩니다. 이렇게 하면 wPatternCode값이나 의미가 변경되지 않지만 이러한 데이터 블록 중 하나에 wPatternCode해당 비트 집합이 있을 때마다 Cb 및 Cr 데이터 블록 쌍의 각 멤버가 모두 전송됨을 의미합니다. 특정 데이터 블록에 대한 wPatternCode 비트가 0이면 이 페어링에서 wPatternCode 비트가 0인 블록에 대한 잔차 데이터 블록을 보내야 할 때마다 해당 잔차 데이터 값을 0으로 보내야 합니다.

wPC_Overflow

0이어야 합니다.

dwReservedBits2

압축 및 맞춤에 사용되는 예약된 비트입니다. 0이어야 합니다.

발언

건너뛴 매크로 블록은 인트라 그림에서 사용되지 않으므로 MBskipsFollowing 변수는 0이어야 합니다. MBdataLocation 변수는 macroblock 컨트롤 명령 버퍼의 첫 번째 매크로 블록에 대해 0이어야 합니다. 건너뛴 매크로 블록이 생성되는 방법에 대한 자세한 내용은 건너뛴 매크로 블록 생성참조하세요.

요구 사항

요구
헤더 dxva.h(Dxva.h 포함)

참고 항목

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_PictureParameters

DXVA_TCoefSingle