лучший кодек для кодирования видео

Сжатие видео на пальцах: как работают современные кодеки?

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

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

Для большей наглядности начнем с цифр. Пускай видеозапись будет вестись непрерывно, в разрешении Full HD (сейчас это уже необходимый минимум, во всяком случае, если вы хотите полноценно использовать функции видеоаналитики) и в режиме реального времени (то есть, с фреймрейтом 25 кадров в секунду). Предположим также, что выбранное нами оборудование поддерживает аппаратное кодирование H.265. В этом случае при разных настройках качества изображения (высоком, среднем и низком) мы получим примерно следующие результаты.

Кодек

Интенсивность движения в кадре

Использование дискового пространства за сутки, ГБ

H.265 (Высокое качество)

H.265 (Высокое качество)

H.265 (Высокое качество)

H.265 (Среднее качество)

H.265 (Среднее качество)

H.265 (Среднее качество)

H.265 (Низкое качество)

H.265 (Низкое качество)

H.265 (Низкое качество)

Но если бы сжатия видео не существовало в принципе, мы бы увидели совсем иные цифры. Попробуем разобраться, почему. Видеопоток представляет собой не что иное, как последовательность статичных картинок (кадров) в определенном разрешении. Технически каждый кадр является двумерным массивом, содержащим информацию об элементарных единицах (пикселях), формирующих изображение. В системе TrueColor для кодирования каждого пикселя требуется 3 байта. Таким образом, в приведенном примере мы бы получили битрейт:

Учитывая, что в сутках 86400 секунд, цифры выходят поистине астрономические:

Итак, если бы мы записывали видео без сжатия в максимальном качестве при заданных условиях, то для хранения данных, полученных с одной единственной видеокамеры в течение суток нам бы потребовалось 12 терабайт дискового пространства. Но даже система безопасности квартиры или малого офиса предполагает наличие, как минимум, двух устройств видеофиксации, тогда как сам архив необходимо сохранять в течение нескольких недель или даже месяцев, если того требует законодательство. То есть, для обслуживания любого объекта, даже весьма скромных размеров, потребовался бы целый дата-центр!

К счастью, современные алгоритмы сжатия видео помогают существенно экономить дисковое пространство: так, использование кодека H.265 позволяет сократить объем видео в 90 (!) раз. Добиться столь впечатляющих результатов удалось благодаря целому стеку разнообразных технологий, которые давно и успешно применяются не только в сфере видеонаблюдения, но и в «гражданском» секторе: в системах аналогового и цифрового телевидения, в любительской и профессиональной съемке, и многих других ситуациях.

Наиболее простой и наглядный пример — цветовая субдискретизация. Так называют способ кодирования видео, при котором намеренно снижается цветовое разрешение кадров и частота выборки цветоразностных сигналов становится меньше частоты выборки яркостного сигнала. Такой метод сжатия видеоданных полностью оправдан как с позиции физиологии человека, так и с точки зрения практического применения в области видеофиксации. Наши глаза хорошо замечают разницу в яркости, однако гораздо менее чувствительны к перепадам цвета, именно поэтому выборкой цветоразностных сигналов можно пожертвовать, ведь большинство людей этого попросту не заметит. В то же время, сложно представить, как в розыск объявляют машину цвета «паука, замышляющего преступление»: в ориентировке будет написано «темно-серый», и это правильно, ведь иначе прочитавший описание авто даже не поймет, о каком оттенке идет речь.

А вот со снижением детализации все оказывается уже совсем не так однозначно. Технически квантование (то есть, разбиение диапазона сигнала на некоторое число уровней с последующим их приведением к заданным значениям) работает великолепно: используя данный метод, размер видео можно многократно уменьшить. Но так мы можем упустить важные детали (например, номер проезжающего вдалеке автомобиля или черты лица злоумышленника): они окажутся смазаны и такая запись будет для нас бесполезной. Как же поступить в этой ситуации? Ответ прост, как и все гениальное: стоит взять за точку отсчета динамические объекты, как все тут же становится на свои места. Этот принцип успешно используется со времен появления кодека H.264 и отлично себя зарекомендовал, открыв ряд дополнительных возможностей для сжатия данных.

Это было предсказуемо: разбираемся, как H.264 сжимает видео

Вернемся к таблице, с которой мы начали. Как видите, помимо таких параметров, как разрешение, фреймрейт и качество картинки решающим фактором, определяющим конечный размер видео, оказывается уровень динамичности снимаемой сцены. Это объясняется особенностями работы современных видеокодеков вообще, и H.264 в частности: используемый в нем механизм предсказания кадров позволяет дополнительно сжимать видео, при этом практически не жертвуя качеством картинки. Давайте посмотрим, как это работает.

Кодек H.264 использует несколько типов кадров:

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

Полное изображение формируется путем «наложения» P-кадров на опорный кадр. При этом появляется возможность независимой обработки фона и движущиеся объектов, что позволяет дополнительно сэкономить дисковое пространство без риска упустить важные детали (черты лиц, автомобильные номера и т. д.). В случае же с объектами, совершающими однообразные движения (например, вращающимися колесами машин) можно многократно использовать одни и те же разностные кадры.

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Независимая обработка статических и динамических объектов позволяет сэкономить дисковое пространство

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

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Кодек формирует кадры, предсказывая, куда будет двигаться объект

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

Такой подход позволяет существенно повысить скорость быстрой перемотки с показом и упростить работу с видеоархивом.

В чем разница между H.264 и H.265?

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

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

Так, обновленная версия кодека стала использовать макроблоки дерева кодирования (Coding Tree Unit, CTU) переменного размера с разрешением до 64×64 пикселей, тогда как ранее максимальный размер такого блока составлял лишь 16×16 пикселей. Это позволило существенно повысить точность выделения динамических блоков, а также эффективность обработки кадров в разрешении 4K и выше.

Кроме того, H.265 обзавелся улучшенным deblocking filter — фильтром, отвечающим за сглаживание границ блоков, необходимым для устранения артефактов по линии их стыковки. Наконец, улучшенный алгоритм прогнозирования вектора движения (Motion Vector Predictor, MVP) помог заметно снизить объем видео за счет радикального повышения точности предсказаний при кодировании движущихся объектов, чего удалось достичь за счет увеличения количества отслеживаемых направлений: если ранее учитывалось лишь 8 векторов, то теперь — 36.

Помимо всего перечисленного выше, в H.265 была улучшена поддержка многопоточных вычислений: квадратные области, на которые разбивается каждый кадр при кодировании, теперь могут обрабатываться независимо одна от другой. Появилась и поддержка волновой параллельной обработки данных (Wavefront Parallelel Processing, WPP), что также способствует повышению производительности сжатия. При активации режима WPP обработка CTU осуществляется построчно, слева направо, однако кодирование каждой последующей строки может начаться еще до завершения предыдущей в том случае, если данных, полученных из ранее обработанных CTU, для этого достаточно. Кодирование различных строк CTU с временной задержкой со сдвигом, наряду с поддержкой расширенного набора инструкций AVX/AVX2 позволяет дополнительно повысить скорость обработки видеопотока в многоядерных и многопроцессорных системах.

Флэш-карты для видеонаблюдения: когда значение имеет не только размер

И вновь вернемся к табличке, с которой мы начали сегодняшний разговор. Давайте подсчитаем, сколько дискового пространства нам понадобится в том случае, если мы хотим хранить видеоархив за последние 30 дней при максимальном качестве видеозаписи:

По нынешним меркам 4 терабайта для винчестера индустриального класса — практически ничто: современные жесткие диски для видеонаблюдения имеют емкость до 14 терабайт и могут похвастаться рабочим ресурсом до 360 ТБ в год при MTBF до 1.5 миллионов часов. Что же касается карт памяти, то здесь все оказывается не так однозначно.

