Способ и устройство для компенсации потери пакетов в режиме передачи данных по протоколу пользовательских дейтаграмм

Иллюстрации

Показать все

Заявленное изобретение описывает способ для компенсации потери пакетов в режиме передачи протоколу пользовательских дейтаграмм (протокол UDP). Технический результат - качество изображения и звука IP-телевидения усиливает конкурентоспособность данного сервиса и повышает качество предоставления услуг. Для этого способ состоит из следующих шагов: запуск процесса компенсации потери пакета при обнаружении утраты пакета в группе полученных пакетов данных; запуск первого счетчика времени ожидания; если по истечении времени ожидания первого счетчика потерянный пакет так и не был получен, то информация о потерянном пакете отсылается отправителю, после чего выполняется запуск второго счетчика времени ожидания, и если потерянный пакет будет получен прежде, чем истечет время ожидания по второму счетчику, то потерянный пакет будет вставлен на соответствующую позицию в группе полученных пакетов данных, и на этом данный процесс компенсации потери пакета будет завершен, при этом при обнаружении потери еще одного пакета процесс компенсации потери пакета будет запущен заново. Данное изобретение также описывает устройство для реализации вышеупомянутого способа. Предлагаемое изобретение особенно хорошо подходит для использования в механизме передачи потоковой аудиовизуальной информации в современных системах IP-телевидения (IPTV). 4 н. и 10 з.п. ф-лы, 4 ил.

Реферат

ОБЛАСТЬ ИЗОБРЕТЕНИЯ

Данное изобретение относится к способу и устройству для компенсации потери пакетов в режиме передачи данных по протоколу пользовательских дейтаграмм (UDP).

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

Система цифрового IP-телевидения (IPTV) - это система предоставления видеоинформации, которая осуществляет передачу, декодирование и воспроизведение аудиовизуальной информации в сетях передачи данных по протоколу IP. Технология работы систем IP-телевидения такова: закодированная аудиовизуальная информация передается от мультимедиа-сервера к пользователю (на ресивер цифрового телевидения) в виде потока данных, после чего пользователь декодирует полученную аудиовизуальную информацию, формирует аналоговое ТВ-изображение на базе декодированной аудиовизуальной информации и воспроизводит полученное видео с помощью устройств отображения, например, посредством телевизора. Кроме того, система IP-телевидения предоставляет пользователям услугу «видео по запросу» (VoD), а также услугу прямой трансляции видео передач.

При реализации вышеуказанных услуг качество передачи аудиовизуальной информации от мультимедиа-сервера к ресиверу цифрового телевидения напрямую определяет качество отображения видео для пользователя. Если в процессе передачи аудиовизуальных данных теряется их часть, то воспроизведение видео приостановится или же изображение рассыпается на разноцветные точки. Главной технической проблемой IP-телевидения является невозможность гарантии качества передачи аудиовизуальной информации в IP-сетях (хорошее качество передачи позволяет предлагать пользователям высококачественный просмотр видео); для достижения качества передачи необходимо использовать соответствующие технические средства на прикладном уровне протокола сети. В известном режиме передачи данных на базе протокола TCP (протокола управления передачей) реализована функция повторной передачи потерянного пакета, однако механизм реализации этой функции таков, что в случае потери пакета передача новых данных будет приостановлена до окончания передачи потерянного пакета; соответственно, такой механизм не подходит для передачи потоковой аудиовизуальной информации в реальном времени. Механизм передачи данных по протоколу UDP подходит для передачи данных в реальном масштабе времени лучше, чем TCP. Однако режим передачи данных по протоколу UDP не предоставляет механизма компенсации потери пакетов, что снижает качество аудиовизуальной информации, предоставляемой посредством системы IP-телевидения.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

В свете вышеуказанной проблемы согласно настоящему изобретению предлагается способ и устройство для компенсации потери пакетов в режиме передачи данных по протоколу UDP, которые позволяют повторно пересылать пакет данных в рамках механизма передачи данных протокола UDP и, таким образом, гарантируют качество передаваемой информации.

