При кодировании информации без потерь, сжатие данных не приводит к потере информации, а следовательно, декодированный аудиофайл абсолютно идентичен оригиналу.
Среди методов сжатия можно отметить следующие — энтропийное сжатие, словарные методы, статистические методы. Каждый метод хорош для определенного вида данных и включает в себя ряд алгоритмов.
- Энтропийное сжатие: Алгоритм Хаффмана, Адаптивный алгоритм Хаффмана, Арифметическое кодирование
- Словарные методы: RLE, Deflate, LZ
- Статистические модели алгоритмов для текста включают: Преобразование Барроуза — Уилера, LZ77, ZW.
Данные алгоритмы используются в работе Lossless-кодеков Lossless - кодеки, которые делают сжатие аудио потока без потери качества. К Lossless - кодекам относятся FLAC, WavPack, TAK, Monkey's Audio, OptimFROG, ALAC, WMA, Shorten, LA, TTA, LPAC, MPEG-4 ALS, MPEG-4 SLS, Real Lossless и т.д
Преобразование звука μ-Law и A-Law
Законы M-Law и A-Law позволяют восьми- разрядные измерения представлять в том же диапазоне, что и линейные 12-зарядные. Эти законы описаны в международном стандарте G.711 кодирования телефонии ITU.
Мю-закон (μ-закон) в телекоммуникациях — алгоритм аналогового сжатия, используемый в системах цифровой связи Северной Америки и Японии для модификации динамического диапазона аналогового речевого сигнала до оцифровки. Он подобен алгоритму A-закона, используемому в Европе. Для сигнала x μ-закон записывается следующим образом:
• где μ = 255 (8 бит) в стандартах Северной Америки и Японии.
А-закон — алгоритм сжатия с потерей информации, применяется для сжатия звуковых данных.
Принцип кодирования схож с кодированием чисел с плавающей запятой. Каждый семпл кодируется в 8-битное поле. Старший бит — бит знака, следующие 3 бита — беззнаковая экспонента, последние 4 — мантисса. Таким образом из используемых 16 бит, только 12 бит содержат значащую информацию, а 4 бита из 16 иногда отбрасываются.
Шаг 1 Если число отрицательно, оно обращается, при этом принимается, что s = 0, иначе s = 1.
Шаг 2 16-битное число преобразуется в 8-битное в соответствии со следующей таблицей. Для наглядности полубайты — нибблы — разделены знаком обратного апострофа(`); s — знаковый бит; звёздочками показаны биты, теряющиеся при сжатии.
Шаг 3 Биты инвертируются через один, начиная с самого правого (то есть с 8битным числом проделывается операция XOR 0x55).