Патент на изобретение №2258264

Published by on




РОССИЙСКАЯ ФЕДЕРАЦИЯ



ФЕДЕРАЛЬНАЯ СЛУЖБА
ПО ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ,
ПАТЕНТАМ И ТОВАРНЫМ ЗНАКАМ
(19) RU (11) 2258264 (13) C2
(51) МПК 7
G09G5/28
(12) ОПИСАНИЕ ИЗОБРЕТЕНИЯ К ПАТЕНТУ

Статус: по данным на 18.01.2011 – действует

(21), (22) Заявка: 2002129884/09, 09.04.2001

(24) Дата начала отсчета срока действия патента:

09.04.2001

(30) Конвенционный приоритет:

10.04.2000 (пп.1-33) US 09/546,422

(43) Дата публикации заявки: 10.03.2004

(45) Опубликовано: 10.08.2005

(56) Список документов, цитированных в отчете о
поиске:
RU 98 105 342 A, 10.02.2000.
EP 0 435 391 A1, 03.07.1991.
EP 0 673 012 A2, 20.09.1995.
US 5 821 913 A, 13.10.1998.
US 5 450 208 A, 12.09.1995.

(85) Дата перевода заявки PCT на национальную фазу:

10.11.2002

(86) Заявка PCT:

US 01/11490 (09.04.2001)

(87) Публикация PCT:

WO 01/78056 (18.10.2001)

Адрес для переписки:

129010, Москва, ул. Б. Спасская, 25, стр.3, ООО “Юридическая фирма Городисский и Партнеры”, пат.пов. Ю.Д.Кузнецову, рег.№ 595

(72) Автор(ы):

СТЭММ Бит (US),
ХИТЧКОК Грегори К. (US),
БЕТРАЙСИ Клод (US)

(73) Патентообладатель(и):

МАЙКРОСОФТ КОРПОРЕЙШН (US)

(54) СПОСОБ И СИСТЕМА ДЛЯ АСИММЕТРИЧНОЙ РАСТЕРИЗАЦИИ ДАННЫХ ИЗОБРАЖЕНИЯ С ИЗБЫТОЧНОЙ ВЫБОРКОЙ

(57) Реферат:

Изобретение относится к способам и системам с использованием большого количества выборок данных изображения. Его применение позволяет получить технический результат в виде формирования изображений с более высоким разрешением на устройстве отображения, таком как жидкокристаллический дисплей. Этот результат достигается благодаря тому, что способы включают в себя операции масштабирования, хинтования и сканирующего преобразования. В операции масштабирования данные изображения масштабируют с коэффициентами, равными единице, в направлениях, перпендикулярном и параллельном RGB полосам устройства отображения. Хинтование включает в себя размещение масштабированных данных изображения на сетке, имеющей точки, определенные положениями пикселов устройства отображения, и округление ключевых точек до границы ближайшего целого пиксела в направлении, параллельном полосам, и до ближайшего дробного приращения в направлении, перпендикулярном полосам. Сканирующее преобразование включает в себя масштабирование хинтованных данных изображения с коэффициентом перемасштабирования в направлении, перпендикулярном полосам. Коэффициент перемасштабирования эквивалентен знаменателю дробных приращений сетки. 4 н. и 29 з.п. ф-лы, 11 ил.

Область техники

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

Описание известного уровня техники

С наступлением века информатики люди во всем мире все больше времени проводят за устройствами отображения (дисплеями), что вызывает такие проблемы как зрительное напряжение. Дисплеи, используемые людьми для наблюдения, отображают данные электронного изображения, такие как текстовые знаки. Было замечено, что при повышении разрешения текстовых знаков значительно облегчается чтение текста и уменьшается зрительное напряжение. Поэтому все большее значение придается достижению высокого разрешения текста и графики, отображаемых на дисплеях.

Одним из дисплеев, популярность которого постоянно растет, является плоский дисплей, такой как жидкокристаллический дисплей (ЖКД). Однако большинство традиционных методов обработки изображения, включая формирование и отображение шрифтов, было разработано и оптимизировано для отображения на дисплее на электроннолучевой трубке (ЭЛТ), а не ЖКД. Кроме того, в существующих программах отображения текста не учитываются уникальные физические характеристики плоских дисплеев, которые существенно отличаются от характеристик устройств на ЭЛТ, особенно физические характеристики источников света в плоских дисплеях.

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

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

Обычные процессы визуализации, применяемые в ЖКД, проиллюстрированы на фиг.1, где показаны видеоданные 10, преобразуемые в целые пикселы 11 области 12 устройства ЖКД. Видеоданные 10 и часть 12 плоского дисплея (например, ЖКД) показаны как состоящие из соответствующих рядов R(N)-R(N+2) и столбцов C(N)-C(N+2). Часть 12 плоского дисплея содержит пикселы 11, каждый из которых имеет отдельно управляемые красный, зеленый и синий подкомпоненты.

Как часть операции преобразования одна выборка 14, которая характеризует область 15 видеоданных 10, образованную пересечением ряда R(N) и столбца C(N+1), преобразуется в целый пиксел 11А, состоящий из трех частей, который расположен на пересечении ряда R(N) и C(N+1). Значения интенсивности свечения, используемые для освещения красного, зеленого и синего (R, G и В) подкомпонентов пиксела 11А, формируются на основании одной выборки 14. В результате весь пиксел 11А представляет одну область видеоданных, а именно область 15. Хотя R, G и В подкомпоненты пиксела могут управляться отдельно, в обычном процессе визуализации изображения, показанном на фиг.1, эта возможность не используется, а вместо этого все эти подкомпоненты вместе служат для отображения одного цвета, представляющего одну область изображения.

Текстовые знаки представляют собой вид изображения, который особенно трудно точно отобразить при типичном разрешении 72 или 96 точек (пикселов) на дюйм. Такие разрешения дисплея гораздо ниже разрешения 600 точек на дюйм, поддерживаемого большинством принтеров. В большинстве коммерческих печатных текстов, например в книгах и журналах, используются еще более высокие разрешения. Для начертания знаков с гладкими контурами, особенно для обычного размера текста типа 10, 12 и 14 точек, достаточно имеющегося количества пикселов. При таких обычных размерах визуализации текста части текста на дисплее выглядят более четкими и крупными, чем в их печатном эквиваленте.

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

