Вопрос: Можно ли улучшить LZW


Сайт о сжатии >> Форум #Компрессор# >> [Ответить] [Ответы]

Автор: Романов Владимир, <blueboar_2@rambler.ru>
Курган, Россия, 26 марта 2004 года в 20:31:39

Привет всем.

Я хотел узнать, можно ли улучшить алгоритм
LZW по следующему способу:

Возьмем для простоты, что алфавит у нас состоит
из 256 символов, 256-257 заняты, и кодируем
начиная с 258.

В этом случае, пока коды у нас не более 512
(первые 254 штуки), они занимают 9 бит. Если
9-й равен 0, то можно точно сказать, что полу-
чившееся число меньше 256, и это будет обычный
незакодированный байт. НО! Если он будет равен
1, то это закодированный байт. И значение его
может быть не любым.

Допустим, что мы закодировали пока 15 символов.
(об этом знают и компрессор и декомпрессор).
Тогда в тексте может встретиться только 15 разных
комбинаций с включенным 9 байтом - 10000XXXX.
Видно, что тут 4 бита точно равны 0.

ВОПРОС: Нельзя ли их не передавать?

В случае, когда передается уже 10 бит, если
первые 2=00, то это просто байт, если 01, то
это цепочки, закодированные ранее, когда была
длина кода 9 бит, тут ничего сделать нельзя,
а вот если будет 10 или 11, тогда опять можно
не выдавать n-ное кол-во нулевых бит.

Если я чего-то не понимаю, или такое уже при-
думано, мыльте мне на сайт (в форум лучше не
надо, я редко сюда хожу)

blueboar_2@rambler.ru

С уважением, Романов Владимир

Ответы:



Ответить на это сообщение

Тема:

Имя (желательно полное):

E-Mail:

URL:

Город:

Страна:

Вежливый и подробный комментарий:
(Форматируйте его, пожалуйста, как почту - короткими строками
Еnter в конце строки, пустая строка между параграфами).

Пожалуйста, заполните все поля.
И не нажимайте по два раза на кнопку! Дождитесь ответа сервера.