Поделиться через


структура 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

Указывает несжатый индекс поверхности, определяемый содержимым DWORD, на который указывает элемент lpInputDataDD_BEGINMOCOMPFRAMEDATA в предыдущем вызове DdMoCompBeginFrame, рисунка для объединения с рисунком. Это значение 0xFFFF, если используется внутреннее аппаратное альфа-смешение (если элемент bConfigBlendTypeDXVA_ConfigAlphaCombine равен 1).

wBlendedDestinationIndex

Указывает несжатый индекс поверхности, определяемый содержимым DWORD, на который указывает элемент lpInputData DD_BEGINMOCOMPFRAMEDATA в предыдущем вызове DdMoCompBeginFrame, объединенного рисунка, который необходимо создать. Это значение 0xFFFF, если используется внутреннее аппаратное альфа-смешение (если элемент bConfigBlendType DXVA_ConfigAlphaCombine равен 1).

Это значение не может быть равно wPictureSourceIndex , если не используется внутреннее аппаратное альфа-смешение.

PictureSourceRect16thPel

Задает область исходного рисунка для объединения с графическим изображением в виде структуры RECT . Измерения указываются в единицах от одной шестнадцатой от расстояния между выборкой значений компонента яркости. (Другими словами, члены в структуре RECT представляют собой представления с фиксированной точкой, которые имеют 28 битов перед двоичной точкой и 4 бита после двоичной точки.) Эта шестнадцатая точность выборки позволяет PictureSourceRect16thPel содержать ту же точность, что и frame_centre_horizontal_offset и frame_centre_vertical_offset переменные панорамного сканирования в видео MPEG-2.

Если элемент bConfigPictureResizing DXVA_ConfigAlphaCombine равен нулю, все измерения в PictureSourceRect16thPel должны быть целыми числами, кратными 16.

PictureDestinationRect

Задает область целевого рисунка в виде структуры RECT. Он будет содержать область, определенную для исходного рисунка с помощью PictureSourceRect16thPel.

Если элемент bConfigPictureResizingDXVA_ConfigAlphaCombine равен нулю, область, указанная параметром PictureDestinationRect , должна иметь ту же ширину и высоту, что и область, указанная в PictureSourceRect16thPel. Если pictureDestinationRect отличается по размеру от PictureSourceRect16thPel, применяемый метод повторной выборки не указан, но должен иметь по крайней мере эквивалентное качеству билинейной повторной выборки.

GraphicSourceRect

Задает область исходного графического изображения в виде структуры RECT . Эта область объединяется с частью исходного рисунка, указанного в PictureSourceRect16thPel для создания изображения с альфа-смешения.

GraphicDestinationRect

Задает область целевого графического изображения в виде структуры RECT .

Если элемент bConfigGraphicResizing DXVA_ConfigAlphaCombine равен нулю, целевой рисунок должен иметь ту же ширину и высоту, что и область , указанная в GraphicSourceRect. Если параметр GraphicDestinationRect отличается по размеру от GraphicSourceRect, метод повторной выборки, применяемый к графическому изображению, не указан. Однако используемый метод повторной выборки должен иметь качество, которое по крайней мере эквивалентно билинейной повторной выборке поверхности AYUV, представляющей сведения о смешивании.

wBlendDelay

Указывает количество миллисекундах задержки до вступления в силу комбинации смешивания. Если используется внутреннее аппаратное смешивание (например, если элемент bConfigBlendTypeDXVA_ConfigAlphaCombine равен 1), wBlendDelay содержит количество миллисекунд задержки до вступления в силу комбинации смешивания. Если используется интерфейсное смешивание, этот элемент не имеет смысла и должен быть равен нулю.

bBlendOn

Указывает, когда начинается и останавливается операция смешения. Если используется аппаратное наложение серверной части, смешивание применяется с момента, указанного в операции смешения (с bBlendOn равным 1), до времени выполнения новой комбинации смешения (с bBlendOn равным 1) или до тех пор, пока смешивание не будет отключено операцией смешения (с bBlendOn равно нулю). Если используется внутреннее аппаратное смешивание и bBlendOn равно нулю, единственным другим значением в буфере комбинации альфа-смешения, которое имеет значение, является wBlendDelay. Если используется интерфейсное смешивание, этот элемент не имеет смысла и должен иметь нулевое значение .

bWholePlaneAlpha

Содержит множитель непрозрачности для альфа-канала графического изображения. Нулевое значение указывает, что графическое изображение является прозрачным (чтобы графическое содержимое не влияло на полученное смешаемое изображение). Значение 255 указывает, что графическое изображение использует полную непрозрачность образца. Если значение bWholePlaneAlpha не равно нулю, указанная смесь заключается в умножении непрозрачности каждого расположения в графическом содержимом на (bWholePlaneAlpha+1)/256. Для нулевого значения bWholePlaneAlpha используется непрозрачность, указанная на графическом изображении без изменения. Значение должно быть равно 255, если элемент bConfigWholePlaneAlphaDXVA_ConfigAlphaCombine равен нулю.

