структура DXVA_BufferDescription (dxva.h)
Структура DXVA_BufferDescription отправляется декодером узла в ускоритель, чтобы предоставить ускорителю сведения о буфере, который в настоящее время передается от узла в ускоритель.
Синтаксис
typedef struct _DXVA_BufferDescription {
DWORD dwTypeIndex;
DWORD dwBufferIndex;
DWORD dwDataOffset;
DWORD dwDataSize;
DWORD dwFirstMBaddress;
DWORD dwNumMBsInBuffer;
DWORD dwWidth;
DWORD dwHeight;
DWORD dwStride;
DWORD dwReservedBits;
} DXVA_BufferDescription, *LPDXVA_BufferDescription;
Члены
dwTypeIndex
Определяет тип буфера, передаваемого в ускоритель. В следующей таблице перечислены числовые идентификаторы и связанный с ними тип буфера.
Значение | Тип буфера |
---|---|
1 | Буферы параметров декодирования рисунков. |
2 | Буферы команд управления макроблоками (тесно связанные с и имеющие соответствие 1:1 с буферами данных блока остаточной разницы). |
3 | Буферы данных блока разности остаточных данных. Дополнительные сведения см. в разделе Декодирования рисунков, ориентированных на макроблоки . |
4 | Разблокировка буферов команд управления фильтром (с ограничением или без ограничений на влияние фильтра). |
5 | Матричные буферы обратного квантования (используются только при обработке VLD вне узла). |
6 | Буферы управления срезами (тесно связанные с и имеющие соответствие 1:1 с буферами данных битового потока). |
7 | Буферы данных битового потока. |
8 | Примеры буферов альфа-смешивания AYUV. |
9 | Буферы поверхности альфа-смешивания IA44/AI44. |
10 | Буферы поверхности альфа-смешивания DPXD. |
11 | Выделите буферы данных. |
12 | Буферы данных DCCMD. |
13 | Буферы комбинации альфа-смешивания. |
14 | Буферы элементов управления повторной выборки рисунков. |
15 | Буферы команд обратного чтения, содержащие команды для чтения макроблоков результирующего рисунка обратно на узел. |
dwBufferIndex
Указывает порядковый номер буфера в буферах того же типа, которые были переданы в том же списке описания буфера.
dwDataOffset
Задает смещение соответствующих данных от начала буфера в байтах. В настоящее время использование этого элемента ограничено нулевым значением.
dwDataSize
Указывает объем соответствующих данных в буфере в байтах. Расположение последнего байта содержимого в буфере — dwDataOffset плюс dwDataSize минус 1.
dwFirstMBaddress
Указывает адрес первого макроблока в буфере, переданном в ускоритель. Адрес макроблока предоставляется в порядке растрового сканирования. Адрес определяется членами DXVA_PictureParameters. Ниже приведены примеры адресов макроблоков.
Макроблок | Адрес |
---|---|
верхний левый | нуль |
в правом верхнем углу | wPicWidthInMBminus1 |
нижний левый | wPicHeightInMBminus1 x (wPicWidthInMBminus1+1) |
нижний правый | (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1 |
Этот элемент должен быть равен нулю, если буфер данных относится к следующим типам: параметры декодирования рисунков, матрица обратного квантования, управление срезом, битовые данные, AYUV, IA44/AI44, DPXD, Highlight и DCCMD.
Если буфер данных является буфером блочных данных с разницей остатков, dwFirstMBadress должен иметь то же значение, что и для соответствующего буфера команд управления макроблоком. Дополнительные сведения см. в разделе Декодирования рисунков, ориентированных на макроблоки .
dwNumMBsInBuffer
Указывает количество макроблоков данных в буфере. Это число включает пропущенные макроблоки. Значение должно быть равно нулю, если буфер данных относится к следующим типам: параметры декодирования рисунков, матрица обратного квантования, AYUV, IA44/AI44, DPXD, Highlight или DCCMD.
Значение dwNumMBsInBuffer зависит от типа используемого буфера данных, как показано в следующей таблице.
Тип буфера | Значение dwNumMBsInBuffer |
---|---|
Команда элемента управления Macroblock | Должен быть равен сумме всех значений для MBskipsFollowing, добавленных к количеству команд управления макроблоком в буфере команд элемента управления макроблоком. |
Блок остаточной разницы | Должно иметь то же значение, что и для соответствующего буфера команд элемента управления макроблоком. |
Команда "Управление срезом" | Значение должно быть равно значению члена wNumberMBsInSlice структуры DXVA_SliceInfo в буфере управления срезом. |
Битовый поток | Должно иметь то же значение, что и для соответствующего буфера команд управления срезом. |
dwWidth
Задает ширину данных в буфере в виде количества битов для следующих типов данных: AYUV (данные указаны в 32-разрядных единицах), IA44/AI44 (данные указываются в 8-разрядных единицах) или DPXD (данные указываются в 2-разрядных единицах). Этот элемент должен быть равен нулю, если буфер данных не относится к предыдущим типам.
dwHeight
Задает высоту данных в буфере в виде количества битов для следующих типов данных: AYUV (данные указаны в 32-разрядных единицах), IA44/AI44 (данные указываются в 8-разрядных единицах) или DPXD (данные указываются в 2-разрядных единицах). Этот элемент должен быть равен нулю, если буфер данных не относится к предыдущим типам.
dwStride
Указывает шаг данных в буфере в виде количества битов для следующих типов данных: AYUV (данные указываются в 32-разрядных единицах), IA44/AI44 (данные указываются в 8-разрядных единицах) или DPXD (данные указываются в 2-разрядных единицах). Шаг для применимых типов буферов определяется на основе настройки выделения буфера, выполняемой ускорителем. Этот элемент должен быть равен нулю, если буфер данных не относится к предыдущим типам.
dwReservedBits
Зарезервированные биты, используемые для упаковки и выравнивания. Должен равняться нулю.
Комментарии
Массив DXVA_BufferDescription структур называется списком описания буфера. При отправке набора буферов из декодера узла в аппаратный ускоритель отправляется список описания буфера для описания буферов. Список описания буфера содержит одну DXVA_BufferDescription структуру для каждого буфера в этом наборе. Список описания буфера начинается с DXVA_BufferDescription структуры для первого буфера первого типа, за которой следует структура DXVA_BufferDescription для следующего буфера того же типа и т. д. Затем список описания буфера продолжается с DXVA_BufferDescription структуры для первого буфера следующего типа и т. д.
Требования
Требование | Значение |
---|---|
Заголовок | dxva.h (включая Dxva.h) |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по