9923986909;rectangle
7994420702;horizontal

Flash

Как использовать аппаратное ускорение видео, обеспечиваемое видеокартой? #

Разные графические процессоры NVIDIA обеспечивают разный уровень ускорения для декодирования видео для разных форматов видео. Посмотреть примерные возможности можно в cравнительных таблицах. Имеется три основных возможных уровня аппаратного ускорения:

MoComp — графический процессор осуществляет компенсацию движения — обработку векторов, описывающих перемещения блоков изображения между кадрами. В зависимости от контента (статичная или динамическая сцена), данная функция составляет до 30% необходимых вычислений для декодирования.

IDCT — графический процессор осуществляет восстановление элементов изображения из описывающей их матрицы коэффициентов. В зависимости от размера элемента и разрешения исходного изображения, данная функция составляет до 50% необходимых вычислений для декодирования. В одних API поддержка IDCT означает выполнение графическим процессором и компенсации движения, в других API эти функции разделены.

VLD — графический процессор осуществляет восстановление описывающей изображение матрицы коэффициентов из исходного видеопотока. В зависимости от кодека, данная функция составляет до 75% необходимых вычислений для декодирования. В большинстве случаев извлеченный из носителя видеопоток отправляется прямиком в графический процессор, осуществляющий все дальнейшие функции по его декодированию и выводу.

Следует отметить, что даже наличие аппаратного ускорения декодирования видео уровня VLD у видеокарты не означает 0% нагрузки на центральный процессор. В любом случае определенную нагрузку создают работа с носителем, декодирование и вывод звука (особенно многоканального), синхронизация звука и видео, вывод меню и субтитров, интерфейс и функции проигрывателя.

Функции аппаратного ускорения видео графических процессоров NVIDIA реализованы в виде ускорения вызовов API DXVA (Windows), XvMC и VDPAU (Unix). Любой декодер/проигрыватель, написанный с использованием этих API, может автоматически или после специальной настройки использовать графический процессор при воспроизведении видео. Вместе с тем, возможность использования аппаратного ускорения зависит от доступной видеопамяти (особенно для декодирования HD видео), разрешения видео, версий драйвера и библиотек API. Проверить поддерживаемые в конкретной системе форматы и разрешения видео для аппаратного декодирования, а также наличие совместимых декодеров можно с помощью утилит DXVAChecker в Windows и vdpauinfo в Linux. Ниже приведены некоторые рекомендации по декодированию видео в различных форматах:

MPEG-2 (DVD, HDTV): функции аппаратного ускорения декодирования через DXVA реализованы в декодерах проигрывателей PowerDVD, WinDVD и Nero ShowTime, а также в декодере, включенном в состав Windows Media Center, Windows Vista и 7. Поддержка ускорения декодирования в Unix через XvMC и VDPAU имеется в проигрывателе Mplayer. Для полного использования возможностей графических процессоров NV40 и более новых необходим драйвер версии 65.ХХ и выше, а PowerDVD и WinDVD должны иметь версии не ниже 7.0 и 8.0 соответственно. NVIDIA также разработала декодер NVIDIA PureVideo Decoder, позволяющий задействовать возможности процессоров GeForce 4 — 7X00 в любых проигрывателях. Декодер является платным, пробная 30-дневная версия доступна на сайте NVIDIA.

WMV, VC-1 (IPTV, Blu-Ray): поддержка аппаратного ускорения декодирования WMV содержится в декодерах Windows Media, устанавливающихся с Windows Media Player версии 10 с обновлением и более новых, и работает для всех проигрывателей, использующих эти декодеры. В Windows Media Player для использования аппаратного ускорения зайдите в меню «Сервис-Параметры-Быстродействие-Дополнительно», и убедитесь, что установлены флажки «Использовать микширование» и «Использовать режим высокого качества». В других проигрывателях необходимо настроить вывод видео через рендер VMR или EVR. Декодеры, поставляемые в составе Windows Media Player версий до 11 включительно могут использовать уровень ускорения максимум IDCT. Проигрыватель Media Player Classic - Home Cinema содержит декодер VC-1 с поддержкой аппаратного ускорения, но требует поддержку видеокартой уровня ускорения VLD.

