Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Слесарев.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
4.99 Mб
Скачать

Стандарты сжатия изображений

Разработан группой экспертов в области фотографии специально для сжатия 24‑битных изображений и стандартизован в 1991 году. Фактически он является стандартом для полноцветных изображений. Алгоритм оперирует областями 8x8, на которых яркость и цвет меняются сравнительно плавно. Вследствие этого, при разложении матрицы такой области в двойной ряд по косинусам (дискретное косинусное преобразование, ДКП) значимыми оказываются только первые коэффициенты. Таким образом, сжатие в JPEG осуществляется за счет плавности изменения цветов в изображении.

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

Шаг 1 (преобразование в новое цветовое пространство)

Переводим изображение из цветового пространства RGB, с компонентами, отвечающими за красную (Red), зеленую (Green) и синюю (Blue) составляющие цвета точки, в цветовое пространство YCrCb (иногда называют YUV). В нем Y — яркостная составляющая, a Cr, Cb — компоненты, отвечающие за цвет (хроматический красный и хроматический синий). За счет того, что человеческий глаз менее чувствителен к цвету, чем к яркости, появляется возможность архивировать массивы для цветовых компонент с большими потерями и, соответственно, большими степенями сжатия.

RGB to YUV  Y  = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16  V =  (0.439 * R) - (0.368 * G) - (0.071 * B) + 128  U = -(0.148 * R) - (0.291 * G) + (0.439 * B) + 128  YUV to RGB  B = 1.164(Y - 16) + 2.018(U - 128)  G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128)  R = 1.164(Y - 16) + 1.596(V - 128) 

Шаг 2 (субдискретизация)

Исходное изображение разбивается на матрицы 8x8 элементов. Каждый элемент описывается с помощью 3 байт (3 байта цветности в пространстве RGB, 1 байт яркости и 2 байта цветности в пространстве YCrCb). Производится сохранение информации о яркости всех 64 элементов матрицы, а информация о цветности сохраняется только для каждых вторых строки и столбца. При таком представлении каждый байт цветности будет относиться к области 2х2 пиксела исходного изображения. В результате для каждого блока 2х2 необходимо хранить всего 6 байт информации (4 байта яркости и 2 байта цветности) вместо 12 байт при обычном описании (1 байт яркости и 2 байта цветности для каждого из 4 пикселов). Практика показала, что уменьшение объема данных на 50% почти незаметно отражается на качестве большинства изображений.

Шаг 3 (дискретное косинусное преобразование)

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

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

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

Шаг 4 (квантование коэффициентов ДКП)

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

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

Пример матрицы квантования

3

5

7

9

11

13

15

17

5

7

11

13

15

17

19

21

7

11

13

15

17

19

21

23

9

11

13

15

17

19

21

23

11

13

15

17

19

21

23

25

13

15

17

19

21

23

25

27

15

17

19

21

23

25

27

29

17

19

21

23

25

27

29

31

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

Шаг 5 (вторичное кодирование)

Полученная в результате квантования матрица 8x8 преобразуется в 64-элементный вектор при помощи «зигзаг»-сканирования.

Таким образом, в начале вектора располагаются коэффициенты, соответствующие низким частотам, а в конце — высоким. Зигзаг-сканирование позволяет получить длинные цепочки нулей. Поэтому 64-элементный вектор кодируется сначала с помощью алгоритма RLE, а затем – алгоритма Хаффмана (сжатие без потерь).

Недостатки алгоритма:

- При повышении степени сжатия изображение распадается на отдельные квадраты (8x8).

- Проявляется эффект Гиббса — ореолы вокруг резких вертикальных и горизонтальных границ.

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

Достоинства алгоритма:

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

- Симметричность алгоритма (кодирование и декодирование производятся за одинаковое время).

Степень сжатия алгоритма: 2..200 (задается пользователем).

Progressive JPEG, Motion JPEG.

Стандарт JPEG-2000 Основные отличия от JPEG: вместо дискретного косинусного преобразования используется дискретное вейвлет-преобразование; вместо алгоритма Хаффмана используется арифметическое кодирование; не применяется субдискретизация цветовых компонент, поскольку использование вейвлетов позволяет достичь того же результата, но с меньшими потерями и др.

