AUDIO ENCODER, METHOD FOR PROVIDING AN ENCODED REPRESENTATION OF AN AUDIO INFORMATION, COMPUTER PROGRAM AND ENCODED AUDIO REPRESENTATION USING IMMEDIATE PLAYOUT FRAMES

20240194207 ยท 2024-06-13

    Inventors

    Cpc classification

    International classification

    Abstract

    An audio encoder is disclosed for providing an encoded representation of an audio information encodes a sequence of audio frames. The audio encoder provides one or more immediate playout frames including a representation of a current audio frame, preceding the current audio frame. The audio encoder provides the representations of the current frame and of the one or more audio frames preceding the current audio frame, such that these representations are decodable using a same decoder configuration. The audio encoder provides the representations of the one or more audio frames preceding the current audio frame, which are included into the immediate playout frame, using a modified encoding functionality, which encodes an audio frame using a smaller number of bits than a normal encoding functionality, which is used for the encoding of the current audio frame.

    Claims

    1. An audio encoder for providing an encoded representation of an audio information on the basis of an input audio information, wherein the audio encoder is configured to encode a sequence of audio frames, wherein the audio encoder is configured to provide one or more immediate playout frames comprising a representation of a current audio frame and encoded representations of one or more audio frames preceding the current audio frame, wherein the audio encoder is configured to provide the representation of the current frame and the representations of the one or more audio frames preceding the current audio frame such that the representation of the current frame and the representations of the one or more audio frames preceding the current audio frame are decodable using a same decoder configuration, and wherein the audio encoder is configured to provide the representations of the one or more audio frames preceding the current audio frame, which are included into the immediate playout frame, using a modified encoding functionality which is adapted to encode an audio frame using a smaller number of bits than a normal encoding functionality which is used for the encoding of the current audio frame.

    2. The audio encoder according to claim 1, wherein the audio encoder is configured to use a modified encoding functionality, in which a bitrate setting or a bitrate limit is reduced when compared to the normal encoding functionality, for providing the representations of the one or more audio frames preceding the current audio frame.

    3. The audio encoder according to claim 1, wherein the audio encoder is configured to use the bitrate setting or bitrate limit for deciding how many bits are allocated to an encoding of different spectral values.

    4. The audio encoder according to claim 1, wherein the audio encoder is configured to leave encoding parameters, a change of which would result in a change of a decoder configuration unchanged between the encoding of the current frame and the encoding of the one or more audio frames preceding the current audio frame.

    5. The audio encoder according to claim 1, wherein the audio encoder is configured to use a modified encoding functionality, in which a number of bits available for a quantization or for an encoding of one or more parameters is reduced or limited when compared to normal encoding functionality, for providing the representations of the one or more audio frames preceding the current audio frame.

    6. The audio encoder according to claim 1, wherein the audio encoder is configured to use a modified encoding functionality, in which a coarser quantization of a MDCT spectrum is used when compared to the normal encoding functionality, for providing the representations of the one or more audio frames preceding the current audio frame.

    7. The audio encoder according to claim 1, wherein: the audio encoder is configured to change a global gain parameter, in order to acquire a coarser quantization, when using the modified encoding functionality; and/or the audio encoder is configured to use a modified encoding functionality, in which a masking threshold acquired using a psychoacoustic model is changed to acquire a coarser quantization, for providing the representations of the one or more audio frames preceding the current audio frame.

    8. The audio encoder according to claim 1, wherein the audio encoder is configured to use a modified encoding functionality, and a bandwidth extension bit load is reduced, for providing the representations of the one or more audio frames preceding the current audio frame.

    9. The audio encoder according to claim 1, wherein the audio encoder is configured to use a modified encoding functionality, and wherein: a spectral band replication bit load is reduced, for providing the representations of the one or more audio frames preceding the current audio frame; and/or a plurality of spectral band replication parameters are set to a predetermined value which allows for a reduction or for a minimization of a number of bits required for an encoding of the spectral band replication parameters, for providing the representations of the one or more audio frames preceding the current audio frame.

    10. The audio encoder according to claim 1, wherein the audio encoder is configured to use a modified encoding functionality, and wherein: a number of spectral band replication bands or a number of spectral band replication envelopes is reduced, for providing the representations of the one or more audio frames preceding the current audio frame; and/or a frequency resolution of spectral band replication data is reduced, for providing the representations of the one or more audio frames preceding the current audio frame.

    11. The audio encoder according to claim 1, wherein the audio encoder is configured to use a modified encoding functionality, and wherein: a bit load in a UsacSbrData( ) syntax element is reduced, for providing the representations of the one or more audio frames preceding the current audio frame, while keeping spectral band replication parameters which are part of an usacConfig( ) syntax element and/or of a SbrConfig( ) syntax element unchanged; and/or a multi-channel encoding bit load is reduced, for providing the representations of the one or more audio frames preceding the current audio frame.

    12. The audio encoder according to claim 1, wherein the audio encoder is configured to use a modified encoding functionality, and wherein: a transform-coded excitation linear-prediction domain encoding is used instead of an ACELP linear predication domain encoding, for providing the representations of the one or more audio frames preceding the current audio frame; and/or a transform-coded excitation linear-prediction domain encoding with a coarser quantization is used instead of a transform-coded excitation linear-prediction domain encoding with a finer quantization, for providing the representations of the one or more audio frames preceding the current audio frame.

    13. The audio encoder according to claim 1, wherein the audio encoder is configured to use a modified encoding functionality, and wherein: a time domain resolution is reduced, for providing the representations of the one or more audio frames preceding the current audio frame; and/or a usage of multiple TCX windows within a single audio frame is avoided, for providing the representations of the one or more audio frames preceding the current audio frame.

    14. The audio encoder according to claim 1, wherein the audio encoder is configured to use a modified encoding functionality, and wherein: a single long TCX window is used instead of 2 medium sized TCX windows, and/or in which a single long TCX window is used instead of 4 short TCX windows, or in which a single long TCX window is used instead of a plurality of shorted TCX windows, for providing the representations of the one or more audio frames preceding the current audio frame; and/or a usage of a plurality of short MDCT transform windows within a single audio frame is avoided, for providing the representations of the one or more audio frames preceding the current audio frame.

    15. The audio encoder according to claim 1, wherein the audio encoder is configured to use a modified encoding functionality, and wherein a single long MDCT transform window is used instead a plurality of shorter MDCT transform windows, for providing the representations of the one or more audio frames preceding the current audio frame; and/or. a START_STOP MDCT transform window is used instead of an EIGHT_SHORT MDCT transform window, for providing the representations of the one or more audio frames preceding the current audio frame.

    16. The audio encoder according to claim 1, wherein the audio encoder is configured to use a modified encoding functionality, and wherein: a reduced ACELP excitation codebook size is used, for providing the representations of the one or more audio frames preceding the current audio frame; and/or a reduced number of bits is used for an encoding of an innovation codebook index representing an ACELP excitation, for providing the representations of the one or more audio frames preceding the current audio frame.

    17. The audio encoder according to claim 1, wherein the audio encoder is configured to also encode the one or more audio frames preceding the current audio frame in the normal encoding mode, in order to acquire one or more non-immediate playout frames preceding the immediate playout frame.

    18. The audio encoder according to claim 1, wherein the audio encoder is configured to re-use intermediate encoding results of an encoding of the one or more frames preceding the current frame using the normal encoding functionality, in order to determine the bitrate reduced encoded representation of the one or more frames preceding the current frame which is the result of the modified encoding functionality.

    19. The audio encoder according to claim 1, wherein the audio encoder is configured to implement the normal encoding functionality using a first core coder instance, and to implement the modified encoding functionality using a second core coder instance.

    20. A method for providing an encoded representation of an audio information on the basis of an input audio information, the method comprising: encoding a sequence of audio frames; providing one or more immediate playout frames comprising a representation of a current audio frame and encoded representations of one or more audio frames preceding the current audio frame; providing the representation of the current frame and the representations of the one or more audio frames preceding the current audio frame such that the representation of the current frame and the representations of the one or more audio frames preceding the current audio frame are decodable using a same decoder configuration, and providing the representations of the one or more audio frames preceding the current audio frame, which are included into the immediate playout frame, using a modified encoding functionality which is adapted to encode an audio frame using a smaller number of bits than a normal encoding functionality which is used for the encoding of the current audio frame.

    21. A non-transitory digital storage medium having a computer program stored that when executed by a computer process provides an encoded representation of an audio information on the basis of an input audio information by: encoding a sequence of audio frames; providing one or more immediate playout frames comprising a representation of a current audio frame and encoded representations of one or more audio frames preceding the current audio frame; providing the representation of the current frame and the representations of the one or more audio frames preceding the current audio frame such that the representation of the current frame and the representations of the one or more audio frames preceding the current audio frame are decodable using a same decoder configuration, and providing the representations of the one or more audio frames preceding the current audio frame, which are included into the immediate playout frame, using a modified encoding functionality which is adapted to encode an audio frame using a smaller number of bits than a normal encoding functionality which is used for the encoding of the current audio frame.

    22. An encoded audio representation comprising: a sequence of encoded audio frames; and one or more immediate playout frames comprising a representation of a current audio frame and encoded representations of one or more audio frames preceding the current audio frame, wherein the representation of the current frame and the representations of the one or more audio frames preceding the current audio frame are decodable using a same decoder configuration, and wherein the representations of the one or more audio frames preceding the current audio frame, which are included into the immediate playout frame, are provided using a modified encoding functionality which is adapted to encode an audio frame using a smaller number of bits than a normal encoding functionality which is used for the encoding of the current audio frame, or wherein the encoded representations of the one or more audio frames preceding the current audio frame, which are included into the immediate playout frame, comprise a smaller number of bits than the encoded representation of the current frame.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0092] Embodiments of the present invention will be detailed subsequently referring to the appended drawings, in which:

    [0093] FIG. 1 shows a block diagram of a method for providing an electrical connection according to an embodiment of the present invention;

    [0094] FIG. 2 shows a schematic block diagram of a method according to embodiments of the invention;

    [0095] FIG. 3 shows a schematic view of a parallel core encoders principle, according to embodiments of the invention; and

    [0096] FIG. 4 shows a schematic visualization of a series of Access Units.

    DETAILED DESCRIPTION OF THE INVENTION

    [0097] Equal or equivalent elements or elements with equal or equivalent functionality are denoted in the following description by equal or equivalent reference numerals even if occurring in different figures.

    [0098] In the following description, a plurality of details is set forth to provide a more throughout explanation of embodiments of the present invention. However, it will be apparent to those skilled in the art that embodiments of the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form rather than in detail in order to avoid obscuring embodiments of the present invention. In addition, features of the different embodiments described herein after may be combined with each other, unless specifically noted otherwise.

    [0099] FIG. 1 shows a schematic side view of an audio encoder according to embodiments of the invention. FIG. 1 shows audio encoder 100 comprising an audio frame provision unit 110, an encoding unit 120, a modified encoding unit 130 and an immediate playout frame, IPF, provision unit 140.

    [0100] Encoder 100 is provided with an input signal 102. The input signal 102 may, for example, comprise an input audio information and/or one or more audio frames or access units. Optionally, the audio frame provision unit 110 may be configured to process signal 102 in order to provide one or more audio frames.

    [0101] Audio frame provision unit 110 is configured to provide an audio frame 112 that is to be encoded, e.g. to be currently encoded, to encoding unit 120. Optionally, audio frame provision unit 110 may be configured to provide an audio frame 112 that is to be encoded, e.g. to be currently encoded, and one or more audio frames preceding the e.g. current audio frame, e.g. one or more audio frames that were encoded previous to the e.g. current audio frame, to encoding unit 120.

    [0102] Furthermore, audio frame provision unit 110 is configured to provide one or more audio frames 114 preceding the, e.g. current, audio frame, e.g. one or more audio frames that were encoded previous to the, e.g. current, audio frame, to modified encoding unit 130. Optionally, the audio frame provision unit 110 may be configured to provide the audio frame that is to be encoded, e.g. to be currently encoded, to modified encoding unit 130 in addition.

    [0103] Encoding unit 120 is configured to encode the e.g. current audio frame. In the following this encoding functionality may be referred to as normal encoding. If being provided with preceding audio frames, encoding unit 120 may optionally encode the preceding audio frames as well. Hence, signal 122 comprises an encoded representation of the current frame and optionally an encoded representation of the one or more audio frames preceding the current audio frame. Optionally, encoding unit 120 may be configured to provide an IPF comprising normally encoded representations of the current frame and of the one or more audio frames preceding the current audio frame. Signal 122 may optionally comprise a bitstream of normally encoded audio frames or access units.

    [0104] Modified encoding unit 130 is configured to encode the one or more audio frames preceding the, e.g. current, audio frame, in order to provide an encoded representation of the one or more audio frames preceding the current audio frame, wherein the one or more audio frames preceding the current audio frame are encoded in a modified manner, using a smaller number of bits in comparison to the encoding functionality which is performed by encoding unit 120.

    [0105] Optionally, modified encoding unit 130 may be configured to encode, if provided with, the current audio frame in the modified manner as well and may, for example hence, provide an IPF encoded in the modified manner, comprising the representations of the current frame and of the one or more audio frames preceding the current audio frame that were encoded using the modified encoding functionality. Signal 132 may optionally comprise a bitstream of encoded audio frames or access units, encoded in the modified manner.

    [0106] Hence, signal 122 may, for example, be a normally encoded representation of the, e.g. current, audio frame and signal 132 may, for example, be the representation of the one or more audio frames preceding the current audio frame that was encoded in the modified manner.

    [0107] As explained before, optionally, signal 122 may as well comprise a normally encoded representation of the one or more audio frames preceding the current audio frame or may comprise an IPF comprising the normally encoded representations of the current frame and of the one or more audio frames preceding the current audio frame.

    [0108] Accordingly, optionally, signal 132 may as well comprise a representation of the current audio frame in the modified manner and/or may, for example, comprise an IPF encoded in the modified manner, comprising the representations of the current frame and of the one or more audio frames preceding the current audio frame that were encoded using the modified encoding functionality.

    [0109] Hence, encoding unit 120 and modified encoding unit 130 may form an encoding structure of audio encoder 100 which is configured to encode a sequence of audio frames, provided by the audio frame provision unit 110.

    [0110] It is to be noted that signals 122 and 132 may be decoded using a same decoder configuration. Hence, the modification of the encoding functionality of modified encoding unit 130 in contrast to encoding unit 120 may be implemented, such that the modified encoding only affects portions of the encoded data that do not have an impact on a configuration of a respective decoder (e.g. in comparison to a normal decoding thereof), for example, such that there is no need for a decoder-re-initialization between the decoding of the representations of the one or more frames preceding the current frame and the decoding of the representation of the current frame. On the other hand, based on the data encoded in the modified manner, a respective decoder may, for example, be set in a desired state, that may be identical to a state that would be achieved upon receiving the respective data encoded in a normal manner, e.g. without changing a configuration of the decoder.

    [0111] IPF provision unit 140 is configured to provide one or more immediate playout frames 142 comprising the normally encoded representation of a current audio frame and representations of one or more audio frames preceding the current audio frame that were encoded in the modified manner.

    [0112] Optionally, for example, in a case wherein signal 122 comprises additionally, the representation of the preceding audio frames and/or wherein signal 132 comprises additionally the representation of the e.g. current audio frame, IPF provision unit 140 may be configured to replace the representations of the preceding audio frames that were normally encoded in signal 122 with the representations of the preceding audio frames that were encoded in the modified manner from signal 132 in order to provide the one or more immediate playout frames 142 comprising the normally encoded representation of a current audio frame and representations of one or more audio frames preceding the current audio frame that were encoded in the modified manner. Optionally, signal 142 may comprise a bitstream of audio frames, e.g. of a plurality of normally encoded audio frames or access units together with IPFs comprising normally encoded currently encoded frames and preceding frames encoded in the modified manner.

    [0113] Hence, optionally, the audio encoder 100 may be configured to also encode the one or more audio frames preceding the current audio frame in the normal encoding mode, e.g. using unit 120, in order to obtain one or more non-immediate playout frames, e.g. as a part of signal 142, e.g. normally encoded audio frames which do not comprise an immediate playout overhead information, preceding the immediate playout frame.

    [0114] Optionally, the modified encoding unit 130 may be configured to provide a similar encoding functionality as the encoding unit 120, for example with a modified bitrate setting or bitrate limit. As an example, a bitrate setting or a bitrate limit may be reduced when compared to the normal encoding functionality of encoding unit 120. Hence, signal 132, e.g. the representations of the one or more audio frames preceding the current audio frame may be provided based on a reduced bitrate setting or bitrate limit.

    [0115] Optionally, according to embodiments, the bitrate setting or bitrate limit may be used for deciding how many bits are allocated to an encoding of different spectral values.

    [0116] Consequently, as an example, the reduced bitrate setting or the reduced bitrate limit may result in a coarser quantization of one or more parameters. Hence, the preceding audio frames may be encoded more coarsely by modified encoding unit 130 than they would be encoded by encoding unit 120.

    [0117] Accordingly, as an example, the reduced bitrate setting or the reduced bitrate limit may results in a smaller core bandwidth.

    [0118] As another optional feature, the modified encoding unit 130 may be configured to provide encoded representations differing from encoded representations of encoding unit 120 in that only encoding parameters are changed which do not result in a change of a decoder configuration. Hence, encoding parameters, a change of which would result in a change of a decoder configuration, may be left unchanged between audio frames encoded in unit 120 compared to audio frames encoded in unit 130.

    [0119] As another optional feature, modified encoding unit 130 may use a reduced a number of bits available for a quantization or for an encoding of one or more parameters when compared to normal encoding functionality of unit 120. The parameters may, for example, be spectral values, or quantized spectral values, or SBR parameters or quantized SBR parameters.

    [0120] As another optional feature, the modified encoding unit 130 may be configured to reduce or limit a quantization accuracy of individual parameters or of groups or parameters in contrast to an encoding functionality of unit 120. In other words, the modified encoding unit 130 may be configured to encode audio frames more coarsely than encoding unit 120. The inventors recognized that this may allow to save bits, e.g. for an audio Pre-roll, while still allowing to decode the respective audio frames using a same decoder configuration as for encoded audio frames that were encoded using unit 120.

    [0121] Furthermore, the inventors recognized that a coarser quantization using unit 130 for the one or more audio frames preceding the e.g. current audio frame, e.g. compared to a respective quantization using unit 120, may be advantageously applied to a MDCT spectrum. As explained before, bits may be saved, while still allowing to provide an information in the IPF for configuring a respective decoder and/or to set the respective decoder in a desired state (e.g. without changing a configuration thereof), such that a same decoder configuration may be set, as if the audio frames were encoded using unit 120 or in other words using the normal encoding functionality.

    [0122] In accord with the above explanations, optionally, modified encoding unit 130 and encoding unit 120 may be configured to provide a similar or a same, or even an identical encoding functionality, except for the usage of a coarser quantization, such that some or even all other parameters that were not encoded more coarsely may be similar, or the same or even identical.

    [0123] As another optional feature, modified encoding unit 130 may be configured to encode a spectrum, e.g. an MDCT spectrum, e.g. coefficients representing such a spectrum, with a reduced maximum number of bits for the quantization thereof, compared to the normal encoding functionality. Hence, a need of bits at least for the audio frames preceding the e.g. current audio frame may be reduced.

    [0124] As another optional feature, the modified encoding unit 130 may be configured to perform an iterative quantization. As an example, a bit-constraint, e.g. a maximum number of bits, may be provided to the modified encoding unit 130, which may quantize and re-quantize the spectrum with varying, e.g. increasing step size, or with decreasing granularity, until the bit constrained is fulfilled.

    [0125] As another optional feature, the modified encoding unit 130 and the normal encoding unit 120 may be configured to provide a similar or a same or an identical encoding functionality, e.g. except for the usage of a global gain parameters, such that the difference in the global gain parameters may cause a coarser quantization for data encoded using the modified encoding unit 130 in contrast to data encoded using encoding unit 120. However the gain parameters may as well be only one of the differences between the normal and the modified encoding functionality. The inventors recognized that an adaptation of such a gain parameters may allow to adapt a quantization step size.

    [0126] In general, it is to be noted that FIG. 1 shows an example, comprising two distinct encoding units 120 and 130. However, embodiments may comprise only a single encoding unit, wherein the audio encoder may be configured to adapt or switch or change encoding parameters or settings, e.g. as explained above a global gain parameter, in order to switch from a normal encoding functionality of the single encoding unit to the modified encoding functionality and vice versa.

    [0127] Thus, embodiments may comprise an audio encoder 100 configured to implement the normal encoding functionality using a first core coder instance, e.g. the encoding unit 120, and to implement the modified encoding functionality using a second core coder instance, e.g. the modified encoding unit 130, wherein, for example, the second core coder instance may be executed with a different setting when compared to the first core coder instance; and/or wherein the second core coder instance may be executed in parallel with the first core coder instance.

    [0128] Accordingly, as an optional feature, the modified encoding unit 130 may be configured to encode the one or more audio frames preceding the current audio frame such that the representations of the one or more audio frames preceding the current audio frame comprise a smaller number of bits then the representation of the current audio frame which is provided by the encoding unit 120. In other words, the second core coder instance may be configured to provide the representations of the one or more audio frames preceding the current audio frame, which are included into the immediate playout frame 142, such that the representations of the one or more audio frames preceding the current audio frame, e.g. each, comprise a smaller number of bits than the representation of the current audio frame which is provided by the first core coder instance. In simple words, and as an example, if a same signal is provided to unit 120 and to unit 130, the encoded representation thereof provided by unit 130 may comprise less bits than the representation provided by unit 120, however they may both be decodable using a same decoder configuration.

    [0129] As another optional feature, an encoding functionality of unit 120 and/or of unit 130 may be using or may be based on a masking threshold, wherein the masking threshold is or was obtained using a psychoacoustic model. In order to provide a coarser quantization for the one or more audio frames preceding the current audio frame, the modified encoding functionality of unit 130 may use a different or changed masking threshold than unit 120.

    [0130] As another optional feature, the modified encoding unit 130 may use a reduced bandwidth extension bit load in comparison to encoding unit 120. However, it is to be noted that constraints regarding minimum requirements of the bandwidth extension specification may still be fulfilled. The inventors recognized that an adaptation of a bandwidth extension bit load for providing the modified encoding functionality for providing the representations of the one or more audio frames preceding the current audio frame may allow to control a spectral band replication, such that bits for the encoding of the one or more audio frames preceding the current audio frame may be saved, while allowing a decoding of such data with a same decoder configuration as data encoded with unit 120.

    [0131] Accordingly, as an optional feature, a spectral band replication, SBR, bit load, e.g. a bit load for controlling a spectral bandwidth replication may be reduced for providing the representations of the one or more audio frames preceding the current audio frame using the modified encoding functionality in comparison to the normal encoding functionality.

    [0132] As another optional feature, for the modified encoding functionality, a plurality of spectral band replication, SBR, parameters may be set to a predetermined, e.g. fixed, value, e.g. to zero. This may allow for a reduction or for a minimization, e.g. in comparison to the normal encoding functionality, of a number of bits required for an encoding of the spectral band replication parameters for providing the representations of the one or more audio frames preceding the current audio frame.

    [0133] Furthermore, modified encoding unit 130 may, for example, be configured to use a reduced number of spectral band replication bands or a number of spectral band replication envelopes in comparison to normal encoding unit 120, at least for providing the representations of the one or more audio frames preceding the current audio frame. Optionally, only a single envelope may be used. Hence, a frequency resolution of the spectral band replication data may be reduced for the provision of the representations of the one or more audio frames preceding the current audio frame.

    [0134] As another optional feature, modified encoding unit 130 may, for example, be configured to at least encode the one or more audio frames preceding the e.g. current audio frame, using a reduced frequency resolution of spectral band replication data in comparison to encoding unit 120.

    [0135] As another optional feature, modified encoding unit 130 may, for example, be configured to use a reduced bit load in a UsacSbrData( ) syntax element (e.g. in comparison to unit 120), at least for providing the representations of the one or more audio frames preceding the current audio frame, while keeping spectral band replication parameters which are part of an usacConfig( ) syntax element and/or of a SbrConfig( ) syntax element unchanged. Hence, the inventors recognized that SBR payload content may be removed or reduced, in order to save bits, while still allowing a respective decoder to decode data encoded using the normal encoding functionality and the modified encoding functionality using a same decoder configuration.

    [0136] As another optional feature, e.g. in comparison to unit 120, modified encoding unit 130 may use a reduced multi-channel encoding bit load, e.g. a bit load for a parametric multi-channel encoding, like a MPEG-surround encoding, for providing the representations of the one or more audio frames preceding the current audio frame. The bit load may, for example be a bit load for encoding inter-channel level difference parameters and/or inter-channel correlation parameters, and/or inter-channel-coherence parameters, and/or inter-channel-time-difference parameters, and/or inter-channel phase-difference parameters, or a bit load for encoding a difference signal for encoding a difference between two or more channels, or a bit load for encoding a residual signal supporting the parametric multi-channel encoding.

    [0137] Optionally, using the modified encoding functionality, a plurality of multi-channel encoding parameters, may be set to a e.g. fixed, value, e.g. to zero. The multi-channel encoding parameters may, for example, be inter-channel level difference parameters and/or inter-channel correlation parameters, and/or inter-channel-coherence parameters, and/or inter-channel-time-difference parameters, and/or inter-channel phase-difference parameters. This may allow a reduction or a minimization of a number of bits required for an encoding of the multi-channel encoding parameters for providing the representations of the one or more audio frames preceding the current audio frame.

    [0138] Optionally, modified encoding unit 130 may be configured to reduce an amount of bits used in a multi-channel encoding mode by approximating or even ignoring differences between two or more channels in the provision of the multi-channel encoding parameters for providing the representations of the one or more audio frames preceding the current audio frame. Hence, the inventors recognized that multi-channel parameters may actually be included into the bitstream, in order to avoid an unwanted change of a decoder configuration, wherein bits may be saved by not including bits used for indicating differences between actual input signals, and, for example, only including standard multi-channel encoding parameters, which can be encoded with a small bit effort. In other words, using the modified encoding functionality, a multi-channel encoding may remain activated and differences between two or more channels may remain unconsidered in the provision of the multi-channel encoding parameters, for providing the representations of the one or more audio frames preceding the current audio frame.

    [0139] As another optional feature, modified encoding unit 130 may be configured to use a transform-coded excitation, TCX, linear-prediction domain encoding, e.g. with a coarse quantization, e.g. coarser than a quantization that would be used in the normal encoding functionality for the encoding of TCX data, e.g. instead of an ACELP linear predication domain encoding, e.g. as used by encoding unit 120, for providing the representations of the one or more audio frames preceding the current audio frame.

    [0140] As another optional feature, modified encoding unit 130 may be configured to use a transform-coded excitation, TCX, linear-prediction domain encoding with a coarser quantization, e.g. coarser than a quantization that would be used in the normal encoding functionality for the encoding of TCX data, e.g. instead of a transform-coded excitation, TCX, linear-prediction domain encoding with a finer quantization, e.g. as used by unit 120, for providing the representations of the one or more audio frames preceding the current audio frame.

    [0141] As another optional feature, modified encoding unit 130 may be configured to reduce a time domain resolution, e.g. a time domain resolution in the linear prediction encoding, and/or a time domain resolution in a frequency domain encoding, e.g. when compared to a normal encoding functionality, e.g. the encoding functionality as performed by unit 120.

    [0142] As another optional feature, modified encoding unit 130 may be configured to avoid usage of multiple TCX windows within a single audio frame, for providing the representations of the one or more audio frames preceding the current audio frame. The inventors recognized that a reduced amount of TCX windows, e.g. in comparison to the normal encoding functionality, may allow to save bits without having to re-initialize a decoder for decoding normally encoded data and data encoded using the modified encoding functionality.

    [0143] As another optional feature, modified encoding unit 130 may be configured to use a modified encoding functionality, in which a single long TCX window is used instead of 2 medium sized TCX windows, and/or in which a single long TCX window is used instead of 4 short TCX windows, or in which a single long TCX window is used instead of a plurality of shorted TCX windows, for providing the representations of the one or more audio frames preceding the current audio frame. Accordingly, encoding unit 120 may optionally be configured to use a plurality of TCX windows.

    [0144] Accordingly, as an optional feature, modified encoding unit 130 may be configured to avoid usage of a plurality of short MDCT transform windows within a single audio frame, and/or the modified encoding unit 130 may be configured to use a single long MDCT transform window instead a plurality of shorter MDCT transform windows, for providing the representations of the one or more audio frames preceding the current audio frame.

    [0145] Optionally, modified encoding unit 130 may be configured to use a START_STOP MDCT transform window, e.g. a window having a left sided transition slope like an EIGHT_SHORT MDCT transform window, and a right sided transition slope like an EIGHT_SHORT MDCT transform window, and a window length longer, e.g. by a factor of at least 2, than an individual short MDCT transform window, and a total window length equal to a total window length of an EIGHT SHORT MDCT transform window, instead of an EIGHT_SHORT MDCT transform window, e.g. for a provision of MDCT coefficients of a frame, e.g. as used by encoding unit 120, for providing the representations of the one or more audio frames preceding the current audio frame.

    [0146] Hence, in general a modified encoding unit 130 may be configured to reduce a number of transform windows used in comparison to encoding unit 120. The inventors recognized that this may allow to reduce an amount of bits needed to represent the representation of the preceding audio frames, without leading to an unwanted alienation of a respective decoder configuration.

    [0147] As another optional feature, modified encoding unit 130 may be configured to use a reduced ACELP excitation codebook size, which may, for example, be signaled by the acelp_core_mode parameter, and which may, for example, result in a reduced number of bits for an encoding of an innovation codebook index representing an excitation, for providing the representations of the one or more audio frames preceding the current audio frame, e.g. compared to encoding unit 120.

    [0148] As another optional feature, modified encoding unit 130 may be configured to use a reduced number of bits for an encoding of an innovation codebook index representing an ACELP excitation, for providing the representations of the one or more audio frames preceding the current audio frame, e.g. compared to the normal encoding functionality.

    [0149] As another optional feature, modified encoding unit 130 may be configured to use a modified encoding functionality, in which a modified ACELP mode, e.g. signaled by a different acelp_core_mode index, is used (e.g. when compared to an ACELP mode that would be used, or that has been used, in the normal encoding functionality, e.g. by unit 120) for providing the representations of the one or more audio frames preceding the current audio frame

    [0150] Optionally, audio encoder 100 may be configured to provide a USAC-compatible bitstream, e.g. a bitstream in accordance with a current USAC specification in force at the day of filing of the application or at the priority date of this document, or a MPEG-H 3D Audio compatible bitstream, e.g. a bitstream in accordance with a current MPEG-H 3D Audio specification in force at the priority date of this document or at the day of filing of the application.

    [0151] As another optional feature, the audio encoder may be configured to re-use intermediate encoding results 124 of an encoding of the one or more frames preceding the current frame, using the normal encoding functionality, in order to determine the bitrate reduced encoded representation 132 of the one or more frames preceding the current frame, which is the result of the modified encoding functionality, such that, for example, the modified encoding functionality uses spectral values obtained by the previously applied normal encoding functionality, but applies a different quantization or performs a re-quantization. Intermediate encoding results 124 may, for example, be e.g. spectral values before quantization, and/or a subset of bandwidth extension parameters, and/or a subset of multichannel encoding parameters. Hence, a computational effort may be reduced or kept low.

    [0152] FIG. 2 shows a schematic block diagram of a method according to embodiments of the invention. Method 200 is a method for providing an encoded representation of an audio information on the basis of an input audio information. The method 200 comprises encoding 210 a sequence of audio frames, and providing 220 one or more immediate playout frames comprising a representation of a current audio frame and encoded representations of one or more audio frames preceding the current audio frame. The method further comprises providing 230 the representation of the current frame and the representations of the one or more audio frames preceding the current audio frame, such that the representation of the current frame and the representations of the one or more audio frames preceding the current audio frame are decodable using a same decoder configuration. In addition, the method comprises providing 240 the representations of the one or more audio frames preceding the current audio frame, which are included into the immediate playout frame, using a modified encoding functionality, which is adapted to encode an audio frame using a smaller number of bits than a normal encoding functionality which is used for the encoding of the current audio frame.

    [0153] In the following further embodiments according to the invention will be disclosed.

    [0154] The following section may be titled solution, or solution according to embodiments of the invention: For example, to solve the existing problem, e.g. as discussed in the section background of the invention, according to embodiments, it is proposed to reduce the size of the IPF, for example, by replacing the original Audio Pre-Roll frames, for example, by compressed versions thereof that are created, for example, by a second core encoder instance, e.g. unit 130, that runs, for example, in parallel to the already existing core encoder instance, e.g. unit 120. The current AU(n) (i.e. the part of the IPF containing the playout frame; see, for example, FIG. 4) shall, for example, stay untouched.

    [0155] The parallel core encoder instance, e.g. unit 130, shall or may, for example, be configurable in various flexible ways to allow the creation of Audio Pre-Rolls that are, for example, smaller in size than the Audio Pre-Rolls of the original bit stream, while, for example, the basic properties of the IPF are kept (for example, Seamless Switching, etc.). These Audio Pre-Rolls are then, for example, taken to replace the Audio Pre-Roll of the original bit stream and such reduce the total size of the IPF.

    [0156] In the following, reference is made to FIG. 3. FIG. 3 shows a schematic view of a parallel core encoders principle, according to embodiments of the invention. FIG. 3 shows a visualization of a compressed bit stream 310 and of a playout bit stream 320. Signal 132 of FIG. 1 may, for example, comprise bit stream 310 and signal 122 may, for example, comprise bitstream 320. Hence, compressed bit stream 310 may, for example, be a modified bit stream, as a result of modified encoding unit 130 and playout bitstream 310 may, for example, be a normally encoded bitstream, as a result of normal encoding unit 120.

    [0157] As shown in FIG. 3, an IPF may, comprise, as explained before, not only the previous AU(n?1), but a plurality of preceding access units, as examples, AU(n?1) and AU(n?2). For example, both the regular and the parallel core encoder, e.g. units 120 and 130 as shown in FIG. 1, may take the exact same audio signal as their input data, for example, to produce their respective encoded bit streams, e.g. 122 and 132 as shown in FIG. 1. For example, except for the Audio Pre-Roll access units, all other output, e.g. in signal 134 as shown in FIG. 1, from the parallel encoder can be discarded, e.g. using IPF provision unit 140, as shown in FIG. 1. For example, the number of available bits for encoding the subsequent access units (i.e. the bit reservoir fill level) is adapted, for example, while accounting for the reduced size of the IPF resulting from the smaller sized Audio Pre-Rolls. The parallel encoder, e.g. modified encoding unit 130 in FIG. 1, may, for example, be configured in a way, so that the resulting decoder configuration, for example, as contained in the respective bitstream syntax element, is the same for both core encoders. This is in some cases important to ensure the stream switching capability, where the decoder configuration is taken, for example, from the Audio Pre-Roll config extension, for example, in order to re-initialize the decoder. For example, the used decoder configuration should be (or in some cases has to be) applicable to the Audio Pre-Roll access units, as well as to all subsequent playout access units.

    [0158] In the following effects and advantages of the solutions described in the above section solution are described.

    [0159] It should be noted that one or more of the advantages mentioned herein may be achieved in embodiments of the invention. However, it is not necessary to achieve the advantages discussed here.

    [0160] For example, the presented solution allows the creation of IPFs that are greatly reduced in size, for example, while keeping their basic properties. By using, for example, a parallel core encoder instance, e.g. normal encoding unit 120 and modified encoding unit 130 as shown in FIG. 1, the size reduction can be performed in a very flexible way and leaves a lot of opportunities for adaptations and tunings. Such, it can, for example, be assured that the IPFs still allow for seamless switching.

    [0161] The compressed Audio Pre-Roll frames can, for example, be reduced in size such that decoder buffer violations and crashes are avoided. In addition, the audio quality may, for example, improve because the saved bits can be spend on the actual playout frames now instead of the Audio Pre-Roll.

    [0162] In summary: (examples, optional, can be present individually or in combination): [0163] More balanced bit demand of frames in an audio bit stream, which reduces the need for sophisticated and error-prone bit rate control strategies; [0164] More balanced audio quality across the frames of an audio stream; [0165] Overall increased audio quality due overall increased bit budget for all non-IPF frames; [0166] Increased range of bit rates that are guaranteed to respect decoder buffer requirements and maximum AU size requirements, leading to: [0167] More stable decoder behavior.

    [0168] In the following alternative solutions according to embodiments of the invention are discussed. It is to be noted that one or more of the solutions described herein may optionally be used in embodiments according to the invention: [0169] Parallel Encoders where the Audio Pre-Roll extension payload is replaced on a layer higher than the core encoder; [0170] Omitting the parallel core encoder concept, and retroactively shrinking the Audio Pre-Rolls, that were encoded by the regular core encoder; [0171] Using only one core encoder, but operating it in a way such that it encodes the Audio Pre-Rolls two times in two different representations.

    [0172] In the following features and functionalities which are optionally present in embodiments according to the invention are presented:

    [0173] Immediate Playout Frames in xHE-AAC bitstreams (.mp4) or MPEG-H 3D Audio bitstreams (.mhas) have Audio Pre-Roll access units, that are not matching the access units directly preceding the IPF.

    [0174] Furthermore, in the following examples for technical application areas for embodiments according to the invention are disclosed: This invention is applicable, for example, to [0175] Fraunhofer MPEG-D USAC/xHE-AAC encoder [0176] Fraunhofer MPEG-H 3D audio encoder and all variants thereof [0177] all encoding strategies that make use of transmitting/storing temporally preceding frames within a currently transmitted/stored frame.

    [0178] The described invention can, for example, be used as an audio encoder tool to reduce the bit demand of IPFs and thus to increase the perceived audio quality. It can also, for example, be used as an emergency strategy of the encoder in cases where the bit demand of a particular signal is too big to be encoded with the available bits. In these cases the IPF sizes can, for example, be reduced to a point where the signal can be safely encoded again, without the risk of running out of bits or crashing the encoder.

    [0179] In the following further embodiments are described and further details and aspects of the invention are disclosed. The following section may be titled Possible approaches for Audio Pre-Roll size reduction, for example in parallel core encoder, hence in particular highlighting features of such embodiments:

    [0180] Words formatted in bold represent bitstream syntax elements in the relevant ISO/IEC standards (e.g. for 23003-3 MPEG-D USAC or 23008-3 MPEG-H 3D Audio). Words formatted in italic represent bitstream syntax tables in the above standards.

    [0181] It should be noted that any of the concepts described in the following may optionally be introduced into any of the embodiments disclosed in this document. Moreover, it should be noted that any of the concepts described in the following may optionally be used (or introduced into other embodiments) individually or in combination.

    1. Reduce Bitrate (Example)

    [0182] A straight forward way to produce smaller-sized access units, and therefore smaller Audio Pre-Rolls, for example, with the parallel core encoder, e.g. modified encoding unit 130 as shown in FIG. 1, is to operate it (or, for example, a modified encoding functionality) using a smaller bitrate than the regular core encoder (or, for example, a normal encoding functionality), e.g. normal encoding unit 120 as shown in FIG. 1. This has, for example, one or several effects on the encoding process, for example: [0183] A coarser quantization, because the number of available bits is reduced; and/or [0184] A smaller core bandwidth, i.e. a smaller lower frequency band that will be encoded directly, and not by using the Spectral Band Replication (SBR) tool [0185] Since the SBR frequency range in the higher frequencies remains unchanged, a smaller core bandwidth (with a lower core band cut-off frequency) will result in a gap between the LF core band and the HF SBR band

    [0186] It is important to note, that, for example, only those parameters shall be affected, that would not change the resulting decoder configuration (e.g. the usacConfig( ) syntax element for USAC, or the mpegh3daConfig( ) syntax element for MPEG-H 3D Audio) in the produced Audio Pre-Rolls.

    2. Dequantization of the Frequency Spectrum (Example)

    [0187] Here, the access unit size is, for example, reduced by applying a coarser quantization of, for example, the MDCT spectrum, for example, with a larger quantization step size. A coarser quantization will most likely also happen with the reduced bitrate approach from Point 1. The difference here is, for example, that the bit-demand is only controlled by manipulating the quantization part, while, for example, leaving all other parameters like, for example, the core bandwidth unchanged.

    [0188] One way to achieve this is, for example, to reduce the maximum amount of bits that are available for quantizing the spectrum. The frequency spectrum will then, for example, be requantized with an increasing quantization step-size, for example, until the adapted bit-constraint is fulfilled, and the quantized spectrum, for example, only consumes up to the set maximum number of bits.

    [0189] Another way could be, for example, to force the encoder to requantize the spectrum, for example, by increasing the global gain parameter. In the decoder, the global_gain is, for example, used to re-scale the spectrum after the inverse quantization. On the encoder side, increasing the global gain will, for example, result in a larger quantization step size, leading to smaller quantized values [Karlheinz BrandenburgMP3 and AAC explainedAES-17-Conference].

    3. Removal of SBR Payload Content (Example)

    [0190] Reduce the size of the SBR payload, so that, for example, it only contains the data that is strictly necessary so that the decoder is still able to interpret it. This means, for example, that (parts of) the contents of UsacSbrData( ) may be reduced/removed, to realize, for example, the smallest sensible SBR payload size. SBR parameters like, for example, coreSbrFrameLengthIndex, that are part of the usacConfig( )/SbrConfig( ) syntax element shall, for example, remain unchanged.

    4. Reduce Number of SBR Envelopes (Example)

    [0191] The number of SBR envelopes can, for example, be reduced, for example, to 1, for example, in order to minimize the frequency resolution of the SBR data, as contained in the UsacSbrData( ) syntax element in the current audio frame payload. This will, for example, result in a smaller SBR grid, and therefore a smaller SBR payload size in the Audio Pre-Rolls.

    5. Adapt the ACELP Mode (Example)

    [0192] Another way of reducing the AU size in the linear prediction domain (LPD) core mode, is, for example, to change the used ACELP mode index for the encoding. This will, for example, result in different acelp_core_mode, and therefore a icb_index value that can be represented with fewer bits per ACELP frame. This way, in the extreme case, the bits needed to represent icb_index in the bitstream will, for example, be reduced from 64 bits (ACELP mode 5) to 12 bits (ACELP mode 6). An example of the exact mapping from the acelp_core_mode to the icb_index is shown in Table 1.

    6. Re-Code ACELP Frames with TCX (Example)

    [0193] Apart from the ACELP mode, the LPD core also employs, for example, a MDCT based TCX (transform coded excitation) mode, which operates in the frequency domain. The data reduction in TCX is, for example, based on quantization of the frequency spectrum. Therefore the requantization techniques as described, for example, in Point 2. can optionally also be applied here, to reduce the size of the resulting access unit.

    7. Join Two or Four Shorter TCX Windows to One Larger Window (Example)

    [0194] In this approach the idea is, for example, to reduce the time domain resolution of the TCX coder in the LPD core mode, for example, for each audio frame. This can be done, for example, by only using 1 long TCX window, instead of, for example, 2 medium sized of 4 short windows.

    8. Replace EIGHT_SHORT with STOP_START (Example)

    [0195] To improve the audio quality of transients after encoding and decoding, a common way is to subdivide one frame of audio samples (a.k.a a long-block) into 8 short-blocks on the encoder side. This is to prevent the quantization noise to spread before the onset of the transient, where it would be very audible.

    [0196] However, encoding 8 short-blocks, instead of only 1 long-block consumes significantly more bits. To reduce the size of the Audio Pre-Rolls, the sequence of 8 short-blocks can, for example, be replaced by one long START_STOP window, to decrease temporal granularity again. Table 2 (from Table 93 in the 23003-3 MPEG-D USAC specification showing an example for a window sequences and transform windows dependent of coreCoderFrameLength (ccfl)) shows, as an example, the different window sequences, with the 8 short-block sequence and the START_STOP window highlighted (e.g. in yellow or by a background shading).

    [0197] Furthermore it is to be noted that embodiments may address or may be used with or may comprise or may be related to any of the following: IPF, USAC, xHE-AAC, Seamless Switching, Audio Pre-Roll, Adaptive Streaming, Audiocoding.

    [0198] Embodiments may be related to audiocoding with xHE-AAC and/or MPEG-H 3D Audio encoders. Embodiments may be used with or may address xHE-AAC encoder and/or MPEG-H 3D Audio encoder.

    [0199] In general, embodiments according to the invention may comprise or may be a framework that may allow for exchanging bit demanding or even the most bit demanding parts of an Immediate Playout Frame (IPF) with compressed representations. The purpose of this framework may, for example, be to reduce the size of the IPF by replacing the original Audio Pre-Roll Access Units (AU) with compressed versions that may, for example, be created by a second core encoder instance that may, for example, run in parallel to the already existing core encoder instance. The parallel core encoder (e.g. modified encoding unit) may be configurable in various flexible ways, to allow the creation of Audio Pre-Roll AUs that are smaller in size than the Audio Pre-Roll AUs of the original bit stream (e.g. normally encoded bitstream), e.g. while keeping the basic properties of the IPF (e.g. Seamless Switching between two streams of different audio quality). These Audio Pre-Rolls may, for example, then be taken to replace the Audio Pre-Roll of the original bit stream and such reduce the total size of the resulting IPF.

    [0200] One approach according to embodiments to reduce the size of the Audio Pre-Roll AU may be to operate the parallel core encoder at a lower bitrate, while keeping the rest of the encoder configuration in sync. Another approach according to embodiments may be to requantize the MDCT coefficient with a larger quantization step size, leading to a lower bit consumption.

    Remarks

    [0201] It should be noted that any embodiments as defined by the claims can be supplemented by any of the details (features and functionalities) described in the above sections of the description.

    [0202] Also, the embodiments described in the above sections can be used individually, and can also be supplemented by any of the features in another section, or by any feature included in the claims.

    [0203] Also, it should be noted that individual aspects described herein can be used individually or in combination. Thus, details can be added to each of said individual aspects without adding details to another one of said aspects.

    [0204] Moreover, features and functionalities disclosed herein relating to a method can also be used in an apparatus (configured to perform such functionality). Furthermore, any features and functionalities disclosed herein with respect to an apparatus can also be used in a corresponding method. In other words, the methods disclosed herein can optionally be supplemented by any of the features and functionalities described with respect to the apparatuses, both individually and taken in combination.

    [0205] Also, any of the features and functionalities described herein can be implemented in hardware or in software, or using a combination of hardware and software, as will be described in the section implementation alternatives.

    IMPLEMENTATION ALTERNATIVES

    [0206] Although some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus. Some or all of the method steps may be executed by (or using) a hardware apparatus, like for example, a microprocessor, a programmable computer or an electronic circuit. In some embodiments, one or more of the most important method steps may be executed by such an apparatus.

    [0207] Depending on certain implementation requirements, embodiments of the invention can be implemented in hardware or in software. The implementation can be performed using a digital storage medium, for example a floppy disk, a DVD, a Blu-Ray, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed. Therefore, the digital storage medium may be computer readable.

    [0208] Some embodiments according to the invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system, such that one of the methods described herein is performed.

    [0209] Generally, embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer. The program code may for example be stored on a machine readable carrier.

    [0210] Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.

    [0211] In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.

    [0212] A further embodiment of the inventive methods is, therefore, a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein. The data carrier, the digital storage medium or the recorded medium are typically tangible and/or non-transitionary.

    [0213] A further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals may for example be configured to be transferred via a data communication connection, for example via the Internet.

    [0214] A further embodiment comprises a processing means, for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein.

    [0215] A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.

    [0216] A further embodiment according to the invention comprises an apparatus or a system configured to transfer (for example, electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may, for example, be a computer, a mobile device, a memory device or the like. The apparatus or system may, for example, comprise a file server for transferring the computer program to the receiver.

    [0217] In some embodiments, a programmable logic device (for example a field programmable gate array) may be used to perform some or all of the functionalities of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein. Generally, the methods are performed by any hardware apparatus.

    [0218] The apparatus described herein may be implemented using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.

    [0219] The apparatus described herein, or any components of the apparatus described herein, may be implemented at least partially in hardware and/or in software.

    [0220] The methods described herein may be performed using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.

    [0221] The methods described herein, or any components of the apparatus described herein, may be performed at least partially by hardware and/or by software.

    [0222] While this invention has been described in terms of several embodiments, there are alterations, permutations, and equivalents which fall within the scope of this invention. It should also be noted that there are many alternative ways of implementing the methods and compositions of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations and equivalents as fall within the true spirit and scope of the present invention.