|
Алгоритмы сжатия, использующие дискретное косинусное преобразование - JPEG, Motion JPEG, H-263
Алгоритм сжатия JPEG
Изначально предназначенный для компрессии статических изображений, алгоритм сжатия JPEG широко применяется в веб-камерах, видеосерверах и других сетевых устройствах (например, веб-камеры и сетевые видеосерверы компании AXIS Communications используют алгоритм сжатия JPEG в режиме передачи отдельных кадров; также схема JPEG сжатия встроена в видео сервер VN-A1U компании JVC Professional). Название этого алгоритма сжатия происходит от комитета Joint Photographic Expert Group (Объединенная группа экспертов по фотографии), входящего в состав ISO. Принцип работы алгоритма JPEG основан на так называемом дискретном косинусном преобразовании (Discrete-Cosine Transform, DCT). Базирующиеся на DCT алгоритмы сжатия всегда осуществляют сжатие данных с потерями, но способны обеспечить довольно высокую степень компрессии при минимальной потере данных. Помимо JPEG, дискретное косинусное преобразование используют такие алгоритмы сжатия, как JPEG, Motion JPEG, H-263. Процедура DCT будет рассмотрена ниже на примере алгоритма сжатия JPEG.
Картинка, сжатая в формат JPEG, показана на первом рисунке. При больших коэффициентах сжатия JPEG дает блочные искажения, являющиеся следствием используемого алгоритма. Для сравнения справа приведено то же изображение, сжатое по алгоритму Wavelet. При сильном сжатии появляется размытость изображения, которая меньше влияет на восприятие, чем "мозаика" JPEG.
Сжатие изображение в формат JPEG осуществляется в несколько этапов:
Преобразование цветового пространства
Сегментация
Дискретное косинусное преобразование
Квантование
Кодирование Декодирование JPEG осуществляется в обратном порядке.
Преобразование цветового пространства
Несмотря на то, что алгоритм сжатия JPEG способен кодировать изображения, основанные на любом типе цветового пространства (RGB, HSI или CMYK), наилучшая степень сжатия достигается при использовании цветового пространства типа яркость/цветность, когда каждый пиксель изображения описывается тремя числами Y (яркость) и U, V (цветность). Переход в цветовое пространство яркость/цветность осуществляется путем несложных математических преобразований.
Сегментация изображения для алгоритма сжатия JPEG
Большая часть визуальной информации, воспринимаемой человеческим глазом, состоит из компонентов яркости Y, тогда как к компонентам цветности U, V глаз менее чувствителен. Причина этого явления лежит в устройстве человеческого глаза. Следовательно, часть информации о цветности можно отбросить и тем самым сократить объем учитываемой информации.
Исходное изображение разбивается на блоки по несколько пикселей (чаще всего 8х8). Затем для Y, U, V формируются так называемые рабочие матрицы. Для компонента Y рабочая матрица составляется из значений яркости для каждого пикселя, входящего в блок. Для компонентов цветности матрицы формируются через ряд и через строку. На этом этапе теряется 3/4 информации о цветности, за счет чего объем изображения уменьшается в 2 раза.
Дискретное косинусное преобразование (DCT)
Дискретное косинусное преобразование представляет собой разновидность преобразования Фурье и имеет обратное преобразование. В DCT картинка рассматривается как совокупность пространственных волн, для которых оси X и Y проводятся параллельно продольной и поперечной осям картинки, а по оси Z откладывается значение цвета соответствующего пикселя изображения.
С помощью дискретного косинусного преобразования алгоритм сжатия JPEG осуществляет переход от представления картинки в виде совокупности пространственных волн к ее спектральной интерпретации. Каждая пространственная волна раскладывается на множество гармоник, и наименее значимые из них отбрасываются. От количества оставшихся гармоник зависит степень сжатия изображения. DCT преобразует полученную на предыдущем этапе рабочую матрицу в матрицу частотных коэффициентов соответствующего размера. В матрице коэффициентов высокочастотные элементы концентрируются в левом верхнем углу, а низкочастотные – в правом нижнем. Большинство графических образов на экране компьютера состоит из низкочастотной информации, поэтому высокочастотные элементы получившейся матрицы можно отбросить. Эта процедура выполняется на следующем этапе.
Квантование матрицы частотных коэффициентов
На этом шаге матрица частотных коэффициентов поэлементно делится на так называемую матрицу квантования. Для каждого компонента Y, U, V задается своя матрица квантования. Она формируется таким образом, чтобы значения элементов в левом верхнем углу были небольшими, а коэффициенты в правом нижнем углу, наоборот, имели большие значения. Это позволяет отбросить не воспринимаемую глазом высокочастотную информацию, которой соответствуют элементы из правого нижнего угла матрицы частотных коэффициентов. Далее элементы результирующей матрицы округляются до ближайшего целого числа. В итоге в правом нижнем углу образуются нулевые значения, которые впоследствии отбрасываются.
Кодирование
Округленная матрица коэффициентов, полученная на этапе квантования, имеет определенное количество нулевых элементов. Для того чтобы объединить нулевые элементы в группы, производится зигзагообразное сканирование матрицы, начиная с левого верхнего угла. Таким образом, элементы матрицы записываются в цепочку.
Полученный вектор сворачивается с помощью алгоритма группового кодирования (RLE – Run Length Encoding). Каждый ненулевой элемент вектора представляется в виде пары чисел, первое из которых равно количеству нулей перед этим числом, а второе – значению данного элемента вектора. Затем полученные пары чисел кодируются с помощью алгоритма Хаффмана с фиксированной таблицей.
Алгоритм сжатия Хаффмана был разработан для кодирования текстовых сообщений, и суть его состоит в том, что часто встречающимся в тексте символам ставятся в соответствие найденные по определенному алгоритму короткие двоичные коды, а редко встречающимся символам – более длинные коды. Для кодирования каждого сообщения может использоваться своя собственная таблица соответствий или же общая, фиксированная таблица. При кодировании пар чисел, осуществляемом в алгоритме сжатия JPEG, учитывается, что длинные последовательности нулей и большие значения коэффициентов встречаются реже, чем короткие последовательности нулей и маленькие значения коэффициентов. Полученный по алгоритму сжатия Хаффмана двоичный код готов к передаче по сети и хранению в памяти компьютера.
Специалисты отмечают, что вследствие специфики кодирования изображения алгоритм сжатия JPEG эффективен только при работе с многоградационными картинками, где различия между соседними пикселями незначительны. Кроме того, этот формат сжатия имеет ограничения на полосу пропускания – «живое» видеоизображение (разрешение 768х576, коэффициент сжатия 4, скорость передачи 25 кадров в секунду) передается со скоростью 8 Мбит/с. Еще одним недостатком JPEG является так называемый «мозаичный эффект», являющийся следствием технологии сжатия видеоизображения. Картинка разбивается на блоки 8х8 пикселей, над которыми выполняется дискретное косинусное преобразование, в результате которого цвета внутри блока уравниваются. При больших степенях сжатия мозаичный эффект становится заметен.
Motion JPEG (M-JPEG) – алгоритм сжатия JPEG для видеоинформации
Алгоритм сжатия Motion JPEG (M-JPEG) представляет собой стандартизированный формат записи потока отдельных кадров, каждый из которых сжат по алгоритму JPEG независимо от остальных. При использовании алгоритма сжатия M-JPEG средний коэффициент сжатия видеосигнала составляет около 1:5, а скорость передачи видео с разрешением 720х576 пикселей – до 5 Мбит/с. Этот алгоритм сжатия используют сетевые устройства AXIS Communications, например, сетевые видеокамеры AXIS 213 и сетевые камеры AXIS 212 PTZ, видеосерверы AXIS 241Q, одноканальный видеорегистратор VR-601 JVC и другие.
Алгоритм сжатия H-263
H-263 часто используется при передаче видеоизображения по каналам связи с полосой пропускания меньше 64 кбит. С точки зрения математики алгоритм сжатия H-263 похож на JPEG, а принципиальное его отличие состоит в том, что обработке подлежат только те элементы изображения, которые изменились по сравнению с соответствующими элементами предыдущего кадра. Этот алгоритм обеспечивает высокую степень сжатия видеоизображения, но дает плохое качество, если изображение содержит движущиеся объекты. Разрешение кадра, которое обеспечивает этот алгоритм сжатия, обычно не превышает 352х288 пикселей.
Подробнее о сетевых устройствах для цифровой системы видеонаблюдения читайте в подразделах раздела "видеонаблюдение" сайта АРМО-Системы, являющейся одним из крупнейших российских дистрибьюторов цифрового оборудования для видеонаблюдения многих известных мировых производителей.
|
|