Перейти к содержанию
    

Сжать битовое представление больших текстовых символов

17 минут назад, AlexandrY сказал:

Вот такой символ 

Так что не ведитесь на RLE и им подобные. 

Спасибо за программу рисования шрифта! Помогает.
А шрифт у меня не такой вычурный будет.
Само сжатие пока под вопросом. Где про sixpack алгоритм почитать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, ViKo said:

Спасибо за программу рисования шрифта! Помогает.
А шрифт у меня не такой вычурный будет.
Само сжатие пока под вопросом. Где про sixpack алгоритм почитать?

https://github.com/Grumbel/rfactortools/blob/master/other/quickbms/src/compression/sixpack.c

В массиве copybits 6-й элемент можно убрать и оставить размер массива 5. 
Это не ухудшит сжатия, но сильно сэкономит память.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то программа от Микроэлектроники ничего не сохраняет. Она бесплатная? Жму сохранить, спрашивает, куда, что... Выполняет. А файлов нет. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, AlexandrY сказал:

pkzip сожмет в два раза с 288 байт до 135. 
И маленький скромный алгоритм sixpack сожмет до 139  

Но с pkzip и прочими подобными архиваторами теряется смысл сжатия, потому что с ними вряд ли получится хранить символ сжатым и разжимать только при отображении. Придётся разворачивать шрифт в ОЗУ, а это уже не экономия, а наоборот. Хотя если ОЗУ много, а ПЗУ мало, тогда нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Lagman сказал:

Предлагаю использовать архиватор Дениса Попова, кто помнит тот поймет. :-)

Ток не Попова, а Бабушкина:biggrin:

Но этот архиватор работает только под болдженосом:biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 5/15/2020 at 10:28 AM, ViKo said:

Какой алгоритм сжатия символов в шрифте здесь можно применить, попроще?

Вариантов на самом деле много, но если Вы возьмете за основу что-то типа LZ4, то сможете чуть ли не со скоростью обычного копирования разжимать символы прямо на лету.

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

И вообще, дайте Ваш текущий набор символов, я хочу поглядеть на него.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Набора еще нет. Цифры, размер 48 х 30 (+ слева и справа по пустому столбцу, итого 32). Толщина вертикальных линий 6 пикс, горизонтальных 4. 

Редактор растрового шрифта посоветуйте. Кодировать не надо, только внешний вид прикинуть. 

14 часов назад, Arlleex сказал:

Ток не Попова, а Бабушкина:biggrin:

Но этот архиватор работает только под болдженосом:biggrin:

О чём идёт речь? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

53 минуты назад, ViKo сказал:

Редактор растрового шрифта посоветуйте.

Вот что у меня занычено. Это с какого-то германского сайта, сейчас ссылку не смог найти.

FontEditor.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, ViKo сказал:

Редактор растрового шрифта посоветуйте.

А зачем? Неужто ничто из Windows\Fonts не подходит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 hours ago, Arlleex said:

Ток не Попова, а Бабушкина:biggrin:

Попов тоже предлагал, насколько я помню, у него смысл был в том, что данные в бинарном виде представляют "0" и "1" и вот все нули сжимать в 0, а все единицы в 1, только как потом все разархивировать он не уточнял :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 часов назад, ViKo сказал:

Редактор растрового шрифта

Не только отредактирует но и сформирует готовые си файлы в разных вариантах. Высылают Линк на почту, денег не просят.

https://www.riuson.com/lcd-image-converter

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

За редакторы - спасибо. Буду пробовать. 

Я тем временем теоретически ужиматель придумал. Кодирую символ в виде набора строк. Строки кодируются числами 128 - 255 (128 видов строк, думаю, хватит на любые символы, реально будет намного меньше). Числа 3 - 127 задают количество строк с одинаковым кодом (многие строки повторяются), задаются перед кодом строки, если нужно. Число 0 задаёт конец строк символа. 1 и 2 - можно в качестве количества строк использовать, но нет смысла. Может, для чего-то иного. Например, инвертировать строку (заменить нули на единицы) или обратить (рисовать задом наперёд). 

Вот как саму 32-битовую строку сжать, простого алгоритма не изобрёл. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

42 минуты назад, ViKo сказал:

Вот как саму 32-битовую строку сжать, простого алгоритма не изобрёл. 

А зачем простой алгоритм на сжатие? Вам же вроде для распаковки нужно было. А сжимать можно не спеша, сложным алгоритмом.

И чем не подошли те алгоритмы, которые я описывал? Там вроде всё просто должно было получиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...