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

Прошло немало времени с выпуска производительности и качества декодирования видео на картах ATI и Nvidia. С тех пор компания ATI была куплена AMD, обеими компаниями выпущены новые видеокарты с заявленной улучшенной поддержкой видеодекодирования. Программная поддержка аппаратного декодирования в драйверах постоянно развивается, ситуация с производительностью и качеством может меняться раз в несколько месяцев. Мы в очередной раз решили проверить на практике, насколько хорошо видеочипы AMD и Nvidia справляются с задачами декомпрессии и вывода видеоданных.

Воспроизведение видео высокого разрешения, сжатого при помощи современных форматов сжатия, таких, как H.264, WMV и VC-1, да ещё с большим битрейтом, достаточно требовательно к мощности системы. При проигрывании видеоданных любых форматов в невысоких разрешениях проблем с производительностью не возникает, но некоторые новые центральные процессоры с трудом справляются с программным декодированием современных форматов в высоких разрешениях (1920x1080) при больших битрейтах. До недавних пор основная нагрузка ложилась на CPU, но современные видеокарты берут на себя выполнение всё большей части вычислений по декодированию и постобработке видео. Современные видеочипы AMD и Nvidia содержат специальные выделенные блоки, используемые для задач ускорения декодирования и постобработки, самые последние решения разгружают CPU почти полностью, одна из таких видеокарт участвует в наших тестах.

Для поддержки технологии аппаратной поддержки воспроизведения, DirectX Video Acceleration (DXVA), требуются специальные декодеры (например, Nvidia PureVideo Decoder, CyberLink MPEG2 и H.264 video decoder), и проигрыватели с поддержкой DXVA. На данный момент существуют DXVA-декодеры для аппаратного ускорения MPEG2, WMV, VC-1 и H.264, которыми мы и воспользуемся.

У разных видеочипов уровень поддержки аппаратного ускорения декодирования видео разный, он зависит от модели карты и установленного чипа. Ранее, некоторые low-end решения были ограничены в поддержке декодирования видео высоких разрешений, но складывается обратная ситуация — что у AMD, что у Nvidia. Верхние чипы линеек, R600 и G80, не поддерживают всех возможностей, которыми обладают решения среднего и низшего ценовых диапазонов. В данном обзоре мы рассмотрим на практике сравнительную производительность декодирования и вывода видеоданных разных форматов, начиная с MPEG2 и заканчивая VC-1, на трех разных видеокартах.

Конфигурация тестовой системы, используемое программное обеспечение и настройки

Аппаратная конфигурация тестовой системы:

  • Процессор: AMD Athlon 64 X2 4600+ Socket 939
  • Системная плата: Foxconn WinFast NF4SK8AA-8KRS (Nvidia nForce4 SLI)
  • Оперативная память: 2048 Мб DDR SDRAM PC3200
  • Жесткий диск: Seagate Barracuda 7200.7 120 Gb SATA
  • Операционная система: Microsoft Windows XP Professional SP2/Microsoft Windows Vista Home Premium

Для тестов использовались три видеокарты на чипах двух основных производителей:

  • Видеокарта: ATI RADEON X1900 XT 512MB (625/1450 МГц) , драйвер Catalyst 7.4
  • Видеокарта: Nvidia Geforce 8800 GTX 768MB (575/1800 МГц) , драйвер
  • Видеокарта: Nvidia Geforce 8600 GTS 256MB (675/2000 МГц) , драйвер ForceWare 158.22/ForceWare 158.43

Использовались последние, доступные на момент написания версии драйверов: AMD CATALYST 7.4 для обеих версий операционных систем в случае карты AMD, и ForceWare 158.22 и 158.43 для Windows XP и Windows Vista в случае плат на чипах Nvidia. Тестирование в Vista стало необходимым из-за того, что возможности по аппаратному декодированию чипа G84, применяемого в Geforce 8600 GTS, на данный момент доступны только в этой операционной системе.

К сожалению, на момент проведения тестов у нас не было возможности протестировать и новые видеокарты AMD на чипах их последней линейки — из серии RADEON HD 2000. Хотя, как оказалось по данным наших коллег, RADEON HD 2900 XT не поддерживает всех заявленных возможностей и не слишком отличается от предыдущих решений компании в плане аппаратной поддержки воспроизведения видеоданных. А плат на основе чипов RV610 и RV630 в нашей лаборатории пока нет.

Используемое программное обеспечение (проигрыватели, кодеки):

  • Microsoft Windows Media Player 11.0.5358.4827 (с соответствующим декодером Windows Media Video Decoder 11.0.5358.4827 в комплекте)
  • CyberLink PowerDVD 7.3 Ultra Build 2907 (с декодерами CyberLink 264 Decoder Filter 2.0.1626 и CyberLink Video/SP Filter 8.0.1626)
  • Nvidia PureVideo Decoder 1.02.223 (Nvidia Video Decoder 04.02-223)
  • CoreAVC DirectShow Video Decoder 1.3.0.0

В качестве основных декодеров для MPEG2 и H.264 были выбраны решения производства CyberLink из состава PowerDVD 7.3 Ultra, так как этот продукт является одним из наиболее распространенных проигрывателей, вместе с WinDVD и Windows Media Player, а также поддерживает аппаратное ускорение на всех видеокартах, в том числе самых новейших — Geforce 8600 GTS. В настройках PowerDVD и соответствующего декодера включалось аппаратное ускорение («Enable hardware acceleration» и «Use DXVA»), в AMD CATALYST Control Center был включен пункт «Pulldown Detection», в панели управления Nvidia ForceWare — «Use inverse telecine», остальное оставлено по-умолчанию. Основные настройки производительности Windows Media Player 11, использованные при тестировании, приведены на скриншоте:

«High quality mode» в настройках WMP отвечает за использование Video Mixing Renderer 9 (VMR9), тестирование производительности проводилось в разрешении 1920x1080 пикселей. Для декодирования WMV и VC-1 видео использовался декодер Windows Media Video Decoder, для H.264 — CyberLink 264 Decoder Filter и CoreAVC DirectShow Video Decoder, а для MPEG2 — Nvidia Video Decoder и CyberLink Video/SP Filter.

Список видеороликов, используемых в тестах

Видеофайл Формат Разрешение, пикс HD формат Частота кадров, FPS Битрейт, Мбит/с
20070111_1659.TS H.264 1920x1080 1080i 24 8
biohazard2_1080p.mp4 H.264 1920x1080 1080p 24 8
cornell_m1080p.mov.mp4 H.264 1920x1080 1080p 30 9
WG30secSpot_AVC_HDTV.mp4 H.264 1920x1080 1080p 30 16
MPEG2_24Mbps_final.mkv MPEG2 1920x1080 1080p 25 24
emotion.mpg MPEG2 1920x1080 1080i 30 18
Dolphins_1080.wmv WMV9 1440x1080 1080p 24 8
MP10_Striker_10mbps.wmv WMV9 1920x1080 1080p 24 10
Taxi3_WMVHD_Extract.wmv WMV9 1440x816 - 24 8
FlightSimX_720p60_51_15Mbps.wmv VC-1 1280x720 720p 60 15
gthd_demo_replay_720p.wmv VC-1 1280x720 720p 60 5

В состав тестового материала вошли ролики всех востребованных видеоформатов, в двух распространенных разрешениях: 1280x720 и 1920x1080, и пара нестандартных. От роликов с меньшим разрешением было решено отказаться полностью, так как, если исключить некоторые вопросы качества, связанные с применением адаптивного деинтерлейсинга для MPEG2, проблем с проигрыванием такого контента сейчас нет.

Тесты проводились в разрешении 1920x1080 при помощи специальной утилиты с использованием ActiveX компоненты Windows Media Player 11, позволяющей замерять использование ресурсов процессора во время проигрывания, а также получать другую статистику WMP11. Замерялась средняя загрузка центрального процессора системы при проигрывании каждого из роликов. Проводился также сбор таких значений, как количество пропущенных кадров в секунду и достигнутая при проигрывании частота кадров, но эти значения на разных сочетаниях роликов и декодеров получаются некорректными, и их применение затруднено. А средняя доля загрузки CPU принята для определения скоростных характеристик аппаратной поддержки декодирования видео решениями AMD и Nvidia.

Следует помнить, что во время любых тестов работают несколько фоновых процессов, системных и других. Поэтому нужно учитывать возможность небольших колебаний результатов загрузки CPU и соответствующую погрешность измерения. Иными словами, разница до 3% не говорит о преимуществе того или иного решения, так как может являться следствием погрешности измерения.

Проблемы тестирования видеодекодирования

Подобные тесты проводить непросто, особенно это относится к сравнительно новым видеоформатам. Аппаратное ускорение работает не всегда идеально, не со всеми декодерами и типами видеоданных. Так, изначально сразу несколько производителей плееров и декодеров H.264 объявили о поддержке ускорения в решениях. На деле это были, скорее, рекламные заявления, и ускорение H.264 или не работало вовсе или работало кое-как.

Например, в своё время на рынке появилась версия PowerDVD 7.0 с поддержкой декодирования H.264, но не работающим аппаратным ускорением, версия того декодера была 1.6.0.1528. При использовании этого декодера ускорение включается, но на деле не работает. И в , к сожалению, использовалась именно эта версия, поэтому и результаты тогда получились некорректные.

Кроме того, на разных моделях видеокарт одной и той же компании ускорение может работать, а может не работать. Особенно это относится к low-end и mid-end решениям прошлых поколений, таких как Geforce 6600 и RADEON X1300. Бывали случаи, когда при выполнении одинаковой последовательности действий, ускорение включалось на одной карте, но не включалось на другой. Это ещё не все проблемы аппаратного декодирования, так, H.264 декодер CyberLink в DXVA ускоренном режиме всегда отключает деблокинг (удаление артефактов блочности изображения), что хорошо заметно на плавных цветовых переходах. и стоит отметить, что некоторые версии декодеров могли работать в аппаратно ускоренном режиме на видеокартах одного производителя, и не работать на видеокартах другого, в зависимости от версий драйверов.

Но это ещё не всё. Ведь видеоданные бывают разными: записанными на диски, в виде файлов, потокового видео, передающегося в транспортном потоке со спутников. Для работы с разными форматами существует множество плееров, и универсальные декодеры должны уметь работать в различных программах, предназначенных для проигрывания разных типов видео. Но некоторые распространенные декодеры (например, Nero Video Decoder) работают только в плеерах, что лишает их применение смысла и делает невозможным использование в нашем тесте. Из универсальных H.264 декодеров можно отметить три распространенных: ffdshow, CoreAVC и CyberLink, все они могут работать в большинстве плееров и с большим количеством разнообразных типов видео. Аппаратное ускорение из этой тройки поддерживает лишь CyberLink, CoreAVC является самым быстрым программным декодером, а ffdshow бесплатен и весьма широко распространен.

Еще одна трудность тестирования проигрывания видео высокого разрешения в слабой распространенности соответствующих оптических приводов и дисков. Так, в наших условиях отсутствует возможность тестирования Blu-ray и HD-DVD дисков, да еще с выводом изображения на HD-монитор с поддержкой HDCP. Поэтому, пока мы решили ограничиться тестами видеороликов разных форматов и битрейтов, которые вполне отражают нагрузку на CPU и GPU при воспроизведении указанных выше дисков, кроме, разве что, формата VC-1.

