Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Сжатие файлов т.е. архивирование


Автор: Slyfox 22.11.2007, 12:47
Нужен пример, а лучше статья посвященная сжатию. Алгоритм должен хорошо сжимать предположительно в *.rar (максимально сжать как это только возможно). Необходимо чтобы архив можно было создавать-разбивать на части, а когда необходимо, - то собирать.

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

Автор: Akina 22.11.2007, 14:30
а чего надо-то? реферат пишешь, что ли?

Автор: Slyfox 22.11.2007, 14:35
Нет не пишу.
Хочу знать, уметь и уметь использовать.
Нужно хотя бы попробовать, а если не получится еще раз попробовать. smile

Автор: stab 22.11.2007, 14:48
Slyfox, держи ссылки:

http://www.7-zip.org/sdk.html
http://ru.wikipedia.org/wiki/LZMA
http://en.wikipedia.org/wiki/Lzma


Автор: marcusmae 22.11.2007, 14:58
Slyfox, RAR is a proprietary file format, то есть является собственностью разработчика (см http://en.wikipedia.org/wiki/RAR_(file_format)). Это означает, что доступ к его технологии архивирования/разархивирования ограничен. Впрочем, есть пакеты с исходным кодом, например http://peazip.sourceforge.net/, позволяющие читать rar-архивы. А очень похожий по характеристикам на rar 7zip является свободно распространяемым (GNU).

Автор: Akina 22.11.2007, 15:26
Цитата(marcusmae @  22.11.2007,  15:58 Найти цитируемый пост)
есть пакеты с исходным кодом, например PeaZip, позволяющие читать rar-архивы.

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

Автор: esperant0 22.11.2007, 15:37
Важно понять несколько простых идей

1) Среди всех архиваторов неувеличивающих размер исходника лидирует фунцкия копирования. Для многих остальных существуют исходники размер которых будет увеличен при сжатии

2) Не существует архиватора сжимающего(без потерь) любой текст.

Автор: marcusmae 22.11.2007, 15:49
Цитата(Akina @  22.11.2007,  15:26 Найти цитируемый пост)
Какой в том смысл? DLL распаковки RAR свободно распространяется, интерфейс описан разработчиком, лучше использовать ее, а не сторонние поделки.


Akina, этот раздел называется Алгоритмы. И вопрос был об алгоритме, а не о готовой закрытой сборке. Если умеете узнавать алгоритм работы по dll, научите smile


Цитата(esperant0 @  22.11.2007,  15:37 Найти цитируемый пост)
1) Среди всех архиваторов неувеличивающих размер исходника лидирует фунцкия копирования. Для многих остальных существуют исходники размер которых будет увеличен при сжатии


Согласен, например, для jpeg-файлов и пакетных инсталляторов.

Цитата(esperant0 @  22.11.2007,  15:37 Найти цитируемый пост)
 Не существует архиватора сжимающего(без потерь) любой текст.


И тут согласен, только, пожалуй, от этого утверждения пользы никакой  smile

Автор: esperant0 22.11.2007, 16:26
Цитата(marcusmae @ 22.11.2007,  15:49)
 И тут согласен, только, пожалуй, от этого утверждения пользы никакой  smile

Есть польза. Примерно каждый второй новый разрабочик архиваторов утверждает что изобрел архиватор сжимающий все. 
На форумах полно таких тем. Поэтому лучше сразу пердупердить

Автор: Akina 22.11.2007, 16:34
Цитата(Slyfox @  22.11.2007,  13:47 Найти цитируемый пост)
Алгоритм должен хорошо сжимать предположительно в *.rar 

Сжимать в .RAR умеет только алгоритм сжатия в .RAR. Каким бы идиотским это не казалось. 
Если бы речь шла об эффективном (по степени сжатия, скорости или еще чему) алгоритме сжатия какого-то (или каких-то) определенного типа файлов - был бы нормальный разговор. А так оставалось предполагать, что топикстартер ошибся разделом.

Добавлено через 2 минуты и 47 секунд
Цитата(esperant0 @  22.11.2007,  16:37 Найти цитируемый пост)
2) Не существует архиватора сжимающего(без потерь) любой текст.

Вероятно, имелось в виду - любой файл? потому что любой текст - это заведомо неравномерное распределение вероятности появления разнозначных байтов и, следовательно, потенциальная возможность сжатия такого текста. Другое дело, что накладнЫе расходы могут оказаться больше выигрыша - но на суть это не влияет.

Автор: esperant0 22.11.2007, 21:20
Цитата(Akina @ 22.11.2007,  16:34)
Цитата(Slyfox @  22.11.2007,  13:47 Найти цитируемый пост)
Алгоритм должен хорошо сжимать предположительно в *.rar 

Сжимать в .RAR умеет только алгоритм сжатия в .RAR. Каким бы идиотским это не казалось. 
Если бы речь шла об эффективном (по степени сжатия, скорости или еще чему) алгоритме сжатия какого-то (или каких-то) определенного типа файлов - был бы нормальный разговор. А так оставалось предполагать, что топикстартер ошибся разделом.

Добавлено @ 16:37
Цитата(esperant0 @  22.11.2007,  16:37 Найти цитируемый пост)
2) Не существует архиватора сжимающего(без потерь) любой текст.

Вероятно, имелось в виду - любой файл? потому что любой текст - это заведомо неравномерное распределение вероятности появления разнозначных байтов и, следовательно, потенциальная возможность сжатия такого текста. Другое дело, что накладнЫе расходы могут оказаться больше выигрыша - но на суть это не влияет.

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

Автор: Slyfox 22.11.2007, 22:22
Спасибо всем. Буду разбираться в исходниках.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)