2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: СИ. Коды Хаффмана. Дерево Хаффмана.
Сообщение11.01.2021, 04:06 
Заслуженный участник
Аватара пользователя


22/06/12
2129
/dev/zero

(Оффтоп)

oleg_2 в сообщении #1500199 писал(а):
Я Ваш код посмотрел.

Цитата мимо кассы

 Профиль  
                  
 
 Re: СИ. Коды Хаффмана. Дерево Хаффмана.
Сообщение11.01.2021, 12:19 
Аватара пользователя


26/05/12
1700
приходит весна?
oleg_2 в сообщении #1500199 писал(а):
там отдельные символы кодируются кодами Хаффмана, а где это возможно, даются ссылки на ранее встречавшиеся подстроки.
Если убрать коды Хаффмана, то это будет LZW-алгоритм или его модификации. Вещь древняя как мир, на него даже патент истёк.

oleg_2 в сообщении #1500199 писал(а):
А теперь я спокойно перестраиваю дерево, если вылезло за допустимую длину, а потом связываю листья и символы, вернее длины кодов и символы.
Если в конце концов между символами и листьями есть связь, то не понимаю, в чём вообще проблема. Если на дерево есть специальные ограничения, то и алгоритм должен быть соответствующим образом модифицирован. И тут совершенно не важно, ассоциировать ли символы и листья дерева сразу или в конце, главное, чтобы конечный результат был правильным. Я, правда, не вникал в тонкости такой реализации.

oleg_2 в сообщении #1500199 писал(а):
Если любопытно, то посмотрите мои малофункциональные, простые PNG-кодер и PNG-декодер.
Я некоторое время назад задался вопросом оптимизации PNG-файлов. Надо было для небольших спрайтов сделать максимально компактное base64 строковое представление для использования в HTML-игре. Направлений сжатия было три: 1) вырезать всю левую информацию, хранящуюся в необязательных тегах (типа когда и в какой программе создан файл); 2) урезать таблицу палитры (потому что некоторые глупые программы делают её размером 256, когда цветов в картинке не больше десятка); 3) перекодировать и пережать само содержимое изображения (без внесения искажений). Я нашёл две консольные программы и статьи, объясняющие как ими пользоваться. Первые два пункта делаются одной программой, третий — второй. Вторую программу можно заставить брутфорсом перебирать все доступные для PNG алгоритмы компрессии и выбрать тот, который даст наилучший результат. Думаю, после подобной обработки более компактную картинку уже не получится получить без дополнительного урезания количества цветов в ней. К сожалению, программы и ссылки на статьи остались на старом компьютере, который сейчас в полуразобранном состоянии.

-- 11.01.2021, 12:40 --

Нашёл название второй программы: PNGCrush. И статью, наверное. Не уверен, что это та самая.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group