H.264 (Blu-Ray, HDTV): функции аппаратного ускорения декодирования через DXVA реализованы в декодерах проигрывателей PowerDVD, начиная с версии 7.3, WinDVD, начиная с версии 9.0, Media Player Classic - Home Cinema (требуется поддержка видеокартой уровня ускорения VLD_NoFGT) и в декодере, включенном в состав Windows 7. Для использования возможностей видеопроцессоров NVIDIA по декодированию H.264 необходим драйвер версии 92.ХХ и выше (графических процессоров G84/G86 и более новых — версии 163.ХХ и выше). В проигрывателях необходимо настроить вывод видео через рендер VMR версии 9 или EVR. В Unix поддержку аппаратного ускорения через API VDPAU имеет проигрыватель Mplayer последних SVN версий.

MPEG-4 ASP (DivX): функции аппаратного ускорения реализованы пока только в Unix через API VDPAU (при условии поддержки видеокартой уровня VDPAU C). Поддержку ускорения имеет проигрыватель Mplayer последних SVN версий.

AVC MVC (Blu-Ray 3D): функции аппаратного ускорения через DXVA реализованы в декодерах проигрывателей Cyberlink PowerDVD 10 Ultra 3D Mark II и ArcSoft Total Media Theater 3 Platinum с дополнением 3D Plug-in. Поддержка ускорения доступна при использовании драйвера NVIDIA версии 260.хх или более новой. 

Ряд проигрывателей вместо использования DXVA использует функции Direct3D для ускорения. В настройках QuickTime в панели управления перейдите на закладку «Дополнительно» (Advanced) и поставьте флажок «Включить видеоускорение Direct3D». В проигрывателе Media Player Classic в настройках на закладке «Output» выберите рендер «VMR 9 (renderless)», в разделе «DirectX 7 & 9 settings» выберите «Use texture surfaces and render video in 3D», после чего в выпадающем списке выберите способ, соответствующий возможностям видеокарты. Плагин Adobe Flash, начиная с версии 9.0.115, также может использовать Direct3D (Windows) или OpenGL (Linux) для ускорения вывода видео, функция включена по-умолчанию.

Отдельное исключение составляет ряд видеокарт на базе Riva TNT/TNT2, на которые устанавливался внешний по отношению к видеочипу чип-декодер DVD, использовавшийся через отдельную программу. Такие карты выпускала, в частности, фирма ASUS.

Adobe, Asus, Blu-Ray, DirectX, DVD, DXVA Checker, Flash, Linux, Microsoft, OpenGL, Riva TNT, vdpauinfo, Windows 7, Windows Vista, видео, драйвер, стерео

Почему видеокарта переходит в 3D режим, если не запущено ни одного 3D приложения? #

Видеокарты, у которых отсутствует разделение на режимы производительности, всегда работают с максимальными частотами. Это, например, видеокарты на базе GeForce FX фирмы ASUS и большинство видеокарт на базе графического процессора G92 (GeForce 8800, 9800, GeForce GTS). Проверить наличие/отсутствия разделения на режимы можно, открыв BIOS видеокарты в редакторе NiBiTor. Если на закладке «Clockrates» в таблице частот заполнена значениями лишь одна строка или все строки заполнены одинаковыми значениями — у карты нет разделения режимов.

Предупреждение: нельзя сделать разделение режимов производительности, просто заполнив пустые строки в таблице частот. Разделение режимов требует внесения изменений во множестве мест BIOS, заполнение только таблицы частот не сделает режимы функционирующими и может привести к неработоспособности видеокарты после прошивки модифицированного BIOS.

Если у видеокарты разделение режимов присутствует, переход в режим 3D может быть вызван использованием различных функций видеокарты:

  • Прежде всего следует обратить внимание на заставку — хранитель экрана (screensaver). Некоторые заставки, использующие 3D графику, после нажатия клавиш неправильно завершают работу и остаются «висеть» в оперативной памяти, не проявляясь внешне.
  • Воспроизведение видео. Многие современные проигрыватели и декодеры умеют использовать функции графического процессора по ускорению декодирования видео. В этих функциях могут использоваться 3D блоки карты для аппаратного выполнения сложных операций с видеопотоком, что распознается драйвером как запуск приложения с 3D ускорением. Аппаратное ускорение использует и Adobe Flash Player, начиная с версии 9.0.115.
  • Использование приложений и Web-страниц, основанных на Java. Виртуальная машина Java от Sun может использовать функции Direct3D или OpenGL для отображения некоторых эффектов.
  • Некоторые приложения умеют использовать мощности видеокарты для вычислений с помощью API NVIDIA CUDA, например клиент распределенных вычислений Folding@Home и программы линейки Password Recovery фирмы Elcomsoft.
  • Видеокарты на базе графических процессоров G92 и более новых работают на частотах режима 3D при использовании многомониторности (DualView).
  • Использование режима 120 Гц 3D Vision-совместимых мониторов на рабочем столе также может приводить к работе GPU на повышенной частоте.

