exponenta event banner

arithdeco

Декодирование двоичного кода арифметическим декодированием

Описание

пример

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

Примеры

свернуть все

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

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

counts = [99 1];

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

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

Кодирование случайной последовательности. Затем декодируйте кодированную последовательность.

code = arithenco(seq,counts);
dseq = arithdeco(code,counts,length(seq));

Убедитесь, что декодированная последовательность соответствует исходной случайной последовательности.

isequal(seq,dseq)
ans = logical
   1

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

свернуть все

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

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

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

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

Длина декодируемой последовательности, заданная как положительный скаляр.

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

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

свернуть все

Декодированный арифметический код с последовательностью len исходные символы, заданные как положительный числовой вектор строки.

Алгоритмы

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

Ссылки

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

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