MPEG-4 Появился в 1999 году. Стандарт фактически задает правила организации объектно ориентированной среды, т.е. работы с медиа-объектами (ключевое понятие стандарта). Изображение разделяется на составные элементы - медиа-обьекты, описывается структура этих объектов и их взаимосвязи, чтобы затем собрать их в единую видеозвуковую сцену. Результирующая сцена составляется из медиа-объектов, объединенных в иерархическую структуру:

а) неподвижные картинки (например, фон);

б) видеообъекты (например, говорящий человек);

в) аудиообъекты (голос, связанный с этим человеком);

г) текст, связанный с этой сценой;

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

е) текст (например, связанный с головой), из которого в конце синтезируется голос.

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

Алгоритм компрессии видео работает по той же схеме, что и в предыдущих стандартах, но есть несколько радикальных нововведений. В отличие от прежних стандартов, которые делили кадр на квадратные блоки вне зависимости от содержимого, новый кодер оперирует целыми объектами произвольной формы. К примеру, человек, двигающийся по комнате, будет восприниматься как отдельный объект, перемещающийся относительно другого неподвижного объекта - заднего плана. Также применен "интеллектуальный" способ расстановки ключевых кадров. Ключевые кадры не расставляются с заданной регулярностью, а выделяются кодером только в те моменты, в которые происходит смена сюжета. Естественно, алгоритмы поиска и обработки объектов сложной формы, углубленного анализа последовательностей кадров требуют существенно больших вычислительных ресурсов для качественного восстановления (декомпрессии) изображения этого формата, нежели в случае MPEG1 и -2. В результате усовершенствования эффективность компрессии видео в MPEG4 возросла настолько, что позволяет размещать полнометражный фильм длительностью полтора-два часа с весьма приличным качеством всего на одном стандартом компакт-диске (650 Мб).

Кодирование звука и музыки в стандартах MPEG осуществляется отдельным аудиокодером. По мере развития стандарта MPEG звуковые кодеры также совершенствовались, становясь все эффективнее. В основе повышения эффективности - та же идея: сократить объем "второстепенной" для слушателя аудиоинформации. В результате в составе стандарта MPEG1 было создано семейство из трех звуковых кодеров, названных "слоями": Layer I, Layer II, Layer III. Все они, подобно видеокодерам, построены на несовершенстве "человеческого фактора": психоакустическая модель использует несовершенства слухового аппарата человека. В несжатом звуке передается много избыточной информации, которую человеческое ухо не воспринимает. Большой эффект для сжатия дает, например, явление маскирования некоторых звуков. В частности, если сначала подать громкий звук на частоте 1000 Гц, то более тихий звук на частоте 1100 Гц уже не будет фиксироваться слухом. В модели используется и явление ослабления чувствительности человеческого уха на период в 5 мс - до и 100 мс - после возникновения сильного звука. Психоакустическая модель разбивает весь спектр на блоки, в которых уровень звука считается близким. Затем удаляет звуки, формально не воспринимаемые человеком. Потом следует процедура сжатия, и, наконец, формируется цифровой информационный поток.

Первый "слой" (Layer I) был рассчитан на поток скоростью 192 кбит/с на канал.

Разновидность Layer II, предназначенная для потоков до 128 кбит/с на канал, была разработана как компромисс между качеством звука, величиной потока и сложностью кодера.

Layer III исходно был рассчитан на низкоскоростные сети с потоком до 64 кбит/с на канал. Однако введенные усовершенствования позволили сохранить "CD-качество" звука при низкой скорости потока. Это требует больших вычислительных ресурсов, но производительность современных компьютеров достаточна. В результате появился формат сжатия аудиоинформации МР3 (полное его название - MPEG Audio Layer III), который начал вполне самостоятельную жизнь. Тот же институт Фраунгофера выпустил первый аппаратный кодер, работающий в реальном времени. За этим шагом последовали другие (МР3-Pro). Сегодня миниатюрные МР3-плейеры и диктофоны с флэш-картами разных мастей знакомы многим. Любой пользователь Интернета знает о распространении сжатого звука через сеть, знает о серверах, "набитых" музыкой в формате МР3.