Jump to content

Компенсация движения X-Video

X-Video Motion Compensation (XvMC) — расширение расширения X video (Xv) для X Window System . XvMC API позволяет видеопрограммам переносить часть процесса декодирования видео на графического процессора видеооборудование . Теоретически этот процесс должен также снизить требования к пропускной способности шины. В настоящее время поддерживаемыми частями, которые XvMC выгружает на графический процессор, являются компенсация движения (mo comp) и обратное дискретное косинусное преобразование (iDCT) для MPEG-2 видео . XvMC также поддерживает разгрузочное декодирование mo comp , iDCT и VLD («Декодирование переменной длины», более известное как «ускорение уровня среза») не только для видео MPEG-2 , но и видео MPEG-4 ASP на VIA Unichrome (S3 Graphics). Серия Chrome) аппаратное обеспечение.

XvMC был первым UNIX-эквивалентом API Microsoft Windows DirectX Video Acceleration (DxVA) . Популярные программные приложения, использующие преимущества XvMC, включают MPlayer , MythTV и xine .

Драйверы устройств [ править ]

Каждому аппаратному видеографическому процессору, поддерживающему ускорение видео XvMC, требуется X11 программный драйвер устройства для включения этих функций.

Производители оборудования [ править ]

Нвидиа [ править ]

В настоящее время доступны три драйвера Nvidia для X11: открытый , но запутанный драйвер только для 2D, поддерживаемый Nvidia, под названием nv, проприетарный двоичный драйвер Nvidia и драйвер с открытым исходным кодом, основанный на обратном проектировании двоичного драйвера, разработанного сообществом Linux, под названием Нуво . Nouveau не занимается поддержкой XvMC. [1] Драйвер 2D nv не поддерживает XvMC, а официальный проприетарный двоичный драйвер Nvidia поддерживает только разгрузку MPEG-2 (mo comp и iDCT) на оборудовании вплоть до серии GeForce 7000 включительно.

ВИА [ править ]

VIA предоставляет драйверы устройств с открытым исходным кодом для некоторого оборудования VIA Unichrome (S3 Graphics Chrome Series) , поддерживающего разгрузку видео MPEG-2 и MPEG-4 ASP .Благодаря уровню декодирования VLD VIA разгружает гораздо больше задач декодирования с процессора, чем графические процессоры, поддерживающие только уровни iDCT или mo comp. Имейте в виду, что не все устройства поддерживаются, и есть некоторые другие предостережения. [2]

Интел [ править ]

Intel предоставляет официальные драйверы устройств с открытым исходным кодом, которые поддерживают разгрузку MPEG-2 (mo comp и iDCT) на интегрированных графических чипах Intel 8xx/9xx. [3]

ATI/AMD [ править ]

Хотя ATI была первым производителем, обеспечившим ускорение MPEG-2 в своих графических платах с графическим процессором Rage 128, она никогда не предоставляла документации по его использованию. Таким образом, XvMC недоступен и, вероятно, никогда не будет.XvMC поддерживается на картах Radeon -4000 (с UVD ) драйвером Catalyst версии 8.10 и выше на экспериментальном уровне (это означает, что он не работает « из коробки »). [4] (См. также «Ускорение битового потока X-Video» ).Поддержка компенсации движения в другом оборудовании ATI/AMD запланирована на будущее. (Теперь все оборудование поддерживает ускорение MPEG-2 на уровнях iDCT и mo comp).

Матрокс [ править ]

На оборудовании Matrox нет драйверов устройств, поддерживающих XvMC (хотя оборудование Matrox Parhelia поддерживает ускорение MPEG-2 на уровне компьютера).

S3 [ править ]

Двоичный драйвер устройства от S3 поддерживает разгрузку MPEG-2 только в исходном драйвере 2.0.16 на графических процессорах Chrome 20. [ нужна ссылка ]

Технический обзор API XvMC [ править ]

Это из компенсации движения X-Vxvideoideo — спецификация API версии 1.0. [5]

XvPort [ править ]

XvMC расширяет расширение X video (Xv) и использует знакомую концепцию XvPort. Порты имеют атрибуты, которые можно устанавливать и запрашивать через Xv. В портах XvMC также могут быть созданы контексты аппаратной компенсации движения для использования с ними. Порты, которые поддерживают XvImages (т. е. имеют кодировку порта «XV_IMAGE», как описано в дополнении к API Xv версии 2.2), можно запросить список поддерживаемых ими типов XvMCSurface. Если они поддерживают какие-либо типы XvMCSurface, для этого порта можно создать XvMCContext.

XvMCContext [ править ]

XvMCContext описывает состояние конвейера компенсации движения . Отдельный XvMCContext может быть создан для использования с одним портом, типом поверхности, типом компенсации движения, комбинацией ширины и высоты. Например, для определенного порта может быть создан контекст, который выполняет компенсацию движения MPEG-2 на поверхностях 720 x 480 4:2:0. После создания контекста ссылка на него подразумевает порт, тип поверхности, размер и тип компенсации движения. Контексты могут быть «прямыми» или «косвенными». X В косвенных контекстах сервер отображения визуализирует все видео, используя данные, переданные ему клиентом. Для прямых контекстов клиентские библиотеки визуализируют видео практически без взаимодействия с сервером отображения X.

