arithenco

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

Описание

пример

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

Примеры

свернуть все

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

Задайте для символа 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] Sayood, Халид. Введение в Сжатие данных. 2-й редактор Сан-Франциско: Издатели Моргана Кофманна, 2000.

Смотрите также

Функции

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