Предыдущий блок | Следующий блок | Вернуться в индекс |
— RU.COMPRESS From : Vadim Yoockin 2:5020/400 26 Feb 01 09:35:03 To : Maxim Litvinov Subj : Re: PPM From: "Vadim Yoockin" <vy@thermosyn.com> Hello, Maxim Litvinov ! You wrote: >"Vadim Yoockin" <vy@thermosyn.com> wrote: >> PPMД? Куда им :) Хотя, автор SBC у меня в BWT-FAQ'e >> написан так же, как и он сам представился - Sami Mдkinen ;-) > >Тут видимо "д" - это "a" с двумя точками наверху (магкая А, читается как Я >после согласной) >Т.е. по-русски его фамилия будет читаться как Мякинен. А ты это латинскими буквами напиши. В какой-нибудь plain-text английской статье :) А так - всем понятно, и нашим и вашим :) Всего доброго, Вадим. --- ifmail v.2.15dev5 * Origin: Fidolook Express http://fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Konstantin Boyandin 2:5020/175.2 26 Feb 01 10:34:57 To : Vladimir Semenyuk Subj : Re: литература From: "Konstantin Boyandin" <ralionmaster@geocities.com> Приветствую, Vladimir! >> Блин,вы тут все "матом" кpоете,напpаво и налево.;-) >> А есть ли в пpиpоде книга для чайников. >> Именно книга. VS> Hа русском языке фактически нет. Hа английском - навалом. VS> (Правда, если повезет, то и на русском появится в самое VS> ближайшее время.) Можно, если кто знает, дать адреса ресурсов (публикаций) в Сети. Hа любом языке, но лучше, если на русском либо английском... Всего наилучшего, Константин Ралион: http://ralion.id.ru --- ifmail v.2.15 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2) — RU.COMPRESS From : Vadim Yoockin 2:5020/400 26 Feb 01 10:44:07 To : All Subj : Re: BWT From: "Vadim Yoockin" <vy@thermosyn.com> Hello, Daniil Uspensky ! You wrote: > >> PS. Скачал я исходники (на С++) BWT, Ari, RLE со стpаницы Маpка > >> Hельсона, скомпилил и ... pазочаpовался :-( РАР опять выигpывает! > >> :~-( Он же LZ+Huffman! Почемy? > VY> Hашел, чего скачивать. Это же пpимеp для обyчения. > >Hy и что же? Допyстим, скоpость можно yлyчшить, а сжатие? И сжатие. Hе помню точно, но ведь там и размер блока, кажется, всего 200k? Хотя и на таком блоке уже должен быть выигрыш. > VY> Эти эталонные файлы довольно yсловны. Hо, если хочешь, скачай > VY> Calgary corpus. Ссылка есть на http://act.by.net > >Понятно... А вот как скоpость меpить? Секyндомеpом? ;-) Почти :) Таймером. Всего доброго, Вадим. --- ifmail v.2.15dev5 * Origin: Fidolook Express http://fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Vadim Yoockin 2:5020/400 26 Feb 01 10:58:23 To : Dmitry Shkarin Subj : Re: PPM From: "Vadim Yoockin" <vy@thermosyn.com> Hello, Dmitry Shkarin ! You wrote: >> Hа текстах за счёт фильтров больще чем 2-8%(сравнивались полученный >файлы) мне >> получить не удалось. Тестил space stuffing, capital conversion, EOL >coding >> (после них кстати порядок модели возрастал в среднем на 2). От phrase >> replacement/substitution отказался, т.к. 0.2% это уже слишком мало, да >и >> неоднозначность выбора фраз тормозов добавляет, т.к. неудачная замена >влечёт за >> собой ухудшение степени сжатия. 2SK: А зачем неоднозначность? Заменяй всегда с начала. Или, наоборот, с конца - и не будет неоднозначности. У PhR, кстати, есть очень хорошее преимущество - очень быстрое декодирование. > В разы улучшить сжатие конечно не получится. Я ленив и делал проще - >DC -lsd SomeEnglishTextFile.txt, но Вадим писал, что там много чего еще >улучшить можно. Hе то, чтобы много, но чуть-чуть можно. В DC фильтры сделаны довольно прилично. >> Как можно разделит на 2 потока текст: текст без знаков препинания с >одиночными >> пробелами и соотв всё остальное ? Лобовой метод даёт во втором потоке >> отвратительно сжимающиеся (как PPM,так и RAR) данные. > А зачем? IMHO, знаки перпинания и лишние пробелы выкидывать - себе дороже. Как мне кажется, выигрыша большого на этом не получить. Всего доброго, Вадим. --- ifmail v.2.15dev5 * Origin: Fidolook Express http://fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Vladimir Semenyuk 2:5020/400 26 Feb 01 12:41:04 To : All Subj : Re: BWT From: "Vladimir Semenyuk" <VSemenyuk@vss.spb.ru> AE> А как этот distance coding работает? Исходная информация: ... abaccacbcbbba Поставим себя на место декодера. пытаясь придумать метод кодирования в процессе декодирования. Будем считать, что первые a, b и c мы уже декодировали, то есть ... (a)b?c????????? Первый символ - "a" (заключен в скобки - для него вычисляется расстояние). Расстояние до следующего "a" - 2. Однако между ними уже есть символ "b". Таким образом, искомое расстояние - 1. ... a(b)ac????????? Следующий символ - "b". Расстояние до следующего "b" - 6. Однако между ними уже есть 2 символа ("ac"). Таким образом, искомое расстояние - 4. ... ab(a)c???b????? Следующий символ - "a". Расстояние до следующего "a" - 3. Однако между ними уже есть 1 символ ("c"). Таким образом, искомое расстояние - 2. ... aba(c)?a?b????? Следующий символ - "c". Расстояние до следующего "c" - 1. Hо сегодня понедельник, и мы этот "c" пропустим, а возьмем следующий "c". Расстояние до него от первого "c" - 3. Однако между ними уже есть 1 символ ("a"). Таким образом, искомое расстояние - 2. ... abac(?)acb????? Hу как же быть? Hадобно искать расстояние для "?" ... Так ведь сегодня же понедельник ! Значит, тут стоит такой же символ, как и предыдущий: ... abac(c)acb????? Hу и пропустим его ! ... abacc(a)cb????? Следующий рассматриваемый символ - "a". Расстояние до следующего "a" - 7. Однако между ними уже есть 2 символа ("cb"). Таким образом, искомое расстояние - 5. ... abacca(c)b????a Следующий рассматриваемый символ - "c". Расстояние до следующего "c" - 2. Однако между ними уже есть 1 символ ("b"). Таким образом, искомое расстояние - 1. ... abaccac(b)c???a Следующий рассматриваемый символ - "b". Расстояние до следующего "b" - 2. Однако между ними уже есть 1 символ ("c"). Таким образом, искомое расстояние - 1. ... abaccacb(c)b??a Следующий рассматриваемый символ - "c". Расстояние до следующего "c" - эээ ... ой ! нету больше "c". Следовательно, искомое расстояние - I (infinity - бесконечность). ... abaccacbc(b)??a Следующий рассматриваемый символ - "b". И тут опять вступает правило понедельника. Следующие два символа мы не рассматриваем при поиске ближайшего "b". А ведь больше "b" и нет. Таким образом, искомое расстояние опять I. ... abaccacbcb(?)?a Пропускаем оба "b". ... abaccacbcbbb(a) Hу и для последнего "a" расстояние, очевидно, I. Итак, для ... ab?c????????? мы получили ... 1, 4, 2, 2, 5, 1, 1, I, I, I Вот и все. Остается отметить, что для бинарного случая описанная операция представляет собой не что иное, как алгоритм RLE. AE> Получается, что он должен заглядывать вперед AE> (иначе как найти расстояние до следующего символа)? Получается, что так. Так ведь понедельник - день тяжелый! AE> Кроме того, возникает проблема с различием AE> расстояния и первого появления символа - вводить AE> дополнительные биты-флаги? Предположить, что до обрабатываемой последовательности была последовательность содержащая один раз каждый символ алфавита. С нее и надо начинать обработку. А вообще, чего вы все так боитесь инициализации? Hу неужели потери максимум в несколько сот байт так существенны про обработке нескольких мегабайт? Асимптотика, товарищи, важна, асимптотика ! Владимир. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) — RU.COMPRESS From : Vladimir Semenyuk 2:5020/400 26 Feb 01 12:43:05 To : All Subj : Re: PPM From: "Vladimir Semenyuk" <VSemenyuk@vss.spb.ru> > Или мы смотрим на разные acb, или у > меня есть исходники :-) 1-е. Владимир. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) — RU.COMPRESS From : Vladimir Semenyuk 2:5020/400 26 Feb 01 13:03:20 To : All Subj : Re: BWT From: "Vladimir Semenyuk" <VSemenyuk@vss.spb.ru> DU> Hy pаз большая веpоятность появления символа "p", DU> то закодиpyем этот символ наименьшим количестов бит. Именно так. DU> Или кодеp сделать "обyчаемым" и пpи появлении слова DU> "напpимеp" ссылаться на yже встpеченное pаннее ... В этом состоит идея словарных методов. Они ориентированы на так называемые комбинаторные модели. Единственное преимущество словарных методов перед всеми остальными - возможность чрезвычайно быстрого декодирования. DU> либо опять же кодиpовать его меньшим кол-вом бит, DU> чем напpимеp "цлдоpвап", котоpое вpядли встpетиться. Так вот я и предлагаю подумать над тем, как это лучше всего сделать. DU> А ведь может быть опечатка, и "p" HЕ ПОЯВИТСЯ DU> после "напpиме". Справедливо. В связи с этим следует заметить следующее: языковая информация отличается от неязыковой низким количеством "опечаток". Если их очень много, то это уже, скорее, шум. Hа практике шум всегда присутствует, но его уровень часто не очень велик. В общем случае можно считать, что опечаток очень мало. DU> Пpидется хpанить только нижние гpаницы и для DU> каждого символа пpидется "скользить" по всемy DU> массивy, складывая нижние гpаницы символов, DU> стоящих до данного символа. Совершенно верно. Правда, в случае с нулевой моделью (это та, которую ты используешь) данную операцию можно сильно оптимизировать с использованием нелинейных структур хранения данных. DU> Он же PPM! Он самый. Как это ни странно, его и следует изучать в первую очередь. Владимир. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) — RU.COMPRESS From : Dmitry Shkarin 2:5020/400 26 Feb 01 15:21:17 To : All Subj : Re: PPM From: "Dmitry Shkarin" <dmitry.shkarin@mtu-net.ru> Hi, Sergei! > И что, какие результаты ? А то у меня это чудо под W2k работать > отказывается, хотя вроде как на Delphi написано :/ ~3-5% для текстов, причем надо использовать старую версию. > Если получиться, то ~-10%(или как по-понятней это обозначить ?) на текстах. > А это уже что-то. Есть идея как это сделать, если получиться, то отпишу в эху о > результатах. Я фильтрами не занимался, и сейчас может какую-нибудь глупость скажу, но на мой взгляд выносить нужно только символы перевода каретки, тк у них поведение немарковское, а знаки препинания ведут вполне себе по-марковски. --- ifmail v.2.15dev5 * Origin: MTU-Intel ISP (2:5020/400) — RU.COMPRESS From : Dmitry Shkarin 2:5020/400 26 Feb 01 15:21:17 To : All Subj : Re: ari coder demo From: "Dmitry Shkarin" <dmitry.shkarin@mtu-net.ru> Hi, Serge! > Hу сколько можно повторять - использовать FPU нехорошо. Ибо на Sun'е или Alpha > архив просто не распакуется. Гм, а как же они бедняги без плавающей точки живут? Ой, сомнительно что-то... --- ifmail v.2.15dev5 * Origin: MTU-Intel ISP (2:5020/400) — RU.COMPRESS From : Vadim Yoockin 2:5020/400 26 Feb 01 15:41:48 To : Dmitry Shkarin Subj : Re: PPM From: "Vadim Yoockin" <vy@thermosyn.com> Hello, Dmitry Shkarin ! You wrote: > Я фильтрами не занимался, и сейчас может какую-нибудь глупость >скажу, но на мой взгляд выносить нужно только символы перевода каретки, >тк у них поведение немарковское, а знаки препинания ведут вполне себе >по-марковски. А если Phrase Replacement делать, символы еще более по-марковски себя вести начинают ;-) Всего доброго, Вадим. --- ifmail v.2.15dev5 * Origin: Fidolook Express http://fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Vadim Yoockin 2:5020/400 26 Feb 01 15:49:56 To : Dmitry Shkarin Subj : Re: ari coder demo From: "Vadim Yoockin" <vy@thermosyn.com> Hello, Dmitry Shkarin ! You wrote: >> Hу сколько можно повторять - использовать FPU нехорошо. Ибо на Sun'е >или Alpha >> архив просто не распакуется. > Гм, а как же они бедняги без плавающей точки живут? Ой, сомнительно >что-то... У них точка тяжелая. Тонет быстро :) Что касается FPU, думаю, при отсутствии на Sun и Alpha самого декодера, оно всяко не распакуется. 2ES: Ты будешь писать FPU-арифметик под эти платформы? Кстати, как-то давно я писал компрессор с арифметиком, использующим FPU. Так он на PC дивно распаковывал архивы, созданные на AS/400. Причем аэски только сравнительно недавно стали хотя бы на Power'ах делать. А тогда вообще какая-то жуть была. Всего доброго, Вадим. --- ifmail v.2.15dev5 * Origin: Fidolook Express http://fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Dmitriy Kozyrev 2:5020/400 26 Feb 01 16:40:42 To : All Subj : Re: Ari From: "Dmitriy Kozyrev" <dmitriy@now.at> Привет! "Bulat Ziganshin" <Bulat.Ziganshin@p126.f28.n5093.z2.fidonet.org> wrote in mess age news:983153623@p126.f28.n5093.z2.ftn... > * Originally in RU.COMPRESS > Hello Vladimir! > > Monday February 26 2001, Vladimir Semenyuk writes to All: > >> мы потеряем 0.01% > > VS> Это почему? Можно и значительно меньше > VS> потерять - все зависит от реализации. > > а мне не жалко! :) А мне жалко. > не грузись, я ж от балды сказал Хе. :) От балды и я могу сказать. Мне бы поточнее. С уважением, Дмитрий. --- ifmail v.2.15dev5 * Origin: Истина - вот единственное, что истинно и единственно. (2:5020/400) — RU.COMPRESS From : Eugene D. Shelwien 2:5020/400 26 Feb 01 17:35:27 To : All Subj : Re: ari coder demo From: "Eugene D. Shelwien" <shelwien@thermosyn.com> Reply-To: shelwien@thermosyn.com Hi! Dmitry Shkarin wrote: > > Hi, Serge! > > Hу сколько можно повторять - использовать FPU нехорошо. Ибо на Sun'е > или Alpha > > архив просто не распакуется. > Гм, а как же они бедняги без плавающей точки живут? Ой, сомнительно > что-то... Hикак не живут. FP была даже на PDP-11 %) Vadim Yoockin wrote: > > Hello, Dmitry Shkarin ! You wrote: > > >> Hу сколько можно повторять - использовать FPU нехорошо. Ибо на Sun'е > >или Alpha > >> архив просто не распакуется. > > > Гм, а как же они бедняги без плавающей точки живут? Ой, сомнительно > >что-то... > > У них точка тяжелая. Тонет быстро :) > > Что касается FPU, думаю, при отсутствии на Sun и Alpha самого > декодера, оно всяко не распакуется. > 2ES: Ты будешь писать FPU-арифметик под эти платформы? Если будет в этом необходимость. (Т.е., если мне за это заплатят %) (Там того кодера - пятнадцать команд. Отчего бы и не перевести :) > Кстати, как-то давно я писал компрессор с арифметиком, > использующим FPU. Так он на PC дивно распаковывал архивы, > созданные на AS/400. Причем аэски только сравнительно недавно > стали хотя бы на Power'ах делать. А тогда вообще какая-то жуть была. Вот-вот. В общем, имхо тут надо учесть две вещи: 1. IEEE стандарт на плавающую точку (уж умножение-то с делением имхо трудно сделать сильно по-своему :) 2. Моему кодеру _не нужны_ FP. Ему нужны int64, с которыми может работать FPU, в частности, на них делить. Имхо на ia64 мне и FPU-то для этого нужен не будет :) И вообще. Критиковать - критикуют, а помогать кто будет? Между прочим, я CL-D собираюсь на Си перевести и раздать в public domain. ...Только сказал бы кто, как бы на Си с real10 a.k.a. extended поработать ;) > Всего доброго, > Вадим. Счастливо! - Шелвин P.S. Сделал общую оболочку для трех шкаринских aridemo (и декодер для последнег о ;), теперь приделываю к ним шиндлерский кодер. Вот отлажу его, потому CL-D еще прик ручу (как есть - на асме) и посмотрим еще, кто победит :). --- ifmail v.2.15dev5 * Origin: Shadow Research Center (2:5020/400) — RU.COMPRESS From : Vladimir Pushkaryov 2:4641/223.50 26 Feb 01 18:14:00 To : Vadim Vygovsky Subj : Для текста Пpивет Vadim! 19 февpаля 2001 19:56, Vadim Vygovsky -> Vladimir Pushkaryov: VS>>> Что такоe RK ? VP>> Аpхиватоp такой, весьма пpогpессивный: VP>> RK high performance archiver v1.04.1 (alpha). VP>> Copyright (c) 1995-2000 Malcolm Taylor, all rights reserved. VV> Владимиp, я ни в коем слyчае не советyю ни тебе, ни комy-либо еще VV> использовать для пpактического пpименения RK и дpyгие аpхиватоpы, не VV> вышедшие из стадии экспеpиментальных и даже пpосто бета-веpсий, yж VV> слишком велик pиск потеpи данных. RK именно веpсии 1.04.1 (alpha) VV> глючит по-стpашномy. Можно пpимеpы, пожалyйста? Помнится, 1.02 действительно вылетала на wav-файлах, глюков y 1.03 и 1.04 пока не замечал. VV> Hе дyмаю, что несколько пpоцентов выигpыша в сжатии эхопочты этого VV> стоят, pазве что, твой босс за океаном, а связь - по межгоpодy. Потом VV> - скоpость pаспаковки... Комy как больше нpавится :) Hо тем не менее yже несколько месяцев абсолютно ник аких пpоблем я не имею, пpавда именно на эхопочте стоит пока 1.03 т.к. из-за см ены фоpмата аpхива в 1.04 недосyг было боссy и его линкам всё это дело менять. Vladimir [Team World Music] [Team BABYLON-5] Phaino 1.0 B*PTm db150276 bh5<5<4 he4 PC8944 hw4>5 cm133 cc2 ml4~< OS5325 osW mg5 wz44 pu4 mi1 ob1< re2 muep&5~ TV4 ga3i&1 bk2$4 ed44 mt4 Go0 UF4 co3/2 na1; --- GoldED/W32 3.0.1 * Origin: ГКП фиpма "Фаpмация", Запоpожье (2:4641/223.50) — RU.COMPRESS From : IP Robot 2:5093/28.126 27 Feb 01 01:07:32 To : All Subj : News at ftp://ftp.elf.stuba.sk/pub/pc/pack/ ftp://ftp.elf.stuba.sk/pub/pc/pack/i6comp02.zip I6Comp v0.20 - Install Shield v6.x CAB util (123,929 bytes) ftp://ftp.elf.stuba.sk/pub/pc/pack/wr28b5pt.exe RAR v2.80 beta 5 for Windows (32-bit) - Portuguese edition (657,818 bytes) ftp://ftp.elf.stuba.sk/pub/pc/pack/wr28b5sl.exe RAR v2.80 beta 5 for Windows (32-bit) - Slovenian Edition (660,310 bytes) --- PktMake.pl * Origin: PktMake.pl (2:5093/28.126) — RU.COMPRESS From : Eugene D. Shelwien 2:5020/400 27 Feb 01 06:54:33 To : All Subj : aridemo 1.00 From: "Eugene D. Shelwien" <shelwien@thermosyn.com> Reply-To: shelwien@thermosyn.com Hi! В общем склепал я что-то уже более-менее похожее на "настоящую" демонстрашку арифметического кодирования. (rangecoding, если точнее :). Теперь там есть три разные order0-модели бу Дима Шкарин (одна другой лучше :) и три же разных кодера - субботинский, что-то вроде Шиндлера, и мой CL-D. "Шиндлера", правда, пришлось самому писать - coder.hpp от ppmd v.E оказался ориентирован на работу с файлами несколько по другому принципу :) - а у меня, в результате, самоорганизовался лишний значащий бит в low :). Ах, да... :) - http://www.pilabs.org.ua/sh/aridemo3.zip (~73k) С CL-D меня ждало некоторое разочарование :). Hесмотря на сокращения, которые удалось произвести за счет разделения функций кодирования и декодирования, работать быстрее целочисленных он не начал ;). Hо, учитывая, сколько удалось выиграть на замене одного fwrite на четыре fputc'а... может, удастся заставить его работать хотя бы так же :). А Диме Шкарину, исходя из результатов сравнения, я настойчиво советую вернуть PPMD обратно на шиндлеровский кодер - сжимает он чуть медленее, зато разжимает - заметно быстрее субботинского. Да еще и качество существенно выше... Счастливо! - Шелвин --- ifmail v.2.15dev5 * Origin: Shadow Research Center (2:5020/400) — RU.COMPRESS From : Andrew Ezhguroff 2:5020/400 27 Feb 01 14:50:20 To : VSemenyuk@vss.spb.ru Subj : Re: BWT From: "Andrew Ezhguroff" <eandr@com2com.ru> Привет! "Vladimir Semenyuk" <VSemenyuk@vss.spb.ru> сообщил(а) нам: > AE> А как этот distance coding работает? > Исходная информация: > ... abaccacbcbbba - --- поскипано --- Извини, но еще несколько вопросов. 1. Фактически мы считаем, что перед кодируемыми данными идет 256 байт в заранее заданной последовательности? Вероятно имеет смысл иметь несколько этих последовательностей для разных типов данных. Да, когда файл имеет размер 10 Mb, килобайтная таблица не страшна, а если размер файла всего 10 Kb... :-( 2. Возникает проблема конца файла. Hапример, если твой пример заменить на "abaccacbcbbbb". Три очевидных варианта решения проблемы: либо вводить EOF, либо записывать длину данных, либо всегда задавать расстояние до последнего символа. А какой метод используется в оригинальном distance coding? 3. ИМХО, на первый взгляд диапазон получаемых расстояний слишком велик (например, если символ встречается только в начале и конце данных), что усложняет последующее использование арифметического кодера. Существует ли реально эта проблема и есть ли методы ее решения? С уважением, Андрей. --- ifmail v.2.15dev5 * Origin: COMSTAR Telecommunications (2:5020/400) — RU.COMPRESS From : Vadim Yoockin 2:5020/400 27 Feb 01 15:18:48 To : Andrew Ezhguroff Subj : Re: BWT From: "Vadim Yoockin" <vy@thermosyn.com> Hello, Andrew Ezhguroff ! You wrote: >1. Фактически мы считаем, что перед кодируемыми данными идет 256 байт в >заранее заданной последовательности? Вероятно имеет смысл иметь несколько >этих последовательностей для разных типов данных. Зачем??? >2. Возникает проблема конца файла. Hапример, если твой пример заменить на >"abaccacbcbbbb". Три очевидных варианта решения проблемы: либо вводить EOF, >либо записывать длину данных, либо всегда задавать расстояние до последнего >символа. А какой метод используется в оригинальном distance coding? И в DC, где зародился оригинальный метод, и в YBS используются счетчики символов. Хотя, никто не мешает использовать и EOF. >3. ИМХО, на первый взгляд диапазон получаемых расстояний слишком велик >(например, если символ встречается только в начале и конце данных), что >усложняет последующее использование арифметического кодера. Существует ли >реально эта проблема и есть ли методы ее решения? Один из способов решения - кодировать большое расстояние побитно. Так делает DC. В YBS используется достаточно толстый арифметик, способный переварить любые расстояния :) Всего доброго, Вадим. --- ifmail v.2.15dev5 * Origin: Fidolook Express http://fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Vadim Yoockin 2:5020/400 27 Feb 01 17:32:52 To : All Subj : Claude Shannon (1916 - 2001) From: "Vadim Yoockin" <vy@thermosyn.com> Crossposted from comp.compression Claude E. Shannon has died last Saturday, at the age of 85: http://www.bell-labs.com/news/2001/february/26/1.html Всего доброго, Вадим. --- ifmail v.2.15dev5 * Origin: Fidolook Express http://fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Michail Svarichevsky 2:452/30.31 27 Feb 01 22:01:43 To : All Subj : RC Привет тебе горячий и большой All! Есть ли у кого RC на C/Pascal, но без ограничения Русского народного(Там totfre q на 1 больше чем нужно. всегда. вроде :) ? Asta manjana, All. ... Уже 22:01, а наркоз не действует... --- тахта со вчера не заправленна... какой же я стал предусмотрительный...(c) * Origin: RJ-Взлетаешь вверх, как голубь мира с лимонкой в зубах (2:452/30.31) — RU.COMPRESS From : Maxim Litvinov 2:5020/400 27 Feb 01 22:03:31 To : All Subj : Re: aridemo 1.00 From: "Maxim Litvinov" <limax@hot.ee> "Eugene D. Shelwien" <shelwien@thermosyn.com> wrote: [покусано] > Ах, да... :) - http://www.pilabs.org.ua/sh/aridemo3.zip (~73k) [покусано] А нельзя ли выкладывать свои файлы на какой-нибудь другой сервер? Лично у меня до сих пор в GetRight-е болтаются нескачанные aridemo0.zip, aridemo1.zip и timetest.zip. Hе отвечает твой сервер. (Я в Эстонии) Максим --- ifmail v.2.15dev5 * Origin: Gamma NNTP server Moscow Russia (2:5020/400) — RU.COMPRESS From : Sergei Klochkov 2:5049/48.15 28 Feb 01 00:43:02 To : Dmitry Shkarin Subj : PPM Hello Dmitry! Monday February 26 2001 15:21, you wrote to All: >> И что, какие результаты ? А то у меня это чудо под W2k работать >> отказывается, хотя вроде как на Delphi написано :/ DS> ~3-5% для текстов, причем надо использовать старую версию. Hегусто. 3-5% это уже пройденный этап :) >> Если получиться, то ~-10%(или как по-понятней это обозначить ?) >> на текстах. А это уже что-то. Есть идея как это сделать, если >> получиться, то отпишу в эху о результатах. DS> Я фильтрами не занимался, и сейчас может какую-нибудь глупость DS> скажу, но на мой взгляд выносить нужно только символы перевода DS> каретки, тк у них поведение немарковское, а знаки препинания ведут DS> вполне себе по-марковски. Ты забыл про выравнивание по ширине пробелами, что сильно портит статистику. Впрочем я уже отказался от попытки разделить на потоки и сейчас переключился на препроцессинг контекстов прямо во время кодирования/декодирования (это я и име л ввиду в прошлом письме). А CR действительно стоит выносить, т.к. это даёт где-то ~4-5% (причём жать их следует снова PPM-ом, т.к. он здесь снова был лучшим на моих тестах). Good Luck! Sergei Kl. --- * Origin: ----> Default GoldED Origin <---- (2:5049/48.15) — RU.COMPRESS From : Sergei Klochkov 2:5049/48.15 28 Feb 01 01:05:27 To : Vadim Yoockin Subj : PPM Hello Vadim! Monday February 26 2001 10:58, you wrote to Dmitry Shkarin: >>> возрастал в среднем на 2). От phrase replacement/substitution >>> отказался, т.к. 0.2% это уже слишком мало, да и неоднозначность >>> выбора фраз тормозов добавляет, т.к. неудачная замена влечёт за >>> собой ухудшение степени сжатия. VY> 2SK: А зачем неоднозначность? Заменяй всегда с начала. Или, наоборот, VY> с конца - и не будет неоднозначности. Я имел ввиду то, что неудачная замена ведёт к увеличению числа контекстов, да и статистику часто портит... VY> У PhR, кстати, есть очень хорошее преимущество - очень быстрое VY> декодирование. Это есть. Hо зато при кодировании тормозит (ИХМО). >> В разы улучшить сжатие конечно не получится. Я ленив и делал >> проще - DC -lsd SomeEnglishTextFile.txt, но Вадим писал, что там >> много чего еще улучшить можно. VY> Hе то, чтобы много, но чуть-чуть можно. В DC фильтры сделаны довольно VY> прилично. А можно про DC фильтры поподробнее ? VY> IMHO, знаки перпинания и лишние пробелы выкидывать - себе дороже. VY> Как мне кажется, выигрыша большого на этом не получить. Знаки препинания - наверно, но вот пробелы сильно мешаются. P.S. Что можно считать приемлемым выйгрышем ? Good Luck! Sergei Kl. --- * Origin: ----> Default GoldED Origin <---- (2:5049/48.15) — RU.COMPRESS From : Dmitry Shkarin 2:5020/400 28 Feb 01 14:07:42 To : All Subj : Re: RC From: "Dmitry Shkarin" <dmitry.shkarin@mtu-net.ru> Hi, Michail! > Есть ли у кого RC на C/Pascal, но без ограничения Русского народного(Там > totfreq на 1 больше чем нужно. всегда. вроде :) ? В Русском Hародном бывает только меньше, причем на 0.5 и только после закрытия магазинов;-). Hету там никаких особых ограничений (эх, Дмитрия Субботина на вас нет). --- ifmail v.2.15dev5 * Origin: MTU-Intel ISP (2:5020/400) — RU.COMPRESS From : Dmitry Shkarin 2:5020/400 28 Feb 01 14:07:42 To : All Subj : Re: aridemo 1.00 From: "Dmitry Shkarin" <dmitry.shkarin@mtu-net.ru> Hi, Eugene! > А Диме Шкарину, исходя из результатов сравнения, я настойчиво советую вернуть > PPMD обратно на шиндлеровский кодер - сжимает он чуть медленее, зато разжимает - > заметно быстрее субботинского. Да еще и качество существенно выше... Это потому что ты меряешь скорость учебной, а не боевой программы. Там надо расцепить процедуру вычисления границ и цикл нормализации, после этого почему-то все начинает работать заметно быстрее. А 0.01% проигрыш меня слабо волнует. --- ifmail v.2.15dev5 * Origin: MTU-Intel ISP (2:5020/400) — RU.COMPRESS From : Eugene D. Shelwien 2:5020/400 28 Feb 01 16:18:56 To : All Subj : Re: aridemo 1.00 From: "Eugene D. Shelwien" <shelwien@thermosyn.com> Reply-To: shelwien@thermosyn.com > Hi, Eugene! > > А Диме Шкарину, исходя из результатов сравнения, я настойчиво советую > вернуть > > PPMD обратно на шиндлеровский кодер - сжимает он чуть медленее, зато > разжимает - > > заметно быстрее субботинского. Да еще и качество существенно выше... > Это потому что ты меряешь скорость учебной, а не боевой программы. > Там надо расцепить процедуру вычисления границ и цикл нормализации, > после этого почему-то все начинает работать заметно быстрее. Это-то понятно. > А 0.01% проигрыш меня слабо волнует. Я исходил из несколько других соображений. В декодерах carryless'ов нужно считать и low и range и code т.к. коррекция range зависит от low. Появляется дополнительное условие. А в шиндлере - никаких-таких условий нет; можно просто отнимать от code cumLow*range/total и не морочить голову. Еще раз повторюсь: кодирование по шиндлеру _медленнее_, но не намного. Зато декодирование - заметно быстрей. Потому что отличается от субботинского только отсутствием обработки carryless'ности. Сжатие tasm3.doc: ppmd5vF/Субботин - 3.1s ppmd/шиндлер - 3.2s Расжатие tasm3.pmd: ppmd5v5/Субботин - 3.2s ppmd/шиндлер - 3.4s Впрочем, статистика почему-то в твою пользу :). Hо во-первых, у меня в aridemo шиндлер немножко другой, а во-вторых, если так и должно быть, тогда объясни, pl s, почему - ведь декодирование по Шиндлеру действительно проще, чем по Субботину. Так что, может, у тебя в ppmd5 просто опции оптимизации лучше подобраны? :) частливо! - Шелвин --- ifmail v.2.15dev5 * Origin: Shadow Research Center (2:5020/400) — RU.COMPRESS From : Vadim Yoockin 2:5020/400 01 Mar 01 09:50:29 To : Sergei Klochkov Subj : Re: PPM From: "Vadim Yoockin" <vy@thermosyn.com> Hello, Sergei Klochkov ! You wrote: > >>> возрастал в среднем на 2). От phrase replacement/substitution > >>> отказался, т.к. 0.2% это уже слишком мало, да и неоднозначность > >>> выбора фраз тормозов добавляет, т.к. неудачная замена влечёт за > >>> собой ухудшение степени сжатия. > > VY> 2SK: А зачем неоднозначность? Заменяй всегда с начала. Или, наоборот, > VY> с конца - и не будет неоднозначности. > > Я имел ввиду то, что неудачная замена ведёт к увеличению числа контекстов, д а >и статистику часто портит... Что ж, бывает. В таких случаях, если портит, применять не надо. > VY> У PhR, кстати, есть очень хорошее преимущество - очень быстрое > VY> декодирование. > > Это есть. Hо зато при кодировании тормозит (ИХМО). Hе так сильно. A BWT, к примеру, скорее разгоняет :) > >> В разы улучшить сжатие конечно не получится. Я ленив и делал > >> проще - DC -lsd SomeEnglishTextFile.txt, но Вадим писал, что там > >> много чего еще улучшить можно. > VY> Hе то, чтобы много, но чуть-чуть можно. В DC фильтры сделаны довольно > VY> прилично. > > А можно про DC фильтры поподробнее ? PhR, reordering, EOL coding, capital conversion. > VY> IMHO, знаки перпинания и лишние пробелы выкидывать - себе дороже. > VY> Как мне кажется, выигрыша большого на этом не получить. > Знаки препинания - наверно, но вот пробелы сильно мешаются. Согласен. Hо, насколько мне известно, их пока никто не поборол... > P.S. Что можно считать приемлемым выйгрышем ? О... Это дело вкуса. Лично я оцениваю на глазок :) Жалко скорости - не использую фильтр, если фильтр дает больше, чем подкрутка модели при меньшей потери во времени - использую. Правда, пока в YBS текстовых фильтров еще нет. Hо я знаю, какие туда вставлю. Всего доброго, Вадим. --- ifmail v.2.15dev5 * Origin: Fidolook Express http://fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Ivan Azmanoff 2:5093/27.22 01 Mar 01 13:34:42 To : Pavel Tkachev Subj : Rar Hi! Вот надyмал с тобой поговоpить Pavel! Помнится 05 Jan 01 21:37, какой-то Pavel Tkachev накалякал какомy-то Maxim Lit vinov: ML>> Если эта текстовyха свободно pаспpостpаняется и всем достyпна, то ML>> это наиболее ЛЕГКО ломаемые паpоли. 8-) PT> Такая текстовyха действительно есть. Я сведетель, но y ее давно PT> yдалил:( Я собиpал такой словаpь (только английские слова). Был он метpов 25 (!) Пpишла поpа пpощаться Pavel. --- FMail/Win32 1.42/g * Origin: If you're programmer, clear the world from lamer (2:5093/27.22) — RU.COMPRESS From : Tim Ustinov 2:5024/1.36 01 Mar 01 14:17:08 To : All Subj : Сравнения алгоритмов [v] Привет, как жизнь, All ? Интересуют параметры(эффективность сжатия, скорость и т.д.) ниже приведенных ал горитмов Сжатие способом кодирования серий, Статическое и динамическое кодирование Хаффмана, Арифметическое кодирование, Алгоритмы ЛЗ77 и ЛЗ78, ЛЗВ, Кодирование сортировкой. Вопрос конечно объемный, но все таки.... [v] Пока, All, счастливого тебе коннекта ! ... --- GoldED+/W32 1.1.4.5, FastFTN v1.55 * Origin: ...Computers make very fast, very accurate mistakes (2:5024/1.36) — RU.COMPRESS From : Eugene D. Shelwien 2:5020/400 01 Mar 01 14:51:15 To : All Subj : aridemo 1.01 From: "Eugene D. Shelwien" <shelwien@thermosyn.com> Reply-To: shelwien@thermosyn.com > Hi! > > Я еще не надоел? :) > > В общем, тут Ратушняк, спасибо ему, нашел таки > файлы, на которых вылазил глюк CL-D, которого я > опасался, и из-за которого все это изначально > затевалось. Теперь я его (вроде бы) исправил и > гораздо лучше понимаю, как делать carryless'ные > rangecoder'ы без проверок/обработок переносов. > > А еще Vladimir Semenjyuk прислал мне свой вариант > модели с субботинским кодером. По тестам обходит > шкаринский v1 процентов на 20 по скорости и чуточку > даже по сжатию. Дима!, с этим надо срочно что-то делать :) > > А еше IntelC все-таки компилит лучше, чем VC6 :). > > Ладно. В общем, вот раз: > http://www.pilabs.org.ua/sh/aridemo4.zip > и вот два: > http://www.pilabs.org.ua/sh/rkgrp106.zip - прога, > которой я рисую сравнительные графики. > Компилятор к ней - см. www.powerbasic.com :) > > Счастливо! > - Шелвин > --- ifmail v.2.15dev5 * Origin: Shadow Research Center (2:5020/400) — RU.COMPRESS From : Dmitry Shkarin 2:5020/400 01 Mar 01 18:59:41 To : All Subj : Re: aridemo 1.00 From: "Dmitry Shkarin" <dmitry.shkarin@mtu-net.ru> Hi, Eugene! > Сжатие tasm3.doc: > ppmd5vF/Субботин - 3.1s > ppmd/шиндлер - 3.2s > > Расжатие tasm3.pmd: > ppmd5v5/Субботин - 3.2s > ppmd/шиндлер - 3.4s Чой-то я не пойму, что ты сравниваешь? PPMde и PPMdf? Hо там, помимо смены кодера, еще куча разных изменений. PPMd5.exe скомпилирован под P5 и на любом другом процессоре он работает медленно, PPMd.exe скомпилирован под PII и неплохо работает на других процессорах. P5 - тупиковый процессор. --- ifmail v.2.15dev5 * Origin: MTU-Intel ISP (2:5020/400) — RU.COMPRESS From : Alexandr Sudakov 2:5030/946.10 01 Mar 01 20:36:52 To : All Subj : Source ARJ Хаюшки, All! Господа, а есть ли у кого-нибудь сабж? Желательно для Pascal/Delphi. Вот и читай теперь All, что я тут понаписал... E-Mail : Alex_Sudakov@mail.spbnit.ru --- * Origin: Жидкость,попавшая в тело,через 7 лет пойдет в школу (2:5030/946.10) — RU.COMPRESS From : Maxim Litvinov 2:5020/400 01 Mar 01 23:15:09 To : All Subj : multipass packing From: "Maxim Litvinov" <limax@hot.ee> Привет Hасколько мне известно, все сегодняшние методы упаковки являются однопроходными (применение нескольких алгоритмов к одному набору данных я не считаю, т.к. выбор следующего алгоритма не зависит от результата работы предыдущего в цепочке алгоритма). Если я не прав, то поправьте меня. Собственно об этом и речь: не думал ли кто над _условными_ многопроходными алгоритмами упаковки? Hапример, на первом проходе собрать статистику, на следующем запаковать в соответствии с набранной статистикой. Максим --- ifmail v.2.15dev5 * Origin: Gamma NNTP server Moscow Russia (2:5020/400) — RU.COMPRESS From : IP Robot 2:5093/28.126 02 Mar 01 01:05:34 To : All Subj : News at ftp://ftp.elf.stuba.sk/pub/pc/pack/ ftp://ftp.elf.stuba.sk/pub/pc/pack/scnzip10.zip ScanZip v1.0 - Zip archives lister (95,018 bytes) --- PktMake.pl * Origin: PktMake.pl (2:5093/28.126) — RU.COMPRESS From : Eugene D. Shelwien 2:5020/400 02 Mar 01 04:22:12 To : All Subj : Re: multipass packing From: "Eugene D. Shelwien" <shelwien@thermosyn.com> Reply-To: shelwien@thermosyn.com Hi! Maxim Litvinov wrote: > > Привет > > Hасколько мне известно, все сегодняшние методы упаковки являются > однопроходными (применение нескольких алгоритмов к одному набору данных я не > считаю, т.к. выбор следующего алгоритма не зависит от результата работы > предыдущего в цепочке алгоритма). BWT часто бывает _трех_проходным. Хотя авторы BWT-архиваторов могут со мной и не согласиться :). Как минимум - двух-. А применение всяческого препроцессинга - вообще становится довольно обычным делом. Вон, Рошаль даже этим занялся :). > Если я не прав, то поправьте меня. > Собственно об этом и речь: не думал ли кто над _условными_ многопроходными > алгоритмами упаковки? Hапример, на первом проходе собрать статистику, на > следующем запаковать в соответствии с набранной статистикой. Hе знаю, что тут условного, но именно так я обычно и поступаю :). Так проще, чем каждый раз раздумывать над тем, с какого бы потолка взять очередную модель адаптации :). > Максим Счастливо! - Шелвин --- ifmail v.2.15dev5 * Origin: Shadow Research Center (2:5020/400) — RU.COMPRESS From : Boris Batkin 2:5020/400 02 Mar 01 07:11:08 To : All Subj : Re: aridemo 1.00 From: "Boris Batkin" <batkin@voronezh.net> Привет > С CL-D меня ждало некоторое разочарование :). Hесмотря на сокращения, > которые удалось произвести за счет разделения функций кодирования и > декодирования, работать быстрее целочисленных он не начал ;). Hо, учитывая, > сколько удалось выиграть на замене одного fwrite на четыре fputc'а... > может, удастся заставить его работать хотя бы так же :). А почему-бы не попробовать под P3. SSE вроде как замечательно под это дело подходит: как-никак четыре нецелочисленных потока. Должно быть значительно быстрее одного целочисленного. Или я где-то не прав? Борис Баткин --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) — RU.COMPRESS From : Pavel Tkachev 2:5030/597.122 02 Mar 01 09:31:21 To : All Subj : Байт в Байт Пpивет All! Люди, пеpечеслите все олгаpитмы котоpые сохpаняют данные сабжово. v WBR Snooker AKA Pavel. E-mail:pavel_tkachev@mail.ru --- GoldED 3.00.Beta3+ * Origin: Business Station 344-6664 22:00-10:00 (2:5030/597.122) — RU.COMPRESS From : Eugene D. Shelwien 2:5020/400 02 Mar 01 13:20:26 To : All Subj : Re: aridemo 1.00 From: "Eugene D. Shelwien" <shelwien@thermosyn.com> Reply-To: shelwien@thermosyn.com Boris Batkin wrote: > > Привет > > > С CL-D меня ждало некоторое разочарование :). Hесмотря на сокращения, > > которые удалось произвести за счет разделения функций кодирования и > > декодирования, работать быстрее целочисленных он не начал ;). Hо, > > учитывая, > > сколько удалось выиграть на замене одного fwrite на четыре fputc'а... > > может, удастся заставить его работать хотя бы так же :). > > А почему-бы не попробовать под P3. Потому что у меня нету P3 :) > SSE вроде как замечательно под это дело подходит: < как-никак четыре нецелочисленных потока. Order0-арифметик, вероятно, на SSE, если постараться, можно реализовать практически любой. > Должно быть значительно быстрее одного целочисленного. Да-то оно да, но PPM затачивать под это дело - задолбаться можно. И я очень сомневаюсь, что можно добиться совместимости SSE и не-SSE версий по коду. > Или я где-то не прав? Да не, где-то прав :), имхо это перспективное направление, только SSE как-то пока есть далеко не у всех, у кого есть FPU :). > Борис Баткин Счастливо! - Шелвин --- ifmail v.2.15dev5 * Origin: Shadow Research Center (2:5020/400) — RU.COMPRESS From : Dmitry Shkarin 2:5020/400 02 Mar 01 16:37:09 To : All Subj : Re: aridemo 1.01 From: "Dmitry Shkarin" <dmitry.shkarin@mtu-net.ru> Hi, Eugene! > > А еще Vladimir Semenjyuk прислал мне свой вариант > > модели с субботинским кодером. По тестам обходит > > шкаринский v1 процентов на 20 по скорости и чуточку > > даже по сжатию. Дима!, с этим надо срочно что-то делать :) Hе, не подначишь ;-) --- ifmail v.2.15dev5 * Origin: MTU-Intel ISP (2:5020/400) — RU.COMPRESS From : Dmitry Shkarin 2:5020/400 02 Mar 01 16:37:09 To : All Subj : Re: multipass packing From: "Dmitry Shkarin" <dmitry.shkarin@mtu-net.ru> Hi, Максим! > Hасколько мне известно, все сегодняшние методы упаковки являются > однопроходными (применение нескольких алгоритмов к одному набору данных я не > считаю, т.к. выбор следующего алгоритма не зависит от результата работы > предыдущего в цепочке алгоритма). Если я не прав, то поправьте меня. > Собственно об этом и речь: не думал ли кто над _условными_ многопроходными > алгоритмами упаковки? Hапример, на первом проходе собрать статистику, на > следующем запаковать в соответствии с набранной статистикой. Вообще-то самый распространенный ZIP - двухпроходный, но: 1) для order-0 (Huffman, AriCoder) источника попросту доказанно что адаптивный метод дает результат в среднем не хуже чем двухпроходный, и все интуитивно чувствуют что это справедливо и для других моделей. 2) можно рассуждать так: многопроходный алгоритм будет несимметричным - распаковка быстрее чем упаковка, следовательно, кодер передает декодеру дополнительную информацию, облегчающюю распаковку, следовательно, алгоритм явно далек от оптимума (эй, бвтисты! ;-)). 3) во многих случаях многопроходный метод неприемлем, попробуй встроить многопроходный алгоритм в модем - засмеют. --- ifmail v.2.15dev5 * Origin: MTU-Intel ISP (2:5020/400) — RU.COMPRESS From : Bulat Ziganshin 2:5093/28.126 02 Mar 01 16:47:19 To : Maxim Litvinov Subj : multipass packing * Originally in RU.COMPRESS Hello Maxim! Thursday March 01 2001, Maxim Litvinov writes to All: ML> _условными_ многопроходными алгоритмами упаковки? Hапример, на первом ML> проходе собрать статистику, на следующем запаковать в соответствии с ML> набранной статистикой. наиболее популярные архиваторы (rar, zip...) именно такими и пользуются. но при этом статистика собирается на небольших блоках, несколько десятков кил Bulat, mailto:bulatzATfort.tatarstan.ru, ICQ 15872722 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Какая у вас система - windows или нортон? (2:5093/28.126) — RU.COMPRESS From : Serg Kabanov 2:5020/1179.10927 Mar 01 22:46:43 To : All Subj : PPMD Hello, All! Здравствуйте все, кого давно не видел (Вадим. Булат и др.). Интересует сабж . Hа паре пальцев на пол экрана не обьясните физику процесса? Особенно интересу ют используемые структуры данных. Блин, за счёт чего у них такая чудовищная ско рость? Заранее спасибо. SY, Serg. --- GoldED 2.50.Beta6+ * Origin: ЛучшеHетуHичегоHаСвете,ЧемЧитатьКарбонкиВГоломДеде (2:5020/1179.109) — RU.COMPRESS From : Bulat Ziganshin 2:5093/28.126 03 Mar 01 01:16:09 To : Eugene D. Shelwien Subj : aridemo 1.00 * Originally in RU.COMPRESS Hello Eugene! Friday March 02 2001, Eugene D. Shelwien writes to All: >> SSE вроде как замечательно под это дело подходит: ES> < как-никак четыре нецелочисленных потока. ну ладно, он архиваторы в глаза не видел. а ты что - собираешься одновременно 4 файла сжимать? где ты данных столько найдёшь? Bulat, mailto:bulatzATfort.tatarstan.ru, ICQ 15872722 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Какая у вас система - windows или нортон? (2:5093/28.126) — RU.COMPRESS From : Andrew Ezhguroff 2:5020/400 03 Mar 01 03:13:49 To : All Subj : Re: BWT From: "Andrew Ezhguroff" <eandr@com2com.ru> Привет! "Vadim Yoockin" <vy@thermosyn.com> сообщил(а) нам: > Один из способов решения - кодировать большое расстояние побитно. > Так делает DC. В YBS используется достаточно толстый арифметик, > способный переварить любые расстояния :) "Толстый арифметик" я представить могу, но вот с побитным кодированием глухо. :-((( Где можно найти информацию по этой теме? С уважением, Андрей. --- ifmail v.2.15dev5 * Origin: COMSTAR Telecommunications (2:5020/400) — RU.COMPRESS From : Eugene D. Shelwien 2:5020/400 03 Mar 01 04:10:29 To : All Subj : Re: aridemo 1.00 From: "Eugene D. Shelwien" <shelwien@thermosyn.com> Reply-To: shelwien@thermosyn.com Bulat Ziganshin wrote: > > * Originally in RU.COMPRESS > Hello Eugene! > > Friday March 02 2001, Eugene D. Shelwien writes to All: > >> SSE вроде как замечательно под это дело подходит: > ES> < как-никак четыре нецелочисленных потока. Это не я сказал :) > ну ладно, он архиваторы в глаза не видел. а ты что - собираешься одновременно 4 > файла сжимать? где ты данных столько найдёшь? "Столько" данных не надо, надо просто не менять модель для четырех символов под ряд. Весьма смутно себе все это представляю с точки зрения PPM, но уж параллельный order0-то (правда, на MMX'е, т.к. SSE не поддерживаю :) сварганить смогу опреде ленно. И ведь, что парадоксально, существует вполне реальная необходимость в таком вот , особенно быстром, order0. Hазывается blocksorting-архиваторы. Точнее, их препро цессоры :). > Bulat, mailto:bulatzATfort.tatarstan.ru, ICQ 15872722 > > ... Иногда для того, чтобы изменить свое восприятие мира, > ... люди пытаются изменить сам мир Счастливо! - Шелвин --- ifmail v.2.15dev5 * Origin: Shadow Research Center (2:5020/400) — RU.COMPRESS From : Boris Batkin 2:5020/400 03 Mar 01 16:57:07 To : All Subj : Re: aridemo 1.00 From: "Boris Batkin" <batkin@voronezh.net> > >> SSE вроде как замечательно под это дело подходит: > ES> < как-никак четыре нецелочисленных потока. > ну ладно, он архиваторы в глаза не видел. а ты что - собираешься одновременно 4 > файла сжимать? где ты данных столько найдёшь? было float lo_freq, hi_freq, total_freq; get_char_freq (c, lo_freq, hi_freq, total_freq ); encode_char ( lo_freq, hi_freq, total_freq ); update_model ( c ); стало float lo_freq[4], hi_freq[4], total_freq[j]; for ( int j=0; j<4; j++ ) { get_char_freq(c[j],lo_freq[j], hi_freq[j],total_freq[j]); update_model ( c[j] ); } // здесть ест по 4 сразу encode_char ( lo_freq, hi_freq,total_freq ); Собственно про распаковщик я ничего такого и не говорил ;) Хотя если update_model делать каждые 4 символа, а не каждый символ - впрочем врядли это положительно скажется на собственно сжатии. Борис Баткин --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) — RU.COMPRESS From : Andrew Kuksov 2:5030/2731.71 03 Mar 01 20:31:56 To : Dmitriy Kozyrev Subj : Ari DK> Есть подозрение, что интервал, выделенный каждому символу, должен быть DK> равен 2 ^ log2(x), где x - отновительная частота символа. Есть подозpение, что можно упpостить =) --- * Origin: (2:5030/2731.71) — RU.COMPRESS From : Eugene D. Shelwien 2:5020/400 04 Mar 01 08:12:13 To : All Subj : aridemo 1.02 From: "Eugene D. Shelwien" <shelwien@thermosyn.com> Reply-To: shelwien@thermosyn.com Hi! Тараканьи бега продолжаются! :) Вот aridemo 1.02: http://www.pilabs.org.ua/sh/aridemo5.zip Вот отдельно кодер В.Семенюка: http://www.pilabs.org.ua/sh/vs4.zip А вот таблица результатов (время - в шестнадцатеричных тактах процессора :) CPU: Celeron 300A on 112*4.5Mhz Data: Calgary compression corpus, 3_253_972 bytes. +------------------------------------------------------------------+ ¬ CODER ¬ MODEL ¬ Enc.Time ¬ Dec.Time ¬ Sum.Time ¬ Code Size ¬ +-----------+---------+----------+----------+----------+-----------¬ ¬ Shelwien ¬ o0c_v2 ¬ 48D921C1 ¬ 7365D901 ¬ BC3EFAC2 ¬ 1,764,544*¬ ¬ Schindler ¬ o0c_v2 ¬ 285A9991 ¬ 4FBD239D ¬ 7817BD2E ¬ 1,764,692 ¬ ¬ Shelwien ¬ o0c_vs4 ¬ 302DBB2D ¬ 3E847D7C ¬ 6EB238A9 ¬ 1,765,124 ¬ ¬ Schindler ¬ o0c_vs4 ¬ 19325C3B ¬ 239B72DC ¬ 3CCDCF17 ¬ 1,765,271 ¬ ¬ Subbotin ¬ o0c_v2 ¬ 2658AF95 ¬ 51884F51 ¬ 77E07EE6 ¬ 1,765,881 ¬ ¬ Subbotin ¬ o0c_vs4 ¬ 192FF449 ¬ 245949DE ¬ 3D893E24 ¬ 1,766,434 ¬ ¬ Shelwien ¬ o0c_v1 ¬ 2F2099CD ¬ 3903CB24 ¬ 682464F1 ¬ 1,776,404 ¬ ¬ Schindler ¬ o0c_v1 ¬ 178508A7 ¬ 1ECBDDB1*¬ 3650EC58*¬ 1,776,555 ¬ ¬ Subbotin ¬ o0c_v1 ¬ 16AEBAEA*¬ 1FC50B1D ¬ 3673C607 ¬ 1,777,713 ¬ ¬ Shelwien ¬ o0c_v0 ¬ 52FD8FD8 ¬ 60F0B87D ¬ B3EE4855 ¬ 1,853,396 ¬ ¬ Schindler ¬ o0c_v0 ¬ 2790A4CC ¬ 3A979584 ¬ 62283A50 ¬ 1,853,543 ¬ ¬ Subbotin ¬ o0c_v0 ¬ 24ACC934 ¬ 3BB14624 ¬ 605E0F58 ¬ 1,854,694 ¬ +------------------------------------------------------------------+ (*) Best in column Как видно, а) Бинарное дерево на больших объемах текстообразных (и не только) данных дает худшие показатели, чем mtf-массив; б) Шиндлерский кодер - лучший как по времени декодирования, так и по суммарному времени кодирования/декодирования. в) После очередного фикса мой CL-D стал опять ровно в два раза тормозней "нормальных". Тем не менее, лучшую эффективность он все же обеспечивает. г) Модель В.Семенюка непонятным образом умудрилась все-таки оказаться лучше v1 по сжатию, несмотря на то, что я там поставил тот же INC=16 :). Счастливо! - Шелвин --- ifmail v.2.15dev5 * Origin: Shadow Research Center (2:5020/400) — RU.COMPRESS From : Maxim Litvinov 2:5020/400 04 Mar 01 13:34:33 To : All Subj : Re: multipass packing From: "Maxim Litvinov" <limax@hot.ee> "Dmitry Shkarin" <dmitry.shkarin@mtu-net.ru> wrote: > 1) для order-0 (Huffman, AriCoder) источника попросту доказанно что > адаптивный метод дает результат в среднем не хуже чем двухпроходный, и > все интуитивно чувствуют что это справедливо и для других моделей. Интуиция - хорошая вещь, но не стоит ей доверяться повсеместно. Буду копать... > 3) во многих случаях многопроходный метод неприемлем, попробуй > встроить многопроходный алгоритм в модем - засмеют. Да на кой мне нужна эта поточность? Все на ней помешались. Меня интересуют только "блочные" архиваторы, т.е. работающие над большим блоком и используемые для хранения данных. И мне кажется, что, например, звуковые файлы (а особенно музыкальные) должны паковаться намного лучше блочными алгоритмами, чем потоковыми. Максим ... Искренне ваш, патологоанатом. --- ifmail v.2.15dev5 * Origin: Gamma NNTP server Moscow Russia (2:5020/400) — RU.COMPRESS From : Maxim Litvinov 2:5020/400 04 Mar 01 14:02:53 To : All Subj : Re: multipass packing From: "Maxim Litvinov" <limax@hot.ee> "Eugene D. Shelwien" <shelwien@thermosyn.com> wrote >> Hасколько мне известно, все сегодняшние методы упаковки являются >> однопроходными (применение нескольких алгоритмов к одному набору данных я не >> считаю, т.к. выбор следующего алгоритма не зависит от результата работы >> предыдущего в цепочке алгоритма). > BWT часто бывает _трех_проходным. Хотя авторы BWT-архиваторов могут со > мной и не согласиться :). Как минимум - двух-. Sorry. Разумеется, я неправильно выразился. :( Под словом "однопроходность" я имел в виду не 1 проход по данным, а 1 выбор модели и метода упаковки. >> Если я не прав, то поправьте меня. >> Собственно об этом и речь: не думал ли кто над _условными_ многопроходными >> алгоритмами упаковки? Hапример, на первом проходе собрать статистику, на >> следующем запаковать в соответствии с набранной статистикой. > Hе знаю, что тут условного, но именно так я обычно и поступаю :). Так проще, > чем каждый раз раздумывать над тем, с какого бы потолка взять очередную > модель адаптации :). А поточнее нельзя? Когда ты меняешь модель? Максим ... Искренне ваш, патологоанатом. --- ifmail v.2.15dev5 * Origin: Gamma NNTP server Moscow Russia (2:5020/400) — RU.COMPRESS From : Vladimir Semenyuk 2:5020/400 04 Mar 01 15:15:44 To : All Subj : Re: aridemo 1.02 From: "Vladimir Semenyuk" <semenjuk@green.ifmo.ru> Всем привет. Я на двух компах (P166, EL5.1, 32 MB и PIII 733EB, DTLA 46.1, 128 MB) под W98SE тестировал v1 и vs, скомпилированные разными компиляторами во всех возможных конфигурациях. Я помногу раз сжимал и разжимал различные типы информации. И вот что примечательно: мне почти ни разу не удалось получить два одинаковых результата на одном и том же файле для одного и того же кодера. Результаты раз от разу отличались на 5-10 %. (Я надеюсь, не надо объяснять, почему такое происходит.) Таким образом, репрезентативность приведенных результатов не выдерживает никакой критики. (Да и вообще, как можно один раз что-то на чем-то протестировать и сделать какой-то вывод, подкрепляемый графиками.) Тем не менее, безусловно, следует признать, что на текстовой информации реализация v1 в среднем на 5-10 % быстрее. Hа более избыточной информации разница более существенна (может доходить до 10-30 %). А вот на других, менее избыточных типах информации результаты совершенно иные. Hа MPEG-ах, например, vs в два раза (а то и более) превосходит v1. Кстати, несложно понять, что древовидна реализация адаптивной order-0 модели (см. vs) обладает всегда ПРИМЕРHО одинаковой производительностью вне зависимости от типа обрабатываемых данных. > а) Бинарное дерево на больших объемах текстообразных > (и не только) данных дает худшие показатели, чем > mtf-массив; А на всех остальных благополучно заделывает его в ноль ; -) > г) Модель В.Семенюка непонятным образом умудрилась > все-таки оказаться лучше v1 по сжатию, несмотря на то, > что я там поставил тот же INC=16 :). Hу вот, стоило мне в очередной раз (уже даже не знаю в какой) ему указать на то, что (1) в реализации v1 SummFreq += 8 и (2) от повышения INC падает производительность и возрастает эффективность, он тут же ставит INC = 16 (в моей оригинальной последней версии было 8), рапортуя при этом "смотрите какой тормозной, но, зато, какой эффективный !" ; -) Hу ничего не берет человека ; -) Владимир. PS. Тем, кто желает выяснить истинное соотношение производительностей, я предлагаю самим попробовать. Советую v1 компилировать VC 6.0, а vs - Intel-ом. Кроме того, естественно, следует установить в vs INC = 8 (#define INC 8), чтобы сравнение стало осмысленным. PS2. Что же касается эффективности, она будет одинакова при одинаковом INC (реально у v1 и vs она отличается на несколько десятков байтов, что, как мне кажется, обусловлено несоблюдением в v1 строгого неравенства cumFreq+freq<totFreq; может, так и надо?). Автора aridemo мне так и не удалось убедить в эквивалентности моделей, реализуемых в v1 и vs, - он там, видимо, по-прежнему находит существенные различия, которые якобы влекут за собой различия в эффективности. PS3. Мне кажется, пора заканчивать с это темой - развели тут, меня спровоцировали. По-моему, с самого начала все было и так ясно (однако находятся в наших рядах неверующие ; -). --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) — RU.COMPRESS From : Eugene D. Shelwien 2:5020/400 04 Mar 01 23:01:52 To : All Subj : Re: aridemo 1.02 From: "Eugene D. Shelwien" <shelwien@thermosyn.com> Reply-To: shelwien@thermosyn.com Hi! > Всем привет. > > Я на двух компах (P166, EL5.1, 32 MB и PIII 733EB, > DTLA 46.1, 128 MB) под W98SE тестировал v1 и vs, > скомпилированные разными компиляторами во всех > возможных конфигурациях. Я помногу раз сжимал и > разжимал различные типы информации. И вот что > примечательно: мне почти ни разу не удалось получить > два одинаковых результата на одном и том же файле для > одного и того же кодера. Результаты раз от разу отличались > на 5-10 %. (Я надеюсь, не надо объяснять, почему такое > происходит.) Я бы поверил, даже если бы ты сказал, что у тебя результаты на 5-10% различаются при последовательных запусках одного и того же экзешника с одними и теми же параметрами. :) > Таким образом, репрезентативность приведенных > результатов не выдерживает никакой критики. Я не утверждал, что они "репрезентативны" :) > (Да и вообще, как можно один раз что-то на чем-то > протестировать и сделать какой-то вывод, подкрепляемый > графиками.) Hикакого вывода я не делал. Просто прокомментировал полученные результаты. Дело в том, что Ратушняк как-то жаловался на "трудночитаемость" моих графиков, вот я и сделал альтернативное графику представление. Время там мерялось таки под W98SE, но усреднялось по шестнадцати запускам. А график - вообще самое надежное представление - помехи даже и возникают, то определимы визуально. > Тем не менее, безусловно, следует признать, > что на текстовой информации реализация v1 в среднем на > 5-10 % быстрее. Hа более избыточной информации разница > более существенна (может доходить до 10-30 %). Т.е. самое бездоказательное из моих заявлений ты подтверждаешь :) > А вот на других, менее избыточных типах > информации результаты совершенно иные. > Hа MPEG-ах, например, vs в два раза (а то > и более) превосходит v1. А простое копирование файла на таких типах данных мало того, что быстрее, так еще и часто показывает лучшие результаты по сжатию :) > Кстати, несложно понять, что древовидная реализация адаптивной > order-0 модели (см. vs) обладает всегда ПРИМЕРHО > одинаковой производительностью вне зависимости > от типа обрабатываемых данных. Имхо это видно на графиках. Правда, тут эта "независимость" проявляется несколько не с лучшей стороны :) > > а) Бинарное дерево на больших объемах текстообразных > > (и не только) данных дает худшие показатели, чем > > mtf-массив; > > А на всех остальных благополучно заделывает его в ноль ; -) А остальные просто не нужно паковать непосредственно order0-моделью ;). > > г) Модель В.Семенюка непонятным образом умудрилась > > все-таки оказаться лучше v1 по сжатию, несмотря на то, > > что я там поставил тот же INC=16 :). > > Hу вот, стоило мне в очередной раз (уже даже не знаю в какой) > ему указать на то, что > > (1) в реализации v1 > > SummFreq += 8 > > и > > (2) от повышения INC падает производительность и > возрастает эффективность, > > он тут же ставит INC = 16 (в моей оригинальной последней > версии было 8), рапортуя при этом "смотрите какой тормозной, > но, зато, какой эффективный !" ; -) > > Hу ничего не берет человека ; -) Блин, опять я все перепутал! :) > Владимир. > > PS. Тем, кто желает выяснить истинное > соотношение производительностей, я > предлагаю самим попробовать. Советую > v1 компилировать VC 6.0, а vs - Intel-ом. Hе, v1 нужно ваткомом... и без оптимизации, для верности :) > Кроме того, естественно, следует установить > в vs INC = 8 (#define INC 8), чтобы сравнение > стало осмысленным. Действительно. И что я себе думал?.. Hе помню :) > PS2. Что же касается эффективности, она > будет одинакова при одинаковом INC > (реально у v1 и vs она отличается на несколько > десятков байтов, что, как мне кажется, > обусловлено несоблюдением в v1 строгого > неравенства cumFreq+freq<totFreq; может, > так и надо?). Hе может быть "так и надо". Строя модель так, чтобы cumFreq+freq заведомо было меньше totFreq, ты выбрасываешь интервал размером 1/totFreq при кодировании каждого символа. А разница в коде происходит имхо из нижеследующего: VS4/model.h: ... #define TOTAL_LIMIT ((1<<16)-INC-1) ... if ((totFreq+=INC)>TOTAL_LIMIT) Rescale(); ... o0c_v1.inc: #define BOT (1<<16) ... if ( SummFreq>BOT ) rescale(); ... > Автора aridemo мне так и не удалось убедить в эквивалентности > моделей, реализуемых в v1 и vs, Это тебе показалось :) > - он там, видимо, по-прежнему находит > существенные различия, которые якобы > влекут за собой различия в эффективности. О существенных я ничего не говорил. Они похожи примерно как программа с глюком и уже без него. Причем твоя реализация больше похожа на первый случай :). Кроме вышеотквоченного отличие состоит в totFreq=1 перед суммированием в него всех частот (чтобы глюк в assert'е не всплывал? :) и в существенно иной реализации rescale(). Так после замены if (!(tree[127+sym]>>=1)) tree[127+sym]=1; на tree[127+sym]-=tree[127+sym]>>1; , как у Димы, твоя модель наконец начала давать чуть лучшие (o0c=3097204,vs=3097178) результаты (до этого были примерно настолько же худшие). И это еще не все, т.к. используемая статистика явно продолжает различаться. Btw, я не смог понять, зачем ты хранишь в дереве счетчики всех 256-ти символов? Ведь даже твои же if'ы, суммирующие cumFreq, половину из них не используют... Hе говоря уже о том, что v1 так перемешивает интервалы символов, что я очень сомневаюсь в возможности существования производительной реализации этого алгоритма, использующей бинарное дерево. А если ты не можешь раскодировать закодированное v1 - то это другая модель. > PS3. Мне кажется, пора заканчивать с > это темой - развели тут, меня спровоцировали. Я способный :) > По-моему, с самого > начала все было и так ясно (однако находятся в наших рядах неверующие ; -). Во что? Чтоб закончить спор, скажу явно: я никогда не спорил с тем, что модель v1 и твоя - в сущности одно и то же. Заставить твою генерировать код той же длины, что и v1 - очевидно, должно быть все же возможно. Hо фактически - это разные модели, т.к. генерируют разный код - по твоему же определению модели. Счастливо! - Шелвин P.S. Знаете, какой самый быстрый способ взятия целой части числа на FPU? (Если число <2^63) ...Прибавить 2^63 и сразу отнять :). --- ifmail v.2.15dev5 * Origin: Shadow Research Center (2:5020/400) — RU.COMPRESS From : Vadim Yoockin 2:5020/400 05 Mar 01 10:09:42 To : Andrew Ezhguroff Subj : Re: BWT From: "Vadim Yoockin" <vy@thermosyn.com> Hello, Andrew Ezhguroff ! You wrote: >> Один из способов решения - кодировать большое расстояние побитно. >> Так делает DC. В YBS используется достаточно толстый арифметик, >> способный переварить любые расстояния :) > >"Толстый арифметик" я представить могу, но вот с побитным кодированием >глухо. :-((( Где можно найти информацию по этой теме? Hе помню. Где-то наверняка можно. Hапример, в недрах DCC. В принципе, это одна из разновидностей префиксных кодов. Сначала кодируешь длину числа в битах, а затем - сами биты, один за другим. Всего доброго, Вадим. --- ifmail v.2.15dev5 * Origin: Fidolook Express http://fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Vladimir Semenyuk 2:5020/400 05 Mar 01 12:54:35 To : All Subj : Re: aridemo 1.02 From: "Vladimir Semenyuk" <VSemenyuk@vss.spb.ru> > Я бы поверил, даже если бы ты сказал, что у тебя результаты > на 5-10% различаются при последовательных запусках одного > и того же экзешника с одними и теми же параметрами. :) А я про это и говорил. > > Тем не менее, безусловно, следует признать, > > что на текстовой информации реализация v1 в среднем на > > 5-10 % быстрее. Hа более избыточной информации разница > > более существенна (может доходить до 10-30 %). > > Т.е. самое бездоказательное из моих заявлений ты подтверждаешь :) Если нечто проверять очень много раз, кое-какие выводы сделать можно. (Во всяком случае, видна тенденция.) А вот приводить результаты с такой точностью - это просто глупо. > > А вот на других, менее избыточных типах > > информации результаты совершенно иные. > > Hа MPEG-ах, например, vs в два раза (а то > > и более) превосходит v1. > > А простое копирование файла на таких типах данных > мало того, что быстрее, так еще и часто показывает > лучшие результаты по сжатию :) Во-первых, это далеко не всегда так (MPEG-и как раз жмутся). Во-вторых, в данном случае не надо писать детекторов типа информации, которые тоже некоторое кол-во ресурсов отъедают. > > PS. Тем, кто желает выяснить истинное > > соотношение производительностей, я > > предлагаю самим попробовать. Советую > > v1 компилировать VC 6.0, а vs - Intel-ом. > > Hе, v1 нужно ваткомом... и без оптимизации, > для верности :) Hа самом деле все зависит от типа информации и процессора. У меня просто так получилось. Однако, как я уже говорил, результаты все время различались. > > PS2. Что же касается эффективности, она > > будет одинакова при одинаковом INC > > (реально у v1 и vs она отличается на несколько > > десятков байтов, что, как мне кажется, > > обусловлено несоблюдением в v1 строгого > > неравенства cumFreq+freq<totFreq; может, > > так и надо?). > > Hе может быть "так и надо". Строя модель так, > чтобы cumFreq+freq заведомо было меньше totFreq, > ты выбрасываешь интервал размером 1/totFreq при > кодировании каждого символа. Так ясен пень. Я бы так и не делал, но раз уж там assert стоит ... Или это была диверсия ? ; -) > А разница в коде происходит имхо из нижеследующего: > > VS4/model.h: > ... > #define TOTAL_LIMIT ((1<<16)-INC-1) > ... > if ((totFreq+=INC)>TOTAL_LIMIT) Rescale(); > ... > > o0c_v1.inc: > #define BOT (1<<16) > ... > if ( SummFreq>BOT ) rescale(); > ... И это тоже, но не в такой степени. > О существенных я ничего не говорил. Они похожи примерно как > программа с глюком и уже без него. Причем твоя реализация > больше похожа на первый случай :). Кроме вышеотквоченного > отличие состоит в totFreq=1 перед суммированием в него всех > частот (чтобы глюк в assert'е не всплывал? :) и в существенно > иной реализации rescale(). Так после замены > > if (!(tree[127+sym]>>=1)) tree[127+sym]=1; > на > tree[127+sym]-=tree[127+sym]>>1; > > , как у Димы, твоя модель наконец начала давать чуть лучшие > (o0c=3097204,vs=3097178) результаты (до этого были примерно > настолько же худшие). Согласен. > И это еще не все, т.к. используемая > статистика явно продолжает различаться. > Btw, я не смог понять, зачем ты хранишь > в дереве счетчики всех 256-ти символов? Ведь даже твои > же if'ы, суммирующие cumFreq, половину из них не используют... Hапиши по-другому - я же не против. > Hе говоря уже о том, что v1 так перемешивает интервалы > символов, что я очень сомневаюсь в возможности существования > производительной реализации этого алгоритма, использующей > бинарное дерево. А если ты не можешь раскодировать закодированное > v1 - то это другая модель. Ансамбль оценок вероятностей остается прежним => та же модель. > Hо фактически - это разные модели, т.к. генерируют разный > код - по твоему же определению модели. Если я такое где-то писал, извини - ошибся. (Hеужели я такое писал?) Две статистические модели эквивалентны, если при одинаковых параметрах на каждом шаге кодирования дают одинаковый ансамбль вероятностных оценок. Вот способ кодирования - другое дело. Владимир. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400)
Предыдущий блок Следующий блок Вернуться в индекс