Научная статья на тему 'РАЗДЕЛ 1. МОДЕЛИРОВАНИЕ, РАСЧЕТ И ОБРАБОТКА ДАННЫХ В АВТОМАТИЗИРОВАННЫХ СИСТЕМАХ'

РАЗДЕЛ 1. МОДЕЛИРОВАНИЕ, РАСЧЕТ И ОБРАБОТКА ДАННЫХ В АВТОМАТИЗИРОВАННЫХ СИСТЕМАХ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
12
3
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
УНИВЕРСАЛЬНОЕ КОДИРОВАНИЕ / КОМБИНАТОРНЫЙ КОД / ИЗБЫТОЧНОСТЬ / ЭНТРОПИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бакулина М.П.

В данной работе рассматривается задача построения и реализации эффективного метода комбинаторного универсального кодирования, т.е. метода кодирования при неизвестной статистике сообщений. Приводятся экспериментальные результаты работы данного алгоритма, как для построенного префикса, так и для префикса, обеспечивающего минимальную избыточность.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «РАЗДЕЛ 1. МОДЕЛИРОВАНИЕ, РАСЧЕТ И ОБРАБОТКА ДАННЫХ В АВТОМАТИЗИРОВАННЫХ СИСТЕМАХ»

РАЗДЕЛ 1. МОДЕЛИРОВАНИЕ, РАСЧЕТ И ОБРАБОТКА ДАННЫХ В АВТОМАТИЗИРОВАННЫХ СИСТЕМАХ

2. Ефремов, М.С. Моделирование напряженного состояния зуба после реставрации кариозных полостей [Текст] / М.С. Ефремов [и др.] // Ползуновский альманах. - Барнаул: АлтГТУ, 2008. - №2 - С. 162-164.

3. Зенкевич, О. Метод конечных элементов в технике [Текст] / О. Зенкевич. - М.: Мир, 1975. - 539с.

4. Наймушин, Ю.Н. Моделирование напряженно-деформированного состояния зуба и пломбы с учетом их эмпирических деформационных характеристик [Текст] / Ю.Н. Наймушин, [и др.] // Вестник ИжГТУ. - 2010.- №2.- С.79-83.

5. Ремизов, С.М. Микромеханические характеристики реставрационных

стоматологических материалов, эмали и дентина зубов человека [Текст] / С.М. Ремизов // Стоматология. - 2001 - №4 - С. 28-32.

Д.т.н., зав. лаб. Шелковников Е.Ю., м.н.с. Кириллов А.И. - Институт механики УрО РАН, iit@udman.ru; к.т.н., доц. Ефремов С.М. - Ижевский Государственный технический университет, efsemi@mail.ru; д.м.н., проф. Рединова Т.Л., аспирант Тимофеев А.А., аспирант Метелева Т.Ю. - Ижевская медицинская академия, (3412)425488, dimitu@deikin.ru

УДК 519.722

ЭФФЕКТИВНЫЙ МЕТОД УНИВЕРСАЛЬНОГО КОМБИНАТОРНОГО КОДИРОВАНИЯ

М.П. Бакулина

В данной работе рассматривается задача построения и реализации эффективного метода комбинаторного универсального кодирования, т.е. метода кодирования при неизвестной статистике сообщений. Приводятся экспериментальные результаты работы данного алгоритма, как для построенного префикса, так и для префикса, обеспечивающего минимальную избыточность.

Ключевые слова: универсальное кодирование, комбинаторный код, избыточность, энтропия

Введение

Задача эффективного кодирования источников является одной из центральных в теории информации, что объясняется ее теоретической важностью и многочисленными практическими приложениями к сжатию данных самой различной природы.

Комбинаторное кодирование, названное так по аналогии с арифметическим кодированием, использует статистику исходных данных, и является разновидностью статистических (энтропийных) методов сжатия информации. К таким методам также относятся арифметическое кодирование, и ряд метод Хаффмана других методов.

Суть комбинаторного метода заключается в том, что из известного алфавита и таблицы частот можно сформировать строго определенное число различных последовательностей данных. Поэтому каждой последовательности данных ставится в соответствие строго определенный (комбинаторный) номер (код) и наоборот, каждому комбинаторному номеру строго определенная последовательность данных.