В прошлом обзоре, помимо производительности решений с поддержкой технологий Avivo и PureVideo, мы затрагивали и вопросы качества изображения. На примере большинства протестированных форматов мы увидели, что заметных проблем качества нет. Например, декодеры H.264 обеспечивают идентичное качество, отличия могут быть лишь в настройках яркости, насыщенности, контрастности и отсутствии деблокинга в режиме аппаратного ускорения.

По наиболее проблемному, с точки зрения качества, формату MPEG2 планировалось исследование в специальном тесте HQV, разработанном компанией Silicon Optix и предназначенном для анализа качества декодирования MPEG2 данных. Один из больших недостатков этого теста — субъективность оценки, так как она возлагается на тестера, который должен определить качество изображения в каждом из подтестов, сравнивая полученную картинку с эталоном.

Но самым большим недостатком теста, на наш взгляд, является то, что оба производителя GPU оптимизировали драйверы под него и сейчас показывают весьма близкие результаты, едва не дотягивающие до максимально возможных. Разница в количестве очков, заработанных последними решениями AMD и Nvidia, в этом тесте весьма небольшая, смысла в подобном исследовании качества очень мало. Но, в любом случае, можно твердо сказать, что решения AMD и Nvidia с аппаратной поддержкой декодирования MPEG2 обеспечивают значительно лучшее качество изображения, по сравнению с чисто программным декодированием.

Результаты тестирования

Переходим к главному — тестам производительности. Проигрывание MPEG2 данных в низких разрешениях давно не представляет серьезных проблем для современных систем с мощными CPU и поддержкой со стороны GPU, декодирование таких данных загружает центральный процессор от силы на 5-10%. Именно поэтому в данном исследовании основное внимание было уделено современным форматам: H.264, WMV9, VC-1, а MPEG2 был представлен исключительно в виде роликов высокого разрешения и большого битрейта.

Тестирование мы начинаем с интересного для нас формата — H.264. Системы тестировались с применением двух декодеров — полностью программного CoreAVC Pro, в котором нет поддержки аппаратного ускорения видеочипами, и поддерживающем DXVA ускорение CyberLink 264 Decoder Filter из комплекта PowerDVD 7.3 Ultra. Для сравнения приведена и цифра загрузки процессора при работе программного декодера H.264 от того CyberLink. Тесты с аппаратным ускорением проводились отдельно для Windows XP и Vista.

Формат H.264

Первые полученные результаты показывают, что программное декодирование формата H.264 в высоком разрешении задействует серьезные мощности не самого слабого двухъядерного процессора. Конечно, рывков и пропуска кадров нет, но загрузка двух ядер более чем на 50% — это серьезно. Программный CoreAVC чуть быстрее CyberLink в таких условиях, но разница не слишком велика. Декодер CyberLink отлично работает на всех видеокартах, загрузка процессора в Vista на G80 и R580 оказывается чуть больше, чем в Windows XP. Вероятно, влияет 3D-рендеринг интерфейса в новой операционной системе Microsoft.

Похоже, что аппаратная поддержка декодирования на G80 работает лучше, чем на R580, хотя разница в загрузке CPU и не очень большая, но она есть. Гораздо интереснее ситуация с видеокартой на основе нового чипа Nvidia G84. Если в Windows XP ускорение, похоже, не работает вовсе (загрузка процессора почти, как в случае полностью программного декодирования, а изображение отсутствует), то в Vista он не вырывается вперед, а показывает невиданные ранее результаты. Загрузка CPU в этом случае составляет менее 8%! Видимо, действительно в новые чипы включены мощные выделенные блоки по обработке видеоданных…

Второй ролик формата H.264 отличается от первого тем, что он прогрессивный и не использует интерлейсинг. Посмотрим, будет ли отличаться производительность при использовании разных декодеров и видеокарт в этот раз.

Нагрузка на CPU без необходимости применения деинтерлейсинга снизилась во всех режимах, кроме аппаратно ускоренного на G84 в Windows Vista. Впрочем, 8 или 9% — всё равно небольшая разница, которая могла быть получена в результате погрешностей при тестировании. В этот раз CoreAVC был более эффективен, по сравнению с программным режимом CyberLink, он почти догнал аппаратно ускоренный режим на видеокарте производства AMD.

Декодирование в Vista опять отнимает больше ресурсов CPU, на Nvidia G80 разница заметна больше, видимо, у них недостаточно хорошо отлажены драйверы для новой операционной системы. G84 опять показывает ту же картину — отсутствие аппаратной поддержки декодирования в XP и очень эффективное её использование в Vista. Обратим внимание на еще один ролик, который имеет чуть больший битрейт.

Ситуация практически полностью повторяет предыдущую, только нагрузка на центральный процессор выше во всех режимах. Программное декодирование CoreAVC гораздо более эффективно, чем CyberLink. Geforce 8600 GTS показывает привычный для H.264 результат — всего лишь 8% загрузки CPU, но только в Vista. В разделе, посвященном H.264, нам остаётся рассмотреть результаты, показанные при проигрывании еще одного ролика, имеющего в два раза больший битрейт, по сравнению с предыдущими.

В очередной раз видим почти всё то же самое, CoreAVC чуть более эффективен в программном режиме, Vista чуть более требовательна к производительности CPU, у G84 в новой ОС эталонный результат — около 8% загрузки тестового процессора, зато в Windows XP ускорение не работает вовсе. И у парочки G80 и R580 нет отличий — первый чуть лучше справляется с декодированием.

