Компрессия данных kbps h 264. Магия H.264

  • Перевод

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 граммов!

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

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


В ближайшее время хочу выложить заметку про HD плеер WD TV Live, поэтому коснусь больной для железных плееров темы – почему возникают проблемы с проигрыванием видео. Зачастую причина в в неоправданно навороченном H.264 потоке. Стандарт H.264 предусматривает множество механизмов компрессии сигнала, вот таблица , в которой каждому профилю ставится в соответствие набор возможностей, которые могут быть задействованы в потоке. Профили бывают например такие - Constrained Baseline Profile (CBP), Baseline Profile (BP), Main Profile (MP), High Profile (HiP) и др. Еще есть понятие уровня , который определяет численные ограничения в рамках конкретного профиля. Уровни обозначаются парой чисел от 1.0 до 5.1. Профиль принято записывать в виде @L, например можно встретить такие обозначения – [email protected] или [email protected].

За эталон качества принято считать поток с Blu-Ray диска, его видеопоток соответствует профилю [email protected]. По данным таблицы [email protected] накладывает максимальное ограничение на поток – 62500 Kbps и обеспечивает следующие режимы (привожу самые высокие): 1,280×[email protected] (9), 1,920×1,[email protected] (4), 2,048×1,[email protected] (4). Число после @ – это частота кадров, а число в скобках – количество reference frames (или reframes). Reframes – это количество кадров на которые может ссылаться текущий в процессе декодирования. Этот параметр накладывает требования на объем памяти декодера и возможно его увеличение еще влечет некоторую дополнительную нагрузку на декодер. Так вот для Blu-Ray в full hd разрешении этот параметр равен всего лишь 4-ем. На тех blu-ray, что были под рукой проверил – это действительно так, как и соответствие данному профилю. Однако видео скачанное из сети нередко имеет выставленные более высокие профили, а количество reframes иногда достигает 19! Посмотреть свойства потока можно бесплатной утилитой . Я проделал это и обнаружил что порядка 20% имеющихся фильмов имеет завышенные reframes и завышенные профили. В этом подмножестве достаточно типичен профиль [email protected]. Для информации приведу его характеристики: поток до 300000 Kbps (!), максимальные режимы: 1,920×1,[email protected] (16), 4,096×2,[email protected] (5), 4,096×2,[email protected] (5). Такой безумный битрейт физически не поддерживается blu-ray диском (максимальный битрейт – 48 Mbit) и он не пролезает через 100 Mbps сетку, судя по максимальным разрешениям профиль предназначен для кодирования видео для цифровых кинотеатров. Почему так происходит понятно – люди просто выставляют все на максимум и сжимают, совершенно не включая голову, а в итоге имеем проблемы, с которыми к счастью героически борются создатели HD плееров, но с переменным успехом. Скоро напишу о том, как получается у них бороться.

Он будет сильно отличаться в зависимости от содержимого исходных видео. Я доберусь до этого немного.

640x360 не так уж и велика. 512 Кбит/с очень разумно и, возможно, стандартно. Может быть, 768 кбит/с, если вы действительно заинтересованы в качестве.

Как это возможно? Упрощенный ответ: Существует несколько методов и фактов о сжатии видео , которые делают это возможным:

  • Не вся структура видеокадра в общем H.264 (или другие кодеки, если на то пошло) - это полное изображение . Вместо этого существуют два типа, которые в обычном порядке называются
    • Ключевые фреймы : полный рендеринг всего видеоизображения
    • Внутри кадра : описание изменений предыдущего кадра. Эти кадры обычно составляют подавляющее большинство (80% -99%) кадров в видео.
  • H.264 является "потерянным" , как и многие другие кодеки. Они не воспроизводят поэтапный, поэтапный точный дубликат исходного исходного видео. Пример : Блоки Lossy: если все, кроме одного пикселя в области, имеют один и тот же цвет, CODEC "теряет" один пиксель. Таким образом, вместо того, чтобы хранить информацию о каждом пикселе в кадре, CODEC просто говорит: "x1, y1 - x2, y2 - весь цвет x". Очень эффективный.

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

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

  • содержимое видео
  • ваш толерантность к артефактам (блоки, потеря цвета, потеря определения)
  • параметры CODEC, которые вы установили, и способы их установки

Пример . Видео с дверью в комнате (например, камерой безопасности) с одним ключевым кадром каждые десять минут будет иметь удивительно высокую степень сжатия. В моих расчетах на основе салфеток этот сценарий был применен при сжатии 15 000: 1.

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

  • возьмите образец исходных видео, которые вы собираетесь кодировать. 100 или более являются статистически релевантными.
  • закодировать их с различными скоростями передачи данных с различными параметрами, чтобы определить, какие итоговые характеристики соответствуют вашим потребностям.

Изменение параметров кодировщика для уменьшения размера видео может также иметь другие последствия:

  • более высокие требования к процессору.
  • ожидания игроков CODEC. Не все видео, закодированные в формате H.264, могут воспроизводиться всеми игроками.
  • более длительное время кодирования
  • различное качество

Это очень сложный вопрос. Удачи. Мой опытный тест "большой палец к ветру" говорит, что вы будете более чем счастливы с 512-768 кбит/с для своего проекта.

27.03.2009

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