Краткое изложение сущности изобретения

В основу настоящего изобретения положена задача создания способов и систем для отображения изображений на устройстве отображения с плоским экраном, таком как жидкокристаллический дисплей (ЖКД). В плоскопанельных устройствах отображения (дисплеях) используются различные виды расположения пикселов, например в виде горизонтальных или вертикальных полос, и настоящее изобретение можно применить к любому из этих альтернативных расположений для обеспечения более высокого разрешения на дисплее.

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

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

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

Чтобы каждый подкомпонент пиксела мог представлять разную часть изображения, масштабированные и хинтованные данные изображения (видеоданные) подвергаются избыточной выборке в операции сканирующего преобразования. Данные “подвергаются избыточной выборке” в том смысле, что формируется большее количество выборок видеоданных, чем потребовалось бы в обычных методах обработки изображения. Когда пикселы дисплея имеют три подкомпонента, видеоданные будут использоваться для формирования по меньшей мере трех выборок в каждой области видеоданных, соответствующей целому пикселу. Частота избыточной выборки или количество выборок, сформированных в операции избыточной выборки для каждой области видеоданных, соответствующей целому пикселу, часто больше трех. Количество выборок зависит от весовых коэффициентов, используемых для преобразования выборок в отдельные подкомпоненты пиксела, как будет более подробно описано ниже. Например, можно осуществлять выборку видеоданных с частотой избыточной выборки 10, 16, 20 или можно производить любое необходимое количество выборок на область видеоданных, размер которой равен пикселу. В общем при увеличении частоты избыточной выборки и достижении разрешения видеоданных можно получить более высокое разрешение отображаемого изображения. Выборки затем преобразуются в подкомпоненты пикселов для формирования битовой карты, используемой в дальнейшем для отображения изображения на дисплее.

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

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

Операция хинтования заключается в наложении масштабированных видеоданных на сетку, имеющую точки, определенные положениями пикселов дисплея, и выравнивании положения ключевых точек на видеоданных (т.е. точек на контуре знака) относительно данной сетки. Ключевые точки округляются до точек сетки, которые имеют дробные положения на сетке. Точки сетки являются дробными в том смысле, что они могут попадать на сетку в местах, не являющихся границами целого пиксела. Знаменатель дробного положения равен коэффициенту перемасштабирования, который используется в описанной выше операции сканирующего преобразования. Иными словами, количество положений сетки в конкретной области сетки, размер которой равен пикселу, по которой можно выравнивать ключевые точки, равно коэффициенту перемасштабирования. Если частота избыточной выборки и коэффициент перемасштабирования процесса сканирующего преобразования равны 16, то видеоданные будут выравниваться в операции хинтования по точкам сетки, имеющим дробные положения 1/16 пиксела. Хинтованные видеоданные можно затем обрабатывать в описанной выше операции сканирующего преобразования.

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

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

Краткое описание чертежей

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

фиг.1 иллюстрирует обычный процесс визуализации изображения, в котором целые пикселы представляют единичные области изображения,

фиг.2 иллюстрирует примерный вариант системы, которая обеспечивает подходящие рабочие условия для осуществления настоящего изобретения,

фиг.3 изображает примерную конфигурацию вычислительной системы, имеющей плоский дисплей,

фиг.4А иллюстрирует примерное соотношение пиксел/подкомпонент для плоского дисплея,

фиг.4В изображает более детально часть примерного соотношения пиксел/подкомпонент/, проиллюстрированного на фиг.4А,

фиг.5 изображает структурную схему, иллюстрирующую примерный способ визуализации изображений на дисплее вычислительной системы,

фиг.6 изображает пример операции масштабирования данных изображения,

фиг.7А изображает пример привязки масштабированных данных изображения к сетке,

фиг.7В изображает пример хинтованных видеоданных, полученных в операции хинтования,

фиг.8 изображает пример перемасштабированных видеоданных, полученных в операции перемасштабирования,

фиг.9 изображает пример избыточной выборки видеоданных и преобразования этих данных в подкомпоненты пиксела,

фиг.10А изображает примерный способ визуализации текстовых изображений на дисплее вычислительной системы,

фиг.10В иллюстрирует более подробно растеризатор, изображенный на фиг.10А, и

фиг.11 изображает алгоритм, иллюстрирующий примерный способ визуализации и растеризации видеоданных для их отображения согласно варианту осуществления настоящего изобретения.

Описание предпочтительных вариантов осуществления изобретения

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

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

Чтобы облегчить раскрытие настоящего изобретения и соответствующих предпочтительных вариантов, последующее описание будет разделено на подразделы, которые посвящены примерным вычислительным и аппаратным средствам, операциям обработки видеоданных и визуализации изображения, а также примерным вариантам реализации программного обеспечения.

I. Примерные вычислительные и аппаратные средства

В вариантах воплощения настоящего изобретения может использоваться специализированный или универсальный компьютер, содержащий различные аппаратные компоненты, которые будут более подробно обсуждаться ниже. Варианты, подпадающие под объем изобретения, могут также включать в себя машиночитаемые носители с исполняемыми компьютером командами или структурами данных, хранящимися на них. Таким машиночитаемым (считываемым компьютером) носителем может быть любой имеющийся носитель, к которому возможен доступ со специализированного или универсального компьютера. Например, не ограничиваясь перечисленным, таким считываемым компьютером носителем может быть ОЗУ, ПЗУ, ЭППЗУ, CD-ROM или другие запоминающие устройства в виде оптических дисков, магнитных дисков или других магнитных запоминающих устройств, или любые другие носители, которые можно использовать для переноса или сохранения необходимых программно-кодовых средств в форме исполняемых машиной команд или структур данных, к которым возможен доступ с универсального или специализированного компьютера. Когда информация передается или предоставляется по сети или другому коммуникационному соединению (проводному, беспроводному или комбинации проводного и беспроводного соединения) в компьютер, компьютер соответственно рассматривает данное соединение в качестве считываемого компьютером носителя. Следовательно, такое соединение соответственно называется считываемым компьютером носителем. Под объем считываемого компьютером носителя могут подпадать комбинации перечисленных выше средств. Исполняемые машиной команды включают в себя, например, команды и данные, которые вынуждают универсальный компьютер, специализированный компьютер или специализированный процессор выполнять определенную функцию или группу функций.

Фиг.2 и ее последующее обсуждение предназначены для обеспечения краткого общего описания подходящей вычислительной среды, в которой может быть реализовано изобретение. Хотя это не является обязательным, изобретение будет описано в общем контексте исполняемых машиной команд, таких как программные модули, выполняемых одним или несколькими компьютерами. В общем случае программные модули содержат программы, подпрограммы, объекты, компоненты, структуры данных и т.п. для выполнения конкретных задач или реализации конкретных типов абстрактных данных. Исполняемые машиной команды, соответствующие структуры данных и программные модули являются примерами программно-кодовых средств для выполнения этапов предложенных способов. Конкретная последовательность таких исполняемых команд или соответствующих структур данных служит примером соответствующих действий для реализации функций, описанных для данных этапов.

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

Показанная на фиг.2 примерная система для реализации изобретения содержит универсальное вычислительное устройство в виде обычного компьютера 20, имеющего процессор 21, системную память 22 и системную шину 23, которая соединяет разные компоненты системы, включая системную память 22, с процессором 21. Системная шина 23 может иметь структуру любого типа, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любую архитектуру из широкого спектра архитектур шин. Системная память включает в себя постоянное запоминающее устройство (ПЗУ) 24 и оперативное запоминающее устройство (ОЗУ) 25. Базовая система ввода/вывода (BIOS) 26, содержащая основные подпрограммы, которые помогают передаче информации между элементами компьютера 20, например, при запуске, может храниться в ПЗУ 24.

Компьютер 20 может также содержать дисковод 27 магнитного жесткого диска для считывания и записи на магнитный жесткий диск 39, дисковод 28 магнитного диска для считывания или записи на съемный магнитный диск 29, и дисковод 30 оптического диска для считывания или записи на съемный оптический диск 31, такой как CD-ROM или другой оптический носитель. Дисковод 27 магнитного жесткого диска, дисковод 28 магнитного диска и дисковод 30 оптического диска подсоединены к системной шине 23 через интерфейс 32 дисковода жесткого диска, интерфейс 33 дисковода магнитного диска и интерфейс 34 дисковода оптического диска соответственно. Дисководы и связанные с ними машиночитаемые носители обеспечивают энергонезависимое хранение исполняемых машиной команд, структур данных, программных модулей и других данных для компьютера 20. Хотя в описанной примерной среде используется магнитный жесткий диск 39, съемный магнитный диск 29 и съемный оптический диск 31, можно использовать и другие типы машиночитаемых носителей для хранения данных, включая магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи Бернулли, ОЗУ, ПЗУ и т.п.

На жестком диске 39, магнитном диске 29, оптическом диске 31, ПЗУ 24 или ОЗУ 25 могут храниться программно-кодовые средства, содержащие один или несколько программных модулей, включая операционную систему 35, одну или более прикладных программ 36, другие программные модули 37 и программные данные 38. Пользователь может вводить команды и информацию в компьютер 20 через клавиатуру 40, указательное средство 42 или другие устройства ввода (не показаны), такие как микрофон, джойстик, игровая приставка, спутниковая антенна, сканер и т.д. Эти и другие устройства ввода часто подсоединяют к процессору 21 через интерфейс 46 последовательного порта, подсоединенный к системной шине 23. Альтернативно устройства ввода могут быть подсоединены к другим интерфейсам, таким как параллельный порт, игровой порт или универсальная последовательная шина (УПШ). Монитор 47, который может быть плоскопанельным устройством отображения или устройством отображения другого типа, также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. Кроме монитора, персональные компьютеры обычно имеют и другие периферийные устройства вывода (не показаны), такие как динамики и принтеры.

Компьютер 20 может работать в сетевой среде, используя логические соединения с одним или несколькими удаленными компьютерами, такими как удаленные компьютеры 49а и 49b. Каждый удаленный компьютер может быть другим персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым узлом или другим узлом общей сети, и типично содержит многие или все элементы из перечисленных выше для компьютера 20, хотя на фиг.2 проиллюстрированы только запоминающие устройства 50а и 50b и связанные с ними прикладные программы 36а и 36b. Логические соединения, показанные на фиг. 2, включают в себя локальную сеть (LAN) 51 и глобальную сеть (WAN) 52, которые представлены здесь в качестве примера и не должны рассматриваться как ограничения. Такие сетевые среды являются обычными для учрежденческих вычислительных сетей, корпоративных сетей и Интернет.

При использовании в сетевой среде LAN компьютер 20 подсоединен к локальной сети 51 через сетевой интерфейс или адаптер 53. При использовании сетевой среды WAN компьютер 20 может содержать модем 54, беспроводную линию связи или другое средство для установления связи через глобальную сеть 52, такую как Интернет. Модем 54, который может быть встроенным или внешним, подсоединен к системной шине 23 через интерфейс 46 последовательного порта. В сетевой среде программные модули, показанные в составе компьютера 20, или их части могут храниться в удаленном запоминающем устройстве. Понятно, что показанные сетевые соединения являются только примерными и можно использовать другие средства установления связи через глобальную сеть 52.

Как пояснялось выше, настоящее изобретение можно реализовать в вычислительных средах, которые имеют множество видов конфигурации вычислительных систем, такие как персональные компьютеры, портативные устройства, многопроцессорные системы, потребительские электронные аппараты на базе микропроцессора или с возможностью программирования, сетевые ПК, миникомпьютеры, универсальные вычислительные машины и т.п. На фиг.3 представлена одна такая примерная конфигурация вычислительной системы в виде портативного компьютера 60, который содержит дисковод 28 магнитного диска, дисковод 30 оптического диска и соответствующий съемный оптический диск 31, клавиатуру 40, монитор 47, указательное устройство 62 и корпус 64.

