Сжатие h 264 main profile в регистраторах. Сжатие видео. Да, это магия

Сегодня камеры наблюдения можно увидеть практически на каждом шагу. Возможно, вы также планируете установить одну или несколько камер у себя дома. Такие устройства работают с видеофайлами форматов.264 или H.264. Но как посмотреть видео и чем открыть файл рассмотрим в статье.

Различия и сходства форматов 264 и H.264

Формат.264 – это необработанные элементарные потоки видеофайлов H.264-ES (еще называют временным видео-файлом MPEG-4). В свою очередь H.264-ES является частью спецификации формата H.264. Старые модели видеорегистраторов записывают видео в формате.264. Такие видеофайлы не могут использоваться для прямого просмотра обычными проигрывателями и требуют обработки специальными программами.

Позволяет уменьшить видеозапись до минимального размера. После того, как видеозаписи проходят полное сжатие, качество видео и аудио по-прежнему остается на высоком уровне. С этим форматом работают камеры видеонаблюдения и видеорегистраторы нового образца. Файлы H.264 еще называются MPEG-4 Part 10 AVC/H.264. Несмотря на длинное и страшное название в сети очень легко найти проигрыватель файлов H.264.

Для открытия таких файлов необходимо воспользоваться одним из нижеперечисленных способов:

  • использовать специальные программы и утилиты;
  • выполнить конвертацию видеофайлов.

Открытие видео H.264

Практически все популярные программы и конвертеры работают с форматом H.264, Популярными являются:

Работа с форматом.264

Давайте рассмотрим более подробно, чем открыть файл.264 с видеорегистратора или камеры наблюдения.

Специальные программы

Для открытия видео.264 станут полезными следующие программы:

Видеофайлы.264 можно объединить или разъединить. Как это сделать мы рассмотрим дальше.

Утилиты

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

  1. Demuxer – умеет создавать записи dsm или mpc. Стоит отметить, что файлы dsm можно воспроизвести только в этой утилите.
  2. MKVcleaver – с ее помощью вы сможете вырезать видео в.MKV.
  3. Mkvmerge – способна изменить, вырезать, объединить или разъединить видеофайлы. После обработки видео качество видео не ухудшается, а формат меняется на.MKV.
  4. Haali Muxer – может помочь в преобразовании, объединении или разъединить видеофайлов. После обработки видео ему присваивается формат.MKV.
16.12.2015

Алгоритм сжатия H.264+ – инновационная разработка компании Hikvision. По своей сути H.264+ представляет собой кодек H.264/AVC, модифицированный под задачи видеонаблюдения и с учетом его специфики, чтобы повысить степень сжатия без ущерба для качества видео.

Специфика видеонаблюдения заключается в следующем:

    фон стабилен и практически не изменяется;

    движущиеся объекты появляются редко и могут отсутствовать в течение продолжительного времени;

    интерес представляют только движущиеся объекты;

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

H.264+ повышает степень сжатия за счет 3 ключевых факторов:

    кодирование с предсказанием на основе модели фона,

    фоновое шумоподавление,

    долгосрочное управление видеопотоком.

Кодирование с предсказанием

Все современные алгоритмы сжатия, такие как MPEG2, MPEG4, H.264/AVC и самый современный алгоритм HEVC, сочетают внутрикадровое и межкадровое сжатие. I-кадры (опорные кадры) кодируются независимо от других кадров, то есть используется внутрикадровое сжатие, тогда как для кодирования P-кадров (предсказанные кадры) используются I-кадры и другие P-кадры (межкадровое сжатие). В случае межкадрового сжатия эффективность будет сильно зависеть от выбора опорного кадра.

В области видеонаблюдения фон, как правило, стабилен. Его можно извлечь и использовать в качестве опорного кадра.

Рис. 1. Модель фона

На Рис. 1 показана последовательность из 3 кадров, где кадры T0 и T1 уже подверглись обработке кодеком. Здесь можно взять фон в качестве опорного кадра и сжать кадр T2 на основе с учетом сходства и разницы между кадром T1 и фоном. Кадр T0 будет хорошим выбором в качестве фонового изображения.

