User Tag List

Показано с 1 по 10 из 252

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

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

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

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

    По умолчанию

    Сегодня можно отметить день оптимизации распаковщиков.
    ZX0 - на байт короче и чуть быстрее.
    Успехи в оптимизации ZX0/1 мотивировали вернуться к LZSA. Т.к. LZSA по степени сжатия не соревнуется с ZXами, сосредоточился на их сильной стороне - скорости.
    LZSA2:
    Стандартный +3 байта, зато обогнал быстрый вариант предыдущей версии.
    Быстрый +1 байт и стал еще быстрее.
    LZSA1:
    Компактный +3 байта, но заметно ускорился.
    Быстрый -25 байт! и при этом немного обгоняет предыдущую версию.

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

    Improver(24.02.2021), nzeemin(24.02.2021), Oleg N. Cher(23.02.2021), svofski(24.02.2021), troosh(24.02.2021)

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

  3. #2

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

    По умолчанию

    ivagor, заглянул в исходники быстрого распаковщика LZSA1 (LZSA1_unlzsa1_fast.asm), сразу заинтересовал один момент:

    Исходники

    Код:
    BLOCKCOPY1:
    			mov a,m
    			stax d
    			NEXT_HL
    			NEXT_DE
    			dcr c
    			jnz BLOCKCOPY1
    			dcr b
    			jz $+6
    			jmp BLOCKCOPY1
    			pop h
    и
    Код:
    BLOCKCOPY2:
    			mov a,m
    			stax d
    			NEXT_HL
    			NEXT_DE
    			dcr c
    			jnz BLOCKCOPY2
    			dcr b
    			jz $+6
    			jmp BLOCKCOPY2
    			pop psw
    [свернуть]

    Почему бы там не сделать так:

    Вариант

    Код:
    BLOCKCOPY1:
    			mov a,m
    			stax d
    			NEXT_HL
    			NEXT_DE
    			dcr c
    			jnz BLOCKCOPY1
    			dcr b
    			jnz BLOCKCOPY1
    			pop h
    и
    Код:
    BLOCKCOPY2:
    			mov a,m
    			stax d
    			NEXT_HL
    			NEXT_DE
    			dcr c
    			jnz BLOCKCOPY2
    			dcr b
    			jnz BLOCKCOPY2
    			pop psw
    [свернуть]

    Вроде, будет короче ещё на 6 байт... Или такой вариант приведёт к снижению скорости распаковки?

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

    ivagor(24.02.2021)

  4. #3

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

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    Или такой вариант приведёт к снижению скорости распаковки?
    Да, так (на типичных файлах) быстрее, т.к. преобладают короткие пересылки. Вариант
    Цитата Сообщение от Improver Посмотреть сообщение
    Почему бы там не сделать так
    есть в zx1, но он там вынесен в отдельную ветку (если занести в основную ветку, то будет медленнее). Проверял lzsa1 с таким же вариантом как сейчас в zx1, было чуть-чуть быстрее, но +7 байт, посчитал, что того не стоит. У меня есть "секретный" мегатурбо вариант lzsa1, он еще быстрее, но большой до такой степени, что счиатю его непрактичным.

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

    Improver(24.02.2021)

  5. #4

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Компактный +3 байта, но заметно ускорился.
    ну обычно компактные не ускоряют а уменьшают
    чтоб вставлять в 128бит демке

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

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

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

Ваши права

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