Cronyx Site
About Cronyx
Products Prices Contact information Search English 
English Russian  Russian
Software Payment
What's new
F. A. Q.
Partners
Vacancies
Forum
Site map


Форум cronyx.ru

Ответить  |  Зарегистрироваться  |  Поиск

Пояснения (+)ly  ::  2006-10-30 19:18

Двукратное копирование буферов в czaptel.c было скопировано из исходного кода одного из драйверов для digum-карточек. Разработчик, который скопировал этот код, не стал разбираться для чего это нужно.

На самом деле такое копирование (именно двукратное) нужно для сопоставления в zt_ec_chunk() принятого и переданного звука с учетом задержки данных в буферах телефонной платы (один буфер на приём и один на передачу). Если телефонная карта непосредственно подключена к месту порождения эха (hybrid-модулю), то задержка на "два буфера" помогает в точности сопоставить принятый звук с эхом от переданного ранее сигнала. В целом это позволяет использовать чуть более простые алгоритмы эхоподавления и иногда повышать качество их работы.

Если источник эха подключен не непосредственно к карте, то такая буферизация обычно не даёт результата, поскольку величина общей задержки сигнала между линейным интерфейсом карты и источником эха неизвестна. Т.е. неизвестна суммарная задержка сигнала при прохождении по пути память->адаптер->линия->телефон->линия->адаптер->память.

В случае с картами для E1 ситуация усугубляется, поскольку сигнал ещё будет идти через сеть E1, а затем через блоки коммутации АТС и ЦАП/АЦП. Поэтому для карт с E1-интерфейсами такая "буферизация через копирование", как правило, очень мало что даёт.

Задача вычисления задержки (фактически поиск максимальной корреляции) и соответствующая подстройка коэффициентов вычитающего фильтра - одна из главных задач любого алгоритма эхоподавления. Любой более-менее приличный алгоритм эхоподавления будет работать вне зависимости от наличия такой буферизации совершенно одинаково.

При использовании PCI-плат производства Кроникс задержка "внутри" платы зависит от модели устройства и конфигурации (например от qlen=#). Поэтому "буферизацию" мы посчитали излишней тратой ресурсов процессора. Тоже самое (отсутствие двойного копирования) вы можете увидеть во многих других драйверах, в том числе в комплекте zaptel.

В вашем случае объяснение "улучшения" будет примерно такое:
1) Если "внешняя" задержка по E1 очень мала (непосредственно соединение с АТС) и используется простейший эхоподавитель, то двойное копирования помогает алгоритму подавления быстрее и лучше подстроить вычитающий фильтр;
2) Возможно, что улучшение обусловлено только изменением ZT_CHUNKSIZE и свойствами выбранного эхо-подавителя;

Если вы проведете небольшие испытания и на самом деле окажется, что "буферизация копированием" реально помогает, то я реализую включение/выключение "буферизации" через sconfig.

--
С уважением, / Best regards,
Леонид Юрьев / Leo Yuriev
КБ Кроникс / Cronyx Engineering



taupci драйвера 6.0-rc10 zaptel
nikulin  ::  2006-10-30 18:09
   Пояснения (+)ly  ::  2006-10-30 19:18
      RE:Пояснения (+)nikulin  ::  2006-10-31 10:16
         Новая версия, просьба испытать (+)ly  ::  2006-10-31 18:37
            ec-delay=0caspy  ::  2006-11-03 19:48
               Попробовал (+)ly  ::  2006-11-04 02:17
            Испытание новой версииnikulin  ::  2006-11-02 17:33
               читал код, много думалedo  ::  2006-11-02 18:44
                  ZT_CHUNKSIZE (+)ly  ::  2006-11-02 19:04
                     zt_chunk = 16caspy  ::  2006-11-07 20:29
                        RE:zt_chunk = 16nikulin  ::  2006-11-08 13:42
                           неаcaspy  ::  2006-11-08 13:51
                              RE: неаnikulin  ::  2006-11-08 18:23
                                 recaspy  ::  2006-11-08 18:31
                                    Даnikulin  ::  2006-11-09 09:13
                                       libpriys  ::  2006-11-09 12:20
                     попробывал 2nikulin  ::  2006-11-03 14:28
                        попробывал 3nikulin  ::  2006-11-03 14:33
                           В целом достаточно странно, нужно разбираться (+)ly  ::  2006-11-03 14:58
                              систематическая проверкanikulin  ::  2006-11-03 17:28
                                 и мои 2 копейки про эхоcaspy  ::  2006-11-03 20:25
                                    заптел версия 1.4 даёт поставить zt_chanksize 16nikulin  ::  2006-11-04 17:57
                                       grepcaspy  ::  2006-11-04 21:23
                                          zaptel-1.4.0-beta2/wct4xxpnikulin  ::  2006-11-05 10:59
                              Попробуюnikulin  ::  2006-11-03 15:29
                                 Нет (+)ly  ::  2006-11-03 15:59
                     Попробовалnikulin  ::  2006-11-03 12:22
                        что до увеличения qlen на старте *ки,caspy  ::  2006-11-03 14:44
                           увеличение qlen (+)ly  ::  2006-11-03 15:20
                     я смотрю на mg2ec.h - вроде нормальноedo  ::  2006-11-02 20:29
               Я очень рад, что работает! (+)ly  ::  2006-11-02 18:18
                  kernel tuningcaspy  ::  2006-11-03 12:37
                     Это слишком большая тема (+)ly  ::  2006-11-03 15:18
                  конфигурация в /etc/cronyx.confcaspy  ::  2006-11-03 12:22
                     Ок, поправлю sh-скрипт (-)ly  ::  2006-11-03 14:34
         честно говоря не понимаю, что происходит при смене ZT_CHUNKSIZEedo  ::  2006-10-31 12:15
            Новая версия, просьба испытать (+)ly  ::  2006-10-31 18:38
               Новая версия (+)ys  ::  2006-11-01 17:22
                  Отлично! (+)ly  ::  2006-11-01 17:28
                     Опс.ys  ::  2006-11-02 14:42
                        А при каком ec-delay работает ? (-)ly  ::  2006-11-02 14:48
                           дело вроде в самом zaptelys  ::  2006-11-02 15:56
      по умолчанию zaptel давит 128 отсчетовedo  ::  2006-10-30 20:24
         Re: по умолчанию zaptel давит 128 отсчетовnikulin  ::  2006-10-31 10:21
            ???edo  ::  2006-10-31 11:11
               Re: ???nikulin  ::  2006-10-31 11:15
                  а как же оно тогда работает при ZT_CHUNKSIZE=8?edo  ::  2006-10-31 12:00
         OK (+)ly  ::  2006-10-31 00:49
            ZT_CHUNKSIZE и timingys  ::  2006-10-31 11:56

Copyright © 1996-2018 Cronyx
www-adm@cronyx.ru