Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Рендеринг китайских иероглифов

Автор Alone Coder, мая 22, 2015, 15:31

0 Пользователи и 1 гость просматривают эту тему.

Alone Coder

Как я понял, тексты на пиньине среди китайцев спросом не пользуются.

Какие есть решения для рендеринга китайских иероглифов в растр (допустим, 16x16 пикселей, 1 бит на пиксель) при ограниченном количестве памяти (допустим, 64 килобайта) и ограниченной скорости процессора?
Вопрос делится на несколько:
1. Какой набор иероглифов полностью достаточен для написания в принципе произвольных текстов?
2. Что делать с остальными иероглифами? Как принято поступать в таких случаях?
3. Реально ли сэкономить за счёт разделения иероглифов на элементы?
4. Реально ли сэкономить за счёт более мелких рисунков? (Мельче 12x12 не видел.)


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

Imp

Цитата: Alone Coder от мая 22, 2015, 15:31
Как я понял, тексты на пиньине среди китайцев спросом не пользуются.

Какие есть решения для рендеринга китайских иероглифов в растр (допустим, 16x16 пикселей, 1 бит на пиксель) при ограниченном количестве памяти (допустим, 64 килобайта) и ограниченной скорости процессора?
Вопрос делится на несколько:
1. Какой набор иероглифов полностью достаточен для написания в принципе произвольных текстов?
2. Что делать с остальными иероглифами? Как принято поступать в таких случаях?
3. Реально ли сэкономить за счёт разделения иероглифов на элементы?
4. Реально ли сэкономить за счёт более мелких рисунков? (Мельче 12x12 не видел.)


Уточню: кодировка текста может быть произвольной, как удобнее для экономии памяти.
нужно примерно 5000 знаков для покрытия подавляющего большинства современных текстов на китайском, в большинстве используемых сейчас кодировок знаков даже несколько больше, от 6 до 7 с половиной тысяч (в кодировке для упрощённых и традиционных знаков соответственно).

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

Я не знаю, что такое растр и вообще не уверен, что вы именно это хотели услышать  :)
海賊王に俺はなる

Hellerick

Раньше иногда практиковалось разбиение иероглифов пополам, и кодирование каждой половины, например в виде ячейке 8x16, отдельно. Так экономилась куча позиций. Но это далеко не панацея.

Alone Coder

Цитата: Imp от мая 22, 2015, 17:47
нужно примерно 5000 знаков для покрытия подавляющего большинства современных текстов на китайском, в большинстве используемых сейчас кодировок знаков даже несколько больше, от 6 до 7 с половиной тысяч (в кодировке для упрощённых и традиционных знаков соответственно).
А как найти эти списки?

5000 глифов 16x16 - это уже 160K графики...

Python

Порядок кодовых позиций иероглифов в юникоде — что он собой символизирует? Допустим, латинские буквы основного набора идут в алфавитном порядке (отдельными блоками для верхнего и нижнего регистра), то же касается букв русской кириллицы, греческого и пр.; цифры идут в порядке возрастания; символы катаканы и хираганы упорядочены по согласной и гласной; символы согласных в деванагари сгруппированы по фонетическим признакам. Какую информацию об иероглифе можно получить, зная лишь его код?
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Toman

Цитата: Alone Coder от мая 22, 2015, 20:20
5000 глифов 16x16 - это уже 160K графики...
Интересно, насколько оно сжимается... А сырой векторный вид при таком разрешении будет ещё жирнее растра, увы (примерно раза в полтора, наверное).
Во́зле до́ма хо́лм с куля́ми - вы́йду на́ холм, ку́ль поставлю.
В славном городе Miami тётки мерялись ногтями, тик иң озын завсегда у Фиделя борода!

Joris

Цитата: Python от мая 22, 2015, 21:01
Порядок кодовых позиций иероглифов в юникоде — что он собой символизирует?
По 214 ключам (у них у каждого есть порядковые номера), а в каждом ключе по количеству черт по возрастанию
yóó' aninááh


Alone Coder

Самые-самые частые иероглифы тут http://www.commonchinesecharacters.com/Lists/MostCommon2500ChineseCharacters
сильно отличаются от самых-самых частых тут: http://www.routledge.com/books/details/9780415455862/
Это очень странно.

Пока вырисовывается такой вариант: 2500 иероглифов иметь в шрифте (98% текста), остальные 2% текста картинками. При этом будет 80K графики и в среднем 2.6 байта на символ. Пока ещё не влезает в 64К.

Для сравнения, в 64K влезет текст из 2000 иероглифов, если весь текст хранить картинкой. Это тоже слишком мало.

Цитата: Toman от мая 22, 2015, 22:11
Интересно, насколько оно сжимается...
Надо ещё и разжимать на лету...