Подведем краткий итог по декодированию роликов формата H.264 — с большим отрывом побеждает новое mid-end решение Nvidia, хотя и с одной оговоркой — пока ускорение корректно работает только в Windows Vista. Далее с большим отрывом идёт Geforce 8800 GTX, а еще чуть медленнее справляется с задачей решение AMD, основанное на видеочипе прошлого поколения. CoreAVC показывает неплохие результаты, зачастую на уровне режимов с аппаратной поддержкой со стороны R580, а программное декодирование в CyberLink требует слишком больших ресурсов CPU.

Формат MPEG2

Переходим к MPEG2, самому старому и хорошо знакомому формату из присутствующих в наших тестах. Мы не стали использовать ролики в распространенном DVD-разрешении, начали сразу с 1920x1080, усложнив задачу выбором тестового материала с наличием двух полей (интерлейсинга). При декодировании и проигрывании таких форматов от декодеров, прежде всего, требуется качественная и быстрая постобработка — деинтерлейсинг. Посмотрим, как с ней справляются наши испытуемые. В качестве декодеров использовались PowerDVD и PureVideo, первый — и в XP, и в Vista, он был протестирован и в программном режиме.

Этот ролик использует интерлейсинг и отличается довольно большим битрейтом — 18 Мбит/с. По результатам хорошо видно, что MPEG2 является слишком простым форматом для современных центральных процессоров и видеочипов, декодирование такого потока с большим битрейтом и разрешением 1920х1080 не является для них сколько-нибудь серьезной задачей.

Все аппаратно ускоренные режимы показали весьма близкие к друг другу результаты, используя в среднем примерно в два раза меньше ресурсов CPU, по сравнению с программным декодированием при помощи DirectShow фильтра от CyberLink. Интересно, что PureVideo на Nvidia оказывался менее эффективным, по сравнению с CyberLink, а на AMD — наоборот. Возможно, виновата разница в качестве постобработки. Обе видеокарты Nvidia выполняют работу по аппаратной поддержке декодирования несколько эффективнее, чем RADEON X1900 XT. Windows Vista и в этот раз увеличивает нагрузку на CPU во всех режимах, хотя и не так сильно.

Рассмотрим результаты, полученные при тестировании второго MPEG2 ролика, прогрессивного, с самым высоким HD-разрешением и еще большим битрейтом.

Этот ролик не тестировался в Vista, да с ней и так всё понятно, результаты чуть хуже, чем в Windows XP. Становится понятно, что не из-за битрейта ролики требовательны к ресурсам для декодирования, а из-за интерлейсинга. Видимо, как раз эффективный деинтерлейсинг и вызывает больше всего проблем у видеокарт. В этот раз R580 и G80 показали результаты одного уровня, а G84 удалось чуть-чуть вырваться вперед. Но на фоне программного декодирования все показанные результаты идеальны.

Выводы по тестированию MPEG2 роликов просты — цифры показывают, что с производительностью проблем нет, загрузка CPU с полностью программными алгоритмами не превышает 20-30%, а с использованием возможностей современных видеочипов эта цифра смешна — 10-15%.

Видеочипы Nvidia справляются с задачей чуть лучше, независимо от используемого декодера, хотя PureVideo может иметь качественные преимущества, которые в данном материале не исследуются. Оба решения Nvidia, G80 и G84, показывают примерно одинаковую загрузку CPU, а RADEON X1900 XT отстает от них немного. Во всех случаях, включая программное декодирование, производительности используемого в тестах процессора было достаточно для декодирования, деинтерлейсинга и вывода MPEG2 видео на экран.

Формат WMV9

Диаграммы с результатами тестов по декодированию WMV будут проще, так как использовался единственный декодер от Microsoft. Он поставляется в комплекте вместе с Windows Media Player и является наиболее распространенным декодером WMV. И хотя в том же ffdshow есть альтернативный, смысла в его использовании и тестировании немного.

Первый WMV HD ролик имеет не совсем стандартное разрешение 1440x1080, он закодирован со средним битрейтом 8 Мбит/с. Как и в предыдущих случаях, декодирование тестового ролика не требует слишком больших ресурсов, расходуя чуть больше четверти мощностей тестового процессора в полностью программном режиме. Загрузка центрального процессора при проигрывании этого ролика оказалась чуть выше у видеокарты на базе чипа AMD, по сравнению с Geforce 8800, хотя разница весьма небольшая. В данном случае проблем с проигрыванием не наблюдалось, только результат G84 показал, что этот чип пока не поддерживает ускорение WMV в Windows XP.

Посмотрим на другие ролики, следующий имеет больший битрейт и полноценное разрешение 1920x1080. Возможно, на таком материале будут показаны несколько иные результаты.

Итак, самый сложный WMV-ролик с большим битрейтом отнимает у CPU лишь чуть-чуть больше ресурсов. Видно, что результат G84 совпадает с цифрой, полученной при программном декодировании, а G80 ускоряет WMV, примерно в полтора раза снижая нагрузку на CPU.

Видеокарта AMD в данном случае оплошала, при запуске проигрывания этого ролика с включенным аппаратным ускорением плеер Windows Media Player 11 (как и наша тестовая утилита, использующая соответствующий ActiveX компонент) вываливается с ошибкой. Вероятно, в этом виноваты ошибки в драйверах, так как при отключенном DXVA ускорении ролик проигрывается нормально.

Нам остаётся рассмотреть результаты, полученные при тестировании последнего WMV ролика, который имеет средний битрейт 8 Мбит/с и нестандартное разрешение 1440x816 пикселей.

