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

JBIG2 - это стандарт сжатия двухуровневых изображений , разработанный Объединенной группой экспертов по двухуровневым изображениям . Он подходит как для сжатия без потерь, так и с потерями . Согласно пресс-релизу [1] Группы, в режиме без потерь JBIG2 обычно генерирует файлы в 3-5 раз меньше, чем Fax Group 4, и в 2-4 раза меньше, чем JBIG , предыдущий стандарт двухуровневого сжатия, выпущенный Группой. JBIG2 был опубликован в 2000 году как международный стандарт ITU T.88, [2], а в 2001 году как ISO / IEC 14492. [3]

Функциональность [ править ]

В идеале кодировщик JBIG2 сегментирует входную страницу на области текста, области полутоновых изображений и области других данных. Области, которые не являются ни текстом, ни полутонами, обычно сжимаются с использованием контекстно-зависимого арифметического кодирования.Алгоритм называется MQ-кодером. Текстовые области сжимаются следующим образом: пиксели переднего плана в областях группируются в символы. Затем создается и кодируется словарь символов, обычно также с использованием контекстно-зависимого арифметического кодирования, и области кодируются, описывая, какие символы и где появляются. Обычно символ соответствует текстовому символу, но этого не требует метод сжатия. При сжатии с потерями различием между похожими символами (например, немного разными оттисками одной и той же буквы) можно пренебречь; для сжатия без потерь эта разница учитывается путем сжатия одного похожего символа с использованием другого в качестве шаблона.Полутоновые изображения могут быть сжаты, реконструируя изображение в оттенках серого, используемое для генерации полутонов, и затем отправляя это изображение вместе со словарем полутоновых узоров.[4] В целом алгоритм, используемый JBIG2 для сжатия текста, очень похож на схему сжатия JB2, используемую в формате файла DjVu для кодирования двоичных изображений.

Файлы PDF версии 1.4 и выше могут содержать данные, сжатые JBIG2. Декодеры с открытым исходным кодом для JBIG2 - это jbig2dec [5], jbig2-imageio [6] на основе java и декодер, найденный в версиях 2.00 и выше xpdf . Кодировщик с открытым исходным кодом - jbig2enc. [7]

Технические детали [ править ]

Обычно двухуровневое изображение состоит в основном из большого количества текстовых и полутоновых данных, в которых одни и те же формы появляются повторно. Двухуровневое изображение разделено на три области: текст, полутона и общие области. Каждый регион кодируется по-разному, и методики кодирования описаны в следующем отрывке.

Данные текстового изображения [ редактировать ]

Кодирование текста основано на природе визуальной интерпретации человека. Человек-наблюдатель не может различить два экземпляра одних и тех же символов в двухуровневом изображении, даже если они не могут точно совпадать пиксель за пикселем. Следовательно, необходимо кодировать только битовую карту одного репрезентативного экземпляра символа вместо индивидуального кодирования битовых карт каждого вхождения одного и того же символа. Для каждого экземпляра символа закодированный экземпляр символа затем сохраняется в «словаре символов». [8] Существует два метода кодирования данных текстового изображения: сопоставление и подстановка с образцом (PM&S) и мягкое сопоставление с образцом (SPM). Эти методы представлены в следующих подразделах. [9]

Блок-схемы (слева) метода сопоставления с образцом и подстановки и (справа) метода сопоставления с мягким образцом
Сопоставление с образцом и замена
После выполнения сегментации изображения и поиска совпадений, и если совпадение существует, мы кодируем индекс соответствующего репрезентативного растрового изображения в словаре и положение символа на странице. Позиция обычно указывается относительно другого ранее закодированного символа. Если совпадение не найдено, сегментированный блок пикселей кодируется напрямую и добавляется в словарь. Типичные процедуры сопоставления с образцом и алгоритма подстановки показаны на левой блок-схеме рисунка выше. Хотя метод PM&S может обеспечить выдающееся сжатие, при низком разрешении изображения в процессе могут быть сделаны ошибки замещения.
Мягкое сопоставление с образцом
Помимо указателя на словарь и информации о положении символа, требуются также уточняющие данные, поскольку они являются важной частью информации, используемой для восстановления исходного символа на изображении. Использование уточняющих данных может сделать упомянутую ранее ошибку подстановки символов весьма маловероятной. Данные уточнения содержат текущий желаемый экземпляр символа, который кодируется с использованием пикселей как текущего символа, так и соответствующего символа в словаре. Поскольку известно, что текущий экземпляр символа сильно коррелирован с совпадающим символом, прогноз текущего пикселя является более точным.

Полутона [ править ]

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

Арифметическое энтропийное кодирование [ править ]

Все три типа областей, включая текст, полутона и общие области, могут использовать арифметическое кодирование. JBIG2 специально использует MQ-кодер , тот же энтропийный кодировщик, который используется в JPEG 2000 .

Патенты [ править ]

Патенты на JBIG2 принадлежат IBM и Mitsubishi. Бесплатные лицензии должны быть доступны после запроса. Патенты JBIG и JBIG2 - это не одно и то же. [10] [11] [12]

Недостатки [ править ]

При использовании в режиме с потерями сжатие JBIG2 потенциально может изменить текст таким образом, чтобы его нельзя было распознать как повреждение. Это контрастирует с некоторыми другими алгоритмами, которые просто размываются, делая артефакты сжатия очевидными. [13] Поскольку JBIG2 пытается сопоставить похожие символы, например, числа «6» и «8» могут быть заменены.

Сообщалось, что в 2013 году различные замены (в том числе замена «6» на «8») произошли на многих копировальных аппаратах и принтерах Xerox Workcentre , где числа, напечатанные на отсканированных (но не опознанных) документах, могли потенциально быть изменены. Это было продемонстрировано на строительных чертежах и некоторых таблицах чисел; Было кратко упомянуто потенциальное влияние таких ошибок замены в таких документах, как медицинские рецепты . [14] [15] [16] Дэвид Кризель и Xerox занимались этим расследованием. [17] [18]

Впоследствии Xerox признала, что это давний программный дефект, и их первоначальные заявления о том, что замену могут вводить только не заводские настройки, были неверными. Патчи, которые всесторонне решают проблему, были опубликованы позже в августе, но не было предпринято никаких попыток отозвать или обязать обновления для затронутых устройств, что, как было признано, затрагивает более десятка семейств продуктов. Ранее отсканированные документы по-прежнему потенциально могут содержать ошибки, из-за чего их достоверность сложно подтвердить. Впоследствии (в 2015 году) регуляторы Германии и Швейцарии запретили кодировку JBIG2 в архивных документах. [19]

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

  1. Пресс-релиз Объединенной группы экспертов по двухуровневым изображениям. Архивировано 15 мая 2005 г. в Wayback Machine .
  2. ^ "Рекомендация ITU-T T.88 - T.88: Информационные технологии - Кодированное представление изображения и звуковой информации - Кодирование двухуровневых изображений с потерями / без потерь" . Проверено 19 февраля 2011 .
  3. ^ «ISO / IEC 14492: 2001 - Информационные технологии - Кодирование двухуровневых изображений с потерями / без потерь» . Проверено 19 февраля 2011 .
  4. ^ JBIG2 - окончательный стандарт двухуровневого кодирования изображений , Ф. Оно, У. Раклидж, Р. Арпс и К. Константинеску, in Proceedings, 2000 International Conference on Image Processing (Vancouver, BC, Canada), vol. 1. С. 140–143.
  5. ^ Домашняя страница jbig2dec .
  6. ^ Плагин jbig2 с открытым исходным кодом для Java ImageIO .
  7. ^ Домашняя страница jbig2enc. Архивировано 25 апреля 2017 г. на Wayback Machine .
  8. ^ Ф. Оно, У. Раклидж, Р. Арпс и К. Константинеску, «JBIG2 - окончательный стандарт двухуровневого кодирования изображений», Обработка изображений, 2000. Труды. 2000 Международная конференция, т. 1. С. 140–143 т. 1, 2000.
  9. ^ П. Ховард, Ф. Коссентини, Б. Мартинс, С. Форчхаммер и У. Раклидж, "Новый стандарт JBIG2", Схемы и системы для видеотехнологий, IEEE Transactions on, vol. 8, вып. 7, pp. 838–848, ноябрь 1998 г.
  10. ^ Какова патентная ситуация с JBIG? , заархивировано из оригинала 23 февраля 2012 г.
  11. ^ Что такое JBIG2? , заархивировано из оригинала 14 апреля 2012 г. , получено 07 апреля 2012 г.
  12. ^ JBIG2 патенты , заархивированные с оригинала на 2017-09-29 , извлекаться 2012-04-07
  13. ^ Чжоу Ван, Хамид Р. Шейх и Алан С. Бовик (2002). «Оценка качества восприятия сжатых изображений JPEG без справок» (PDF) . Архивировано из оригинального (PDF) 2 ноября 2013 года. Цитировать журнал требует |journal=( помощь )
  14. ^ «Сканеры / копировальные аппараты Xerox случайным образом изменяют номера в отсканированных документах» . 2013-08-02 . Проверено 4 августа 2013 .
  15. ^ «Запутанные копировальные аппараты Xerox переписывают документы, эксперт находит» . BBC News . 2013-08-06 . Проверено 6 августа 2013 .
  16. ^ http://fontfeed.com/archives/xerox-scanners%E2%80%8A%E2%80%8Aphotocopiers-randomly-alter-numbers/
  17. ^ "Xerox расследует последние результаты испытаний на искажение" . 2013-08-11 . Проверено 11 августа 2013 .
  18. ^ Обновление по сканированию выпуска: Программное обеспечение Патчи к Приди , Xerox (блог), 2013-08-11, архивируются с оригинала на 2013-11-04 , извлекаться 2013-08-11
  19. ^ Kriesel, Дэвид. «Видео и слайды моего выступления Xerox Talk на 31C3» . Д. Кризель Наука о данных, машинное обучение, барбекю, фотографии и муравьи в террариуме . Проверено 31 июля 2016 года .

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

  • T.88: Кодирование двухуровневых изображений с потерями / без потерь