УПРОЩЕНИЕ СЛОЖНЫХ СИМВОЛОВ ДЛЯ ПОДДЕРЖАНИЯ РАЗБОРЧИВОСТИ
SIMPLIFICATION OF SYMBOLS TO ALLOW ELIGIBILITY

1. Область техники, к которой относится изобретение
Настоящее изобретение относится к разборчивости символа. В частности, настоящее изобретение относится к добавлению инструкций хинтовки (встраивание специальных команд в контурные шрифты для печатания их с максимальным соответствием спроектированной форме символа) к символу для улучшения битовой карты символа, полученной из очертания символа с определенным размером и выходным разрешением, когда очертание символа преобразуется при сканировании.
2. Описание предшествующего уровня техники
На фиг.1 показано очертание 100 символа. Очертание символа - это математическое описание формы символа с использованием линий и кривых. Очертание 100 символа включает в себя признак 120, который может быть выполнен из штрихов 121-126, и включает в себя штрихи 111-112 и 131-133. Идентификация штрихов 121-126 как признака 120 является несколько произвольным обозначением, которое будет описано более подробно ниже в отношении различных вариантов осуществления настоящего изобретения. Сейчас будет достаточно сказать, что признак - это совокупность из одного или нескольких штрихов символа.
На фиг.2 показана битовая карта 200 очертания 100 символа, масштабированная к сетке из шестидесяти пикселей. Подобно очертанию 100 символа битовая карта 200 включает в себя признак 200, который выполнен из штрихов 221-226, и включает в себя штрихи 211-212 и 231-233. Фиг.2 показывает, что, при наличии достаточного количества пикселей для символа определенного размера, визуализация может быть относительно прямым и простым процессом.
Рассмотрим, однако, размер битовой карты 200 на различных устройствах вывода. Даже самые недорогие из современных лазерных принтеров обеспечивают разрешение 300 точек на дюйм (DPI), а обычно - 600. В то же время необычные для лазерных принтеров разрешения свыше 2400 DPI не являются необычными для струйных принтеров. Соответственно, при визуализации на лазерном принтере с разрешением 300 DPI, битовая карта 200 будет иметь высоту 1/5 дюйма.
Однако типичные устройства отображения имеют значительно более высокие разрешения. Например, разрешения монитора примерно от 100 до 133 пикселей на дюйм (PPI) считаются высокими, а разрешения 72 PPI довольно обычны. В результате, при визуализации на мониторе высокого разрешения, битовая карта 200 будет иметь высоту 1/2 дюйма.
Общепринято, что оптимальный для чтения размер символов составляет примерно от девяти до двенадцати пунктов. Пункт приблизительно равен 1/72 дюйма. Преобразуя размер в пунктах к дюймам, получаем оптимальный для чтения размер символов примерно от 1/8 дюйма до 1/6 дюйма.
Как указано выше, при визуализации на лазерном принтере с разрешением 300 DPI битовая карта 200 будет иметь высоту 1/5 дюйма, которая достаточно велика для чтения, но не чрезмерно велика. Однако, как отмечено выше, при визуализации на мониторе высокого разрешения, битовая карта 200 будет иметь высоту 1/2 дюйма, которая слишком велика для эффективного чтения.
Чтобы загнать очертание 100 символа в битовую карту для оптимального чтения на мониторе 72 PPI, очертание 100 символа потребуется масштабировать к сетке из двенадцати пикселей, как показано на фиг.3. На мониторе 72 PPI битовая карта 300 будет иметь высоту 1/8 дюйма. Заметим, однако, что при масштабировании очертания 100 символа к сетке из двенадцати символов пикселей оказывается недостаточно для точного представления формы символа.
По аналогии с битовой картой 200 битовая карта 300 включает в себя признак 320, который выполнен из штрихов 321-326, и включает в себя штрихи 311-312 и 331-333. Однако согласно фиг.3 форма символа выглядит разорванной, со сталкивающимися пикселями и черными пятнами. Например, нет пробела между штрихами 322 и 324A и между штрихами 326 и 332.
Как показано в базовой битовой карте 400 на фиг.4, четырнадцать пикселей в вертикальном направлении - это примерно минимальное количество, необходимое для точного представления очертания 100 символа, если задан: один пиксель для верхней точки штриха 411, один пиксель для штриха 412, один пиксель для промежутка между штрихами 412 и 422, один пиксель для штриха 422, один пиксель для промежутка между штрихом 422 и штрихом 424A, один пиксель для штриха 424A, один пиксель для промежутка между штрихом 424A и штрихом 424B, один пиксель для штриха 424B, один пиксель для промежутка между штрихами 424B и 426, один пиксель для штриха 426, один пиксель для промежутка между штрихом 426 и штрихом 432, один пиксель для штриха 432, два пикселя для штрихов 431 и 433. Конечно, минимальное количество пикселей, необходимое для представления символа, точно изменяется от одного символа к другому.
Грубо говоря, расстояние в вертикальном направлении от верхней точки самого высокого символа до нижней точки самого низкого символа в шрифте определено как “em”. Также может существовать некоторое заполнение, и некоторые символы шрифта могут превышать em. Em - это не единица измерения, а сокращенное обозначение этого расстояния. Количество пикселей на em полезно при определении вероятности возникновения проблем формы символа, проиллюстрированных на фиг.3. При шестидесяти пикселях на em (фиг.2) возникновение проблем формы символа менее вероятно, чем при двенадцати пикселях на em (фиг.3).
Согласно фиг.4, в отсутствие четырнадцати пикселей в вертикальном направлении, символ можно изменить для улучшения разборчивости. Заметим, что, хотя на фиг.4 показано недостаточное количество пикселей в вертикальном направлении, проблема недостаточного количества пикселей для представления символа возникает также в горизонтальном направлении. Один способ изменения символа для улучшения разборчивости состоит в удалении штрихов из символа. Азиатский символ был выбран для очертания 100 символа в иллюстративных целях, поскольку азиатские символы, по сравнению с латинскими символами, в большинстве своем, имеют большее количество штрихов, и потому обычно более подвержены проблемам формы, как в горизонтальном, так и в вертикальном направлении, показанным на фиг.3, при размерах символа, пригодных для эффективного чтения. Естественно, латинские и другие символы подвержены тем же проблемам формы, в зависимости от количества штрихов в очертании символа, конечного размера символа, разрешения устройства вывода и т.д.
Удаление штриха из азиатского символа примерно аналогично удалению буквы из английского слова. Для многих английских слов удаление буквы не сделает слово нераспознаваемым, в особенности в контексте окружающих слов. Конечно, некоторые буквы имеют большее влияние, чем другие - удаление гласных в середине слова, вероятно вызовет меньше проблем, чем удаление согласной в начале слова. Аналогично, удаление штриха из азиатского символа может уменьшить количество пикселей, необходимое для представления символа, не оказывая слишком сильного влияния на разборчивость. Однако, как и в случае удаления букв из английского слова, следует выбирать, какой штрих удалить из азиатского символа, чтобы минимизировать всякое возможное снижение читаемости.
В результате, вместо масштабирования очертания 100 символа, традиционные азиатские шрифты включают в себя множественные битовые карты, созданные разработчиком шрифта, для визуализации символов при разных размерах шрифта. Битовая карта 500 с уменьшенным количеством штрихов, показанная на фиг.5, является примером битовой карты для очертания 100 символа, показанного на фиг.1. Заметим, что штрихи 124A и 124B были сжаты в один штрих 524 для улучшения разборчивости. Остальные штрихи, 511, 512, 521, 522, 523, 526 и 531-533, почти не изменились.
Хотя решение, проиллюстрированное на фиг.5, решает проблему формы символа, показанную на фиг.3, обеспечение множественных битовых карт для каждого символа значительно увеличивает ресурсы, необходимые для разработки азиатского шрифта, и значительно увеличивают требования к хранению, необходимые для шрифта. Например, следует учесть, что азиатский шрифт может содержать более 20000 различных символов. При обеспечении множественных битовых карт для каждого символа количество битовых карт для одного азиатского шрифта может превышать 400000. В результате для разработки азиатского шрифта может быть затрачено столько же усилий, сколько 50 разработчиков шрифта затрачивают за год.
Таким образом, предусмотрены способы, системы и компьютерные программные продукты для добавления инструкций хинтовки к символу для улучшения разборчивости битовой карты масштабированного символа, созданной из очертания символа с определенным размером и выходным разрешением, когда очертание символа преобразуется при сканировании.
Сущность изобретени
я
Настоящее изобретение предусматривает способы, системы и компьютерные программные продукты для добавления инструкций хинтовки, в некоторых случаях, автоматического, к символу для улучшения битовой карты символа, полученной из очертания символа с определенным размером и выходным разрешением, когда очертание символа преобразуется при сканировании.
Согласно иллюстративному варианту осуществления способа настоящего изобретения извлекают выводимый символ, причем символ содержит один или несколько признаков, каждый из которых, в свою очередь, содержит один или несколько штрихов. Способ определяет, что символ принадлежит одной или нескольким семантическим классификациям символа и обращается к одной или нескольким инструкциям хинтовки, которые связаны с каждой из одной или нескольких семантических классификаций символа. Одна или несколько инструкций хинтовки сохраняют семантическое значение символа, в то же время изменяя наличие штриха, расположение штриха или и то, и другое для, по меньшей мере, одного штриха, по меньшей мере, одного признака символа на основании опорных размера и выходного разрешения символа. Фактические размер и выходное разрешение символа для символа сравнивают с опорными размером и выходным разрешением символа для одной или нескольких инструкций хинтовки, и одну или несколько инструкций хинтовки выполняют для изменения наличия штриха, расположения штриха или и того, и другого для, по меньшей мере, одного штриха, по меньшей мере, одного признака символа для создания хинтованного (к которому применена хинтовка) очертания символа.
Битовую карту масштабированного символа можно создавать из хинтованного очертания символа и отправлять на устройство отображения или принтер. В некоторых вариантах осуществления символ принадлежит восточно-азиатскому языку.
Согласно другому иллюстративному варианту осуществления компьютерного программного продукта настоящего изобретения принимают выводимый набор символов, причем каждый символ содержит один или несколько признаков с одним или несколькими штрихами. Для каждого символа в наборе символов идентифицируют одну или несколько семантических классификаций символа, которым принадлежит символ, и одну или несколько инструкций хинтовки, которые связаны с семантической классификацией символа. Одна или несколько инструкций хинтовки сохраняют семантическое значение символа, в то же время, изменяя наличие штриха, расположение штриха или и то, и другое для, по меньшей мере, одного штриха, по меньшей мере, одного признака символа на основании опорных размера и выходного разрешения символа. Одна или несколько инструкций хинтовки связаны с символом.
Одна или несколько инструкций хинтовки, которые связаны с символом, могут базироваться на значении уникода или какой-либо другой кодировке символа, и набор символов может содержать, по меньшей мере, часть шрифта. Например, набор символов может представлять собой один или несколько символов восточно-азиатского языка. Следует заметить, что символ может принадлежать совокупности семантических классификаций символа, что к разным инструкциям хинтовки можно применять разные опорные размер и выходное разрешение символа, и что с символом могут быть связаны некоторые инструкции хинтовки, специфичные только для этого символа.
Способ также может дополнительно содержать разработку одной или нескольких семантических классификаций символа и задание одной или нескольких инструкций хинтовки для одной или нескольких семантических классификаций символа.
Согласно другому иллюстративному варианту осуществления способа настоящего изобретения очертание символа, которое содержит один или несколько признаков, каждый из которых, в свою очередь, содержит один или несколько штрихов, задают один или несколько опорных размеров и выходных разрешений символа. Фактические размер и выходное разрешение символа для символа сравнивают с одним или несколькими опорными размерами и выходными разрешениями. Вместо одной или нескольких битовых карт с уменьшенным количеством штрихов задают одну или несколько инструкций хинтовки для символа, подлежащие выполнению, если фактические размер и выходное разрешение символа попадают в один из опорных размеров и выходных разрешений символа. Одна или несколько инструкций хинтовки сохраняет семантическое значение символа, в то же время, сокращая, по меньшей мере, один штрих, по меньшей мере, одного признака символа для улучшения разборчивости символа.
Если фактические размер и выходное разрешение символа попадают в один из опорных размеров и выходных разрешений символа, одна или несколько инструкций хинтовки могут сжимать штрих, частично сжимать штрих, укорачивать штрих и т.п. Штрих может быть любым штрихом символа, включая горизонтальный штрих, вертикальный штрих или наклонный штрих.
Опорные размеры и выходные разрешения символа можно выражать как целевые размер в пунктах и выходное разрешение, например, в пикселях на em, или в любых других подходящих единицах.
Дополнительные признаки и преимущества изобретения изложены в нижеследующем описании и частично явствуют из описания или могут быть изучены при практическом осуществлении изобретения. Признаки и преимущества изобретения можно реализовать и получать посредством инструментов и комбинаций, в частности, указанных в прилагаемой формуле изобретения. Эти и другие признаки настоящего изобретения станут более очевидны из нижеследующего описания и прилагаемой формулы изобретения или могут быть изучены при практическом осуществлении изобретения, изложенного ниже.
Перечень чертежей
Для описания того, каким образом можно получить вышеупомянутые и другие преимущества и признаки изобретения, более подробное описание изобретения, кратко описанного выше, будет дано со ссылкой на его конкретные варианты осуществления, проиллюстрированные в прилагаемых чертежах. С учетом того, что эти чертежи иллюстрируют лишь типичные варианты осуществления изобретения и потому не призваны ограничивать его объем, изобретение будет описано и объяснено с дополнительными конкретизацией и подробностями, с использованием прилагаемых чертежей, в которых
фиг.1 - очертание символа для символа;
фиг.2 - представление очертания символа, показанного на фиг.1, в виде битовой карты, масштабированной к 60-пиксельной сетке;
фиг.3 - представление очертания символа, показанного на фиг.1, в виде битовой карты, масштабированной к 12-пиксельной сетке;
фиг.4 - показывает количество пикселей, необходимых в вертикальном направлении для точного представления очертания символа, показанного на фиг.1;
фиг.5 - битовая карта с уменьшенным количеством штрихов, созданная разработчиком шрифта, для очертания символа, показанного на фиг.1;
фиг.6 - масштабированная битовая карта очертания символа, показанного на фиг.1, в которой используется хинтовка для подгонки к сетке;
фиг.7 - масштабированная битовая карта очертания символа, показанного на фиг.1, в которой используется хинтовка для подгонки к сетке и сокращения штрихов;
фиг.8 и 9 - иллюстративные действия и этапы способов добавления инструкций хинтовки к символу или набору символов; и
фиг.10 - иллюстративная компьютерная система, которая обеспечивает подходящую рабочую среду для настоящего изобретения.
Подробное описание предпочтительных вариантов осуществления
Настоящее изобретение предусматривает способы, системы и компьютерные программные продукты для добавления инструкций хинтовки к символу для улучшения битовой карты символа, полученной из очертания символа с определенным размером и выходным разрешением, когда очертание символа преобразуется при сканировании. Следует заметить, что различные раскрытые варианты осуществления могут фокусироваться на разных аспектах настоящего изобретения в целях иллюстрации и ясности. Соответственно раскрытые варианты осуществления не следует использовать для ограничения объема настоящего изобретения, и поэтому комбинации раскрытых вариантов осуществления и/или определенных частей раскрытых вариантов осуществления следует рассматривать как включенные в объем настоящего изобретения.
На фиг.6 показана масштабированная битовая карта 600 очертания символа, показанного на фиг.1, в которой используется хинтовка для подгонки к сетке. Подгонка к сетке с использованием инструкций хинтовки, которые описывают, как подгонять очертание символа к сетке, прежде, чем определять, какие пиксели должны отображаться. При подгонке к сетке пытаются сохранить регулярность или подобие регулярности положений и расстояний, сохранить пропорции. На фиг.6, заметим, что горизонтальные штрихи 612, 622, 624A, 624B, 626 и 632 подогнаны к двенадцати-пиксельной сетке так, что очертания штрихов лежат вдоль одного пикселя. Подгонка к сетке обычно происходит сначала по одной оси, а затем по второй оси.
Подгонка к сетке, показанная на фиг.6, улучшает форму символа, но не решает проблему черных пятен в изображении. Возвращаясь к фиг.4, причина в том, что для точного представления очертания 100 символа требуется минимум четырнадцать пикселей. Для улучшения формы битовой карты 600 дополнительная хинтовка осуществляется для сжатия одного из средних штрихов 624A или 624B признака 620.
Это дополнительная хинтовка проиллюстрирована в битовой карте 700, показанной на фиг.7. Заметим, в частности, что один из горизонтальных штрихов 624A и 624B признака 620 был сжат в один горизонтальный штрих 724 признака 720. В результате символ стал более разборчивым, особенно благодаря пробелу между горизонтальными штрихами 712, 722, 724, 726 и 732.
Существуют различные языки создания шрифта, которые поддерживают инструкции хинтовки, включая TRUETYPE, который обычно используют Apple и Microsoft. Языки создания шрифта используются для описания очертаний символов, например очертания 100 символа, для облегчения масштабирования и для хинтовки. Однако, как указано выше, хинтовка не использовалась для сокращения штрихов в масштабированных очертаниях символов для азиатских шрифтов, в частности для восточно-азиатских (т.е. японского, упрощенного и традиционного китайского, корейского и т.д.) шрифтов по причине трудностей, описанных выше и проиллюстрированных на фиг.3. Вместо этого очертания символов использовались для визуализации символов, где имеется достаточно пикселей на em для точного представления символа и, при недостаточном количестве пикселей на em для точного представления символа, (i) визуализованные символы имели плохую разборчивость, наподобие битовой карты 300 символа, показанной на фиг.3, либо (ii) в сам шрифт внедряли множественные битовые карты с уменьшенным количеством штрихов для каждого символа (см. фиг.5), что приводило к большим затратам на разработку шрифта и большим файлам шрифтов. Напротив, используя вышеописанную хинтовку, можно получить такую же высокую разборчивость, которую дают множественные битовые карты, и, таким образом, исключить необходимость в разработке и внедрении битовых карт с уменьшенным количеством штрихов в файл шрифта.
Например, при разработке шрифта задают очертание символа. Очертание символа включает в себя один или несколько признаков, состоящих из одного или нескольких штрихов. Следует помнить, что признак - это просто произвольное обозначение совокупности из одного или нескольких штрихов и не обязательно предусматривает какую-либо дополнительную структуру в очертании символа.
Задают также один или несколько опорных размеров и выходных разрешений. Опорные размеры и выходные разрешения символа указывают размеры и выходные разрешения символа, где должно иметь место сокращение штрихов. Для некоторых символов никакого сокращения штрихов может не потребоваться, тогда как для других может требоваться сокращение штрихов при конкретном размере и выходном разрешении символа или при множественных размерах и выходных разрешениях символа. Как указано ранее, опорные размеры и выходные разрешения символа можно выражать как целевые размер в пунктах и выходное разрешение, например, в пикселях на em, или в любых других подходящих единицах.
Во время разработки переменную для фактических размера и выходного разрешения символа для символа сравнивают с одним или несколькими опорными размерами и выходными разрешениями. Эта переменная принимает фактические размер и выходное разрешение символа во время выполнения.
Вместо использования одной или нескольких битовых карт с уменьшенным количеством штрихов задают одну или несколько инструкций хинтовки для символа, подлежащих выполнению, если фактические размер и выходное разрешение символа попадают в один из опорных размеров и выходных разрешений символа. Опять же, одна или несколько инструкций хинтовки сохраняют семантическое значение символа, в то же время сокращая один или несколько штрихов одного или нескольких признаков символа для улучшения разборчивости символа. Если фактические размер и выходное разрешение символа попадают в один из опорных размеров и выходных разрешений символа, одна или несколько инструкций хинтовки может сжимать штрих, частично сжимать штрих, укорачивать штрих и т.п. Штрих может быть любым штрихом символа, включая горизонтальный штрих, вертикальный штрих или наклонный штрих.
Дополнительного сокращения ресурсов для разработки шрифтов можно добиться, понимая, что некоторые признаки присутствуют во множественных символах, так что хинтовка может добавляться автоматически. Как указано выше, признак символа - это просто произвольная совокупность из одного или нескольких штрихов символа. Главной причиной использования термина “признак” является желание облегчить нижеследующее рассмотрение семантического анализа символов. Другими словами, признак символа не обязан иметь какое-либо значение вне семантического анализа символов.
Хотя, на одном уровне, некоторые преимущества можно реализовать, замечая визуальное подобие между признаками символа, дополнительные преимущества можно реализовать, рассматривая семантическое значение изменения признака символа. Другими словами, хотя хинтовку можно реализовать просто на основании визуального восприятия, инструкции хинтовки, опирающиеся на семантику, а не только на визуальное подобие, обеспечивают лучшую разборчивость. Семантический анализ не обязательно предусматривает, что схожие признаки означают одно и то же от символа к символу, но предусматривает, что сходную хинтовку, например сокращение или перемещение штрихов, можно, в значительной степени, осуществлять в отношении разных символов без изменения значения или разборчивости символов. В описании изобретения, формуле изобретения и чертежах термин “сокращение штрихов” следует интерпретировать в широком смысле, включая полное удаление (сжатие) штриха, частичное удаление (сжатие) штриха или укорачивание штриха в горизонтальном и/или вертикальном направлении. Как показано более подробно ниже, сокращение штрихов призвано сохранять жизнеспособным как семантическое значение, так и разборчивость символа при изменении размеров и разрешений символа.
Семантический анализ предусматривает задание одной или нескольких семантических классификаций символа. Опять же, эти классификации не обязательно указывают, что символы имеют сходное значение, но что сходную хинтовку можно осуществлять в отношении признаков, общих для символов в семантической классификации, с целью улучшения разборчивости. Может быть так, что признаки, несмотря на то, что выглядят аналогично, могут иметь совершенно разное семантическое значение. Например, признак символа может вовсе не иметь семантического значения, поскольку является частью более крупного признака символа с семантическим значением. Следует также заботиться о том, чтобы удаление штрихов не создавало для читающего слишком больших трудностей в различении символов.
Единичный символ может попадать в множественные семантические классификации символа, и поэтому в отношении единичного символа могут выполняться или осуществляться множественные и, возможно, независимые инструкции хинтовки. В некоторых вариантах осуществления символ можно ограничивать одной семантической классификацией для упрощения хинтовки. В других вариантах осуществления символ, который попадает в множественные семантические классификации, может включать в себя дополнительные проверки в самом языке хинтовки для подтверждения того, что после осуществления хинтовки одного типа символ все еще попадает в другие семантические классификации. Альтернативно, семантические классификации могут сами идентифицировать любые несоответствия между ними и связанной с ними хинтовкой, в результате чего осуществляется хинтовка только совместимых типов. Например, несоответствия можно идентифицировать в явном виде при наличии одной или нескольких семантических классификаций, исключающих одну или несколько других семантических классификаций, или можно выводить логически при наличии одной или нескольких семантических классификаций, идентифицирующих одну или несколько совместимых семантических классификаций.
Хотя вышеприведенное описание, в основном, было сосредоточено на азиатских шрифтах, следует понимать, что азиатские шрифты просто включают в себя символы, которые до некоторой степени предрасположены к указанным проблемам ввиду количества штрихов, которые они содержат. Количество штрихов, пробел, необходимый для разделения этих штрихов, типичное разрешение устройств отображения и размеры шрифта, наиболее благоприятные для читаемости, делают азиатские шрифты особенно проблематичными. Однако те же проблемы могут возникать с любыми символами при соответствующих обстоятельствах.
Один способ количественного определения того, когда, скорее всего, возникнут вышеозначенные проблемы формы символа, состоит в учете сложности символа. В данном случае сложность относится к символу в контексте размера и разрешения символа, а не просто количества штрихов, присутствующих в символе. Соответственно, хотя битовая карта 200 соответствует символу с большим количеством штрихов, символ не является сложным, поскольку имеется адекватное количество пикселей, в данном случае, 60-пиксельная сетка, для представления символа. Однако, когда очертание 100 символа масштабируется к 12-пиксельной сетке, например, показанной на фиг.3, символ становится сложным, ввиду отсутствия достаточного количества пикселей для точного представления символа.
В практическом смысле имеется взаимосвязь между количеством пикселей на em, конкретным шрифтом и выходным разрешением. Хинтовка способна учитывать каждый из этих факторов и потому условно осуществляет сокращение или перемещение штрихов, когда необходимо, поскольку символ, на основании этих факторов, считается сложным. Соответственно сосредоточение на азиатских символах носит исключительно иллюстративный характер и не призвано ограничивать объем настоящего изобретения.
Настоящее изобретение также можно описать применительно к способам, содержащим функциональные этапы и/или нефункциональные действия. Ниже приведено описание действий и этапов, которые можно осуществлять при практическом использовании настоящего изобретения. Обычно функциональные этапы описывают изобретение применительно к достигаемым результатам, тогда как нефункциональные действия описывают более конкретные действия для достижения определенного результата. Хотя функциональные этапы и нефункциональные действия можно описывать или заявлять в определенном порядке, настоящее изобретение не ограничивается никаким конкретным порядком или комбинацией действий и/или этапов.
На фиг.8 и 9 показаны иллюстративные действия и этапы способов добавления инструкций хинтовки к символу или набору символов. Согласно фиг.8, этап приема (810) выводимого символа может включать в себя действие по извлечению (812) выводимого символа. Например, символы, содержащиеся в некоторых электронных данных, можно извлекать по одному и обрабатывать в соответствии с вариантом осуществления изобретения, описанным в связи с фиг.8. Как описано выше, символ может быть символом восточно-азиатского языка.
Этап идентификации (820) одной или нескольких семантических классификаций символа для символа может включать в себя действие по определению (822) того, что символ принадлежит одной или нескольким семантическим классификациям символа. Этап идентификации (830) одной или нескольких инструкций хинтовки, которые связаны с каждой из одной или нескольких семантических классификаций символа, может включать в себя действие по обращению (832) к одной или нескольким инструкциям хинтовки. Согласно описанному выше инструкции хинтовки сохраняют семантическое значение символа, в то же время изменяя либо наличие, либо положение штриха, либо и то, и другое для, по меньшей мере, одного штриха символа, по меньшей мере, одного признака символа на основании опорных размера и выходного разрешения символа.
Этап определения (840) того, что фактические размер и выходные разрешения символа для символа находятся в пределах опорных размера и выходного разрешения символа для одной или нескольких инструкций хинтовки, может включать в себя действие по сравнению (842) фактических размера и выходного разрешения символа с опорными размером и выходным разрешением символа. Например, в зависимости от количества пикселей на em, размера символа и выходного разрешения хинтовка может не требоваться. Рассмотрим, в частности, разницу между принтером с разрешением 600 DPI и устройством отображения с разрешением 100 PPI. Хотя в обоих случаях может быть желательна подгонка к сетке, при печати с шестикратным разрешением сокращение штрихов может не требоваться, но, на устройстве отображения, сокращение штрихов может существенно повысить читаемость.
Этап создания (850) хинтованного очертания символа с использованием одной или нескольких инструкций хинтовки может включать в себя действие по выполнению (852) одной или нескольких инструкций хинтовки. Этап подготовки (860) масштабированной битовой карты из хинтованного очертания символа может включать в себя действие по созданию (862) битовой карты. Этап вывода (870) битовой карты может включать в себя действие по отправке (872) битовой карты на устройство вывода, например устройство отображения или принтер.
В некоторых вариантах осуществления символ может принадлежать совокупности семантических классификаций символа, а в других символ может быть ограничен одной семантической классификацией символа. Если символ принадлежит множественным семантическим классификациям, то возможно, что ни одна, одна или несколько инструкций хинтовки отвечают требованию опорных размера и выходного разрешения символа. Другими словами, разные инструкции хинтовки могут иметь разные требования в отношении опорных размера и выходного разрешения символа для выполнения.
Согласно фиг.9 этап разработки (910) одной или нескольких семантических классификаций символа может включать в себя действие по заданию (912) одной или нескольких семантических классификаций символа. Этап разработки (920) одной или нескольких инструкций хинтовки может включать в себя действие по разработке (922) одной или нескольких инструкций хинтовки для одной или нескольких семантических классификаций символа. Кроме того, символ может принадлежать совокупности семантических классификаций символа.
Этап приема (930) выводимого набора символов, причем каждый символ содержит один или несколько признаков с одним или несколькими штрихами, может включать в себя действие по извлечению (932) набора символов. Например, символы, содержащиеся в шрифте, можно извлекать и обрабатывать согласно варианту осуществления изобретения, описанному в связи с фиг.9, для добавления хинтовки и семантического анализа к шрифту, где ранее не существовало хинтовки или семантического анализа или они были ограничены. Опять же, набор символов может представлять собой один или несколько символов (или даже все символы) шрифта восточно-азиатского языка.
Для каждого символа в наборе символов (блок 942 принятия решения) этап идентификации (950) одной или нескольких семантических классификаций символа, которым принадлежит символ, может включать в себя действие по определению (952) того, принадлежит ли символ одной или нескольким семантическим классификациям символа. Этап идентификации (960) одной или нескольких инструкций хинтовки, которые связаны с одной или несколькими семантическими классификациями символа, может включать в себя действие по обращению (962) к одной или нескольким инструкциям хинтовки, которые связаны с семантической классификацией символа, если символ принадлежит семантической классификации символа.
Как указано выше, одна или несколько инструкций хинтовки сохраняют семантическое значение символа, в то же время изменяя наличие штриха, расположение штриха или и то, и другое для, по меньшей мере, одного штриха, по меньшей мере, одного признака символа на основании опорного размера и выходного разрешения. Этап установления связи (970) одной или нескольких инструкций хинтовки с символом может включать в себя действие по добавлению (972) одной или нескольких инструкций хинтовки к символу. Одна или несколько инструкций хинтовки может быть связана с символом на основании значения символа в уникоде или другой системе кодирования.
Варианты осуществления в пределах объема настоящего изобретения также включают в себя машиночитаемые носители для переноса или хранения машиноисполняемых инструкций или структур данных. Такие машиночитаемые носители могут представлять собой любые имеющиеся носители, к которым может осуществлять доступ компьютер общего назначения или специального назначения. В порядке примера, но не ограничения, такие машиночитаемые носители могут содержать ОЗУ, ПЗУ, электрически стираемое программируемое ПЗУ (ЭСППЗУ), CD-ROM или другой носитель данных в виде оптического диска, носитель данных в виде магнитного диска или другое магнитное запоминающее устройство или любой другой носитель, который можно использовать для переноса или хранения нужных средств программного кода в форме машиноисполняемых инструкций или структур данных, и к которому может осуществлять доступ компьютер общего назначения или специального назначения. При переносе или обеспечении информации по сети или другому коммуникационному соединению (проводному, беспроводному или комбинированному) на компьютер, компьютер соответственно интерпретирует данное соединение как машиночитаемый носитель. Таким образом, любое подобное соединение надлежит рассматривать как машиночитаемый носитель. Комбинации вышеперечисленного также следует включать в понятие «машиночитаемый носитель». Машиноисполняемые инструкции содержат, например, инструкции и данные, в соответствии с которыми компьютер общего назначения, компьютер специального назначения или устройство обработки данных специального назначения выполняет определенную функцию или группу функций.
Фиг.10 и нижеследующее рассмотрение призваны обеспечить краткое, общее описание подходящей вычислительной среды, в которой можно реализовать изобретение. Хотя это и не требуется, изобретение будет описано в общем контексте машиноисполняемых инструкций, например, программных модулей, исполняемых компьютерами в сетевых средах. В общем случае программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют определенные задачи или реализуют определенные абстрактные типы данных. Машиноисполняемые инструкции, соответствующие структуры данных и программные модули представляют примеры средства программного кода для выполнения этапов раскрытых здесь способов. Конкретная последовательность таких исполняемых инструкций или соответствующих структур данных представляет примеры соответствующих действий для реализации функций, описанных в таких этапах.
Специалистам в данной области очевидно, что изобретение можно осуществлять на практике в сетевых вычислительных средах со многими типами конфигураций компьютерной системы, включая персональные компьютеры, карманные устройства, мобильные телефоны, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, сетевые ПК, миникомпьютеры, универсальные компьютеры и т.п. Изобретение можно также применять на практике в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки данных, связанными друг с другом посредством сети передачи данных (на основе проводных линий связи, беспроводных линий связи или комбинации проводных и беспроводных линий связи). В распределенной вычислительной среде программные модули могут размещаться как в локальных, так и в удаленных запоминающих устройствах.
Согласно фиг.10 иллюстративная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде традиционного компьютера 20, включающего в себя процессор 21, системную память 22 и системную шину 23, которая подключает различные компоненты системы, в том числе системную память 22, к процессору 21. Следует однако заметить, что, по мере усовершенствования мобильных телефонов, они начинают включать в себя многие из компонентов, проиллюстрированных для традиционного компьютера 20. Соответственно с относительно небольшими доработками, в основном, касающимися устройств ввода/вывода, описание традиционного компьютера 20 в равной степени применимо к мобильным телефонам. Системная шина 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. Альтернативно, устройства ввода могут подключаться посредством других интерфейсов, например параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или другое устройство отображения также подключен к системной шине 23 через интерфейс, например видеоадаптер 48. Помимо монитора персональные компьютеры обычно включают в себя другие периферийные устройства вывода (не показаны), например громкоговорители и принтеры.
Компьютер 20 может работать в сетевой среде с использованием логических соединений с одним или несколькими удаленными компьютерами, например удаленными компьютерами 49a и 49b. Каждый из удаленных компьютеров 49a и 49b может представлять собой другой персональный компьютер, сервер, маршрутизатор, сетевой ПК, одноранговое устройство или другой общий сетевой узел, и обычно включает в себя многие или все из элементов, описанных выше применительно к компьютеру 20, хотя на фиг.10 проиллюстрированы только запоминающие устройства 50a и 50b и связанные с ними прикладные программы 36a и 36b. Логические соединения, описанные на фиг.10, включают в себя локальную сеть (ЛС) 51 и глобальную сеть (ГС) 52, которые представлены здесь в порядке примера, но не ограничения. Такие сетевые среды обычно применяются в компьютерных сетях в масштабе учреждения или предприятия, интранетах и Интернете.
При использовании в сетевой среде ЛС компьютер 20 подключен к локальной сети 51 через сетевой интерфейс или адаптер 53. При использовании в сетевой среде ГС компьютер 20 может включать в себя модем 54, беспроводную линию связи или другое средство установления связи в глобальной сети 52, например Интернете. Модем 54, который может быть внутренним или внешним, может быть подключен к системной шине 23 через интерфейс 46 последовательного порта. В сетевой среде программные модули, описанные применительно к компьютеру 20, или часть из них могут храниться в удаленном запоминающем устройстве. Очевидно, что показанные сетевые соединения являются иллюстративными, и что для установления соединений по глобальной сети 52 можно использовать другие средства.
Настоящее изобретение можно осуществлять в других конкретных формах, не выходя за рамки его сущности или существенных характеристик. Описанные варианты осуществления следует во всех отношениях рассматривать только как иллюстративные и не ограничительные. Таким образом, объем изобретения определяется прилагаемой формулой изобретения, а не вышеприведенным описанием. Объем изобретения охватывает все изменения, соответствующие смыслу и диапазону эквивалентности формулы изобретения.