В IP-камерах флэш-карты играют роль резервных хранилищ: данные на них постоянно перезаписываются, чтобы в случае потери связи с видеосервером недостающий фрагмент видеозаписи можно было восстановить из локальной копии. Такой подход позволяет существенно повысить отказоустойчивость всей системы безопасности, однако при этом сами карты памяти испытывают колоссальные нагрузки.

Как видно из нашей таблицы, даже при низком качестве изображения и при условии минимальной активности в кадре, всего за сутки будет записано около 24 ГБ видео. А это значит, что 128-гигабайтная карточка будет полностью перезаписана менее чем за неделю. Если же нам требуется получать максимально качественную картинку, то все данные на таком носителе будут полностью обновляться раз в сутки! И это лишь при разрешении Full HD. А если нам понадобится картинка в 4K? В этом случае нагрузка вырастет практически в два раза (в заданных условиях видео в максимальном качестве потребует уже 250 ГБ).

При бытовом использовании подобное попросту невозможно, поэтому даже самая бюджетная карта памяти способна прослужить вам несколько лет к ряду без единого сбоя. А все благодаря алгоритмам выравнивания износа (wear leveling). Схематично их работу можно описать следующим образом. Пусть в нашем распоряжении есть новенькая флеш-карта, только что из магазина. Мы записали на нее несколько видеороликов, использовав 7 из 16 гигабайт. Через некоторое время мы удалили часть ненужных видео, освободив 3 гигабайта, и записали новые, объем которых составил 2 ГБ. Казалось бы, можно задействовать только что освободившееся место, однако механизм выравнивания износа выделит под новые данные ту часть памяти, которая ранее никогда не использовалась. Хотя современные контроллеры «тасуют» биты и байты куда более изощренно, общий принцип остается неизменным.

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

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

Нетрудно догадаться, что wear leveling перестает играть хоть сколько-нибудь значимую роль в том случае, если флэш-карта постоянно перезаписывается целиком: здесь на первый план уже выходит выносливость самих чипов. Наиболее объективным критерием оценки последней является максимальное количество циклов программирования/стирания (program/erase cycle), или, сокращенно, циклов P/E, которое способно выдержать флеш-память. Также достаточно точным и в данном случае наглядным (так как мы можем заранее рассчитать объемы перезаписи) показателем является коэффициент TBW (Terabytes Written). Если в технических характеристиках указан лишь один из перечисленных показателей, то вычислить другой не составит особого труда. Достаточно воспользоваться следующей формулой:

TBW = (Емкость × Количество циклов P/E)/1000

Так, например, TBW флеш-карты емкостью 128 гигабайт, ресурс которой составляет 200 P/E, будет равен: (128 × 200)/1000 = 25,6 TBW.

Давайте считать дальше. Выносливость карт памяти потребительского уровня составляет 100–300 P/E, и 300 — это в самом лучшем случае. Опираясь на эти цифры, мы можем с достаточно высокой точностью оценить срок их службы. Воспользуемся формулой и заполним новую таблицу для карты памяти емкостью 128 ГБ. Возьмем за ориентир максимальное качество картинки в Full HD, то есть в сутки камера будет записывать 138 ГБ видео, как мы выяснили ранее.

Ресурс карты памяти, циклов P/E

Источник

5 лучших кодеков MP4, которые вам могут понадобиться

Автор: Christine Smith • 2021-09-14 14:38:54 • Проверенные решения

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

Таким образом, возвращаясь к функциональности кодека, когда вы вставляете компакт-диск на свой компьютер, чтобы прослушать новый альбом, который вы только что купили в музыкальном магазине (в случае, если вы все еще покупаете компакт-диски в магазине), компьютеру понадобится аудиокодек Windows Media для сжатия песни в компактный аудиофайл. Этот аудиофайл будет воспроизводиться через ваши динамики путем его распаковки.

В этой статье мы предложим вам пять лучших кодеков MP4, которые могут вам понадобиться, независимо от того, используете ли Вы Windows или Mac.

Часть 1. Топ-3 MP4-Codecs для Windows

1. Media Player Codec Pack

