DXVA_BlendCombination 구조체(dxva.h)

DXVA_BlendCombination 구조체는 호스트 디코더가 가속기에 전송하여 혼합된 그림을 원본 그림과 알파 혼합 정보와 함께 그래픽 이미지에서 만드는 방법을 지정합니다.

구문

typedef struct _DXVA_BlendCombination {
  WORD             wPictureSourceIndex;
  WORD             wBlendedDestinationIndex;
  RECT             PictureSourceRect16thPel;
  RECT             PictureDestinationRect;
  RECT             GraphicSourceRect;
  RECT             GraphicDestinationRect;
  WORD             wBlendDelay;
  BYTE             bBlendOn;
  BYTE             bWholePlaneAlpha;
  DXVA_AYUVsample2 OutsideYUVcolor;
} DXVA_BlendCombination, *LPDXVA_BlendCombination;

멤버

wPictureSourceIndex

DdMoCompBeginFrame에 대한 이전 호출에서 DD_BEGINMOCOMPFRAMEDATAlpInputData 멤버가 가리키는 DWORD의 내용에 정의된 대로 그래픽과 결합할 그림의 압축되지 않은 표면 인덱스를 지정합니다. 백 엔드 하드웨어 알파 혼합이 사용 중인 경우(DXVA_ConfigAlphaCombine bConfigBlendType 멤버가 1인 경우) 이 값은 0xFFFF .

wBlendedDestinationIndex

DdMoCompBeginFrame에 대한 이전 호출에서 DD_BEGINMOCOMPFRAMEDATA lpInputData 멤버가 가리키는 DWORD의 내용으로 정의된 압축되지 않은 표면 인덱스를 만들 결합된 그림의 인덱스를 지정합니다. 백 엔드 하드웨어 알파 혼합이 사용 중인 경우(DXVA_ConfigAlphaCombine bConfigBlendType 멤버가 1인 경우) 이 값은 0xFFFF.

백 엔드 하드웨어 알파 혼합을 사용하지 않는 한 이 값은 wPictureSourceIndex 와 같을 수 없습니다.

PictureSourceRect16thPel

그래픽 이미지와 결합할 원본 그림의 영역을 RECT 구조체로 지정합니다. 차원은 광도 구성 요소의 샘플 값 사이의 거리 16분의 1 단위로 지정됩니다. 즉, RECT 구조체의 멤버는 이진 지점 앞에 28비트가 있고 이진점 다음에 4비트가 있는 고정 소수점 표현입니다. 이 16번째 샘플 정확도를 통해 PictureSourceRect16thPel 은 MPEG-2 비디오에서 frame_centre_horizontal_offsetframe_centre_vertical_offset 팬 스캔 변수와 동일한 정확도를 포함할 수 있습니다.

DXVA_ConfigAlphaCombine bConfigPictureResizing 멤버가 0이면 PictureSourceRect16thPel 의 모든 차원은 16의 정수 배수여야 합니다.

PictureDestinationRect

대상 그림의 영역을 RECT 구조체로 지정합니다. 여기에는 PictureSourceRect16thPel에서 원본 그림에 대해 정의된 영역이 포함됩니다.

DXVA_ConfigAlphaCombinebConfigPictureResizing 멤버가 0이면 PictureDestinationRect로 지정된 영역의 너비와 높이가 PictureSourceRect16thPel으로 지정된 영역과 동일해야 합니다. PictureDestinationRect의 크기가 PictureSourceRect16thPel과 다른 경우 적용할 리샘플링 메서드는 지정되지 않지만 적어도 쌍선형 리샘플링과 동일한 품질이 있어야 합니다.

GraphicSourceRect

원본 그래픽 이미지의 영역을 RECT 구조체로 지정합니다. 이 영역은 PictureSourceRect16thPel 에서 지정한 원본 그림의 일부와 결합하여 알파 혼합 그림을 만듭니다.

GraphicDestinationRect

대상 그래픽 이미지의 영역을 RECT 구조체로 지정합니다.

DXVA_ConfigAlphaCombine bConfigGraphicResizing 멤버가 0이면 대상 그림의 너비와 높이가 GraphicSourceRect에서 지정한 영역과 동일해야 합니다. GraphicDestinationRect의 크기가 GraphicSourceRect와 다른 경우 그래픽 이미지에 적용할 리샘플링 메서드가 지정되지 않습니다. 그러나 사용되는 리샘플링 방법에는 혼합 정보를 나타내는 AYUV 표면의 쌍선형 재샘플링과 적어도 동일한 품질이 있어야 합니다.