Наблюдая за последними тенденциями в области сжатия цифрового видео, редакция Security News старается обращать внимание не только на позитивные оценки мировых отраслевых экспертов, но и на скептические нотки. Если повезет, попадается и жесткая критика. Два экспертных мнения, которые мы публикуем, относятся скорее к позитиву, хотя, по некоторым признакам, они лишь закамуфлированы под "объективные". Приглашаем к дискуссии отечественных специалистов: в российской отраслевой прессе еще несколько лет назад все прогнозы сходились на Wavelet-кодировании. Почему "победило" другое решение, по техническим мотивам или в погоне за прибылью? И победило ли вообще? Ждем ваших мнений.

Не так давно мне довелось присутствовать на двух выставках -- ISC West в Лас-Вегасе и IFSEC в Соединенном Королевстве. Сильная сторона этих мероприятий -- в том, что по ним можно безошибочно определить, куда дует рыночный ветер и чем заняты умы коллег по отрасли. Будучи техническим руководителем компании, производящей управляющее ПО для систем IP-видеонаблюдения, я был весьма заинтересован в том, чтобы отделить зерна от плевел.

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

В этом году предметом горячих обсуждений стал новый формат сжатия видеосигнала 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-видеонаблюдением позволит вам интегрировать новые технологические решения в уже существующую у вас серверную инфраструктуру -- без необходимости полной замены аппаратной части системы.

Правда или маркетинг. Оправдает ли H.264 ожидания пользователей?

Том Гэлвин, директор консалтинговой компании NetVideo Consulting, в прошлом -- вице-президент компании GE Security по инженерным вопросам.
По материалам журнала Security Dealer and Integrator
.

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

Руководствуясь чисто профессиональным интересом, я решил ответить на вопрос: а дотягивает ли кодек до уровня, которым его наделили многочисленные обещания? А чтобы ответ не был голословным, подтвердить вывод непосредственным сравнением эффективности компрессии алгоритмов MPEG-4 и H.264. Самое интересное -- способен ли H.264 реально снизить битрейты без потери качества видеоизображения?

Стандарт H.264 обязан своим появлением двум разным группам экспертов, объединившимся специально в целях его создания. Появившийся в результате совместных трудов продукт получил известность под разными именами. "H.264" его окрестила организация ITU-T, осуществляющая координацию телекоммуникационных стандартов Международного Телекоммуникационного союза (International Telecommunication Union). Международная организация по стандартизации (International Organization for Standardization, ISO) называет тот же самый стандарт по-своему -- MPEG-4 Part 10/Advanced Video Coding (AVC), поскольку он является расширением пакета стандартов MPEG-4, уже успешно внедренного в обширный ряд продуктов, относящихся к видеонаблюдению. Охранная индустрия США приняла в качестве термина несколько менее аристократичное, но более короткое название -- "просто" H.264.

Новый стандарт определяет ряд математических принципов, применение которых при сжатии видеосигнала позволяет добиться более успешных результатов, чем это наблюдается в ранее принятых стандартах. Многие из описанных в нем алгоритмов весьма требовательны к вычислительной мощности оборудования либо неприменимы в ряде конкретных приложений. Чтобы обеспечить нужную гибкость в применении, стандарт определяет семь различных профилей. Под профилем понимается совокупность характеристик, обеспечиваемая для конкретной группы практических приложений стандарта. Многие из продуктов для видеонаблюдения, скорее всего, будут основаны на применении профиля "базовый" (baseline). Базовый профиль предназначается для аппаратных устройств, имеющих ограниченные вычислительные мощности, но требующих минимально возможной задержки сигнала по времени. Прочие профили предназначены для широкого спектра приложений -- от телевещания и DVD высокого разрешения (Blu-ray) до мобильной телефонии.

Чей пирог вкуснее?

Для "кулинарного конкурса" я использовал два кодера разных форматов -- H.264 и MPEG-4 -- производства компании Axis Communications, применив их к двум типичным для видеонаблюдения сценам. Первая сцена снималась на поворотную камеру, расположенную на автостоянке, а вторая -- на фиксированную камеру, закрепленную над дверью в фойе бизнес-центра. Обе сцены снимались в разрешении 4CIF с частотой 30 кадров в секунду. Для измерения битрейтов, поступающих с каждого из источников цифрового видеопотока, я пользовался программным обеспечением NetVideo Device Manager. С помощью довольно утомительной процедуры, основанной на методе проб и ошибок, я настроил степени компрессии таким образом, чтобы достичь визуально эквивалентного уровня качества видеоизображения, формируемого обоими источниками.

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

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

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

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

То, как кодек H.264 "расправляется" с блокинг-артефактами, обусловлено такими свойствами формата, как возможность снижения размера блоков вплоть до 4х4 пиксела, а также применением деблокирующего фильтра, который сглаживает контрастные зоны между прилегающими блоками.

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

Декодеры, способные расшифровать сигнал формата H.264, также должны обладать большей вычислительной мощностью. Участвовавший в нашем "конкурсе" программный декодер сигнала Н.264, реализованный на персональном компьютере, вдвое интенсивнее "грузил" центральный процессор, чем его коллега MPEG-4; это наблюдалось при съемке обеих тестовых сцен -- на парковке и в фойе. При использовании программных приложений, в которых предусмотрено одновременное отображение многочисленных сигналов с камер, это может существенно повлиять на требования к аппаратной части применяемых ПК.

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

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.