Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

JPEG без потерь - это дополнение 1993 года к стандарту JPEG , разработанное Объединенной группой экспертов по фотографии для обеспечения сжатия без потерь . Однако этот термин может также использоваться для обозначения всех схем сжатия без потерь, разработанных группой, включая JPEG 2000 и JPEG-LS.

JPEG без потерь был разработан как последнее дополнение к JPEG в 1993 году с использованием совершенно иной техники, нежели стандарт JPEG с потерями. Он использует схему прогнозирования, основанную на трех ближайших (причинных) соседях (верхнем, левом и верхнем левом), а энтропийное кодирование используется для ошибки прогнозирования. Стандартные библиотеки Independent JPEG Group не могут его кодировать или декодировать, но Кен Мерчисон из Oceana Matrix Ltd. написал патч, расширяющий библиотеку IJG для обработки JPEG без потерь. [1] JPEG без потерь имеет некоторую популярность в медицинской визуализации и используется в DNG и некоторых цифровых камерах для сжатия необработанных изображений, но в остальном так и не получил широкого распространения. Adobe «S DNG SDK предоставляет программную библиотеку для кодирования и декодирования JPEG без потерь с разрешением до 16 бит на выборку.

Совместная группа экспертов по фотографии ISO / IEC поддерживает эталонную программную реализацию, которая может кодировать как базовый JPEG (ISO / IEC 10918-1 и 18477-1), так и расширения JPEG XT (ISO / IEC 18477, части 2 и 6-9), а также JPEG-LS (ISO / IEC 14495). [2]

Режим работы без потерь [ править ]

Рисунок 1: Модель кодировщика DPCM
Рисунок 2: Упрощенные блок-схемы для режима без потерь
Рисунок 3: Три соседних образца вокруг образца для прогнозирования

JPEG без потерь [3] - это фактически режим работы JPEG. Этот режим существует потому, что форма на основе дискретного косинусного преобразования (DCT) не может гарантировать, что вход кодера будет точно соответствовать выходному сигналу декодера. В отличие от режима с потерями, который основан на DCT, в процессе кодирования без потерь используется простая модель кодирования с предсказанием, называемая дифференциальной импульсно-кодовой модуляцией.(DPCM). Это модель, в которой предсказания значений выборок оцениваются по соседним выборкам, которые уже закодированы в изображении. Большинство предикторов берут среднее значение выборок непосредственно выше и слева от целевой выборки. DPCM кодирует различия между предсказанными выборками вместо того, чтобы кодировать каждую выборку независимо. Различия от одного образца к другому обычно близки к нулю. Типичный кодировщик DPCM показан на рисунке 1. Блок на рисунке действует как хранилище текущего сэмпла, который позже будет предыдущим сэмплом.

Основные этапы работы в режиме без потерь изображены на рисунке 2. В процессе предсказатель объединяет до трех соседних выборок в точках A, B и C, показанных на рисунке 3, чтобы произвести прогноз значения выборки в позиции, помеченной X. Три соседних выборки должны быть уже закодированными выборками. . Любой из предикторов, показанных в таблице ниже, может использоваться для оценки выборки, расположенной в X. [4]Может быть использован любой из восьми предикторов, перечисленных в таблице. Обратите внимание, что выборки 1, 2 и 3 являются одномерными предикторами, а варианты выбора 4, 5, 6 и 7 - двумерными предикторами. Первое значение выбора в таблице, ноль, используется только для дифференциального кодирования в иерархическом режиме работы. Как только все выборки предсказаны, различия между выборками могут быть получены и энтропийно закодированы без потерь с использованием кодирования Хаффмана или арифметического кодирования .

Как правило, сжатие с использованием режима работы без потерь позволяет достичь степени сжатия около 2: 1 для цветных изображений. [5] Этот режим довольно популярен в области медицинской визуализации и определен как опция в стандарте DNG, но в остальном он не очень широко используется из-за сложности выполнения арифметических операций со значениями 10, 12 или 14 бит на пиксель на типичных встроенных 32-битных системах. процессор и небольшой выигрыш в пространстве. [ необходима цитата ]

JPEG-LS [ править ]

Общее описание [ править ]

JPEG-LS - это стандарт сжатия без / почти без потерь для изображений с непрерывным тоном. [6] Его официальное обозначение - ISO-14495-1 / ITU-T.87. [7] Это простой и эффективный базовый алгоритм, который состоит из двух независимых и различных этапов, называемых моделированием и кодированием. JPEG-LS был разработан с целью предоставить несложный стандарт сжатия изображений без потерь и почти без потерь, который может предложить лучшую эффективность сжатия, чем JPEG без потерь. Он был разработан, потому что в то время стандарт сжатия без потерь JPEG, основанный на кодировании Хаффмана, и другие стандарты были ограничены в производительности сжатия. Полная декорреляцияне может быть достигнута энтропией первого порядка остатков предсказания, используемых этими низшими стандартами. JPEG-LS, с другой стороны, может получить хорошую декорреляцию. [8] [9] Часть 1 этого стандарта была завершена в 1999 году. Часть 2, выпущенная в 2003 году, вводила такие расширения, как арифметическое кодирование . Ядро JPEG-LS основано на алгоритме LOCO-I [10], который основывается на прогнозировании, остаточном моделировании и контекстном кодировании остатков. Большая часть низкой сложности этого метода проистекает из предположения, что остатки прогноза следуют двустороннему геометрическому распределению (также называемого дискретным распределением Лапласа ), и из использования Голомба.-подобные коды, которые, как известно, приблизительно оптимальны для геометрических распределений. Помимо сжатия без потерь, JPEG-LS также обеспечивает режим с потерями («почти без потерь»), где максимальная абсолютная ошибка может контролироваться кодировщиком.

Производительность [ править ]

  • Сжатие для JPEG-LS обычно намного быстрее, чем JPEG 2000, и намного лучше, чем исходный стандарт JPEG без потерь.
  • Сжатие для JPEG-LS обычно немного хуже, чем для JPEG 2000, но это сильно зависит от содержимого изображения.
  • Декомпрессия для JPEG-LS обычно намного быстрее, чем для JPEG 2000, но это зависит от конкретной реализации программного декодера.
    • Это утверждение действительно для реализаций с открытым исходным кодом.

Поддержка приложений [ править ]

  • Средство просмотра и редактирования изображений IrfanView имеет полную поддержку чтения и записи для кодека изображений JPEG-LS (расширение файла .jls).
  • Программа просмотра и редактирования изображений XnView заявляет о возможности чтения файлов JPEG-LS (.jls).
    • Однако XnViewMP v0.98.1 не может читать файлы JPEG-LS, созданные IrfanView v4.54.
  • CharLS - кодек JPEG-LS с открытым исходным кодом.
  • Libjpeg Томаса Рихтера - кодек JPEG-LS с открытым исходным кодом.
  • Кодек UBC JPEG-LS
  • Кодек Дэвида Клуни JPEG-LS
  • Эталонный кодировщик Hewlett-Packard JPEG-LS v1.00
    • Примечание: прямая ссылка на файл!

Алгоритм LOCO-I [ править ]

Перед кодированием на этапе моделирования необходимо выполнить два важных шага: декорреляция (предсказание) и моделирование ошибок .

Декорреляция / предсказание [ править ]

В алгоритме LOCO-I простое обнаружение горизонтальных или вертикальных краев достигается путем исследования соседних пикселей текущего пикселя X, как показано на рисунке 3. Пиксель, помеченный B, используется в случае вертикального края, а пиксель, расположенный в A, используется в случае горизонтального края. Этот простой предиктор называется предиктором Median Edge Detection (MED) [11] или предиктором LOCO-I. Пиксель X предсказывается предсказателем LOCO-I в соответствии со следующими предположениями:

Три простых предиктора выбираются в соответствии со следующими условиями: (1) он стремится выбрать B в случаях, когда вертикальное ребро существует слева от X, (2) A в случаях, когда горизонтальное ребро выше X, или (3) A + B - C, если кромка не обнаружена.

Контекстное моделирование [ править ]

Алгоритм JPEG-LS оценивает условные ожидания ошибок предсказания, используя соответствующие средние выборки в каждом контексте Ctx . Целью контекстного моделирования является то, что структуры более высокого порядка, такие как образцы текстуры и локальная активность изображения, могут быть использованы посредством контекстного моделирования ошибки предсказания. Контексты определяются путем получения разностей соседних выборок, которые представляют локальный градиент :

Локальный градиент отражает уровень активности, такой как гладкость и резкость соседних образцов. Обратите внимание, что эти различия тесно связаны со статистическим поведением ошибок прогнозирования. Каждое из различий, найденных в приведенном выше уравнении, затем квантуется на примерно равновероятные и связанные области. Для JPEG-LS разности g1, g2 и g3 квантованы в 9 областей, а область проиндексирована от -4 до 4. Целью квантования является максимизация взаимной информации между текущим значением выборки и ее контекстом, чтобы могут быть зафиксированы зависимости высшего порядка. Можно получить контексты, исходя из предположения, что

После объединения контекстов как с положительным, так и с отрицательным знаком общее количество контекстов составляет контексты. Оценка систематической ошибки может быть получена путем деления совокупных ошибок прогнозирования в каждом контексте на количество появлений контекста. В алгоритме LOCO-I эта процедура модифицирована и улучшена, так что количество вычитаний и сложений уменьшено. Процедура вычисления смещения без деления продемонстрирована в [2] . Затем можно выполнить уточнение прогноза путем применения этих оценок в механизме обратной связи, который устраняет смещения прогнозов в различных контекстах.

Кодирование исправленных остатков предсказания [ править ]

В обычном режиме JPEG-LS стандарт использует коды Голомба – Райса, которые являются способом кодирования неотрицательных длин серий. Его особый случай с оптимальным значением кодирования 2 k позволяет более простые процедуры кодирования.

Кодирование длин серий в однородных областях [ править ]

Поскольку коды Голомба – Райса весьма неэффективны для кодирования распределений с низкой энтропией, поскольку скорость кодирования составляет, по крайней мере, один бит на символ, может возникнуть значительная избыточность, поскольку гладкие области изображения могут быть закодированы с точностью менее 1 бита на символ. Чтобы избежать превышения длины кода над энтропией, можно использовать расширение алфавита, которое кодирует блоки символов вместо кодирования отдельных символов. Это распределяет избыточную длину кодирования по многим символам. Это «рабочий» режим JPEG-LS, и он выполняется после обнаружения плоской или гладкой области контекста, характеризующейся нулевыми градиентами. Ожидается переход на запад, символ «a», и конец пробега происходит при появлении нового символа или достижении конца строки. Кодируется общая длина, и кодировщик возвращается в «обычный» режим.

JPEG 2000 [ править ]

JPEG 2000 включает режим без потерь, основанный на специальном целочисленном вейвлет- фильтре (биортогональный 3/5). Режим без потерь JPEG 2000 работает медленнее и часто имеет худшие степени сжатия, чем JPEG-LS для искусственных и составных изображений [12] [13], но работает лучше, чем реализация JPEG-LS UBC для изображений с цифровых камер. [14] JPEG 2000 также является масштабируемым, прогрессивным и широко применяемым. [ необходима цитата ]

JPEG XT [ править ]

JPEG XT включает режим преобразования целого числа в целое число без потерь DCT, основанный на вейвлет-сжатии из JPEG 2000.

