Изобретение относится к области цифровой печати, а более конкретно к ресурсосберегающим технологиям в цифровой печати, в частности к системам и способам экономичной черновой печати, нацеленным на сбережение краски (или тонера) печатающего устройства.
Современные печатающие устройства и драйверы печати имеют так называемый режим черновой печати. Этот режим предполагает снижение качества печати текста и изображений с целью экономии печатающей краски (тонера). При этом для этой цели используют различные преобразования данных, посылаемых на печатающее устройство.
Данные, выводимые на печатающее устройство, могут быть представлены либо в форме метафайла, либо в формате языка описания страниц (PDL). Конкретными примером метафайла является EMF компании Microsoft, примерами языка описания страниц - Postscript и PCL. Формат PDF, изначально предназначавшийся для описания страниц, в настоящее время также используется как метафайл в ряде операционных систем.
Любой из вышеназванных форматов подразумевает, что данные группируются в раздельные записи (именуемые также «командами» или «тегами»), специфичные для текста, растровых изображений и векторной графики. В конечном итоге все эти данные растеризуются и печатаются. Поэтому существует возможность добиться желаемых изменений в печатаемой странице путем внесения изменений в записи метафайла или языка описания страниц. Такой подход позволяет управлять процессом печати, в частности в режиме черновой печати.
Из уровня техники известно применение подхода, основанного на избирательной предобработке данных в соответствии с их типом. Так, например, раздельные способы обработки для различных типов записей в потоке печатаемых данных предлагаются в заявке на изобретение США №20100214614 [1]. Аналогичный подход описан в заявках США №20100128287 [2], 20050063749 [3], 20090290883 [4]. Следует упомянуть также подход, описанный в заявке на изобретение США №20090195811 [5], в которой предлагается исключать из процесса печати предварительно распознанные данные определенных типов. Наиболее близким к заявляемому изобретению является подход, описанный в патенте США №6761422 [6], где предлагается предварительное разделение печатаемых данных на типовые объекты с назначением специфичных правил растеризации и печати для разных типов объектов.
Всем известным решениям присущи серьезные недостатки. В частности, как правило, все методы черновой печати базируются на уменьшении плотности закраски изображения, что неизбежно ведет к ухудшению визуального качества. В то же время экономия печатной краски (тонера) при таком подходе невелика, поскольку по-прежнему закрашиваются участки площади рисунка, а не линии.
Дополнительные проблемы возникают в связи с тем, что данные, визуально выглядящие как «картинки», могут быть представлены не только как цельные растровые изображения, но и как набор отдельных графических элементов, в частности, как векторная графика. Поскольку в этом случае картинка представляет собой набор разрозненных элементов, эти данные невозможно непосредственно обработать как единое целое, как единую «картинку». В этом случае предписываемые различными методами индивидуальные правила экономичной печати изображений, предлагаемые в вышеперечисленных заявках, бесполезны, так как применимы к целому изображению, а не к отдельным элементам (линиям, элементарным формам).
Более того, для составной (в частности, векторной) графики проблемы возникают не только при попытках применить индивидуальные правила печати изображений, но и при трансформации такой составной графики в контурный эскиз. Отдельные графические примитивы могут быть «слишком элементарны» для такого преобразования. В самом деле такое преобразование не применимо, например, к примитиву, представляющему собой маленькое растровое изображение - полосу шириной в один пиксель. Преобразование может быть применено только ко всей картинке в целом. В таких ситуациях разрозненные графические элементы следует предварительно группировать в картинки, а затем применять к этим картинкам преобразование их в контурные эскизы.
Задача, на решение которой направлено заявляемое изобретение, заключается в разработке такого способа, который позволил бы добиться существенной экономии расходных материалов при черновой печати, а именно, экономии печатной краски/тонера без утраты узнаваемости напечатанных картинок, а также системы, реализующей этот способ.
Технический результат достигается за счет применения заявляемого способа, основанного на преобразовании печатаемых картинок в контурные эскизы («скетчи»). При этом способ черновой печати посредством преобразования картинок в контурные эскизы заключается в выполнении следующих операций:
- извлекают графические примитивы из потока печатаемых данных или из задания на печать;
- объединяют вышеуказанные графические примитивы в картинки в соответствии с их геометрической близостью;
- преобразуют полученные картинки в контурные эскизы;
- модифицируют поток печатаемых данных или задание на печать путем замены, по меньшей мере, части графических примитивов на полученные контурные эскизы;
- печатают модифицированный поток данных или задание на печать.
Что касается системы, реализующей заявляемый способ черновой печати посредством преобразования картинок в контурные эскизы, то такая система отличается тем, что содержит:
- модуль анализа записей потока печатаемых данных или задания на печать, выполненный с возможностью осуществления анализа таких записей путем разделения их на графические примитивы и прочие записи, с последующей передачей выделенных графических примитивов в модуль объединения графических примитивов и в модуль итоговой сборки, причем прочие записи передаются только в модуль итоговой сборки;
- модуль объединения графических примитивов, выполненный с возможностью приема вышеуказанных графических примитивов, объединения их в картинки в соответствии с их геометрической близостью и передачи полученных картинок в виде групп графических примитивов в модуль преобразования картинок в контурные эскизы;
- модуль преобразования картинок в контурные эскизы, выполненный с возможностью приема картинок, представленных группами объединенных графических примитивов, преобразования их в контурные эскизы путем выделения в них контуров и передачи полученных контурных эскизов в модуль итоговой сборки;
- модуль итоговой сборки задания на печать, выполненный с возможностью приема эскизов из модуля преобразования картинок в контурные эскизы, и приема из модуля анализа записей всех прочих записей исходного задания, а также формирования модифицированного задания на печать путем замены, по меньшей мере, части графических примитивов на полученные контурные эскизы с последующей передачей модифицированного задания в модуль растеризации и печати;
- модуль растеризации и печати, выполненный с возможностью приема модифицированного задания на печать, его растеризации и распечатки.
Здесь и далее термин «контурный эскиз» («скетч») используется для обозначения изображения, выглядящего как карандашный рисунок контуров, выделенных в исходной картинке (см. Фиг.1, на которой показан пример исходной картинки и полученного из нее контурного эскиза).
Существо заявляемого изобретения поясняется далее с привлечением графических материалов.
Фиг.1. Илюстрация к получению контурного эскиза.
1.1 - исходное изображение.
1.2 - контурный эскиз, полученный из исходного изображения (выглядит как карандашный эскиз исходного изображения).
Фиг.2. Блок-схема предпочтительной реализации заявляемого способа.
Фиг.3. Модификация задания на печать, представленного в виде метафайла для одной распечатываемой страницы.
Фиг.4. Иллюстрация факта невозможности автономного построения контурных эскизов для отдельно взятых графических примитивов без учета всей картинки в целом. Пример: картинка, состоящая из цветных прямоугольников без явно выделенных границ.
Фиг.5. Иллюстрация факта невозможности автономного построения контурных эскизов для отдельно взятых графических примитивов без учета всей картинки в целом. Пример: картинка, состоящая из растровых изображений, представляющих собой одиночные ряды пикселей.
Фиг.6. Определение картинки в соответствии с восприятием человеческого зрения.
6.1 - человеческий глаз различает на показанной странице четыре раздельных картинки, несмотря на то, что некоторые из них состоят из нескольких графических примитивов.
6.2 - несколько отдельно расположенных графических примитивов воспринимаются человеческим глазом как целая картинка.
Фиг.7. Описанный прямоугольник как пример границы локализации для графических примитивов.
Фиг.8. Графические примитивы объединяются, если их зоны локализации (описанные прямоугольники) перекрываются.
Фиг.9. Графические примитивы объединяются, если их зоны локализации (описанные прямоугольники) расположены «достаточно близко» - в пределах предписанных допустимых расстояний. С учетом допуска графические примитивы могут быть объединены даже в случае, если они не имеют строгого перекрытия.
Фиг.10. Одна итерация группирования графических примитивов. Эта процедура является составной частью процесса, компонующего графические примитивы в картинки.
Фиг.11. Иллюстрация к итерациям группирования графических примитивов.
11.1 - две группы объединенных графических примитивов окружены описанными прямоугольниками;
11.2 - две вышеназванные группы рассматриваются как новые графические примитивы и объединяются в еще большую группу.
Фиг.12. Процесс объединения графических примитивов в картинки.
Фиг.13. Иллюстрация к процессу объединения графических примитивов: одна итерация уменьшает количество вновь получаемых графических примитивов.
Фиг.14. Система черновой печати посредством преобразования картинок в контурные эскизы.
Заявляемый способ включает в себя последовательные действия, представленные на блок-схеме, приведенной на Фиг.2:
- выполняется предварительный анализ данных, посылаемых на печать, с целью выявления в них графических элементов (этап 201). При этом записи метафайла (или языка описания страницы) распознаются в соответствии с классификатором записей, принятым для данной формы представления. Выявленные записи, описывающие графические примитивы, извлекаются из набора данных с целью их дальнейшей обработки. Эти записи могут описывать как растровые изображения, так и векторную графику;
- выявленные графические примитивы объединяются в картинки в соответствии с их геометрической близостью (этап 202). Итогом этого действия являются группы графических примитивов, соответствующие вышеназванным картинкам. Эта операция выполняется путем анализа координат графических примитивов. Группирование примитивов необходимо, так как последующее создание контурных эскизов возможно лишь для целых картинок, а не для разрозненных графических элементов. Результаты объединения примитивов в группы представляются в виде формального описания (выбор формы описания произволен);
- для каждой созданной группы графических примитивов, объединяемых в картинку, создается контурный эскиз. Эта операция может быть сделана, например, путем создания вспомогательного растрового изображения: полученная группа графических примитивов трансформируется в растровое изображение (этап 203). Для полученного растрового изображения строится контурный эскиз (этап 204). Для построения контурного эскиза применяется любой из способов, основанных на выделении в рисунке линий в местах контрастных переходов и подавлении областей с монотонной закраской;
- созданный контурный эскиз в качестве новой записи добавляется в метафайл (или язык описания страницы), описывающий данные, предназначенные для печати. При этом, по меньшей мере, часть прежних записей, описывающих графические примитивы, объединенные в картинку, удаляется. Таким образом, выполняется модификация данных, предназначенных для печати: записи сгруппированных в картинку графических примитивов заменяются на запись контурного эскиза, созданного на основе этих элементов (этап 205). Неполное удаление исходных записей применяется в тех случаях, когда требуется сохранить частично исходные графические примитивы: например, оставить те из них, что формировали граничную рамку картинки;
- модифицированные данные выводятся на печатающее устройство (этап 206).
Предполагается, что задание на печать (поток печатаемых данных) представлено либо языком описания страниц (PDL), либо метафайлом. Такое структурированное представление содержит записи (именуемые также «тегами» или «командами»), описывающие текстовые данные и графические примитивы.
В предпочтительной реализации описываемый способ использует в качестве данных файл спулинга принтера. Печатаемые страницы в этом случае образуют отдельные задания и представлены метафайлами (формата EMF в операционной системе Windows) - по одному метафайлу на каждую распечатываемую страницу. Способ применим также и к иным форматам представления данных, имеющих аналогичную структуру, например, к PDF-файлам.
Основной целью описываемого способа является модификация задания на печать для каждой страницы (представленной, например, в EMF формате), как показано на Фиг.3. Ниже приводится более детальное описание перечисленных выше этапов.
На первом этапе проводится классификация записей метафайла (задания на печать) в соответствии со спецификацией конкретного формата данных. В предпочтительной реализации используется EMF-формат (Enhanced MetaFile), поэтому записи классифицируются в соответствии со спецификацией EMF. В результате выявляются записи - графические примитивы (это могут быть как растровые изображения, так и элементы векторной графики).
После выявления графических примитивов проводится группирование этих примитивов в картинки. Этот этап представляется необходимым по следующим причинам.
Печатаемый метафайл содержит смесь записей, описывающих различные графические элементы (примитивы) - растровые изображения, прямые линии, кривые, полигоны, различные фигуры и т.п. В общем случае эти записи не скомпонованы в объекты, а лежат в метафайле в произвольном порядке. Поэтому непосредственное выявление графических примитивов в метафайле ничего не говорит об их взаимосвязи и о компоновке картинок, воспринимаемых человеческим глазом.
В общем случае операция построения контурного эскиза не имеет смысла для отдельно взятого графического примитива. Она имеет смысл только для картинки в целом. На первый взгляд это утверждение не очевидно, поэтому подтвердим его несколькими примерами.
Первый пример - комбинация цветных прямоугольников, соприкасающихся сторонами (Фиг.4). В исходном метафайле каждый такой прямоугольник является графическим примитивом и описывается отдельной записью. В данном примере прямоугольники не имеют окрашенных периметров (рамок), а содержат только закрашенные внутренние области. Невозможно говорить о построении контурного эскиза путем обработки из этих прямоугольников в отдельности: если мы уничтожим внутреннюю закраску каждого из них, то вся картинка просто исчезнет. Мы не получим сетки из цветных рамок, как хотелось бы при построении эскиза.
Следующий пример - картинка, составленная из маленьких растровых изображений, представляющих собой полосы шириной в один пиксель (Фиг.5). В метафайле каждая такая полоска представлена отдельной записью. Операцию построения контурного эскиза невозможно применить к отдельно взятой полоске пикселей - для этого требуется вся картинка в целом, но разрозненные записи метафайла не дают представления о целой картинке.
Похожая ситуация возникает, когда картинка построена по принципу линогравюры - как комбинация отдельных цветовых линий (полос). Такая «линогравюра» может состоять, например, из цветных линий векторной графики.
Наконец, может иметь место комбинация любых графических примитивов: например, растрового изображения с наложенными на него элементами векторной графики. В этом случае при построении контурного эскиза важно учесть сочетание всех этих составных частей картинки.
Вышеприведенные примеры показывают, что операция построения контурного эскиза имеет смысл только для картинки в целом, а не для отдельных графических примитивов (в частном случае, конечно, отдельный примитив может являться растровым изображением, тождественным картинке, но такое бывает далеко не всегда). Вот почему требуется процесс группирования графических примитивов в картинки.
Для лучшего понимания вышеназванной операции группирования объясним предварительно следующие понятия: что является основным свойством картинки, что такое наложение графических примитивов, что такое одна итерация группирования графических примитивов и как на ее основе строится весь процесс объединения примитивов в картинки.
Точного определения для термина «картинка» не существует. Условимся понимать под картинкой такое сочетание графических элементов (точек, пятен, линий, форм) на плоскости, которое визуально воспринимается человеческим глазом как единое целое. Иными словами, главным характерным свойством картинки является ее цельность при восприятии человеческим глазом. Например, на Фиг.6.1 приведена печатная страница, содержащая четыре картинки (в соответствии с визуальным восприятием). В действительности только две из этих картинок являются буквально растровыми изображениями 101, а две другие картинки 102 представляют собой комбинации разрозненных графических примитивов - линий и элементарных форм. Фиг.6.2 иллюстрирует ситуацию, когда несколько графических элементов расположены поодаль друг от друга, но человеческий глаз воспринимает их как цельную картинку. Приведенные иллюстрации демонстрируют, что человеческий глаз без труда объединяет графические примитивы в картинки.
Вышеприведенное детальное разъяснение понятия «картинка» важно для понимания дальнейшего изложения метода, так как операции построения контурного эскиза применимы именно к картинкам, а не к разрозненным графическим примитивам.
Цельность картинки является ключевым свойством для группирования графических примитивов. В основе процесса лежит идея геометрической близости отдельных элементов. Считается, что графические примитивы могут быть сгруппированы в картинку, если они геометрически перекрываются или расположены «достаточно близко» (близость расположения может быть выражена формально через геометрическое расстояние).
Заявляемый способ подразумевает, что графические примитивы снабжены описанием в виде набора геометрических параметров. Форма такого описания произвольна, но оно включает в себя, по меньшей мере, геометрические координаты элементов, позволяющие вычислить локализацию примитивов на плоскости. Например, для растрового изображения такими параметрами являются координаты вершин прямоугольника изображения. Для элементов векторной графики это могут быть радиусы окружностей и координаты центров, координаты вершин полигонов, составных линий и т.п. Единицы измерения для геометрического описания могут быть выбраны произвольно: метры, миллиметры, пиксели. Например, в описываемой предпочтительной реализации используются пиксели.
Описание графического примитива подразумевает определение его зоны локализации. Мы в тексте документа называем эту зону также «граничной зоной», подчеркивая этим названием, что зона охватывает графический примитив снаружи. В качестве такой граничной зоны может быть выбран любой описанный многоугольник, охватывающий графический примитив в соответствии с правилами геометрии. В предпочтительной реализации в качестве граничных зон используются описанные прямоугольники (bounding boxes) (Фиг.7), поскольку эта фигура наиболее проста с точки зрения вычислений. Эти прямоугольники имеют стороны, параллельные осям координат, и представлены координатами своих вершин. Вышеназванные «граничные зоны» в виде прямоугольников используются при сопоставлении графических примитивов при их группировании в картинки.
Основной идеей группирования графических примитивов по их геометрической близости является перекрытие (наложение) их «граничных зон». В предпочтительной реализации используется следующее правило: два графических примитива считаются перекрывающимися, если их граничные зоны (описанные прямоугольники) перекрываются (Фиг.8) либо расположены «достаточно близко» в соответствии с заданными допустимыми расстояниями (Фиг.9). В предпочтительной реализации эти допустимые расстояния задаются раздельно по каждой из двух координат и отсчитываются от сторон прямоугольников. Собственно анализ пересечения двух прямоугольников на плоскости является тривиальной геометрической задачей.
Этап группирования графических примитивов в картинки представляет собой итерационный процесс. Сначала исходные примитивы объединяются в группы, затем полученные группы объединяются в еще более крупные группы и т.д.
Одна итерация группирования графических примитивов иллюстрируется блок-схемой на Фиг.10 и состоит из следующих этапов:
- исходные данные представляют собой список графических примитивов (этап 1001); для формирования групп также выделяется список, но на начальном этапе он пуст;
- очередной графический примитив извлекается из списка примитивов (этап 1003) для сравнения со списком полученных групп;
- если список групп пока еще пуст, то исследуемый графический примитив рассматривается как первая группа, включаемая в список (этап 1005). Этот примитив является пока что единственным элементом, входящим в группу, а его граничный прямоугольник становится граничным прямоугольником созданной группы. В этом случае происходит возврат к этапу извлечения следующего примитива из списка (этап 1003);
- если список групп не пуст, исследуемый примитив сравнивается с каждой группой из списка (этап 1004) вплоть до обнаружения факта перекрытия с одной из групп (анализируется перекрытие соответствующих граничных прямоугольников);
- если не обнаружено перекрытия исследуемого примитива ни с одной из групп, то он не может быть объединен ни с одной из рассмотренных групп. В этом случае исследуемый примитив образует новую группу в списке (этап 1005), его граничный прямоугольник становится граничным прямоугольником созданной группы. В этом случае происходит возврат к этапу извлечения следующего примитива из списка примитивов (этап 1003);
- если обнаруживается перекрытие исследуемого примитива с одной из групп, то примитив включается в эту группу. Граничный прямоугольник группы модифицируется - пересчитывается таким образом, чтобы охватить новый включенный в нее элемент. Таким образом, в этом случае список групп не увеличивается, но одна из групп пополняется новым элементом (этап 1006). В этом случае происходит возврат к этапу извлечения очередного графического примитива из списка примитивов.
- процесс заканчивается, если обработаны все примитивы в списке примитивов (этап 1007). Результатом является список групп, объединяющих в себе графические примитивы по принципу геометрической близости.
В предпочтительной реализации при анализе перекрытия граничных прямоугольников учитывается возможность их «близкого расположения» в соответствии с заданным допустимым расстоянием. Этот учет не меняет этапов вышеописанного процесса, а относится только к этапу сравнения граничных прямоугольников.
Описанный выше процесс является составной частью - одной итерацией - всего процесса объединения графических примитивов в картинки. Если полученные группы примитивов, в свою очередь, перекрываются, то они могут быть объединены в более крупные группы (ситуация иллюстрируется на Фиг.11). Вот почему полный процесс объединения графических примитивов в картинки содержит множество итераций, описанных выше.
Полный процесс объединения графических примитивов в картинки иллюстрируется на Фиг.12 и содержит следующие этапы:
- на начальном этапе процесса все графические примитивы (для каждого из которых определен его граничный прямоугольник) объединяются в список и рассматриваются как кандидаты на группирование в картинки (этапы 1201 и 1202);
- выполняется одна итерация объединения графических примитивов в группы (этап 1203). Результатом является получаемый список групп, объединяющих в себе графические примитивы;
- проверяются условия завершения итерационного процесса (этап 1205), детально эти условия описаны далее;
- если итерационный процесс продолжается, то полученные группы рассматриваются как новые графические примитивы (этап 1206) и используются в качестве исходных данных для следующей итерации. Таким образом, очередная итерация создает новый список групп (этап 1202), как комбинацию ранее созданных групп (этап 1204);
- шаг за шагом каждая итерация уменьшает общее число групп, объединяя в них все большее число исходных графических примитивов (сказанное иллюстрируется на Фиг.13);
- когда процесс заканчивается в результате проверки условий завершения, итоговые группы в списке являются картинками, образованными из графических примитивов, и могут быть использованы для получения контурных эскизов (этап 1207).
Условие завершения процесса (этап 1205) подразумевает выполнение любого из двух правил:
- если в списке групп остается только одна группа. Это значит, что все графические примитивы объединены в одну картинку, и больше группировать нечего;
- если количество полученных на очередной итерации групп равно количеству исходных графических примитивов (или ранее полученных групп). Это значит, что исследуемые графические примитивы (или полученные из них группы) расположены далеко друг от друга и не могут быть объединены, т.е. образуют отдельные картинки.
В результате описанного выше процесса получаются картинки (по меньшей мере, одна), представленные как группы графических примитивов, объединенных на основе их геометрической близости. Заявляемый способ не регламентирует конкретного формального описания, выражающего принадлежность примитивов картинкам. Например, в предпочтительной реализации используются таблицы, в которых описываются как геометрические параметры примитивов и групп, так и признаки принадлежности их друг другу. В итоге каждая полученная группа, объединяющая в себе графические примитивы, трактуется как картинка и используется для получения контурного эскиза.
Создание контурных эскизов на основе полученных картинок может быть выполнено как с привлечением растеризации этих картинок во вспомогательные растровые изображения, так и без этого.
Подход без растеризации применим только для частного случая, когда картинка состоит из векторных графических элементов, которые не перекрываются и имеют явно выраженные границы и закрашенные внутренние области. В этом случае закраска внутренних областей подавляется, а границы векторных элементов выделяются, в результате чего комбинация таких модифицированных графических элементов при печати выглядит как контурный эскиз. Но в общем случае такой подход неприменим.
В предпочтительной реализации для создания контурного эскиза используется получение вспомогательных растровых изображений для каждой из полученных картинок (этап 2003 на Фиг.2). В описываемом конкретном случае вспомогательное растровое изображение получается с помощью функций MS-Windows GDI (Graphic Device Interface). Ниже перечислены основные этапы этого процесса (для иных операционных систем используются аналогичные функции, в целом подход остается таким же):
- подготовка (с помощью функций GDI) для целой печатаемой страницы так называемых «Совместимого DC (Device Context)» и «Совместимого растрового изображения» (внутреннего изображения в памяти);
- воспроизведение метафайла в вышеназванном «Совместимом DC» (с помощью функций GDI), причем воспроизводятся все записи за исключением текстовых. Таким образом, в результате получается растровое изображение (в оперативной памяти), содержащее графические элементы и не содержащее текстовых записей;
- выделение вспомогательного буфера памяти, соответствующего полученному растровому изображению страницы по размерам и разрешающей способности в пикселях;
- перенос полученного растрового изображения в вышеназванный вспомогательный буфер;
- локализация отдельных картинок (как фрагментов общего страничного растрового изображения) в вышеназванном буфере и перенос их в отдельные локальные буферы. Для локализации фрагментов в страничном буфере используются координаты граничных (описанных) прямоугольников, полученные ранее при группировании примитивов в картинки: они как раз соответствуют требуемым границам отдельных картинок в страничном буфере;
В результате получаются картинки, представленные как отдельные растровые изображения. Эти изображения используются для получения контурных эскизов.
В предпочтительной реализации изобретения для получения контурного эскиза используется процесс, этапы которого перечислены ниже (процесс годится как для цветного изображения, так и для изображения в градациях серого или монохромного):
- предобработка растрового изображения. В частности, в предпочтительной реализации на этом этапе выполняется сглаживающая фильтрация, повышение контраста, выделение визуальных особенностей изображения, например на основе построения карты важности (см. Wen-Fu Lee, Tai-Hsiang Huang, Yi-Hsin Huang, Mei-Lan Chu, и Homer H. Chen, SPIE-IS&T/ Vol.7240, 2009) [7];
- создание копии изображения в градациях серого (если исходное изображение изначально представлено в градациях серого, этот этап не требуется);
- выделение контуров в полученной копии изображения в градациях серого. Получение бинарной маски, выделяющей эти контуры и подавляющей прочие участки изображения. В частности, в предпочтительной реализации используется выявление контуров с помощью Разностно-Гауссовой фильтрации (Difference-of-Gaussians, DoG) и порогового отсечения получаемых значений;
- применение полученной бинарной маски для выделения контурных линий в вышеназванном растровом изображении. Для цветных изображений маска используется для каждого цветового канала. Маска сохраняет только те пиксели изображения, которые соответствуют найденным контурным линиям. В результате получается изображение - контурный эскиз.
Как было упомянуто ранее, получение контурного эскиза на основе предварительно созданного растрового изображения - не единственно возможный подход. Иной подход может быть использован в частном случае, когда картинка состоит только из элементов векторной графики. В этом случае можно не получать вспомогательного растрового изображения и не применять выделение контурных линий фильтрационными методами. Достаточно подавить внутреннюю закраску элементов векторной графики и выделить их контурные линии, если, конечно, данные это позволяют. В этом случае результат - контурный эскиз - будет представлен не в форме растрового изображения, а в виде совокупности графических примитивов с измененными характеристиками. Однако такой подход применим лишь для частных случаев.
Итак, для каждой полученной картинки созданы контурные эскизы (в предпочтительной реализации они являются растровыми изображениями). Эти контурные эскизы используются в выходном задании на печать как новые графические примитивы взамен исходных, на основе которых были получены картинки. В предпочтительной реализации модификация задания на печать предполагает создание нового метафайла (EMF) взамен исходного, в который полученные контурные эскизы внедряются как записи с помощью функций графического интерфейса (GDI). Все другие записи исходного метафайла (например, описывающие текстовые блоки) копируются в вышеназванный выходной метафайл из исходного. При этом исходные графические примитивы, на основе которых создавались картинки и контурные эскизы, исключаются из выходного метафайла (исключается, по меньшей мере, часть этих примитивов). В предпочтительной реализации опционально может быть сохранена часть этих примитивов; например, горизонтальные и вертикальные линии, образующие рамки таблиц. В описываемой реализации возможно также опциональное подавление текстовых и графических записей при формировании модифицированного задания на печать. В итоге сформированное модифицированное задание на печать (метафайл) растеризуется и печатается.
На Фиг.14 представлена блок-схема заявляемой системы, реализующей описанный выше способ. Система содержит модули, перечисленные ниже:
- модуль 1401 анализа записей исходного задания на печать;
- модуль 1402 объединения графических примитивов в картинки;
- модуль 1403 преобразования картинок в контурные эскизы;
- модуль 1404 итоговой сборки задания на печать;
- модуль 1405 растеризации и печати.
Исходными данными для системы является задание на печать, представленное языком описания страниц (PDL) либо метафайлом. Исходные данные содержат записи, описывающие, в частности, текстовые элементы, растровые изображения и элементы векторной графики. Выходными данными является модифицированное задание на печать, предназначенное для использования в экономичной черновой печати.
Модуль 1401 анализа записей классифицирует записи исходных данных в соответствии со спецификацией метафайла (или языка описания страниц). Он извлекает записи графических примитивов и направляет их в модуль 1402 объединения примитивов в картинки и в модуль 1404 итоговой сборки. Все прочие записи направляются только в модуль 1404 итоговой сборки.
Модуль 1402 объединения графических примитивов группирует эти примитивы в картинки на основе их геометрической близости. Этот модуль работает в соответствии с процессом, описанным выше. Анализируется геометрия графических примитивов; если граничные (описанные) прямоугольники примитивов перекрываются либо располагаются достаточно близко друг к другу (в соответствии с заданным допустимым расстоянием), то такие примитивы подлежат объединению в группу. Полученные в результате группы графических примитивов трактуются как картинки, в дальнейшем на их основе создаются контурные эскизы.
Вышеназванные картинки (представленные группами объединенных графических примитивов) подаются в модуль 1403 преобразования в контурные эскизы, который создает вышеназванные эскизы (в предпочтительной реализации контурные эскизы - это растровые изображения, в которых выделены контурные линии и подавлена однородная закраска областей). Созданные эскизы передаются на модуль 1404 сборки.
Модуль 1404 итоговой сборки принимает полученные контурные эскизы с модуля 1403 преобразования картинок в эскизы наряду со всеми остальными записями исходного метафайла, классифицированными модулем 1401 анализа. Он создает модифицированное задание на печать, представляющее собой новый метафайл, в который включаются полученные контурные эскизы (в виде записей - растровых изображений), а также (опционально) другие записи, полученные с модуля 1401 анализа. Модуль 1404 итоговой сборки выполнен с возможностью выборочного подавления записей определенного типа. Например, он подавляет, по меньшей мере, часть графических примитивов, на основе которых были созданы контурные эскизы, поскольку полученные контурные эскизы включены в выходной метафайл вместо них. В то же время часть графических примитивов может быть опционально сохранена: например, горизонтальные и вертикальные линии, образующие сетку таблиц.
Модуль 1404 итоговой сборки посылает модифицированное задание на печать в модуль 1405 растеризации и печати. Модуль 1405 растеризации и печати растеризует модифицированные данные и выводит на печать.
Предлагаемые способ и система предназначены для использования в принтерах и многофункциональных устройствах (цветных или монохромных) для обеспечения экономичного чернового режима печати (экономия чернил или тонера). Они могут быть также реализованы в драйверах вышеназванных устройств.
Предлагаемые способ и система применимы для всех видов заданий на печать, представленных в формате метафайла (например, EMF, MS-EMFSPOOL) или языка описания страниц (такого, как PCL, PS, PDF), поскольку все эти форматы базируются на представлении данных в виде записей («тегов»), описывающих текстовые данные, растровые изображения и векторную графику.
Следует отметить, что указанный выше вариант выполнения изобретения был изложен с целью иллюстрации, и специалистам должно быть ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящего изобретения, заявленного в прилагаемой формуле изобретения.
Изобретение относится к области цифровой печати, а именно к системам и способам экономичной черновой печати. Технический результат заключается в сбережении краски/тонера печатающего устройства без утраты узнаваемости напечатанных изображений. Способ черновой печати выполняют посредством преобразования картинок в контурные эскизы. Сначала извлекают графические примитивы из потока печатаемых данных или из задания на печать. Далее объединяют вышеуказанные графические примитивы в картинки в соответствии с их геометрической близостью. Затем преобразуют полученные картинки в контурные эскизы. После чего модифицируют поток печатаемых данных или задание на печать путем замены части графических примитивов на полученные контурные эскизы. Далее печатают модифицированный поток данных или задание на печать. 2 н. и 6 з.п. ф-лы, 14 ил.
1. Способ черновой печати посредством преобразования картинок в контурные эскизы, заключающийся в выполнении следующих операций:
- извлекают графические примитивы из потока печатаемых данных или из задания на печать;
- объединяют вышеуказанные графические примитивы в картинки в соответствии с их геометрической близостью;
- преобразуют полученные картинки в контурные эскизы;
- модифицируют поток печатаемых данных или задание на печать путем замены, по меньшей мере, части графических примитивов на полученные контурные эскизы;
- печатают модифицированный поток данных или задание на печать.
2. Способ по п.1, отличающийся тем, что объединяют графические примитивы в картинки путем выполнения следующих операций:
- находят для графических примитивов внешние границы в виде описанных прямоугольников;
- объединяют в картинки те графические примитивы, у которых описанные прямоугольники перекрываются.
3. Способ по п.1, отличающийся тем, что объединяют графические примитивы в картинки путем выполнения следующих операций:
- находят для графических примитивов внешние границы в виде описанных прямоугольников;
- назначают допуски на близость расположения примитивов в виде расстояний по координатам;
- объединяют в картинки те графические примитивы, у которых описанные прямоугольники либо перекрываются, либо располагаются по отношению друг к другу настолько близко, что стороны их отстоят на расстояния меньшие, чем назначенные допуски.
4. Способ по п.1, отличающийся тем, что преобразование вышеуказанных полученных картинок в контурные эскизы заключается в выполнении следующих операций:
- каждую из вышеназванных картинок, представленную в виде комбинации графических примитивов, растеризуют во вспомогательное растровое изображение;
- преобразуют построенное растровое изображение в контурный эскиз.
5. Способ по п.4, отличающийся тем, что полученные растровые изображения преобразуют в контурные эскизы способом, состоящим из следующих этапов:
- для каждого из вышеназванных растровых изображений строят его копию в градациях оттенков серого цвета;
- в полученной копии изображения в градациях серого цвета выявляют контуры и строят бинарную маску, выделяющую эти контуры и подавляющую прочие участки изображения;
- формируют контурный эскиз посредством применения полученной бинарной маски к вышеуказанному растровому изображению.
6. Способ по п.1, отличающийся тем, что преобразование в контурный эскиз графических примитивов, объединенных в картинку, выполняют путем непосредственного выделения граничных линий и подавления закраски внутренних областей в вышеуказанных графических примитивах.
7. Способ по п.1, отличающийся тем, что при модификации потока печатаемых данных или задания на печать в модифицированные данные включают в непреобразованном виде те исходные графические примитивы, которые являются горизонтальными или вертикальными линиями.
8. Система черновой печати посредством преобразования картинок в контурные эскизы, отличающаяся тем, что содержит:
- модуль анализа записей потока печатаемых данных или задания на печать, выполненный с возможностью осуществления анализа таких записей путем разделения их на графические примитивы и прочие записи, с последующей передачей выделенных графических примитивов в модуль объединения графических примитивов и в модуль итоговой сборки, причем прочие записи передаются только в модуль итоговой сборки;
- модуль объединения графических примитивов, выполненный с возможностью приема вышеуказанных графических примитивов, объединения их в картинки в соответствии с их геометрической близостью и передачи полученных картинок в виде групп графических примитивов в модуль преобразования картинок в контурные эскизы;
- модуль преобразования картинок в контурные эскизы, выполненный с возможностью приема картинок, представленных группами объединенных графических примитивов, преобразования их в контурные эскизы путем выделения в них контуров и передачи полученных контурных эскизов в модуль итоговой сборки;
- модуль итоговой сборки задания на печать, выполненный с возможностью приема эскизов из модуля преобразования картинок в контурные эскизы и приема из модуля анализа записей всех прочих записей исходного задания, а также формирования модифицированного задания на печать путем замены, по меньшей мере, части графических примитивов на полученные контурные эскизы, с последующей передачей модифицированного задания в модуль растеризации и печати;
- модуль растеризации и печати, выполненный с возможностью приема модифицированного задания на печать, его растеризации и распечатки.
СИСТЕМА И СПОСОБ КОРРЕКЦИИ ИЗОБРАЖЕНИЯ ПРИ ВЫВОДЕ НА УСТРОЙСТВО ПЕЧАТИ | 2004 |
|
RU2298293C2 |
СПОСОБ И СИСТЕМА ДЛЯ СНИЖЕНИЯ РАСХОДА КРАСКИ ПРИ ПЕЧАТИ | 2009 |
|
RU2405201C1 |
СПОСОБ ОБРАБОТКИ ДАННЫХ, УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ, СПОСОБ ГЕНЕРАЦИИ МАСКИ И ШАБЛОН МАСКИ | 2005 |
|
RU2337009C2 |
СИСТЕМА ПЕЧАТИ, КОНТРОЛЛЕР ПЕЧАТИ, ПЕЧАТАЮЩЕЕ УСТРОЙСТВО, СПОСОБ УПРАВЛЕНИЯ ОПЕРАЦИЕЙ ПЕЧАТИ, СПОСОБ ПЕЧАТИ, ЧЕРНИЛЬНЫЙ КАРТРИДЖ, ИСТОЧНИК ЧЕРНИЛ И НОСИТЕЛЬ ЗАПИСИ | 2000 |
|
RU2258010C2 |
УСТРОЙСТВО ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЯ, КАРТРИДЖ И УСТРОЙСТВО ХРАНЕНИЯ, УСТАНОВЛЕННОЕ В КАРТРИДЖ | 2004 |
|
RU2323462C2 |
Способ приготовления лака | 1924 |
|
SU2011A1 |
Приспособление для суммирования отрезков прямых линий | 1923 |
|
SU2010A1 |
Колосоуборка | 1923 |
|
SU2009A1 |
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Авторы
Даты
2012-12-10—Публикация
2011-09-22—Подача