ИННОВАЦИИ БИЗНЕСУ

ПОДРОБНАЯ ИНФОРМАЦИЯ

Заявку на получение дополнительной информации по этому проекту можно заполнить здесь.

Номер

19-023-05

Наименование проекта

Диапазонный арифметический кодек низкой избыточности

Назначение

Передача цифровых данных через канал связи

Рекомендуемая область применения

Программно-аппаратные средства компрессии данных в канале связи

Описание

Результат выполнения научно-исследовательской работы.

1. Общая характеристика.

Кодек реализует диапазонный (range) арифметический алгоритм. Вычисления выполняются над целочисленными переменными таким образом, чтобы минимизировать погрешность вычисления поддиапазона. Избыточность кодирования над вычисленной энтропией минимальна - в абсолютном выражении имеет порядок разрядности регистра, используемого для хранения значения диапазона. Величина избыточности определяется необходимостью корректного завершения кодируемой последовательности (кодируется дополнительный символEOF) и погрешностью операции целочисленного деления диапазона. Для повышения скорости декодирования используется структура данных, реализующая двоичное дерево поиска в виде статического одномерного массива.

2.Алгоритмы кодирования и декодирования.

Алгоритмкодирования.

(*======================================================*)

Function MulDiv(Factor1 {eax}, Factor2 {edx} ,Divisor {ecx}:cardinal)

:cardinal;assembler;

asm

mul Factor2

div Divisor

end;

(*======================================================*)

Procedure Encode;

(* Copyrights (C) Yuri A. Gadzhiev, 2004, all rights reserved.*)

var ch,Low,NewLow,Delta,i,count:cardinal;

(*======================================================*)

begin

with Fq do begin

StoreFreq;

// Cumulative frequences computation

Cmlt[0]:=0;

for i:=1 to ALPHASIZE-1 do Cmlt[i]:=Cmlt[i-1]+Freq[i-1];

count:=Cmlt[ALPHASIZE-1]+Freq[ALPHASIZE-1];

Delta:=cardinal(-1);

Low:=0;

RestartInput;

POut:=@OutStart;

while not EOI do begin

while Delta < b[2]="" do="">

Delta:=Delta shl 8;

POut(Low shr 24);

Low:= Low shl 8;

end;

ch:=get;

NewLow:= Low + MulDiv(Cmlt[ch],Delta,count);

if NewLow < low="" then="">

Low:=NewLow;

Delta:= MulDiv(Freq[ch],Delta,count);

end;

while Low<>0 do begin

POut(Low shr 24);

Low:=Low shl 8

end;

OutClose;

end;

end;

Алгоритм декодирования.

Procedure Decode;

(* Copyrights (C) Yuri A. Gadzhiev, 2004, all rights reserved.*)

var count,Low,Delta,ch,r,i:cardinal;

begin

with Fq do begin

GetFreq;

// Cumulative frequences computation

InitCmlt;

count:=Cmlt[1];

// Maximal value for delta assignment

Delta:=cardinal(-1);

// Most higher digits of code getting from

Low:=get shl 24 +get shl 16 + get shl 8 + get;

for i:=1 to SourceLength do begin

ch:=CmltSeek(Low,Delta,count,r);

put(ch);

//Offset of Low inside subinterval

Low:= Low - r;

//Assignment of subinterval as new interval

Delta:=MulDiv(Freq[ch],Delta,count);

//Expand of interval

while Delta < b[2]="" do="">

Delta:=Delta shl 8;

Low:= (Low shl 8);

if not EOI then Low:=Low + get;

end;

end;

end;

end;

Преимущества перед известными аналогами

Низкая величина избыточности, характерная для стандартного арифметического алгоритма в сочетании с целочисленными вычислениями над многоразрядными операндами, характерными для диапазонного (range) алгоритма

Стадия освоения

Внедрено в производство

Результаты испытаний

Соответствует технической характеристике изделия (устройства)

Технико-экономический эффект

Повышение плотности упаковки данных на 60 %.

Возможность передачи за рубеж

Возможна передача за рубеж

Дата поступления материала

29.06.2005

Инновации и люди

У павильонов Уральской выставки «ИННОВАЦИИ 2010» (г. Екатеринбург, 2010 г.)

Мероприятия на выставке "Инновации и инвестиции - 2008" (Югра, 2008 г.)

Открытие выставки "Малый бизнес. Инновации. Инвестиции" (г. Магнитогорск, 2007 г.)

Демонстрация разработок на выставке "Малый бизнес. Инновации. Инвестиции" (г. Магнитогорск, 2007 г.)