Оглавление |
---|
Куда применить CUDA. Часть 3 - качество. |
Кодирование фильмов |
В предыдущих двух частях было наглядно показано преимущество технологии CUDA в кодировании видео. Однако существует множество сторонников того, что видео, сконвертированное такими конвертерами, имеет низкое качество в сравнении с тем, что сконвертировано традиционными программами, использующими CPU. Настало время проверить так ли это.
Дабы проверить качество кодирования, то нужен какой-то эталон, а так же начальный материал. В качестве эталона был выбран MediaCoder, который использует x264 энкодер с его многочисленными настройками. А вот в качестве исходного видео будет использоваться видеоролик, снятый программой fraps из игры Mafia 2. Видео пишется с битрейтом 30 мбит/с и максимальным качеством. Далее оно подверглось перекодировки с помощью MediaCoder (профиль High10, Level 5.1, Preset Placebo, остальные настройки оптимальны для высококачественного видео), MediaShow (максимальные настройки качества), Movavi (также максимальные настройки) и Xilisoft (максимальные настройки, кодирование в 2 прохода). Во всех случаях битрейт был равен 10 мбит/с. Сразу же хочу отметить, что LoiloScope показал идентичный с MediaShow результат. CudaEncoder из MediaCoder не позволяет кодировать в 2 прохода и показал результат, аналогичный Movavi. Более того, работает с видео из fraps'а крайне нестабильно.
Из данного кадра было вырезано 3 фрагмента: кусок кирпичной стены и часть окон, колесный диск для оценки передачи детализации, а также фрагмент автомобиля, дабы оценить плавность перехода от темного к светлому, ведь именно там вылезают «блоки».
Для начала посмотрим на первый фрагмент:
Изображения разместились в порядке убывания – от наиболее качественного к наименее. Скажу сразу, что такой порядок сохранится и дальше. Сразу же хочется отметить, что видео, скодированное на процессоре, действительно наиболее качественное и почти сравнимо с оригиналом. С другой стороны, оно кодировалось на разогнанном 4-ех ядерном процессоре более 20 минут, а тот же Xilisoft скодировал в 2 прохода на GPU всего за 50 секунд. При этом результат несомненно хуже, чем у MediaCoder, но в целом трагедии нет. Вот MediaShow – это да, разница уже попросту громадная. Отмечу, что Xilisoft и Movavi несколько повышали контраст видео, но только снятого fraps’ом. С обычными фильмами такого не происходит.
Теперь перейдем ко второму фрагменту:
А вот тут уже не все так однозначно. Разница между оригиналом и видео из MediaCoder более существенна, а Xilisoft приблизился к MediaCoder, хоть это и мешает разглядеть несколько повысившийся уровень контрастности. MediaShow и тут показывает неутешительные результаты.
Теперь перейдем к третьему фрагменту:
Да, Xilisoft немного проиграл, но незначительно. А вот у Movavi уже поползли ощутимые квадраты. MediaShow попросту размыл все, хотя полосы тоже заметны.
Стоит отметить, что все это – сравнение для практически идеального качества начального видео. В большинстве случаев оно будет уже сжато, а, следовательно, и качество будет совсем иным. В таких случаях разница между конвертерами будет значительно ниже.
Далее рассмотрим более динамичный кадр.
И опять же 3 фрагмента – кирпичная стена, внутренняя стороны крышки багажника и область номерного знака.
Для начала рассмотрим стену:
Результат MediaShow кроме как провалом и не назвать. Xilisoft подмыливает изображение, но в целом показал терпимый результат.
Перейдем ко второму фрагменту:
Ничего нового, разве что на результате Movavi ребра жесткости на крышке видны чуть лучше. У MediaShow опять каша.
И третий фрагмент:
Первые 3 результата в целом схожи, Movavi чуть отстал, а вот результат MediaShow опять удручает.
Т.к. картина повторяется на всех кадрах, а основные моменты я разобрал, то мучить читателей десятками схожих кадров я не стану, все и так видно. А видно, что качество кодирования конвертеров под CPU выше, чем конвертеров на GPU. Именно так, а не «CPU кодирует видео лучше, чем GPU». А упирается это все именно в программную реализацию, а не в возможности центральных процессоров и видеоадаптеров (а в данном случае в технологию CUDA).