Сейчас на форуме: tyns777, zombi-vadim (+3 невидимых)

 eXeL@B —› Программирование —› Интересуют наработки по архиватору Bee
Посл.ответ Сообщение


Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 05 марта 2008 23:42
· Личное сообщение · #1

Есть такой опенсорсный архиватор называется Bee. Тут информация по нему: h..p://compression.ru/fa/
Есть паскалевские исходники. Проект правда давно заброшен, последнее обновление 23.09.2005
Вопрос собственно вот в чём. Кто ни будь работал с исходниками и имеет ли наработки по этому архиватору ? Может быть есть реализации на асме или под VB, может dll ? Вообще кто ни будь пользовался ?
Очень впечатлило сжатие маленького фрагмента текста. К примеру скажу, что текстовый файл размером 256 байт Bee сжал до 185, в то время как даже rar сделал 217. Если пользовать lzw3 или aplib, то сжимает до 248 байт. Некоторые реализации Хоффмана отличились и увеличением файла…
Вообще в идеале нужен код упаковки и распаковки строки или участка памяти на VB с хорошей компрессией без использования сторонних dll.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 06 марта 2008 00:30
· Личное сообщение · #2

тест приложи, на котором тестил.
не забывай, что тот же рар пихает дополнительную инфу в архив, так что в нём всегда будет имя файла. чем длиннее путь - тем больше лишних буков в архиве ;)
посмотри в сторону PAQ, если тебя не очень волнует скорость

-----
EnJoy!





Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 06 марта 2008 01:34
· Личное сообщение · #3

Jupiter я учитывал путь и считал чистый блок данных... Gui версия Bee (как и Rar) выдаёт чистый размер данных без учета длинны файла. В сторону PAQ уже посмотрел, как раз хотел подправить топик... Интересно, и исходники есть. Тут h..p://cs.fit.edu/~mmahoney/compression/text.html#1323 нашел много всего. Вполне устроила версия paq8f. Старая, но код небольшой. Хотел бы глянуть p5, но исходников пока не нашёл. Единственное что смущает это Pentium MMX and higher. Ну и как бы поиметь функцию готовую что бы дать адрес буфера и прочее что нужно, а на выходе получить сжатый код. Есть какие ни будь реализации этого архиватора на дельфи или VB ?




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 06 марта 2008 02:21
· Личное сообщение · #4

ToBad пишет:
Старая, но код небольшой.


что значит старая?


ToBad пишет:
Хотел бы глянуть p5, но исходников пока не нашёл.


если речь о PAQ - то все исходники доступны.


ToBad пишет:
Единственное что смущает это Pentium MMX and higher.

учитывая год выпуска первых процессоров с MMX (1997-й год), это не должно смущать
более того - учитывая низкую производительность PAQ в целом, не вижу смысла использовать этот алго на процах, которым больше 11-ти лет. в таком случае проще определять, что поддерживает процессор - и сжимать другим алго (например aPLib).


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


видимо, разобраться в исходниках - там всё таки не так много кода


ToBad пишет:
Есть какие ни будь реализации этого архиватора на дельфи или VB ?


ну если ты хочешь реализацию PAQ на VB - то может тебе лучше другой алго подыскать?
в чём проблема использовать dll из VB ?

-----
EnJoy!





Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 06 марта 2008 03:17
· Личное сообщение · #5

Jupiter пишет:
что значит старая?


Ну paq8f датируется Feb. 28, 2006, а версия например paq8o8 от Oct. 23, 2007. Соответственно в более старых версиях код меньше. Для моих нужд подойдет и постарее.

Jupiter пишет:
в таком случае проще определять, что поддерживает процессор - и сжимать другим алго


Да, так и придётся делать.


Jupiter пишет:
ну если ты хочешь реализацию PAQ на VB - то может тебе лучше другой алго подыскать?


Почему ? Есть технология вставки ассемблерного кода в VB. Пишется код на nasm-е например, bin пихается в ресурсы, либо в массив, а затем передается управление через CallWindowProc. Можно передавать параметры... В общем работает.

Насчёт исходников, то как я понял основная часть на Си, а вставки на асме ? Может есть в виде dll или целиком на ассемблере ?




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 07 марта 2008 13:08
· Личное сообщение · #6

Jupiter пишет:
в чём проблема использовать dll из VB ?


А не знаешь где взять готовую dll с реализованным PAQ ?
Пытался я погуглить, но везде только ссылки на оригинальные исходные коды. Странно, но не смог найти ничего стороннего. Какие нибудь дельфевские компоненты, dll или какую нибудь реинкарнацию кодов на чистый асм или паскаль... Везде только Си.



Ранг: 50.2 (постоянный)
Активность: 0.010
Статус: Участник

Создано: 07 марта 2008 13:52
· Личное сообщение · #7

ToBad
сложно собрать dll из исходников?




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 07 марта 2008 14:06
· Личное сообщение · #8

censor пишет:
сложно собрать dll из исходников?


Да. Я Си не знаю. Да и наверняка кто то уже это сделал, вот и спрашиваю есть ли готовые решения...



Ранг: 162.4 (ветеран), 11thx
Активность: 0.060
Статус: Участник

Создано: 07 марта 2008 19:21
· Личное сообщение · #9

а суть в чем - нужно сжать данные или сжать максимально?
Если первое то полно LZ модиффикаций
для второго - то без теории сложно портнуть на другой язык (слишком путанно)

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




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 08 марта 2008 01:19
· Личное сообщение · #10

SWR пишет:
а суть в чем - нужно сжать данные или сжать максимально?
Если первое то полно LZ модиффикаций


Хочется сжать лучше. У меня есть модификация LZ, но сжимает она плохо. Мой пример текст 256 байт сжимает до 248... Хотя конечно слишком мелкий файл...

SWR пишет:
А в чем сложность dll в ресурсы запихать и самому её грузить


Сложность в отсутствии небольшой dll с хорошим алгоритмом типа PAQ или его клонов.


 eXeL@B —› Программирование —› Интересуют наработки по архиватору Bee
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати