Важная информация

User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 19 из 19

Тема: Упаковка текстов

  1. #11
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    235
    Поблагодарили
    100 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В принципе в теории и хрустовый депакер можно под это переделать, но я к сожалению слаб в пакерах вааще...
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  2. #12
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,255
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    35 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    Специализированную на упаковку и вывод текстов, то есть чтобы можно было без "распаковали на место, потом оттуда напечатали", а чтобы на лету символы выдавал.
    Имхо, здесь вариантов не особо много:
    1) хаффман: относительно сложно, плюс память на дерево нужна
    2) арифметическое: еще сложнее и тоже надо памяти
    3) токенизация (подозреваю, что это то, что требуется)
    4) простейший LZ-based упаковщик с небольшим окном.

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

  3. #13
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    235
    Поблагодарили
    100 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А у хруста какой метод распаковки? Он пользуется уже распакованными данными?

    Добавлено через 1 минуту
    Цитата Сообщение от Vitamin Посмотреть сообщение
    3 и 4 варианты могут хранить свой контекст на стеке, т.е. минимум лишней памяти. Но необходим препроцессинг и невысокий уровень сжатия будет.
    М? Зачем для токенизации препроцессинг?
    Последний раз редактировалось Shadow Maker; 07.10.2008 в 23:32. Причина: Добавлено сообщение
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  4. #14
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,255
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    35 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    А у хруста какой метод распаковки? Он пользуется уже распакованными данными?
    LZ77-based. Ссылки назад- классический вариант.

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    М? Зачем для токенизации препроцессинг?
    Ну можно конечно вручную токены выделить, да машина с этим всяко лучше справится

  5. #15
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    235
    Поблагодарили
    100 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А, ты вон о чем. Ясно... Токенизатор чтоли правда написать...
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  6. #16
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,255
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    35 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    Токенизатор чтоли правда написать...
    С небольшими доработками ты получишь почти LZ78 (LZW) упаковщик

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Veteran
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,057
    Спасибо Благодарностей отдано 
    220
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кстати говоря, если необходимо распаковывать данные по мере их поступления, то следует обратить внимание на реализации упаковки в модемах... Всякие там V42-bis и тому подобное. Думаю, что на эту тему можно даже сорцы найти (на C).

    Добавлено через 1 минуту
    А вообще, Shadow Maker, моя тебе рекомендация - не изобретать велосипед, а реализовать, как тебе тут рекомендуют, один из классических методов: LZ77, например. Тот же ASC LZSSPAC имел окно в 4 килобайта, а как круто жал игры для своего времени!

    Добавлено через 3 минуты
    Еще один довод в пользу чистого LZ77: раскомпрессор быстрый и короткий получается (см. декомпрессор ASC LZSSPAC). Раскомпрессия же кодов Хаффмана требует битовых сдвигов и потому тормозит.
    Последний раз редактировалось Barmaley_m; 10.10.2008 в 14:57. Причина: Добавлено сообщение

  9. #18
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    235
    Поблагодарили
    100 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Опять не в тему. LZ77 = ссылки назад на распакованное. Как я уже сказал - мне надо распаковывать на лету! Без ссылок на распакованное!

    Вообще, просил конкретные тексты - а мне тут лечат какую-то ботву... Закрыто в общем.
    Последний раз редактировалось Shadow Maker; 10.10.2008 в 17:55.
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  10. #19
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Самый простой и эффективный тогда - модифицированный RLE
    Первый бит =0 - была компрессия, следом идёт указание количества байт и сам байт. Первый бит=1 значит байт не упакован. Ну и сам байт следом.
    Очень потоковый, нет никакой более информации ДО.
    Или вообще брать чистый RLE. Во всех остальных случаях опять уйдёшь к LZ* методам.
    Или бери готовое дерево частот и чистый Хаффман. Как то не представляю что ещё тут можно придумать. Все мне известные пакеры кроме RIP используют LZ* методики
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

Страница 2 из 2 ПерваяПервая 12

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Архивирование, сжатие, упаковка.
    от GriV в разделе Программирование
    Ответов: 30
    Последнее: 22.07.2019, 17:25

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •