Способ и устройство декодирования потока данных в системах потоковой передачи данных

Иллюстрации

Показать все

Изобретение относится к способу и устройству декодирования потока данных в буферном узле для систем передачи мультимедийных потоковых данных, например, MPEG-4. Техническим результатом является улучшение сохранения и извлечения одного или нескольких блоков данных в мультимедийных буферных узлах систем потоковой передачи данных. Предложен способ декодирования потока данных, содержащего аудио/видеосубпотоки (14) и управляющие субпотоки, содержит буферные узлы (12), имеющие возможность буферизовать несколько потоков данных в одном буфере, причем используют отдельные параметры для выделенного размера буфера и любого сохраненного пакета, так что не только несколько пакетов может быть сохранено в буферном узле (12), но также этот узел может существовать до тех пор, пока его буфер пуст, для повторного использования узла. 2 н. и 8 з.п. ф-лы, 3 ил.

Реферат

Изобретение относится к способу и устройству декодирования потока данных в буферном узле для систем передачи мультимедийных потоковых данных, например, MPEG-4.

Уровень техники

В стандарте MPEG-4 ISO/IEC 14496, в частности, в части 1 "Systems" аудио/видео (AV)-сцена может быть составлена из нескольких аудио-, видео- и искуственных двумерных/трехмерных объектов, которые могут быть закодированы с помощью различных типов кодирования формата MPEG-4 и могут быть переданы как двоичные сжатые данные в мультиплексированном битовом потоке, содержащем несколько субпотоков. Субпоток также указывается ссылкой как элементарный поток (ES), и к нему можно осуществлять доступ посредством дескриптора. ES могут содержать AV-данные или могут быть так называемыми потоками описания объектов (OD), которые содержат конфигурационную информацию, необходимую для декодирования AV-субпотоков. Процесс синтезирования одной сцены из компонентных объектов называется компоновкой и означает смешивание нескольких отдельных AV-объектов, к примеру, представление видео со связанным звуком и текстом после восстановления пакетов и отдельного декодирования их соответствующих ES. Компоновка сцены описана в специальном ES, называемом "потоком описания сцены", который содержит описание сцены, состоящее из закодированного дерева узлов, называемого двоичной информацией для сцен (BIFS). "Узел" означает этап или узел обработки, используемый в стандарте MPEG-4, к примеру, интерфейс, который буферизует данные или выполняет временную синхронизацию между декодером и последующими устройствами обработки. Узлы могут иметь атрибуты, указываемые ссылкой как поля, и другую вложенную информацию. Лист дерева BIFS соответствует элементарным AV-данным посредством указания на OD в рамках потока OD, который, в свою очередь, содержит дескриптор ES, указывающий на AV-данные в ES. Промежуточные узлы, или узлы описания сцены, группируют этот материал, чтобы формировать AV-объекты, и выполняют, к примеру, группировку и преобразование этих AV-объектов. В приемном устройстве конфигурационные субпотоки извлекаются и используются, чтобы настраивать необходимые AV-декодеры. AV-субпотоки декодируются отдельно для объектов, и принятые инструкции по компоновке используются, чтобы подготовить одно представление из декодированных AV-объектов. Это окончательное представление, или сцена, затем воспроизводится.

Согласно стандарту MPEG-4 звуковое содержимое может быть сохранено только в узле "audioBuffer" или в узле "mediaBuffer". Оба узла могут сохранять один блок данных однократно. При сохранении другого блока данных ранее сохраненный блок данных перезаписывается.

Узел "audioBuffer" может быть загружен только данными из звукового субпотока, когда узел создается или когда изменяется поле "Length". Это означает, что звуковой буфер может быть загружен только непрерывными блоками звуковых данных. Выделенная память соответствует указанному объему данных. Дополнительно может произойти, что синхронизация по времени загрузки выборок данных не точно обусловлена моделью синхронизации декодера BIFS.

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

Раскрытие изобретения

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

Эта проблема разрешается настоящим изобретением, как раскрыто в пункте 1 формулы изобретения. Устройство, использующее предлагаемый способ, раскрыто в пункте 8 формулы изобретения.

Согласно изобретению дополнительные параметры добавляются к определению мультимедийного буферного узла, к примеру, аудио- и видеоузла, так чтобы несколько блоков данных с AV-содержимым могли быть сохранены и выборочно обработаны, к примеру, включены в сцену, обновлены или удалены. В случае MPEG-4 этими дополнительными параметрами являются новые поля в описании узла, к примеру, в узле "audioBuffer" или "mediaBuffer". Новые поля задают положение блока данных в рамках принятого потока данных, к примеру, звукового потока, а также то, как обрабатывать загрузку этого блока, к примеру, перезаписывание ранее сохраненных блоков данных или накопление блоков данных в буфере.

Краткое описание чертежей

Примерные варианты осуществления изобретения описаны со ссылкой на прилагаемые чертежи, из которых:

фиг.1 - это общая структура сцены MPEG-4;

фиг.2 - это примерный узел "AdvancedAudioBuffer" для MPEG-4; и

