Алгоритм μ-law (иногда пишется как mu -law , часто сокращается как u-law ) — это алгоритм компандирования , в основном используемый в 8-битных цифровых телекоммуникационных системах PCM в Северной Америке и Японии . Это один из двух алгоритмов компандирования в стандарте G.711 от ITU-T , другой — похожий A-law . A-law используется в регионах, где цифровые телекоммуникационные сигналы передаются по каналам E-1, например, в Европе.
Термины PCMU , G711u или G711MU используются для G711 μ-закона. [1]
Алгоритмы компандирования уменьшают динамический диапазон аудиосигнала . В аналоговых системах это может увеличить отношение сигнал/шум (SNR), достигаемое во время передачи; в цифровой области это может уменьшить ошибку квантования (следовательно, увеличивая отношение сигнал/шум квантования). Эти увеличения SNR можно обменять на сокращение полосы пропускания для эквивалентного SNR.
За счет снижения пикового SNR можно математически показать, что нелинейное квантование μ-закона эффективно увеличивает динамический диапазон на 33 дБ или 5+1 ⁄ 2 бита по сравнению с линейно-квантованным сигналом, следовательно, 13,5 бит (что округляется до 14 бит) — это наибольшее разрешение, необходимое для сжатия входного цифрового сигнала для 8-битного μ-закона. [2]
Алгоритм μ-закона может быть описан в аналоговой форме и в квантованной цифровой форме.
Для заданного входного значения x уравнение для кодирования по закону μ имеет вид [3]
где μ = 255 в североамериканских и японских стандартах, а sgn( x ) — это функция знака . Диапазон этой функции составляет от −1 до 1.
Расширение закона μ затем задается обратным уравнением: [3]
Дискретная форма определена в Рекомендации МСЭ-Т G.711 . [4]
G.711 неясно, как кодировать значения на границе диапазона (например, кодирует ли +31 0xEF или 0xF0). [ необходима цитата ] Однако G.191 предоставляет пример кода на языке C для кодера с μ-законом. [5] Разница между положительными и отрицательными диапазонами, например, отрицательный диапазон, соответствующий от +30 до +1, составляет от −31 до −2. Это объясняется использованием дополнения до 1 (простая инверсия битов) вместо дополнения до 2 для преобразования отрицательного значения в положительное во время кодирования.
Алгоритм μ-закона может быть реализован несколькими способами:
Кодирование по закону μ используется, поскольку речь имеет широкий динамический диапазон . При аналоговой передаче сигнала в присутствии относительно постоянного фонового шума теряются более мелкие детали. Учитывая, что точность деталей в любом случае снижается, и предполагая, что сигнал должен восприниматься человеком как звук, можно воспользоваться тем фактом, что воспринимаемый уровень акустической интенсивности или громкости является логарифмическим, сжав сигнал с помощью операционного усилителя с логарифмической характеристикой ( закон Вебера-Фехнера ). В телекоммуникационных цепях большая часть шума вводится в линии, поэтому после компрессора предполагаемый сигнал воспринимается значительно громче статического по сравнению с несжатым источником. Это стало общепринятым решением, и поэтому до повсеместного использования цифровых технологий была разработана спецификация закона μ для определения совместимого стандарта.
Этот уже существующий алгоритм имел эффект значительного снижения количества битов, необходимых для кодирования узнаваемого человеческого голоса в цифровых системах. Образец мог быть эффективно закодирован с использованием μ-закона всего за 8 бит, что удобно соответствовало размеру символа большинства обычных компьютеров.
Кодирование по μ-закону эффективно сокращает динамический диапазон сигнала, тем самым увеличивая эффективность кодирования и одновременно смещая сигнал таким образом, что в результате получается отношение сигнал/ искажение , превышающее то, которое получается при линейном кодировании для заданного числа бит.
Алгоритм μ-law также используется в формате .au , который восходит по крайней мере к SPARCstation 1 от Sun Microsystems как собственный метод, используемый интерфейсом /dev/audio, широко используемым как фактический стандарт для звука в системах Unix. Формат au также используется в различных распространенных аудио API, таких как классы в пакете sun.audio Java в Java 1.1 и в некоторых методах C# .
Этот график иллюстрирует, как μ-закон концентрирует выборку в меньших (более мягких) значениях. Горизонтальная ось представляет значения байтов 0-255, а вертикальная ось — 16-битное линейное декодированное значение кодирования μ-закона.
Алгоритм μ-law обеспечивает немного больший динамический диапазон, чем A-law, за счет худших пропорциональных искажений для слабых сигналов. По соглашению, A-law используется для международного соединения, если хотя бы одна страна его использует.
В этой статье использованы материалы из общедоступного Федерального стандарта 1037C. Администрация общих служб . Архивировано из оригинала 22 января 2022 г.