JBIG2

У нас в документообороте всё больше используется формат ПДФ, но с ним есть проблема — документы из некоторых сторонних организаций к нашим клиентам приходят на бумаге, по факсу или каким-то ещё подобным способом, причём объём такой корреспонденции незначительным назвать трудно.

Пока мы такие документы помещаем в ПДФ сканами в хорошем качестве в формате ДжПЕГ. Увы, это довольно расточительно. К счастью, ПДФ поддерживает не один, а целых три формата графики — ДжПЕГ, ДжПЕГ 2000 и ДжБИГ2. На последний я возлагал большие надежды.

Идея этого формата очень интересна и проста. Если у нас есть скан документа, его значимую часть в основном занимают буквы и цифры, если найти при помощи распознавания одинаковые символы, то их можно закодировать по одному разу, а в остальных местах использовать просто ссылки на них. Текстовые сканы действительно ужимаются значительно (я пробовал), тем более, что формат двухбитный (только для чёрно-белых изображений), чего для документов вполне хватает.

Ошибки JBIG2 (34.98КиБ) К сожалению, у формата есть серьёзный недостаток, на который я тут же и наткнулся.

Алгоритм устроен так, что он подбирает не просто одинаковые символы, а похожие. Это разумно — принтеры печатают неравномерно из-за бумаги и тонера, при сканировании вносятся искажения, а при передаче факсом их становится ещё больше. Вот тут и приходит беда — кодек может перепутать похожие, но разные символы, что для документа совершенно недопустимо.

Посмотрите, у меня на скриншоте выше — оригинальный ПДФ (слева) и ПДФ, где графика перекодирована в ДжБИГ2. Как видно при кодировании были перепутаны «п» и «и», «п» и «н». Для слов в документах может это ещё и не смертельно, но для цифр в суммах — беда.

Мне неясно можно ли что-то сделать в этом месте, возможно можно подредактировать кодек так, чтобы он реагировал только на 100% совпадение, но тогда, скорее всего, пропадёт всякий смысл использовать ДжБИГ2.

Остаётся ещё вариант с ДжПЕГом 2000, но с ним возможно, выигрыш будет столь незначительным, что затраты на конвертацию просто не окупятся.
22 мая 2015 09:30

Азат Аюпов (инкогнито)
22 мая 2015, 09:55

Думаю, можно изменить существующий кодер или даже написать свой, с продвинутыми алгоритмами выявления совпадений, и уменьшить количество ошибок, но они всё равно останутся. К тому же, когда возможности алгоритма выявления совпадений подходят к своему пределу, в OCR-софте используются дополнительные средства, как изменение контраста изначального изображения, так и проверка правописания после распознавания. Но это нельзя (сложно) применить в jBig2-кодере.
Мне кажется, этот формат подходит для книг и статей, где ошибки некритичны, но никак не для документов.

Но! Алгоритм применяется очень широко, оказывается. http://www.computerra.ru/79247/jbig2/ — статья 2013 года в Компьютерре о баге в сканерах Xerox, в комментариях и Brother упомянуты.
Ещё похожий алгоритм применяется в .djvu-документах, где также бывают ошибки.

bolknote.ru (bolknote.ru)
22 мая 2015, 10:02, ответ предназначен Азату Аюпову

Про djvu я уже писал (http://bolknote.ru/2011/07/21/~3344), но про ошибки не слышал.

hshhhhh.name (инкогнито)
22 мая 2015, 12:43, ответ предназначен bolknote.ru:

А почему вы не используете fine reader? Сам бог велел :).
Ошибки то тоже будут, но зато настоящий pdf!

bolknote.ru (bolknote.ru)
22 мая 2015, 12:53, ответ предназначен hshhhhh.name

Имеется ввиду их MRC что ли? Или что? Ошибки недопустимы.

Sergey Cheban (sergey-cheban.livejournal.com)
22 мая 2015, 17:57

На википедии пишут, что у jbig2 есть lossless mode.

bolknote.ru (bolknote.ru)
22 мая 2015, 18:59, ответ предназначен sergey-cheban.livejournal.com:

Вроде как есть, да. Я пока не нашёл утилиту, в которой он бы работал.

Михаил Иванов (m-ivanov.livejournal.com)
22 мая 2015, 19:15

Полагаю, коллега hshhhhh.name имел в виду "почему вы не распознаете документы, а храните картинки".

bolknote.ru (bolknote.ru)
22 мая 2015, 19:48, ответ предназначен Михаил Иванов (m-ivanov.livejournal.com):

Потому что софта, который распознаёт на 100% не существует.

hshhhhh.name (инкогнито)
23 мая 2015, 14:52, ответ предназначен bolknote.ru:

Потому что софта, который распознаёт на 100% не существует.
Но в текущей же ситуации разницы никакой :)

bolknote.ru (bolknote.ru)
23 мая 2015, 17:02, ответ предназначен hshhhhh.name

Почему же никакой? Сейчас мы используем сканы, на сканах человек всё прочитает в точности, а он распознаёт буквы пока точнее машины, в случае сомнений он просто запросит бумагу ещё раз, тогда как программа подставит туда что-то похожее.

someone (инкогнито)
28 мая 2015, 16:48

В самановсих доках упоминается ccitt - для чистых однобитных сканов group 4 отлично подходит. пыдыфами не занимался.

bolknote.ru (bolknote.ru)
29 мая 2015, 10:18, ответ предназначен someone

PDF внутри поддерживает строго определённые графические форматы. Group 4 среди них нет.

Scan (инкогнито)
16 ноября 2015, 07:54

Фраза "PDF внутри поддерживает строго определённые графические форматы." неверна. PDF это контейнер, что в него положат, то он и поддерживает. Изображение кладутся в raw. Вопрос поддержки скорее касается программ просмотра PDF. Смогут ли они прочесть такой PDF? CCITT 4 часто встречается в PDF и проблем с ним нет.

bolknote.ru (bolknote.ru)
17 ноября 2015, 06:34, ответ предназначен Scan

Тогда что угодно можно назвать контейнером. Я, например, внутрь JPEG могу положить GIF. Означает ли, что фраза «JPEG не поддерживает GIF» не верна? В формате PDF описаны строго определённые форматы, которые поддерживаются.
CCITT 4 часто встречается в PDF и проблем с ним нет.
Конечно нет, потому что эти изображения упомянуты в стандарте PDF.

Максим (инкогнито)
1 сентября 2016, 10:59

Добрый день!
FineReader поддерживает JBIG2 lossless.

Форматов изображений PDF поддерживает больше - ZIP, LZW, JPBIG2, CCIT4 FaxDecode, JPEG, JPEG2000, все они поддержаны в FineReader.

bolknote.ru (bolknote.ru)
1 сентября 2016, 19:12, ответ предназначен Максим

ZIP и LZW не форматы изображений.

Максим (инкогнито)
2 сентября 2016, 11:51

Очень часто изображения в виде сырых данных жмутся ZIP и LZW.

bolknote.ru (bolknote.ru)
2 сентября 2016, 21:35, ответ предназначен Максим

Жать можно чем угодно. Но ZIP и LZW не форматы изображений.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)