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

Иллюстрации

Показать все

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

Реферат

Область применения изобретения

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

Предпосылки и уровень техники

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

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

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

В обычных телевизорах и компьютерных мониторах каждый пиксель имеет несколько пространственно разнесенных адресуемых компонентов, например красный, зеленый и синий цветовые компоненты или какие-либо иные. Жидкокристаллический дисплей (ЖКД) является примером устройства отображения, в котором используются множественные раздельно адресуемые элементы, которые будем называть пиксельными подэлементами или пиксельными подкомпонентами, что позволяет представлять каждый пиксель отображаемого изображения. Для примера, на фиг.1 показан обычный портативный компьютер 100, содержащий корпус 101, дисковод 102, клавиатуру 103 и дисплей 104. В качестве дисплея 104 можно использовать ЖКД.

В цветном ЖКД каждый пиксель обычно представляет собой один пиксельный элемент, который обычно содержит три неквадратных пиксельных подкомпонента, например красный пиксельный подкомпонент, зеленый пиксельный подкомпонент и синий пиксельный подкомпонент. Таким образом, набор пиксельных подкомпонентов системы КЗС образует один пиксельный элемент. Традиционные ЖКД содержат ряды пиксельных подкомпонентов КЗС, которые обычно располагаются на дисплее в виде полосок. Полоски КЗС обычно проходят по всей длине дисплея в одном направлении. Совокупность полосок КЗС иногда называют «RGB-расслоением». В стандартных компьютерных жидкокристаллических мониторах, ширина которых превышает высоту, КЗС-полоски обычно располагаются вертикально.

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

Согласно фиг.2В каждый пиксельный элемент (например, пиксельный элемент [R2, C1]) содержит три различных подкомпонента: красный подкомпонент 206, зеленый подкомпонент 207 и синий подкомпонент 208. Ширина каждого известного пиксельного подкомпонента 206, 207, 208 равна приблизительно одной трети ширины пикселя, а высота равна высоте пикселя. На фиг.2А и фиг.2В показана одна из известных схем размещения пиксельных подкомпонентов 206, 207, 208 системы КЗС, который обеспечивает вертикальные цветовые полоски, расположенные на дисплее 200 вертикально. Эту известную схему размещения цветовых подкомпонентов 206, 207, 208 шириной 1/3, показанную на фиг. 2А и 2В, иногда называют «вертикальным расслоением». Несмотря на то что, в иллюстративных целях, на фиг.2А показаны только 12 строк и 16 столбцов, количество столбцов в совокупности с количеством строк обычно составляет 640х480, 800х600 или 1024х768.

Помимо ЖКД с вертикальным расслоением, производят ЖКД с другими схемами размещения пиксельных подкомпонентов, например зигзагообразной или треугольной, которая обычно используется в видоискателях телекамер, а также с горизонтальным расслоением, в котором высота каждого пиксельного подкомпонента КЗС составляет одну треть высоты пикселя, а ширина равна ширине пикселя. Настоящее изобретение применимо ко всем вышеупомянутым схемам размещения пиксельных подкомпонентов. Однако, поскольку конфигурация вертикального RGB-расслоения является наиболее распространенной, ниже приведено описание вариантов осуществления настоящего изобретения применительно к дисплеям с вертикальным RGB-расслоением.

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

Согласно фиг.2С заштрихованный кружок используется для представления единичной выборки (шаблон) изображения, на основании которой генерируются значения яркости. Заметим, что в известных системах для генерации значений яркости красного, зеленого и синего пиксельных подкомпонентов 232, 233, 234 соответственно используется единичная выборка 222 изображения 220. Таким образом, в известных системах пиксельные подкомпоненты КЗС, в общем случае, используются в качестве группы для генерации одного окрашенного пикселя, соответствующего одной выборочной точке (единичной выборке) визуализируемого изображения.

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

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

Текстовые символы относятся к изображениям, которые особенно трудно точно отображать на обычном плоском дисплее, имеющем разрешение от 72 до 96 точек (пикселей) на дюйм (dpi). Разрешение такого дисплея значительно меньше разрешения в 600 dpi, поддерживаемого большинством принтеров, и еще более высоких разрешений, обеспечиваемых в большинстве массовых печатных изданий, например книгах и журналах. Поэтому в тех случаях, когда разрешение изображения ограничено пиксельным разрешением, малые визуальные объекты, например текстовые символы, могут выглядеть «корявыми».

В настоящее время считается, что разрешение изображения неизбежно ограничено пиксельным разрешением. Однако в заявке на патент США за номером US 6188385 B1, поданной 13 февраля 2001 г., Вильяма Хилла и др., под названием «Способ и устройство для отображения изображений, в том числе текста» (далее именуемой «патентом Хилла и др.»), во всей полноте включенным в настоящее описание посредством ссылки, описан способ повышения разрешения до разрешения пиксельных подкомпонентов. Технологию отображения, в которой используются, по меньшей мере, некоторые способы, описанные в патенте Хилла и др., часто называют CLEARTYPE®, что является зарегистрированным товарным знаком Корпорации Майкрософт.

В патенте Хилла и др. описана технология, согласно которой каждый пиксельный подкомпонент рассматривается как отдельный, независимый источник яркости. В этом состоит отличие от современного подхода, в котором набор пиксельных подкомпонентов КЗС данного пикселя рассматривается как единый источник яркости.

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

На фиг.3 показана общая функциональная блок-схема, которую можно реализовать на компьютере 100, для визуализации и растеризации текстовых изображений на дисплее 104 с использованием способа, описанного в патенте Хилла. В рамках данного описания предположим, что приложение, выполняющееся на компьютере 100, дает операционной системе компьютера команду для визуализации и растеризации на дисплее 104 буквы «i», имеющей данный шрифт и размер в пунктах. В левой части фиг.3, озаглавленной «Последовательность операций», показаны общие функции, реализуемые для визуализации текстового символа с использованием этого способа. В правой части фиг.3, озаглавленной «пример», представлено состояние символа «i» в результате реализации соответствующей функции, указанной слева.

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

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

В простейшем случае, масштабирование в горизонтальном направлении происходит с относительной скоростью, которая определяется количеством пиксельных подкомпонентов в данном пикселе. В дисплее с вертикальным RGB-расслоением любой отдельно взятый пиксель содержит три пиксельных подкомпонента. Соответственно, в простейшем случае, скорость масштабирования в горизонтальном направлении примерно в три раза больше, чем в вертикальном направлении. Это масштабирование можно производить, надлежащим образом манипулируя описанием символа. Элемент 312 демонстрирует состояние символа, полученное в результате масштабирования описания символа. Заметим, что в иллюстрируемом случае, когда высота символа остается постоянной, масштабирование приводит к растяжению буквы «i» в горизонтальном направлении с коэффициентом, примерно равным трем.

После масштабирования 302 операция переходит к этапу 303 хинтинга. Для описания процесса хинтинга иногда используется термин «подгонка к сетке». Хинтинг предусматривает выравнивание масштабированного символа относительно сетки. Он также предусматривает такое искажение контуров изображения, при котором изображение лучше согласуется с формой сетки. Сетка определяется в зависимости от физического размера пиксельных элементов устройства отображения. В отличие от более ранних способов, которые не позволяют в процессе хинтинга учитывать границы пиксельных подкомпонентов, хинтинг 303 рассматривает границы пиксельных подкомпонентов как границы, по которым можно и должно выравнивать символы, или границы, к которым следует подгонять контуры символа.

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

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

В процессе хинтинга 303 масштабированное изображение 312 сначала помещают поверх рисунка сетки, который представлен схемой сетки 313А. В качестве рисунка сетки показаны четыре столбца пикселей, обозначенные с С1 по С4 слева направо, и шесть строк пикселей, обозначенных с R1 по R6 сверху вниз. Заметим, что границы между пиксельными подкомпонентами обозначены пунктирными линиями за исключением тех случаев, когда они также разграничивают пиксели. Границы пикселей обозначены сплошными линиями. Заметим, что пиксельные подкомпоненты каждого пикселя имеют заголовки К, З или С, обозначающие соответственно красный, зеленый или синий цвет данного столбца.

В процессе хинтинга 303 левый край масштабированного символа «i» совмещают с границей К/З пиксельных подкомпонентов так, чтобы основной штрих хинтованного символа 312′ имел зеленый левый край для повышения четкости. Кроме того, подгоняют форму символа, а также положение символа в сетке. Производят также подгонку расстояний между символами.

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

Согласно фиг.3 операция сканирующего преобразования дает растровое изображение 314. Заметим, что каждый пиксельный подкомпонент, расположенный в одном из столбцов С1-С4 растрового изображения, определяют на основании отдельного сегмента соответствующих столбцов масштабированного хинтованного изображения 313В. В этом состоит отличие от традиционного способа, согласно которому значения всех трех пиксельных подкомпонентов данного пикселя генерируют на основании одного фрагмента изображения. Заметим также, что растровое изображение 314 содержит основание символа шириной в 2/3 ширины пикселя, левый край которого совмещен с границей красного и зеленого пиксельных подкомпонентов. Заметим также, что точка буквы «i» занимает 2/3 ширины пикселя. Традиционные способы формирования текстовых изображений, согласно которым каждый пиксель рассматривается как единичный компонент яркости, обеспечивают менее точное изображение, в котором основание символа имеет ширину целого пикселя, и точка имеет размер целого пикселя.

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

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

Затем растровое изображение 314 накладывают посредством операции смешивания (осуществления плавного перехода) на существующее фоновое изображение. В частности, для данного пикселя, положим, что интенсивности красного, зеленого и синего цвета равны glyph.r, glyph.g и glyph.b. «Глиф» - это термин, обозначающий форму символа в отношении формы пиксельных подкомпонентов данного пикселя. Трехмерный вектор красного, зеленого и синего цветовых компонентов представляют вектором glyph.rgb.

Цветовые компоненты кисти (заливки символа) или переднего плана представляют аналогичным вектором brush.rgb. Скалярное значение прозрачности заливки в каждом цветовом компоненте задают вектором brusha.rgb. Цвет фона для данного пикселя задают трехмерным вектором dst.rgb. Чтобы смешать нарисованный символ с фоном, применяют следующее векторное уравнение (1):

DST.rgb=DST.rgb+(brush.rgb-dst.rgb)*glyph.rgb*brusha.rgb (1)

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

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

Сущность изобретения

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

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

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

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

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

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

фиг.1 - традиционный портативный компьютер, отвечающий уровню техники;

фиг.2А - дисплей с вертикальным расслоением, содержащий 12 строк и 16 столбцов пикселей, каждый из которых содержит красный, зеленый и синий пиксельные подкомпоненты, расположенные по горизонтали друг за другом, образуя вертикальное расслоение в соответствии с уровнем техники;

фиг.2В - более подробно иллюстрирует верхнюю левую часть дисплея, изображенного на фиг.2А;

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

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

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

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

фиг.6 - разнообразные структуры данных, применяемые при смешивании символа с фоном в соответствии с настоящим изобретением;

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

Подробное описание изобретения

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

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

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

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

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

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

Согласно фиг.4 иллюстративная система для реализации изобретения содержит вычислительное устройство общего назначения в виде компьютера 420, включающего в себя обрабатывающий блок 421, системную память 422 и системную шину 423, которая соединяет различные системные компоненты, в том числе системную память 422, с обрабатывающим блоком 421. Системная шина может относиться к любому из нескольких типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, в которых используется любая шинная архитектура. Системная память включает в себя постоянную память (ПЗУ) 424 и оперативную память (ОЗУ) 425. Базовая система ввода/вывода (BIOS) 426, содержащая основные процедуры, которые помогают переносить информацию между элементами компьютера 420, например, при запуске, может храниться в ПЗУ 424.

