PDA

Просмотр полной версии : Суперпаковщик данных BitBuster



Aprisobal
24.01.2005, 16:50
(продолжение поста, начало см. здесь)

3. а дальше ещё интереснее: паковщик данных, распаковщик которого всего 120 байт(!), и причём утверждают, что его можно довести до 89(!). Также сказано, что пакует примерно также как Hrust(правда упаковщик только для PC, но там же есть его исходники). Проверим!

Итак:
исходный файл: 6912байт - заставка HeroQuest :).
запак. hrust1.3: 4608байт
запак. bitbuster: 4580байт (!)
Но конечно есть и другие паковщики и другие файлы. Но думаю вы их сами попробуете ужать и проверить BitBuster.

Жду комментариев.

key-jee
24.01.2005, 17:52
Думаю на паковке этой заставке выиграет lc5.0 :D

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

А вообще, мне bitbuster понравился..

Aprisobal
24.01.2005, 18:57
А вообще, мне bitbuster понравился..Особенно он понравится создателям 512b интро - вот уж где с таким распаковщиком в 89b открываются широкие просторы ;) Это уже не 256 байт с hrust, а целых 423!

key-jee
24.01.2005, 19:14
Особенно он понравится создателям 512b интро - вот уж где с таким распаковщиком в 89b открываются широкие просторы ;) Это уже не 256 байт с hrust, а целых 423!Для 1r тоже неплохо.. Надо будет поюзать.. Только надо проверить ещё, с какой скоростью работает распаковщик, и работает ли он вообще :D

Spectre
26.01.2005, 18:04
Особенно он понравится создателям 512b интро - вот уж где с таким распаковщиком в 89b открываются широкие просторы ;) Это уже не 256 байт с hrust, а целых 423!

Уже полтора года существует оптимизированный распаковщик хруста длиной 212 байт. Исходник есть в составе http://ob.raww.net/files/qc_2_82.zip. Но 89 - это конечно круто. Где можно найти упаковщик? Ссылка в начале темы ведет на совсем посторонний пост.

key-jee
26.01.2005, 18:14
89 - это конечно круто. Где можно найти упаковщик? Ссылка в начале темы ведет на совсем посторонний пост.
Там в первом посте ссылка.. её и посмотри пожалуйста ;)

Spectre
26.01.2005, 18:19
Sorry, не посмотрел сразу.

Нашел я упаковщик и провел полевые испытания на случайно выбранной программе. Этой программой оказался кодовый блок QC v3.10. ;) Результаты:

17856 - оригинал

14386 - QC packer (Hrust v2.4fix + lazy evaluation, 16Кб окно)
14801 - Bitbuster v1.2

Разница впечатляющая, но в пользу нашего родного хруста. :)

Aprisobal
28.01.2005, 01:55
Ну а про то, что распаковщик можно уместисть в 89 быйт - абсолютная правда, нужно всего лишь в исходнике все макросы заменить на call..Оказалось (сразу не заметил), что BitBuster Extreme (http://www.west.co.tt/matt/speccy/apology/#the_packer) и есть распаковщик размером в 89 байт! Уже опробовал - работает.

key-jee
28.01.2005, 22:58
Провел полевые испытания на случайно выбранной программе. Этой программой оказался кодовый блок QC v3.10. ;) Результаты:

Разница впечатляющая, но в пользу нашего родного хруста. :)Я тоже провёл некоторые испытания.. Hrust тоже победил..

off: неужели qc уже 3.10?

jtn
29.01.2005, 07:57
"бесплатных пирожных не бывает" (c)

Spectre
30.01.2005, 19:43
off: неужели qc уже 3.10?
http://ob.raww.net/cgi-bin/index.cgi?page=quick :), 3.11 не за горами.

Vitamin
31.01.2005, 01:57
ктонить может полноценно протестить данный паковщик?
нужна сравнительная характеристика на файлах
-экран (тесты: средней заполненности, с текстурами, конверченный с размывкой)
-текст (тесты: маленький текст, большой, текст программы)
-код (тесты: смешанные данные, чисто код)

Aprisobal
01.02.2005, 01:42
Просьба тому, кто произведёт тесты - залить в аттач оригиналы файлов. Спасибо.

jerri
14.03.2005, 16:11
Sorry, не посмотрел сразу.

Нашел я упаковщик и провел полевые испытания на случайно выбранной программе. Этой программой оказался кодовый блок QC v3.10. ;) Результаты:

17856 - оригинал

14386 - QC packer (Hrust v2.4fix + lazy evaluation, 16Кб окно)
14801 - Bitbuster v1.2

Разница впечатляющая, но в пользу нашего родного хруста. :)

на небольших графических файлах < 7000 кб - он делает Хрум :(
спрайты короче жмет лучьше

Aprisobal
19.10.2006, 12:26
Автор оригинального SjASM Sjoerd Mastijn создал новый компрессор Pletter на основе исходных кодов Bitbuster'а - http://home.planet.nl/~realfun/pletter.html

Знахарь
01.11.2006, 18:02
Ну и как Pletter ?

NovaStorm
07.11.2006, 17:02
Сравнивал с UCL в виде депакера uclz80.
На полных скринах с хорошим заполнением и спрайтоподобными лучше всего оказался 1 метод, видимо из-за окна в 2кб и природы расположения байтов на экране. Выигрыш у плеттера был в пределах сотни байт. На русских/английских/программерских текстах лучше всего словарь около 8кб, 16 обычно слишком много, те видимо неоптимально плеттер кодирует с большим размером окна. UCL в среднем выигрывает на данных в 16к до 5-10%. На бОльших данных рвёт плеттера как тузик грелку, видимо окно во все данные и кодирование в пределах окна оптимальнее.
По коду: uclz80 около 250 байт. При некоторой доработке не использует стек, IY и альтернативные регистры. Нет CALL'ов - всё через JP, есть возможность заменить их хорошую часть на JR.
У плеттера наоборот, используются все регистры, много call'ов, а значит и стек занят. около 110 байт в зависимости от режима и ковыряния в нём...

NovaStorm
04.12.2006, 15:03
Если кому то ещё интересно, то сравнил pletter с megalz. На текстах под 16к mlz однозначно лучше, для pletter приходится подбирать параметры. На экранах mlz обычно(но бывает и наоборот) выигрывает байт 20-40. pletter на экранах почти всегда лучше в 1м режиме. Скорость mlz почти одинаковая с ucl - у меня было около 1000000 тактов на распаковку экрана, у pletter 1 - около 600000. Так что пока среди них mlz - для текстов, pletter - для графики. Для ucl на спеке нет подходящих объёмов данных, так что в пределах 16к смысла для её применения не вижу.

GM BIT
30.09.2010, 17:44
http://psndcj.blogspot.com/

VNN_KCS
05.10.2010, 14:48
SjASM, SjASM... А на родном Спеке или хоть на эмуле много людей осталось? Что забыли Аласм, Масм, Тасм? Куда народ движется? Понимаю, что к современным технологиям. Но ведь родное, Спековское забываете!

psb
05.10.2010, 15:34
VNN_KCS, жизнь коротка... на пц быстрее делать. ведь сколько не сделано! и сколько еще предстоит не сделать...

jerri
05.10.2010, 15:43
SjASM, SjASM... А на родном Спеке или хоть на эмуле много людей осталось? Что забыли Аласм, Масм, Тасм? Куда народ движется? Понимаю, что к современным технологиям. Но ведь родное, Спековское забываете!

ммм
берем среднестатистическую игру - для работы требует 128 кб
вопрос сколько памяти должно быть на той машине на которой будем писать? для удобной (!) отладки

diver
05.10.2010, 15:48
SjASM, SjASM... А на родном Спеке или хоть на эмуле много людей осталось? Что забыли Аласм, Масм, Тасм? Куда народ движется? Понимаю, что к современным технологиям. Но ведь родное, Спековское забываете!
Вобщем-то, в 80-х игры для спектрума часто делали не целиком на спектруме.

psb
05.10.2010, 17:04
сколько памяти должно быть на той машине на которой будем писать? для удобной (!) отладки
а вот существует мнение, что отладка - это лишнее, сразу надо писать без глупых ошибок;) но даже при этом остается проблема удобной сборки на реале.

