exponenta event banner

arithenco

Кодирование последовательности символов арифметическим кодированием

Описание

пример

code = arithenco(seq,counts) генерирует двоичный арифметический код, соответствующий последовательности символов, указанных в seq. Вход counts определяет статистику источника, перечисляя количество раз, когда каждый символ алфавита источника встречается в тестовом наборе данных.

Примеры

свернуть все

Используя источник с двухсимвольным алфавитом, создайте тестовый набор данных, в котором 99% символов равны 1. Закодируйте 1000 символов из этого источника, чтобы создать кодовый вектор, содержащий менее 1000 элементов. Фактическое количество элементов в кодированной последовательности изменяется в зависимости от конкретной случайной последовательности.

Укажите символ 1 из исходного алфавита, который будет 99 раз присутствовать в наборе тестовых данных.

counts = [99 1]
counts = 1×2

    99     1

Создайте случайную последовательность длиной 1000.

len = 1000;
seq = randsrc(1,len,[1 2; .99 .01]);

Кодирование случайной последовательности и отображение кодированной длины.

code = arithenco(seq,counts);
s = size(code)
s = 1×2

     1    57

Входные аргументы

свернуть все

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

Типы данных: double

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

Типы данных: double

Выходные аргументы

свернуть все

Сгенерированный двоичный арифметический код, соответствующий последовательности исходных символов, возвращаемый как неотрицательный двоичный вектор строки.

Алгоритмы

arithenco функция использует алгоритм, описанный в [1].

Ссылки

[1] Сайуд, Халид. Введение в сжатие данных. 2-я ред. Сан-Франциско: Morgan Kaufmann Publishers, 2000.

Представлен до R2006a