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


О 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 или более поздней версии Микшер наложений, 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 Рекомендация 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