jerri
05.10.2010, 17:08
Вобщем-то, в 80-х игры для спектрума часто делали не целиком на спектруме.

Да? правда правда? :)
а вот где-то перевод статьи видел - так там рекомендация была
иметь более мощную машину - и ссылки, что в крупных конторах так и было

писать на 48к машине можно - но ппц как сложно особенно если в каком нить ГЕНСЕ с кассетником

---------- Post added at 17:08 ---------- Previous post was at 17:07 ----------


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

не бывает чтобы совсем без ошибок

psb
05.10.2010, 21:25
так это же просто глупое мнение... просто встречаются самоуверенные индивиды.

Vitamin
05.10.2010, 21:40
SjASM, SjASM... А на родном Спеке или хоть на эмуле много людей осталось? Что забыли Аласм, Масм, Тасм? Куда народ движется? Понимаю, что к современным технологиям. Но ведь родное, Спековское забываете!
Выкладывание в любом из спековских ассемблеров (особенно в экзотическом) приведет только к срачу "а почему не в моем любимом %assemblername%???"


а вот существует мнение, что отладка - это лишнее, сразу надо писать без глупых ошибок но даже при этом остается проблема удобной сборки на реале.
Это в мой огород камень или просто ветер попутный подул? :-D

NovaStorm
07.10.2010, 21:01
>http://psndcj.blogspot.com/
MegaLZ лучший благодаря optimal parsing'у, но сливает в скорости из-за того, что читается слишком много битов. А кодирование больших длин Элиасом сделано имхо вообще зря. В целом для дем можно сделать пакер с небольшим, возможно динамическим окном, с чем-то отличным от унарных кодов для длин, и без частого использования битового чтения. Формат 3-9 для length-offset тут наверное даст хороший прирост в скорости.

psb
07.10.2010, 22:24
Это в мой огород камень или просто ветер попутный подул?
попутный:) но наверное это была фраза-детектор:)

goodboy
07.10.2010, 22:39
Вобщем-то, в 80-х игры для спектрума часто делали не целиком на спектруме.

вот кусок из интервью про игру JoeBladeIV
`What computer was the game developed on ?
The game was written on a PC using PDS and sent to the Spectrum via the interface port`

http://www.worldofspectrum.org/infoseekid.cgi?id=1000532

Vitamin
08.10.2010, 09:59
попутный но наверное это была фраза-детектор
Ну вспоминая наш с тобой спор на эту тему, немудрено было и "попасться":)

diver
08.10.2010, 18:36
вот кусок из интервью про игру JoeBladeIV
`What computer was the game developed on ?
The game was written on a PC using PDS and sent to the Spectrum via the interface port`

http://www.worldofspectrum.org/infoseekid.cgi?id=1000532
Ну так и я о том же. Поэтому не вижу ничего зазорного чтобы использовать эмулятор и различные PC программы для создания софта для zx.

GriV
17.10.2010, 13:21
Не очень я понял.
Для меня кто-нибудь объяснит - чем выложенный битюастер лучше чем указанный же МегаЛЗ и Храст? Судя по результатам качество сжатие нелучше, тогда в чём подвох?

GM BIT
18.10.2010, 05:18
чем выложенный битюастер лучше
Скорость распаковки

newart
18.10.2010, 07:12
Скорость распаковки
А конкретнее?
Например очень любопытно, во первых как хорошо сабж сожмет дамп AY, во вторых сколько тактов займет распаковка 14 байт.

Vitamin
18.10.2010, 08:02
Например очень любопытно, во первых как хорошо сабж сожмет дамп AY, во вторых сколько тактов займет распаковка 14 байт.
Имхо, в силу ссылочной сущности LZ-based алгоритмов, пакетная распаковка будет достаточно затрудненной. Тот же ZX50 эти 14 байт может преобразовать в 2...16 байт, в зависимости от ситации.