E-ink — это очень сложно

10 январь, 2013 - 16:50Павел Молодчик

О неторопливом перелистывании страниц на e-ink-дисплеях принято думать, что с вычислительной точки зрения это процесс относительно простой: слой микрокапсул зажат меж электродами, создающими, в зависимости от требуемого цвета, положительное или отрицательное напряжение; что здесь может быть сложного?

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

Однако, первая же попытка присмотреться к процессу регенерации изображения на e-ink-дисплее открывает много нетривиального. Вот как выглядит этот процесс на экране "классического" ридера Sony PRS-505 в 20-кратном замедлении.

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

Пытаясь разобраться в данном противоречии, я попытался вникнуть в принципы функционирования графической системы e-ink-ридеров и в характер проблем, стоящих перед их разработчиками. Для этого я снесся со специалистами из PocketBook, а т.ж. просмотрел пару десятков патентов. Прежде, чем перейти к изложению результатов предпринятого мини-расследования, замечу, что был впечатлен осторожностью первых (они, видно, страсть как боялись проронить хоть слово, чреватое разглашением драгоценных фирменных секретов) и изобильностью вторых (запрос "electrophoretic+waveforms" выдает 19 тыс. ссылок). Все это — косвенные свидетельства большого накала страстей в области технологий управления e-ink-экранами, являющихся одним из передовых фронтов конкурентной борьбы между производителями ридеров, сражающихся за каждую милисекунду.

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

Чтобы исправить эту несуразность, рассмотрим несколько базовых вопросов, встающих перед разработчиком, оказавшимся один на один с e-ink-дисплеем.

Вопрос 1. Какое напряжение следует подводить к управляющим электродам?

Ясно, что чем больше напряжение, тем быстрее движутся в микрокапсулах окрашенные частицы, и тем быстрее пикселы меняют состояние (эта зависимость демонстрирует линейность в широких пределах). Но при этом, во-первых, по ряду причин падает точность воспроизведения полутонов (в-частности, из-за роста т. наз. остаточного напряжения, нарушающего реакции пиксела на последующие управляющие сигналы); во-вторых, растут энергозатраты (часть энергии при высоких напряжениях тратится на разогрев капсул); а в-третьих (и в-главных), высокие напряжения сокращают ресурс дисплея: букет запускаемых ими электрохимических дегенеративных процессов приводит к прилипанию частиц с противоположными зарядами друг к другу и/или их оседанию на внутренних поверхностях капсул, в результате чего капсулы перестают реагировать на управляющие сигналы. Повсеместно используемые в практике e-ink-ридеростроения напряжения в +15В и -15В являют собой компромисс, удерживающий характеристики дисплея в пределах приемлемости.

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

Вопрос 2. Сколько энергии должен получить e-ink-пиксел для того, чтобы цвет его изменился с G1 на G2?

Это легко установить с помощью фотометра. Если речь идет о 16-цветном монохромном дисплее, можно провести 256 экспериментов, составить таблицу E размером 16х16, и сохранить ее в ПЗУ. Вернее, 16х16х51, если речь идет о 16-цветном дисплее, рассчитанном на эксплуатацию в типичном для e-ink-ридеров температурном диапазоне от 0 до 50о (вязкость жидкости существенно зависит от ее температуры, для учета которой ридеры приходится оснащать бортовыми термометрами).

Стремление к бескомпромиссной точности приводит нас к формуле E[G1,G2,t]+d, где d — поправка, вносимая текущим остаточным напряжением пиксела, которое, в свою очередь, зависит от энергии, полученной им при предыдущем обновлении страницы, и миновавшего с тех пор времени.

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

Предположим, мы нашли способ выполнять каждое перекрашивание пиксела с погрешностью в одну десятую цветовой градации. Увы, даже этот впечатляющий показатель — не панацея, ибо по мере перевертывания страниц погрешность нарастает в арифметической прогрессии: после второй итерации отклонение составит уже +/-0.2, а после 80-й итерации пикселы 16-цветного дисплея совершенно выйдут из под контроля, так что на 81-й странице будет преобладать шум. Впрочем, даже вторая страница может вызвать недовольство читателя, ибо e-ink-пикселы часто отклоняются от целевых значений не случайным образом, а группами, — в зависимости от истории своих предшествующих состояний. Черные и белые пикселы, приводимые, например, к цвету 8, могут получить, соответственно, значения ~8.1 и ~7.9, что сделает различимыми контрастные элементы, присутствовавшие на предыдущей странице.

Для решения проблемы арифметического нарастания шума есть два пути:

1. Дополнение e-ink-дисплея системой обратной связи, позволяющей регистрировать текущий цвет пикселов и дозировать управляющую энергию в реальном времени по мере надобности. Авторы ряда патентов ведут речь о фотодатчиках и лампах подсветки, расположенных с изнаночной (негативной) стороны дисплея. Такой дисплей имел бы отличное быстродействие, но не думаю, что в мире был построен хотя бы один действующий его образец, — потому и пишу об этой неоправданно сложной конструкции в сослагательном наклонении. Патенты, описывающие использование камер, обозревающих фронтальную часть дисплея, мне не встречалсь, но они, судя по их общей многочисленности, должны существовать. Мне эта идея импонирует: с помощью камер можно реализовать дополнительные функции вроде слежения за пальцами пользователя, что позволит ридерам с сенсорными дисплеями отличать указательный палец от среднего и отследживать жесты, не сопровождающиеся касаниями, а т.ж. режим нивелирования неравномерностей яркости, обусловленных неравномерностью освещения дисплея. Представьте, что ваш сосед по библиотечному столу — неприятный тип, шуршащий бумагой и явно считающий общеизвестные преимущества настоящих чернил перед электронными в плане контрастности и разрешения поводом для того, чтобы коситься на вас с самодовольно-сочувственным видом. Но вот на столешницу наползают солнечные зайчики, и он принимается нервничать, морщиться, ищет, куда бы пересесть и чем бы от зайчиков отгородиться: читать неравномерно освещенный лист неудобно и наверняка вредно для глаз. В то время как ваш ридер, оснащенный камерами обратной связи, автоматически затеняет оказавшиеся на солнце пикселы, и вы продолжаете чтение, к вящему утверждению очередной победу технического прогресса храня безмятежное спокойствие.

2. Периодическая подача инициализирующего (или "обнуляющего") сигнала, — т.е., такого, чья энергия превосходит значение E[16,1]+0,1. Все пикселы, подвергнувшиеся его воздействию, становятся одинаково черными (или одинаково белыми, в зависимости от полярности) по тем же причинам, по каким попытка отправить лифт 16-этажного дома на 18-й, приводит к тому, что кабина оказывается в точности на 16-м. Именно этот путь избран всеми производителями ридеров.

Если вы не вполне осознаете проблему роста погрешности при управлении e-ink-пикселами, вам стоит взглянуть на нее через призму вышеприведенной лифтовой метафоры (в противном случае пропустите этот абзац). Предположим, что некие лифтостроители решили сэкономить на датчиках положения кабины. Разработчики, получившие заказ на контроллер для такого лифта, исследовали скорость движения кабины, составляющую ~1 пролет в секунду, и выяснили, что время, потребное для подачи кабины с этажа Эi на этаж Эj, составляет |i-j|+/-0.05 сек. Отмеряя этот интервал с помощью встроенного таймера, контроллер сможет гарантировать точность подачи в +/-0.05 пролета. Эта точность — на грани приемлемости: буде лифт, поданный с 6+/-0.05-го этажа окажется на 7.1-м, мать с коляской не сможет войти в кабину. Для устранения неопределенности стартового положения лифта его придется при каждом вызове гонять на первый или последний этажи, являющиеся исключительными в том смысле, что их (и только их) лифт может достичь с абсолютной точностью. Подайте на клеммы мотора положительное или отрицательное напряжение в течение 16.05 секунд или более, — и погрешность обнулится. Этот подход решает одну большую проблему (повышает точность доставки кабины), но порождает ряд проблем поменьше: пассажирам приходится подолгу ждать, платить больше денег за электроэнергию и ремонт изнашиваемых механических узлов. Стремясь сократить эти накладные расходы, разработчики могут поставить ряд экспериментов по изучению характера влияния таких факторов как вес пассажиров и размотанного отрезка троса и (он меняет скорость вращения барабана), температура (от нее зависит длина троса), влажность воздуха (от нее зависит масса бетонного противовеса), и т.п., в результате чего, возможно, удастся создать более адекватную цифровую модель, позволяющую уменьшить погрешность управления до 0.01 пролета. Легко видеть, что благодаря этому обнуление станет возможным выполнять не с каждым вызовом лифта, а каждый десятый раз. Станет возможным т.ж. использование пары кнопок вызова, окрашенных в синий и красный цвета, символизирующие, подобно пилюлям из "Матрицы" виртуальную и объективную реальность. Пассажиры, уповающие на точность предсказаний, обеспечиваемых виртуальной моделью лифта, будут вызывать лифт синими кнопками, а инвалиды на креслах-каталках, рискующие опрокинуться при въезде в неточно поданную кабину и ведущие жизнь неторопливую — красными. По нажатии на красную кнопку подача лифта будет предваряться столкновением с реальностью на ближайшем из крайних этажей. Пассажир, нажавший синюю кнопку и оказавшийся недовольным точностью подачи кабины, волен нажать на красную, и она будет подана заново с большей точностью. Аналогичным образом и e-ink-ридеры могут оснащаться красными и синими кнопками для перелистывания страниц. Судя по моему опыту, пользователи, пребывающие в угаре запойного чтения, стремятся поглощать текст в максимальном темпе и не обращают особого внимания на его вид. Они будут пользоваться преимущественно синими кнопками, прибегая к красным лишь в случаях падения качества изображения до уровня, грозящего утратой читабельности. Если же чтение предполагает вдумчивую неторопливость (как в случае чего-то вроде японских хокку или текста Ницше, вводная часть коего обращает к читателям требование вымыть руки), то естественным выбором пользователей будет красная пара кнопок.

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

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

Вопрос 3. Сколько энергии надо подвести к управляющим электродам e-ink-пиксела для того, чтобы цвет его изменился с G1 на G2?

Этот вопрос не эквивалентен предыдущему из-за перекрестных наводок (в англоязычных документах — "crosstalking"). Наводки обуславливаются распространением электрического поля за пределы пиксела (ток утекает, в частности из-за того, что управляющие электроды контактируют с электрофоретическим субстратом не напрямую, а через посредство токопроводящего ламината).

Чтобы понять, какого рода проблемы ставят наводки перед разработчиками, рассмотрим следующий упрощенный пример: пусть наш e-ink-дисплей имеет разрешение 4x4:
P1,1,P1,2,P1,3,P1,4
P2,1,P2,2,P2,3,P2,4
P3,1,P3,2,P3,3,P3,4
P4,1,P4,2,P4,3,P4,4

Пусть перекрестная наводка между пикселами, соседствующими по горизонтали и вертикали, составляет 2%, а по диагонали — 1%. Пусть установлено, что для корректного перерисовывания страницы каждый пиксел Pi,j должен получить Еi,j вольт-микроампер-милисекунд.

Для ответа на вынесенный в заголовок вопрос следует решить небольшую систему линейных уравнений:
0.02*X1,2 + 0.02*X2,1 + 0.01*X2,2 + 0.95*X1,1 = E1,1
0.02*X1,1 + 0.02*X1,3 + 0.02*X2,2 + 0.01*X2,1 + 0.01*X2,3 + 0.92*X1,2 = E1,2
0.02*X1,2 + 0.02*X1,4 + 0.02*X2,3 + 0.01*X2,2 + 0.01*X2,4 + 0.92*X1,3 = E1,3
0.02*X1,3 + 0.02*X2,4 + 0.01*X2,3 + 0.95*X1,4 = E1,4
0.02*X1,1 + 0.01*X1,2 + 0.02*X2,2 + 0.01*X3,2 + 0.02*X3,1 + 0.92*X2,1 = E2,1
0.01*X1,1 + 0.02*X1,2 + 0.01*X1,3 + 0.02*X2,1 + 0.02*X2,3 + 0.01*X3,1 + 0.02*X3,2 + 0.01*X3,3 + 0.88*X2,2 = E2,2
0.01*X1,2 + 0.02*X1,3 + 0.01*X1,4 + 0.02*X2,2 + 0.02*X2,4 + 0.01*X3,2 + 0.02*X3,3 + 0.01*X3,4 + 0.88*X2,3 = E2,3
0.02*X1,4 + 0.01*X1,3 + 0.02*X2,3 + 0.01*X3,3 + 0.02*X3,4 + 0.92*X2,4 = E2,4
0.02*X2,1 + 0.01*X2,2 + 0.02*X3,2 + 0.01*X4,2 + 0.02*X4,1 + 0.92*X3,1 = E3,1
0.01*X2,1 + 0.02*X2,2 + 0.01*X2,3 + 0.02*X3,1 + 0.02*X3,3 + 0.01*X4,1 + 0.02*X4,2 + 0.01*X4,3 + 0.88*X3,2 = E3,2
0.01*X2,2 + 0.02*X2,3 + 0.01*X2,4 + 0.02*X3,2 + 0.02*X3,4 + 0.01*X4,2 + 0.02*X4,3 + 0.01*X4,4 + 0.88*X3,3 = E3,3
0.02*X2,4 + 0.01*X2,3 + 0.02*X3,3 + 0.01*X4,3 + 0.02*X4,4 + 0.92*X3,4 = E3,4
0.02*X3,1 + 0.01*X3,2 + 0.02*X4,2 + 0.95*X4,1 = E4,1
0.02*X4,1 + 0.01*X3,1 + 0.02*X3,2 + 0.01*X3,3 + 0.02*X4,3 + 0.92*X4,2 = E4,2
0.02*X4,2 + 0.01*X3,2 + 0.02*X3,3 + 0.01*X3,4 + 0.02*X4,4 + 0.92*X4,3 = E4,3
0.02*X3,4 + 0.01*X3,3 + 0.02*X4,3 + 0.95*X4,4 = E4,4

Для e-ink-диплея с обычным разрешением (800х600) количество уравнений в системе составит 480 тысяч. К счастью, известно много эффективных методов ее решения (приемлемым приближением могут послужить результаты применения к содержимому видеобуфера фильтра sharpen), но к несчастью, не всегда точное решение для нее существует (очевидный пример неразрешимости — невозможность формирования "шашечек" из белых и черных клеток). Поэтому графический модуль ридера имеет смысл оснастить алгоритмом трансформации изображений, оптимизирующим их с учетом налагаемых последним обстоятельством ограничений.

Вопрос 4. Пусть камни преткновения устранены, а ловушки обойдены, так что под управлением бортового ПО каждый e-ink-пиксел с каждой регенерацией приобретает в точности требуемый цвет. Могут ли разработчики почить на лаврах и забыть о конкурентах, как подобает в случаях, когда качество продукта доводится до предельного и бескомпромиссного совершенства?

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

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

В способности e-ink-пикселов иметь неоднородную окраску легко убедиться, взглянув на этот ролик:


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

Вопрос 5. Похоже, несколько страниц текста нисколько не приблизили нас к пониманию причин, по которым разработчики из PocketBook сочли целесообразным прорисовывать буквы в два прохода. Как же так?

Тут дело в том, что доныне мы преимущественно ограничивались рассмотрением лишь теоретических аспектов управдения e-ink-дисплеями. А пресловутый феномен относится к практике.

Изложение приемов, получивших распространение в практике управления e-ink-дисплеями, не займет много времени, — но не из-за их тривиальности, а по той причине, что их трудно комментировать: они порождены человеко-веками эвристических и практических изысканий, а их красота и целесообразность открыты лишь тем, тем кто сам к этим изысканиям непосредственно причастен (экономайзер — остроумнейшая штука, но лишь в глазах человека, хотя бы несколько раз собравшего и разобравшего двигатель).

На практике буквы прорисовываются не в два, а N проходов (на техническом жаргоне — "субфреймов"), продолжительность каждого из которых составляет около 10 миллисекунд. Обычно N исчисляется несколькими десятками. Обладай электронные чернила быстродействием современных ЖК-дисплеев, мы при каждой регенерации изображения могли бы наблюдать фильм из N кадров. Т.о., в каждой вновь перелистнутой странице электронной книги резонно видеть результат реакции e-ink-дисплея на "демонстрацию" этого фильма, подобно тому, как картина маслом есть результат нетривиальных и растянутых во времени манипуляций с кистями и красками. Совокупность субфреймов составляет фрейм, а последовательность управляющих импульсов, посылаемых на электроды отдельного пиксела в ходе отображения фрейма, составляет вейвформу ("waveform"). Вейвформы на всевозможные случаи просчитываются заранее и сохраняются в ПЗУ ридера в виде таблицы (впрочем, в ряде патентов на ПЗУ предлагается сэкономить за счет применения различных способов генерирования вейвформ "на лету"). С точки зрения программиста вейвформа — линейный массив из N элементов, могущих принимать одно из трех значений: "w", "b" и "." (символизирующих управляющие импульсы, соответственно, в -15, +15 и 0В). По причинам, описанным в первом разделе, программному обеспечению ридера приходится следить за балансом импульсов первого и второго родов. С другой стороны желательно, чтобы в вейвформах было как можно больше импульсов третьего рода, поскольку они экономят ресурс дисплея и заряд батареи. С третьей стороны желательно, чтобы вейвформы были как можно короче: чем меньше N, тем живее ридер перелистывает страницы и вообще откликается на действия пользователя.

Вейвформы для трансформации белых пикселов в белые, белых в серые и белых в черные, используемые разработчиками из PocketBook, могут иметь такой примерно вид:

1. (W->W) ..........................
2. (W->G) .......bbbbbbbbbbbbbwwwwww
3. (W->B) ..............bbbbbbbbbbbb
          -------1234567777777531---


Цифрами я отметил часть фрейма, в ходе развертывания которой пользователь может наблюдать светлые буквы с темным окаймлением (составленным из тех пикселов, которым модуль растрирования назначил серый цвет). Чем больше цифра — тем сильнее проявленность данного явления, обусловленного, очевидно, относительным смещением активных фаз в вейвформах (2) и (3).
Восходящая часть цифровой последовательности длиннее нисходящей потому, что вначале меняются только пикселы второго класса, а в конце — яркости пикселов (2) и (3) движутся встречными курсами.
E-ink — это очень сложно.
Простых способов избавиться от этого смещения нет: передвинуть направо активную фазу в (2) невозможно, т.к. для этого ее пришлось бы сократить, пожертвовав полнотой предварительного зачернения пиксела (являющейся залогом предсказуемости финального оттенка серого). Передвинуть налево активную фазу (3) за счет дополнения правой части вейвформы "точками" тоже не получится: опыт показывает, что в ходе финальных "холостых" импульсов конечный цвет зачерняемых пикселов, граничащих с высветляемыми соседями, из-за перекрестных наводок светлеет, так что буквы теряют четкость. Впрочем, зачем же от него избавляться? Мне, например "оконтуривание" букв в стиле PocketBook импонирует. Имхо, чем раньше в ходе регенерации на странице проявляются буквы в каком бы то ни было виде, — тем лучше; и это, конечно, — не только мое мнение: авторы ряда экзотических патентов описывают вейвформы, использование которых, по их мысли, позволяет в начале регенерации отображать новую страницу в огрубленном виде, а уж затем (в то время, как пользователь приступает к чтению) — ликвидировать различные артефакты.

Вопрос 6: Каким образом производители ридеров оптимизируют вейвформы?

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

Так что краткий мой ответ таков: не знаю.

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

Начну с туманной цитаты, почерпнутой в одном амазоновском пресс-релизе: "Благодаря оптимизации вейвформ и работы контроллера новейшей модели Kindle достигнуто 20-процентное ускорение перелистывания страниц. Усовершенствование вейвформ, предпринятое наряду с внедрением новых, вручную спроектированных шрифтов и переработанной системы хинтинга, сообщает буквам небывалую четкость".

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

А вот будящее воображение описание вакансии техника в E-Ink Corporation. В момент написания этих строк оно гласило (в моем вольном и выборочном переводе):

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

Возможно, технику E-Ink предложат иметь дело с камерой, оснащенной макро- или микрообъективом, сфокусированным на участке e-ink-экрана, подключенного к ПК, работающему под управлением MATLAB. Такая экспериментальная установка позволила бы искать вейвформы, наиболее пригодные для использования с различными разновидностями экранов, применяя в качестве оптимизационного критерия меру сходства между тестовыми и отображаемыми изображениями. Возможно также, что с помощью этой установки E-Ink Corp. планирует разработать или усовершенствовать компьютерную модель e-ink-дисплея, благодаря которой эксперименты с вейв-формами можно виртуализовать, тем самым ускорив и удешевив процесс их оптимизации. Интересно, приложимы ли к решению задачи оптимизации вейвформ средства генетического программирования (или иные методы, сопряженными с массивными и легко распараллеливаемыми вычислениями)? Если так, то разработчикам из PocketBook стоило бы воспользоваться чем-то вроде BOINC для построения суперкмопьютера из ПК украинских пользователей-патриотов. Наш сайт выступил бы в качестве информационного спонсора. Победить Kindle! Чем не национальная идея?