Рассматриваются задачи кодирования источников с известной и неизвестной статистикой. Методы, предназначенные для кодирования источников с известной статистической структурой, называются статистическими (неадаптивными) методами. Однако

наиболее важной и сложной является задача построения кодов с неизвестной статистикой источника. Такие коды называются универсальными кодами.

Возможность построения универсальной схемы комбинаторного кодирования и доказательство простоты ее реализации были впервые описаны В.Ф. Бабкиным [1]. Исследованию универсальных комбинаторных кодов посвящены также работы [2], [3].

В данной работе рассматривается задача построения и реализации эффективного метода комбинаторного универсального кодирования, т.е. метода кодирования при неизвестной статистике сообщений. Приводятся экспериментальные результаты работы данного алгоритма.

Алгоритм комбинаторного универсального кодирования. Предположим, что алфавит состоит из двух букв и а2, появляющихся независимо с вероятностями р , q = 1 — р , но величина р заранее неизвестна. Требуется построить код, для которого среднее число символов 0 и 1 на одну букву алфавита приближалось бы к энтропии источника при любом р < 1.

Построение кода начнем с разбиения множество всех блоков длины п в алфавите А на группы, которые имеют одинаковые

ЭФФЕКТИВНЫЙ МЕТОД УНИВЕРСАЛЬНОГО КОМБИНАТОРНОГО КОДИРОВАНИЯ

вероятности при любом р. Число таких групп равно п +1. В нулевой группе отсутствует буква а2, при этом группа состоит из единственного блока ахах ...а, вероятность

появления которого равна рп. Первая группа состоит из всех блоков длины п , содержащих одну букву а . Эта группа состоит из С\ = п блоков, вероятность каждого из которых равна рп1ц. Группа с номером к состоит из всех блоков длины п, содержащих к букв а2. Эта группа содержит С к блоков, вероятность каждого из которых равна рп~к.

Универсальный код для к-й группы состоит из двух частей: префикса и суффикса. В качестве префикса для кода слова х выбирается двоичная запись числа г(х) единиц в этом слове. Эта двоичная запись для всех слов имеет одну и ту же длину |~1о§2(п +1)]. Префикс указывает, к какой группе сообщений принадлежит кодируемый блок, суффикс же содержит | 1о§2(Ск) | двоичных символов и указывает номер блока в группе. Построенный таким образом код будет однозначно дешифруем. На приемном конце первоначально по |~1о^(п +1)| элементам кода определяют, к какой группе принадлежит переданное сообщение, а затем по

следующим | 1о^(Ск) | элементам определяют, какое именно сообщение передавалось.

Префикс каждой из групп при комбинаторном кодировании содержит ровно |"1о^(п +1)| символов 0 и 1. Однако более

эффективным является кодирование префикса неравномерным кодом.

Из приведенного выше описания метода кодирования видно, что наиболее трудоемкой частью кодирования является нахождение суффикса. Опишем алгоритм его нахождения. Номер N(х) слова х , | х |= п , имеющего г (х) = г, г > 0 , вхождений единицы, во множестве С'

слов, содержащих r единиц,

равен

r

N (х) = х -1,

где п - номер 1 -й по счету единицы в слове х , 1 = 1,.,г.

Вычисления ведутся следующим образом. Если 1 -я буква слова х равна 1, то вычисляем величину

>—тк +1 _ >—тк

Ci +1 — Ci

i + 1

i - к + 1

(2)

Если же i -я буква равна 0, то вычисляем величину

к _ к

Ci+1 — Ci

i + 1

i - к

(3)

(1)

i —1

Прибавляя найденное значение (2) или (3) к сумматору, где вначале находится 0, после обработки последней n -й буквы х получим номер N(x) этого слова согласно (1). При этом необходимо осуществить (n -1)

умножений и делений по формулам (2) и (3), а также n сложений. Величина первого множителя в формулах (2) и (3) не превышает

2n, а величины второго множителя и делителя не превышают n . Как следует из [4], число операций при умножении и делении a -разрядного числа на b -разрядное равно O(a ■ log b ■ log log b) , если a >> b . Получаем

следующее утверждение

Утверждение. Для вычисления номера слова х, | х |— n , в совокупности всех слов, содержащих заданное число r единиц, r — г(х), достаточно затратить

O(n2 ■ loglogn ■ logloglogn) операций над одноразрядными числами.

