X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Алгоритм Хаффмана
darkRoma
darkRoma
Topic Starter сообщение 5.9.2010, 16:23; Ответить: darkRoma
Сообщение #1


Добрый день, Уважаемые форумчане!

Возникла такая проблема: нужно написать квалификационную работу на тему сжатия BMP изображений без потери качества. Реализовать этот вопрос нужно в Delphi.

После некоторых размышлений, алгоритм Хаффмана показался мне самым простым для данного вопроса. Я так же нашел уже готовую реализацию на Delphi, но там используются потоки и вещи, которые мне неведомы.

Алгоритм нужно реализовать простыми методами!

Грубо говоря, имеется массив из N значений, каждое 0..255, и этот массив нужно закодировать в битовую стринговую строку. Само бинарное дерево, думаю, стоит хранить в программе (или отдельном файле), т.к. кодирование тела изображения - частный случай, и таким образом, итоговый вес полученного файла будет меньше.

Кто может взяться за исполнение этого вопроса?

Предложения и цену прошу писать здесь и в ЛС.

Сообщение отредактировал darkRoma - 5.9.2010, 16:23


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
HeavyHell
HeavyHell
сообщение 5.9.2010, 17:02; Ответить: HeavyHell
Сообщение #2


сроки какие?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
darkRoma
darkRoma
Topic Starter сообщение 5.9.2010, 17:08; Ответить: darkRoma
Сообщение #3


HeavyHell, чем быстрее, тем лучше. Собственно, вы мне сроки и озвучьте...

И еще обязательно комментировать код, то есть, чтобы я потом мог в нем разобраться, изменять и.т.п.

Сообщение отредактировал darkRoma - 5.9.2010, 17:11


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
сообщение 5.9.2010, 17:26; Ответить: webpavilion
Сообщение #4


darkRoma, советую разобраться самому от начала и до конца, потом будет еще сложнее. Run Length Encoding он же RLE проще писать чем Алгоритм Хаффмана.

ссылочка для ознакомления: http://ru.wikipedia.org/wiki/RLE


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
darkRoma
darkRoma
Topic Starter сообщение 5.9.2010, 17:35; Ответить: darkRoma
Сообщение #5


webpavilion, уже его реализовал. Убедился в том, что он абсолютно неэффективен.

Причем реализовал сначала классический, затем модифицированный.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
webpavilion
webpavilion
сообщение 5.9.2010, 18:08; Ответить: webpavilion
Сообщение #6


(darkRoma @ 5.9.2010, 17:35) *
Причем реализовал сначала классический, затем модифицированный.

для какого изображения?


--------------------
Не ведитесь, cамопис это почти всегда плохо!

Делаю сайты на Drupal 7.x
(очень дорого)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
darkRoma
darkRoma
Topic Starter сообщение 5.9.2010, 18:13; Ответить: darkRoma
Сообщение #7


webpavilion, bitmap.

Собственно, он для 99% случаев оказался неэффективным. Даже на файле, где рандомно были записаны 0..255 он только увеличивал размер.

Для идеально Ч/Б изображения, он, конечно работает хорошо, но меня такие не сильно интересуют, т.к. это лишь частный случай.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
darkRoma
darkRoma
Topic Starter сообщение 6.9.2010, 20:54; Ответить: darkRoma
Сообщение #8


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

Однако, оказалось так, что он эффективен лишь для файлов, где кол во элементов менее 80-100.

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

Кто то может глянуть код и дать пару советов? Прикрепленный файл  huffman.txt ( 2,22 килобайт ) Кол-во скачиваний: 78


Заранее благодарен.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
darkRoma
darkRoma
Topic Starter сообщение 30.9.2010, 19:20; Ответить: darkRoma
Сообщение #9


В общем, было у меня свободное время, реализовал я алгоритм хаффмана сам, но т.к. он меня не устроил, я его модифицировал и в итоге реализовал свой.

Алгоритм сжимает все BMPшники, но есть одно НО. Он работает крайне медленно.

Прошу помочь с оптимизацией кода. Цель: максимально увеличить скорость работы. С меня +.

Прикрепленный файл  Algorithm.txt ( 7,65 килобайт ) Кол-во скачиваний: 61


Сообщение отредактировал darkRoma - 30.9.2010, 19:21


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 23.4.2024, 21:24
Дизайн