3.8.2. Основы метода JPEG-LSМы уже отмечали в § 3.7.6, что мода без потерь данных метода JPEG весьма неэффективна, и часто ее даже не включают в конкретные приложения, использующие JPEG. В результате ISO в кооперации с IEC разработали новый стандарт для сжатия без потерь (и почти без потерь) непрерывно-тоновых изображений. Этот метод официально известен как рекомендация ISO/IEC CD 14495, но его принято называть JPEG-LS. Здесь рассматриваются основные принципы этого метода, который не является расширением или модификацией метода JPEG. Это совершенно новый метод, простой и быстрый. Он не использует ни DCT, ни арифметическое кодирование. Применяется слабое квантование и только в моде почти без потерь. JPEG-LS основан на идеях, развитых в [Weinberger и др. 96] для метода компрессии LOCO-I. JPEG-LS (1) изучает несколько предыдущих соседей текущего пиксела, (2) рассматривает их как контекст этого пиксела, (3) использует контекст для прогнозирования пиксела и для выбора распределения вероятностей из нескольких имеющихся, и (4) применяет это распределение для кодирования ошибки прогноза с помощью специального кода Голомба. Имеется также серийная мода, когда длина серии одинаковых пикселов кодируется подходящим образом. Пикселы контекста a, b, с, d, используемые для прогнозирования текущего пиксела
Табл. 3.61. Контекст для прогноза В регулярной моде кодер использует величины пикселов a, b и с для вычисления прогноза пиксела В серийной моде кодер начинает с пиксела Декодер мало отличается от кодера, поэтому JPEG-LS можно считать почти симметричным методом сжатия. Сжатый файл состоит из сегментов данных (содержащих коды Голомба и длины серий), сегментов маркеров (с информацией, необходимой декодеру) и просто маркеров (в качестве которых используются некоторые зарезервированные маркеры JPEG). Маркером является байт из одних единиц, за которым следует специальный код, сигнализирующий о начале нового сегмента. Если за маркером следует байт, у которого старший бит равен 1, то этот байт является началом сегмента маркеров. В противном случае, начинается сегмент данных.
|