Способ сжатия поля заголовка в пакете данных
Иллюстрации
Показать всеИзобретение относится к способу и устройству для сжатия поля заголовка пакета данных с использованием схемы, основанной на значении таймера и опорной отметки. Техническим результатом является обеспечение устойчивого к ошибкам сжатия заголовка пакета данных, дающего единообразный или постоянный размер заголовка даже при произвольном скачке величины временной метки. Технический результат достигается тем, что источник генерирует поле заголовка, такое как временная метка, в соответствии с протоколом передачи данных в реальном времени (ППДРВ). Пакет, включающий в себя это поле, посылается в компрессор, для вычисления сжатого поля заголовка на основании поля заголовка пакета из источника и временного смещения («дрожания») путем вычисления «дрожаний», которое сеть оказывает на передачу пакетов перед компрессором и декомпрессором. Сжатое поле заголовка в пакете передается в декомпрессор, содержащий локальный таймер, где сжатое поле распаковывается путем вычисления аппроксимации поля заголовка на основании времени, прошедшего с поступления предыдущего пакета, и значения поля в предыдущем пакете. Аппроксимация затем корректируется на основании сжатого поля заголовка, предоставленного в пакете. 5 н. и 40 з.п. ф-лы, 15 ил.
Реферат
Область техники
Настоящее изобретение относится к способу и устройству для сжатия поля заголовка в пакете данных. Более конкретно, настоящее изобретение относится к способу и устройству для сжатия поля заголовка пакета данных с использованием схемы, основанной на значении таймера и опорной отметки.
Для протокола 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 ППДРВ (например, термина