A method for decoding a data stream containing audio/video substreams and control substreams comprises buffering nodes having the possibility to buffer multiple data packets in the same buffer. This may be achieved by having separate parameters for the allocated buffer size and any stored packet. Thus, not only multiple packets may be stored in the buffering node, but also such node may exist while its buffer is empty, so that the node may be reused later. This is particularly useful for buffering and selectively accessing multiple audio packets in MPEG-4 audio nodes or sound nodes.
|
1. Method for decoding a data stream containing a first and a second substream, the first substream containing first and second multimedia data packets and the second substream containing control information, wherein the multimedia data packets contain an indication of the time when to be presented and are decoded prior to their indicated presentation time, the method comprising the steps of:
extracting from
said control information of the second substream first, second and third control data wherein
the first control data are suitable for defining buffer size to be allocated
the second control data are suitable for defining one or more second multimedia data packets to be buffered, and
the third control data are suitable for defining a mode for buffering the second multimedia data packets;
allocating, in a buffer, buffer size according to the first control data (Length);
storing the first decoded multimedia data packets in the buffer; and
storing one or more multimedia data packets according to the second control data in the buffer, wherein depending on the third control data either the second multimedia data packets are appended to the first decoded multimedia data packets in the buffer, or replace some or all of the first decoded multimedia data packets in the buffer.
8. Apparatus for decoding a data stream, the data stream containing a first and a second substream, the first substream containing first and second multimedia data packets and the second substream containing control information, wherein the multimedia data packets contain an indication of the time when to be presented and are decoded prior to their indicated presentation time, and wherein the first and second multimedia data packets are buffered, comprising
buffering means for said buffering of the first and the second multimedia data packets;
means for extracting from said control information of the second substream first, second and third control data,
wherein the first control data are suitable for defining buffer size to be allocated,
the second control data are suitable for defining one or more second multimedia data packets to be buffered, and
the third control data are suitable for defining a mode for buffering the second a multimedia data packets;
means for allocating, in the buffer, buffer size according to the first control data;
means for storing the first decoded multimedia data packets in the buffer; and
means for storing one or more multimedia data packets according to the second control data in the buffer, wherein depending on the third control data either the second multimedia data packets are appended to the first decoded multimedia data packets in the buffer, or replace some or all of the first decoded multimedia data packets in the buffer.
2. Method according to
3. Method according to
4. Method according to
5. Method according to
6. Method according to the
7. Method according to
9. Apparatus according to
11. Method according to
12. Apparatus according to
|
This invention relates to a method and apparatus for decoding a data stream in a buffering node for multimedia streaming systems, like MPEG-4.
In the MPEG-4 standard ISO/IEC 14496, in particular in part 1 Systems, an audio/video (AV) scene can be composed from several audio, video and synthetic 2D/3D objects that can be coded with different MPEG-4 format coding types and can be transmitted as binary compressed data in a multiplexed bitstream comprising multiple substreams. A substream is also referred to as Elementary Stream (ES), and can be accessed through a descriptor. ES can contain AV data, or can be so-called Object Description (OD) streams, which contain configuration information necessary for decoding the AV substreams. The process of synthesizing a single scene from the component objects is called composition, and means mixing multiple individual AV objects, e.g. a presentation of a video with related audio and text, after reconstruction of packets and separate decoding of their respective ES. The composition of a scene is described in a dedicated ES called ‘Scene Description Stream’, which contains a scene description consisting of an encoded tree of nodes called Binary Information For Scenes (BIFS). ‘Node’ means a processing step or unit used in the MPEG-4 standard, e.g. an interface that buffers data or carries out time synchronization between a decoder and subsequent processing units. Nodes can have attributes, referred to as fields, and other information attached. A leaf node in the BIFS tree corresponds to elementary AV data by pointing to an OD within the OD stream, which in turn contains an ES descriptor pointing to AV data in an ES. Intermediate nodes, or scene description nodes, group this material to form AV objects, and perform e.g. grouping and transformation on such AV objects. In a receiver the configuration substreams are extracted and used to set up the required AV decoders. The AV substreams are decoded separately to objects, and the received composition instructions are used to prepare a single presentation from the decoded AV objects. This final presentation, or scene is then played back.
According to the MPEG-4 standard, audio content can only be stored in the ‘audioBuffer’ node or in the ‘mediaBuffer’ node. Both nodes are able to store a single data block at a time. When storing another data block, the previously stored data block is overwritten.
The ‘audioBuffer’ node can only be loaded with data from the audio substream when the node is created, or when the ‘length’ field is changed. This means that the audio buffer can only be loaded with one continuous block of audio data. The allocated memory matches the specified amount of data. Further, it may happen that the timing of loading data samples is not exactly due to the timing model of the BIFS decoder.
For loading more than one audio sample, it is possible to build up an MPEG-4 scene using multiple ‘audioBuffer’ nodes. But it is difficult to handle the complexity of the scene, and to synchronize the data stored in the different ‘audioBuffer’ nodes. Additionally, for each information a new stream has to be opened.
The problem to be solved by the invention is to improve storage and retrieval of single or multiple data blocks in multimedia buffer nodes in streaming systems, like MPEG-4.
This problem is solved by the present invention as disclosed in claim 1. An apparatus using the inventive method is disclosed in claim 8.
According to the invention, additional parameters are added to the definition of a multimedia buffer node, e.g. audio or video node, so that multiple data blocks with AV contents can be stored and selectively processed, e.g. included into a scene, updated or deleted. In the case of MPEG-4 these additional parameters are new fields in the description of a node, e.g. in the ‘audioBuffer’ node or ‘mediaBuffer’ node. The new fields define the position of a data block within a received data stream, e.g. audio stream, and how to handle the loading of this block, e.g. overwriting previously stored data blocks or accumulating data blocks in a buffer.
Exemplary embodiments of the invention are described with reference to the accompanying drawings, which show in
The audio part of an MPEG-4 scene is shown in more detail in
The AdvancedAudioBuffer node 12 can be used instead of the AudioBuffer node defined in subclause 9.4.2.7 of the MPEG-4 systems standard ISO/IEC 14496-1: 2002. As compared to the AudioBuffer node, the inventive AdvancedAudioBuffer node has an enhanced load mechanism that allows e.g. reloading of data.
The AdvancedAudioBuffer node can be defined using the MPEG-4 syntax, as shown in
The following new fields, compared to the AudioBuffer node, are included in the AdvancedAudioBuffer node: ‘startLoadTime’, ‘stopLoadTime’, ‘loadMode’, ‘numAccumulatedBlocks’, ‘deleteBlock’ and ‘playBlock’. With these new fields it is possible to enable new functions, e.g. load and delete stored data. Further, it is possible to define at node instantiation time the buffer size to be allocated, independently from the actual amount of data to be buffered. The buffer size to be allocated is specified by the ‘length’ field. The ‘startTime’ and ‘stopTime’ fields can be used alternatively to the ‘startLoadTime’ and ‘stopLoadTime’ fields, depending on the mode described in the following.
Different load mechanisms may exist, which are specified by the field ‘loadMode’. The different load modes are e.g. Compatibility mode, Reload mode, Accumulate mode, Continuous Accumulate mode and Limited Accumulate mode.
In Compatibility mode, audio data shall be buffered at the instantiation of the AdvancedAudioBuffer node, and whenever the length field changes. The ‘startLoadTime’, ‘stopLoadTime’, ‘numAccumulatedBlocks’, ‘deleteBlock’ and ‘playBlock’ fields have no effect in this mode. The ‘startTime’ and ‘stopTime’ fields specify the data block to be buffered.
In Reload mode, the ‘startLoadTime’ and ‘stopLoadTime’ fields are valid. When the time reference of the AdvancedAudioBuffer node reaches the time specified in the ‘startLoadTime’ field, the internal data buffer is cleared and the samples at the input of the node are stored until value in the ‘stopLoadTime’ field is reached, or the stored data have the length defined in the ‘length’ field. If the ‘startLoadTime’ value is higher or equal to the ‘stopLoadTime’ value, a data block with the length defined in the ‘length’ field will be loaded at the time specified in ‘startLoadTime’. The ‘numAccumulatedBlocks’, ‘deleteBlock’ and ‘playBlock’ fields have no effect in this mode.
In the Accumulate mode a data block defined by the interval between the ‘startLoadTime’ and ‘stopLoadTime’ field values is appended at the end of the buffer contents. In order to have all data blocks accessible, the blocks are indexed, or labeled, as described below. When the limit defined by the ‘length’ field is reached, loading is finished. The field ‘numAccumulatedBlocks’ has no effect in this mode.
In the Continuous Accumulate mode a data block defined by the interval between the ‘startLoadTime’ and ‘stopLoadTime’ field values is appended at the end of the buffer contents. All data blocks in the buffer are indexed to be addressable, as described before. When the limit defined by the ‘length’ field is reached, the oldest stored data may be discarded, or overwritten. The field ‘numAccumulatedBlocks’ has no effect in this mode.
In the Limited Accumulate mode is similar to the Accumulate mode, except that the number of stored blocks is limited to the number specified in the ‘numAccumulatedBlocks’ field. In this mode, the ‘length’ field has no effect.
For some of the described load mechanisms, a transition from 0 to a value below 0 in the ‘deleteBlock’ field starts deleting of a data block, relative to the latest data block. The latest block is addressed with −1, the block before it with −2 etc. This is possible e.g. in the following load modes: Accumulate mode, Continuous Accumulate mode and Limited Accumulate mode.
Since the inventive buffer may hold several data blocks, it is advantageous to have a possibility to select a particular data block for reproduction. The ‘playBlock’ field defines the block to be played. If the ‘playBlock’ field is set to 0, as is done by default, the whole content will be played, using the ‘startTime’ and ‘stopTime’ conditions. This is the above-mentioned Compatibility mode, since it is compatible to the function of the known MPEG-4 system. A negative value of ‘playBlock’ addresses a block relative to the latest block, e.g. the latest block is addressed with −1, the previous block with −2 etc.
It is an advantage of the inventive method that a buffer node can be reused, since loading data to the node is faster than in the current MPEG-4 standard, where a new node has to be created before data can be buffered. Therefore it is easier for the AdvancedAudioBuffer node to match the timing reference of the BIFS node, and thus synchronize e.g. audio and video data in MPEG-4.
An exemplary application for the invention is a receiver that receives a broadcast program stream containing various different elements, e.g. traffic information. From the audio stream, the packets with traffic information are extracted. With the inventive MPEG-4 system it is possible to store these packets, which are received discontinuously at different times, in the receiver in a way that they can be accumulated in its buffer, and then presented at a user defined time. E.g. the user may have an interface to call the latest traffic information message at any time, or filter or delete traffic information messages manually or automatically. On the other hand, also the broadcaster can selectively delete or update traffic information messages that are already stored in the receivers data buffer.
Advantageously, the invention can be used for all kinds of devices that receive data streams composed of one or more control streams and one or more multimedia data streams, and wherein a certain type of information is divided into different blocks sent at different times. Particularly these are broadcast receivers and all types of music rendering devices.
The invention is particularly good for receivers for MPEG-4 streaming systems.
Patent | Priority | Assignee | Title |
9794605, | Jun 28 2007 | Apple Inc | Using time-stamped event entries to facilitate synchronizing data streams |
Patent | Priority | Assignee | Title |
5436664, | Sep 18 1992 | SGS-THOMSON MICROELECTRONICS S A | Method for masking transmission errors of MPEG compressed pictures |
5502573, | Dec 18 1992 | Sony Corporation | Apparatus for reproducing and decoding multiplexed data from a record medium with means for controlling data decoding as a function of synchronization errors |
5696500, | Aug 18 1995 | Google Technology Holdings LLC | Multi-media receiver and system therefor |
6148026, | Jan 08 1997 | AT&T Corp | Mesh node coding to enable object based functionalities within a motion compensated transform video coder |
6263089, | Oct 03 1997 | Nippon Telephone and Telegraph Corporation | Method and equipment for extracting image features from image sequence |
6963610, | Jan 31 2001 | NEC Corporation | Moving image coding device, moving image coding method and program thereof employing pre-analysis |
7177357, | Oct 07 2002 | Electronics and Telecommunications Research Institute | Data processing system for stereoscopic 3-dimensional video based on MPEG-4 and method thereof |
7224730, | Mar 05 2001 | Corel Corporation | Systems and methods for decoding redundant motion vectors in compressed video bitstreams |
7260826, | May 31 2000 | Microsoft Technology Licensing, LLC | Resource allocation in multi-stream IP network for optimized quality of service |
20040109502, | |||
20050120038, | |||
20060136440, | |||
20070014259, | |||
EP1133189, | |||
RU2154357, | |||
WO9836559, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 06 2004 | Thomson Licensing | (assignment on the face of the patent) | / | |||
Oct 21 2005 | SCHMIDT, JURGEN | Thomson Licensing | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017419 | /0498 | |
Jul 30 2018 | Thomson Licensing | INTERDIGITAL CE PATENT HOLDINGS | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 047332 | /0511 | |
Jul 30 2018 | Thomson Licensing | INTERDIGITAL CE PATENT HOLDINGS, SAS | CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY NAME FROM INTERDIGITAL CE PATENT HOLDINGS TO INTERDIGITAL CE PATENT HOLDINGS, SAS PREVIOUSLY RECORDED AT REEL: 47332 FRAME: 511 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNMENT | 066703 | /0509 |
Date | Maintenance Fee Events |
Aug 14 2019 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Oct 16 2023 | REM: Maintenance Fee Reminder Mailed. |
Apr 01 2024 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Feb 23 2019 | 4 years fee payment window open |
Aug 23 2019 | 6 months grace period start (w surcharge) |
Feb 23 2020 | patent expiry (for year 4) |
Feb 23 2022 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 23 2023 | 8 years fee payment window open |
Aug 23 2023 | 6 months grace period start (w surcharge) |
Feb 23 2024 | patent expiry (for year 8) |
Feb 23 2026 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 23 2027 | 12 years fee payment window open |
Aug 23 2027 | 6 months grace period start (w surcharge) |
Feb 23 2028 | patent expiry (for year 12) |
Feb 23 2030 | 2 years to revive unintentionally abandoned end. (for year 12) |