БУФЕРИЗАЦИЯ ПРИ ПОТОКОВОЙ ПЕРЕДАЧЕ ДАННЫХ
BUFFERING DURING DATA STREAMING

Настоящее изобретение относится к буферизации пакетов медиапотока при передаче от передающего устройства приемному устройству. Изобретение также относится к системе, передающему устройству, приемному устройству, серверу, устройству беспроводной связи, сигналу, шлюзу, программному продукту.
УРОВЕНЬ ТЕХНИКИ
Передача медиаинформации, такой как аудиосигнал, видеосигнал, неподвижные образы и т.д., обычно основана на пакетировании, т.е. передаваемая информация заключается в пакеты. Пакеты затем передаются как один или несколько потоков пакетов. В потоках пакеты могут быть переданы, например, как пакеты RTP (Real Time Protocol - Протокол реального времени), или как пакеты другого протокола, которые не обязательно являются пакетами RTP. Может случиться, что в ходе передачи по каким-то причинам некоторые пакеты окажутся потерянными. Например, в канале передачи могут быть помехи, ослабляющие сигнал, переносящий пакеты, что может быть причиной потери пакетов. На стадии передачи можно добавить в поток пакетов некоторую информацию для коррекции ошибок, которая может быть использована на стадии приема для восстановления потерянных пакетов. Один из известных методов основан на прямой коррекции ошибок (FEC), при этом в поток пакетов вставляются дополнительные пакеты, несущие информацию о коррекции ошибок. Такие дополнительные пакеты называются в этом описании ремонтными пакетами, т.е. пакетами, переносящими информацию для исправления ошибок. Ремонтные пакеты формируются на основе тех пакетов, которые должны быть защищены с помощью ремонтных пакетов. Например, побитовая операция ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) выполняется над данными пакетов и рассчитанное значение FEC упаковывается в ремонтные пакеты. Ремонтные пакеты и пакеты, используемые для создания ремонтных пакетов, формируют блок FEC. Следовательно, любой потерянный пакет из включенных в блок FEC может быть восстановлен с использованием информации из ремонтных пакетов того же блока FEC.
Пакетирование может быть также применено на разных уровнях так называемых стеков протоколов. Хорошо известная модель OSI описывает семиуровневую структуру, в которой физический уровень является нижним, а уровень приложений - верхним в стеке протоколов. Другими уровнями модели OSI являются канальный уровень, лежащий выше физического, сетевой уровень, транспортный уровень, сеансовый уровень и представительский уровень, лежащий под уровнем приложений. RTP пакеты могут быть отнесены к пакетам уровня приложений (который, следовательно, может быть назван в этом случае уровнем RTP).
Многие системы видеосвязи предусматривают средства контроля скорости передачи данных и буферизации. В системах с топологией "один-один" получатель может посылать статус занятости своего буфера отправителю, который может соответственно настраивать скорость передачи (например, адаптация скорости в потоке с коммутацией пакетов 3GPP (стандарт связи третьего поколения)). В однонаправленных системах потоки данных обычно должны подчиняться известной модели буферизации получателя. Примеры систем буферизации, включающих специфицированные получателем модели буферизации, - это системы стандарта MPEG-2, Приложение G для потоковой передачи данных с коммутацией пакетов 3GPP (техническая спецификация 3GPP 26.234) и система мультимедийного широкого/многоадресного вещания 3GPP (MBMS, техническая спецификация 3GPP 26.346). Отправители должны быть уверены, что передаваемые потоки соответствуют модели буферизации, т.е. не будут являться причиной незаполненности или переполнения буферов. Получатели должны быть в состоянии принять существующие потоки и использовать размер буфера предполагаемой модели буфера для назначения реального буфера данных.
Упрощенная система передачи данных поверх DVB-H (стандарт цифрового мобильного телевидения) изображена на фиг.1 в виде блок-схемы. Серверы содержимого (контента) предоставляют мультимедийный контент поверх сети IP инкапсуляторам IP. Последние инкапсулируют IP потоки для передачи по транспортным потокам MPEG-2, которые передаются по сети DVB-H к приемным терминалам.
На фиг.7 изображен пример передачи медиаданных в сети 701 DVB. В системах DVB мультиплексный поток 702 - это набор DVB служб 703, объединяемых и передаваемых в одном транспортном потоке. Транспортные потоки от разных мультиплексных потоков 702 могут быть переданы в DVB сеть 701. Компоненты DVB службы (например, аудиокомпонента, видеокомпонента, текстовая компонента) содержатся в элементарных потоках 704, каждый из которых переносит данные одной из компонент одной из DVB служб 703. Компоненты DVB служб могут быть инкапсулированы как IP (Internet Protocol) потоки 705, содержащие IP дейтаграммы.
В DVB системах введена так называемая многопротокольная инкапсуляция (МРЕ). МРЕ предназначена для преобразования дейтаграмм (IP пакетов) сетевого уровня (3-й уровень модели OSI) в транспортные потоки. Каждая IP дейтаграмма обычно преобразуется в отдельную МРЕ секцию. Единичный элементарный поток может содержать множество потоков МРЕ секций. Элементарный поток, переносящий МРЕ секцию, может также переносить данные коррекции ошибок, т.е. секции МРЕ FEC для поддержки коррекции ошибок для пакетов данных в МРЕ секциях. МРЕ секции могут рассматриваться как пакеты канального уровня стека протоколов OSI.
Гипотетический эталонный декодер (HRD) используется в некоторых стандартах видеокодирования для проверки совместимости со стандартами созданного потока данных и выходных данных после декодера. Совместимые со стандартами декодеры должны воспринимать входные потоки, совместимые с HRD. HRD используется для предотвращения «неблагоприятных» потоков, т.е. он сдерживает потребление ресурсов в декодерах как в отношении используемой памяти, так и вычислительной сложности. Входные данные HRD имеют постоянную скорость передачи или представляют собой кусочно-линейную функцию из нулевой и постоянной скорости передачи данных. HRD также используется, чтобы допустить флуктуацию скорости передачи видео, что позволяет достичь почти постоянного качества и частоты передачи изображений.
Когда медиапотоки посылают в мультиплексном режиме, выходной сигнал гипотетического демультиплексора должен быть совместим с входными требованиями гипотетического медиадекодера. В ином случае совместимость с моделью буфера медиадекодера не может быть гарантирована.
FEC декодирование кадра МРЕ FEC требует первичной буферизации (от приема первого пакета кадра МРЕ FEC до начала медиадекодирования) в приемном терминале, потому что если приемник начнет декодировать исходные RTP пакеты (т.е. медиапакеты RTP) незамедлительно, по получении первого пакета, то любая потеря исходного RTP пакета будет причиной задержки декодирования до получения ремонтной информации кадра МРЕ FEC. Это соответственно вызовет паузу в воспроизведении.
ai
af
af
ai
К тому же, как объяснено дальше, воспроизведение без пауз может потребовать дополнительной первичной буферизации после приема первого кадра МРЕ FEC. Пусть t(n) - время приема первого бита кадра МРЕ FEC с номером n в порядке передачи, t(n) - время приема последнего бита кадра МРЕ FEC. Далее, пусть b(n) - число битов в полезной нагрузке RTP медиапотока кадра n МРЕ FEC, и r(n) - скорость передачи (которая используется для проверки соответствия HRD). Если для любых значений n b(n)/r(n)=t(n)-t(n), то длительность первичной буферизации всегда могла бы быть равной нулю. Однако этого не будет по следующим причинам.
Первое: "выкалывание" (число "медиа" колонок в кадре МРЕ FEC), кодовая скорость FEC (число FEC колонок в кадре МРЕ FEC) и количество битов заполнения могут меняться.
Второе: планирование процессов не может быть настолько точным, как требует вышеуказанная формула, но можно придерживаться средней скорости потока и временных интервалов, получаемых из средней скорости передачи.
Третье: элементарный поток и интервал временного разделения могут содержать пакеты из множества IP потоков. Точное удовлетворение требований по битам для каждого IP потока во временном интервале является сложной задачей для медиапотока с меняющейся скоростью передачи, такого как видео.
Таким образом, первичная буферизация одного блока данных МРЕ FEC целиком не является достаточным условием, чтобы гарантировать декодирование и воспроизведение без пауз. Следовательно, отправители должны давать получателям информацию, которая обеспечивает достаточную, но не исчерпывающую величину первичной буферизации.
Статья 13 документа ETSI EN 301192 v.1.4.1 определяет модель декодера для трансляции данных в DVB. Модель состоит из транспортного буфера и необязательного основного буфера. Транспортный буфер - это маленький (512 байт) буфер для удаления дубликатов пакетов MPEG-2 TS. Основной буфер используется для сглаживания темпа передачи для соответствия медиадекодерам. Работа основного буфера может контролироваться путем установления выходной скорости передачи в синтаксической структуре дескриптор сглаживающего буфера систем MPEG-2. Однако в основном буфере нет механизма сигнализации и использования задержки первичной буферизации, следовательно, основной буфер не подходит для использования в комбинации с декодированием МРЕ FEC.
Так как IP передача данных в DVB-H - это широковещательный сервис, новые получатели могут "настраиваться" в середине потока, т.е. новые получатели могут начать принимать поток после того, как первый пакет потока был передан. Оптимальная (минимальная) задержка первичной буферизации обычно непостоянна во время передачи потока.
Размер буфера декодирования FEC
Как было показано выше, полученные для кадра МРЕ FEC пакеты должны быть помещены в буфер до того, как начнется декодирование FEC пакетов. В этом описании буфер для этих целей называется буфер декодирования FEC. Уровень занятости буфера декодирования FEC зависит, в числе прочего, от: 1) расписания передачи элементарного потока, 2) величины первичной буферизации до начала освобождения буфера, 3) метода построения матрицы FEC внутри буфера декодирования FEC, и 4) скорости вывода данных из буфера декодирования FEC. Максимум уровня занятости буфера определяет требуемый размер буфера для потока. Очевидно, что в различных приемных устройствах реализация декодирования FEC и связанной с ним буферизации может быть разной. Например, плееры могут иметь различные способы управления скоростью выходных данных - одно устройство может выталкивать данные из буфера декодирования FEC, как только позволят буферы "закачки" (например, входные буферы декодера), а другое устройство может выталкивать данные из буфера в тот момент, когда необходимо декодировать следующий массив данных. Следовательно, максимум уровня занятости буфера может меняться в разных реализациях и поэтому проблематично определить требуемый для конкретного потока размер буфера декодирования FEC без модели гипотетического буфера.
Кодерам и приемопередатчикам тоже следует иметь информацию о поддерживаемом размере буфера декодирования FEC всех приемников во время выполнения кодирования и составления расписания передачи.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Представленное изобретение реализует модель буферизации гипотетического декодера при обработке потока медиаданных. Модель может быть использована для определения минимальных требований к приемникам/декодерам, которые должны быть способны обрабатывать по меньшей мере все потоки, которые в состоянии обработать гипотетическая модель. Кодеры и приемопередатчики используют модель буферизации гипотетического декодера для проверки того, что передаваемые потоки не являются причиной переполнения или недогрузки буфера гипотетического декодирования.
Модель буферизации, представленная в этой заявке, содержит два буфера, один для декапсуляции кадров МРЕ FEC и виртуального декодирования FEC и второй для сглаживания вариаций скорости передачи, вызванных пульсирующим выводом данных декодирования FEC.
Согласно первому аспекту представленного изобретения предлагается способ буферизации пакетов медиапотока, включающий:
- формирование медиапакетов из по меньшей мере одного вида медиаинформации в потоковом генераторе;
- генерирование по меньшей мере одного кадра передачи на базе медиапакетов для передачи;
- формирование пакетов для передачи из по меньшей мере одного кадра передачи;
- генерирование расписания передачи для передаваемых пакетов;
- выполнение первого гипотетического декодирования в соответствии с расписанием передачи, включая:
- буферизацию передаваемых пакетов в соответствии с расписанием передачи в первом буфере гипотетическом декодирования; и
- вывод пакетов из первого буфера гипотетического декодирования на базе кадра передачи;
- выполнение второго гипотетического декодирования, включая:
- буферизацию пакетов, сформированных на базе выходных данных первого буфера гипотетического декодирования;
- управление уровнем занятости первого буфера гипотетического декодирования и второго гипотетического уровня декодирования путем управления по меньшей мере одним из следующего:
- работой потокового генератора;
- генерированием по меньшей мере одного кадра передачи;
- расписанием передачи.
Согласно второму аспекту настоящего изобретения предлагается система для буферизации медиапотока для передачи от передающего устройства приемному устройству, в которой передающее устройство включает:
- потоковый генератор, включающий
- первый формирователь пакетов для формирования медиапакетов из по меньшей мере одного вида медиаинформации медиапотока;
- генератор кадра для генерирования по меньшей мере одного кадра передачи на базе передаваемых медиапакетов;
второй формирователь пакетов для формирования передаваемых пакетов из по меньшей мере одного кадра передачи; и
- планировщик для генерирования расписания передачи для передаваемых пакетов; и
- гипотетический декодер для выполнения гипотетического декодирования во время передачи в соответствии с расписанием передачи, включающий:
- первый буфер гипотетического декодирования для буферизации передаваемых пакетов в соответствии с расписанием передачи;
- устройство вывода пакетов из первого буфера гипотетического декодирования на базе кадра передачи;
- второй гипотетический буфер для буферизации пакетов, сформированных на базе выходных данных первого буфера гипотетического декодирования; и
- контроллер для управления уровнем занятости первого буфера гипотетического декодирования и второго буфера гипотетического декодирования путем управления по меньшей мере одним из следующего:
работой потокового генератора;
генерированием по меньшей мере одного кадра передачи;
расписанием передачи.
Согласно третьему аспекту настоящего изобретения предлагается передающее устройство, включающее буфер для буферизации медиапотока для передачи от передающего устройства приемному устройству, при этом передающее устройство включает:
- потоковый генератор, включающий:
- первый формирователь пакетов для формирования медиапакетов из по меньшей мере одного вида медиаинформации медиапотока;
- генератор кадра для генерирования по меньшей мере одного кадра передачи на базе передаваемых медиапакетов;
- второй формирователь пакетов для формирования передаваемых пакетов из по меньшей мере одного кадра передачи; и
- планировщик для генерирования расписания передачи для передаваемых пакетов; и
- гипотетический декодер для выполнения гипотетического декодирования во время передачи в соответствии с расписанием передачи, включающий:
- первый буфер гипотетического декодирования для буферизации передаваемых пакетов в соответствии с расписанием передачи; и
- устройство вывода пакетов из первого гипотетического буфера декодирования на базе кадра передачи;
- второй гипотетический буфер для буферизации пакетов, сформированных на базе выходных данных первого буфера гипотетического декодирования; и
- контроллер для управления уровнем занятости первого буфера гипотетического декодирования и второго буфера гипотетического декодирования путем управления по меньшей мере одним из следующего:
работой потокового генератора;
генерированием по меньшей мере одного кадра передачи;
расписанием передачи.
Согласно четвертому аспекту настоящего изобретения предлагается устройство беспроводной связи, включающее буфер для буферизации медиапотока для передачи от беспроводного устройства связи приемному устройству, при этом беспроводное устройство связи включает:
- потоковый генератор, включающий:
- первый формирователь пакетов для формирования медиапакетов из по меньшей мере одного вида медиаинформации медиапотока;
- генератор кадра для генерирования по меньшей мере одного кадра передачи на базе передаваемых медиапакетов;
- второй формирователь пакетов для формирования передаваемых пакетов из по меньшей мере одного кадра передачи; и
- планировщик для генерирования расписания передачи для передаваемых пакетов; и
- гипотетический декодер для выполнения гипотетического декодирования во время передачи в соответствии с расписанием передачи, включающий:
- первый буфер гипотетического декодирования для буферизации передаваемых пакетов в соответствии с расписанием передачи; и
- устройство вывода пакетов из первого гипотетического буфера декодирования на базе кадра передачи;
- второй гипотетический буфер для буферизации пакетов, сформированных на базе выходных данных первого буфера гипотетического декодирования; и
- контроллер для управления уровнем занятости первого буфера гипотетического декодирования и второго буфера гипотетического декодирования путем управления по меньшей мере одним из следующего:
работой потокового генератора;
генерированием по меньшей мере одного кадра передачи;
расписанием передачи.
Согласно пятому аспекту настоящего изобретения предлагается сервер, включающий буфер для буферизации медиапотока для передачи от сервера приемному устройству, при этом сервер также включает:
- потоковый генератор, включающий:
- первый формирователь пакетов для формирования медиапакетов из по меньшей мере одного вида медиаинформации медиапотока;
- генератор кадра для генерирования по меньшей мере одного кадра передачи на базе передаваемых медиапакетов;
- второй формирователь пакетов для формирования передаваемых пакетов из по меньшей мере одного кадра передачи; и
- планировщик для генерирования расписания передачи для передаваемых пакетов; и
- гипотетический декодер для выполнения гипотетического декодирования во время передачи в соответствии с расписанием передачи, включающий:
- первый буфер гипотетического декодирования для буферизации передаваемых пакетов в соответствии с расписанием передачи; и
- устройство вывода пакетов из первого гипотетического буфера декодирования на базе кадра передачи;
- второй гипотетический буфер для буферизации пакетов, сформированных на базе выходных данных первого буфера гипотетического декодирования; и
контроллер для управления уровнем занятости первого буфера гипотетического декодирования и второго буфера гипотетического декодирования путем управления по меньшей мере одним из следующего:
работой потокового генератора;
генерированием по меньшей мере одного кадра передачи;
расписанием передачи;
- приемопередатчик для передачи пакетов приемному устройству.
Согласно шестому аспекту настоящего изобретения предлагается сервер мультимедийной службы широкого/многоадресного вещания, включающий буфер для буферизации медиапотока для передачи от сервера приемному устройству, при этом сервер также включает:
- потоковый генератор, включающий:
- первый формирователь пакетов для формирования медиапакетов из по меньшей мере одного вида медиаинформации медиапотока;
- генератор кадра для генерирования по меньшей мере одного кадра передачи на базе передаваемых медиапакетов;
второй формирователь пакетов для формирования передаваемых пакетов из по меньшей мере одного кадра передачи; и
- планировщик для генерирования расписания передачи для передаваемых пакетов; и
- гипотетический декодер для выполнения гипотетического декодирования во время передачи в соответствии с расписанием передачи, включающий:
- первый буфер гипотетического декодирования для буферизации передаваемых пакетов в соответствии с расписанием передачи; и
- устройство вывода пакетов из первого гипотетического буфера декодирования на базе кадра передачи;
- второй гипотетический буфер для буферизации пакетов, сформированных на базе выходных данных первого буфера гипотетического декодирования; и
контроллер для управления уровнем занятости первого буфера гипотетического декодирования и второго буфера гипотетического декодирования путем управления по меньшей мере одним из следующего:
работой потокового генератора;
генерированием по меньшей мере одного кадра передачи;
расписанием передачи.
приемопередатчик для передачи пакетов как мультимедийной службы широкого/многоадресного вещания.
Согласно седьмому аспекту настоящего изобретения предлагается приемное устройство для приема пакетов, имеющих расписание передачи и включающих по меньшей мере один кадр передачи, из которого сформированы передаваемые пакеты, при этом упомянутый по меньшей мере один кадр передачи включает медиапакеты, сформированные на базе по меньшей мере одного вида медиаинформации медиапотока, при этом приемное устройство включает:
- приемник для приема передаваемых пакетов, включающих информацию о величине первичной буферизации для задержки декодирования пакетов при начале приема пакетов;
- первый распаковщик для реконструкции медиапакетов из принятых пакетов;
- буфер для буферизации информации медиапакетов;
- декодер для декодирования медиаинформации медиапакетов; и
- контроллер для задержки декодирования в соответствии с информацией о величине первичной буферизации.
Согласно восьмому аспекту настоящего изобретения предлагается сигнал, связанный с медиапотоком, включающим медиапакеты, сформированные на базе по меньшей мере одного вида медиаинформации медиапотока, где медиапакеты включены в по меньшей мере один кадр передачи, из которого сформированы пакеты для передачи, и имеют расписание передачи, при этом указанный сигнал включает информацию о такой величине первичной буферизации для задержки декодируемых пакетов при начале приема медиапотока, которая делает каждые медиапакет медиапотока в любом кадре передачи доступным во время или до времени декодирования.
Согласно девятому аспекту настоящего изобретения предлагается компьютерный программный продукт, включающий компьютерную программу, записанную на читаемом компьютером носителе, включающий исполняемые шаги, выполняемые машиной для буферизации пакетов медиапотока путем
- формирования медиапакетов из по меньшей мере одного вида медиаинформации в потоковом генераторе передающего устройства;
- генерирования по меньшей мере одного кадра передачи на базе медиапакетов для передачи;
- формирования пакетов для передачи из по меньшей мере одного кадра передачи;
- генерирования расписания передачи для передаваемых пакетов;
- выполнения первого гипотетического декодирования в соответствии с расписанием передачи, включающего выполняемые машиной шаги для
- буферизации пакетов для передачи в соответствии с расписанием передачи в первом буфере гипотетическом декодирования; и
- вывода пакетов из первого буфера гипотетического декодирования на базе кадра передачи;
- выполнения второго гипотетического декодирования, включающего:
- буферизацию пакетов, сформированных на базе выходных данных первого буфера гипотетического декодирования;
- управление уровнем занятости первого буфера гипотетического декодирования и второго гипотетического уровня декодирования путем управления по меньшей мере одним из следующего:
работой потокового генератора;
генерированием по меньшей мере одного кадра передачи;
расписанием передачи.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
Далее настоящее изобретение будет описано более детально со ссылкой на прилагаемые чертежи.
Фиг.1 изображает систему в соответствии с примером осуществления настоящего изобретения.
Фиг.2 показывает упрощенную систему IP передачи поверх DVB-H.
Фиг.3 показывает структуру кадра МРЕ FEC.
Фиг.4 показывает передающее устройство в соответствии с примером осуществления настоящего изобретения в виде упрощенной блок-схемы.
Фиг.5 иллюстрирует процедуру расчета RSDT (таблица кодов Рида-Соломона).
Фиг.6 изображает модель буферизации в соответствии с примером осуществления настоящего изобретения.
Фиг.7 изображает пример медиапередачи в сети формата DVB.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Далее система в соответствии с примером реализации настоящего изобретения описана более детально со ссылками на фиг.1-6.
Система на фиг.1 включает передающее устройство 1, канал передачи 2 и приемное устройство 3. Передающим устройством 1 может быть, например, сервер, устройство беспроводной связи, персональный компьютер и т.п. Приемным устройством 3 может быть, например, устройство беспроводной связи, персональный компьютер, телевизор и т.п.
Передающее устройство 1 включает потоковый генератор 1.0 для формирования транспортных потоков 702 от одной или более DVB системы связи (включающей медиакомпоненты или IP потоки). В этой реализации потоковый генератор 1.0 включает кодировщик 1.1 для кодирования при необходимости медиаинформации, формирователь 1.2 пакетов RTP/UDP/IP, многопротокольный инкапсулятор 1.3, буфер 1.4 кодирования FEC, блок 1.6 кодирования FEC и блок 1.8 планировщика передачи. Кодировщик 1.1 создает поток данных D1, содержащий кодированные двоичные сигналы. Поток данных D1 передается в формирователь 1.2, в котором поток данных D1 заключается в полезные нагрузки R2 IP-дейтаграмм согласно спецификации формата. Далее эти исходные IP-дейтаграммы (поток D2 на фиг.2) обрабатываются в блоке многопротокольного инкапсулятора 1.3, который формирует МРЕ секцию путем заключении IP-дейтаграмм D2 в кадровую структуру МРЕ. МРЕ секции (поток данных D3) запоминаются в буфере кодирования FEC.
Чтобы дать возможность коррекции ошибок от потерянных транспортных пакетов, должна быть сформирована информация, необходимая для восстановления. В этом примере ремонтные пакеты формируются следующим образом. Блок 1.6 кодирования FEC рассчитывает код коррекции ошибок МРЕ секций и формирует секции МРЕ FEC для ремонтных пакетов, содержащих код коррекции ошибок для исходных IP дейтаграмм D2. Секции МРЕ FEC (поток данных D6) также запоминаются в буфере 1.4 кодирования FEC.
Планировщик 1.8 пакетов определяет темп передачи пакетов МРЕ секций. IP передача поверх DVB-H обычно осуществляется с разделением времени, при котором элементарный поток передается в пачках, поэтому приемник, используя сигналы управления, остается неактивным, когда получение пачек сигналов не ожидается. Пачки передаются с существенно большей интенсивностью, чем требуемая для передачи со скоростью декодирования медиапотока. Благодаря временному разделению может быть достигнута значительная экономия потребляемой мощности по сравнению с приемником, в котором радиоприемник постоянно остается активным.
Планировщик 1.8 контролирует выходящие пакеты МРЕ секций так, чтобы каждый пакет МРЕ секции был бы передан в нужный момент времени в соответствии с действующим расписанием процесса. Порядок, в котором могут быть переданы пакеты МРЕ секций, например, такой, что все исходные пакеты МРЕ секции одного блока FEC передаются перед ремонтными пакетами. Однако, очевидно, что может быть применен порядок, отличный от этого. Например, исходные пакеты МРЕ секций и ремонтные пакеты могут чередоваться.
Планировщик 1.8 передает пакеты МРЕ секций как пакеты транспортного потока (TS) MPEG-2. Другими словами, пакеты МРЕ секций сегментируются на пакеты MPEG-2 транспортного потока. Когда необходимые транспортному протоколу преобразования выполнены, пакеты могут быть переданы в канал 2 приемопередатчиком 1.13 устройства 1. Передача может быть беспроводной или проводной, или обе могут использоваться в разных каналах передачи. Канал передачи может включать один или более узлов, базовых станций и т.д., через которые передается поток пакетов. Детали канала передачи и способа передачи известны, и нет необходимости описывать их здесь более подробно.
Пакеты не обязательно передаются после выполнения процесса планирования, возможно, что пакеты запоминаются в памяти, например, в виде файла. Файл может быть также снабжен дополнительной информацией.
В системе согласно настоящему изобретению пакеты транспортного потока MPEG-2 также передаются в гипотетический декодер 1.9 (поток данных D9a). Работа гипотетического декодера 1.9 более подробно описана далее. Гипотетический FEC декодер может управлять скоростью планирования передачи, числом создаваемых ремонтных пакетов (на каждый FEC блок) и числом исходных пакетов МРЕ секций (IP дейтаграмм) в каждом FEC блоке. Эти управляющие операции изображены пунктирными линиями на фиг.1.
Далее более подробно описывается работа приемного устройства 3. Приемник 3.1 принимает сигналы, которые переносят передаваемый поток пакетов, и производит необходимую демодуляцию, с выхода приемника 3.1 демодулированная информация идет в блок 3.2 планировщика приема. Планировщик 3.2 определяет, когда приемник должен быть включен для приема разделенных по времени пачек сигналов. В блоке 3.2 планировщика демодулированная информация преобразуется в поток пакетов МРЕ секций. Блок 3.2 планировщика может выполнять при необходимости некоторые операции преобразования протоколов и декодирования, чтобы восстановить поток пакетов МРЕ секций (поток данных D13). Блок планировщика отправляет МРЕ секции в буфер 3.4 декодирования FEC.
Если в FEC блоке есть хотя бы один потерянный исходный пакет, приемное устройство 3 будет пытаться исправить потерю следующим образом: FEC декодер 3.6 использует соответствующий алгоритм декодирования FEC для восстановления потерянных исходных МРЕ секций и запоминания их снова в буфере 3.4 декодирования FEC.
Блок 3.7 многопротокольной декапсуляции получает пакеты МРЕ секций из буфера 3.4 декодирования FEC. В блоке 3.7 многопротокольной декапсуляции пакет RTP/UDP/IP формируется путем извлечения полезной нагрузки МРЕ секции и, если необходимо, повторной сборки пакета RTP/UDP/IP из нескольких МРЕ секций. После этой операции поток пакетов дейтаграмм RTP/UDP/IP (поток данных D19) соответствует спецификации полезной нагрузки медиаформата и может быть передан в распаковщик 3.8.
Распаковщик 3.8. обрабатывает поток пакетов дейтаграмм RTP/UDP/IP и отделяет полезную нагрузку от исходных пакетов дейтаграмм RTP/UDP/IP в соответствии со спецификацией полезной нагрузки медиаформата. Результатом является битовый поток или поток блоков данных приложения (ADU, поток данных D20). Блок данных приложения - элементарный блок формата медиакодирования, такой как блок Абстрактного Сетевого Уровня (NAL) стандарта кодирования H.264/AVC или кодированный аудиокадр. Затем медиапоток битов или поток ADU может быть декодирован для дальнейшей обработки.
Гипотетический декодер
Далее более подробно описывается работа гипотетического FEC декодера 1.9. Гипотетический приемник содержит буферы, изображенные на фиг.6. При этом считается, что гипотетический FEC декодер состоит из транспортного буфера 611, буфера 612 многопротокольной декапсуляции и буфера 613 RTP декапсуляции. Считается, что гипотетический медиадекодер состоит из буфера 614 кодированных данных и буфера 615 декодированных данных.
Транспортный буфер 611 (фиг.6) получает пакеты MPEG-2 TS и убирает дубликаты пакетов. Эта операция подобна описываемой в спецификации ETSI EN 301192 и используемой в MPEG-2 системах. Буфер 612 многопротокольной декапсуляции используется для виртуального декодирования FEC и декапсуляции МРЕ в IP дейтаграммы. Буфер 613 RTP декапсуляции используется для декапсуляции RTP и полезной нагрузки заголовков RTP и для сглаживания пульсаций при временном разделении до равномерного потока данных для входов медиадекодеров. Буфер 614 кодированных данных и буфер 615 декодированных данных определены в спецификациях медиадекодеров.
По одному транспортному буферу 611 приходится на каждый мультиплексный поток 702 MPEG-2 TS, один буфер 612 многопротокольной декапсуляции на каждый элементарный поток 704, один буфер 613 RTP декапсуляции на каждый IP поток 705, один буфер 614 кодированных данных на каждый элементарный медиапоток, переносимый IP потоком, и обычно один буфер 615 декодированных данных на каждый элементарный медиапоток, переносимый IP потоком.
Модель буфера многопротокольной декапсуляции (MDP) применяется для разделенных по времени элементарных потоков 704, переносящих IP потоки 705. Величина элемента time_slicing временного разделения и идентификатор FEC могут быть равными единице для разделенных по времени элементарных потоков.
Модель MDP буфера определена следующим образом. MDP буфер 612 изначально пуст. Передача данных начинается с первого пакета MPEG-2 TS в порядке передачи во временном интервале. Каждый пакет MPEG-2 TS, вышедший из транспортного буфера 611, вводится в MDP буфер (без заголовка TS пакета). Когда значение элемента mpe_fec временного интервала и идентификатор FEC равны 00b, пакет MPEG-2 TS завершает МРЕ секцию, и завершенная МРЕ секция завершает дейтаграмму (т.е. значение последнего номера секции равно значению номера секции в заголовке МРЕ секции). МРЕ секция удаляется из MDP буфера 612, и дейтаграмма, переносимая в МРЕ секции, выводится. Когда значение элемента mpe_fec временного интервала и идентификатор FEC равны 01b, и пакет MPEG-2 TS - первый во временном интервале, кадр MPE-FEC формируется в MDP буфере в соответствии со спецификацией пункта 9.3.1 ETSI EN 301192 v.1.4.1. Когда значение элемента mpe_fec временного интервала и FEC идентификатор равны 01b, каждый пакет MPEG-2 TS вставляется в кадр MPE-FEC в MDP буфере 612 в соответствии со спецификацией пункта 9.3.1 ETSI EN 301 192 v.1.4.1. Когда значение элемента mpe_fec временного интервала и идентификатор FEC равны 01b и пакет MPEG-2 TS - последний для кадра MPE-FEC в MDP буфере 612, тогда дейтаграммы, переносимые в МРЕ секциях кадра MPE-FEC выводятся, и кадр MPE-FEC убирается из MDP буфера 612.
Буфер RTP декапсуляции
Модель буфера RTP декапсуляции применяется к дейтаграммам, выведенным из буфера многопротокольной декапсуляции 612 и содержащим RTP пакеты. Модель буфера RTP декапсуляции характерна для IP потока.
Буфер 613 RTP декапсуляции изначально пуст. Каждый RTP пакет помещается в буфер RTP декапсуляции без UDP и IP заголовка, но с RTP заголовком, сразу же после выхода из MDP буфера 612. RTP пакеты не выводятся из буфера 613 RTP декапсуляции до сигнализации об окончании задержки первичной буферизации (с момента помещения первого RTP пакета). Способ сигнализации об окончании задержки первичной буферизации определен далее. Блоки данных приложения (ADD) выводятся из буфера 613 RTP декапсуляции в порядке декодирования. Для потоков стандарта H264/AVC ADU определяется как блок NAL, и порядок их декодирования определен в спецификации RFC 3984. Для потоков стандарта ААС ADU определяется как блок доступа и определен в спецификации RFC 3640. Первый ADU по порядку декодирования выводится сразу же по окончании задержки первичной буферизации. Каждый следующий ADU по порядку декодирования выводится, когда он становится доступен в буфере 613 RTP декапсуляции, и когда прошло следующее время (в секундах) с момента удаления предыдущего ADU: 8*(размер предыдущего ADU в байтах)/(1000*(величина "b=AS" SDP атрибута потока). RTP пакет удаляется из буфера RTP декапсуляции, когда все ADU, которые он содержит, выведены.
Сигнализация о задержке первичной буферизации
Задержка первичной буферизации регулирует задержку (в миллисекундах) от помещения RTP пакета в буфер 613 RTP декапсуляции до того как первый по порядку декодирования ADU может быть выведен из буфера 613 RTP декапсуляции. Регулируемая задержка гарантирует декодирование и воспроизведение без пауз. Значением является беззнаковое 16-битовое целое число в байтовом порядке сети.
Далее будут представлены некоторые подробности примера семантики и синтаксиса сигнализации первичной буферизации.
Расширенное сообщение (XR) протокола RTCP, описанное в спецификации RFC 3611, - это механизм расширения сообщения переносимого по протоколу RTCP, за рамки отчетов отправителя и получателя. Семь типов блоков сообщений RTCP XR представлены в спецификации RFC 3611, и представлен механизм расширения для включения дополнительных типов блоков сообщений. Новый тип типов блоков сообщений RTCP XR может быть специфицирован для передачи задержки первичной буферизации.
Сообщения RTCP отправителя должны быть переданы в каждом МРЕ-FEC кадре для обеспечения корректной аудио-видео синхронизации в приемниках, которые начинают прием MPE-FEC кадра. Предложенное расширенное сообщение о задержке первичной буферизации может быть объединено в тот же RTCP пакет, что и сообщение отправителя. Следовательно, для переноса информации первичной буферизации не требуется служебных сигналов секции UDP/IP/MPE.
В качестве альтернативы, элемент задержки первичной буферизации может быть представлен в RTR пакетах, как показано ниже. Когда элемент задержки первичной буферизации не представлен в RTP пакете, применяется предыдущее значение задержки первичной буферизации. Если не имеется предыдущего значения, задержка первичной буферизации подразумевается равной нулю. Когда дополняющий бит в RTP заголовке равен 1, величина последнего октета в дополнении больше, чем 2, и величина октета, предшествующего последнему октету в дополнении, равна 0х80, присутствует элемент задержки первичной буферизации. Значение задержки первичной буферизации предшествует двум последним октетам RTP дополнения.
Как альтернатива, дополнительное поле задержки первичной буферизации специфицировано в идентификаторе, который мультиплексирован в транспортный поток MPEG-2.
Как альтернатива, специфицируется структура новой МРЕ секции или структура существующей МРЕ или MPE-FEC секции дополняется, чтобы включить элемент задержки первичной буферизации.
Генерирование блока FEC
Кадр MPE-FEC организован как матрица с 255 столбцами и переменным числом строк. На данный момент определены размеры строк в 256, 512, 768, 1024 байта. На фиг.3 показана структура кадра MPE-FEC. Каждая позиция в матрице содержит байт информации. Первые 191 столбцов выделены для МРЕ секций, переносящих IP дейтаграммы, и возможных дополнений. Эта часть кадра MPE-FEC называется таблицей данных приложения (ADT). Следующие 64 столбца кадра MPE-FEC зарезервированы для информации FEC кодов четности Рида-Соломона (RS) и называются таблицей данных RS (RSDT).
ADT может быть полностью или частично заполнена дейтаграммами. Оставшиеся столбцы, когда ADT частично заполнена, дополняются нулевыми байтами и называются столбцами дополнения. Дополнение также делается, когда в кадре MPE-FEC не остается места для заполнения следующей целой дейтаграммой. RSDT рассчитывается по каждой строке ADT, с использованием FEC кодов RS (255, 191). Фиг.5 иллюстрирует процедуру расчета RSDT.
Нет необходимости полностью рассчитывать все 64 столбца RSDT, и некоторые из крайних правых столбцов могут быть полностью отброшены, эта процедура называется выкалыванием. Добавленные и выколотые столбцы не посылаются в канал передачи.
Требования соответствия
Передающее устройство 1, такое как IP инкапсулятор, проверяет, что уровень занятости гипотетического FEC декодера 1.9 не выходит за границы требуемого размера буфера. Если необходимо, гипотетический FEC декодер 1.9 может контролировать потоковый генератор 1.0, чтобы изменять некоторые параметры, воздействующие на уровень занятости буфера. Например, гипотетический FEC декодер 1.9 может контролировать частоту и/или количество формируемых медиапакетов, частоту и количество формируемых ремонтных пакетов и/или расписание передачи медиапакетов и ремонтных пакетов. Кроме того, передающее устройство 1 должно быть выполнено так, чтобы выходной сигнал гипотетического FEC декодера 1.9 соответствовал спецификациям медиаформатов для полезной нагрузки и декодирования.
В некоторых реализациях размер буфера декодирования может быть непостоянным и может меняться в соответствии с потребностями. Гипотетический FEC декодер 1.9 может определять необходимый размер буферизации для декодирования FEC. Этот определенный размер может затем быть указан приемному устройству 3, которое резервирует достаточный объем памяти для буферизации.
Гипотетический FEC декодер 1.9 может включать контроллер (не показан) для выполнения описанных выше операций, или контроллер 1.14 передающего устройства может быть использован как контроллер гипотетического FEC декодера 1.9.
Когда применяется представленная модель буферизации, содержащая буферы многопротокольной декапсуляции и RTP декапсуляции, передающее устройство проверяет, чтобы любой разделенный по времени элементарный поток, переносящий IP потоки, соответствовал представленной модели буферизации и следующим требованиям.
Для любого элементарного потока уровень занятости буфера 612 многопротокольной декапсуляции не должен превышать значения первого параметра (А), указывающего первое количество байт.
Для любого IP потока, переносимого в элементарном потоке, выходные данные буфера RTP декапсуляции должны соответствовать спецификации медиаформата для декодирования.
Для любого IP потока, переносимого в элементарном потоке, уровень занятости буфера 613 RTP декапсуляции не должен превышать значения второго параметра (В) указывающего второе количество байт.
Значение первого параметра А и второго параметра В пропорциональны размеру кадра MPE-FEC. Определенный запас для сглаживания вариаций скорости передачи и интервал временного разделения должны быть учтены при определении значения второго параметра В.
Приемное устройство 3, такое как клиент цифрового телевизионного вещания DVB-H, должно быть способно принимать транспортный поток MPEG-2, находящийся в соответствии с гипотетическим FEC декодером 1.9.
Кроме того, когда приемное устройство 3 удовлетворяет требованиям декодирования транспортного потока пакетов MPEG-2, оно должно быть способно распаковывать и декодировать пакеты транспортного потока MPEG-2 и выводить декодированные данные с корректной скоростью.