Для примера возьмем Рис. 2, на котором автомобиль перемещается из области B в A (из кадра T1 в кадр T2). При кодировании кадра T2 область B становится вновь открывшимся участком.


Рис. 2. Объект перемещается из B в A

Если в качестве опорного кадра выбран T1, то никакой оптимизации не получится для области B и информацию о ней придется передавать заново. Поскольку кодируется именно разница между новым и опорным кадром.


Рис.3. Традиционная схема кодирования с опорным кадром

Но если мы возьмем в качестве опорного кадра T0, в большинстве случаев мы получим оптимизированный блок для области B. Тем не менее, если мы сохраним информацию о фоне и возьмем в качестве опорного кадра T1, мы найдем идеальные блоки для кодирования кадра T2, что гарантирует высокое качество изображения и уменьшенный размер видеопотока.


Рис. 4. Схема кодирования с фоном в качестве опорного кадра

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

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

Для того чтобы уменьшить удельный вес этих повторов в видеопотоке, в кодеке H.264+ используется метод работы с опорными кадрами на основе модели фона, показанный на Рис. 5.


Рис. 5. Работа с опорными кадрами на основе модели фона в H.264+

На Рис. 5. красным цветом показаны опорные кадры фона, в которых используется внутрикадровое сжатие. Синим цветом здесь отмечены кадры обновления, в которых применяется внутрикадровое сжатие для участков с движущимися объектами, обведенными красной рамкой на Рис. 6., и межкадровое сжатие – для неподвижных объектов. Белым цветом показаны обычные кадры с межкадровым сжатием.

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


Рис. 6. Кодирование кадров обновления в H.264+

Шумоподавление

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

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


Рис.7. Шумоподавление в H.264+

Долгосрочное управление видеопотоком

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


Рис. 8. Колебания видеопотока в зависимости от времени суток

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

Для более полной реализации такой экономии Hikvision предлагает новую концепцию управления видеопотоком, которая подразумевает долгосрочное отслеживание его флуктаций, как правило в течение 24 часов. В дальнейшем H.264+ автоматически подстраивает размер видеопотока в зависимости от времени суток, изменяя степень сжатия, но среднесуточный размер видеопотока остается неизменным в пределах выбранного значения.


Рис. 9. Долгосрочное управление видеопотоком с его перераспределением

На Рис. 9 видно, что в период времени C (активность возрастает и требуется больший размер видеопотока для получения качественного изображения) выделяется дополнительная квота за счет периодов времени A и B (активность низка и размер видеопотока снижается).

Уменьшение размера видеопотока

Для включения сжатия H.264+, необходимо чтобы размер видеопотока был переменным, при этом включается долгосрочное управление видеопотоком. Средний размер видеопотока вычисляется автоматически на основе пиковых значений. В большинстве случаев автоматически определенное значение среднего размера видеопотока не требует дополнительной подстройки. Тем не менее, иногда это может потребоваться, например, если в кадре слишком много или слишком мало движения. На Рис. 10 приведены примеры ситуаций, когда кодек Hikvision H.264+ может существенно уменьшить размер видеопотока. Эта экономия будет зависеть от размера фона и количества движения в кадре.


Внутри помещений

Активность

Экономия видеопотока


На улице

Активность

Экономия видеопотока

В темное время суток

Активность

Экономия видеопотока

Рис. 10. Экономия видеопотока в зависимости от наблюдаемой сцены

Применение

Кодек H.264+ применяется в IP-видеокамерах высокого разрешения. При сохранении качества, сопоставимого с кодеком H.264/AVC, размер видеопотока у H.264+ уменьшается. Например, при малой активности в кадре такая экономия может достигать 75%, а при наличии большого количества движущихся объектов экономия составит 50%. Впрочем, если в кадре присутствует постоянное движение, размер видеопотока у H.264+ и H.264/AVC будет сопоставимым.

Более того, пиковые значения размера видеопотока у H.264+ будут превышать среднее выбранное значение, чтобы сохранить высокое качество изображения у движущихся объектов. Чем больше таких объектов, тем больше размер видеопотока H.264+, но он никогда не превысит аналогичного значения у H.264/AVC.

Кодек H.264+ соответствует стандарту H.264/AVC и совместим практически со всем программным и аппаратным обеспечением, которое поддерживает этот стандарт. В некоторых случаях может потребоваться лишь незначительная подстройка, чтобы улучшить воспроизведение.

Оценить возможности кодека H.264+ в сравнении с H.264/AVC и его эффективность в различных условиях вы можете, посмотрев следующий видеоролик, который подготовила для вас компания Hikvision.

Как ожидается, новейший стандарт сжатия видеоизображения H.264 (известный также под названием MPEG-4 Part 10/AVC, последние буквы которого означают "передовое кодирование видеосигналов") станет в ближайшие годы самым востребованным видеостандартом.

H.264 - это открытый лицензированный стандарт с поддержкой самых эффективных на сегодняшний день технологий сжатия видеоизображения. Кодер H.264 без ущерба для качества изображения может снижать размер файла цифрового видео более чем на 80% по сравнению с форматом Motion JPEG и на 50% - по сравнению со стандартом MPEG-4 Part 2. Что означает гораздо меньшие требования к полосе пропускания для передачи и объему памяти для хранения видеофайла. Или же, с другой стороны, возможность получения гораздо лучшего качества видеоизображения при той же скорости передачи данных.

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

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

В отрасли охранного видеонаблюдения H.264, по всей вероятности, быстрее всего найдет свое применение в таких областях, которые требуют использования высокой частоты кадров и , например, для охранного наблюдения за автомагистралями, аэропортами и казино, где нормой является использование частоты 30/25 (NTSC/PAL) кадров в секунду. Наибольшая экономия будет достигнута за счет снижения требований к ширине полосы пропускания и объему свободного пространства для хранения данных.

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

Разработка стандарта H.264

H.264 является результатом совместного проекта группы экспертов по кодированию видео ITU-T и группы экспертов по вопросам кинотехники ISO/IEC (MPEG). ITU-T проводит координацию телекоммуникационных стандартов от имени Международного телекоммуникационного союза. ISO расшифровывается как Международная организация по стандартизации, а IEC - Международная электротехническая комиссия, которая осуществляет надзор за всеми электротехническими, электронными и сопутствующими им технологиями. Название H.264 используется со стороны ITU-T, в то время как ISO/IEC дали стандарту название MPEG-4 Part 10/AVC, поскольку он представляет собой новый элемент в их пакете MPEG-4. В пакет MPEG-4, к примеру, входит и MPEG-4 Part 2 - стандарт, применяемый в и сетевых камерах на базе IP-систем.

H.264, разработанный для исправления некоторых недостатков в предыдущих стандартах сжатия видеоизображений, достигает своих целей благодаря:

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

H.264 также обладает гибкостью, которая позволяет применять его для решения различных задач с самыми разными требованиями к скорости передачи данных. К примеру, в области развлекательного видео (телетрансляции, DVD, спутниковое и кабельное телевидение) H.264 способен обеспечить скорость от 1 до 10 мегабит в секунду с высоким уровнем задержки, в то время как для телекоммуникационных услуг H.264 может предложить скорость передачи данных менее 1 мегабита в секунду с низким уровнем задержки.

Как происходит сжатие видеоизображения:

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

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

Совместная работа пары алгоритмов называется видеокодеком (кодер/декодер). Видеокодеки, применяющие разные стандарты, как правило, несовместимы друг с другом, поэтому видеоданные, сжатые с использованием одного стандарта, нельзя распаковать с применением другого стандарта. К примеру, декодер MPEG-4 Part 2 не будет работать с кодером H.264. Причиной тому является тот факт, что один алгоритм не может корректно декодировать результат, полученный с помощью работы другого алгоритма, однако есть возможность оснастить множеством разных алгоритмов программное или аппаратное обеспечение, чтобы оно могло производить сжатие разных форматов.

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

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

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

Приведенный ниже график сравнивает скорость передачи данных при одинаковом уровне качества изображения следующих видеостандартов: Motion JPEG, MPEG-4 Part 2 (без компенсации движения), MPEG-4 Part 2 (с компенсацией движения) и H.264 (базовый профиль).