Эти результаты более любопытны. Во всех режимах показана почти одинаковая загрузка центрального процессора. Похоже, что по каким-то странным причинам (нестандартное разрешение?), DXVA ускорение формата WMV9 в данном случае не работает на всех протестированных видеокартах. Больше сказать нечего.

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

Geforce 8800 GTX и RADEON X1900 XT показали близкие результаты, но видеокарта AMD «отличилась» невозможностью проигрывания одного из тестовых роликов, вероятно, это проблема конкретной версии драйверов или сочетания тестовой конфигурации. В остальных случаях она незначительно отставала от Geforce 8800 GTX. Аппаратное ускорение видеоформата WMV на Geforce 8600 GTS в Windows XP пока не работает, ждём обновления драйверов.

Формат VC-1

Формат WVC1, также известный как «Windows Media Video 9 Advanced Profile», соответствует «Advanced Profile» стандарта VC-1. Этот формат поддерживает как прогрессивные видеоданные, так и данные, содержащие два поля. Этот формат гораздо более эффективен по сравнению с WMV, особенно при сжатии видеоданных с двумя полями (interlaced).

К сожалению, нам не удалось найти в свободном доступе ролики в формате VC-1 с разрешением 1920х1080 и большим битрейтом, а использование коммерческих дисков Blu-ray или HD DVD было невозможным из-за отсутствия у нас соответствующего оборудования. Поэтому пришлось ограничиться WVC1 данными в разрешении 1280x720, для тестов были выбраны два ролика с 60 кадрами (не полями) в секунду.

Похоже, что родной декодер от Microsoft или драйверы AMD и Nvidia не могут использовать аппаратное ускорение при проигрывании формата WVC1. Все видеокарты и программное декодирование показывают практически равные результаты. Которые говорят об очень высокой требовательности формата VC-1 в таких условиях: 1280x720 при 60 кадрах в секунду. Представляете, что будет при 1920x1080? К сожалению, у нас нет такого ролика, но посмотрим на цифры, полученные при проигрывании второго:

Так и есть, цифры опять весьма близки, соответственно, и вывод о WVC1 формате сделать несложно — на данный момент нет возможности аппаратного ускорения этого формата в контейнере WMV. Возможно, декодер от CyberLink умеет использовать аппаратное ускорение таких данных с HD-DVD и Blu-ray дисков, но по указанным выше причинам мы их не тестировали.

Выводы

После проведенных тестов аппаратного ускорения декодирования разных форматов видео, можно уверенно сказать, что современные видеокарты способны успешно ускорять воспроизведение видео в большинстве форматов, в том числе высокого разрешения и битрейта, не говоря о старых данных вроде DVD. Современный уровень программной и аппаратной поддержки позволяет декодировать любой формат с разрешением 1920х1080 без каких-либо проблем с производительностью.

Общий вывод — тестовая система смогла справиться с проигрыванием всех роликов, но не все декодеры и видеокарты показывают равные результаты. Так, при декодировании файлов формата H.264, декодер CoreAVC в некоторых случаях составляет успешную конкуренцию аппаратно ускоренному решению CyberLink. Зато последний поддерживает аппаратное ускорение, особенно эффективное на видеокарте Geforce 8600 GTS в Windows Vista. MPEG2 декодеры показали близкие результаты — и CyberLink и PureVideo обеспечивает эффективное аппаратно ускоренное проигрывание MPEG2 роликов.

Тестовый двухъядерный процессор в программном режиме прекрасно справился с воспроизведением всех видеороликов самых распространенных форматов, разных разрешений и битрейтов, потратив на их воспроизведение чуть больше половины мощностей в пиковом случае. Получается, что сравнение видеокарт по производительности и трате ресурсов на декодирование видео имеет мало практического смысла, разве что в случае устаревших CPU или при задаче снижения энергопотребления системы, например, медиацентра. Аппаратно ускоренные режимы показывают значительное снижение нагрузки на центральный процессор, видеокарта на основе чипа Nvidia G84 особенно хорошо справляется с проигрыванием H.264 формата (пока только в Vista), а Geforce 8800 GTX в среднем чуть-чуть опережает решение AMD предыдущего поколения — RADEON X1900 XT.

Выводы о качестве будут очень краткими. Специального исследования по этому вопросу в рамках материала не проводилось, но на RADEON X1900 XT возникли определенные проблемы. Так, при попытке проигрывания ролика MP10_Striker_10mbps.wmv с включенным DXVA-ускорением, в Windows Media Player 11 возникает ошибка приложения wmplayer.exe, после которой проигрывание ролика невозможно. Также в тестах планировалось использование MPEG2 ролика mallard.m2t с большим битрейтом, с которым у решения AMD также возникли проблемы — вместо картинки на экране было видно несколько разноцветных полос. При отключенном DXVA ускорении оба ролика проигрываются нормально, что говорит о возможных проблемах с используемой версией драйверов AMD.

Почему тормозит HD видео? Если видеокарта вашего ПК не оснащена аппаратной обработкой видео высокой четкости, то основная работа ложится на центральный процессор (CPU), в результате видеопоток не успевает обрабатываться и hd видео «тормозит» и «зависает», при этом загрузка CPU достигает 100%. При сборке домашнего кинотеатра можно обзавестись процессором со встроенным видеоядром. Оно способно обеспечить нормальную производительность в не слишком технологически сложных играх, а также гарантирует комфортную работу и при просмотре HD видео. Здесь надо напомнить, что для задействования возможностей встроенного графического ядра процессора от Intel, вам понадобится материнская плата на чипсете H55 или H57. Процессор работает и в материнских платах чипсета P55, но встроенное видеоядро не будет активно. Аналогичные решения предоставляет и компания AMD.

