Лучшие вопросы
Таймлайн
Чат
Перспективы

A-закон

Из Википедии, свободной энциклопедии

Remove ads

А-закон — алгоритм сжатия с потерей информации, применяется для сжатия звуковых данных.

Реализации для 16-битных знаковых целых

Суммиров вкратце
Перспектива

Принцип кодирования схож с кодированием чисел с плавающей запятой. Каждый семпл кодируется в 8-битное поле. Старший бит — бит знака, следующие 3 бита — беззнаковая экспонента, последние 4 — мантисса. Таким образом из используемых 16 бит, только 12 бит содержат значащую информацию, а 4 бита из 16 иногда отбрасываются.

Шаг 1

Если число отрицательно, оно обращается, при этом принимается, что s = 0, иначе s = 1.

Шаг 2

16-битное число преобразуется в 8-битное в соответствии со следующей таблицей. Для наглядности полубайты — нибблы — разделены знаком грависа (`); s — знаковый бит; звёздочками показаны биты, теряющиеся при сжатии.

Подробнее Исходное число, Сжатое ...
Шаг 3

Биты инвертируются через один, начиная с самого правого (то есть с 8-битным числом проделывается операция XOR 0x55).

Примеры

В примерах ниже подстрочный индекс обозначает разрядность (десятичное число или двоичное); на 1 шаге подчёркнута мантисса (часть цифр, переходящая в wxyz на 2 шаге).

Пример 1
66610 = 0000`0010`1001`10102
Шаг 1. Знаковый бит s = 1: 0000`0010`1001`10102
Шаг 2. Собственно сжатие (соответствует s010`wxyz): 1010`01002
Шаг 3. Инвертирование: 1111`00012 = F116 = 24110.
Пример 2
—666610 = 1110`0101`1111`01102
Шаг 1. Число обращаем, знаковый бит s = 0: 0001`1010`0000`10012
Шаг 2. Собственно сжатие (соответствует s101`wxyz): 0101`10102
Шаг 3. Инвертирование: 0000`11112=1510
Remove ads

См. также

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads