Как технология MRC уменьшает размер PDF-документов

    Формат PDF уже давно прижился как средство сохранения документов, которые затем не предполагается редактировать. Все PDF файлы можно условно разделить на два класса. Первый – это документы, которые были свёрстаны в цифровом виде, и затем были сконвертированы в PDF. Инструкция к какому-нибудь устройству будет, скорее всего, именно таким файлом. Внутри он выглядит как текст и графика плюс команды форматирования, описывающие, как надо располагать элементы на странице.

    Второй класс – это документы, полученные в результате сканирования бумажных изображений. Их можно пропустить через ABBYY FineReader, и они превратятся в первый тип, а можно просто сохранить в PDF как картинки. И этим часто имеет смысл пользоваться, когда хочется сохранить исходный вид документа. Несмотря на то, что ABBYY FineReader довольно хорошо распознаёт документы, возникают ошибки распознавания, какие-то важные элементы на странице не находятся, в общем, то, что получается, по виду несколько отличается от исходного документа.

    Поэтому часто имеет смысл сохранять в PDF изображение исходной картинки, а под него подкладывать распознанный текст для того, чтобы можно было найти документ по ключевым словам или воспользоваться copy-paste. Смущает только один момент – такие PDF-файлы имеют немаленький размер, от полумегабайта на страницу и больше. Соответственно, если отсканировать среднего размера учебник по матанализу, получится файл мегабайт на 200.



    Такой размер объясняется тем, что внутри в PDF отсканированные, растровые изображения сжаты обычными картиночными кодеками, JPEG, JPEG2000, LZW или ZIP. Соответственно, меньше, чем занимают обычные JPEG-файлы для таких страничек, не получается. Чтобы уменьшить размер, обычно прибегают к разного рода ухищрениям – уменьшают разрешение, сильно занижают сжатие картинки, в результате чего сильно страдает качество текста в таких PDF.

    Или тогда приходится отказываться от PDF и сохранять всё в DjVu. Получается довольно маленький размер, но действительность такова, что не все пользователи полученного файла с лёгкостью смогут его прочитать – всё-таки Adobe Acrobat стоит на гораздо большем числе компьютеров, чем DjVu-просмотрщик.
    И тут на помощь приходит технология PDF MRC (от “Mixed Raster Content”) – ответ Adobe формату DjVu. Это тот же PDF, но заимствующий многие элементы из DjVu, и может читаться всеми популярными PDF-читалками. При использовании MRC размер страницы уменьшается раза в 4 при сохранении качества отсканированного изображения. Это происходит благодаря решению разделить изображение на слои и каждый слой сжимать наиболее подходящим кодеком. Текст сжимается кодеком JBIG2, всё остальное сжимается с помощью JPEG/JPEG2000/ZIP с разным качеством.

    Как устроен внутри PDF MRC? Рассмотрим простой пример, а затем постепенно будем его усложнять.
    Пускай у нас есть скан белой страницы с чёрным текстом, например, страницы из книги (все картинки кликабельны).

    Скан, JPEG, 1,2 Мб



    Полезная информация – только буквы, всё остальное можно игнорировать. Найдём весь текст на странице, например, логично для этого запустить FineReader и распознать страницу. Затем выделяем весь найденный текст в отдельный слой, и сжимаем его с помощью кодека JBIG2. Получаем 50 килобайт на страницу против 400 у JPEG и 200 у чёрно-белого факсового кодека CCITT4.

    JBIG2 специально создан для сжатия текста. При работе он объединяет внешне похожие изображения букв в кластеры. Примерами таких кластеров, например, могут служить все буквы ‘a’, напечатанные одним шрифтом одинакового размера. Немного отличающиеся буквы ‘a’, например, с искажениями от сканирования, или напечатанные другим шрифтом, попадут в другие кластеры. В результате получается словарь, в котором объединены часто встречающиеся одинаковые буквы. Затем для каждой буквы запоминается её место. Получается весьма компактно.

    JBIG2, 50 Кб. PDF с дополнительной информацией имеет размер 80 Кб



    Теперь усложним задачу. Пускай у нас есть неравномерный фон, который не хочется терять.

    Tiff, 500 Кб



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

    Итоговый PDF имеет размер 35 Кб против 190, которые мы бы получили, просто сжав всю картинку в JPEG.

    Текст, JBIG2, 18 Кб



    Фон, 11 Кб, JPEG



    Итоговый PDF MRC, 35 Кб



    Следующее усложнение. До сих пор мы выводили только чёрно-белый текст. Пусть теперь у нас будет встречаться цветной текст.

    Tiff, 700 Кб



    По-прежнему жмём текст чёрно-белым кодеком JBIG2, но под цветные буквы подкладываем так называемую цветовую маску – ещё один слой, который видно в «прорезях», сделанных буквами. Этот слой содержит мало цветов, и прекрасно упаковывается, например, с помощью ZIP.

    Текст, JBIG2, 11 Кб



    Цветовая маска, ZIP, 3 Кб



    Текст + цветовая маска выглядят так:



    Фон, JPEG, 40 Кб



    Со сжатием фона важно не переусердствовать – на него может попасть текст, который не был распознан как текст. И если мы сожмём его слишком сильно, такой текст будет трудно читать.

    Итоговый PDF MRC, 60 Кб



    Итак, набралось уже 3 слоя: текст, цветовая маска, которая раскрашивает текст, и фон. Осталось разделаться с элементами, которые не являются ни текстом, ни фоном. Например, это картинки или фотографии. С ними ничего особенного сделать нельзя, и мы просто добавим их в фон, сжимая JPEG или JPEG 2000 с высоким качеством.

    Tiff, 600 Кб



    Текст, JBIG2, 25 Кб



    Цветовая маска, ZIP, 5 Кб



    Фон, JPEG, 40 Кб



    PDF MRC готов. Он содержит несколько слоёв, каждый из которых содержит разные кусочки картинки и сжат наиболее подходящим кодеком.

    Итоговый PDF MRC, 72 Кб



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

    Из такой картинки PDF MRC не получится



    Однако для многих документов, которые мы встречаем в повседневной жизни, MRC даёт отличные результаты.

    И напоследок – несколько примеров PDF MRC, которые можно получить с помощью ABBYY FineReader, ABBYY FineReader Engine или ABBYY Recognition Server:

    PDF, JPEG PDF, MRC
    524 Кб 218 Кб
    618 Кб 175 Кб
    412 Кб 113 Кб


    Итого, мы получаем сжатие в 2-6 раз при том же качестве, и это не предел. PDF MRC – ещё очень молодая технология, и она продолжает активно развиваться. Будут улучшения и в сторону улучшения качества, и в сторону уменьшения размера.

    Все примеры PDF, приведённые в этой статье, получены с помощью ABBYY FineReader Engine 10, настройки по умолчанию.

    Василий Панфёров,
    Департамент продуктов для разработчиков

    ABBYY

    97,00

    Решения для интеллектуальной обработки информации

    Поделиться публикацией

    Похожие публикации

    Комментарии 27
      +4
      Похоже, что всё идёт к тому, что документы будут описываться правилами «как их сделать», а не «что там изобразить».
        –1
        Поправьте, пожалуйста, JPEG200 -> JPEG2000.
          0
          Поправил, спасибо.
          0
          А текст при этих настройках (FR10, по умолчанию) распознается?
          И куда в файле он помещается, как при этом изменяется сжатие?
          Достаточно ли для добавления распознанного текста обычного FR или нужен FR Engine?
            0
            Текст распознаётся и помещается отдельным слоем под картинку.

            Весь механизм работает и в FR Engine, и в обычном FR одинаковым образом — у них общий код. В Engine чуть побольше ручек.

            Про сжатие я не уверен, что понял вопрос. Pdf представляет из себя текст, картинки и управляющие команды. Обычно картинки имеют самый большой размер.
            Технология MRC направлена на то, чтобы уменьшить размер картинок. Размер текстового слоя не меняется, управляющих команд становится немножко больше.
              0
              Спасибо за полный ответ.
              Имелось в виду под изменением сжатия, что изменились накладные расходы для текста под MRC, и, может, вы научились сжимать и текст внутри PDF.
              Насколько я понял, текст не сжимается, а накладные в виде команд несущественно увеличиваются, так?
                0
                Да.

                может, вы научились сжимать и текст внутри PDF.

                Давно уже. Текст внутри и команды его вывода сжимаются zip'ом.
            0
            Спасибо, познавательно!
              0
              Когда буквы объединяются в кластер, показывается случайная буква из кластера или «средняя» буква?
                0
                Сорри, промазал ссылкой и ответил ниже.

                Зависит от реализации. У нас «средняя».
                  0
                  Это хорошо. На мой взгляд это улучшает изображение.
                    +1
                    Можно ли как-нибудь просматривать и объединять кластеры?
                  0
                  Зависит от реализации. У нас «средняя».
                    +6
                    Вот уж действительно сжимает так, что не отличишь, на второй паре картинок даже URL совпадает.
                      +1
                      :) Поправлено.
                      0
                      Очень интересные результаты и технология.
                      Кстати, уже бывшие конкуренты Abbyy, Cognitive Technologies недавно анонсировали нечто похожее.

                        0
                        спасибо интересно… ещё интересно какие алгоритмы ищут что есть что…
                          0
                          Да, кстати очень интересно как она отличается что етсь просто картинка а что есть буквы.
                            0
                            хотя я тут подумал, алгоритм наверное такой, если нельзя распознать считаем это картинкой…
                            хотя думаю алгоритм посложнее, у них же есть для распознования текстов
                              0
                              да даже как текст то распозновать не ясно.
                              надо определить размер буквы учесть ошибку сканера или фотоаппарата плюс ещё понять откуда начинается текст на странице. интересно было бы про это почитать:)
                                0
                                ну думаю сикреты своей OCR нам не выдадут… хотя общую концепцию послушать было бы интересно
                                  +1
                                  что сможем, обязательно расскажем!
                                    0
                                    ждем продолжения, очень интересно
                          –2
                          Насколько я понимаю примерно так же обработали свидетельство о рождении Обамы.
                            +3
                            Клёво. Наконец-то DJVU встроили в PDF.
                            Интересно, какие дыры в патентах это позволили?
                              –3
                              Технология, скорей всего, найдет применение в сугубо специфических задачах.

                              В повседневной жизни, с ростом каналов доступа в интернет и объемов винчестеров на десктопах — лично мне, что передавать 50 Кб, что 500 Кб, что 5000 Кб — роли не играет.

                              Ах, еще можно добавить обмен между мобильными устройствами — но у меня необходимости слать сканы с одного телефона на другой возникала один раз в жизни, на экзамене (копировал по синезубому шпоры).
                                +1
                                Она позволяет не только уменьшить размер, но и улучшить качество текста (с JPEG большинство текста размывается).

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое