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