Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.24;
Скачать: CL | DM;

Вниз

Архиваторы   Найти похожие ветки 

 
Cerberus ©   (2006-12-03 20:59) [0]

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

И всё. может я что-то не так понял. Просто как всё это реализовать не доходит. Если есть какой нибудь маленький листинг на pascal то выложите плз.


 
tesseract ©   (2006-12-03 21:01) [1]

http://www.compression.ru/


 
ANTPro ©   (2006-12-03 21:08) [2]

Кто-нибудь встречал порт алгоритма PPM на pascal?


 
Zeqfreed ©   (2006-12-03 21:16) [3]

Думаю, самый простой для понимания это один из семейства LZW. Можно взять deflate. Да и в реализации он попроще будет, чем хафман :)


 
Cerberus ©   (2006-12-03 21:22) [4]


> Zeqfreed ©   (03.12.06 21:16) [3]
> Думаю, самый простой для понимания это один из семейства
> LZW. Можно взять deflate. Да и в реализации он попроще будет,
>  чем хафман :)

Про хавмана нам и в институте читали сам алогритм понятен. А вот как сделат чтобы он что-то действительно сжимал а не просто одна теория. К примеру есть текст закодируем его получим ещё более длинный текст(причём ещё говорим о каком-то сжатие). А вот тонкостей "не стекстом" нам не читали.


 
MeF Dei Corvi ©   (2006-12-03 21:37) [5]


>  А вот как сделат чтобы он что-то действительно сжимал а
> не просто одна теория. К примеру есть текст закодируем его
> получим ещё более длинный текст(причём ещё говорим о каком-
> то сжатие).

Можно пример такого текста? :)


 
Zeqfreed ©   (2006-12-03 21:47) [6]

> А вот тонкостей "не стекстом" нам не читали.

Хорошо вам, нам вот вообще не будут ничего читать...


 
palva ©   (2006-12-03 21:51) [7]

http://sources.codenet.ru/download/401/Haffman.html


 
Gero ©   (2006-12-03 22:38) [8]

http://algolist.manual.ru


 
ferr ©   (2006-12-03 22:41) [9]

> Можно пример такого текста? :)

for i := 1 to 255 do
 write(Chr(i));

P.S. если хранить дерево.


 
palva ©   (2006-12-03 22:54) [10]


> А вот как сделат чтобы он что-то действительно сжимал а
> не просто одна теория.

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


 
Джо ©   (2006-12-03 23:07) [11]

> [10] palva ©   (03.12.06 22:54)

> А текст длиной один байт не может быть сжат в принципе.

"Сжать" можно совершенно что угодно. Необходимо еще соблюдение условия, чтобы "сжатое" можно было без потерь и однозначно восстановить :)


 
click   (2006-12-03 23:14) [12]


> Cerberus ©   (03.12.06 21:22) [4]
> Про хавмана нам и в институте читали сам алогритм понятен.
>  А вот как сделат чтобы он что-то действительно сжимал а
> не просто одна теория.


Почитай:
Джулиан Бакнелл "Фундаментальные алгоритмы и структуры данных в Delphi"
поможет!


 
Гарри Поттер ©   (2006-12-03 23:24) [13]

Конкурент: http://www.lapsha.ru/articles/tech/2004/01/06/150700.html  :)


 
ИА   (2006-12-03 23:32) [14]

>И всё. может я что-то не так понял. Просто как всё это реализовать не доходит. Если есть какой нибудь маленький листинг на pascal то выложите плз.

Ваш вопрос противоречит себе самому. В наши дни писать простой архиватор имеет смысл если только вы хотите разобраться (с достаточно интересными, кстати) алгоритмами сжатия. Но к чему при этом просить пример кода? Я бы кстати выбрал для первичного упражнения словарный алгоритм, как тут уже говорили, LZW


 
Vga ©   (2006-12-04 00:39) [15]

> [0] Cerberus ©   (03.12.06 20:59)

Это скорее компрессор. Для написания архиватора писать алгоритм сжатия не обязательно :) Можно использовать готовый или вообще обойтись без сжатия (например tar).


 
Alex Konshin ©   (2006-12-04 09:11) [16]

Учат обычно Хафману со статической таблицей или с таблицей, вычисляемой для блока и записываемой вместе с этим блоком. А применяют на практике как минимум алгоритмы с динамической модификацией таблицы без сохранения ее, а то и с другими наворотами. Часто алгоритм Хафмена применяется уже к результатам работы других алгоритмов сжатия(тот же LZW), так что текста там уже нет.



Страницы: 1 вся ветка

Текущий архив: 2006.12.24;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.05 c
15-1164798934
Суслик
2006-11-29 14:15
2006.12.24
Посоветуйте opensource систему project managment.


1-1163257920
gdaujk
2006-11-11 18:12
2006.12.24
Смена текста одного из контролов Open Dialog Box...


3-1160706641
VitalikS
2006-10-13 06:30
2006.12.24
Значение генератора


15-1162106521
xayam
2006-10-29 10:22
2006.12.24
Вопрос для физиков


15-1164742286
Красная майка
2006-11-28 22:31
2006.12.24
ММР $0x111ED6