Номер N(х) можно вычислить, пользуясь таблицей биномиальных коэффициентов (треугольником Паскаля). Элементы этой таблицы вычисляются по мере надобности либо размещаются в памяти кодирующего устройства. Ниже приведен фрагмент такой таблицы. На пересечении i -й строки и j -го

столбца стоит Cj_x.

8 7 21 35 35 21 7 1

7 6 15 20 15 6 1

6 5 10 10 5 1

5 4 6 4 1

4 3 3 10

3 2 1 2 1 1 0

М.П. БАКУЛИНА

59

и четвертом столбцах таблицы указаны время работы алгоритма и коэффициент сжатия файлов, определяемый как отношение исходного объема файла к объему, полученному при кодировании.

Таблица 1 - результаты работы алгоритма

универсального комбинато

РАЗДЕЛ 1. МОДЕЛИРОВАНИЕ, РАСЧЕТ И ОБРАБОТКА ДАННЫХ В АВТОМАТИЗИРОВАННЫХ СИСТЕМАХ

Рассмотрим следующий пример вычисления номера N(х). Пусть п =8,

х = 01101101. Здесь номера вхождений единицы в слово х равны 2, 3, 5, 6, 8. Соответствующие слагаемые из формулы (1) выделены в таблице жирным шрифтом. Суммируя их, находим, что номер N (х) = 21+5+4+1+1=32.

Если известен номер N(x) и известно,

что число единиц г (х) в слове х равно 5, то для нахождения х вначале определяем максимальное число пятого столбца таблицы, не превосходящее N(х). Это 21 = С85ч . Значит, п5 = 8, т. е. на восьмом месте слова х стоит

1. Так как 32-21=11, то находим максимальное число четвертого столбца, не превосходящее 11. Это 5= С , т. е. п4 =6. Продолжая

таким же образом, находим п3 =5, п2 =3,

П =2. Трудоемкость этой процедуры кодирования совпадает по порядку с трудоемкостью кодирования.

Отметим, что максимальная избыточность данного метода на множестве двоичных источников равна в пересчете на букву

зного кодирования

О бъ ем Время Коэффициент

№ файла (кб) (с) сжатия (%)

1 3,58 1,3 38.5

2 65 3.2 41.6

3 112 4.1 43.2

4 220 6.5 39.3

5 461 9.7 45.9

6 804 15.3 41.7

7 1347 24.9 44.1

8 2524 45.6 42.8

В таблице 2 приведены результаты работы алгоритма с длиной префикса, определяемой формулой (4) и дающий асимптотически оптимальный код.

Таблица 2

асимптотически

log

n

Минимальное

n

значение

где n - длина слова. этой избыточности

равно

2 п 2п '

Известно (см. [4]), что асимптотически наилучший универсальный код, т.е. код, обеспечивающий минимальную избыточность, получается, если длину префикса слова выбрать равной

№ О бъ ем файла (кб) Время (с) Коэффициент сжатия (%)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1 3,58 0.2 33.2

2 65 1.5 35.6

3 112 2.1 36.1

4 220 4.0 34.5

5 461 8.1 38.9

6 804 13.7 36.3

7 1347 22.7 39.2

8 2524 43.3 37.7

1 ^ 1 (i x)

log 2 n +7T-I log 2--h log 2

2 V n

ro( x)

+ C,

(4)

Сравнение таблицы 1 и таблицы 2 показывает, что асимптотически оптимальный комбинаторный код дает лучший коэффициент сжатия и лучшее время кодирования, чем обычный комбинаторный код.

Заключение. Эффективной областью применения алгоритма универсального комбинаторного кодирования может быть сжатие данных с неизвестной статистикой, в том числе, различных потоков, таких как видео, звук, телеметрия.

где г(х) и г(х) - число вхождений 1 и 0

соответственно в слово длины п, а С - некоторая константа, выбираемая так, чтобы выполнялось неравенство Крафта.

Экспериментальные результаты. В приведенной ниже таблице 1 представлены экспериментальные результаты работы описанного выше алгоритма универсального комбинаторного кодирования. В качестве тестов были взяты различные файлы, в третьем

СПИСОК ЛИТЕРАТУРЫ

Бабкин, В. Ф. Метод универсального кодировния независимых сообщений неэкспоненциальной трудоемкости [Текст] / В. Ф. Бабкин // Проблемы передачи информации. -1971, т. 7, № 4. - С. 13-21. Davisson, L. Efficient Universal Noiseless Codes / L. Davisson, R. McEliece, M. Pursley, M. Wallace. // IEEE Trans. Inf. Th. - 1981, v. 27, № 3. - P. 269-279.

Krichevsky, R. E. The Performance of Universal Encoding / R. E. Krichevsky, V. K. Trofimov //

2

n

КОДИРОВАНИЕ НЕИЗВЕСТНОГО СТАЦИОНАРНОГО ИСТОЧНИКА СИМВОЛАМИ НЕРАВНОЙ

ДЛИТЕЛЬНОСТИ

IEEE Trans. Inf. Th. - 1981, v. 27, № 2. - P.199-207.

4. 4. Кнут Д. Искусство программирования для ЭВМ, сортировка и поиск [Текст] / Д. Кнут. - М.: Мир. - 1978.

Научный сотрудник, к.ф.-м.н. Бакулина М.П. тел. 8-961-215-79-36, marina@rav.sscc.ru - Институт Вычислительной Математики и Математической Геофизики СО РАН .

УДК 621.391

КОДИРОВАНИЕ НЕИЗВЕСТНОГО СТАЦИОНАРНОГО ИСТОЧНИКА СИМВОЛАМИ НЕРАВНОЙ ДЛИТЕЛЬНОСТИ

В.К. Трофимов, Т.В. Храмова

Предложен метод слабо универсального кодирования множества стационарных источников при условии, что символы кодового алфавита имеют неравные длительности.

Ключевые слова: кодирование, избыточность кодирования, энтропия

Изучение методов кодирования информации, с целью уменьшения занимаемого ею объема является актуальной задачей информатики. Данная работа посвящена изучению оптимальных методов сжатия информации, порожденной неизвестным дискретным стационарным источником.

Рассмотрим источник сообщений 0 , генерирующий последовательность из букв некоторого конечного алфавита

X = Хк } ■

Последовательность должна быть закодирована и передана по каналу связи. Для решения нашей задачи оптимального кодирования, разобьем исходящую последовательность букв источника на блоки (слова) фиксированной длины N . Процедура кодирования источника заключается в том, что каждому блоку w е X1 ставится в соответствие некоторое кодовое слово <р(у>) е У * из букв кодового алфавита

У = У2.". Ут}

(здесь У * обозначает множество всевозможных последовательностей из элементов множества У )■ Кодирование, при котором блокам источника ставится в соответствие кодовое слов нефиксированной длины называется равномерным по входу. Разные буквы кодового алфавита имеют разную длительность или, другими словами, стоимость передачи:

I. = t(у. ) , ] = 1,т ■ Таким образом, каждому

кодовому алфавиту можно поставить в соответствие вектор длительностей букв

t=6,ь,-,^), (t] = г(у.), 7=1т).

В частности, длительности кодовых символов могут быть одинаковы, в этом случае соответствующий алфавиту вектор обозначим 7[ = (1Д...Д).

4-V-'

т

Самым популярным примером кода с неравными длительностями является код Морзе, актуальность которого не теряется и в наше время — на основе кода Морзе созданы широко используемые штрих-коды.

Длительностью кодового слова будем считать величину, равную сумме длительностей входящих в слово букв:

/Ш0= X <У) ■

уе<р(^)

Стоимость кодирования определяется как отношение средней длительности кодового слова к средней длительности слова источника, и, в рассматриваемом случае, принимает вид:

1(1,0, <р, Т) = 1 X ?)■ (1)

1 wеXN

Эффективность метода кодирования < : X1 ^ У определяется избыточностью

я(1,0, <р, г) = ь(1,0, <р, г) - Н (0)/ С (г), (2)

где Н(0) — энтропия источника, определяемая законом распределения вероятностей появления букв алфавита X на выходе источника 0 , С(I) — пропускная способность канала передачи информации, зависящая только от кодового алфавита У ■

Изучению эффективных методов кодирования посвящено множество работ. В случае известного источника, при равных

В.К. ТРОФИМОВ, Т.В. ХРАМОВА

61

i Надоели баннеры? Вы всегда можете отключить рекламу.