В ядрах CPU Sandy Bridge Intel добавила модуль Intel Clear Video HD. Предыдущие поколения графики Intel, выполняли ускорение, но была реализована использованием шейдеров GPU (этого хватало только для 720p видео). Загрузка процессора при использовании DXVA (технология, используемая аппаратное декодирование HD-видео) составляет несколько процентов, при этом DXVA обеспечивает высокое качество деинтерлейсинга (получение кадра из двух полукадров).

Для того, чтобы определить, почему тормозит hd видео, необходимо учитывать следующее:

  • Конфигурация вашего компьютера (CPU, GPU)
  • Характеристики видеокарты
  • Используемые в системе кодеки
  • Особенности экрана ТВ/монитора
  • Характеристики плеера (фильтры)
  • Битрейт видео/аудио потока
  • Размер воспроизводимого файла

CPU становится узким местом когда используется deinterlacing, но программный deintarlace съедает все остатки ресурсов при использовании слабых машин, так как качественный deinterlace, без замыливания и с сохранением fps, тяжеловаты для CPU. Выход из положения – использовать аппаратное декодирование, которое предлагают современные GPU.

Обладатели одноядерных компьютеров на Intel Atom (например N 270, N 450), благодаря технологии Hyper-Threading для комфортного просмотра HD видео могут использовать декодер H.264 (этот кодек используется для большинства видео с HD разрешением), поддерживающий многопоточную обработку, такой как CoreAVC. Используется данный декодер к примеру в KMPlayer и Media Player Classic НС .

Media Player Classic Home Cinema — лучший плеер для HD-видео

Достоинства:

  • Всеядный, имеет множество встроенных кодеков (с поддержкой DXVA).
  • Можно добавлять внешние кодеки, например кодек MS H.264 (View/Options/External Filters – добавить MS DTV-DVD Video Decoder, сделать его приоритетным (отметить галочкой Prefer), в Internal Filters необходимо отключить встроенный H264).
  • Удобный интерфейс, отличная функциональность.

Современные видеокарты справляются с воспроизведением HD видео лучше многих CPU, так как имеют на борту встроенный аппаратный декодер видео. К сожалению, некоторые графические чипы, такие как Intel GМA 950 и GМA 3100 лишены такого модуля, и всю работу по декодированию видео придется выполнять CPU, поэтому не удивительно что на этих системах тормозит hd видео.

Видеокарты с аппаратным декодером видео:

  • AТI Radeon НD, начиная с линейкй процессоров AMD Brazos с аппаратным декодированием и выше;
  • NVIDIA ION (GeForce 9400М), ION 2 и NVIDIA 8800GT и старше;
  • Intel GМA 500 (платформа Atom Z) и выше.

Чтобы проверить поддержку аппаратного декодирования вашей видеокартой можно воспользоваться программой DXVA Checker .

Cитуации, когда тормрзит HD видео знакомы многим, но гораздо менее известен тот факт, что в Windows существуют специальные механизмы, предназначенные решать проблему потребления системных ресурсов при просмотре на ПК видео высокой чёткости. В операционную систему Windows 7 встроен специальный набор функций, называемый DirectX Video Acceleration (DXVA). Именно он позволяет при просмотре фильмов в HD качестве на ПК задействовать для декодирования видео аппаратные ресурсы видеокарты, тем самым разгружая центральный процессор. После включения DXVA HD-видео начинает воспроизводиться плавно и без «тормозов», а нагрузка на ЦП заметно падает. Проверить поддерживается ли аппаратное ускорение видео или нет, и включено ли оно, можно очень просто. Например, с помощью популярного видеоплееера Media Player Classic. Откройте с его помощью видеофайл MKV или MP4 и посмотрите на экран. Если внизу окна программы рядом с надписью Воспроизведение (Playing) присутствует аббревиатура DXVA , то всё нормально — аппаратное ускорение поддерживается и включено. Ну а если нет, то можно попытаться исправить ситуацию, переустановив кодеки и включив при их установке необходимые опции.

В Windows 7 декодирование НD-видео с участием видеокарты поддерживается по умолчанию, но если вы используете другую ОС (например Windows XP) или хотите использовать альтернативный медиа плеер, то для воспроизведения можете использовать вышеупомянутый Media Player Classic Ноmе Cinema для проигрывания НD видео (AVI, MPEG-4 и MKV) или KMPlayer. Если вы намереваетесь смотреть HD-контент на Blu-Ray носителях, то одним из лучших программных продуктов для отображения видео с качеством 1080p будет CyberLiпk PowerDVD Ultra 11 (в конце статьи). На собственном опыте могу сказать, что лишь эта программа позволит без лишних хлопот воспроизвести Вlu-гау диск через НDМI-порт на вашем телевизоре (мониторе) с поддержкой Full НD. После установки CyberLiпk PowerDVD Ultra 3D зайдите в меню «Настройки — Видео» и включите «Аппаратное ускорение» .

Как избавиться от торможения HD видео на старых и слабых машинах, в том числе ноутбуках, нетбуках и неттопах.

  1. Указать в настройках плеера пропускать кадры, дабы избежать наложение. Стандартное количество кадров в секунду — 25, если их будет 23-24, вы этого не заметите.
  2. Отключить функцию деблокинга (сглаживание видео) в настройках видеоплеера.
  3. Прекрасно помогает Haali Media Splitter (встроен в The KMPlayer), необходимо лишь в разделе Фильтры на вкладке Сплиттеры (Haali и тд.) указать приоритет на необходимых расширениях видеофайлов.
  4. Использовать видеокарту для обработки видео. Обратите ваше внимание, чтобы задействовать возможности CUDA (если вы владелец видеокарты NVIDIA ) необходимо активировать LAV Video Decoder (CUDA) в списке доступных декодеров видео вашего плеера или пакета кодеков, а владельцам владельцам видеокарт AMD задействовать декодер CLV Video Decoder (DXVA) .

