Практическое тестирование видеокарт ATI и NVIDIA в задачах декодирования видеоданных
Содержание материала
Уже довольно много времени прошло с момента публикации нашей теоретической статьи о наборе технологий ATI AVIVO, но до практического тестирования аппаратно ускоренного проигрывания видеоданных дело не доходило. Частично это связано с тем, что на тот момент и ATI и NVIDIA так активно развивали поддержку декодирования видео в драйверах, что почти в каждом из релизов были большие нововведения в этом плане, и сравнивать производительность чипов разных вендоров было тяжело, так как ситуация менялась каждый месяц. Но сейчас всё вроде бы более-менее устоялось, то ли ATI и NVIDIA "вылизали" поддержку упомянутых в теоретической статье возможностей по поддержке декодирования видео, то ли надоело им заниматься этой задачей. Мы решили проверить на практике, насколько хорошо обстоят дела по декомпрессии и выводу видеоданных с аппаратной помощью видеочипов.
Воспроизведение видеоданных высокого разрешения ("High Definition", сокращенно - HD) в современных форматах сжатия, весьма требовательных к мощности системы, является ресурсоемкой задачей даже для мощных ПК. Основная нагрузка приходится на центральный процессор, но современные видеокарты берут на себя выполнение части вычислений по декодированию и постобработке. В современных видеочипах ATI и NVIDIA есть программируемые блоки для задач ускорения декодирования и постобработки разных видеоформатов. Технология, задействующая возможности видеочипов при воспроизведении видео, называется DirectX Video Acceleration (DXVA). Она позволяет использовать помощь видеопроцессора в декодировании и постобработке (деинтерлейсинг, шумоподавление и т.п.), а возможности чипов последних выпусков от ATI и NVIDIA по декодированию видео включают поддержку основных форматов: MPEG2, WMV9 и H.264. Для этого требуются специальные декодеры (ATI DVD Decoder, PureVideo Decoder, CyberLink MPEG2 и H.264 video decoder), и проигрыватели, поддерживающие DXVA, такие, как Windows Media Player 10. Сначала появились DXVA декодеры для аппаратного ускорения MPEG2, затем выпустили дополнение для WMP10 с поддержкой DXVA для декодирования WMV9 формата, а в последние два года появились H.264 декодеры с DXVA-ускорением, одним из первых был CyberLink. А совсем недавно, весной этого года, вышел качественный программный декодер формата H.264, под названием CoreAVC, который мы также рассмотрим в статье.
С проигрыванием MPEG2 видео в невысоких разрешениях (до используемого в DVD дисках 480p/480i) на данный момент особых проблем с производительностью не возникает, но в начале распространения DVD видео, когда типичные процессоры не очень хорошо справлялись с декодированием MPEG2, была ситуация, когда только с помощью аппаратной поддержки от видеокарт компьютеры того времени могли справиться с этой задачей. И сейчас, без соответствующей поддержки, даже некоторые новые CPU не всегда могут полностью удовлетворить требования по декодированию такого современного формата, как H.264 в самых высоких разрешениях, например, в 1080p (прогрессивный 1920x1080). По заявлениям ATI и NVIDIA, их последние видеочипы помогают процессорам в декодировании наиболее требовательного к ресурсам формата H.264, в дополнение к уже известным WMV и MPEG2, в том числе в высоких разрешениях.
Для разных чипов существуют некоторые ограничения, так, не все low-end чипы обладают необходимыми возможностями и производительностью для поддержки самых высоких разрешений, уровень аппаратной поддержки зависит от модели карты и установленного чипа. Но возможности, предоставляемые последними видеокартами по аппаратному ускорению декодирования H.264, позволяют говорить о теоретическом решении проблем с воспроизведением таких файлов. Так ли это или на практике проблемы еще остались? В статье мы рассмотрим сравнительные производительность и качество воспроизведения видео разных форматов, начиная с MPEG2 и заканчивая все тем же относительно свежим H.264/AVC, информацию о котором можно найти в уже упомянутом теоретическом материале. Особое внимание мы обратим на полностью программный декодер CoreAVC, который показал себя с хорошей стороны с момента его выпуска. CoreAVC оказался значительно более эффективным, по сравнению с другими известными H.264 декодерами от CyberLink и Nero, не говоря уже о декодере QuickTime, при том же качестве картинки. Кстати, на данный момент аппаратно ускоренная версия CoreAVC пока еще отсутствует в публичном доступе, но, судя по заявлениям его разработчиков, планы по поддержке видеочипов у них есть.
Конфигурация тестовой системы, используемое программное обеспечение и настройки
Аппаратная конфигурация тестовой системы:
- Процессор: AMD Athlon 64 3200+ 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
Для тестов использовались две видеокарты на чипах основных производителей:
- Видеокарта: ATI RADEON X1800 XL 256MB (500/1000 МГц), драйвер Catalyst 6.9
- Видеокарта: NVIDIA GeForce 7800 GTX 256MB (430/1200 МГц), драйвер ForceWare 92.91 Official Beta
Использовалась последняя, доступная на момент написания версия драйвера CATALYST и последняя официальная бета-версия ForceWare, так как именно в ней, по заявлению NVIDIA, были сделаны некие нововведения и изменения, связанные с технологией PureVideo.
Используемое программное обеспечение (проигрыватели, кодеки):
- Microsoft Windows Media Player 10.00.00.3923 (с Windows Media Video Decoder 10.00.00.3923 в комплекте)
- CyberLink PowerDVD 7.0 Deluxe
- Apple QuickTime Player 7
- ATI MPEG Video Decoder 9.14.0.60504
- NVIDIA PureVideo Decoder 1.02.223 (NVIDIA Video Decoder 04.02-223)
- CoreAVC Pro 1.1.0.5
Все настройки драйверов и программного обеспечения оставлены по умолчанию. Основные настройки производительности Windows Media Player 10, использованные при тестировании, приведены на скриншоте:
"High quality mode" в настройках WMP10 отвечает за использование Video Mixing Renderer 9 (VMR9). Скриншоты захватывались в разрешении 1024x768 при полноэкранном выводе изображения, а тестирование производительности проводилось в 1920x1080. Поддержка оверлеев была отключена, чтобы производить захват скриншотов в одинаковых условиях для карт ATI и NVIDIA.
Список видеороликов, используемых в тестах
Видеофайл | Формат | Разрешение, пикс | HD формат | Частота кадров, FPS | Битрейт, Мбит/с |
da_vinci_code-tsr2_h720p.mp4 | H.264 | 1280x720 | 720p | 24 | 5 |
ice_age_2-tlrD_h1080p.mp4 | H.264 | 1920x1080 | 1080p | 24 | 10 |
PGR3_E32005_Xbox360_Video.wmv | WMV HD | 1280x720 | 720p | 30 | 5 |
MP10_Striker_10mbps.wmv | WMV HD | 1920x1080 | 1080p | 24 | 10 |
opening2.mpg | MPEG2 | 720x480 | 480i | 30 | 7 |
emotion.mpg | MPEG2 | 1920x1080 | 1080i | 30 | 18 |
test-hdtv.mpg | MPEG2 | 1920x1080 | 1080p | 25 | 20 |
Как видите, в состав тестового материала вошли ролики во всех наиболее востребованных видеоформатах, чаще всего в двух распространенных разрешениях - 1280x720 и 1920x1080. Помимо этого, в состав тестов вошел и небольшой MPEG2 ролик с разрешением всего лишь 720x480 (480i), так как DVD диски до сих пор весьма широко используются. Единственное отличие ролика от формата большинства DVD дисков - его чересстрочность (интерлейсинг). Если исключить влияние деинтерлейсинга, с MPEG2 видео проблем обычно не бывает.
Тесты проводились в разрешении 1920x1080 при помощи собственной утилиты с использованием ActiveX компоненты Windows Media Player 10, позволяющей замерять использование ресурсов процессора во время проигрывания, получать статистику WMP10, а также снимать скриншоты с точной установкой позиции ролика на нужный кадр видеопоследовательности. Замерялась средняя загрузка центрального процессора системы при трехкратном проигрывании каждого из роликов. Проводился также сбор и попытка использования таких значений, как количество пропущенных кадров в секунду и достигнутая при проигрывании частота кадров, но оба эти значения на некоторых сочетаниях роликов и декодеров получались явно некорректными, и от затеи пришлось отказаться. С подсчетом среднего времени загрузки CPU никаких проблем нет, и это значение было принято для использования в тестах при определении качества аппаратной поддержки декодирования видео платами ATI и NVIDIA. Лишь в одном случае упомянута и цифра пропущенных кадров видеопоследовательности.
Результаты тестирования
Тесты мы начнем с самого интересного формата - H.264. Обе видеокарты тестировались с применением двух декодеров - полностью программного CoreAVC Pro, в который еще не встроили поддержку аппаратного ускорения видеокартами, и поддерживающем DXVA ускорение CyberLink H.264/AVC Decoder из комплекта PowerDVD 7 Deluxe. Также, для сравнения, приведена цифра загрузки процессора при помощи программного декодера H.264, встроенного в пакет QuickTime. Этот декодер появился одним из первых, и большая часть заслуги в продвижении H.264 как весьма ресурсоемкого формата принадлежит именно ему.
H.264 (720p)
Цифры показывают, что декодирование формата H.264 даже в не самом высоком разрешении 720p с применением устаревшего программного декодера QuickTime почти полностью задействует мощности не самого слабого тестового процессора. Наблюдаются явные рывки и пропуски кадров, пусть и не такие массовые, но все же неприятные. Декодер CyberLink нормально справляется с работой на обеих видеокартах, загрузка на ATI оказалась чуть ниже, чем на NVIDIA. То же самое мы видим и на примере CoreAVC, хотя он и полностью программный, NVIDIA все же немного отстает от ATI по производительности. Но разница совсем невелика - 7-8%, и с учетом того, что CPU загружен менее чем наполовину, я бы сказал, что ее почти нет, она не будет ощутима практически.
Теперь проверим получаемое качество картинки. Оно во всех случаях оказалось почти идентичным, никакой значительной разницы я не нашел, но пару примеров привести обязан.