Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
CaHbl4
Зарегистрирован: 28.02.2006 Сообщения: 16 Откуда: Омск
|
Добавлено: Сб Мар 11, 2006 3:13 pm Заголовок сообщения: LZW |
|
|
Знает кто-нибудь игрушки, в которых текст в LZW закодирован? А то хочу поковыряться, разобраться с ним... _________________ One, Two, Freddy's coming for you... |
|
Вернуться к началу |
|
|
CaH4e3
Зарегистрирован: 21.01.2004 Сообщения: 195
|
Добавлено: Пн Мар 13, 2006 12:31 pm Заголовок сообщения: |
|
|
Поковыряйся с Dick Tracy на NES. ;) |
|
Вернуться к началу |
|
|
Zal Гость
|
Добавлено: Вт Мар 14, 2006 2:59 am Заголовок сообщения: |
|
|
У меня есть документ, где все методы LZ сжатия описываются, в том числе и LZW.
Если нужно будет - скажи. |
|
Вернуться к началу |
|
|
CaHbl4
Зарегистрирован: 28.02.2006 Сообщения: 16 Откуда: Омск
|
Добавлено: Чт Мар 16, 2006 3:26 pm Заголовок сообщения: |
|
|
да у меня доки у самого есть, поэтому и хочу поковыряться... _________________ One, Two, Freddy's coming for you... |
|
Вернуться к началу |
|
|
Alex_231
Зарегистрирован: 13.01.2005 Сообщения: 144 Откуда: Арсеньев
|
Добавлено: Пт Мар 17, 2006 10:53 am Заголовок сообщения: |
|
|
А можно попросить ссылки на вышеуказанные документы? |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
|
Вернуться к началу |
|
|
Griever RRC2008
Зарегистрирован: 15.07.2005 Сообщения: 112 Откуда: Н.Новгород
|
Добавлено: Сб Июл 29, 2006 6:54 pm Заголовок сообщения: |
|
|
CaH4e3 писал(а): | Поковыряйся с Dick Tracy на NES. |
Хмм... А там точно LZW?! Потому что:
Цитата: | Процедура LZW-распаковки:
читать СТАРЫЙ_КОД
вывести СТАРЫЙ_КОД
WHILE входной поток не пуст DO
читать НОВЫЙ_КОД
СТРОКА = перевести НОВЫЙ_КОД
вывести СТРОКУ
СИМВОЛ = первый символ СТРОКИ
добавить в таблицу перевода СТАРЫЙ_КОД+СИМВОЛ
СТАРЫЙ_КОД = НОВЫЙ_КОД
END of WHILE |
В Dick Tracy же берётся отдельный байт из входного потока, и с ним производятся определённые
действия (проверка отдельных битов), в зависимости от которых вычисляется адрес загружаемых
знаков из алфавита. Больше знак нигде не хранится (никаких таблиц), а просто берётся следующий
байт и с ним проводятся теже действия, но с несколько иными параметрами, из которых появляются
ещё несколько знаков. Вот. Никаких таблиц перевода (только одна процедура), никаких добавлений
каких-нибудь сочетаний букв, вроде, нет... В общем-то, компрессия, конечно (кстати скриптик-то
я уже вынул ^_^) , но LZW-ли? _________________
|
|
Вернуться к началу |
|
|
CaH4e3
Зарегистрирован: 21.01.2004 Сообщения: 195
|
Добавлено: Сб Июл 29, 2006 8:39 pm Заголовок сообщения: |
|
|
Нет, конечно... Это почти чистый Хаффман, но какая к хрену разница, если человеку надо было повозиться с упаковкой текста? ;) На NES никто не пакует текст LZW... Да и вообще подавляющее большинство методов упаковки сводится к словарному или DTE, Трейси тут, пожалуй, единственное исключение...
А на счет скриптика: http://www.shedevr.org.ru/forum/viewtopic.php?t=185 |
|
Вернуться к началу |
|
|
Griever RRC2008
Зарегистрирован: 15.07.2005 Сообщения: 112 Откуда: Н.Новгород
|
Добавлено: Вс Июл 30, 2006 11:49 am Заголовок сообщения: |
|
|
Ха-ха! =) Я так и знал! Насчёт LZW - это такая шутка?! Я-то, дурак, всё искал какие-то аналогии...
Ладно, в следующий раз надо будет предварительно в поиске пошарить.
Ну, в общем-то, насчет скрипта - у меня такой же, как ни странно ^_^
PS: Э-э-э... Я полагаю, пробел-то кодируется и вовсе одним младшим битом а не четырьмя, нет? _________________
|
|
Вернуться к началу |
|
|
Гость
|
Добавлено: Пн Июл 31, 2006 1:00 pm Заголовок сообщения: |
|
|
Нет... |
|
Вернуться к началу |
|
|
Griever RRC2008
Зарегистрирован: 15.07.2005 Сообщения: 112 Откуда: Н.Новгород
|
Добавлено: Пн Июл 31, 2006 9:05 pm Заголовок сообщения: |
|
|
Ага! Всё, пробел=0000 - это я запутался =). Цитата: | Для 8-ми самых частых он всего 4 бита. Максимум это 7 бит на все остальное... |
Похоже, что там есть ещё промежуточная ситуация: когда вначале идут два бита: 10, то индекс
хранится пятью битами. И таких букв тоже восемь, а уже для всех остальных - 7 бит.
Любопытно, что несмотря на то, что индексы зажаты в битовый поток, текст можно прочесть
даже, если ошибся в адресе на сколько угодно байт (попорчены максимум два слова), но я уже думаю это вопросы кратности
восьмёрки*(целое число) числам 4,5,7... _________________
|
|
Вернуться к началу |
|
|
Ghost
Зарегистрирован: 24.04.2004 Сообщения: 237
|
Добавлено: Вт Авг 01, 2006 1:24 am Заголовок сообщения: |
|
|
Эээ, нескромный вопрос. Ты вообще алгоритм Хаффмана для создания деревьев знаешь? Ладно, шутю. Если испортить один бит в запакованном сообщении, испортиться лишь пара символов (возможно, даже изменится их количество), но к какому-то моменту считанные биты "выровняются" (возможно, из-за префиксности кодов), и оставшаяся часть сообщения распакуется правильно. Это конечно, если Хаффман без контекста... _________________ Мысль - это интеллектуальный эксцесс данного индивидуума. |
|
Вернуться к началу |
|
|
Griever RRC2008
Зарегистрирован: 15.07.2005 Сообщения: 112 Откуда: Н.Новгород
|
Добавлено: Вт Авг 01, 2006 10:35 am Заголовок сообщения: |
|
|
Цитата: | но к какому-то моменту считанные биты "выровняются" |
Ну, ты что? Яж об этом и говорил, только применительно к этому алгоритму, а он, как известно, не совсем хаффман. _________________
|
|
Вернуться к началу |
|
|
|