wBlendDelay

혼합 조합이 적용되기 전의 지연 시간(밀리초)을 지정합니다. 백 엔드 하드웨어 혼합이 사용 중인 경우(예: DXVA_ConfigAlphaCombinebConfigBlendType 멤버가 1인 경우) wBlendDelay는 혼합 조합이 적용되기 전에 지연 시간(밀리초)을 포함합니다. 프런트 엔드 혼합을 사용하는 경우 이 멤버는 의미가 없으며 0이어야 합니다.

bBlendOn

혼합 조합 작업이 시작되고 중지되는 시기를 지정합니다. 백 엔드 하드웨어 혼합을 사용하는 경우 혼합 조합 작업( bBlendOn 이 1과 같음)에 지정된 시간부터 새 혼합 조합의 실행 시간( bBlendOn 이 1과 같음)까지 또는 혼합 조합 작업( bBlendOn 이 0과 같음)에 의해 혼합이 비활성화될 때까지 혼합이 적용됩니다. 백 엔드 하드웨어 혼합이 사용 중이고 bBlendOn 이 0인 경우 의미가 있는 알파 혼합 조합 버퍼의 다른 값은 wBlendDelay뿐입니다. 프런트 엔드 혼합을 사용하는 경우 이 멤버는 의미가 없으며 0이어야 합니다.

bWholePlaneAlpha

그래픽 이미지의 알파 채널에 대한 불투명도 승수를 포함합니다. 값 0은 그래픽 이미지가 투명하다는 것을 나타냅니다(그래픽 콘텐츠가 결과 혼합 그림에 영향을 주지 않도록). 값 255는 그래픽 이미지가 전체 샘플 불투명도를 사용함을 나타냅니다. bWholePlaneAlpha가 0이 아닌 경우 지정된 혼합은 그래픽 콘텐츠의 각 위치 불투명도를 (bWholePlaneAlpha+1)/256으로 곱하는 것입니다. bWholePlaneAlpha 값이 0인 경우 사용할 혼합은 변경 없이 그래픽 이미지에 지정된 불투명도입니다. DXVA_ConfigAlphaCombinebConfigWholePlaneAlpha 멤버가 0이면 255와 같아야 합니다.

OutsideYUVcolor

PictureDestinationRect 외부 영역이 혼합에 상수 색을 사용하는지 여부를 나타냅니다. 이 경우 이 멤버는 해당 색 상수를 지정합니다. OutsideYUVcolor 멤버는 DXVA_AYUVsample2 구조체로 정의됩니다. 자세한 내용은 설명 부분을 참조하세요.

설명

원본 및 대상 그림이 4:4:4 형식이 아닌 경우 그래픽 혼합 정보의 매초 샘플(예: 첫 번째, 세 번째 또는 다섯 번째)이 혼합된 결과를 생성하기 위해 필요에 따라 수직 또는 가로 방향으로 하위 샘플링된 원본 색소 정보에 적용됩니다.

다음 섹션에서는 RECT 구조체의 왼쪽, 오른쪽, 위쪽아래쪽 멤버에 적용되는 제한을 보여 줍니다.

PictureSourceRect16thPel에 대한 RECT 구조 제한

PictureSourceRect16thPelRECT 차원에는 다음 제한이 적용됩니다.
  • 왼쪽위쪽 은 0보다 크거나 같아야 합니다.
  • 오른쪽아래쪽 은 각각 왼쪽위쪽보다 크거나 같아야 합니다.
  • 오른쪽왼쪽과 같거나 위쪽아래쪽과 같으면 모든 RECT 멤버는 원본 그림이 사용되지 않음을 나타내는 값 0이 있어야 합니다. 이 사례는 DXVA_ConfigAlphaCombinebConfigOnlyUsePicDestRectArea 멤버가 0인 경우에만 허용됩니다.
  • 오른쪽아래쪽 은 압축되지 않은 원본 그림 표면의 할당된 너비와 높이의 각각 16배를 초과해서는 안 됩니다.
예를 들어 PictureSourceRect16thPel 을 사용하여 전체 MPEG-2 디코딩 그림을 선택하는 경우 PictureSourceRect16thPel 값을 다음과 같이 계산할 수 있습니다.
  • left = 0
  • top = 0
  • right = 16 X horizontal_size
  • bottom = 16 X vertical_size

PictureDestinationRect에 대한 RECT 구조 제한

