Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Вниз

Сжатие информации   Найти похожие ветки 

 
AntonSh   (2004-10-22 12:16) [0]

Подскажите, пожалуйста, может кто знает.
Вот прочитал про такую реализацию метода. Например есть строка – “Антон”. Подсчитываем какой символ встречается чаще всего: н – 2. Тогда записываем нашу строку в виде:  01001. Удаляем из нашей строки символ – н: Ато. Производим ту же операцию. Так как все одинаковое количество, то берем символ А : 100. Остаётся – то. Соответственно: 10. В итоге получаем: 01001100100. Вместо  5 байт получаем 1 и 1 бит. Можно ли данный метод считать правильным? Спасибо.


 
Reindeer Moss Eater ©   (2004-10-22 12:18) [1]

Совершенно правильный метод


 
Ega23 ©   (2004-10-22 12:20) [2]

Вот теперь только дешифровки алгоритм опиши, и дадуть тебе какую-нить деньгу большую в виде премии.


 
Reindeer Moss Eater ©   (2004-10-22 12:21) [3]

Дешифровка - дело десятое.
Мы тут про сжатие.


 
Ega23 ©   (2004-10-22 12:26) [4]

Ни фига себе "дело десятое"! А кому это сжатие без восстановления нужно?


 
AntonSh   (2004-10-22 12:32) [5]

Спасибо за ответы. Я хочу объяснить почему у меня возник данный вопрос. Вот везде в Inete описан данный метод следующим образом :
Алгоритм LZW-сжатия в простейшей форме приведен на рис.1. Каждый раз, когда генерируется новый код, новая строка добавляется в таблицу строк. LZW постоянно проверяет, является ли строка уже известной, и , если так, выводит существующий код без генерации нового.
Процедура LZW-сжатия:

СТРОКА = очередной символ из входного потока
WHILE входной поток не пуст DO
СИМВОЛ = очередной символ из входного потока
IF СТРОКА+СИМВОЛ в таблице строк THEN
СТРОКА = СТРОКА+СИМВОЛ
ELSE
вывести в выходной поток код для СТРОКА
добавить в таблицу строк СТРОКА+СИМВОЛ
СТРОКА = СИМВОЛ
END of IF
END of WHILE
вывести в выходной поток код для СТРОКА

Но как мне кажется мой способ(предложенный моим товарищем) несколько отличается от описаного в книге. Где же правда?


 
Гарри Поттер ©   (2004-10-22 12:53) [6]

>Вот прочитал про такую реализацию метода

Здесь прочитал?
http://www.lapsha.ru/articles/tech/2004/01/06/150700.html

Ну тогда объединяйтесь и пишите разархиватор, тоже на страницы лапшпа.ру попадешь.


 
mrcat ©   (2004-10-22 13:44) [7]

>Ни фига себе "дело десятое"! А кому это сжатие без восстановления нужно?

Хэш-функции: сжатие без восстановления


 
Symb   (2004-10-22 13:46) [8]

AntonSh, алгоритм LZW анализирует входной текст не посимвольно, а пытается найти повторяющиеся строки. То, что описано в вопросе -- посимвольный анализ, где новый код символа зависит от его частоты.
Алгоритмы, которые так работают (вполне успешно): Метод Хаффмана (Huffman) и метод Шеннона-Фано (Shannon-Fano). Посмотри в инете их описание.


 
Anatoly Podgoretsky ©   (2004-10-22 13:50) [9]

Ega23 ©   (22.10.04 12:26) [4]
Трудно обеспечить безопасность если будет возможно восстановление.


 
Анонимщик ©   (2004-10-22 16:23) [10]

Действительно, на Хаффмана похоже, только так описано, что ничего не понятно.


 
AntonSh   (2004-10-22 17:25) [11]

Главное что данное сжатие работает. А почему автор одной умной книги по алгоритмам относит данный метод к LWZ остаётся только догадываться.


 
TUser ©   (2004-10-22 17:40) [12]


> автор одной умной книги

?


 
TUser ©   (2004-10-22 17:42) [13]


> Действительно, на Хаффмана похоже

Да не Хафман это. Хотя бы потому, что здесь не гарантируется никак "суффиксность" шифра



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.042 c
4-1096380645
HDD
2004-09-28 18:10
2004.11.07
Загрузка списка файлов в листбокс


1-1098655862
saNat
2004-10-25 02:11
2004.11.07
Глюки TMemo


14-1098108491
top100
2004-10-18 18:08
2004.11.07
Организация работы с БД


1-1098436864
denis24
2004-10-22 13:21
2004.11.07
form1.windowstate:=maximazed


4-1096739153
Евгений2
2004-10-02 21:45
2004.11.07
Как определить, что окно что-то выполняет?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский