Область техники
Настоящее изобретение относится к способу и устройству для сжатия поля заголовка в пакете данных. Более конкретно, настоящее изобретение относится к способу и устройству для сжатия поля заголовка пакета данных с использованием схемы, основанной на значении таймера и опорной отметки.
Для протокола Internet (IP), основанного на передаче мультимедийных данных в реальном времени, протокол передачи данных в реальном времени (ППДРВ) главным образом используется наверху протокола дейтаграммы пользователя (ПДП/IP). ППДРВ описан подробно в документе RFC 1889. Размер объединенных заголовков IP/ПДП/ППДРВ равен, по меньшей мере, 40 байт для IPv4 и, по меньшей мере, 60 байт для IPv6. Издержки в 40-60 байт на пакет могут считаться большими в системах (например, таких, как сотовые сети), где спектральная эффективность является главной заботой. Следовательно, существует необходимость в подходящем механизме сжатия заголовка IP/ПДП/ППДРВ. Современная схема сжатия заголовка описана в документе RFC 2508, которая может сжимать заголовок IP/ПДП/ППДРВ 40/60 байт до 2 или 4 байт для двухточечных линий связи. Существующие алгоритмы сжатия заголовка основаны на наблюдении, что большинство полей заголовков пакета IP остаются постоянными в потоке пакетов в течение длительности сеанса. Следовательно, возможно сжать информацию заголовка с помощью установления состояния сжатия (полной информации заголовка) в декомпрессоре и просто с помощью переноса минимального количества информации заголовка из компрессора в декомпрессор.
Документ предложения RFC 2508 основан на идее, что большую часть времени поля ППДРВ, которые изменяются от одного пакета к следующему, такие как отметка ППДРВ времени, могут быть предсказаны с помощью линейной экстраполяции. По существу, единственной информацией, которая должна посылаться, является порядковый номер, используемый для обнаружения ошибок и потерь пакета (а также ИД контекста). Когда отправитель определяет, что линейная экстраполяция не может быть применена к текущему пакету, посылается информация разности первого порядка относительно непосредственно предшествующего пакета. Для того чтобы инициировать сеанс, посылается полный заголовок. Кроме того, когда получатель определяет, что имеется потеря пакета (что обнаруживается при увеличении порядкового номера более чем на 1), получатель явно запросит отправителя передать полный заголовок для того, чтобы дать возможность повторной синхронизации.
Однако сжатие заголовка, определенное в RFC 2508, не очень подходит для определенных окружений (таких как сотовые или радиоприменения), где полоса частот пользуется большим спросом и ошибки являются распространенными. В схеме сжатия заголовка согласно RFC 2508 предполагается, что временная метка ППДРВ изменяется большую часть времени линейно увеличивающему закону. Когда заголовок удовлетворяет закону, по существу, только короткий порядковый номер требуется в сжатом заголовке. Когда заголовок не удовлетворяет закону, разность между временными метками ППДРВ текущего заголовка и предыдущего заголовка посылается в сжатом заголовке. Дополнительная оптимизация возможна с помощью использования таблицы кодирования. Этот подход имеет три недостатка. Первым недостатком является то, что подход не устойчив к ошибкам, так как потеря предыдущего заголовка сделает недействительным распаковку текущего заголовка. Вторым недостатком является то, что разности или "скачки" временных меток ППДРВ могут быть очень большими, таким образом переполняя таблицу кодирования. Например, при передаче речи такие большие разности могут быть вызваны интервалом молчания. Третьим недостатком является то, что величина результирующей закодированной разности является переменной, что делает трудным предсказание и управление выделяемой полосой частот.
Следовательно, существует необходимость в схеме сжатия заголовка, которая может приспособляться к произвольному скачку величины поля (например, величине временной метки ППДРВ), дает более единообразный или постоянный размер и более устойчива к ошибкам.
Сущность изобретения
В соответствии с вариантом осуществления настоящего изобретения предоставляется основанный на значении таймера способ сжатия заголовка. Источник ППДРВ генерирует поле заголовка, такое как временная метка ППДРВ. Временная метка посылается через сеть в компрессор (блок сжатия). В компрессоре используется функциональный блок уменьшения "дрожания" (временного дрожания) (ФУД) для того, чтобы определить, является ли дрожание принятой временной метки (заголовка) чрезмерным. Если дрожание является чрезмерным, пакет отбрасывается. Иначе компрессор вычисляет сжатое поле заголовка (сжатую временную метку) на основании временной метки ППДРВ и начального значения временной метки. Сжатая временная метка представляет дрожание, которое вычисляется как влияние, которое сеть между источником и декомпрессором оказывает на передачу пакетов. Вычисленное дрожание является суммой значения дрожания сети, представляющего влияние, которое сеть между источником и компрессором оказывает на передачу пакетов, и значения радиодрожания, представляющего влияние, которое сеть между компрессором и декомпрессором оказывает на передачу пакетов. Следует заметить, что понятие "сеть", используемое в настоящем описании, является широким понятием, которое охватывает, например, линии радиосвязи в радиотелекоммуникационной сети. Пакет ППДРВ, включающий в себя сжатую временную метку, затем передается через линию связи или сеть в декомпрессор.
Декомпрессор распаковывает сжатую временную метку с помощью первого вычисления оценки или аппроксимации временной метки на основании текущего значения таймера, расположенного в терминале (т.е. на основании полного времени). Аппроксимация временной метки затем улучшается или корректируется на основании сжатой временной метки, предоставленной в заголовке пакета. Таким образом, временная метка для текущего пакета (заголовка) регенерируется на основании локального таймера и сжатой временной метки, предоставленной в текущем заголовке. Пакет и регенерированная временная метка затем предоставляются в конечную точку ППДРВ для обработки.
Основанная на значении таймера схема настоящего изобретения имеет несколько преимуществ. Понятие "основанная на значении таймера схема", используемое в настоящем описании, включает в себя основанную на значении таймера схему, использующую сжатую временную метку, и схему, основанную на значении таймера и опорной отметки, как раскрыто в настоящем описании. Размер сжатой временной метки (или другого поля заголовка) является постоянным и малым. Кроме того, размер не изменяется в зависимости от длины интервала молчания. Никакая синхронизация не требуется между таймером, работающим в ППДРВ (генерированием временной метки), и таймером, работающим в декомпрессоре. Также этот способ является устойчивым к ошибкам, так как частичная информация временной метки в сжатом заголовке является самодостаточной и только требует объединения со значением таймера декомпрессора, чтобы выдать значение полной временной метки ППДРВ. Потеря или искажение заголовка не будет делать недействительным следующие сжатые заголовки.
Второй вариант осуществления настоящего изобретения предоставляет схему вырезания заголовка, в которой заголовок (например, включающий в себя временную метку ППДРВ) вырезается или удаляется из пакета ППДРВ перед передачей. Устройство вырезания заголовка и генератор заголовка соединены посредством линии связи, подобной соединению (например, линия связи или виртуальная линия связи) или, по существу, каналу постоянной скорости передачи разрядов. После инициализации устройство вырезания заголовка вырезает или удаляет заголовок (включая удаление временной метки и порядкового номера) из каждого пакета, а затем передает пакеты без заголовков в регенератор заголовка. Для того, чтобы исключить дрожание пакета в устройстве вырезания заголовка, пакеты могут передаваться в интервале времени в соответствии с временной меткой (ВМ) ППДРВ. Следовательно, в этом варианте осуществления временная метка явно не предоставляется в пакете ППДРВ (даже сжатая временная метка). Вместо этого информация синхронизации неявно предоставляется в регенератор заголовка на основании канала, по существу, постоянной скорости передачи разрядов между устройством вырезания заголовка и регенератором. Канал, по существу, постоянной скорости передачи разрядов может быть обеспечен рядом различных способов.
В этом втором варианте осуществления после того, как происходит инициализация (например, предоставление начального порядкового номера и временной метки в регенератор заголовка), регенератор заголовка может регенерировать временные метки для последовательных пакетов с помощью увеличения локального счетчика временной метки на шаг_по_индексу_ВМ каждые Т мсек и регенерировать порядковые номера пакетов с помощью увеличения локального счетчика ПН на "1" во время каждой длительности пакета. Эти поля могут регенерироваться на основании только локального счетчика или счетчика благодаря каналу, по существу, постоянной скорости передачи разрядов, обеспеченному между устройством вырезания заголовка и регенератором заголовка, в который не введено дрожание пакета. Поэтому после инициализации эти поля заголовков могут быть регенерированы в регенераторе заголовка со ссылкой только на локальный тактовый генератор.
Однако могут иметь место одно или более событий нарушения непрерывности (например, изменение размера пакета или величины Шаг_по_индексу_ВМ", нелинейный сдвиг временной метки и т.д.), которые, если не решаются, могли бы, вероятно, сделать недействительным подход вырезания заголовка, который полагаться только на значение локального таймера или тактового генератора для регенерации поля. Строка заголовка представляет последовательность заголовков пакетов, имеющих известные и предсказуемые поля. Переход от одной последовательности к другой может быть вызван любым из нескольких событий нарушения непрерывности. Когда это происходит, устройство вырезания заголовка идентифицирует событие нарушения непрерывности и посылает обновленную информацию заголовка относительно события в регенератор заголовка для того, чтобы дать возможность продолжать регенерацию временной метки и порядкового номера. Аналогичный способ предоставления обновленной информации заголовка может быть использован также, когда происходит передача обслуживания.
Краткое описание чертежей
Настоящее изобретение будет более понятным из рассмотрения ниже следующего подробного описания совместно с сопровождающими чертежами, на которых:
Фиг.1 - блок-схема, иллюстрирующая систему в соответствии с примерным осуществлением настоящего изобретения;
Фиг.2 - схема, иллюстрирующая формат несжатого пакета ППДРВ в соответствии с примерным осуществлением настоящего изобретения;
Фиг.3 - схема, иллюстрирующая формат несжатого заголовка ППДРВ в соответствии с примерным осуществлением настоящего изобретения;
Фиг.4 - схема, иллюстрирующая формат сжатого заголовка ППДРВ в соответствии с примерным осуществлением настоящего изобретения;
Фиг.5 - схема, иллюстрирующая примерную операцию сжатия и распаковки заголовка в соответствии с примерным осуществлением настоящего изобретения;
Фиг.6 - схема, иллюстрирующая примерную операцию сжатия и распаковки заголовка в соответствии с другим осуществлением настоящего изобретения;
Фиг.7 - схема, иллюстрирующая примерную операцию передачи обслуживания в соответствии с осуществлением настоящего изобретения;
Фиг.8 - блок-схема, иллюстрирующая пример стека в соответствии с примерным осуществлением настоящего изобретения;
Фиг.9 - таблица, иллюстрирующая информацию, которая может быть предоставлена в сообщениях в соответствии с примерным осуществлением изобретения;
Фиг.10 - схема, иллюстрирующая процесс передачи обслуживания в соответствии с примерным осуществлением настоящего изобретения;
Фиг.11 - схема, иллюстрирующая инициализацию для основного канала в соответствии с примерным осуществлением настоящего изобретения;
Фиг.12 - схема, иллюстрирующая инициализацию для вспомогательного канала в соответствии с примерным осуществлением настоящего изобретения;
Фиг.13 - схема, иллюстрирующая этапы вычисления дрожания сети в соответствии с первым способом настоящего изобретения;
Фиг.14 - схема, иллюстрирующая этапы вычисления дрожания сети в соответствии со вторым способом, сформулированным как вариант 1, настоящего изобретения; и
Фиг.15 - схема, иллюстрирующая этапы вычисления дрожания сети в соответствии с третьим способом, сформулированным как вариант 2, настоящего изобретения.
Наилучший способ выполнения изобретения
I. Основанная на значении таймера схема, использующая сжатую временную метку
А. Архитектура
Фиг.1 - блок-схема, иллюстрирующая систему в соответствии с примерным вариантом осуществления настоящего изобретения. Терминал 102 соединен с сетью 108 IP. Терминал 102 может быть персональным компьютером или подобным устройством, выполняющим ППДРВ/ПДП/IP и предоставляющим пакетизированные речевые выборки в пакетах ППДРВ для передачи через сеть 110. Терминал 102 включает в себя оконечную точку 104 ППДРВ, которая идентифицирует этот терминал (например, включая адрес IP, номер порта и т.д.), в качестве либо источника, либо получателя для пакетов ППДРВ. Сеть IP представлена в качестве примера, однако другие типы сетей с коммутацией пакетов или подобные могут быть использованы вместо нее. Следует заметить, что понятие "сеть", используемое в настоящем описании, подразумевается в широком смысле, охватывающем, например, линии радиосвязи в радиотелекоммуникационной сети. Терминал 102 также включает в себя локальный таймер 103 для генерирования временной метки.
Инфраструктура 110 доступа к сети (ИДС) соединена с сетью 108 IP. Радиотерминал 130 соединен через радиочастотную (РЧ) линию 140 связи с ИДС 110. Радиотерминал 130, как описано в настоящем описании, мог бы быть, например, радиокомпрессором или радиодекомпрессором, в зависимости от его окружения. Это, в частности, имеет место, когда источник пакетов и получатель пакетов отделены от радиотерминала 130. РЧ линия 140 связи включает в себя линию связи терминал-инфраструктура (из терминала 130 в ИДС 110) и линию связи инфраструктура-терминал (из ИДС 110 в терминал 130). ИДС 110 обеспечивает сопряжение одного или более радио (или радиочастотных) терминалов (включая терминал 130) региона с сетью 108 IP, включая преобразование между сигналами проводных линий (предоставляемыми из сети 108 IP) и радио или РЧ сигналами (предоставляемыми в терминал 130 или из него). Следовательно, ИДС 110 дает возможность посылать пакеты ППДРВ, принятым из сети 108 П1, по РЧ линии 140 связи к радиотерминалу 130 и позволяет посылать пакеты ППДРВ из терминала ВО по сети 108 IP в другой терминал, такой как терминал 102.
В соответствии с осуществлением настоящего изобретения ИДС 110 включает в себя один или более адаптеров ИДС (АД_ИДС), таких как АД_ИДС 112 и АД_ИДС 114, каждый из которых предпочтительно включает в себя таймер. Каждый АД_ИДС выполняет сжатие заголовка (перед передачей по линии связи инфраструктура-терминал) и распаковку (после передачи по линии связи терминал-инфраструктура). Заголовки (одно или более полей заголовков, такое как временная метка) для пакетов ППДРВ, принятых из сети 108 IP, сжимаются с помощью АД_ИДС 112 перед передачей в терминал 130 через линию связи 142 инфраструктура-терминал, а заголовки пакетов, принятых из терминала 130, распаковываются с помощью АД_ИДС 112 перед передачей в сеть 108 IP. Следовательно, каждый АД_ИДС может рассматриваться как компрессор/декомпрессор 115. Каждый АД_ИДС может обеспечивать сопряжение терминалов, расположенных в определенной или различной области в районе обнаружения сети 108 IP. АД_ИДС 112 включает в себя таймер 113 для реализации основанного на значении таймера способа сжатия. АД_ИДС 112 также включает в себя функциональный блок 115 уменьшения дрожания (временного смещения) (ФУД), который предназначен для того, чтобы измерять дрожание в пакетах (или заголовках), принятых через сеть 108 IP, и отбрасывает любые пакеты/заголовки, которые имеют чрезмерное дрожание.
Дополнительные ИДС, такие как ИДС 120, могут быть обеспечены для сопряжения других терминалов, расположенных в дополнительных областях, с сетью 108 IP. ИДС 120 также включает в себя один или более АД_ИДС, таких как АД_ИДС 122 (фиг.1). Каждый АД_ИДС включает в себя таймер и ФУД.
Терминал 130 включает в себя оконечную точку ППДРВ 132, которая является источником и/или получателем (приемником) для пакетов ППДРВ. Терминал 130 включает в себя адаптер терминала (АД_терм) 136, который выполняет сжатие заголовка (для пакетов, передаваемых по линии 142 связи терминал-инфраструктура) и распаковку (для пакетов, принятых через линию 144 связи инфраструктура-терминал). Следовательно, адаптер терминала (АД_терм) может рассматриваться как компрессор/декомпрессор 137 заголовка аналогично АД_ИДС.
Адаптер терминала (АД_терм) 136 также включает в себя таймер 134 (таймер приемника) для вычисления аппроксимации (или оценки) временной метки ППДРВ текущего заголовка. Адаптер терминала (АД_терм) затем использует дополнительную информацию в заголовке ППДРВ для того, чтобы улучшить или скорректировать аппроксимацию временной метки. В соответствии с осуществлением изобретения, аппроксимация временной метки корректируется или регулируется на основании сжатой временной метки, предоставленной в заголовке ППДРВ. Таким образом, локальный таймер и сжатая временная метка могут быть использованы для того, чтобы регенерировать правильную временную метку для каждого заголовка ППДРВ. Другие терминалы (такие как терминал 150) могут быть обеспечены, причем каждый включает в себя свою собственную оконечную точку, адаптер терминала и таймер.
Конфигурация, изображенная на фиг.1, представлена только в качестве примера, и изобретение не ограничено этой конфигурацией. Скорее фиг.1 просто изображает пример, где данные ППДРВ передаются через линию связи данных или систему (такую как линия 140 радиосвязи), где полоса частот пользуется большим спросом, а ошибки не являются необычными. Настоящее изобретение не ограничено линией радиосвязи, а применимо к широкому множеству линий связи (включая проводные линии связи и т.д.).
Примером применения системы, где основанная на значении таймера схема сжатия и распаковки заголовка может быть полезна, является та, где пакеты речь-через-IP (или IP-телефонии) передаются через сотовые системы. Когда VoIP применяется к сотовым системам, важно минимизировать издержки заголовка IP/ПДП/ППДРВ из-за ограниченной полосы частот радио или эфирного (РЧ) интерфейса. В такой системе, например, АД_ИДС может сопрягать IP сеть с компьютерным терминалом, выполняющим IP/ПДП/ППДРВ (например, терминалом 130) и имеющим сотовый или РЧ интерфейс для приема пакетов ППДРВ через линию радиосвязи или РЧ линию связи. Это только один пример применения способа сжатия/распаковки настоящего изобретения.
Фиг.2 - схема, иллюстрирующая формат несжатого пакета ППДРВ в соответствии с осуществлением настоящего изобретения. Как изображено на фиг.2, несжатый пакет ППДРВ включает в себя заголовок IP, заголовок 212 ПДП, заголовок 214 ППДРВ и полезную нагрузку (полезные данные), которая может быть речевой выборкой 216.
Фиг.3 - схема, иллюстрирующая формат несжатого заголовка ППДРВ в соответствии с примерным осуществлением настоящего изобретения. Как изображено на фиг.3, несжатый заголовок ППДРВ включает в себя временную метку (ВМ) 310, порядковый номер (ПН) 312 и другие поля 314. Благодаря характеру с коммутацией пакетов сети 108 IP пакеты ППДРВ могут поступать беспорядочно. Порядковый номер 312 используется в приемнике ППДРВ или получателе ППДРВ (например, терминале 130 фиг.1) для того, чтобы собирать речевые выборки ППДРВ в правильном порядке. Однако порядковые номера в пакетах ППДРВ не будут отражать какого-либо нелинейного изменения в поле (например, интервалы молчания речевого сигнала). Поэтому временная метка (ВМ) 310 предоставляется для того, чтобы указать относительную синхронизацию каждого пакета.
Как отмечено выше, имеется некоторая проблемы, связанная с тем, что издержки заголовка 40-60 байт, поставляемые заголовками IP/ПДП/ППДРВ в каждом пакте ППДРВ, являются слишком большими. В частности, временная метка ППДРВ 4 байта является особенно обременительной для пакетов ППДРВ, работающих через низкоскоростные линии связи или линии связи с ограниченной полосой частот (такие как линия связи 140). В результате существует необходимость в механизме эффективного сжатия заголовков ППДРВ и, в частности, сжатия поля временной метки заголовка ППДРВ.
В способе сжатия заголовка, описанном в RFC 2508, сначала посылают полный (не сжатый) пакет ППДРВ, включающий в себя все поля, в получатель/приемник ППДРВ. Многие поля заголовков во время соединения являются статичными и, следовательно, их не нужно передавать после того, как начальный пакет послан или принят. Для большинства пакетов только порядковый номер и временная метка будут изменяться от пакета к пакету. В соответствии с RFC 2508, нестатичные поля (например, временная метка и порядковый номер) обновляются в приемнике с помощью добавления (фиксированных) разностей первого порядка к предыдущим значениям этих полей, хранимым в приемнике. Например, порядковый номер каждого принятого пакета ППДРВ будет автоматически увеличен на единицу для каждого пакета. Дополнительные скачки или изменения (т.е. отличные от разности первого порядка) в нестатичных полях должны отдельно передаваться в приемник. К сожалению, в RFC 2508 потеря предыдущего заголовка будет делать недействительной распаковку в приемнике. Также, величина разностей изменяется, что делает более трудным управлять полосой частот и предсказывать ее с использованием способа сжатия RFC 2508.
В соответствии с вариантом осуществления настоящего изобретения предоставляется способ для сжатия заголовка, который может быть использован для того, чтобы более эффективно сжимать временную метку ППДРВ (или другое поле) заголовка пакета. В соответствии с осуществлением настоящего изобретения схема сжатия может приспосабливаться к произвольному скачку в значении временной метки ППДРВ, в то же время выдавая сжатый заголовок ППДРВ постоянного размера (или временную метку ППДРВ постоянного размера).
Фиг.4 - схема, иллюстрирующая формат сжатого заголовка ППДРВ в соответствии с примерным осуществлением настоящего изобретения. Как изображено на фиг.4, заголовок может состоять из типа 410 сообщения, указывающего тип сообщения, битовой маски 412, которая идентифицирует поля, которые изменяются, и поля 414 сжатой временной метки. Тип 410 сообщения может указывать сжатую временную метку, если сжатая временная метка предоставлена в заголовке пакета. В соответствии с осуществлением настоящего изобретения поле 414 сжатой временной метки включает в себя k наименьших значащих бит (нмбит) величины, которая может указывать время, прошедшее между пакетами. В соответствии с осуществлением настоящего изобретения сжатая временная метка 414 может предоставить часть (т.е. k наименьших значащих бит) значения счетчика источника (или разность значений счетчика). Счетчик источника может быть использован для того, чтобы обеспечить обновленные или измененные поля для тех полей, которые идентифицированы в битовой маске 412.
В. Общая операция сжатия и распаковки временной метки
Сжатие и распаковка временной метки ППДРВ вкратце описаны в соответствии с осуществлением изобретения. В соответствии с осуществлением, пакет ППДРВ генерируется в оконечной точке ППДРВ (такой как конечная точка 104 ППДРВ терминала 102) и адресуется в другую оконечную точку ППДРВ. В этом примере оконечная точка 104 ППДРВ является источником одного или более пакетов ППДРВ, посылаемых в оконечную точку 132 ППДРВ (получатель) терминала 130. Заголовок пакета ППДРВ включает в себя временную метку, которая генерируется в источнике ППДРВ (например, в терминале 102) на основании хронирующего таймера.
Пакет ППДРВ направляется через сеть 108 IP в АД_ИДС 112 ИДС 110. АД_ИДС 112 сжимает одно или более полей заголовка (заголовков) пакета ППДРВ. В частности, АД_ИДС сжимает временную метку 310 ППДРВ (фиг.3) в сжатую временную метку 414 (фиг.4). Другие поля в заголовке могут сжиматься с помощью удаления их или использования другого способа. Пакет ППДРВ, включающий в себя сжатую временную метку 414, затем передается по нисходящей линии 144 связи инфраструктура-терминал линии 140 РЧ-связи ППДРВ в терминал 130.
После приема пакета ППДРВ пакетом со сжатым заголовком (т.е. сжатой временной меткой 414) адаптер 136 терминала (АД_терм) 136 терминала 130 распаковывает значение временной метки. Адаптер терминала распаковывает сжатую временную метку 414 с помощью первого вычисления оценки или аппроксимации временной метки на основании текущего значения таймера 134. Аппроксимация временной метки затем улучшается или корректируется на основании значения сжатой временной метки 414, предоставленной в заголовке пакета. Таким образом, временная метка для текущего пакета (заголовка) регенерируется на основании значения локального таймера (таймера 134) и сжатой временной метки, предоставленной в текущем заголовке. Другие поля заголовка пакета (такие как порядковый номер) могут также регенерироваться. Пакет и регенерированная временная метка затем предоставляются в оконечную точку 132 ППДРВ для обработки. Оконечная точка 132 ППДРВ затем воспроизводит речевые выборки в соответствующем порядке (как определено порядковым номером), имеющие соответствующую синхронизацию, как определено регенерированными временными метками (например, чтобы учитывать любые интервалы молчания).
АД_ИДС 112 может также принимать сжатые заголовки (включающие сжатые временные метки) через РЧ линию связи 140 и распаковывать временную метку с использованием основанного на таймере способа распаковки, описанного выше. Следовательно, АД_ИДС 112 может обычно включать в себя таймер для того, чтобы дать возможность АД_ИДС распаковывать сжатую временную метку, как описано выше. Аналогично АД_терм 136 терминала 130 может также сжимать временную метку пакета ППДРВ перед передачей пакета ППДРВ через РЧ линию 140 связи в ИДС 110. Для того чтобы упростить объяснение примерных осуществлении изобретения, большая часть описания будет посвящена маршруту 144 нисходящей линии связи инфраструктура-терминал. В соответствии с осуществлением изобретения пакеты ППДРВ могут передаваться в обоих направлениях (по восходящей линии 142 связи терминал-инфраструктура и по нисходящей линии 144 связи инфраструктура-терминал). Следовательно, как АД_ИДС 112 ИДС 110, так и АД_терм терминала 130 могут работать как компрессор временной метки (для передачи заголовка/пакета через РЧ линию связи) и декомпрессор (после приема сжатого заголовка, принятого через РЧ линию 140 связи).
С. Примерные осуществления сжатия и распаковки временной метки
Примерные осуществления сжатия и распаковки временной метки вкратце описаны ниже. Предполагается, что данные в пакетах ППДРВ являются речевыми данными. Ниже следующие переменные и формулы определены только для того, чтобы помочь при объяснении некоторых особенностей настоящего изобретения, но изобретение не ограничено ими. Также настоящее изобретение не ограничено системами, которые используют одинаковые или аналогичные типы переменных, и не ограничено системами, которые выполняют конкретные вычисления, описанные ниже. Переменные и вычисления предоставлены только в качестве примерного осуществления изобретения.
Т - интервал времени между речевыми выборками ППДРВ. (Если имеется одна речевая выборка, предоставленная в каждом пакете ППДРВ, тогда Т также представляет интервал между заголовками пакетов ППДРВ).
ВМ - временная метка
"Шаг_по_индексу_ВМ" - временная метка, увеличенная на шаг_по_индексу_ВМ каждые Т мсек. Иначе говоря, временная метка ППДРВ увеличивается на шаг_по_индексу_ВМ в течение каждого нового пакета ППДРВ. Шаг_по_индексу_ВМ является константой (например 100), которая зависит от кодека речи. Шаг_по_индексу_ВМ предоставляется в приемник (терминал 130) и АД_ИДС 112.
ВМ0 - временная метка ППДРВ первого заголовка сеанса, принятого в приемнике ППДРВ. Первый заголовок сеанса считается заголовком синхронизации, так как он используется для синхронизации. ВМ0 представляет собой начальное значение временной метки ППДРВ, предоставляемое как в компрессор (например, АД_ИДС 112), так и в декомпрессор (например, АД_ИДС 136) в начале сеанса (для синхронизации). В соответствии с осуществлением, АД_ИДС и АД_терм инициализируются или синхронизируются с помощью приема пакета ППДРВ с не сжатым заголовком (включающим не сжатую временную метку, предоставляющую ВМ0). В соответствии с осуществлением настоящего изобретения, основанный на значении таймера способ распаковки требует предоставления начальной временной метки (ВМ0) (например, через начальный заголовок или заголовок синхронизации, который распакован) в компрессор временной метки (т.е., АД_ИДС 112) и в декомпрессор (т.е. АД_терм 136) перед тем, как сжатые заголовки могут быть подходящим образом распакованы (т.е. так, чтобы декомпрессор мог правильно регенерировать временную метку).
Временная метка ППДРВ или заголовок m пакета (сгенерированный в момент времени m·Т м/сек)=ВМ0 + шаг_по_индексу_ВМ·m. Это предполагает, что имеется один заголовок для каждой речевой выборки. Как изображено в примерах, описанных ниже, эта формула может быть расширена для случая множественных речевых выборок (например, 3 речевых выборок) на заголовок пакета.
m - целое, которое указывает число речевых выборок, которые посланы, m сбрасывается, или очищается, в 0 в начале сеанса, m пропорционально (или указывает) количеству времени, которое прошло с начала сеанса, m увеличивается на 2 каждые Т мсек.
Текущая_ВМ=ВМ0 + текущее_m·шаг_по_индексу_ВМ; текущая временная метка для заголовка текущего пакета.
Таймер приемника - таймер в приемнике ППДРВ (или получателе ППДРВ) такой, как таймер 134 терминала 130. Локальный таймер приемника обычно является независимо работающим и не будет сбрасываться в начале сеанса. Вместо этого полное время в приемнике ППДРВ между приемом двух заголовков пакетов может быть получено с помощью вычитания значения таймера текущего заголовка из значения таймера приемника, когда был принят заголовок предыдущего пакета. С помощью предоставления возможности таймеру быть независимым один таймер приемника может совместно использоваться многими потоками или сеансами. Альтернативно, таймер приемника может сбрасываться в начале каждого сеанса. Сбрасывание или очистка таймера приемника в начале сеанса (т.е. после приема заголовка инициализации) может потребовать специализированного таймера приемника (процесса таймера) для каждого сеанса или потока. Первая не сжатая временная метка (ВМ0) сеанса может быть предоставлена в АД_ИДС и АД_терм в заголовке инициализации. Первый заголовок предоставляется для того, чтобы инициализировать компрессор (АД_ИДС 112) и декомпрессор (АД_терм 136). Таймер приемника затем увеличивается на 1 каждые Т мсек. АД_ИДС 112 (компрессор) использует величину ВМ0 для того, чтобы сжать временные метки следующих заголовков пакетов ППДРВ. АД_терм 136 (декомпрессор) использует величину ВМ0 для того, чтобы распаковать сжатое значение временной метки (например, для того, чтобы регенерировать временные метки в следующих принятых заголовках ППДРВ).
Текущий_таймер - значение таймера в приемнике ППДРВ (например, терминале 130), когда принимается текущий заголовок.
Последний_таймер - значение таймера в приемнике, когда был принят последний заголовок. (Текущий_таймер запоминается как последний_таймер для вычисления следующего заголовка временной метки).
Последнее_m - значение m для последнего принятого заголовка; m указывает число речевых кадров, которые прошли с момента инициализации заголовка.
Для того чтобы сжать временную метку текущего пакета, АД_ИДС 112 вычисляет текущее значение m как: текущее_m = (текущая_ВМ-ВМ0)/шаг_по_индексу_ВМ. Следовательно, АД_ИДС вычитает начальное значение временной метки (в начале сеанса) из текущей временной метки. Эта разность делится на шаг_по_индексу временной метки (шаг_по_индексу_ВМ). Однако в некоторых осуществлениях может быть необходимо фактически выполнить операцию деления. Могут быть использованы другие способы для того, чтобы подходящим образом сгенерировать текущее_m без выполнения операции деления, которая может требовать больших затрат процессора.
k наименьших значащих бит текущего_m затем предоставляются как сжатая временная метка 414. Пакет ППДРВ, включающий в себя сжатую временную метку 414, затем передается через РЧ линию 140 связи в получатель ППДРВ или приемник (например, терминал 130).
В приемнике ППДРВ (например, терминале 130) адаптер 136 терминала (АД_терм) распаковывает сжатую временную метку 414. Значение текущего_таймера предыдущего заголовка сначала запоминается как последний_таймер. Затем, когда поступает текущий заголовок, АД_терм 136 считывает значение таймера 134 приемника и запоминает его в памяти как текущий_таймер. Затем вычисляется разность_таймера как: разность_таймера=текущий_таймер-последний_таймер. АД-ИДС вычисляет точное значение текущего_m с помощью нахождения целого d, где
(-L/2<d≤L/2, где L=2k) так, что: (Уравнение 1)
k наименьших значащих бит (d+последнее_m+разность_таймера)=сжатой временной метке 414 (для текущего заголовка). (Уравнение 2)
Как отмечено, принятая сжатая временная метка также состоит из k бит. Когда d вычислено с использованием уравнений 1 и 2, текущая_ВМ затем может быть вычислена как:
Текущая_ВМ=ВМ0+(d+последнее_m+разность_таймера)·шаг_по_и_индексу_ВМ (Уравнение 3)
В уравнении 3 фактическое или правильное значение текущего_m показано в скобках как (d+последнее m+разность таймера). Последнее_m+таймер - аппроксимация текущего_m, в то время как d - разность между аппроксимацией текущего_m и правильной величиной текущего_m. Также ВМ0+(последнее_m+разность_таймера)·шаг_по_индексу_ВМ - аппроксимация текущего значения временной метки, и d·шаг_по_индексу_ВМ - разность между аппроксимированной текущей временной меткой и фактическим (или правильным) значением текущей временной метки.
Следовательно, можно видеть, что приемник ППДРВ сначала вычисляет аппроксимацию (или оценку) текущей временной метки на основании прошедшего времени между приемом текущего заголовка и предыдущего заголовка (который был правильно распакован) как: аппроксимированная текущая временная метка= ВМ0+(последнее_m+разность_таймера)·шаг_по_индексу_ВМ. Аппроксимированная текущая временная метка затем регулируется или корректируется на величину d·шаг_по_индексу_ВМ для того, чтобы вычислить правильную текущую временную метку (текущую_ВМ).
После того, как текущая_ВМ вычислена, пакет ППДРВ (включающий свою регенерированную или распакованную временную метку, текущую_ВМ) предоставляется в оконечную точку 132 ППДРВ. Этот процесс сжатия и распаковки является прозрачным для оконечных точек ППДРВ.
Фиг.5 - схема, иллюстрирующая примерную операцию сжатия и распаковки в соответствии с осуществлением изобретения. Этот пример применяет некоторые специфические формулы, описанные выше, для того, чтобы проиллюстрировать некоторые признаки настоящего изобретения. В этом примерном осуществлении предполагается, что таймеры в источнике 502 ППДРВ и приемнике 504 ППДРВ имеют одну и ту же частоту, но обычно не синхронизированы. Таймер в источнике ППДРВ (например, увеличивающийся на 1 каждые Т мсек) используется для генерирования временной метки, в то время как таймер (например, таймер 134) в приемнике ППДРВ используется для того, чтобы регенерировать или распаковывать временную метку ППДРВ.
Ссылаясь на фиг.5, в начале сеанса заголовок 508 инициализации генерируется в источнике ППДРВ, включающий начальное значение временной метки (ВМ0). Заголовок 508 инициализации передается в ИДС, а затем посылается в приемник 504 ППДРВ (например, терминал 130). Временная метка в заголовке инициализации не сжата. После приема заголовка инициализации начальное значение временной метки (ВМ0) запоминается в памяти в АД_ИДС вместе с значением "шаг_по_индексу_ВМ". В соответствии с одним осуществлением два заголовка инициализации могут передаваться в АД_ИДС. АД_ИДС может затем вычислить "шаг_по_индексу_ВМ" в качестве второй временной метки минус первая временная метка. АД_терм может аналогично вычислить "шаг_по_индексу_ВМ" или принять значение в пакете.
Аналогично, когда заголовок 508 инициализации принимается в приемнике ППДРВ (терминале 130), начальная временная метка (ВМ0) запоминается в памяти вместе с "шаг_по_индексу_ВМ". Также после приема 510 заголовка 508 инициализации (фиг.5) текущее_m очищается или сбрасывается в ноль (0), и таймер приемника затем считывает и запоминает значение "начальный_таймер_приемника" 516. Вместо считывания значения таймера в начале сеанса таймер приемника может быть сброшен или очищен. В этом примере считанное значение таймера приемника в начале сеанса просто равно нулю (0) для простоты. Следовательно, пример, изображенный на фиг.5, применяет оба осуществления (только считывание таймера приемника или сбрасывание его в ноль), так как независимо выполняемый таймер считывается как ноль в начале сеанса. Также не обязательно очищать текущее_m, но можно вместо этого записывать значение для текущего_m. Таймер приемника после этого увеличивается (например, на 1) каждые Т мсек (что является той же самой частотой, как у таймера в источнике 502 ППДРВ, используемом для генерирования временных меток).
Заголовок инициализации 508 поступает в приемник 502 ППДРВ после фиксированной задержки (групповой задержки 512) и переменной задержки (аккумулированного дрожания 514).
Затем источник 502 ППДРВ генерирует следующий пакет ППДРВ (первый пакет ППДРВ сеанса после заголовка инициализации). Этот пакет ППДРВ генерируется в момент 3·Т мсек после того, как сгенерирован заголовок синхронизации, и, следовательно, обычно может включать три (3) речевые выборки, например. Возможны другие числа. Следовательно, временная метка для заголовка этого пакета равна: ВМ(1)=ВМ0+3*шаг_по_индексу_ВМ, как изображено на фиг.5. ВМ(1) относится к временной метке, сгенерированной через 3Т мсек после инициализации. В этом примере будет предполагаться, что "шаг_по_индексу_ВМ" равен 100, например. ВМ0 предполагается равной 0, например. Следовательно, ВМ(1)=300.
Значение временной метки этого пакета, ВМ(1), принимается в АД_ИДС и сжимается на основании ВМ(1) (значения временной метки), ВМ0 (начального значения временной метки) и "шага_по_индексу_ВМ" (значение временной метки увеличивается каждые Т мсек). В соответствии с примерным осуществлением, сжатая временная метка может быть вычислена как k наименьших значащих бит текущего_m. АД_ИДС 112 вычисляет текущее значение m как: текущее_m=(текущая_ВМ-ВМ0)/шаг_по_индексу_ВМ. В этом примере будет предполагаться, что шаг_по_индексу_ВМ равен 100, например. В этом примере текущее_m вычисляется как: текущее_m=(300-0)/100=3. k в этом примере будет равно двум (2). Следовательно, два наименьших значащих бита текущего_m (11 в двоичной системе) предоставляются как сжатая временная метка 414 для этого пакета (СВМ1), фиг.5.
Сжатая временная метка (СВМ1) постулат в приемник 502 ППДРВ и АД_терм 136 в приемнике ППДРВ регенерирует или распаковывает временную метку, ВМ(1), для текущего пакета. Значение "текущего_таймера" (ноль) запоминается в качестве значения последний_таймер, а текущее_m запоминается как "последнее_m". Текущее_m было ранее установлено в ноль в начале сеанса (т.е. после приема заголовка синхронизации). Значение таймера приемника (3 в этом случае) считывается и запоминается как текущий_таймер. Разность_таймера затем вычисляется как текущий_таймер - последний таймер, которая равна 3-0=3. Разность_таймера + последнее_m является аппроксимацией текущего_m.
Следующий АД_терм 136 вычисляет точное или скорректированное значение для текущего_m, используя уравнения (1) и (2). Используя уравнение (2), два наименьших значащих бита (d+последнее_m+разность_таймера)=СВМ1 (сжатая временная метка для текущего заголовка). В этом случае последнее_m равно нулю (0), разность_таймера равна трем (3), а СВМ1 равна трем (3). Следовательно, два наименее значащих бита (d+0+3)=3. Следовательно, d равно нулю.
Используя уравнение (3), распакованная временная метка для этого пакета затем вычисляется как ВМ(1)=ВМ0+ (d+последнее_m+разность_таймера)· шаг_по_индексу_ВМ. Следовательно, в результате ВМ(1)=0+(0+0+3)·100=300. Распакованная временная метка для этого пакета ВМ(1)=300 затем подается в оконечную точку 132 ППДРВ в источнике ППДРВ вместе с данными ППДРВ и другими распакованными полями заголовка. Правильное или фактическое значение для текущего_m равно (d+последнее_m+разность_таймера). Следовательно, для этого пакета можно видеть, что аппроксимация текущего_m является такой же, как правильное значение текущего_m (но это не является справедливым в общем случае). Текущее_m затем обновляется равным 3.
Следующий пакет и временная метка генерируются в источнике ППДРВ, включая временную метку ВМ(2)=0+6·100=600. В АД_ИДС ВМ(2)=600 сжимается в сжатую временную метку как 2 наименьших значащих бита (600-0)/100=6. В этом случае 6 в двоичном представлении равно 110. Следовательно, два наименьших значащих бита 110 равны 10. Следовательно, СВМ2=10 в двоичном представлении.
Сжатая временная метка для этого пакета (СВМ2) затем принимается в АД_терм 136 после того, как таймер приемника достигает значения 7 из-за групповой задержки и аккумулированного дрожания. Значение текущего_таймера (3) запоминается как последний_таймер, а текущее_m (3) запоминается как последнее_m. Текущее значение таймера приемника (7 в этом случае) считывается как текущий_таймер. Разность_таймера затем вычисляется как "текущий таймер" минус "последний таймер", которая равна 7-3=4. Разность таймера_+ последнее_m является аппроксимацией текущего_m, которая равна 7.
Затем АД_терм 136 вычисляет точное или скорректированное значение для текущего_m, используя уравнения (1) и (2). Используя уравнение (2), два последних наименьших значащих бита (d+последнее_m+разность_таймера)=СВМ2 (сжатая временная метка для текущего заголовка). В этом случае последнее_m равно 3, разность_таймера равна 4, а СВМ2 равна 10 (в двоичном представлении, что равно 3 в десятичном представлении). Уравнение 2 решается для d следующим образом: 2 нмзб(d+3+4)=2. Семь в двоичном представлении равно 111. Следовательно, d=-1. d - разность между аппроксимацией текущего_m и фактическим значением текущего_m. Вставляя d в уравнение (3), временная метка для этого пакета вычисляется как ВМ(2)=0+(-1+3+4)·100=600. Следовательно, АД_терм 136 приемника ППДРВ имеет правильно регенерированную (или распакованную) временную метку ППДРВ на основании локального таймера и сжатой временной метки.
Следует заметить, что, в отличие от предыдущего способа, необязательно повторно посылать заголовок синхронизации в случае, когда один или более пакетов не поступают в приемник ППДРВ. Иначе говоря, синхронизация между источником и приемником ППДРВ необходима только один раз в начале сеанса или соединения. Это имеет место из-за того, что текущая временная метка вычисляется в приемнике ППДРВ на основании как "последнего_m", так и разности_таймера. Разность_таймера вычисляется как текущий_таймер - последний_таймер. Следовательно, значения последнего_m и последнего_таймера соответствуют последнему пакету, независимо от того, какой пакет был принят последним (например, независимо от того, был ли пакет, посланный после "последнего" пакета, ошибочно удален или потерян). В результате основанная на значении таймера схема сжатия, в соответствии с осуществлением изобретения, является устойчивой к ошибкам и уменьшает требования к полосе частот, так как не обязательно посылать новый пакет синхронизации (например, включающий полные не сжатые значения для всех заголовков) в случае, когда обнаруживается ошибка (например, один или более пакетов удалены или потеряны).
При нормальной работе расхождение между аппроксимацией и точным значением текущего_m вызвано:
a) аккумулированным дрожанием между самим источником временных меток ППДРВ и приемником; фактическая задержка=групповая задержка + аккумулированное дрожание, где групповая задержка является постоянной, а аккумулированная задержка изменяется от одного заголовка к другому, и 0<аккумулированное дрожание<максимальное аккумулированное дрожание; и
b) возможной несинхронностью между процессом таймера и процессом декомпрессора, зависящей от реализации таймера. Из-за несинхронности может быть ошибка плюс или минус единица (+ или -1) в значении таймера (текущего_таймера).
Фиг.6 - схема, иллюстрирующая примерную операцию сжатия и распаковки заголовка в соответствии с другим осуществлением изобретения. Подобно фиг.5 фиг.6 - диаграмма, иллюстрирующая влияние дрожания и несинхронности таймера. На фиг.5 таймер приемника сбрасывается или очищается в начале сеанса. (Это не обязательно, так как таймеру приемника дается возможность просто продолжать выполняться). Однако в примерном осуществлении, проиллюстрированном на фиг.6, таймер приемника сбрасывается или очищается в ноль (0) для каждого пакета. Следовательно, когда сжатый заголовок пакета принимается, значение таймера считывается, которое указывает значение разности_таймера, описанное выше (так как таймер указывает прошедшее время с заголовка последнего пакета). Может быть несколько способов для того, чтобы реализовать изобретение. Важно то, что должна быть измерена разность значений таймера, указывающая прошедшее время (как измеренное локальным таймером приемника) между успешно распакованной временной меткой и текущей временной меткой (разность_таймера, как описано на фиг.5).
Ссылаясь на фиг.6, заголовок n генерируется с временной меткой=BM0+3·шаг_по_индексу_BM. Эта временная метка заголовка n сжимается и передается в приемник ППДРВ и распаковывается. Таймер затем сбрасывается в приемнике. Следующие заголовки (n+1), (n+2) и (n+3) генерируются и посылаются, но только заголовок (n+3) принимается (т.е. заголовки n+1 и n+2 теряются). Для простоты заголовки (n+2) и (n+3) не изображены на фиг.6. Заголовок (n+1) изображен на фиг.6 как заголовок m+n. Заголовок (n+m) генерируется и посылается с временной меткой ВМ=ВМ0+6·шаг_по_индексу_ВМ. Эта временная метка заголовка (m+n) сжимается, а затем посылается в приемник ППДРВ. Значение таймера равно 4 (указывающее разность_таймера). Это значение используется для того, чтобы распаковать временную метку для заголовка (m+n). Следовательно, пример фиг.6 очень похож на пример, изображенный на фиг.5, за исключением того, что таймер сбрасывается после приема каждого заголовка на фиг.6.
Независимо от того, какой способ используется (либо фиг.5, либо фиг.6), может быть использована эффективная основанная на значении таймера схема сжатия. Однако, если аккумулированное дрожание является чрезмерным, может быть невозможным регенерировать правильную временную метку на основании сжатой временной метки. Во многих случаях следующее условие должно быть удовлетворено k для того, чтобы дать возможность схеме, проиллюстрированной на фиг.5 и/или фиг.6, работать подходящим образом:
[Условие 1] (максимальное интегральное дрожание+2) <2k, где максимальное интегральное дрожание (МИД) представляет максимальное аккумулированное дрожание, выраженное в единицах Т мсек, округленное до следующего большего целого. Например, если Т=20 мсек, максимальное аккумулированное дрожание 15 мсек приведет к МИД=1. 2 прибавляется к МИД для того, чтобы учесть возможную ошибку, вызванную несинхронностью таймера.
Из-за требований разговора в реальном времени аккумулированное дрожание при нормальной работе может быть равно только несколько раз по Т мсек. Следовательно, в таком случае значение k, равное 4, более чем достаточно, так как расхождение до 16 речевых выборок (т.е. 16·Т мсек) может быть скорректировано в приемнике ППДРВ. Ненормальные или ошибочные ситуации могут привести к дрожанию, превышающему нормальные значения. Элемент уменьшения дрожания может быть добавлен перед компрессором для того, чтобы гарантировать, что дрожание, которое видит компрессор, остается в пределах приемлемых границ.
Преимущества схемы сжатия временной метки, проиллюстрированной на фиг.5 и/или фиг.6, включают в себя следующие:
а) Размер временной метки является постоянным и малым. Сжатый заголовок обычно состоит из типа сообщения, который указывает тип сообщения (k1 бит), битовой маски, которая указывает, какое поле изменяется, и поля, которое содержит к наименьших значащих бит текущего_m (к бит). Допуская, что используется та же самая маска MST1, как в RFC 2508, и k1=4, размер сжатого заголовка, когда только изменяется ВМ ППДРВ (этот случай является наиболее частым), равен 1, 5 байт. Кроме того, размер не изменяется в зависимости от длительности интервала молчания.
b) Как изображено, например, на фиг.6, таймер приемника работает на той же самой частоте, как таймер источника ППДРВ (используемый для того, чтобы генерировать исходную временную метку); фазовая синхронизация между таймером источника и таймером приемника не требуется (так как прошедшее время, как измеренное таймером приемника, является тем, что используется для того, чтобы регенерировать временную метку).
c) В приемнике не требуется синхронизация между процессом в таймере и процессом в декомпрессоре. Например, процесс в таймере может увеличивать значение таймера на 1 каждые Т мсек, в то время как процесс в декомпрессоре активизируется для того, чтобы выполнить распаковку, когда принимается новый заголовок. Однако не требуется, чтобы момент времени, в котором увеличивается таймер, был выровнен или синхронизирован с моментом, когда принимается заголовок (смотри фиг.6).
d) Устойчивость к ошибкам, так как частичная информация ВМ ППДРВ в сжатом заголовке является самодостаточной и требует только быть объединенной с значением таймера приемника для того, чтобы выдать полное значение ВМ ППДРВ. Потеря или искажение заголовка не будет делать недействительными следующие сжатые заголовки.
e) Не требуется памяти или значений для того, чтобы поддерживать или хранить с помощью компрессора для целей сжатия/распаковки ВМ ППДРВ.
D. Передача обслуживания
В соответствии с осуществлением, каждому АД_ИДС назначается конкретная область (например, терминалы интерфейсов, расположенные в конкретной области). Терминалы (такие как терминал 130) могут перемещаться из одной области в другую. Когда терминал перемещается из одной области в другую, должна быть выполнена передача обслуживания для терминала или переключение из одного АД_ИДС в другой АД_ИДС.
Одним из рассматриваемых случаев передачи обслуживания является передача обслуживания между АД_ИДС, где может быть разрыв, вызванный переключением из старого АД_ИДС в новый АД_ИДС. Вопрос в том, как поддержать непрерывность информации во время передачи обслуживания так, чтобы после передачи обслуживания сжатие/распаковка в АД_терм 136 и новом АД_ИДС продолжались без разрыва.
1. Нисходящая линия связи инфраструктура-терминал
Нарушения непрерывности нет на приемной стороне, которая является терминалом (например, терминалом 130, фиг.1). Роль компрессора передается от одного АД_ИДС в другой. После передачи обслуживания заголовки направляются по новому маршруту, проходящему через новый АД_ИДС, вместо старого АД_ИДС. Кроме того, в зависимости от структуры системы может быть или может не быть повторной маршрутизации пакетов в процессе прохождения во время передачи обслуживания. Пакетами в процессе прохождения являются такие пакеты, которые сгенерированы источником, но еще не поступили в приемник к моменту передачи обслуживания. Повторная маршрутизация пытается доставить пакеты, находящиеся в процессе прохождения, в терминал.
Для того, чтобы выполнить передачу обслуживания, старый АД_ИДС должен передать начальное значение временной метки для сеанса (ВМ0) и шаг_по_индексу_ВМ в новый АД_ИДС. Эти два значения дают возможность новому АД_ИДС продолжать сжимать новые временные метки (в новых заголовках пакетов), принятые из источника ППДРВ (например, терминала 130). Пусть текущий_заголовок будет самым первым заголовком, сжимаемым с помощью АД_терм после передачи обслуживания, и его текущая_ВМ - его временная метка ППДРВ. АД_терм может распаковывать текущую_ВМ до тех пор, пока удовлетворяется следующее условие:
[Условие 2] (переходное интегральное дрожание линии связи инфраструктура-терминал + 2)<2k,
где переходное интегральное дрожание линии связи инфраструктура-терминал (ПИДЛСИТ) представляет переходное дрожание линии связи инфраструктура-терминал текущего_заголовка, выраженное в единицах Т мсек, округленное до следующего большего целого. Переходное дрожание линии связи инфраструктура-терминал определяется как равное полной задержке текущего_заголовка минус групповая задержка старого маршрута. Если текущий_заголовок не является заголовком повторно маршрутизированного пакета в процессе передачи, полная задержка текущего_заголовка равна также групповой задержке по новому маршруту + аккумулированное дрожание текущего_заголовка по новому маршруту. Следовательно, переходное дрожание линии связи инфраструктура-терминал=групповая задержка по новому маршруту + групповая задержка по старому маршруту + аккумулированное дрожание текущего_заголовка.
Если текущий_заголовок является заголовком повторно маршрутизированного пакета в процессе прохождения, полная задержка текущего_заголовка равна полной задержке, вызванной маршрутизацией и повторной маршрутизацией. На практике системы должны быть предпочтительно выполнены с возможностью поддерживать переходное дрожание линии связи инфраструктура-терминал в том же самом диапазоне величин, как аккумулированное дрожание в стабильном состоянии (т.е. без передачи обслуживания). Поэтому на основании этих допущений (которые могут не всегда применяться) не ожидаются никакие специфические проблемы, связанные с передачей обслуживания для линии связи инфраструктура-терминал, если удовлетворяется условие 1 (отмеченное выше).
2. Восходящая линия связи терминал-инфраструктура
В этом описании линии связи терминал-инфраструктура АД_терм 136 терминала (например, терминала 130) сжимает временную метку и посылает ее через РЧ линию 140 связи в локальный или соответствующий АД_ИДС. Источник ППДРВ в этом случае является терминалом 130. Даже когда источник ППДРВ (терминал 130) меняет физические местоположения (требующие передачи обслуживания в АД_ИДС), роль приемника (декомпрессора) передается из одного АД_ИДС в другой. Источник ППДРВ остается привязанным в терминале (например, в терминале 130, фиг.1).
Фиг.7 - схема, иллюстрирующая примерную операцию передачи обслуживания в соответствии с осуществлением настоящего изобретения. Для того, чтобы минимизировать непроизводительные потери эфирного интерфейса, требуется передать некоторую информацию из старого АД_ИДС 710 в новый АД_ИДС 712 для передачи обслуживания. Этой информацией является значение таймера в старом АД_ИДС. Старый АД_ИДС считывает (или делает моментальную копию) текущее значение таймера (Т_u) в старом АД_ИДС и посылает его в новый АД_ИДС вместе с ВМ0, шагом_по_индексу_ВМ и текущим_m, этап 714 (фиг.7). Новый АД_ИДС продолжает увеличение своего таймера, начиная с (T_u). Пусть Т_передачи 715 (фиг.7) - время для передачи таймера. Также процессы таймера в старом и новом АД_ИДС могут иметь разность фазы, которая равна максимум Т мсек. Пусть текущий_заголовок - самый первый заголовок, распаковываемый новым АД_ИДС после передачи обслуживания, и текущая ВМ - его временная метка ППДРВ. Новый АД_ИДС может распаковывать текущую_ВМ до тех пор, пока выполняется следующее условие:
[Условие 3] (Переходное интегральное дрожание линии связи терминал-инфраструктура + 2 + 1)<2k, где Переходное дрожание линии связи терминал-инфраструктура (ПИДЛСТИ) представляет переходное дрожание линии связи терминал-инфраструктура, выраженное в единицах Т мсек, округленное до следующего большего целого. Переходное дрожание линии связи терминал-инфраструктура определяется как=полная задержка текущего_заголовка - групповая задержка по старому маршруту + Т_передачи. Так как полная задержка текущего_заголовка = групповая задержка по новому маршруту +аккумулированное дрожание для текущего_заголовка, переходное дрожание линии связи терминал-инфраструктура = групповая задержка по новому маршруту - групповая задержка по старому маршруту + аккумулированное дрожание для текущего_заголовка + Т_передачи. По сравнению со случаем связи инфраструктура-терминал "1" прибавляется для того, чтобы учесть разность фазы между таймером старого АД_ИДС и таймером нового АД_ИДС.
Фиг.7 также иллюстрирует переходное дрожание линии связи терминал-инфраструктура, которое включает в себя разность групповой задержки и Т_передачи. В этом примере старый АД_ИДС решает подготовиться к передаче обслуживания перед тем, как таймер увеличивает значение таймера. Следовательно, он посылает Т_u=0 в новый АД_ИДС 612. Т_передачи равны приблизительно Т мсек. В новом АД_ИДС 712 из-за несинхронности процесса таймера почти Т мсек проходит прежде, чем таймер принимает увеличенное значение. Также имеется аккумулированное дрожание по новому маршруту для заголовка (n+m). В результате считанное значение таймера, когда принимается заголовок (n+m), равно 2, в то время как реальное значение должно быть 4. Следовательно, имеется отклонение -2. До тех пор, пока условие 3 удовлетворяется, отклонение может быть исключено, и временная метка ППДРВ может быть правильно распакована.
В соответствии с осуществлением, Т_u передается по высокоскоростной сигнальной сети, соединенной со старым и новым АД_ИДС. Следовательно, Т_передачи должно быть максимум только несколько Т мсек. Однако случаи, где передача Т_u неуспешна или происходит недостаточно вовремя, должны быть рассмотрены. В этих случаях новый АД_ИДС будет извещать АД_терм, который посылает полную (несжатую) временную метку ППДРВ, до тех пор, пока не принято подтверждение.
Е. Уменьшение дрожания
В соответствии с вариантом осуществления настоящего изобретения, основанная на значении таймера схема сжатия, которая использует сжатую временную метку и локальный таймер приемника, может быть предсказана после удовлетворения следующих условий.
[Условие 1] (Максимальное интегральное дрожание + 2)<2k,
[Условие 2] (Переходное интегральное дрожание линии связи инфраструктура-терминал + 2)<2k,
[Условие 3] (Переходное интегральное дрожание линии связи терминал-инфраструктура + 2 + 1)<2k.
Из-за требований к разговору в реальном времени можно приемлемо ожидать, что различные дрожания, упомянуты выше, имеют длительность порядка нескольких Т мсек при нормальной работе. Следовательно, малое значение k, например 4 обычно более чем достаточно для того, чтобы дать возможность скорректировать любое отклонение или ошибку. Однако могут существовать ненормальные условия в маршруте из источника ППДРВ в приемник (отказы и т.д), при которых дрожания становятся чрезмерными (где правильная временная метка не может быть сгенерирована на основании сжатой временной метки и локального таймера приемника). Для того, чтобы справляться с этими случаями, может быть обеспечен функциональный блок уменьшения дрожания (ФУД) 115 (фиг.1) в качестве препроцессора к компрессору для того, чтобы отфильтровывать (или отбрасывать) пакеты, имеющие чрезмерное дрожание (например, когда никакие условия 1, 2 или 3, приведенные выше, не удовлетворяются).
Для того, чтобы отсеять или идентифицировать пакеты, имеющие чрезмерное МИД, функциональный блок уменьшения дрожания (ФУД) вычисляет дрожание каждого пакета, принятого через сеть 108. Если измеренное дрожание пакета больше, чем 2k-2, это считается чрезмерным дрожанием, и пакет отбрасывается. Иначе заголовок (или поле заголовка) сжимается (как описано выше), а затем передается в терминал приемника (например, терминал 130).
ФУД вычисляет дрожание текущего пакета следующим образом: дрожание=абсолютной величине (ВМ2 - ВМ1 - разность_таймера ФУД), где ВМ2 представляет временную метку текущего пакета, ВМ1 представляет временную метку предыдущего пакета и разность_таймера МИД представляет разность таймера_МИД между текущим пакетом и предыдущим пакетом (прошедшее время). Эта величина дрожания сравнивается с 2k-2. Если дрожание больше, чем 2k - 2, пакет отбрасывается. Иначе заголовок пакета сжимается в АД_ИДС, и пакет со сжатым заголовком посылается в приемник ППДРВ.
Этот функциональный блок уменьшения дрожания (ФУД) 115 представляет эффективный способ для того, чтобы ограничить дрожание в пакетах, принятых с помощью терминала приемника (так как дрожание, вносимое через РЧ линию связи, можно считать незначительным). Кроме того, ФУД предназначен для того, чтобы более эффективно использовать имеющуюся полосу частот по РЧ линии 140 связи. При отсутствии ФУД 115 один или более пакетов, имеющих дрожание больше, чем 2k - 2, могут передаваться в приемник ППДРВ через линию 140 связи. Однако в приемнике, если дрожание является чрезмерным (т.е. условие 1 не удовлетворяется), правильное значение временной метки не может быть регенерировано, заставляя приемник отбрасывать пакет. Поэтому ФУД предназначен для того, чтобы отфильтровывать те пакеты, имеющие чрезмерное дрожание, которые отбрасывались бы в приемнике в любом случае (избегая траты ценой полосы частот через линию 140 связи).
II. Схема вырезания заголовка
Второе осуществление настоящего изобретения представляет основанную на значении таймера схему вырезания заголовка, в которой заголовок или одно или более полей заголовка (например, включающее временную метку ППДРВ) вырезается из пакета ППДРВ перед передачей через узкополосную линию связи (например, РЧ линию 140 связи, фиг.1). В таком случае временная метка не предоставляется явно в пакете ППДРВ. Вместо этого информация синхронизации может быть явно предоставляться в регенератор заголовка для увеличения значения локального таймера на основании канала, по существу, постоянной скорости передачи разрядов или подобного каналу соединения между устройством вырезания заголовка (например, которое может присутствовать в АД_ИДС) и регенератора заголовка (например, который может присутствовать в терминале 130).
А. Обзор вырезания заголовка
Вырезание заголовка основано на идее, что для некоторых приложений или обслуживаний не обязательно переносить всю информацию, содержащуюся в заголовках IP/ПДП/ППДРВ, либо поскольку они не изменяются, либо поскольку они не существенны для приложения/обслуживания. Основная речь является типичным примером. Для того чтобы предоставить обслуживание, эквивалентное существующему сотовому речевому обслуживанию (например, через РЧ линию 140 связи, фиг.1), единственной переменной информацией заголовка, которая является существенной, является временная метка (ВМ) ППДРВ. Также желательно поддерживать прозрачность для порядкового номера (ПН) ППДРВ. Прозрачность в настоящем описании (для ПН) означает, что ПН после вырезания/регенерации равен исходному ПН. Вырезание заголовка полагается на явную информацию синхронизации, предоставленную схемоподобным соединением или каналом, по существу постоянной скорости передачи разрядов (где не вносится дрожание пакета) для того, чтобы дать возможность регенерировать временную метку ППДРВ на основании только локального таймера или счетчика. Это исключает необходимость посылать временную метку явно (или даже посылать сжатую временную метку). Для того, чтобы достигнуть прозрачности ПН, сжатые ПН могут использоваться в сочетании с информацией синхронизации из схемоподобного канала связи или соединения. Схемоподобное соединение предпочтительно представляет собой канал, имеющий, по существу, постоянную скорость передачи разрядов. Когда нет речевой выборки (например, интервал молчания), канал может быть выделен или не может быть выделен другому трафику и/или пользователям. Преимущества этой схемы вырезания заголовка включают в себя:
a) более низкие издержки заголовка, недостигаемые с помощью любой другой схемы (даже меньшие, чем в способе сжатого заголовка, описанного выше на фиг.1- фиг.6);
b) устойчивость к ошибкам, так как информация синхронизации для схемы подобной передачи или канала, по существу, постоянной скорости передачи разрядов в значительной степени не подвержена ошибкам;
c) возможность переключаться во время вызова с целью сжатия заголовка (например, способ фиг.1 - фиг.6), если требуется. Это может быть полезно, если вызов становится мультимедийным, когда не речевое средство добавляется к речи. Кроме того, заметим, что вырезание заголовка не принуждает или не препятствует статистическому мультиплексированию, которое, если реализуется, могло бы происходить на более низком уровне;
Фиг.8 - блок-схема, иллюстрирующая пример стека в соответствии с примерным осуществлением настоящего изобретения. Изображены стек 802 устройства вырезания заголовка и стек 830 регенератора заголовка. В качестве примера стек 802 устройства вырезания заголовка иллюстрирует некоторые из компонентов, которые могут быть использованы для того, чтобы вырезать одно или более полей заголовка из пакета, в то время как стек 830 регенератора заголовка иллюстрирует некоторые из компонентов, которые могут быть использованы для того, чтобы регенерировать заголовок пакета. Стек 802 устройства вырезания заголовка может быть обеспечен, например, внутри адаптера ИДС (например, АД_ИДС 112, фиг.1), в то время как стек 830 регенератора заголовка может располагаться, например, в адаптере терминала (например, АД_терм 136, фиг.1).
Ссылаясь на фиг.8, стек 802 устройства вырезания заголовка включает в себя уровни ППДРВ и ПДП, уровень IP. Уровни ППДРВ/ПДП/IP генерируют пакет 808 ППДРВ (который включает в себя временную метку в заголовке ППДРВ). Затем в стеке 802 устройства вырезания заголовка пакет 808 ППДРВ подается в устройство 810 вырезания заголовка (УВЗ) для вырезания или удаления одного или более заголовков или полей заголовка. Уровни L1 и L2 812 обеспечиваются, где L1 может быть уровнем линии связи данных, а уровень L2 может быть физическим уровнем, например. Аналогично стек 830 регенератора заголовка включает в себя соответствующие уровни L1 и L2 820, регенератор 820 заголовка (РЗ), который регенерирует заголовок (включая временную метку ППДРВ). Пакет 824 подается в уровень 826 IP, а затем в уровни 828 ПДП и ППДРВ. Уровни L1 и L2 стека 802 устройства вырезания заголовка и стека 830 регенератора заголовка находятся в связи через линию 815 связи или эфирный интерфейс (такой как РЧ линия 140 связи), или через сеть. Например, речь посредством пакетов IP передается через устройство 810 вырезания заголовка перед передачей через линию 815 связи (например, линию радиосвязи или сеть). На принимающем конце (в стеке 830 регенератора заголовка) регенератор 822 заголовка регенерирует заголовки перед доставкой получателю. Уровни L2/L1 могут обеспечить соединение, подобное каналу, т.е. обеспечение канала, по существу, постоянной скорости передачи разрядов между устройством 810 вырезания заголовка и регенератором 822 заголовка. Кроме того, для максимальной эффективности уровень L1 может также выполнять оптимизацию речевой полезной нагрузки, такую как защиту по нечетности, дополнительно к оптимизированному кодированию канала и перемежению. Заметим, что концепция вырезания заголовка применима независимо от того, выполнена ли оптимизация полезной нагрузки или нет.
При работе устройство 810 вырезания заголовка (УВЗ) исключает дрожание во входящих пакетах ППДРВ и воспроизводит их в соответствии с временной меткой (ВМ) ППДРВ в заголовке. Здесь исключение дрожания означает планирование передачи речевой выборки по соединению, подобному каналу или каналу, по существу, с постоянной скоростью передачи разрядов в соответствии с временной меткой. Иначе говоря, пакеты после удаления или вырезания заголовков передаются по каналу, подобному каналу передачи данных или каналу, по существу, с постоянной скоростью передачи разрядов в моменты времени на основании их временной метки в пакете. Пакеты с чрезмерным дрожанием отбрасываются с использованием, например, функционального блока уменьшения дрожания (ФУД 115, фиг.1). Регенератор заголовка (РЗ) 822 восстанавливает поля IP/ПДП/ППДРВ, которые могут быть систематизированы в следующие классы:
a) статичные: значение не изменяется в течение длительности сеанса, например, адреса IP;
b) не статичные: величина могла бы, в принципе, изменяться от одного пакета к следующему, но на практике для речи единственным нестатичным полем, которое, по существу, должно сохраняться через вырезание заголовка, является временная метка (ВМ) ППДРВ. Порядковый номер (ПН) ППДРВ также сохраняется. Статичные поля могут передаваться только один раз и вместе как часть полного заголовка на фазе инициализации в начале сеанса. Может быть использован надежный механизм доставки (например, использование подтверждений или символов подтверждения приема из приемника ППДРВ для того, чтобы подтвердить прием информации инициализации). Временная метка и порядковый номер будут вкратце описаны ниже.
1. Временная метка (ВМ) ППДРВ
В случае передачи речи временная метка (ВМ) ППДВР увеличивается линейно как функция хронирующего таймера (т.е. таймера источника) в источнике ППДРВ. Если интервал времени между последовательными речевыми выборками равен Т мсек, временная метка ППДРВ заголовка n (сгенерированная в момент времени n·Т мсек)=временной метке ППДРВ заголовка 0 (сгенерированного в момент времени 0)+шаг_по_индексу_ВМ·n, где "шаг_по_индексу_ВМ" и Т являются постоянными, зависимыми от кодека речи. Это справедливо, если имеется один пакет на речевую (голосовую) выборку. Более часто временная метка (ВМ) ППДРВ представляется в виде ВМ0+m·шаг_по_индексу_ВМ, где ВМ0<шага_по_индексу_ВМ, а m - целое. Тот же самый характер изменения виден в устройстве вырезания заголовка (УВЗ) после того, как исключено дрожание.
В начале сеанса или соединения выполняется фаза инициализации для того, чтобы инициализировать приемник ППДРВ (т.е. инициализировать регенератор заголовка). На фазе инициализации устройство вырезания заголовка продолжает посылать информацию инициализации (инфо_иниц) до тех пор, пока не будут приняты символы, подтверждающие прием, из приемника. Инфо_иниц (n) состоит, по существу, из заголовка n IP/ПДП/ППДРВ (включающего начальную временную метку и порядковый номер). Порядковый номер ППДРВ используется для того, чтобы идентифицировать этот конкретный заголовок инициализации, так как следующие заголовки инициализации будут включать в себя большие порядковые номера (допуская, что первый заголовок инициализации не подтвержден символами).
В регенераторе 822 заголовка (РЗ), когда инфо_иниц (n) принята правильно, РЗ 822 посылает символы подтверждения (n). Когда регенератор 822 заголовка (РЗ) подтвердил полный заголовок, УВЗ 810 прекращает посылать полные заголовки. РЗ 822 также запускает локальный счетчик временной метки, который инициализируется для временной метки ППДРВ, принятой в инфо_иниц (n). Счетчик ВМ аналогичен таймеру приемника на фиг.1, но счетчик ВМ увеличивается на "шаг_по_индексу_ВМ" каждые Т мсек (а не на 1, но это тот же принцип, как таймер приемника). Для следующих вырезанных речевых кадров (т.е. пакетов ППДРВ, где заголовки вырезаны или удалены) ВМ ППДРВ регенерируется из счетчика временной метки (ВМ). Таймер приемника (таймер ВМ) имеет ту же самую частоту, что тактовый генератор или таймер, используемый в источнике ППДРВ (т.е. таймер источника) для того, чтобы генерировать временную метку. Кроме того, соединение, подобное каналу, обеспечивает, по существу, постоянную скорость передачи разрядов и, следовательно, задержки пакетов не являются переменными или не изменяются от пакета к пакету. В результате отсутствует дрожание пакета благодаря каналу, по существу постоянной скорости передачи разрядов. Следовательно, после того, как приемник ППДРВ принимает информацию инициализации, включающую начальное значение временной метки (ВМ0), приемник ППДРВ может регенерировать правильную временную метку для каждого следующего пакета (после инициализации) на основании только счетчика временной метки (или таймера приемника).
Каналу, по существу, постоянной скорости передачи разрядов, обеспеченному между устройством 810 вырезания заголовка и регенератором 822 заголовка, необходимо только предоставить заранее определенное число бит в течение заранее определенного периода времени между устройством 810 вырезания заголовка и регенератором 822 заголовка, но эта функция может выполняться множеством различных способов. Например, канал может быть каналом постоянной скорости передачи разрядов, который выделен устройству 810 вырезания и регенератору 822 или совместно используется несколькими пользователями. Канал может обеспечивать, например, один бит каждую милисекунду или обеспечивать 100 бит каждые 100 милисекунд, но скорость данных может не быть постоянной (т.е. может изменяться) в пределах периода 10 мс. В качестве дополнительного примера канал может обеспечивать заранее определенное число бит в течение одной или более пачек данных между устройством вырезания заголовка и регенератором заголовка. Например, канал может обеспечивать порцию или пачку 1000 бит каждые 10 милисекунд. Следовательно, каналу, по существу, постоянной скорости передачи разрядов необходимо только предоставить заранее определенное число бит в течение заранее определенного периода времени, но он может выполнять это, используя различные способы.
2. Порядковый номер (ПН) ППДРВ
ПН ППДРВ (как видно с помощью УВЗ 810) обычно увеличивается на 1 от одного пакета к следующему. Единственными исключениями являются, когда пакеты теряются или передаются в неправильном порядке. В линии связи терминал-инфраструктура потеря или неправильный порядок пакета не ожидается, т.к. устройство 810 вырезания заголовка (УВЗ) и источник ППДРВ находятся близко друг к другу. Следовательно, следующее применимо к линии связи инфраструктура-терминал. УВЗ 810 выполняет ограниченную буферизацию для того, чтобы пытаться переупорядочить пакеты перед вырезанием их заголовков. Пакет с ПН ППДРВ n считается потерянным, если он все еще не принимается к моменту времени, когда пакет с ПН ППДРВ (n+1) имеет свой заголовок вырезанным. Пакет с ПН ППДРВ m передается в неправильном порядке, если к моменту времени, когда он принимается, пакет с ПН ППДРВ k имеет свой заголовок вырезанным и k>m. Длина буфера переупорядочивания является параметром конструкции. Слишком длинный буфер будет иметь результатом чрезмерно большую задержку, в то же время слишком короткий буфер будет иметь результатом слишком много отброшенных пакетов. Параметр также зависит от качества, обеспечиваемого сетью 108 IP "над" УВЗ 810. РЗ 822 поддерживает счетчик ПН, который является его лучшей оценкой ПН. С помощью отслеживания инфо_иниц РЗ 822 может получать начальный ПН и число бит, содержащихся в пакете, также известных как размер пакета (размер n). РЗ 822 инициализирует счетчик ПН с ПН в инфо_иниц. РЗ 822 затем "считает" речевые биты, принятые через канал, по существу, постоянной скорости передачи разрядов, и увеличивает счетчик ПН на 1 для каждых размер_п бит речи (он не увеличивается, когда пакет не принимается, например, во время интервала молчания). В соответствии с осуществлением, РЗ 822 фактически не считает принятые биты. Вместо этого счетчик ПН в РЗ 822 увеличивается на 1 в течение каждой длительности пакета, где длительность пакета является временем, требуемым для того, чтобы принять пакет битов (п_бит). Следовательно, длительность пакета будет функцией размера пакета (размер_п) и скорости передачи разрядов (которая постоянна через соединение, подобное каналу).
Следовательно, можно видеть, что после того, как происходит инициализация (предоставление начального ПН и ВМ в РЗ 822), РЗ 822 может генерировать временные метки для последовательных пакетов с помощью увеличения счетчика ВМ на "шаг_по_индексу_ВМ" каждые Т мсек и с помощью увеличения счетчика ПН на 1 в течение каждой продолжительности пакета. Следовательно, после инициализации эти поля могут быть регенерированы в РЗ 822 со ссылкой только на локальный тактовый генератор (допуская, что "шаг_по_индексу_ВМ" и длительность пакета известны РЗ 822). Увеличение счетчика ПН на основании времени (длительности пакета), а не фактического счета принятых бит, является более устойчивым к ошибкам. В случае, когда один или более бит потеряны перед тем, как они достигнут РЗ 822, счетчик ПН будет отражать правильное значение и на него не будут влиять потерянные биты.
В. Нарушения непрерывности и последовательности
Вышеприведенное описание показывает, что ВМ и ПН могут быть полностью вырезаны с помощью УВЗ 810 перед передачей через линию связи (например, РЧ линию 140 связи), а затем регенерированы с помощью РЗ 822, поддерживающего локальный тактовый генератор или таймер (например, увеличивая счетчик ВМ на "шаг_по_индексу_ВМ" каждые Т мсек и увеличивая счетчик ПН на 1 в течение каждой длительности пакета). Однако одно или более нарушений непрерывности может произойти, которые, если решение этой проблемы не предусмотрено, могли бы, вероятно, сделать недействительным основанный на значении таймера подход регенерации, описанный выше. Некоторые из событий нарушения непрерывности могут включать в себя:
a) событие "новый скачок". Переходное изменение пакетами в разности ВМ между пакетами n и n+1 (начало нового скачка в разговоре); это может быть также описано как нелинейное изменение или сдвиг временной метки (ВМ);
b) событие "изменение размера". Изменение размера пакета ППДРВ (размера_п), вызванное изменением числа речевых кадров, упакованных в пакете, и/или размера речевого кадра;
с) событие "изменение шага_по_индексу". Изменение "шага_по_индексу_ВМ" (вызванное, например, изменением типа полезной нагрузки типа ТПН).
Последовательность заголовков определяется как последовательность заголовков пакетов, такая, что все пакеты имеют Т одинаковый размер (размер_п), порядковые номера являются последовательными, т.е. (n+1), (n+2) и т.д. и временные метки (ВМ) последовательных пакетов разделены одинаковым приращением "шага_по_индексу_ВМ". Иначе говоря, последовательность заголовков может считаться последовательностью заголовков, имеющих некоторые общие поля пакетов (например, размер пакета) и другие поля, которые увеличиваются линейно в последовательных пакетах, такие как ВМ и ПН. Последовательность является обычно скачком в разговоре (например, последовательностью речевых выборок, подаваемых между интервалами молчания).
Переход от одной последовательности к другой может быть вызван любым из событий нарушения непрерывности в сочетании. В этой схеме, когда последовательность начинается (а предыдущая последовательность закончена), УВЗ 810 определяет, какое событие нарушения непрерывности произошло, и, соответственно, посылает требуемую информацию инициализации последовательности (иниц_последовательности) в РЗ 822.
Фиг.9 - таблица, иллюстрирующая информацию, которая может быть предоставлена в сообщениях в соответствии с примерным осуществлением изобретения. Инфо_иниц обычно включает в себя полный заголовок (включающий полные ПН и ВМ) и посылается из УВЗ 810 в РЗ 822 (для того, чтобы инициализировать РЗ 822) в начале сеанса. УВЗ 810 будет продолжать повторно посылать инфо_иниц до приема символов подтверждения из РЗ 822 перед продолжением посылки пакетов данных без заголовков. После этого может быть одна или более последовательностей, которые могут встретиться, что может требовать дополнительных обновлений полей или значений, которые изменяются от одной последовательности к другой. Эти измененные значения подаются в РЗ 822 с использованием иниц_последовательности.
Иниц_последовательность включает в себя значение размер_п (если он изменился от предыдущей последовательности) и значение "шага_по_индексу_ВМ" (если он изменился от предыдущей последовательности). Если не происходит нелинейный сдвиг для ВМ от одной последовательности к следующей, РЗ 822 может продолжать регенерировать ВМ на основании счетчика ВМ, используемого в старой последовательности. Однако, если происходит нелинейный сдвиг между последовательностями (т.е. потеря синхронизации), обновленная временная метка должна быть явно послана в иниц_последовательности из УВЗ 810 в РЗ 822. Обновленная ВМ может посылаться как сжатая временная метка 144 (смотри фиг.4), описанная выше, до тех пор, пока удовлетворяется условие 1, как описано выше. Иначе, если условие 1 не удовлетворяется, полная обновленная временная метка должна передаваться в РЗ 822.
В режиме подтверждения после того, как УВЗ 810 посылает иниц_последовательности в РЗ 822, УВЗ 810 может потребовать РЗ 822 подтвердить (или послать символы подтверждения) прием обновленной информации последовательности (иниц_последовательности) перед тем, как УВЗ 810 может посылать дополнительные пакеты данных (пакеты без заголовков) в РЗ 822. В режиме подтверждения или режиме получения символов подтверждения УВЗ 810 повторно посылает сообщение иниц_последовательности в РЗ 822 до тех пор, пока УВЗ 810 не примет символы подтверждения из РЗ 822 для сообщения иниц_последовательности. После приема символов подтверждения из РЗ 822 УВЗ 810 будет затем посылать остальные пакеты последовательности как пакеты с вырезанными заголовками (так как ВМ и ПН для пакетов новой последовательности могут быть теперь регенерированы с использованием только локального тактового генератора или таймера). Требование символов подтверждения (в подтвержденном режиме) для сообщения иниц_последовательности предотвращает посылку из УВЗ 810 новой последовательности без извещения РЗ 822. Например, если УВЗ 810 пошлет новое сообщение иниц_последовательности (например, предоставляя обновленные поля или информацию, связанную с событием нарушения непрерывности), в то время как линия связи между УВЗ 810 и РЗ 822 временно прервана, УВЗ 810 не может продолжать посылать пакеты с вырезанными заголовками до первого получения символов подтверждения из РЗ 822.
Когда УВЗ 810 уверено, что РЗ 822 принял информацию иниц_последовательности, кадры речи (например, пакеты данных) затем посылают без заголовка для оставшейся части последовательности. Для этих кадров без заголовка ВМ и ПН восстанавливаются, использую локальный таймер в РЗ 822.
УВЗ 810 может определять события следующим образом:
а) событие "новый скачок". Разность ВМ между пакетом, имеющим ПН=n, и пакетом, имеющим ПН=(n+1), отличается от "шага_по_индексу_ВМ". Это означает начало новой последовательности или скачок в разговоре. В этом случае для того, чтобы гарантировать синхронизацию ПН, иниц_последовательности состоит из ПН или сжатого ПН (С_ПН). Если не было посланной информации ПН, РЗ 822 не может быть уверен, что увеличение счетчика ПН на "1" в течение длительности и пакета даст точный ПН. Это имеет место из-за того, что могут существовать разъединения линии связи, во время которых речевые биты были потеряны между УВЗ 810 и РЗ;
b) событие "изменение размера": размер пакета ППДРВ, имеющего ПН=n, отличается от предыдущего принятого пакета; это будет влиять на значение длительности пакета (скорость, с которой счетчик ПН увеличивается). Иниц_последовательности включает в себя новое значение размера_п;
с) событие "изменение шага по индексу": определяемое из анализа поля типа полезной нагрузки ТПН в пакете ППДРВ. Иниц_последовательности включает в себя новое значение шага_по_индексу_ВМ.
Эти события нарушения непрерывности представлены только в качестве примера. Возможны другие типы событий нарушения непрерывности.
События могут иметь место в сочетании (составное событие). В этом случае иниц_последовательности включает в себя всю информацию из соответствующих основных событий. Например, если "новый скачок" случается в сочетании с "изменением размера", иниц_последовательности={С_ПН, новое значение размера_п}.
С. Процедура для посылки инфо_иниц, иниц_последовательности.
Инфо_иниц обычно посылается в режиме посылки символов подтверждения, в соответствии с чем УВЗ 810 будет посылать инфо_иниц до тех пор, пока не будет подтверждения от РЗ 822. Иниц_последовательности может посылаться в режиме посылки символов подтверждения или не подтверждения. В режиме посылки символов подтверждения УВЗ 810 будет посылать иниц_последовательности в каждом пакете до тех пор, пока не будет подтверждения от РЗ 822. Когда символы подтверждения приняты, УВЗ 810 посылает только речевые биты для оставшейся последовательности без какого-либо заголовка. В режиме не подтверждения УВЗ 810 будет посылать иниц_последовательности определенное (заранее определенное) число раз перед посылкой речевых бит только для остатка последовательности. Не обязательно, иниц_последовательности может быть повторена в некотором интервале в течение некоторого интервала, для того чтобы гарантировать, что РЗ 822 синхронизировано (например, имеет правильные значения).
Составное событие, которое включает в себя основные события "изменение размера" или "изменение шага по индексу", будет обычно требовать посылку иниц_последовательности в режиме подтверждения. В этом случае иниц_последовательности будет нести номер генерации. Номер генерации представляет собой счетчик, увеличивающийся всякий раз, когда изменяется размер_п или шаг_по_индексу_ВМ. Он используется в случае, когда размер_п или "шаг_по_индексу_ВМ" изменяется в быстрой последовательности, для того чтобы отслеживать, какое изменение подтверждено РЗ 822. Например, если размер_п изменяется от значения размер_п_0 в размер_п_1, тогда опять для того, чтобы оценить размер_п_2, УВЗ 810 будет посылать иниц_последовательности, содержащую размер_п_1, с номером генерации, скажем, равной 3, затем другую иниц_последовательности, содержащую размер_п_2, с номером генерации 4. Прием символов подтверждения после второй иниц_последовательности будет неоднозначным, если она не передает номер генерации подтвержденной иниц_последовательности. Если составное событие является только "новым скачком", иниц_последовательности может посылаться в режиме символов подтверждения или не подтверждения. Режим символов не подтверждения основан на идее, что С_ПН будет повторяться, по меньшей мере, в начале каждого скачка в разговоре. Следовательно, вероятность того, что РЗ 822 никогда повторно не синхронизирует свой ПН, бесконечно мала. Кроме того, если ПН рассинхронизирован, это только вызвано потерей пакета между УВЗ 810 и РЗ 822. Следовательно, эффектом рассинхронизации ПН является то, что регенерированы ПН< правильного ПН. Это является переходной несогласованностью, которая корректируется с помощью увеличения ПН на величину разности, как только принят следующий С_ПН. Увеличение ПН более чем на 1 будет интерпретироваться принимающей оконечной точкой ППДРВ как потеря (потери) пакта и обычно не должно влиять на воспроизведение самого принятого пакета. Режим не подтверждения также позволяет обходиться без канала, для того чтобы нести символы подтверждения в стабильном состоянии, т.е. после установки и между передачами обслуживания.
D. Передача обслуживания
Когда вырезание/регенерирование заголовка применяется к сотовым системам или другим системам, где терминалы станций могут перемещаться от одного адаптера сети (АД_ИДС) к другому, должны учитываться передачи обслуживания.
Передача обслуживания может быть смоделирована как проходящая через три фазы: подготовка передачи обслуживания, выполнение передачи обслуживания и завершение передачи обслуживания. Имеется функциональный блок, называемый диспетчером передачи обслуживания (ПО) (который может быть обеспечена в ИДС 110), который принимает решение начать подготовку передачи обслуживания. Традиционно подготовка передачи обслуживания состоит из обмена сигнальными сообщениями с целевой системой для того, чтобы зарезервировать ресурсы в целевой системе и получить необходимую информацию о целевой ячейке. Выполнение передачи обслуживания инициируется диспетчером ПО источника, посылающим команду ПО в терминал приемника (или подвижную станцию) вместе с информацией о целевой ячейке. В ответ на команду ПО терминал (или подвижная станция) выполняет передачу обслуживания. Завершение передачи обслуживания включает в себя обмен сигнальными сообщениями между терминалом или подвижной станцией и целевой системой, извещение источника и освобождение больше не требуемых ресурсов (например, в источнике).
1. Линия связи терминал-инфраструктура
АД_ИДС действует как РЗ 822 для передачи данных по линии связи терминал-инфраструктура (смотри линию связи терминал-инфраструктура 142, фиг.1). Целевой АД_ИДС должен быть обеспечен необходимой информацией для того, чтобы регенерировать полный заголовок. Основные ограничения включают в себя непрерывность ВМ ППДРВ и ПН ППДРВ во время передачи обслуживания (ПО).
Фиг.10 - схема, иллюстрирующая процесс передачи обслуживания в соответствии с примерным осуществлением настоящего изобретения. Терминал 130 (или подвижная станция ПС), в качестве примера, может извещать АД_ИДС 112 источника, что размер пакета изменился, используя сообщение иниц_последовательности, шаг 902. АД_ИДС 112 источника подтверждает это обновление в размере_п, шаг 904. Затем терминал 130 перемещается в новую область, обслуживаемую целевым АД_ИДС 114, и диспетчер 901 ПО извещает АД_ИДС источника о подготовке передачи обслуживания, шаг 906. АД_ИДС источника затем посылает информацию инициализации_ПО (иниц_ПО_u) в целевой АД_ИДС 114, шаг 908. Иниц_ПО_u является оцененным представлением полного заголовка 1Р/ПДП/ППДРВ. Оцененное представление состоит из последнего регенерированного заголовка, но с ВМ ППДРВ, замененной на ВМ0_u, последнее_m_u, "шаг_по_индексу_ВМ_u" и значение таймера ВМ_u. Эти значения связаны с последней_ВМ, причем ВМ ППДРВ последнего регенерированного заголовка следующим образом: последняя ВМ=ВМ0_u+последнее_m_u·шаг_по_индексу_ВМ_u. Таймер_ВМ_u представляет счетчик в АД_ИДС источника, который увеличивается на 1 каждые Т мсек. Кроме того, иниц_ПО_u включает в себя размер_п_u (текущий размер пакета в направлении линии связи терминал-инфраструктура). Из иниц_ПО_u целевой АД_ИДС выводит статические поля, а также аппроксимирует начальные значения для изменяющихся полей (ВМ ППДРВ и ПН ППДРВ). Команда передачи обслуживания посылается из диспетчера 901 ПО в терминал 130 (подвижную станцию), шаг 910, заставляя терминал 130 переключиться и теперь использовать целевой АД_ИДС для связи. Однако диспетчер ПО не обязательно, как другие способы, может использоваться для того, чтобы инициализировать передачу обслуживания.
Передача обслуживания рассматривается как прерывание любой входящей последовательности. Следовательно, после завершения передачи обслуживания посылаемая самая первая речевая выборка всегда обрабатывается как новая последовательность, что требует посылки информации инициализации (синхр_ПО_u), шаг 912. Есть три важных момента времени: ST1, который является началом подготовки ПО, ST2, который является приемом ПС команды ПО, и ST3, который является моментом времени, когда АД_ИДС источника делает моментальную копию своей внутренней информации, посылаемой в иниц_ПО_u. Пусть ТОП - время, прошедшее от SТ1 до ST2. Из структуры системы известна верхняя граница относительно ТОП: ТОП<ТОП_макс. Четвертым важным моментом времени является ST4: первый момент времени, когда терминал 130 хочет возобновить посылку речи в целевой системе после ПО. В ST4 терминал 130 (ПС) определяет, подтверждено ли самое последнее изменение в размере_п_u к моменту времени ST2-ТОП_макс. Если да, терминал 130 уверен, что иниц_ПО_u содержала новое значение размера_п_u. Следовательно, не нужно включать его в синхр_ПО_u. Это имеет место из-за того, что моменты времени упорядочены как ST1<ST3<ST2. Иначе терминал 130 (ПС) будет включать в себя новое значение размера_п_u в синхр_ПО_u. Тот же самый алгоритм применяется к "шагу_по_индексу_ВМ_u".
Во всех случаях синхр_ПО_u включает в себя С_ПН. С_ПН требуется, так как было прерывание, вызванное ПО. С_ПН требуется, если скорости передачи разрядов, длительности пакетов и т. д. в исходной и целевой системах не синхронизированы. Это, вероятно, может иметь место. Синхр_ПО_u предпочтительно посылается в режиме подтверждения.
Иниц_ПО_u и синхр_ПО_u используются целевым АД_ИДС 114 для того, чтобы регенерировать полный заголовок следующим образом. Все поля, за исключением ВМ и ПН, копируются из иниц_ПО_u. ПН получается с помощью распаковки С_ПН в синхр_ПО_u. ВМ определяется с помощью распаковки С_ВМ в синхр_ПО_u.
2. Линия связи инфраструктура-терминал
Роль УВЗ передается от одного АД_ИДС другому. После передачи обслуживания заголовки направляются по новому маршруту, идущему через новый АД_ИДС, вместо старого АД_ИДС. В результате может быть нарушение непрерывности в синхронизации для регенерации ВМ в терминале 130 (ПС).
Для того чтобы управлять передачей обслуживания для линии связи терминал-инфраструктура, когда диспетчер ПО принимает решение начать подготовку передачи обслуживания, он извещает АД_ИДС источника. АД_ИДС источника затем посылает информацию инициализации_ПО (иниц_ПО_d) в целевой АД_ИДС. Иниц_ПО_d состоит из размера_п_d и "шага_по_индексу_ВМ_d", которые являются значениями, последними подтвержденными ПС, вместе с их номером генерации. Первый момент времени, когда целевой АД_ИДС хочет послать речь после ПО, целевой АД_ИДС должен послать синхр_ПО_d. Синхр_ПО_d состоит из С_ВМ и С_ПН. Если новый размер_п отличается от размера_п_d, синхр_ПО_d также содержит новое значение размера_п. Если нет, синхр_ПО_d содержит только номер генерации n размера_п_d. ПС использует номер генерации для того, чтобы извлечь правильный размер_п. Это предполагает, что ПС сохранила в памяти последние несколько значений размера_п вместе с их номером генерации. Тот же самый алгоритм применяется к шагу_по_индексу_ВМ. Иниц_ПО_d посылается до тех пор, пока не будет подтвержден АД_ПС. Синхр_ПО_d посылается в режиме символов подтверждения. Процесс передачи обслуживания изображен на фиг.2. Изображенным случаем является: самое последнее изменение размера_п_u подтверждено к моменту времени SТ2-ТОП_макс.
Е. Посылка сообщений
Каждая вышеупомянутая информация может посылаться по основному каналу или по вспомогательному каналу. В подходе с основным каналом информация посылается по речевому каналу при удалении наименее значащих речевых бит. В подходе с вспомогательным каналом специализированный переходный канал устанавливается и разрывается, когда принято подтверждение. Возможно сочетание использования подходов основного канала и вспомогательного канала, в соответствии с чем делается попытка подхода с вспомогательным каналом, но подход с основным каналом является резервным решением, если нет ресурса для переходного канала. Подтверждения могут посылаться по основному каналу или по вспомогательному каналу, по их собственному специализированному каналу символов подтверждения или по вспомогательному каналу, вложенному в другие специализированные переходные каналы (ПКИ и т.д.)
1. Основной канал
Независимо от того, как реализован речевой канал, подобный каналу передачи данных, он может быть смоделирован как канал, который может передавать В бит каждые Т миллисекунд. Если S - размер речевого кадра в бит, S<B. С представляемыми кодеками речи инфо_иниц ожидается большей, чем S. Следовательно, инфо_иниц не может быть послана в интервале одного речевого кадра. Однако имеется коэффициент R>=1, такой, что (R-1)·S<H≤R·S. Инфо_иниц (n) могут быть перенесены по каналу, подобному каналу передачи данных, с помощью разделения их на порции данных по В бит и посылки одной порции каждые Т миллисекунд. Полный заголовок будет занимать интервал из R последовательных речевых выборок. Фиг.11 - схема, иллюстрирующая инициализацию для основного канала в соответствии с примерным осуществлением изобретения. Если имеется непрерывная речевая активность, посылаемыми инфо_иниц являются инфо_иниц(0), инфо_иниц(R), инфо_иниц(2R) и т.д. до тех пор, пока не будут приняты символы подтверждения. На фиг.11 эти сообщения инфо_иниц изображены как инфо_иниц 500 и инфо_иниц 502. Устройство вырезания заголовка подтверждает инфо_иниц 500, но не прежде, чем УВЗ 810 пошлет вторую инфо_иниц 502. Следующий пакет 504 посылается из УВЗ 810 в РЗ 822 как полезная нагрузка (полезные данные) 504 пакета (без заголовка). РЗ 822 затем регенерирует ПН и ВМ и другие поля заголовка.
Инфо_иниц(0) замещает речевые выборки 0, 1, ..., (R-1), инфо_иниц(R) замещает речевые выборки R, (R+1), ..., (2R-1) и т.д., если имеется нарушение непрерывности речевой активности, например, за заголовком 0 следует интервал молчания L·T мсек, тогда инфо_иниц(0) повторяется. Другая информация (иниц_последовательности, синхр_ПО_d, синхр_ПО_u, символы подтверждения), все имеют размер значительно меньше S, так что они "вписываются" в интервал речевого кадра. Они отбрасывают последние наименьшие значащие речевые биты. Для простоты анализ не принимает во внимание расширение, вызванное кодированием канала, но концепция справедлива с кодированием или без кодирования канала. Процесс инициализации для основного канала изображен на фиг.3.
2. Вспомогательный канал
Фиг.12 - схема, иллюстрирующая инициализацию для вспомогательного канала в соответствии с примерным осуществлением изобретения. В подходе с вспомогательным каналом устанавливается отдельный канал с подходящей полосой частот для того, чтобы передавать только инфо_иниц одновременно с речью, которая переносится по речевому каналу. Отдельный канал называется переходным каналом инициализации (ПКИ). Система может пытаться выделить достаточную полосу частот для ПКИ для того, чтобы дать возможность посылать полный заголовок один раз каждые Т мсек. ПКИ создан так, чтобы иметь постоянную зависимость синхронизации с речевым каналом.
Подтверждения могут посылаться по вспомогательному каналу с помощью выделения переходного канала подтверждения (ПКП) или посылаться по вспомогательному каналу, но вложенному в прямой переходный канал. Синхр_ПО_u может посылаться по вспомогательному каналу через переходный канал синхронизации передачи обслуживания линии связи терминал-инфраструктура (ПКСПОЛСТИ). ПКСПОЛСТИ разрывается, когда синхр_ПО_u подтверждается. То же самое применимо к синхр_ПО_d, которая использует переходный канал синхронизации передачи обслуживания линии связи инфраструктура-терминал (ПКСПОЛСИТ).
3. Случаи сбоя
Могут быть случаи, когда целевой АД_ИДС не будет иметь иниц_ПО к моменту времени, когда закончено выполнение передачи обслуживания. Причины охватывают чрезмерную задержку в сигнальной сети между двумя АД_ИДС, необходимость выполнить передачу обслуживания быстро и т. д. В этих случаях сеть будет посылать извещение в ПС, которая затем повторно запускает процесс инициализации, как в начале вызова.
4. Распространенный случай, когда размер_п и шаг_по_индексу_ВМ являются постоянными
Случай, когда размер_п и "шаг_по_индексу_ВМ" являются постоянными, является значительно наиболее распространенным для речи. В этом случае не применяются никакие соображения, вызванные возможным изменением размера_п и шага_по_индексу ВМ. Общая схема упрощается. Иниц_ПО_d не требуется. Синхр_ПО_d и синхр_ПО_u только передают С_ПН и С_ВМ. Иниц_последовательности передает С_ПН. Она передает только С_ВМ, если имеется изменение синхронизации от одной последовательности к следующей. Терминал (ПС) не должен хранить в памяти последние несколько значений размера_п и "шага_по_индексу_ВМ". В случае ПО терминал (ПС) не должен определять, включать ли размер_п в синхр_ПО_u.
Как описано выше, единственной информацией в заголовках IP/ПДП/ППДРВ, которая является существенной для основной речи, являются статичные поля и временная метка (ВМ) ППДРВ, порядковый номер (ПН) ППДРВ также очень желателен. Схема, описанная в настоящем описании, достигает "прозрачности" для этих информационных полей и обеспечивает выгодную эффективность сжатия непроизводительных затрат заголовка. Непрерывность всех статичных и не статичных полей поддерживается в течение передачи обслуживания. Управление полосой частот также становится более легким, так как возможны подходы основного и вспомогательного канала. Так как "прозрачность" поддерживается для ВМ ППДРВ и ПН ППДРВ, даже возможно переключаться туда и обратно между схемой вырезания заголовка и схемой сжатия заголовка, описанных в настоящем описании, что поддерживает прозрачность для всех полей. Переключение к сжатию заголовка может быть необходимым, когда, например, другая среда добавляется к речи.
III. Схема, основанная на значении таймера и опорной отметке
А. Обзор схемы, основанной на значении таймера и опорной отметке
Схема, основанная на значении таймера и опорной отметке, основана на наблюдении, что (1) временные метки ППДРВ, когда генерируются в источнике ППДРВ, коррелированны с линейной функцией от прошедшего времени между пакетами, и (2) ВМ ППДРВ представлены в виде ВМ0 + коэффициент·шаг_по_индексу_ВМ, где ВМ0 и шаг_по_индексу_ВМ являются константами, и коэффициент - целое (далее коэффициент будет упоминаться как упакованная ВМ ППДРВ). Следовательно, при нормальной работе временные метки ППДРВ, принятые в декомпрессоре, также коррелированны с непрерывно увеличивающимся таймером с расхождением, созданным только аккумулированным дрожанием между источником и декомпрессором. Так как аккумулированное дрожание включает в себя дрожание в "сети" (дрожание между источником и компрессором) и "радио" дрожание (дрожание между компрессором и декомпрессором), компрессор может вычислить верхнюю границу аккумулированного дрожания с помощью прибавления к полученному дрожанию в сети верхнего предела для радиодрожания. Компрессор затем просто посылает в качестве сжатой ВМ ППДРВ " k" наименьших значащих бит упакованной ВМ ППДРВ, декомпрессор распаковывает ВМ ППДРВ сначала с помощью вычисления аппроксимации, а затем улучшением аппроксимациии информацией в сжатой ВМ ППДРВ для того, чтобы определить точное значение. Аппроксимация получается с помощью прибавления к ВМ ППДРВ предыдущего распакованного заголовка значения, пропорционального времени, прошедшего с момента, когда был принят предыдущий сжатый заголовок. Точное значение ВМ ППДРВ определяется как значение, наиболее близкое к аппроксимации, k наименьших значащих бит которого соответствующей упакованной ВМ ППДРВ совпадают со сжатой ВМ ППДРВ. Компрессор выбирает значение k как наименьшее допустимое значение, которое позволит декомпрессору распаковывать правильно, на основании верхней границы аккумулированного дрожания.
В. Случай речи
Схема, основанная на значении таймера и опорной отметке, описана ниже по отношению к речи. В качестве примера, если интервал времени между последовательными речевыми выборками равен 20 мсек, тогда временная метка ППДРВ заголовка n (сгенерированная в момент времени n·20 мсек)=временной метке ППДРВ заголовка 0 (сгенерированная в момент времени 0)+шаг_по_индексу_ВМ·n, где шаг_по_индексу_ВМ - константа, зависящая от кодека речи. Следовательно, ВМ ППДРВ в заголовках, поступающих в декомпрессор, также следуют линейному закону как функция времени, но менее точно, из-за дрожания задержки между источником и декомпрессором. При нормальной работе (отсутствие аварийных отказов или сбоев) задержка дрожания ограничена, чтобы удовлетворять требованиям разговорного трафика в реальном времени.
В этой схеме приемник использует таймер для того, чтобы получить аппроксимацию ВМ ППДРВ текущего заголовка (распаковываемого заголовка), затем улучшает аппроксимацию дополнительной информацией, принятой в сжатом заголовке.
Например, допустим следующее:
последний_заголовок - последний успешно распакованный заголовок, где последняя_ВМ - последняя ВМ ППДРВ, а ВМ_п -последняя упакованная ВМ ППДРВ (в приемнике);
Т - нормальный промежуток времени между двумя последовательными речевыми выборками;
шаг_по_индексу_ВМ - приращение ВМ ППДРВ каждые Т мсек;
текущий_заголовок - заголовок текущего распаковываемого пакета, где текущая_ВМ - текущая ВМ ППДРВ, а текущая_ВМ_п -текущая упакованная ВМ ППДРВ;
RFH - порядковый номер заголовка, подтверждение которого было принято компрессором, где RFH_ВМ и ВМ ППДРВ, а RFH_ВМ_п
- упакованная ВМ ППДРВ;
таймер - таймер, увеличивающийся каждые Т мсек, где как компрессор, так и декомпрессор каждый поддерживает свой таймер, обозначенный таймер_S и таймер_R соответственно;
RFH_T - значение таймера, когда принят RFH, а текущее_Т - значение того же таймера, когда принят текущий_заголовок; и
дрожание_С (n, m) - наблюдаемое дрожание в сети для заголовка n относительно заголовка m (заголовок n принимается последовательно с заголовком m),
где дрожание_С (n, m) вычисляется компрессором следующим образом:
дрожание_С (n, m)=таймер(n,m)-(упакованная ВМ ППДРВ заголовка n-упакованная ВМ ППДРВ заголовка m),
где таймер(n, m) - время, прошедшее от заголовка m до заголовка n, выраженное в единицах Т мсек. Дрожание_C (n, m) может быть положительным или отрицательным. Дрожание_С в компрессоре представляет дрожание в сети, квантованное в единицах Т мсек.
Дрожание_Р (n, m) представляет радиодрожание заголовка n относительно заголовка m, предсказанное компрессором. Дрожание_Р зависит только от характеристик канала компрессор-декомпрессор (К-КД). Дрожание_Р не должно вычисляться точно, достаточна хорошая верхняя граница дрожания_Р. Например, верхняя граница может быть макс-радио_дрожанием, максимальным дрожанием в К_КД, если известно.
Следовательно, в соответствии с вышеприведенным, аккумулированное дрожание для пакета вычисляется как сумма дрожания в сети и радио.
Дополнительно ВМ ППДРВ вычисляется следующим образом:
ВМ ППДРВ=ВМ0+коэффициент·шаг_по_индексу_ВМ,
где ВМ0<шаг_по_индексу_ВМ, а коэффициент - целое.
Следовательно, последняя_ВМ=ВМ0+последний коэффициент·шаг_по_индексу_ВМ, и
Текущая_ВМ=ВМ0+текущий_коэффициент·шаг_по_индексу_ВМ.
1. Компрессор
Компрессор посылает сжатый заголовок, k наименьших значащих бит текущей_ВМ_п.
Компрессор выполняет следующий алгоритм для того, чтобы определить k:
вычислить макс_дрожание_сети;
вычислить J1=макс_дрожание_сети+макс_радио_дрожание +J,
где J=2 - коэффициент для того, чтобы учесть погрешность квантования, вызванную таймерами в компрессоре и декомпрессоре, которая может быть +1 или -1; и
найти наименьшее целое k, которое удовлетворяет условию:
(2·J1+1)<2k.
Дрожание в сети в компрессоре может быть вычислено в соответствии с тремя различными способами, а именно первым способом, проиллюстрированным на фиг.13, вторым способом, проиллюстрированным на фиг.14, и третьим способом, проиллюстрированным на фиг.15. Второй и третий способы описаны ниже как вариант 1 и вариант 2 соответственно. Первый способ адекватен вычислению дрожания в сети. Однако предпочтительными способами для вычисления дрожания в сети в компрессоре являются второй и третий способы, описанные как вариант 1 и вариант 2 соответственно ниже.
Как проиллюстрировано на фиг.13, в соответствии с первым способом дрожание в сети для конкретного пакета в компрессоре вычисляется с использованием информации относительно непосредственно предшествующего пакета. Следовательно, например, дрожание в сети для пакета 2 (j2) вычисляется с использованием информации относительно пакета 1, дрожание в сети для пакета 3 (j3) вычисляется с использованием информации относительно пакета 2, дрожание в сети для пакета 4 (j4) вычисляется с использованием информации относительно пакета 3 и дрожание в сети для пакета 5 (j5) вычисляется с использованием информации относительно пакета 4.
Следовательно, в соответствии с фиг.13 дрожание для пакета 2 равно вычисленному дрожанию j2, дрожание в сети для пакета 3 равно вычисленному дрожанию j3, дрожание в сети для пакета 4 равно вычисленному дрожанию j4 и дрожание в сети для пакета 5 равно вычисленному дрожанию j5.
Вариант 1
Этапы, используемые для того, чтобы вычислить дрожание в сети для второго способа варианта 1, проиллюстрированы на фиг.14. В варианте 1 дрожание в сети для конкретного пакета вычисляется с использованием информации относительно опорного пакета. Таким образом, допуская, что пакет 2 является опорным пакетом, как проиллюстрировано на фиг.14, дрожание j3 пакета 3 вычисляется с использованием информации относительно опорного пакета 2, дрожание j4 пакета 4 вычисляется с использованием информации относительно опорного пакета 2 и дрожание j5 пакета 5 вычисляется с использованием информации относительно опорного пакета 2.
В соответствии со вторым способом варианта 1, как проиллюстрировано на фиг.14, если допускается, что дрожание j3=2, дрожание j4=3, а дрожание j5=-1, тогда перед пакетом 5 мин_дрожание_С=2, а макс_дрожание_С=3, тогда как в пакете 5 мин_дрожание_С=-1, а макс_дрожание_С=3. Следовательно, максимальное (макс) дрожание сети в пакете 5= макс_дрожание_С - мин_дрожание_С=4. Таким образом, макс_дрожание_сети для пакета 5 равно 4. Уравнения для вычисления дрожания в сети в соответствии со способом варианта 1 и его описание изложены ниже.
Дрожание в сети для текущего пакета вычисляется в соответствии со способом варианта 1 следующим образом:
Дрожание_С (текущий заголовок, RFH)= (текущее_Т- RFH_T)-(текущая_ВМ_п- RFH_BM-п);
Обновить макс_дрожание_С и мин_дрожание_С, где макс_дрожание_С определяется как макс{дрожание_C(j, RFH)} для всех заголовков j, посланных с RFH и включающих RFH. Мин_дрожание_С определяется как мин {дрожание_С(j, RFH)} для всех заголовков j, посланных с RFH и включающих RFH; и
Вычислить макс_дрожание_сети=(макс_дрожание_С-мин_дрожание_С).
Следует заметить, что макс_дрожание_С и мин_дрожание_С могут быть положительными или отрицательными, но (макс_дрожание_С-мин_дрожание_С) является положительным.
Вариант 2
Этапы, используемые для того, чтобы вычислить дрожание в сети для третьего способа варианта 2, проиллюстрированы на фиг.15. В варианте 2 дрожание в сети для конкретного пакета вычисляется с использованием вычислений дрожания между рассматриваемым пакетом и каждым из заранее определенного числа предыдущих пакетов. Заранее определенное число предыдущих пакетов определяется как окно, и такое окно может быть любой величины. В примере, проиллюстрированном на фиг.15, окно имеет величину, равную 4 предшествующим пакетам. Окно могло бы быть установлено равным любой другой величине, такой как, например, 7 пакетов. Кроме того, окно могло бы быть установлено, например, равным числу пакетов после последнего опорного пакета.
Как проиллюстрировано на фиг.15, дрожание в сети для пакета 5 вычисляется с использованием информации относительно пакета 1, j(5,1), пакета 2, j(5,2), пакета 3, j(5,3) и пакета 4, j(5,4). Как проиллюстрировано на фиг.15, если дрожание сети, вычисленное для пакета 5, относительно каждого из:
пакета 1 равно j(5,1)=2, пакета 2 равно j(5,2)=3, пакета 3 равно j(5,3)=4 и пакета 4 j(5,4)=7, тогда макс_дрожание_сети=7. Уравнения для вычисления дрожания в сети в соответствии с третьим способом варианта 2 являются следующими:
вычисленное дрожание_С(текущий_заголовок, j)=(текущее_Т-j_Т)-(текущая_ВМ_п-j_ВМ-п) для всех заголовков j, посланных перед текущим заголовком и принадлежащих к окну W, где j_T - значение таймера, когда заголовок j был принят, и j_BM_п - упакованная ВМ ППДРВ заголовка j; и
вычислить макс_дрожание_сети = макс_дрожание_С(текущий заголовок, j) через все J в окне W.
В случае, когда имеется обратная связь из декомпрессора, окно W включает в себя заголовки, посланные после последнего заголовка, о котором известно, что он принят правильно (например, подтвержденный). В случае отсутствия обратной связи окно W включает в себя последние посланные L заголовков, где L - параметр.
2. Декомпрессор
Для того чтобы распаковать ВМ ППДРВ текущего_заголовка, приемник вычисляет время, прошедшее с момента времени, когда был принят последний_заголовок, в единицах Т мсек. Это время, равное "Таймер" (текущий_заголовок, последний_заголовок)", складывается с последней_ВМ_п, для того чтобы получить аппроксимацию текущей_ВМ_п. Приемник затем определяет точное значение текущей_ВМ_п с помощью выбора значения, ближайшего к аппроксимации, k наименьших значащих бит которого совпадают со сжатой ВМ ППДРВ. Текущая_ВМ затем вычисляется как ВМ0+(текущая_ВМ_п)·шаг_по_индексу_ВМ.
"Таймер (текущий_заголовок, последний_заголовок)" может быть вычислено как (текущее_Т-последнее_Т), где текущее_Т и последнее_Т представляют значения таймера_П, когда текущий_заголовок и последний_заголовок были приняты, соответственно.
3. Доказательство корректности
Для того чтобы доказать корректность схемы, основанной на значении таймера и опорной отметки, предполагается следующее:
апрокс_ВМ - аппроксимация текущей_ВМ_п, вычисленная декомпрессором как последняя_ВМ_п+таймер(текущий_заголовок, последний_заголовок); и
точная_ВМ - точное значение текущей_ВМ_п.
На основании вышеуказанного тогда:
|апрокс_ВМ-точная_ВМ|< =|дрожание(текущий_заголовок, последний_заголовок)|;
благодаря определению макс_дрожания_сети в компрессоре:
|дрожание(текущий_заголовок, последний_заголовок)|≤J1,
где J1=макс_дрожание_сети + макс_радио_дрожание+J.
J - коэффициент, прибавляемый для того, чтобы учесть погрешность квантования, вызванную таймерами в компрессоре и декомпрессоре, которая может быть +1 или -1. Следовательно, J=2 является достаточным.
Таким образом:
|апрокс_ВМ-точная_ВМ |≤J1
Для того чтобы вычислить точную_ВМ без неопределенности, достаточно выбрать k так, чтобы удовлетворялось условие (2·J1+1)<2k.
4. Случай нарушения порядка пакетов перед компрессором
Нарушение порядка пакетов может быть обнаружено при уменьшении порядкового номера ППДРВ (ПН ППДРВ). Когда это случается, компрессор может кодировать упакованную ВМ ППДРВ с использованием другой схемы, например КПД (кодирование с переменной длиной). Декомпрессор извещается о другом кодировании с помощью подходящих битов указателя в сжатом заголовке.
Другой вариант должен применять обычный алгоритм, основанной на таймере и точке отсчета. Нарушение порядка, вероятно, приведет к большему значению k.
5. Линия связи терминал-инфраструктура
В радиосистемах для направления линии связи терминал-инфраструктура дрожание в сети равно нулю (так как как источник ППДРВ, так и компрессор расположены в радиотерминале), а радиодрожание обычно ограничено и управляемо для того, чтобы оставаться очень малым. Следовательно, ожидаемое k будет очень малым и постоянным, что минимизирует отклонения размера заголовка. Это очень важное преимущество для управления полосой частот, так как для линии связи терминал-инфраструктура терминал обычно должен запрашивать увеличенную полосу частот из сети. Кроме того, отсутствует нарушение порядка пакетов. Следовательно, основанная на таймере схема чрезвычайно хорошо подходит для линии связи терминал-инфраструктура.
6. Линия связи инфраструктура-терминал
Для направления линии связи инфраструктура-терминал дрожание в сети не равно нулю, но общее дрожание обычно мало, чтобы удовлетворить требованиям передачи реального времени. Ожидаемое k по-прежнему будет малым и обычно постоянным. Может быть больше отклонений в k, но управление полосой частот является менее важным вопросом, так как сеть управляет выделением полосы частот.
7. Передача обслуживания
В сотовых системах имеются линия радиосвязи ПС-сеть и линия радиосвязи сеть-ПС, обозначенные линия связи "терминал-инфраструктура" и линия связи "инфраструктура-терминал" соответственно. Когда сжатие/распаковка применяется к сотовым линиям связи, имеется функциональный блок, основанный на ПС, АД_ПС (адаптер ПС), который выполняет сжатие и распаковку для линии связи терминал-инфраструктура и линии связи инфраструктура-терминал соответственно. Имеется элемент, основанный на сети, называемый АД_ИДС (адаптер инфраструктуры доступа к сети), который выполняет распаковку и сжатие для линии связи терминал-инфраструктура и линии связи инфраструктура-терминал соответственно.
Особым случаем передачи обслуживания, который следует рассмотреть, является передача обслуживания между АД_ИДС, когда может быть срыв, вызванный переключением от старого АД_ИДС в новый АД_ИДС. Проблема заключается в том, как поддержать непрерывность информации в течение передачи обслуживания так, чтобы после передачи обслуживания сжатие/распаковка в АД_ПС и новом АД_ИДС продолжалась без срыва.
Имеются два альтернативных способа для передачи обслуживания, описанные ниже:
а. Первый способ
Первый способ использует схему "снятия" моментальной копии контекстной информации, обмениваемой между АД_ИДС и АД_ПС, со способом установления связи, как раскрыто в связанной заявке серийный №09/522497, зарегистрированной 9 марта 1999 г., с той же датой, как настоящая заявка для "Эффективная процедура передачи обслуживания для сжатия заголовка", К. Ле. Для ВМ ППДРВ контекстная информация содержит полную ВМ ППДРВ опорного заголовка. Сразу после передачи обслуживания компрессоры (АД_ПС для линии связи терминал-инфраструктура и АД_ИДС для линии связи инфраструктура-терминал) временно прерывают использование основанной на таймере схемы и посылают сжатую ВМ ППДРВ относительно опорного значения. Например, могло бы быть использовано кодирование КПД, как раскрыто в связанной заявке №09/522497, зарегистрированной 9 марта 1999 г., с той же датой, как настоящая заявка, "Эффективная процедура передачи обслуживания для сжатия заголовка", К. Ле. Когда подтверждение получено, компрессор использует подтвержденное значение как RFH и переключается обратно к основанной на таймере схеме.
b. Второй способ
Второй способ продолжает использовать основанную на значении таймера схему в течение передачи обслуживания.
i. Линия связи инфраструктура-терминал
Прерывание на стороне приемника отсутствует, который является ПС. Роль компрессора передается от одного АД_ИДС в другой. После передачи обслуживания заголовки направляются по новому маршруту, проходящему через новый АД_ИДС вместо старого АД_ИДС.
Компрессор
Старый АД_ИДС передает в новый АД_ИДС моментальную копию следующей информации: RFH_T, RFH_BM_п, текущее значение таймера_И, ВМ0 и "шаг_по_индексу_ВМ", используя способ установления связи (значения моментальной копии будут обозначаться звездочками, например, RFH*_T). Новый АД_ИДС инициализирует свой таймер_И с текущим значением таймера-И, принятым из старого АД_ИДС, и начинает увеличивать значения этого таймера каждые Т мсек. Инициализация таймера_И текущим значением Таймера_И старого АД_ИДС является концептуальным описанием. Если имеется один таймер_И, совместно используемый множественными потоками, фактический таймер_И повторно не инициализируется. Вместо этого записывается смещение между этим таймером_И и значением из старого АД_ИДС. Смещение учитывается в дальнейших вычислениях. Для того чтобы сжать самый первый заголовок после передачи обслуживания, новый АД_ИДС посылает k наименьших значащих бит текущей_ВМ_п. Новый АД_ИДС определяет k, число используемых бит, следующим образом:
J2=верхняя граница дрожания С (текущий заголовок, RFH*)+макс_радио_дрожание + J,
где k выбирается, чтобы удовлетворять условию (2·J2+l)<2k.
В вышеуказанном макс_радио_дрожание представляет максимальное дрожание сегмента между новым АД_ИДС и АД_ПС,
верхняя граница дрожания_С (текущий заголовок, RFH*) вычисляется следующим образом:
|таймер ((текущий заголовок, RFH*)-(текущая_ВМ_п-RFH* BM_п)| +Т_передачи, где
таймер ((текущий заголовок, RFH*) равен (текущее_Т-RFH*_T);
текущее_Т - значение таймера_И в новом АД_ИДС, когда был принят текущий заголовок;
RFH*_Т - значение, принятое из старого АД_ИДС;
Т_передачи - верхняя граница времени для того, чтобы передать контекстную информацию из старого АД_ИДС в новый АД_ИДС, выраженное в единицах Т мсек; и
J=2.
Декомпрессор
Для того, чтобы распаковать текущий заголовок, приемник вычисляет время, прошедшее с момента времени, когда был принят RFH, в единицах Т мсек. Это время, "таймер (текущий заголовок, RFH)" суммируется с RFH_BM_п, чтобы получить аппроксимацию текущей_ВМ_п. Приемник затем определяет точное значение текущей_ВМ_п с помощью выбора значения, ближайшего к аппроксимации, k наименьших значащих бит которого совпадают со сжатой ВМ ППДРВ. Текущая_ВМ затем вычисляется как ВМ0 +(текущая_ВМ_п)·шаг_по_индексу_ВМ.
Время, прошедшее с момента времени, когда был принят RFH, может быть вычислено как (текущее_Т-RFH_Т).
Случай сбоя
Когда контекстная информация не может быть передана в новый АД_ИДС своевременно, новый АД_ИДС будет посылать ВМ ППДРВ до тех пор, пока не будет получено подтверждение.
ii. Линия связи терминал-инфраструктура
Роль декомпрессора передается из старого АД_ИДС в другой. Компрессор остается связанным с ПС.
Декомпрессор
Старый АД_ИДС передает в новый АД_ИДС моментальную копию следующей информации: RFH*_T, RFH*_BM_п, текущее значение таймера_П, ВМ0 и "шаг_по_индексу_ВМ", используя способ установления связи. Новый АД_ИДС инициализирует свой таймер_П текущим значением таймера_П, принятым из старого АД_ИДС, и начинает увеличивать значение этого таймера каждые Т мсек. Инициализация таймера_П текущим значением таймера_П старого АД_ИДС является только концептуальным описанием. Если имеется один таймер_П, совместно используемый множественными потоками, фактический таймер_П повторно не инициализируется. Вместо этого записывается смещение между этим таймером_П и значением из старого АД_ИДС. Это смещение учитывается в дальнейших вычислениях. Для того чтобы распаковать самый первый заголовок после передачи обслуживания, новый АД_ИДС вычисляет значение "таймер (текущий_заголовок, RFH)", суммирует его с RFH*_ВМ_п, чтобы получить аппроксимацию текущей_ВМ_п. Приемник затем определяет точное значение текущей_ВМ_п с помощью выбора значения, ближайшего к аппроксимации, k наименьших значащих бит которого совпадают со сжатой ВМ ППДРВ. Текущая_ВМ затем вычисляется как ВМ0 +(текущая_ВМ_п)·шаг_по_индексу_ВМ.
"Таймер(текущий_заголовок, RFH)" может быть оценено как (текущее_Т-RFH*_Т). Текущее_Т равно таймеру_П, когда был принят текущий заголовок.
Компрессор
АД_ПС посылает k наименьших значащих бит текущей_ВМ_п. Он определяет k, число используемых бит, следующим образом:
вычислить J2=верхняя граница дрожания_С(текущий_заголовок, RFH*)+макс_радио_дрожание+J,
когда k выбрано, чтобы удовлетворять условию (2·J2+1)<2k.
Здесь макс_радио_дрожание - максимальное дрожание в сегменте между новым АД_ИДС и АД_ПС.
Верхняя граница дрожания_С(текущий_заголовок, RFH*) вычисляется как таймер(текущий_заголовок, RFH*)-(текущий_заголовок ВМ_п-RFH*_BM_n) +Т_передачи,
где таймер(текущий_заголовок, RFH*) равен (текущее_Т-RFH*_T);
текущее_Т - значение таймера_И в новом АД_ИДС, когда был принят текущий заголовок;
RFH*_T - значение, принятое из старого АД_ИДС;
Т_передачи - верхняя граница времени для того, чтобы передать контекстную информацию из старого АД_ИДС в новый АД_ИДС, выраженное в единицах Т мсек; и
J=2
Случай сбоя
Когда контекстная информация не может быть передана в новый АД_ИДС своевременно, новый АД_ИДС будет извещать АД_ПС, который посылает полную ВМ ППДРВ до тех пор, пока не будет принято подтверждение.
8. Характеристики схемы
Благодаря требованиям разговора в реальном времени аккумулированное дрожание при нормальной работе ожидается равным максимально только несколько раз по Т мсек. Следовательно, значение k около 4 или 5 является достаточным, так как дрожание вплоть до 16 - 32 речевых выборок может быть скорректировано.
Преимуществами этой схемы являются следующие:
размер сжатого заголовка является постоянным и малым. Сжатый заголовок обычно включает в себя тип сообщения, который указывает тип сообщения (k1 бит), битовую маску, которая указывает, какое поле изменяется, и поле, которое содержит k наименьших значащих бит текущего_индекса (k бит). Допуская, что используется битовая маска MSTI и К1=4, размер сжатого заголовка, когда только ВМ ППДРВ изменяется (этот случай встречается наиболее часто), равен 1,5 байт. Кроме того, размер не изменяется в зависимости от длины интервала молчания.
Никакая синхронизация не требуется между процессом таймера и процессом декомпрессора.
Устойчивость к ошибкам, так как частичная информация ВМ ППДРВ в сжатом заголовке является самодостаточной, и требует только объединения с значением таймера приемника для того, чтобы выдать полное значение ВМ ППДРВ. Потеря или искажение заголовка не будет делать недействительным следующие сжатые заголовки.
Компрессору необходимо поддерживать мало информации памяти:
RFH_Т, RFH_ВМ_п, макс_дрожание_С, мин_дрожание_С, ВМ0 и шаг_по_индексу_ВМ в варианте 1 и {T-j,BM-J-п} для всех j в окне W, ВМ0 и шаг_по_индексу_ВМ в варианте 2.
С. Уменьшение дрожания
Благодаря требованиям разговоров в реальном времени разумно ожидать, что различные дрожания, описанные выше, составляют порядка нескольких Т мсек при нормальной работе. Однако можно исключить случаи, когда дрожание является большим и, следовательно, может потребовать большего k. Например, могут быть ненормальные условия в маршруте из источника ППДРВ в приемник (сбои и т.д.), во время которых дрожания становятся чрезмерными. Также могут быть случаи, когда требуется или желательно постоянное значение k. Для того, чтобы справляться с этими случаями, функциональный блок уменьшения дрожания может быть использован в качестве препроцессора к сопроцессору для того, чтобы отфильтровывать пакеты с чрезмерным дрожанием (т.е., дрожанием, превышающим некоторое пороговое значение).
В стационарном случае (без передачи обслуживания) дрожание вычисляется как J1 и сравнивается со стационарным порогом следующим образом:
J1= (макс_дрожание_С-мин_дрожание_С)+макс_радио_дрожание+J.
В случае передачи обслуживания дрожание вычисляется как J2 и сравнивается с порогом передачи обслуживания следующим образом:
J2= таймер(текущий_заголовок, RFH*)-(текущая_ВМ-п-RFH*_BM-п) +Т_передачи + макс_радио_дрожание + J.
Основным отличием относительно стационарного случая без передачи обслуживания является прибавление Т_передачи. На практике для того, чтобы выполнить передачу обслуживания через 100 мсек, Т_передачи должно ограничиваться приблизительно 100 мсек, так, Т_передачи=приблизительно 5 или 6 в единицах Т мсек (Т=20 мсек). Значение К=5 является достаточным.
Стационарный порог и порог передачи обслуживания могут быть одинаковыми или могут не быть одинаковыми.
D. Случай передачи видео
В случае видео источника ППДРВ не обязательно является справедливым то, что имеется постоянный временной интервал между пакетами и, кроме того, ВМ ППДРВ не обязательно увеличивается на постоянный шаг по индексу от одного пакета к следующему. Однако ВМ ППДРВ и временной интервал между пакетами являются дискретными. Следовательно, следующим образом:
Временная метка ППДРВ пакета m=временной метке ППДРВ пакета 0 (сгенерированного в момент времени 0)+шаг_по_индексу_ВМ* [индекс + регулировка(m)],
где "шаг_по_индексу_ВМ" - константа, зависящая от кодека, а регулировка (m) - целое, которое зависит от m и отражает разности относительно линеного характера, как при речи; и
временной интервал между двумя последовательными пакетами - целое, кратное Т мсек.
Из чего следует, что характер в источнике ППДРВ упоминается как регулируемый линейный характер. Используя ту же самую нотацию, как для речи, последняя ВМ=ВМ0 + шаг_по_индексу*_ВМ[последний_индекс + регулировать (последний_индекс)] и текущая_ВМ=ВМ0 + шаг_по_индексу* ВМ[(текущий_индекс)+регулировать(текущий_индекс)]. Параметр "регулировать" может быть положительным или отрицательным. Следовательно, основным отличием по сравнению с речью является дополнительный член "регулировать".
ВМ ППДРВ представляет заголовки, поступающие в декомпрессор, также изменяется по регулируемому линейному закону, как функция времени, но менее точно из-за дрожания задержки между источником и декомпрессором. При нормальной работе (отсутствии аварийных отказов или сбоев) дрожание задержки ограничено, чтобы удовлетворять требованиям трафика разговора в реальном времени.
Как описано выше, допускается, что упакованная ВМ ППДРВ текущего_заголовка=текущий_индекс + регулировать(текущий_индекс). Та же нотация будет использоваться, например, по отношению к текущей_ВМ_п.
Компрессор
Компрессор посылает в сжатом заголовке k наименьших значащих бит текущей_ВМ_п. Алгоритм для того, чтобы определить k, является тем же самым, как для речи.
Декомпрессор
Используемый алгоритм является тем же самым, как для речи.
1. Передача обслуживания
Два альтернативных способа для передачи обслуживания, описанные для речи, также применяются для видео.
2. Значение k
Для речи было показано, что k=4 или 5, достаточно (2k =16 или 32). В случае видео требуется большее значение k из-за наличия значения "регулировать". Так как видео структурировано в 30 кадров в секунду, то|регулировать| <30. Следовательно, k=7 или 8, должно бы быть достаточно для нормальной работы.
Несколько осуществлений настоящего изобретения подробно проиллюстрированы и/или описаны в настоящем описании. Однако понятно, что модификации и изменения настоящего изобретения охватываются вышеприведенными раскрытиями и находятся в рамках прилагаемой формулы изобретения, не выходя из сущности и рамок предлагаемого изобретения.
Несмотря на то, что настоящее изобретение описано подробно и отражено на сопровождающих чертежах, оно не ограничено такими подробностями, многие изменения и модификации, очевидные для обычных специалистов в данной области техники, могут быть сделаны в изобретении, не выходя за рамки объема и сущности изобретения.
Изобретение относится к способу и устройству для сжатия поля заголовка пакета данных с использованием схемы, основанной на значении таймера и опорной отметки. Техническим результатом является обеспечение устойчивого к ошибкам сжатия заголовка пакета данных, дающего единообразный или постоянный размер заголовка даже при произвольном скачке величины временной метки. Технический результат достигается тем, что источник генерирует поле заголовка, такое как временная метка, в соответствии с протоколом передачи данных в реальном времени (ППДРВ). Пакет, включающий в себя это поле, посылается в компрессор, для вычисления сжатого поля заголовка на основании поля заголовка пакета из источника и временного смещения («дрожания») путем вычисления «дрожаний», которое сеть оказывает на передачу пакетов перед компрессором и декомпрессором. Сжатое поле заголовка в пакете передается в декомпрессор, содержащий локальный таймер, где сжатое поле распаковывается путем вычисления аппроксимации поля заголовка на основании времени, прошедшего с поступления предыдущего пакета, и значения поля в предыдущем пакете. Аппроксимация затем корректируется на основании сжатого поля заголовка, предоставленного в пакете. 5 н. и 40 з.п. ф-лы, 15 ил.
предоставление из компрессора в декомпрессор начального значения поля заголовка для инициализации передачи потока пакетов; вычисление в компрессоре сжатого значения временной метки текущего пакета на основании поля текущего заголовка текущего пакета и временного смещения и предоставление вычисленного сжатого значения временной метки в поле заголовка пакета, в котором упомянутый этап вычисления содержит этапы: вычисление временного смещения, которое сеть между источником и упомянутым декомпрессором оказывает на передачу пакетов, и вычисление сжатого значения временной метки в качестве части значения поля заголовка текущего пакета, причем упомянутая часть является функцией временного смещения; приема сжатого поля заголовка текущего пакета в декомпрессоре; вычисление аппроксимированного значения временной метки текущего пакета на основании времени, прошедшего в декомпрессоре, между приемом сжатого поля заголовка текущего пакета и приемом поля заголовка предыдущего пакета, который был распакован, и распакованного значения временной метки предыдущего пакета; и суммирование сжатого значения временной метки из поля заголовка, принятого в декомпрессоре, с упомянутым вычисленным аппроксимированным значением текущей временной метки.
в которой декомпрессор вычисляет аппроксимацию упакованного значения на основании времени, прошедшего с момента поступления предыдущего пакета, и упакованного значения предыдущего пакета в декомпрессоре.
Приспособление в пере для письма с целью увеличения на нем запаса чернил и уменьшения скорости их высыхания | 1917 |
|
SU96A1 |
Авторы
Даты
2006-06-20—Публикация
2001-03-09—Подача