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비트만 주요 비디오 코딩 표준에 사용됨)로 구성됩니다. 여기서 bBlockWidthMinus1 및 bBlockHeightMinus1 은 DXVA_PictureParameters 구조체의 멤버입니다.
설명
비디오 코딩에 역량화 행렬(예: H.261 및 H.263)이 필요하지 않은 경우 역량화 매트릭스 버퍼를 보내지 않아야 합니다. 비디오 코딩에 역량화 행렬이 필요한 경우 비디오 디코딩 프로세스가 시작될 때 모든 비트스트림 데이터 버퍼를 전송하기 전이나 함께 호스트가 이러한 역량화 매트릭스에 대해 일부 값을 제공해야 합니다.
호스트에서 보낸 이전 값이 없는 경우 액셀러레이터가 역량화 행렬의 기본값을 가정할 수 없습니다. 관련 비디오 코딩 사양에서 기본적으로 사용할 수 있는 값이 포함되어 있더라도 양자화 행렬 값은 명시적으로 전송되어야 합니다.
역수량화 행렬 버퍼는 DXVA_ConfigPictureDecode 구조체의 bConfigBitstreamRaw 멤버가 1인 경우에만 전송됩니다.
역량화 매트릭스 내의 데이터 값 순서는 관련 비디오 코딩 사양에 지정된 대로 지정됩니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | dxva.h(Dxva.h 포함) |