В портативных персональных компьютерах, таких как портативный компьютер 60, обычно используются плоскопанельные устройства отображения (плоские дисплеи) для отображения видеоданных (данных отображения), как показано на фиг.3, монитором 47. Одним из примеров плоского дисплея является жидкокристаллический дисплей (ЖКД). Плоские дисплеи обычно имеют меньший размер и вес по сравнению с другими дисплеями, например с дисплеями на электронно-лучевой трубке (ЭЛТ). Кроме того, плоские дисплеи обычно потребляют меньше энергии, чем сопоставимые по размеру дисплеи на ЭЛТ, что делает их более пригодными для применений с питанием от батарей. Поэтому популярность плоских дисплеев непрерывно растет. Поскольку их качество продолжает улучшаться, а цена падает, плоские дисплеи также начинают вытеснять дисплеи на ЭЛТ и в стационарных применениях.

Настоящее изобретение можно осуществить практически с любым ЖКД или другим плоским дисплеем, который имеет отдельно управляемые подкомпоненты пикселов. Для целей иллюстрации изобретение описано в основном в контексте ЖКД, имеющих красные, зеленые и синие подкомпоненты пикселов, расположенные в вертикальных полосах подкомпонентов пикселов одинакового цвета, так как этот тип дисплея в настоящее время наиболее часто используется в портативных компьютерах. Однако изобретение не ограничено использованием в дисплеях, имеющих вертикальные полосы или пикселы точно с тремя подкомпонентами пикселов. В общем изобретение можно реализовать с ЖКД или другим плоским дисплеем, имеющим любой тип расположения пикселов/подкомпонентов или любое количество подкомпонентов в одном пикселе.

На фиг.4А и 4В проиллюстрированы физические характеристики примерного плоского дисплея. На фиг.4А показан цветной ЖКД 70, который содержит множество рядов и множество столбцов. Ряды маркированы R1-R12, а столбцы – С1-С16. В цветных ЖКД используется множество отдельно адресуемых элементов и подэлементов, соответственно называемых пикселами и подкомпонентами пикселов. На фиг.4В, которая более детально иллюстрирует левую верхнюю часть ЖКД 70, продемонстрировано соотношение между пикселами и подкомпонентами пикселов.

Каждый пиксел включает в себя три подкомпонента пиксела, проиллюстрированных соответственно как красный (R) подкомпонент 72, зеленый (G) подкомпонент 74 и синий (В) подкомпонент 76. Подкомпоненты пикселов не квадратные и расположены на ЖКД 70 таким образом, что они образуют вертикальные полосы подкомпонентов одинакового цвета. RGB полосы нормально проходят по всей длине дисплея в одном направлении. Полученные RGB полосы иногда называют “полосами RGB”. Обычно у плоских дисплеев, используемых в вычислительной технике, ширина больше, чем высота, и полосы RGB проходят в вертикальном направлении, как показано на ЖКД 70. Они называются “вертикальными полосами”. В примерных устройствах, ширина которых больше высоты, используются такие отношения столбцов к рядам, как 640×480, 800×600 или 1024×768.

Бывают также плоские дисплеи с подкомпонентами пикселов, расположенными в других конфигурациях, например, в виде горизонтальных полос, зигзагообразной или дельта конфигурации. Настоящее изобретение можно также использовать и с этими расположениями подкомпонентов. Такие расположения подкомпонентов пикселов обычно также образуют полосы на дисплее, хотя эти полосы могут не включать в себя подкомпоненты только одного цвета. Полосы, содержащие подкомпоненты пикселов разного цвета, содержат подкомпоненты пикселов, не все из которых имеют одинаковый цвет. Пример полос, которые содержат подкомпоненты разного цвета, на дисплеях, имеющих многоцветные комбинации, можно найти на дисплеях, имеющих комбинации из кратных количеств цветов, которые изменяются от ряда к ряду (например, первый ряд повторяет комбинацию RGB, а второй ряд повторяет обратную комбинацию BGR). Под “полосами” в данном контексте подразумевается расположение в направлении, параллельном длинной оси неквадратных подкомпонентов пикселов, или вдоль линий пикселов одинакового цвета в зависимости от конкретных применяемых дисплеев.

Набор RGB подкомпонентов пикселов образует пиксел. Следовательно, например, набор подкомпонентов 72, 74 и 76 пиксела на фиг.4В образует один пиксел. Иными словами, пересечение ряда и столбца, такое как пересечение ряда R2 и столбца С1, представляет один пиксел, а именно (R2, С1). Кроме того, ширина каждого подкомпонента 72, 74 и 76 пиксела составляет одну треть или приблизительно одну треть ширины пиксела, а его высота равна или приблизительно равна высоте пиксела. Следовательно, три подкомпонента 72, 74 и 74 пиксела вместе образуют один практически квадратный пиксел. Это соотношение пиксела/подкомпонента можно использовать для визуализации текстовых изображений на дисплее, как будет поясняться ниже.

II. Операции обработки видеоданных и визуализации изображений

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

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

Видеоданные 80 подвергаются обработке рядом модулей, показанных на фиг.5. Для пояснения, как каждый модуль воздействует на видеоданные, будет описан следующий пример, соответствующий фиг.6-9, со ссылкой на видеоданные, представленные как заглавная буква “К”, проиллюстрированная видеоданными 100 на фиг. 6.

Как будет более подробно поясняться ниже, видеоданные подвергают по меньшей мере частичному масштабированию в модуле 92 перемасштабирования после хинтования согласно изобретению, в отличие от полного масштабирования модулем 86 перед операцией хинтования. Масштабирование видеоданных выполняется таким образом, чтобы модуль 94 избыточной выборки мог получить требуемое количество выборок, которое позволит преобразовать разные части изображения в отдельные подкомпоненты пикселов. Полное масштабирование видеоданных в модуле 86 масштабирования перед хинтованием адекватно подготовит видеоданных для избыточной выборки. Однако было обнаружено, что выполнение полного масштабирования на обычных шрифтах перед хинтованием вместе с процессами визуализации с точностью до подпиксела согласно изобретению может вносить большие искажения в контуры шрифта во время операции. хинтования. Например, искажения шрифта во время хинтования могут возникать в знаках, которые имеют наклонные сегменты, не являющиеся ни вертикальными, ни горизонтальными, например штрихи в букве “К”, отходящие от вертикальной ножки. Применение полного масштабирования к таким знакам перед хинтованием приведет к тому, что наклонные сегменты будут иметь почти горизонтальную ориентацию. При попытке сохранить ширину таких штрихов во время хинтования можно радикально изменить координаты точек на штрихах, что приведет к искажению знака. Обычно искажениям подвержены те шрифты, которые не рассчитаны на совместимость с масштабированием с разными коэффициентами в горизонтальном и вертикальном направлениях перед операцией хинтования.

Было обнаружено, что выполнение операции хинтования перед полным масштабированием знаков согласно изобретению исключает такие искажения шрифта. В некоторых вариантах можно выполнять частичное масштабирование видеоданных перед хинтованием, а остальное масштабирование выполняется после хинтования. В других реализациях изобретения перед хинтованием выполняется только тривиальное масштабирование (т.е. масштабирование с коэффициентом, равным единице), а полное масштабирование выполняется модулем 92 перемасштабирования.

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

Как показано на фиг.5, над видеоданными выполняется операция масштабирования, показанная модулем 86 масштабирования. Фиг.6 иллюстрирует один пример операции масштабирования согласно изобретению, показанный как операция 102 масштабирования, в которой видеоданные 100 масштабируются с коэффициентом, равным единице, в направлениях, перпендикулярных и параллельных полосам, для получения масштабированных видеоданных 104. В этом варианте, когда коэффициент масштабирования равен единице и масштабирование выполняется в обоих направлениях, операция масштабирования является тривиальной. Другие примеры операции масштабирования, которые соответствуют настоящему изобретению, не являются тривиальными. Такие примеры включают масштабирование видеоданных в направлениях, перпендикулярных и параллельных полосам, с коэффициентом, не равным единице, или альтернативно масштабирование видеоданных выполняют с одним коэффициентом в направлении, перпендикулярном полосам, и с другим коэффициентом в направлении, параллельном полосам. Целью операции масштабирования и последующих операций хинтования и сканирующего преобразования является обработка видеоданных, позволяющая получить множество выборок для каждой области, соответствующей пикселу, как будет поясняться ниже.

После того, как видеоданные были масштабированы в модуле 86 масштабирования на фиг.5, масштабированные видеоданные подвергают хинтованию в модуле 88 хинтования. Цели операции хинтования включают в себя выравнивание ключевых точек (например, краев ножки) масштабированных видеоданных с выбранными положениями на сетке пикселов и подготовку видеоданных к избыточной выборке.

На фиг.7А и 7В показан пример операции хинтования. На фиг.7А со ссылкой на вариант, в котором используются вертикальные полосы, показана часть сетки 106, которая включает в себя первичные горизонтальные границы Y38-Y41, пересекающие первичные вертикальные границы Х46-Х49. В этом примере первичные границы соответствуют границам пикселов дисплея. Сетка дополнительно делится в направлении, перпендикулярном полосам, вторичными границами для создания равноотстоящих друг от друга дробных приращений. Приращения являются дробными в том смысле, что они могут попадать на сетку в местах, отличных от границ целых пикселов. Например, вариант, показанный на фиг.7А, содержит вторичные границы, которые делят расстояние между первичными вертикальными границами на 16 дробных приращений. В других вариантах число возможных дробных приращений может быть больше или меньше чем 16.

Масштабированные данные изображения помещаются на сетку, как показано на фиг.7А, таким образом, чтобы часть 104а ножки масштабированных видеоданных 104 была наложена на сетку 106. Такое размещение масштабированных видеоданных не всегда приводит к правильному выравниванию ключевых точек по сетке. Например, ни угловая точка 106, ни угловая точка 108 масштабированных видеоданных не выравнены с первичными границами. Вместо этого координаты угловых точек 106 и 108 в данном примере составляют соответственно (X46,72; Y39,85) и (X47,91; Y39,85).

Как отмечалось выше, целью операции хинтования является выравнивание (совмещение) ключевых точек с выбранными положениями на сетке. Ключевые точки масштабированных видеоданных округляются до ближайшей первичной границы в направлении, параллельном полосам, и до ближайшего дробного приращения в направлении, перпендикулярном полосам. В данном контексте под “ключевыми точками” подразумеваются точки видеоданных, которые были выбраны для округления до точек на сетке, как описано в данном изобретении. Вместо этого можно при необходимости выравнивать другие точки видеоданных по их положениям относительно ключевых точек, например, посредством интерполяции. Так, в примере, проиллюстрированном на фиг.7А, в операции хинтования координаты угловой точки 106 округляются до Х46, 75 (т.е. X4612/16) в направлении, перпендикулярном полосам, и до Y40 в направлении, параллельном полосам, как показано угловой точкой 106а на фиг. 7В. Аналогичным образом в операции хинтования координаты угловой точки 108 округляются до Х47,94 (т.е. X4715/16) в направлении, перпендикулярном полосам, и до Y40 в направлении, параллельном полосам, как показано угловой точкой 108а на фиг. 7В. Таким образом, совмещение ключевых точек с выбранными положениями сетки 106 показано на фиг.7В положениями угловых точек 106а и 108а, которые представляют новые положения угловых точек 106 и 108 на фиг.7А в качестве части хинтованных видеоданных. Следовательно, операция хинтования включает в себя размещение масштабированных видеоданных на сетке, имеющей точки, определенные положениями пикселов дисплея, и округление ключевых точек до ближайшей первичной границы в направлении, параллельном полосам, и до ближайшего дробного приращения в направлении, перпендикулярном полосам, что приводит к получению хинтованных видеоданных 110, показанных на фиг.7В.

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

Так, со ссылкой на данный пример фиг.8 иллюстрирует хинтованные видеоданные 110, полученные в результате операции хинтования, которые подвергаются операции 112 масштабирования для получения перемасштабированных видеоданных 114. В операции 112 масштабирования дробные приращения, созданные в операции хинтования, в данном примере составляли 1/16 ширины целого пиксела, поэтому в операции 112 масштабирования хинтованные видеоданные 110 масштабируются с коэффициентом 16 перемасштабирования в направлении, перпендикулярном полосам.

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

После выполнения операции перемасштабирования в модуле 92 перемасштабирования, изображенном на фиг.5, модуль 94 избыточной выборки выполняет операцию избыточной выборки. Для иллюстрации операции избыточной выборки ряд R(M) сетки 116 на фиг.8, который частично включает в себя часть 114а ножки, будет дополнительно проанализирован на фиг.9. Как отмечалось выше, для каждого целого пиксела было сформировано 16 выборок. В операции избыточной выборки эти выборки преобразуются в подкомпоненты пиксела.