Одним из самых известных кодеков, найденных в Интернете, является Media Player Codec Pack разработанный Коулом Уильямсом.

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

2. VLC Media Player

Если пакет кодеков VLC Media Player является самым известным пакетом кодеков в интернете, VLC является предпочтительным альтернативным медиаплеером для всех пользователей Windows, потому что он очень прост в использовании. Он разработан компанией VideoLAN.

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

3. CCCP

Теперь мы вступаем в прерии неведомого, действуем осторожно.

Существует проект под названием CCCP ( Combined Community Codec Pack ) который называет себя фильтрующим пакетом, а не пакетом кодеков, и они начали с предоставления одного воспроизведения видео определенным группам, которые совместно используют медиафайлы в Интернете (например, группы anime или movie fansub). Проект одобрен компанией Matroska и поддерживается сообществом.

В проекте CCCP есть такая шутка, что это каламбур над русским названием Cоюз Советских Социалистических Республик, Вот почему на их логотипе изображен флаг Советского Союза.

URL-адрес загрузки: http://www.cccp-project.net/wiki/index.php?title=Main_Page

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Часть 2. Топ-2 MP4-кодека для Mac

Теперь пришло время для пользователей Mac по всему миру. Вот топ-2 MP4-кодека для Mac, которые мы предлагаем.

1. MPlayerX

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

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

2. DIVX

Источник

Уличная магия сравнения кодеков. Раскрываем секреты

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

В этом году исполняется юбилей — 16 лет, как был запущен сайт compression.ru, на котором автор и сотоварищи организуют сравнения видеокодеков и кодеров изображений. За это время были проведены десятки сравнений с отчетами от 23 до 550+ страниц, количество графиков в последнем сравнении перевалило за 7000, а количество разных феерических случаев за это время окончательно превысило все разумные пределы. Поскольку следующая круглая дата (32 года) наступит еще нескоро, есть желание рассказать в честь юбилея малую толику феерического.

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

При этом тема сжатия весьма популярна. В сериале «‎Кремниевая долина»‎ стартап главного героя разработал гениальный алгоритм, который в последней серии первого сезона показал невероятное сжатие 3D видео и в итоге теперь миллионы стартаперов (и инвесторов) мира знают, что главное — это чтобы коэффициент Вайсмана был побольше и ещё гения надо найти, а остальное — фигня-вопрос. Чудо будет! Это естественным образом увеличивает ожидание чудес и, конечно (КОНЕЧНО!) эти чудеса радостно демонстрируются компаниями! В том числе с использованием последних достижений уличной магии.

DISCLAIMER: Любые совпадения имен и названий компаний ниже с реальными именами и названиями абсолютно случайны.

Усаживайтесь поудобнее! Обещаем, что к концу рассказа вы сможете показывать подобные фокусы сами, как, впрочем, и раскрывать многие из них. Поехали!

Level 1, фокусы для начинающих

Начнем с самого простого, ибо, как ни странно, эти методы вполне в современной (не сериальной, а настоящей!) Кремниевой долине прокатывают.

Итак, почтеннейшая публика, фокусы с демонстрацией сверхсильного сжатия начинаются!

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Наверняка многие видели подобные динамические сравнения с незаметными котиками на основе JS на страницах. Если сравнивается сжатие, то разумно чтобы качество было максимально одинаково (в идеале совершенно одинаково), а справа было бы сжато в 2 раза лучше, например.

Компания заявляет на 30% лучшее сжатие (все совпадения случайны!). А картинки выглядят совершенно одинаково! Даже профессионально наметанный взгляд не находит различий. Возникает желание посмотреть детальнее. Лезем в код страницы и видим, что слайдер для первой и второй картинки берет данные из одного файла! Получаем преимущества сразу по нескольким параметрам — во-первых, идеально демонстрируется лучший результат, во-вторых, не отвлекали инженера от работы, и, наконец, это место страницы сайта грузится вдвое быстрее. Сплошной profit.

