Сейчас на форуме: asfa, bartolomeo, hgdagon (+6 невидимых)

 eXeL@B —› Программирование —› архивация кода
Посл.ответ Сообщение

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

Создано: 15 февраля 2006 14:21 · Поправил: doctor Ice
· Личное сообщение · #1

пишу вот сейчас архивацию... и помимо сжимания дупов, прогрессий и часто встречающихся клише появилась еще вот такая идея

весь код состоит в основном из клише

...
cmp xxx, xxx
jx xxxxxx
...

вот что если часто повторяющиеся клише позасовывать в таблицу и выделить основной диапазон смещений реально ведь в смещениях юзается не более 24бит а не все32.... вод собственно и идея...

если кто что знает про такую архивацию то поделитесь плиз.
может кто пробовал замутить такое и выяснил что овчинка выделки не стоит...
(неохота время тратить на попытку реализации заведомо тухлой идеи)

-----
power and the money money and the power




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

Создано: 15 февраля 2006 15:04
· Личное сообщение · #2

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



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

Создано: 15 февраля 2006 15:16
· Личное сообщение · #3

NullSession
Сначала ты писал вирусы, а тут вдруг архивация потребовалось. В вирусе не поможет.

для уменьшения размера поможет а разорхивацию мы будем делать на свитч автомате ну чем не тема для виря =)

-----
power and the money money and the power





Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 16 февраля 2006 04:49 · Поправил: DrGolova
· Личное сообщение · #4

дохтур реально достал со своими бредовыми идеями - то нелечащийся вирь с какими-то нелепыми прыжками (хочешь нелечащийся - делай оверврайтер и не парься!). Теперь сжатие по шаблонам - это вобще лол! шаблонный метод вопервых не даст сжатия, вовторых сжатия дать не может по определению, лучше освой хотябы RLE сжатие, а потом хотябы LZ, после этого будет хотябы о чем поговорить. Чувствую что щас он заявит что я ламо и предатель =)



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 16 февраля 2006 08:12
· Личное сообщение · #5

doctor Ice пишет:
может кто пробовал замутить такое и выяснил что овчинка выделки не стоит...
(неохота время тратить на попытку реализации заведомо тухлой идеи)

Прав, идея заведомо тухлая
Во первых - довольно сложно правильно реализовать, во вторых - коэффициент сжатия будет практически нулевой

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




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

Создано: 16 февраля 2006 08:43 · Поправил: doctor Ice
· Личное сообщение · #6

спасибо!
вот это я и хотел услышать =) ...я ждал именно критику а не диферамбы =)

DrGolova
похоже у вас ко мне личная неприязнь но это ведь не повод к оскорблению. вы либо пишите ник как есть либо не пишите вообще.

-----
power and the money money and the power




Ранг: 186.8 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 16 февраля 2006 13:31 · Поправил: MoonShiner
· Личное сообщение · #7

doctor Ice, у любого нормального человека рано или поздно появится неприязнь к носителю бредовых идей=) А вам неплохо бы почитать азы теории сжатия информации. А приводить очевидные контраргументы против бредовых идей просто лень... Хотя DrGolova не поленился и привел=)

ЗЫ ДифЕрамбов не дождетесь, не волнуйтесь... Скоро не будет и критики.



Ранг: 41.2 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 16 февраля 2006 14:04
· Личное сообщение · #8

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

то еще что-то
Со всем согласен только вот doctor Ice пишет:
вы либо пишите ник как есть либо не пишите вообще.

это тоже правда.




Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

Создано: 17 февраля 2006 21:55
· Личное сообщение · #9

doctor Ice пишет:
весь код состоит в основном из клише
...
cmp xxx, xxx
jx xxxxxx


Если бы ты имел ввиду оптимизацию кода перед сжатием, то думаю многие бы оценили. Только вот я сильно сомневаюсь, что указанных конструкции в любой программе будет больше 0.1%, что даст соответствующую степень сжатия в идеальном случае.

PS. Давайте не переходить на личности На то и форум, чтобы обсуждать идеи, а идеи бывают разные...

-----
Всем не угодишь





Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 18 февраля 2006 02:02
· Личное сообщение · #10

_ЛИЧНУЮ_ неприязнь вызывает только заведение отдельных топиков на каждую "бредовую" идею, причем не в разделе для офтопиков/флеймов, а в новом "программерском", да и еще кроспостинг с васма. Вполне можно завести одну тему "мои идеи", вываливать туда все отходы мозга по мере поступления, и там же получать или охаивания за бред или респекты за хорошую новаторскую идею. Или я не прав?




Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 18 февраля 2006 02:12
· Личное сообщение · #11

А чтобы не быть голословным, охАю тут данную бредовую идею

> весь код состоит в основном из клише
> ...
> cmp xxx, xxx
> jx xxxxxx

1) Таких "клише" будет далеко не большинство в коде, я бы даже сказал что их будет _очень_ мало по отношению к размеру программы, особенно если это не "hello world" и написано это не на асcемблере - современные компиляторы страются разносить как можно дальше сравнения и прыжки.
2) Классический LZ оперирует именно такими "клише", но там они называются "фраза", и ГЕНЕРИРУЮТСЯ АВТОМАТИЧЕСКИ, на основе сжимаемого контента, без привязки к контенту (в смысле код это, данные, или просто мусор)
3) Классический LZ будет а) проще написать б) быстрее работать в) лучше сжимать г) декомпрессор будет меньше

Вопросы есть? Могу немного рассказать про оптимизирующие фильтры, которые используют любые уважающие себя пакеры/архиваторы, дают они до 10% прироста сжатия, практически без оверхедов при распаковке.



Ранг: 41.9 (посетитель)
Активность: 0.020
Статус: Участник
Author of EXECryptor

Создано: 18 февраля 2006 14:16
· Личное сообщение · #12

я тут полностью согласен с головой но добавлю несколько ржавых пятикопеечных монет

4) в LZ имеет смысл копать в сторону lazy evaluation. это еще до 10% прироста сжатия. вообще по техникам оптимизации LZ есть груды литературы.

5) если мы имеем множество повторяющихся шаблонов (заранее известных), то мы опять же можем применить грамотный препроцессинг. идея очень простая - достаточно просто перегрупировать байты в куске, совпадающем с шаблоном таким образом, чтобы байты имеющие произвольное значение шли последними (первыми)..е. из ABC*DE*F мы делаем ABCDEF**

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




Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

Создано: 18 февраля 2006 22:14
· Личное сообщение · #13

DrGolova пишет:
Могу немного рассказать про оптимизирующие фильтры, которые используют любые уважающие себя пакеры/архиваторы, дают они до 10% прироста сжатия, практически без оверхедов при распаковке.

Расскажи.

Relayer пишет:
вообще по техникам оптимизации LZ есть груды литературы.

Почитаем когда-нибудь.

DrGolova пишет:
Вполне можно завести одну тему "мои идеи", вываливать туда все отходы мозга по мере поступления, и там же получать или охаивания за бред или респекты за хорошую новаторскую идею. Или я не прав?

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

-----
Всем не угодишь





Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 20 февраля 2006 03:43
· Личное сообщение · #14

>> Могу немного рассказать про оптимизирующие фильтры
> Расскажи.

Только не раньше того, как хоть один из посетителей докажет что понимает как работает LZ компрессия. Хотябы в целом. Невозможно обьяснить рыцарю что его латы это просто декорация, пока он не получит арболетный болт в печень



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

Создано: 20 февраля 2006 09:06 · Поправил: doctor Ice
· Личное сообщение · #15

кажется меня не поняли =( я не имел ввиду искать заранее подготовленные клише! я имел ввиду пройтись по коду дизасмом и искать блоки повторяющися наборов команд не обращая внимания на операнды... операнды зачастую оффсеты которые зачастую уложатся в диапазон 64к итого ворд вместо дворда....

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

-----
power and the money money and the power




Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 февраля 2006 23:28
· Личное сообщение · #16

DrGolova

Если на пальцах, то суть LZW в том, чтобы заменить повторяющиеся последовательности байт(строки) на так называемые "коды", которые изначально подразумеваются гораздо меньшими по размеру(обычно 9-15 бит).

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

Хранение динамической таблицы всех составленных строк и соответствующих "кодов" для последующей распаковки в LZW не требуется, ибо в момент распаковки они легко восстанавливаются также динамически.




Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

Создано: 20 февраля 2006 23:28
· Личное сообщение · #17

DrGolova
Я про LZ знаю, но из принципа не скажу... если никому больше это неинтересно то и бог с ним.

-----
Всем не угодишь




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

Создано: 21 февраля 2006 09:07
· Личное сообщение · #18

Bad_guy
мне интересно.

-----
power and the money money and the power





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 21 февраля 2006 09:25
· Личное сообщение · #19

По моему подробней чем на www.compression.ru/ все равно никто не расскажет...

-----
Yann Tiersen best and do not fuck




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

Создано: 21 февраля 2006 09:53
· Личное сообщение · #20

PE_Kill

спасибо друг.

-----
power and the money money and the power




Ранг: 41.9 (посетитель)
Активность: 0.020
Статус: Участник
Author of EXECryptor

Создано: 21 февраля 2006 10:11
· Личное сообщение · #21

vany
LZW !=LZ
первый работает со словарем и индексами в нем, второй работает со смешениями и словаря как такового не имеет


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


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