Автор и главный архитектор проекта FreeType рассказывает о его истории, развитии и успехах, а также делится своим мнением о методах отображения шрифтов.
I never quite understood the people who say that you should not worry about optimizing your code until very late in the project. My experience is that this attitude leads developers to choose very sophisticated and generic designs that are extremely difficult to retrofit into something efficient later, because so many layers in the code depend on them. I'm not advocating micro-optimization, simply the fact that you should be able to profile and adjust your designs incrementally during development. (сразу вспоминаю OO)
There is no clear answer as to what is best. Personally, I can't stand native TrueType hinted fonts anymore, they look too distorted to me, even if their contrast is better. My favorite Linux distribution is Ubuntu at the moment, and the first thing I do after installing it is to wipe the version of FreeType provided with it to get rid of the bytecode interpreter :o) (а я смотреть на шрифты без bytecode interpreter просто не могу - странный выбор)
Also, I still don't understand why Debian and Ubuntu keep distributing patent-infringing code in FreeType, while they keep MP3 and DVD playback out of their normal installs. I'm not even sure it's DFSG compliant... (а в fedora всё отключено - приходится freetype пересобирать)
>Also, I still don't understand why Debian and Ubuntu keep distributing patent-infringing code in FreeType, while they keep MP3 and DVD playback out of their normal installs.
> В Дебиане и Убунте BCI включён. Чтобы понять, как плохо без него, зайдите в настройки шрифтов и поставьте уровень хинтинга в "Нет".
Понятия не имею, включен BCI в убунте или нет. Но у Вас определенно проблемы с логикой (а также с воспитанием), поскольку BCI != hinting. В интервью как раз очень много говорится о том, как люди работают над улучшением алгоритмов хинтинга без использования патентованного байткода, а также по субъективному мнению David Turner'а их алгоритмы выдают лучшие результаты, чем байткод, поэтому он и отключает поддержку байткода где только можно :)
>В Дебиане и Убунте BCI включён. Чтобы понять, как плохо без него, зайдите в настройки шрифтов и поставьте уровень хинтинга в "Нет".
Раньше выкачивал freetype, раскомментировал нужные строки пересобирал, затем отключал antialiasing - качество шрифтов, за исключением некоторых артефактов, как в альтернативной ОС.
Сейчас просто подключаю репозиторий http://www.telemail.fi/mlind/ubuntu и опять же отключаю antialiasing - эффект тот же, но без лишнего гимора.
>Раньше выкачивал freetype, раскомментировал нужные строки пересобирал, затем отключал antialiasing - качество шрифтов, за исключением некоторых артефактов, как в альтернативной ОС.
врубил BCI раскомментировав строчку... попробовал вырубить через gnome-font-properties smoothing - становились шрифты корявыми...
что не так?
> Чтобы это понять достаточно сравнить шрифты до и после патча ;)
Пробовал - результат абсолютно одинаковый. Потому что Freetype там _уже пропатченный_. А вот если сделать dpkg-reconfigure fontconfig и сменить native на autohinter, сразу становится понятно, в чём разница.
>по субъективному мнению David Turner'а их алгоритмы выдают лучшие результаты, чем байткод
Это потому, что их (freetype) BCI работает хуже, чем, к примеру у M$: без сглаживания в некоторых местах (tahoma,'w',11ppm) умудряется даже некоторые точки местами поменять и соответственно там, где действительно качественно инструктированные шрифты выглядят идеально (в отфтопике) - freetype умудряется их покарёжить, что и даёт право создателям freetype говорить вышесказанное
>Это потому, что их (freetype) BCI работает хуже, чем, к примеру у M$: без сглаживания в некоторых местах (tahoma,'w',11ppm) умудряется даже некоторые точки местами поменять и соответственно там, где действительно качественно инструктированные шрифты выглядят идеально (в отфтопике) - freetype умудряется их покарёжить, что и даёт право создателям freetype говорить вышесказанное
Не могли-бы вы привести один скриншот хорошего качества, где можно посмотреть пример "идеально" выглядящего шрифта из офтопика (желательно чтобы был виден интерфейс и текст в самом приложении) , и так-же для сравнения кокой-нибудь из тех, "ужасных" шрифтов изуродованных Дэвидом Тёрнером. Спасибо.
Вполне возможно первое время она и будет несколько кусаться, но если наладят массовый выпуск, и подключится несколько крупных производителей то цена быстро придет в норму - так ведь всегда бывает. Я очень надеюсь, что не будет повторения истории, как с 200dpi моделью от Viewsonic. В любом случае увеличение dpi до значения 300 и выше - есть единственный способ довести качество изображения на дисплее до комфортного уровня, а все эти сглаживания, хинтинг и т.д. есть временные уловки из серии - "На безрыбье.."
>Also, I still don't understand why Debian and Ubuntu keep distributing patent-infringing code in FreeType, while they keep MP3 and DVD playback out of their normal installs.
Потому-что за пределами пиндосстана все же есть жизнь. :D
>My experience is that this attitude leads developers to choose very sophisticated and generic designs that are extremely difficult to retrofit into something efficient later, because so many layers in the code depend on them.
Бугага. Автор жжот? Сравнил хрен с пальцем - преждевременную оптимизацию и структуру проекта, которая в любом случае должна быть адекватной и чем раньше, тем лучше.
Dell Inspiron 9400 с матрицей 1920x1200/17" стоит сильно меньше двух тысяч, при неплохой остальной начинке. Эффективное разрешение получается 128dpi. Вот прям щас в него смотрю. У всяких мелких устройств (12"/1280x800) - тоже около того.
Так что около-200dpi-ные железки будут уже скоро, хочется надеяться. В виде 14" Full HD ноутов, и будут они дорогие, но не заоблачно.
>В любом случае увеличение dpi до значения 300 и выше - есть единственный способ довести качество изображения на дисплее до комфортного уровня, а все эти сглаживания, хинтинг и т.д. есть временные уловки из серии - "На безрыбье.."
Сглаживание, хинтинг - это интеллектуальные способы решения проблемы, а предлагаемые тобой (и не только) железячные - "в лоб". Ты хоть представляешь себе, какая должна быть пропускная посособность канала видеокарта-монитор для передачи 300dpi-изображения диагональю, к примеру, 17"? В квадрат возводить умеешь? Думаешь обновлением монитора всё и закончится? Или мозги человеку даны для каких-то других целей?
> Ты хоть представляешь себе, какая должна быть пропускная посособность канала видеокарта-монитор для передачи 300dpi-изображения диагональю, к примеру, 17"?
Ну, ээ.
17" - это ~15"x10", т.е. 4500x3000 точек, т.е. 13,5Mx24 бит на кадр, т.е. 324*60 мегабит/сек, т.е. 200 гигабит в секунду ;)
Вполне себе, в общем, достижимая скорость, особенно если видеокарту в монитор встроить.
>Сглаживание, хинтинг - это интеллектуальные способы решения проблемы, а предлагаемые тобой (и не только) железячные - "в лоб". Ты хоть представляешь себе, какая должна быть пропускная посособность канала видеокарта-монитор для передачи 300dpi-изображения диагональю, к примеру, 17"? В квадрат возводить умеешь? Думаешь обновлением монитора всё и закончится? Или мозги человеку даны для каких-то других целей?
Как гласит древняя суфийская мудрость - "Сколько обезьяна не хитрит, а жопа все равно голая". Все эти так называемые вами "интеллектуальные" способы все равно остаются уловками, и не важно где их сработали - в майкрософт ли, либо в эппл или freetype, да и результаты они дают мягко говоря довольно посредственные. А железячный способ остается единственно-возможным решением (как всегда). А, что касается пропускной способности - так я даже и углубляться в рассчеты особо не стану - возьмем к примеру Sony Vaio UX, который имеет приблизительно желаемый dpi при диагонали 4,5", и все это счастье великолепно работает на задрипанном встроенном 945GM. Востребованные вами 17" больше по-площади приблизительно в девять раз, следовательно потребуют увеличинной девятикратно пропускной способности. Такой возможностью обладают современные ширпотребные GeForce 79**, а серия 8*** превосходит ее наверное двукратно - и это уже сегодня, а пока такие матрицы станут массовыми - мощность видеокарт приумножится еще больше.
Не совсем понимаю, как это может помочь нарисовать символ, ну скажем 3х3мм требующий для нормального построения 1256 точек, на матрице, имеющей в лучшем случае физически 128 точек (на 9 квадратных мм)?
>А железячный способ _остается_ единственно-возможным решением (как всегда).
покажи мне _существующее сейчас_ решение по адекватной цене (варианты из "светлого будущего" не предлагать)
>что касается пропускной способности - так я даже и углубляться в рассчеты особо не стану
>Такой возможностью обладают современные ширпотребные GeForce 79**, а серия 8*** превосходит ее наверное двукратно - и это уже сегодня, а пока такие матрицы станут массовыми - мощность видеокарт приумножится еще больше.
8800GTS: 2048*1536*85hz*24bit = ~ 6.4Гбита, HDMI к примеру - 10,8Гбит. Выше написано было, что для 17"*300dpi потребуется 200Гбит: не кажется ли маразматичным поднимать аппаратные требования на порядок _только_ ради "тру"-отображения шрифтов? Никто не спорит, что это именно "тру", но для реализации таких мониторов/интерфейсов могут потребоваться годы + куда более изощрённые технологии и они с большой долей вероятности тоже будут запатентованы (как и большинство новационных аппаратных решений)
Начнём с того, что я не совсем понимаю, при чём тут вообще dpi и почему весь лор о них томно вздыхает, разговаривая о мониторах. Насколько я понимаю, речь нужно вести о разрешении. То-есть, 21'' монитор с разрешением, скажем, 3000х2000 сглаживания бы уже и не требовал, ибо "ступеньки" при таких мелких пикселах были бы уже не видны? Это вопрос к людям, понимающим что-то в этой теме.
>ачнём с того, что я не совсем понимаю, при чём тут вообще dpi и почему весь лор о них томно вздыхает, разговаривая о мониторах. Насколько я понимаю, речь нужно вести о разрешении. То-есть, 21'' монитор с разрешением, скажем, 3000х2000 сглаживания бы уже и не требовал, ибо "ступеньки" при таких мелких пикселах были бы уже не видны? Это вопрос к людям, понимающим что-то в этой теме
Ну, как причём dpi? Важен именно dpi, и ничего больше - не имеет значения какого размера экран, имеет значение его разрешающая способность которая на современных мониторах явно не достаточна. А "просто о разрешении" говорить нет смысла - берем два монитора с одинаковым разрешением 1024х768, один с диагональю 5", другой с 50" На каком из них изображение будет лучше? (при условии наблюдения с одинакового разумного расстояния). Поэтому говорить необходимо именно о разрешающей способности т.е. dpi. Возьмем для примера один символ размером 8pt (~3mm) под который на 20" с ~100 dpi матрице будет выделена область размером 12х12=144 точек. Попробуйте таким небольшим количеством пикселей передать наклонные линии и окружности без искажений. И возьмем матрицу 300dpi, на которой под тот-же символ уже будет отведено 1296 точек - вполне хватит, чтобы передать все закругления и наклоны без искажений и ступенек.
Вы текст по ссылке вообще читали? Там долго и с примерами объясняют, почему dpi на мониторе нет и быть не может. Детализация на мониторе передаётся пикселами.
>800GTS: 2048*1536*85hz*24bit = ~ 6.4Гбита, HDMI к примеру - 10,8Гбит. Выше написано было, что для 17"*300dpi потребуется 200Гбит...
Ну, не 200Gbit а : (4500 х 3000 * 24 * 60) / 1024^3 = 18Gbit/sec. А реальный поток будет меньше намного. Интерфейс HDMI обеспечивает 10,2Gbit/sec 48bit. А пропускная способность видеопамяти Geforce 79** - 50Gbit, а у 8*** - 100Gbit. И все это доступно уже сегодня.
>Не кажется ли маразматичным поднимать аппаратные требования на порядок _только_ ради "тру"-отображения шрифтов?
Нет, не кажется. Во-первых ничего сверх-естественного делать не приходится - практически все необходимое уже существует. А во-вторых - "тру-отображение-шрифтов" - является первостепенной задачей, т.к. прочтение и написание различных текстов - является основным занятием любого пользователя. И я думаю, что оправданным будут любые затраты, которые позволят довести качество отображения шрифтов хотя-бы до пресловутого порога в 300 dpi. Никому-же не кажется маразматичным, что компания майкрософт подняла аппаратные требования на порядок ради свистелок, и не дав практически ничего нового и полезного. А тут такое дело, как шрифты... Наконец-то можно будет использовать serif по-назначению.
>Вы текст по ссылке вообще читали? Там долго и с примерами объясняют, почему dpi на мониторе нет и быть не может. Детализация на мониторе передаётся пикселами.
Ну, мало-ли что-где написано... Многие любят заниматься словоблудием, но сути дела это совершенно не меняет. Хотите называйте : dot, drop, point, pixel, зерно - как угодно, в любом случае речь идет о наименьшей единице из которой составлено изображение. И смысл очень простой - чем из большего количества этих самых единиц составлено изображение - тем оно четче, плавнее и детализированнее выглядит, а на чем оно там - на бумаге, фотопленке, ткани или мониторе - без разницы. А еще если этих атомов будет недостаточно, как в случае с мониторами - мы получим ужасные шрифты с "лесенкой", костыли в виде суб-пикселей, хинтингов и прочих, в принципе никому не нужных патентованных ухищрений.
>Во-первых ничего сверх-естественного делать не приходится - практически все необходимое уже существует...
...но ничего не делается, а ведь всё так просто
>И я думаю, что оправданным будут любые затраты, которые позволят довести качество отображения шрифтов хотя-бы до пресловутого порога в 300 dpi.
любые - это очень громко сказано, где и когда это можно будет купить за разумные деньги?
>Никому-же не кажется маразматичным, что компания майкрософт подняла аппаратные требования на порядок ради свистелок, и не дав практически ничего нового и полезного
кажется, очень многим
>костыли в виде суб-пикселей, хинтингов и прочих, в принципе никому не нужных патентованных ухищрений.
будь уверен: в том чудо-мониторе их будет на порядок больше