EP1338004B1 - Verfahren und vorrichtung zum erzeugen bzw. decodieren eines skalierbaren datenstroms unter berücksichtigung einer bitsparkasse, codierer und skalierbarer codierer - Google Patents
Verfahren und vorrichtung zum erzeugen bzw. decodieren eines skalierbaren datenstroms unter berücksichtigung einer bitsparkasse, codierer und skalierbarer codierer Download PDFInfo
- Publication number
- EP1338004B1 EP1338004B1 EP02718023A EP02718023A EP1338004B1 EP 1338004 B1 EP1338004 B1 EP 1338004B1 EP 02718023 A EP02718023 A EP 02718023A EP 02718023 A EP02718023 A EP 02718023A EP 1338004 B1 EP1338004 B1 EP 1338004B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- encoder
- output data
- block
- data
- samples
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
- G10L19/18—Vocoders using multiple modes
- G10L19/24—Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/12—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
Definitions
- the present invention relates to scalable encoders and decoders, and in particular for generating scalable data streams.
- Scalable encoders are shown in EP 0 846 375 B1.
- scalability means the possibility a subset of a bit stream containing an encoded Data signal, e.g. an audio signal or a video signal, represents to decode into a usable signal. This attribute is particularly desirable when e.g. on Data transmission channel does not have the required full bandwidth for the transmission of a complete bit stream for Provides.
- an encoded Data signal e.g. an audio signal or a video signal
- Scalability layers defined.
- FIG. 1 An example of a scalable encoder like the one in the subpart 4 (General Audio) of Part 3 (Audio) of the MPEG-4 standard (ISO / IEC 14496-3: 1999 Subpart 4) is defined in Fig. 1 shown.
- An audio signal s (t) to be encoded is fed into the scalable encoder on the input side.
- the A scalable encoder shown in Figure 1 includes a first one Encoder 12, which is an MPEG-Celp encoder.
- the second Encoder 14 is an AAC encoder that is a high quality Audio coding delivers and in the standard MPEG-2 AAC (ISO / IEC 13818) is defined.
- the Celp encoder 12 provides one Output line 16 a first scaling layer while the AAC encoder 14 via a second output line 18 second scaling layer to a bitstream multiplexer (BitMux) 20 returns.
- the LATM format is in Section 6.5 of Part 3 (Audio) of the first addition to the MPEG-4 standard (ISO / IEC 14496-3: 1999 / AMD1: 2000) described.
- the scalable audio encoder also includes several others Elements.
- a delay stage 24 in AAC branch and a delay stage 26 in the Celp branch.
- the delay stage 26 of the celp branch is a downsampling stage 28 downstream to the sampling rate of the input signal s (t) to match the sampling rate required by the Celp encoder.
- the Celp encoder 12 is followed by an inverse Celp decoder 30, the Celp encoded / decoded Signal an upsampling stage 32 is supplied. That sampled up The signal then becomes a further delay stage 34, referred to in the MPEG-4 standard as "Core Coder Delay" is fed.
- the CoreDoderDelay 34 stage has the following function. Is the Delay set to zero, so process the first one Encoder 14 and the second encoder 16 in a so-called Superframe exactly the same samples of the audio input signal.
- a superframe can consist of three AAC frames consist of a certain number of samples Represent no. X to no. Y of the audio signal.
- a CoreCoderDelay D is a non-zero time variable set
- the three blocks of AAC frames nevertheless represent the same samples No. x through No. y.
- the eight Blocks of CELP frames represent sample values No. x - Fs D to No. y - Fs D, where Fs is the sampling frequency of the Input signal.
- a CoreCoderDelay 0 assumed so that the current period of the input signal for the first coder and the current time period are identical for the second encoder.
- the AAC block (s) and the CELP block (s) in one Superframes represent the same number of samples, the samples themselves are not necessarily the same must be, but also to CoreCoderDelay to each other may have been moved.
- the Celp encoder is a portion of the Input signal s (t) processed faster depending on the configuration than the AAC encoder 14.
- the Optional delay stage 24 a block decision stage 26 downstream, the u. a. determines whether to window the Input signal s (t) to use short or long windows are short windows for strongly transient signals are choosing while long for less transient signals Windows are preferred because they have the relationship between Amount of user data and page information better than at short windows.
- the block decision stage 26 in the present Example a fixed delay by e.g. B. 5/8 times one Blocks performed. This is called the look-ahead function in technology designated.
- the output signals of the MDCT blocks 36, 38 are then fed to a subtractor 40.
- the subsequent block 44 determines whether it is cheaper is to supply the input signal per se to the AAC encoder 14. This is made possible by the bypass branch 42. However, if it is determined that the difference signal is on Output of subtractor 40 e.g. is smaller in energy than the signal output from the MDCT block 38, so not the original signal, but the difference signal taken to be encoded by the AAC encoder 14 to finally to form the second scaling layer 18. This comparison can be done in bands, what by a frequency selective switching device (FSS) 44 is indicated.
- FSS frequency selective switching device
- An essential feature of the MPEG-4 standard or at Another encoder standard is that the transmission of the compressed Data signal over a channel with constant bit rate should be done.
- All high quality audio codecs work block-based, i.e. they process blocks of audio data (Order of magnitude 480-1024 samples) to pieces of a compressed Bit streams, which are also called frames.
- the bit stream format must be constructed so that a decoder without a priori information where a frame begins, is able to recognize the beginning of a frame around with the output of the decoded with as little delay as possible Audio signal data to begin. Therefore everyone starts Header or destination data block of a frame with a particular one Synchronization word, after which in a continuous Bitstream can be searched.
- Other common ingredients in the data stream next to the determination data block are the main data or "payload data" of the individual layers, which contain the actual compressed audio data are.
- bit stream format with a fixed frame length.
- the header or destination data blocks become this bitstream format inserted equidistantly in the bit stream.
- the too side information associated with this header and main data follow immediately behind.
- the length, i.e. Number of bits, for the main data is in every frame the same.
- Such a bitstream format, as in 4 is shown, for example, in MPEG layer 2 or MPEG-CELP is used.
- FIG. 5 shows another fixed bitstream format Frame length and a back pointer or backward pointer.
- This bitstream format is the header and the page information as with the format shown in Figure 4 arranged equidistant.
- the start of the associated main data only takes place immediately in exceptional cases Connection to a header. In most cases it is Start in one of the previous frames.
- the number of bits by which the start of the main data is shifted in the bit stream, is backpointer through the page information variable transfer.
- the end of this main data can be in this frame or in a previous frame.
- the length of the Main data is no longer constant.
- the Number of bits used to encode a block to which Properties of the signal can be adjusted.
- a constant bit rate can be achieved.
- This technique is called "Bitsparkasse” and increases the theoretical Delay in the transmission chain.
- Such a bitstream format is used for example with MPEG Layer 3 (MP3).
- MP3 MPEG Layer 3
- the Bit savings bank technology is also in the standard MPEG Layer
- the bit savings bank provides a buffer of Bits that can be used to encode of a block of temporal samples, more bits are available than actually due to the constant output data rate allowed are.
- the technology of the Bitsparkasse takes into account the fact that some blocks of audio samples with fewer bits than through the constant transfer rate can be predetermined coded so that through these blocks the bit savings bank fills up while again other blocks of audio samples psychoacoustic properties have that do not allow such a large compression, so that for these blocks for trouble-free or trouble-free Do not actually code the available bits would suffice. The extra bits needed will be taken out of the bit savings bank, so that the bit savings bank empties with such blocks.
- bitstream format “variable frame length”
- bitstream format “variable frame length”
- the fixed order of the bitstream elements header, page information and main data as with the "fixed frame length”. Since the Length of the main data is not constant, can also here Bit savings bank technology can be used, however no back pointer as required in FIG. 5.
- An example for is a bitstream format as shown in FIG. 6 the transport format ADTS (Audio Data Transport Stream), such as it is defined in the MPEG 2 AAC standard.
- ADTS Audio Data Transport Stream
- MPEG 4 is the combination of different encoders / decoders to a scalable encoder / decoder. So it is possible and useful to have a Celp speech encoder as the first encoder with an AAC encoder for the others or to combine the other scaling layers and in to pack a bitstream.
- the purpose of this combination is in that the possibility is open, either all Decode scaling layers or layers and thus a to achieve the best possible audio quality, or parts of which, possibly only the first scaling layer with the corresponding limited audio quality. reasons for the sole decoding of the lowest scaling layer may be that because of too small a bandwidth of the Transmission channel of the decoder only the first scaling layer of the bit stream.
- a decoder is a wants to achieve the lowest possible codec delay and therefore only the first scaling layer is decoded. It was on it noted that the codec delay is a Celp codec in general is significantly smaller than the delay of the AAC codec.
- the transport format LATM is standardized in MPEG 4 version 2, which among other things also scalable data streams can transmit.
- FIG. 2a is a schematic representation of the samples of the input signal s (t).
- the input signal can be in different successive sections 0, 1, 2, 3 are divided, where each section has a certain fixed number of temporal Has samples.
- the AAC encoder 14 (FIG. 1) an entire section 0, 1, 2 or 3 to provide a coded data signal for this section deliver.
- the Celp encoder 12 (Fig. 1) processes usually a smaller amount of temporal samples per coding step. So is exemplary in Fig. 2b shown that the Celp encoder or, generally speaking, the first encoder or coder 1 has a block length which is a Is a quarter of the block length of the second encoder.
- the block length of the first encoder could also be half as much large, but could also be one eleventh of the block length of the second encoder.
- the first encoder generate four blocks from the section of the input signal (11, 12, 13, 14), from which the second encoder is a block of data supplies.
- 2c is a common LATM bitstream format shown.
- a superframe can have different ratios of number of AAC frames have number of CELP frames, as in MPEG 4 is tabulated. So a Superframe z. B. an AAC block and 1 to 12 CELP blocks, 3 AAC blocks and 8 CELP blocks but also e.g. B. more AAC blocks than CELP blocks depending on the configuration.
- a LATM frame that one LATM determination data block includes a superframe or also several superframes.
- the generation of the header 1 opened LATM frames.
- the Output data blocks 11, 12, 13, 14 of the Celp encoder 12 (Fig. 1) generated and cached.
- the output data block of the AAC encoder which is shown in FIG "1" is generated.
- the determination data block Header 1 written.
- the header 1 of the first generated output data block of the first encoder which in Fig. 2c is designated 11, written, i. H. transfer, become. It usually gets smaller (considering that required signaling information) for further An equidistant write or transfer of the bit stream Distance of the output data blocks of the first encoder selected, as shown in Fig. 2c.
- bit stream formats shown in FIGS. 4 to 6 are only for simple coders are known, but not for scalable ones Encoder and especially not for scalable encoders Bit savings bank.
- the bit savings bank is used to that the variable output data rate that a psychoacoustic Encoder inherently generated at a constant output data rate can be adjusted.
- the bit savings bank depends on the number of bits that an audio encoder required, depending on the signal properties. Is the signal in such a way that it can be quantized relatively roughly, so a relatively small amount of bits are used for coding this signal needed.
- the signal is such that very fine quantization is required in order to avoid any introduce audible interference, so will a larger number of bits needed to encode this signal.
- bit savings bank In order to achieve a constant output data rate, a average number of bits for a section of a code to be encoded Signal set. Is the one actually needed Amount of bits to encode a section smaller than that fixed number of bits, so the not needed Bits are inserted into the bit savings bank.
- the bit savings bank so fills up.
- is a section of a code to be encoded Obtain signals so that they are larger than the specified Number of bits needed to encode to none introduce audible interference into the signal, so the additional bits required are taken from the bit savings bank become. This will empty the bit savings bank. So that can ensure that a constant output data rate is obtained, and yet no audible interference in that Audio signal are introduced. The prerequisite for this is that the bit savings bank is chosen sufficiently large.
- bit savings bank In the standard MPEG AAC (13818-7: 1997) the bit savings bank referred to as a "bit reservoir".
- the maximum size of the bit savings bank for channels with constant data rate can be calculated by the average number of bits per block from the maximum decoder input buffer size is subtracted. Its value is according to the MPEG AAC standard at a transmission rate of 96 kbit / s for a stereo signal with a Sampling rate of 48 kHz to a value of 10,240 bits preset.
- the maximum value of the bit savings bank i.e.
- bit savings bank is dimensioned so large, so too under bad circumstances, even if the signal is many Contains sections that are not with the specified number can be encoded by bits, no audible interference in that Audio signal must be introduced to the constant output data rate observed. This is only possible if the Bit savings bank is dimensioned sufficiently large so that it never becomes empty.
- the size of the bit savings bank is 10,240 bits. This leads to an inherent initial delay due to the bit savings bank of about 0.1 s. The delay the larger the maximum size of the Bit savings bank is selected, and the lower the transmission rate is chosen.
- the object of the present invention is a To create encoders with a bit savings bank function a lower transmission delay can be achieved.
- Another object of the present invention is a method and an apparatus for generating a to create scalable data stream in which a bit savings function can be signaled.
- Another object of the present invention is a method and an apparatus for decoding a to create scalable data stream in which a bit savings function is signaled.
- the present invention is based on the finding that that of the previous concept of the fixed bit savings bank size must be left to a lower delay To achieve decoding. According to the invention this is achieved by the maximum size of the bit savings bank an encoder is made adjustable, depending on the application and depending on the intended decoder function a certain setting of the bit savings bank is reached. In the case of only unidirectional data transmission can, to meet the highest audio quality standards, a large bit savings bank can be chosen while in case a bidirectional communication in which a common Change of sender and receiver or a frequent change the speaker takes place, a smaller bit savings bank size is to be set. So that the decoder from a smaller one Bit savings bank size setting can benefit, the Bit savings bank size somehow transmitted to the decoder become. This can be done by transmitting additional ones However, information in the data stream can be reached also, as is especially the case with the scalable case is shown implicitly without transferring additional Side information or signaling information is provided.
- An advantage of the present invention is that now about setting the maximum size of the bit savings bank directly affects the decoder delay can be taken. Becomes the maximum size of the bit savings bank chosen smaller, the decoder can also one insert smaller delay before starting decoding begins without running the risk that during the Decoding output data run out, which in any case is to avoid.
- the "price" to be paid for it exists in that one or the other section of the audio signal has not been encoded with 100% audio quality because the Bit savings bank was empty and no extra bits left Were available.
- An audio encoder usually responds in such a case that he is in the quantization violates the psychoacoustic masking threshold, and, um manage with the number of bits available, chooses a coarser quantization than is actually necessary.
- the inventive variability of the bit savings bank and the associated variability in decoder-side delay is especially in the case of a scalable audio encoder an advantage because now there is also a lower deceleration Decoding not only the first lowest scaling layer can be achieved, but also a lower deceleration Decoding of higher scaling layers, which are generated, for example, by an AAC encoder.
- scalable encoders and scalable data streams can be an adjustable bit savings bank size without additional page information simply by positioning of a determination data block in the scalable data stream can be achieved.
- the determination data block positioned in the bit stream so that the decoder, so many bits when it receives the destination data block for the corresponding layer as received by the average block length is specified.
- the decoder can do without calculation or insert a delay to start decoding.
- the destination data block no longer, as in the prior art, to the first possible Point in time, i.e. delay-optimized, but at the last possible time without closing the AAC block delay.
- the current status of the Bitsparkasse can then be signaled by a so-called back pointer where the dates of a previous section stop, and where the dates of the current section begin.
- a major advantage of this arrangement is that the decoder, when it receives a data stream according to the invention, does not have to calculate and insert a delay, but that the delay already on the coding side alone by positioning the determination data block has been taken into account.
- the decoder can therefore output a frame immediately after receipt. This also opens up the possibility of simple and Way, namely without additional bits, a set maximum To signal bit savings bank size. Because the signaling can be carried out easily and without effort, namely by the position of the determination data block it easily and in particular without access to the Decoders possible to vary the bit savings bank size set the transmission delay as required can.
- the scalable contains Data stream of successive determination data blocks that are referred to as Header 1 and Header 2.
- the determination data blocks LATM header Just like in the prior art is found in the direction of transmission from an encoder a decoder, represented by an arrow 202 in FIG. 2d behind the LATM header 200 is from the top left parts of the output data block shaded to the bottom right of the AAC encoder that breaks into remaining gaps between Output data blocks of the first encoder entered are.
- the offset information 204 indicates an offset the output data blocks of the first encoder of two Output data blocks. If Fig. 2d compared to Fig.
- core frame offset zero
- the result is in Fig. 2c designated bit stream.
- core frame offset is>
- the corresponding output data block of the first becomes zero Encoder 11 by the number of core frame offset of output data blocks of the first encoder transmitted earlier.
- the delay is between the first Output data block of the first encoder after the LATM header and the first AAC frame from core encoder delay (FIG. 1) + Core frame offset x core block length (block length of the encoder 1 in Fig. 2b).
- core frame offset zero (Fig. 2c) after the LATM header 200, the output data blocks 11 and 12 of the first encoder.
- an offset of three blocks would be optimal.
- an offset of one or two blocks brings also a delay advantage.
- This bitstream structure makes it possible for the Celp encoder the generated celp block immediately after coding can transmit.
- the celp encoder no additional delay by the bit stream multiplexer (20) added.
- the celp delay does not added delay through the scalable combination, so that the delay becomes minimal.
- Fig. 2d is only exemplary. So are different relationships the block length of the first encoder to the block length of the second encoder possible, the z. B. from 1: 2 to 1:12 can vary or take other ratios can.
- FIG. 2c is a scalable data stream according to the LATM format shown, in which the data blocks of the first Encoder must be buffered, so delayed Need to become. This affects how it has been done the format of Fig. 2c so that the header is only written then can be when the output data of the second Coders exist because the header information about the Length or the number of bits in the output data block of the second encoder.
- Fig. 2e is now, compared to Fig. 2c, the invention scalable data stream represented, in which the Determination data block (header 1 200) is no longer immediate is written when it is available, i.e. before the Output data block of the first encoder, which has an "11" but in which the determination data block 200 by a period of time compared to the case of Fig. 2c is written to the data stream with a delay. That period of time is in a preferred embodiment present invention equal to the maximum size of the bit savings bank (Max buffer fullness 250).
- This starts the output data block of the second encoder for the current section of the input signal through the determination data block 200 is denoted by a number of bits that is equal to buffer fullness 260, in the transmission direction of an encoder to a decoder before the determination data block, while when looking at Fig. 2c, the AAC data started behind the determination data block.
- pointer 260 When viewed from the decoder, pointer 260 is thus on Back Pointer.
- the ratio four blocks of output data from the first Encoder to a block of output data of the second Encoder for the same number of samples only is exemplary, starting from the determination data block now also a core, as in the case of FIG. 2d Frame offset signals so that a decoder knows which Blocks of output data from the first encoder, for example a block of output data from the second encoder belong or are related to each other via core encoder delay.
- FIG. 2d is compared with FIG. 2e, then too see that an offset 204 is also present in FIG. 2d.
- the Offset 204 of FIG. 2d which has a value of 2 in FIG. 2d, would refer to a value in relation to the case of FIG. 2e of 5 as the determination data block 200 in FIG. 2e compared to FIG. 2d by 3 output data blocks of the first Encoder has moved backwards.
- Fig. 1a is a block of savings bank control 50 and one Control line 52 from AAC encoder 14 to bitstream multiplexer 20, about the maximum size of the bit savings bank, by the bit savings bank control 50 has been set, the Bitstream multiplexer can be communicated to the same perform the bitstream formatting required in Fig. 2e can.
- a schematic block diagram can be found in FIG. 1b a scalable decoder that goes to the scalable encoder 1a is complementary.
- the scalable bitstream which is fed to the decoder via a line 60, is in an input buffer / bitstream demultiplexer 62 of the Decoderers fed.
- the bitstream is divided, for a CELP decoder 64 and an AAC decoder Extract 66 required blocks.
- the invention Decoder also includes an AAC delay stage 68 which is there for a size corresponding to the bit savings bank To introduce delay so the AAC decoder 66 never Output data out.
- this AAC delay stage now designed variable, the Delay controlled depending on bit savings bank information which are from the bitstream demultiplexer 62 from the Bitstream can be extracted and sent via a bit savings bank information line 70 fed to the AAC delay stage 68 become.
- the AAC delay stage 68 delay set. Becomes by the bit savings bank control device 50 of FIG. 1a set a small bit savings bank, so can the AAG delay stage 68 set to a smaller delay be, so that a lower delay decoding the second scaling layer can be achieved.
- the scalable decoder of Fig. 1b further includes an MDCT 72 to transform the time domain output signals of the CELP decoder 64 to the frequency domain and an up-sampling stage upstream thereof.
- the spectrum is delayed by a delay stage 74, which compensates for the time differences between the two branches, so that the same conditions are present at a device 76, which is designated by adder / FSS -1 .
- the device 66 essentially performs the analog function as the subtractor 40 and the FSS 44 of FIG.
- the spectral values are transformed by a device 78 for performing a reverse transformation from the frequency domain into the time domain, so that either only the second scaling layer or else the first and second scaling layers are present in the time domain at an output 80.
- only the first scaling layer in the time domain which is generated by the CELP decoder 64, is present at an output 82.
- FIG. 3 which relates to FIG. 2 is similar, but the special implementation using the example of MPEG 4.
- the first line is again a current time period is shown hatched.
- the second line is the windowing that is used with the AAC encoder is used, shown schematically.
- an overlap-and-add of 50% is used, so that a Windows usually double the length of time Has samples like the current time period in the The top line of Fig. 3 is shown hatched.
- FIG. 3 also shows the delay tdip corresponds to block 26 of FIG. 1 and the one selected Example has a size of 5/8 of the block length.
- the AAC encoder delivers a bit stream of 24 kbit / s while the Celp encoder shown schematically below provides a bit stream at a rate of 8 kbit / s. The The total bit rate is then 32 kbit / s.
- the output data blocks zero and one of the Celp encoder correspond to the current time period for the first encoder.
- the output data block with number 2 of the Celp encoder already corresponds to the next time period.
- the delay of the downsampling stage 28 and of the celp encoder 12 is also shown by an arrow, which is represented by the reference symbol 302. From this, the delay, which must be set by the stage 34 so that the same conditions are present at the subtracting point 40 of FIG. 1, results in the delay, which is denoted by the core encoder or delay and is illustrated by an arrow 304 in FIG. 3 , Alternatively, this delay can also be generated by block 26.
- LATM header 306 is no longer the output data block of the Celp encoder with the number "0", but the output data block of the Celp encoder the number "one", especially since the output data block with the number "Zero" has already been transferred to the decoder.
- the grid spacing then follows celp block 1 and celp block 2 for the next period, then to completion one frame the rest of the data of the output data block of the AAC encoder is written into the data stream until another LATM header 308 for the next time period follows.
- the present invention can, as in the last line 3, simply with the bit savings bank function be combined.
- the variable "Bufferfullness" which shows the filling of the bit savings bank, is less than the maximum value, it means that the AAC frame for the immediately preceding period needed more bits than actually allowed.
- the celp frames like be written beforehand, but that at least the first an output data block of the AAC encoder from one or several previous periods in the bit stream must be written before writing the Output data blocks of the AAC encoder for the current one Period can be started. From the comparison of the last two lines of Fig.
- bit savings bank function immediately also to a delay in the encoder for the AAC frame.
- the bit savings bank level of the AAC encoder thus shifts Starting position of the AAC frame.
- the bit savings bank level should be in the LATM element StreamMuxConfig are transmitted by the "Bufferfullness" variable.
- the Variable buffer fullness is calculated from the variable Bit reservoir divided by 32 times that currently available Number of channels of audio channels.
- the LATM header is written to the bitstream after the current time period processed by the AAC encoder has been used, although possibly AAC data from previous ones Periods are to be written in the bit stream.
- pointer 314 is intentional drawn underneath the Celp block 2 is because it is the length of Celp block 2 just like that Length of celp block 1 is not taken into account as this data of course nothing with the bit savings bank of the AAC encoder have to do. Furthermore, no header data is used and bits of any further layers that may be present considered.
- the bit stream is first extracted the celp frames, which is easily possible, since they are arranged equidistantly, for example, and have a fixed length.
- CELP blocks are signaled so that a immediate decoding is possible.
- the last line of FIG. 3 is the case in which the LATM header 306 immediately after it is generated is written into the bit stream so that the LATM header 306 output data of the second encoder (312) of the previous one Follow period, with the output data of second encoder for the current period to which the LATM header 306 relates only at a distance in Follow the transmission direction behind the LATM header, whereby the distance by the difference between Max Bufferfullness and buffer fullness is given, as shown in FIG. 3 is.
- the LATM header 306 no longer written when it was created is written, but delayed by a period of time that Max buffer fullness corresponds.
- the LATM header 306 would therefore according to the invention depending on the value of buffer fullness behind a location 330 in the bit stream, and the forward pointer 314 is replaced by a backward pointer (260 in Fig. 2e).
- FIGS. 2c and 2d and also abandoned in Fig. 3 selected arrangement in which a CELP block immediately follows the LATM header.
- the following priority distribution is preferred when writing data to the scalable bit stream preferred to both low-delay decoding the first scaling layer as well as a low delay To achieve decoding of the second scaling layer.
- the output data blocks of the first are given high priority Encoder. Whenever an output data block of the first Encoder is finished writing, this output data block written in the bitstream. This results in Using a CELP encoder automatically the equidistant Grid of output data blocks of the first encoder, the also have the same length.
- the writing of the output data of the AAC encoder for the current time period is also also interrupted, when a LATM header is done and the same at Max Bufferfullness 250 (Fig. 2e) has been delayed.
- the scalable Bitstream is done when in the bitstream either separately or the corresponding ones via the determination data block Buffer fullness 260 and offset 270 values entered are.
- the following is a decoding of one such generated bit stream received. If the decoder only on the first scaling layer, i.e. on the output data blocks of the first encoder (CELP encoder) interested is so regardless of the LATM header or AAC data just one CELP block at a time fetch and decode the bitstream. Because the CELP blocks are preferred immediately after their creation in the bit stream is written is a low-delay decoding of the CELP blocks guaranteed.
- the decoder decodes both the first and also wants the second scaling layer, i.e. an audio signal want to get with high quality, so he must assign between the CELP blocks and the AAC blocks for a superframe, i.e. for a certain number of samples, achieve, if necessary still a core Coder Delay (34 of Fig. La) must be taken into account when the current time segment of the input signal of the AAC encoder regarding a superframe from the current one temporal section of the CELP encoder is shifted.
- the decoder buffers the bit stream, until it clicks on a LATM header, e.g. B. the Header 200 of Fig. 2e. Knowing the offset 270, the decoder can then determine which output data blocks of the first encoder belong to the LATM header 200. Taking into account the variable buffer fullness the decoder also knows where in the in the decoder input buffer stored data the AAC frame of the time period to which the LATM header refers. in the In the case of buffer fullness equal to Max, the total is already AAC frame of interest contained in the decoder input buffer.
- the person of interest begins AAC frame immediately after the LATM header, so the decoder is using the one already in the input buffer stored data or using part of the data stored in the input buffer and using an immediately arriving part of Data in the transmission direction behind the LATM header can decode without delay.
- the Bit savings bank size is implicitly determined solely by the location of the determination data block with regard to the user data in Bitstream signals without any side information required are.
- the level is also with variable delay in the decoder (block 68 of Fig. 1b) and the line 70 from FIG. 1b lapse.
Description
- Fig. 1a
- einen skalierbaren Codierer gemäß MPEG 4, der die vorliegende Erfindung aufweist;
- Fig. 1b
- einen Decodierer gemäß der vorliegenden Erfindung;
- Fig. 2a
- eine schematische Darstellung eines Eingangssignals, das in aufeinanderfolgende Zeitabschnitte eingeteilt ist;
- Fig. 2b
- eine schematische Darstellung eines Eingangssignals, das in aufeinanderfolgende Zeitabschnitte eingeteilt ist, wobei das Verhältnis der Blocklänge des ersten Codierers zu der Blocklänge des zweiten Codierers dargestellt ist;
- Fig. 2c
- eine schematische Darstellung eines skalierbaren Datenstroms mit hoher Verzögerung bei der Decodierung der ersten Skalierungsschicht;
- Fig. 2d
- eine schematische Darstellung eines skalierbaren Datenstroms mit niedriger Verzögerung bei der Decodierung der ersten Skalierungsschicht;
- Fig. 2e
- zeigt eine schematische Darstellung eines erfindungsgemäßen skalierbaren Datenstroms, bei dem der Bestimmungsdatenblock gegenüber den Nutzdaten verzögert ist;
- Fig. 3
- eine detaillierte Darstellung des erfindungsgemäßen skalierbaren Datenstromes am Beispiel eines Celp-Codierers als erster Codierer und eines AAC-Codierers als zweiter Codierer mit Bitsparkassenfunktion.
- Fig. 4
- ein Beispiel für ein Bitstromformat mit fester Framelänge;
- Fig. 5
- ein Beispiel für ein Bitstromformat mit fester Framelänge und Back-Pointer; und
- Fig. 6
- ein Beispiel eines Bitstromformats mit variabler Framelänge.
Claims (11)
- Verfahren zum Erzeugen eines skalierbaren Datenstroms aus zumindest einem Block von Ausgangsdaten eines ersten Codierers (12) und zumindest einem Block von Ausgangsdaten eines zweiten Codierers (14), wobei der zweite Codierer eine Bitsparkasse umfaßt, die durch eine maximale Größe und einen aktuellen Stand definiert ist, wobei der zumindest eine Block von Ausgangsdaten des ersten Codierers eine Anzahl von Abtastwerten des Eingangssignals in den ersten Codierer darstellt, wobei die Anzahl von Abtastwerten einen aktuellen Abschnitt des Eingangssignals für den ersten Codierer definiert, und wobei der zumindest eine Block von Ausgangsdaten des zweiten Codierers eine Anzahl von Abtastwerten des Eingangssignals in den zweiten Codierer darstellt, wobei die Anzahl von Abtastwerten einen aktuellen Abschnitt des Eirigangssignals für den zweiten Codierer darstellt, wobei die Anzahl von Abtastwerten für den ersten Codierer und die Anzahl von Abtastwerten für den zweiten Codierer gleich sind, und wobei die aktuellen Abschnitte für den ersten und den zweiten Codierer identisch sind oder um eine einstellbare Zeitdauer (34) zueinander verschoben sind, mit folgenden Merkmalen:wenn ein Block (11) von Ausgangsdaten des ersten Codierers (12) vorliegt, Schreiben des zumindest einen Blocks von Ausgangsdaten des ersten Codierers in den skalierbaren Datenstrom;falls Ausgangsdaten (0) des zweiten Codierers für einen vorhergehenden Abschnitt des Eingangssignals für den zweiten Codierer vorliegen, Schreiben der Ausgangsdaten des zweiten Codierers für den vorhergehenden Abschnitt des Eingangssignals für den zweiten Codierer in Übertragungsrichtung hinter einem Block (11) von Ausgangsdaten des ersten Codierers;wenn Ausgangsdaten (1) des zweiten Codierers für den aktuellen Abschnitt des zweiten Codierers vorliegen, Schreiben der Ausgangsdaten des zweiten Codierers in Übertragungsrichtung hinter die Ausgangsdaten des zweiten Codierers für einen vorhergehenden Abschnitt des Eingangssignals für den zweiten Codierer in den Bitstrom;Erzeugen eines Bestimmungsdatenblocks (200), wenn der Block von Ausgangsdaten des zweiten Codierers für den aktuellen Abschnitt des zweiten Codierers bereit ist, und Schreiben des Bestimmungsdatenblocks (200) um eine Zeitspanne (250) bezüglich der Erzeugung des Bestimmungsdatenblocks verzögert, wobei die Zeitspanne kleiner oder gleich einer Verzögerung ist, die der maximalen Größe der Bitsparkasse des zweiten Codierers (14) entspricht; undSchreiben von Pufferinformationen (260) in den Bitstrom, die anzeigen, wo der Beginn der Ausgangsdaten des zweiten Codierers für den aktuellen Abschnitt des Eingangssignals für den zweiten Codierer bezüglich des Bestimmungsdatenblocks (200) ist.
- Verfahren nach Anspruch 1,
bei dem die Zeitdauer (250) gleich einer Verzögerung ist, die der maximalen Größe der Bitsparkasse entspricht, und
bei dem die Pufferinformationen (260) dem aktuellen Stand der Bitsparkasse für den aktuellen Abschnitt des Eingangssignals für den zweiten Codierer entsprechen. - Verfahren nach Anspruch 1 oder Anspruch 2,
bei dem der Bestimmungsdatenblock (200) mit hoher Priorität geschrieben wird,
bei dem die Blöcke von Ausgangsdaten des ersten Codierers mit geringerer Priorität geschrieben werden, und
bei dem der zumindest eine Block (0) von Ausgangsdaten des zweiten Codierers für einen vorhergehenden Abschnitt des Eingangssignals mit höherer Priorität in den Bitstrom geschrieben wird, als der zumindest eine Block (1) von Ausgangsdaten des zweiten Codierers für den aktuellen Abschnitt. - Verfahren nach einem der vorhergehenden Ansprüche, bei dem der erste Codierer für eine Anzahl von Abtastwerten zumindest zwei Blöcke liefert, wobei das Verfahren ferner folgenden Schritt aufweist:Schreiben von Offset-Informationen (270) in den Bitstrom, die anzeigen, wie viele Blöcke von Ausgangsdaten des ersten Codierers (12) in Übertragungsrichtung vor dem Bestimmungsdatenblock (200) zu dem aktuellen Abschnitt des ersten Codierers (12) gehören.
- Codierer (14) mit einer Bitsparkasse, wobei die Bitsparkasse eine maximale Größe aufweist, mit folgenden Merkmalen:einer Einrichtung (50) zum Einstellen der maximalen Größe der Bitsparkasse abhängig von einer für einen Audiodecodierer vorgesehenen Verzögerung; undeiner Einrichtung (52, 20) zum Übertragen der eingestellten maximalen Größe der Bitsparkasse in einem ausgangsseitigen Datenstrom.
- Skalierbarer Codierer mit folgenden Merkmalen:einem ersten Codierer (12) zum Erzeugen eines Blocks von Ausgangsdaten für den ersten Codierer;einem zweiten Codierer (14) mit einer Bitsparkasse, wobei die Bitsparkasse eine maximale Größe aufweist, zum Erzeugen eines Blocks von Ausgangsdaten für den zweiten Codierer, wobei der zweite Codierer ferner eine Einrichtung (50) zum Einstellen der maximalen Größe der Bitsparkasse abhängig von einer für einen Audiodecodierer vorgesehenen Anfangsverzögerung aufweist;einem Bitstrommultiplexer (20) zum Erzeugen eines skalierbaren Datenstroms, wobei der Bitstrommultiplexer (20) ausgebildet ist, umden Block von Ausgangsdaten für den ersten Codierer (12) in einen skalierbaren Datenstrom zu schreiben,den Block von Ausgangsdaten für den zweiten Codierer (14) in den skalierbaren Datenstrom zu schreiben;einen Bestimmungsdatenblock (200) zu erzeugen, nachdem der Block von Ausgangsdaten des zweiten Codierers durch den zweiten Codierer ausgegeben ist,den Bestimmungsdatenblock um eine Zeitdauer verzögert, wobei die Zeitdauer der maximalen Größe der Bitsparkasse entspricht, in den skalierbaren Datenstrom zu schreiben, undum Pufferinformationen (260) in den Bitstrom zu schreiben, die anzeigen, wie weit der Beginn der Ausgangsdaten des zweiten Codierers in Übertragungsrichtung vor dem Bestimmungsdatenblock (200) liegt, wobei die Pufferinformationen einem aktuellen Stand der Bitsparkasse entsprechen.
- Vorrichtung zum Erzeugen eines skalierbaren Datenstroms aus zumindest einem Block von Ausgangsdaten eines ersten Codierers (12) und zumindest einem Block von Ausgangsdaten eines zweiten Codierers (14), wobei der zweite Codierer eine Bitsparkasse umfaßt, die durch eine maximale Größe und einen aktuellen Stand definiert ist, wobei der zumindest eine Block von Ausgangsdaten des ersten Codierers eine Anzahl von Abtastwerten des Eingangssignals in den ersten Codierer darstellt, wobei die Anzahl von Abtastwerten einen aktuellen Abschnitt des Eingangssignals für den ersten Codierer definiert, und wobei der zumindest eine Block von Ausgangsdaten des zweiten Codierers eine Anzahl von Abtastwerten des Eingangssignals in den zweiten Codierer darstellt, wobei die Anzahl von Abtastwerten einen aktuellen Abschnitt des Eingangssignals für den zweiten Codierer darstellt, wobei die Anzahl von Abtastwerten für den ersten Codierer und die Anzahl von Abtastwerten für den zweiten Codierer gleich sind, und wobei die aktuellen Abschnitte für den ersten und den zweiten Codierer identisch sind oder um eine einstellbare Zeitdauer (34) zueinander verschoben sind, mit folgenden Merkmalen:einer Einrichtung zum Schreiben eines Blocks von Ausgangsdaten des ersten Codierers in den skalierbaren Datenstrom, wenn ein Block (11) von Ausgangsdaten des ersten Codierers (12) vorliegt;einer Einrichtung zum Schreiben von Ausgangsdaten des zweiten Codierers für einen vorhergehenden Abschnitt des Eingangssignals für den zweiten Codierer in Übertragungsrichtung hinter einen Block (11) von Ausgangsdaten des ersten Codierers, falls Ausgangsdaten (O) des zweiten Codierers für den vorhergehenden Abschnitt des Eingangssignals für den zweiten Codierer vorliegen;einer Einrichtung zum Schreiben von Ausgangsdaten des zweiten Codierers für den aktuellen Abschnitt des Zeitsignals für den zweiten Codierer in Übertragungsrichtung hinter den Ausgangsdaten des zweiten Codierers für einen vorausgehenden Abschnitt des Eingangssignals für den zweiten Codierer in den Bitstrom, wenn Ausgangsdaten (1) des zweiten Codierers für den aktuellen Abschnitt des zweiten Codierers vorliegen;einer Einrichtung zum Erzeugen eines Bestimmungsdatenblocks (200), wenn der Block von Ausgangsdaten des zweiten Codierers für den aktuellen Abschnitt des zweiten Codierers vorhanden ist, und zum Schreiben des Bestimmungsdatenblocks (200) um eine Zeitspanne (250) bezüglich der Erzeugung des Bestimmungsdatenblocks verzögert, wobei die Zeitspanne kleiner oder gleich einer Verzögerung ist, die der maximalen Größe der Bitsparkasse des zweiten Codierers (14) entspricht; undeiner Einrichtung zum Schreiben von Pufferinformationen (260) in den Bitstrom, die anzeigen, wo der Beginn der Ausgangsdaten des zweiten Codierers für den aktuellen Abschnitt des zweiten Codierers bezüglich; des Bestimmungsdatenblocks (200) ist.
- Verfahren zum Decodieren eines skalierbaren Datenstroms aus zumindest einem Block von Ausgangsdaten eines ersten Codierers (12) und zumindest einem Block von Ausgangsdaten eines zweiten Codierers (14), wobei der zweite codierer eine Bitsparkasse umfaßt, die durch eine maximale Größe und einen aktuellen Stand definiert ist, wobei der zumindest eine Block von Ausgangsdaten des ersten Codierers eine Anzahl von Abtastwerten des Eingangssignals in den ersten Codierer darstellt, wobei die Anzahl von Abtastwerten einen aktuellen Abschnitt des Eingangssignals für den ersten Codierer definiert, und wobei der zumindest eine Block von Ausgangsdaten des zweiten Codierers eine Anzahl von Abtastwerten des Eingangssignals in den zweiten Codierer darstellt, wobei die Anzahl von Abtastwerten einen aktuellen Abschnitt des Eingangssignals für den zweiten Codierer darstellt, wobei die Anzahl von Abtastwerten für den ersten Codierer und die Anzahl von Abtastwerten für den zweiten Codierer gleich sind, und wobei die aktuellen Abschnitte für den ersten und den zweiten Codierer identisch sind oder um eine einstellbare Zeitdauer (34) zueinander verschoben sind, wobei der skalierbare Datenstrom Ausgangsdaten (11) des ersten Codierers, Ausgangsdaten des zweiten Codierers für einen vorhergehenden Abschnitt, Ausgangsdaten des zweiten Codierers für einen aktuellen Abschnitt, einen Bestimmungsdatenblock (200) und Pufferinformationen (260) aufweist, mit folgenden Schritten:Zwischenspeichern (62) des skalierbaren Datenstroms;Lesen des Blocks von Ausgangsdaten des ersten Codierers für den aktuellen Abschnitt des ersten Codierers;Lesen des Bestimmungsdatenblocks (200) und der Pufferinformationen (260) aus dem zwischengespeicherten Datenstrom;Ermitteln des Beginns des Blocks von Ausgangsdaten des zweiten Codierers für den aktuellen Abschnitt des zweiten Codierers unter Verwendung der Pufferinformationen (260); undDecodieren (64, 66) des Blocks von Ausgangsdaten des ersten Codierers und des Blocks von Ausgangsdaten des zweiten Codierers gegebenenfalls unter Berücksichtigung der einstellbaren Zeitdauer (34), um die der aktuelle Abschnitt des ersten Codierers und der aktuelle Abschnitt des zweiten Codierers zeitlich zueinander verschoben sind.
- Vorrichtung zum Decodieren eines skalierbaren Datenstroms aus zumindest einem Block von Ausgangsdaten eines ersten Codierers (12) und zumindest einem Block von Ausgangsdaten eines zweiten Codierers (14), wobei der zweite Codierer eine Bitsparkasse umfaßt, die durch eine maximale Größe und einen aktuellen Stand definiert ist, wobei der zumindest eine Block von Ausgangsdaten des ersten Codierers eine Anzahl von Abtastwerten des Eingangssignals in den ersten Codierer darstellt, wobei die Anzahl von Abtastwerten einen aktuellen Abschnitt des Eingangssignals für den ersten Codierer definiert, und wobei der zumindest eine Block von Ausgangsdaten des zweiten Codierers eine Anzahl von Abtastwerten des Eingangssignals in den zweiten Codierer darstellt, wobei die Anzahl von Abtastwerten einen aktuellen Abschnitt des Eingangssignals für den zweiten Codierer darstellt, wobei die Anzahl von Abtastwerten für den ersten Codierer und die Anzahl von Abtastwerten für den zweiten Codierer gleich sind, und wobei die aktuellen Abschnitte für den ersten und den zweiten Codierer identisch sind oder um eine einstellbare Zeitdauer (34) zueinander verschoben sind, wobei der skalierbare Datenstrom Ausgangsdaten (11) des ersten Codierers, Ausgangsdaten des zweiten Codierers für einen vorhergehenden Abschnitt, Ausgangsdaten des zweiten Codierers für einen aktuellen Abschnitt, einen Bestimmungsdatenblock (200) und Pufferinformationen (260) aufweist, mit folgenden Merkmalen:einer Einrichtung zum Zwischenspeichern (62) des skalierbaren Datenstroms;einer Einrichtung zum Lesen des Blocks von Ausgangsdaten des ersten Codierers für den aktuellen Abschnitt des ersten Codierers;einer Einrichtung zum Lesen des Bestimmungsdatenblocks (200) und der Pufferinformationen (260) aus dem zwischengespeicherten Datenstrom;einer Einrichtung zum Ermitteln des Beginns des Blocks von Ausgangsdaten des zweiten Codierers für den aktuellen Abschnitt des zweiten Codierers unter Verwendung der Pufferinformationen (260); undeiner Einrichtung zum Decodieren (64, 66) des Blocks von Ausgangsdaten des ersten Codierers und des Blocks von Ausgangsdaten des zweiten Codierers gegebenenfalls unter Berücksichtigung der einstellbaren Zeitdauer (34), um die der aktuelle Abschnitt des ersten Codierers und der aktuelle Abschnitt des zweiten Codierers zeitlich zueinander verschoben sind.
- Verfahren zum Decodieren eines skalierbaren Datenstroms aus zumindest einem Block von Ausgangsdaten eines ersten Codierers (12) und zumindest einem Block von Ausgangsdaten eines zweiten Codierers (14), wobei der zweite Codierer eine Bitsparkasse umfaßt, die durch eine maximale Größe und einen aktuellen Stand definiert ist, wobei der zumindest eine Block von Ausgangsdaten des ersten Codierers eine Anzahl von Abtastwerten des Eingangssignals in den ersten Codierer darstellt, wobei die Anzahl von Abtastwerten einen aktuellen Abschnitt des Eingangssignals für den ersten Codierer definiert, und wobei der zumindest eine Block von Ausgangsdaten des zweiten Codierers eine Anzahl von Abtastwerten des Eingangssignals in den zweiten Codierer darstellt, wobei die Anzahl von Abtastwerten einen aktuellen Abschnitt des Eingangssignals für den zweiten Codierer darstellt, wobei die Anzahl von Abtastwerten für den ersten Codierer und die Anzahl von Abtastwerten für den zweiten Codierer gleich sind, und wobei die aktuellen Abschnitte für den ersten und den zweiten Codierer identisch sind oder um eine einstellbare Zeitdauer (34) zueinander verschoben sind, wobei der skalierbare Datenstrom Ausgangsdaten (11) des ersten Codierers, Ausgangsdaten des zweiten Codierers für einen vorhergehenden Abschnitt, Ausgangsdaten des zweiten Codierers für einen aktuellen Abschnitt, einen Bestimmungsdatenblock (200) und Pufferinformationen (260) aufweist, mit folgenden Schritten:Zwischenspeichern (62) des skalierbaren Datenstroms;Lesen des Blocks von Ausgangsdaten des ersten Codierers für den aktuellen Abschnitt des ersten Codierers;Lesen des Bestimmungsdatenblocks (200) und der Pufferinformationen (260) aus dem zwischengespeicherten Datenstrom; undErmitteln des Beginns des Blocks von Ausgangsdaten des zweiten Codierers für den aktuellen Abschnitt des zweiten Codierers unter Verwendung der Pufferinformationen (260) , um aus dem skalierten Datenstrom extrahierte Blöcke für einen ersten Decodierer (64) und einen zweiten Decodierer (66) zu erhalten.
- Vorrichtung zum Decodieren eines skalierbaren Datenstroms aus zumindest einem Block von Ausgangsdaten eines ersten Codierers (12) und zumindest einem Block von Ausgangsdaten eines zweiten Codierers (14), wobei der zweite Codierer eine Bitsparkasse umfaßt, die durch eine maximale Größe und einen aktuellen Stand definiert ist, wobei der zumindest eine Block von Ausgangsdaten des ersten Codierers eine Anzahl von Abtastwerten des Eingangssignals in den ersten Codierer darstellt, wobei die Anzahl von Abtastwerten einen aktuellen Abschnitt des Eingangssignals für den ersten Codierer definiert, und wobei der zumindest eine Block von Ausgangsdaten des zweiten Codierers eine Anzahl von Abtastwerten des Eingangssignals in den zweiten Codierer darstellt, wobei die Anzahl von Abtastwerten einen aktuellen Abschnitt des Eingangssignals für den zweiten Codierer darstellt, wobei die Anzahl von Abtastwerten für den ersten Codierer und die Anzahl von Abtastwerten für den zweiten Codierer gleich sind, und wobei die aktuellen Abschnitte für den ersten und den zweiten Codierer identisch sind oder um eine einstellbare Zeitdauer (34) zueinander verschoben sind, wobei der skalierbare Datenstrom Ausgangsdaten (11) des ersten Codierers, Ausgangsdaten des zweiten Codierers für einen vorhergehenden Abschnitt, Ausgangsdaten des zweiten Codierers für einen aktuellen Abschnitt, einen Bestimmungsdatenblock (200) und Pufferinformationen (260) aufweist, mit folgenden Merkmalen:einer Einrichtung zum Zwischenspeichern (62) des skalierbaren Datenstroms;einer Einrichtung zum Lesen des Blocks von Ausgangsdaten des ersten Codierers für den aktuellen Abschnitt des ersten Codierers;einer Einrichtung zum Lesen des Bestimmungsdatenblocks (200) und der Pufferinformationen (260) aus dem zwischengespeicherten Datenstrom;einer Einrichtung zum Ermitteln des Beginns des Blocks von Ausgangsdaten des zweiten Codierers für den aktuellen Abschnitt des zweiten Codierers unter Verwendung der Pufferinformationen (260) , um aus dem skalierten Datenstrom extrahierte Blöcke für einen ersten Decodierer (64) und einen zweiten Decodierer (66) zu erhalten.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10102159A DE10102159C2 (de) | 2001-01-18 | 2001-01-18 | Verfahren und Vorrichtung zum Erzeugen bzw. Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkasse, Codierer und skalierbarer Codierer |
DE10102159 | 2001-01-18 | ||
PCT/EP2002/000294 WO2002063611A1 (de) | 2001-01-18 | 2002-01-14 | Verfahren und vorrichtung zum erzeugen bzw. decodieren eines skalierbaren datenstroms unter berücksichtigung einer bitsparkasse, codierer und skalierbarer codierer |
Publications (3)
Publication Number | Publication Date |
---|---|
EP1338004A1 EP1338004A1 (de) | 2003-08-27 |
EP1338004B1 true EP1338004B1 (de) | 2004-09-08 |
EP1338004B8 EP1338004B8 (de) | 2005-08-31 |
Family
ID=7670988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP02718023A Expired - Lifetime EP1338004B8 (de) | 2001-01-18 | 2002-01-14 | Verfahren und vorrichtung zum erzeugen bzw. decodieren eines skalierbaren datenstroms unter berücksichtigung einer bitsparkasse, codierer und skalierbarer codierer |
Country Status (10)
Country | Link |
---|---|
US (1) | US7516230B2 (de) |
EP (1) | EP1338004B8 (de) |
JP (1) | JP3890300B2 (de) |
KR (1) | KR100576034B1 (de) |
AT (1) | ATE275751T1 (de) |
AU (1) | AU2002249122B2 (de) |
CA (1) | CA2434882C (de) |
DE (2) | DE10102159C2 (de) |
HK (1) | HK1056641A1 (de) |
WO (1) | WO2002063611A1 (de) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3881943B2 (ja) * | 2002-09-06 | 2007-02-14 | 松下電器産業株式会社 | 音響符号化装置及び音響符号化方法 |
DE10328777A1 (de) | 2003-06-25 | 2005-01-27 | Coding Technologies Ab | Vorrichtung und Verfahren zum Codieren eines Audiosignals und Vorrichtung und Verfahren zum Decodieren eines codierten Audiosignals |
GB2403634B (en) * | 2003-06-30 | 2006-11-29 | Nokia Corp | An audio encoder |
DE10353793B4 (de) * | 2003-11-13 | 2012-12-06 | Deutsche Telekom Ag | Verfahren zur Verbesserung der Wiedergabequalität bei paketorientierter Übertragung von Audio-/Video-Daten |
US7756594B2 (en) * | 2004-06-14 | 2010-07-13 | Microsoft Corporation | Systems and methods for parsing flexible audio codec topologies |
US20060041895A1 (en) * | 2004-08-04 | 2006-02-23 | Microsoft Corporation | Systems and methods for interfacing with codecs across an architecture optimized for audio |
US7590065B2 (en) * | 2004-08-04 | 2009-09-15 | Microsoft Corporation | Equal-opportunity bandwidth regulation |
US7706901B2 (en) * | 2004-10-01 | 2010-04-27 | Microsoft Corporation | Low latency real-time audio streaming |
CN101044554A (zh) | 2004-10-13 | 2007-09-26 | 松下电器产业株式会社 | 可扩展性编码装置、可扩展性解码装置以及可扩展性编码方法 |
KR20070092240A (ko) * | 2004-12-27 | 2007-09-12 | 마츠시타 덴끼 산교 가부시키가이샤 | 음성 부호화 장치 및 음성 부호화 방법 |
US8826093B2 (en) * | 2005-01-19 | 2014-09-02 | Qualcomm Incorporated | Power saving method for coded transmission |
US7809018B2 (en) * | 2005-12-16 | 2010-10-05 | Coding Technologies Ab | Apparatus for generating and interpreting a data stream with segments having specified entry points |
KR100969731B1 (ko) * | 2005-12-16 | 2010-07-13 | 돌비 스웨덴 에이비 | 데이터의 중요도에 따라 변형된 데이터 스트림을 생성하는장치 및 그 데이터 스트림을 해석하는 장치 |
US7590523B2 (en) * | 2006-03-20 | 2009-09-15 | Mindspeed Technologies, Inc. | Speech post-processing using MDCT coefficients |
EP1841072B1 (de) * | 2006-03-30 | 2016-06-01 | Unify GmbH & Co. KG | Verfahren und Einrichtung zum Dekodieren von schichtkodierten Daten |
US8190441B2 (en) * | 2006-09-11 | 2012-05-29 | Apple Inc. | Playback of compressed media files without quantization gaps |
JP4358215B2 (ja) * | 2006-09-27 | 2009-11-04 | 株式会社東芝 | 動画像符号化装置及びその方法 |
EP2339577B1 (de) * | 2008-09-18 | 2018-03-21 | Electronics and Telecommunications Research Institute | Kodierungsvorrichtung und dekodierungsvorrichtung zur transformation zwischen einem modifizierten cosinus-transformation kodierer und einem heterokodierer |
CN101771417B (zh) * | 2008-12-30 | 2012-04-18 | 华为技术有限公司 | 信号编码、解码方法及装置、系统 |
AU2011240024B2 (en) * | 2010-04-13 | 2014-09-25 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Method and encoder and decoder for gap - less playback of an audio signal |
US8532804B2 (en) * | 2010-06-18 | 2013-09-10 | Microsoft Corporation | Predictive resampler scheduler algorithm |
WO2012031269A1 (en) * | 2010-09-03 | 2012-03-08 | Loglogic, Inc. | Random access data compression |
KR20120084234A (ko) | 2011-01-19 | 2012-07-27 | 삼성전자주식회사 | Mpeg media transport(mmt)에서 mmt au를 전송하는 방법 |
TWI476761B (zh) * | 2011-04-08 | 2015-03-11 | Dolby Lab Licensing Corp | 用以產生可由實施不同解碼協定之解碼器所解碼的統一位元流之音頻編碼方法及系統 |
WO2013142650A1 (en) | 2012-03-23 | 2013-09-26 | Dolby International Ab | Enabling sampling rate diversity in a voice communication system |
TWI505262B (zh) | 2012-05-15 | 2015-10-21 | Dolby Int Ab | 具多重子流之多通道音頻信號的有效編碼與解碼 |
US10199043B2 (en) * | 2012-09-07 | 2019-02-05 | Dts, Inc. | Scalable code excited linear prediction bitstream repacked from a higher to a lower bitrate by discarding insignificant frame data |
US9564136B2 (en) * | 2014-03-06 | 2017-02-07 | Dts, Inc. | Post-encoding bitrate reduction of multiple object audio |
US10283091B2 (en) * | 2014-10-13 | 2019-05-07 | Microsoft Technology Licensing, Llc | Buffer optimization |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3943879B4 (de) * | 1989-04-17 | 2008-07-17 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Digitales Codierverfahren |
DE4218695A1 (de) * | 1992-06-09 | 1993-12-16 | Thomson Brandt Gmbh | Verfahren, Coder und Decoder zur Datenübertragung und/oder -speicherung |
US5365552A (en) * | 1992-11-16 | 1994-11-15 | Intel Corporation | Buffer fullness indicator |
US5835033A (en) * | 1994-11-08 | 1998-11-10 | Canon Kabushiki Kaisha | Decoding apparatus and method for coded data |
US5896099A (en) * | 1995-06-30 | 1999-04-20 | Sanyo Electric Co., Ltd. | Audio decoder with buffer fullness control |
DE19537338C2 (de) * | 1995-10-06 | 2003-05-22 | Fraunhofer Ges Forschung | Verfahren und Vorrichtung zum Codieren von Audiosignalen |
US5758092A (en) * | 1995-11-14 | 1998-05-26 | Intel Corporation | Interleaved bitrate control for heterogeneous data streams |
US5768537A (en) * | 1996-02-22 | 1998-06-16 | International Business Machines Corporation | Scalable MPEG2 compliant video encoder |
JP3246715B2 (ja) | 1996-07-01 | 2002-01-15 | 松下電器産業株式会社 | オーディオ信号圧縮方法,およびオーディオ信号圧縮装置 |
JP3344944B2 (ja) * | 1997-05-15 | 2002-11-18 | 松下電器産業株式会社 | オーディオ信号符号化装置,オーディオ信号復号化装置,オーディオ信号符号化方法,及びオーディオ信号復号化方法 |
US6092041A (en) * | 1996-08-22 | 2000-07-18 | Motorola, Inc. | System and method of encoding and decoding a layered bitstream by re-applying psychoacoustic analysis in the decoder |
KR100261253B1 (ko) * | 1997-04-02 | 2000-07-01 | 윤종용 | 비트율 조절이 가능한 오디오 부호화/복호화 방법및 장치 |
KR100335609B1 (ko) * | 1997-11-20 | 2002-10-04 | 삼성전자 주식회사 | 비트율조절이가능한오디오부호화/복호화방법및장치 |
AU1928999A (en) * | 1997-12-19 | 1999-07-12 | Kenneth Rose | Scalable predictive coding method and apparatus |
DE69936626T2 (de) * | 1998-08-06 | 2008-05-21 | Samsung Electronics Co., Ltd., Suwon | Kanalkodierung und -dekodierung für ein kommunikationssystem |
US6553086B1 (en) * | 1998-10-02 | 2003-04-22 | Lg Electronics, Inc. | Method and apparatus for recording time information for digital data streams |
JP2000307661A (ja) | 1999-04-22 | 2000-11-02 | Matsushita Electric Ind Co Ltd | 符号化装置および復号化装置 |
US6904089B1 (en) * | 1998-12-28 | 2005-06-07 | Matsushita Electric Industrial Co., Ltd. | Encoding device and decoding device |
FR2791167B1 (fr) * | 1999-03-17 | 2003-01-10 | Matra Nortel Communications | Procedes de codage, de decodage et de transcodage audio |
US6195989B1 (en) | 1999-05-04 | 2001-03-06 | Caterpillar Inc. | Power control system for a machine |
KR100349329B1 (ko) * | 1999-06-23 | 2002-08-21 | 한국전자통신연구원 | 엠펙-2 고품질 오디오 처리 알고리즘의 병렬 처리 방법 |
DE19959156C2 (de) * | 1999-12-08 | 2002-01-31 | Fraunhofer Ges Forschung | Verfahren und Vorrichtung zum Verarbeiten eines zu codierenden Stereoaudiosignals |
US6369722B1 (en) * | 2000-03-17 | 2002-04-09 | Matra Nortel Communications | Coding, decoding and transcoding methods |
US6675148B2 (en) * | 2001-01-05 | 2004-01-06 | Digital Voice Systems, Inc. | Lossless audio coder |
US6926526B2 (en) * | 2002-05-24 | 2005-08-09 | Kenneth G. Hudak | Endodontic adapter for a sonic scaler |
-
2001
- 2001-01-18 DE DE10102159A patent/DE10102159C2/de not_active Expired - Lifetime
-
2002
- 2002-01-14 KR KR1020037009445A patent/KR100576034B1/ko active IP Right Grant
- 2002-01-14 AU AU2002249122A patent/AU2002249122B2/en not_active Expired
- 2002-01-14 CA CA002434882A patent/CA2434882C/en not_active Expired - Lifetime
- 2002-01-14 WO PCT/EP2002/000294 patent/WO2002063611A1/de active IP Right Grant
- 2002-01-14 JP JP2002563470A patent/JP3890300B2/ja not_active Expired - Lifetime
- 2002-01-14 EP EP02718023A patent/EP1338004B8/de not_active Expired - Lifetime
- 2002-01-14 US US10/466,781 patent/US7516230B2/en active Active
- 2002-01-14 DE DE50200953T patent/DE50200953D1/de not_active Expired - Lifetime
- 2002-01-14 AT AT02718023T patent/ATE275751T1/de active
-
2003
- 2003-12-11 HK HK03108993A patent/HK1056641A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP1338004A1 (de) | 2003-08-27 |
CA2434882C (en) | 2008-04-15 |
CA2434882A1 (en) | 2002-08-15 |
JP2004523790A (ja) | 2004-08-05 |
US20040162911A1 (en) | 2004-08-19 |
HK1056641A1 (en) | 2004-02-20 |
ATE275751T1 (de) | 2004-09-15 |
WO2002063611A1 (de) | 2002-08-15 |
DE50200953D1 (de) | 2004-10-14 |
KR20030076611A (ko) | 2003-09-26 |
DE10102159A1 (de) | 2002-08-08 |
US7516230B2 (en) | 2009-04-07 |
JP3890300B2 (ja) | 2007-03-07 |
KR100576034B1 (ko) | 2006-05-02 |
AU2002249122B2 (en) | 2005-06-23 |
DE10102159C2 (de) | 2002-12-12 |
EP1338004B8 (de) | 2005-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1338004B1 (de) | Verfahren und vorrichtung zum erzeugen bzw. decodieren eines skalierbaren datenstroms unter berücksichtigung einer bitsparkasse, codierer und skalierbarer codierer | |
DE19549621B4 (de) | Vorrichtung zum Codieren von Audiosignalen | |
DE60012860T2 (de) | Verfahren zur Verarbeitung mehrerer digitaler Audiodatenströme | |
DE60121592T2 (de) | Kodierung und dekodierung eines digitalen signals | |
DE69333394T2 (de) | Hochwirksames Kodierverfahren und -gerät | |
DE60117471T2 (de) | Breitband-signalübertragungssystem | |
DE10200653B4 (de) | Skalierbarer Codierer, Verfahren zum Codieren, Decodierer und Verfahren zum Decodieren für einen skalierten Datenstrom | |
EP1327243B1 (de) | Verfahren und vorrichtung zum erzeugen eines skalierbaren datenstroms und verfahren und vorrichtung zum decodieren eines skalierbaren datenstroms | |
EP1647010B1 (de) | Audiodateiformatumwandlung | |
EP0978172B1 (de) | Verfahren zum verschleiern von fehlern in einem audiodatenstrom | |
EP2245621B1 (de) | Verfahren und mittel zur enkodierung von hintergrundrauschinformationen | |
DE19742655C2 (de) | Verfahren und Vorrichtung zum Codieren eines zeitdiskreten Stereosignals | |
EP1953739A2 (de) | Verfahren und Vorrichtung zur Geräuschunterdrückung | |
EP1230827A2 (de) | Verfahren und vorrichtung zum verarbeiten eines stereoaudiosignals | |
EP1023777B1 (de) | Verfahren und vorrichtung zur erzeugung eines bitratenskalierbaren audio-datenstroms | |
DE60224005T2 (de) | Verfahren und vorrichtung zur verarbeitung von mehreren audiobitströmen | |
EP1354314B1 (de) | Verfahren und vorrichtung zum erzeugen eines skalierbaren datenstroms und verfahren und vorrichtung zum decodieren eines skalierbaren datenstroms unter berücksichtigung einer bitsparkassenfunktion | |
DE102008009720A1 (de) | Verfahren und Mittel zur Dekodierung von Hintergrundrauschinformationen | |
DE10339498B4 (de) | Audiodateiformatumwandlung | |
EP1390947B1 (de) | Verfahren zum signalempfang in einem digitalen kommunikationssystem | |
DE19804584A1 (de) | Verfahren und Vorrichtung zum Codieren und Decodieren von Audiosignalen | |
DE10065363B4 (de) | Vorrichtung und Verfahren zum Decodieren eines codierten Datensignals | |
WO2005034091A1 (de) | Verfahren und anordnung zur audioübertragung | |
DE102005032079A1 (de) | Verfahren und Vorrichtung zur Geräuschunterdrückung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20030626 |
|
AK | Designated contracting states |
Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR |
|
AX | Request for extension of the european patent |
Extension state: AL LT LV MK RO SI |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: FRAUNHOFER-GESELLSCHAFT ZUR FOERDERUNG DERANGEWAND |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: TR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20040908 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D Free format text: NOT ENGLISH |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D Free format text: GERMAN |
|
REF | Corresponds to: |
Ref document number: 50200953 Country of ref document: DE Date of ref document: 20041014 Kind code of ref document: P |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20041208 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20041208 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20041219 |
|
GBT | Gb: translation of ep patent filed (gb section 77(6)(a)/1977) |
Effective date: 20041201 |
|
REG | Reference to a national code |
Ref country code: SE Ref legal event code: TRGR |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20050114 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20050131 |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1056641 Country of ref document: HK |
|
LTIE | Lt: invalidation of european patent or patent extension |
Effective date: 20040908 |
|
ET | Fr: translation filed | ||
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
RIN2 | Information on inventor provided after grant (corrected) |
Inventor name: SPERSCHNEIDER, RALPH Inventor name: GRILL, BERNHARD Inventor name: TEICHMANN, BODO Inventor name: LUTZKY, MANFRED |
|
26N | No opposition filed |
Effective date: 20050609 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20050208 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 15 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 16 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 17 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: LU Payment date: 20210120 Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20210120 Year of fee payment: 20 Ref country code: FI Payment date: 20210119 Year of fee payment: 20 Ref country code: CH Payment date: 20210122 Year of fee payment: 20 Ref country code: IE Payment date: 20210120 Year of fee payment: 20 Ref country code: NL Payment date: 20210120 Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20210120 Year of fee payment: 20 Ref country code: SE Payment date: 20210122 Year of fee payment: 20 Ref country code: AT Payment date: 20210119 Year of fee payment: 20 Ref country code: BE Payment date: 20210120 Year of fee payment: 20 Ref country code: GB Payment date: 20210122 Year of fee payment: 20 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: IT Payment date: 20210129 Year of fee payment: 20 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R071 Ref document number: 50200953 Country of ref document: DE Ref country code: CH Ref legal event code: PL |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: MK Effective date: 20220113 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: PE20 Expiry date: 20220113 |
|
REG | Reference to a national code |
Ref country code: BE Ref legal event code: MK Effective date: 20220114 |
|
REG | Reference to a national code |
Ref country code: FI Ref legal event code: MAE |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: MK9A |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK07 Ref document number: 275751 Country of ref document: AT Kind code of ref document: T Effective date: 20220114 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IE Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION Effective date: 20220114 Ref country code: GB Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION Effective date: 20220113 |