фиг.3 - это поля в рамках примерного узла "AdvancedAudioBuffer" для MPEG-4.

Осуществление изобретения

Фиг. 1 показывает компоновку сцены MPEG-4, используя описание сцены, принятое в потоке описания сцены ES_IDS. Сцена содержит аудио-, видео- и другие данные, а компоновка аудио и видео задается в AV-узле ODIDAV. Звуковая часть сцены составляется в наборщике звука, который включает в себя узел AdvancedAudioBuffer и содержит ссылку ODIDA на звуковой объект, к примеру, декодер. Фактические звуковые данные, принадлежащие этому звуковому объекту, содержатся в качестве пакетов в ES, а именно, звуковом потоке, к которому можно осуществлять доступ посредством дескриптора ES_DA. Узел AdvancedAudioBuffer может выбирать несколько пакетов звуковых данных из звукового потока ES_IDA, идущего из аудиодекодера.

Звуковая часть сцены MPEG-4 показана подробнее на фиг.2. Звуковая часть описания 10 сцены содержит звуковой узел 11, который имеет узел 12 AdvancedAudioBuffer, предоставляющий интерфейс для сохранения звуковых данных. Звуковые данные, которые должны быть сохранены, состоят из пакетов в звуковом потоке 14, который принимается из аудиодекодера. Для каждого пакета данных задается, в какое время он должен быть декодирован. Узел 12 AdvancedAudioBuffer хранит информацию о времени загрузки пакетов, к примеру, начальное время t1 и конечное время t2. Дополнительно он может идентифицировать и осуществлять доступ к нужному ES посредством ссылки на узел 13 AudioSource. Узел AdvancedAudioBuffer может буферизовать указанный пакет данных без перезаписи ранее принятых пакетов данных до тех пор, пока имеет достаточно емкости буфера.

Узел 12 AdvancedAudioBuffer может быть использован вместо узла AudioBuffer, заданного в подпункте 9.4.2.7 стандарта систем MPEG-4 ISO/IEC 14496-1:2002. По сравнению с узлом AudioBuffer изобретаемый узел AdvancedAudioBuffer имеет усовершенствованный механизм загрузки, который дает возможность, к примеру, перезагрузки данных.

Узел AdvancedAudioBuffer может быть задан с помощью синтаксиса MPEG-4, как показано на фиг.3. Он содержит ряд полей и событий. Поля выполняют функцию параметров и переменных, тогда как события предоставляют интерфейс управления узлу. Функция следующих узлов описана в ISO/IEC 14496-1:2002, подпункт 9.4.2.7: "loop", "pitch", "startTime", "stopTime", "children", "numChan", "phaseGroup", "length", "duration_changed" и "isActive". Поле "length" задает длину выделенного звукового буфера в секундах. В текущей версии упомянутого стандарта это поле нельзя модифицировать. Это означает, что еще один экземпляр узла AudioBuffer должен быть создан, когда еще один блок звуковых данных должен быть загружен, поскольку звуковые данные буферизуются при создании экземпляра узла. Но создание нового узла - это достаточно сложный программный процесс, и он может приводить к задержке, приводящей к варьированию привязок ко времени в созданном узле и дереве BIFS.

Следующие новые поля по сравнению с узлом AudioBuffer включены в узел AdvancedAudioBuffer: "startLoadTime", "stopLoadTime", "loadMode", "numAccumulatedBlocks", "deleteBlock" и "playBlock". С помощью этих новых полей можно активировать новые функции, к примеру, загружать или удалять сохраненные данные. Дополнительно можно задать во время создания экземпляра узла размер буфера, который должен быть выделен, независимо от фактического объема данных, которые должны быть буферизованы. Размер буфера, который должен быть выделен, задается полем "length". Поля "startTime" и "stopTime" могут быть использованы альтернативно полями "startLoadTime" и "stopLoadTime", в зависимости от режима, описанного далее.

Могут применяться различные механизмы загрузки, которые задаются полем "loadMode". Различными режимами загрузки являются, к примеру, режим Compatibility, режим Reload, режим Accumulate, режим Continuous Accumulate и режим Limited Accumulate.

В режиме Compatibility звуковые данные должны быть буферизованы при создании экземпляра узла AdvancedAudioBuffer, а также каждый раз, когда изменяется поле длины. Поля "startLoadTime", "stopLoadTime", "numAccumulatedBlocks", "deleteBlock" и "playBlock" не действуют в этом режиме. Поля "startTime" и "stopTime" задают блок данных, который должен быть буферизован.

В режиме Reload поля "startLoadTime" и "stopLoadTime" являются допустимыми. Когда привязка ко времени узла AdvancedAudioBuffer достигает времени, указанного в поле "startLoadTime", внутренний буфер данных очищается, и выборки на входе узла сохраняются до тех пор, пока не достигается значение в поле "stopLoadTime", или сохраненные данные не имеют длину, заданную в поле "length". Если значение "startLoadTime" больше или равно значению "stopLoadTime", блок данных длины, заданной в поле "length", загружается в момент времени, заданный в "startLoadTime". Поля "numAccumulatedBlocks", "deleteBlock" и "playBlock" не действуют в этом режиме.