Рис.1. Для выбранной последовательности видеокадров кодер H.264 генерирует до 50% меньше бит в секунду по сравнению с кодером MPEG-4 с компенсацией движения. Кодер H.264, по меньшей мере, в три раза эффективнее, чем кодер MPEG-4 без компенсации движения, и по меньшей мере в шесть раз эффективнее, чем Motion JPEG.

Профили и уровни H.264

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

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

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

H.264 имеет 11 уровней или степеней ограничения требований к функциональности, пропускному каналу и памяти. Каждый уровень определяет скорость передачи данных и скорость кодирования в макроблоках в секунду для разрешений в диапазоне от QCIF до HDTV и выше. Чем выше разрешение, тем выше требуемый уровень.

Использование кадров

В зависимости от профиля H.264, кодером могу использоваться различные типы кадров, а именно I-кадры, P-кадры и B-кадры.

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

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

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

Рис. 2. Типовая последовательность I-, B- и P-кадров. P-кадр может ссылаться только на предшествующий I- или P-кадр, в то время как B-кадр может ссылаться как на предшествующий, и на последующий I- или P-кадры.

Когда видеодекодер восстанавливает видеоизображение посредством покадрового декодирования потока бит, процесс декодирования всегда должен начинаться с I-кадра. При использовании P-кадров и B-кадров они должны декодироваться вместе с ссылочными кадрами.

В базовом профиле H.264 используются только I- и P-кадры. Этот профиль идеально подходит для сетевых камер и видеокодеров из-за своего низкого уровня задержки, достигаемого за счет отсутствия B-кадров.

Основные методы сокращения данных

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


В рамках последовательности кадров сокращение видеоданных можно произвести с помощью таких методов, как кодирование по отличиям, которое используется в большинстве стандартов сжатия видеоизображения, в том числе и H.264. При кодировании по отличиям кадр сравнивается с ссылочным кадром (т.е. предыдущим I- или P-кадром) и кодируются только изменившиеся по отношению к ссылочному кадру пиксели. Таким образом сокращается количество пиксельных значений для кодирования и отправки.

Рис.3. В формате Motion JPEG три изображения в показанной выше последовательности кодируются и отправляются как отдельные уникальные изображения (I-кадры) без какой-либо зависимости друг от друга.


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

Объем кодирования можно дополнительно снизить, если обнаружение и кодирование по отличиям базируется на блоках пикселей (макроблоках), а не на отдельных пикселях - следовательно, сравниваются более крупные участки и кодируются только блоки со значительными отличиями. Снижаются также и затраты, сопутствующие указанию меняющегося места действия.

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

Эффективность H.264 выводит технологию сжатия видеоизображения на новый уровень.

Стандарт H.264 вводит новую передовую схему внутреннего предсказания при кодировании I-кадров. Данная схема может значительно сократить размер (в битах) I-кадра при сохранении высокого качества при помощи успешного предсказания маленьких блоков пикселей в рамках макроблока внутри кадра. Это происходит посредством попытки найти совпадающие пиксели среди ранее закодированных пикселей, которые ограничивают новый пиксельный блок 4x4 для внутреннего кодирования. Путем повторного использования уже закодированных пиксельных значений можно значительно сократить размер данных в битах. Новое внутреннее предсказание - это ключевой элемент технологии H.264, уже доказавший свою высокую эффективность. Для сравнения: даже если в потоке H.264 использовать только I-кадры, размер получившегося файла будет гораздо меньшим, чем для потока Motion JPEG, в котором используются только I-кадры.

Рис.6. Иллюстрации того, как можно использовать некоторые режимы внутреннего предсказания при кодировании пикселей 4x4 в рамках одного из 16 блоков, образующих макроблок. Каждый из 16 блоков внутри макроблока может кодироваться с помощью разных режимов.

Рис.7. Помещенные выше изображения иллюстрируют эффективность схемы внутреннего предсказания H.264, при которой внутренне предсказанное изображение отправляется "бесплатно". Для создания изображения на выходе необходимо закодировать только содержимое остаточного изображения и режимы внутреннего предсказания.

В H.264 также улучшена поблочная компенсация движения, применяемая при кодировании P- и B-кадров. Кодер H.264 может выбирать для поиска совпадающих блоков (вплоть до субпиксельной точности) некоторых или многих участков внутри одного или внутри нескольких ссылочных кадров. Для улучшения поиска совпадений можно также настраивать размер и форму блоков. На участках, где внутри ссылочного кадра нельзя найти никаких совпадающих блоков, используются внутренне закодированные макроблоки. Высокая степень гибкости поблочной компенсации движения в H.264 эффективна в местах видеонаблюдения за большим количеством людей, где следует сохранять требуемое для этой области применения качество изображения. Компенсация движения является наиболее востребованным аспектом видеокодера, а различные способы и уровни, при которых возможна ее реализация посредством кодера H.264, помогают повысить эффективность сжатия видеоизображения.

Со стандартом H.264 типичные блочные объекты, заметные на видеоизображениях с высокой степенью сжатия по стандартам Motion JPEG и MPEG (в отличие от H.264), можно уменьшить благодаря встроенному деблокирующему фильтру. Этот фильтр автоматически сглаживает края блоков, создавая почти идеальное развернутое видеоизображение.

Рис.8. Блочные объекты на изображении с высокой степенью сжатия слева уменьшились при применении деблокирующего фильтра, как это видно на изображении справа.

Заключение

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

H.264 представляет собой первый образец совместной работы Международного телекоммуникационного союза, Международной организации по стандартизации и Международной электротехнической комиссии по типовым международным стандартам сжатия видеоизображения. Из-за своей гибкости H.264 нашел применение в таких разнообразных областях, как DVD высокой четкости (например, Blu-ray), видеотрансляция, в том числе трансляция телевидения высокой четкости, онлайн-хранилища видеоматериалов (например, YouTube), мобильная телефонная связь третьего поколения, в таких программах, как QuickTime, Flash и в операционной системе MacOS X на компьютерах Apple, а также в игровых видеоприставках, например, PlayStation 3. Благодаря поддержке во многих отраслях промышленности и разработки программных приложений, рассчитанных на удовлетворение потребительских и профессиональных потребностей, H.264, как ожидается, заменит другие, используемые на сегодняшний день, стандарты и методы сжатия.

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

Всё более популярным становится формат компрессии видеосигнала H.264. Подробную информацию о преимуществах, которые даёт его использование, вы сможете найти в статье, приведенной ниже. Напомним, что формат сжатия видео H.264 явился совместной разработкой двух международных организаций по стандартизации и ISO/IEC; этот формат также известен под названием MPEG-4 Part 10 AVC (Advanced Video Coding, продвинутая кодировка видеосигнала).

Сжимать еще сильнее

Аппетиты видеонаблюдения в отношении объемов хранения данных и пропускной способности сетей растут: никто не хочет упустить возможность воспользоваться большой частотой кадров и высоким разрешением. Отсюда и ожидания большей эффективности от методов сжатия видеосигнала. Кодер формата H.264 способен уменьшить размер файла, содержащего цифровое видео, более чем на 80% по сравнению с сигналом, сжатым по алгоритму формата Motion JPEG, при аналогичных показателях визуального качества. В сравнении с наиболее "ходовой" разновидностью формата MPEG-4 -- MPEG-4 Part 2 Simple Profile (SP) -- кодек H.264 обычно выигрывает 40-50 процентов от объема видеофайлов.

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

По моему личному мнению (то есть мнению Джона Блема - прим. ред.) , формат H.264 почти окончательно вытеснит MPEG-4 (Part 2) в течение буквально нескольких лет. А поставщики решений управления видеонаблюдением примутся встраивать поддержку нового формата уже в ближайшем будущем, равно как и все ведущие производители видеокамер.

Ложка дегтя

Есть, однако, и факторы, сдерживающие восторг от новинки -- ведь, по сути, разработка находится еще в самом начале пути. Да, кодек позволяет снизить нагрузку на сети передачи данных и сэкономить на приобретении средств хранения видеоинформации. Но его использование возможно только в условиях применения высокопроизводительных камер. Новый алгоритм сжатия использует значительно более сложную математику, чем предыдущие стандарты -- скажем, процедура декодирования примерно вдвое превосходит аналогичную процедуру у MPEG-4 Part 2 SP по объемам вычислений -- соответственно этому растет и запрос к вычислительной мощности систем. При этом собственно стандартом H.264 стал относительно давно -- около пяти лет назад, и в некоторых отраслях -- исключая нашу с вами -- уже взят на вооружение. Скажем, он используется в новом поколении потребительских DVD-дисков высокого разрешения (формат Blu-ray).

Как это работает

H.264 является гибридным стандартом блочного кодирования видеоданных с использованием компенсации движения. Собственно компенсация основана на использовании векторов перемещения областей кадра для предсказания изменений в изображении. Поскольку для видеоизображений характерна высокая степень корреляции между двумя последовательными кадрами, возможно использовать это для кодирования не картинки целиком, а лишь векторов перемещения различных частей изображения; кодируется при этом предсказанная разница между текущим кадром и его областями, присутствующими на других кадрах (так называемых ссылочных) в смещенном относительно оригинального положения виде. Эта техника называется "промежуточное предсказание".

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

Стандартом H.264 предусматривается разбиение изображения на макроблоки размером до 16х16 пикселов каждый. Макроблоки объединяются в группы -- одну или несколько -- обычно в порядке сканирования. Таким образом, отдельное изображение может быть закодировано как одна или несколько групп. Использование группирования макроблоков позволяет применять различные методы коррекции ошибок, различные типы кодирования макроблоков, а также такие инструменты, как раздельное кодирование полукадров (на правах групп) при чересстрочной развертке.

В цветных видеоизображениях кодирование яркостной составляющей происходит отдельно от цветовой; учитывая особенности человеческого зрения, при этом, как правило, используется поддискретизация цветового сигнала относительно яркостного. По большому счету, фундаментальных отличий нового формата от предыдущих стандартов кодирования видеосигнала (включая MPEG-4 Part 2) нет: все они так или иначе основаны на разбиении на блоки и являются гибридными.

Новые средства

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

В формат H.264 входит принципиальное решение сетевого интерфейса передачи видеоданных (network abstraction layer, NAL), который, будучи установлен поверх программного механизма кодирования видеосигнала (video coding layer, VCL), берет на себя функцию эффективного представления цифрового видео в формате, обеспечивающем легкую интеграцию с целым набором различных протоколов и механизмов передачи данных -- это весьма привлекательно для сетей, работающих на основе Интернет-протокола (IP).

Что в итоге?

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

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

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

Джон Блем, директор компании Milestone по информационным технологиям.

  • Перевод

H.264 - стандарт сжатия видео. И он вездесущ, его используют для сжатия видео в интернете, на Blu-ray, телефонах, камерах наблюдения, дронах, везде. Все сейчас используют H.264.

Нельзя не отметить технологичность H.264. Он появился в результате 30-ти с лишним лет работы с одной единственной целью: уменьшение необходимой пропускной способности канала для передачи качественного видео.

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

Зачем вообще сжимать что-либо?

Видео в несжатом виде это последовательность двумерных массивов, содержащих информацию о пикселях каждого кадра. Таким образом это трёхмерный (2 пространственных измерения и 1 временной) массив байтов. Каждый пиксель кодируется тремя байтами - один для каждого из трёх основных цветов (красный, зелёный и синий).

1080p @ 60 Hz = 1920x1080x60x3 => ~370 Мб/с данных.

Этим практически невозможно было бы пользоваться. Blu-ray диск на 50Гб мог бы вмещать всего около 2 мин. видео. С копированием так же будет не легко. Даже у SSD возникнут проблемы с записью из памяти на диск.

Поэтому да, сжатие необходимо.


Обязательно отвечу на этот вопрос. Но сперва я покажу кое-что. Взгляните на главную страницу Apple:

Я сохранил изображение и приведу в пример 2 файла:

Это впечатляет, какие еще приёмы существуют?

Цветовая обработка

Человеческий глаз не особо хорошо различает близкие оттенки цвета. Можно легко распознавать наименьшие различия в яркости, но не цвета. Поэтому должен существовать способ избавления от лишней информации о цвете и сэкономить ещё больше места.

