A-закон
А-закон — алгоритм сжатия с потерей информации, применяется для сжатия звуковых данных.
Реализации для 16-битных знаковых целых
Принцип кодирования схож с кодированием чисел с плавающей запятой. Каждый семпл кодируется в 8-битное поле. Старший бит — бит знака, следующие 3 бита — беззнаковая экспонента, последние 4 — мантисса. Таким образом из используемых 16 бит, только 12 бит содержат значащую информацию, а 4 бита из 16 иногда отбрасываются.
- Шаг 1
Если число отрицательно, оно обращается, при этом принимается, что s = 0, иначе s = 1.
- Шаг 2
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 |
- Шаг 3
Биты инвертируются через один, начиная с самого правого (то есть с 8-битным числом проделывается операция XOR 0x55).
Примеры
В примерах ниже подстрочный индекс обозначает разрядность (десятичное число или двоичное); на 1 шаге подчёркнута мантисса (часть цифр, переходящая в wxyz на 2 шаге).
- Пример 1
- 66610 = 0000`0010`1001`10102
- Шаг 1. Знаковый бит s = 1: 1000`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`10102
- Шаг 2. Собственно сжатие (соответствует s101`wxyz): 0101`10102
- Шаг 3. Инвертирование: 0000`11112.
См. также
<imagemap>: неверное или отсутствующее изображение |
Для улучшения этой статьи желательно?:
|
|
Напишите отзыв о статье "A-закон"
Отрывок, характеризующий A-закон
– Жизнь и так не оставляет в покое. Я бы рад ничего не делать, а вот, с одной стороны, дворянство здешнее удостоило меня чести избрания в предводители: я насилу отделался. Они не могли понять, что во мне нет того, что нужно, нет этой известной добродушной и озабоченной пошлости, которая нужна для этого. Потом вот этот дом, который надо было построить, чтобы иметь свой угол, где можно быть спокойным. Теперь ополчение.– Отчего вы не служите в армии?
– После Аустерлица! – мрачно сказал князь Андрей. – Нет; покорно благодарю, я дал себе слово, что служить в действующей русской армии я не буду. И не буду, ежели бы Бонапарте стоял тут, у Смоленска, угрожая Лысым Горам, и тогда бы я не стал служить в русской армии. Ну, так я тебе говорил, – успокоиваясь продолжал князь Андрей. – Теперь ополченье, отец главнокомандующим 3 го округа, и единственное средство мне избавиться от службы – быть при нем.
– Стало быть вы служите?
– Служу. – Он помолчал немного.
– Так зачем же вы служите?
– А вот зачем. Отец мой один из замечательнейших людей своего века. Но он становится стар, и он не то что жесток, но он слишком деятельного характера. Он страшен своей привычкой к неограниченной власти, и теперь этой властью, данной Государем главнокомандующим над ополчением. Ежели бы я два часа опоздал две недели тому назад, он бы повесил протоколиста в Юхнове, – сказал князь Андрей с улыбкой; – так я служу потому, что кроме меня никто не имеет влияния на отца, и я кое где спасу его от поступка, от которого бы он после мучился.
– А, ну так вот видите!
– Да, mais ce n'est pas comme vous l'entendez, [но это не так, как вы это понимаете,] – продолжал князь Андрей. – Я ни малейшего добра не желал и не желаю этому мерзавцу протоколисту, который украл какие то сапоги у ополченцев; я даже очень был бы доволен видеть его повешенным, но мне жалко отца, то есть опять себя же.
Князь Андрей всё более и более оживлялся. Глаза его лихорадочно блестели в то время, как он старался доказать Пьеру, что никогда в его поступке не было желания добра ближнему.