stringtranslate.com

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

DirectX Video Acceleration ( DXVA ) — это спецификация Microsoft API для платформ Microsoft Windows и Xbox 360 , которая позволяет декодировать видео с аппаратным ускорением . Конвейер позволяет перекладывать на графический процессор некоторые ресурсоемкие операции, такие как iDCT , компенсация движения и деинтерлейсинг . DXVA 2.0 также позволяет выполнять больше операций, включая операции захвата и обработки видео , с аппаратным ускорением.

DXVA работает совместно с моделью рендеринга видео, используемой видеокартой . DXVA 1.0, который был представлен как стандартизированный API в Windows 2000 ( DirectX 7 ) и в настоящее время доступен в Windows 98 или более поздних версиях, может использовать либо режим рендеринга наложения , либо VMR 7/9 . [1] DXVA 2.0, доступный только в Windows Vista , Windows 7 , Windows 8 и более поздних версиях ОС, интегрируется с Media Foundation (MF) и использует Enhanced Video Renderer (EVR), присутствующий в MF. [1]

Обзор

DXVA используется программными видеодекодерами для определения конвейера, специфичного для кодека, для аппаратно-ускоренного декодирования и рендеринга кодека. Конвейер начинается в ЦП, который используется для анализа потока мультимедиа и преобразования в совместимые с DXVA структуры. DXVA определяет набор операций, которые могут быть аппаратно ускорены, и интерфейсы драйверов устройств (DDI), которые графический драйвер может реализовать для ускорения операций. Если кодеку необходимо выполнить какие-либо из определенных операций, он может использовать эти интерфейсы для доступа к аппаратно-ускоренной реализации этих операций. Если графический драйвер не реализует один или несколько интерфейсов, кодек должен предоставить для него программный резерв. Декодированное видео передается аппаратному видеорендеру, где к нему может быть применена дополнительная постобработка видео перед рендерингом на устройство. Полученный конвейер можно использовать в приложении, совместимом с DirectShow .

DXVA определяет Motion Compensation DDI, который определяет интерфейсы для операций iDCT , кодирования Хаффмана , компенсации движения , альфа-смешивания , обратного квантования , преобразования цветового пространства и операций преобразования частоты кадров, среди прочего. [2] [3] Он также включает три подспецификации: Deinterlacing DDI, COPP DDI и ProcAmp DDI. [ 4] Deinterlacing DDI определяет обратные вызовы для операций деинтерлейсинга . Функции COPP (Certified Output Protection Protocol) DDI позволяют защитить конвейер для носителей, защищенных DRM , путем указания функций шифрования . ProcAmp DDI используется для ускорения постобработки видео. Модуль драйвера ProcAmp находится между аппаратным видеорендерером и драйвером дисплея и предоставляет функции для применения фильтров постобработки к распакованному видео.

Функции, предоставляемые DXVA DDI, не доступны напрямую клиенту DirectShow , но предоставляются как функции обратного вызова для видеорендера. Таким образом, рендерер играет очень важную роль в закреплении конвейера.

Поддержка DXVA для H.264 была добавлена ​​в DirectX 9.0c .

DXVA в Windows Vista и более поздних версиях

DXVA 2.0 улучшает реализацию видеоконвейера и добавляет множество других DDI, включая Capture DDI для захвата видео. DDI, которые он разделяет с DXVA 1.0, также улучшены возможностью использования аппаратного ускорения большего количества операций. Кроме того, функции DDI напрямую доступны вызывающим и не должны быть опосредованы видеорендером. [5] Таким образом, программа также может создать конвейер для простого декодирования мультимедиа (без рендеринга) или постобработки и рендеринга (без декодирования). Эти функции требуют драйверов Windows Display Driver Model , что ограничивает DXVA 2.0 Windows Vista , Windows Server 2008 , [1] [5] Windows 7 , Windows Server 2008 R2 и Windows 8. В Windows XP и Windows 2000 программы могут использовать DXVA 1.0. DXVA 2.0 позволяет использовать Enhanced Video Renderer в качестве видеорендера только в Vista, Windows 7 и Windows 8. [1] (В Windows XP DXVA-рендеринг возможен с VMR9 и известным Overlay Mixer.) DXVA интегрируется с Media Foundation и позволяет раскрывать конвейеры DXVA как Media Foundation Transforms ( MFT ). Даже конвейеры декодера или конвейеры постобработки могут быть раскрыты как MFT, которые могут использоваться загрузчиком топологии Media Foundation для создания полного конвейера воспроизведения мультимедиа. DXVA 1.0 эмулируется с помощью DXVA 2.0. [1] DXVA 2.0 не включает COPP DDI, а использует PVP для защищенного контента. Windows 7 реализует DXVA-HD [6] , если драйвер соответствует WDDM 1.1.

Реализации DXVA2: собственные и с обратной копией

Реализации DXVA2 существуют в двух вариантах: нативный и с обратным копированием .

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

При реализации копирования с обратной копией декодированное видео копируется из памяти GPU обратно в память CPU. Эта реализация не имеет ограничений, упомянутых выше, и действует аналогично обычному программному декодеру; однако, заикание видео будет происходить, если GPU недостаточно быстр, чтобы скопировать свою память обратно в память CPU.

Собственный режим имеет преимущества, если только нет необходимости в индивидуальной обработке, поскольку дополнительные операции обратного копирования увеличат нагрузку на память графического процессора. [7]

Программное обеспечение

Смотрите также

Ссылки

  1. ^ abcde "DirectX Video Acceleration 2.0" . Получено 24.10.2007 .
  2. ^ "Введение в DirectX VA". Архивировано из оригинала 2008-04-23 . Получено 2007-10-24 .
  3. ^ "Поддержка Microsoft DirectX Video Acceleration (DirectX VA)" . Получено 2007-10-24 .
  4. ^ "DirectX Video Acceleration". Архивировано из оригинала 2008-04-08 . Получено 2007-10-24 .
  5. ^ ab "Что нового в DirectShow" . Получено 24.10.2007 .
  6. ^ "DXVA-HD (Windows)". msdn.microsoft.com . Получено 21 апреля 2018 г. .
  7. ^ S, Ganesh T. "Обзор High-End Vision 3D 252B HTPC от ASRock". anandtech.com . Получено 21 апреля 2018 г. .
  8. ^ "CoreAVC Changelog | CoreCodec". Архивировано из оригинала 2011-07-04 . Получено 2011-04-09 .
  9. ^ "Daum tv팟". tvpot.daum.net . Архивировано из оригинала 22 мая 2017 года . Получено 21 апреля 2018 года .
  10. ^ "VLC GPU Decoding - VideoLAN Wiki". wiki.videolan.org . Получено 21 апреля 2018 г. .
  11. ^ «Как отключить аппаратное ускорение в проигрывателе Windows Media».

Внешние ссылки