Для решения указанной задачи используется предлагаемое в данном изобретении техническое решение, которое подробно описано ниже.

Способ компенсации потери пакетов в режиме передачи данных по протоколу UDP состоит из следующих шагов:

запуск процесса компенсации потери пакета при обнаружении утраты пакета в группе полученных пакетов данных; запуск первого счетчика времени ожидания; если по истечении времени ожидания первого счетчика потерянный пакет так и не был получен, то информация о потерянном пакете отсылается отправителю, после чего выполняется запуск второго счетчика времени ожидания, и если потерянный пакет будет получен прежде, чем истечет время ожидания по второму счетчику, то потерянный пакет будет вставлен на соответствующую позицию в группе полученных пакетов данных, и на этом данный процесс компенсации потери пакета завершается, при этом при обнаружении потери еще одного пакета процесс компенсации потери пакета запускается заново.

Предпочтительно, чтобы способ дополнительно включал в себя следующие шаги:

остановка процесса компенсации потери пакета при превышении первого заданного предела для числа последовательных неполучений потерянного пакета или/и при превышении второго заданного предела для коэффициента потерь пакетов во время процесса компенсации потери пакета; а также

перезапуск процесса компенсации потери пакета при превышении третьего заданного предела для длительности периода, в течение которого коэффициент потерь пакетов для получаемых групп пакетов данных постоянно остается равным 0.

Предпочтительно, чтобы способ дополнительно включал в себя следующие шаги:

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

Предпочтительно, чтобы информация о потерянном пакете могла содержать сведения о порядковом номере потерянного пакета; при этом потерянный пакет после его восстановления может вставляться в группу полученных пакетов данных в соответствии с его порядковым номером.

Способ компенсации потери пакетов в режиме передачи данных по протоколу UDP состоит из следующих шагов:

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

Предпочтительно, чтобы перед шагом получения отчета о потере пакета способ дополнительно содержал следующие шаги:

проверка получателя на возможность осуществления компенсации потери пакета; если эта функция получателем поддерживается, то пакет данных отправляется со скоростью, превышающей пропускную способность кодирования данных получателя.

Предпочтительно, чтобы информация о потерянном пакете могла содержать сведения о порядковом номере потерянного пакета.

Устройство для компенсации потери пакетов в режиме передачи данных по протоколу UDP состоит из блока обнаружения и блока компенсации потерь пакетов, при этом: блок обнаружения при обнаружении потери пакета в полученной группе пакетов данных приводит в действие первый модуль блока компенсации потерь пакетов, который служит для запуска счетчика ожидания; блок компенсации потерь пакетов включает в себя следующее: первый модуль запуска счетчика ожидания, предназначенный для запуска первого счетчика времени ожидания; первый модуль определения приема потерянного пакета, который определяет, был ли получен потерянный пакет во время действия первого счетчика ожидания, и при неполучении пакета запускает отчетный модуль для предоставления информации о потерянном пакете; отчетный модуль для предоставления информации о потерянном пакете, предназначенный для предоставления отправителю отчета о потерянном пакете и для запуска второго модуля запуска счетчика ожидания; второй модуль запуска счетчика ожидания, предназначенный для запуска второго счетчика времени ожидания; второй модуль определения приема потерянного пакета, который определяет, был ли получен потерянный пакет во время действия второго счетчика ожидания, и при обнаружении полученного пакета запускает модуль для вставки потерянного пакета, в противном случае он запускает блок обнаружения; а также модуль для вставки потерянного пакета, который используется для вставки потерянного пакета на соответствующее место в группе полученных пакетов данных.

Предпочтительно, чтобы блок компенсации потери пакетов мог быть остановлен, если второй модуль определения приема потерянного пакета обнаруживает превышение первого заданного предела для числа последовательных неполучений потерянного пакета или/и если блок обнаружения обнаруживает превышение второго заданного предела для коэффициента потерь пакетов в полученных группах пакетов данных; блок компенсации потерь пакетов может перезапускаться, если блок обнаружения определяет, что превышен третий заданный предел для длительности периода, на протяжении которого коэффициент потерь пакетов для получаемых групп пакетов данных постоянно остается равным 0.

Предпочтительно, чтобы устройство дополнительно содержало запоминающее устройство для пакетов данных, состоящее из трех и более буферов данных, которые соответственно используются для хранения пакетов данных, не проверявшихся на наличие потерь пакетов, пакетов данных, подлежащих компенсации, которые ожидают повторной передачи потерянного пакета, и пакетов данных, уже скомпенсированных после потери пакета, а также пакетов данных, в которых не было обнаружено потерь пакетов.

Предпочтительно, чтобы информация о потерянном пакете могла содержать сведения о порядковом номере потерянного пакета;

модуль вставки потерянного пакета после восстановления пакета может вставлять его в группу полученных пакетов данных в соответствии с порядковым номером данного потерянного пакета.

Устройство для компенсации потери пакетов в режиме передачи данных по протоколу UDP состоит из блока приема, блока поиска, блока вставки потерянного пакета и блока отправки, при этом:

блок приема предназначен для приема отчета о потерянном пакете;

блок поиска предназначен для поиска буфера, который используется для хранения пакетов данных, отправленных данному получателю и соответствует потерянному пакету, в соответствии с полученными сведениями о потере пакета, с последующим запуском блока вставки потерянного пакета после нахождения потерянного пакета в буфере;

блок вставки потерянного пакета предназначен для вставки найденного в буфере потерянного пакета в ожидающую отправки очередь пакетов данных к данному получателю;

блок отправки предназначен для отправки подготовленной очереди пакетов данных получателю.

Предпочтительно, чтобы устройство дополнительно содержало блок проверки возможностей получателя, который определяет, поддерживает ли получатель функцию компенсации потери пакета; если эта функция получателем поддерживается, то блоку отправки сообщается команда на отправку пакета данных со скоростью, превышающей пропускную способность кодирования данных получателя.

Предпочтительно, чтобы информация о потерянном пакете могла содержать сведения о порядковом номере потерянного пакета.

Механизм компенсации потери пакета реализован в устройстве-получателе, чтобы при обнаружении потери пакета среди полученных пакетов данных уведомлять отправителя о необходимости повторной отправки потерянного пакета. При обнаружении потери пакета среди полученной группы пакетов данных уведомление отправителю отправляется не сразу; запускается счетчик времени, и если в течение заданного периода времени потерянный пакет не получен, то сведения о потерянном пакете отсылаются отправителю, побуждая его повторно отправить потерянный пакет. Отправитель находит потерянный пакет в буфере отправленных данных и вставляет найденный пакет в подлежащую отправке очередь пакетов данных, после чего отсылает потерянный пакет получателю. После получения потерянного пакета получатель вставляет его в соответствующую очередь полученных пакетов данных в соответствии с его порядковым номером, выполняя, таким образом, компенсацию полученных данных.

Предлагаемое изобретение гарантирует целостность принимаемых получателем данных и в известной степени гарантирует качество полученных данных. Изобретение особенно хорошо подходит для использования в механизме передачи потоковой аудиовизуальной информации в современных системах IP-телевидения. Предлагаемое изобретение в известной степени гарантирует качество изображения и звука IP-телевидения, усиливает конкурентоспособность данного сервиса и повышает качество предоставления услуг.

КАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

На Фиг. 1 схематично изображена блок-схема, иллюстрирующая способ компенсации потери пакетов в режиме передачи данных по протоколу UDP в соответствии с одним из вариантов осуществления настоящего изобретения;

На Фиг.2 схематично изображена блок-схема, иллюстрирующая способ компенсации потери пакетов в режиме передачи данных по протоколу UDP в соответствии с другим вариантом осуществления настоящего изобретения;

На Фиг.3 показана блок-схема устройства для компенсации потери пакетов в режиме передачи данных по протоколу UDP в соответствии с одним из вариантов осуществления настоящего изобретения;

На Фиг.4 показана блок-схема устройства для компенсации потери пакетов в режиме передачи данных по протоколу UDP в соответствии с другим вариантом осуществления настоящего изобретения.

ЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ

Основная идея предлагаемого изобретения заключается в следующем: в устройстве-получателе реализуется механизм компенсации потери пакета, позволяющий при обнаружении потери пакета среди полученных пакетов данных уведомлять отправителя о необходимости повторной отправки потерянного пакета. При обнаружении потери пакета среди полученной группы пакетов данных уведомление отправителю отправляется не сразу; запускается счетчик времени, и если в течение заданного периода времени потерянный пакет не получен, то сведения о потерянном пакете отсылаются отправителю, побуждая его повторно отправить потерянный пакет. Отправитель находит потерянный пакет в буфере отправленных данных и вставляет найденный пакет в подлежащую отправке очередь пакетов данных, после чего отсылает потерянный пакет получателю. После получения потерянного пакета получатель вставляет его в соответствующую очередь полученных пакетов данных в соответствии с его порядковым номером, выполняя, таким образом, компенсацию полученных данных. Предлагаемое изобретение гарантирует целостность принимаемых получателем данных и в известной степени гарантирует качество передачи полученных данных.

Задачи, технические решения и преимущества данного изобретения будут более очевидны и ясны после изучения подробного описания вариантов осуществления изобретения со ссылками на приложенные чертежи.

На Фиг.1 схематично изображена блок-схема, иллюстрирующая способ компенсации потери пакетов в режиме передачи данных по протоколу UDP в соответствии с одним из вариантов осуществления настоящего изобретения. Как видно из Фиг.1, способ компенсации потери пакетов в режиме передачи данных по протоколу UDP в соответствии с одним из вариантов осуществления настоящего изобретения состоит из следующих шагов:

Шаг 101: проверка полученных пакетов данных, затем запуск первого счетчика времени ожидания при обнаружении потери пакета среди полученных пакетов данных.

Для обнаружения потери пакета проверяют номера полученных пакетов данных: если последовательность номеров непрерывна, это означает, что потери пакетов нет, в противном случае пакет данных с порядковым номером, который отсутствует в последовательности, и будет потерянным пакетом. Обнаружение потерянных пакетов подразумевает наличие области данных, подлежащей проверке, при этом механизм обнаружения запускается лишь после того, как количество пакетов данных, хранящихся в данной области данных, достигнет определенного числа, вместо того, чтобы производить обнаружение потери пакетов сразу после получения пакетов данных. Описанный механизм обнаружения позволяет использовать ресурсы процессора более рационально.

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

Шаг 102: запуск первого счетчика времени ожидания и проверка получения потерянного пакета в период действия первого счетчика - если пакет получен, переход к шагу 104, в противном случае переход к шагу 103.

Длительность периода ожидания для первого счетчика, как правило, выставляется равной не более 80 миллисекунд, т.к. в IP-сетях есть временная задержка, и потому пакеты данных могут приходить получателю не в том порядке, в котором они следуют, т.е. обнаруженный на шаге 101 потерянный пакет вполне может находиться в процессе доставки получателю. Поэтому и используется определенное время ожидания на случай, если обнаруженная потеря пакета вызвана лишь временной задержкой. Если же по истечении заданного времени ожидания потерянный пакет так и не был получен, он считается по-настоящему потерянным, и процесс продолжается на шаге 103. Имеется таймер, который выполняет отсчет времени для первого счетчика времени ожидания. При этом проверяется буфер, используемый для хранения подлежащих проверке пакетов данных, чтобы понять, не был ли получен потерянный пакет.

Шаг 103: отчет с информацией о потерянном пакете отправляется отправителю, запускается второй счетчик отсчета времени ожидания - если потерянный пакет будет получен прежде, чем закончится второй период ожидания, то процесс продолжается на шаге 104, иначе на шаге 105.

