User Tag List

Страница 25 из 26 ПерваяПервая ... 212223242526 ПоследняяПоследняя
Показано с 241 по 250 из 252

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

  1. #241

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

    По умолчанию

    Помощь в преодолении застоя с zx0 неожиданно пришла со стороны 6502. Модификация zx02 в среднем по больнице на моем наборе тестовых файлов чуть-чуть проигрывает zx0, но на 10 файлах из 21 выигрывает, а на 2 дает одинаковый размер. Самое приятное - распаковщик получилось сделать на 2 байта короче dzx0. Если модифицировать упаковщик и вернуть отрицательный формат хранения смещения, то можно сократить еще на 2 байта.
    Последний раз редактировалось ivagor; 04.09.2025 в 08:44. Причина: исправил "на 10 из 21 выигрывает"

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

    Improver(24.08.2025), Oleg N. Cher(23.08.2025)

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

  3. #242

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Если модифицировать упаковщик и вернуть отрицательный формат хранения смещения, то можно сократить еще на 2 байта.
    Или компромиссный вариант для ленивых - сжимать с опцией -b (в обратную сторону), при этом смещения останутся положительные, но направленные в нужную сторону для сложения. Обратный распаковщик на байт короче прямого в отличие от zx0, где он на 2 байта длиннее из-за более громоздкой проверки окончания распаковки.

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

    Improver(24.08.2025)

  4. #243

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

    По умолчанию

    Мотивация со стороны БК в итоге привела к сокращению распаковщика zx0 на 2 байта после 4 лет застоя. Это пока позволило сохранить мою картину мира, в которой код 8080 в среднем компактнее PDP11. Просто для полноты картины добавил опцию для распаковки нового формата v2, в чем для 8080 нет практического смысла, т.к. на 2 байта длиннее и немного медленнее.
    Ну и дожал dzx02 прямой до 86 и обратный до 85 байт. Кроме того распаковщики zx02 примерно на 5-8% быстрее zx0.
    Обратите внимание, что адрес источника в dzx0 вернулся в HL (в dzx02 аналогично).

    Upd 28.08.2025: Исправил (в релизе от 25 августа случайно стер метку в одном из вызовов процедуры) и оптимизировал dzx02. Теперь 85/84 байта и чуть быстрее.

    Upd 30.08.2025: Еще чуть ускорил dzx02.
    Вложения Вложения
    Последний раз редактировалось ivagor; 30.08.2025 в 10:06. Причина: небольшое ускорение dzx02

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

    Improver(25.08.2025), metamorpho(25.08.2025), parallelno(29.08.2025), Pyk(25.08.2025), svofski(25.08.2025), Titus(26.08.2025), tnt23(26.08.2025)

  5. #244

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

    По умолчанию

    Исправил и оптимизировал dzx02

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

    Improver(28.08.2025), Oleg N. Cher(30.08.2025), parallelno(29.08.2025)

  6. #245

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

    По умолчанию

    Добрался до zx02 с опцией -1 (далее коротко zx12) - оказался отличный вариант, скорость распаковки практически как lzsa2, степень сжатия примерно как zx1. Он может заменить их обоих, тем более при всем этом еще и распаковщик заметно компактнее, особенно по сравнению с lzsa2 (в 2 раза). Новая "базовая" линейка от быстрых к мощным (слева направо) для меня теперь такая:
    lzsa1 - zx12 - zx02/zx0 - rip - upkr
    dzx12 можно еще немного ускорить, но ценой неоправданного разбухания, текущий вариант на мой взгляд удачно сочетает скорость и компактность. В отличие от zx0 и zx02 здесь используется самомодификация, зато в одноразовом варианте можно сократить на 7 байт (не забудьте поменять адрес источника с DE на HL).
    Попутно ковыряния в dzx12 подсказали, как можно ускорить примерно на 1% и dzx02 без увеличения размера.
    Вложения Вложения
    Последний раз редактировалось ivagor; 01.09.2025 в 12:40. Причина: добавил прямой вариант для Pretty 8080 Assembler

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

    Improver(30.08.2025), metamorpho(01.09.2025), Oleg N. Cher(30.08.2025), parallelno(31.08.2025), Pyk(03.09.2025), svofski(31.08.2025), Titus(01.09.2025)

  7. #246

    Регистрация
    24.08.2012
    Адрес
    г. Волжский
    Сообщений
    458
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    268
    Поблагодарили
    103 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    .....dzx12....
    А как и чем упаковать данные для dzx12 ?
    Есть ли текст dzx12 не для tаsm, а для PrettyAssemblera ? (а то вставил имеющийся текст в Pretty и большая часть кода "покраснела")

  8. #247

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

    По умолчанию

    Цитата Сообщение от metamorpho Посмотреть сообщение
    А как и чем упаковать данные для dzx12 ?
    Есть ли текст dzx12 не для tаsm, а для PrettyAssemblera ? (а то вставил имеющийся текст в Pretty и большая часть кода "покраснела")
    Вообще совместимое пересечение тасма и прекрасма близко к 100%, но конечно есть нюансы. Посмотри что именно покраснело -- если там есть дефайны, их надо вручную развернуть -- скорее всего там совсем немного. Обычно это все, что нужно.
    Больше игр нет

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

    metamorpho(01.09.2025)

  9. #248

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

    По умолчанию

    Цитата Сообщение от metamorpho Посмотреть сообщение
    А как и чем упаковать данные для dzx12 ?
    Есть ли текст dzx12 не для tаsm, а для PrettyAssemblera ?
    Скачиваем zx02, упаковываем с опцией -1
    zx02 -1 входной_файл выходной_файл
    Добавил вариант прямого многоразового распаковщика для Pretty 8080 Assembler

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

    metamorpho(01.09.2025)

  10. #249

    Регистрация
    24.08.2012
    Адрес
    г. Волжский
    Сообщений
    458
    Спасибо Благодарностей отдано 
    792
    Спасибо Благодарностей получено 
    268
    Поблагодарили
    103 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    svofski, а можно вот из этой темы
    https://zx-pk.ru/threads/36272-pt3-p...=1#post1216108

    Твой bin2db.py, можешь сделать его экзешник из кода , который ты там давал ( два раза пытался установить питона, чтобы скомпилировать экзешник, но выдает какой-то системный запрет на его установку)

  11. #250

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

    По умолчанию

    Цитата Сообщение от metamorpho Посмотреть сообщение
    svofski, а можно вот из этой темы
    https://zx-pk.ru/threads/36272-pt3-p...=1#post1216108

    Твой bin2db.py, можешь сделать его экзешник из кода , который ты там давал ( два раза пытался установить питона, чтобы скомпилировать экзешник, но выдает какой-то системный запрет на его установку)
    Попробуй тут https://py2exe.com/convert
    Но это крайне неэффективно, такие инструменты заворачивают целиком питонский рантайм вместе со скриптом на три строчки. Будет более перспективно разобраться что за проблема у тебя с установкой Питона. Если ты не можешь поставить от имени администратора, его можно ставить в юзерский каталог. Ну или может найти другую программу.
    Больше игр нет

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

    metamorpho(01.09.2025)

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

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

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

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

Ваши права

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