Компрессия данных 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 граммов!
Да, это магия!
Конечно же я в очень упрощённом виде изложил результат десятилетних исследований в этой сфере. Если захотите узнать больше, то
Он будет сильно отличаться в зависимости от содержимого исходных видео. Я доберусь до этого немного.
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 кбит/с для своего проекта.
- Перевод
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 граммов!
Да, это магия!
Конечно же я в очень упрощённом виде изложил результат десятилетних исследований в этой сфере. Если захотите узнать больше, то
Добавлено: 2017-08-31 12:11:30
На сегодняшний день все современные системы видеонаблюдения так или иначе являются цифровыми, то есть в конечном виде информация всегда имеет цифровое представление. В связи с этим для более эффективного хранения и передачи по сети обязательно используется сжатие видео по определённым алгоритмам.
Основные понятия
Практически все знают, что видео представляет из себя последовательность статичных изображений, меняющихся во времени. А эти изображения состоят из массива пикселей.
Пиксель - это наименьший логический элемент изображения, который меняет свой цвет в зависимости от его содержания.
Кадр - это массив всех пикселей, которые генерируются видеокамерой в определённый момент времени. На данный момент в системах видеонаблюдения самые распространённые размеры кадров: 960x576 (WD1), 1280x720 (HD), 1920x1080 (FullHD), 2688x1520 (4Mpix) и 2560x1920 (5 Mpix).
Частота кадров – это скорость, с которой чередуются кадры на мониторе. В большинстве случаев частота 25 кадров в секунду является максимальной. На профессиональном жаргоне оборудование, способное записывать и генерировать видеопоток с частотой 25 к/с, имеет приставку RealTime (с англ. «реальное время»). При такой частоте человеческий глаз воспринимает динамическое изображение плавным и без дёрганий как в реальности.
Битрейт - это количество бит информации, используемое для хранения или передачи видео или аудио контента в единицу времени (бит/с). Битрейт также отображает степень сжатия потока данных. В системах видеонаблюдения битрейт может постоянным (СBR – Constant Bitrate) или переменным (Variable Bitrate). Постоянный битрейт соответствует заданным параметрам и остаётся неизменным на протяжении всего файла. Его главное достоинство в том, что можно предсказать размер конечного файла. При переменном битрейте кодек выбирает его значение, исходя из параметров желаемого качества. В течение всего кодируемого видеофрагмента битрейт может изменяться.
Опорные кадры (i - кадры) – кадры, которые содержат полную информацию о текущем снимке.
Предсказанные кадры (p - кадры) – кадры, содержащие информацию только о разнице между текущим и предыдущим снимком.
Все применяемые в системах видеонаблюдения алгоритмы сжатия основываются на технологиях с потерями. То есть в процессе сжатия отсекается часть избыточной информации.
Почему видео необходимо сжимать?
Для наглядности рассчитаем видеопоток без компрессии с FullHD камеры со скоростью 25 кадров в секунду. Итак, имеем кадр с разрешением 1920x1080 и суммарным количеством пикселей 2073600. Представим один пиксель в самой простой форме кодирования цвета - RGB24, где под составляющие Red, Green и Blue выделяется по 8 бит. То есть 1 пиксель будет занимать 24 бита информационного пространства. Следовательно, одному кадру c разрешением 1080p потребуется 49766400 бит или 47,5 Мбит. Таких кадров в секунду хотелось бы иметь 25. Отсюда «вытекает» битрейт без сжатия 47,5 x 25 = 1187.5 Мбит/с = 1,16 Гбит/с, то есть для хранения часового фрагмента видео с 2 Mpix IP видеокамеры потребуется 500 Гб дискового пространства, а для передачи потока пропускной способности гигабитной сети будет недостаточно.
Следует отметить, что обычно максимальный битрейт видеопотока c идентичными параметрами при сжатии кодеком H.264 обычно составляет 8 Мбит/с, что почти в 150 раз меньше, чем у несжатого видео. Из этого очевидно, что без алгоритмов сжатия системы видеонаблюдения стоили бы в десятки, а то и в сотни раз дороже того, что мы имеем сейчас.
Современные алгоритмы сжатия
Время не стоит на месте, требования к качеству картинки постоянно растут. При этом пропускная способность каналов связи и ёмкость накопителей совсем бы не поспевали за этим ростом, если бы не постоянное совершенствование алгоритмов сжатия.
Стандарт H.264
На данный момент в системах видеонаблюдения уже достаточно длительное время доминирует алгоритм сжатия H.264.
Компрессия H.264 заключается в исключении избыточных данных и сокращении их объема по многочисленным алгоритмам, подробно которые рассматривать в данной статье мы не будем.
При настройке кодирования в системах видеонаблюдения встречаются три основных профиля кодека H.264:
Baseline профиль подразумевает минимальную нагрузку на процессор декодирующего устройства при несильном сжатии. Предназначен для просмотра видеокамеры в локальной сети на компьютере.
Main профиль создаёт среднюю нагрузку на процессор при сильном сжатии. Этот профиль универсальный и подходит для производительных ПК и для большинства видеорегистраторов.
High профиль обеспечивает максимальное сжатие с сильной нагрузкой на устройство декодирования. Битрейт при работе с таким профилем будет в 2-3 раза ниже, чем при использовании baseline профиля. При использовании видеосервера на базе процессоров Intel или AMD, в отличие от видеорегистратора, нагрузка будет распределяться на работу всей системы.
Перспективный стандарт H.265
Формат сжатия H.265 High Efficiency Video Coding (HEVC) стал значительным шагом вперед в области кодирования цифрового видеосигнала, главным преимуществом которого является почти в 2 раза увеличенная эффективность по сравнению с предшествующим стандартом H.264. То есть благодаря новому алгоритму для передачи сигнала требуется вдвое меньшая пропускная способность сети, а для хранения вдвое меньшая ёмкость накопителей. Это позволяет использовать программные и аппаратные средства c гораздо меньшими затратами.
Кстати, новый стандарт поддерживает разрешения вплоть до 35 Mpix (8192 х 4320 (8K)), так как максимальный размер блока увеличен до 4096 пикселей (у H.264 – блок 256 пикселей).
Параллельное кодирование, предусмотренное стандартом H.265, даёт возможность одновременной обработки разных частей кадра, что существенно ускоряет воспроизведение и даёт возможность в полной мере использовать современные многоядерные процессоры.
Кроме этого, новый стандарт получил технологию произвольного доступа к изображению (Clean Random Access), которая позволяет произвести декодирование случайно выбранного кадра без необходимости обработки предыдущих в потоке изображений. Это особенно желательно, когда при мониторинге требуется оперативно переключиться на определённый канал.
Несмотря на все преимущества, H.265 ещё далёк от повсеместного использования. Во-первых, из-за того, что для его использования необходима обновлённая аппаратная часть, во-вторых, чтобы использовать кодек необходима покупка патента, а в-третьих, имеются некоторые расхождения между эффективностями, полученными в лабораторных и реальных условиях.
Вероятнее всего в долгосрочной перспективе H.265 всё-таки заменит H.264 в качестве главного решения для компрессии видео.
Оптимизированный формат H.264+
Алгоритм сжатия H.264+ - инновационный формат, разработанный специально для использования в системах видеонаблюдения. По сути H.264+ это модифицированный кодек H.264 (AVC), который оптимизирован под задачи видеонаблюдения с учётом всех особенностей.
На видео, полученном с охранных видеокамер, сцена всегда постоянна и практически не изменяется, представляющие интерес подвижные объекты могут отсутствовать на протяжении длительного времени, а шумы, возникающие в плохих условиях освещения, ощутимо влияют на качество изображения. В обновлённом формате все эти особенности были учтены и обрабатываются следующими технологиями, повышающими степень сжатия:
- кодирование с предсказанием на основе модели фона;
- шумоподавление;
- долгосрочное управление видеопотоком.
Кодирование с предсказанием. Все современные алгоритмы сжатия сочетают внутрикадровое и межкадровое сжатие. При внутрикадровом сжатии опорные i-кадры кодируются независимо от других кадров, а предсказанные p-кадры используют i-кадры и другие p-кадры (межкадровое сжатие). При межкадровом сжатии эффективность сильно зависит от выбора опорного кадра. Так как фон в видеонаблюдении стабилен, то его лучше всего использовать в качестве опорного i-кадра, тем самым повысить эффективность сжатия неподвижных объектов и снизить поток данных, приходящийся на опорные кадры. Интеллектуальный алгоритм предсказания выбирает опорные кадры среди тех, в которых меньше всего движущихся объектов.
Шумоподавление. Обычно подвижные объекты кодируются вместе со статичным фоном для сохранения качества. Вместе с фоном кодируются и фоновые шумы. В формате H.264+ c помощью специальных алгоритмов фон отделяется от движущегося объекта и кодируется с более высокой степенью сжатия. Такая технология позволяет частично подавлять шумы и уменьшать битрейт.
Долгосрочное управление видеопотоком. При фоновом подавлении шума битрейт видео зависит от размера части фона изображения. Например, при съёмке на улице в дневное время на фон приходится очень малая часть изображения, так как в это время в кадре находится большое количество подвижных людей и автомобилей. При этом битрейт ощутимо возрастает. И наоборот, ночью битрейт уменьшается, так как движущихся объектов становится гораздо меньше. Формат H.264+ имеет алгоритмы отслеживания интенсивности видеопотоков и в зависимости от времени суток автоматически изменяет степень сжатия. Такая технология управления видеопотоком позволяет не только уменьшить объём видеоархива, но и сохранить качество изображения движущихся объектов.
Недостатки сжатия видео
При использовании алгоритмов сжатия иногда на изображении можно отчётливо наблюдать так называемые артефакты. Например, разбиение изображения на блоки 8x8 пикселей или потерю мелких деталей изображения (размытие).
Заключение
Алгоритм сжатия H.264 по-прежнему остается самым популярным стандартом для подавляющего большинства систем видеонаблюдения. На сегодняшний день он полностью выполняет свои функции. Инновационный формат H.265 пока широкого распространения не получил в силу некоторых особенностей, но имеет все шансы заменить своего предшественника. Оптимизированный алгоритм H.264+ также глобального применения не имеет, так как используется только несколькими производителями.
Сегодня у телекомпаний есть свобода выбора в вопросах касательно сжатия телесигнала. Форматы MPEG‑2, H.264 и JPEG 2000 являются наиболее конкурентными вариантами для выполнения сжатия видеопотока на профессиональном уровне. В конечном итоге, инфраструктура сети, полоса пропускания и бюджет являются решающими факторами для телекомпании, которые помогают определиться с «правильным» выбором. Форматы MPEG‑2 и H.264 являются эффективными решениями сжатия мультимедийных приложений с целью их последующего воспроизведения.
Веские аргументы можно привести в пользу формата JPEG 2000, который основан на передовых внутрикадровых методах кодирования и обеспечивает высокую степень гибкости и управляемости, не сравнимую с гибкостью и управляемостью других форматов сжатия. Более того, факт появления все больших и больших разновидностей передаваемых видеоприложений, которые требуют более низкого времени задержки и более высокого качества изображения, делает формат JPEG 2000 оптимальным решением в удовлетворении требований передачи видео в HD-качестве.
Главной задачей всех телекомпаний - независимо от инфраструктуры сети, выбранного метода сжатия и особенностей транслируемых приложений - является передача сигнала максимального качества при заданной полосе пропускания, ограничив при этом расходы с целью получения максимальной прибыли. Имейте в виду, что передача видеопотока представляет собой комплексную цепь процессов. Какой-либо процесс, происходящий внутри цепи, влияет на процесс передачи видео в целом, в результате серьезная недоработка внутри цепи затрагивает все последующие звенья и приводит к ухудшению качества передачи видео в целом. Конечно, то, как выбранный формат сжатия реализовывается, и как осуществляется управление им, также играет крайне важную роль в достижении наилучшей производительности независимо от выбранной схемы сжатия.
MPEG‑2: «устаревший» кодек
Алгоритмы сжатия видео, такие как MPEG‑2 и H.264 являются кодеками, которые основаны на дискретном косинусном преобразовании (ДКП). С целью сокращения объема данных видеосигнала между сериями кадров эти кодеки используют алгоритм межкадрового предсказания. Суть данного алгоритма заключается в методе дифференцированного кодирования, когда последующий кадр сравнивается с исходным, после чего выполняется кодирование только тех пикселей, которые изменились.
В результате количество пикселей, которые необходимо кодировать и передавать, уменьшается. Когда такая кодированная последовательность передается на экран ТВ, полученное видео ничем не отличается от исходной последовательности кадров.
Появление MPEG‑2 было обусловлено необходимостью трансляции сигналов с более высокой скоростью передачи данных - сигналов SD-формата (величина битрейта от 3 Мб/с до 15 Мб/с) и HD-формата (величина битрейта от 15 Мб/с до 30 Мб/с). При передаче видеоизображения с использованием метода предикативного сжатия MPEG‑2 каждый закодированный кадр в последовательности изображений может передаваться как независимо сжатый кадр («I-кадр»), сжатый кадр с использованием предсказания движения в одном направлении («P-кадр») и сжатый кадр с использованием предсказания движения в двух направлениях («B-кадр»). Благодаря сокращению пространственной и временной избыточности MPEG‑2 обеспечивает повышенное сжатие. Тем не менее использование «B-кадров» приводит к появлению задержки предупорядочивания, которая зависит от количества передаваемых «B-кадров». При большом количестве передаваемых «B-кадров» эта задержка может быть очень значительной.
MPEG‑2 до сих пор является широко распространенным кодеком и рассматривается как конкурентоспособный выбор благодаря его низкой стоимости внедрения и поддержке широкого диапазона цветопередачи – 4:2:2. Тем не менее существует ряд ограничений, которые обусловлены как самим кодеком, так и стандартами, которые регулируют его реализацию.
Например, MPEG‑2 по сравнению с конкурирующими кодеками требует, как правило, более высокой пропускной способности для обеспечения достаточно высокого качества видео. Вследствие потоковой битовой структуры сигнала и его формы передачи в виде отдельных пакетов закодированный сигнал в MPEG‑2 крайне чувствителен к ошибкам и любым потерям информации. Потеря или повреждение одного из пакетов оказывает существенное влияние на процесс декодирования, что приводит к «битым» кадрам или выраженным искажениям изображения, а это в конечном итоге приведет к прекращению использования MPEG‑2 в среде профессионального телевещания.
H.264: кодек следующего поколения
H.264 или MPEG-4 Part 10 (Advanced Video Coding) кодек был разработан в качестве альтернативы кодеку MPEG‑2 и характеризуется повышенной производительностью и более широким набором инструментов, что обеспечивает высокую гибкость в отношении передачи информации. В результате H.264, по сравнению с MPEG‑2, обеспечивает эквивалентное качество видео при более низкой скорости передачи данных. При переходе на кодирование H.264, по сравнению с MPEG‑2, пропускная способность, достаточная для передачи изображения аналогичного качества, может быть снижена на величину до 50 процентов. В этом кодеке используется ассиметричная архитектура. Сложность вычислений в нем минимизирована, что обуславливает его высокую гибкость, достаточную для применения этого кодека для широкого спектра приложений, включая трансляцию, хранение и передачу данных по беспроводной мультимедийной связи.
Алгоритм сжатия H.264 схож с алгоритмом MPEG‑2 и основан на тех же основных принципах, включая компенсацию движения с переменным размером блоков и дискретное косинусное преобразование. Более того, H.264 характеризуется высокой производительностью и надежностью. Он выполняет как пространственное предсказание при внутрикадровом кодировании, так и оценку движения при межкадровом кодировании, что улучшает эффективность сжатия. При внутрикадровом кодировании каждый кадр кодируется сам по себе, без использования информации соседних кадров. Кроме того, H.264 использует предварительную обработку этапов, используя для этого соседние пиксели из ранее закодированных блоков, что является преимуществом по сравнению с внутрикадровой пространственной корреляцией.
Ключевые особенности данного стандарта – это эффективность сжатия и передачи данных, а также направленность на сжатие видео широкого спектра приложений. Благодаря тому, что на сегодняшний день кодек поддерживает 17 профилей и 16 уровней, каждый из которых нацелен на конкретный класс популярных передаваемых видеоприложений, достигается высокий уровень гибкости и масштабируемости.
Формату H.264 свойственны такие же ограничения, как и для формата MPEG‑2. В конечном итоге, эти ограничения связаны с возможностью существующей технологии, что препятствует применению формата H.264 в профессиональной среде вещания. На сегодняшний день наиболее технологически продвинутым кодеком, совместимым со стандартами вещания, является H.264, выполняющий сжатие видео со скоростью 80 Мб/с, ограниченный разрешением в 8 бит. Реализация сети на основе H.264 может быть дорогостоящей. Стоимость по сравнению с конкурирующими стандартами может быть в четыре раза выше за счет себестоимости и потребления мощности. Благодаря архитектурной асимметрии кодеков может сложиться впечатление, что высококачественные декодеры обладают низкой стоимостью, в результате чего пользователи очень часто удивляются высокой цене на профессиональные видеодекодеры.
JPEG 2000: выбор прогрессивного метода сжатия
Метод JPEG 2000, предлагаемый современным рынком, является его ключевым достоинством. Стандарт и система кодирования JPEG 2000 основаны на «вейвлет-технологии» сжатия изображения. Изначально он был задуман не как кодек для сжатия видео, а как кодек сжатия графических изображений. Примененная в нем внутрикадровая схема кодирования имеет ряд преимуществ, характерных для всего цикла вещания - доставка, формирование, а также первичное и вторичное распределение.
JPEG 2000, по сравнению с форматами H.264 и MPEG‑2, хорошо известен своим отличным визуальным качеством (см. рисунок 1). JPEG 2000 выполняет кодирование в пределах полного кадра, в то время как другие схемы сжатия требуют, чтобы изображение было разбито на более мелкие блоки, в результате чего ухудшение качества происходит неравномерно и может различаться в пределах кадра. Это приводит к появлению визуально раздражающего искажения, известного как «блокинг-эффект». В случае с JPEG 2000 потеря качества происходит равномерно по всей области кадра и зрительно воспринимается как сглаживание краев, иначе говоря, происходит размытость. Такое искажение визуально является менее раздражающим, чем «блокинг-эффект», так как размытость в большей степени соответствует естественному восприятию человеческого глаза. JPEG 2000 обладает уникальной возможностью доставки информации в первоначальном виде для последующей обработки. За счет обеспечения высокого качества на более низком уровне возможна передача высокого качества на более высокий уровень. Видео JPEG 2000 остается практически нетронутым при осуществлении многократных циклов кодирования/декодирования. Это позволяет сохранить высокое качество видео, передав его по этой цепочке.
JPEG 2000 характеризуется низким временем задержки - порядка 1.5 кадра или меньше на весь цикл кодирования-декодирования. Этот параметр является критичным для интерактивных приложений и может привести к отсутствию связи при переходе от одного кадра к следующему кадру. Низкое время задержки порядка 45 мс при сжатии HD-потока является преимуществом по сравнению с форматами H.264 и MPEG‑2, время задержки в которых достигает от одной до двух секунд.
Высокая скорость передачи, которая достигается за счет сжатия JPEG 2000, также критически важна. При сравнении реализованных проектов замечено, что, как правило, JPEG 2000 может работать при очень высоких скоростях - намного более высоких, чем H.264. Для передачи изображения высокого качества это является ключевым моментом, так как пропускная способность может быть ограничена конкретным типом инфраструктуры, однако ширина полосы пропускания не обязательно является критической. Например, HD-видео при 1.5 Гб/с невозможно передать по сети Ethernet в 1 Гбит, но для этой цели может быть выделен весь канал. Следовательно, передача HD-видео может быть осуществлена, если задействовать всю ширину полосы пропускания и применить «легкое» JPEG 2000 сжатие для достижения как наивысшего качества, так и вписывания в ширину канала или, когда уместно, закодировать с использованием математического сжатия без потерь с целью исключения потерь видеоинформации.
Одним из наиболее значительных преимуществ формата JPEG 2000 является его гибкость. Возможна передача данных по множеству типов сетевых инфраструктур - Ethernet/IP, SONET/SDH/PDH и по оптоволокну. Когда данные упакованы с помощью JPEG 2000 в ASI-поток, то видео может передаваться везде, в любое время и на любое расстояние. JPEG 2000 выполняет независимое кодирование каждого поля и каждого кадра, яркости и цветности компонента. Качество, которое достигается за счет математического сжатия без потерь, сравнимо с качеством математического сжатия с потерями. Видео может быть закодировано путем математического сжатия без потерь, но по причине недостаточной пропускной способности канала может обрезаться и преобразовываться в сжатие с потерями.
Конструктивно для JPEG 2000 характерным является одинаковый уровень сложности как для процесса кодирования, так и для процесса декодирования. Так как JPEG 2000 является симметричным кодеком, одно и то же аппаратное средство может быть предоставлено как в качестве кодера, так и в качестве декодера, в то время как асимметричные кодеки требуют совершенно разных аппаратных средств, особенно при высокой скорости передачи данных. Относительно низкая сложность JPEG 2000 имеет преимущества в стоимости, капитальных и эксплуатационных затратах, а также снижает расходы на электропитание сети.
Подводим итоги
Каждый из рассмотренных в статье кодеков играет свою индивидуальную роль в сфере качественной передачи данных. Кодеки H.264/MPEG-4 и MPEG‑2 по-прежнему актуальны в сфере профессионального телевещания. Они обеспечивают высокое качество в сетях с ограниченной пропускной способностью, но они не обязательно являются единственно правильным выбором во всех возможных сферах применения.
Формат JPEG 2000 обеспечивает высокое качество изображения и низкое время задержки при кодировании в несколько циклов. На сегодняшний день он подтвердил свою значимость во всех сферах видеотехнологий, в сфере передачи данных по IP- и 3G-сетям, а также в HD- и 3D-технологиях.
Помимо качества и инфраструктуры сети, в процессе сравнения и выбора метода сжатия необходимо учитывать степень затрат ресурсов и его стоимость. В целом, методы сжатия MPEG‑2 и H.264 являются дорогостоящими, энергозатратными и требуют применения сложных технологий.
Так как кодек JPEG 2000 по сравнению с другими требует меньше энергозатрат и в целом обеспечивает большую масштабируемость, гибкость и качество изображения, то перед ним открывается блестящее будущее. Все большее число ведущих мировых поставщиков услуг телевещания, а также телекомпаний используют JPEG 2000 для трансляции крупных, глобально значимых событий – особенно с использованием мощностей IP-сетей. Однако существующая ситуация постоянно изменяется, и, возможно, завтра перед нами предстанет новый, более «навороченный» метод сжатия.