User Tag List

Страница 23 из 26 ПерваяПервая ... 1920212223242526 ПоследняяПоследняя
Показано с 221 по 230 из 252

Тема: Сжатие данных

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,065
    Спасибо Благодарностей отдано 
    582
    Спасибо Благодарностей получено 
    471
    Поблагодарили
    253 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    когда ты преобразовывал исходник для себя сделал одну неправильную замену
    Спасибо, исправил. Эту подпрограмму я скопировал из РДС, и там та же ошибка, но, наверно, повезло -- в РДС она себя не проявила...

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

  3. #2

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,390
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если в сжатом файле нет последовательностей литералов>255 байт (как вероятно в РДС), то проверка старшего байта счетчика будет обойдена (и в распаковщике таких файлов ее можно даже удалять).

    - - - Добавлено - - -

    Кстати, если углубляться, то такую статистику упаковщик выдает по ключу -stats

    Этот пользователь поблагодарил ivagor за это полезное сообщение:

    Improver(08.05.2024)

  4. #3

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,390
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Могу, но с тех пор появился сжимающий сильнее zx0 (еще удобнее salvador). Исходники распаковщика для 8080 можно взять здесь (мнемоники z80) или здесь (мнемоники 8080).

    Этот пользователь поблагодарил ivagor за это полезное сообщение:

    CityAceE(10.10.2024)

  5. #4

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,213
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,643
    Поблагодарили
    572 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ivagor, спасибо! Действительно, поэкспериментировал, и zx0 дал большую компрессию.

    Набор экранов в уровне 30 экранов по 800 байт. Каждый экран сжимался отдельно.

    Без сжатия - 24000 байт
    LZSA1 - 12443 байта
    LZSA2 - 11460 байт
    ZX0 - 10851 байт

    А исходники распаковщика нашёл как раз у Дениса Грачёва в нужной мне мнемонике Z80 Где-то в подсознании осело, что он именно ZX0 использовал в своих играх.
    С уважением, Станислав.

  6. #5

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,374
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Набор экранов в уровне 30 экранов по 800 байт. Каждый экран сжимался отдельно.
    Попробуй сжимать и распаковывать по 2 или 4 экрана. Если промежуточный буфер позволяет где-то в памяти. Может оказаться интереснее результат.

    Этот пользователь поблагодарил Titus за это полезное сообщение:

    CityAceE(10.10.2024)

  7. #6

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,390
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если есть место для распаковки сразу трех экранов, то можно попробовать паковать по одному но RIPом (и ему еще понадобится рабочая область в районе полутора килобайт). Он конечно медленнее распаковывает, но для 800 байт это не критично.

    Эти 2 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

    CityAceE(10.10.2024), Pyk(10.10.2024)

  8. #7

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,390
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все же на отдельных фрагментах по 800 байт RIP может и проиграть. Тут скорее подойдет exomizer. Крупные файлы он сжимает хуже RIP, но
    1. Рабочая область всего 256 байт вместо полутора килобайт. Если сжимать по несколько уровней, то скорее всего получится группировать по столько же, как и с zx0 (в худшем случае на один меньше).
    2. Есть режим сжатия -E с общим "словарем", в данном случае он как раз может подойти.

    Этот пользователь поблагодарил ivagor за это полезное сообщение:

    CityAceE(14.10.2024)

  9. #8

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,213
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,643
    Поблагодарили
    572 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А вот такой вопрос, опять же применительно к моей ситуации. Например, у меня есть непрерывный бинарник, содержащий в себе 30*800 байт = 24000 байт. Мы его целиком сжимаем. А потом как-то дополнительно проходимся по нему, получая адреса где начинаются сжатые данные для каждой комнаты. И когда нужно, мы указываем на адрес с сжатом массиве и сколько байт начиная с этого адреса нужно распаковать. Я не особо изучал методы сжатия, и скорее всего так нельзя делать, но спросить на всякий случай решил. Наверное, это получается что-то типа сжатия каждой отдельной комнаты, но с общим словарём. Но может быть если оно всё идёт единым блоком, то это как-то может благотворно повлиять на степень сжатия?
    С уважением, Станислав.

  10. #9

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,390
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если правильно понимаю, ты про "поточный" распаковщик с кольцевым буфером ("окном"). Современные упаковщики в основном умеют сжимать в расчете на это, например salvador для zx0 (опция -w).
    Упаковываем файл целиком, а распаковываем последовательно частями по мере необходимости. Размер буфера удобно выбирать по степеням двойки - 16,32,...,256,...,1024 и т.д. байт. У svofski есть готовый распаковщик zx0 для окна 256 байт (и у меня вроде есть, но у svofski он давно выложен в открытый доступ), что в данном случае мало, его надо модифицировать в бОльшую сторону.

    Этот пользователь поблагодарил ivagor за это полезное сообщение:

    CityAceE(14.10.2024)

  11. #10

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    svofski он давно
    Наверное вот это можно адаптировать, если буфер 256 байт: https://github.com/svofski/v06c-prog...0_chunk256.asm

    Но для уровней интересно было бы попробовать составить общий словарь.
    Больше игр нет

Страница 23 из 26 ПерваяПервая ... 1920212223242526 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Архивирование, сжатие, упаковка.
    от GriV в разделе Программирование
    Ответов: 30
    Последнее: 22.07.2019, 17:25
  2. Существует ли идеальное сжатие без потери данных?
    от CodeMaster в разделе Программирование
    Ответов: 35
    Последнее: 06.10.2017, 00:15
  3. RLE сжатие (покритикуйте)
    от Vladson в разделе Программирование
    Ответов: 12
    Последнее: 16.03.2008, 12:29
  4. Ответов: 18
    Последнее: 18.06.2006, 16:50

Ваши права

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