Ссылки [ править ]

  1. Мурчисон, Кен (4 апреля 1999 г.). «Поддержка JPEG без потерь для libjpeg» . Группа новостей :  comp.protocols.dicom . Usenet:  [email protected] . Проверено 12 декабря 2017 года . Некоторых людей интересовал мой патч, который добавляет поддержку JPEG без потерь (в соответствии с исходной спецификацией, а не JPEG-LS) в libjpeg v6b. Я решил сделать этот патч доступным на моем ftp-сайте ( ftp://ftp.oceana.com/pub/ljpeg-6b.tar.gz ).
  2. ^ "JPEG - JPEG XT" . jpeg.org .
  3. ^ Pennebaker, WB & Mitchell, JL (1993). Стандарт сжатия данных неподвижных изображений JPEG . Нью-Йорк: Ван Ностранд Рейнхольд. ISBN 978-0-442-01272-4.
  4. ^ ITU-T. ISO DIS 10918-1 Цифровое сжатие и кодирование неподвижных изображений с непрерывным тоном (JPEG). Рекомендация T.81.
  5. ^ Уоллес, СК (1991). «Стандарт сжатия неподвижных изображений JPEG». Коммуникации ACM . 34 (4): 31–44. CiteSeerX 10.1.1.318.4292 . DOI : 10.1109 / 30.125072 . 
  6. ^ «Домашняя страница HP Labs LOCO-I / JPEG-LS» . Компания Hewlett-Packard Development. 13 мая 2005 . Проверено 24 октября 2011 года .
  7. ^ «T.87: Информационные технологии - Сжатие без потерь и почти без потерь неподвижных изображений с непрерывным тоном - Базовая линия» . Международный союз электросвязи . Проверено 24 октября 2011 года .
  8. ^ MJ Weinberger, G. Seroussi и G. Sapiro, «LOCO-I: контекстно-зависимый алгоритм сжатия изображений без потерь низкой сложности», в Proc. Конференция по сжатию данных 1996 г., Snowbird, UT, март 1996 г., стр. 140–149.
  9. ^ М. Вайнбергер, Г. Серусси и Г. Сапиро, «Алгоритм сжатия изображений без потерь LOCO-I: принципы и стандартизация в JPEG-LS», IEEE Trans. Обработка изображений, т. 9, вып. 8, pp. 1309–1324, август 2000 г., первоначально как Технический отчет Hewlett-Packard Laboratories № HPL-98-193R1, ноябрь 1998 г., пересмотренный в октябре 1999 г. Доступно по ссылке [1] .
  10. ^ http://www.hpl.hp.com/loco/HPL-98-193R1.pdf Алгоритм LOCO-I
  11. ^ Мемон, Насир Д .; У, Сяолинь; Сиппи В. и Миллер Г. (1997). «Расширение межполосного кодирования нового стандарта JPEG без потерь». Труды SPIE . 3024 (47): 47–58. Bibcode : 1997SPIE.3024 ... 47M . DOI : 10.1117 / 12.263270 .
  12. ^ «Архивная копия» (PDF) . Архивировано из оригинального (PDF) февраля 2006 года . Проверено 17 июня 2006 . CS1 maint: archived copy as title (link)
  13. ^ "Архивная копия" . Архивировано из оригинала на 2007-02-22 . Проверено 7 февраля 2007 .CS1 maint: archived copy as title (link)
  14. ^ «Тест сжатия фотографий без потерь» . www.imagecompression.info .

Внешние ссылки [ править ]

  • Кодирование неподвижных изображений JPEG 2000 по сравнению с другими стандартами
  • JPEG2000, JPEG-LS и другие кодеки без потерь для изображений в оттенках серого
  • Домашняя страница JPEG-LS
  • Домашняя страница LOCO-I
  • Домашняя страница HP Labs LOCO-I / JPEG-LS
  • Условия лицензирования технологии HP LOCO в формате JPEG-LS (бесплатная регистрация; не подлежит сублицензированию; доступно только для компаний)
  • Ссылки на различные реализации
  • Алгоритм однотонального / полутонового кодирования JPEG-LS
  • Оценка JPEG-LS, IEEE TRANSACTIONS ON GEOSCIENCE AND REMOTE SENSING, VOL. 39, НЕТ. 10 ОКТЯБРЯ 2001 г.