Отчет с информацией о потерянном пакете, в основном, содержит порядковый номер потерянного пакета и IP-идентификатор получателя, например IP-адрес; данная информация позволяет отправителю быстро найти потерянный пакет. Длительность второго периода ожидания, как правило, устанавливается в значение не больше 200 миллисекунд, что вполне достаточно для повторной передачи данных в IP-сети. Имеется таймер, который выполняет отсчет времени для второго счетчика времени ожидания. Проверяются полученные пакеты данных, сохраняемые в буфере для хранения подлежащих проверке пакетов данных, и если порядковый номер потерянного пакета присутствует среди порядковых номеров полученных пакетов данных, это значит, что потерянный пакет был получен, в противном случае считается, что потерянный пакет не получен. Если потерянный пакет не был получен по истечении второго периода ожидания, то компенсация пакетов данных уже не производится, подлежащие компенсации пакеты данных переносятся в буфер для хранения полных наборов пакетов данных, декодируются и выводятся на соответствующее устройство.

Шаг 104: потерянный пакет вставляется на соответствующую позицию в наборе полученных пакетов данных.

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

Шаг 105: текущий процесс компенсации потери пакета завершается, возврат к шагу 101.

Описанный способ компенсации потери пакетов особенно хорошо подходит для устройств-получателей потоковой аудиовизуальной информации в системе IP-телевидения, например для ресивера цифрового телевидения. В одном из вариантов осуществления данного изобретения сначала производится сигнальный обмен между получателем (например, ресивером цифрового телевидения) и отправителем (например, мультимедиа-сервером) на базе потокового протокола реального времени (RTSP), чтобы выполнить подготовку к передаче потоковой аудиовизуальной информации. Получатель и отправитель открывают канал протокола управления передачей в реальном времени (RTCP) в соответствии с определением стандарта RTSP, чтобы обеспечить передачу потоковой аудиовизуальной информации между этими двумя сторонами.

Данный вариант осуществления изобретения также предусматривает остановку процесса компенсации потери пакета при превышении первого заданного предела для числа последовательных неполучений потерянного пакета или/и при превышении второго заданного предела для коэффициента потерь пакетов во время процесса компенсации потери пакета.

В данном варианте осуществления изобретения, если в процессе компенсации потери пакета наблюдается постоянное неполучение потерянного пакета, т.е. пакеты данных из буфера для хранения подлежащих компенсации пакетов постоянно напрямую (без выполнения компенсации) переносятся в буфер для хранения полных наборов пакетов данных, это означает, что состояние канала между получателем и отправителем ухудшилось, либо проблема на стороне отправителя, например, ему не хватает процессорной мощности. В этом случае постоянное выполнение процесса компенсации потерянных пакетов лишь приведет к дополнительным потерям пакетов, и поэтому компенсация потери пакетов прекращается, чтобы обеспечить передачу как можно большего объема полезных данных. Если коэффициент потери пакета большой, это значит, что текущее отношение сигнал-шум используемого канала мало, и поэтому компенсацию потери пакетов целесообразно прекратить. Как правило, при трех последовательных неполучениях потерянного пакета и при отношении сигнал-шум больше 5% процесс компенсации потерь пакетов немедленно прекращается. Для прекращения компенсации потерь пакетов на основе только коэффициента потери пакетов или только числа последовательных неполучений пакета задаются условия, когда компенсацию целесообразно прекратить, с учетом вышеупомянутых условий, например, при коэффициенте потери пакетов более 8%, или если неполучение потерянного пакета происходит 6 раз подряд.

Данный вариант осуществления изобретения также предусматривает перезапуск процесса компенсации потери пакета при превышении третьего заданного предела для длительности периода, в течение которого коэффициент потерь пакетов для получаемых групп пакетов данных постоянно остается равным 0.

Разумеется, после улучшения состояния канала передачи процесс компенсации потерь пакетов по-прежнему запускается, например, когда коэффициент потери пакетов равен нулю в течение 1 секунды.