Компьютер 420 может также включать в себя привод 427 жесткого диска, позволяющий осуществлять операции чтения и записи на несъемном магнитном диске 439, привод 428 магнитных дисков, позволяющий осуществлять операции чтения или записи на сменном магнитном диске 429 и привод 430 оптических дисков, позволяющий осуществлять операции чтения или записи на сменном оптическом диске 431, например CD-ROMe или других оптических носителях.

Привод 427 жесткого диска, привод 428 магнитных дисков и привод 432 оптических дисков подключены к системной шине 423 интерфейсом 432 привода жесткого диска, интерфейсом 433 привода магнитных дисков и интерфейсом 434 привода оптических дисков соответственно. Приводы и соответствующие компьютерно-считываемые носители обеспечивают энергонезависимое хранение компьютерно-исполняемых команд, структур данных, программных модулей и других данных для компьютера 420. Хотя описанная здесь иллюстративная среда предусматривает использование несъемного магнитного диска 439, сменного магнитного диска 429 и сменного оптического диска 431, для хранения данных можно использовать компьютерно-считываемые носители других типов, в том числе магнитные кассеты, карты флэш-памяти, цифровые универсальные диски, картриджи Бернулли, ОЗУ, ПЗУ и т.п.

Программные средства, содержащие один или несколько программных модулей, могут храниться на жестком диске 439, магнитном диске 429, оптическом диске 431, в ПЗУ 424 или ОЗУ 425 и включают в себя операционную систему 435, одну или несколько прикладных программ 436, другие программные модули 437 и программные данные 438. Пользователь может вводить команды и информацию в компьютер 420 посредством клавиатуры 440, указательного устройства 442 или иных устройств ввода (не показаны), например микрофона, джойстика, игровой панели, спутниковой тарелки, сканера и т.д. Эти и другие устройства ввода обычно подключают к обрабатывающему блоку 421 через интерфейс 446 последовательного порта, присоединенный к системной шине 423. Альтернативно, устройства ввода можно подключать через другие интерфейсы, например параллельный порт, игровой порт или универсальную последовательную шину (USB). Монитор 447 или иное устройство отображения также подключен(о) к системной шине 423 через интерфейс, например видеоадаптер 448. Помимо монитора, персональные компьютеры обычно содержат другие периферийные устройства вывода (не показаны), например громкоговорители и принтеры.

Компьютер 420 может работать в сетевой среде, используя логические соединения с одним или несколькими удаленными компьютерами, например удаленными компьютерами 449а и 449b. Каждый из удаленных компьютеров 449а, 449b может представлять собой другой персональный компьютер, сервер, маршрутизатор, сетевой ПК, равноправное устройство или другой общий узел сети и обычн, содержит многие или все элементы, описанные выше применительно к компьютеру 420, хотя на фиг.4 показаны только запоминающие устройства 450а и 450b и хранящиеся там прикладные программы 436а и 436b. Логические соединения, указанные на фиг.4, включают в себя локальную сеть (ЛС) 451 и глобальную сеть (ГС) 452, представленные здесь для примера, но не для ограничения. Такие сетевые среды широко распространены в учрежденческих или промышленных компьютерных сетях, интранетах и Интернете.

Компьютер 420, работающий в сетевой среде ЛС, подключен к локальной сети 451 через сетевой интерфейс или адаптер 453. Для работы в сетевой среде ГС компьютер 420 может использовать модем 454, беспроводную линию связи или иные средства установления соединения с глобальной сетью 452, например сетью Интернет. Модем 454, который может быть внешним или внутренним, подключен к системной шине 423 через интерфейс 446 последовательного порта. В сетевой среде программные модули, описанные применительно к компьютеру 420, или их часть могут храни