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

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

свернуть все

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

Алгоритмы

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

Ссылки

[1] Сайуд, Халид. Введение в сжатие данных. 2nd ed. San Francisco: Morgan Kaufmann Publishers, 2000.

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