DirectX Video Acceleration

DirectX Video Acceleration (скорочено DXVA, дослівно укр. прискорення відео DirectX) прикладний програмний інтерфейс (API), компонент DirectX, розроблений корпорацією Microsoft і призначений для обробки (в першу чергу, декодування) бітового потоку відеоданих силами графічних процесорів (англ. GPU).

DXVA призначений для функціонування на IBM PC-сумісних комп'ютерах під управлінням операційних систем сімейства Microsoft Windows і на ігровій консолі Xbox 360. Програмний конвеєр DXVA дозволяє певним ресурсоємним операціям, таким як дискретне косинусне перетворення, компенсація руху і деінтерлейсинг, виконуватися на графічному, а не на центральному процесорі. DXVA 2.0 дозволяє перенаправляти на GPU більшу кількість операцій, включаючи захоплення відео та операції обробки відео.

DXVA працює в з'єднанні з DirectShow, який підтримується відеокартами. DXVA 1.0, який був представлений як стандартний API і був доступний починаючи з Windows 2000, міг використовувати або режим оверлею, або VMR 7/9.[1] DXVA 2.0, доступний тільки починаючи з Windows Vista, інтегрований з мультимедійним фреймворком Media Foundation і використовує відео-рендерер Enhanced Video Renderer .[1]

Огляд

DXVA використовується програмними відеокодеками для визначення специфічного для кожного кодека конвеєра, що необхідно для апаратного декодування і рендеринга відеопотоку цим кодеком. Конвеєр починається з центрального процесора, який виконує парсинг медіа-потоку і його конвертацію в DXVA-сумісні структури. DXVA визначає набір операцій, які можуть бути апаратно прискореними й інтерфейс драйвера пристрою (англ. device driver interface - DDI), завдяки якому визначається, чи може драйвер відеокарти здійснити апаратну обробку цих операцій. Якщо який-небудь кодек використовує дані операції, то він може використовувати ці інтерфейси відео-драйвера для отримання доступу до апаратного прискорення. Якщо ж графічний драйвер не підтримує один або кілька таких інтерфейсів, то обробка цих операцій перенаправляється на центральний процесор. Вже декодоване відео може передаватися на графічний процесор для проведення пост-обробки відео. Результуючий конвеєр доступний в додатках, сумісних з DirectShow.

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

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

DXVA 1.0 використовується на Windows XP і Windows 2000.

DXVA на Windows Vista і новіших ОС

DXVA 2.0 поліпшив реалізацію відео-конвеєра і додав деякі інші DDI, такі як «Capture DDI», призначений для захоплення відео. Дві з трьох первинних DDI, які поставлялися з DXVA 1.0, у другій версії були покращені — для апаратної обробки стала доступна більша кількість операцій. DXVA 2.0 не включає COPP DDI, а замість нього використовує Protected Media Path для захищеного контенту. DXVA 1.0 емулюється з використанням DXVA 2.0.[1] У DXVA 2.0 функції DDI стали доступні безпосередньо для програми-клієнта і не потребують проміжного відео-рендерера.[5] Таким чином, з'явилася можливість створити конвеєри для простого декодування відео (без рендеринга) або пост-процесингу і рендеринга (без декодування). Всі ці можливості вимагають наявності Windows Display Driver Model, який пов'язаний з DirectX 10, а це обмежує список операційних систем з DXVA 2.0 до Windows Vista, Windows Server 2008, Windows 7 і Windows Server 2008 R2.[5][1] DXVA 2.0 підтримує тільки Enhanced Video Renderer як відео-рендерера на Vista і Windows 7 (на Windows XP DXVA-рендерінг можливий з VMR9 і Overlay Mixer[1]). DXVA інтегрований з Media Foundation і дозволяє конвеєрам DXVA розпізнаватися як Media Foundation Transforms (MFTs). Навіть конвеєр декодування і конвеєр пост-процесингу можуть бути розпізнані як MFTs, в результаті чого за допомогою завантажувача топології Media Foundation можна створити повноцінний конвеєр для відтворення відео.

Існує DXVA-HD, який є розвитком DXVA 2.0 і доступний на Windows 7, якщо підтримується WDDM 1.1.[6]

Програмна підтримка

Див. також

Примітки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.