В телевизорах, цвета RGB преобразуются в YCbCr, где Y это компонента яркости (по сути яркость черно-белого изображения), а Cb и Cr компоненты цвета. RGB и YCbCr эквиваленты в плане информационной энтропии.

Зачем же тогда усложнять? RGB разве не достаточно?

Во времена чёрно-белых телевизоров, была только компонента Y. А с началом появления цветных телевизоров у инженеров встала задача о передаче цветного RGB изображения вместе с чёрно-белым. Поэтому вместо двух каналов для передачи, было решено кодировать цвет в компоненты Cb и Cr и передавать их вместе с Y, а цветные телевизоры уже сами будут преобразовывать компоненты цвета и яркости в привычный им RGB.

Но вот в чём хитрость: компонента яркости кодируется в полном разрешении, а компоненты цвета лишь в четверть. И этим можно пренебречь, т.к. глаз/мозг плохо различает оттенки. Таким образом можно уменьшить размер изображения в половину и с минимальными отличиями. В 2 раза! Машина будет весить 10 кг!

Данная технология кодирования изображения со снижением цветового разрешения называется цветовой субдискретизацией . Она используется повсеместно уже давно и относится не только к H.264.

Это самые значительные технологии в уменьшении размера при сжатии с потерями. Нам удалось избавиться от большинства детализации и сократить информацию о цвете в 2 раза.

А можно ещё больше?

Да. Обрезание картинки это лишь первый шаг. До этого момента мы разбирали отдельно взятый кадр. Пришло время взглянуть на сжатии во времени, где нам предстоит работать с группой кадров.

Компенсация движения

H.264 стандарт, который позволяет компенсировать движения.
Компенсация движения? Что это?

Представьте, что вы смотрите теннисный матч. Камера зафиксирована и снимает с определенного угла и единственное что движется это мячик. Как бы вы закодировали это? Вы бы сделали что и обычно, да? Трёхмерный массив пикселей, две координаты в пространстве и один кадр за раз, так?

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

И это именно то, что H.264 делает. H.264 разбивает изображение на макроблоки, обычно 16х16, которые используются для расчёта движения. Один кадр остаётся статичным, обычно его называют I-кадр , и содержит всё. Последующие кадры могут быть либо P-кадры , либо B-кадры . В P-кадрах вектор движения кодируется для каждого макроблока на основе предыдущих кадров, таким образом декодер должен использовать предыдущие кадры, взяв последний из I-кадров видео и постепенно добавляя изменения последующих кадров пока не дойдёт до текущего.

Ещё интереснее обстоят дела с B-кадрами, в которых расчёт производится в обоих направлениях, на основании кадров идущих до и после них. Теперь вы понимаете почему видео в начале статьи весит так мало, это всего лишь 3 I-кадра, в которых мечутся макроблоки.

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

Мы рассмотрели статическое и временное сжатия. С помощью квантования мы во много раз уменьшили размер данных, затем с помощью цветовой субдискретизации ещё вдвое сократили полученное, а теперь еще компенсацией движения добились хранения лишь 3х кадров из 300, которые были первоначально в рассматриваемом видео.

Выглядит впечатляюще. Теперь что?

Теперь мы подведём черту, используя традиционное энтропийное кодирование без потерь. Почему нет?

Энтропийное кодирование

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

От такой избыточности можно избавиться энтропийным кодированием. И можно не переживать за сами данные, так как это стандартная технология сжатия без потерь, а значит всё можно восстановить.

Вот теперь всё! В основе H.264 лежат вышеупомянутые технологии. В этом и заключаются приёмы стандарта.

Отлично! Но меня разбирает любопытство узнать, сколько же весит теперь наша машина.

Исходное видео было снято в нестандартном разрешении 1232x1154. Если посчитать, то получится:

5 сек. @ 60 fps = 1232x1154x60x3x5 => 1.2 Гб
Сжатое видео => 175 Кб

Если соотнести результат с оговорённой массой машины в одну тонну, то получится вес равный 0.14 кг. 140 граммов!

Да, это магия!

Конечно же я в очень упрощённом виде изложил результат десятилетних исследований в этой сфере. Если захотите узнать больше, то