Опрос

Какой архиватор наиболее эффективный?:

Новички

Виктор Васильев
Юрий Антонов
Сергей Андреевич
Генадий
Avanasy

Коды

Обычно рассматривают два типа кодов с памятью:

- блочные коды;

- коды с конечной памятью.

Блочный код делит вектор данных на блоки заданной длины и затем каждый блок заменяют кодовым словом из префиксного множества двоичных слов. Полученную последовательность кодовых слов объединяют в результирующую двоичную строку на выходе кодера. О блочном коде говорят, что он - блочный код k -го порядка, если все блоки имеют длину, равную k .

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

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

Код Голомба неотрицательного целого числа п [Golomb 66] может быть эффективным кодом Хаффмана. Этот код зависит от выбора некоторого параметра Ь. Прежде всего необходимо вычислить две величины q — \р-^\ , r — п qb — 1 (где выражение \х\ обозначает округление х), а затем построить код из двух частей; первая часть -это число д, закодированное с помощью унарного кода (см. стр. 195), а вторая - двоичное выражение для г, состоящее из [log2b\ бит (для малых остатков) или из [log2b~\ бит (для больших). Если взять ...

Метод сжатия JPEG-LS использует коды Голомба, поэтому мы дадим краткое описание этих мало известных кодов.

Методы сжатия изображений, разработанные для конкретных типов графических образов, иногда могут успешно применяться для компрессии других типов. Например, любой метод сжатия двухуровневых изображений годится для полутоновых образов, если предварительно расслоить полутоновой образ на несколько двухуровневых и каждый слой сжимать независимо. Представим себе изображение с 16 градациями серого цвета. Каждый пиксел определяется 4 битами, поэтому изображения разделяется на 4 двухуровневых. Однако при таком подходе может нарушиться основной принцип сжатия изображений. Вообразим себе два ...

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

Может показаться, что приведенные выше примеры не производят никакого сжатия, и во всех трех рассмотренных примерах строки «SWISS-MISS», «02^2^1 «3^3» и «азазазазеоЬ кодируются слишком длинными последовательностями. Похоже, что длина окончательного кода сжатия зависит ...

Цель скалярного квантования - преобразование потока Л-битовм ментов, такое, чтобы в формируемом выходном потоке оставалось н-чем (заданное число) N значений.

Иллюстрация скалярного квантования, N=5, - навис. 1.4.

<_*__|_*__|_*_h_*_L^*_>

-4 -3-2-1 0 1 2 3 4

Рис. 1.4

Входное значение из диапазона

На выход записывается

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

1. Кодер должен обнаружить символ X на дереве. Дерево следует реализовать в виде массива структур, состоящих из узлов. Поиск в этом массиве будет линейным.

2. Если X не найден, то вырабатывается код esc, за которым следует несжатый код символа. Затем ...

Английское название метода - Separate Exponents and Mantissas (SEM).

Цель - сжатие потока Л-битовых элементов. В общем случае никаких предположений о свойствах значений элементов не делается, поэтому эту группу методов называют также представлением целых чисел (Representa­tion of Integers).

Основная идея состоит в том, чтобы отдельно описывать порядок значе­ния элемента Xt ("экспоненту" Е,) и отдельно - значащие цифры значения ("мантиссу" М,).

Значащие цифры начинаются со старшей ненулевой цифры: например, в числе ...