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


О DXVA 2.0

DirectX Video Acceleration (DXVA) — это API и соответствующий DDI для использования аппаратного ускорения для ускорения обработки видео. Программные кодеки и программные видеопроцессоры могут использовать DXVA для разгрузки определенных операций с интенсивным ЦП на GPU. Например, декодирования программного обеспечения может выгрузить обратное преобразование косинуса (iDCT) на GPU.

В DXVA некоторые операции декодирования реализуются графическим драйвером оборудования. Этот набор функций называется акселератором. Другие операции декодирования реализуются программным обеспечением в режиме пользователя, которое называется декодером узла или декодером программного обеспечения. (Термины декодировщик узла и декодирования программного обеспечения эквивалентны.) Обработка, выполняемая акселератором, вызывается от обработки узла. Как правило, акселератор использует GPU для ускорения некоторых операций. Всякий раз, когда акселератор выполняет операцию декодирования, декодирования узла должен передаваться в буферы акселератора, содержащие сведения, необходимые для выполнения операции.

ДЛЯ API DXVA 2 требуется Windows Vista или более поздней версии. API DXVA 1 по-прежнему поддерживается в Windows Vista для обратной совместимости. Предоставляется уровень эмуляции, который преобразуется между любой версией API и противоположной версией DDI:

  • Если графический драйвер соответствует модели драйвера windows (WDDM), вызовы API DXVA 1 преобразуются в вызовы DXVA 2 DDI.
  • Если графические драйверы используют старую модель драйвера windows XP (XPDM), вызовы API DXVA 2 преобразуются в вызовы DXVA 1 DDI.

В следующей таблице показаны требования к операционной системе и поддерживаемые отрисовщики видео для каждой версии API DXVA.

Версия API Требования Поддержка отрисовщика видео
DXVA 1 Windows 2000 или более поздней версии Наложение Mixer, VMR-7, VMR-9 (только DirectShow)
DXVA 2 Windows Vista EVR (DirectShow и Media Foundation)

 

В DXVA 1 декодирования программного обеспечения должен получить доступ к API через отрисовщик видео. Нет способа использовать API DXVA 1 без вызова в отрисовщик видео. Это ограничение было удалено с DXVA 2. С помощью DXVA 2 декодировщик узла (или любое приложение) может напрямую получить доступ к API через интерфейс IDirectXVideoDecoderService .

В документации DXVA 1 описывается декодирование структур, используемых для следующих стандартов видео:

  • ITU-T Rec. H.261
  • ITU-T Rec. H.263
  • Видео MPEG-1
  • Видео основного профиля MPEG-2

Следующие спецификации определяют расширения DXVA для других стандартов видео:

DXVA 1 и DXVA 2 используют те же структуры данных для декодирования. Однако процедура настройки сеанса декодирования изменилась. DXVA 1 использует механизм "пробы и блокировки", в котором декодировщик узла может протестировать различные конфигурации перед настройкой требуемой конфигурации на акселераторе. В DXVA 2 акселератор возвращает список поддерживаемых конфигураций, а декодировщик узла выбирает один из списка. Сведения приведены в следующих разделах:

Ускорение видео DirectX 2.0

Спецификация DXVA 1.0