СПОСОБ И УСТРОЙСТВО ДЛЯ УВЕЛИЧЕНИЯ ЭФФЕКТИВНОСТИ НАДЕЖНОГО СЖАТИЯ ЗАГОЛОВКА (RoHC) ПРИ ВСТРЕЧЕ С ПОДАВЛЕНИЕМ МОЛЧАНИЯ
METHOD AND DEVICE TO INCREASE EFFICIENCY OF ROBUST HEADER COMPRESSION (RoHC) WHEN COMING ACROSS SILENCE SUPPRESSION

Уровень техники
Притязание на приоритет
Настоящая заявка на патент притязает на приоритет предварительной заявки № 60/756658, озаглавленной “Способ и устройство для увеличения эффективности RoHC при встрече с подавлением молчания”, поданной 6 января 2006 г., права на которую принадлежат заявителю настоящего изобретения, и специально включенной в настоящее описание в качестве ссылки.
Область техники, к которой относится изобретение
Это раскрытие относится в целом к системам связи. Более конкретно примеры, раскрытые в настоящем описании, относятся к способам и системам для увеличения эффективности устройства сжатия надежного сжатия заголовка (RoHC) при встрече с подавлением молчания.
Уровень техники
Протокол Internet (IP) стал выбором транспортного протокола как для проводных, так и для беспроводных сетей и приводит к совмещению телекоммуникационных сетей и сетей передачи данных. Предприняты попытки, чтобы сжать заголовки протокола, однако проблема заключается в разработке эффективных и надежных схем сжатия заголовка.
Краткое описание чертежей
Фиг.1 иллюстрирует кадры и пакеты в системе связи.
Фиг.2 иллюстрирует пример сжатия заголовка.
Фиг.3 иллюстрирует пример системы связи.
Фиг.4 иллюстрирует некоторые компоненты аппаратного обеспечения и программного обеспечения BTS-RNC-PDSN.
Фиг.5 иллюстрирует некоторые компоненты аппаратного обеспечения и программного обеспечения терминала доступа.
Фиг.6 иллюстрирует последовательность пакетов в потоке пакетов.
Фиг.7А иллюстрирует последовательные пакеты речи.
Фиг.7В иллюстрирует сегмент речи, представленный с помощью шести последовательных пакетов.
Фиг.8 иллюстрирует подавление молчания в одном примере.
Фиг.9 иллюстрирует подавление молчания в другом примере.
Фиг.10 иллюстрирует изменения в TS_STRIDE в одном примере.
Фиг.11 иллюстрирует пример процесса, сконфигурированного с возможностью увеличения эффективности RoNC.
Фиг.12 иллюстрирует периоды активности разговора и молчания в AMR.
Фиг.13 иллюстрирует блок-схему последовательности этапов примера процесса, сконфигурированного с возможностью увеличения эффективности RoNC.
Фиг.14 иллюстрирует средство, соответствующее способу фиг.13.
Фиг.15 иллюстрирует блок-схему последовательности этапов другого примера процесса, сконфигурированного с возможностью увеличения эффективности RoNC.
Фиг.16 иллюстрирует средство, соответствующее способу фиг.15.
Подробное описание изобретения
Примеры, раскрытые в настоящем описании, относятся к способам и системам, для увеличения эффективности устройства сжатия надежного сжатия заголовка (RoNC). Эти примеры могут быть осуществлены в любой беспроводной и/или проводной системе связи, такой как сотовые сети, коммутируемые телефонные сети общего пользования (PSTN), беспроводный Internet, спутниковые сети, глобальные сети (WAN), беспроводные локальные сети (WLAN), сети VoIP, системы мультимедиа, основанные на IP, и т.д.
Во многих службах или приложениях, например, передача речи через IP (VoIP), видеотелефония, интерактивные игры, обмен сообщениями и т.д., данные формируют в пакеты и маршрутизируют через сеть. Как используемый в настоящем описании, “кадр” относится к части кадра данных, отформатированного для передачи в сети связи. Фиг.1 иллюстрирует несколько пакетов 102 и кадров 104. Кадр 104 может быть определенной продолжительности во времени, например, 20 мс, и может совпадать или может не совпадать с продолжительностью пакета 102. Каждый пакет посылают в место назначения в сети на основании назначенных адресов, обычно содержащихся в заголовке. Заголовок отмечает начало пакета, конечную метку пакета, а “полезная нагрузка” относится к части данных пакета. Пакет может иметь разные типы заголовков, такие как заголовки протокола Internet (IP), протокола дейтаграммы пользователя (UDP), транспортного протокола реального времени (RTP) и протокола управления передачей (TCP). В определенных сценариях полезная нагрузка пакета IP может быть сравнимого размера с заголовком или даже меньше, чем заголовок.
В наземных или проводных системах ограничения на полосу частот являются низкими, и данные могут передавать с помощью непрерывной посылки пакетов полного размера. Однако в беспроводных системах связи имеется ограниченная полоса частот и, следовательно, потребность беречь ее. Уменьшение непроизводительных потерь пакета может быть выполнено с помощью уменьшения заголовков пакета. Сжатие заголовка повышает качество, скорость и эффективность передачи в сети. Кроме того, с помощью сжатия заголовка уменьшают время интерактивного ответа, и становится возможным поддерживать больше пользователей в определенной полосе частот канала. Это, в свою очередь, дает в результате уменьшение затрат применения. Фиг.2 иллюстрирует пример сжатия заголовка в системе связи, осуществляющей речь. В этом примере несжатый заголовок добавляет до 40 байт непроизводительных потерь. При сжатии заголовка результирующие непроизводительные потери вместо этого равны 2-4 байта. Сжатие заголовка помогает сберечь необходимую полосу частот через сеть.
Фиг.3 иллюстрирует пример системы 300 связи, в которой могут быть осуществлены один или более способов, описанных в настоящей заявке. Первый терминал доступа (АТ) 301А включает в себя устройство 302 сжатия заголовка обратной линии связи (или линии связи терминал доступа-базовая станция). Первый терминал доступа 301А взаимодействует беспроводным способом через обратную линию связи (RL) с базовой станцией 304А и с системой приемопередатчика базовой станции/узлом обслуживания пакетных данных (BTS-RNC-PDSN) 306А в сети радиодоступа (RAN).
BTS-RNC-PDSN 306А включает в себя устройство 310 распаковки заголовка обратной линии связи, которое может выполнять один или более способов, описанных в настоящей заявке. BTS-RNC-PDSN 306А взаимодействует с узлом обслуживания пакетных данных/системой приемопередатчика базовой станции (PDSN-BTS) 306В через сеть 308 VoIP. PDSN-BTS 306В включает в себя устройство сжатия 312 заголовка прямой линии связи (или линии связи базовая станция-терминал доступа).
Базовая станция 304В и PDSN-BTS 306В могут взаимодействовать беспроводным способом через прямую линию связи со вторым терминалом 301В доступа. Второй терминал 301В доступа включает в себя устройство 314 распаковки заголовка прямой линии связи, которое может выполнять один или более способов, описанных в настоящей заявке. Вместо двух беспроводных терминалов 301А, 310В доступа один из терминалов доступа может быть проводным терминалом. Устройство 302 сжатия заголовка обратной линии связи и устройство 310 распаковки заголовка обратной линии связи представляют первую пару устройства сжатия-устройства распаковки. Устройство 312 сжатия заголовка прямой линии связи и устройство 314 распаковки заголовка прямой линии связи представляют вторую пару устройства сжатия-устройства распаковки.
Обратная линия связи и прямая линия связи могут использовать один или более протоколов связи, таких как множественный доступ с кодовым разделением (CDMA) 1х, CDMA 1x EV-DO (оптимизированное развитие данных), широкополосный CDMA (WCDMA), синхронизированное разделение времени (TD-SCDMA), глобальная система мобильной связи (GSM), ортогональное частотное уплотнение, системы, поддерживающие стандарты IEEE, такие как 802.11 (A, B, G), 802.16 и т.д.
“Терминал доступа”, описанный в настоящей заявке, может относиться к разным типам устройств, таким как проводной телефон, беспроводный телефон, сотовый телефон, портативный переносной компьютер, карта персонального компьютера (РС) беспроводной связи, персональный цифровой ассистент (PDA), внешний или внутренний модем и т.д. Терминал доступа может быть любым устройством данных, которое взаимодействует через беспроводный канал или через проводной канал, например, с использованием волоконно-оптических или коаксиальных кабелей. Терминал доступа может иметь разные названия, такие как устройство доступа, абонентское устройство, подвижная станция, подвижное устройство, подвижный блок, мобильный телефон, мобильное устройство, дистанционная станция, дистанционный терминал, дистанционное устройство, пользовательское устройство, пользовательская аппаратура, карманное устройство и т.д. Терминалы доступа могут быть подвижными или стационарными и могут быть распределены по всей системе 300 связи фиг.3. Терминалы доступа могут взаимодействовать с одной или более системами приемопередатчиков базовой станции (BTS), которые могут быть названы (или включают в себя) базовыми станциями, сетями доступа, пунктами доступа, узлами В или приемопередатчиками пула модема (МРТ).
Фиг.4 иллюстрирует пример некоторых компонентов аппаратного обеспечения и программного обеспечения BTS-RNC-PDSN 306A и/или PDSN-BTS 306B фиг.3. Один пример включает в себя процессор 400, интегральную схему прикладной ориентации (ASIC) 402, приемопередатчик 404 и память 406. Память 406 запоминает один или более верхних уровней 407, таких как прикладной уровень 408, транспортный уровень 410 и сетевой уровень 412. Прикладной уровень 408 обрабатывает заголовки транспортного протокола реального времени (RTP или RTCP). Транспортный уровень 410 обрабатывает заголовки протокола управления передачей (ТСР) и протокола дейтаграммы пользователя (UDP). Сетевой уровень 412 обрабатывает заголовки IP.
Память 406 также может запоминать устройство 312 сжатия надежного сжатия заголовка и устройство 310 распаковки надежного сжатия заголовка. Устройство 312 сжатия надежного сжатия заголовка может запоминать устройство 312А вычисления временной метки, а устройство 310 распаковки надежного сжатия заголовка может запоминать устройство 310А вычисления временной метки. Память 406 также может запоминать один или более нижних уровней 420, таких как уровень 414 управления доступом к среде (МАС) канального уровня, который может включать в себя подуровень протокола радиоканала (RLP). Нижние уровни 420 также могут включать в себя физический уровень 416.
Фиг.5 иллюстрирует некоторые компоненты аппаратного обеспечения и программного обеспечения терминалов 301А, 301В доступа фиг.3. Один пример включает в себя процессор 500, ASIC 502, приемопередатчик 504 и память 506. Память 506 может запоминать один или более верхних уровней 507, таких как прикладной уровень 508, транспортный уровень 510 и сетевой уровень 512. Прикладной уровень 508 может обрабатывать заголовки RTP. Транспортный уровень 510 может обрабатывать заголовки ТСР и UDP. Сетевой уровень 412 может обрабатывать заголовки IP.
Память 506 также может запоминать устройство 302 сжатия надежного сжатия заголовка и устройство 314 распаковки надежного сжатия заголовка. Устройство 302 сжатия надежного сжатия заголовка может запоминать устройство 302А вычисления временной метки, а устройство 314 распаковки надежного сжатия заголовка может запоминать устройство 314А вычисления временной метки. Память 506 также может запоминать один или более нижних уровней 520, таких как уровень 514 МАС канального уровня, который может включать в себя подуровень RLP. Нижний уровень 520 также может включать в себя физический уровень 516.
RoHC является схемой сжатия заголовка, которая эффективно сжимает заголовки RTP/UDP/IP. Надежное сжатие заголовка описано в запросе комментариев (RFC) 3095, озаглавленном “Надежное сжатие заголовка (ROHC): структура и четыре профиля: RTP, UDP, ESP и распакованный”, который является протоколом отслеживания стандартов Internet, распространенным рабочей группой по сетям сообщества Internet в июле 2001 г.
Обычно пакеты, передаваемые через линию связи, не зависят друг от друга, но совместно используют конкретные общие параметры, например, адреса источников, адреса пунктов назначения и т.д. Сжатие заголовка делают возможным при существенной избыточности между полями заголовка в одном и том же пакете или между последовательными пакетами, принадлежащими к одному и тому же потоку пакетов. “Поток пакетов” относится к последовательности пакетов, обычно сгруппированных вместе логически, например, в потоке аудиопакетов или потоке видеопакетов. Алгоритм RoHC использует общие параметры в потоке пакетов для того, чтобы сжимать заголовки пакетов при поддержании определенной информации состояния. Эту информацию состояния упоминают как “контекст”.
Пара устройства сжатия-устройства распаковки поддерживает контекст на каждой стороне каждого потока пакетов. Контекст для каждого потока пакетов идентифицируют с помощью одного и того же поля идентификатора контекста (CID) в устройстве сжатия и устройстве распаковки. Например, устройство 302 сжатия заголовка RL и устройство 310 распаковки заголовка RL на фиг.3, каждое может поддерживать контекст “CIDi” для конкретного речевого потока “VFi”. Контекст содержит информацию из предыдущих заголовков в потоке пакетов и другие возможные справочные величины для сжатия и распаковки. Данные, описывающие поток пакетов, такие как информация о том, как изменяется поле идентификатора IP и как увеличивается последовательный номер (SN) или временная метка (TS) внутреннего пакета, также содержатся в контексте. Для того чтобы обеспечить схему надежного сжатия заголовка, имеется необходимость в механизмах, чтобы исключить контекстную несовместимость и чтобы делать контексты совместимыми, когда они являются несовместимыми.
Первоначально устройство сжатия и устройство распаковки могут не иметь соглашения относительно сжатия и распаковки определенного потока пакетов. Устройство сжатия может посылать пакеты RoHC, имеющие статическую и динамическую информацию о потоке пакетов, в устройство распаковки, чтобы установить контекст. Когда оба поля, статическое и динамическое, установлены, устройство сжатия должно посылать только минимальную информацию, чтобы продвинуть регулярную последовательность сжатых полей заголовка. Устройство сжатия и устройство распаковки обновляют свои контексты после определенных событий.
Статические поля заголовка должны быть переданы только при установлении контекста, так как эти поля впоследствии остаются постоянными. Более сложные алгоритмы требуются, чтобы сжимать динамические аспекты поля заголовка. Динамическое поле заголовка может быть сжато или распаковано непосредственно с помощью алгоритма RoHC. Однако более эффективным может быть сжимать и распаковывать поле заголовка с помощью использования линейной функции других полей, такой как увеличение SN или TS. Это требует меньшего числа бит. С помощью посылки информации о статическом поле только первоначально и использования зависимостей и возможности предсказания для других полей размер заголовка может быть существенно уменьшен для большинства пакетов.
SN пакета RTP увеличивается на единицу для каждого переданного пакета и может быть использован приемником, чтобы восстанавливать последовательность пакетов и чтобы обнаруживать потерю пакета. TS может отражать момент выборки первого октета в пакете данных RTP. Момент выборки получают из таймера, который увеличивается равномерно и линейно во времени. В приложениях, которые обрабатывают речь, TS может быть увеличена на постоянную дельта, которая соответствует числу выборок в каждом речевом пакете. Например, входное устройство может принимать речевые пакеты, имеющие 160 периодов выборок, таким образом TS увеличивают на 160 для каждого пакета. Фиг.6 иллюстрирует последовательность пакетов в потоке с последовательными приращениями SN и TS, равными 160. Приращение TS является одним и тем же, т.е. 160, переносит ли пакет сегмент речи или представляет сегмент молчания. Это также справедливо, независимо от того, осуществлено ли подавление молчания или нет. Подавление молчания обсуждено более подробно в настоящем описании ниже.
Устройство сжатия RoHC оценивает приращение TS RTP между двумя последовательно сгенерированными пакетами. Когда пакеты имеют последовательные номера последовательности, это приращение упоминают как TS_STRIDE. Обычно TS_STRIDE между последовательными пакетами одного и того же типа является фиксированной величиной. Например, фиг.7А иллюстрирует приложение, в котором SN1,…, SN6 представляют пакеты речи, имеющие последовательные SNS 1,…,6. Как проиллюстрировано, TS_STRIDE между каждой парой пакетов является разностью TS между конкретным пакетом и предыдущим пакетом. Как проиллюстрировано, TS_STRIDE между двумя пакетами задано как TSj-TSi, где i и j - последовательные SNS. На фиг.7А TS_STRIDE = (TSj-TSi) = (TSk-TSj) = (TSl-TSk) и т.д. Знание этой фиксированной величины дает возможность устройству сжатия масштабировать TS RTP до сжатия. Таким образом, точное определение TS_STRIDE между пакетами необходимо для эффективного сжатия поля временной метки RTP.
Использование масштабированной TS RTP уменьшает непроизводительные потери заголовка, так как масштабирование дает в результате сжатие меньшей величины и, следовательно, меньшего числа бит. Например, заявитель рассматривает речь, переносимую через RTP/UDP/IP. В кодеке речи, создающем пакеты 20 мс, выбираемые с 8 kHz, TS RTP увеличивается на число выборок, содержащихся в 20 мс, или 8000*0,02 = 160 выборок. Сегмент речи, представленный с помощью шести последовательных пакетов, проиллюстрирован на фиг.7В. TS RTP увеличивается на 160 между последовательными пакетами, следовательно, TS RTP первого пакета равна 160, TS RTP второго пакета равна 320, TS RTP третьего пакета равна 480 и т.д. В настоящем описании устройство сжатия может использовать масштабированные величины TS RTP, равные 1, 2, 3 и т.д., вместо величин TS RTP, равных 160, 320, 480 и т.д. В последнем случае устройство сжатия не должно было бы кодировать изменение, равное 160, в то время как в предыдущем случае оно должно было бы кодировать изменение, равное 1, таким образом, используя меньшее число бит. В одном примере алгоритм RoHC может сжимать поле SN RTP, а затем использовать линейные зависимости от SN RTP в других полях изменения, таких как TS RTP.
В другом аспекте раскрытого изобретения. Кодирование наименьших значащих бит (LSB) может быть использовано, чтобы сжимать поля заголовка. При использовании кодирования LSB k наименьших значащих бит величины поля передают вместо всей величины поля, где k - положительное целое. Устройство распаковки принимает k бит и получает исходную величину с использованием ранее принятой величины в качестве указателя. Эта величина может быть упомянута как “v_ref”. Чтобы проиллюстрировать использование кодирования LSB, двоичное число 00001010 (соответствующее десятичному числу 10) содержит наибольшие значащие бит (MSB) 0000 и LSB 1010. Вместо передачи всех восьми бит исходной величины, четыре LSB 1010 могут быть переданы в принимающее устройство. Если успешно приняты, устройство распаковки получает исходную величину пакета с использованием v_ref. V_ref может быть запомнена в контексте. В одном примере v_ref представляет последнюю правильно распакованную величину пакета. При допущении успешной распаковки принятого заголовка контекст устройства распаковки обновляют в 00001010 и повторно генерируют исходный пакет. После успешной повторной генерации v_ref может быть обновлена в текущую правильно распакованную величину и запомнена. При допущении, что следующая величина 00001111 (десятичная величина 15) должна быть передана, четыре LSB 1111 могут быть переданы и, если успешно приняты, устройство распаковки обновляет контекст с помощью добавления принятой величины 1111 к MSB текущей величины контекста и проверки, находится ли сгенерированная величина в интервале интерпретирования. В этом примере текущая величина контекста равна 00001010, а MSB равны 0000. Устройство обновило бы свою величину контекста в 00001111 и сгенерировало первоначально переданную величину пакета.
При кодировании речи фоновый шум обычно передают совместно с речью. Если передачу речи выключают, также имеется выключение фонового шума. Неоднородности в передаче фонового шума могут быть смущающими для слушателя, который ожидает обратную связь с другой стороны линии связи. Обычно фоновый шум служит в качестве обратной связи. Во время интервала “молчания” (момент в полном дуплексном разговоре, когда, по меньшей мере, одна из сторон молчит) канал может передавать информацию фонового шума с использованием пакетов меньшего размера. Например, многие системы CDMA посылают непрерывный ряд одной восьмой части пакетов каждые 20 мс во время периода молчания, чтобы передавать фоновый шум. Для того чтобы сберечь полосу частот в системе с коммутацией пакетов, большинство пакетов, представляющих молчание, может быть удалено. Это делают без компромисса качества канала связи, и может быть упомянуто как подавление молчания.
В вокодерах, таких как усовершенствованный многоскоростной (AMR) кодек и усовершенствованный кодек с переменной скоростью (EVRC), схема сжатия данных включена для кодирования речи. В таких приложениях синтетический шум, подобный фоновому шуму на передающей стороне, генерируют на принимающей (RX) стороне. Когда речь не присутствует, синтетический шум оценивают на передающей стороне и передают на принимающую сторону с частыми интервалами. Это позволяет синтетическому шуму в приемнике адаптироваться к изменениям шума на передающей стороне. Например, в кодировании AMR во время периодов молчания оцененный фоновый шум кодируют в пакет, упоминаемый как пакет дескриптора молчания (SID). Параметры фонового шума, кодируемые в пакет SID, вычисляют для восьми последовательных пакетов, и пакет SID передают на сторону приемника каждый восьмой пакет. Фактически семь из каждых сгенерированных восьми пакетов SID удаляют в источнике. Таким образом, во время периодов молчания кодек AMR генерирует и передает пакеты SID каждые 8*20 = 160 мс. На стороне приемника генерацию фонового шума начинают или обновляют всякий раз, когда принимают действительный пакет SID.
В системе, осуществляющей подавление молчания, TS RTR может резко изменяться пропорционально продолжительности периода молчания. Во время подавления молчания, несмотря на то, что некоторые пакеты удаляют, TS RTR продолжает увеличиваться, в то время как SN RTR не увеличивается. Это проиллюстрировано на фиг.8, где пакет генерируют и назначают SN, равный 1, и он имеет TS, равную 160. Этот пакет может представлять сегмент речи. Затем три пакета удаляют в передатчике. Отброшенные пакеты могут быть одной восьмой частью пакетов, представляющих фоновый шум. В этой иллюстрации трем удаленным пакетам назначают TS 320, 480 и 640 по порядку. Им не назначают SN. На фиг.8, генерируют пятый пакет, представляющий сегмент активности разговора, следующий после периода молчания, и пятому пакету назначают SN, равный 2. Пятому пакету назначают TS, равную 800, так как приращение TS равно 160. В этой иллюстрации TS_STRIDE между первым принятым пакетом, SN = 1, и последним принятым пакетом, SN = 2, вычисляют как 800-160=640.
Обычно, когда TS_STRIDE является фиксированной величиной между последовательными пакетами, сжатую величину масштабированной TS RTP передают с помощью устройства сжатия в устройство распаковки, в котором ее распаковывают. При фиксированном TS_STRIDE требуется меньшее число бит, таких как в пакете UOR-0 или UOR-1, чтобы передать сжатые величины в устройство распаковки. Подробное описание форматов этих пакетов находится в RFC 3095. Эти пакеты обычно равны по длине от одного до трех байт (плюс два байта контрольной суммы UDP, если является применяемой) и содержит информацию SN, TS и CRC, которую используют, чтобы обновлять контекст схемы сжатия заголовка. Например, на фиг.9 допускают, что источник осуществляет подавление молчания. Пакеты SN1, SN2, SN3 и SN4 передают с TS = 160, 320, 480 и 960, соответственно. Заявитель допускает, что имеется 2 пакета молчания, в которых молчание подавлено между пакетами SN3 и SN4. Заявитель дополнительно допускает, что в устройстве сжатия TS каждого пакета сжимают с помощью TS_STRIDE = 160. Следовательно, первый пакет имеет масштабированную TS, равную 1, второй пакет масштабированную TS, равную 2, третий пакет масштабированную TS, равную 3, и четвертый пакет масштабированную TS, равную 6. В данном примере, используя кодирование LSB, после приема второго пакета SN2 алгоритм RoHC обновляет контекст устройства сжатия таким образом, чтобы представлять масштабированную величину, равную 2, как 0010. После приема третьего пакета SN3 контекст обновляют с помощью информации TS, а бит 0010 обновляют в 0011. В этом сценарии должны быть изменены только последние несколько бит. Таким образом, контекст может быть обновлен с помощью использования небольшого пакета, такого как пакет UOR-0 или UOR-1. Небольшой размер пакетов UOR-0 и UOR-1 делает возможным поддерживать эффективное использование полосы частот.
В сценарии, в котором величина TS_STRIDE изменяется, требуется пакет, больший, чем UOR-0 или UOR-1, чтобы передавать изменение TS_STRIDE. Например, может быть использован пакет UOR-2 ext 3, IR-DYN или IR. Эти пакеты равны по длине, по меньшей мере, 7 или 8 байт, и полоса частот становится заботой, особенно, когда требуется передавать эти пакеты множество раз (если изменение TS_STRIDE должно быть передано надежно, эти пакеты должны быть повторены несколько раз). Когда источник RTP, использующий переходы подавления молчания от молчания к речи (и речи в молчание), устройство сжатия RoHC может думать, что TS_STRIDE изменилось, заставляя его посылать обновленное TS_STRIDE. Для того чтобы передать это TS_STRIDE надежно, обновленное TS_STRIDE должно быть послано несколько раз. Например, на фиг.10 TS_STRIDE равно первой величине TS_STRIDEi во время первого сегмента речи, второй величине TS_STRIDEk во время периода молчания и первой величине TS_STRIDEi во второй период речи. Во время каждого изменения TS_STRIDE, например из TS_STRIDEi в TS_STRIDEk, устройство сжатия RoHC может обновлять свой контекст, и это требует использования большего числа бит, представляющих обновленную величину TS_STRIDE. В свою очередь, большее число пакетов UOR-2 ext 3, которые могут быть переданы много раз, используют, чтобы передавать измененное TS_STRIDE. Ссылаясь опять на фиг.9, имеется резкое увеличение TS_STRIDE между пакетами SN3 и SN4 вследствие подавления молчания. После приема пакета SN3 устройство сжатия может оценить TS_STRIDE как 160, в то время как после приема SN4 устройство сжатия может оценить TS_STRIDE как 480. Когда источник RTP возвращается в речи, устройство сжатия может опять оценить TS_STRIDE как 160. Каждый раз, когда TS_STRIDE изменяется, устройство сжатия должно посылать пакет UOR-2 ext TS_STRIDE 3 (или IR, или IR-DYN), чтобы передать это изменение в устройство распаковки.
В одном примере, для того чтобы преодолеть неэффективности, вызванные изменением величины TS_STRIDE между пакетами, устройство сжатия может не изменять свою величину TS_STRIDE до тех пор, пока оно не увидит новое TS_STRIDE, повторяющееся в “N” последовательных событиях. Иначе говоря, устройство сжатия может продолжать использовать свою ранее вычисленную величину TS_STRIDE до тех пор, пока последовательные величины предварительно определенного числа N новых вычисленных TS_STRIDE дают ту же самую величину. Этот пример проиллюстрирован на фиг.11.
На фиг.11 генерируют пакет SN1, TS=160. За ним следуют два пакета, которые затем удаляют в передатчике вследствие подавления молчания, а затем генерация четырех пакетов SN2, SN3, и SN4. Эти пакеты имеют величины TS 640, 800, 960 и 1120, соответственно. Как проиллюстрировано, последние три последовательные величины TS_STRIDE остаются постоянными при TS_STRIDE=160. Таким образом, устройство сжатия может использовать TS_STRIDE=160 для сжатия. В приведенной выше иллюстрации было использовано N=3, однако величина N может зависеть от приложения. Кроме того, даже если TS RTP резко увеличилось на 480 между пакетами SN3 и SN4, устройство сжатия не обновило эту оценку TS_STRIDE, так как приращение, равное 480, произошло только один раз. В других примерах устройство сжатия может использовать другие величины для N (например, 5) при определении правильной величины для TS_STRIDE.
Сценарий, использующий встречу TS_STRIDE N последовательных раз, может быть неоптимальным, когда несколько (больше, чем величина N) последовательных пакетов SID или 1/8 часть пакетов посылают во время молчания. Эти пакеты могут быть разделены с помощью одинакового количества времени в источнике и, следовательно, могут иметь одинаковое изменение TS RTP. Например, заявитель допускает, что TS_STRIDE выбирают как величину, встречающуюся в N последовательных событиях TS_STRIDE в приложении AMR. Как проиллюстрировано на фиг.12, восемь пакетов 706 продолжительностью 20 мс передают во время сегмента речи 702, и TS_STRIDE вычисляют как (8000 kHz*0,020 с) = 160. Во время молчания один пакет 708 SID передают для каждых восьми пакетов, сгенерированных во время молчания 704. TS_STRIDE во время молчания равно (8000 KHz*0,160 с) = 1280. На фиг.12 пакет SN9 имеет TS, равную (160)*(9) = 1440, пакет SN10 имеет TS, равную (160)*(10) = 1600, пакет SID SN11 имеет TS, равную (160)*(18) = 2880, пакет SID SN12 имеет TS, равную (160)*(26) = 4160 и т. д. Как проиллюстрировано, во время первого периода речи устройство сжатия видит величину TS_STRIDE = 160, в во время молчания TS_STRIDE обновляют в 160*8 = 1280. Таким образом, в сценарии, в котором N = 2, и подсчет N инициируют в пакете SN12, величина TS_STRIDE, происходящая в N событиях TS_STRIDE = 1280. Таким образом, устройство сжатия RoHC может оценить обновленную величину TS_STRIDE во время молчания и, следовательно, должен послать больший пакет.
На фиг.12 TS_STRIDE оценивают как 160 во время первого сегмента речи, в сжатый заголовок может быть передан в устройство распаковки посредством пакета UOR-0 или UOR-1. Однако во время молчания, когда TS_STRIDE обновляют в 1280, явное резкое увеличение TS_STRIDE требует использования большего пакета UOR-2 ext 3, IR-DYN или IR, чтобы передать сжатую величину в устройство сжатия. Как упомянуто ранее, эти заголовки требуют, по меньшей мере, 7 или 8 байт и, следовательно, занимают дополнительную полосу частот. Когда источник RTP переходит обратно к речи, кажется, что TS_STRIDE изменяется опять в 160*1 = 160, и устройство распаковки должно быть обновлено. Еще раз изменение передают в устройство сжатия через больший заголовок UOR-2 ext 3, IR или IR-DYN. Этот больший пакет должен быть послан множество раз, чтобы надежно передать изменение, давая в результате не вполне оптимальное использование полосы частот. Таким образом, когда RoHC сжимает пакеты, сгенерированные с помощью AMR, с использованием величины TS_STRIDE, определенной для N последовательных пакетов, тем не менее, можно видеть резкое увеличение TS_STRIDE между сегментами речи и молчания при активности разговора. Это дает в результате избыточный расход полосы частот. AMR обсужден в настоящем описании только для иллюстративных целей. Описанные концепции могут применяться к другим алгоритмам кодирования речи.
В одном примере вместо обновления TS_STRIDE, если одно и то же приращение TS RTP видят для N событий, может быть использована величина “MIN_TS_STRIDE”, где MIN_TS_STRIDE является наименьшей вычисленной величиной TS_STRIDE для потока. MIN_TS_STRIDE представляет TS_STRIDE, вычисленное, когда источник не выполняет подавление молчания, т.е. во время активностей речи. Например, для потока VoIP, использующего подавление молчания, MIN_TS_STRIDE соответствует изменению TS RTP, когда источник не выполняет подавления молчания. Это также соответствует фактическому TS_STRIDE, чтобы использовать для сжатия.
Фиг.13 является блок-схемой последовательности этапов примера процесса, сконфигурированного с возможностью улучшения эффективности RoHC. Как проиллюстрировано, на этапе 802 определяют, осуществляют ли RoHC в системе. Если не осуществляют, процесс заканчивается. Если RoHC осуществляют, пакет принимают на этапе 804. На этапе 806 определяют приращение TS RTP между принятым пакетом и ранее принятым пакетом. Эту величину упоминают как TS_INCREMENT. Можно допустить, что исходная величина TS_STRIDE была ранее использована для сжатия. На этапе 808, если определяют, что TS_INCREMENT для предыдущих N последовательных пакетов является одним и тем же и что эта величина отличается от текущей величины TS_STRIDE, процесс переходит на следующий этап 810. Если нет, процесс возвращается на этап 806. На этапе 810 TS_STRIDE обновляют из исходной величины в TS_INCREMENT.
Фиг.15 иллюстрирует блок-схему последовательности этапов другого примера процесса, сконфигурированного с возможностью улучшения эффективности RoHC. Как проиллюстрировано, на этапе 902 определяют, осуществляют ли RoHC в системе. Если не осуществляют, процесс заканчивается. Если RoHC осуществляют, пакет принимают на этапе 904. На этапе 906 определяют, меньше ли приращение TS RTP, чем минимальное TS_STRIDE, видимое для текущего потока пакетов. Если нет, процесс возвращается на этап 904, иначе процесс переходит на этап 908. На этапе 908 обновляют TS_STRIDE в приращение TS RTP (которое было меньше, чем минимальное TS_STRIDE для потока).
Способы фиг.13 и фиг.15, описанные выше, могут быть выполнены с помощью соответствующего средства плюс функциональные блоки, проиллюстрированные на фиг.14 и фиг.16. Иначе говоря, блоки 802-810, проиллюстрированные на фиг.13, соответствуют средству плюс функциональные блоки 1802-1810, проиллюстрированные на фиг.14. Блоки 902-908, проиллюстрированные на фиг.15, соответствуют средству плюс функциональные блоки 1902-1908, проиллюстрированные на фиг.16.
В другом аспекте, когда имеется изменение TS_STRIDE между сегментами речи и молчания, изменение не может быть правильно передано в устройство сжатия. “Повреждение контекста” происходит, когда контекст устройства распаковки не согласуется с контекстом устройства сжатия, и распаковка терпит неудачу, чтобы воспроизвести исходный заголовок. Эта ситуация может иметь место, когда пакеты потеряны или повреждены между устройством сжатия и устройством распаковки. Пакеты, которые не могут быть распакованы вследствие несовместимых контекстов, являются “поврежденными” вследствие повреждения контекста. RONC может использовать контроль циклическим избыточным кодом относительно исходного заголовка, чтобы обнаруживать неправильную распаковку. В сценарии, в котором устройство сжатия видит первую величину TS_STRIDE, в то время как устройство распаковки видит другую величину, может иметь место неудачный исход такого кода CRC.
Например, на фиг.12 заявитель предполагает, что TS_STRIDE равен 160 во время первого сегмента речи и 1280 во время сегмента молчания, как обсуждено ранее. Заявитель дополнительно предполагает, что вследствие плохих состояний канала все заголовки UOR-2 ext 3, которые были посланы из устройства сжатия, чтобы передать изменение TS_STRIDE, были отброшены. В результате, даже если величина TS_STRIDE изменилась с 160 на 1280 в устройстве сжатия, устройство распаковки не видит это изменение. Таким образом, когда устройство распаковки повторно генерирует следующий пакет, оно использует величину, представляющую TS_STRIDE = 160 вместо обновленной величины 1280. CRC завершается неуспешно, так как повторно сгенерированный пакет отличается от первоначально переданного пакета. В результате устройство распаковки может отбросить сгенерированный пакет.
Другим преимуществом алгоритмов, описанных в этом раскрытии, является то, что, так как TS_STRIDE не оценивают, чтобы изменить, когда источник RTP переходит от речи к молчанию и от молчания к речи, исключают любую возможную уязвимость, вносимую вследствие обновления TS_STRIDE, когда источник RTP переходит между молчанием и речью.
Примеры, описанные в настоящей заявке, предоставляют некоторые примеры улучшения эффективности RoHC, при встрече с подавлением молчания. Различные раскрытые примеры могут быть осуществлены в устройстве сжатия RoHC, например, связанном с AT, AN и другими устройствами, использующими сжатие заголовка. Различные устройства/модули и примеры, раскрытые в настоящей заявке, могут быть осуществлены аппаратно, программно, программно-аппаратно или при помощи их комбинации. В аппаратном осуществлении различные устройства могут быть осуществлены в одной или более интегральных схемах прикладной ориентации (ASIC), процессорах цифровых сигналов (DSP), устройствах процессоров цифровых сигналов (DSPD), вентильных матрицах, программируемых в условиях эксплуатации (FPGA), процессорах, микропроцессорах, контроллерах, микроконтроллерах, программируемых логических устройствах (PLD), других электронных устройствах или их комбинации. В программном осуществлении различные устройства могут быть осуществлены с помощью модулей (например, процедур, функций и т.д.), которые выполняют функции, описанные в настоящей заявке. Коды программного обеспечения могут быть запомнены в устройстве памяти и выполнены с помощью процессора (или процессорного устройства). Устройство памяти может быть осуществлено в процессоре или вне процессора, в последнем случае оно может быть соединено с процессором с возможностью взаимодействия через различные средства, известные в данной области техники.
Специалистам в данной области техники будет понятно, что информация и сигналы могут быть представлены с использованием любой из множества различных технологий и способов. Например, данные, инструкции, команды, информация, сигналы, бит, символы и элементарные сигналы, которые могут упоминаться во всем вышеприведенном описании, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами или любой их комбинацией.
Специалистам в данной области техники дополнительно будет понятно, что различные иллюстративные логические блоки, модули, схемы и этапы алгоритмов, описанные в связи с примерами, раскрытыми в настоящей заявке, могут быть осуществлены в виде электронного аппаратного обеспечения, компьютерного программного обеспечения или в комбинации того и другого. Для того чтобы понятно проиллюстрировать эту взаимозаменяемость аппаратного обеспечения и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы описаны выше в целом в понятиях их функционального назначения. Осуществлено ли такое функциональное назначение аппаратно или программно, зависит от конкретного применения и ограничений проектирования, наложенных на всю систему. Опытные изобретатели могут осуществить описанное функциональное назначение различными способами для каждого конкретного приложения, но решения такого осуществления не должны интерпретироваться как вызывающие выход за рамки объема настоящего изобретения.
Различные иллюстративные логические блоки, модули и схемы, описанные в связи с примерами, раскрытыми в настоящей заявке, могут быть осуществлены или выполнены с помощью процессора общего назначения, процессора цифровых сигналов (DSP), интегральной схемы прикладной ориентации (ASIC), вентильной матрицы, программируемой в условиях эксплуатации (FPGA) или другого программируемого логического устройства, дискретной логической схемы или транзисторной логики, дискретных компонентов аппаратного обеспечения или любой их комбинации, предназначенной для выполнения функций, описанных в настоящей заявке. Процессор общего назначения может быть микропроцессором, но альтернативно процессор может быть любым традиционным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор также может быть осуществлен как комбинация вычислительных устройств, например комбинация DSP и микропроцессора, множество микропроцессоров, один или более микропроцессоров совместно с ядром DSP или любая другая такая конфигурация.
Этапы способа или алгоритма, описанного в связи с примерами, раскрытыми в настоящей заявке, могут быть осуществлены непосредственно в аппаратном обеспечении, в модуле программного обеспечения, выполняемом процессором, или в комбинации того и другого. Модуль программного обеспечения может находиться в памяти произвольного доступа (RAM), флэш-памяти, памяти, доступной только по чтению (ROM), электрически программируемой ROM (EPROM), электрически стираемой программируемой ROM (EEPROM), в регистрах, на жестком диске, сменном диске, CD-ROM или любом другом виде запоминающего носителя, известного в данной области техники. Примерный запоминающий носитель соединен с процессором таким образом, что процессор может считывать информацию из запоминающего носителя и записывать информацию на него. В качестве альтернативы, запоминающий носитель может быть единым целым с процессором. Процессор и запоминающий носитель могут находиться в ASIC. ASIC может находиться в AT. В качестве альтернативы, процессор и запоминающий носитель могут находиться в дискретных компонентах в AT.
Предыдущее описание раскрытых примеров предоставлено для того, чтобы дать возможность любому специалисту в данной области техники изготовить или использовать настоящее изобретение. Различные модификации в этих примерах будут без труда понятны специалистам в данной области техники, а основные принципы, определенные в настоящей заявке, могут быть применены к примерам, не выходя за рамки сущности и объема изобретения. Следовательно, не предполагается, что настоящее изобретение ограничено примерами, изображенными в настоящей заявке, а должно соответствовать самым широким рамкам, согласующимся с принципами и новыми признаками, раскрытыми в настоящей заявке.