Методы прогрессирующего сжатия изображений, особенности

Большинство современных методов сжатия изображений являются прогрессирующими (поступательными) или они легко делаются такими. Это особенно важно, если сжатое изображение передается по каналам связи, а затем декодируется и наблюдается получателем режиме реального времени (например, это делается браузерами всемирной паутины). Когда такое изображение принимается и разжимается, декодер способен очень быстро показать всю картинку в формате с низким качеством, а затем постепенно улучшать качество по мере приема остальной части сжатого изображения и его декодирования. Пользователь, наблюдая на экране развитие образа, может распознать все особенности этого изображения после декодирования всего 5-10% от его размера. Это можно сравнить со сжатием растровосканированных изображений. Когда изображение сканируется и сжимается по строкам сверху вниз, а потом декодируется последовательно, пользователь обычно не может многое узнать о нем, наблюдая на дисплее лишь 5-10% от всего изображения. Поскольку картинки будут рассматриваться людьми, прогрессирующее сжатие является более предпочтительным, даже если оно, в целом, работает медленнее и имеет меньшую эффективность, чем непрогрессирующее сжатие.

Для того, чтобы лучше понять прогрессирующее сжатие, представьте себе, что кодер сначала сжимает самую важную часть изображения и помещает ее в файл, затем сжимается менее важная информация и добавляется в сжатый файл и так далее. Это объясняет также, почему потерю информации при прогрессирующем сжатии можно контролировать естественным образом: достаточно остановить сжатие в некоторой точке. Пользователь может менять долю опущенной информации с помощью параметра, который сообщает кодеру, как долго следует продолжать процесс сжатия. Чем раньше произойдет эта остановка, тем выше будет степень сжатия и тем больше будет размер утерянной информации.

Другое преимущество прогрессирующего сжатия становится несомненным, когда сжатый файл должен разжиматься много раз и каждый раз с разным разрешением. Декодер может в каждом случае остановить процесс декодирования, когда изображение достигло разрешения, доступного данному устройству. Образование - это прогрессирующее обнаружение нашего невежества. — Уил Дюрант. Мы уже упоминали прогрессирующее сжатие изображений в связи с алгоритмом JPEG. Этот алгоритм использует DCT для разделения образа на пространственные частоты и начинает сжатие с низкочастотных компонентов. Поэтому декодер может быстро показать соответствующую им грубую картинку. Высокочастотные компоненты содержат детали изображения.

Кроме того, полезно представлять себе прогрессирующее декодирование как процесс улучшения качества изображения во времени. Это можно сделать тремя путями:

1. Закодировать пространственные частоты изображения прогрессирующим образом. Наблюдатель, следящий за декодированием, увидит такое изображение изменяющимся от расплывшегося до резкого. Методы, которые работают подобным образом, имеют среднюю скорость кодирования и медленную скорость декодирования. Этот тип сжатия часто называется прогрессирующим по соотношению сигнал/шум или прогрессирующим по качеству изображения.

2. Начать с черно-белого полутонового изображения, а потом добавить цвет и тени. При декодировании зритель с самого начала увидит изображение со всеми деталями, которые будут улучшаться по мере добавления цветов и красок. Метод векторного квантования применяет этот принцип компрессии. Такие алгоритмы отличаются медленным кодированием и быстрым декодированием.

3. Кодировать изображение по слоям, где ранние слои состоят из нескольких пикселов большого разрешения. Наблюдатель заметит постепенную детализацию картинки во времени при ее декодировании. Такой метод добавляет все новые детали по мере разжатия файла. Этот путь прогрессирующего сжатия называется пирамидальным или иерархическим кодированием. Большинство методов сжатия используют этот принцип, поэтому в этом параграфе обсуждаются общие идеи осуществления пирамидального кодирования.

-----------------------------