User Tag List

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

Тема: Сжатие и упаковка. hrum3.5, hrust1, hrust2, laser compact x.x.

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

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

    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Почитал про нибблы Титуса, и пришла в голову новая идея.

    Что если у нас есть ветка, которая вставляет L байтов (i=0..L-1) следующим образом:
    mem[pointer+i] = mem[pointer+i-disp] xor <data[i]>
    Где <data[i]> - только младшие N битов, причём N вычисляется так (вариация на тему DAKX):

    N=curN[L]
    Читаем из потока биты и считаем число единиц M - до первого нуля или пока N+M-1 < 8
    N=N+M-1
    curN[pointer mod disp]=N

    Такое кодирование может оптимизировать много вызовов типа:
    ld hl,nn
    ld a,n
    call nn

    или развёрнутых лупов типа
    add hl,bc
    ld a,h
    ld e,n
    ld (de),a

    В последнем случае L=disp.

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

  3. #2

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,421
    Спасибо Благодарностей отдано 
    1,717
    Спасибо Благодарностей получено 
    2,245
    Поблагодарили
    882 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от alone Посмотреть сообщение
    mem[pointer+i] = mem[pointer+i-disp] xor <data[i]>
    Где <data[i]> - только младшие N битов, причём N вычисляется так (вариация на тему DAKX):
    Почему XOR, а не ADD?

  4. #3

    Регистрация
    17.01.2005
    Адрес
    Gorno-Altaysk
    Сообщений
    82
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alone Посмотреть сообщение
    Что если у нас есть ветка, которая вставляет L байтов (i=0..L-1) следующим образом:
    mem[pointer+i] = mem[pointer+i-disp] xor <data[i]>
    Где <data[i]> - только младшие N битов, причём N вычисляется так (вариация на тему DAKX):

    N=curN[L]
    Читаем из потока биты и считаем число единиц M - до первого нуля или пока N+M-1 < 8
    N=N+M-1
    curN[pointer mod disp]=N

    Такое кодирование может оптимизировать много вызовов типа:
    ld hl,nn
    ld a,n
    call nn

    или развёрнутых лупов типа
    add hl,bc
    ld a,h
    ld e,n
    ld (de),a

    В последнем случае L=disp.
    Ты прям как Алекс Юстасу, сразу зашифровал и закодил

    Я так понимаю, на примере:

    Ранее встречалось:

    00 11 56 92 34 CD

    встретилось:

    01 10 56 93 36 CD

    Кодируем длину, дистанцию, колво бит, от 1 до.. ну, наверное, 4, и далее биты. В результате наложения этих бит по XOR с ранее встреченной строкой получаем текущую строку.

    Верно?

    ---------- Post added at 11:59 ---------- Previous post was at 11:50 ----------

    Цитата Сообщение от alone Посмотреть сообщение
    Потому что, например, между значениями 2 и 7 нужно ксорить всего 3 бита, а для сложения надо 3 бита и знак, т.е. 4 бита.

    ---------- Post added at 14:01 ---------- Previous post was at 14:00 ----------

    Вообще интересно было бы послушать идеи, как в рамках этой концепции кодировать ксоры типа #80 (1 сдвинутый бит).
    Добавить маску для битов в виде 1 байта. %10000000. Можно вот так даже:
    %10101010. Типа, есть данные, где четные биты не меняются.

    upd: при таком подходе в 1 байте уже есть инфа как о месте изменяющихся бит, так и о длине бит.
    Последний раз редактировалось Hrumer; 14.04.2014 в 09:01. Причина: добавил мыслей.

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

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

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Архивирование, сжатие, упаковка.
    от GriV в разделе Программирование
    Ответов: 30
    Последнее: 22.07.2019, 17:25
  2. ɹǀɩ ATARI. Упаковка данных
    от breeze в разделе Atari
    Ответов: 4
    Последнее: 16.11.2014, 15:55
  3. Баг в depacker от hrust1.3?
    от moroz1999 в разделе Программирование
    Ответов: 65
    Последнее: 17.04.2014, 10:39
  4. Упаковка текстов
    от Shadow Maker в разделе Программирование
    Ответов: 18
    Последнее: 10.10.2008, 21:43

Ваши права

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