Все представленные на сайте советы и рекомендации основаны на моём личном опыте, все манипуляции с компьютерными комплектующими Вы производите на свой страх и риск, соответственно ответственность за полученные результаты целиком и полностью лежит на Вас. Помните: практическая реализация большинства рекомендаций лишает вас гарантии!!!
Главная "Разгон" BIOS Кодирование
видео
Советы Полезно знать Сети Музыкальный
клад
Юмор Интересные ссылки Библиотека

Сжатие видео средствами видеокарты, пресловутая CUDA

Эпоха видео высокой четкости гордо шагает по планете, последовательно инициируя изменения во многих сферах цифрового представления информации. Соразмерно увеличению разрешения по вертиали картинки, появляются новые типы носителей с невероятными емкостными характеристиками в 25, 50 и более гигабайт. Необузданные доселе размеры видеоряда требуют существенного усиления позиций кодеров более высокго порядка. Внедрение видеоформата mp4 с верховенством в лице компрессора H.264 предъявило обновлённо - увеличенные требования к вычислительным ресурсам воспроизводящих устройств. Шутка ли иметь в архиве фильм или многосерийный сериал HD уровня весом в несколько пятидесятков гигабайт, в привычном MPEG-2....На помощь "экономным и целесообразным" призвана вся новоприставленная рать, начиная от контейнера с благозвучным для русского уха названием "матроска-матрёшка" и заканчивая кодерами уровня h264 и перенесением мультимедийных вычислений на "графическую", так сказать, основу. Но не буду утомлять читателя текстом вступления, перегруженным лозунгами современного Hi-тэка, а лучше в очередной раз посвящу остаток печатной полосы изложению личного опыта. Итак приступим...Являясь, с незапамятных времен, приверженцем видеокодировщика TMPGEnc, я с некоторых пор довольно сдержанно воспринимал спекулятивные заявления, касающиеся невероятного многократного ускорения процесса пережатия видеоконтента средствами графического адаптера или по-просту видеокарты. Суть технологии CUDA, активно продвигаемой NVidia в массы заключается в перенесении вычислений на графическую подсистему, обладающей существенной производительностью и сулящая небывалый прирост в выполении операций определённого рода. Мое первое знакомство с технологией CUDA произошло аккурат в момент внедрения её поддержки в видеокодировщик TMPGEnc....

технология cuda

Однако, как оказалось в рядовых ненагруженных избыточным количеством фильтров условиях, использовании технологии cuda сводилось к нулю.

технология cuda

Единственный раз, когда некий, положительный эффект от CUDы был мною замечен, состоял в наложении фильтра деинтерлейсинга (устранение так называемой гребенки, или эффекта расчески при чрезстрочном видео), на этапе кодирования загрузка видеокарты составляла не более 40%, при параллельном снижении нагрузки на двуголовый процессор до уровня в 80%. Экономия времени увы оказалась несущественна. На определённое время я в буквальном смысле забросил или, иначе выражаяь, задвинул в черный ящик потаённого угла сию затею. Но сериальное действо под названием "Сверхъестественное", в имеющемся временном отрезке полного 5-го сезона, суммарной длительностью 15 часов и 10 минут, заставило пересмотреть идеи, пылящиеся в архиве. Вкратце суть нужды заключалась в пережатии видеоконтента весом 30Gb и разрешением 720p в нечто более компактное и главное воспроизводимое на нетбуке. Опытным путём было установлено, что оптимальное разрешение видео для нетбучных мощностей в моём случае составит 704 на 396 пикселей, при потоке в 1000kbit/s и сжатии кодеком H.264 получалось довольно достойное качество и существенно меньший размер итогового mp4 видеофайла, визуально не сильно пострадавшего. Задача стояла довольно тривиальная и заключалась в простой реконвертации с изменёнными параметрами кодера, но.....Принимая во-внимание факт суммарной длительности 22-ух серий 5-го сезона было от чего впасть в депрессию...Видеокодировщик TMPGEnc при условии двухпроходного кодирования и выкрученных на максимум настроек качества, был готов справиться с поставленной задачей за время в 20 - 24 часа при постоянной, близкой к 100% нагрузке обеих ядер двуглавого E7300, правда в хорошем разгоне. Указаннное предварительное время расчета заставило меня прибегнуть к оному варианту в самую последнюю очередь и перейти к поискам альтернативы, использующей по максимуму ресурсы графической подсистемы в рекомпрессионных целях. На сайте Nvidia ссылка на подобный софт, призывала оценить степень привлекательности данной технологии, применительно к сжатию видео...

технология cuda

Программа, получила гордое название...Badaboom Media Converter, прямо как в фильме Люка Бессона...в репликах Лилу....

технология cuda

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

В качестве основного вычислительного устройства система верно опознала мой GeForce GT240, наделённый от рождения вышеуказанной технологией. В правой колонке пользователь может по своему усмотрению выбирать один из наиболее часто использующихся профилей, при пережатии для размещении на YouTube, для последующего просмотра на XBOX 360 и прочие, в своём случае я выбрал произвольный медиа профиль.

Не вдаваясь в технические подробности замечу, необходимость активации режима CABAC (Context-adaptive binary arithmetic coding (CABAC, контекстнозависимое адаптивное бинарное арифметическое кодирование) — алгоритм сжатия без потерь для синтаксических элементов видеопотока на основе вероятности их появления. Поддерживается только в Main Profile и выше. Обеспечивает более эффективное сжатие, чем CAVLC, но требует значительно больше времени на расшифровку), а также переменного битрейта VBR, величину которого задаём ползунком качества.

На следующей вкладке пользователь задает параметры разрешения выходного видео, при выбранном отношении сторон, необходимость применения фильтра деинтерлейсинга...В разделе Audio Settings выбираем битрейт по звуку и аудиорежим...Вроде все приготовления проведены - ПОЕХАЛИ....

И вот первый приятный сюрприз - кодирование видео со скоростью более 80-ти кадров в секунду!!!, т.е по меньшей меревтрое превышающей реальную скорость воспроизведения, и это на довольно средней видеокарте, с несколько завышенными частотами графического ядра и шейдерного домена. Что покажет уровень загрузки GPU и CPU?

Результаты действительно впечатляющие, судя по графикам нагрузка по кодированию видео практически полностью водружена на плечи видеокарты, двухголовый процессор при этом задействует незначительные 19-ти%-ые ресурсы. А что же время?

Суммарное время затраченное на сжатие одной 42-ух минутной серии в формат mp4 при вышеназначенных настройках качества составило около 14-ти минут, что в пересчёте на 22 серии составляет чуть более 5-ти часов!

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

За сим прощаюсь, более писать не о чем...
Маслёнков Андрей
14.06.10

Hosted by uCoz