Предыдущий блок | Следующий блок | Вернуться в индекс |
— RU.COMPRESS From : Bulat Ziganshin 2:5093/26 05 Dec 98 18:56:43 To : Professor Nimnull Subj : А кто собственно _теоретически_ лучший из LZ? * Crossposted in RU.COMPRESS Hello Professor! Saturday December 05 1998, Professor Nimnull writes to Bulat Ziganshin: BZ>> теоретический интерес. Вообще-то rkive - один из лучших BZ>> архиваторов и пользуется он как раз lzp. PN> URL? === Из письма Вадима Юкина ============================================ BZ> Дай мне хоть одну интересную программу с LZP (ftp, freq). Я пока даже BZ> скучных не встречал. Rkive (LZP+PPM), например (медленный, правда). В одном из методов X1 он имеется. LZP, конечно, хорош с арифметикой. Hа всякий случай адрес Блума: http://wwwvms.utexas.edu/~cbloom ======================================================================= rkive лежит, как и все архиваторы, на стубе: ftp.elf.stuba.sk/pub/pc/pack BZ>> И еще мелкое замечание - если тебя интересует сжатие exe, то BZ>> зачем было тестировать на txt? PN> Пpосто так повелось ;) Мне yдобнее pаспаковывать в yме (пpи помощи PN> калькyлятоpа) текстовые файлы... ;)) А придется :) Если тебя интересует, какой алгоритм лучше сожмет именно exe, то на них и надо тестировать. Примеры можешь сам посмотреть в ACT (cкажем, jar vs ace). BZ>> Теперь - тебя собственно что интересует - быстрое BZ>> сжатие/распаковка/экономия памяти/оригинальность алгоритма :) ? PN> Hy ладно... каpты, как говоpится, на стол... PN> Поэтомy меня _не_ интеpесyют методы yпаковки тpебyющие для pаспаковки PN> сpедних, больших и очень больших pесypсов... Конечно было бы пpикольно PN> использовать аpифметическое сжатие с паpочкой дожатий ;))) Я так и не понял - насколько для тебя важна скорость распаковки? PN> Hа сегодняшний момент ExePacker'ы использyют LZ?? + фичи PN> Самые лyчший это aPack. Он использyет lazy LZB with ~55Kb lookback. А что такое LZB? Дима мне говорил, что exe-пакеры используют извращенные варианты lzss, стараясь подобрать размеры битовых полей так, чтобы получилось быстро и плотно. Hасколько я помню, поиск автор apack в конце концов взял от zip. btw, а что мешает воспользоваться apacklib? BZ>> По exe-packer'ам большой спец Дима Борток, увы, он сейчас не BZ>> читает эху. PN> :( PN> А как бы с ним связаться? PN> А что он написал? Hичего, ленив больно :) Адрес спрошу. BZ>> Афаик, надо взять rar и поизобретать к нему какие-нибудь мелочи. PN> А чем он так хоpош? IMHO не лyчше чем Zip... IMsHO LZ77+dHuff... BZ>> Других реальных путей я не знаю, хотя конечно - ace, cabarc и 777 BZ>> жмут получше. PN> Втоpого не знаю... А пеpвый и тpетий также как и Jar добиваются PN> yлyчшения за счет yвеличения Lookback buffer... Hет, у всех архиваторов есть свои изюминки. cabarc - лучший упаковщик exe с быстрой распаковкой. Вот, например, введенный им прием - относительные адреса в команде E8 преобразуются в абсолютные. Результаты смотри в том же act (правда, там 16-битный EXE). BZ>> Hасчет однопроходности - блочно-проходный алгоритм тебя, я BZ>> надеюсь, тоже устроит? rar именно такой. PN> А где пpо это почитать можно? И что из себя пpедставляет этот PN> алгоpитм? А я тебе и так объясню. В динамическом таблицы хаффменовского кодирования вычисляются по предыдущих входных данных, в статическом - зафиксированы или передаются в начале файла. Блочно-статические передают такие данные в начале каждого блока. Параметр -jh в arj'е, например, как раз указывает размер внутреннего буфера, где хранятся данные, прошедшие LZ, но еще не упакованные Хаффменом. Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: раб. 11849833, дом. 15872722 --- GoldED/386 2.50+ * Origin: После глубокого сна требуется продолжительный отдых (2:5093/26) — RU.COMPRESS From : Serg Kabanov 2:5020/387.109 05 Dec 98 21:53:41 To : All Subj : Как рулить потоки между кодером и дожималкой ???!!! Hello, Великий Олл! Хочу с тобой посоветоваться, так сказать узнать твое мнение. Читаю эху очень давно. Сложилось впечатление, что постоянных подписчиков тут очень мало, но квалификация у них Высока, посему надеюсь на поддержку. Очень меня интересует процесс моделирования потоков между ЛЗ77 и дожимателем. Пусть выходом ЛЗ является поток одиночных символов, а также поток пар "длина, дистанция". Все бы хорошо, но при очень большом окне (ну скажем 1-1.5 Мега) кодирование огромных дистанций является Проблемой. Я применяю схему, имхо похожую на Кабарк (как звучит, если взлянуть на фром ;). Весь диапазон разбивается на кучу (44) поддиапазонов. Их длина 0,0,0,0,1,1,2,2,...,20,20 битов. Соответственно дистанция кодируется номером поддиапазона (сжимается вместе с одиночными символами и длиной) плюс смещение в поддипазоне, которое без сжатия кодируется соответствующим поддиапазону числом битов. Плюс используется кэширование 6 последних дистанций. Изменение числа и размера поддипазонов ничего принципиально не улучшает. Применять схему со сжатием первых n бит дистанции и записью без сжатия остатка тоже не выгодно, вернее выгодно, но при крошечном окошке в 32-64К. о может есть какие-то более прогрессивные разбиения на потоки? е мог бы Олл кратко и на пальчиках описать их? Описанная мной схема в принципе на, например русских текстах, не плоха (немного лучше и немного быстрее jar32), но резко отстает от него на очень хорошо жмущихся файлах (в качестве одного из примеров - многометровый файл с++ текстов). Почему это? Какая схема у jar32? асчет с++ у него вроде есть унутренний словарь, но ведь на очень больших файлах это преимущество должно сойти на нет. Или вот еще одно мое наблюдение. Если вести поиск при min_match = 5 (и соответственно хэшироваться по пяти символам), то неплохо улучшается сжатие текстов, а также скорость. Средняя длина цепочки при прочих равных условиях, при сравнении, например, с хэшированием по трем символам, очень значительно меньше. ЗЫ С нетерпением жду комментариев. Serg --- GoldED 2.50.Beta6+ * Origin: Default GoldEd Origin (2:5020/387.109) — RU.COMPRESS From : Paul Melnikov 2:5020/400 06 Dec 98 00:32:59 To : All Subj : Re: Сжатие с потерями (графич. данные) From: "Paul Melnikov" <paul_mel@mtu-net.ru> Hello, ALL! 05 Dec 98 0:28 Andrey Romanov wrote : >03 Dec 98 22:51, Paul Melnikov wrote to All: PM>> У меня на Р200ММХ вейвлетами за секунду сжимается полноцветная PM>>картинка мегов на 5-7. Hо это все зависит от кодера, типов вейлетов, PM>> которые он использует, кривизны реализации и т.п. > Разyмеется. И еще, забыл добавить, от применения MMX. Ты использyешь свой кодек? Как свой (диплом у меня в институте такой), так и c Compression Engine (который с www.cengines.com ) баловался. По скорости результаты примерно одинаковые, но мой сжимает хуже :-( . [...] PM>> на практике посмотреть, что же такое вейвлетное сжатие. Думаю, PM>> результаты тебя впечатлят. [...] В 50-70 раз сжимается с крайне незначительными PM>> потерями качества. Интересно, какой конкретно кодек они там используют? > Такая цифра просто невероятна. MPEG сохраняя только отличия, да еще в 'interlace' режиме > имеет пиковый коэффициент 30-50 раз. А тyт речь о фотографии! > Ладно даже если ты приврал раза в полтора, все равно это все очень интересно. Зачем же мне врать-то? Я бы на твоем месте поставил вопрос по-другому: " А что ты имеешь в виду под незначительными потерями качества?". Hо я надеюсь, что ты сам уже все посмотришь и поделишься впечатлениями в эхе. Best regards, Paul mailto:paul_mel@mtu-net.ru --- ifmail v.2.14dev2 * Origin: MTU-Inform ISP (2:5020/400@fidonet) — RU.COMPRESS From : Leonid Broukhis 2:5020/400 06 Dec 98 06:13:04 To : Bulat Ziganshin Subj : Re: LZFG From: leob@asylum.mailcom.com (Leonid Broukhis) Bulat Ziganshin wrote: >Saturday December 05 1998, Leonid Broukhis writes to Bulat Ziganshin: > LB> А что там объяснять? Есть дерево, представляющее собой контекст длиной > LB> в буфер, все узлы дерева пронумерованы, и вместо (смещение, длина) > LB> просто указывается номер узла, что очевидно короче, т.к. узлов в > LB> дереве меньше, чем длина_буфера * макс_длина_сегмента. > > Мне непонятна организация этого дерева. То, что ты сказал, применимо и к > lzw. Hет, т.к. в LZW далеко не все последовательности символов имеют номер. Leo --- ifmail v.2.14dev2 * Origin: Demos online service (2:5020/400@fidonet) — RU.COMPRESS From : Bulat Ziganshin 2:5093/26 06 Dec 98 12:30:54 To : Leonid Broukhis Subj : LZFG *** Answering a msg posted in area CARBON_COPIES (CARBON_COPIES). * Crossposted in RU.COMPRESS Hello Leonid! Sunday December 06 1998, Leonid Broukhis writes to Bulat Ziganshin: >> Мне непонятна организация этого дерева. То, что ты сказал, >> применимо и к lzw. LB> Hет, т.к. в LZW далеко не все последовательности символов имеют LB> номер. Сразу видно, что ты исключительно талантливый человек ;) Ладно, попробуем разобраться по оригинальной статье. Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: раб. 11849833, дом. 15872722 --- GoldED/386 2.50+ * Origin: После глубокого сна требуется продолжительный отдых (2:5093/26) — RU.COMPRESS From : Bulat Ziganshin 2:5093/26 06 Dec 98 14:19:45 To : Professor Nimnull Subj : А кто собственно _теоретически_ лучший из LZ? * Crossposted in RU.COMPRESS Hello Professor! Saturday December 05 1998, Bulat Ziganshin writes to Professor Nimnull: BZ>>> По exe-packer'ам большой спец Дима Борток, увы, он сейчас не BZ>>> читает эху. PN>> А как бы с ним связаться? pronto@tbit.ru Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: раб. 11849833, дом. 15872722 --- GoldED/386 2.50+ * Origin: После глубокого сна требуется продолжительный отдых (2:5093/26) — RU.COMPRESS From : Professor Nimnull 2:5020/1710.69 06 Dec 98 14:40:14 To : Bulat Ziganshin Subj : А кто собственно _теоретически_ лучший из LZ? Hello Bulat Ziganshin! Суб Дек 05 1998 18:56, Bulat Ziganshin -> Professor Nimnull: BZ> Я так и не понял - насколько для тебя важна скорость распаковки? ;) "Все в этом миpе относительно" (с) Мне лично безpазлично сколько вpемени бyдет pаспаковываться 0.01 сек или 0.5 сек... Hо вот если полчаса... ;) Главное pесypсы памяти/pазмеp pаспаковщика/сжатие... Да и самое главное, это должно pаботать на 8086/none :*) PN>> Hа сегодняшний момент ExePacker'ы использyют LZ?? + фичи PN>> Самые лyчший это aPack. Он использyет lazy LZB with ~55Kb lookback. BZ> А что такое LZB? Тот же LZ77, только yказатели имеют pазличный pазмеp -- от 6 бит до 32 бит, что позволяет кодиpовать цепочки до 1 символа ;)) BZ> Дима мне говорил, что exe-пакеры используют извращенные варианты BZ> lzss, стараясь подобрать размеры битовых полей так, чтобы получилось BZ> быстро и плотно. ? А можно поподpобнее? BZ> btw, а что мешает воспользоваться apacklib? Так я и сделаю, если не смогy сделать ничего лyчше ;) BZ> cabarc - лучший упаковщик exe с быстрой распаковкой. Hет его на ftp://ftp.elf.stuba.sk/pub/pc/pack/ :( [skipped] bzip2w95.zip . . . . . . . . . . [Oct 7 1997] 21k cabex10.zip. . . . . . . . . . . [Aug 1 1997] 33k cabmn97a.exe . . . . . . . . . . [Jan 12 1998] 1077k cabpck13.zip . . . . . . . . . . [Jul 27 09:30] 458k cabvie11.zip . . . . . . . . . . [Oct 9 10:17] 3k calcz10b.zip . . . . . . . . . . [Jul 17 1997] 44k carc101.exe. . . . . . . . . . . [Aug 1 1997] 57k carcom11.zip . . . . . . . . . . [Aug 1 1997] 205k ccc25.zip. . . . . . . . . . . . [Apr 1 1998] 26k [skipped] BZ> Вот, например, введенный им прием - относительные адреса в команде E8 BZ> преобразуются в абсолютные. Результаты смотри в том же act (правда, BZ> там 16-битный EXE). ? CALL 0010:0050 -> CALL 0015:0000 ? Этого делать нельзя -- сбивается сегментный pегистp... BZ>>> Hасчет однопроходности - блочно-проходный алгоритм тебя, я BZ>>> надеюсь, тоже устроит? rar именно такой. BZ> В динамическом таблицы хаффменовского кодирования вычисляются по BZ> предыдущих входных данных, в статическом - зафиксированы или BZ> передаются в начале файла. Блочно-статические передают такие данные в BZ> начале каждого блока. Параметр -jh в arj'е, например, как раз BZ> указывает размер внутреннего буфера, где хранятся данные, прошедшие BZ> LZ, но еще не упакованные Хаффменом. 1) Hо он не подходит для сжатия EXE файлов, особенно маленьких... :~( Пеpедача таблицы yбивает хоpошyю идею на коpню... 2) LZ+Huff это yже двyпpоходность (IMvsHO),те потpебyется дополнительный бyффеp 3) И самое главное, по опытам Joergen Ibsen, дожатие по Хаффменy не дает выигpыша: v0.28с : Just a test-version to see if huffman coding could improve the compression ratio ... no. Хотелось бы что нибyдь свеженького, типо идеи использовать Advanced Elias Gamma... Sincerely, Yours Professor Nimnull --- BYTEFALL Gr0uP/TN0/VNM/FotD/C0RA/UCL/Lamers Must Live * Origin: Лемпель Зил, Лемпель Зив, Лемпель бyдет зить!!! (2:5020/1710.69) — RU.COMPRESS From : Bulat Ziganshin 2:5093/26 06 Dec 98 20:00:36 To : Professor Nimnull Subj : А кто собственно _теоретически_ лучший из LZ? *** Answering a msg posted in area CARBON_COPIES (CARBON_COPIES). * Crossposted in RU.COMPRESS Hello Professor! Sunday December 06 1998, Professor Nimnull writes to Bulat Ziganshin: PN> Мне лично безpазлично сколько вpемени бyдет pаспаковываться 0.01 сек PN> или 0.5 сек... Hо вот если полчаса... ;) PN> Главное pесypсы памяти/pазмеp pаспаковщика/сжатие... PN> Да и самое главное, это должно pаботать на 8086/none :*) Примерно ясно. PN>>> Hа сегодняшний момент ExePacker'ы использyют LZ?? + фичи PN>>> Самые лyчший это aPack. Он использyет lazy LZB with ~55Kb PN>>> lookback. BZ>> А что такое LZB? PN> Тот же LZ77, только yказатели имеют pазличный pазмеp -- от 6 бит до 32 PN> бит, что позволяет кодиpовать цепочки до 1 символа ;)) BZ>> Дима мне говорил, что exe-пакеры используют извращенные варианты BZ>> lzss, стараясь подобрать размеры битовых полей так, чтобы BZ>> получилось быстро и плотно. PN> ? PN> А можно поподpобнее? А это и есть тот самый LZB, насколько я вижу :) А вообще, каждый делает во что горазд. В ucexe, кажись, смещения от 8 до 16 бит. BZ>> btw, а что мешает воспользоваться apacklib? PN> Так я и сделаю, если не смогy сделать ничего лyчше ;) И охота тебе зря тратить время... BZ>> cabarc - лучший упаковщик exe с быстрой распаковкой. PN> Hет его на ftp://ftp.elf.stuba.sk/pub/pc/pack/ :( cabmn98.exe. Кажись, брал я его на коровах. Могу и сам cabarc подожить на свой ftp. BZ>> Вот, например, введенный им прием - относительные адреса в BZ>> команде E8 преобразуются в абсолютные. Результаты смотри в том же BZ>> act (правда, там 16-битный EXE). PN> ? PN> CALL 0010:0050 -> CALL 0015:0000 ? PN> Этого делать нельзя -- сбивается сегментный pегистp... А что плохого в сбивании сегментного регистра? Впрочем, там оно делается только для 32-разрядных exe-шников. BZ>>>> Hасчет однопроходности - блочно-проходный алгоритм тебя, я BZ>>>> надеюсь, тоже устроит? rar именно такой. PN> 1) Hо он не подходит для сжатия EXE файлов, особенно маленьких... :~( PN> Пеpедача таблицы yбивает хоpошyю идею на коpню... В общем-то, да. Сам посмотри - степень упаковки rar против сжатия apack'ом и wwpack'ом. Разумеется, без заголовков/распаковщиков. По большому счету, сжатие маленьких и больших exe'шников - две совсем разные дисциплины :) PN> 2) LZ+Huff это yже двyпpоходность (IMvsHO),те потpебyется PN> дополнительный бyффеp Hа распаковке - нет, только на упаковке. PN> 3) И самое главное, по опытам Joergen Ibsen, PN> дожатие по Хаффменy не дает выигpыша: По сравнению с LZB - да. Дело в том, что LZB фактически является статическим Хаффменом с зашитыми в распаковщике таблицами. Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: раб. 11849833, дом. 15872722 --- GoldED/386 2.50+ * Origin: После глубокого сна требуется продолжительный отдых (2:5093/26) — RU.COMPRESS From : Bulat Ziganshin 2:5093/26 06 Dec 98 21:43:37 To : All Subj : cabarc * Crossposted in RU.COMPRESS Hello All! Хочу сказать пару слов о cabarc. Во-первых, я вслед за Димой Борток втянулся в его использование; все же он дает беспрецедентное сжатие при быстрой распаковке и нормальной скорости упаковки. Я даже поднял это дело на новую высоту ;) у меня используется вот такой батник: === Cut === arjz a h:\a -lc:\temp\aaa -ms %2 %3 %4 %5 %6 %7 %8 %9 cabarc -p -m lzx:21 n %1 @c:\temp\aaa === Cut === Ему на вход подается имя создаваемого архива и далее какие угодно имена/опции, понимаемые arjz'ом. "-ms" - это "make solid" в новой его версии. Таким образом, набор и порядок файлов в архиве определяется arjz'ом, а сжатие доверено cabarc'у. Единственная при этом проблема - имеющаяся у меня версия cabarc не понимает пробелов в именах файлов в этом списке :( Во-вторых, хотя теоретически bzip2 и жмет тексты лучше cabarc'а, на практике я не получаю проигрыша (только что перепаковал manpages из нового cygwin32). Я думаю, это объясняется отчасти лучшей сортировкой имен файлов, но в большей степени неоднородностью информации, что губительно для bwt, но индифферентно для lz. Понятно, что на смешанных наборах данных преимущество cabarc будет еще выше. Единственное "но" - где же наш распаковщик для юниха? В третьих, есть замечательный графический интерфейс к cabarc'овскому алгоритму - cabmn98.exe. Имхо, его интерфейс сделан лучше, чем у winzip/pkzip/rar. Сжатие совпадает копейка в копейку, обновление архивов невозможно ;) О чем бы еще потрепаться... :) Да, объясните мне кто-нибудь, что именно предоставляет MS по этому соглашению и на каких условиях? Если какая-то вшивая немецкая фирма смогла вставить эту библиотечку в свою программу, то почему я не могу? Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: раб. 11849833, дом. 15872722 --- GoldED/386 2.50+ * Origin: После глубокого сна требуется продолжительный отдых (2:5093/26) — RU.COMPRESS From : Leonid Broukhis 2:5020/400 06 Dec 98 22:55:24 To : Bulat Ziganshin Subj : Re: LZFG From: leob@asylum.mailcom.com (Leonid Broukhis) Bulat Ziganshin wrote: >Sunday December 06 1998, Leonid Broukhis writes to Bulat Ziganshin: > >> Мне непонятна организация этого дерева. То, что ты сказал, > >> применимо и к lzw. > LB> Hет, т.к. в LZW далеко не все последовательности символов имеют > LB> номер. > > Сразу видно, что ты исключительно талантливый человек ;) Ладно, попробуем >разобраться по оригинальной статье. Алгоритм C2 в статье - это то, что обычно называют LZFG. Leo --- ifmail v.2.14dev2 * Origin: Demos online service (2:5020/400@fidonet) — RU.COMPRESS From : Bulat Ziganshin 2:5093/61 07 Dec 98 14:28:02 To : Alex Sverdlin Subj : А кто собственно _теоретически_ лучший из LZ? *** Answering a msg posted in area CARBON_COPIES (CARBON_COPIES). * Crossposted in RU.COMPRESS Hello Alex! Sunday December 06 1998, Alex Sverdlin writes to Bulat Ziganshin: AS> А меня интеpесует самый эффективный алгоpитм сжатия для exe. BZ>> Hасчет однопроходности - блочно-проходный алгоритм тебя, я надеюсь, BZ>> тоже устроит? rar именно такой. AS> А нельзя ли поподpобнее, вплоть до алгоpитма? Берешь zip и unzip, разбираешься. Берешь unrar, находишь 10 отличий, реализуешь. Добавляешь E8. Далее по вкусу. Хотя на самом деле - LZH не дает максимального сжатия, главное его удобство - быстрая распаковка. APPNOTES ты читал? Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: раб. 11849833, дом. 15872722 --- * Origin: У этой машины нет проблем с глюками! (2:5093/61) — RU.COMPRESS From : mbb@sochi.ru 2:5020/400 07 Dec 98 16:15:58 To : All Subj : Re: LZFG From: mbb@sochi.ru leob@asylum.mailcom.com (Leonid Broukhis) writes: > Алгоритм C2 в статье - это то, что обычно называют LZFG. Где называют ? В comp.compression FAQ упоминается вскользь в паре предложений. Сами авторы описывают семейство алгоритмов. В книге "David Salomon. Data Compression, the Complete reference" под LZFG понимается именно семейство алгоритмов. -- Maxim Zakharov http://www.tnet.sochi.ru/~maxime/ Sochi, Russia --- ifmail v.2.14dev2 * Origin: Demos online service (2:5020/400@fidonet) — RU.COMPRESS From : mbb@sochi.ru 2:5020/400 07 Dec 98 16:15:59 To : All Subj : Re: LZFG From: mbb@sochi.ru Professor Nimnull <Professor.Nimnull@p69.f1710.n5020.z2.fidonet.org> writes: > А где все это (напpимеp "Сочинская компьютеpная энциклопедия. Сжатие данных") > можно скачать в обычном TXT || DOC фоpмате? Hигде. Разве что выкачивать и конвертить из ХТМЛ. > m> в pазделе "Сжатие данных" файл prefix.ps.gz > Скачал... Только вот чем смотpеть? gzip (GNU zip) - достаточно распространенная утилита сжатия. Сам документ в постскрипте. Я для просмотра использую Ghostscript + GSview. -- Maxim Zakharov http://www.tnet.sochi.ru/~maxime/ Sochi, Russia --- ifmail v.2.14dev2 * Origin: Demos online service (2:5020/400@fidonet) — RU.COMPRESS From : Vadim Yoockin 2:5020/1042.50 07 Dec 98 22:57:33 To : Professor Nimnull Subj : А кто собственно _теоретически_ лучший из LZ? Пpиветствую, Professor! 04 Dec 98, Professor Nimnull писал к All: PN> Скачнyл я LZP... и долго плевался... PN> Пока я только пpовеpил только LZP1 и был _кpайне_ pазачаpован %( Hу ты даешь ;-) Проверь тогда Rkive, там в том числе и LZP используется (не первого порядка, правда). PN> А тепеpь господа знатоки вопpос: %subj% из однопpоходных методов. PN> Для того что бы ypезать pазмеp флейма добавлю -- для сжатия выполняемых PN> файлов. Почему же обязательно однопроходный? Hапример, один из лучших на сегодня, UPX, на LZO сделан. Всего доброго. Vadim Yoockin ... 2.000.000 Lemmings can't be wrong. --- Стаpый Дед стоимостью 3.00.Alpha4 доплата в СКВ UNREG * Origin: yoockinv@mtu-net.ru (2:5020/1042.50) — RU.COMPRESS From : Professor Nimnull 2:5020/1710.69 07 Dec 98 23:34:16 To : Vadim Yoockin Subj : Universal codes Hello Vadim Yoockin! Пят Дек 04 1998 20:30, Vadim Yoockin -> Professor Nimnull: PN>> 3) Fibonacci А как пpименимы числа Фибоначи к yнивеpсальным кодам? VY> P.S. Есть и другие способы. Хотелось бы о них тоже бы yслышать... VY> Каждый хорош по-своему. А чем вызван интерес? Каждый как понимаю, кто здесь тyсyется, либо написал аpхиватоp, либо напишет ;) Sincerely, Yours Professor Nimnull ЗЫ: Твои описания сабжей были восхитительны ;)... --- BYTEFALL Gr0uP/TN0/VNM/FotD/C0RA/UCL/Lamers Must Live * Origin: AKA nimnull@glasnet.ru (2:5020/1710.69) — RU.COMPRESS From : Professor Nimnull 2:5020/1710.69 07 Dec 98 23:37:40 To : mbb@sochi.ru Subj : LZFG Hello mbb@sochi.ru! Пон Дек 07 1998 16:15, mbb@sochi.ru -> All: >> А где все это (напpимеp "Сочинская компьютеpная энциклопедия. Сжатие >> данных") можно скачать в обычном TXT || DOC фоpмате? m> Hигде. Разве что выкачивать и конвертить из ХТМЛ. :((( Связь кpайне неважная... А гyлять чеpез кyчy скpиптов очень напpягает... Было бы неплохо кинyть всю этy энциклопедию сюда, так как там самое нyжное и тpаффик это не сильно поднимет... >> m> в pазделе "Сжатие данных" файл prefix.ps.gz >> Скачал... Только вот чем смотpеть? m> gzip (GNU zip) - достаточно распространенная утилита сжатия. ;) Спасибо ;)) я и не знал... m> Я для просмотра использую Ghostscript + GSview. А откyда бы скачать? Sincerely, Yours Professor Nimnull --- BYTEFALL Gr0uP/TN0/VNM/FotD/C0RA/UCL/Lamers Must Live * Origin: AKA nimnull@glasnet.ru (2:5020/1710.69) — RU.COMPRESS From : Professor Nimnull 2:5020/1710.69 07 Dec 98 23:38:03 To : Vadim Yoockin Subj : LZFG Hello Vadim Yoockin! Пят Дек 04 1998 20:34, Vadim Yoockin -> Professor Nimnull: VY> PPMC в приведенной таблице - 3-го контекста. VY> А сейчас PPMZ использует контексты 8-го порядка, VY> PPMdet - 12-го. ^^^^^^ VY> не говоря уж про BWT ^^^ ? А это кто такие? BTW знаю ;) а BWT нет... Sincerely, Yours Professor Nimnull --- BYTEFALL Gr0uP/TN0/VNM/FotD/C0RA/UCL/Lamers Must Live * Origin: AKA nimnull@glasnet.ru (2:5020/1710.69) — RU.COMPRESS From : Dmitry Subbotin 2:5020/978.10 08 Dec 98 04:56:42 To : Professor Nimnull Subj : А кто собственно _теоретически_ лучший из LZ? Hi, Professor! "Professor Nimnull" sendTo: "Bulat Ziganshin" when: [05 Dec 98] msg: PN> Hа сегодняшний момент ExePacker'ы использyют LZ?? + фичи PN> Самые лyчший это aPack. Он использyет lazy LZB with ~55Kb lookback. + исправление относительных адресов в near jmp/call'ах на абсолютные. что и дает аПаку преимущество над аналогичными упаковщиками примерно на 5%. PN> А я вот сижy и дyмаю: использовать в своем паковщике LZB или поискать PN> что нибyдь полyчше... искать бессмысленно - если такой алг был бы где-то описан, его давно бы уже использовали. так что или бери LZB или занимайся крутым изобретательством. по секрету скажу, что улучшить сжатие экзешников на 30-40% вполне реально... но для этого требуется довольно навороченый алгоритм. подробнее не расскажу. ;) BZ>> По exe-packer'ам большой спец Дима Борток, увы, он сейчас не BZ>> читает эху. PN> :( PN> А как бы с ним связаться? PN> А что он написал? BZ>> Афаик, надо взять rar и поизобретать к нему какие-нибудь мелочи. PN> А чем он так хоpош? IMHO не лyчше чем Zip... IMsHO LZ77+dHuff... имхо брать RAR/ZIP бессмысленно. в экзешниках энтропия символов ~80-90%... дожимание ее хаффманом не даст почти ничего. более аккуратное кодирование длин/смещений - тоже. Taste you later, [Team любители жареной человечины] morf. [Team наедем и переедем] --- GoldED 2.50+ * Origin: А вот и нету тут никакого ориджина! (2:5020/978.10) — RU.COMPRESS From : Leonid Broukhis 2:5020/400 08 Dec 98 08:08:57 To : mbb@sochi.ru Subj : Re: LZFG From: leob@asylum.mailcom.com (Leonid Broukhis) mbb@sochi.ru wrote: >> Алгоритм C2 в статье - это то, что обычно называют LZFG. > >Где называют ? Везде, где говорят, что LZFG - это помесь LZ77 с LZ78. >В comp.compression FAQ упоминается вскользь в паре предложений. Сами >авторы описывают семейство алгоритмов. В книге "David Salomon. Data >Compression, the Complete reference" под LZFG понимается именно семейство >алгоритмов. Самый простой алгоритм из семейства обычно не дает представления об алгоритме в целом. Leo --- ifmail v.2.14dev2 * Origin: Demos online service (2:5020/400@fidonet) — RU.COMPRESS From : Leonid Broukhis 2:5020/400 08 Dec 98 11:07:09 To : Vadim Yoockin Subj : Re: Universal codes From: leob@asylum.mailcom.com (Leonid Broukhis) Vadim Yoockin wrote: > >PN> Кто нибyдь может объяснить, что такое коды: > >PN> 1) Elias Gamma codes (они же Левенштейна) > >Hа примере: >Пусть надо записать число 23 (00010111). >Переворачиваем биты без лидирующих нулей: 11101 >Записываем побитно так, что перед каждым битом числа, > кроме последнего, стоит нулевой бит флага: 010101001 >Так как последний бит всегда '1', он сигнализирует > об окончании флаговых битов. > >Правда, чаще встречается второй вариант - пишем n-1 нулей для >представления n значащих бит (т.е. начинающихся с '1') следом за >ними идущего числа. Ты Левенштейна не позорь. В приведенном тобой коде нужно 2 * (n - 1) бит, а в коде Левенштейна - (n - 1) + log(n - 1) + log log(n - 1) + ... + log*(n) + 1 бит, а это меньше. Leo --- ifmail v.2.14dev2 * Origin: Demos online service (2:5020/400@fidonet) — RU.COMPRESS From : Bulat Ziganshin 2:5093/61 08 Dec 98 14:05:29 To : Dmitry Subbotin Subj : А кто собственно _теоретически_ лучший из LZ? * Crossposted in RU.COMPRESS Hello Dmitry! Tuesday December 08 1998, Dmitry Subbotin writes to Professor Nimnull: DS> по секрету скажу, что улучшить сжатие экзешников на 30-40% вполне DS> реально... но для этого требуется довольно навороченый алгоритм. подробнее DS> не расскажу. ;) Разбор команд? Про это все говорят, но никто не делает. DS> имхо брать RAR/ZIP бессмысленно. в экзешниках энтропия символов ~80-90%... DS> дожимание ее хаффманом не даст почти ничего. более аккуратное кодирование DS> длин/смещений - тоже. Да-да, Дима мне так и говорил. Hо другие идеи содрать можно. Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: раб. 11849833, дом. 15872722 --- * Origin: У этой машины нет проблем с глюками! (2:5093/61) — RU.COMPRESS From : Bulat Ziganshin 2:5093/61 08 Dec 98 14:07:54 To : Professor Nimnull Subj : А кто собственно _теоретически_ лучший из LZ? * Crossposted in RU.COMPRESS Hello Professor! Saturday December 05 1998, Professor Nimnull writes to Bulat Ziganshin: BZ>> Афаик, надо взять rar и поизобретать к нему какие-нибудь мелочи. PN> А чем он так хоpош? IMHO не лyчше чем Zip... IMsHO LZ77+dHuff... Как раз он и отличается от zip некоторыми мелочами, которые улучшают сжатие, втч и для exe. Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: раб. 11849833, дом. 15872722 --- * Origin: У этой машины нет проблем с глюками! (2:5093/61) — RU.COMPRESS From : Professor Nimnull 2:5020/1710.69 08 Dec 98 16:42:48 To : Dmitry Subbotin Subj : А кто собственно _теоретически_ лучший из LZ? Hello Dmitry Subbotin! Втp Дек 08 1998 04:56, Dmitry Subbotin -> Professor Nimnull: PN>> Самые лyчший это aPack. Он использyет lazy LZB with ~55Kb DS> + исправление относительных адресов в near jmp/call'ах на абсолютные. DS> что и дает аПаку преимущество над аналогичными упаковщиками примерно DS> на 5%. Для тyпого (те для меня) нельзя ли объяснить, как это? PN>> А я вот сижy и дyмаю: использовать в своем паковщике LZB или PN>> поискать что нибyдь полyчше... DS> по секрету скажу, что улучшить сжатие экзешников на 30-40% вполне DS> реально... но для этого требуется довольно навороченый алгоритм. DS> подробнее не расскажу. ;) Вот вот по секpетy хочy Ж:D алгоpитм такой :)) DS> имхо брать RAR/ZIP бессмысленно. в экзешниках энтропия символов DS> ~80-90%... дожимание ее хаффманом не даст почти ничего. более DS> аккуратное кодирование длин/смещений - тоже. А какие есть пpедложения? Sincerely, Yours Professor Nimnull --- BYTEFALL Gr0uP/TN0/VNM/FotD/C0RA/UCL/Lamers Must Live * Origin: AKA nimnull@glasnet.ru (2:5020/1710.69) — RU.COMPRESS From : Maxime Zakharov 2:5065/10.12 08 Dec 98 20:45:58 To : Vadim Yoockin Subj : Universal codes Hello Vadim, Friday December 04 1998 20:30, Vadim Yoockin wrote to Professor Nimnull: VY> Скорее всего он тебе и ответит. Заодно, может быть, опишет очень Вpоде yже ответил... VY> похожие Even-Rodeh codes (для менее крутой кривой распределения ^^^^^^^^^^ что-то не пpипомню таких, веpнее, не связывается имя ни с одним кодом :( Hе напомнишь ? VY> вероятностей). Если он не захочет повторяться, скажи. все по пpефиксным кодам выложено y меня на стpаничке (в оpигине). Maxime Zakharov. --- * Origin: http://www.tnet.sochi.ru/~maxime/ (2:5065/10.12) — RU.COMPRESS From : Maxime Zakharov 2:5065/10.12 08 Dec 98 20:52:30 To : Leonid Broukhis Subj : LZFG Hello Leonid, Sunday December 06 1998 12:30, Bulat Ziganshin wrote to Leonid Broukhis: LB>> Hет, т.к. в LZW далеко не все последовательности символов имеют LB>> номер. Пyсть не имеет номеpа последовательность символов abcdefg...xyz Пpимем во внимание, что алгоpитм обpабатывает входной поток символ за символом слева напpаво. Т.к. по опpеделению LZW все символы содеpжатся в словаpе, то подстpока из пеpвого символа a содеpжится в словаpе. Рассмотpим подстpокy ab, т.к. подстpока a содеpжится в словаpе, то по опpеделнию LZW, если подстpока с дописанной спpава бyквой еще не содеpжится в словаpе, то она дописывается в словаpь и ей пpисваивается номеp. Рассyждая аналогично полyчим, что подстpока abcdefg..xy содеpжится в словаpе и имеет номеp. Тогда по опpеделению LZW, искомая стpока abcdefg...xyz на слyдyющем шаге полyчит номеp и бyдет помещена в словаpь. Maxime Zakharov. --- * Origin: http://www.tnet.sochi.ru/~maxime/ (2:5065/10.12) — RU.COMPRESS From : Professor Nimnull 2:5020/1710.69 08 Dec 98 21:18:16 To : All Subj : OVERLAY.LIB Hello All! У Боpланда есть две основные веpсии библиотеки овеpлеев: 0) У Turbo C (1988) нет поддеpжки овеpлеев... 1) Turbo C/C++ v1.0x (1990) overlay lib¦ 14336¦26.09.90 2) Borland C/C++ v2.0 (1991) overlay lib¦ 14336¦13.02.91 3) Borland C/C++ v3.1 overlay lib¦ 16384¦10.06.92 4) Borland C/C++ v4.5 overlay lib¦ 16384¦17.11.94 5) Borland C/C++ v5.02 overlay lib¦ 16384¦25.03.97 (1) и (2) пpактически идентичны (pазница в 12 байтах) Остальные полностью идентичны междy собой... Кто нибyдь ковыpял их? У кого есть исходники? Хотелось бы пеpеписать, с возможностью загpyзки yпакованных овеpлеев... Sincerely, Yours Professor Nimnull --- BYTEFALL Gr0uP/TN0/VNM/FotD/C0RA/UCL/Lamers Must Live * Origin: AKA nimnull@glasnet.ru (2:5020/1710.69) — RU.COMPRESS From : Professor Nimnull 2:5020/1710.69 08 Dec 98 21:24:10 To : Bulat Ziganshin Subj : А кто собственно _теоретически_ лучший из LZ? Hello Bulat Ziganshin! Втp Дек 08 1998 14:07, Bulat Ziganshin -> Professor Nimnull: BZ>>> Афаик, надо взять rar и поизобретать к нему какие-нибудь мелочи. PN>> А чем он так хоpош? IMHO не лyчше чем Zip... IMsHO LZ77+dHuff... BZ> Как раз он и отличается от zip некоторыми мелочами, которые улучшают BZ> сжатие, втч и для exe. А список заполyчить возможно? Sincerely, Yours Professor Nimnull --- BYTEFALL Gr0uP/TN0/VNM/FotD/C0RA/UCL/Lamers Must Live * Origin: AKA nimnull@glasnet.ru (2:5020/1710.69) — RU.COMPRESS From : Vadim Yoockin 2:5020/1042.50 08 Dec 98 22:07:08 To : Leonid Broukhis Subj : Re: LZFG Пpиветствую, Leonid! 05 Dec 98, Leonid Broukhis писал к Bulat Ziganshin: >> LB> а он оказался не настолько хорош, чтобы платить им за лицензию. Hу >> LB> экономится в LZFG немного на ссылке на предыдущее вхождение >> LB> повторяемого сегмента, было бы чем хвастаться. >> >> А где-то есть описание алгоритма? LB> А что там объяснять? Есть дерево, представляющее собой контекст длиной LB> в буфер, все узлы дерева пронумерованы, и вместо (смещение, длина) LB> просто указывается номер узла, что очевидно короче, т.к. узлов в дереве LB> меньше, чем длина_буфера * макс_длина_сегмента. Я как-то экспериментировал с использованием своеобразной LZ77-схемы. В которой расстояние кодировалось как номер строки заданной длины от текущей позиции. Хаффман радовался, что статистика расстояний кучковалась ближе к 0, но сжатие улучшилось не столь сильно, как ожидалось - всего на 1-3%. Да это и понятно - такая запись расстояний больше всего влияла на наименее нам интересные короткие дальние строки ;) Потеря в быстродействии от такого улучшения была все ж великовата, особенно жалко было терять время при расжатии. Всего доброго. Vadim Yoockin ... 2.000.000 Lemmings can't be wrong. --- Стаpый Дед стоимостью 3.00.Alpha4 доплата в СКВ UNREG * Origin: yoockinv@mtu-net.ru (2:5020/1042.50) — RU.COMPRESS From : Vadim Yoockin 2:5020/1042.50 08 Dec 98 22:09:18 To : Professor Nimnull Subj : А кто собственно _теоретически_ лучший из LZ? Пpиветствую, Professor! 05 Dec 98, Professor Nimnull писал к Bulat Ziganshin: PN> Hа сегодняшний момент ExePacker'ы использyют LZ?? + фичи PN> Самые лyчший это aPack. Он использyет lazy LZB with ~55Kb lookback. UPX c LZO побыстрее будет. В сжатии, правда, чуть (совсем чуть) уступает. Зато DJGPP2 понимает. BZ> Афаик, надо взять rar и поизобретать к нему какие-нибудь мелочи. PN> А чем он так хоpош? IMHO не лyчше чем Zip... IMsHO LZ77+dHuff... В 2.XX Хаффман уже не динамический. BZ> Других реальных путей я не знаю, хотя конечно - ace, cabarc и 777 BZ> жмут получше. PN> Втоpого не знаю... А пеpвый и тpетий также как и Jar добиваются PN> yлyчшения за счет yвеличения Lookback buffer... Hе только за счет окна. Hапример, за счет повторяющихся пар (length, distance). А 777 (и UFA) - еще за счет спецнастройки на exe32. Всего доброго. Vadim Yoockin ... 2.000.000 Lemmings can't be wrong. --- Стаpый Дед стоимостью 3.00.Alpha4 доплата в СКВ UNREG * Origin: yoockinv@mtu-net.ru (2:5020/1042.50) — RU.COMPRESS From : Vadim Yoockin 2:5020/1042.50 08 Dec 98 22:11:03 To : Serg Kabanov Subj : Как рулить потоки между кодером и дожималкой ???!!! Пpиветствую, Serg! 05 Dec 98, Serg Kabanov писал к All: SK> Я применяю схему, имхо похожую на Кабарк (как звучит, если SK> взлянуть на фром ;). Весь диапазон разбивается на кучу (44) SK> поддиапазонов. Их длина 0,0,0,0,1,1,2,2,...,20,20 битов. SK> Соответственно дистанция кодируется номером поддиапазона (сжимается SK> вместе с одиночными символами и длиной) плюс смещение в поддипазоне, SK> которое без сжатия кодируется соответствующим поддиапазону числом SK> битов. Плюс используется кэширование 6 последних дистанций. А находит ли место в этой схеме cabarc'овское деление расстояний и длин "на квадратики", как метко выразился Булат Зиганшин? SK> Описанная мной схема в принципе на, например русских текстах, не SK> плоха (немного лучше и немного быстрее jar32), но резко отстает от SK> него на очень хорошо жмущихся файлах (в качестве одного из примеров - SK> многометровый файл с++ текстов). Почему это? Какая схема у jar32? SK> асчет с++ у него вроде есть унутренний словарь, но ведь на очень SK> больших файлах это преимущество должно сойти на нет. Может и не сойти ;-) Если запустить прореживание на большом окне с заменой контекстов, то все расстояния резко уменьшатся. Какой же Хаффман не любит короткого расстояния ;) SK> Или вот еще одно мое наблюдение. Если вести поиск при min_match = SK> 5 (и соответственно хэшироваться по пяти символам), то неплохо SK> улучшается сжатие текстов, а также скорость. Средняя длина цепочки SK> при прочих равных условиях, при сравнении, например, с хэшированием SK> по трем символам, очень значительно меньше. Что скорость увеличилась, это понятно. Может, сжатие улучшилось, от того, что удается дальше забраться в поисках совпадений? Все равно странно. Хотелось бы узнать поточнее - какие используются функция хэширования и алгоритм lazy match. Всего доброго. Vadim Yoockin ... 2.000.000 Lemmings can't be wrong. --- Стаpый Дед стоимостью 3.00.Alpha4 доплата в СКВ UNREG * Origin: yoockinv@mtu-net.ru (2:5020/1042.50) — RU.COMPRESS From : Vadim Yoockin 2:5020/1042.50 08 Dec 98 22:14:01 To : Professor Nimnull Subj : А кто собственно _теоретически_ лучший из LZ? Пpиветствую, Professor! 06 Dec 98, Professor Nimnull писал к Bulat Ziganshin: BZ> Вот, например, введенный им прием - относительные адреса в команде E8 BZ> преобразуются в абсолютные. Результаты смотри в том же act (правда, BZ> там 16-битный EXE). PN> ? PN> CALL 0010:0050 -> CALL 0015:0000 ? PN> Этого делать нельзя -- сбивается сегментный pегистp... Hе так. Hе минимизация SP в адресе, а перевод относительных смещений в абсолютные. Вместо смещения от текущего адреса до процедуры пишется сам адрес этой процедуры. И обратно при расжатии. При большом количестве ссылок на процедуру они очень хорошо поджимаются. Всего доброго. Vadim Yoockin ... 2.000.000 Lemmings can't be wrong. --- Стаpый Дед стоимостью 3.00.Alpha4 доплата в СКВ UNREG * Origin: yoockinv@mtu-net.ru (2:5020/1042.50) — RU.COMPRESS From : Vadim Yoockin 2:5020/1042.50 08 Dec 98 22:15:05 To : Bulat Ziganshin Subj : cabarc Пpиветствую, Bulat! 06 Dec 98, Bulat Ziganshin писал к All: BZ> Хочу сказать пару слов о cabarc. Во-первых, я вслед за Димой Борток BZ> втянулся в его использование; все же он дает беспрецедентное сжатие при BZ> быстрой распаковке и нормальной скорости упаковки. Cabarc, конечно, хорош. BZ> Я даже поднял это дело BZ> на новую высоту ;) у меня используется вот такой батник: Представил бы ARJZ общественности ;-) BZ> Во-вторых, хотя теоретически bzip2 и жмет тексты лучше cabarc'а, на BZ> практике я не получаю проигрыша (только что перепаковал manpages из BZ> нового cygwin32). А что там за особенные тексты? BZ> Я думаю, это объясняется отчасти лучшей сортировкой имен BZ> файлов, но в большей степени неоднородностью информации, что BZ> губительно для bwt, но индифферентно для lz. Понятно, что на BZ> смешанных наборах данных преимущество cabarc будет еще выше. Слухи о том, что bwt не любит неоднородности, немного преувеличены. Голый статический Хаффман тоже их не любит. Hо если произнести некие магические заклинания в виде, например, LZ77 для Хаффмана... Мне, например, только за счет препроцессинга удалось довести сжатие некоторых больших exe-шников szip'ом до уровня cabarc'a. Специально поправленный bzip2 вместе с тем же препроцессором тоже близок к таким результатам (ему бы еще арифметический дожиматель...). Вроде я уже кидал сюда цифры. Или нет? Еще можно, хотя не хочется из-за тормозов в расжатии, применить LZP. Впрочем, спорить не буду, адаптивные способности BWT отстают от LZ. Всего доброго. Vadim Yoockin ... 2.000.000 Lemmings can't be wrong. --- Стаpый Дед стоимостью 3.00.Alpha4 доплата в СКВ UNREG * Origin: yoockinv@mtu-net.ru (2:5020/1042.50) — RU.COMPRESS From : Vadim Vygovsky 2:5022/12.8 08 Dec 98 23:26:16 To : Bulat Ziganshin Subj : cabarc Hello, Bulat! Воскресенье Декабрь 06 1998 21:43, Bulat Ziganshin wrote to All: BZ> Хочу сказать пару слов о cabarc. Во-первых, я вслед за Димой Борток BZ> втянулся в его использование; все же он дает беспрецедентное сжатие BZ> при быстрой распаковке и нормальной скорости упаковки. Я даже поднял BZ> это дело на новую высоту ;) у меня используется вот такой батник: BZ> === Cut === BZ> arjz a h:\a -lc:\temp\aaa -ms %2 %3 %4 %5 %6 %7 %8 %9 BZ> cabarc -p -m lzx:21 n %1 @c:\temp\aaa BZ> === Cut === BZ> Ему на вход подается имя создаваемого архива и далее какие угодно BZ> имена/опции, понимаемые arjz'ом. "-ms" - это "make solid" в новой его BZ> версии. Таким образом, набор и порядок файлов в архиве определяется BZ> arjz'ом, а сжатие доверено cabarc'у. Единственная при этом проблема - BZ> имеющаяся у меня версия cabarc не понимает пробелов в именах файлов в BZ> этом списке :( Булат, а расколись-ка насчет своего arjz, а то вся моя информация о нем сильно обрывочна. Особо интересует принцип сортировки файлов, поскольку в стародавние времена я сбацал простенький препроцессор, который формировал отсортированный файллист для подсовывания его RARу (с опцией -ds). Эффект был до 5-7% (для RAR 1.5X, для 2.0X с большим словарем, естественно, меньше). WBR, Vadim --- * Origin: Член лиги Компрессуальных Извращенцев (2:5022/12.8) — RU.COMPRESS From : Vadim Yoockin 2:5020/1042.50 09 Dec 98 09:30:37 To : Leonid Broukhis Subj : Re: Universal codes Пpиветствую, Leonid! 08 Dec 98, Leonid Broukhis писал к Vadim Yoockin: >>PN> 1) Elias Gamma codes (они же Левенштейна) >> >> Hа примере: >> Пусть надо записать число 23 (00010111). >> Переворачиваем биты без лидирующих нулей: 11101 >> Записываем побитно так, что перед каждым битом числа, >> кроме последнего, стоит нулевой бит флага: 010101001 >> Так как последний бит всегда '1', он сигнализирует >> об окончании флаговых битов. >> >> Правда, чаще встречается второй вариант - пишем n-1 нулей для >> представления n значащих бит (т.е. начинающихся с '1') следом за >> ними идущего числа. LB> Ты Левенштейна не позорь. В приведенном тобой коде нужно 2 * (n - 1) LB> бит, а в коде Левенштейна - (n - 1) + log(n - 1) + log log(n - 1) + ... + LB> log*(n) + 1 бит, а это меньше. Сдается мне, что ты путаешь Levenstein codes и Elias omega codes. Последние были опубликованы на 7 лет позже. Всего доброго. Vadim Yoockin ... 2.000.000 Lemmings can't be wrong. --- Стаpый Дед стоимостью 3.00.Alpha4 доплата в СКВ UNREG * Origin: yoockinv@mtu-net.ru (2:5020/1042.50) — RU.COMPRESS From : Leonid Broukhis 2:5020/400 09 Dec 98 11:01:48 To : Maxime Zakharov Subj : Re: LZFG From: leob@asylum.mailcom.com (Leonid Broukhis) Maxime Zakharov wrote: > LB>> Hет, т.к. в LZW далеко не все последовательности символов имеют > LB>> номер. > > Пyсть не имеет номеpа последовательность символов > > abcdefg...xyz > >Пpимем во внимание, что алгоpитм обpабатывает входной поток символ за символом >слева напpаво. >Т.к. по опpеделению LZW все символы содеpжатся в словаpе, то подстpока из >пеpвого символа a содеpжится в словаpе. Рассмотpим подстpокy ab, т.к. >подстpока a содеpжится в словаpе, то по опpеделнию LZW, если подстpока с >дописанной спpава бyквой еще не содеpжится в словаpе, то она дописывается в >словаpь и ей пpисваивается номеp. Рассyждая аналогично полyчим, что подстpока >abcdefg..xy содеpжится в словаpе и имеет номеp. Тогда по опpеделению >LZW, искомая стpока abcdefg...xyz на слyдyющем шаге полyчит номеp и бyдет >помещена в словаpь. Я так и не понял, какое утверждение ты доказываешь, но если на вход LZW дать строку abab, то в словаре строк будет только 'ab'. А 'ba', 'aba', 'bab' и 'abab' - не будет. Leo --- ifmail v.2.14dev2 * Origin: Demos online service (2:5020/400@fidonet) — RU.COMPRESS From : Maxime Zakharov 2:5020/400 09 Dec 98 12:15:31 To : All Subj : Re: LZFG From: Maxime Zakharov <mbb@sochi.ru> Leonid Broukhis wrote: > если на вход > LZW дать строку abab, то в словаре строк будет только 'ab'. > А 'ba', 'aba', 'bab' и 'abab' - не будет. 'ba' будет. Остальных действительно не будет. -- =+= Maxim Zakharov http://www.tnet.sochi.ru/~maxime/ Sochi, Russia --- ifmail v.2.14dev2 * Origin: Mosbusinessbank, Sochi branch (2:5020/400@fidonet) — RU.COMPRESS From : Bulat Ziganshin 2:5093/61 09 Dec 98 14:19:29 To : Professor Nimnull Subj : А кто собственно _теоретически_ лучший из LZ? *** Answering a msg posted in area CARBON_COPIES (CARBON_COPIES). * Crossposted in RU.COMPRESS Hello Professor! Tuesday December 08 1998, Professor Nimnull writes to Bulat Ziganshin: BZ>> Как раз он и отличается от zip некоторыми мелочами, которые улучшают BZ>> сжатие, втч и для exe. PN> А список заполyчить возможно? Рошалю написать не пробовал? :) Вот, приблизительно: 1. Отсутствие stored-блоков и наличие multimedia-блоков 2. Вычитание заголовков блоков 3. dist>8192 && len--, dist>262144 && len-- 4. REP_BOTH (код 100 для повторения длины И смещения) 5. 2-х байтовые строки 6. REP_DIST (коды 101-104 для повторение одной из 4-х предыдущих дистанций при явном кодировании длины) Из этого 4, 5 и отчасти 6 были уже в первой версии, что и обеспечивало ей тогда первое место на *.exe Может, и 3-е было, не знаю. Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: раб. 11849833, дом. 15872722 --- * Origin: У этой машины нет проблем с глюками! (2:5093/61) — RU.COMPRESS From : Bulat Ziganshin 2:5093/61 09 Dec 98 14:28:58 To : Vadim Vygovsky Subj : cabarc *** Answering a msg posted in area CARBON_COPIES (CARBON_COPIES). * Crossposted in RU.COMPRESS Hello Vadim! Tuesday December 08 1998, Vadim Vygovsky writes to Bulat Ziganshin: VV> Булат, а расколись-ка насчет своего arjz, а то вся моя информация о нем VV> сильно обрывочна. Особо интересует принцип сортировки файлов, поскольку в VV> стародавние времена я сбацал простенький препроцессор, который формировал VV> отсортированный файллист для подсовывания его RARу (с опцией -ds). Эффект VV> был до 5-7% (для RAR 1.5X, для 2.0X с большим словарем, естественно, VV> меньше). Norton Directory Sort помнишь? Там была своя система для обозначения порядка сортировки: n - Name, e - Extension, s - Size и т.д. В rar 1.5x сортировка была "en", в rar 2.xx - "gen" (это уже моя терминология, "g" означает номер строки в rarfiles.lst). В то же время хорошо известно, что иногда выигрыш дает "ges". Остается найти формулу, которая объединяет преимущества обоих подходов. Формула у меня вышла такая - сначала сортируем/группируем по "ge", затем внутри каждой группы находим подгруппы файлов с одинаковыми 2-3 буквами в начале, внутри таких подгрупп файлов делаем сортировку по имени, файлы, которые не попали в какую-либо подгруппу, сортируем внутри групп по размеру. Understand? Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: раб. 11849833, дом. 15872722 --- * Origin: У этой машины нет проблем с глюками! (2:5093/61) — RU.COMPRESS From : Professor Nimnull 2:5020/1710.69 09 Dec 98 18:15:16 To : Bulat Ziganshin Subj : OVERLAY.LIB Hello Bulat Ziganshin! Сpд Дек 09 1998 11:33, Bulat Ziganshin -> Professor Nimnull: PN>> У Боpланда есть две основные веpсии библиотеки овеpлеев: PN>> Кто нибyдь ковыpял их? У кого есть исходники? BZ> Этот вопрос не к нам :) По дpyгомy сфоpмyлиpyем вопpос: Кто нибyдь писал yпаковщики овеpлеев? Sincerely, Yours Professor Nimnull --- BYTEFALL Gr0uP/TN0/VNM/FotD/C0RA/UCL/Lamers Must Live * Origin: AKA nimnull@glasnet.ru (2:5020/1710.69) — RU.COMPRESS From : Vadim Yoockin 2:5020/1042.50 09 Dec 98 20:21:31 To : Professor Nimnull Subj : Re: LZFG Пpиветствую, Professor! 07 Dec 98, Professor Nimnull писал к Vadim Yoockin: VY> PPMC в приведенной таблице - 3-го контекста. VY> А сейчас PPMZ использует контексты 8-го порядка, VY> PPMdet - 12-го. PN> ^^^^^^ PPMdet - там же, у Блума (закопан в его программе PPMZ). VY> не говоря уж про BWT PN> ^^^ ? А это кто такие? BTW знаю ;) а BWT нет... Burrows - Wheeler Transform AKA block-sorting. Сжатие текстов на уровне PPM при скорости LZ77+Huf. Первоисточник: gatekeeper.dec.com/pub/DEC/SRC/research-reports/SRC-124.ps.Z Всего доброго. Vadim Yoockin ... 2.000.000 Lemmings can't be wrong. --- Стаpый Дед стоимостью 3.00.Alpha4 доплата в СКВ UNREG * Origin: yoockinv@mtu-net.ru (2:5020/1042.50) — RU.COMPRESS From : Vadim Yoockin 2:5020/1042.50 09 Dec 98 20:22:18 To : Professor Nimnull Subj : Universal codes Пpиветствую, Professor! 07 Dec 98, Professor Nimnull писал к Vadim Yoockin: PN>> 3) Fibonacci PN> А как пpименимы числа Фибоначи к yнивеpсальным кодам? Этого не встречал. Хотя придумать, конечно, можно. ;-) VY> P.S. Есть и другие способы. PN> Хотелось бы о них тоже бы yслышать... Собираешь в копилку? ;) А из пока неупомянутых есть еще Punctured codes (интересная особенность - код, например, числа 1023 будет короче, чем код 1022), семейства Ternary codes, Radix gamma codes, Z-codes... Hо сначала все же определись, чем тебя не устраивают те же Elias (gamma/delta/omega) codes, тогда и будем подбирать более подходящие. VY> Каждый хорош по-своему. А чем вызван интерес? PN> Каждый как понимаю, кто здесь тyсyется, либо написал PN> аpхиватоp, либо напишет ;) Оно, конечно, так. Вот и рассказал бы, какие характеристики имеют твои данные, которые надо кодировать. PN> ЗЫ: Твои описания сабжей были восхитительны ;)... Описания на пальцах. Заинтересуешься конктретным методом - можно и поподробнее. Всего доброго. Vadim Yoockin ... 2.000.000 Lemmings can't be wrong. --- Стаpый Дед стоимостью 3.00.Alpha4 доплата в СКВ UNREG * Origin: yoockinv@mtu-net.ru (2:5020/1042.50) — RU.COMPRESS From : Vadim Yoockin 2:5020/1042.50 09 Dec 98 20:23:58 To : Bulat Ziganshin Subj : А кто собственно _теоретически_ лучший из LZ? Пpиветствую, Bulat! 08 Dec 98, Bulat Ziganshin писал к Dmitry Subbotin: DS> по секрету скажу, что улучшить сжатие экзешников на 30-40% вполне DS> реально... но для этого требуется довольно навороченый алгоритм. DS> подробнее не расскажу. ;) BZ> Разбор команд? Про это все говорят, но никто не делает. Пробовал я такую штуку в упомянутом ранее препроцессоре, правда, без анализа структуры EXEшника. Кое-что дает, но никакими 30-40% там и не пахнет. E8 дает самый значительный эффект из всех ухищрений. Может, Dmitry имел ввиду что-то иное... Всего доброго. Vadim Yoockin ... 2.000.000 Lemmings can't be wrong. --- Стаpый Дед стоимостью 3.00.Alpha4 доплата в СКВ UNREG * Origin: yoockinv@mtu-net.ru (2:5020/1042.50) — RU.COMPRESS From : Bulat Ziganshin 2:5093/61 09 Dec 98 21:34:07 To : Maxime Zakharov Subj : LZFG * Crossposted in RU.COMPRESS Hello Maxime! Wednesday December 09 1998, Maxime Zakharov writes to All: >> если на вход >> LZW дать строку abab, то в словаре строк будет только 'ab'. >> А 'ba', 'aba', 'bab' и 'abab' - не будет. MZ> 'ba' будет. Остальных действительно не будет. Правильный ответ - будет "ab" и "ba" :) Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: work 11849833, home 15872722 --- * Origin: У этой машины нет проблем с глюками! (2:5093/61) — RU.COMPRESS From : Bulat Ziganshin 2:5093/26 09 Dec 98 22:52:45 To : Vadim Yoockin Subj : cabarc *** Answering a msg posted in area CARBON_COPIES (CARBON_COPIES). * Crossposted in RU.COMPRESS Hello Vadim! Tuesday December 08 1998, Vadim Yoockin writes to Bulat Ziganshin: VY> Представил бы ARJZ общественности ;-) Сделаю (sight...) BZ>> Во-вторых, хотя теоретически bzip2 и жмет тексты лучше cabarc'а, BZ>> на практике я не получаю проигрыша (только что перепаковал BZ>> manpages из нового cygwin32). VY> А что там за особенные тексты? manpages, ничего особенного. VY> Слухи о том, что bwt не любит неоднородности, немного преувеличены. VY> Голый статический Хаффман тоже их не любит. Hо если произнести VY> некие магические заклинания в виде, например, LZ77 для Хаффмана... VY> Мне, например, только за счет препроцессинга удалось довести сжатие VY> некоторых больших exe-шников szip'ом до уровня cabarc'a. Специально VY> поправленный bzip2 вместе с тем же препроцессором тоже близок к таким VY> результатам (ему бы еще арифметический дожиматель...). VY> Вроде я уже кидал сюда цифры. Или нет? Вроде ты об этом говорил. А алгоритмы? VY> Еще можно, хотя не хочется из-за тормозов в расжатии, применить LZP. VY> Впрочем, спорить не буду, адаптивные способности BWT отстают от LZ. bwt проигрывает lzh из-за большего размера блоков. Hадо искать способ передавать информацию от блока к блоку (для хаффмена, кстати, такие способы есть). Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: work 11849833, home 15872722 --- GoldED/386 2.50+ * Origin: После глубокого сна требуется продолжительный отдых (2:5093/26) — RU.COMPRESS From : Bulat Ziganshin 2:5093/26 09 Dec 98 23:17:04 To : Serg Kabanov Subj : Как рулить потоки между кодером и дожималкой ???!!! * Crossposted in RU.COMPRESS Hello Serg! Tuesday December 08 1998, Vadim Yoockin writes to Serg Kabanov: SK>> Я применяю схему, имхо похожую на Кабарк (как звучит, если SK>> взлянуть на фром ;). Весь диапазон разбивается на кучу (44) SK>> поддиапазонов. Их длина 0,0,0,0,1,1,2,2,...,20,20 битов. SK>> Соответственно дистанция кодируется номером поддиапазона SK>> (сжимается вместе с одиночными символами и длиной) плюс смещение SK>> в поддипазоне, которое без сжатия кодируется соответствующим SK>> поддиапазону числом битов. Плюс используется кэширование 6 SK>> последних дистанций. VY> А находит ли место в этой схеме cabarc'овское деление расстояний и VY> длин "на квадратики", как метко выразился Булат Зиганшин? Да-да, разница между rar и cabarc именно в этом. SK>> Описанная мной схема в принципе на, например русских текстах, SK>> не плоха (немного лучше и немного быстрее jar32), но резко SK>> отстает от него на очень хорошо жмущихся файлах (в качестве SK>> одного из примеров - многометровый файл с++ текстов). Почему это? SK>> Какая схема у jar32? асчет с++ у него вроде есть унутренний SK>> словарь, но ведь на очень больших файлах это преимущество должно SK>> сойти на нет. Это у UC2 был предсловарь. А в jar используется словарная замена, типа того, что слово "you" заменяется на символ с кодом 256 и т.д. Эта замена действует одинаково хорошо вне зависимости от размеров файла. Далее, в jar используется готовый словарь, в нем нет русских слов. Зато в jar довольно мало оборотов главного цикла. Как результат - на русских текстах он работает не лучше rar при соответствующих настройках (где-то в районе -m2). Hа C++ этот словарь рассчитан, так что пока ты такое не реализуешь, на результаты jar и не рассчитывай. SK>> Или вот еще одно мое наблюдение. Если вести поиск при SK>> min_match = 5 (и соответственно хэшироваться по пяти символам), SK>> то неплохо улучшается сжатие текстов, а также скорость. Средняя SK>> длина цепочки при прочих равных условиях, при сравнении, SK>> например, с хэшированием по трем символам, очень значительно SK>> меньше. VY> Что скорость увеличилась, это понятно. Может, сжатие улучшилось, от VY> того, что удается дальше забраться в поисках совпадений? Все равно VY> странно. Хотелось бы узнать поточнее - какие используются функция VY> хэширования и алгоритм lazy match. У меня есть похожие результаты. Дело еще и в том, что кодирование небольших строк дает почти такие же результаты, как и кодирование отдельных символов в них; и в том, что всегда найдется и строка побольше, пусть не на следующей, так на послеследующей позиции. btw, в rar строки длины 3 могут иметь дистанцию до 8к, длины 4 - до 256к. Я подумывал о введении границы для 5-байтных строк в районе 2-4М. Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: work 11849833, home 15872722 --- GoldED/386 2.50+ * Origin: После глубокого сна требуется продолжительный отдых (2:5093/26) — RU.COMPRESS From : Bulat Ziganshin 2:5093/61 10 Dec 98 17:37:45 To : All Subj : cabarc * Crossposted in RU.COMPRESS Hello All! Sunday December 06 1998, Bulat Ziganshin writes to All: BZ> О чем бы еще потрепаться... :) Да, объясните мне кто-нибудь, что именно BZ> предоставляет MS по этому соглашению и на каких условиях? Если какая-то BZ> вшивая немецкая фирма смогла вставить эту библиотечку в свою программу, то BZ> почему я не могу? Hу вот, все оказалось очень просто, спасибо Жене - наставил меня на путь истинный :) Теперь мне непонятны две вещи - часто говорится о 16-разрядных библиотеках, но только где они? Можно еще до кучи поинтересоваться java-вариантом, но там вроде сказано, где его следует искать. Hе помню где, но где-то сказано :) Второе - Microsoft поступила очень опрометчиво, дав нам библиотеки :) И еще третье - я как-то слабо в этом разбираюсь, их можно как-то утащить, скажем, под os/2? Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: work 11849833, home 15872722 --- * Origin: У этой машины нет проблем с глюками! (2:5093/61) — RU.COMPRESS From : Vadim Vygovsky 2:5022/12.8 10 Dec 98 21:47:43 To : Bulat Ziganshin Subj : cabarc Hello, Bulat! Среда Декабрь 09 1998 14:28, Bulat Ziganshin wrote to Vadim Vygovsky: BZ> Tuesday December 08 1998, Vadim Vygovsky writes to Bulat Ziganshin: VV>> Булат, а расколись-ка насчет своего arjz, а то вся моя информация VV>> о нем сильно обрывочна. Особо интересует принцип сортировки VV>> файлов, поскольку в стародавние времена я сбацал простенький VV>> препроцессор, который формировал отсортированный файллист для VV>> подсовывания его RARу (с опцией -ds). Эффект был до 5-7% (для RAR VV>> 1.5X, для 2.0X с большим словарем, естественно, меньше). BZ> Norton Directory Sort помнишь? Там была своя система для обозначения BZ> порядка сортировки: n - Name, e - Extension, s - Size и т.д. В rar BZ> 1.5x сортировка была "en", в rar 2.xx - "gen" (это уже моя BZ> терминология, "g" означает номер строки в rarfiles.lst). В то же время BZ> хорошо известно, что иногда выигрыш дает "ges". Остается найти BZ> формулу, которая объединяет преимущества обоих подходов. Формула у BZ> меня вышла такая - сначала сортируем/группируем по "ge", затем внутри BZ> каждой группы находим подгруппы файлов с одинаковыми 2-3 буквами в BZ> начале, внутри таких подгрупп файлов делаем сортировку по имени, BZ> файлы, которые не попали в какую-либо подгруппу, сортируем внутри BZ> групп по размеру. Understand? Угу. Я примерно так и делал, только сначала просматривал начало каждого файла и по результату делал 3 группы: тексты на латинице / тексты кириллические (смешанные) / бинарники. Потом в каждой группе сортировал по esn. Была идея сортировать по корелляции между словарями по каждому файлу, но это уже не воплотилось... WBR, Vadim --- * Origin: Член лиги Компрессуальных Извращенцев (2:5022/12.8) — RU.COMPRESS From : Dmitry Subbotin 2:5020/978.10 11 Dec 98 05:10:14 To : Bulat Ziganshin Subj : А кто собственно _теоретически_ лучший из LZ? Hi, Bulat! "Bulat Ziganshin" sendTo: "Dmitry Subbotin" when: [08 Dec 98] msg: DS>> по секрету скажу, что улучшить сжатие экзешников на 30-40% вполне DS>> реально... но для этого требуется довольно навороченый алгоритм. DS>> подробнее не расскажу. ;) BZ> Разбор команд? ага BZ> Про это все говорят, но никто не делает. почему никто? делают. вон видишь, уже есть оценки возможных результатов. ;) Taste you later, [Team любители жареной человечины] morf. [Team наедем и переедем] --- GoldED 2.50+ * Origin: А вот и нету тут никакого ориджина! (2:5020/978.10) — RU.COMPRESS From : Dmitry Subbotin 2:5020/978.10 11 Dec 98 05:11:41 To : Professor Nimnull Subj : А кто собственно _теоретически_ лучший из LZ? Hi, Professor! "Professor Nimnull" sendTo: "Dmitry Subbotin" when: [08 Dec 98] msg: PN>>> Самые лyчший это aPack. Он использyет lazy LZB with ~55Kb DS>> + исправление относительных адресов в near jmp/call'ах на DS>> абсолютные. что и дает аПаку преимущество над аналогичными DS>> упаковщиками примерно на 5%. PN> Для тyпого (те для меня) нельзя ли объяснить, как это? да просто - ищем в экзешнике все E8 и Е9 и прибавляем к следующему за ними слову его смещение. при раскодировании вычитаем. смысл тут в том, что после такой операции два call'а или jmp'а на один адрес представляются одними и теми же байтами и могут лемпел-зивиться. PN>>> А я вот сижy и дyмаю: использовать в своем паковщике LZB или PN>>> поискать что нибyдь полyчше... DS>> по секрету скажу, что улучшить сжатие экзешников на 30-40% вполне DS>> реально... но для этого требуется довольно навороченый алгоритм. DS>> подробнее не расскажу. ;) PN> Вот вот по секpетy хочy Ж:D алгоpитм такой :)) дизассемблирование + раздельное cжатие частей команд + LZ?? + можно еще кой-чего. а подробнее не расскажу потому что сам еще толком не знаю как это писать. ;) DS>> имхо брать RAR/ZIP бессмысленно. в экзешниках энтропия символов DS>> ~80-90%... дожимание ее хаффманом не даст почти ничего. более DS>> аккуратное кодирование длин/смещений - тоже. PN> А какие есть пpедложения? я же говорю - или делать то, что делают все (т.е. LZB с припарками), или не задавать глупых вопросов в эхе и придумывать свой алгоритм. ;) Taste you later, [Team любители жареной человечины] morf. [Team наедем и переедем] --- GoldED 2.50+ * Origin: А вот и нету тут никакого ориджина! (2:5020/978.10) — RU.COMPRESS From : Bulat Ziganshin 2:5093/26 11 Dec 98 07:15:45 To : Vadim Vygovsky Subj : cabarc *** Answering a msg posted in area CARBON_COPIES (CARBON_COPIES). * Crossposted in RU.COMPRESS Hello Vadim! Thursday December 10 1998, Vadim Vygovsky writes to Bulat Ziganshin: VV> Угу. Я примерно так и делал, только сначала просматривал начало VV> каждого файла и по результату делал 3 группы: тексты на латинице / VV> тексты кириллические (смешанные) / бинарники. Потом в каждой группе VV> сортировал по esn. Была идея сортировать по корелляции между словарями VV> по каждому файлу, но это уже не воплотилось... esn - это все же отстой. В общем, идеи надо объединять. btw, никто не знает, как была устроена сортировка у UC2? И перебор порядков сортировки? Bulat, mailto:bulatz@fort.tatarstan.ru, ICQ: work 11849833, home 15872722 --- GoldED/386 2.50+ * Origin: После глубокого сна требуется продолжительный отдых (2:5093/26) — RU.COMPRESS From : Alex Wosk 2:50/523.17 11 Dec 98 09:23:53 To : Bulat Ziganshin Subj : Re: cabarc @RealName: Alexander Wosk Hello, Bulat! Чет Дек 10 1998 17:37, Bulat Ziganshin написал All: BZ> Второе - Microsoft поступила очень опрометчиво, дав нам библиотеки BZ> :) И еще третье - я как-то слабо в этом разбираюсь, их можно как-то BZ> утащить, скажем, под os/2? BZ> Провоцируешь offtopic ? Про эмуляцию Win на OS/2 молчу пока - уже и Win32 хорошо эмулируют на OS/2. Для 16-битных программ Windows в большинстве случаев можно было просто перетранслировать исх. текст (а у тебя его и нет, одни хидеры), так как API Windows и API Presentation Manager for OS/2 совпадали на 95%, а вот начиная с Win32 - фиг-вам. (IMHO наилучшим tools'ом для переноса старых Win'овских программ был Borland C++ for OS/2 (версию не помню), особенно программ с использованием OWL, и до сих пор если используешь всюду вместо API классы OWL- перенести программу можно без переписывания >90% кода - а вот с MFC - облом - Microsoft не любит ни какие другие платформы Ж:) BTW, слышал/читал/не помню где про кросс-платформенную эмуляцию ядра(и бинарников) Win32 на Java-машине - ищи subj - все платформы будут доступны твоим библиотекам. Hу скорость работы минимум в 10 раз меньше, ну глюков не оберёшься, зато интересно - и CABARC'овые архивы будут всюду доступны (может/быть) ! Bye, Alex --- * Origin: (2:50/523.17) — RU.COMPRESS From : Vadim Yoockin 2:5020/1042.50 11 Dec 98 22:58:20 To : Maxime Zakharov Subj : Universal codes Пpиветствую, Maxime! 08 Dec 98, Maxime Zakharov писал к Vadim Yoockin: MZ> Friday December 04 1998 20:30, Vadim Yoockin wrote to Professor Nimnull: VY>> Скорее всего он тебе и ответит. Заодно, может быть, опишет очень MZ> Вpоде yже ответил... Видимо, почта где-то у моих аплинков застревает ;( VY>> похожие Even-Rodeh codes (для менее крутой кривой распределения MZ> ^^^^^^^^^^ MZ> что-то не пpипомню таких, веpнее, не связывается имя ни с одним кодом MZ> :( Hе напомнишь ? Как ни странно, остались неохваченными Elias omega codes. Их (как и Even-Rodeh codes) отличие от Elias gamma/delta codes - в том, что они обходятся без унарных кодов. Объсню на примере декодирования, которое для Elias omega codes происходит так: Пусть имеем последовательность бит bit[]. Hужно получить число n. Пусть Value(i,n) - функция, возвращающая число из очередных n бит из потока по смещению i. n = 1; i = 0; while( bit[i] == 1 ) { i += (n+1); n = Value(i-n-1,n+1); } Hапример, число 100 будет записано как 10 110 1100100 0 (последний бит - всегда 0). Число 0 в Elias omega codes непредставимо, если не выравнивать, конечно (на это есть biased EWC). Even-Rodeh codes отличаются тем, что в каждой группе битов записывается полная длина следующей группы, а не длина без учета лидирующей '1'. А также тем, что задается начальное кол-во битов для кодирования длин. Если это кол-во равно 3, то число 100 запишется как 111 1100100 0. MZ> все по пpефиксным кодам выложено y меня на стpаничке (в оpигине). Спасибо, я видел. Всего доброго. Vadim Yoockin ... 2.000.000 Lemmings can't be wrong. --- Стаpый Дед стоимостью 3.00.Alpha4 доплата в СКВ UNREG * Origin: yoockinv@mtu-net.ru (2:5020/1042.50) — RU.COMPRESS From : Vadim Yoockin 2:5020/1042.50 11 Dec 98 23:02:17 To : Leonid Broukhis Subj : Re: Universal codes Пpиветствую, Leonid! 08 Dec 98, Leonid Broukhis писал к Vadim Yoockin: LB> Ты Левенштейна не позорь. В приведенном тобой коде нужно 2 * (n - 1) LB> бит, а в коде Левенштейна - (n - 1) + log(n - 1) + log log(n - 1) + ... + LB> log*(n) + 1 бит, а это меньше. Вдогонку моему предыдущему ответу. К сожалению, оригинальную V.E.Levenstein "On the redundancy and delay of separable codes for the natural numbers" не читал. Видимо, разные авторы по-разному излагают Levenstein codes. Я приводил описание из статьи "Punctured Elias codes..." Фенвика. Трактовка Кричевского больше всего напоминает Elias delta codes из этой статьи (в прошлом письме была опечатка - не omega, а delta). Всего доброго. Vadim Yoockin ... 2.000.000 Lemmings can't be wrong. --- Стаpый Дед стоимостью 3.00.Alpha4 доплата в СКВ UNREG * Origin: yoockinv@mtu-net.ru (2:5020/1042.50) — RU.COMPRESS From : Leonid Broukhis 2:5020/400 12 Dec 98 08:15:24 To : Vadim Yoockin Subj : Re: Universal codes From: leob@asylum.mailcom.com (Leonid Broukhis) Vadim Yoockin wrote: > >>PN> 1) Elias Gamma codes (они же Левенштейна) > >> > >> Hа примере: > >> Пусть надо записать число 23 (00010111). > >> Переворачиваем биты без лидирующих нулей: 11101 > >> Записываем побитно так, что перед каждым битом числа, > >> кроме последнего, стоит нулевой бит флага: 010101001 > >> Так как последний бит всегда '1', он сигнализирует > >> об окончании флаговых битов. > >> > >> Правда, чаще встречается второй вариант - пишем n-1 нулей для > >> представления n значащих бит (т.е. начинающихся с '1') следом за > >> ними идущего числа. > > LB> Ты Левенштейна не позорь. В приведенном тобой коде нужно 2 * (n - 1) > LB> бит, а в коде Левенштейна - (n - 1) + log(n - 1) + log log(n - 1) + ... + > LB> log*(n) + 1 бит, а это меньше. > >Сдается мне, что ты путаешь Levenstein codes и Elias omega codes. >Последние были опубликованы на 7 лет позже. Я - не путаю. У Кричевского описано ровно то, что я сказал. Leo --- ifmail v.2.14dev2 * Origin: Demos online service (2:5020/400@fidonet) — RU.COMPRESS From : Vadim Yoockin 2:5020/1042.50 12 Dec 98 20:05:36 To : Bulat Ziganshin Subj : Re: cabarc Пpиветствую, Bulat! 09 Dec 98, Bulat Ziganshin писал к Vadim Yoockin: VY>> Мне, например, только за счет препроцессинга удалось довести сжатие VY>> некоторых больших exe-шников szip'ом до уровня cabarc'a. Специально VY>> поправленный bzip2 вместе с тем же препроцессором тоже близок к таким VY>> результатам (ему бы еще арифметический дожиматель...). VY>> Вроде я уже кидал сюда цифры. Или нет? BZ> Вроде ты об этом говорил. А алгоритмы? Алгоритм я тоже, кажется, вкратце описывал: E8, распознавание всякого рода табличек, плавающий размер блоков... В принципе, я собираюсь это дело предать гласности. Hадо только привести все в божеский вид. VY>> Еще можно, хотя не хочется из-за тормозов в расжатии, применить LZP. VY>> Впрочем, спорить не буду, адаптивные способности BWT отстают от LZ. BZ> bwt проигрывает lzh из-за большего размера блоков. Сильно уменьшить блок не стоит - сжатие bwt быстро ухудшается, а sliding window в bwt не сделаешь. BZ> Hадо искать способ передавать информацию от блока к блоку Пока не знаю, как это сделать достаточно эффективно. Для bwt ведь важно не только дожатие, но и чтобы все контексты кучковались вместе, в одном блоке. BZ> (для хаффмена, кстати, такие способы есть). Знаю, что можно кодировать только изменения дерева, но сам ни разу не пробовал это делать. Hе расскажешь в общих словах? Всего доброго. Vadim Yoockin ... 2.000.000 Lemmings can't be wrong. --- Стаpый Дед стоимостью 3.00.Alpha4 доплата в СКВ UNREG * Origin: yoockinv@mtu-net.ru (2:5020/1042.50)
Предыдущий блок Следующий блок Вернуться в индекс