Что такое video encode
video encode
Смотреть что такое «video encode» в других словарях:
Video Acceleration API — (abrégé en VA API, VA API ou VAAPI) est une bibliothèque open source (libVA) et une interface de programmation qui visent à permettre le rendu vidéo par le processeur graphique sur les systèmes dérivés d UNIX (comme Linux ou FreeBSD) utilisant X… … Wikipédia en Français
Video compression — refers to reducing the quantity of data used to represent video images and is a straightforward combination of image compression and motion compensation. This article deals with its applications: compressed video can effectively reduce the… … Wikipedia
Video Encoded Invisible Light — (VEIL) is a technology for encoding low bandwidth digital data bitstream in video signal, developed by VEIL Interactive Technologies. VEIL is compatible with multiple formats of video signals, including PAL, SECAM, and NTSC. The technology is… … Wikipedia
ENCODE\/DECODE — T&F When we discuss “encode” in media, it often contains two parts, video encoding and audio encoding. Video encoding is one of those important steps in a video that will determine whether the image output looks good or bad. The technical term… … Audio and video glossary
Video compression picture types — In the field of video compression a video frame is compressed using different algorithms with different advantages and disadvantages, centered mainly around amount of data compression. These different algorithms for video frames are called… … Wikipedia
Video recorder scheduling code — For the CNC programming language, see G code. VCR Plus+, G Code, VideoPlus+ and ShowView are different names for essentially the same system for programming video recorders. These names are all registered trademarks of Macrovision, whose… … Wikipedia
encode — 1. To compress a video file using a codec so that the file can be transmitted in the shortest possible time. 2. To convert a binary file into a form suitable for data transmission. See also codec; decode; decryption; uuencode … Dictionary of networking
Compression Vidéo — La compression vidéo est une méthode de compression de données, qui consiste à réduire la quantité de données, en limitant au maximum l impact sur la qualité visuelle de la vidéo. L intérêt de la compression vidéo est de réduire les coûts de… … Wikipédia en Français
Compression video — Compression vidéo La compression vidéo est une méthode de compression de données, qui consiste à réduire la quantité de données, en limitant au maximum l impact sur la qualité visuelle de la vidéo. L intérêt de la compression vidéo est de réduire … Wikipédia en Français
Что такое video encode
Если владелец видео хочет опубликовать видео, он должен рассмотреть различные устройства, на которых может воспроизводиться видео. Все видео, которые мы смотрим на наших компьютерах, планшетах и мобильных телефонах, прошли процесс кодирования, который преобразует исходное видео, чтобы его можно было просматривать в различных выходных форматах. Это связано с тем, что многие типы устройств и браузеров поддерживают только определенные видео-форматы. Часто целью издателя видео является обеспечение совместимости с различными форматами.
Если вы хотите знать, что происходит при этом процессе, дочитайте эту статью до конца.
Видео-контейнеры
Самые популярные из них:
Контейнер предназначен для хранения разных типов данных. Сюда относятся аудио, видео, а иногда и субтитры. Они похожи на коробки, в которые мы положили наши конфеты.
Обратите внимание, что наибольшая разница между этими контейнерами заключается в поддержке, которую они дают для базовых бит информации. Различные контейнеры обеспечивают поддержку различных аудио и видео компрессий. Некоторые из них позволяют включить несколько звуковых дорожек или дорожек субтитров, где другие будут разрешать только одну или вообще ничего. Если вы хотите добавить субтитры к файлу AVI или WMV, вам может потребоваться записать их на картинке.
Видео / аудиокодеки
Реальная разница между большинством видеофайлов меньше зависит от используемого контейнера, но больше от видео или аудио кодека – в контейнере. Видеокодек определяет, как обрабатывается информация. Некоторые из самых популярных видеокодеков включают
Вы должны помнить, что содержимое или способ хранения содержимого не всегда определяется контейнером, хотя он часто ограничен (например, некоторые контейнеры поддерживают несколько аудио-потоков, тогда как AVI поддерживает только один). В результате существует несколько различных доступных комбинаций между контейнерами и кодеками.
Различные кодеки обеспечивают различное качество звука или изображения в зависимости от размера файла. Самыми известными и наиболее часто используемыми являются контейнеры AVI, с DivX или (бесплатным) кодеком XviD (но они немного устарели и имеют ужасное соотношение качества / размера файла).
Есть также более новый x264- кодек (который обладает отличным соотношением качество / размер файла). Вы можете использовать его с контейнером MKV, если вы планируете использовать несколько аудио дорожек и субтитров, а также с контейнером MP4. Контейнер MP4 поддерживает только один поток видео и звуковую дорожку, но имеет более высокую скорость поддержки и может воспроизводиться на iPod, PSP и большинстве новых мобильных телефонов.
Битрейт
Битрейт определяет скорость передачи данных. Что касается видео, это означает, что больше данных включается в более короткий аудио / визуальный интервал.
Чаще всего вы можете оставить биттрейт, как есть, или немного поиграть с ним. Более высокий битрейт означает больший поток данных, поэтому для максимального соотношения качество / размер файла ваш битрейт не должен быть слишком низким и не слишком высок.
Во многих приложениях также можно рассчитать скорость передачи видеоролика, указав целевой размер. Это позволяет вам получить наилучшее качество из вашего видео, оставаясь при заданном размере файла.
Несколько проходов
Это довольно понятно. Несколько проходов определяют, сколько раз приложение обрабатывает весь фильм для достижения конечного результата. В наши дни в основном используется стандартная двухпроходная кодировка.
Очевидно, что при работе с многопроходным кодированием потребуется больше времени для преобразования вашего видео. Если ваша система оснащена четырех-ядерным процессором, это не будет большой проблемой, но с более старым компьютером вам лучше запустить его ночью, или, когда вы пойдете на работу.
Я надеюсь, что это руководство было для вас полезным. Если есть что-то, что вы хотите спросить, или что-либо, чем вы хотите поделиться с нами, раздел комментариев открыт для всех.
Разбираемся с форматами и кодеками видео
Содержание
Содержание
Современные медийные платформы позволяют пользователям наслаждаться высокодетализированным видео и потрясающими аудиоэффектами в режиме онлайн.
Однако создание подобного контента было бы невозможно без существования кодеков и контейнеров.
Чем кодеки отличаются от контейнера — их часто путают
Для ответа на вопрос, чем кодеки отличаются от контейнеров, необходимо понять, что такое кодеки.
Смысл понятия «кодек» лежит прямо в его названии:
Фактически кодек — это цифровой инструмент компрессии и декомпрессии данных. Компрессия (сжатие данных) необходима для экономии занимаемого файлом места. Например, несжатое видео высокой четкости в raw-формате, при 60 кадрах в секунду способно достигать размеров в полтерабайта на каждый час записи.
Восьмиканальная аудиодорожка в 24-битном разрешении будет занимать 16 мегабит за одну секунду записи. Такие объемы данных не подходят ни для штатного хранения, ни для их передачи онлайн, поэтому для их сжатия применяются специальные формулы, которые и называются кодеками.
Для хранения сжатой информации создаются контейнеры-обертки в определенном формате. Современные контейнеры способны хранить информацию, обработанную разными кодеками. Такие обертки указывают устройству на то, какими кодеками была сжата информация, и по какой формуле ее восстанавливать.
Если разобрать стандартное видео со звуком на кодеки и контейнеры, в результате получится три составные части:
В случае если в видео нет звука, аудиокодек не нужен.
Популярные и прогрессивные кодеки
Большинство создаваемого видеоконтента обрабатывается кодеками XviD, MPEG-1\2, H.264, MPEG-4, DivX, WMV, MJPEG, RealVideo, Bink Video и их вариациями. Для аудиоформатов в основном используют AAC, Opus и MP3-кодеки. Из новинок стоит отметить кодек H.266/VVC, разрабатываемый для потоковой передачи видео в 4K и 8K.
Новый кодек позволяет вдвое сократить объем файла относительно H.265 кодека за счет более сложных алгоритмов. Сложные вычисления потребляют больше ресурсов, до 1000 % от потребления H.265 при кодировании, и до 200% при декодировании.
Какие кодеки в основном поддерживаются современными ТВ и обновляются ли они с прошивкой
Современные системы поддерживают большинство существующих кодеков.
Поддержка кодеков MPEG от первого до четвертого, вариации H.264 для воспроизведения Blu-Ray, а также XviD и DivX, входят в базовый пакет любого современного телевизора.
Ведущие производители всегда следят за ошибками и актуальностью своего программного обеспечения.
Обновление кодеков в процессе прошивки регулируется разработчиками индивидуально под каждую модель SmartTV.
Если новые кодеки необходимы, поддерживаются устройством на аппаратном уровне и не вызывают ошибок отображения, ничего не мешает разработчикам добавить их в ближайших обновлениях.
Не все устройства совместимы с новыми кодеками, поэтому установка неофициальных обновлений прошивки не рекомендуется потому как может привести к ошибкам воспроизведения.
Какие кодеки используются при проигрывании онлайн-видео (современные кодеки youtube)
В настоящее время стандартом большинства видеосервисов стали кодеки H.264 и MPEG-4, значительно реже встречаются кодеки FFDshow, XviD и DivX.
Одним из самых перспективных кодеков является бесплатный AV1-кодек. Разработан сообществом AOMedia, включающим в себя таких гигантов как AMD, Google, Netflix, Mozilla, Nvidia, Intel, ARM и Cisco. Исходный код кодека открыт и свободно распространяется без каких-либо лицензионных отчислений.
Что даст конечному пользователю переход ютуба на современный AV1
Кодек AV1 разрабатывался для воспроизведения видео онлайн, в браузерах Safari, Firefox, Edge и Chrome. Степень сжатия видео кодеком AV1 превосходит кодеки VP8 и H.264 от 30% до 50%, а кодек HEVC до 30–43 % на высоких битрейтах.
Полный переход видео платформы YouTube на AV1-кодек не только ускорит загрузку всех видеороликов от 20% до 50%, но и позволит стримить в разрешении 4K.
Для минимизации потерь качества, при сохранении и конвертации файла рекомендуется использовать кодеки AV1 для видео и Opus для аудио, обернутые в MP4-контейнер.
Что такое кодеки и что с ними делать
Кодек – программный инструмент для кодирования и декодирования мультимедийной информации. И скорее всего, большинство, прочитав это определение, не поймет, что такое кодек. Поэтому предлагаем вам подробную статью, в которой мы разберемся с самим понятием, предназначением кодеков, принципом кодирования, а также рассмотрим самые популярные кодек-паки и дадим рекомендации по выбору подходящего.
Что такое кодек
Название codec – сокращение от coder/decoder возникло практически одновременно с первыми кодеками и быстро прижилось. По сути, кодек видео и кодек аудио – два типа программ, построенных по схожему принципу и используемых для сжатия и распаковки видеоряда и звуковой дорожки соответственно. Сжатие происходит за счет удаления повторяющихся фрагментов. Без этого мультимедийные файлы занимали бы в разы больше места, и тогда, даже при современном скоростном интернете, онлайн-кинотеатры и музыкальные библиотеки вряд ли завоевали бы популярность и вообще смогли бы работать.
Посчитайте сами: не сжатый кодеком часовой видеоролик в raw с частотой 60 кадров/сек займет на носителе информации около 500 ГБ; 8-канальное аудио – примерно 16 МБ за минуту.
Сам по себе кодек – обработчик, который ничего не хранит и не запоминает. Поэтому для того, чтобы сжатый кодеком файл впоследствии получилось распаковать и открыть на любом устройстве, необходим еще один элемент – контейнер. Контейнер – то, что мы привыкли в быту называть форматом, он хранит информацию о том, какой видеокодек и аудиокодек были использованы для сжатия определенного файла.
Чем отличаются кодек и контейнер?
Кодек проще всего представить в виде набора инструкций, которые выполняются с файлом, если к тому прикреплен соответствующий контейнер с данными. При этом ни первый, ни второй не предназначены для воспроизведения видео и аудио. Чтобы воспроизвести мультимедиа, нужен проигрыватель. В нём, в свою очередь, звук и картинка будут отображаться только при наличии нужного кодека. Иначе на экране появится сообщение об ошибке, чаще всего в нем будет написано что-то вроде «Отсутствует нужный кодек».
В зависимости от способа применения, кодек может выступать создателем контейнера или его обработчиком. Проще говоря, когда вы включаете запись с экрана компьютера, чтобы сохранить себе прямую трансляцию интересного вебинара, некий кодек создает контейнер и записывает в него картинку и звук в виде данных. Когда же вы захотите воспроизвести полученную запись, этот же кодек откроет контейнер и преобразует сохраненную внутри него информацию обратно в картинку и звук. Также кодек способен изменить содержимое контейнера, например, если вы захотите конвертировать запись в другой формат, нарезать ее или сжать. То, в каком качестве запишется и будет воспроизводиться запись, зависит от кодеков и настроек программы, через которую велась съемка с экрана.
Какие бывают форматы кодеков
Форматов кодеков, как минимум, столько же, сколько форматов мультимедийных файлов. Поэтому тем, кому часто приходится просматривать или работать с файлами, снятыми на разных устройствах, приходится держать на компьютере набор всевозможных кодеков. Впрочем, не все из них и не всегда нужно где-то скачивать и устанавливать отдельно. Но сначала разберемся, какие самые популярные форматы видео и аудио кодеков существуют.
Этот список кодеков далеко не полный, в нем нет почти не встречающихся «в быту» кодеков для редких форматов OGG, AAC, QT, 3GP и пр. Но скорее всего, в наше время, для прослушивания музыки и просмотра видео вы не станете искать и скачивать каждый кодек отдельно, а выберите или проигрыватель с предустановленными кодеками, или пакет с полным набором кодеров/декодеров под любой формат.
Dolby Stereo Digital и кодировка АС-3
В статье о кодеках нельзя не упомянуть о самой популярной системе кодирования звука в профессиональной кинематографии и цифровом телевещании высокого качества – Dolby Stereo Digital. Формат, родившийся на стыке аналогового и цифрового звука в 90-е годы прошлого века прочно закрепился на рынке и не планирует сдавать позиции. Именно благодаря нему появились Dolby Surround Digital – домашние кинотеатры со звуком, способным буквально погружать в атмосферу фильма за счет своей объемности. Вот только для того, чтобы аудиодорожка звучала правильно при воспроизведении фильма на компьютере или смарт-телевизоре, на устройстве опять же должен быть предустановлен кодек – AC-3.
AC-3 (audio codec) – аудиокодек третьего поколения, необходимый для корректного кодирования и декодирования файлов с многоканальным звуком. Чаще всего с помощью AC-3 кодируют звуковые дорожки видео, воспроизводимого с носителя или потокового, например, в телевизионных трансляциях по цифровым кабельным телеканалам.
Что такое пакеты кодеков
Скачивать и устанавливать кодеки пакетами гораздо удобнее хотя бы потому, что не нужно разбираться, какой для чего нужен. К тому же, пакеты обычно универсальные и поддерживают развертывание на разных устройствах: телевизорах, гаджетах на Android и iOS, в плеерах и браузерах компьютеров и ноутбуков. На начало 2000-х топ-3 самых лучших и популярных кодек-паков с регулярным обновлением выглядит так:
Отличия между пакетами кодеков не настолько существенные, чтобы стоило вдаваться в эти подробности. Когда важен размер файла с кодеками стоит выбрать lite-версию, такая есть у K-Lite Codec Pack, если же нужно получить поддержку максимального числа форматов и при этом место на накопителе можно не экономить, то лучше скачать и установить более объемный и полный Media Player Codec Pack с поддержкой практически всех типов мультимедийных файлов.
О том, как скачать, установить и обновить кодеки читайте по ссылке ниже
Что делают кодеки
Кодеки умеют сжимать мультимедийный контент и распаковывать его обратно, если сжатие было произведено без потери качества. О том, для чего нужно сжимать звук и видео, мы уже упоминали. Теперь давайте на наглядном примере разберемся с тем, что делают кодеки с файлом, чтобы он занимал меньше места на накопителе.
Сжатие с потерей качества. Когда качество не так важно, как размер итогового файла, его можно сжать до минимально возможного размера, например, в 200 раз с применением XviD. Но при таком радикальном сжатии чаще всего никак не обойтись без потери некоторой части информации из файла. разумеется, речь не о целых кадрах или отрезках аудио, а о несущественных их элементах: оттенках, детализации, не воспринимаемых или плохо воспринимаемых человеческим ухом звуках. Все это при сжатии с потерей качества безвозвратно удаляется для экономии места на накопителе.
Сжатие без потери качества. Такой вариант сжатия предполагает, что будет удалена преимущественно дублирующаяся информация. При этом данные о ее наличии сохранятся, и благодаря им при воспроизведении кодек вернет вырезанное на место. Для наглядности, представьте себе японский кроссворд – закрашенные ячейки зашифрованы цифрами на полях. Вот сжатие без потери качества выглядит похоже – в сжатом файле в определенном виде остаются данные о том, что и в каком месте нужно вернуть на место. Обычно это статичные сцены, повторяющиеся подряд звуки и т. п.
Как и в случае с воспроизведением/распаковкой, сжимать файлы сам кодек не способен. Обычно этим занимаются отдельные программы – конвертеры, они же позволяют изменять форматы файлов для более удобного их воспроизведения на разных устройствах.
Как происходит кодирование видео и аудио
Кодирование видео и аудио при помощи кодеков происходит следующим образом:
Таким образом на выходе от каждого мегабайта мультимедийных данных остается не больше четверти, а иногда и 1/200 от исходного объема. При этом некоторые современные технологии кодирования позволяют сжимать картинку и звук так ювелирно, что даже самый взыскательный потребитель аудио и видео контента не заметит потерь в качестве.
Какой кодек использовать?
Кодеки для прослушивания музыки и просмотра видеозаписей на компьютере. Для этих целей не обязательно погружаться в мир аудио и видео кодеков. Достаточно скачать плеер, в котором все нужные кодеры/декодеры добавлены по умолчанию. Среди бесплатных программ с такими возможностями чаще всего выбирают:
На мобильных устройствах, в смарт-приставках и «умных» телевизорах кодеки для воспроизведения тех или иных форматов добавлены в прошивки. Поэтому вручную заботиться об их выборе и обновлении обычно не приходится. Особенно просто решается вопрос с невозможностью воспроизвести какой-либо файл на Android – устанавливаете VLC Media Player из Google Play и открываете в нём.
Кодеки для YouTube. Негласным стандартом используемых кодеков для львиной доли видеосервисов уже много лет являются H.264 и MPEG-4. Именно на их базе происходит кодирование и декодирование видео и аудио в роликах на YouTube и сериалах на Netflix. Но параллельно с этим интернет массово мигрирует на сравнительно свежую разработку – кодек AV1, который эффективно сжимает и быстрое распаковывает. Когда Ютуб и другие видеоплатформы перейдут на новинку окончательно, скорость буферизации просматриваемых видео может сократиться практически в два раза в сравнении с сегодняшней ситуацией, и это при полностью одинаковой скорости интернета. Разумеется, на качестве такое экстремальное сжатие нисколько не скажется, а там, где плохо с доступом к сети, появится возможность смотреть ролики в 4k.
С самим понятием и тем, какие кодеки нужны для воспроизведения разных форматов файлов, разобрались. Осталось выяснить что делать с кодеками тем, кто не просто смотрит, но и занимается монтажом видео или сводит музыкальные треки.
Кодеки для монтажа видео и звука. На фоне растущей популярности видеоконтента – видео смотрят чаще, чем слушают подкасты и читают тексты, – всё больше людей пробуют себя в роли видеоблогера или режиссера, который собирает интересные подборки и дайджесты готовых видеозаписей. И одной из самых часто встречающихся сложностей у тех, кто только знакомится с видеомонтажом, оказывается необходимость сводить видео и звуки в разных форматах. Склеить из SWF-анимации начала 2000-х и современного 4к-клипа приятную глазу картинку – задача для профессионала. А тем, кто только учится монтажным премудростям, пригодится конвертер.
Movavi Video Converter – пример современного, удобного, доступного и простого в использовании конвертера. Программа не перегружена лишними функциями, а также без проблем и дополнительных настроек справляется с поставленными перед ней задачами, если в системе установлены необходимые для этого кодеки. В ней можно сжимать и изменять форматы картинок, видеозаписей, аудиофайлов в разных расширениях. Разобраться легко, потому что интерфейс качественно локализован на русский язык и снабжен детальной справкой, буквально по каждой кнопке и меню.
Как самостоятельно сжать видео в Movavi Video Converter
Необходимость сжать видео может появиться в самых разнообразных ситуациях. например, чтобы поместить больше записей на флешку или собрать ролики из отпуска, снятые на разные телефоны, в один семейный фильм. Для того, чтобы добиться желаемого, вам понадобится:
На сайте программы Movavi Video Converter есть больше информации о том, как работает конвертер, а также доступны видеоуроки. Узнайте больше о Movavi Video Converter по ссылке ниже.
Подведем итог: кодек – программа, без которой видео и аудиофайлы занимали бы неоправданно много места. Для удобства лучше скачивать их пакетами или устанавливать проигрыватели с поддержкой кодеков «из коробки». Когда нужно аккуратно смонтировать ролик из видео, снятых на разных устройствах, желательно подогнать их все под одни параметры при помощи конвертера. Movavi Video Converter позволяет сжимать, стабилизировать, конвертировать, нарезать файлы быстро и без сложных настроек. Все нужные для этого кодеки в конвертере присутствуют, нужно просто скачать, установить и можно пользоваться.
Просто о видеокодировании
Просто о видеокодировании
ГЛАВА 1
Основная информация о технологии видеокодирования: краткая историческая справка, основные этапы видеокодирования, основные алгоритмы кодирования в стандартах AVC/H.264 и HEVC/H.265.
Сложно представить сейчас область человеческой деятельности, в которую бы, так или иначе, не проникло цифровое видео. Мы смотрим его по телевизору, на мобильных устройствах, на стационарных компьютерах, снимаем его сами цифровыми камерами, сталкиваемся с ним на автодорогах (неприятно, но факт), в магазинах, в больницах, школах и вузах, на промышленных предприятиях самых разных профилей. Как следствие, в нашу жизнь все прочнее и шире входят слова и термины, непосредственно связанные с цифровым представлением видеоинформации. Время от времени возникают и вопросы из этой области. Чем различаются и что делают различные устройства или программы, которые мы используем для кодирования/декодирования цифровых видеоданных? Какие из этих устройств/программ лучше или хуже и в чем? Что означают все эти бесконечные MPEG2, H.264/AVC, VP9, H.265/HEVC и т.д. Попробуем разобраться.
Совсем краткая историческая справка
Первый общепринятый стандарт видео компрессии MPEG2 был окончательно принят в 1996 году, после чего началось быстрое развитие цифрового спутникового телевещания. Следующим стандартом стал MPEG4 part 10 (H.264/AVC), обеспечивающий в два раза большую степень сжатия видеоданных. Он был принят в 2003 году, что стало толчком к развитию систем DVB-T/C, Интернет ТВ и к появлению разнообразных сервисов видеообмена и видеосвязи. С 2010 по 2013 годы международной группой Joint Collaborative Team on Video Coding (JCT-VC) велась интенсивная работа по созданию следующего стандарта сжатия видеоданных, названного разработчиками High Efficient Video Coding (HEVC), который обеспечил следующее двукратное увеличение степени сжатия цифровых видеоданных. Этот стандарт был утвержден в 2013 году. В этом же году принят стандарт VP9, разрабатывавшийся компанией Google, который должен был не уступать HEVC по степени сжатия видеоданных.
Основные этапы видеокодирования
В основе алгоритмов компрессии видеоданных лежит несколько простых идей. Если взять некоторую часть изображения (в стандартах MPEG2 и AVC эту часть называют макроблок), то с большой вероятностью вблизи этого участка в данном кадре или в соседних кадрах окажется участок, содержащий похожее, мало отличающееся по значениям интенсивности пикселов, изображение. Таким образом, для передачи информации об изображении в текущем участке достаточно передать только его отличие от ранее закодированного похожего участка. Процесс поиска похожих участков среди ранее закодированных изображений называют предсказанием (Prediction). Набор разностных значений, определяющих отличие текущего участка от найденного предсказания, называют остатком (Residual). Здесь можно выделить два основных типа предсказания. В первом из них значения Prediction представляют собой набор линейных комбинаций пикселов, примыкающих к текущему участку изображения слева и сверху. Такое предсказание называют пространственным (Intra Prediction). Во втором – в качестве предсказания используются линейные комбинации пикселов похожих участков изображений с ранее закодировнных кадров (эти кадры называют Reference). Такое предсказание называют временным (Inter Prediction). Для восстановления изображения текущего участка, закодированного с временным предсказанием, при декодировании необходима информация не только об остатке (Residual), но и о номере кадра, на котором находится похожий участок, и координатах этого участка.
Полученные при предсказании значения Residual, очевидно, содержат в среднем меньше информации, чем исходное изображение и, следовательно, требуют меньшего количества битов для передачи изображения. Для дальнейшего повышения степени компрессии видеоданных в системах видеокодирования используют какое-либо спектральное преобразование. Как правило, это косинус-преобразование Фурье. Такое преобразование позволяет выделить основные гармоники в остаточном двумерном сигнале Residual. Такое выделение производится на следующем этапе кодирования – квантовании. Последовательность квантованных спектральных коэффициентов содержит небольшое количество главных, больших по величине, значений. Остальные значения с большой вероятностью являются нулевыми. В результате количество информации, содержащееся в квантованных спектральных коэффициентах, оказывается существенно (в десятки раз) ниже, чем в исходном изображении.
На следующем этапе кодирования полученный набор квантованных спектральных коэффициентов, сопровождаемый информацией, необходимой для выполнения предсказаний при декодировании, подвергается энтропийному кодированию. Суть здесь заключается в том, чтобы наиболее часто встречаемым в кодируемом потоке значениям поставить в соответствие наиболее короткое кодовое слово (содержащее наименьшее количество бит). Наилучшую степень сжатия (близкую к теоретически достижимой) на этом этапе обеспечивают алгоритмы арифметического кодирования, которые в основном и используются в современных системах видеосжатия.
Из вышесказанного становятся очевидны основные факторы, влияющие на эффективность той или иной системы видеокомпрессии. Прежде всего – это, конечно, факторы, определяющие эффективность пространственного и временного предсказаний. Второй набор факторов связан с ортогональным преобразованием и квантованием, выделяющим основные гармоники в остаточном сигнале Residual. Третий – определяется объемом и компактностью представления дополнительной информации, сопутствующей Residual и необходимой для выполнения предсказаний, то есть вычисления Prediction, в декодере. Наконец, четвертый набор – факторы, определяющие эффективность заключительного этапа – энтропийного кодирования.
Проиллюстрируем возможные варианты (далеко не все) реализации перечисленных выше этапов кодирования на примере H.264/AVC и HEVC.
Стандарт AVC
В стандарте AVC основной структурной единицей изображения является макроблок – квадратная область размером 16×16 пикселей (рис. 1). При поиске наилучшего варианта предсказания кодер может выбирать один из нескольких вариантов разбиения каждого макроблока. При пространственном Intra-предсказании таких вариантов три: выполнить предсказание для всего блока целиком, разбить макроблок на четыре квадратных блока размером 8×8 или на 16 блоков размером 4×4 пикселя и выполнять предсказание для каждого такого блока независимо. Количество возможных вариантов разбиений макроблока при временном Inter-предсказании существенно богаче (рис. 1), что обеспечивает адаптацию размера и положения предсказываемых блоков к положению и форме границ движущихся в видеокадре объектов.
Рис. 1. Макроблоки в AVC и возможные разбиения при Inter-предсказании
В AVC для пространственного предсказания используются значения пикселов из столбца слева от предсказываемого блока и строки пикселей, расположенной непосредственно над ним (рис. 2). Для блоков размеров 4×4 и 8×8 предусмотрено 9 способов предсказания. При предсказании, называемом DC, все рассчитанные пиксели имеют одно значение, равное среднему арифметическому «пикселей-соседей», выделенных на рис. 2 толстой линией. В остальных режимах выполняется «угловое» предсказание. При этом значения «пикселей-соседей» расставляются внутри предсказываемого блока в направлениях, указанных на рис. 2. В том случае, когда предсказываемый пиксел «попадает» при движении в заданном направлении между «пикселями-соседями», для предсказания используется интерполированное значение. Для блоков размером 16×16 пикселей предусмотрено 4 способа предсказания. Один из них – это уже рассмотренное DC-предсказание. Два других соответствуют «угловым» способам, с направлениями предсказания 0 и 1. Наконец при четвертом – Plane-предсказании – значения предсказываемых пикселей определяются уравнением плоскости. Угловые коэффициенты уравнения определяются по значениям «пикселей-соседей».
Рис. 2. «Пиксели-соседи» и угловые режимы Intra-предсказания в AVC
Временное предсказание в AVC может быть реализовано в одном из двух вариантов. Каждый из этих вариантов определяет тип макроблока (P или B). В качестве предсказания значений пикселов в P-блоках (Predictive-блоках) используются значения пикселов из области, расположенной на ранее закодированном (reference) изображении. Reference-изображения не удаляются из буфера в оперативной памяти, содержащего декодированные кадры (decoded picture buffer, DPB), до тех пор, пока они могут понадобиться для Inter-предсказания. Из индексов этих изображений в DPB формируется список (reference list). Кодер сигнализирует декодеру о номере reference-изображения в списке и о смещении области, используемой для предсказания, относительно положения предсказываемого блока (это смещение называют «вектором движения», motion vector). Смещение может быть определено с точностью до ¼ пикселя. При предсказании с нецелочисленным смещением выполняется интерполяция. Разные блоки на одном изображении могут предсказываться по областям, расположенным на разных reference-изображениях.
Как уже было сказано, следующим этапом кодирования после предсказания значений кодируемого блока и вычисления разностного сигнала Residual является спектральное преобразование. В AVC предусмотрено несколько вариантов ортогональных преобразований остаточного сигнала Residual. При Intra-предсказании всего макроблока размером 16×16 остаточный сигнал разбивается на блоки размером 4×4 пикселя, каждый из которых подвергается целочисленному аналогу дискретного двумерного 4×4 косинус-преобразования Фурье. Полученные спектральные компоненты, соответствующие в каждом блоке нулевой частоте (DC), подвергаются затем дополнительному ортогональному преобразованию Уолша-Адамара. При временном Inter-предсказании остаточный сигнал Residual разбивается на блоки размером 4×4 пикселя или 8×8 пикселей. Каждый такой блок подвергается затем соответственно 4×4 или 8×8 двумерному косинус-преобразованию Фурье (точнее его целочисленному аналогу).
На следующем этапе спектральные коэффициенты подвергаются процедуре квантования. Это приводит к уменьшению разрядности чисел, представляющих значения спектральных отсчетов, и к существенному увеличению количества отсчетов, имеющих нулевые значения. Эти эффекты обеспечивают сжатие, т.е. уменьшают количество и разрядность чисел, представляющих закодированное изображение. Оборотной стороной квантования является искажение кодируемого изображения. Понятно, что чем больше шаг квантования, тем больше степень сжатия, но и тем больше вносимые искажения.
Заключительным этапом кодирования в AVC является энтропийное кодирование, реализованное по алгоритмам контекстно-адаптивного двоичного арифметического кодирования (Context Adaptive Binary Arithmetic Coding). Этот этап обеспечивает дополнительное сжатие видеоданных без внесения искажений в закодированное изображение.
Десять лет спустя. Стандарт HEVC: что нового?
Новый стандарт H.265/HEVC является развитием методов и алгоритмов сжатия видеоданных, заложенных в H.264/AVC. Рассмотрим очень коротко основные отличия.
Аналогом макроблока в HEVC является Coding Unit (CU). Внутри каждого такого блока выбираются области для вычисления Prediction – Prediction Unit (PU). Каждая CU, кроме того, задает границы, в пределах которых выбираются области для вычисления дискретного ортогонального преобразования от остаточного сигнала Residual. Эти области носят название Transform Unit (TU). Основной отличительной чертой HEVC здесь является то, что разбиение видеокадра на CU производится адаптивно, так что есть возможность подстраивать границы CU под границы объектов на изображении (рис. 3). Такая адаптивность позволяет добиваться исключительно высокого качества предсказания и, как следствие, малого уровня остаточного сигнала Residual. Несомненным плюсом такого адаптивного подхода к разбиению кадра на блоки является также крайне компактное описание структуры разбиений. Для всей видеопоследовательности задаются максимальный и минимальный возможные размеры CU (например, 64х64 – максимально возможная CU, 8×8 – минимально). Весь кадр в порядке слева-направо, сверху-вниз покрывается максимально возможными CU. Очевидно, что для такого покрытия не требуется передачи какой-либо информации. Если в пределах той или иной CU требуется выполнить разбиение, то это индицируется одним флагом (Split Flag). Если этот флаг установлен в значение 1, то данная CU разбивается на 4 CU (при максимальном размере CU 64×64, после разбиения получаем 4 CU размером 32х32 каждая). Для каждой из полученных CU в свою очередь может быть передано значение Split Flag равное 0 или 1. В последнем случае такая CU опять разбивается на 4 CU меньшего размера. Процесс продолжается рекурсивно, пока Split Flag всех полученных CU не будет равен 0 или пока не будет достигнут минимально возможный размер CU. Вложенные CU образуют, таким образом, квадродерево (Coding Tree Units, CTU).
Рис. 3. Разбиение видеокадра на CU производится адаптивно
Как уже было сказано, в пределах каждой CU выбираются области для вычисления предсказания – Prediction Unit (PU). При пространственном предсказании область CU может совпадать с PU (режим 2Nx2N) или может быть разбита на 4 квадратных PU вдвое меньшего размера (режим NxN, доступный только для CU минимального размера). При временном предсказании возможны 8 вариантов разбиения каждой CU на PU (рис. 3).
Pic. 4. Возможные разбиения Coding Unit на Prediction Unit при пространственном (Intra) и временном (Inter) режимах предсказания CU
Идея пространственного предсказания в HEVC осталась той же, что и в AVC. В качестве предсказанных значений отсчетов в блоке PU используются линейные комбинации значений пикселей-«соседей», примыкающих к блоку слева и сверху. Однако, набор способов пространственного предсказания в HEVC стал существенно богаче. Кроме Planar (аналог Plane в AVC) и DC способов каждая PU может быть предсказана одним из 33 способов «углового» предсказания. Т.е. количество направлений, в которых расставляются рассчитанные по пикселам-«соседям» значения увеличено в 4 раза.
Можно указать два основных отличия временного предсказания HEVC от AVC. Во-первых, в HEVC используются более качественные интерполяционные фильтры (с более длинной импульсной характеристикой) при расчете reference-изображений при нецелочисленном смещении. Второе отличие касается способа представления информации о reference-области, необходимой декодеру для выполнения предсказания. В HEVC введен «режим слияния» (merge mode), при котором различные PU, имеющие одинаковые смещения reference-областей, объединяются. Для всей объединенной области информация о движении (motion vector) передается в потоке один раз, что позволяет существенно сократить объем передаваемой информации.
В HEVC размер дискретного двумерного преобразования, которому подвергается остаточный сигнал Residual, определяется размером квадратной области, называемой Transform Unit (TU). Каждая CU является корнем квадродерева TU. Таким образом, TU верхнего уровня совпадает с CU. Корневая TU может быть разбита на 4 части вдвое меньшего размера, каждая из которых, в свою очередь, является TU и может быть разделена далее. Размер дискретного преобразования определяется размером TU нижнего уровня. В HEVC определены преобразования для блоков 4-х размеров: 4×4, 8×8, 16×16, 32×32. Эти преобразования являются целочисленными аналогами дискретного двумерного косинус-преобразования Фурье соостветствующего размера. Для TU размером 4×4 при Intra-предсказании предусмотрено также отдельное дискретное преобразование, являющееся целочисленным аналогом дискретного синус-преобразования Фурье.
Идеи процедуры квантования спектральных коэффициентов сигнала residual а также энтропийного кодирования в AVC и в HEVC практически идентичны.
Отметим еще один момент, о котором ранее не было сказано. Существенное влияние на качество декодированных изображений и на степень сжатия видеоданных оказывает пост-фильтрация, которой подвергаются декодированные изображения с Inter-предсказанием перед помещением их в DPB. В AVC предусмотрен один вид такой фильтрации – deblocking filter. Применение фильтра снижает блочный эффект, возникающий в результате квантования спектральных коэффициентов после ортогонального преобразования сигнала Residual.
В HEVC применяется аналогичный deblocking filter. Кроме того, предусмотрена дополнительная процедура нелинейной фильтрации, называемая Sample Adaptive Offset (SAO). На основе анализа распределения значений пикселов при кодировании определяется таблица корректирующих смещений, добавляемых к значениям части пикселов CU при декодировании.
А что в результате?
На рис. 4-7 представлены результаты кодирования нескольких видеопоследовательностей высокого (HD) разрешения двумя кодерами. Один из кодеров производит сжатие видеоданных в стандарте H.265/HEVC (на всех графиках результаты работы этого кодера отмечены как HM), второй – в стандарте H.264/AVC.
Pic. 5. Результаты кодирования видеопоследовательности Aspen
(1920×1080 30 кадров в секунду)
Pic. 6. Результаты кодирования видеопоследовательности BlueSky
(1920×1080 25 кадров в секунду)
Pic. 7. Результаты кодирования видеопоследовательности PeopleOnStreet
(1920×1080 30 кадров в секунду)
Pic. 8. Результаты кодирования видеопоследовательности Traffic
(1920×1080 30 кадров в секунду)
Кодирование производилось при различных значениях шага квантования спектральных коэффициентов и, как следствие, с различным уровнем искажений, вносимых в видеоизображения. Результаты представлены в координатах битрейт (Мбит/с) – PSNR (дБ). Значения PSNR как раз и характеризуют степень искажений. В среднем можно говорить о том, что диапазон PSNR ниже уровня 36 дБ соответствует высокому уровню искажений, т.е. низкому качеству видеоизображений. Диапазон 36 – 40 дБ соответствует среднему качеству. При значениях PSNR выше 40 дБ можно говорить о высоком качестве видео. Можно примерно оценить степень сжатия, обеспечиваемую системами кодирования. В области среднего качества битрейт, обеспечиваемый HEVC-кодером, примерно в 1.5 раза меньше битрейта на выходе AVC-кодера. Битрейт несжатого видеопотока легко определяется как произведение количества пикселов в каждом видеокадре (1920 x 1080) на количество битов, необходимых для представления каждого пиксела (8+2+2=12), и на количество кадров в секунду (30). В результате получаем около 750 Мбит/c. Из графиков видно, что в области среднего качества AVC-кодер обеспечивает битрейт порядка 10–12 Мбит/с. Таким образом, степень сжатия видеоинформации составляет порядка 60-75 раз. Как уже было сказано, для HEVC-кодера степень сжатия в 1.5 раза выше.