Раскрытые в данном описании операции избыточной выборки являются примером “смещенной выборки”, в которой выборки преобразуются в отдельные подкомпоненты пикселов, которые могут быть смещены от центра целых пикселов (как в случае красных и синих подкомпонентов пиксела в примерах, конкретно описанных ниже). Кроме того, выборки можно сформировать и преобразовать в отдельные подкомпоненты пиксела с любым требуемым отношением. Иными словами, различные количества выборок и множество выборок можно преобразовывать в любой из множества подкомпонентов целого пиксела. Процесс преобразования наборов выборок в подкомпоненты пикселов можно рассматривать как процесс фильтрации. Фильтры соответствуют положению и количеству выборок, входящих в наборы выборок, преобразованных в отдельные подкомпоненты пиксела. Фильтры, соответствующие подкомпонентам разного цвета, могут иметь одинаковый размер или разные размеры. Выборки, включенные в фильтры, могут быть взаимоисключающими (например, каждая выборка проходит только через один фильтр) или же фильтры могут перекрываться (например, несколько выборок включается более, чем в один фильтр). Размер и относительное положение фильтров, используемые для избирательного преобразования пространственно разных групп из одной или нескольких выборок в отдельные подкомпоненты пиксела, можно выбирать таким образом, чтобы уменьшить искажения цвета или ошибки, которые могут иногда возникать при смещенной выборке.

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

В примере на фиг.9 фильтры являются взаимоисключающими, что дает отношение преобразования 6:9:1, хотя можно использовать и другие отношения, такие как 5:9:2, для установления требуемого режима цветовой фильтрации. В проиллюстрированном примере использовано отношение преобразования 6:9:1, что означает, что берется 16 выборок, из них 6 выборок преобразуется в красный подкомпонент пиксела, 9 выборок преобразуется в зеленый подкомпонент и одна выборка преобразуется в синий подкомпонент, как показано на фиг.9. Эти выборки используются для формирования значений интенсивности света для каждого из трех подкомпонентов пиксела. Когда видеоданные являются черным текстом на белом фоне, это означает, что выбирается включение, выключение каждого подкомпонента пиксела или некоторое промежуточное значение интенсивности света. Например, из 9 выборок, показанных как 117а, шесть выходят за пределы контура знака. Эти шесть выборок за пределами контура вносят вклад в белый цвет фона, тогда как три выборки внутри контура вносят вклад в черный цвет изображения. В результате зеленый подкомпонент пиксела, соответствующий набору выборок 117а, получает значение интенсивности света приблизительно 66,7% полной имеющейся интенсивности зеленого цвета пропорционально числу выборок, которые вносят вклад в цвет фона, относительно числа тех, которые вносят вклад в цвет изображения.

Набор выборок 117b, 117с 117d включает те выборки, которые попадают в контур знака и соответствуют черному цвету изображения. В результате синий, красный и зеленый подкомпоненты пиксела, связанные соответственно с наборами 117b, 117с, 117d, получают значение интенсивности света, равное 0%, т.е. значение, которое вносит вклад в восприятие черного цвета изображения. И наконец, наборы выборок 117е и 117f не попадают в контур знака. Следовательно, соответствующие синий и красный подкомпоненты пиксела получают значения интенсивности света 100%, которые представляет полную интенсивность синего и красного цвета, а также представляют интенсивность света, вносящую вклад в восприятие белого цвета фона. Это преобразование выборок в соответствующие подкомпоненты пиксела формирует представление изображения битовой карты видеоданных, как показано на фиг.5 в виде представления 96 изображения битовой карты для отображения на дисплее 98.

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

Альтернативно в изобретении может использоваться масштабирование в направлении, перпендикулярном полосам, с коэффициентом, не равным единице, связанным со знаменателем дробных положений точек сетки, следовательно, коэффициент перемасштабирования изменяется на соответствующую величину. Иными словами, коэффициент масштабирования и знаменатель можно выбрать такими, чтобы произведение, полученное при умножении коэффициента масштабирования на знаменатель, было равно количеству выборок, которое должно быть сформировано для каждой области видеоданных, соответствующей одному целому пикселу (т.е. частоте избыточной выборки). Например, если частота избыточной выборки равна 16, то операция масштабирования может включать масштабирование с коэффициентом, равным двум, в направлении, перпендикулярном полосам, округление до точек сетки, соответствующих 1/8 положений целого пиксела, и перемасштабирование в процессе сканирующего преобразования с частотой, равной 8. Таким образом, видеоданные готовятся для операции избыточной выборки, и требуемое количество выборок формируется для каждой области видеоданных, соответствующей одному целому пикселу.

III. Примерные варианты воплощения программного обеспечения

На фиг.2, которая подробно обсуждалась выше, показана примерная система, которая обеспечивает подходящие рабочие условия для настоящего изобретения. На фиг.2 компьютер 20 содержит видеоадаптер 48 и системную память 22, которая дополнительно включает в себя оперативное запоминающее устройство (ОЗУ) 25. Операционная система 35 и одна или несколько прикладных программ 36 могут храниться в ОЗУ 25. Данные, используемые для отображения видеоданных на дисплее, посылаются из системной памяти 22 в видеоадаптер 48 для отображения видеоданных на монитор 47.

Примерные варианты воплощения программного обеспечения для отображения видеоданных в соответствии с настоящим изобретением будут описаны со ссылкой на фиг.10А, 10В и 11. На фиг.10А и 10В проиллюстрирован примерный способ визуализации видеоданных, таких как текст, на дисплее согласно изобретению. На фиг.11 показан алгоритм осуществления примерного варианта способа по фиг.10А и 10В.

На фиг.10А показаны прикладные программы 36, операционная система 35, видеоадаптер 48 и монитор 47. Прикладная программа может представлять собой набор команд для формирования определенной реакции компьютера. Одним из примеров такой прикладной программы может быть текстовый процессор. Реакции компьютера, которые формируются под действием команд, закодированных в программе текстового процессора, включают в себя отображение текста на дисплее. Поэтому, как показано на фиг.10А, одна или несколько прикладных программ 36 могут включать в себя подкомпонент текстового вывода, который отвечает за вывод текстовой информации в операционную систему 35, как показано текстовым выводом 120.

Операционная система 35 содержит различные компоненты, ответственные за управление отображением видеоданных, таких как текст, на дисплее. Эти компоненты включают в себя интерфейс 122 отображения графики и дисплейный адаптер 124. Интерфейс 122 отображения графики получает текстовый вывод 120 и информацию 130 отображения. Как пояснялось выше, текстовый вывод 120 получают из одной или более прикладных программ 36 и он может включать в себя, например, информацию, идентифицирующую подлежащие отображению знаки, используемый шрифт и размер точки, которыми должны отображаться знаки. Информация 130 отображения – это информация, которая была сохранена в памяти, например, в запоминающем устройстве 126 и которая включает в себя, например, информацию о цвете фона и изображения. Информация 130 отображения может также включать в себя информацию о масштабировании, применяемом во время отображения изображения.

В состав интерфейса 82 отображения графики входит элемент шрифтового растеризатора для обработки текста, например шрифтовой растеризатор 134, который дополнительно проиллюстрирован на фиг. 10В. Шрифтовой растеризатор 134 формирует более специфичное представление битовой карты видеоданных и содержит знаковые данные 136 и программы 138 визуализации и растеризации. Альтернативно шрифтовой растеризатор 134 может быть модулем одной из прикладных программ 36 (например, частью текстового процессора).

Знаковые данные 136 включают в себя информацию, которая обеспечивает цифровое представление с высоким разрешением одного или нескольких наборов знаков, подлежащих сохранению в памяти для использования во время формирования текста. Например, знаковые данные 136 включают в себя такую информацию как векторная графика, линии, точки и кривые. В других вариантах знаковые данные могут находиться в памяти 126 в качестве отдельного компонента данных вместо того, чтобы быть связанными со шрифтовым растеризатором 134. Следовательно, реализация данного примерного способа визуализации и растеризации видеоданных для отображения на дисплее может включать в себя шрифтовой растеризатор, такой как шрифтовой растеризатор 134, принимающий текстовый вывод 120, информацию 130 отображения и знаковые данные 136, как дополнительно показано в алгоритме на фиг.11. На этапе 150 принятия решения определяют, был ли получен текстовый вывод 120, показанный на фиг.10А, из одной или нескольких прикладных программ 36. Если текстовый вывод 120 не был получен интерфейсом 122 отображения графики, который, в свою очередь, подает текстовый вывод 120 в шрифтовой растеризатор 134, показанный на фиг.10А, то процесс выполнения возвращается к началу, как показано на фиг.11. Альтернативно, если текстовый вывод 120 был получен интерфейсом 122 отображения графики и передан в шрифтовой растеризатор 134, текстовый вывод 120 затем посылается в программы 138 визуализации и растеризации в составе шрифтового растеризатора 134, показанного на фиг.10В.

После получения информации 120 текстового вывода процесс выполнения переходит на этап 152 принятия решения на фиг.11, который определяет, была ли получена информация 130 отображения, показанная на фиг.10А, из памяти, такой как запоминающее устройство 126 на фиг.10А. Если информация 130 отображения не была получена интерфейсом 122 отображения графики, который, в свою очередь, подает информацию 130 отображения в шрифтовой растеризатор 134 на фиг.10А, то процесс выполнения переходит в режим ожидания, возвратившись к этапу 150 принятия решения. Альтернативно, если информация 130 отображения была получена интерфейсом 122 отображения графики и передана в шрифтовой растеризатор 134, то информация 130 отображения затем посылается в программы 138 визуализации и растеризации в составе шрифтового растеризатора 134, изображенного на фиг.10В.

После получения информации 130 отображения процесс выполнения переходит на этап 154 принятия решения для определения, были ли получены знаковые данные 136 по фиг.10В. Если знаковые данные 136 не были получены программами 138 визуализации и растеризации, то процесс выполнения ожидает, возвратившись к этапу 152 принятия решения. После определения, что текстовый вывод 120, информация 130 отображения и знаковые данные 136 были получены программами 138 визуализации и растеризации, процесс выполнения переходит к этапу 156.

Как показано на фиг.10В, программы 138 визуализации и растеризации включают в себя подпрограмму 140 масштабирования, подпрограмму 142 хинтования и подпрограмму 144 сканирующего преобразования, которые соответственно обозначены на структурной схеме высокого уровня на фиг. 5 как модуль 86 масштабирования, модуль 88 хинтования и модуль 90 сканирующего преобразования. Основной целью подпрограммы 140 масштабирования, подпрограммы 142 хинтования и начальных стадий подпрограммы 144 сканирующего преобразования является обработка данных таким образом, чтобы можно было получить множество выборок для каждой области, соответствующей пикселу.

На этапе 156 на фиг.11 выполняется операция масштабирования, как пояснялось выше в отношении модуля 86 масштабирования, изображенного на фиг.5. В предложенном примерном способе видеоданные включают в себя информацию текстового вывода 120, информацию 130 отображения и знаковые данные 136. Видеоданные обрабатываются подпрограммой 140 масштабирования на фиг.10В, которая выполняет операцию масштабирования, например, посредством масштабирования видеоданных с коэффициентом, равным единице, в направлениях, перпендикулярном и параллельном полосам, для получения масштабированных видеоданных. Другие примеры операции масштабирования, соответствующие настоящему изобретению, включают в себя масштабирование видеоданных в направлениях, перпендикулярном и параллельном полосам, с коэффициентом, не равным единице, или альтернативно масштабирование видеоданных с одним коэффициентом в направлении, перпендикулярном полосам, и с другим коэффициентом в направлении, параллельном полосам.

Затем процесс выполнения переходит к этапу 158, на котором подпрограмма 142 хинтования по фиг.10В выполняет операцию хинтования над масштабированными видеоданными, как пояснялось выше в связи с модулем 88 хинтования на фиг.5. Операция хинтования включает размещение масштабированных видеоданных на сетке, которая имеет точки, определенные положениями пикселов дисплея, и округление ключевых точек (например, краев ножки) до ближайшей первичной границы в направлении, параллельном полосам, и до ближайшего дробного приращения в направлении, перпендикулярном полосам, в результате чего получают хинтованные видеоданные.

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

Затем процесс выполнения переходит к этапу 162, на котором выполняется операция избыточной выборки подпрограммой 144 сканирующего преобразования (фиг.10В), как пояснялось выше в связи с модулем 94 избыточной выборки на фиг.5. В операции избыточной выборки полученные выборки преобразуются в подкомпоненты пиксела. Выборки используются для формирования значений интенсивности света для каждого из трех подкомпонентов пиксела. Это преобразование выборок в соответствующие подкомпоненты пиксела формирует представление изображения битовой карты видеоданных.

Затем процесс выполнения переходит к этапу 164, на котором представление изображения битовой карты посылается для отображения на дисплее. На фиг.10А представление изображения битовой карты показано как изображения 128 битовой карты и оно посылается из интерфейса 122 отображения графики в дисплейный адаптер 124. В другом варианте представление изображения битовой карты может дополнительно обрабатываться для выполнения операций цветовой обработки и/или корректировки цвета для повышения качества изображения. В одном варианте, проиллюстрированном на фиг.10А, дисплейный адаптер 124 преобразует изображение представления битовой карты в видеосигналы 132. Видеосигналы посылаются в видеоадаптер 48 и форматируются для отображения на дисплее, таком как монитор 47. Согласно изобретению, изображения отображаются с более высоким разрешением на дисплее, таком как плоский дисплей, за счет использования большего числа точек выборки.

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

Настоящее изобретение можно также использовать в черно-белых мониторах, в которых используются неквадратные компоненты пикселов одинакового цвета, для умножения эффективного разрешения в одном направлении по сравнению с дисплеями, в которых используют отдельные пикселы RGB. В вариантах с использованием методов полутонового изображения, как и в обсуждавшихся выше вариантах, операция сканирующего преобразования включает в себя независимое преобразование частей хинтованного масштабированного изображения в соответствующие подкомпоненты пикселов для формирования изображения битовой карты. Однако в вариантах с полутоновым изображением значение интенсивности света, назначаемое подкомпоненту пиксела, определяется в зависимости от части масштабированной области изображения, преобразованной в подкомпонент пиксела, которая занята отображаемым масштабированным изображением. Например, если подкомпоненту пиксела можно назначить значение интенсивности света между 0 и 255, где 0 означает эффективное выключение, а 255 – полную интенсивность, то сегмент масштабированного изображения (сегмент сетки), занятый на 50% отображаемым изображением, даст подкомпонент пиксела, которому будет назначено значение интенсивности 127, в результате преобразования сегмента масштабированного изображения в соответствующий подкомпонент пиксела. Согласно изобретению, соседний подкомпонент одного и того же пиксела будет иметь значение интенсивности света, определенное независимо как функция другой части, например сегмента масштабированного изображения. Аналогичным образом настоящее изобретение можно применять в принтерах как лазерных, так и струйных, имеющих неквадратные целые пикселы, например в одном варианте операцию 162 избыточной выборки можно заменить операцией простой выборки, в которой каждая выборка соответствует одному целому неквадратному пикселу.

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

Формула изобретения

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

2. Способ по п.1, в котором этап совмещения выбранных точек данных содержит операцию округления выбранных точек до точек сетки, которые соответствуют ближайшим границам целого пиксела в направлении, параллельном полосам, и соответствуют ближайшим дробным положениям на сетке в направлении, перпендикулярном полосам.

3. Способ по п.1, в котором первый коэффициент в направлении, параллельном полосам, равен единице.

4. Способ по п.3, в котором второй коэффициент в направлении, перпендикулярном полосам, равен единице.

5. Способ по п.1, в котором коэффициент перемасштабирования эквивалентен знаменателю дробных положений точек сетки.

6. Способ по п.1, в котором этап преобразования содержит операцию осуществления выборки видеоданных для формирования для каждой области хинтованных данных изображения, соответствующей целому пикселу, количества выборок, эквивалентного упомянутому знаменателю.

7. Способ по п.1, в котором устройство отображения содержит жидкокристаллический дисплей.

8. Способ по п.1, в котором умножение знаменателя дробных положений на второй коэффициент, перпендикулярный полосам, дает значение, равное количеству выборок, сформированных для каждой области данных изображения, соответствующей целому пикселу.

9. Способ по п.8, в котором знаменатель имеет значение, не равное единице, и второй коэффициент имеет значение, не равное единице.

10. Способ по п.1, дополнительно содержащий этап формирования различного значения интенсивности света для каждого подкомпонента пиксела на основании разных наборов из одной или более выборок, преобразованных в данный подкомпонент.

11. Способ по п.10, дополнительно содержащий этап отображения изображения на устройстве отображения, используя различные значения интенсивности света, в результате чего каждый подкомпонент пикселов, а не целые пикселы, представляет разные части изображения.

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

13. Способ по п.12, в котором устройство отображения содержит жидкокристаллический дисплей.

14. Способ по п.12, в котором каждая из полос, сформированных на устройстве отображения, состоит из подкомпонентов пикселов одинакового цвета.

15. Способ по п.12, в котором каждая из полос, сформированных на устройстве отображения, состоит из подкомпонентов пикселов разного цвета.

16. Способ по п.12, в котором второй коэффициент в направлении, перпендикулярном полосам, равен единице.

17. Способ по п.12, в котором второй коэффициент в направлении, перпендикулярном полосам, имеет значение, не равное единице.

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

19. Компьютерный программный продукт по п.18, в котором этап совмещения выбранных точек данных содержит операцию округления выбранных точек до точек сетки, которые соответствуют границам ближайшего целого пиксела в направлении, параллельном полосам, и соответствуют ближайшим дробным положениям на сетке в направлении, перпендикулярном полосам.

20. Компьютерный программный продукт по п.18, в котором второй коэффициент в направлении, перпендикулярном полосам, равен единице.

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

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

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

24. Компьютерный программный продукт по п.23, в котором знаменатель имеет значение, не равное единице, и второй коэффициент имеет значение, не равное единице.

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

26. Вычислительная система по п.25, в которой первый и второй коэффициенты равны.

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

28. Вычислительная система по п.25, в которой коэффициент перемасштабирования эквивалентен знаменателю дробных положений точек сетки.

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

30. Вычислительная система по п.25, в которой устройство отображения содержит жидкокристаллический дисплей.

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

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

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

РИСУНКИ

Categories: BD_2258000-2258999