Цитата: Hellerick от мая 22, 2015, 18:27
Раньше иногда практиковалось разбиение иероглифов пополам, и кодирование каждой половины, например в виде ячейке 8x16, отдельно. Так экономилась куча позиций. Но это далеко не панацея.
Интересно, насколько помогает разбиение символов на левую и правую половины? Может, надо разбивать не прямо посередине, а одна часть перекрывает другую?

Hellerick

Вы сейчас пытаетесь вывести ZX Spectrum на китайский рынок?

Imp

Цитата: Alone Coder от мая 23, 2015, 09:36
Пока вырисовывается такой вариант: 2500 иероглифов иметь в шрифте (98% текста), остальные 2% текста картинками.
я бы сильно рекомендовал как минимум 3500 знаков в шрифте
海賊王に俺はなる

Bhudh

Цитата: Alone Coder от мая 23, 2015, 09:36
Интересно, насколько помогает разбиение символов на левую и правую половины? Может, надо разбивать не прямо посередине, а одна часть перекрывает другую?
Если есть возможность, можно вообще сделать отдельные элементы и соединять их в иероглиф. Прямо по видам разбиения: .
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Hellerick

Ну да, всё уже придумано до нас. По-хорошему, надо максимально полно Cangjie воспроизводить.

Тайльнемер

Цитата: Bhudh от мая 23, 2015, 12:23
Если есть возможность, можно вообще сделать отдельные элементы и соединять их в иероглиф. Прямо по видам разбиения: .
А эти вот разбиения применяются рекурсивно или однократно к элементарным символам?
И сколько всего элементарных символов?

Hellerick

Цитата: https://en.wiktionary.org/wiki/鬱鬱 (radical 192 鬯+19, 29 strokes, cangjie input 木木月山竹 (DDBUH), four-corner 44722, composition ⿳⿲木缶木冖⿰鬯彡)

Тайльнемер

А, то есть, рекурсивно.
А вот эта жуть «鬯» — это элементарный символ? Его нельзя разложить?

Imp

Цитата: Тайльнемер от июля 15, 2015, 09:52
А, то есть, рекурсивно.
А вот эта жуть «鬯» — это элементарный символ? Его нельзя разложить?
можно, как минимум на два, по середине, но можно даже на четыре и даже на пять, при желании
海賊王に俺はなる

Imp

Лучше объясните, что значит в данном случае рекурсивно, а то вот из этого мало что понятно:
Цитата: Тайльнемер от июля 15, 2015, 08:27
А эти вот разбиения применяются рекурсивно или однократно к элементарным символам?
海賊王に俺はなる

Тайльнемер

Цитата: Imp от июля 15, 2015, 10:13
Лучше объясните, что значит в данном случае рекурсивно, а то вот из этого мало что понятно:
Под «рекурсивно» я имел в виду, что элементами разбиения могут быть не только элементарные символы, но и разбиения.

Цитата: Imp от июля 15, 2015, 10:11
можно, как минимум на два, по середине, но можно даже на четыре и даже на пять, при желании
А почему тогда в примере выше его не разбили?

Hellerick

Наверное, потому что логически это законченный элемент. Дальнейшее деление возможно только по формально-графическому принципу.

Цитировать鬯 (radical 192 鬯+0, 10 strokes, cangjie input 山戈心 (UIP), four-corner 22711, composition ⿱𠚍匕)

Цитировать𠚍 (radical 17 凵+6, 8 strokes, composition ⿶凵𠂭)

Тайльнемер

То есть, есть два принципа деления: логический и формально-графический?
Для проблемы, заявленной в первом сообщении темы, думаю, как раз формально-графический подойдёт.
鬱  =  ⿳⿲木缶木冖⿰⿱⿶凵𠂭匕彡
И сколько всего элементарных символов надо для представления любого иероглифа в таком виде?
Один и тот же символ в разных позициях отличается только масштабами по осям или может отличаться ещё чем-то?

Hellerick

Однозначный ответ найти будет трудно.

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

Тайльнемер

Цитата: Hellerick от июля 15, 2015, 10:59
А уже потом надо выуживать базу данных по декомпозиции данных иероглифов.
А в базе есть и логическое деление, и графическое?

Imp

Цитата: Hellerick от июля 15, 2015, 10:59
В любом случае сначала вам нужно составить список рендеруемых иероглифов. Это не так просто: в отличие от японцев китайцы не склонны составлять ограниченные списки своих иероглифов.
и для китайского, как традиционного, так и для упрощённого, такие списки есть. Есть списки самых используемых, есть списки используемых в современной печати, с разбивкой по частотности. Это как раз не проблема
海賊王に俺はなる


Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр