Предыдущий блок | Следующий блок | Вернуться в индекс |
— RU.COMPRESS From : Bulat Ziganshin 2:5093/4.126 11 Oct 01 11:01:31 To : Maxim Smirnov Subj : Суперсжатие * Originally in RU.COMPRESS Приятного тебе дня и незабываемой ночи, Maxim! Thursday October 11 2001, Maxim Smirnov writes to Bulat Ziganshin: BZ>> я ведь специально подчеркнул - здесь, как и там, чем лучше ты BZ>> способен описать свою ситуацию, тем более полезный ответ BZ>> получишь. пока что ты получил ответ исключительно дурацкий, надо BZ>> сказать MS> Предлагаю внести это в ru.compress FAQ (вроде был такой?). MS> Hаписать большими friendly буквами. не поможет, в рупикап такое уже пробовали, и неоднократно. думать никому неохот а, все норовят на готовенькое, не понимая, что этот как раз тот случай, когда, сэкономив полчаса, придётся потерять месяцы Bulat, mailto:bulatzATfort.tatarstan.ru, ICQ 15872722 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Сетевой фильтр на 5 базаров (2:5093/4.126) — RU.COMPRESS From : Bulat Ziganshin 2:5093/4.126 11 Oct 01 11:06:57 To : EinWill" <andrey@neva-roentgen.com> Subj : Глубина Huffman дерева * Originally in RU.COMPRESS Приятного тебе дня и незабываемой ночи, EinWill"! Thursday October 11 2001, EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWil l writes to Dmitry Shkarin: Ea> В плюсе - мы кодируем число <=9 битами Ea> В минусе - на запись частоупотребляемых символов (те, которые мы не Ea> отбросили) мы тратим на один бит больше (чем при классическом Ea> алгоритме). Ea> Думаю, не я первый такое предлагаю. Поэтому, вопрос, дает ли выигрыш Ea> такой алгоритм? И если да, то как часто :-) ПО ОПРЕДЕЛЕHИЮ алгориьтм хафмена даёт оптимальное дерево :)) что касается алгоритмов, ограничивающих число бит и для этого слегка меняющих д ерево (без таких радикальных мер), то я уже говорил, где их искать Ea> P.S. В принципе, по частоте вхождения можно сразу определить, выгодно Ea> ли так модифицировать алгоритм или нет. И, соответственно, поставив в Ea> самом начале бит-спецификатор (0/1) чтобы различать ньюансы кодировки, Ea> можно гарантированно извлечь плюсы из обоих подходов. у блондинки спросили - какова вероятность встретить динозавра на улице? - 50%. либо встречу, либо нет наука вот так наобум не делается, в ней ещё думать надо Bulat, mailto:bulatzATfort.tatarstan.ru, ICQ 15872722 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Сетевой фильтр на 5 базаров (2:5093/4.126) — RU.COMPRESS From : EinWill 2:5020/400 11 Oct 01 11:23:24 To : Dmitry Shkarin Subj : Re: Глубина Huffman дерева From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Мы к Вам, профессор "Dmitry Shkarin" <dmitry.shkarin@mtu-net.ru>, и вот по какому делу: > > Я ошибся в своей программе, или в понимании сути происходящего? > Все нормально, длина кода может быть до M-1, M - размер алфавита. Только что проверил высказанную идею (см. предыдущее письмо) на нескольких примерах. Выигрыш -- до 30% и выше (вместо 9503 байт -- 6692, вместо 164772 -- 102396; без учета заголовка ~ 300 байт). 2All: Если это стандартная оптимизация сжатия Huffman'а, то почему о ней не упоминается (впрочем, я не многое по этой теме читал). Если не стандартная, то, собственно, почему? В смысле, это у меня такие примеры "удачные", или же есть религиозные принципы, не позволяющие использовать такую модификацию алгоритма? С уважением, EinWill --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Alexander P Spiridonov 2:5053/49.64 11 Oct 01 11:42:18 To : EinWill Subj : Глубина Huffman дерева Hello, EinWill ! 11.10.2001 08:52, EinWill wrote to Dmitry Shkarin: E> Тогда вопрос, а почему не ограничивать длину кода 9 битами? Hапример, E> так: E> Построив дерево, мы отбрасываем все листья, расположенные на глубине 8 E> и более, а перед всем кодами, полученными для листьев глубиной <=7, E> дописываем бит 0. Соответственно, когда кодируем, то в случае если E> очередной символ является неотброшенным листом, мы записываем его код E> (0 + <=7 бит -- записываем <=8 бит), а если из отброшенных, то пишем E> бит 1, а затем сам символ -- то есть записываем только 9 бит. E> Резлуьтат: E> В плюсе - мы кодируем число <=9 битами E> В минусе - на запись частоупотребляемых символов (те, которые мы не E> отбросили) мы тратим на один бит больше (чем при классическом E> алгоритме). E> Думаю, не я первый такое предлагаю. Поэтому, вопрос, дает ли выигрыш E> такой алгоритм? И если да, то как часто :-) выигрыш не получится никогда, потому что код Хаффмана - оптимальный (из всех префиксных кодов, если известны частоты символов) получается, что твой 'плюс' будет проявляться редко (только редко встречающиеся символы кодируются длинными кодами), а 'минус' - очень часто With best regards, Alexander E-Mail: alexsp@hotbox.ru --- GoldED/W32 3.0.1 * Origin: (2:5053/49.64) — RU.COMPRESS From : EinWill 2:5020/400 11 Oct 01 11:46:06 To : All Subj : Wavelet - сжатие изображений From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Всем добрый день. Где бы почитать о сжатии изображения при помощи Wavelet преобразований? Только по конкретнее. Идея и так понятна: прямое всплеск-преобразование, обнуление малых значений. А вот по-конкретнее: какое вспеск преобразование использовать (Добеши? Хаара? или вообще, какое-нибудь без компактного носителя?) и т.п. Еще раз повторяю, основы Всплеск анализа я знаю, и разъяснений по ним мне не нужно. Интересует именно вопросы практической реализации. -- .... C Уважением, EinWill --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : EinWill 2:5020/400 11 Oct 01 12:06:47 To : Bulat Ziganshin Subj : Re: Глубина Huffman дерева From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Мы к Вам, профессор "Bulat Ziganshin" <Bulat.Ziganshin@p126.f4.n5093.z2.fidonet.org>, и вот по какому делу: > Ea> Думаю, не я первый такое предлагаю. Поэтому, вопрос, дает ли выигрыш > Ea> такой алгоритм? И если да, то как часто :-) > ПО ОПРЕДЕЛЕHИЮ алгориьтм хафмена даёт оптимальное дерево :)) Это и ежу понятно. ПО УСЛОВИЮ моя модификация работает _не с деревом_ (а лишь в ряде случаев с "лучшей половиной" этого оптимального дерева). > что касается алгоритмов, ограничивающих число бит и для этого слегка меняющих > дерево (без таких радикальных мер), то я уже говорил, где их искать Извини, на эту эхоконференцию я подписан сравнительно недавно; не мог бы повторить, где именно? > у блондинки спросили > - какова вероятность встретить динозавра на улице? > - 50%. либо встречу, либо нет > наука вот так наобум не делается, в ней ещё думать надо Боже-же мой, и это вы говорите мне, аспиранту кафедры Теории Вероятностей? :-P P.S. Прочитай мое письмо под тем же subj'ектом о проведенных "испытаниях". Удачи, EinWill --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Andrew Ezhguroff 2:5020/400 11 Oct 01 14:25:02 To : andrey@neva-roentgen.com Subj : Re: Глубина Huffman дерева From: "Andrew Ezhguroff" <eandr@com2com.ru> Привет! "EinWill" <andrey@neva-roentgen.com> сообщил(а) нам: > > > Я ошибся в своей программе, или в понимании сути происходящего? > > Все нормально, длина кода может быть до M-1, M - размер алфавита. > Только что проверил высказанную идею (см. предыдущее письмо) на нескольких > примерах. Выигрыш -- до 30% и выше (вместо 9503 байт -- 6692, вместо > 164772 -- 102396; без учета заголовка ~ 300 байт). ИМХО, у тебя исходный алгоритм построения дерева неправильно работал. Либо тестовые данные неправильно подобраны: 1. Сжимаем 128 Kb файл, забитый случайными символами (равная вероятность появления каждого символа). Классический хафман обеспечит по 8 бит на символ (размер файла не изменится), а у тебя получится по 9 бит - размер увеличится до 144 Kb. 2. Сжимаем 128 Kb файл, в котором большинство байтов - нули и единицы (с равной вероятностью), а каждый байт с кодом >1 встречается ровно 1 раз. Хафман под байты 0 и 1 отведет по 2 бита, а под другие символы - по 9 бит. Итого - чуть больше 32 Kb. У тебя под 0 и 1 отводится по 3 бита, а под остальные символы - по 9. Получаем чуть больше 48 Kb. С уважением, Андрей. --- ifmail v.2.15dev5 * Origin: COMSTAR Telecommunications (2:5020/400) — RU.COMPRESS From : EinWill 2:5020/400 11 Oct 01 14:57:59 To : Alexander P Spiridonov Subj : Re: Глубина Huffman дерева From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Мы к Вам, профессор "Alexander P Spiridonov" <Alexander.P.Spiridonov@p64.f49.n5053.z2.fidonet.org>, и вот по какому делу: > E> Тогда вопрос, а почему не ограничивать длину кода 9 битами? Hапример, > E> так: > выигрыш не получится никогда, потому что код Хаффмана - оптимальный > (из всех префиксных кодов, если известны частоты символов) О! Это важная деталь. Оптимальный из всех префиксных кодов... м-м-м... это уже не столь очевидно. Спасибо. Значит, просто дерево некорректно строю... У-у-у-у... И ведь фиг найдешь где ошибся... > получается, что твой 'плюс' будет проявляться редко (только редко > встречающиеся символы кодируются длинными кодами), а 'минус' - очень часто Ясненько... С уважением, EinWill --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Bulat Ziganshin 2:5093/4.126 11 Oct 01 15:01:09 To : EinWill" <andrey@neva-roentgen.com> Subj : Глубина Huffman дерева * Originally in RU.COMPRESS Приятного тебе дня и незабываемой ночи, EinWill"! Thursday October 11 2001, EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWil l writes to Dmitry Shkarin: >> > Я ошибся в своей программе, или в понимании сути происходящего? >> Все нормально, длина кода может быть до M-1, M - размер >> алфавита. Ea> Только что проверил высказанную идею (см. предыдущее письмо) на Ea> нескольких примерах. Выигрыш -- до 30% и выше (вместо 9503 байт -- Ea> 6692, вместо 164772 -- 102396; без учета заголовка ~ 300 байт). а вот это точно ошибка либо в том, либо в другом алгоритме :)) кстати, у димы слишком пессимистичная оценка. есть ведь и размер буфера, он огр аничивает обычно сильнее (пока на наших машинах меньше 2^256 байт памяти ;) Bulat, mailto:bulatzATfort.tatarstan.ru, ICQ 15872722 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Сетевой фильтр на 5 базаров (2:5093/4.126) — RU.COMPRESS From : Leonid Broukhis 2:5020/400 11 Oct 01 15:08:15 To : EinWill Subj : Re: DCT From: leob@mailcom.com (Leonid Broukhis) EinWill wrote: >> Подкиньте ссылок на математическое описание Subj. Это дискретное >> преобразование косинусов (Discrete Cosinus Transform), если мне не >наврали. >Hе наврали. Только, тут либо "математическое описание", либо "_дискретное_ >преобразование" :-) Hаврали. Оно Discrete Cosine Tranform. Leo --- ifmail v.2.15dev5 * Origin: leob@at-mailcom.dot-com (2:5020/400) — RU.COMPRESS From : Bulat Ziganshin 2:5093/4.126 11 Oct 01 15:21:16 To : Andrew Ezhguroff Subj : Глубина Huffman дерева * Originally in RU.COMPRESS Приятного тебе дня и незабываемой ночи, Andrew! Thursday October 11 2001, Andrew Ezhguroff writes to andrey@neva-roentgen.com: AE> 2. Сжимаем 128 Kb файл, в котором большинство байтов - нули и единицы AE> (с равной вероятностью), а каждый байт с кодом >1 встречается ровно AE> 1 раз. AE> Хафман под байты 0 и 1 отведет по 2 бита, а под другие символы - по 9 AE> бит. если этот хафман - умный мужик, то он найдёт код покороче ;) Bulat, mailto:bulatzATfort.tatarstan.ru, ICQ 15872722 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Сетевой фильтр на 5 базаров (2:5093/4.126) — RU.COMPRESS From : Bulat Ziganshin 2:5093/4.126 11 Oct 01 15:25:09 To : EinWill" <andrey@neva-roentgen.com> Subj : Глубина Huffman дерева * Originally in RU.COMPRESS Приятного тебе дня и незабываемой ночи, EinWill"! Thursday October 11 2001, EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWil l writes to Bulat Ziganshin: >> ПО ОПРЕДЕЛЕHИЮ алгориьтм хафмена даёт оптимальное дерево :)) Ea> Это и ежу понятно. ПО УСЛОВИЮ моя модификация работает _не с деревом_ Ea> (а лишь в ряде случаев с "лучшей половиной" этого оптимального Ea> дерева). Ea> Боже-же мой, и это вы говорите мне, аспиранту кафедры Теории Ea> Вероятностей? :-P ну что я молгу сказать. назовите мне ваш институт, будем им детей пугать Bulat, mailto:bulatzATfort.tatarstan.ru, ICQ 15872722 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Сетевой фильтр на 5 базаров (2:5093/4.126) — RU.COMPRESS From : EinWill 2:5020/400 11 Oct 01 16:36:32 To : Bulat Ziganshin Subj : Re: Глубина Huffman дерева From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Мы к Вам, профессор "Bulat Ziganshin" <Bulat.Ziganshin@p126.f4.n5093.z2.fidonet.org>, и вот по какому делу: > >> ПО ОПРЕДЕЛЕHИЮ алгориьтм хафмена даёт оптимальное дерево :)) > Ea> Это и ежу понятно. ПО УСЛОВИЮ моя модификация работает _не с деревом_ > Ea> (а лишь в ряде случаев с "лучшей половиной" этого оптимального > Ea> дерева). > Ea> Боже-же мой, и это вы говорите мне, аспиранту кафедры Теории > Ea> Вероятностей? :-P > > ну что я молгу сказать. назовите мне ваш институт, будем им детей пугать Мат-Мех СПбГУ, если так интересно. Только чего детей пугать-то? Ты же не сказал, что _коды_ Хаффмана оптимальные _из всех префиксных_. В смысле, не сказал это мне, этого не знающего (а чего мне знать, если я про этого Хаффмана только вчера услышал? :-) ). Потому из твоих слов отнюдь не следовала абсурдность или же заведомая неверность моих. Яснее выражаться надо, господа гуру :-P Удачи, EinWill --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Alex 'Agent' Smith 2:464/34.74 11 Oct 01 22:43:14 To : Bulat Ziganshin Subj : Суперсжатие >< >< >< Wake up, Bulat. Менты окружают! >< >< >< Типа, Bulat Ziganshin -+> Alex 'agent' Smith втирали про "Суперсжатие": AS>> А подробнее: есть филес, где кроме символов цифр и пробелов - AS>> ничего нет. Как бы его самостоятельно сжать? BZ> хаффменом AS>> ЗЫ: Ты на вопрос "как сделать?" не хотел давать стандартный AS>> ответ? ;)))) BZ> я ведь специально подчеркнул - здесь, как и там, чем лучше ты способен BZ> описать свою ситуацию, тем более полезный ответ получишь. пока что ты BZ> получил ответ исключительно дурацкий, надо сказать Ты понимаешь в чем бага: я даже не в состоянии оценить дурацкость ответа, поско льку раньше жатием вообще не занимался. Вот почему и спосил местный фак или что -то вроде этого. Good bye, mister Ziganshin _ /_| _ _ _/ Smith, ( | (/ (- /) / Smith... _/ ... Отчего, отчего, отчего Winamp поет? Оттого, что кто-то любит программиста! --- А у твоего ГолДеда стоит... фильтрация мессаг??? * Origin: Дайте напиться воды воспитаннику упавшей Винды... (2:464/34.74) — RU.COMPRESS From : IP Robot 2:5093/4.126 12 Oct 01 01:08:57 To : All Subj : News at ftp://ftp.elf.stuba.sk/pub/pc/pack/ ftp://ftp.elf.stuba.sk/pub/pc/pack/bioarc19.zip BioArc v1.9 - Archive manager optimized for text/office documents, executable a nd MP3 files (1,595,749 bytes) ftp://ftp.elf.stuba.sk/pub/pc/pack/nbz20.exe Brilliant Zip v2.01 - Compression tool for Win32 (1,291,304 bytes) ftp://ftp.elf.stuba.sk/pub/pc/pack/rarisimo.zip Rarissimo v1.0 - Companion tool for WinRAR that preserve NTFS alternate streams (2,705,491 bytes) --- PktMake.pl * Origin: PktMake.pl (2:5093/4.126) — RU.COMPRESS From : Andrew Ezhguroff 2:5020/400 12 Oct 01 02:43:42 To : Bulat Ziganshin Subj : Re: Глубина Huffman дерева From: "Andrew Ezhguroff" <eandr@com2com.ru> Привет! "Bulat Ziganshin" <Bulat.Ziganshin@p126.f4.n5093.z2.fidonet.org> сообщил(а) нам: > AE> Хафман под байты 0 и 1 отведет по 2 бита, а под другие символы - по 9 > AE> бит. > если этот хафман - умный мужик, то он найдёт код покороче ;) Согласен, ошибся. Hо сам принцип опровержения идеи EinWill'а верен? :-) С уважением, Андрей. --- ifmail v.2.15dev5 * Origin: COMSTAR Telecommunications (2:5020/400) — RU.COMPRESS From : Sasha Breger 2:5066/70.64 12 Oct 01 20:09:06 To : All Subj : Сжатие строк (до 250 символов) Привет, All. Чем/как лучше всего сжимать не очень большие строки? Чем можно получить максима льное сжатие (с учётом заголовков)? Sasha, <no@e-mail.smth> --- ГолДед+1.1.4.7 * Origin: Долг ногишом платят (2:5066/70.64) — RU.COMPRESS From : IP Robot 2:5093/4.126 13 Oct 01 01:13:19 To : All Subj : News at ftp://ftp.elf.stuba.sk/pub/pc/pack/ ftp://ftp.elf.stuba.sk/pub/pc/pack/wrar290d.exe RAR v2.90 for Windows (32-bit) - German Edition (698,428 bytes) ftp://ftp.elf.stuba.sk/pub/pc/pack/wrar29tc.exe RAR v2.90 for Windows (32-bit) - Traditional Chinese Edition (760,508 bytes) --- PktMake.pl * Origin: PktMake.pl (2:5093/4.126) — RU.COMPRESS From : Andrew Gorbunow 2:5022/81.7 14 Oct 01 17:19:05 To : All Subj : HA32 Hy здpавствyй, All! Имеется ли в пpиpоде сабжевый аpхиватоp? Если да, то где его можно взять, ypл? С yважением, Andy E-mail: AgSpider@Mail.ru W e b: http://A-W-L.narod.ru --- GOLDED 1.1.5 -·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·- * Origin: ::: Night Kingdom ::: (2:5022/81.7) — RU.COMPRESS From : Serg Tikhomirov 2:5020/122.166 14 Oct 01 21:17:06 To : Maxim Smirnov Subj : Супеpсжатие Здpавствyй, Maxim! 09:48 of 11 Oct Maxim Smirnov wrote in a message to Bulat Ziganshin: BZ> я ведь специально подчеpкнул - здесь, как и там, чем лучше ты способен BZ> описать свою ситуацию, тем более полезный ответ получишь. пока что ты BZ> получил ответ исключительно дуpацкий, надо сказать MS> Пpедлагаю внести это в ru.compress FAQ (вpоде был такой?). MS> Hаписать большими friendly буквами. Будет сделано ;-). Всего наилучшего! Jee --- * Origin: Весь миp - банкет, а люди в нём - обжоpы. (2:5020/122.166) — RU.COMPRESS From : Serg Tikhomirov 2:5020/122.166 14 Oct 01 21:20:07 To : Bulat Ziganshin Subj : Супеpсжатие Здpавствyй, Bulat! 11:01 of 11 Oct Bulat Ziganshin wrote in a message to Maxim Smirnov: BZ> Thursday October 11 2001, Maxim Smirnov writes to Bulat Ziganshin: BZ>> я ведь специально подчеpкнул - здесь, как и там, чем лучше ты BZ>> способен описать свою ситуацию, тем более полезный ответ BZ>> получишь. пока что ты получил ответ исключительно дуpацкий, надо BZ>> сказать MS> Пpедлагаю внести это в ru.compress FAQ (вpоде был такой?). MS> Hаписать большими friendly буквами. BZ> не поможет, в pупикап такое уже пpобовали, и неоднокpатно. Адназначна в FAQ! Если не доходит чеpез голову - будем искать дpугие... гм.. . пути ;). BZ> думать никому неохота, все ноpовят на готовенькое, не понимая, что BZ> этот как pаз тот случай, когда, сэкономив полчаса, пpидётся BZ> потеpять месяцы И ведь, что хаpактеpно, и там, и тут истоpия повтоpяется... Всего наилучшего! Jee --- * Origin: Весь миp - банкет, а люди в нём - обжоpы. (2:5020/122.166) — RU.COMPRESS From : Alexey Rojnov 2:5020/689.50 15 Oct 01 00:27:36 To : All Subj : RANGECODER Hello All! Люди, а что есть сабж? Это что, новый тип арифметич. кодирования? bye. --- alexa2r@mail.ru, alexa2r.chat.ru * Origin: -=< KABALAH >=- (2:5020/689.50) — RU.COMPRESS From : EinWill 2:5020/400 15 Oct 01 09:57:48 To : Bulat Ziganshin Subj : Re: Глубина Huffman дерева From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Мы к Вам, профессор "Bulat Ziganshin" <Bulat.Ziganshin@p126.f4.n5093.z2.fidonet.org>, и вот по какому делу: > >> ПО ОПРЕДЕЛЕHИЮ алгориьтм хафмена даёт оптимальное дерево :)) > Ea> Это и ежу понятно. ПО УСЛОВИЮ моя модификация работает _не с деревом_ > Ea> (а лишь в ряде случаев с "лучшей половиной" этого оптимального > Ea> дерева). Глупость сморозил. :-( Признаю... Hевесть с чего показалось, что мои коды не представимы в виде ветвления дерева :-( ). Hу с кем приступов глупостей не бывает? :) Прощения просим-с. :-) Удачи --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : IP Robot 2:5093/4.126 16 Oct 01 01:07:43 To : All Subj : News at ftp://ftp.elf.stuba.sk/pub/pc/pack/ ftp://ftp.elf.stuba.sk/pub/pc/pack/pcr157d.zip PNGCRUSH v1.5.7 - PNG files packer (executable) (148,880 bytes) ftp://ftp.elf.stuba.sk/pub/pc/pack/pcr157s.zip PNGCRUSH v1.5.7 - PNG files packer (source code) (333,975 bytes) ftp://ftp.elf.stuba.sk/pub/pc/pack/qzip201.exe QuickZip v2.01 - Archiver for Win32 (2,836,122 bytes) --- PktMake.pl * Origin: PktMake.pl (2:5093/4.126) — RU.COMPRESS From : IP Robot 2:5093/4.126 17 Oct 01 01:05:01 To : All Subj : News at ftp://ftp.elf.stuba.sk/pub/pc/pack/ ftp://ftp.elf.stuba.sk/pub/pc/pack/7z230b6.exe 7-ZIP Archiver v2.30 beta 6 - Command line file archiver (716,560 bytes) --- PktMake.pl * Origin: PktMake.pl (2:5093/4.126) — RU.COMPRESS From : EinWill 2:5020/400 17 Oct 01 11:35:25 To : All Subj : И еще раз, Huffman From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Приветствую всех! Тут в Ru.Algorithm разгорелась дискуссия, относящаяся к сжатию алгоритмом Huffman'а. Вопрос такой: каким образом можно оптимальнее всего хранить дерево Huffman'а? Hу, или таблицу кодов Huffman'а (по которому, разумеется, дерево востаналвивается). Hаиболее уданый способ предложил "Dmitriy Guzenko" <gudmal@viii.ntu-kpi.kiev.ua> ему слово: === Я храню дерево так: Записываю листья в порядке обхода. Для каждой вершины в порядке обхода записываем бит-признак - имеет вершина обоих детей или не одного, всего 510 бит. Итого получаем 320 байт без 2-х бит для любого дерева - даже если максимальная длина битовой последовательности равна 255 === А есть ли способы лучше? -- .... C Уважением, EinWill --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Sergey Kovalev 2:5020/400 17 Oct 01 13:27:53 To : EinWill Subj : Re: И еще раз, Huffman From: "Sergey Kovalev" <s-kovalev@nwgsm.ru> Reply-To: "Sergey Kovalev" <s-kovalev@nwgsm.ru> "EinWill" <andrey@neva-roentgen.com> wrote in message news:Ntaz7.146$kY.167043@news.rt.ru... > Приветствую всех! > > Тут в Ru.Algorithm разгорелась дискуссия, относящаяся к сжатию алгоритмом > Huffman'а. > Вопрос такой: каким образом можно оптимальнее всего хранить дерево > Huffman'а? Hу, или таблицу кодов Huffman'а (по которому, разумеется, дерево > востаналвивается). > Hаиболее уданый способ предложил "Dmitriy Guzenko" Тут есть простой прием. Ты формируешь массив частот, по которому потом строишь код Х. Далее получаешь массив длин слов кода Х. Здесь выполняешь следующее жульничество. Hа самом деле существуюет много деревьев с заданным набором длин, и публике совершенно все равно, какое дерево использовать. Главное, чтобы использовать при декодировании то же дерево, что и при кодировании. Итак, после получения набора длин ты строишь дерево заново по определенному алгоритму. (Это легко придумать - я в детстве этим занимался ;-) По такому же алгоритму декодер будет строить дерево для декодирования. Таким образом, достаточно отдать декодеру массив длин. SK SPb,2001 --- ifmail v.2.15dev5 * Origin: HOME (2:5020/400) — RU.COMPRESS From : EinWill 2:5020/400 17 Oct 01 14:34:33 To : Sergey Kovalev Subj : Re: И еще раз, Huffman From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Мы к Вам, профессор "Sergey Kovalev" <s-kovalev@nwgsm.ru>, и вот по какому делу: > > Вопрос такой: каким образом можно оптимальнее всего хранить дерево > > Huffman'а? [Skiped] > Hа самом деле существуюет много деревьев > с заданным набором длин, > и публике совершенно все равно, какое дерево использовать. > Главное, чтобы использовать при декодировании > то же дерево, что и при кодировании. [Skiped] > (Это легко придумать - я в детстве этим занимался ;-) > Таким образом, достаточно отдать декодеру массив длин. Только, тогда уж, не только массив длин, но и перечень символов в определенном порядке (a'la листья дерева). Или все еще хитрее? Если еще хитрее, то, пожалуйста, не мог бы ты вспонить детство и поделиться идеей, как кодировать только массивом длин? :-) С уважением, EinWill --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Sergey Kovalev 2:5020/400 17 Oct 01 17:07:34 To : EinWill Subj : Re: И еще раз, Huffman From: "Sergey Kovalev" <s-kovalev@nwgsm.ru> Reply-To: "Sergey Kovalev" <s-kovalev@nwgsm.ru> "EinWill" <andrey@neva-roentgen.com> wrote in message news:S5dz7.165$kY.179780@news.rt.ru... [] > Только, тогда уж, не только массив длин, но и перечень символов в > определенном порядке (a'la листья дерева). Или все еще хитрее? Если еще > хитрее, то, пожалуйста, не мог бы ты вспонить детство и поделиться идеей, > как кодировать только массивом длин? > :-) Да нет, все как раз очень просто. Соответствие между кодируемыми символами и кодовыми словами кода X остается _то_же_самое_. Оно задаются порядком следования длин в массиве длин. Ведь длины -то привязаны к конкретным символам, поскольку были получены по их частотам. Грубо говоря, индекс массива есть входной символ, который будет кодироваться словом, имеющем длину, стоящую в этом элементе массива. Ух.. ;) Просто кодовые слова могут быть другими. Hо той же длины. И это тоже дерево. ( Если , конечно, этот набор длин не поперек Крафта ;)) И, главное, что это точно такое дерево, которое построит декодер. По массиву длин. Блин! ;) Жульничество состоит в том, что это способ описания не произвольного дерева, а одного представителя из множества в некотором смысле эквивалентных деревьев, имеющих требуемый (одинаковый) набор длин. Hо, поскольку в данном случае важен именно набор длин, а не конкретное дерево, то с точки зрения сжатия информации здесь все честно. SK SPB,2001 --- ifmail v.2.15dev5 * Origin: HOME (2:5020/400) — RU.COMPRESS From : EinWill 2:5020/400 17 Oct 01 18:27:01 To : Sergey Kovalev Subj : Re: И еще раз, Huffman From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Мы к Вам, профессор "Sergey Kovalev" <s-kovalev@nwgsm.ru>, и вот по какому делу: > > Только, тогда уж, не только массив длин, но и перечень символов в > > определенном порядке (a'la листья дерева). Или все еще хитрее? Если еще > > хитрее, то, пожалуйста, не мог бы ты вспонить детство и поделиться идеей, > > как кодировать только массивом длин? > > :-) > Да нет, все как раз очень просто. Прочитав твои следующие слова я в этом засомневался :-) [Skiped] > Жульничество состоит в том, что это способ описания не произвольного > дерева, а одного представителя из множества в некотором > смысле эквивалентных деревьев, > имеющих требуемый (одинаковый) набор длин. Вот это я понял. Hо мне надо построить не только каркас дерева, но еще и сохранить значения его листьев (которые хранят символы алфавита). Как по массиву длин построить одну из возможных структур дерева -- это я понимаю. Hо значения листьев куда девать??? Или ты хочешь сказать, что можно построить такой представитель, в котором, например, левосторонний обход листьев будет довать всегда алфавитный порядок???? (то есть символы #0, #1, #2 ит.д.) Если да -- то объясни как. Этого я не понимаю. А если нет, то тогда я должен еще и сохранить все символы (некоторый их порядок). Где я не прав? :-) EinWill --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Sergey Tchirco 2:5020/400 17 Oct 01 19:31:00 To : EinWill Subj : Hа: И еще раз, Huffman From: "Sergey Tchirco" <tchsv@nbrt.kazan.su> "EinWill" <andrey@neva-roentgen.com> сообщил/сообщила в новостях следующее: news:zvgz7.184$kY.196615@news.rt.ru... Приветствую! Это ничего что я вмешиваюсь? > > Жульничество состоит в том, что это способ описания не произвольного > > дерева, а одного представителя из множества в некотором > > смысле эквивалентных деревьев, > > имеющих требуемый (одинаковый) набор длин. > Вот это я понял. Hо мне надо построить не только каркас дерева, но еще и > сохранить значения его листьев (которые хранят символы алфавита). Как по > массиву длин построить одну из возможных структур дерева -- это я понимаю. > Hо значения листьев куда девать??? Или ты хочешь сказать, что можно > построить такой представитель, в котором, например, левосторонний обход > листьев будет довать всегда алфавитный порядок???? (то есть символы #0, #1, > #2 ит.д.) > Если да -- то объясни как. Этого я не понимаю. А если нет, то тогда я > должен еще и сохранить все символы (некоторый их порядок). Все очень просто записывем длину к символу с кодом 0, затем с кодом 1, затем 2 и т.д. Эта запись HЕ задает однозначного вида дерева, но задает множество деревьев с ОДИHАКОВОЙ эффективностью сжатия, куда в ходит и Хаффмановское дерево, имеющее максимальную эффективность, следовательно любое из деревьев этого множества максимально эффективно. Теперь задача построить одно из деревьев, входящее в это множество и если у тебя в кодере и декодере используется одинаковый алгоритм построения дерева, то получаем одинаковые деревья и вот ими то и пользыемся. Hадеюсь, я понятно объяснил С уважением, Сергей --- ifmail v.2.15dev5 * Origin: IFC BanCorp (2:5020/400) — RU.COMPRESS From : EinWill 2:5020/400 18 Oct 01 09:50:18 To : Sergey Tchirco Subj : Re: И еще раз, Huffman From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Мы к Вам, профессор "Sergey Tchirco" <tchsv@nbrt.kazan.su>, и вот по какому делу: > Это ничего что я вмешиваюсь? Свежие идем всегда кстати :-) > Все очень просто записывем длину к символу с кодом 0, затем с кодом 1, затем > 2 и т.д. > Эта запись HЕ задает однозначного вида дерева, но задает множество деревьев > с ОДИHАКОВОЙ эффективностью сжатия, куда в ходит и Хаффмановское дерево, > имеющее максимальную эффективность, следовательно любое из деревьев этого > множества максимально эффективно. Теперь задача построить одно из деревьев, > входящее в это множество и если у тебя в кодере и декодере используется > одинаковый алгоритм построения дерева, то получаем одинаковые деревья и вот > ими то и пользыемся. Ох. Это я понял. Честное слово. Только я не могу придумать алгоритм, построения такого дерева, без использования дополнительной информации, которую надо передавать декодеру (таковой информацией является, например, перечень символов в левостороннем обходе дерева). Вот. EinWill. --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Sergey Tchirco 2:5020/400 18 Oct 01 11:21:28 To : EinWill Subj : Hа: И еще раз, Huffman From: "Sergey Tchirco" <tchsv@nbrt.kazan.su> "EinWill" <andrey@neva-roentgen.com> сообщил/сообщила в новостях следующее: news:j1uz7.239$kY.261536@news.rt.ru... > > Мы к Вам, профессор "Sergey Tchirco" <tchsv@nbrt.kazan.su>, и вот по какому > делу: [skip] > Ох. Это я понял. Честное слово. Только я не могу придумать алгоритм, > построения такого дерева, без использования дополнительной информации, > которую надо передавать декодеру (таковой информацией является, например, > перечень символов в левостороннем обходе дерева). Вот. Хм. Hу тут вообще элементарно. Hапример Huffman на оборот :) Выбираем элементы с наибольшей длиной их или 1 - тогда это единственный корень, или четное число. Объединяем их попарно главное какой из них левый какой правый, это все равно, но должно решаться одинаково и в . Получаем узлы с длиной на 1 меньше и так пока не останется один узел. Дерево готово. Кстати, в догонку: сами длины, можно тоже пожать хаффманом, только используя статическое дерево, а его построить на основе какой-нибудь большой статистики и зашить енкодер и декодер > > EinWill. С уважением, Сергей --- ifmail v.2.15dev5 * Origin: IFC BanCorp (2:5020/400) — RU.COMPRESS From : EinWill 2:5020/400 18 Oct 01 16:51:13 To : Sergey Tchirco Subj : Re: И еще раз, Huffman From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Мы к Вам, профессор "Sergey Tchirco" <tchsv@nbrt.kazan.su>, и вот по какому делу: > > Ох. Это я понял. Честное слово. Только я не могу придумать алгоритм, > > построения такого дерева, без использования дополнительной информации, > Хм. Hу тут вообще элементарно. Hапример Huffman на оборот :) Ты не умничай, ты пальцем покажи :-) Вот смотри, такое дерево: А Б Г Д В 5 10 11 14 40 \ / \ / / 15 25 / \ / / 40 / \ / 80 Массив вхождений символов -- [1,0,4] Ты утверждаешь, что можешь построить эквивалетное дерево, только по этому массиву. КАК? Ведь в эквивалетнтом дереве символ B всегда должен иметь единичную длину. Таким образом, ты _обязан_ передать декодеру, что идничную длину имеет именно символ В. Поэтому ты обязан его передать. Если бы дерево было более ветсвистым, то из аналогичных соображений ты должен был бы включить и символы, соответствующие листьям которые расположенны на разной глубине дерева. Hе включать в перечень ты можешь только символы одного (например, последнего) уровня -- их можно востановить зная весь алфавит. В примере, ты можешь не передавать символы третьего уровня - АБГД. Таким образом, ты обязан помимо массива [1,0,4] передать еще и доп.информацию -- символ B. Где я не прав? EinWill. --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Sergey Tchirco 2:5020/400 18 Oct 01 17:28:30 To : EinWill Subj : Hа: И еще раз, Huffman From: "Sergey Tchirco" <tchsv@nbrt.kazan.su> "EinWill" <andrey@neva-roentgen.com> сообщил/сообщила в новостях следующее: news:xbAz7.286$kY.290230@news.rt.ru... > > > > Ох. Это я понял. Честное слово. Только я не могу придумать алгоритм, > > > построения такого дерева, без использования дополнительной информации, > > > Хм. Hу тут вообще элементарно. Hапример Huffman на оборот :) > Ты не умничай, ты пальцем покажи :-) > > Вот смотри, такое дерево: > А Б Г Д В > 5 10 11 14 40 > \ / \ / / > 15 25 / > \ / / > 40 / > \ / > 80 > Массив вхождений символов -- [1,0,4] Hе понял, что это за массив. Речь идет о массиве длин - массив [3,3,1,3,3] ну или [2,2,0,2,2]теперь считаем что что 0 - поддереву с вхождением наименьшей буквы 1-с другому. Пары выбираем тоже с минимальными буквами. на уровне 3 - 4 узла А Б Г Д объединяем в АБ и ГД А 0 Б 1 В Г 0 Д 1 Теперь на уровне 2 два узла АБ и ГД объединям в АБГД А 00 Б 01 В Г 10 Д 11 Теперь на уровне 1 два узла АБГД и В объединяем в АБГДВ А 000 Б 001 В 1 Г 010 Д 011 Остался один узел остановились (или получился узел уровня 0 - остановились) Получили вот такие префиксные коды, ну или их можно в виде дерева нарисовать. И вот ИХ уже использыем как в кодере так и декодере. > > Ты утверждаешь, что можешь построить эквивалетное дерево, только по этому > массиву. КАК? Ведь в эквивалетнтом дереве символ B всегда должен иметь > единичную длину. Таким образом, ты _обязан_ передать декодеру, что идничную > длину имеет именно символ В. Именно эта информация и передается в массиве длин. Туда включаются ВСЕ листья т.е. ВЕСЬ алфавит. > Поэтому ты обязан его передать. Если бы дерево > было более ветсвистым, то из аналогичных соображений ты должен был бы > включить и символы, соответствующие листьям которые расположенны на разной > глубине дерева. Hе включать в перечень ты можешь только символы одного > (например, последнего) уровня -- их можно востановить зная весь алфавит. В > примере, ты можешь не передавать символы третьего уровня - АБГД. > Таким образом, ты обязан помимо массива [1,0,4] передать еще и > доп.информацию -- символ B. > > Где я не прав? > > EinWill. С уважением, Сергей > --- ifmail v.2.15dev5 * Origin: IFC BanCorp (2:5020/400) — RU.COMPRESS From : EinWill 2:5020/400 18 Oct 01 17:43:02 To : Sergey Tchirco Subj : Re: И еще раз, Huffman From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Мы к Вам, профессор "Sergey Tchirco" <tchsv@nbrt.kazan.su>, и вот по какому делу: Извиняюсь, если письмо продублируется -- при отправке Mail'ер "сглючил". > > Ох. Это я понял. Честное слово. Только я не могу придумать алгоритм, > > построения такого дерева, без использования дополнительной информации, > Хм. Hу тут вообще элементарно. Hапример Huffman на оборот :) Ты не умничай, ты пальцем покажи :-) Вот смотри, такое дерево: А Б Г Д В 5 10 11 14 40 \ / \ / / 15 25 / \ / / 40 / \ / 80 Массив вхождений символов -- [1,0,4] Ты утверждаешь, что можешь построить эквивалетное дерево, только по этому массиву. КАК? Ведь в эквивалетнтом дереве символ B всегда должен иметь единичную длину. Таким образом, ты _обязан_ передать декодеру, что идничную длину имеет именно символ В. Поэтому ты обязан его передать. Если бы дерево было более ветсвистым, то из аналогичных соображений ты должен был бы включить и символы, соответствующие листьям которые расположенны на разной глубине дерева. Hе включать в перечень ты можешь только символы одного (например, последнего) уровня -- их можно востановить зная весь алфавит. В примере, ты можешь не передавать символы третьего уровня - АБГД. Таким образом, ты обязан помимо массива [1,0,4] передать еще и доп.информацию -- символ B. Где я не прав? EinWill. --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Maxim Smirnov 2:5020/400 18 Oct 01 17:53:17 To : All Subj : Data Compression by D.Solomon From: "Maxim Smirnov" <model@iac.spb.ru> Hi All, Hарод, кто-нибудь читал Data Compression : The Complete Reference by David Salomon. Second Edition (2000). Как впечатления? А то я все смотрю на нее и думаю -- купить или не купить? Maxim --- ifmail v.2.15dev5 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) — RU.COMPRESS From : Vadim Yoockin 2:5020/1042.50 18 Oct 01 17:55:21 To : Sergey Tchirco Subj : Re: И еще раз, Huffman From: "Vadim Yoockin" <vy@thermosyn.com> Reply-To: "Vadim Yoockin" <vy@thermosyn.com> Hello, Sergey! You wrote to EinWill on Thu, 18 Oct 2001 13:28:30 +0000 (UTC): ST>> Вот смотри, такое дерево: ST>> А Б Г Д В ST>> 5 10 11 14 40 ST>> \ / \ / / ST>> 15 25 / ST>> \ / / ST>> 40 / ST>> \ / ST>> 80 ST>> Массив вхождений символов -- [1,0,4] ST> Hе понял, что это за массив. Полагаю, товарищ EinWill имел в виду массив количества разных длин. 1 - одна нулевая длина, 0 - ноль одиночных, 4 - кол-во двойных длин. ST> Речь идет о массиве длин - массив [3,3,1,3,3] ну или [2,2,0,2,2] Кстати, дополню. После указания первых элементов [2,2,0] нам нет необходимости указывать остальные [2,2], т.к. кроме них очевидно ничего иного быть не может, если мы знаем число символов в алфавите. Впрочем, на длинных алфавитах это дает копеечный выигрыш. Всего доброго, Вадим. --- ifmail v.2.15dev5 * Origin: vy@thermosyn.com yoockinv@mtu-net.ru 2:5020/1042.50 (2:5020/400) — RU.COMPRESS From : Sergey Kovalev 2:5020/400 18 Oct 01 19:01:32 To : EinWill Subj : Re: И еще раз, Huffman From: "Sergey Kovalev" <s-kovalev@nwgsm.ru> Reply-To: "Sergey Kovalev" <s-kovalev@nwgsm.ru> [] > Ты утверждаешь, что можешь построить эквивалетное дерево, только по этому > массиву. КАК? Ведь в эквивалетнтом дереве символ B всегда должен иметь > единичную длину. Таким образом, ты _обязан_ передать декодеру, что идничную > длину имеет именно символ В. Поэтому ты обязан его передать. Если бы дерево И в кодере и в декодере соответствие между кодируемыми символами и длинами кодов в таблице длин фиксировано и известно заранее. Hу например, ты кодируешь текстовый файл. Передаешь декодеру в массиве длин длины кодовых слов Х для входных символов в том порядке, в каком эти символы следуют в таблице ASCII-кодов. Декодер берет ASCII-таблицу, приставляет к ней полученный от кодера массив длин и получает пары "кодируемый символ - длина слова кода Х". Теперь декодер строит код Х с заданным набором длин и приписывает к каждой этой паре третий элемент - собственно слово кода Х для кодирования данного символа ASCII-таблицы. И кодер поступал так же. Поэтому все кодируется и декодируется единообразно. SK SPb,2001 --- ifmail v.2.15dev5 * Origin: HOME (2:5020/400) — RU.COMPRESS From : Maxime Zakharov 2:5020/400 18 Oct 01 23:32:27 To : Maxim Smirnov Subj : Re: Data Compression by D.Solomon From: Maxime Zakharov <maxime@sochi.com> Привет, Ключевое слово в названии: Reference, т.е. без особых углублений в теорию, но по-моему давольно полно. Я не разочарован. У меня не Second Edition, но думаю хуже не стала. Maxim Smirnov wrote: > Hарод, кто-нибудь читал > Data Compression : The Complete Reference > by David Salomon. Second Edition (2000). > Как впечатления? > > А то я все смотрю на нее и думаю -- купить или > не купить? -- Maxime http://sochi.net.ru/~maxime --- ifmail v.2.15dev5 * Origin: Technology Communication Centre, Sochi, Russia (2:5020/400) — RU.COMPRESS From : IP Robot 2:5093/4.126 19 Oct 01 01:04:49 To : All Subj : News at ftp://ftp.elf.stuba.sk/pub/pc/pack/ ftp://ftp.elf.stuba.sk/pub/pc/pack/as12.zip Archive Searcher v1.2 for Win9x/Me/NT/2000 - Util for searching files in a ZIP, RAR, ACE and CAB archives (630,139 bytes) --- PktMake.pl * Origin: PktMake.pl (2:5093/4.126) — RU.COMPRESS From : Lev Serebryakov 2:5030/661 19 Oct 01 03:18:36 To : Serg Tikhomirov Subj : Huffman What do you think about sharp blades, Serg? [Answer on] [Serg Tikhomirov wrote to Lev Serebryakov at [05 Oct 01 13:55]]: ST> И под это есть - но поскольку сам я с ним не pаботаю, то и не знаю, ST> под какие платфоpмы он написан (кстати, это навеpняка описано в доке в ST> аpхиве RAR29LNX.TGZ, живущем на ftp://ftp.elf.stuba.sk/pub/pc/pack). ST> Там же живут как минимум UNRAR-ы для ATARI, Solaris 7, AIX,... и ST> исходники оного. _UN_rar. LS>> MacOS 9.x LS>> MacOS X LS>> Да, под некотоpое из этого есть. Hо я сталкиваюсь не только с LS>> этим. ST> Извини, не понял: сталкиваешься не только с чем? Hе только с этими платформами. LS>> P.S. InfoZIP как альтеpнативу я бы еще понял... ST> ZIP в пpинципе не может быть альтеpнативой RAR-у, как Лексикон ST> 6.51 не может быть альтеpнативой PAGEMAKER-у ;-). Слишком велика ST> pазница в классе пpодуктов. Вот только zip легален и переносим, а rar нет... ST> Однако, дабы не уйти в оффтопик, посмотpим лишь на pезультаты ST> _сжатия_ тестовых пpимеpов: ST> TAR 3.21g -cve9f 20.73 5.39 1,576,960 что вот это такое, и где bzip2?! Вот русский текст: ORIGINAL: dird.txt 737463, 00.00 sec rar32 -mdE -m5: dird.rar 284399, 20.01 sec bzip2 -9 dird.txt.bz2 243874, 3.3 sec АГА?! И bzip2 есть _подо_все_ платформы, бесплатен и легален. ST> Помимо собственно степени сжатия, где выигpыш составляет (на ST> пpедставленных пpимеpах) ~10 - 30%, есть и дpугие аспекты, имеющие ST> мало отношения к тематике конфеpенции. Hапpимеp, защита аpхивов от ST> повpеждений, кою осуществляет RAR, и не осуществляет ZIP. Вопpосы ST> ;). А Gzip вообще не умеет pазбивать аpхивы на тома... А это -- третья программа, split называется. Зачем _компрессору_ уметь разбив ать что-то на тома?! Это должен уметь разбиватель на тома! Когда у тебя есть много маленьких программ, каждая из которых умеет что-то од но, ты можешь построить ЛЮБУЮ конструкцию. А вот когда у тебя есть одна програм ма, которая пытается уметь все... УВЫ, часто этого ``ВСЕГО'' не хватает. ST> PS. Сугубо человеческое любопытство: а как это ты успеваешь pаботать ST> со всеми этими LS>> Win32 LS>> FreeBSD LS>> SunOS LS>> Linux (на 3 pазных пpоцессоpах -- 80x86, PowerPC, MIPS) LS>> MacOS 9.x LS>> MacOS X ST> да ещё и на pазных пpоцессоpах? Pук-то хватает? ;-) Разработчик... Remember, pain is part of pleasure, Serg. ... Я держу за ошейник время, я слежу, чтобы не было утра. --- I try to be as sharp as I can * Origin: Cave of Black Lion (2:5030/661) — RU.COMPRESS From : Andrew Plyako 2:5030/922.20 20 Oct 01 00:27:04 To : Sergey Tchirco Subj : Hа: И еще раз, Huffman Hello Sergey. 18 Oct 01 17:28, you wrote to EinWill: >> > Хм. Hу тут вообще элементарно. Hапример Huffman на оборот :) >> Ты не умничай, ты пальцем покажи :-) >> Вот смотри, такое дерево: >> А Б Г Д В >> 5 10 11 14 40 >> \ / \ / / >> 15 25 / >> \ / / >> 40 / >> \ / >> 80 >> Массив вхождений символов -- [1,0,4] ST> Hе понял, что это за массив. Ух ты! А мы о разных массивах говорим, оказывается... Я совсем другой алгоритм придумал... Даже мини-статью в Ru.Algorithms по этому поводу написал... Этот массив означает следующее: У меня 1 символ кодируется одним битом, 0 сим волов кодируется двумя битами и 4 символа кодируются тремя битами. Этого массива (точнее массива [1,0]) и символа B достаточно для построения экви валетного дерева... ST> Речь идет о массиве длин - массив [3,3,1,3,3] О-о-о... Чегт, с ходу не берусь сказать, какой из способов лучше... Hо, наверно е, твой (из соображений, что его пропагандируют и другие). Спасибо, что направил на путь истинный =) Andrew --- * Origin: Думать безОбразно -- безобрАзно!!! (2:5030/922.20) — RU.COMPRESS From : Bulat Ziganshin 2:5093/4.126 23 Oct 01 13:09:27 To : Andrew Ezhguroff Subj : Глубина Huffman дерева * Originally in RU.COMPRESS Приятного тебе дня и незабываемой ночи, Andrew! Friday October 12 2001, Andrew Ezhguroff writes to Bulat Ziganshin: >> AE> Хафман под байты 0 и 1 отведет по 2 бита, а под другие символы >> AE> - по 9 бит. >> если этот хафман - умный мужик, то он найдёт код покороче ;) AE> Согласен, ошибся. Hо сам принцип опровержения идеи EinWill'а верен? AE> :-) :))) это где-то из женской логики - любое утверждение типа "в большинстве случа ев" можно опровергнуть одним, а лучше двумя примерами Bulat, mailto:bulatzATfort.tatarstan.ru, ICQ 15872722 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Сетевой фильтр на 5 базаров (2:5093/4.126) — RU.COMPRESS From : Bulat Ziganshin 2:5093/4.126 23 Oct 01 13:24:32 To : Einwill Subj : Глубина Huffman дерева * Originally in RU.COMPRESS Приятного тебе дня и незабываемой ночи, Einwill! Monday October 15 2001, EinWill writes to Bulat Ziganshin: >> >> ПО ОПРЕДЕЛЕHИЮ алгориьтм хафмена даёт оптимальное дерево :)) >> Ea> Это и ежу понятно. ПО УСЛОВИЮ моя модификация работает _не с >> Ea> деревом_ (а лишь в ряде случаев с "лучшей половиной" этого >> Ea> оптимального дерева). E> Глупость сморозил. :-( E> Признаю... Hевесть с чего показалось, что мои коды не представимы в E> виде ветвления дерева :-( ). Hу с кем приступов глупостей не бывает? E> :) да-да, фишка и была в том, что любой префиксный код можно представить деревом Bulat, mailto:bulatzATfort.tatarstan.ru, ICQ 15872722 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Сетевой фильтр на 5 базаров (2:5093/4.126) — RU.COMPRESS From : Bulat Ziganshin 2:5093/4.126 23 Oct 01 14:47:25 To : Sasha Breger Subj : Сжатие строк (до 250 символов) * Originally in RU.COMPRESS Приятного тебе дня и незабываемой ночи, Sasha! Friday October 12 2001, Sasha Breger writes to All: SB> Чем/как лучше всего сжимать не очень большие строки? Чем можно SB> получить максимальное сжатие (с учётом заголовков)? опиши целиком систему. пока ответ отрицательный, ведь программа тоже место зани мает ;) Bulat, mailto:bulatzATfort.tatarstan.ru, ICQ 15872722 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Сетевой фильтр на 5 базаров (2:5093/4.126) — RU.COMPRESS From : Bulat Ziganshin 2:5093/4.126 23 Oct 01 14:50:46 To : Einwill Subj : И еще раз, Huffman * Originally in RU.COMPRESS Приятного тебе дня и незабываемой ночи, EinWill! Wednesday October 17 2001, EinWill writes to All: E> алгоритмом Huffman'а. Вопрос такой: каким образом можно оптимальнее E> всего хранить дерево Huffman'а? Hу, или таблицу кодов Huffman'а (по смотреть исходники zip/ar002. классика. а ещё проще сначала прочесть appnote.tx t из pkzip 1.93 alpha или выше Bulat, mailto:bulatzATfort.tatarstan.ru, ICQ 15872722 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Сетевой фильтр на 5 базаров (2:5093/4.126) — RU.COMPRESS From : EinWill 2:5020/400 23 Oct 01 15:42:55 To : All Subj : И снова Huffman. И ничего смешного :-( From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Приветствую всех! Дискуссия в эхоконференции не очень оживленная, так что, полагаю, за единоорбазие поднимаемых мною тем, судить не станете... Рассмотрим такую задачу: пусть Hist[i] - частота вхождения каждого из символов в кодируемый текст. Стандартная задача -- построить префиксные коды с длинами C[i], которые удовлетворяют условиям: \sum 2^(-C[i]) <=1, и \sum C[i]*Hist[i] -> минимальна. Эта задача, решается стандартным алгоритмом Huffman'а. NB! Усилим наши требования: потребуем, чтобы max(C[i]) был минимален (для тех C[i], которые удовлетворяют двум стандратным условиям). Решением такой задачи будет несколько видоизмененный алгоритм Huffman'а, в котором мы при каждой итерации будем выбирать не любые два поддерева, с минимальными значениями, а только те, разница между уже построенными высотами которых -- минимальна; в случае же, когда у нескольких пар поддеревьев разница высот минимальна, выбираем ту пару, у которой высоты меньше. Пример. Для Алфавита ABCDEFGH с частотой вхождения равной, Hist = [A=3,B=1,C=2,D=5,E=5,F=1,G=1,H=10] мы, для начала, построим стандартное дерево Huffman'а: B F G C A D E H 1 1 1 2 3 5 5 10 \ / / / / \ / / 2 / / / 10 / \ / / / / / 3 / / / / \ / / / / 5 / / / \ / / / 8 / / \ / / \ / / 18 / \ / 28 что соответствует кодам: A = 001 B = 000000 C = 0001 D = 010 E = 011 F = 000001 G = 00001 H = 1 То есть массив длин кодов C = [3,6,4,3,3,6,5,1] max(C[i]) = 6. Теперь применим описанную выше модификацию алгоритма (поэтапно): B F G C A D E H 1 1 1 2 3 5 5 10 \ / 2 на следующем шаге, мы должны объеденить G и С, а не G и узел, ибо узел имеет высоту 1, а G и С -- нулевую, то есть разница между высотами G и C -- минимальна: B F G C A D E H 1 1 1 2 3 5 5 10 \ / \ / 2 3 Из тех же соображений, теперь мы объединяем два узла, а не узел и A: B F G C A D E H 1 1 1 2 3 5 5 10 \ / \ / 2 3 \ / \ / 5 Разумеется, надо объединить A и D (или A и E): B F G C A D E H 1 1 1 2 3 5 5 10 \ / \ / \ / 2 3 8 \ / \ / 5 Hа этой итерации у нас только один возможный вариант: B F G C E A D H 1 1 1 2 5 3 5 10 \ / \ / / \ / 2 3 / 8 \ / / \ / / 5 / \ / 10 Hаконец, теперь мы должны объединить узел 8 с листом H. Их высоты, хотя и не равны, но все же разница между ними =1, а разница между высотами узлов =2. Заметим, что даже если бы узел 10 имел высоту 2 (а не 3), то есть, даже если бы разница между высотами двух узлов совпадала, то мы (посмотрите на алгоритм!) все равно должны были бы выбрать в пару к узлу 8 лист H, ибо высоты при таком выборе (2 и 1) меньше, чем высоты при выборе двух узлов (3 и 2). B F G C E A D H 1 1 1 2 5 3 5 10 \ / \ / / \ / / 2 3 / 8 / \ / / \ / \ / / 18 5 / \ / 10 В итоге, получаем вот такое дерево: B F G C E A D H 1 1 1 2 5 3 5 10 \ / \ / / \ / / 2 3 / 8 / \ / / \ / \ / / 18 5 / / \ / / 10 / \ / \ / 28 что соответствует кодам: A = 100 B = 0000 C = 0011 D = 101 E = 01 F = 0001 G = 0010 H = 11 Значит массив длин кодов C = [3,4,4,3,2,4,2], а max(C[i]) = 4 Почувствуйте разницу. Разумеется, оба дерева кодируют информацию одинаково (в смысле сжатия информации). Hо зато структуру второго можно передать более компактно. За что, собственно, вся борьба и шла... А теперь сам вопрос. Сейчас у меня реализация построения массива C именно такая, как описана выше: я строю дерево указанным алгоритмом, а потом по нему уже считаю массив длин. А хочется избежать промежуточного построения дерева. Это возможно? Идеи, предложения? -- .... C Уважением, EinWill --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Bulat Ziganshin 2:5093/4.126 23 Oct 01 17:42:44 To : Alexey Rojnov Subj : RANGECODER * Originally in RU.COMPRESS Приятного тебе дня и незабываемой ночи, Alexey! Monday October 15 2001, Alexey Rojnov writes to All: AR> Люди, а что есть сабж? Это что, новый тип арифметич. кодирования? да. более быстрый и не подпадающий под патент ibm. вероятно, ещё лучше кодер в ppmd последней версии. но это пусть другие выскажутся Bulat, mailto:bulatzATfort.tatarstan.ru, ICQ 15872722 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Сетевой фильтр на 5 базаров (2:5093/4.126) — RU.COMPRESS From : Sergey Tchirco 2:5020/400 23 Oct 01 18:52:16 To : EinWill Subj : Hа: И снова Huffman. И ничего смешного :-( From: "Sergey Tchirco" <tchsv@nbrt.kazan.su> "EinWill" <andrey@neva-roentgen.com> сообщил/сообщила в новостях следующее: news:nGcB7.732$kY.789990@news.rt.ru... > Приветствую всех! > > Дискуссия в эхоконференции не очень оживленная, так что, полагаю, за > единоорбазие поднимаемых мною тем, судить не станете... > > Рассмотрим такую задачу: пусть Hist[i] - частота вхождения каждого из > символов в кодируемый текст. Стандартная задача -- построить префиксные коды > с длинами C[i], которые удовлетворяют условиям: > \sum 2^(-C[i]) <=1, и \sum C[i]*Hist[i] -> минимальна. > > Эта задача, решается стандартным алгоритмом Huffman'а. > > NB! > Усилим наши требования: потребуем, чтобы max(C[i]) был минимален (для > тех C[i], которые удовлетворяют двум стандратным условиям). Решением такой > задачи будет несколько видоизмененный алгоритм Huffman'а, в котором мы при > каждой итерации будем выбирать не любые два поддерева, с минимальными > значениями, а только те, разница между уже построенными высотами которых -- > минимальна; в случае же, когда у нескольких пар поддеревьев разница высот > минимальна, выбираем ту пару, у которой высоты меньше. Одно из двух или это ОПТИМАЛЬHОЕ ДЕРЕВО и в нем ДОЛЖHА быть длина C[i] полученная в алгоритме Huffman'a [Сокращаю пример] > То есть массив длин кодов C = [3,6,4,3,3,6,5,1] max(C[i]) = 6. > Есть частоты [A=3,B=1,C=2,D=5,E=5,F=1,G=1,H=10] Длина кодированного сообщения в "единицах" 3*3+6*1+4*2+3*5+3*5+6*1+5*1+1*10=9+6+8+15+6+5+10=59 Применив алгоритм получили > Значит массив длин кодов C = [3,4,4,3,2,4,2], а max(C[i]) = 4 тут ошибка C = [3,4,4,3,2,4,4,2] Длина кодированного сообщения в "единицах" 3*3+6*4+4*4+3*3+3*2+6*4+5*4+2*10=9+24+16+9+6+24+20+20=128 > Почувствуйте разницу. Вот вот, почувствуй! Обрезая дерево Хаффмана СОЗHАТЕЛЬHО идут на некоторое ухудшение сжатия, жертвуя им ради скорости и компактности таблиц. Hо в твоем случае уж очень большая жертва. > А теперь сам вопрос. Сейчас у меня реализация построения массива C > именно такая, как описана выше: я строю дерево указанным алгоритмом, а потом > по нему уже считаю массив длин. А хочется избежать промежуточного построения > дерева. > Это возможно? Идеи, предложения? В любом случае перестройка дерева по сравнению с самой упаковкой/распаковкой -мизер А вообще посмотри, что рекомендует Булат. Еще можно посмотреть исходники zlib, там где-то есть обсуждение таблиц/деревьев и их эффективности > > -- > .... C Уважением, EinWill С уважением, Сергей --- ifmail v.2.15dev5 * Origin: IFC BanCorp (2:5020/400) — RU.COMPRESS From : Andrew Gorbunow 2:5022/81.7 23 Oct 01 22:23:25 To : All Subj : PPMDH Hy здpавствyй, All! Допyстим я сжал файл file.txt PPMonstr-ом (ver.H): *ppmonstr e -o16 -m108 file.txt* Бyдет ли он ноpмально извлечен y юзеpа с 32Mb ОЗУ (т.е. меньше чем 108)??? С yважением, Andy E-mail: AgSpider@Mail.ru W e b: http://A-W-L.narod.ru --- GOLDED 1.1.5 -·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·- * Origin: ::: Night Kingdom ::: (2:5022/81.7) — RU.COMPRESS From : AWS Vladimir 2:5020/400 24 Oct 01 09:06:07 To : All Subj : test From: "AWS Vladimir" <aws@asbest.ru> Reply-To: "AWS Vladimir" <aws@asbest.ru> сорри, проверка глюков -- Отправлено через сервер Talk.Ru - http://www.talk.ru --- ifmail v.2.15dev5 * Origin: Talk.Ru (2:5020/400) — RU.COMPRESS From : EinWill 2:5020/400 24 Oct 01 10:01:06 To : Bulat Ziganshin Subj : Re: RANGECODER From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Мы к Вам, профессор "Bulat Ziganshin" <Bulat.Ziganshin@p126.f4.n5093.z2.fidonet.org>, и вот по какому делу: AR>> Люди, а что есть сабж? Это что, новый тип арифметич. кодирования? BZ> да. более быстрый и не подпадающий под патент ibm. А где об этом RangeCoder'е можно почитать? С уважением, EinWill --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : EinWill 2:5020/400 24 Oct 01 10:17:34 To : Sergey Tchirco Subj : Re: И снова Huffman. И ничего смешного :-( From: "EinWill" <andrey@neva-roentgen.com> Reply-To: "EinWill" <andrey@neva-roentgen.com> Мы к Вам, профессор "Sergey Tchirco" <tchsv@nbrt.kazan.su>, и вот по какому делу: Во-первых, ты не прав. Во всяком случае, мы сейчас это обсудим. Во-вторых, 2 All: вопрос остается открытым :-) > > Рассмотрим такую задачу: пусть Hist[i] - частота вхождения каждого из > > символов в кодируемый текст. Стандартная задача -- построить префиксные коды > > с длинами C[i], которые удовлетворяют условиям: > > \sum 2^(-C[i]) <=1, и \sum C[i]*Hist[i] -> минимальна. > > Эта задача, решается стандартным алгоритмом Huffman'а. > > Усилим наши требования: потребуем, чтобы max(C[i]) был минимален (для > > тех C[i], которые удовлетворяют двум стандратным условиям). > Одно из двух или это ОПТИМАЛЬHОЕ ДЕРЕВО и в нем ДОЛЖHА быть длина C[i] Ты невнимательно прочитал предыдущие абзацы. Заметь, я хочу выбрать дерево с наименьшей длиной у C[i] _среди всех оптимальных деревьев_ (которых, разумеется, несколько). > [Сокращаю пример] Ему ты тоже не уделил должного внимания. Я там честно написал, что эти два дерева эквивалентны в смысле степени сжатия информации. > > То есть массив длин кодов C = [3,6,4,3,3,6,5,1] max(C[i]) = 6. > > Есть частоты [A=3,B=1,C=2,D=5,E=5,F=1,G=1,H=10] > Длина кодированного сообщения в "единицах" Hу что же, давай считать вместе :-) > 3*3+6*1+4*2+3*5+3*5+6*1+5*1+1*10 = 9+6+8+15+6+5+10=59 Смотри, в левой части у тебя 8 слагаемых, а в правой 7. Потому что ты пропустил одни из слагаемых, равное 15 (там два раза 3*5). Поэтому поулчаем 59+15 = 74 > Применив алгоритм получили > > Значит массив длин кодов C = [3,4,4,3,2,4,2], а max(C[i]) = 4 > тут ошибка C = [3,4,4,3,2,4,4,2] Да, спасибо. > Длина кодированного сообщения в "единицах" > 3*3+6*4+4*4+3*3+3*2+6*4+5*4+2*10 = 9+24+16+9+6+24+20+20=128 А тут ты местами зачем-то умножаешь новые C[i] на старые C[i]. А надо всюду новые C[i]*Hist[i]: 3*3 + 4*1 + 4*2 + 3*5+ 2*5 + 4*1 +4*1 + 2*10 = 9+4+8+15+10+4+4+20 = 74 > > Почувствуйте разницу. > Вот вот, почувствуй! Извини, но тебе не удалось съехидничать :-) > Обрезая дерево Хаффмана СОЗHАТЕЛЬHО идут на некоторое > ухудшение сжатия, жертвуя им ради скорости и компактности таблиц. Hо в твоем > случае уж очень большая жертва. Я ничем не жертвую. Я просто строю наиболее выгодное (для моих личных нужд хранения заголовка данных) дерево из всех оптимальных (в плане сжатия) деревьев. Итак, вопрос остается в силе: > > А теперь сам вопрос. Сейчас у меня реализация построения массива C > > именно такая, как описана выше: я строю дерево указанным алгоритмом, а > > потом по нему уже считаю массив длин. А хочется избежать промежуточного > > построения дерева. > > Это возможно? Идеи, предложения? > В любом случае перестройка дерева по сравнению с самой > упаковкой/распаковкой -мизер М-м-м. Тут не в скорости дело. Я же не кодер пишу. У меня эти, сжимаемые данные предварительно сравнительно долго вычисляются... Дело исключительно в эстетической красоте кода :-) Hу и плюс здоровый научный инетерес. > А вообще посмотри, что рекомендует Булат. А что он рекомендует? Я недавно подписан на эту эхоконференцию... > Еще можно посмотреть исходники zlib Смотрел. По конкретно моему вопросу ничего не нашел. С уважением, EinWill --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) — RU.COMPRESS From : Sergey Tchirco 2:5020/400 24 Oct 01 11:56:29 To : EinWill Subj : Hа: И снова Huffman. И ничего смешного :-( From: "Sergey Tchirco" <tchsv@nbrt.kazan.su> "EinWill" <andrey@neva-roentgen.com> сообщил/сообщила в новостях следующее: news:E_sB7.820$kY.877785@news.rt.ru... > Во-первых, ты не прав. Во всяком случае, мы сейчас это обсудим. > Во-вторых, 2 All: вопрос остается открытым :-) Согласен не прав. пример то разобрал, а вот его описание в начале, прочитал не внимательно. Да, твой вариант дает теоритически несколько лучшую картину, чем стандартный Huffman, но на практике - увы ;( Вероятность того, что у нескольких узлов будут равные вероятности, на сколько нибудь больших данных ничтожно мала :( или надо опять таки загрублять картину, и терять теже битики на сжатии. > Извини, но тебе не удалось съехидничать :-) увы :( Хотя чисто интуитивно мне не верится, но теория показывает :(( > М-м-м. Тут не в скорости дело. Я же не кодер пишу. У меня эти, сжимаемые > данные предварительно сравнительно долго вычисляются... Дело исключительно > в эстетической красоте кода :-) Hу и плюс здоровый научный инетерес. А эстетическая красота достигается вызовом одной, максимум двух функций из готовой(!) протестированной(!) и оптимизированной(!) библиотеки, уже написанной за тебя. Программист должен быть ленивым! Да и уж больно частный вопрос: выигрышь нескольких битов, если взять тотже RangeCoder, результать скорее всего получше будет. > > > > А вообще посмотри, что рекомендует Булат. > А что он рекомендует? Я недавно подписан на эту эхоконференцию.. Так вчера пролетало: bzip2 и readme к pkzip > > > Еще можно посмотреть исходники zlib > Смотрел. По конкретно моему вопросу ничего не нашел. По сохранению дерева там нет, там есть вопрос таблица/дерево > > С уважением, > EinWill С уважением, Сергей --- ifmail v.2.15dev5 * Origin: IFC BanCorp (2:5020/400) — RU.COMPRESS From : Bulat Ziganshin 2:5093/4.126 24 Oct 01 12:36:50 To : Einwill Subj : RANGECODER * Originally in RU.COMPRESS Приятного тебе дня и незабываемой ночи, Einwill! Wednesday October 24 2001, EinWill writes to Bulat Ziganshin: E> А где об этом RangeCoder'е можно почитать? нигде. но можно взять его исходники :)) Bulat, mailto:bulatzATfort.tatarstan.ru, ICQ 15872722 ... Иногда для того, чтобы изменить свое восприятие мира, ... люди пытаются изменить сам мир --- GoldED+/W32 1.1.2 * Origin: Сетевой фильтр на 5 базаров (2:5093/4.126)
Предыдущий блок Следующий блок Вернуться в индекс