3D Vision, Adobe, Asus, CUDA, DirectX, DualView, Flash, GeForce 8800, GeForce 9800, GeForce FX, Java, NiBiTor, OpenGL, видео, монитор

При выводе видео на телевизор или монитор темные оттенки цветов выводятся серыми, светлые — белыми #

Проблема в несовпадении диапазонов цветовых пространств видеоконтента и дисплея, а также настроек декодера, проигрывателя и драйвера видеокарты.

  • Видео, распространяемое на дисках и передаваемое в цифровом телевидении имеет формат цветов YCbCr с динамическим диапазоном 16-235. Видео из Интернет, особенно доставляемое через проигрыватель Flash и записи игрового процесса, имеет формат цветов RGB с динамическим диапазоном 0-255. Некоторые видеозаписи, в основном некачественные «рипы» с дисков имеют формат YCbCr с диапазоном 0-255.
  • Компьютерные мониторы используют цветовое пространство RGB с диапазоном 0-255, телевизоры — RGB с диапазоном 16-235. Некоторые телевизоры (в основном LCD) поддерживают отображение RGB с диапазоном 0-255.

В идеале, динамический диапазон источника видео должен совпадать с диапазоном приемника. На практике декодеры, проигрыватели, драйвер NVIDIA и даже сам телевизор могут применять различные преобразования динамического диапазона, зачастую приводящие к указанной проблеме несоответствия цветов. Ниже следуют основные рекомендации по разным случаям:

  1. Вывод видео с диапазоном 0-255 на компьютерный монитор или телевизор (подключенный через выход VGA или поддерживающий диапазон 0-255 при подключении по HDMI). Обновите драйвер NVIDIA до версии 180.ХХ или новее. В панели драйвера зайдите в раздел «Регулировка параметров цвета для видео» и в опции «Динамический диапазон» задайте диапазон как полный (0-255).
  2. Вывод видео с диапазоном 16-235 на компьютерный монитор или телевизор (подключенный через выход VGA или поддерживающий диапазон 0-255 при подключении по HDMI). Обновите драйвер NVIDIA до версии 180.ХХ или новее и в разделе «Регулировка параметров цвета для видео» панели NVIDIA в опции «Динамический диапазон» задайте диапазон как полный (0-255). Если используется устаревшая видеокарта, воспользуйтесь средствами преобразования декодера ffdshow или проигрывателя Media Player Classic - Home Cinema. В FFDShow в свойствах декодера видео на закладке «Output» отключите все цветовые пространства кроме RGB, и на закладке «RGB conversion» укажите тип устройства вывода «Computer monitor». В MPC-HC в опциях настройте вывод на рендер «VMR renderless» или «EVR CP» и в меню «Play» включите пункт «Shaders» и укажите «16-235 -> 0-255» (требуется поддержка видеокартой пиксельных шейдеров версии 2.0)
  3. Вывод видео с диапазоном 0-255 на телевизор или устройства видеозаписи по аналоговому или HDMI выходу. Воспользуйтесь средствами преобразования декодера ffdshow или проигрывателя Media Player Classic - Home Cinema. В FFDShow в свойствах декодера видео на закладке «Output» отключите все цветовые пространства кроме RGB, и на закладке «RGB conversion» укажите тип устройства вывода «TV/Projector». В MPC-HC настройте вывод на рендер «VMR renderless» или «EVR CP» и в меню «Play» включите пункт «Shaders» и укажите «0-255 -> 16-235» (требуется поддержка видеокартой пиксельных шейдеров версии 2.0).
  4. Вывод видео с диапазоном 16-235 на телевизор или устройства видеозаписи по аналоговому или HDMI выходу. Просто проверьте, что нигде в декодере, проигрывателе и самом приемном устройстве не включены преобразования YCbCr-RGB.

Flash, HDMI, TV, видео, драйвер, контрольная панель, монитор, телевизоры, шейдеры