Кодування форми сигналу
Технологія VoIP >> Розділ 3. Передача мови по IP-мережі
[ << 3.2 Принципи кодування мови ] [ 3.2.2 Кодери вихідної інформації (вокодер) та гібридні алгоритми >> ]
3.2.1 Кодування форми сигналу
Імпульсно-кодова модуляція, по суті, і являє собою схему кодування форми сигналу. Однак нас цікавлять більш складні алгоритми, що дозволяють знизити вимоги до смуги пропускання.
Розглянуті методи кодування форми сигналу використовують ту обставину, що між випадковими значеннями кількох наступних підряд відліків існує деяка залежність. Простіше кажучи, значення сусідніх відліків зазвичай мало відрізняються одне від іншого. Це дозволяє з досить високою точністю передбачити значення будь-якого відліку на основі значень декількох попередніх йому відліків.
При побудові алгоритмів кодування названа закономірність використовується двома способами. По-перше, є можливість змінювати параметри квантування залежно від характеру сигналу. У цьому випадку крок квантування може змінюватися, що дозволяє до певної міри згладити протиріччя між зменшенням числа бітів, необхідних для кодування величини відліку при збільшенні кроку квантування, і звуженням динамічного діапазону кодера, неминучим без адаптації (про яку мова піде нижче). Деякі алгоритми передбачають зміну параметрів квантування приблизно в рамках вимовних складів, а деякі змінюють крок квантування на основі аналізу статистичних даних про амплітуду сигналу, отриманих за відносно короткий проміжок часу.
По-друге, існує підхід, званий диференціальним кодуванням або лінійним передбаченням. Замість того, щоб кодувати вхідний сигнал безпосередньо, кодують різниця між вхідним сигналом і «передвіщеної» величиною, на основі декількох попередніх значень сигналу.
Якщо відліки вхідного сигналу позначити як y (i), то передбачене значення у момент часу i представляє собою лінійну комбінацію декількох р попередніх відліків:
y (i) = a, y (i-1) a;, y (i-2) ... apy (ip) де множники а, називаються коефіцієнтами передбачення.
Різниця e (i) = y (i)-y (i) має менший динамічний діапазон і може кодуватися меншим числом бітів, що дозволяє знизити вимоги до смуги пропускання.
Описаний метод називається лінійним передбаченням, так як він використовує тільки лінійні функції попередніх відліків. Коефіцієнти передбачення вибираються так, щоб мінімізувати середньоквадратичне значення помилки передбачення e (i), при цьому значення коефіцієнтів змінюються, в середньому, кожні 10-25 мс.
Найпростішим (і представляє сьогодні, швидше, історичний інтерес) реалізацією останнього підходу є так звана дельта-модуляція (ДМ), алгоритм якої передбачає кодування різниці між сусідніми відліками сигналу тільки одним інформаційним бітом, забезпечуючи передачу, по суті, тільки знаку різниці.
Найбільш досконалим алгоритмом, побудованим на описаних вище принципах, є алгоритм адаптивної диференціальної імпульсно-кодової модуляції (АДІКМ), запропонований ITU-T в рекомендації G.726. Алгоритм передбачає формування сигналу помилки передбачення і його подальше адаптивне квантування. Існує версія цього алгоритму, в якій інформаційні біти вихідного цифрового потоку організовані по ієрархічній схемі, що дозволяє відкидати найменш значущу інформацію, не повідомляючи про це кодер, і отримувати потік меншій швидкості за рахунок деякого погіршення якості. Документ G.726 специфікує кодування при швидкостях 40, 32, 24 і 16 Кбіт / с, що відповідає передачі 5, 4, 3 або 2 бітів на відлік. Якість мови, що передається з використанням АДІКМ G.726 при швидкості 32 Кбіт / с відповідає якості мовлення, забезпечуваному алгоритмом кодування G.711.
При досить хороших характеристиках алгоритму, АДІКМ практично не застосовується для передачі мови по мережах з комутацією пакетів, так як цей алгоритм дуже чутливий до втрат цілих блоків відліків, що відбуваються при втратах пакетів у мережі. У таких випадках порушується синхронізація кодера і декодера, що призводить до катастрофічного погіршення якості відтворення мови навіть при малій ймовірності втрат.
[ << 3.2 Принципи кодування мови ] [ 3.2.2 Кодери вихідної інформації (вокодер) та гібридні алгоритми >> ]
--Козінцев Олексій 36 гр. 14:43, 16 листопада 2010 (EET)