СПОСОБ СЖАТИЯ ДВОИЧНЫХ ДАННЫХ В ВИДЕ СТРУКТУРИРОВАННЫХ ИНФОРМАЦИОННЫХ БЛОКОВ
METHOD TO COMPRESS BINARY DATA AS STRUCTURED INFORMATION BLOCKS

Изобретение относится к вычислительной технике и может быть использовано в системах передачи и обработки цифровой информации.
Известен способ сжатия (см. Лэнгсам И., Огенстайн М., Тененбаум А. Структуры данных для персональных ЭВМ: Пер. с англ. - М.: Мир, 1989), в котором положение блока закодированных данных относительно начала входного потока информации постоянно меняется, блок скользит по входному потоку информации. При этом используются указатели, которые позволяют делать ссылки на любой элемент в блоке закодированных данных установленного размера, который предшествует текущему элементу входного потока. Если соответствие найдено, текущий элемент заменяется указателем на соответствующий элемент блока закодированных данных. Указатель включает в себя смещение в блоке закодированных данных и длину элемента. Дополнительно в выходной поток записывается непосредственно следующий за совпавшим элементом символ. Затем блок закодированных данных смещается на длину совпавшего элемента плюс один символ и выполняется новый цикл кодирования. Способ позволяет сжимать только сравнительно длинные последовательности.
Недостатком указанного способа является отсутствие существенных результатов при сжатии структурированных информационных блоков. Например, перестановку из 24 символов с использованием данного способа сжатия можно представить в виде 112-битной строки.
Известен способ сжатия (см. Лэнгсам И., Огенстайн М., Тененбаум А. Структуры данных для персональных ЭВМ: Пер. с англ. - М.: Мир, 1989), использующий только частоту появления одинаковых байтов во входном блоке данных и базирующийся на структуре данных бинарного дерева. Часто встречающимся символам входного потока данных ставится в соответствие цепочка битов меньшей длины, а встречающимся редко - цепочка большей длины. За счет применения этого метода для сжатия очень длинных сообщений, которые содержат встречающиеся чрезвычайно редко символы, достигается существенная экономия: степень сжатия может достигать 8. Сказанное справедливо в большей части для текстовых сообщений и сообщений с неравномерной плотностью распределения символов. Указанный способ взят в качестве наиболее близкого аналога заявляемого изобретения.
Недостатком наиболее близкого аналога является медленная сходимость, то есть маленькая скорость приближения к энтропии источника. Таким образом, представленный метод существенных результатов при сжатии двоичных данных в виде структурированных информационных блоков не дает.
Технический результат, на достижение которого направлено заявляемое изобретение, заключается в улучшении свойств способа сжатия двоичных данных в виде структурированных информационных блоков (далее способ сжатия двоичных данных), позволяющем приблизить коэффициент сжатия к теоретически возможному значению.
Для достижения указанного технического результата в способе сжатия двоичных данных, в котором для входного потока двоичных данных, содержащего символы, представленные битовыми последовательностями одинакового фиксированного размера, производят подсчет частоты повторяемости символов, затем для обозначения часто и редко встречающихся символов входного потока двоичных данных производят соответственно выработку более короткой и более длинной битовых последовательностей, которые объединяют в совокупную битовую последовательность переменного размера, новым является то, что из совокупной битовой последовательности исключают битовые последовательности, соответствующие повторяющимся символам входного потока двоичных данных.
Указанная совокупность существенных признаков позволяет улучшить свойства способа сжатия двоичных данных в виде структурированных информационных блоков за счет использования факториальной системы счисления и пропорционального динамического кодирования.
На фиг.1 представлена схема способа сжатия двоичных данных в виде структурированных информационных блоков.
s
pdk
mak
На фиг.2 представлена зависимость длины сжатого информационного блока от количества элементов в структурированном блоке (L - длина информационного блока без сжатия, L - длина информационного блока, сжатого с использованием наиболее близкого аналога разработанного способа сжатия двоичных данных, L - длина информационного блока, сжатого с использованием разработанного способа сжатия двоичных данных в виде структурированных информационных блоков).
pdk
mak
На фиг.3 представлена зависимость достигаемой степени сжатия от количества элементов в структурированном информационном блоке (Kk - степень сжатия, достигаемая с использованием наиболее близкого аналога разработанного способа сжатия двоичных данных, Kk - степень сжатия, достигаемая с использованием разработанного способа сжатия двоичных данных в виде структурированных информационных блоков).
<mrow><mi>P</mi><mo>=</mo><mstyle displaystyle="true"><mo>∑</mo><mi>C</mi></mstyle><mrow><mo>(</mo><mrow><msubsup><mi>x</mi><mi>i</mi><mi>m</mi></msubsup></mrow><mo>)</mo></mrow><mo>⋅</mo><mrow><mo>(</mo><mrow><mrow><mo>(</mo><mrow><mi>N</mi><mo>−</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>−</mo><mi>i</mi></mrow><mo>)</mo></mrow><mo>!</mo><mo>,</mo></mrow>
<mrow><mi>C</mi><mrow><mo>(</mo><mrow><msup><mi>x</mi><mi>m</mi></msup></mrow><mo>)</mo></mrow></mrow>
<mrow><mrow><mo>|</mo><mrow><mi>C</mi><mrow><mo>(</mo><mrow><msubsup><mi>x</mi><mi>i</mi><mi>m</mi></msubsup></mrow><mo>)</mo></mrow></mrow><mo>|</mo></mrow><mo>=</mo><mrow><mo>⌈</mo><mrow><msub><mrow><mi>log</mi></mrow><mn>2</mn></msub><msubsup><mi>x</mi><mi>i</mi><mi>m</mi></msubsup></mrow><mo>⌉</mo></mrow><mo>.</mo></mrow>
m
По существу предлагается для сжатия двоичных данных в виде структурированных информационных блоков использовать факториальную систему счисления. Структурированные информационные блоки, таким образом, описываются аналитически и представляются в виде однозначно соответствующих им натуральных чисел
0≤i<N, где
- двоичный код х,
Длина информационного блока L соответствующего дискретного представления структурированного информационного блока равна
<mrow><mi>L</mi><mo>=</mo><mrow><mo>|</mo><mi>P</mi><mo>|</mo></mrow><mo>=</mo><mrow><mo>|</mo><mrow><mstyle displaystyle="true"><mo>∑</mo><mrow><mi>C</mi><mrow><mo>(</mo><mrow><msubsup><mi>x</mi><mi>i</mi><mi>m</mi></msubsup></mrow><mo>)</mo></mrow><mo>⋅</mo></mrow></mstyle><mi>i</mi><mo>!</mo></mrow><mo>|</mo></mrow><mo>=</mo><mrow><mo>⌈</mo><mrow><msub><mrow><mi>log</mi></mrow><mn>2</mn></msub><mi>N</mi><mo>!</mo></mrow><mo>⌉</mo></mrow><mo>,</mo></mrow>
0≤i≤N.
Сжатое численное представление Р структурированного информационного блока из N элементов может принимать N! значений от 0 для случая, когда блок представлен минимальными численными значениями элементов из допустимых множеств, т.е. нулями 0, 0,…, 0, 0
Р=0·(N-1)!+0·(N-2)!+…+0·1!+0·0!=0,
до (N!-1) для случая, когда блок представлен максимальными численными значениями элементов из допустимых множеств, т.е. (N-1), (N-2),…, 1, 0
Р=(N-1)·(N-1)!+(N-2)·(N-2)!+…+1·1!+0·!=(N!-(N-1)!)+((N-1)!-(N-2!)+…+(2·2!-1·1!)=N!-1.
<mrow><mrow><mo>⌈</mo><mrow><msub><mrow><mi>log</mi></mrow><mn>2</mn></msub><mi>N</mi><mo>!</mo></mrow><mo>⌉</mo></mrow></mrow>
Таким образом, дискретный информационный блок сжатого численного представления перестановки из N элементов будет иметь длину
бит, которая является минимально необходимой длиной для дискретного представления структурированного информационного блока заданного вида.
Способ (фиг.1) включает в себя следующие процедуры преобразования:
0
1
N-1
- упаковка произвольного структурированного информационного блока (x, x,…, х) (процедура преобразования несжатого блока в сжатую форму);
- распаковка предварительно упакованного структурированного информационного блока Р (процедура преобразования сжатой формы блока в несжатую).
Процедура упаковки исходной произвольного структурированного информационного блока из N элементов в сжатую форму осуществляется следующим образом.
m
m
m
m
0
1
N-1
i
i
i
Структурированные информационные блоки представляются последовательностью модифицированных численных значений одинакового фиксированного размера (х , x ,…, x ). Затем производят подсчет частоты повторяемости символов, при этом для обозначения часто и редко встречающихся символов входного потока двоичных данных производят соответственно выработку более короткой и более длинной битовых последовательностей вида S=x ·((N-1)-i)!. Полученные последовательности объединяют в совокупную битовую последовательность переменного размера структурированного информационного блока Р суммированием слагаемых S. При этом исключаются битовые последовательности, соответствующие повторяющимся символам входного потока двоичных данных.
Процедура распаковки предварительно упакованного структурированного информационного блока осуществляется следующим образом.
i
i-1
0
0
1
N-1
m
m
m
<mrow><msubsup><mi>x</mi><mi>i</mi><mi>m</mi></msubsup><mo>=</mo><mrow><mo>⌊</mo><mrow><mrow><mo>(</mo><mrow><msub><mi>D</mi><mi>i</mi></msub><mo>/</mo><mrow><mo>(</mo><mrow><mi>N</mi><mo>−</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>−</mo><mi>i</mi></mrow><mo>)</mo></mrow><mo>!</mo></mrow><mo>⌋</mo></mrow><mo>,</mo></mrow>
<mrow><mrow><mo>⌊</mo><mi>a</mi><mo>⌋</mo></mrow></mrow>
Формируются остатки от деления вида D=Dmod(N-i)!, D=P, представляющие собой более короткую и более длинную битовые последовательности, соответствующие часто и редко встречающимся символам входного потока двоичных данных, из которых формируются фиксированные последовательности модифицированных численных значений (x , x ,…, x ), представляющие исходный структурированный информационный блок вычислением
где
- целая часть числа а (наибольшее целое число, не большее а).
На фиг.2 и фиг.3 представлены соответственно графики зависимостей длины сжатого информационного блока от количества элементов в структурированном информационном блоке и достигаемой степени сжатия от количества элементов в структурированном информационном блоке.
Как видно из графиков, представленных на фиг.2 и фиг.3, разработанный способ позволяет полностью исключить информационную избыточность, возникающую при дискретном представлении структурированного информационного блока из N элементов, и достигает, таким образом, максимально теоретически возможного сжатия дискретных информационных блоков.
Важными свойствами способа являются:
- хорошее сжатие структурированных информационных блоков ввиду того, что методы специально разрабатывались для сжатия такого типа данных;
- относительно высокая скорость сжатия и восстановления, связанная с невысокой сложностью этих процедур;
- скромные требования к вычислительным ресурсам, в частности к объему памяти для реализации соответствующих преобразований;
- симметричность относительно трудоемкости и соответственно скорости прямого и обратного преобразований.
Следует отметить, что способ не зависит от размерности исходного блока информации, подвергаемого сжатию, так как изначально не привязан к определенной размерности информационного блока. Это делает его универсальным. Размер исходного блока информации является входным параметром, который настраивает рабочие параметры алгоритмов преобразования, реализующих данный способ. Кроме того, разработанный способ является относительно несложным в реализации и может быть практически реализован на любом ЭВС с микропроцессором, обладающим минимальным набором математических функций.
Таким образом, способ обеспечивает улучшение свойств сжатия двоичных данных в виде структурированных информационных блоков, что позволяет приблизить коэффициент сжатия к теоретически возможному значению.
Реализация данного способа сжатия подтвердила осуществимость и практическую ценность заявляемого способа.