ФАЙЛЫ, СОДЕРЖАЩИЕ СМЕШАННЫЙ РАСТР
FILES CONTAINING MIXED RASTER

ОБЛАСТЬ ИЗОБРЕТЕНИЯ
Аспекты данного изобретения направлены на генерацию и использование файлов. Более конкретно, данное изобретение относится к генерации и использованию файлов, содержащих смешанный растр.
ПРЕДПОСЫЛКИ
Использование немодифицируемых файлов возросло с ростом сети интернет. Одним стандартным форматом файлов для публикации документов является формат файлов Adobe Acrobat (обычно связанный с расширением PDF). Другие форматы файлов включают в себя JPEG и файлы точечной графики. Выгода от этих файлов состоит в том, что можно использовать эти форматы файлов для обмена информацией в сети интернет при минимальной необходимости модификации документов.
Другим форматом файлов, который обычно используется, является MRC-файл, или файл, содержащий смешанный растр. Этот формат файлов разделяет изображение на три изображения равных размеров и сохраняет их при различных разрешениях и, в некоторых случаях, с различными скоростями или технологиями сжатия. На фиг. 2 показан типичный процесс для генерации файлов MRC. Генератор 301 изображений выдает исходное изображение 302. Исходное изображение 302 имеет разрешение изображения 300 точек на дюйм. Исходное изображение 302 разделяется процессом 330 разделения на три отдельных изображения 304-306. Эти три отдельных изображения включают в себя изображение 304 с черно-белой маской (B/W), основное изображение 305 (изображение переднего раздела или основное изображение) и фоновое изображение 306. Эти три изображения 304-306 имеют те же размеры (х, у), что и исходное изображение 302. Как показано на фиг. 2, разрешения трех изображений 304-306 показаны равными 300 точек на дюйм, 300 точек на дюйм и 100 точек на дюйм соответственно. Эти три изображения могут быть избирательно сжаты процессом 307 сжатия до различных степеней различными технологиями сжатия.
Несмотря на выгоды от возможности декомпозиции исходного изображения 302 на различные другие файлы 304-306, для файлов MRC характерен длительный процесс декомпозиции (процесс 303 разделения), как известно в данной области техники. Процесс 303 разделения пытается анализировать все компоненты изображения и разделяет аспекты для включения в каждый из файлов 304-306. Существует необходимость генерации файлов MRC без большой задержки.
Также составные файлы 304-306 могут быть большими и в то же время иметь малое содержимое. На фиг. 3 показан образцовый стандартный файл MRC. Этот файл включает в себя три слоя, включающих фоновый слой 401, селекторный слой или слой 402 с черно-белой или B/W маской и слой 403 переднего раздела. Для целей иллюстрации составное изображение 411 показано как результирующее изображение, когда три слоя (401-403) комбинируются. Как известно в данной области техники, фоновый слой имеет разрядность (глубину) цвета на пиксел 24 бита на пиксел (24 бита на пиксел), селекторный слой имеет разрядность цвета на пиксел 1 бит на пиксел и фоновый слой имеет разрядность цвета 24 бита на пиксел.
Каждый слой содержит одно изображение. Каждое изображение имеет одни и те же размеры (х, у) (как показано на фиг. 2 и 3). Например, фоновый слой 401 включает в себя одно изображение с содержимым 404 в центре. Селекторный слой 402 включает в себя одно изображение с тремя наборами содержимого 405-407. Содержимым 405 является «Черный текст», который предназначен для представления черного текста. Содержимым 406 является «Цветной текст А», который является текстом, который имеет цвет А в составном изображении 411, и все же представлен в селекторном слое 402 как черный текст. Это происходит потому, что селекторный слой 402 имеет только 1 бит на пиксел разрядности цвета. Подобным же образом содержимым 407 является «Цветной текст В», который является текстом, имеющим цвет В в составном изображении 411, и все же является черным текстом в селекторном слое 402. Слой 403 переднего раздела включает в себя три набора цветовых палитр, включая черный 408, цвет А 409 и цвет В 410. Для файла MRC по фиг. 3 характерно наличие значительного количества неиспользуемого пространства. Неиспользуемое пространство увеличивает базовый размер изображения каждого слоя. Это неиспользуемое пространство увеличивает время, необходимое для стадий кодирования, декодирования и композиции. Также комбинация неиспользуемого пространства с содержимым иногда приводит к плохому сжатию слоев. Соответственно, существует необходимость в минимизации неиспользуемого пространства в составных файлах 304-306.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Аспекты данного изобретения направлены на генерацию и использование файлов MRC для удовлетворения одной или нескольких потребностей, как описано выше. В некоторых аспектах файлы MRC генерируются драйверами печати без необходимости обработки процессом цветоделения. В других вариантах каждый слой файлов MRC может включать в себя одно или несколько изображений (или субизображений) для обеспечения возможности сжатия, которое является более эффективным, чем единственное изображение, которое покрывает каждый слой. Эти различные аспекты могут использоваться отдельно или в комбинации.
Эти и другие особенности изобретения поясняются в последующем подробном описании различных вариантов осуществления.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеприведенное краткое изложение сущности изобретения, так же как и приведенное ниже подробное описание предпочтительных вариантов осуществления, поясняется со ссылками на иллюстрирующие чертежи, которые приведены для примера, а не в качестве ограничения, по отношению к заявленному изобретению.
Фиг. 1 - схематичная диаграмма цифровой вычислительной среды общего назначения, которая может быть использована для реализации различных аспектов изобретения.
Фиг. 2 - стандартный процесс создания файла, содержащего смешанный растр.
Фиг. 3 - стандартный файл, содержащий смешанный растр.
Фиг. 4 - процесс для создания файла, содержащего смешанный растр, в соответствии с аспектами изобретения.
Фиг. 5 - пример файла, содержащего смешанный растр, в соответствии с аспектами данного изобретения.
Фиг. 6 - другой пример файла, содержащего смешанный растр, в соответствии с аспектами данного изобретения.
Фиг. 7А и 7В - различные процессы для создания файлов, содержащих смешанный растр, в соответствии с аспектами данного изобретения.
Фиг. 8А и 8В - альтернативные стадии процесса для фиг. 7А.
Фиг. 9А и 9В - различные процессы визуализации составного изображения из файла, содержащего смешанный растр, в соответствии с аспектами данного изобретения.
Фиг. 10 - другой примерный процесс создания файла, содержащего смешанный растр, в соответствии с аспектами данного изобретения.
Фиг. 11 - примерный процесс для объединенных изображений в соответствии с аспектами данного изобретения.
Фиг. 12 - различные результаты для объединения изображений в соответствии с аспектами данного изобретения.
Фиг. 13 - примерный процесс для установления близости между изображениями в соответствии с аспектами данного изобретения.
Фиг. 14 - два изображения и различные представления подсчета потребляемого пространства в комбинированных изображениях в соответствии с аспектами данного изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
Следующее описание направлено на файлы, содержащие смешанный растр. Следует иметь ввиду, что раскрытые концепции и подходы могут быть применены к другим типам файлов. Также раскрыты различные процессы. Эти процессы представлены как примеры, которые могут использоваться и не считаются единственными выражениями различных процессов, используемых для генерации или использования усовершенствованных файлов, содержащих смешанный растр. Кроме того, цвета пикселей селекторного слоя обычно называются черным и белым. Учитывается, что селекторный слой может иметь разрядность цвета только в 1 бит на пиксел и, следовательно, может иметь пикселы только как «включено» или «выключено» (или состояние цвета 1 и состояние цвета 0). Черный и белый используются для упрощения номенклатуры. Однако любые цвета могли бы использоваться на их месте (например, красный и сине-зеленый цвет) или «включено и выключено» и т.п.
На фиг. 1 показана схематичная диаграмма стандартной цифровой вычислительной среды общего назначения, которая может использоваться для реализации различных аспектов данного изобретения. На фиг. 1 компьютер 100 включает в себя процессор 110, системную память 120 и системную шину 130, которая связывает различные системные компоненты, включая системную память, с процессором 110. Системная шина 130 может быть любого из нескольких типов структур шин, включая шину памяти или контроллер памяти, периферийную шину и локальную шину с использованием любой из разнообразия архитектур шин. Системная память 120 включает в себя ПЗУ 140 (ROM) и ОЗУ 150 (RAM).
Базовая система ввода-вывода 160 (BIOS), содержащая базовые программы, которые помогают передавать информацию между элементами в компьютере 100, как, например, во время запуска, хранится в ПЗУ 140. Компьютер 100 также включает в себя дисковод 170 для жестких дисков для считывания и записи на жесткий диск (не показан), дисковод 180 для магнитных дисков для считывания или записи на съемный магнитный диск 190 и дисковод 191 для оптических дисков для считывания или записи на съемный оптический диск 192, такой как CD ROM или другой оптический носитель. Дисковод 170 для жестких дисков, дисковод 180 для магнитных дисков и дисковод 191 для оптических дисков подключены к системной шине 130 посредством интерфейса 192 дисковода для жестких дисков, интерфейса 193 дисковода для магнитных дисков и интерфейса 194 дисковода для оптических дисков соответственно. Эти дисководы и связанные с ними считываемые компьютером носители обеспечивают энергонезависимое сохранение считываемых компьютером команд, структур данных, модулей программ и других данных для персонального компьютера 100. Специалистам в данной области техники должно быть ясно, что другие типы считываемых компьютером носителей, которые могут сохранять данные, доступные для компьютера, такие как магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи Бернулли, ОЗУ (RAM), ПЗУ (ROM) и т.п., могут также использоваться в примерной оперативной среде.
Множество программных модулей может сохраняться на дисководе 170 для жестких дисков, на магнитном диске 190, на оптическом диске 192, ПЗУ 140 или ОЗУ 150, включая операционную систему 195, одну или несколько прикладных программ 196, другие программные модули 197 и программные данные 198. Пользователь может вводить команды и информацию в компьютер 100 через устройства ввода, такие как клавиатура 101 и координатно-указательное устройство 102. Другие устройства ввода (не показано) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую параболическую антенну, сканер и т.п. Эти и другие устройства ввода обычно подключаются к процессору 110 через интерфейс 106 последовательного порта, который подключен к системной шине, но могут быть подключены посредством других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Кроме того, эти устройства могут быть прямо подключены к системной шине 130 через подходящий интерфейс (не показан). Монитор 107 или другой тип устройства отображения также подключен к системной шине 130 через интерфейс, такой как видеоадаптер 108. В дополнение к монитору персональные компьютеры обычно включают в себя другие периферийные устройства вывода (не показано), такие как громкоговорители и принтеры. В некоторых вариантах осуществления перьевой цифровой преобразователь 165 и соответствующее ему перо 166 предусматриваются для цифрового преобразования ручного ввода. Хотя соединение между перьевым цифровым преобразователем 165 и портом 106 последовательного интерфейса показано на практике, перьевой цифровой преобразователь 165 может быть подключен к процессору 110 непосредственно через параллельный порт или другой интерфейс и системную шину 130, как известно в данной области техники. Кроме того, хотя цифровой преобразователь 165 показан отдельно от монитора 107, используемая область ввода цифрового преобразователя 165 может совместно расширяться с областью отображения монитора 107. Кроме того, цифровой преобразователь 165 может быть интегрирован в монитор 107 или может существовать как отдельное устройство, перекрывающее монитор 107 или прилагаемое иным способом к монитору 107.
Компьютер 100 может работать в сетевом окружении с использованием логических соединений с одним или несколькими удаленными компьютерами, такими как удаленный компьютер 109. Удаленным компьютером 109 может быть сервер, маршрутизатор, сетевой персональный компьютер, одноранговое устройство или другой узел общей сети и обычно включает в себя многие или все элементы, описанные выше относительно компьютера 100, хотя на фиг. 1 показано только запоминающее устройство 111. Логические соединения, изображенные на фиг. 1, включают в себя локальную вычислительную сеть (ЛВС) 112 и глобальную вычислительную сеть (ГВС) 113. Такие сетевые среды являются обычными в офисах, компьютерных сетях предприятия, интранет и Интернет.
При использовании в сетевой среде ЛВС компьютер 100 подключен к локальной сети 112 через сетевой интерфейс или адаптер 114. При использовании в сетевой среде ГВС персональный компьютер 100 обычно включает в себя модем 115 или другие средства для установления связи по глобальной вычислительной сети 113, такой как интернет. Модем 115, который может быть внутренним или внешним, подключен к системной шине 130 через интерфейс последовательного порта 106. В сетевой среде программные модули, изображенные относительно персонального компьютера 100, или их части могут сохраняться в удаленном запоминающем устройстве.
Следует иметь в виду, что показанные сетевые соединения приведены для примера и могут быть использованы другие способы для установления линии связи между компьютерами. Предполагается существование любого из различных хорошо известных протоколов, таких как TCP/IP, Ethernet, FTP, HTTP и т.п., и система может управляться в конфигурации клиент-сервер для обеспечения пользователю возможности считывать веб-страницы с веб-сервера. Любые из различных стандартных веб-браузеров могут использоваться для отображения и манипулирования данными на веб-страницах.
На фиг. 4 показан процесс для создания файла, содержащего смешанный растр, в соответствии с аспектами изобретения. Генератор 500 изображений (например, программа для подготовки иллюстраций, программа обработки текстов, программа для веб-публикаций и т.п.) выводит содержимое файла MRC (три слоя: селекторный слой 502, основной слой 503, фоновый слой 504) без вывода составного изображения, которое нуждается в преобразовании (т.е. разделении) посредством процесса 303 по фиг. 2. Этот вывод может включать в себя обращения к механизму 501 визуализации графики, например, интерфейс прикладной программы интерфейса графического устройства GDI API, доступный от корпорации Microsoft, Redmond, Washington). Другие визуализаторы 501 графики могут также использоваться. Альтернативно, визуализация может иметь место полностью внутри генератора 500 изображений. Наконец, файл MRC может быть по выбору сжат механизмом 505 избирательного сжатия. Сжатие является необязательным, как это показано пунктирным прямоугольником.
На фиг. 5 показан пример файла, содержащего смешанный растр, в соответствии с аспектами данного изобретения. Файл MRC включает в себя три слоя: фоновый слой 601, селекторный слой 602 и основной слой 603. Составное изображение 604 показано для пояснения. Фоновый слой включает в себя содержимое 605. Фоновое содержимое 605 может быть представлено изображением с размером составного изображения 604. Альтернативно, фоновое содержимое может быть представлено изображением, имеющим ограничивающий прямоугольник, меньший чем размер составного изображения 604. Селекторный слой 602 включает в себя содержимое 606, представленное «цветным текстом А», которое представлено текстом, имеющим цвет шрифта А, селекторный слой 602 представляет содержимое 606 как черный текст. Основной слой 603 включает в себя черный текст 607, цветной прямоугольник 608 в цвете А и содержимое 609 как «цветной текст В» в цвете шрифта В. Цветной прямоугольник 608 может быть исключен в ряде случаев, например, если текст имеет однородный цвет и может быть представлен комбинацией селекторного и фонового слоев. Содержимое 607-609 может быть представлено как единое изображение с размером составного изображения 604 (подобного вышеприведенным описаниям идентичных размеров). Альтернативно, содержимое 607-609 может быть представлено двумя или несколькими изображениями (или субизображениями). Изображения могут быть определены ограничивающими областями (прямоугольниками или другими формами, как известно в данной области техники), как представлено ограничивающими областями, окружающими каждое из содержимых 607-609.
Как показано на фиг. 5, слой 604 выбора используется, когда основное изображение перекрывает фоновое изображение. Здесь перенос содержимого к основному слою от слоя выбора ускоряет задачу визуализации, так как нет необходимости проверять и осуществлять выбор или альфа-сопряжение, когда нет перекрытия основного и фонового содержимого. Другим аспектом является то, что однородный цветной текст и определенные линейные рисунки могут сохраняться как бинарные изображения в селекторном слое плюс цветное изображение в основном слое. Считается, что принудительный перенос содержимого из селекторного слоя в основной слой улучшит сжатие и производительность визуализации.
Другая комбинация показана на фиг. 5, на которой слой выбора и фоновый слой присутствуют без основного слоя. В этом случае, когда в слое выбора есть небелый пиксел, но нет соответствующего пиксела в основном слое, цветом пиксела на составном изображении является цвет пиксела слоя выбора. Эта комбинация является обычной и может быть более эффективной в отношении характеристик визуализации и сжатия, чем комбинация фонового слоя, слоя выбора и основного слоя.
Основной слой может иметь высокую глубину представления цвета (разрядность цвета) (например, 24 бит на пиксел). В одном варианте осуществления все изображения в основном слое имеют одну и ту же глубину представления цвета. Альтернативно, изображения в основном слое могут иметь одну или несколько глубин представления цвета. Например, содержимое 607 может иметь глубину представления цвета 1 бит на пиксел, тогда как содержимое 608 и 609 имеет другую глубину представления цвета 24 бита на пиксел. Существуют ситуации, когда действительный цвет, который должен ассоциироваться с некоторой областью, может определяться на основе меньшей, чем высокая глубина представления цвета. Так, еще в одном варианте содержимое 608 может иметь глубину представления цвета 8 битов на пиксел, тогда как содержимое 609 может иметь глубину представления цвета, отличную от 1 бит на пиксел и 8 бит на пиксел (включая, но не ограничиваясь этим, 2 бита на пиксел, 4 бита на пиксел, 16 битов на пиксел, 24 бита на пиксел, 32 бита на пиксел и т.п.). Использование глубины представления цвета в степени, необходимой для определения цветового диапазона (а не предварительной установки для всего слоя) позволяет осуществлять большее и/или более эффективное сжатие посредством устранения ненужных определяющих цвет битов на пиксел и/или более быстрое сжатие и производительность визуализации.
Способность определять глубины представления цвета на основе каждого изображения или набора изображений в слое применима также к фоновому слою.
На фиг. 6 показано другое представление файла MRC. Здесь фоновое изображение 610 комбинируется с «цветным текстом С» 611 и «черным текстом» 612 для образования составного изображения 613. Каждое изображение 610, 611 и 612 имеет размер, меньший, чем размер составного изображения. В этом альтернативном примере комбинированная сумма изображений 610, 611 и 612 меньше, чем размер составного изображения.
На фиг. 7А показан примерный процесс для создания файла, содержащего смешанный растр, в соответствии с аспектами данного изобретения. Процесс начинается на стадии 701 с приложения, генерирующего изображение. Сначала текст и линейные рисунки обрабатываются на стадии 702. Если текст и/или линейные рисунки присутствуют, то они добавляются к селекторному слою на стадии 703. Цвет линии или текста используется для создания цветной области для переднего раздела на стадии 704. Цветная область может быть прямоугольной или любых других форм, необходимых для определения области в основном слое для правильного определения цвета текста и/или линий от стадии 702. Затем картинки, остающиеся в файле изображений, обрабатываются на стадии 705 и добавляются к фоновому слою на стадии 706.
Пример, показанный на фиг. 7А, иллюстрирует возможность обработки изображения прямо из приложения, посланного к драйверу устройства или от буферизованного метафайла. В противоположность этому стандартным подходом для генерации файла MRC является взятие целостного составного изображения и разделение его на различные компоненты посредством процесса 303 разделения. Процесс 303 разделения имеет тенденцию к ошибкам и потребляет значительные ресурсы для управления процессом декомпозиции изображений. Пример, представленный на фиг. 7А, однако, обеспечивает возможность генерировать файлы MRC без процесса разделения, так как пример на фиг. 7А предусматривает управление различными компонентами изображения, в то время как различные компоненты являются отдельно адресуемыми.
На фиг. 7В показан альтернативный процесс для создания файла MRC. Здесь, когда средство визуализации начинает процесс генерации MRC на стадии 701, вызовы графики приводятся в списке с соответствующими областями изображения на стадии 708. Этот список может включать в себя один или несколько пунктов из следующего для каждой области изображения:
Ограничивающая область;
Тип графического вывода; и
Используемый цвет.
Затем на стадии 709, если областью изображения является текст или линейные рисунки, то область изображения добавляется к селекторному слою на стадии 703. В противном случае на стадии 710 область изображения добавляется к основному слою/фоновому слою. Любой тип изображения добавляется к основному слою/фоновому слою, что делает основной слой/фоновый слой хорошим представлением документа.
На фиг. 8А и 8В показаны различные варианты для стадии 704 по фиг. 7А. На фиг. 8А цвет шрифта или кисти текста или линий соответственно указываются на стадии 801 и переходят к стадии 803. Также на стадии 802 ограничивающая область или области (которые могут быть прямоугольниками или других форм, которые определяют границы текста и/или линий) определяются и передаются на стадию 803. Стадии 801 и 802 могут происходить в любом порядке или могут управляться параллельно. Кроме того, следует иметь в виду, что не требуется, чтобы области, определенные на стадии 802, были полностью заполнены. Например, линейный рисунок круга может иметь ограничивающую область в форме тора. На стадии 803, область или области, определенные стадией 802, изображаются как заполненные области на основном слое.
На фиг. 8В показана другая альтернатива для стадии 704. Сначала сканируется каждый пиксел в слое выбора 804. Если пиксел является черным, как определено на стадии 805, то цвет фонового пиксела используется для заполнения цвета соответствующего основного пиксела на стадии 806. Стадия сканирования 804 может покрыть каждый пиксел целого селекторного слоя.
Альтернативно, поскольку селекторный слой может быть разбит на изображения, которые содержат содержимое, стадия 804 может только сканировать эти изображения в селекторном слое. Поскольку область селекторного слоя, не использованная изображениями, не использовала бы содержимое, эти области не сканировались бы на стадии 804.
В другом аспекте изобретения конфигурация файла MRC модифицируется. На фиг. 9А показан примерный процесс визуализации составного изображения из файла, содержащего смешанный растр, по фиг. 6. На стадии 901 система начинает конструировать составное изображение из различных слоев MRC. Для всех пикселов в составном изображении это определено, если на стадии 902 определено, что пиксел находится в селекторном слое. Если это так, то система на стадии 905 определяет, является ли пиксел в селекторном слое белым. Если пиксел белый, то система проверяет на стадии 906, есть ли пиксел в фоновом слое. Если в фоновом слое нет пиксела, то на стадии 909 используется фоновый цвет по умолчанию, в противном случае на стадии 910 используется цвет из соответствующего пиксела фонового слоя.
Если на стадии 905 определено, что пиксел в селекторном слое не является белым, то система проверяет на стадии 907, имеется ли пиксел в основном слое. Если в основном слое нет пиксела, то на стадии 908 используется цвет пиксела в слое выбора. Если на стадии 907 установлено, что в основном слое имеется пиксел, то на стадии 904 используется цвет из соответствующего пиксела в основном слое.
Если на стадии 902 определено, что в селекторном слое нет пиксела, то система определяет на стадии 903, имеется ли пиксел в основном слое. Если имеется пиксел в основном слое, то система на стадии 904 использует цвет из соответствующего пиксела в основном слое. В противном случае система определяет на стадии 906, имеется ли пиксел в фоновом слое, и продолжает действовать, как описано выше.
Если на стадии 902 определено, что в селекторном слое нет пиксела, то система определяет на стадии 903, имеется ли соответствующий пиксел в основном слое. Если нет, то используется цвет из соответствующего пиксела в фоновом слое (стадия 906). Если нет соответствующего пиксела в фоновом изображении, то может использоваться цвет пиксела по умолчанию (например, белый или серый или даже обозначенный как прозрачный). Если результатом стадии 903 является «да», то используется цвет из соответствующего пиксела в основном слое (стадия 904).
На фиг. 9В показан процесс комбинирования множественных слоев в составное изображение. От начала в 901 система получает ограничивающие прямоугольники или другие формы для содержимого слоев. Затем система вычисляет четыре списка. Первый список (NOL_FGBG) представляет области, в которых передний раздел не перекрывается с областями выбора и области, где фон не перекрывается с областями переднего раздела. Второй список (SEL) представляет области, где выбор не перекрывается с областями переднего раздела. Третий список (SELFG) представляет области, где перекрываются только области выбора и переднего раздела. Четвертый список (BGFGSEL) представляет области, где перекрываются фоновый слой, слой выбора и слой переднего раздела.
Затем на стадии 913 составное изображение заполняется фоновым цветом по умолчанию. Каждый список обрабатывается на стадиях 914-917. На стадии 914 каждая область в первом списке (NOL_FGBG), когда присутствует основная область, заполняется основным изображением. В противном случае область заполняется фоновым изображением.
На стадии 915 для каждой области во втором списке (SEL), когда пиксел в слое выбора является белым, не производится никакой модификации составного изображения. В противном случае используется значение цвета из пиксела слоя выбора.
На стадии 916 для каждой области в третьем списке (SELFG), когда пиксел в слое выбора является белым, никакой модификации составного изображения не производится. В противном случае используется цвет пиксела основного слоя.
На стадии 917 для каждой области в четвертом списке (BGFGSEL), если пиксел в слое выбора является белым, используется цвет фона. В противном случае используется цвет пиксела переднего раздела.
На фиг. 10 показан другой примерный процесс создания файла, содержащего смешанный растр. Процесс, как показано на фиг. 10, формирует файл MRC по фиг. 6. Процесс начинается на стадии 1001, где процесс инициализируется. В одном примере стадией 1000 может быть прием команды на печать файла MRC. Поскольку стадия 1000 может быть частью приложения, частью инструментария графики, вызываемого приложением, или может быть хостом для других способов инициирования создания файла MRC, стадия 1000 показана пунктирным прямоугольником.
Для простоты последующее описание приведено в связи с созданием файлов MRC в драйвере печати и включает в себя ссылку на GDI API, доступный в операционной системе WINDOWS , доступной от корпорации Microsoft, который обеспечивает возможность различных обращений для манипулирования изображением. Понятно, что операционные системы, включая LINUX и основанные на Apple системы будут иметь вариации в различных обращениях. Соответственно, так как предусматривается, что все операционные системы и драйверы печати включены в объем этого описания, ссылка на обращения GDI является неограничивающей и приводится только для пояснения.
Для конструирования драйвера печати с использованием GDI можно использовать множество обращений. Ниже описано множество обращений, которые разделяют содержимое на различные слои. Эти обращения могут быть, в общем, описаны как DrvXXX GDI API. Конкретно, они включают в себя:
DrvCopyBits
DrvBitBlt
DrvStretchBlt
DrvStrokePath
DrvFillPath
DrvStrokeAndFillPath
DrvLineTo
DrvTextOut
DrvAlphaBlend
DrvGradientFill
DrvPlgBlt
DrvStretchBltROP
DrvTrasparentBlt
Эти обращения разделены на способы генерации переднего раздела и способы генерации фона следующим образом:
Способы генерации переднего раздела
DrvStrokePath
DrvLineTo
DrvTextOut
DrvBitBlt
Способы генерации фона
DrvCopyBits
DrvBitBlt
DrvStretchBlt
DrvAlphaBlend
DrvGradientFill
DrvPlgBlt
DrvStretchBltROP
DrvTrasparentBlt
DrvFillPath
DrvStrokeAndFillPath
Понятно, что визуализация графики изменяется со временем. Соответственно, вышеприведенный список дан для примера. Понятно, что другие обращения могут использоваться или станут известными специалистам в данной области техники и рассматриваются в пределах объема графических обращений, изложенных выше.
Процесс печати для пояснения может быть разделен на две стадии. Эти две стадии представлены левой и правой половинами фиг. 10. Во время первой стадии два растровых буфера создаются на стадии 1001. Эти два растра являются слоем выбора и слоем комбинации фон/передний раздел. Слой комбинации может называться BGFG_SURFACE, а слой выбора может называться SEL_SURFACE. Оба растра покрывают целую страницу. На стадии 1002 система определяет, было ли одно из принятых обращений обращением DrvXXX, генерирующим передний раздел. Альтернативно, обращения FillPath и StrokeandFill в противоположность обращениям BitBlt могут быть использованы, когда кисть имеет чистый цвет и использует различные растровые операции. Если да, то на стадии 1040 оно воспроизводит как на BGFG_SURFACE, так и на SEL_SURFACE посредством использования соответствующего обращения EngXXX (как части GDI API) на BGFG_SURFACE и SEL_SURFACE отдельно. Если обращение было обращением DrvXXX генерации фона (представленное как «no» из стадии решения 1002), оно воспроизводит на BGFG_SURFACE с использованием соответствующего обращения EngXXX из инструментария GDI на стадии 1006.
Также для каждого обращения DrvXXX создается узел данных, который содержит по меньшей мере некоторую часть из следующей информации:
Ограничивающий прямоугольник или область, на которую может повлиять обращение DrvXXX.
Значение цвета текста для обращения DrvTextOut и для линейных рисунков.
Идентификатор ID для идентификации обращения DrvXXX.
Кроме того, каждый узел добавляется к списку элементов фона (BGE_LIST) или к списку элементов переднего раздела (FGE_LIST) для обработки на второй стадии. Стадии процесса 1003 и 1005 показывают, что узел может быть введен в каждый список. Однако, поскольку местоположения этих стадий могут оказаться перед или после стадий 1004 и 1006, стадии 1003 и 1005 показаны пунктирными прямоугольниками.
BGFG_SURFACE может иметь то же самое разрешение, что и наиболее высокое разрешение, подлежащее использованию для фонового и основного изображений. Альтернативно, разрешение BGFG_SIRFACE может быть установлено на то же разрешение, что и разрешение страниц в окончательном изображении.
Вторая стадия начинается после того, как все обращения DrvXXX обработаны. На этой стадии генерируются изображения для трех слоев. На стадии 1007 процесс определяет, перекрываются ли изображения в фоновом/основном списке. Если да, то изображения обрабатываются и добавляются к изображениям, подлежащим комбинированию процессом (или процессами) MRC. Если изображения не перекрываются, то процесс пытается вывести изображения в список выбора на стадии 1009. Для определения того, где необходимо изображение выбора, тест пересечения выполняется для каждого изображения в BGE_LIST с каждым изображением в FGE_LIST. Все области (прямоугольные или другой формы), где элементы переднего раздела и фоновые элементы пересекаются, адресуются изображением выбора.
В одном варианте осуществления процесс пытается поместить как можно больше изображений в слое выбора в основной слой. В другом варианте осуществления процесс пытается удерживать сумму областей всех изображений на минимуме для уменьшения размера сжатия и увеличения производительности на стадиях сжатия, декомпрессии и визуализации. В других вариантах осуществления процесс пытается обеспечить минимальные количества суммарных изображений во всех слоях. Эти варианты осуществления могут комбинироваться или использоваться отдельно. Они описаны вместе для пояснения.
На стадии 1010 процесс пытается уменьшить число пунктов или изображений на слой. Например, два неперекрывающихся текстовых изображения одного цвета могут комбинироваться.
На стадии 1010 процесс пытается уменьшить число элементов в слоях. Здесь элементы одного и того же слоя комбинируются вместе для создания больших элементов в большие элементы. Следует отметить, что эта стадия может вводить новые пункты в списки. Следующие списки перечисляют различные подходы для комбинирования элементов. Один или несколько подходов можно использовать для определения того, как группировать элементы слоев:
Комбинированный элемент должен избегать создания новых перекрытий с элементами в других слоях, если перекрытие не приносит выгоды в других аспектах, перечисленных ниже;
Область комбинированного элемента не должна быть намного большей, чем сумма индивидуальных элементов. Может быть установлен порог (например, 30-40%) для сравнения при определении того, когда комбинированные элементы становятся слишком большими; и
Специфичные для визуализации обращения могут иметь квалификаторы (например, элементы переднего раздела, создаваемые DrvTextOut, не должны комбинироваться с элементами, созданными другими обращениями DrvXXX, так как они имеют другие значения BPP. Также в пределах элементов переднего раздела, созданных DrvTextOut, могут комбинироваться только элементы с одним и тем же цветом).
После определения того, как осуществить декомпозицию страницы, имеются три списка:
BGE_LIST;
SLE_LIST; и
FGE_LIST.
Каждый список содержит список узлов, которые описывают область (например, прямоугольник или другой формы) для отрезания от страницы. Еще в одном варианте осуществления списки могут включать в себя коэффициент масштабирования, описывающий то, как изображение в списке будет масштабировано на окончательном изображении. Коэффициент масштабирования дает возможность хранить каждый элемент изображения при различном разрешении, даже в пределах одного и того же слоя.
Наконец, различные слои воспроизводятся на стадии 1011. Для каждого элемента в фоновом списке элементов, который не пересекается с изображениями выбора, изображение может быть сформировано путем отрезания области от BGFG_SURFACE и помещено в фоновый слой. Для каждого элемента в списке элементов переднего раздела, который не пересекается с изображениями выбора, изображение может быть сформировано путем отрезания области от SEL_SURFACE и добавлено в основной слой. Для элементов в фоновом и основном слое, которые пересекаются с изображениями выбора, изображения создаются для каждого слоя посредством использования как SEL_SURFACE, так и BGFG_SURFACE.
Например, также со ссылкой на вариант поэлементного сравнения/сравнения пересечения по фиг. 9В, для фонового элемента, который пересекается с изображением выбора, фоновое изображение может быть построено путем отрезания области от BGFG_SURFACE. Затем для каждого пиксела в фоновом изображении процесс проверяет соответствующий пиксел в SEL_SURFACE. Если пиксел в SEL_SURFACE является черным, то значение пиксела в фоновом изображении заменяется на ближний фоновый пиксел, соответствующий пиксел которого в SEL_SURFACE является белым. Для элемента переднего раздела, который пересекается с изображением выбора, изображение переднего раздела может быть построено путем отрезания области от BGFG_SURFACE. Затем для каждого пиксела в основном изображении процесс проверяет соответствующий пиксел в SEL_SURFACE. Если пиксел в SEL_SURFACE является белым, то значение пиксела в фоновом изображении находится вместе с ближним пикселом переднего раздела, соответствующий пиксел которого в SEL_SURFACE является черным. Одним преимуществом вывода изображений в селекторный слой и/или уменьшения количества изображений на слой является то, что результирующие слои могут быть сжаты с более высокой эффективностью.
Как упомянуто выше, различные способы сжатия могут быть использованы для сжатия различных изображений. Например, для каждого изображения с 1 бит на пиксел, можно сжать его с использованием сжатия G4. Для каждого изображения с 24 бит на пиксел можно сжать его с использованием сжатия JPEG, как известно в данной области техники.
На фиг. 11 показан процесс для объединения изображений. Изображения могут обрабатываться все вместе или могут быть разделены на группы (фрагменты, порции данных). Изображения в порциях данных могут быть сгруппированы по типу изображения. Альтернативно, порции данных могут быть сгруппированы по порядку, в котором они были созданы. Порции данных могут иметь заданное максимальное количество изображений, а могут и не иметь.
На фиг. 11 фрагмент 1 имеет N изображений. Изображения расположены по порядку близости друг к другу. Близость описывается ниже в отношении к фиг. 13. Близость может рассматриваться как физическое расстояние между изображениями или может представлять собой близость изображений друг к другу для целей объединения (слияния). Если два изображения перекрываются, то их значение близости равно «0», что означает, что они имеют самое низкое значение близости и должны быть объединены. Изображения, которые не следует объединять, могут быть установлены на значение близости, равное 1 или больше. Понятно, что может использоваться любая шкала близости.
Все изображения в толстом куске 1 сравниваются друг с другом и любая пара изображений ранжируется в терминах значения близости. Если N=5 на фиг. 11, то пары изображений были бы расположены в следующем порядке:
Изображение 1, Изображение 2
Изображение 1, Изображение 3
Изображение 1, Изображение 4
Изображение 1, Изображение 5
Изображение 2, Изображение 3
Изображение 2, Изображение 4
Изображение 2, Изображение 5
Изображение 3, Изображение 4
Изображение 3, Изображение 5
Изображение 4, Изображение 5
Близость каждой пары определяется и пары упорядочиваются, как показано на фиг. 11 для фрагмента 1 на левой стороне чертежа.
На стадии 1101 для первой пары изображений процесс определяет, является ли порог меньшим, чем заданный порог. Если да, то изображения объединяются на стадии 1102 и близость вычисляется повторно для остающихся изображений. Если на стадии 1101 определено, что близость превышает порог, то объединение может остановиться на стадии 1104. Например, порог может быть установлен на любую величину между низким значением близости (означающим, что изображения должны быть объединены) и высоким значением близости (означающим, что изображения не должны быть объединены). Диапазоном для порога может быть 0,4-0,6. Отметим, что пороговое значение может быть выше или ниже, чем вышеупомянутый диапазон, в зависимости от типов изображений, отношений типов изображений и других факторов.
Как изложено выше, процесс пытается объединить изображения вместе, которые являются ближайшими друг к другу. Другое преимущество может быть достигнуто в минимизации числа результирующих изображений, которые должна обрабатывать MRC-операция. В этом случае, даже хотя изображения могут не иметь близости ниже порога, используемого в 1101, желаемое число изображений на фрагмент может быть определено для минимизации числа изображений, требующих обработки. Стадия 1103 представляет определение того, является ли количество изображений во фрагменте меньшим, чем желаемое количество изображений во фрагменте. Например, желаемым количеством изображений может быть 4. Так, даже хотя значение близости между любыми двумя изображениями может быть высоким, изображения могут быть объединены (стадия 1102) для уменьшения количества результирующих изображений и близости пар результирующих изображений, повторно вычисляемых на стадии 1105.
На фиг. 12 показан пример поэтапного выполнения функции объединения (смещения) через пары изображений и результирующих изображений. Единственные изображения представлены областями изображений 1-N 1201-1205 соответственно. Процесс объединения 1206 продвигается среди изображений 1201-1205. Объединение любых двух изображений может быть простым процессом объединения (процесс 1207), в котором результирующее изображение (изображение А, которое является единственным изображением и трактуется как фоновое изображение) не приводит к любым изображениям MRC. Альтернативно, результирующее объединение может быть сложным объединением с MRC, как показано в процессе 1208. Имеется по меньшей мере два типа результатов объединения от объединения MRC 1208. Первый 1211 является областью С изображения, в которой вырабатываются фоновый слой и слой выбора. Третий 1212 является областью D изображения, в которой вырабатывается фоновый слой, слой выбора и основной слой. Такое упорядочивание единственного (фонового) изображения, MRC с фоном и выбором и MRC с фоновым слоем, слоем выбора и основным слоем является предпочтением для определения того, какое объединение следует выполнять. А именно скорее был бы сформирован файл MRC с единственным фоновым слоем, чем файл MRC с фоновым слоем, слоем выбора и основным слоем.
На фиг. 13 показан процесс для определения близости для любых двух областей изображений. Две области изображений А 1301 и В 1302 проверяются на перекрытие на стадии 1303. Если изображения перекрываются, то близость устанавливается на 0 на стадии 1307. Если нет, то процесс на стадии 1304 определяет, являются ли оба изображения в настоящее время изображениями MRC. Если оба изображения являются изображениями MRC, то близость изображений устанавливается (стадия 1308) на величину между 0 и высоким значением (здесь высоким значением является 1). Этой промежуточной величиной может быть фиксированная величина для всех ситуаций (например, 0,5). Альтернативно, эта величина может быть установлена как отношение. В одном примере это отношение может быть отношением эффективности комбинирования областей изображений. Другими словами, этим отношением может быть неиспользуемое пространство объединенного изображения, деленное на общую площадь комбинированных изображений. Это отношение показано уравнением на стадии 1308.
На фиг. 14 показан пример определения неиспользуемого пространства. На фиг. 14 текстовое изображение А 1401 рассматривается для комбинации с текстовым изображением В 1402. В этом примере ограничивающие области 1401 и 1402 показаны прямоугольниками. Комбинированная из двух областей 1401 и 1402 область изображения приводит к неиспользуемому пространству 1403, показанному пунктирными линиями. В другом варианте неиспользуемое пространство может быть основано на прямоугольной сетке, приводящей к суммарной области, включающей 1401, 1402 области, окруженной пунктирными линиями 1403, и удаленным областям 1404 и 1405. В первом примере неиспользуемое пространство включает в себя область 1403. Во втором примере неиспользуемое пространство включает в себя неиспользуемые области 1403, 1404 и 1405.
Согласно фиг. 13, если оба изображения не являются в текущий момент изображениями MRC, то процесс определяет на стадии 1305, являются ли оба изображения текстовыми/линейными изображениями. Если да, и изображения имеют один и тот же цвет (стадия 1306), то на стадии 1308 устанавливается близость, как описано выше.
Если текстовые/линейные изображения неодинакового цвета, то необходимо использовать MRC, так что близость устанавливается высокой (например, 1), как показано на стадии 1309. Альтернативно, близость может быть установлена высокой, как показано на стадии 1310, в которой близость установлена на произведение коэффициента на новую площадь MRC, генерируемую объединителем двух изображений, деленное на суммарную площадь комбинированных изображений.
Если результатом стадии 1305 является «нет», то близость устанавливается на стадии 1310. Альтернативно, можно установить близость, как на стадии 1309.
После создания объединенных файлов можно вспомнить величину пространства, потребляемого первоначальными изображениями в комбинированных изображениях. Существуют различные пути подсчета пространства для объединенных изображений. На фиг. 15А показаны три изображения (1-3), в которых каждое составляет три единицы по размеру. Понятно, что может быть использовано любое обозначение пространства, включая квадратные сантиметры, квадратные миллиметры, квадратные дюймы, пикселы и т.п. Изображение 1 перекрывается с изображением 3, а изображение 2 перекрывается с изображением 3. На фиг. 15В 1501 показывает комбинацию изображений 1 и 2. После объединения комбинированного изображения 1+3 с изображением 2 результирующая комбинация представлена как 1502. В 1502 число фактически использованных единиц составляет 7. Однако это число может быть аппроксимировано путем взятия комбинации изображений 1 и 3 (1503) и добавления размера изображения 2 1504, что приводит к размеру аппроксимации в 8 единиц.
На фиг. 15С показано еще одно представление. Здесь изображения 1 и 2 комбинируются первыми, что приводит к изображению 1505. Добавление изображения 3 приводит к изображению 1506, что составляет опять 7 единиц по размеру, так как центральный блок изображения 2 и нижний блок изображения 3 не подсчитаны отдельно, а скомбинированы. Альтернативно, эта величина размера используемого пространства в комбинированном изображении может включать в себя 1507 изображений 1 и 2 с изображением 3 1508, что приводит к суммарному 9 единиц. Еще в одном варианте осуществления размер объединенного изображения может быть покрыт суммарным размером комбинированного изображения.
Хотя для примера показаны возможные варианты систем и способов для осуществления данного изобретения, понятно, что изобретение не ограничено этими вариантами. Специалистами в данной области техники могут быть осуществлены модификации, особенно в свете вышеупомянутых описаний. Например, каждый из элементов вышеупомянутых вариантов осуществления может быть использован отдельно или в комбинации с элементами других вариантов. Хотя изобретение было определено с использованием прилагаемой формулы изобретения, пункты формулы изобретения являются примерными в том смысле, что изобретение предполагает включение в себя элементов и стадий, описанных здесь, в любой комбинации или субкомбинации. Соответственно, существует любое число альтернативных комбинаций для определения изобретения, которые включают в себя один или несколько элементов из материалов заявки, включая текст описания, пункты формулы изобретения и чертежи, в различных комбинациях или субкомбинациях. Специалистам в соответствующей области техники должно быть ясно, в свете данного описания, что другие комбинации аспектов изобретения, либо отдельные, либо в комбинации с одним или несколькими элементами или стадиями, определенными здесь, могут быть использованы как модификации или изменения изобретения или как часть изобретения. Предполагается, что письменное описание изобретения, содержащееся здесь, охватывает все такие модификации и изменения.