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

User Tag List

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 11 по 20 из 41

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

  1. #11
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,363
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    45 сообщений
    Mentioned
    1 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. Эти 2 пользователя(ей) поблагодарили ivagor за это полезное сообщение:

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

  3. #12
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,363
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    45 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  4. #13
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,363
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    45 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  5. #14
    Master
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    755
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  6. #15
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,363
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    45 сообщений
    Mentioned
    1 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 и то не уверен.

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

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

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

    Oleg N. Cher (09.09.2019)

  8. #16
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,363
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    45 сообщений
    Mentioned
    1 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}. А тут ведь не просто пересылка, а распаковка.

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

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

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

  11. #17
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,363
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    45 сообщений
    Mentioned
    1 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. Причина: обновил ссылку

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

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

  13. #18
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,363
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    45 сообщений
    Mentioned
    1 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

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

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

  15. #19
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,363
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    45 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    Oleg N. Cher (20.09.2019)

  17. #20
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,363
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    45 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Респект автору LZSA, версия 1.0.9 стала сжимать лучше и счет LZSA2:MegaLZ сменился на моем тестовом наборе с 6:14 на 8:12. И нет файлов, которые стали бы сжиматься хуже.
    Обновил репозиторий. Свел LZSA1 и LZSA2 в один - LZSA8080.
    Распаковщики LZSA1 старые, а LZSA2 обновил и дополнил.
    "Обычный" стал на байт короче (187 прямой / 192 обратный) и чуть-чуть быстрее. Добавил "быстрый" распаковщик (201 байт прямой / 206 байт обратный) - он на 7% (для некоторых файлов больше) быстрее обычного.

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

    Oleg N. Cher (22.09.2019), svofski (23.09.2019)

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя

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

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

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

Ваши права

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