Случай, не поверите, реальный. Теперь вы знаете, куда стоит посмотреть!

В другом месте — тоже слайдер и опять замечательный результат. Заглядываем в код слайдера — грузятся разные файлы. Наученные горьким опытом скачиваем их — они не просто до байта одного размера, они совпадают побитно! В общем — все плюсы предыдущего способа, но фокус раскрывается чуть сложнее, правда за счет замедления загрузки страницы (за все приходится чем-то платить. ). И, главное, не нужно привлекать дорогих специалистов в сжатии.

Впрочем, более продвинутые маркетологи этого уровня идут еще дальше. Выкладывается слайдер — смотришь — картинки отличаются, но качество о-о-очень похоже. Ну ок. Дальше больше! Демонстрируется фантастическая открытость — есть даже линки на видеофайлы. Скачиваешь — очень неплохое преимущество у их метода, даже непонятно, как они это сделали. Выручает то, что мы же тут все поголовно русские хакеры (уже бренд на западе). Смотрим битовый поток и видим чудную картину:

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

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

Вспоминается встреча с русским стартапом 6 лет назад. Их директор прямо с порога сказал: «‎Вы должны нам все сделать на совесть. У нас инвесторы из «‎Северстали»‎, и, если что, к вам выедут спортивные бритые ребята с паяльниками.»‎ Как вы понимаете, в таких суровых условиях качество исследовательской работы волшебным образом возрастает, а количество фокусов разного уровня — падает… При работе с такими кейсами у нас, на родине слонов, возникает непреодолимое чувство жалости к западным инвесторам. Правда не все наши инвесторы такие чисто конкретные, и свои фокусники и в наших палестинах тоже находятся. Причем регулярно. Но про это в другой раз.

Level 7, резонансный

Эта история не про видеокодек, а про сжатие картинок, но в ней многое было по всем законам жанра «‎честных фокусов»‎.

Как-то довольно известная компания М решила, что им к своим форматам Windows Media Video (WMV) и Windows Media Audio (WMA) нужно добавить Windows Media Photo (WMP). Чисто для комплекта, как вы понимаете.

Молодой человек на галёрке! Ну не надо так громко кричать, не вас одного осенило! Культурные люди (посмотрите на первый ряд) максимум — понимающе усмехнулись в усы…

Далее внимательно следим за руками:
лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Т.е. у WMP больше деталей, чем у JPEG и JPEG 2000 при том же уровне сжатия (мягко уравниваются JPEG и JPEG 2000 и задается уровень 24 раза), а в следующем абзаце:
лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видеолучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Т.е. обычно только в 6 раз сжимают, а было 24. Вау, пахнет тремя разами! И вообще мы лучше в 2 раза точно. СМИ понесли благую весть в массы (некоторые написали, что в 2 раза лучше JPEG 2000), даже на Хабре повторили эту новость.

Чуть позднее появился график из этой презентации:

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Преимущество по сравнению с JPEG 2000 было небольшим, при том, что они, очевидно, отобрали лучшую картинку с чудным мальчиком и дельфинами. Мы с большим нетерпением ждали возможности поиграться с этим кодером. Примерно через полгода утилиту для сжатия таки выложили.

У нас к тому моменту как раз было годичной давности сравнение 9 реализаций JPEG 2000

Да-да-да! Как не все йогурты одинаково полезны, так и не все реализации стандарта жмут одинаково хорошо. Стандарт оговаривает только битовый поток, положить в который данные (и, кстати, вынуть!) можно сильно по-разному, это порождает отдельный рынок кодеков со своей жесткой конкуренцией по доброму десятку параметров. Простой пипл этого, как правило, не знает, что позволяет безнаказанно ездить ему по ушам практически на бульдозере («‎Наш видеорегистратор поддерживает новейший H.265/HEVC, больше его ни у кого нет!»‎). И никто (никто!) КРАЙНЕ вероятной подставы не замечает.

Мы радостно вставили в предыдущий отчет 3 линии для WMP. Получилось как-то так:

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Поскольку сравнение было выложено публично и наделало шуму в узких кругах, то разработчик даже ответил на него в официальном блоге. Заметка была вежливая: похвалили, покритиковали, а дальше, если продраться сквозь текст, человек чистосердечно признался, что они использовали самую худшую реализацию JPEG 2000 нашего сравнения (опубликованного за полгода до того) в своем сравнении, правда «‎совершенно случайно»‎. Мы, конечно, им поверим. Компания уважаемая и все такое.

Дальше название технологии было изменено с WMP на HD Photo, впрочем в сети остался такой вердикт:
лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео
В качестве вишенки на торт. Наши коллеги пошли дальше: взяли больше картинок и показали, что HD Photo проигрывает не только JPEG 2000, но и хорошей реализации JPEG (в 7 случаях из 14). И проигрывает конкретно. Есть основания полагать, что они подбирали картинки, но они откровенно закопали HDPhoto, ибо кому нужен формат, который в половине случаев проигрывает древнему JPEG — непонятно:

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Level 10, свежий! С нейросетями!

Вообще подобных случаев — очень много. Даже в России я сталкиваюсь с подобными ситуациями примерно пару раз в год (к нам, как к хозяевам compression.ru, информация стекается). На западе разводят лохов инвесторов примерно ежемесячно. А сейчас еще и Китай к этому развлечению подключился. Мощность компьютеров растет, сложность и возможности алгоритмов — тоже. Разбираться в этом все сложнее. Как следствие — бурное веселье продолжается!

В последнее время очень популярны стали нейросети. Абсолютно все, к чему они прикасаются, волшебным образом улучшается. А не применить ли их к сжатию видео?

В ноябре прошлого года очередная благая весть с подачи самого «Уолл Стрит Джорнал» облетела мир. Создан видеокодек на основе машинного обучения, который всех порвал! Вот пруф:

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Вообще я лично крайне скептически воспринимаю все новости с упоминанием нейросетей. И вам советую (ОСОБЕННО, если вы инвестор). Нейросети устроены таким образом, что грамотно подбирая обучающую выборку под тестовую можно показать любой (для непонятливых — ЛЮБОЙ!) желаемый результат. Нейросети — идеальный инструмент для постановки на поток маркетинговых чудес. Одно чудеснее другого!

В общем график есть, картинки есть. Согласитесь — убедительно. Специально для скептиков господа привели еще несколько графиков на известных тестовых наборах:
лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео
лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео
Впрочем, если предыдущий график с картинками лично для меня был еще как-то объясним (заточиться на одно видео да еще с глубокими нейросетями можно всегда), то эти два графика заставили резко насторожиться.

Вас в них ничего не смущает?

Они даже под это подводят базу, типа классические кодеки уперлись в предел и уже особо не развиваются (и тут на сцену выходят они, все в белом). И вы знаете, такая наглая ложь прекрасно работает! Причем ладно «The Wall Street Journal» — они (хотелось бы верить) только в финансах разбираются, ладно «MIT Technology Review» — эти джентльмены джентльменам Кремниевой долины верят на слово, но как некритически воспринял новость такой уважаемый ресурс, как Хабр — ума не приложу! Чего уж говорить про массово перепечатавших новость …

В реальности картина развития кодеков, к счастью, заметно отличается. Во-первых, на графике ниже, построенном нами на том же наборе видео xiph, можно увидеть, что H.265 на 25−31% лучше, чем H.264. Т.е. 10 лет развития кодеков таки не прошли даром! (Уфф, прямо от сердца отлегло. ) Во-вторых, свежий AV1 показывает практически двукратное улучшение по сравнению с H.264, и ступенька его преимущества, прямо скажем, весьма заметна:

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Соответственно на глаз видно, что если наложить график AV1 на 45% левее H.264 на графике авторов — он покроет новый кодек как… [вырезано цензурой]. Хорошо покроет, короче. Потому с ним и «‎забыли»‎ сравниться. Реальный расклад выглядит как-то так (сильно менее кучно, согласитесь):

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Заметим, что для некоторых видео стандартные опции не обязательно идут монотонно (в данном случае по качеству). Также иногда «‎нестандартные»‎ опции могут дать большой выигрыш по размеру, в частности на примере выше потеряв 20% по скорости по сравнению с medium можно наиграть 30% по размеру — практически как при переходе на стандарт следующего уровня, но при прежней невысокой сложности декодера. Но это уже более сложный level, о нем в другой раз.

