User Tag List

Страница 7 из 26 ПерваяПервая ... 34567891011 ... ПоследняяПоследняя
Показано с 61 по 70 из 252

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

  1. #61

    Регистрация
    16.11.2014
    Адрес
    г. Абакан
    Сообщений
    70
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    b2m, хоть бы ссылку на форум дали

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

  3. #62

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

    По умолчанию

    Возможно у кого-то возникнет вопрос "а как же zx1?". Он распаковывает быстрее zx0, но
    1. По степени сжатия соревнуется с megalz с переменным успехом
    2. Немного не догнал megalz b2m по скорости (хотя небольшой резерв есть)
    3. Размер распаковщика несколько больше, чем у zx0, и пришлось использовать самомодифицирующийся код. Тем не менее почти двукратная разница с megalz по этому параметру, это плюс. Но zx0 то еще компактнее и сжимает сильнее, а проигрыш по скорости на мой взгляд не такой принципиальный. Если важна именно скорость при близком к megalz и zx1 сжатии, то есть lzsa2.

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

    troosh(24.02.2021)

  4. #63

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eugene85 Посмотреть сообщение
    b2m, хоть бы ссылку на форум дали
    Та ради Бога: http://www.nedopc.org/forum/viewtopi...159208#p159208

    Но ноги растут вот отсюда: https://hype.retroscene.org/blog/933.html

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

    Eugene85(16.02.2021)

  5. #64

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

    По умолчанию

    Переосмыслил, доработал и выложил распаковщик ZX1 для 8080.
    1. Разогнал до "быстрее megalz".
    2. Убрал самомодифицирующийся код.
    3. Внимательно перепроверил степень сжатия с учетом размеров распаковщиков (распаковщик ZX1 на 79 байт, т.е. более чем на треть, короче megalz). Оказалось, что там, где zx1 проигрывает megalz, это более чем компенсируется компактным распаковщиком. А вот там, где zx1 сжимает лучше, выигрыш может быть гораздо более заметным (в отдельных случаях до нескольких килобайт!). В итоге по степени сжатия в этой паре безоговорочная победа у zx1.

    Обновленная шкала упаковщиков/распаковщиков общего назначения для 8080 от быстрых к сильно сжимающим: lzsa1 - lzsa2 - zx1 - zx0
    Еще один момент - у всех перечисленных распаковщиков есть прямой и обратный варианты (у megalz только прямой).

    MegaLZ хороший упаковщик и распаковщик b2mа в свое время поднял планку и задал ориентир для подражания на платформе 8080, но современные еще лучше.
    Последний раз редактировалось ivagor; 16.02.2021 в 17:03.

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

    nzeemin(17.02.2021), Oleg N. Cher(16.02.2021), troosh(24.02.2021)

  6. #65

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    обобщенный zx7 от автора zx0
    Поправка - оригинальный zx7 от автора zx0 (Einar Saukas), а автор обобщенного - Antonio Villena.
    Последний раз редактировалось ivagor; 17.02.2021 в 10:08. Причина: исправил опечатку

  7. #66

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

    По умолчанию

    Немного оптимизировал распаковщики ZX0 и ZX1

  8. #67

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

    По умолчанию

    Еще ускорил и сократил распаковщики zx0 (теперь и прямой и обратный меньше 100 байт) и особенно zx1.

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

    Oleg N. Cher(22.02.2021)

  9. #68

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,386
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,365
    Поблагодарили
    1,315 сообщений
    Mentioned
    38 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)

  10. #69

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,060
    Спасибо Благодарностей отдано 
    578
    Спасибо Благодарностей получено 
    468
    Поблагодарили
    251 сообщений
    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)

  11. #70

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

    По умолчанию

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

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

    Improver(24.02.2021)

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

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

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

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

Ваши права

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