User Tag List

Страница 2 из 26 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 252

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

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

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

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

    По умолчанию

    И это еще не все. Есть пара упаковщиков для C64, которые превосходят или примерно соответствуют exomizerу по степени сжатия: ALZ64 (превосходит) и subsizer (примерно соответствует). Но их распаковщики только для 6502, даже вариантов для z80 нет.

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

    Цитата Сообщение от ivagor Посмотреть сообщение
    Что интересно, еще даже не обновили версии распаковщиков для z80, хотя для z80 есть exoopt для exomizer2.
    Теперь версии распаковщиков для z80 с поддержкой самых нужных опций exomizera 3 можно скачать здесь
    Последний раз редактировалось ivagor; 25.08.2019 в 13:36. Причина: заменил "некоторых" на "самых нужных"

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

    Oleg N. Cher(03.09.2019), svofski(26.08.2019)

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

  3. #2

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

    По умолчанию

    Для полноты картины еще стоит упомянуть амижный Shrinkler, для которого написали распаковщик для z80. По степени сжатия с переменным успехом соревнуется с exomizerом, по скорости и размеру распаковщика exomizer безоговорочно выигрывает. Кроме того shrinklerу нужно дополнительно 3 Кб памяти, а exomizerу - 156 байт. Смысла в shrinklere для 8080 совсем не вижу (да и для z80 на мой взгляд его сделали для галочки, а не для практического использования).

  4. #3

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Смысла в shrinklere для 8080 совсем не вижу (да и для z80 на мой взгляд его сделали для галочки, а не для практического использования).
    Беру свои слова обратно, shrinkler самый крутой по степени сжатия, смысл в нем есть для любой восьмибитки.

  5. #4

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сразу скажу, что со сжатием данных экспериментировал только на Векторе, и только в первой половине 90-ых.
    Соответственно вопрос может быть не актуальным.
    У этих изучаемых программ (для сжатия данных) есть специализация? Ну например предназначен для сжатия кода (программ), графики или текста.
    Ну или что-то из этого сжимает значительно лучше других.

  6. #5

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

    По умолчанию

    Что касается универсальных архиваторов для 8080, то краткая характеристика здесь, начиная с абзаца "Для 8080 все примерно аналогично".
    Хотя с тех пор есть заметные изменения. В номинациях "самый быстрый" и "золотая середина" есть новый фаворит - LZSA. Там два варианта сжатия:
    1. LZSA1. С быстрой распаковкой, на замену LZ4, его я пока не пробовал
    2. LZSA2. "Золотая середина", на замену MegaLZ. Вот его я уже конверснул на 8080 и распаковщик получился компактнее и быстрее MegaLZ b2ma (и даже его оптимизированных вариантов). При этом LZSA еще и сжимает в этом режиме лучше MegaLZ. Еще подумаю над распаковщиком LZSA2 и выложу.

    Пара слов про zx7. Сделали его "генерализованный" вариант (saukav.exe). В отличие от оригинального zx7 он позволяет настраивать 3 параметра: направление упаковки/распаковки (прямое/обратное), разрядность смещения, тип гамма-кода.
    1. Направление - обратные распаковщики чуть компактнее и быстрее. Если сжатие вперед и назад примерно одинаковое, то лучше использовать обратный распаковщик.
    2. Разрядность смещения. Там две градации:
    2.1 Минимальное допустимое смещение (o0) фактически дает замену zx7mini
    2.2 Остальные варианты (o1-o8) позволяют улучшить сжатие. С этой фичей вплотную приближается к MegaLZ.
    3. Тип гамма-кода - по моим тестам вариант g0 дает лучшее сжатие. И его удалось лучше оптимизировать.
    Все бы хорошо, но
    1. Формат битстрима немного несовместим с zx7 (и g0 и g1), пришлось заново переписывать и оптимизировать распаковщики.
    2. Появился LZSA и убил MegaLZ и zx7. Возможно для zx7 остается ниша распаковщика коротких и очень коротких файлов, когда выигрыш LZSA2 в степени сжатия компенсируется компактностью распаковщиков zx7, а скорость для маленьких файлов не так важна.

    Сжатие графики я отдельно не тестировал, но могу сказать, что векторовские графические форматы (карандаш, spr) проигрывают всем современным компрессорам, возможно посоревнуются только с LZ4 и то не уверен.

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

    В номинации "максимальное сжатие" скоро тоже будут хорошие новости.

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

    Oleg N. Cher(09.09.2019)

  7. #6

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    LZSA2. "Золотая середина", на замену MegaLZ. Вот его я уже конверснул на 8080 и распаковщик получился компактнее и быстрее MegaLZ b2ma (и даже его оптимизированных вариантов). При этом LZSA еще и сжимает в этом режиме лучше MegaLZ. Еще подумаю над распаковщиком LZSA2 и выложу.
    @ivagor, можешь поделиться исходником декомпрессора LZSA2 для i8080?
    С уважением, Станислав.

  8. #7

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

    По умолчанию

    Переделал распаковщики LZSA1 spke/intoscpecа для i8080. Под влиянием svofski выложил на gitlab, а не как обычно.

    LZSA1 это замена LZ4, т.е. очень быстрый распаковщик. Сжимает сильнее LZ4, размер распаковщиков сравнимый, скорость распаковки чуть меньше.
    Если сравнить скорость с LZ4v4, то
    LZSA1_small примерно на 10% медленнее LZ4 compact
    LZSA1_fast примерно на 5% медленнее LZ4 fast/faster

    Поддерживается прямая и обратная упаковка/распаковка (в отличие от LZ4). В распаковщике для "обратного" варианта нужно раскомментировать строку
    ;#DEFINE BACKWARD_DECOMPRESS

    Прямой вариант быстрее и компактнее.

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

    Наверно стоит пояснить, какие скорости достигнуты. Если говорить о быстрых вариантах распаковщиков LZ4 и LZSA1, то скорости практически соответствуют простой пересылке байта в цикле {mov a,m\ stax d\ inx h\ inx d\ dcx b\ mov a,b\ ora c\ jnz $-7}. А тут ведь не просто пересылка, а распаковка.

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

    Oleg N. Cher(19.09.2019), Rus(15.09.2019), svofski(15.09.2019)

  9. #8

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

    По умолчанию

    Выложил распаковщик LZSA2.
    После более полного тестирования (больше 20 файлов) могу сказать, что это не совсем убийца MegaLZ, скорее очень серьезный конкурент.
    1. Степень сжатия. Первые попробованные мною файлы LZSA2 сжимал лучше MegaLZ, но по результатам теста более 20 файлов все же MegaLZ большинство файлов сжимает чуть-чуть лучше. Выигрыш от нескольких десятков байт до двух-трех сотен, максимум - 400 байт. С другой стороны LZSA2 несколько файлов сжал лучше и там где сильнее сжал LZSA2 максимальный выигрыш составил аж 3.5 килобайта.
    2. Размер распаковщика. b2m не стал использовать в MegaLZ самомодифицирующийся код и я наступил на горло собственной песне и убрал пару фрагментов такого кода из LZSA2, т.е. оба распаковщика можно исполнять из пзу.
    MegaLZ - 210 байт (прямой), LZSA2 - 188 байт (прямой) / 193 байта (обратный).
    3. Скорость распаковки. Выигрыш LZSA2 в скорости на разных файлах от 1.08 до 1.5 раз
    Последний раз редактировалось ivagor; 22.09.2019 в 10:40. Причина: обновил ссылку

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

    b2m(16.09.2019), Oleg N. Cher(19.09.2019), Rus(19.09.2019), svofski(18.09.2019)

  10. #9

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

    По умолчанию

    Дополнение про скорость LZSA. Вышеприведенные данные получены при сжатии с опциями по умолчанию, т.е. с оптимизацией по степени сжатия. Попробовал опцию m, позволяющую увеличить скорость распаковки.
    LZSA1_fast уже при m4 обгоняет LZ4 Faster, при этом сжимает немного лучше. При m5 распаковка еще быстрее, но сжимает похуже.
    Думал, что LZSA сделает ненужным MegaLZ, а он убрал LZ4.
    Получается такая цепочка от самой быстрой скорости и худшего сжатия к лучшему сжатию и меньшей скорости:
    -f1 -m5; -f1 -m4; -f1 -m3; -f1; -f2 -m5; -f2 -m4; -f2 -m3; -f2

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

    Oleg N. Cher(20.09.2019), Rus(19.09.2019), svofski(18.09.2019)

  11. #10

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

    По умолчанию

    Ни дня без новостей про LZSA. Свежая версия 1.0.8 чуть-чуть лучше сжимает с использованием LZSA2. Но в целом на соревнование с MegaLZ по степени сжатия это практически не повлияло, как сжимал MegaLZ 14 файлов из 20 (70%) чуть лучше LZSA2 так и сжимает. Если смотреть отдельно на эти 14 файлов, то в 12 сжатие улучшилось на считанные байты, а в 2 - ухудшилось на те же считанные байты. В остальных 6 файлах есть примеры более серьезного улучшения сжатия.

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

    Oleg N. Cher(20.09.2019)

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

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

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

Эту тему просматривают: 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

Ваши права

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