Кодеки для HD-видео

ffmpeg DXVA.

Входит в состав Media Player Classic Home Cinema . MPC-HC — это специальное издание Media Player Classic с интегрированными кодеками и дополнительными функциями. MPC-HC не регистрирует кодеков в системе, задействуя при воспроизведении DirectShow, что позволяет использовать установленные кодеки. Управлять встроенными фильтрами можно из следующего меню: View — Options — Internal filters . H.264 DXVA ffmpeg и VC1 DXVA ffmpeg с активированным DXVA и без него. Если включены оба варианта встроенных фильтров — DXVA и стандартный, то задействуется DXVA. Настройку кодеков необходимо производить открыв видео, и из контекстного меню выбрать свойства необходимого кодека — Filters — , также можно получить к ним доступ из меню Пуск, если вы используете пакет кодеков K-Lite и входящий в его состав MPC-HC. Для ffmpeg можно задать следующие параметры: число нитей, режим постобработки и посмотреть статус DXVA, активирован ли он или нет. После изменения параметров перезапустите видео, чтобы изменения вступили в силу.

DivX Codec Pack

Используется Media Player Classic или MPC-HC. Установите DivX Plus Codec Pack (из пакета устанавливайте только кодеки), что даст вашему ПК поддержку MKV. Чтобы исключить возможность подключения альтернативного кодека в вашей системе, применяем ручное подключение внешних фильтров, в этом случае кодек H.264 из DivX Codec Pack будет гарантировано использован. Следуем в меню плеера MPC-HC: View — Options — External filters , далее нажимаем «Add Filter» и выбираем DivX h.264 из списка кодеков зарегистрированных в системе, отдавая ему приоритет (поставить галочку Prefer, справа от списка фильтров). Настройки DivX Codec Pack доступны через меню Пуск — Divx — Divx Codec — Decoder Configuration Utility или через свойства фильтров в MPC (контекстное меню Filters — ). В свойствах можно регулировать многопоточность и постобработку.

Решил установить новый K-Lite Codec Pack на свой компьютер. Всё как обычно: удаляешь предыдущий пакет, скачиваешь с сайта разработчика новый и устанавливаешь путём нажатия заветной кнопки «далее».

В процессе установки возникли вопросы, которые мне показались интересными (основы знал, но решил углубиться):

«Чем отличается аппаратное ускорение в процессе обработки видеопотока от программного? И стоит ли его включать в настройках кодеков?»

Второй момент: «Захотелось узнать про LAV VIDEO — NVIDIA CUVID и DXVA2 NATIVE — второй в контекстном меню выбора пакета кодеков K-Lite Codec Pack (для моей видеокарты GeForce GTX 750Ti). Что это за звери?»


Всю информацию, о которой здесь напишу, за малым исключением я почерпнул из хелпа к программе. Если нажать во время установки K-Lite Codec Pack на кнопочку Help в левом нижнем углу, то можно ознакомиться с оригиналом. В английском будучи ни шатко ни валко, попытаюсь передать смысл, пусть и читателям будет понятнее, с чем имеют дело во время настройки данного пункта K-Lite Codec Pack.

Которое мы смотрим в любом из проигрывателей будь то на компьютере, телевизоре, DVD плеере находится в сжатом виде. Обычно в процессе декодирования цифрового видеопотока участвует центральный процессор (CPU). Такой эффект мы получаем при настройках по-умолчанию.

Если же задействовать аппаратную обработку, то в данный процесс включится видеочип (видеокарта). Это тот же процессор, только специализирован на обработке видеосигнала. В свою очередь включение в процесс декодинга видеокарты очень сильно разгружает центральный процессор.

Когда может возникнуть необходимость включения аппаратной обработки видео? В первую очередь — это очень слабый центральный процессор (или процессор, который постоянно тормозит при просмотре видео). В других случаях включать аппаратную обработку видео не рекомендуется — качество картинки от использования данной опции не станет. Более того, включение аппаратной обработки видео может привести к проблемам во время воспроизведения. Поэтому очень важно следить за актуальностью драйверов для видеокарты.

Пакет кодеков K-Lite Codec Pack 10.x.x имеет возможность работать со следующими типами алгоритмов:

Уже по названию можно определить принадлежность того или иного способа акселерации к конкретному производителю видеочипов. Первые три созданы MicroSoft и работают практически со всеми видеочипами, 4-ый только с чипами NVidia, 5-ый — с чипами Intel (Sandy Bridge, Ivy Bridge, Haswell и новее). При этом 1-ый и второй отличается тем, что старший (1) для Windows XP, второй — для Vista и выше).

Далее небольшая помощь в выборе аппаратного ускорения.

Вот некоторые правила, которые помогут решить, какой вариант аппаратного ускорения выбрать. Они перечислены в порядке или важности.
Опять же, если на вашем устройстве быстрый процессор, то в аппаратном ускорении нет нужды. Рекомендуется выбрать опцию «Использовать программное обеспечение для декодирования».

  • Одной из причин для использования аппаратного может быть ситуация, если вам нужно больше ресурсов процессора для какой-то другой задачи. Такой может быть выполнение тяжёлой пост-обработки (обработка изображения после получения кадра).
  • Еще одна причина для использования аппаратного ускорения — использование мобильного устройства (ноутбук / планшет). Аппаратное ускорение может уменьшить потребление энергии. Это может увеличить время автономной работы и уменьшить огонь и шум от вентиляторов.
  • На вашем устройстве поддерживается QuickSync . Intel QuickSync является быстрый аппаратный декодер. Функция может быть полезна, если необходимо декодировать быстрее, чем в режиме реального времени, например, при перекодировании видео. Если вас интересует только нормального воспроизведения, то есть небольшое различие между QuickSync и DXVA2.
    Важно, скачать и установить драйвер с сайта производителя (Intel), так как драйвера, установленные через службу обновления Windows могут не содержать необходимые компоненты Quicksync. Это касается и драйверов Nvidia.
  • У вас есть видеокарта NVIDIA. Используйте либо CUVID или DXVA2. NVIDIA CUVID является надежным аппаратным декодером и предлагает хорошее качество деинтерлейсинга. Недостаток CUVID в том, что она заставляет GPU работать в режиме высокой производительности, которая увеличивает потребление энергии. DXVA2 не имеет такого недостатка.
  • Используйте DXVA2 copy-back, если вам нужно сделать обработку видео после декодирования.
  • Используйте DXVA2 native при использовании Media Player Classic (входит в K-Lite Codec Pack) для сохранения возможности встроенных субтитров, совместимых с DXVA2 native.
  • Вы можете использовать один продвинутый плеер, такие как KMPlayer, GOM, PotPlayer. Эти плееры имеют внутренние декодеры DXVA. В этом случае, рекомендуется, оставить настройки кодеков по умолчанию «Использование программного декодирования», затем включить внутренние декодеры DXVA в опциях плеера.

При аппаратном декодировании качество воспроизведения значительно улучшается. В этом случае перечень компонентов будет Ихметь следующий вид:

Привод DVD;

Плата аппаратного декодера MPEG-2;

Звуковая карта стандарта 5.1;

Многоканальная акустическая система с соответствующим количеством колонок.

При аппаратном декодировании нагрузка на центральный процессор значительно снижается, по сравнению с программным декодированием. В этом случае хорошие результаты воспроизведения получаются даже на компьютере с небольшой тактовой частотой (от 300 МГц).

Плата декодера (рис. 14.10) устанавливается на свободный РС1-слот.

Рис. 14.10. Аппаратный декодер REALMagic Xcard

При использовании аппаратного декодера заметна существенная разница при просмотре фильмов на экране телевизора по сравнению с использованием программного декодера. Это объясняется тем, что у аппаратных декодеров параметры TV-выхода значительно выше, чем у TV-выхода видеокарт.

Это сказывается на качестве картинки. Кроме того, многие видеокарты с TV-выходом некорректно работают с черезстрочным изображением (например, при работе с видеофайлами, полученными с бытовых DV-камер). Результатом являются неприятные эффекты, например так называемая «гребенка», возникающая по краям движущихся объектов.

Существует много моделей аппаратных декодеров. Ниже приводится список наиболее часто встречающихся моделей, работающих под управлением Windows:

Creative Encore DxR3;

REALMagic Hollywood Plus;

REALMagic Xcard.

К преимуществам аппаратного декодера можно отнести и то, что видеосигнал выводится независимо непосредственно на телевизор, что дает возможность смотреть фильм на экране телевизора, не мешая работе на компьютере, и то, что его можно установить в любой «слабый» компьютер (например, Pentium-I) и получить отличный результат. Хотя в настоящее время такие компьютеры уже практически не применяются, а, как было сказано выше, современные программные средства декодирования на компьютерах, выпускаемых в настоящее время, позволяют получить отличный результат (рис. 14.11).

Рис. 14.11. Вариант домашнего кинотеатра с аппаратным декодером и звуковой картой 5.1 без декодера Dolby Digital

Звук в этом случае декодируется программно драйвером звуковой карты. Передача цифрового сигнала с платы декодера MPEG-2 на звуковую карту осуществляется кабелем через внутреннее соединение разъема Audio-out (линейный аудиовыход) декодера с разъемом Aux-in (линейный аудиовход) звуковой карты (рис. 14.12)

Рис. 14.12. Кабель соединения аппаратного декодера и звуковой карты

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

Если телевизор оборудован входом S-Video, то видеовыход декодера следует подключить к этому выходу через кабель DIN/DIN (рис. 14.6а). При отсутствии у телевизора входа S-Video сигнал подается на композитный вход телевизора.

При выводе изображения на экран монитора сигнал снимается с выхода SVGA аппаратного декодера. При этом плата декодера соединяется с видеокартой переходником DIN/DIN (рис. 14.13).

Рис. 14.13. Подключение аппаратного декодера к телевизору и монитору

Необходимо обратить внимание на еще один факт. При подключении аппаратного декодера к TFT-мониторам (особенно больших размеров) возникает так называемый эффект «замыливания».

На практике это проявляется в виде мутной и нестабильной картинки. Кстати, такой же эффект иногда наблюдается и при подключении телевизора непосредственно к TV-выходу видеокарты.

Во всех случаях причина одна — аппаратная. А именно в связке: «монитор (телевизор) — кабель — видеокарта (аппаратный декодер)».

У видеокарты причины кроются чаще всего в переходнике, через который подключаются видеокарты к телевизору. У аппаратных декодеров — при подключении монитора к плате декодера, который в свою очередь при помощи специального кабеля подключается к видеокарте. Причем это особенно заметно при использовании не D-SUB, а BNC-коннектора.

Следует отметить, что ни один из аппаратных декодеров не может самостоятельно декодировать звуковой поток Dolby Digital и DTS. Подробнее вопросы, касающиеся звука, рассмотрим в следующем разделе.