- •Алгоритм rle (Run Length Encoding)
- •Обрезка «хвостов»
- •Сжатие изображения по стандарту jpeg
- •6. Сглаживание в процессе восстановления изображения. Из-за потери информации на границах между блоками (8 X 8 пикселов) могут возникать разрывы. Поэтому необходимо сглаживание.
- •Новый стандарт jpeg 2000
- •Фрактальное сжатие изображений
Сжатие изображения по стандарту jpeg
Данный алгоритм обеспечивает уменьшение размера файла в 25-100 раз за счет сжатия с потерями. Он разработан Международной организацией по стандартизации (International Organization for Standardization, ISO). Метод JPEG достаточно сложен с вычислительной точки зрения, так как занимает много процессорного времени.
Первоначальное и восстановленное изображения — не одно и то же. Но информация усекается не просто так. Некоторые данные можно исключить, и большинство людей этого не заметят. Кроме того, пользователь может контролировать уровень потерь, указывая степень сжатия в зависимости от того, что для него важнее — качество изображения или экономия памяти.
Кодирование изображения по алгоритму JPEG подразделяется на несколько этапов.
Преобразование цветового пространства из RGB в YUV. Канал Y содержит информацию о яркости, U и V — о цвете. Система зрения человека особенно чувствительна к Y-компоненте и менее чувствительна к U и V.
Y-компонента — это цветное изображение, показанное на черно-белом телевизоре.
U-компонента — информация о синем цвете.
V-компонента — информация о красном цвете.
Поэтому Y-компонента будет сжиматься в меньшей степени, чем U и V.
Прореживание. В U- и V-компонентах отбрасываются строки или столбцы пикселов с определенными номерами. Например, при прореживании с коэффициентами 2:1:1 будет отбрасываться информация о цвете для каждой второй строки и каждого второго столбца, в результате чего будет потеряно 75 % данных цветности. При коэффициенте 1:1:1 прореживания нет. На Y- компоненте прореживание не отражается.
Дискретное косинусное преобразование (ДКП). Это удивительная математическая операция, которая позволяет представить значения цвета в удобном для последующего сжатия виде (рис. 16.1).
Р ис. 16.1. Этапы сжатия
ДКП выполняется отдельно для Y-, U- и V-компонент. Изображение разбивается на блоки размером 8 x 8 пикселов. Такой участок с большой вероятностью содержит пикселы близкого цвета. При ДКП информация о 64 пикселах преобразуется в матрицу из 64 коэффициентов, которые характеризуют «энергию» исходных пикселов. Максимальные значения коэффициентов концентрируются в левом верхнем углу матрицы 8 x 8, минимальные — в правом нижнем. Первый коэффициент передает подавляющую часть «энергии», а количество «энергии», представляемой остальными коэффициентами, быстро убывает. Таким образом, большая часть информации исходной матрицы 8 x 8 пикселов представляется первым элементом матрицы, преобразованной по ДКП. На этом этапе происходит некоторая потеря информации, связанная с принципиальной невозможностью точного обратного преобразования. Однако она незначительна по сравнению с потерями на следующем этапе.
Квантование. Применяется для сокращения разрядности коэффициентов и заключается в делении имеющихся значений на какое-либо число. После отбрасываются малые изменения коэффициентов. Здесь происходит значительная потеря информации. Поэтому после восстановления изображения получаются уже другие значения пикселов. (Для U- и V-компонент квантование более грубое.)
Полученные данные сжимаются по RLE-, LZW-алгоритму или алгоритму Хаффмана для достижения еще большей компрессии. Помимо применяемого кодирования наиболее часто встречающихся символов, последние нули в конце строки могут быть заменены символом «конец блока», а так как все блоки имеют одинаковый размер, всегда известно, сколько нулей было опущено.
При восстановлении изображения шаги выполняются в обратном порядке. Изображения, в которых соседние пикселы мало отличаются друг от друга, лучше поддаются сжатию. Однако чем меньше размер выходного файла, тем меньше степень «аккуратности» при работе программы-конвертора и, соответственно, ниже качество выходного изображения. Обычно в программах, позволяющих сохранять растровые данные, есть возможность некоторого компромисса между объемом выходного файла и качеством изображения. При лучшем качестве (рис. 16.2, а) объем выходного файла в 3-5 раз меньше исходного не запакованного, при качестве похуже (рис. 16.2, б) — меньше исходника в десятки раз, но, как правило, при этом качество изображения уже не позволяет использовать его в ответственных задачах.
а) б)
Рис. 16.2. Примеры сжатия изображения по алгоритму JPEG
Данный формат предназначен для хранения в основном фотографических изображений с большим количеством оттенков и цветовых переходов и почти не подходит для хранения однотонных изображений типа кадров из мультфильмов, скриншотов (сжатие будет слишком низким или качество картинки достигнет критической отметки). Этот метод сжатия графических данных используется в файлах формата PDF, PostScript, собственно в JPEG и др.