реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Алгоритмы для борьбы с "джиттером" в VoIP
Kluwert
сообщение Oct 14 2017, 21:19
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 239
Регистрация: 15-11-09
Из: Санкт-Петербург
Пользователь №: 53 639



Коллеги! А не подскажет кто простые алгроитмы борьбы с т.н. "джиттером" при пакетной передачи голоса. Везде пишут про буферы длиной аж в 1-2 сек. Но, если идёт двусторонняя связь и на стороне удалённого абонента не достаточно эффективно давится эхо, то с задержкой больше где-то 500мс говорить становится не возможно. Нужны алгоритмы, не требующие такой задержки, но не дающие, с одной стороны "щелчков" при запаздывании/пропадании очередного пакета, а, с другой стороны, не накапливающие задержку из-за разбегания кварцев.
Go to the top of the page
 
+Quote Post
andyp
сообщение Oct 15 2017, 20:27
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(Kluwert @ Oct 15 2017, 00:19) *
Коллеги! А не подскажет кто простые алгроитмы борьбы с т.н. "джиттером" при пакетной передачи голоса. Везде пишут про буферы длиной аж в 1-2 сек. Но, если идёт двусторонняя связь и на стороне удалённого абонента не достаточно эффективно давится эхо, то с задержкой больше где-то 500мс говорить становится не возможно. Нужны алгоритмы, не требующие такой задержки, но не дающие, с одной стороны "щелчков" при запаздывании/пропадании очередного пакета, а, с другой стороны, не накапливающие задержку из-за разбегания кварцев.


На самом деле подавление эха где-то до 150 ms задержки нормально работает. Большие задержки нужны чтобы с тем, что пакеты на источник приходят не в том порядке, в каком были посланы бороться (reordering). А с джиттером адаптивными методами борются - адаптивно подстраивают глубину буфера под трафик, оценивая параметры распределения количества пакетов в буфере. Правда, сначала свой "кварц" подтягивают под среднюю скорость поступления отсчетов из сети (ну или еще как компенсируют расхождение тактовых частот приемника и передатчика - можно повторять-вырезать кусочки сигнала, можно ресамплинг с управляемым коэффициентом передискретизации), а уже потом минимизируют глубину jitter buffer. Эти технологии в TDMoverIP используются. Там и можно почитать. Если всё это в своей сети предполагается использовать, то jitter можно заранее наперед оценить.
Go to the top of the page
 
+Quote Post
Kluwert
сообщение Oct 24 2017, 08:38
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 239
Регистрация: 15-11-09
Из: Санкт-Петербург
Пользователь №: 53 639



Спасибо за ответ! Но вопрос ещё такой, а как быть, если пакет либо вообще не пришёл, либо очень сильно запоздал. Либо, кстати, что делать, если вообще пакеты перестали поступать. Если ничего не делать, что в звуковом потоке слышны отчётливые и неприятные для слуха "щелчки". Вот как их грамотно "замаскировать"?
Go to the top of the page
 
+Quote Post
andyp
сообщение Oct 24 2017, 10:18
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(Kluwert @ Oct 24 2017, 11:38) *
Спасибо за ответ! Но вопрос ещё такой, а как быть, если пакет либо вообще не пришёл, либо очень сильно запоздал.


У меня было фактически скользящее окно sequence numbers, которые мы принимаем в данный момент. Пакеты с номерами вне окна просто отбрасываются. Размер окна определяется допустимой задержкой.

Цитата
Либо, кстати, что делать, если вообще пакеты перестали поступать. Если ничего не делать, что в звуковом потоке слышны отчётливые и неприятные для слуха "щелчки". Вот как их грамотно "замаскировать"?


Я просто предыдущий пакет повторял чтобы меньше хрюкало. У меня по 48 8 kHz отсчетов в пакете передавалось (пакеты по 48 байт 64 kbps аудио с логарифмической компрессией).

Если потеряно несколько пакетов - начинал подавать нули на выход. Полезно вести счетчики отброшенных по seq number пакетов - если их становится все больше, то это знак того, что надо увеличить буффер.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th June 2025 - 16:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016