реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Растеризация векторных шрифтов на ARM, Кто, что использует. И приемлемо ли?
Danis
сообщение Jul 13 2011, 07:04
Сообщение #1


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Привет коллеги по цеху!

Решил поработать с векторными шрифтами в своем проекте с TFT. Там у меня STM32F103ZET6 стоит (привожу для оценки ресурса). В настоящее время используются растровые шрифты, записанные во внешнюю NOR flash. Как Вы понимаете это большие расходы на драгоценную память, особенно при желании иметь разные размеры и заливки шрифта. Как думаете, или знаете, «покатит» ли растеризация векторных шрифтов на такой машине, возможно предложите быстрые алгоритмы растеризации, ссылки на полезные источники, приму с благодарностью. Будет полезна любая критика, давайте пообсуждаем, кто, что применяет.


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jul 13 2011, 07:44
Сообщение #2


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Danis @ Jul 13 2011, 10:04) *
Будет полезна любая критика, давайте пообсуждаем, кто, что применяет.


Вывод TrueType шрифтов на дисплей с помощью STM32
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jul 13 2011, 12:59
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Danis @ Jul 13 2011, 11:04) *
В настоящее время используются растровые шрифты, записанные во внешнюю NOR flash. Как Вы понимаете это большие расходы на драгоценную память, особенно при желании иметь разные размеры и заливки шрифта.

ИМХО, лучше компрессировать растровые, ибо быстрее и проще - 4bpp растровый шрифт утаптывается примерно в 15 раз.

Цитата(AlexandrY @ Jul 13 2011, 11:44) *

Любопытно. А какая получилась скорость вывода?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jul 13 2011, 15:18
Сообщение #4


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(aaarrr @ Jul 13 2011, 15:59) *
Любопытно. А какая получилась скорость вывода?


Скорость не замерял, но видимых на глаз задержек прорисовки заметно не было.
И как эту скорость в GUI замерить который работает по принципу прорисовки лентами из-за отсутствия полного буфера экрана?

Кстати файлы ttf шрифтов тоже не сильно большие. Например arial с русскими, английскими и спец.символами всего 19 килобайт.
Go to the top of the page
 
+Quote Post
Danis
сообщение Jul 13 2011, 19:32
Сообщение #5


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Походу тема мало знакомая для большинства, но ничего и это сделаем. Давно хотел написать свой растеризатор для векторных объектов, еще со времен освоения OpenGL. Кривые Безье тоже представляют интерес для ознакомления. Кстати как-то пробовал запускать алгоритм интерполяции-Логранжа на STM32, по 3-м и более точкам строил 2D кривую. Время расчетов меня приятно удивило. Думаю, сначала все под ПК написать, потом перенесу код на «железку».


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jul 14 2011, 05:10
Сообщение #6


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Danis @ Jul 13 2011, 22:32) *
Походу тема мало знакомая для большинства, но ничего и это сделаем. Давно хотел написать свой растеризатор для векторных объектов, еще со времен освоения OpenGL. Кривые Безье тоже представляют интерес для ознакомления. Кстати как-то пробовал запускать алгоритм интерполяции-Логранжа на STM32, по 3-м и более точкам строил 2D кривую. Время расчетов меня приятно удивило. Думаю, сначала все под ПК написать, потом перенесу код на «железку».


А, что вы еще собираетесь сделать? biggrin.gif
Конечно, доставляет неописуемое удовольствие что вы осваивали OpenGL.
Но неприятно, что вы создаете темы в виде опросов сами не имея ничего сказать.

Зачем сообщать что вы собрались изобретать велосипед?
В файле raster.c в библиотеке freetype все это уже сделано причем в целочисленной арифметике.
Посмотрев исходники могу 100% утверждать, что у вас никаких шансов это сделать с нуля или как-то сильно по другому нет.
Go to the top of the page
 
+Quote Post
Danis
сообщение Jul 14 2011, 05:47
Сообщение #7


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(AlexandrY @ Jul 14 2011, 08:10) *
А, что вы еще собираетесь сделать? biggrin.gif


Свой растеризатор, разве это не понятно?