PictureDestinationRectRECT 차원에는 다음 제한이 적용됩니다.
  • 왼쪽위쪽 은 0보다 크거나 같아야 합니다.
  • 오른쪽아래쪽 은 각각 왼쪽위쪽보다 크거나 같아야 합니다.
  • 오른쪽왼쪽과 같거나 위쪽아래쪽과 같으면(DXVA_ConfigAlphaCombinebConfigOnlyUsePicDestRectArea 멤버가 0인 경우에만 허용됨) 모든 RECT 멤버의 값이 0이어야 하며 PictureSourceRect16thPel도 값이 0인 모든 값을 지정해야 합니다.
  • DXVA_ConfigAlphaCombine bConfigBlendType 멤버가 0인 경우 오른쪽아래쪽 은 압축되지 않은 대상 그림 표면의 할당된 너비와 높이를 각각 초과해서는 안 됩니다.
  • DXVA_ConfigAlphaCombine bConfigBlendType 멤버가 1인 경우 오른쪽아래쪽 은 원본 그래픽 표면의 할당된 너비와 높이를 각각 초과해서는 안 됩니다.

GraphicSourceRect에 대한 RECT 구조 제한

알파 혼합 데이터 로드에서 값이 2인 DXVA_ConfigAlphaLoadbConfigDataType 멤버를 사용하는 경우 GraphicSourceRectRECT 차원에 다음 제한이 적용됩니다.
  • 위쪽 왼쪽 은 0이어야 합니다.
  • right 는 그래픽 DestinationRect 에 대한 RECT 구조 제한 섹션에 설명된 대로 서로 다른 사각형 해석에 맞게 조정하려면 위의 마지막 DVD SET_DAREA DCCMD의 시작 X 좌표를 뺀 X 좌표 끝과 같아야 합니다.
  • 아래쪽 은 앞의 마지막 DVD SET_DAREA DCCMD의 시작 Y 좌표를 뺀 끝 Y 좌표와 같아야 하며, 다른 사각형 해석에 맞게 조정하려면 1을 더해야 합니다.
알파 혼합 데이터 로드에서 값이 2인 DXVA_ConfigAlphaLoad bConfigDataType 멤버를 사용하지 않는 경우 GraphicSourceRect의 RECT 차원에 다음 제한이 적용됩니다.
  • 왼쪽위쪽 은 0보다 크거나 같아야 합니다.
  • 오른쪽 아래쪽 은 각각 왼쪽위쪽보다 크거나 같아야 합니다.
  • 오른쪽왼쪽과 같거나 위쪽아래쪽과 같으면 모든 RECT 멤버의 값이 0이어야 하며 이는 그래픽 그림을 사용하지 않음을 나타냅니다.
  • 오른쪽아래쪽 은 그래픽 원본 이미지의 할당된 너비와 높이를 각각 초과해서는 안 됩니다. 할당된 너비와 높이는 DXVA_ConfigAlphaLoad bConfigDataType 멤버가 2인 경우 각각 720 및 576 샘플로 정의됩니다.

GraphicDestinationRect에 대한 RECT 구조 제한

GraphicDestinationRectRECT 차원에는 다음 제한이 적용됩니다.
  • 요구 사항이 8개의 샘플로 그래픽을 오프셋해야 하는 필요성과 충돌하지 않는 한 왼쪽 및 위쪽 은 0보다 크거나 같아야 합니다. 다음과 같은 시나리오의 경우입니다.
  • 오른쪽아래쪽 은 각각 왼쪽위쪽보다 크거나 같아야 합니다. 오른쪽왼쪽과 같거나 위쪽아래쪽과 같으면 RECT 구조체의 이러한 모든 멤버는 값이 0이어야 하며 GraphicSourceRect는 모든 멤버에 값이 0이 되도록 지정해야 합니다.
  • DXVA_ConfigAlphaCombinebConfigBlendType 멤버가 0과 같으면 오른쪽아래쪽이 각각 압축되지 않은 대상 그림 표면의 할당된 너비와 높이를 초과해서는 안 됩니다.
  • DXVA_ConfigAlphaCombine bConfigBlendType 멤버가 1과 같으면 오른쪽아래쪽 이 각각 원본 그래픽 이미지의 할당된 너비와 높이를 초과하지 않아야 합니다.