Как легко заметить выше, господа взяли для сравнения «slower». Хорошо, что не «veryfast», ведь могли бы и его! ) И не важно, что у них у самих кодек феерически медленный. Люди в массе своей, глядя на график, не вспоминают о том, что скорость работы кодека может на пару порядков отличаться в зависимости от параметров. Поэтому такой прием вполне прокатывает. Хотя на нашем графике выше («Bitrate/quality. ») их пачка линий была в районе красной (которая самая плохая). Заодно оправдывая топтание на месте в развитии кодеков. Ага-ага!

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

Понятно, что, чтобы фокус выглядел правдоподобно, нужны еще дополнительные штрихи, которые придают реализма. Например, эти господа опубликовали статью на https://arxiv.org/abs/1811.06981. Сегодня развитие алгоритмов идет настолько быстро, что ждать, пока выйдет статья в журнале становится нестерпимо, поэтому многие сильные авторы публикуют результаты сначала на arxiv.org. Для уличных магов этот сайт удобен тем, что там можно разместить абсолютно любой материал — в отличие от рецензируемых журналов и конференций никто не задаст неприятных вопросов и не зарубит публикацию (нет kill reviewing серьезных мест). А про то, что, например, на 1 апреля на arxiv.org принято публиковать разного рода пародии на научные статьи, в том числе высмеивая его как место публикаций, широкая публика не знает, поэтому для широкой публики публикация там выглядит типа даже солидно.

Идем дальше. Статья на хабре про них называлась «‎Первый видеокодек на машинном обучении кардинально превзошел все существующие кодеки, в том числе H.265 и VP9»‎. Очередной прикол заключается в том, что машинное обучение в сжатии не только активно исследуется, чему уже посвящаются отдельные треки конференций (то есть статей много), но и активно используется, например, в AV1 (специально привожу гугловый запрос). Но, если бы они честно сказали: «‎Мы выпустили второй кодек с использованием машинного обучения, при этом проиграв первому и по скорости, и по сжатию»‎, то Wall Street Journal мог про них и не написать… И MIT TechReview не написал бы… И даже Хабр… Очевидно, не вынеся последнего, в компании чуть-чуть поправили подачу. При этом особенностью современного интернета является то, что люди не проверяют информацию, что позволяет спокойно провозглашать себя первыми много кому (начиная с известных компаний). Наглость, как известно, города берет! А фактчекинг не моден.

— Загугли!
— Это как это?
[пример запроса дан выше)))]

И еще про ML/DL. В далекие-далекие времена, когда дискеты были большими, а винчестеры маленькими, одним из приемов «‎уличной магии для архиваторов»‎ было сохранить часть сжимаемого файла куда-нибудь подальше в директорию со временными файлами и таким образом показать рекорд. С тех пор времена изменились. Винчестеры — выросли, дискеты совсем пропали, а данные стало модно прятать вглубь нескольких сотен мегабайт коэффициентов сетки. Можно сохранить «‎авторский знак»‎ в сетке, можно — пасхалку, а можно фейковый рекорд сжатия поставить. Глубокие нейросети — однозначно сила, короче!

А теперь мастер-класс!

Как я и обещал выше, к концу этого текста вы сможете легко блистать на подмостках условного pikabu.

Сейчас, о почтеннейшая публика, я покажу вам фокус, позволяющий сравнивать, что угодно с чем угодно с любым заранее заданным результатом. Т.е. если надо, чтобы кодек А был лучше кодека Б — значит покажем это, если нужно, чтобы Б был лучше А, хорошо, можем показать и это. Исполним любой каприз отдела маркетинга за ваши деньги совершенно бесплатно!

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

У нас получились два файла почти одного размера:
avatar_x264_cbr1M_superfast.mkv — 1402 MB
avatar_xvid_cbr1M_superfast.mkv — 1401 MB

А теперь, дамы и господа! Внимательно следите за руками.

Смотрим, вот новый стандарт и старый:
лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видеолучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Смотрим другой кадр:
лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видеолучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео
Без комментариев! А если быстрое движение?
лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видеолучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Согласитесь! Прогресс явный и неумолимый! Все развивается и становится все лучше и лучше! А жизнькраше и веселее!

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видеолучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Боже, что это. Новый стандарт совсем слил…

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видеолучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

А-а-а-а! Люди! Знайте! Корпорации вас обманывают. Кодеки уже давно не развиваются, но вам сообщают что все идет хорошо!

лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видеолучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео

Вы видите? Все, чему они научились за 10 лет — это размывать блочность! Причем делают это просто отвратительно! Стало хуже, чем было! Вас водят за нос все эти годы. 11

А теперь разберемся, как это сделано.

На самом деле полный кадр выглядит так:
лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео
Когда кодек работает, особенно в режиме постоянного битрейта, качество кадров достаточно сильно колеблется. Вот начало фильма, например — качество по классической метрике PSNR (сомнений кто лучше, кто хуже, кстати, нет, видно что зеленый xvid проигрывает в среднем):
лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео
Картинка кликается

Если вычесть один график из другого (на рисунке ниже, другое место в файле) — то видно, что в целом кодек более старого стандарта будет проигрывать, однако местами он может вполне уходить на +5 dB (PSNR удобна тем, что она обратно логарифмически пропорциональна среднеквадратичному отклонению, за счет чего, обычно, работает правило: на диапазоне средних и низких битрейтов на глаз видна разница в 1.5 dB). И тут же виден кадр, где в другую сторону разница 20 dB:
лучший кодек для кодирования видео. Смотреть фото лучший кодек для кодирования видео. Смотреть картинку лучший кодек для кодирования видео. Картинка про лучший кодек для кодирования видео. Фото лучший кодек для кодирования видео
Картинка кликается

Теперь вы понимаете, почему ваш покорный слуга всегда с искренним умилением смотрит на приведенные в маркетинговых материалах компаний отдельные кадры, как на доказательство более высокого качества на видео (особенно когда нет графиков)… И ведь так до сих пор иногда приводят!

Чтобы отбирать кадры было проще, мы больше 10 лет назад сделали режим сравнения в нашей тулзе MSU VQMT, при котором сравнивались сразу 3 файла — оригинал, кодек-1 и кодек-2 и сразу сохранялись, например, 30 лучших пар кадров в одну или в другую сторону. Главное — взять файл подлиннее!

А MPEG-4 с низким битрейтом был взят, чтобы с блочностью было все нагляднее.

Ну или где-нибудь, где публика не слишком разборчива, можно кого-нибудь с кем-нибудь успешно сравнить. Пипл будет доволен.

Теперь вы знаете, какие вопросы задавать, когда видите сравнение с кадрами в материалах компаний! Может хоть пореже, наконец, они будут встречаться.

Вместо заключения

Выше разбирались относительно простые способы подготовки маркетинговых материалов «в свою пользу» в сравнениях кодеков и кодеров. Естественно, в реальной жизни все сложнее. Увы, если идти глубже, оно будет не так увлекательно и заметно сложнее (желающие могут почитать статью и комментарии тут, например).

А людей, обычно, интересуют простые ответы. Самый популярный ответ в Ответы@Mail.ru на вопрос ‎«Какой самый лучший видеокодек?»‎ — «K-Lite Mega Codec Pack». И это для массового зрителя действительно самый короткий, понятный и точный ответ. А вы говорите — кодеки, стандарты…

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

Спасибо за внимание, дамы и господа! Всем — технической грамотности!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *