Дмитрий Адров

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

Разработка новой шрифтовой технологии началась в 1998 г., причем уже тогда подразумевалось, что будут разрабатываться не только шрифты и технология их рендеринга, но и ПО, способное воспроизводить текст, отображаемый с помощью таких шрифтов. Разработки шрифтов повышенной четкости воплотились в шрифтовую технологию ClearType, а разработки в области отображения шрифтов ClearType - в программу Microsoft Reader, причем обеим технологиям уже в 1998 г. предназначалось стать составными частями нового формата электронных публикаций - электронной книги, или eBook.

Теория ClearType

Каждый экранный элемент (пиксел) ЖК-панели (напомним, что технология ClearType первоначально ориентировалась именно на ЖК-экраны), который мы видим как белый, на самом деле состоит из трех частей: вертикальных полосок субпикселов красного, зеленого и синего цветов (RGB). Отсюда ясно, что у ЖК-монитора, разрешающая способность которого технически ограничена числом воспроизводимых пикселов и равна, допустим, 1024х768, в одной строке выстроятся 3072 субпиксела. В этом случае наш глаз увидит белую линию через весь экран, хотя на самом деле линия будет состоять из 3072 полосок субпикселов красного, зеленого и синего цветов, ширина которых равна одной трети пиксела.

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

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

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

Обратимся к практике. Оперируя при отображении каждого символа субпикселами, мы так или иначе придаем тексту пеструю раскраску, особенно заметную при работе со старыми графическими платами, отображающими всего 256 цветов. В чем суть этого эффекта и как от него избавиться? Такая раскраска, а именно "обрамление" букв цветными полосками, получается из-за того, что ширина штриха буквы, "набранной" субпикселами, выражается числом субпикселов, не соответствующим полным пикселам. Например, ширина вертикальных штрихов в латинской букве "m" шрифта Times New Roman четырнадцатого кегля в шрифтах TrueType составляет 2 полных пиксела, а при субпикселном представлении шрифтов - пять субпикселов, т. е. один полный пиксел и еще два субпиксела. Если субпикселы, участвующие в начертании штриха, чередуются как G-B-R-G-B, то сбоку от штриха останется свободный, не участвующий в начертании буквы, субпиксел красного цвета. Вспомним, что на ЖК-экранах субпикселы одного цвета составляют вертикальную полоску - именно эту полоску мы и видим как обрамление штриха буквы. Такие полоски серьезно искажают текст -глаз человека как бы усредняет цвет объекта, и за счет выделения красного цвета вся буква может казаться темно-красной, или зеленой, или синей - или все вместе. Такое явление носит название локального цветового дисбаланса и обязательно сопутствует субпикселным шрифтовым технологиям.

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

Fig.1 Рис. 1. Принцип фильтрации.

Таким образом, даже тот субпиксел, который участвует в начертании штриха, регулирует свечение соседнего субпиксела, делая его более темным или ярким. Яркость свечения каждого субпиксела на треть состоит из собственной яркости, на треть -из яркости соседа справа и на треть - из яркости соседа слева. Если оба соседних субпиксела не участвуют в начертании штриха символа, то данный субпиксел будет светиться в полную яркость. Если же один или два соседних субпиксела участвуют в начертании штриха и, таким образом, их свечение выключено, то яркость свечения свободного субпиксела будет равна соответственно 2/3 и 1/3 номинала (в последнем случае это будет собственно яркость самого субпиксела). Если, наконец, выключенными оказываются три смежных субпиксела, то средний совсем не светится (рис.2).

Fig.2 Рис. 2. Распределение яркости.

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

Fig.3. Рис. 3. Второй уровень фильтрации.

Теперь, распределив яркость между пятью субпикселами как 1/9, 2/9, 3/9, 2/9, 1/9 от первоначального значения, мы собрали больше яркости в центре и меньше - на краях. Четкость от этого выросла, а локальный цветовой дисбаланс можно заметить только сильно вооруженным взглядом.

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

Microsoft Reader 1.5 - достоинства и недостатки

Программу Microsoft Reader 1.5 компания Microsoft выпустила в августе 2000 г. Предыдущая версия была предназначена только для карманных компьютеров, хотя и использовала ту же технологию шрифтов - ClearType.

После установки программы в каталоге My Documents (Мои документы) появятся два подкаталога - My Library и My Pictures (Мои рисунки). В первый из них "складываются" электронные книги; оттуда же они по умолчанию и открываются при запуске Microsoft Reader. При запуске программы открывается окно библиотеки, в которой перечислены имеющиеся в ней книги (рис. 4).

Fig.4 Рис. 4. Окно библиотеки Microsoft Reader.

Окно Microsoft Reader невелико - при разрешении 800х600 оно занимает половину экрана, деля его по вертикали (рис. 5). Развернуть его во всю ширину экрана нельзя - вероятно, это связано с ограничениями технологии ClearType.
Fig.5 Fig.6
Рис. 5. Меню установок программы Microsoft Reader.
Рис. 6. Выделение текста цветом в Microsoft Reader.