알파 혼합 데이터 로드에서 값이 2인 DXVA_ConfigAlphaCombine bConfigDataType 멤버와 값이 0인 DXVA_ConfigAlphaCombine bConfigGraphicResizing 멤버를 사용하는 경우 GraphicDestinationRect 차원에 대한 다음과 같은 추가 제한이 적용됩니다.
  • top 은 앞의 마지막 DVD SET_DAREA DCCMD의 시작 Y 좌표와 같아야 합니다.
  • left 는 앞의 마지막 DVD SET_DAREA X 시작 좌표 또는 해당 값에서 8을 뺀 값과 같아야 합니다. 자세한 내용은 DVD 704-Wide Non-Pan-Scan 예제DVD 352-wide 예제를 참조하세요.
  • 오른쪽왼쪽 값과 같아야 하며 마지막 앞의 DVD SET_DAREA DCCMD의 시작 X 좌표를 빼고 X 좌표 끝과 1을 뺀 값과 같아야 다음 노트에 설명된 다른 사각형 해석에 맞게 조정할 수 있습니다.
  • 아래 는 위의 마지막 DVD SET_DAREA DCCMD의 시작 Y 좌표를 뺀 위쪽 값과 끝 Y 좌표의 값과 같아야 하며, 다음 참고에 설명된 다른 사각형 해석에 맞게 조정하려면 1을 더해야 합니다.
참고 DVD 비디오 사양이 하위 사진 직사각형 영역을 정의하는 방식과 Microsoft에서 사용하는 규칙 간에는 차이가 있습니다. 이 참조는 Microsoft 규칙을 따르므로 그림의 왼쪽 위 모서리에 있는 너비 10 및 높이 10의 사각형이 위쪽 = 0, 왼쪽 = 0, 오른쪽 = 10 및 아래쪽 = 10으로 정의됩니다. DVD 비디오 사양은 오른쪽 = 9 및 아래쪽 = 9에 해당하는 를 사용합니다.
 

외부 설정YUVcolor 값

OutsideYUVcolor 구조체의 값은 다음과 같습니다.
  • PictureDestinationRect 외부 영역이 혼합에 사용할 상수 색으로 생성되는 경우 OutsideYUVcolor.bSampleAlpha8 값은 255여야 합니다.
  • 다음 두 경우 중 하나가 적용되는 경우 OutsideYUVcolor.bSampleAlpha8 값은 0이어야 합니다.
    • PictureDestinationRect 외부 영역은 혼합의 영향을 받지 않습니다.
    • PictureDestinationRect 외부의 영역을 사용할 수 없습니다(값이 1인 DXVA_ConfigAlphaCombinebConfigStayInPicDestRectArea 멤버로 표시됨).
OutsideYUVcolor.bSampleAlpha8에 대한 다른 모든 값은 나중에 사용하도록 예약되어 있습니다.

DXVA_ConfigAlphaCombine 구조체의 bConfigStayInPicDestRectArea 멤버가 1인 경우 OutsideYUVcolor.bSampleAlpha8의 값은 0이어야 합니다.

OutsideYUVcolor.bSampleAlpha8이 0이면 혼합의 영향을 받는 대상 표면의 유일한 영역은 PictureDestinationRect 내의 부분입니다.

OutsideYUVcolor.bSampleAlpha8이 255이면 PictureDestinationRect 외부에 있지만 GraphicDestinationRect 내에 있는 대상 표면의 모든 영역은 그래픽을 OutsideYUVcolor의 nonalpha 멤버에 지정된 색과 혼합하여 생성됩니다. 이 경우 PictureDestinationRectGraphicDestinationRect 를 모두 벗어나는 대상 표면의 할당된 전체 영역이 OutsideYUVcolor의 nonalpha 멤버에 지정된 색으로 설정됩니다. DXVA_ConfigAlphaCombine 구조체의 bConfigBlendType 멤버가 1이면 bSampleAlpha8 = 255, bY_Value = 16 및 bCbValue = bCrValue = 128을 지정하여 OutsideYUVcolor 멤버가 검은색과의 혼합을 나타내도록 설정됩니다.

DXVA_ConfigAlphaCombine 구조체의 bConfigBlendType 멤버가 1(백 엔드 하드웨어 혼합)인 경우 혼합 작업은 이 참조에 설명된 것과 다소 다를 수 있습니다. 원본 그림에서 대상 그림 크기로 비디오 그림을 매핑하는 데 사용되는 일부 크기 조정 매개 변수는 수정된 방식으로 적용되어 원본 그림을 기준으로 그래픽 이미지를 적절한 위치에 매핑할 수 있습니다. 그러나 혼합된 결과는 이 참조의 알파 혼합 조합 명령에서 얻은 혼합된 결과와 동일합니다.

요구 사항

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

추가 정보

DD_BEGINMOCOMPFRAMEDATA

DXVA_AYUVsample2

DXVA_ConfigAlphaCombine

DdMoCompBeginFrame

RECT