В режиме Accumulate блок данных, заданный интервалом между значениями полей "startLoadTime" и "stopLoadTime", присоединяется в конец содержимого буфера. Чтобы иметь все блоки данных доступными, блоки индексируются или помечаются, как описано ниже. Когда предел, заданный полем "length", достигается, загрузка завершается. Поле "numAccumulatedBlocks" не действует в этом режиме.

В режиме Continuous Accumulate блок данных, заданный интервалом между значениями полей "startLoadTime" и "stopLoadTime", присоединяется в конец содержимого буфера. Все блоки данных в буфере индексируются, чтобы быть адресуемыми, как описано выше. Когда предел, заданный полем "length", достигается, самые старые сохраненные данные могут быть отброшены или перезаписаны. Поле "numAccumulatedBlocks" не действует в этом режиме.

Режим Limited Accumulate аналогичен режиму Accumulate за исключением того, что число сохраненных блоков ограничено числу, заданному в поле "numAccumulatedBlocks". В этом режиме поле "length" не действует.

Для некоторых описанных механизмов загрузки переход от 0 к значению ниже 0 в поле "deleteBlock" начинает удаление блока данных, относительно самого последнего блока данных. Самый последний блок имеет адрес -1, блок до него - -2 и т.д. Это возможно, например, в следующих режимах загрузки: режим Accumulate, режим Continuous Accumulate и режим Limited Accumulate.

Поскольку предлагаемый буфер может хранить несколько блоков данных, выгодно иметь возможность выбрать конкретный блок данных для воспроизведения. Поле "playBlock" задает блок, который должен быть воспроизведен. Если значение поля "playBlock" равно 0 (значение по умолчанию), воспроизводится все содержимое с помощью условий "startTime" и "stopTime". Это вышеупомянутый режим Compatibility, поскольку он совместим с функцией известной системы MPEG-4. Отрицательное значение "playBlock" задает адрес блока относительно самого последнего блока, к примеру, самый последний блок имеет адрес -1, предыдущий блок - -2 и т.д.

Преимуществом предлагаемого способа изобретения является то, что буферный узел может быть использован повторно, поскольку загрузка данных в узел осуществляется быстрее, чем в современном стандарте MPEG-4, где новый узел должен быть создан, прежде чем данные могут быть буферизованы. Поэтому узлу AdvancedAudioBuffer проще сопоставить привязку ко времени узла BIFS и, таким образом, синхронизировать, к примеру, звуковые и видеоданные в MPEG-4.

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

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

Изобретение чрезвычайно полезно для приемных устройств систем MPEG-4.

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

2. Способ по п.1, в котором вторые управляющие данные (LoadMode) задают один из множества режимов работы, причем в первом режиме буферизация пакетов мультимедийных данных выполняется, когда значение первых управляющих данных (Length) изменяется, а во втором и в третьем режимах третьи управляющие данные (StartLoadTime, StopLoadTime) являются допустимыми для задания пакетов мультимедийных данных, которые должны быть буферизованы, причем во втором режиме потоки мультимедийных данных заменяют содержимое буфера, а в третьем режиме потоки мультимедийных данных присоединяются к содержимому буфера.

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

4. Способ по любому из пп.1-3, который используется в узле обработки, и при этом первые управляющие данные (Length) задают выделенный размер буфера во время создания узла.

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

6. Способ по п.1, в котором метка, присоединенная к пакетам буферизованных данных, содержит индекс, относящийся к последнему принятому пакету данных.

7. Способ по п.1, в котором первый субпоток содержит звуковые данные, а второй субпоток содержит описание представления.

8. Устройство для декодирования потока данных, поток данных содержит первый и второй субпотоки, первый субпоток (14) содержит первые и вторые пакеты мультимедийных данных, а второй субпоток содержит управляющую информацию (10), при этом пакеты мультимедийных данных содержат указание времени, когда следует быть представленными, и при этом первые и вторые пакеты мультимедийных данных буферизуются, отличающееся тем, что оно содержит средство буферизации для буферизации первых и вторых пакетов мультимедийных данных, причем вторые пакеты мультимедийных данных могут в первом режиме заменять, а во втором режиме быть присоединенными к первым пакетам мультимедийных данных; средство извлечения из управляющей информации (10) первых, вторых и третьих управляющих данных; средство применения первых управляющих данных (Length), чтобы задать выделенный размер буфера; средство применения вторых управляющих данных (LoadMode), чтобы задать, присоединять вторые пакеты мультимедийных данных к первым пакетам мультимедийных данных или заменять их; и средство применения третьих управляющих данных (StartLoadTime, StopLoadTime), чтобы задать один или более пакетов мультимедийных данных, которые должны быть буферизованы.

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

10. Устройство по п.8 или 9, в котором потоком данных является совместимый с MPEG-4 поток данных.