На Фиг.2 схематично изображена блок-схема, иллюстрирующая способ компенсации потери пакетов в режиме передачи данных по протоколу UDP в соответствии с другим вариантом осуществления настоящего изобретения; как видно из Фиг.2, используемый в данном варианте осуществления изобретения способ компенсации потери пакетов в режиме передачи данных по протоколу UDP содержит следующие шаги.

Шаг 201: после получения сведений о потерянном пакете отправитель осуществляет поиск буфера, который используется для хранения пакетов данных, отправленных данному получателю и соответствует потерянному пакету в соответствии с полученной информацией о потере, затем при успешном нахождении пакета выполняется шаг 202, в противном случае текущий процесс компенсации завершается.

Отправитель принимает отчет о потерянном пакете, содержащий такую информацию, как порядковый номер потерянного пакета, извлекает идентификационную информацию о получателе, например IP-адрес или МАС-адрес, определяет получателя, а затем ищет буфер, который используется для хранения очереди отправленных данному получателю пакетов данных, и при успешном нахождении потерянного пакета процесс продолжается на шаге 202, в противном случае текущий процесс компенсации завершается.

Отправитель выделяет буфер для хранения отсылаемых получателю пакетов данных, для каждого канала данных. Чем больше буфер, тем лучше. Однако, учитывая затраты и прочие факторы, длина буфера должна быть достаточной для хранения предыдущих потерянных пакетов одновременно с получением запроса на потерянный пакет от получателя.

Обмен сигнальной информацией и передача потоковой аудиовизуальной информации между отправителем и получателем выполняется на базе протоколов RTSP и RTCP. Во время первоначального обмена сигнальной информацией с получателем отправитель также определяет, поддерживает ли получатель функцию компенсации потери пакетов, и если получатель эту функцию поддерживает, то отправитель будет отправлять получателю потоковую аудиовизуальную информацию со скоростью, превышающей пропускную способность, чтобы компенсировать занятие части пропускной полосы, которое, возможно, вызвано работой функции компенсации потери пакетов. Чтобы заявить о поддержке функции компенсации потери пакетов, получатель добавляет в сообщение DESCRIBE сигнального обмена RTSP поле расширения, определяемое как x-zmssRtxSdp, которое занимает в теле сообщения DESCRIBE одну строку. Сигнальный обмен между получателем и отправителем для компенсации потери пакетов использует базовое сообщение NACK (неподтверждение), описанное в RFC4585, режим немедленного отклика и минимальный составной пакет отклика. Формат общего сообщения NACK можно посмотреть в стандарте RFC4585.

Описанный в данном варианте осуществления изобретения способ компенсации потери пакетов особенно хорошо подходит для устройств-отправителей потоковой аудиовизуальной информации в системе IP-телевидения, например, для мультимедиа сервера.

Шаг 202: потерянный пакет вставляют в ожидающую отправки очередь пакетов данных, которые должны быть отправлены данному получателю, а затем отсылают получателю.

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

Механизм повторной отправки пакета данных отправителем использует режим мультиплексирования идентификатора источника синхронизации (SSRC-мультиплексирование). Связь между повторно отправленным потоком и исходным потоком передается получателю посредством добавления соответствующих атрибутов в сообщение протокола описания сессии SDP. Конкретные форматы и положения, относящиеся к повторно отсылаемому пакету и пакету SDP, описаны в стандарте RFC4588, и здесь повторяться не будут.

Специалистам должно быть ясно, что показанные на Фиг.1 и Фиг.2 способы можно объединять, при этом способ из Фиг.1 используется для получателя данных, например ресивера цифрового телевидения в системе IP-телевидения, а способ из Фиг.2 используется для отправителя данных, например сервера мультимедиа в системе IP-телевидения.

На Фиг.3 показана блок-схема устройства для компенсации потери пакетов в режиме передачи данных по протоколу UDP в соответствии с одним из вариантов осуществления настоящего изобретения. Как видно из Фиг.3, устройство для компенсации потери пакетов в режиме передачи данных по протоколу UDP в соответствии с вариантом осуществления настоящего изобретения состоит из блока 30 обнаружения, блока 31 компенсации потери пакетов и запоминающего устройства 32, при этом блок 30 обнаружения при обнаружении потери пакета в полученной группе пакетов данных приводит в действие первый модуль 310 запуска счетчика ожидания блока 31 компенсации потерь пакетов; запоминающее устройство 32 предназначено для хранения получаемых пакетов данных; блок 31 компенсации потери пакетов состоит из первого модуля 310 запуска счетчика ожидания, первого модуля 311 определения приема потерянного пакета, отчетного модуля 312 для предоставления информации о потерянном пакете, второго модуля 313 запуска счетчика ожидания, второго модуля 314 определения приема потерянного пакета и модуля 315 вставки потерянного пакета, при этом первый модуль 310 запуска счетчика ожидания предназначен для запуска первого счетчика времени ожидания; длительность первого периода ожидания обычно устанавливается равной не более 80 миллисекунд и отслеживается с помощью таймера; первый модуль 311 определения приема потерянного пакета определяет, был ли получен потерянный пакет во время действия первого счетчика ожидания, и при неполучении пакета запускает отчетный модуль 312 для предоставления информации о потерянном пакете; отчетный модуль 312 для предоставления информации о потерянном пакете предназначен для предоставления отправителю отчета о потерянном пакете и для запуска второго модуля 313 запуска счетчика ожидания; второй модуль 313 запуска счетчика ожидания предназначен для запуска второго счетчика времени ожидания; длительность второго периода ожидания обычно устанавливается равной не более 200 миллисекунд и отслеживается с помощью таймера; второй модуль 314 определения приема потерянного пакета определяет, был ли получен потерянный пакет во время действия второго счетчика ожидания, и при обнаружении полученного пакета запускает модуль 315 для вставки потерянного пакета, в противном случае он запускает блок обнаружения; модуль 315 для вставки потерянного пакета используется для вставки потерянного пакета на соответствующее место в группе полученных пакетов данных; в запоминающем устройстве 32 имеется не менее трех буферов данных, при этом один буфер данных используется для хранения подлежащих пакетов данных, еще не проверявшихся на наличие потерянных пакетов, т.е. пакетов, подлежащих проверке; второй буфер данных применяется для хранения пакетов данных, подлежащих компенсации, которые ожидают повторной передачи потерянного пакета, т.е. пакетов данных, в которых была обнаружена потеря пакета, которую необходимо компенсировать; третий буфер данных предназначен для хранения скомпенсированных пакетов данных, в которых ранее была обнаружена потеря пакета, или же пакетов данных, в которых не было обнаружено потери пакета, при этом пакеты данных из этого буфера сразу же анализируются и выводятся на обрабатывающий терминал, например телевизор.

Устройство из Фиг.3 подходит для отправителя данных, например ресивера цифрового телевидения в системе IP-телевидения.

Специалистам должно быть ясно, что устройство для компенсации потери пакетов в режиме передачи данных по протоколу UDP, описанное в данном варианте осуществления изобретения, предназначено для реализации способа компенсации потери пакетов в режиме передачи данных по протоколу UDP, который показан на Фиг.1. Реализацию функций каждого блока и модуля устройства из Фиг.3 следует рассматривать со ссылками на описание способа из Фиг.1. Функции каждого блока и модуля устройства для компенсации потери пакетов в режиме передачи данных по протоколу UDP, описанного в данном варианте осуществления изобретения, могут реализовываться в виде программ, исполняемых процессором, или в виде специальных логических схем.

На Фиг.4 показана блок-схема устройства для компенсации потери пакетов в режиме передачи данных по протоколу UDP в соответствии с другим вариантом осуществления настоящего изобретения; как видно из Фиг.4, устройство для компенсации потери пакетов в режиме передачи данных по протоколу UDP в соответствии с вариантом осуществления настоящего изобретения состоит из блока 40 приема, блока 41 поиска, блока 42 вставки потерянного пакета, блока 43 отправки и блока 44 проверки возможностей получателя, при этом блок 40 приема предназначен для приема отчета о потерянном пакете; блок 41 поиска предназначен для поиска буфера, который используется для хранения пакетов данных, отправленных данному получателю и соответствует потерянному пакету, в соответствии с полученными сведениями о потере пакета, с последующим запуском блока 42 вставки потерянного пакета после нахождения потерянного пакета в буфере; блок 42 вставки потерянного пакета предназначен для вставки найденного в буфере потерянного пакета в ожидающую отправки очередь пакетов данных к данному получателю; блок 43 отправки предназначен для отправки получателю подготовленной очереди пакетов данных; блок 44 проверки возможностей получателя определяет, поддерживает ли получатель функцию компенсации потери пакетов, и если получатель эту функцию поддерживает, то блок 44 поручает блоку 43 отправки отослать получателю пакеты данных со скоростью, превышающей пропускную способность кодирования данных получателя, чтобы компенсировать занятие части пропускной полосы, которое, возможно, вызвано работой функции компенсации потери пакетов. Чтобы заявить о поддержке функции компенсации потери пакетов, получатель добавляет в сообщение DESCRIBE сигнального обмена RTSP поле расширения, определяемое как x-zmssRtxSdp, которое занимает в теле сообщения DESCRIBE одну строку. Блок 44 проверки возможностей получателя использует полученное сообщение DESCRIBE, чтобы определить, поддерживает ли получатель функцию компенсации потери пакетов.

Устройство из Фиг.4 подходит для получателя данных, например мультимедиа сервера в системе IP-телевидения.

Специалистам должно быть ясно, что устройство для компенсации потери пакетов в режиме передачи данных по протоколу UDP, описанное в данном варианте осуществления изобретения, предназначено для реализации способа компенсации потери пакетов в режиме передачи данных по протоколу UDP, который показан на Фиг.2; реализацию функций каждого блока и модуля устройства из Фиг.4 следует рассматривать со ссылками на описание способа из Фиг.2. Функции каждого блока устройства для компенсации потери пакетов в режиме передачи данных по протоколу UDR, описанного в данном варианте осуществления изобретения, могут реализовываться в виде программ, исполняемых процессором, или в виде специальных логических схем.

Выше описаны лишь предпочтительные варианты осуществления изобретения, которые не следует рассматривать как ограничение объема правовой охраны данного изобретения.

1. Способ компенсации потери пакетов в режиме передачи данных по протоколу пользовательских дейтаграмм (UDP), состоящий из следующих шагов:запуск процесса компенсации потери пакета при обнаружении утраты пакета в группе полученных пакетов данных, причем такое обнаружение утраты пакета запускается лишь после того, как количество пакетов данных, хранящихся в данной области данных, достигнет определенного числа; запуск первого счетчика времени ожидания; если по истечении времени ожидания первого счетчика потерянный пакет так и не был получен, то информация о потерянном пакете отсылается отправителю, после чего выполняется запуск второго счетчика времени ожидания, и если потерянный пакет будет получен прежде, чем истечет время ожидания по второму счетчику, то потерянный пакет будет вставлен на соответствующую позицию в группе полученных пакетов данных, и на этом данный процесс компенсации потери пакета будет завершен, при этом при обнаружении потери еще одного пакета процесс компенсации потери пакета будет запущен заново.

2. Способ по п.1, который дополнительно содержит следующие шаги:остановка процесса компенсации потери пакета при превышении первого заданного предела для числа последовательных неполучений потерянного пакета или/и при превышении второго заданного предела для коэффициента потерь пакетов во время процесса компенсации потери пакета; а такжеперезапуск процесса компенсации потери пакета при превышении третьего заданного предела для длительности периода, в течение которого коэффициент потерь пакетов для получаемых групп пакетов данных постоянно остается равным 0.

3. Способ по п.1, который дополнительно содержит следующие шаги:разделение буфера данных на три и более части, которые соответственно используются для хранения пакетов данных, не проверявшихся на наличие потерь пакетов, пакетов данных, подлежащих компенсации, которые ожидают повторной передачи потерянного пакета, и пакетов данных, уже скомпенсированных после по