Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Задумал написать архиватор

Автор: Vsevolod
Дата сообщения: 09.12.2002 10:45
Подскажите, где можно почитать основные принципы.
С чего лучше начать?
Автор: Fishbone
Дата сообщения: 09.12.2002 11:38
Изучи алгоритм LZW - (Lempel-Ziv-Welsh), а так же Huffman'а.
Посмотри на формат GIF - там используется этот алгоритм.
Автор: dremon
Дата сообщения: 09.12.2002 15:18
Fishbone
LZW - это патентованный алгоритм. На его основе свой архиватор не напишешь.
Автор: amnick
Дата сообщения: 09.12.2002 20:56
Vsevolod

А какова цель? Научиться или написать архиватор, который превзойдет существующие (например, RAR)? Можно много чему научиться, изучая алгоритмы сжатия. А вот написать супер-пупер упаковщик человек, задающий вопросы типа "С чего лучше начать?", вряд ли сможет. Для этого нужно очень немало знать и иметь способности выше средних, чтобы придумать что-то оригинальное.

Вот ссылочка для начала:
http://arctest.narod.ru/ (русский, есть статьи по методам сжатия, ссылки)

Невредно знать, что существует библиотека ZLIB и архиватор BZIP2, доступные в исходниках. И много чего еще Используйте поиск, сайтов по сжатию данных довольно много. В сети есть достаточно исходников простых и довольно приличных программ сжатия.
Автор: Vsevolod
Дата сообщения: 10.12.2002 06:38
amnick
Спасибо за ссылку, я это уже читал.

Цитата:
Научиться или написать архиватор, который превзойдет существующие (например, RAR)?

Именно такова была цель.

Уже что-то расхотелось. Нет в интернете нормального описания.
Автор: UncoNNecteD
Дата сообщения: 10.12.2002 11:26
Vsevolod
Как может быть описание на то чего нет?
Автор: bo
Дата сообщения: 10.12.2002 13:12

Цитата:
Для этого нужно очень немало знать и иметь способности выше средних, чтобы придумать что-то оригинальное.

Все мало-мальски известные алгоритмы действительно разработаны людьми, имеющими научные степени. Описаний этих алгоритмов -море, особенно в англоязычном нете, зачастую в виде научных работ, стандартов и рекомендаций.
А все архиваторы представляют из себя ту или иную комбинацю этих алгоритмов.
Автор: amnick
Дата сообщения: 10.12.2002 20:05
Vsevolod

Цитата:
Нет в интернете нормального описания.

То есть как это нет? Да в Интернете полно отличных материалов по методам сжатия! Непонятна статья? Значит, надо копаться в исходниках. Вы, наверное, захотели с наскока овладеть материалом или же не представляли себе сложность задачи.
Автор: UncoNNecteD
Дата сообщения: 10.12.2002 20:08
amnick
Он хотел написать круче РАРа архиватор, а как этого сделать в инете НЕТУ
Автор: dremon
Дата сообщения: 10.12.2002 21:30

Цитата:
а как этого сделать в инете НЕТУ

На самом деле есть , в виде алгоритмов. Например фрактальные алгоритмы или метод конечных контекстов (см. архиватор ha).
Автор: Vsevolod
Дата сообщения: 11.12.2002 08:12
dremon
А не кто это ещё не реализовал?
Автор: FuzzyLogic
Дата сообщения: 11.12.2002 16:45
Vsevolod, есть множество всего такого, что ещё никто не реализовал, но в алгоритмическом виде ты конечно этого не найдешь, научных работ - море, так как приложение данных работ довольно перспективно. Но для того чтобы написать что-либо стоящее, надо как минимум обладать знаниями, чтобы понять о чем говорят те самые работы.

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

Добавлено
amnick, а в исходниках как раз копаться не стоит, надо копаться в математических методах и тогда всё будет пучком, а получать информацию из исходников имея такое количество опубликованного материала какое есть в инете просто глупо. Чтобы иметь возможность усовершенствовать надо понимать принцип работы, а тупо реализовывать расписанные алгоритмы...можно с таким же успехом взять большую советскую энциклопедию и набрать каждую строчку текста 10 раз - тот же результат (точнее его отсутствие).

Добавлено
-----
Fishbone
LZW - это патентованный алгоритм. На его основе свой архиватор не напишешь.
-----

Для "учебных целей" вполне можно, пока продавать не начнет, пиши до посинения.
Автор: leputain
Дата сообщения: 11.12.2002 19:48
вот и разубедили человека
Автор: woto
Дата сообщения: 12.12.2002 00:56
Я вообщето в методах упаковке не компетентен, но меня давно интересует такая идея. Допустим существует определенная последовательность asdfgh, что если ее взять и просто заменить на 1, тогда asdfgj на 2 и т.д. тогда же получается как минимум обходишься без каких-либо математических операций, конечно, единственное но будет словарь замены, ну и что он будет занимать 2-5CD зато как сжимать будет, такое реально?

Хотя возможно и нет =( не один я такой умный =) и это уже было бы придумано до меня, но все же, может просвятит кто?
Автор: Vsevolod
Дата сообщения: 12.12.2002 09:24
leputain
Эх, не чего добавить.
Зато как это людей задевает


Автор: dremon
Дата сообщения: 12.12.2002 14:22
Vsevolod
Возьми архиватор HA, посмотри. Он с исходными текстами, правда предварительно надо ознакомиться с теорией используемого им метода компрессии, потому что там все достаточно сложно и исходники написаны не программистом, а теоретиком. Комментариев следовательно минимум, и сам код написан плохо. Этот архиватор достаточно отличается от традиционных, используемых в популярных упаковщиках.
Автор: amnick
Дата сообщения: 12.12.2002 21:44
woto

Цитата:
Допустим существует определенная последовательность asdfgh, что если ее взять и просто заменить на 1, тогда asdfgj на 2 и т.д

...и получаем в итоге LZW или его разновидность
Автор: Pinocchio
Дата сообщения: 17.12.2002 12:37
По опыту - писал архиватор. Это планировалось перевести на процессор Z80 с 64 килобайтами памяти. Я брал для примера программу LZSS.C. После компиляции брал ассемблерный дамп. Потом три месяца опримизировал сам ассемблер и делал ассемблерные вставки в паскаль. В результате разархивация получилась без вызовов иных процедур и выполнялась очень быстро. Оптимизация по скорости - феноменальная. Однако степень сжатия абсолютно та-же. И кодирование на несколько секунд опережает ZIP. Однако это простейший SS компрессор.

Страницы: 1

Предыдущая тема: Help. Нужна программа на C++ Builder


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.