Работать с электронной книгой, открытой в Microsoft Reader, очень удобно - можно, например, поставить закладку, а если вы забыли ее поставить, то при новом вызове ранее читанной книги можно указать программе начать чтение с последней открытой страницы. Можно маркером выделять часть текста другим цветом (рис. 6) и делать заметки на полях (рис. 7). Все заметки сохраняются отдельно и их можно просмотреть, выбрав в меню Microsoft Reader пункт Annotation Index (рис. 8).

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

Fig.7 Fig.8
Рис. 7. Заметки на полях в Microsoft Reader.
Рис. 8. Меню Microsoft Reader.

Пока Microsoft Reader оперирует с текстом, графикой и звуком, но на будущее планируется возможность вставки потокового видео.

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

Подготовка публикации

Самый простой и удобный способ изготовления электронной книги -преобразование исходного материала, подготовленного в редакторе Microsoft Word 2000 (в формате DOC), в формат электронной книги- LIT. Такое преобразование осуществляется с помощью специального добавочного модуля к Microsoft Word 2000 (Read in Microsoft Reader add-in). Кстати, конвертация не прямая - Microsoft Reader не "понимает" разметку Microsoft Word, так что сначала документ переразмечается в формат HTML, и лишь потом преобразуется в файл типа LIT.

Весьма удобное свойство модуля Read in Microsoft Reader add-in - сохранение исходного форматирования конвертируемого документа: сохраняются стили списков, заголовков и пр. Microsoft указывает, что в форматировании могут быть ошибки, но автор с этим не сталкивался. Возможно, некорректная подборка стилей сказывается только в работе Microsoft Reader для карманных компьютеров.

Практически модуль Read in Microsoft Reader add-in не дает сбоев в работе с разными типами шрифтов. Стандартными кириллическими шрифтами, такими, как Times New Roman Cyr или Arial Cyr, программа оперирует нормально. Для гарантированной конвертации с помощью модуля Read in Microsoft Reader add-in компания Microsoft предлагает пользоваться шрифтами Berling Antiqua, Frutiger Linotype или Lucida Sans Typewriter, кириллических вариантов которых, насколько я знаю, нет.

Неприятная особенность конвертации файлов с помощью Read in Microsoft Reader add-in - невозможность снять обязательное указание кегля шрифта, которым набран текст преобразуемого документа. В результате после преобразования новый текст будет набран шрифтом ClearType точно того же кегля, что и исходный, и изменить его размер уже никак не удастся. Тем самым при отображении такого текста Microsoft Reader лишается своего главного преимущества - возможности изменять кегль шрифта в зависимости от предпочтений читающего, без потери качества при его увеличении или уменьшении.

Обтекание иллюстраций текстом не поддерживается. Модуль Read in Microsoft Reader add-in может самостоятельно уменьшить большую, не помещающуюся в размер текстовой области картинку (если она шире примерно 10 см), но желательно это сделать заранее и встраивать в eBook уже подогнанную по размеру графику. Версия Microsoft Reader для настольных и мобильных ПК корректно отображает графику в форматах JPEG, GIF, PNG и BMP; версия для карманных компьютеров - только JPEG.

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

Однако с помощью модуля Read in Microsoft Reader add-in можно готовить именно документы, а не книги со всеми свойственными последним элементами. В частности, невозможно создать и вставить в eBook оглавление книги, нет возможности заменить картинку "обложки" (используется стандартная для Microsoft Word) и картинку-логотип, появляющуюся в окне "библиотеки" при отображении списка книг.

Создав Read in Microsoft Reader add-in, компания Microsoft не ориентировала этот модуль на серьезную работу, ограничившись выпуском Microsoft Reader SDK и предлагая разработчикам на С++ встраивать технологии Microsoft Reader в свои собственные продукты. Создание инструментов для изготовления eBook Microsoft возложила на сторонние фирмы.

Первой ласточкой среди разработок стал пакет ReaderWorks Standard компании OverDrive Inc. Его оказывается вполне достаточно для качественной обработки текстов и создания электронной книги как законченного продукта, т. е. для корректной конвертации текста, встраивания надлежащего оформления и служебной информации. Рассмотрим свойства пакета подробнее. Итак, он может:

  1. Работать не с одним исходным файлом, а с несколькими, что значительно упрощает создание объемных документов, многостраничных книг и т.п. В идеаледля текстов это файлы либо в текстовом формате, либо в формате HTML. 2.
  2. Создавать проект будущего издания (файл с расширением RWP). В проект помещаются необходимые текстовые материалы и графика - картинка-логотип и обложка. Созданные проекты можно затем изменять. 3.
  3. Создавать так называемый Open eBook package file (с расширением OPF) - файл, содержащий служебную информацию, которую можно использовать при подготовке новой публикации и которая необходима для каталогизации электронных книг (так же, как это делают с обычными печатными изданиями в библиотеках и книжной торговле). Корректная и полная работа над публикацией требует обязательного создания OPF-файла! 4.
  4. Создавать такой необходимый для каждой книги раздел, как "Содержание".

Недостатки ReaderWorks Standard, как это часто бывает у инструментальных средств, связаны с недостатками систем, для которых создаются новые продукты. Так, ReaderWorks Standard, вслед за Microsoft Reader, не понимает системных кириллических шрифтов. Из-за этого при подготовке публикаций приходится отказаться от исходных файлов в текстовом формате и использовать только файлы в формате HTML (рис. 9). В этом, впрочем, есть одно неоспоримое преимущество - возможность заменять шрифт, указывая на подходящий шрифт, скажем, с помощью CSS. Таким образом можно подобрать шрифт, который ReaderWorks Standard при конвертации шрифтов в ClearType поймет и обработает корректно. В общем случае это Georgia - один из шрифтов, поставляемых вместе с Microsoft Word последних версий.

Fig.9 Рис. 9. Окно ReaderWorks Standard с исходными HTML-файлами.

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

Нельзя не отметить нацеленность такого, казалось бы, внешне простого инструмента, как ReaderWorks Standard, на профессиональную работу, результатом которой должна быть абсолютно законченная публикация, оснащенная справочным аппаратом, необходимым для учета в каталогах библиотек и в книжной торговле. В качестве такого аппарата выступает дополнительная информация, включенная в так называемый набор метаданных (metadata). Принятый в настоящее время набор данных предложен в рамках инициативы Dublin Core Metadata Set (DC) и включает в себя 15 полей, в некоторых случаях имеющих и подполя. Детальное описание полей и подполей останется за рамками данной публикации, однако основные составляющие набора метаданных необходимо упомянуть. Стандартными на сегодняшний день считаются следующие поля: Author, Contributor, Coverage, Date, Description, Format, Identifier, Language, Relation, Rights, Source, Subject, Title, Type. Ниже мы рассмотрим значения некоторых полей.

Author

Название поля говорит само за себя - в нем указывается имя автора. Имеется возможность пояснить, в чем именно заключалось авторство, причем выбор очень широк - от тривиального "Автор" до "Переводчик", "Редактор", "Иллюстратор", "Книжный продюсер", "Дизайнер" и т. д. Таким образом можно создавать список лиц, работавших над данным произведением, с указанием их роли в общем труде, примерно так, как это делается в титрах к кинофильмам. Кроме того, можно указать порядок расположения имени и фамилии, так же, как это делается в библиотечных каталогах (это, собственно, для них и нужно). Например, если в качестве автора указан Денис Давыдов, то подполе [file-as] по умолчанию будет заполнено как "Давыдов, Денис". В качестве автора не обязательно указывать конкретных лиц - "Группа товарищей" тоже подходит. Заполнение этого поля обязательно.

Contributor

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

Coverage

Тематическое указание для каталогов. Для записок Дениса Давыдова подойдет, например, "Отечественная война 1812 года".

Date

Дата публикации в формате ГГГГ-ММ-ДД. Обязательно полное, в четыре знака, указание года. Указания месяца и числа опциональны.

Description

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

Format

Список форматов электронных публикаций учитываемых сейчас Dublin Core невелик - текст или HTML.

Identifier

Универсальный идентификатор издания - ISBN или ББК. Если издание не имеет универсального идентификатора, то можно указать любую другую идентифицирующую его информацию, например, URL Web-сайта издательства.

Relation

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

Rights

Указание на правообладателя и его права: "Права охраняются законом", "Распространяется свободно" и т.п.

Заключение

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

Ссылки

http://www.microsoft.com/reader
Главная страница Microsoft Reader.
http://www.microsoft.com/reader/publishers/default.htm
Страница на сайте Microsoft, посвященная подготовке публикаций в стандарте eBook.
http://www.microsoft.com/reader/download/default.htm
Страница, откуда можно скачать Microsoft Reader 1.5.
http://www.overdrive.com/readerworks
Сайт компании OverDrive, создавшей ReaderWorks Standard - наиболее эффективный на данный момент инструмент создания eBook.
http://www.ebook-gemstar.com
Сайт, посвященный аппаратным устройствам, специально предназначенным для чтения eBook.
http://www.openebook.org
Сайт консорциума Open eBook Forum (OeBF), занимающегося разработкой спецификаций на электронные книги, а также целым рядом проблем, сопутствующих их продвижению на рынке, в том числе и связанных с авторскими правами.
http://www.rsl.ru/dc
Русский сайт рабочей группы Dublin Core Metadata Set (DC) - инициативы, направленной на создание и распространение специальной разметки электронных изданий, призванной приблизить служебную информацию в электронных публикациях к стандартам, применяемым в книгоиздании.