Если вы читаете эти строки, вы даете себе возможность узнать новые принципы и факторы технологии сжатия JPEG, а также о том, каким образом и способом можно добиться самых сильных степеней сжатия.
Сам процесс сжатия по схеме JPEG включает в себя несколько этапов.
Первый этап состоит из преобразования изображения из одного цветового пространства в другое ( то есть с пространства RGB в пространство YUV), которое основано на характеристиках цветности и яркости. Это пространство имеет такие характеристики, которые позволяют расширить функции. Работая с этим цветовым пространством, мы имеем возможность получать еще большие степени сжатия.
Давайте познакомимся подробней с его функциями и узнаем чем же отличается и что такого необыкновенного в YUV представлении цвета в сравнении с RGB.
YUV пространство сравнимо с «естественным», которое выполняет человек. Компонент Y отвечает за яркость и качество картинки, даже можно сказать, что и есть сама картинка черно-белая. Раскрашивать нам ее помогают компоненты U и V, которые содержат в себе информацию о цвете.
Следующий этап сжатия разделяет изображение на квадратные участки размером 8х8 пикселей, и над каждым участком производится т.н. дискретное косинус-преобразование (ДКП). В это время происходит анализ каждого из блоков, разложение его на составляющие цвета. Идет подсчет частоты появления каждого цвета.
Чтобы легче вам было понять, наведем пример работы органа зрения – глаз. Физиология нашего организма устроена таким образом, что человеческий глаз наиболее чувствителен к Y-компоненту (яркостной составляющей изображения). Как вы знаете, что наш зрачок представляет собой оптическую линзу. Она фокусирует изображение на глазное дно, которое покрытое колбочками и палочками.
Представьте, что палочки – это сенсоры, которые воспринимают именно яркостную составляющую, а колбочки – воспринимают цветовую составляющую. Палочки намного чувствительны к свету, и их количество намного превышает количество колбочек. Не даром говорят, что вечером цвета приобретают серый цвет. Это происходит потому, что количество падающего на зрачок света недостаточно для того, чтобы вызвать реакцию колбочки.
Но и к разным цветам чувствительность человеческого глаза — величина не постоянная. Наш зрачок чувствителен к нижней части цветового спектра больше, чем к верхней. И тут как раз приходит на помощь формат JPG, который и учитывает эти особенности. Анализируя частотную информацию о появлении цветов, избавиться от части этой информации удается уже в процессе квантования.
И что же при этом происходит? Это приводит к тому, что цвета в верхней части спектра исключаются, и это не сказывается на зрительном восприятии образа. Но исключается также и часть яркостной информации. То есть формат JPG отбрасывает от яркостной составляющей часть полезного сигнала, а от цветовой ¾ . Количество информации, которая исключается при сжатии, зависит от необходимого качества изображения. При самых высоких уровнях сжатия детали стираются полностью. Блок при этом становится серым. А при средних и низких уровнях сжатия файлы сохраняют примерную информацию о цвете определенного участка. От степени сжатия и зависит эта «примерность». Поэтому, в отличие от других форматов, формат JPG сохраняет примерные цвета.
Этот формат называют еще форматом, несущим потери. При больших степенях сжатия этот формат отбрасывает члены ряда высшего порядка. А при воспроизведении изображения на мониторе компьютера производит синтез, достаточно ресурсоемкий на медленных компьютерах. Если сказать поконкретней, то восстановить рисунок до последнего пикселя будет практически невозможно, если вы сохраняли его в формате JPG.
kompik63.ru рекомендует не пересжимать изображения в этом формате, так как они станут хуже. А если это повторять несколько раз, то информация о цвете и яркости кодируется таким образом, что сохраняются только различия между соседними блоками. Это приводит к тому, что блоки представляются строками чисел, которые можно сжимать и дальше. При такой обработке блоки содержат в себе много нулей, и последняя стадия кодирования приносит неплохой результат.
Сжимать JPG-файл архиватором нет смысла, так как он уже сжат. А так как полученный нами архив будет больше по размеру, чем исходный рисунок, то первоначальные 24 бита на элемент изображения или 192 байта на блок превращаются в горстку бит. Они описывают зрительные характеристики всего участка изображения.
Этот формат мне не нравится, он не поддерживает прозрачность!!!