Цитата(AlexandrY @ Jul 14 2011, 08:10) *
Но неприятно, что вы создаете темы в виде опросов сами не имея ничего сказать.

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

Цитата(AlexandrY @ Jul 14 2011, 09:10) *
Посмотрев исходники могу 100% утверждать, что у вас никаких шансов это сделать с нуля или как-то сильно по другому нет.


Поживем, увидим. На 100% утверждать..., как то наивно.

P.S. Как уже писал в первом посте – критика будет полезна. За Вашу ссылку, спасибо!


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 14 2011, 06:26
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата
Свой растеризатор, разве это не понятно?


Сколько я такого слышал за последние годы: свой DOS, Windows, C, C++. Где оно все? Хоть что-то доведено до логического конца? Продается?

Вот и вы туда же. Посмотрели бы для, начала, сколько ушло времени на доведение до ума проекта freetype. Нечем в жизни заняться?
Go to the top of the page
 
+Quote Post
Danis
сообщение Jul 14 2011, 06:35
Сообщение #9


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



.


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jul 14 2011, 06:51
Сообщение #10


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Danis @ Jul 14 2011, 08:47) *
Поживем, увидим. На 100% утверждать..., как то наивно.

P.S. Как уже писал в первом посте – критика будет полезна. За Вашу ссылку, спасибо!


Ладно не 100%. Хотя это был прогноз скорее на текущий год. biggrin.gif
Связываться с векторными шрифтами имеет смысл только потому что их создано уже.
А придумывать собственный формат не имея шрифтов эт извините..., надо сильно аргументировать.
Go to the top of the page
 
+Quote Post
Danis
сообщение Jul 14 2011, 07:46
Сообщение #11


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(AlexandrY @ Jul 14 2011, 09:51) *
А придумывать собственный формат не имея шрифтов эт извините..., надо сильно аргументировать.


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

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


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
ar__systems
сообщение Jul 17 2011, 22:30
Сообщение #12


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата(Danis @ Jul 13 2011, 03:04) *
Привет коллеги по цеху!

Решил поработать с векторными шрифтами в своем проекте с TFT. Там у меня STM32F103ZET6 стоит (привожу для оценки ресурса). В настоящее время используются растровые шрифты, записанные во внешнюю NOR flash. Как Вы понимаете это большие расходы на драгоценную память, особенно при желании иметь разные размеры и заливки шрифта. Как думаете, или знаете, «покатит» ли растеризация векторных шрифтов на такой машине, возможно предложите быстрые алгоритмы растеризации, ссылки на полезные источники, приму с благодарностью. Будет полезна любая критика, давайте пообсуждаем, кто, что применяет.

Что делаем: примитивно растеризуем на этапе компиляции в шрифты фиксированного размера, с помощью imageMagick. Затем превращаем в массив на С и линкуем к проекту.

Растеризация в run-time - извращение.

Цитата(aaarrr @ Jul 13 2011, 08:59) *
ИМХО, лучше компрессировать растровые, ибо быстрее и проще - 4bpp растровый шрифт утаптывается примерно в 15 раз.

Долго эксперементировал с bpp -- выше 3bpp визальное улучшение шрифтов практически незаметно.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Jul 18 2011, 05:59
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(ar__systems @ Jul 18 2011, 01:30) *
Растеризация в run-time - извращение.


Что-то вы больно строго. Не приходилось еще с китайскими шрифтами работать? Или когда по техническому заданию надо иметь 48 разных размеров?

Не все советы покрывают собой возможные практические случаи.
Go to the top of the page
 
+Quote Post
ar__systems
сообщение Jul 18 2011, 11:36
Сообщение #14


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата(sergeeff @ Jul 18 2011, 01:59) *
Что-то вы больно строго. Не приходилось еще с китайскими шрифтами работать? Или когда по техническому заданию надо иметь 48 разных размеров?

Не все советы покрывают собой возможные практические случаи.

Может и есть крайние случаи, для которых может пригодиться растеризация в run-time. Но их еще надо поискать sm.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 02:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01469 секунд с 7
ELECTRONIX ©2004-2016