This application claims the benefit, under 35 U.S.C. § 365 of International Application PCT/EP02/12251, filed Nov. 2, 2002, which was published in accordance with PCT Article 21(2) on May 22, 2003 in English and which claims the benefit of European patent application No. 01250406.4, filed Nov. 17, 2001.
The invention relates to a method and to an apparatus for determining whether a data frame that is part of a bitstream besides coded standard data, e.g. mp3 data, contains coded additional data, e.g. mp3PRO data.
For audio coding, transmission and decoding, in particular for Internet applications, e.g. the audio coding standards ISO/IEC 11172-3, Layer III, ISO/IEC 13818-3, Layer III (MPEG audio layer III) and ISO/IEC 13818-7 are used for data re-duction. A widely used abbreviation for such type of coding/transmission/decoding is ‘mp3’.
A common feature of these and other well-known audio coding standards is that the encoded data are formatted into a sequence of fixed-length data frames to be transferred as data streams or to be stored as data files. Every frame contains data for a certain temporal length (e.g. 24 ms) of a section of the original audio signal. The data frames include headers, data fields with particularly important information (side information), data fields with strongly variable information (main information) and, in many cases, a remaining data field without generally defined information. The latter data field is not specifically defined in the ISO/IEC standards, is denoted as ‘ancillary data’ and can be utilised freely for various purposes.
A reason for having in the data frames data fields without particular information is that the amount of information initially coded for a data frame varies strongly depending on the current characteristic of the original audio signal and—although the coder control basically aims at outputting a constant data rate per data frame—never contains an amount amount of finally encoded data corresponding exactly to the fixed length of the data frame. In other words, one of the tasks of an encoder is controlling the encoding such that the encoded data just fits into the frames at a given total data rate (and thereby absolute length of a data frame in bits). This goal is usually tried to be achieved by adapting the encoding quality, e.g. the level of the coarseness of the quantisation. However, by these means the encoder cannot only be ordered to persistently try to fill but not to overload the data frames, but can also be ordered to persistently keep at least a certain amount of data per data frame for ‘ancillary data’.
THOMSON multimedia and Coding Technologies have recently introduced the ‘mp3PRO’ format that is an extension of the mp3 format. The additional mp3PRO data required are transferred as ‘ancillary data’ in the corresponding data frame fields. The encoded mp3PRO bitstreams are compatible with encoded mp3 bitstreams so that older mp3 players or decoders can easily decode and reproduce the mp3PRO bitstreams or files by not making use of the ‘ancillary data’.
Because the specific mp3PRO data are transferred as ‘ancillary data’ the bitstreams are at first glance not detected as being mp3PRO bitstreams instead of mp3 bitstreams. However, in various applications—e.g. Internet music search machines—a necessity arises for a fast determination of the types of the bitstreams.
Such determination is normally executed using an mp3PRO decoder. Because the additional information is stored in the ancillary data field and because the frame header does not contain a corresponding pointer to the start address of the ancillary data field, an mp3PRO decoder must first completely decode at least one data frame according to the mp3 standard in order to find the end address of the mp3 data and thereby the following start address of the mp3PRO data in that data frame.
Thereafter the mp3PRO decoder must examine the data following in the data stream for characteristics that are typical for mp3PRO additional (supplementary) information. The latter step and in particular the above-mentioned mp3 decoding require a significant computational burden. A further aspect is that the initial mp3-specific decoding steps could be unwelcome, e.g. for licensing reasons.
This has the disadvantage that a relatively large data area needs to be checked, and within that area the mp3PRO specific patterns can be produced accidentally by mp3 audio data. This would lead to a number of wrong detections, which in turn would increase the necessary computational power. According to the invention, these disadvantages can be reduced by limiting the search area with the aid of easily obtainable other information. An unknown mp3 or mp3PRO bitstream is directly and automatically searched (no user interaction is required) for characteristics of the mp3PRO extension, e.g. for a specific type of header or for specific sync words, without performing a partial mp3 decoding and without making use of an mp3PRO decoder, in order to determine whether a current bitstream is of mp3 or of mp3PRO type.
The presence of certain data patterns can be checked by searching bit-wise the complete data of a data frame. Because the mp3PRO additional data is byte-aligned, the search can also be limited on complete byte boundaries and on byte-incremental steps.
Advantageously, the search for specific data patterns in the mp3PRO additional (supplementary) signal can be carried out by automatically checking—alternatively or in addition—whether a further candidate data pattern, which is neither a header nor a sync word, matches the mp3PRO-specific CRC (cyclic redundancy check) code.
The problem to be solved by the invention is determining whether a current bitstream is of mp3 or of mp3PRO type, thereby neither using mp3-typical decoding steps nor an mp3PRO decoder. This problem is solved by the method disclosed in claim 1. An apparatus that utilises this method is disclosed in claim 8.
In principle, the inventive method is suited for determining whether a data frame that is part of a bitstream besides coded standard data, e.g. mp3 data, contains coded additional data, e.g. mp3PRO data, wherein said standard data include header data, side information data and main information data in corresponding data fields of said data frame, and can include an ancillary data field,
and wherein said additional data, if present, are arranged in a data field within said ancillary data field and include specific error protection data together with specific main information data that are protected by said specific error protection data, and/or include specific identification data, e.g. specific header or specific sync data,
and wherein no address value is provided in said bitstream for directly determining the begin or the end of said additional data field, but the begin or end of said additional is data field would be determined after decoding said standard data,
and wherein said side information data can include address information pointing to one border of a main information data field,
and wherein said ancillary data field is adjacent to said main information data field border but said additional data field is not necessarily fully occupying said ancillary data field and said additional data field is not adjacent to said main information data field border in case said additional data field is not fully occupying said ancillary data field, the method including the steps:
In principle the inventive apparatus is suited for determining whether a data frame that is part of a bitstream besides coded standard data, e.g. mp3 data, contains coded additional data, e.g. mp3PRO data, wherein said standard data include header data, side information data and main information data in corresponding data fields of said data frame, and can include an ancillary data field,
and wherein said additional data, if present, are arranged in a data field within said ancillary data field and include specific error protection data together with specific main information data that are protected by said specific error protection data, and/or include specific identification data, e.g. specific header or specific sync data,
and wherein no address value is provided in said bitstream for directly determining the begin or the end of said additional data field, but the begin or end of said additional data field would be determined after decoding said standard data,
and wherein said side information data can include address information pointing to one border of a main information data field,
and wherein said ancillary data field is adjacent to said main information data field border but said additional data field is not necessarily fully occupying said ancillary data field and said additional data field is not adjacent to said main information data field border in case said additional data field is not fully occupying said ancillary data field, said apparatus including:
Advantageous additional embodiments of the invention are disclosed in the respective dependent claims.
Exemplary embodiments of the invention are described with reference to the accompanying drawings, which show in:
This kind of layered encoding and decoding has the advantage that existing mp3 decoders can easily receive and process mp3PRO bitstreams and data frames without being disturbed by the mp3PRO-specific data. Therefore an mp3 decoder does not detect a difference between an mp3 and an mp3PRO data stream. By these means mp3PRO is backwards compatible with mp3.
For the reliable determination of an mp3PRO bitstream it is basically sufficient that an mp3PRO decoder evaluates only a few data frames, because a main feature of an mp3PRO decoder is that it is constructed for that very determination process.
In ISO/IEC 11172-3 and 13818-3 data streams it is generally unknown where exactly the ‘ancillary data’ field begins. As mentioned above, the start address of this data field can be found by mp3 decoding the frame data.
Furthermore, in Layer 3/mp3 coding the end address of ‘ancillary data’ fields is not to be directly indicated but varies in a signal-dependent manner. The corresponding end address, which coincides with the beginning of the variable data of the following data frame is, however, indicated by a pointer denoted main_data_begin and is arranged in the header of that following data frame. Because this pointer can be found by partly evaluating the main information field of that data frame, it normally is not only necessary to decode the current data frame but also to evaluate the header of the following data frame in order to determine the presence of mp3PRO data.
In order to understand which mp3 decoding steps are not necessary for determining the presence of mp3PRO data according to the invention,
In
The inventive procedure for determining the presence of mp3PRO data is as follows:
The above procedure can be modified as follows:
Both information items can be found in the header data.
Advantageously in the invention no complete mp3 decoding and no partial or complete mp3PRO decoding is necessary for determining whether the data stream is an mp3PRO data stream. The required processing capabilities are minimum. The search and the bitstream type determination can be carried out automatically and in a faster way.
The invention can be used for all similar data structures, including video data structures, in which within fixed data frames at an unknown position additional data can be transferred and their presence is to be determined.
Number | Date | Country | Kind |
---|---|---|---|
01250406 | Nov 2001 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP02/12251 | 11/2/2002 | WO | 00 | 11/2/2004 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO03/042980 | 5/22/2003 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
4910736 | Tanaka et al. | Mar 1990 | A |
5768281 | Takano | Jun 1998 | A |
5835793 | Li et al. | Nov 1998 | A |
6014766 | Nagai et al. | Jan 2000 | A |
6052415 | Carr et al. | Apr 2000 | A |
6108584 | Edwards | Aug 2000 | A |
6141385 | Yamaji | Oct 2000 | A |
6597961 | Cooke | Jul 2003 | B1 |
6963612 | Haddad | Nov 2005 | B2 |
20030014241 | Ferris et al. | Jan 2003 | A1 |
Number | Date | Country |
---|---|---|
640909 | Mar 1995 | EP |
739100 | Oct 1996 | EP |
Number | Date | Country | |
---|---|---|---|
20050081134 A1 | Apr 2005 | US |