Закон Гука
- 1 year ago
- 0
- 0
А-закон — алгоритм сжатия с потерей информации, применяется для сжатия звуковых данных.
Принцип кодирования схож с кодированием чисел с плавающей запятой . Каждый семпл кодируется в 8-битное поле. Старший бит — бит знака, следующие 3 бита — беззнаковая экспонента , последние 4 — мантисса . Таким образом из используемых 16 бит, только 12 бит содержат значащую информацию, а 4 бита из 16 иногда отбрасываются.
Если число отрицательно, оно обращается , при этом принимается, что s = 0, иначе s = 1.
16-битное число преобразуется в 8-битное в соответствии со следующей таблицей. Для наглядности полубайты — нибблы — разделены знаком обратного апострофа (`); s — знаковый бит; звёздочками показаны биты, теряющиеся при сжатии.
Исходное число | Сжатое |
---|---|
s000`0000`wxyz`**** | s000`wxyz |
s000`0001`wxyz`**** | s001`wxyz |
s000`001w`xyz*`**** | s010`wxyz |
s000`01wx`yz**`**** | s011`wxyz |
s000`1wxy`z***`**** | s100`wxyz |
s001`wxyz`****`**** | s101`wxyz |
s01w`xyz*`****`**** | s110`wxyz |
s1wx`yz**`****`**** | s111`wxyz |
Биты инвертируются через один, начиная с самого правого (то есть с 8-битным числом проделывается операция XOR 0x55).
В примерах ниже подстрочный индекс обозначает разрядность ( десятичное число или двоичное ); на 1 шаге подчёркнута мантисса (часть цифр, переходящая в wxyz на 2 шаге).