OutsideYUVcolor

Указывает, используются ли области за пределами PictureDestinationRect константным цветом для смешивания. Если это так, этот элемент указывает эту константу цвета. Элемент OutsideYUVcolor определяется как DXVA_AYUVsample2 структура. Дополнительные сведения см. в разделе Примечания .

Комментарии

В случае, если исходные и целевые рисунки не имеют формат 4:4:4, каждый второй образец сведений о смешивании рисунков (например, первый, третий или пятый) применяется к сведениям о хромансе в подвыбранном исходном направлении в вертикальном или горизонтальном направлении по мере необходимости для получения смешанного результата.

В следующих разделах показаны ограничения, накладываемые на левый, правый, верхний и нижний элементы структуры RECT.

Ограничения структуры RECT для PictureSourceRect16thPel

К измерениям RECTОбъекта PictureSourceRect16thPel применяются следующие ограничения:
  • слева и сверху должны быть больше или равно нулю.
  • Правый и нижний должны быть больше или равно левому и верхнему краю соответственно.
  • Если правое значение равно левому краю или сверху равно нижнему, все элементы RECT должны иметь нулевое значение, указывающее, что исходный рисунок не используется. Этот случай допускается, только если член bConfigOnlyUsePicDestRectAreaDXVA_ConfigAlphaCombine равен нулю.
  • Правая и нижняя не должны превышать в 16 раз больше выделенной ширины и высоты соответственно поверхности несжатого исходного изображения.
Например, если pictureSourceRect16thPel используется для выбора всего декодированного изображения MPEG-2, значения PictureSourceRect16thPel можно вычислить следующим образом:
  • left = 0
  • top = 0
  • right = 16 X horizontal_size
  • bottom = 16 X vertical_size

Ограничения структуры RECT для PictureDestinationRect

К измерениям RECT для PictureDestinationRect применяются следующие ограничения:
  • слева и сверху должны быть больше или равно нулю.
  • Правый и нижний должны быть больше или равно левому и верхнему краю соответственно.
  • Если правое значение равно левому или верхнему краю равно нижнему (допускается только в том случае, если элемент bConfigOnlyUsePicDestRectAreaDXVA_ConfigAlphaCombine равен нулю), все элементы RECT должны иметь нулевое значение, а PictureSourceRect16thPel также должен указывать все значения, имеющие нулевое значение.
  • Если элемент bConfigBlendType DXVA_ConfigAlphaCombine равен нулю, правый и нижний не должны превышать выделенную ширину и высоту, соответственно, для несжатой области конечного рисунка.
  • Если элемент bConfigBlendType DXVA_ConfigAlphaCombine равен 1, правый и нижний не должны превышать выделенную ширину и высоту исходной графической поверхности соответственно.

Ограничения структуры RECT для GraphicSourceRect

Если при загрузке данных альфа-смешения используется элемент bConfigDataTypeDXVA_ConfigAlphaLoad со значением 2, к измерениям RECTобъекта GraphicSourceRect применяются следующие ограничения:
  • Верхний и левый должны быть равны нулю.
  • Значение right должно быть равно конце координате X минус начальная координата X последнего предыдущего DVD-SET_DAREA DCCMD плюс 1, чтобы настроить различные интерпретации прямоугольника, как описано в следующем примечании в разделе Ограничения структуры RECT для GraphicDestinationRect .
  • Нижняя часть должна быть равна координате конца Y минус начальная координата Y последнего предыдущего DVD-SET_DAREA DCCMD плюс 1, чтобы настроить различные интерпретации прямоугольника.
Если при загрузке данных альфа-смешения не используется элемент bConfigDataType DXVA_ConfigAlphaLoad со значением 2, к измерениям RECT объекта GraphicSourceRect применяются следующие ограничения:
  • слева и сверху должны быть больше или равно нулю.
  • Правый и нижний должны быть больше или равно левому и верхнему краю соответственно.
  • Если правое значение равно левому краю или сверху равно нижнему, все элементы RECT должны иметь нулевое значение, указывающее на отсутствие использования графического рисунка.
  • Правая и нижняя не должны превышать выделенную ширину и высоту исходного графического изображения соответственно. Выделенная ширина и высота определяются как 720 и 576 выборок соответственно, если элемент bConfigDataType DXVA_ConfigAlphaLoad равен 2.

Ограничения структуры RECT для GraphicDestinationRect

К измерениям RECTобъекта GraphicDestinationRect применяются следующие ограничения:
  • Значение left и top должно быть больше или равно нулю, если это требование не противоречит необходимости смещения рисунка на восемь выборок. Это происходит в следующих сценариях:
    • При загрузке данных альфа-смешения используется элемент bConfigDataTypeDXVA_ConfigAlphaCombine со значением 2 и элемент bConfigGraphicResizing DXVA_ConfigAlphaCombine со значением, равным нулю.
    • Операция задана для dvd-диска 704-wide non-Pan-Scan (см. пример неперескакана dvd 704).
    • Операция настроена для DVD-диска 352(см. раздел Dvd 352-Wide Example).
  • Правый и нижний должны быть больше или равно левому и верхнему краю соответственно. Если right равно левому краю или top равно нижнему, то все эти элементы структуры RECT должны иметь нулевое значение, а GraphicSourceRect также должен указывать, что все его элементы имеют нулевое значение.
  • Если элемент bConfigBlendTypeDXVA_ConfigAlphaCombine равен нулю, правый и нижний не должны превышать выделенную ширину и высоту соответственно для несжатой области назначения.
  • Если элемент bConfigBlendType DXVA_ConfigAlphaCombine равен 1, правый и нижний не должны превышать выделенные ширину и высоту исходного графического изображения соответственно.
Если при загрузке данных альфа-смешения используется элемент bConfigDataType DXVA_ConfigAlphaCombine со значением 2 и элемент bConfigGraphicResizing DXVA_ConfigAlphaCombine со значением 0, применяются следующие дополнительные ограничения для измерений GraphicDestinationRect :
  • Значение top должно быть равно координате начала Y последнего предыдущего DVD-SET_DAREA DCCMD.
  • Значение left должно быть равно либо начальной координате X последнего предыдущего DVD-SET_DAREA DCCMD, либо значению минус 8. Дополнительные сведения см. в разделах Примеры несдвигаемого сканирования DVD 704 и Dvd 352-Wide.
  • Значение right должно быть равно значению слева плюс координата конца X минус начальная координата X последнего предыдущего DVD-SET_DAREA DCCMD плюс 1, чтобы настроить различные интерпретации прямоугольника, описанные в следующем примечании.
  • Нижняя часть должна быть равна значению top плюс координата конца Y минус начальная координата Y последнего предыдущего DVD-SET_DAREA DCCMD плюс 1, чтобы настроить различные интерпретации прямоугольника, описанные в следующем примечании.
Примечание Существует разница между тем, как спецификация dvd-видео определяет подпиктурную прямоугольную область и соглашение, используемое корпорацией Майкрософт. Эта ссылка соответствует соглашению Майкрософт, поэтому прямоугольник ширины 10 и высоты 10 в верхнем левом углу рисунка определяется верхним = 0, левым = 0, правым = 10 и нижним = 10. В спецификации dvd-видео используется эквивалент right = 9 и bottom = 9.
 

Задание внешних значенийYUVcolor

Ниже приведены значения структуры OutsideYUVcolor .
  • Значение Параметра OutsideYUVcolor.bSampleAlpha8 должно быть равно 255, если области за пределами PictureDestinationRect создаются как постоянный цвет, используемый для смешивания.
  • Значение OutsideYUVcolor.bSampleAlpha8 должно быть равным нулю, если применяется один из следующих двух вариантов:
    • Область за пределами PictureDestinationRect не затрагивается смесью.
    • Области за пределами PictureDestinationRect нельзя использовать (на это указывает член bConfigStayInPicDestRectAreaDXVA_ConfigAlphaCombine со значением 1).
Все остальные значения для OutsideYUVcolor.bSampleAlpha8 зарезервированы для использования в будущем.

Значение Параметра OutsideYUVcolor.bSampleAlpha8 должно быть равным нулю, если член bConfigStayInPicDestRectArea структуры DXVA_ConfigAlphaCombine равен 1.

Если свойство OutsideYUVcolor.bSampleAlpha8 равно нулю, единственной областью конечной поверхности, на которую влияет смесь, является часть в PictureDestinationRect.

Если Параметр OutsideYUVcolor.bSampleAlpha8 имеет значение 255, любая область конечной поверхности, которая находится за пределами PictureDestinationRect , но внутри Объекта GraphicDestinationRect, создается путем смешивания рисунка с цветом, указанным в неальфовых элементах OutsideYUVcolor. В этом случае вся выделенная область целевой поверхности, которая находится за пределами PictureDestinationRect и GraphicDestinationRect , задается цветом, указанным в неальфаховых элементах OutsideYUVcolor. Если элемент bConfigBlendType структуры DXVA_ConfigAlphaCombine равен 1, члены OutsideYUVcolor задаются для обозначения смешения с черным цветом, указав bSampleAlpha8 = 255, bY_Value = 16 и bCbValue = bCrValue = 128.

Если элемент bConfigBlendType структуры DXVA_ConfigAlphaCombine равен 1 (аппаратное сочетание серверной части), операции смешивания могут несколько отличаться от описанных в этом справочнике. Некоторые параметры изменения размера, используемые для сопоставления изображения из исходного изображения с размером целевого рисунка, могут применяться измененным способом, чтобы сопоставить графическое изображение с его правильным расположением относительно исходного рисунка. Однако смешанный результат будет эквивалентен смешанному результату, полученному командами комбинации альфа-смешения в этой ссылке.

Требования

Требование Значение
Заголовок dxva.h (включая Dxva.h)

См. также раздел

DD_BEGINMOCOMPFRAMEDATA

DXVA_AYUVsample2

DXVA_ConfigAlphaCombine

DdMoCompBeginFrame

RECT