DXVA_QmatrixData 구조체(dxva.h)

DXVA_QmatrixData 구조체는 호스트 디코더에 의해 가속기로 전송되어 오프 호스트 비트스트림 압축 비디오 사진 디코딩을 위해 역량화 행렬 데이터를 로드합니다.

구문

typedef struct _DXVA_QmatrixData {
  BYTE bNewQmatrix[4];
  WORD *Qmatrix[4][DXVA_USUAL_BLOCK_WIDTH  DXVA_USUAL_BLOCK_HEIGHT];
} DXVA_QmatrixData, *LPDXVA_QmatrixData;

멤버

bNewQmatrix[4]

역량화 행렬 버퍼에 있는 새로운 역량화 매트릭스를 나타냅니다. 이 배열의 각 요소는 역수량화 행렬 형식에 해당하며 해당 형식의 새 역량화 행렬이 버퍼에 있는지 여부를 나타냅니다. bNewQmatrix 배열의 요소에 값이 1인 경우 해당 배열 요소에 대해 지정된 형식의 새 역계량화 행렬이 역량화 행렬 버퍼에서 뒤따릅니다. 사용할 수 있는 역량화 행렬은 다음과 같습니다.

NewQmatrix 요소 Inverse-Quantization 행렬 형식
0 광도 내 양자화를 지정합니다.
1 광도 간 양자화를 지정합니다.
2 색 내 수량화를 지정합니다.
3 색차 간 양자화를 지정합니다.

bNewQmatrix[0] 및 bNewQmatrix[1]의 값은 둘 다 0이 아니어야 합니다.

bNewQmatrix[2] 또는 bNewQmatrix[3]의 값이 0이면 다음이 적용됩니다.

bNewQmatrix[i - 2]가 0이면 ith 요소에 의해 정의된 이전 역량화 행렬은 가속기에서 계속 사용해야 합니다.

bNewQmatrix[i - 2]가 1이면 ith 요소에 의해 정의된 역량화 행렬이 i - 2에 대한 새로운 역량화 행렬과 같게 설정됩니다.

Qmatrix[4]

역량화 행렬 버퍼를 지정하는 2차원 배열입니다. 이 배열은 bNewQmatrix 가 1인 각 요소에 대해서만 존재합니다. 행렬은 (bBlockWidthMinus1+1) X(bBlockHeightMinus1+1) 부호 없는 단어(각 단어의 하위 8비트만 주요 비디오 코딩 표준에 사용됨)로 구성됩니다. 여기서 bBlockWidthMinus1bBlockHeightMinus1DXVA_PictureParameters 구조체의 멤버입니다.

참고 MPEG-2 비트스트림의 경우 Qmatrix 내의 데이터 값은 MPEG-2의 subclause 7.3.1 및 그림 7-2에 지정된 대로 지그재그 역 스캔 순서로 표시됩니다.
 

설명

비디오 코딩에 역량화 행렬(예: H.261 및 H.263)이 필요하지 않은 경우 역량화 매트릭스 버퍼를 보내지 않아야 합니다. 비디오 코딩에 역량화 행렬이 필요한 경우 비디오 디코딩 프로세스가 시작될 때 모든 비트스트림 데이터 버퍼를 전송하기 전이나 함께 호스트가 이러한 역량화 매트릭스에 대해 일부 값을 제공해야 합니다.

호스트에서 보낸 이전 값이 없는 경우 액셀러레이터가 역량화 행렬의 기본값을 가정할 수 없습니다. 관련 비디오 코딩 사양에서 기본적으로 사용할 수 있는 값이 포함되어 있더라도 양자화 행렬 값은 명시적으로 전송되어야 합니다.

역수량화 행렬 버퍼는 DXVA_ConfigPictureDecode 구조체의 bConfigBitstreamRaw 멤버가 1인 경우에만 전송됩니다.

역량화 매트릭스 내의 데이터 값 순서는 관련 비디오 코딩 사양에 지정된 대로 지정됩니다.

요구 사항

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

추가 정보

DXVA_ConfigPictureDecode

DXVA_PictureParameters