XvMCSurfaces [ править ]

XvMCSurfaces — это буферы, в которые может рендериться оборудование компенсации движения . Данные в самих буферах недоступны клиенту и могут храниться в аппаратно-зависимом формате. Для использования в определенном контексте может быть создано любое количество буферов (если позволяют ресурсы).

Видеоконвейер [ править ]

XvMC обеспечивает ускорение видео, начиная с одного из двух мест видеоконвейера . Ускорение, начиная с первой точки, которую мы назовем уровнем «Компенсации движения», начинается после обратного квантования и IDCT в том месте, где компенсация движения должна быть применена . Вторая точка, которую мы будем называть уровнем «IDCT», начинается перед IDCT сразу после обратного квантования.

Рендеринг [ править ]

Рендеринг осуществляется путем предоставления библиотеке целевой XvMCSurface и до двух эталонных XvMCSurface для компенсации движения, буфера блоков 8x8 и командного буфера, который описывает, как использовать блоки 8x8 вместе с векторами компенсации движения для построения данных в целевой XvMCSurface. Когда конвейер запускается на уровне iDCT, Xv выполнит IDCT для блоков перед выполнением компенсации движения. Предусмотрена функция для копирования/наложения части XvMCSurface на рисунок с произвольным масштабированием.

XvMCSubpictures [ править ]

XvMCSubpictures — это отдельные поверхности, которые можно смешивать с целевой поверхностью. Для использования с контекстом может быть создано любое количество XvMCSubpictures (если позволяют ресурсы). Поддерживается как «внутреннее», так и «внешнее» поведение субизображений.

Поддержка программного обеспечения [ править ]

Ускорение XvMC поддерживается в:

XvMC был удален в Mesa 22.3.

которые можно ускорить , Процессы

Несмотря на то, что XvMC в настоящее время поддерживает только аппаратное ускорение компенсации движения (mo comp) и обратное дискретное косинусное преобразование можно передать дополнительные процессы декодирования видео, (iDCT) (и декодирование переменной длины для графического процессора VIA Unichrome), на современные графические процессоры которые можно ускоряется с помощью программ фрагментов графического процессора. В будущем XvMC может быть расширен для поддержки тех же процессов, что и новые конкурирующие API-интерфейсы аппаратного ускорения видео, такие как VDPAU , XvBA и VAAPI :

Текущие ограничения [ править ]

Помимо несоответствия всем функциям и функциям DxVA (который является Microsoft эквивалентом API для Windows ) и отсутствия поддержки других видеоформатов, кроме MPEG-2, в драйверах устройств Linux от Intel и Nvidia , спецификация API XvMC версии 1.0 [7] в настоящее время также имеет следующие ограничения:

  • BOB и onefield — единственные методы деинтерлейсинга , работающие с XvMC.
  • Картинка в картинке (PiP) не работает с XvMC.
  • Покадровое воспроизведение видео может привести к появлению артефактов в XvMC.
  • Редактировать видео с активированным XvMC практически невозможно.
  • Отсутствие прозрачности сети в API XvMC.
  • Отсутствие возможности для клиентского приложения быть полностью независимым от того, какую клиентскую библиотеку необходимо использовать (т. е. унифицированную библиотеку-оболочку).

VA API — это более современный API-интерфейс ускорения видео, который поддерживает функции ускорения видео современных графических процессоров. [8]

См. также [ править ]

Ссылки [ править ]

  1. ^ Нуво Wiki - Матрица функций
  2. ^ «Архивная копия» . Архивировано из оригинала 26 сентября 2015 года . Проверено 26 февраля 2009 г. {{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )
  3. ^ Драйверы графики Linux от Intel — i810 — интегрированные графические чипсеты Intel 8xx
  4. ^ Ускорение битового потока X-Video от AMD // phoronix, 28 октября 2008 г.
  5. ^ Компенсация движения X-Video — спецификация API, версия 1.0. Архивировано 15 мая 2007 г. на Wayback Machine .
  6. ^ Примечания к выпуску MythTV 0.25
  7. ^ Спецификация API XvMC, версия 1.0. Архивировано 15 мая 2007 г. на Wayback Machine.
  8. ^ freedesktop.org - программное обеспечение/vaapi
  9. ^ https://web.archive.org/web/20150305200949/http://www.tuaw.com/2011/01/20/xbmc-for-ios-and-atv2-now-available/ XBMC для iOS и Apple. Телевизор уже доступен
  10. ^ «VideoToolbox — Документация разработчика Apple» . разработчик.apple.com . Проверено 5 августа 2018 г.
  11. ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 9 апреля 2011 года . Проверено 16 января 2012 г. {{cite web}}: CS1 maint: архивная копия как заголовок ( ссылка ) API OpenVideo Decode (OVD)

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9f01254fbec052d742847ced6bc66214__1697067480
URL1:https://arc.ask3.ru/arc/aa/9f/14/9f01254fbec052d742847ced6bc66214.html
Заголовок, (Title) документа по адресу, URL1:
X-Video Motion Compensation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)