stringtranslate.com

JPEG без потерь

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

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

Объединенная группа экспертов по фотографии ISO/IEC поддерживает эталонную реализацию программного обеспечения, которая может кодировать как базовый JPEG (ISO/IEC 10918-1 и 18477-1), так и расширения JPEG XT (ISO/IEC 18477, части 2 и 6-9), а также JPEG-LS (ИСО/МЭК 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 также обеспечивает режим с потерями («почти без потерь»), в котором кодировщик может контролировать максимальную абсолютную ошибку.

Производительность

Поддержка приложения

Алгоритм ЛОКО-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, и он выполняется, как только обнаруживается плоская или гладкая контекстная область, характеризующаяся нулевыми градиентами. Ожидается движение западного символа «а», и конец пробега происходит, когда появляется новый символ или достигается конец строки. Вся длина закодируется, и кодер вернется в «обычный» режим.

JPEG 2000

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

JPEG-XT

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

JPEG XL

JPEG XL включает в себя режим без потерь/почти без потерь/отзывчивый режим, называемый Modular , который дополнительно использует модифицированное преобразование Хаара (так называемое «сжатие») и который также используется для кодирования изображения постоянного тока (масштаб 1:8) в режиме VarDCT, а также различных вспомогательные изображения, такие как поля адаптивного квантования или дополнительные каналы, такие как альфа . [15]

Рекомендации

  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). {{cite newsgroup}}: Внешняя ссылка |quote=( помощь )
  2. ^ "JPEG - JPEG XT" . jpeg.org .
  3. ^ Пеннебейкер, В.Б. и Митчелл, Дж.Л. (1993). Стандарт сжатия данных неподвижных изображений JPEG . Нью-Йорк: Ван Ностранд Рейнхольд. ISBN 978-0-442-01272-4.
  4. ^ МСЭ-Т. ISO DIS 10918-1 Цифровое сжатие и кодирование неподвижных изображений с непрерывным тоном (JPEG). Рекомендация Т.81.
  5. ^ Уоллес, CK (1991). «Стандарт сжатия неподвижных изображений JPEG». Коммуникации АКМ . 34 (4): 31–44. CiteSeerX 10.1.1.318.4292 . дои : 10.1109/30.125072. 
  6. ^ "Главная страница HP Labs LOCO-I/JPEG-LS" . Девелоперская компания Хьюлетт-Паккард. 13 мая 2005 года . Проверено 24 октября 2011 г.
  7. ^ «T.87: Информационные технологии – Сжатие без потерь и почти без потерь неподвижных изображений с непрерывным тоном – Базовый уровень» . Международный союз электросвязи . Проверено 24 октября 2011 г.
  8. ^ М. Дж. Вайнбергер, Г. Серусси и Г. Сапиро, «LOCO-I: алгоритм сжатия изображений без потерь на основе контекста и низкой сложности», в Proc. Конференция по сжатию данных 1996 г., Сноуберд, Юта, март 1996 г., стр. 140–149.
  9. ^ М. Вайнбергер, Г. Серусси и Г. Сапиро, «Алгоритм сжатия изображений без потерь LOCO-I: принципы и стандартизация в JPEG-LS», IEEE Trans. Обработка изображений, том. 9, нет. 8, стр. 1309–1324, август 2000 г., первоначально как Технический отчет Hewlett-Packard Laboratories № HPL-98-193R1, ноябрь 1998 г., исправлено в октябре 1999 г. Доступно в [1].
  10. ^ http://www.hpl.hp.com/loco/HPL-98-193R1.pdf. Архивировано 26 декабря 2019 г. в алгоритме Wayback Machine LOCO-I.
  11. ^ Мемон, Насир Д.; У, Сяолинь; Сиппи В. и Миллер Г. (1997). «Расширение межполосного кодирования нового стандарта JPEG без потерь». Труды SPIE . 3024 (47): 47–58. Бибкод : 1997SPIE.3024...47M. дои : 10.1117/12.263270. S2CID  58232715.
  12. ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 2 июля 2006 г. Проверено 17 июня 2006 г.{{cite web}}: CS1 maint: archived copy as title (link)
  13. ^ «Архивная копия». Архивировано из оригинала 22 февраля 2007 г. Проверено 7 февраля 2007 г.{{cite web}}: CS1 maint: archived copy as title (link)
  14. ^ «Бенчмарк сжатия фотографий без потерь» . imagecompression.info .
  15. ^ Алакуйала, Юрки; ван Ассельдонк, Рууд; Букортт, Сами; Шабадка, Золтан; Брюс, Мартин; Комса, Юлия-Мария; Фиршинг, Мориц; Фишбахер, Томас; Ключников, Евгений; Гомес, Себастьян; Обрик, Роберт; Потемпа, Кшиштоф; Ратушняк, Александр; Снейерс, Джон; Шабадка, Золтан; Вандервенн, Лоде; Версари, Лука; Вассенберг, январь (6 сентября 2019 г.). «Архитектура сжатия изображений нового поколения и инструменты кодирования JPEG XL». В Тешере, Эндрю Г; Эбрахими, Турадж (ред.). Применение цифровой обработки изображений XLII . Том. 11137. с. 20. Бибкод : 2019SPIE11137E..0KA. дои : 10.1117/12.2529237 . ISBN 9781510629677.

Внешние ссылки