Audio decoder, method of providing a decoded audio signal, and computer program
By introducing stream identifier information into the audio decoder, the problem of pseudo-sound in audio stream conversion is solved, achieving seamless conversion and low-overhead audio stream switching.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
- Filing Date
- 2018-01-10
- Publication Date
- 2026-05-12
AI Technical Summary
In adaptive streaming, audio decoders cannot effectively identify the transitions between different audio streams, resulting in auditory artifacts such as clicking sounds or sudden noises. Existing solutions such as MPEG-H 3D audio and MPEG-4 HE-AAC have problems with high overhead or affecting audio quality.
By introducing stream identifier information into the audio decoder, the decoder is configured to identify differences in the configuration structure, allowing seamless conversion between different audio streams and avoiding re-initialization and additional signaling overhead.
It achieves seamless switching between different audio streams, avoids the generation of pseudo-sound, and reduces signaling overhead and impact on audio quality.
Smart Images

Figure CN116631417B_ABST
Abstract
Description
[0001] This application is a divisional application of the application filed on January 10, 2018, with international application number PCT / EP2018 / 050575, Chinese application number "201880017357.7", and entitled "Audio Decoder, Audio Encoder, Method for Providing Decoded Audio Signal, Method for Providing Encoded Audio Signal, Audio Stream Using Stream Identifier, Audio Stream Provider and Computer Program". Technical Field
[0002] Embodiments of the present invention relate to an audio decoder that provides a decoded audio signal representation based on an encoded audio signal representation.
[0003] Other embodiments of the invention relate to an audio encoder that provides an encoded representation of an audio signal.
[0004] Other embodiments of the present invention relate to a method for providing a decoded audio signal representation.
[0005] Other embodiments of the present invention relate to a method for providing an encoded audio signal representation.
[0006] Other embodiments of the invention relate to audio streams.
[0007] Other embodiments of the invention relate to audio streaming providers.
[0008] Other embodiments of the invention relate to a computer program that performs one of these methods. Background Technology
[0009] The problems behind various aspects of the present invention and possible use cases according to embodiments of the present invention will be described below.
[0010] There are situations where conversions exist between different audio streams or between different encoded audio frame sequences. For example, different audio frame sequences may include different audio content, and conversions should be performed between these audio contents.
[0011] For example, when using MPEG-D USAC (ISO / IEC 23003-3 + Amd.1 + Amd.2 + Amd.3) in adaptive streaming use cases, it is possible for two streams within a so-called adaptive set (e.g., a group in which a user can switch between two or more streams) to have completely identical configuration structures (even if their bit rates differ). This can happen, for example, if the encoder simply chooses to operate using the exact same encoding tools set for both bit rates.
[0012] For example, an audio encoder can use the same basic encoding settings (which are also signaled to the audio decoder), but can still provide different representations of audio values. For instance, when a lower bit rate is desired, the audio encoder can use coarser spectral value quantization, resulting in a smaller bit requirement, even if the basic encoder or decoder settings remain unchanged.
[0013] However, this (for example, the occurrence of two streams within an adaptive set having completely identical configuration structures even if their bit rates are different) is not a problem.
[0014] However, it has been found that in adaptive streaming use cases, the decoder should know whether the subsequently received access unit (or “frame”) originates from the same stream or whether a stream change has occurred.
[0015] It has been found that if a change in the stream has been detected, the audio decoder will, under certain circumstances, run a specified sequence of operation steps to ensure the following steps:
[0016] • Properly shutting down a decoder instance and feeding the temporarily internally stored portion of the decoded signal to the decoder output is a process called "refreshing".
[0017] • The decoder will re-instantiate and reconfigure itself using the configuration information associated with the changed stream.
[0018] • The decoder "pre-rolls" embedded access units, which are carried in the Immediate Play Frame (IPF). This pre-rolling of the access units puts the decoder in a fully initialized state, ensuring that the output of the first frame is a fully compatible decoded audio signal.
[0019] • Optionally, for example, depending on the corresponding bitstream signaling element, the audio output from the decoder refresh process and the output from the first access unit of the decoder after decoder reconfiguration fade in and out over a very short period of time.
[0020] For example, all the steps described above can be run to achieve the single goal of obtaining a “seamless” conversion from decoded audio from one stream to decoded audio from another. “Seamless” means that the streaming conversion itself has no audible artifacts or glitches. In fact, the streaming conversion may be perceptibly obvious because—for example—there are changes in overall encoding quality, audio bandwidth, or timbre. However, the actual point in time (the moment of conversion) itself does not create an auditory impression. In other words, there is no “click” or “noise burst” or similar unsettling sound at the point of conversion.
[0021] It has been found that information about whether a stream change has occurred can be obtained by analyzing the configuration structure embedded in the immediate playback frame and comparing it with the configuration of the currently decoded stream. For example, an audio decoder can assume a stream change if and only if the received configuration differs from the current configuration.
[0022] For example, if the decoder receives an immediately playable frame (IPF) of a stream with a varying bit rate, the decoder detects the presence of an audio pre-roll extension payload, extracts the configuration structure, and compares the new configuration with the current configuration. For further details, see also ISO / IEC 23003-3:2012 / Amd.3, subclause “Bitrate Adaptation”.
[0023] However, it has been found that if the current configuration structure and the new configuration structure are the same, the decoder will not be able to recognize that it is receiving access units from a different stream than before, and therefore will neither reconfigure the decoder nor decode the audio pre-roll residing in the extended payload of the IPF.
[0024] Instead, the decoder will attempt to continue decoding as if it had received a new access unit from a previously active stream. This (for example, in the absence of the conventional use or evaluation of streamID) could lead to situations where the window boundaries and the encoding mode of the last decoded frame do not correspond to the new frames in the new stream, which in turn can result in auditory artifacts such as clicks or bursts of noise. This would defeat the primary purpose of IPF and the adaptive audio streaming concept, which is based on the idea of seamless transitions between streams.
[0025] The following text will describe some traditional methods.
[0026] It should be noted that there is no known solution for the Unified Speech and Audio Coding (USAC).
[0027] In MPEG-H 3D audio (ISO / IEC 23008-3 + all modifications), this problem can be solved by sending audio data via a packetized stream format called MPEG-H Audio Stream (“MHAS”). MHAS packets contain grouping tags that can be differentiated between streams, thus allowing for configuration differentiation. However, no MHAS format is specified for MPEG-D USAC.
[0028] In MPEG-4 HE-AAC (ISO / IEC 14496-3 + all modifications), one workaround requires the encoder to ensure that all streams have the same window shape and window sequence at potential transition points (so-called stream access points (SAPs)) as well as other constraints imposed by the signal processing tools employed. This negatively impacts the final audio quality. The IPF mentioned above was designed entirely to relieve all these constraints of the new codec.
[0029] In summary, there is a need for a concept that allows switching between different audio streams, and that offers an improved compromise between open volume and ease of implementation. Summary of the Invention
[0030] An audio decoder is created according to embodiments of the present invention for providing a decoded audio signal representation based on an encoded audio signal representation. The audio decoder is configured to adjust decoding parameters according to configuration information. The audio decoder is configured to decode one or more audio frames using the current configuration (e.g., using currently active configuration information). Furthermore, the audio decoder is configured to compare configuration information in a configuration structure associated with the one or more frames to be decoded with current configuration information, and if the configuration information in the configuration structure associated with the one or more frames to be decoded, or a relevant portion of the configuration information in the configuration structure associated with the one or more frames to be decoded (e.g., up to and including the stream identifier portion) differs from the current configuration information, a conversion is performed to use the configuration information in the configuration structure associated with the one or more frames to be decoded as the new configuration information for decoding. The audio decoder is configured to consider stream identifier information included in the configuration structure when comparing the configuration information, such that the difference between the stream identifier previously obtained by the audio decoder and the stream identifier represented by the stream identifier information in the configuration structure associated with the one or more frames to be decoded results in the conversion.
[0031] This embodiment of the invention is based on the idea that even when the actual decoding configuration (e.g., described by the remaining configuration information in the configuration structure) is the same for both streams, the presence and evaluation of stream identifier information included in the configuration structure allows for differentiation of different streams at the audio decoder side, and thus also allows for the execution of conversions. Therefore, the stream identifier can be used as a criterion for distinguishing different streams that can be converted between them. Since the stream identifier information is included in the configuration structure (e.g., along with other configuration information that adjusts the decoding parameters of the audio decoder), it is not necessary to evaluate any information from different protocol layers when deciding whether a conversion should be performed. For example, the stream identifier information is included in a sub-data structure of the data structure defining the decoding parameters (“configuration structure”), so that it is not necessary to forward any information from the packet level to the actual audio decoder. By including the stream identifier information in the configuration structure, it allows the audio decoder to recognize the conversion from the first stream to the second stream without affecting the decoding parameters when decoding consecutive portions of a single stream. Even when the same decoding parameters are used in different streams, the switching between different streams can be recognized at the audio decoder side without needing to access information from different protocol levels. Moreover, it is not necessary to use the same decoding parameters in different streams at locations where switching between different streams is allowed.
[0032] In summary, the concepts defined by the embodiments of this application allow for the identification of switching between different streams with moderate implementation complexity (e.g., without extracting dedicated signaling information from different protocol levels and forwarding it to the audio decoder), while avoiding the need to enforce specific encoding / decoding settings (e.g., window selection) at the transition point. Therefore, excessive overhead and degradation of audio quality can also be avoided.
[0033] In a preferred embodiment, the audio decoder is configured to check whether the configuration structure includes stream identifier information, and if so, selectively consider the stream identifier information in the comparison. Therefore, it is not necessary to include stream identifier information in every configuration structure. Instead, the stream identifier can be omitted from the configuration structure of audio frames where there is no possibility of switching between different streams. This saves bits and avoids evaluating the stream identifier information at points where switching between different streams is not permitted.
[0034] In a preferred embodiment, the audio decoder is configured to check whether the configuration structure includes a configuration extension structure and whether the configuration extension structure includes a stream identifier. If the stream identifier information is included in the configuration extension structure, the audio decoder can be configured to selectively consider the stream identifier information in the comparison.
[0035] Therefore, the stream identifier can be placed within a configuration extension structure, the presence of which is optional; even if the configuration extension structure exists, the presence of the stream identifier information can be considered optional. This allows the audio decoder to flexibly identify the presence of stream identifier information, providing the audio encoder with the possibility of avoiding the inclusion of unnecessary information. By placing the stream identifier within a data structure that can be activated and deactivated (e.g., via a flag in a fixed (always-present) part of the configuration structure), the stream identifier information can be precisely placed where needed, saving bits if it is not required. This is advantageous because stream identifier information does not necessarily need to be included for each frame with a configuration structure, as switching between streams is typically only possible at a given time.
[0036] In a preferred embodiment, the audio decoder is configured to accept a variable ordering of configuration information items in a configuration extension structure. For example, the audio decoder is configured to consider configuration information items (e.g., configuration extensions) placed before the stream identifier information (e.g., the stream identifier information) in the configuration extension structure when comparing configuration information in a configuration structure associated with one or more frames to be decoded with the current configuration information. Furthermore, the audio decoder can be configured to disregard configuration information items (e.g., configuration extensions) placed after the stream identifier information in the configuration extension structure (e.g., "UsacConfigExtension()") when comparing configuration information in a configuration structure associated with one or more frames to be decoded with the current configuration information.
[0037] By using this concept, transitions between different streams can be detected in a very flexible way. For example, all such configuration information items indicating "significant" changes in an audio stream can be placed before the stream identifier information in the configuration extension structure, so that changes to these parameters trigger a transition from one stream to another. On the other hand, when comparing information in the configuration structure associated with one or more frames to be decoded with the current configuration information, "minor" configuration parameters of the audio decoder can be changed without triggering a "transition," i.e., switching from one stream to another, by ignoring some configuration information items, which can be associated with reinitialization. In other words, by evaluating only the configuration information items placed before the stream identifier information in the configuration extension structure and the stream identifier information itself, any changes to "minor" decoding parameters can be avoided from triggering a "transition" during the comparison. Instead, the audio encoder can place such "minor" configuration information items (which relate to minor decoding parameters) after the stream identifier information in the configuration extension structure. The audio encoder can then change these "minor" configuration information items within the stream without triggering a "transition" (or reinitialization) for each change. On the other hand, configuration information items that remain unchanged throughout the stream can be placed before the stream identifier information in the configuration extension structure, and changing such "highly relevant" configuration information items (e.g., those indicating "significant" changes in the audio stream) will result in a "transition" (and typically during the audio decoder's reinitialization). Since the audio decoder can also accept variable ordering of configuration information items in the configuration extension structure, the audio encoder can determine, based on signal characteristics or other criteria, which changes to configuration information items should trigger a "transition" or audio decoder reinitialization, and which configuration information items within the stream can be changed without triggering a "transition" or audio decoder reinitialization.
[0038] In a preferred embodiment, the audio decoder is configured to identify one or more configuration information items in a configuration extension structure based on one or more configuration extension type identifiers preceding the corresponding configuration information item. By using such configuration extension type identifiers, variable ordering of configuration information items can be achieved.
[0039] In a preferred embodiment, the configuration extension structure is a sub-data structure of the configuration structure, wherein the presence of the configuration extension structure is indicated by the bits of the configuration structure evaluated by the audio decoder. Stream identifier information is a sub-data item of the configuration extension structure, wherein the presence of the stream identifier information is indicated by a configuration extension type identifier associated with the stream identifier information evaluated by the audio decoder. Therefore, it is flexible to determine when stream identifier information should be added to the audio stream, and the audio decoder can easily determine when such stream identifier information is available. Thus, it is sufficient to include the stream identifier information of the audio stream (which requires multiple bits) at points where switching between different streams is possible. Immediately Played Frames (IPFs) within a continuous audio stream do not need to carry stream identifier information at locations where switching between different streams is not possible, thus saving bitrate.
[0040] In a preferred embodiment, the audio decoder is configured to acquire and process audio frame representations (e.g., immediately playable frames, IPFs) that include random access information (e.g., “audio pre-roll extended payload,” also referred to as “AudioPreRoll()”). The random access information includes a configuration structure (e.g., referred to as “Config()”) and information for bringing the processing chain of the audio decoder to a desired state (e.g., denoted by “AccessUnit()”). The audio decoder is configured to: if the audio decoder finds that the configuration information in the configuration structure (e.g., “Config()”) of the random access information (e.g., immediately playable frames, IPFs), or a relevant portion of the configuration information in the configuration structure of the random access information, differs from the current configuration information, then after initializing the audio decoder using the configuration structure of the random access information and after adjusting the state of the audio decoder using the information for bringing the processing chain to a desired state, perform a fade-in / fade-out between the audio information represented by the (decoded) audio frames processed before reaching the audio frame representation including the random access information and the audio information obtained based on the audio frame representation including the random access information. For example, if the value “numPreRollFrames” is zero, the decoding of the pre-rollable frames can be omitted.
[0041] In other words, by evaluating configuration information or relevant portions of the configuration structure (e.g., up to and including stream identifier information), the audio decoder can identify whether a transition exists between different streams, and in the event of a transition, the audio decoder can utilize random access information. Random access information helps to keep the audio decoder's processing chain in the appropriate state (typically, in the absence of a transition, achieved by one or more previous frames), thereby avoiding artifacts at the transition point. In summary, this concept allows for artifact-free switching between different streams, where the audio decoder does not require any information from different protocol levels other than the frame representation sequence.
[0042] In a preferred embodiment, the audio decoder is configured to: if the audio decoder has already decoded an audio frame immediately preceding the audio frame represented by an audio frame representation including random access information (e.g., immediately playable frame, IPF), and if the audio decoder finds that a relevant portion of the configuration information in the configuration structure of the random access information is the same as the current configuration information, then continue decoding without performing the audio decoder initialization and without using information that would otherwise put the state of the audio decoder's processing chain in the desired state (e.g., pre-roll extended playback). Therefore, if the audio decoder identifies consecutive playback of the same stream without conversion between different streams by comparing a relevant portion of the configuration information in the configuration structure with the current configuration information, it avoids the overhead (e.g., processing overhead or computational overhead) that would otherwise be caused by performing audio decoder initialization. Thus, high efficiency is achieved, and audio decoder initialization is performed only when necessary.
[0043] In a preferred embodiment, the audio decoder is configured to: if the audio decoder has not yet decoded an audio frame immediately preceding the audio frame represented by the audio frame representation including random access information, perform initialization of the audio decoder using the configuration structure of the random access information, and adjust the state of the audio decoder using information that puts the processing chain in a desired state. In other words, initialization is also performed if there is actual "random access" (where the audio decoder knows that the previous audio frame has not yet been decoded). Thus, random access information is used in the case of true "random access" (i.e., when jumping to a frame) and when switching between different streams (where "true" random access can be signaled to the audio decoder, and where switching between different streams can be identified by the audio decoder solely by evaluating the stream identifier information).
[0044] It should be noted that the audio decoders discussed herein may be optionally supplemented by any features, functions, and details described herein, individually or in combination.
[0045] An audio encoder for providing an encoded audio signal representation is created according to embodiments of the present invention. The audio encoder is configured to encode overlapping or non-overlapping frames of an audio signal using encoding parameters to obtain an encoded audio signal representation. The audio encoder is configured to provide a configuration structure describing the encoding parameters (or equivalently, the decoding parameters to be used by the audio decoder). The configuration structure also includes a stream identifier.
[0046] Therefore, the audio encoder provides an audio signal representation that can be well used by the aforementioned audio decoder. For example, the audio encoder can include different stream identifiers in the configuration structure of different streams. Thus, the stream identifier can be information that identifies the stream rather than describing the decoder configuration (or decoding parameters) to be used by the audio decoder. Therefore, the encoded audio signal representation includes the stream identifier, and different streams can be identified based on the encoded audio signal information itself, without requiring any information from different protocol levels. For example, since the stream identifier information is a necessary part of the audio signal representation, or a necessary part of the configuration structure included within the audio signal representation, it is not necessary to use information provided at the packet level. Therefore, as discussed herein, the audio decoder can identify the switching between different streams even if the actual configuration parameters of the decoder remain unchanged.
[0047] In a preferred embodiment, the audio encoder is configured to include a stream identifier in a configuration extension structure of the configuration structure. This configuration extension structure, which includes the stream identifier, can be enabled and disabled by the audio encoder. Therefore, the audio encoder can flexibly decide whether or not to include stream identifier information. For example, for audio frames where the audio encoder knows there will be no stream switching, including the stream identifier information can be selectively omitted.
[0048] In a preferred embodiment, the audio encoder is configured to include a configuration extension type identifier that specifies a stream identifier in the configuration extension structure to signal the presence of a stream identifier in the configuration extension structure. Therefore, if other configuration extension information exists in the configuration extension structure, the stream identifier information can even be omitted. In other words, not every configuration extension structure must include a stream identifier, which helps to save bits.
[0049] In a preferred embodiment, the audio encoder is configured to provide at least one configuration structure including the stream identifier and at least one configuration structure excluding the stream identifier. Therefore, the stream identifier is only included in the configuration structure if the audio encoder recognizes that it is necessary. For example, the audio encoder only needs to include the stream identifier in the configuration structure of frames where switching between streams is possible. By doing so, the bitrate can be kept relatively low.
[0050] In a preferred embodiment, the audio encoder is configured to switch between providing first coded audio information represented by a first audio frame sequence and second coded audio information represented by a second audio frame sequence; wherein correctly presenting the first audio frame of the second audio frame sequence after presenting the last frame of the first audio frame sequence requires reinitializing the audio decoder. In this case, the audio encoder is configured to include a configuration structure in the audio frame representation representing the first frame of the second audio frame sequence, the configuration structure including a stream identifier associated with the second audio frame sequence. The stream identifier associated with the second audio frame sequence is selected to be different from the stream identifier associated with the first frame sequence. Therefore, the audio encoder can provide signaling within the configuration structure that allows the audio decoder to distinguish between different streams and identify when reinitialization (also known as "conversion") should be performed.
[0051] In a preferred embodiment, the audio encoder provides no other signaling information, other than a stream identifier, indicating a switch from the first audio frame sequence to the second audio frame sequence. Therefore, the bit rate can be kept relatively low. Specifically, signaling other than the encoded audio information can be avoided from being included at different protocol levels. Furthermore, the audio encoder does not know in advance when the switch from the first audio frame sequence to the second audio frame sequence will actually occur. For example, the audio decoder may first request audio frames from the first audio frame sequence, and when the audio decoder recognizes a need (e.g., when the available bit rate increases or decreases), the audio decoder (or any other control device controlling the provision of audio frames) can decide that the audio frames from the second stream should now be processed by the audio decoder. However, in some cases, the audio decoder may not know when (or exactly when) the switch occurs between providing audio frames from the first sequence and providing audio frames from the second sequence, and can only identify which audio frame sequence the currently received audio frame originates from by evaluating the stream identifier included in the configuration structure.
[0052] In a preferred embodiment, the audio encoder is configured to provide a first audio frame sequence (e.g., a first stream) and a second audio frame sequence (e.g., a second stream) using different bitrates (where the first and second streams can represent the same audio content). Furthermore, the audio encoder can be configured to signal the audio decoder with the same decoder configuration information for decoding the first and second audio frame sequences, in addition to different bitstream identifiers. In other words, the audio encoder can signal the audio decoder to use the same decoder parameters, but the first and second streams can still include different bitrates. For example, this can be caused by using different quantization resolutions or different psychoacoustic models when providing the first and second audio streams. However, these different quantization resolutions or different psychoacoustic models do not affect the decoding parameters that the audio decoder will use, but only the actual bitrate. Therefore, different bitstream identifiers may be the only possibility for the audio decoder to distinguish whether the audio frames to be decoded come from the first or second stream, and the evaluation of the bitstream identifiers also allows the audio decoder to identify when a conversion (or reinitialization) should be performed.
[0053] Therefore, the audio encoder can operate in environments where the available bit rate may vary, and the signaling overhead can be kept relatively small.
[0054] Furthermore, it should be noted that the audio encoder discussed herein may optionally be supplemented by any features, functions, and details described herein.
[0055] Another embodiment of the invention relates to a method for providing a decoded audio signal representation based on an encoded audio signal representation. The method includes: adjusting decoding parameters according to configuration information, and the method further includes: decoding one or more audio frames using current configuration information (e.g., currently active configuration information). Furthermore, the method includes: comparing configuration information in a configuration structure associated with the one or more frames to be decoded with the current configuration information, and the method includes: if the configuration information in the configuration structure associated with the one or more frames to be decoded, or a relevant portion of the configuration information in the configuration structure associated with the one or more frames to be decoded (e.g., up to and including the stream identifier) differs from the current configuration information, then a conversion (e.g., including reinitialization of decoding) is performed to decode using the configuration information in the configuration structure associated with the one or more frames to be decoded as the new configuration. The method further includes: considering stream identifier information included in the configuration structure when comparing the configuration information, such that a difference between the stream identifier previously obtained by the audio decoder and the stream identifier represented by the stream identifier information in the configuration structure associated with the one or more frames to be decoded results in a conversion. This method is based on the same considerations as the audio decoder described above.
[0056] This method can be supplemented individually or in combination by any of the features and functions and details described herein.
[0057] According to another embodiment of the present invention, a method for providing an encoded audio signal representation is created. The method includes: encoding overlapping or non-overlapping frames of an audio signal using encoding parameters to obtain an encoded audio signal representation. The method further includes: providing a configuration structure describing the encoding parameters (or equivalently, decoding parameters to be used by an audio decoder), wherein the configuration structure includes a stream identifier. This method is based on the same considerations as the audio encoder described above.
[0058] Furthermore, it should be noted that the methods described herein can be supplemented by any features and functions described above with respect to the corresponding audio decoders and audio encoders. Moreover, these methods can be supplemented individually or in combination by any features, functions, and details described herein.
[0059] An audio stream is created according to embodiments of the present invention. The audio stream includes an encoded representation of overlapping or non-overlapping frames of an audio signal. The audio stream also includes a configuration structure describing encoding parameters (or equivalently, decoding parameters to be used by the audio decoder). The configuration structure includes stream identifier information (e.g., in the form of an integer value) representing a stream identifier.
[0060] Audio streams are based on the above considerations. In particular, the stream identifier included in the configuration structure of the audio stream (which also describes the encoding parameters (or equivalently, the decoding parameters that the audio decoder will use)) allows the audio decoder to distinguish between different streams, even if they use the same encoding parameters (or decoding parameters).
[0061] In a preferred embodiment, stream identifier information is included in a configuration extension structure. In this case, the configuration extension structure is preferably a sub-data structure of the configuration structure, wherein the presence of the configuration extension structure is indicated by bits in the configuration structure. Furthermore, the stream identifier information is a sub-data item of the configuration extension structure, wherein the presence of the stream identifier information is indicated by a configuration extension type identifier associated with the stream identifier information. This use of audio streaming allows for the flexible inclusion of stream identifier information when needed, and the omission of including stream identifier information when not needed (e.g., for frames where switching between multiple streams is not permitted). Therefore, bitrate can be saved.
[0062] In a preferred embodiment, the stream identifier is embedded in a sub-data structure representing the audio frame (and can be extracted from this sub-data structure by the audio decoder). By embedding the stream identifier in a sub-data structure representing the audio frame, the audio decoder avoids having to use information from higher protocol levels. Instead, to decode the audio frame, the audio decoder only needs the representation of the audio frame and can determine whether there is a switch between different streams.
[0063] In a preferred embodiment, the stream identifier is embedded only in a sub-data structure representing the audio frame that includes the configuration structure (and can be extracted by the audio decoder from the sub-data structure representing the audio frame that includes the configuration structure). This idea is based on the finding that switching between streams (without noticeable artifacts) can only be performed at frames that include the configuration structure. Therefore, it has been found that it is sufficient to embed the stream identifier in a sub-data structure representing the audio frame that includes the configuration structure, while excluding the stream identifier from the representation of audio frames that do not include the configuration structure.
[0064] The audio streams described herein can be supplemented individually or in combination by any of the features, functions, and details discussed herein. In particular, these features described for audio encoders, audio decoders, and stream providers can also be applied to audio streams.
[0065] An audio stream provider is created according to embodiments of the present invention for providing a representation of an encoded audio signal. The audio stream provider is configured to provide encoded versions of temporally overlapping or non-overlapping frames of an audio signal encoded using encoding parameters, as part of the encoded audio signal representation. The audio stream provider is configured to provide a configuration structure describing the encoding parameters (or, equivalently, the decoding parameters to be used by the audio decoder), as part of the encoded audio signal representation, wherein the configuration structure includes a stream identifier. This audio stream provider is based on the same considerations as the audio encoder and audio decoder described above.
[0066] In a preferred embodiment, the audio stream provider is configured to provide an encoded audio signal representation such that a stream identifier is included in a configuration extension structure of a configuration structure, wherein the configuration extension structure including the stream identifier can be enabled and disabled by one or more bits in the configuration structure. This embodiment is based on the same ideas discussed above regarding audio encoders and audio decoders. In other words, the audio stream provider provides an audio stream corresponding to the audio stream provided by the audio encoder (even though the audio stream provider can be configured to switch between the provision of different streams, such as those provided by multiple audio encoders operating in parallel, or from a storage medium).
[0067] In a preferred embodiment, the audio stream provider is configured to provide an encoded audio signal representation such that the configuration extension structure includes a configuration extension type identifier specifying a stream identifier, to signal the presence of a stream identifier in the configuration extension structure. This embodiment is based on the same considerations mentioned above regarding audio encoders and audio streams.
[0068] In a preferred embodiment, the audio stream provider is configured to provide an encoded audio signal representation such that the encoded audio signal representation includes at least one configuration structure containing the stream identifier and at least one configuration structure not containing the stream identifier. As mentioned above, the stream identifier need not be included in every configuration structure. Instead, there can be flexible adjustments to the configuration structures that should include the stream identifier. Typically, the stream identifier will be included in the configuration structure of audio frames for which a switch between streams exists (or is expected or permitted). In other words, switching between different streams that include the same configuration structure but differ only in the stream identifier will be performed by the stream provider only at frames where the stream identifier exists. Therefore, the audio decoder (receiving the encoded audio representation from the audio stream provider) has the possibility of recognizing a switch between different streams, even if the decoding parameters (signaled by the configuration structure) are substantially the same or even completely identical.
[0069] In a preferred embodiment, the audio stream provider is configured to switch between providing a first portion of encoded audio information (represented by a first audio frame sequence) and a second portion of encoded audio information (represented by a second audio frame sequence), wherein correctly presenting the first audio frame of the second audio frame sequence after the last frame of the first audio frame sequence requires reinitializing the audio decoder. The audio stream provider is configured to provide an encoded audio signal representation such that the audio frame representation representing the first frame of the second audio frame sequence includes a configuration structure comprising a stream identifier associated with the second audio frame sequence, wherein the stream identifier associated with the second audio frame sequence is different from the stream identifier associated with the first audio frame sequence. In other words, the audio stream provider switches between two audio streams (audio frame sequences) having associated different stream identifiers. Therefore, the audio decoder will typically know the stream identifier associated with the first audio frame sequence (e.g., by evaluating the configuration structure associated with the first audio frame sequence), and when the audio decoder receives the first frame of the second audio frame sequence, it will be able to evaluate the configuration structure including the stream identifier associated with the second audio frame sequence, and will be able to identify the switch from the first stream to the second stream by comparing the stream identifiers (which are different for different streams). Thus, the audio stream provider offers audio frames from the first stream, then switches to offering audio frames from the second stream, providing appropriate signaling information (i.e., the stream identifier) within the configuration structure of the first frame of the second audio stream offered after the switch. Therefore, no additional signaling is required to signal the switch between different audio streams.
[0070] In a preferred embodiment, the audio stream provider is configured to provide an encoded audio signal representation such that, apart from a stream identifier, the encoded audio signal representation does not provide any other signaling information indicating a switch from a first audio frame sequence to a second audio frame sequence. Therefore, significant bit rate savings can be achieved. Protocol complexity also remains low because it is not necessary to include any information at different protocol levels, and it is not necessary to extract such information from different protocol levels on the audio decoder side.
[0071] In a preferred embodiment, the audio stream provider is configured to provide encoded audio signal representations such that the first audio frame sequence (e.g., the first stream) and the second audio frame sequence (e.g., the second stream) are encoded using different bit rates. Furthermore, the audio stream provider is configured to provide encoded audio signal representations such that these representations signal the audio decoder with the same decoder configuration information (or decoder parameters) for decoding the first and second audio frame sequences, except for the different bitstream identifiers. Therefore, the audio stream provider provides very similar configuration information for different streams (the first and second streams), which may differ, for example, only in their bitstream identifiers. Using bitstream identifiers is particularly useful in this case because they allow for reliable differentiation of different bitstreams with minimal signaling overhead.
[0072] In a preferred embodiment, the audio stream provider is configured to switch between providing a first audio frame sequence and a second audio frame sequence to the audio decoder, wherein the first and second audio frame sequences are encoded using different bit rates. The audio stream provider is configured to selectively switch between providing the first audio frame sequence and providing the second audio frame sequence at audio frames whose audio frame representation (e.g., an immediately playable frame, IPF) includes random access information (e.g., the audio pre-roll extended payload "AudioPreRoll()"), while avoiding switching between sequences at audio frames that do not include random access information. The audio stream provider is configured to provide an encoded audio signal representation such that a stream identifier is included in the configuration structure of the audio frames provided when switching from the first audio frame sequence to the second audio frame sequence. For example, this configuration of the audio stream provider ensures that switching between providing frames of the first audio frame sequence and frames of the second audio frame sequence only occurs when the first frame of the second audio frame sequence includes a configuration structure with a stream identifier and random access information. Therefore, the audio decoder can detect the switching between different audio streams, and thus can identify which random access information should be evaluated (while random access information is typically not evaluated when there is no switching between different audio streams and when the audio decoder assumes a continuous sequence of audio frames from a single stream).
[0073] Therefore, this concept allows for the achievement of good audio quality without artifacts when switching between different audio streams.
[0074] In another embodiment, the audio stream provider is configured to obtain multiple parallel audio frame sequences encoded using different bit rates, and wherein the audio stream provider is configured to switch between providing frames from different parallel sequences to the audio decoder, wherein the audio stream provider is configured to signal to the audio decoder which sequence in the sequence is associated with one or more frame sequences using the stream identifier included in the configuration structure representing a first audio frame provided after the switch. Therefore, the audio decoder can identify the transition between different streams with minimal overhead without using information from other protocol layers.
[0075] It should be noted that the audio streaming providers discussed herein may be supplemented by any features, functions, and details described herein, individually or in combination.
[0076] According to another embodiment of the invention, a method for providing an encoded audio signal representation is created. The method includes providing encoded versions of overlapping or non-overlapping frames of an audio signal encoded using encoding parameters as part of the encoded audio signal representation. The method also includes providing a configuration structure describing the encoding parameters (or, equivalently, decoding parameters to be used by an audio decoder) as part of the encoded audio signal representation, wherein the configuration structure includes a stream identifier.
[0077] This method is based on the same considerations as those discussed above regarding stream providers. This method can be supplemented by any other features, functions, and details described in this article, such as those concerning stream providers, audio encoders, audio decoders, or audio streams.
[0078] A computer program for performing the methods described herein was created according to another embodiment of the present invention. Attached Figure Description
[0079] The embodiments of the present invention will be described below with reference to the accompanying figures, wherein:
[0080] Figure 1 A schematic block diagram of an audio decoder according to a (simple) embodiment of the present invention is shown;
[0081] Figure 2 shows a schematic block diagram of an audio decoder according to an embodiment of the present invention;
[0082] Figure 3 A schematic block diagram of an audio encoder according to a (simple) embodiment of the present invention is shown;
[0083] Figure 4 A schematic block diagram of an audio streaming provider according to a (simple) embodiment of the present invention is shown;
[0084] Figure 5 A schematic block diagram of an audio stream provider according to an embodiment of the present invention is shown;
[0085] Figure 6 A representation of an audio frame that allows random access and includes a configuration portion with a stream identifier in a configuration extension portion, according to an embodiment of the present invention, is shown.
[0086] Figure 7 A representation of an example audio stream according to an embodiment of the present invention is shown;
[0087] Figure 8 A representation of an example audio stream according to an embodiment of the present invention is shown;
[0088] Figure 9 A schematic representation of the possible decoder functions of the audio decoder as described herein is shown;
[0089] Figure 10a This document illustrates a representation of an example configuration structure used by the audio encoder and audio decoder described herein; and
[0090] Figure 10b A representation of an example configuration extension structure used by the audio encoder and audio decoder described herein is shown;
[0091] Figure 10c The example stream identifier bitstream element is shown; and
[0092] Figure 10d An example of the value of “usacConfigExtType” is shown, which can optionally replace Table 74 in the USAC standard;
[0093] Figure 11a A flowchart is shown illustrating a method for providing a decoded audio signal representation based on an encoded audio signal representation according to an embodiment of the present invention;
[0094] Figure 11b A flowchart illustrating a method for providing an encoded audio signal representation according to an embodiment of the present invention is shown; and
[0095] Figure 11c A flowchart of a method for providing an encoded audio signal representation according to an embodiment of the present invention is shown. Detailed Implementation
[0096] 1. According to Figure 1 audio decoder
[0097] Figure 1 A schematic block diagram of an audio decoder according to a (simple) embodiment of the present invention is shown.
[0098] Audio decoder 100 receives encoded audio signal representation 110 and provides decoded audio signal representation 112 based on the encoded audio signal representation 110. For example, the encoded audio signal representation 110 may be an audio stream comprising a sequence of Unified Speech and Audio Coding (USAC) frames. However, the encoded audio signal representation may take different forms and may, for example, be an audio representation defined by the bitstream syntax of any known audio coding standard. The encoded audio signal representation may, for example, include configuration information 110a, which may be included in a configuration structure and may include, for example, a stream identifier. The stream identifier may be included, for example, in the configuration information or configuration structure. The configuration information or configuration structure may, for example, be associated with one or more frames to be decoded and may, for example, describe the decoding parameters to be used by the audio decoder.
[0099] Here, decoder 100 may include, for example, decoder core 130, which can be configured to decode one or more audio frames using current configuration information (wherein, the current configuration information may define decoding parameters, for example). The audio decoder is also configured to adjust the decoding parameters according to configuration information 110a.
[0100] For example, the audio decoder is configured to compare configuration information in a configuration structure associated with one or more frames to be decoded with current configuration information (e.g., configuration information used to decode one or more previously decoded frames). Furthermore, the audio decoder can be configured to perform a conversion to use the configuration information in the configuration structure associated with the one or more frames to be decoded as the new configuration information to perform decoding if the configuration information in the configuration structure associated with the one or more frames to be decoded differs from the current configuration information, or if a relevant portion of the configuration information in the configuration structure associated with the one or more frames to be decoded differs from the current configuration information. When performing this "conversion," the audio decoder can, for example, reinitialize the decoder core 130 using random access information intended to describe the state of the decoder core that should be used to correctly decode the audio frame (the first audio frame) after the "conversion."
[0101] Specifically, the audio decoder is configured to consider the stream identifier included in the configuration structure (i.e., within the configuration information) when comparing configuration information (i.e., when comparing the configuration information in the configuration structure associated with one or more frames to be decoded with the current configuration information), such that the difference between the stream identifier previously obtained by the audio decoder and the stream identifier represented by the stream identifier information in the configuration structure associated with one or more frames to be decoded causes the conversion to be performed.
[0102] In other words, the audio decoder may, for example, include a memory for the current configuration (or for current configuration information), which can be represented by 140. The audio decoder 100 may also include a comparator (or any other means for performing a comparison) 150, which can compare at least a relevant portion of the current configuration information (including the stream identifier) with a corresponding portion of the configuration information associated with the next (audio) frame to be decoded (including the stream identifier). For example, the relevant portion may be a portion up to and including the stream identifier, wherein in some embodiments, configuration information following the stream identifier in the bitstream representing the configuration information may be omitted.
[0103] If the comparison, which can be performed by comparator 150, indicates a difference between the current configuration information (or a portion thereof) and the configuration information associated with the next (audio) frame to be decoded (or a portion thereof), comparator 150 can recognize that a "conversion" should be performed.
[0104] The conversion may, for example, involve reinitializing the decoder core, even if the decoding parameters described by the configuration information associated with the next (audio) frame to be decoded are the same as the decoder configuration (decoding parameters) described by the current configuration information (wherein the configuration information associated with the next audio frame to be decoded differs from the current configuration information only in the stream identifier). On the other hand, if the configuration information associated with the next audio frame to be decoded differs more significantly from the current configuration information, for example by defining different decoding parameters, the audio decoder 100 will also naturally undergo a "conversion," which typically means reinitializing the decoder core 130 and changing the decoding parameters.
[0105] In short, according to Figure 1 The audio decoder 100, by evaluating the stream identifiers included in the configuration structure of the audio frame, is able to identify transitions between frames of different audio streams, even if the decoding parameters to be used by the decoder core 130 remain unchanged. This eliminates the need for dedicated signaling for transitions between audio streams and / or conditions for reinitializing the decoder core. Therefore, even if a transition from one stream to another exists, the decoder 100 can correctly decode the audio frame because the audio decoder can recognize such a transition and handle it appropriately, for example, by reinitializing the audio decoder and reconfiguring it (if necessary) using the new configuration parameters.
[0106] It should be noted that, according to Figure 1 The audio decoder 100 may optionally be supplemented by any features and functions and details described herein, individually or in combination.
[0107] 2. Based on the audio decoder in Figure 2
[0108] Figure 2 shows a schematic block diagram of an audio decoder 200 according to an embodiment of the present invention.
[0109] Audio decoder 200 is configured to receive an encoded audio signal representation 210 and provide a decoded audio signal representation 212 based on it. The encoded audio signal representation 210 may, for example, be an audio stream comprising a sequence of Unified Speech and Audio Coding (USAC) frames. However, audio frame sequences encoded using different audio coding concepts may also be input into audio decoder 200. For example, the audio decoder may receive a first-stream audio frame 220 and may subsequently receive a second-stream audio frame 222 (as the next audio frame). Audio frames 220 and 222 may be provided, for example, by an audio stream provider. For example, audio frame 220 may comprise an encoded representation 220a of the audio signal in the form of encoded spectral values and encoded scaling factors and / or in the form of encoded spectral values and encoded linear predictive coding coefficients (TXC) and / or in the form of encoded excitations and encoded linear predictive coding coefficients. Audio frame 222 may, for example, also include an encoded representation 222a of the audio signal, which may have the same form as the encoded representation 220a of the audio signal included in frame 220. However, frame 222 may also include random access information 222b, which may in turn include a configuration structure 222c and information 222d for setting the state of the processing chain (e.g., the decoder core) to a desired state. This information 222d may, for example, be represented as "AudioPreRoll".
[0110] The audio decoder 200 may, for example, extract a configuration structure 222c from the encoded audio signal representation 210. The configuration structure 222c may also be considered as configuration information. The configuration structure 222c may, for example, include information or flags (or bits) indicating whether the configuration extension structure 226 exists as part of the configuration structure. This information or flag or bit is represented by 224a.
[0111] Configuration extension structure 226 may include, for example, information, flags, bits, or identifiers indicating the presence of a stream identifier. The latter information, flag, bit, or identifier is denoted by 228. If information, flags, bits, or identifier 228 indicates the presence of a stream identifier, then a stream identifier 230 also exists, which is typically part of configuration extension structure 226.
[0112] In addition, the configuration extension structure may include information about the existence of other information (such as appropriate bits or flags or identifiers), and may also include other information (if applicable).
[0113] Audio decoder 100 may include, for example, memory 240, which may store current configuration information (e.g., configuration information used to decode previous frames and extracted from the configuration structure of previous or earlier frames). Audio decoder 200 also includes a comparator or comparison unit 250 configured to compare the configuration information associated with the audio frame to be decoded with the current configuration information stored in memory 240. For example, comparator or comparison unit 250 may be configured to compare the configuration information of the configuration structure 222c of the audio frame to be decoded with the current configuration information stored in memory, up to and including the stream identifier. In other words, any information item in configuration structure 222c up to and including the stream identifier may be compared with the current configuration information from memory 240 to determine whether the configuration information in frame 222 (up to and including the stream identifier) is the same as the current configuration information extracted from one of the previous audio frames. In this comparison, it will, of course, be checked whether configuration structure 222c actually includes configuration extension structure 226 and stream identifier 230. If configuration extension structure 226 does not exist, it will naturally not be considered in the comparison. Furthermore, if stream identifier 230 does not exist (e.g., because flag 228 indicates it is not included in frame 222), it will naturally not be evaluated in the comparison. Additionally, any configuration information in configuration structure 222c following stream identifier 230 will generally be ignored in the comparison, because such configuration information is assumed to be of secondary importance and changes to this configuration information (which follows stream identifier 230 in configuration structure 222c) do not represent a switch between different streams, but could even occur within a single stream.
[0114] In summary, the comparator 250 typically compares the configuration information of the audio frame to be decoded (up to and including the stream identifier) (but preferably omits the configuration arranged after the stream identifier in the configuration extension structure) with the current configuration information (obtained from the previously decoded audio frame). Therefore, if a difference is found in the configuration information during the comparison, the comparator 250 detects a new stream (or sub-stream). Thus, this comparison is used to control the transition from the first stream (or sub-stream) to the second stream (or sub-stream).
[0115] For example, implementing such a transition may include: refreshing the decoding of the last frame of the first stream, reconfiguring, initializing the state of the processing chain to the desired state, and, for example, performing a fade-in / fade-out between the temporal representations of the last frame of the first stream and the first frame of the second stream.
[0116] The audio decoder 200 also includes a decoder core 216, which can be configured to decode frames of a first stream (or a first frame sequence) using a first configuration (which may be described by current configuration information). Furthermore, the decoder core 216 can be configured to decode a second stream or a second frame sequence using a second configuration (e.g., using a new configuration described by configuration information of the audio frames to be decoded). For example, when comparison 250 discovers a significant difference between the configuration information of the audio frame 222 to be decoded and the current configuration information in memory 240, a re-initialization of the decoder core can be triggered.
[0117] For example, decoder reinitialization can be used between decoding the last frame of the first stream and the first frame of the second stream. Alternatively, if the decoder is implemented (at least partially) in software, a “new instance” of the decoder can be used. Furthermore, when switching from decoding the first stream to decoding the second stream (“conversion”), some auxiliary information can be used to bring the state of the processing chain of the decoder core to the desired state. For example, the context state of arithmetic decoding can be brought to the desired state, or the contents of the time-discrete filter can be brought to the desired state. This can be accomplished using specialized information, also known as “audio pre-roll” (APR). Bringing the processing chain to the desired state is important because the first frame of the second stream processed (decoded) by the audio decoder may not be the actual first frame of the second audio stream. Instead, the first frame of the second audio stream processed by the audio decoder may be a frame from the second audio stream when the audio stream provider switches from providing frames from the first audio stream to providing frames from the second audio stream. Therefore, the "first frame of the second audio stream" processed by the audio decoder can depend on the specific settings of the decoding chain's state, which is typically caused by the decoding of the previous frame of the second audio stream (the audio frame to be decoded is the first audio frame of the second audio stream processed by the audio decoder after conversion, before the audio frame to be decoded). Thus, when switching from decoding audio frames of the first audio stream to decoding audio frames of the second audio stream, the loss of the audio decoder's state settings is now achieved using "audio pre-roll" information (typically achieved by decoding the previous frame of the second audio stream), which defines the appropriate settings for the audio decoding state.
[0118] As can be seen from reference numeral 270, the decoding of the last frame of the first audio stream provides a decoded portion 272 (also referred to as the "useful portion"). Optionally, the decoding of the last frame of the first audio stream may provide an even longer decoded portion, which is partially discarded. Furthermore, when decoding the first frame of the second audio stream, a "pre-roll portion" 274 is provided, during which the decoder state is initialized to properly decode the first frame of the second audio stream. Additionally, the decoder core 260 also provides a useful portion 276 of the first frame of the second audio stream processed by the decoder 200, wherein the useful portion 276 of the first frame of the second audio stream overlaps temporally with the useful portion 272 of the last frame of the first stream. Therefore, a fade-in / fade-out may optionally be performed between the end of the useful portion 272 of the last frame of the first stream and the beginning of the useful portion of the first frame of the second stream. Thus, a decoded output signal 212 can be derived, wherein a pseudo-sound-free transition is performed between the last frame of the first stream (processed by the audio decoder 200) and the first frame of the second stream (processed by the audio decoder 200).
[0119] In summary, the audio decoder 200 can identify when an audio encoder or audio stream provider switches from providing audio frames of a first-level stream to providing audio frames of a second stream. For this purpose, the audio decoder evaluates configuration information (also referred to as configuration structure 222c) and performs a comparison with the current configuration information stored in memory 240. When it is identified that the audio frame to be decoded belongs to a different audio stream compared to previously decoded audio frames, a reinitialization of the decoder core is performed. This typically involves evaluating some "audio pre-roll" information to bring the state of the decoder core's processing chain to the desired state. Therefore, the audio decoder can appropriately handle situations where the audio encoder or audio stream provider provides audio frames from a new stream (the second audio stream) without further notification (besides providing configuration structure 222c, which includes the stream identifier 230).
[0120] It should be noted that the audio decoder 200 described herein may be supplemented individually or in combination by any of the features and functions and details described herein.
[0121] 3. According to Figure 3 audio encoder
[0122] Figure 3 A schematic block diagram of an audio encoder according to an embodiment of the present invention is shown.
[0123] Audio encoder 300 receives an input audio signal 310 (e.g., in time-domain representation) and provides an encoded audio signal representation 312 based on the input audio signal 310. Audio encoder 300 includes an encoder core 320 configured to encode overlapping or non-overlapping frames of the input audio signal 310 using encoding parameters to obtain the encoded audio signal representation. Audio encoder 300 may, for example, include time-domain to spectral-domain conversion and encoding of the spectral-domain representation. For example, processing may be performed frame-by-frame.
[0124] Furthermore, the audio encoder may include, for example, a configuration structure provider 330, which is configured to provide a configuration structure 332 describing encoding parameters (or equivalently, decoding parameters to be used by the audio decoder). Configuration structure 332 may correspond, for example, to configuration structure 222c. Specifically, configuration structure 332 may include encoding parameters (e.g., in encoded form) or equivalent decoding parameters (e.g., in encoded form), which describe the settings to be used by the decoder (or decoder core) when decoding the encoded audio signal representation 312. An example of configuration structure 332 will be described below. Additionally, configuration structure 332 includes a stream identifier, which may correspond to stream identifier 230. For example, the stream identifier may specify an audio stream (e.g., a continuous segment of audio content encoded sequentially using specific encoder settings). For example, the stream identifier provided by configuration structure provider 330 may be selected such that switching between audio streams should be possible without artifacts and without explicitly informing the audio decoder that all these audio streams should carry different stream identifiers regarding the switching. However, in some cases, it may be sufficient if these streams with the same associated encoding parameters (or equivalently, the decoding parameters that the audio decoder will use) include different stream identifiers. In other words, for these streams with the same encoding or decoding parameters, only different stream identifiers may be needed.
[0125] Therefore, encoder control 340 can, for example, control both encoder core 320 and configuration structure provider 330. Encoder control 340 can, for example, determine the encoding parameters to be used by encoder core 320 (e.g., which may at least partially correspond to the decoding parameters to be used by audio decoder), and can also notify configuration structure provider 330 of the encoding / decoding parameters to be included in configuration structure 332. Thus, encoded audio representation 312 includes encoded audio content as well as configuration structure 332. Thus, audio decoder (e.g., audio decoder 100 or audio decoder 200) can immediately identify when different audio streams encoded with different encoding parameters are provided (even if not all encoding parameters are reflected by the decoding parameters included in the configuration structure).
[0126] Regarding this issue, it should be noted that it is generally not necessary to signal all encoding parameters to the audio decoder. For example, only those encoding parameters that affect the decoding algorithm need to be signaled to the audio decoder. The encoding parameters sent to the audio decoder to determine its settings are also designated as decoding parameters. On the other hand, some important encoding parameters are not usually signaled to the audio decoder but are implicitly reflected in the encoded audio signal representation. For example, the desired bit rate can be an important encoding parameter and can determine how coarsely the audio encoder quantizes spectral values and / or how many spectral values the audio can quantize to small values or even zero. However, for the audio decoder, it is sufficient to see the encoded result, but it does not need to know the specific strategy by which the encoder maintains a sufficiently small bit rate. Moreover, different methods may exist on the encoder side to achieve a sufficiently small bit rate, depending on the type of audio content and also on the actual desired bit rate. These parameters can be considered “encoding parameters”, but they will not be reflected in the set of “decoding parameters” (and will not be included in the encoded representation of the audio frame), where the decoding parameters (and the encoding parameters incorporated into the encoded audio representation) typically only describe which settings the decoder should use, i.e., how it should process the encoded information provided by the encoder.
[0127] Therefore, it is possible that even if the encoder core uses different encoding parameters (e.g., in terms of the target bit rate, or in terms of parameters that affect the target bit rate, such as quantization resolution or the psychoacoustic model involved), the decoding parameters that can be included in configuration structure 332 can be the same.
[0128] In other words, an audio encoder can, for example, encode a given audio content using different encoding parameters, even if the decoding parameters (in order to process and decode the encoded representation of the audio content) used by the decoder may be the same.
[0129] In this case, the audio encoder can provide different stream identifiers within the configuration structure 332, so that the audio decoder can still distinguish these different encoded representations of the audio content.
[0130] In addition, it should be noted that, according to Figure 3 The audio encoder 300 can optionally be supplemented by any features, functions, and details described herein.
[0131] 4. According to Figure 4 audio streaming provider
[0132] Figure 4 A schematic block diagram of an audio stream provider according to an embodiment of the present invention is shown.
[0133] Audio stream provider 400 is configured to provide an encoded audio signal representation 412. The audio stream provider is configured to provide an encoded version 422 of (temporally) overlapping or non-overlapping frames of the audio signal encoded using encoding parameters, as part of the encoded audio signal representation 412.
[0134] In addition, the audio stream provider is configured to provide a configuration structure 424 that describes encoding parameters (or equivalently, decoding parameters to be used by the audio decoder) as part of the encoded audio signal representation, wherein the configuration structure 424 includes a stream identifier.
[0135] For example, an audio stream provider may include a provider (or provider) of encoded versions of overlapping or non-overlapping frames of an audio signal. Furthermore, the audio stream provider may also include a configuration structure provider or configuration structure provider 423 for providing configuration structure 424.
[0136] Therefore, the audio stream provider can provide portions of different audio streams as part of the encoded audio signal representation 412. The audio stream provider can, for example, store portions of different audio streams in memory or receive portions of different audio streams from the audio encoder. When providing a portion of the first audio stream and then switching to providing a portion of the second audio stream, the configuration structure 424 can be associated with a first audio frame of the second audio stream provided after the switch from the first audio stream to the second audio stream. The configuration structure 424 can, for example, be a portion of the corresponding audio stream received by the audio stream provider from the audio encoder or stored in the audio stream provider's memory. Therefore, the audio stream provider can, for example, store a continuous sequence of audio frames of the first audio stream and also store a continuous sequence of audio frames of the second audio stream. At least some frames of the first audio stream and some frames of the second audio stream can have associated corresponding configuration structures describing the decoding parameters to be used by the audio decoder. The configuration structure may also include a corresponding stream identifier, for example, an integer identifying the audio stream. For example, an audio stream provider can be configured to provide frames 1 to n-1 (where 1 to n-1 may be time indices) of a first audio stream and frames n to n+x (where n to n+x may be time indices) of a second audio stream as part of an encoded audio signal representation 412, wherein frames 1 to n-1 of the second audio stream may not be provided as part of the encoded audio signal representation 412 and are directed to a specific audio decoder or a specific group of audio decoders. For example, the first audio stream and the second audio stream may represent the same content encoded at different bit rates. Thus, in the encoded audio signal representation 412 directed to a specific device or group of devices, frames 1 to n-1 of the audio content are represented by the first audio stream encoded at the first bit rate, and frames n to n+x of the audio content are represented by frames n to n+x of the second audio stream encoded at a second bit rate different from the first bit rate.
[0137] For example, the audio stream provider 400 or some external control can ensure that the first frame n of the second audio stream included in the encoded audio signal representation 412 includes a configuration structure. In other words, for example, it can be ensured that the switching between the provision of audio frames from the first audio stream and the provision of audio frames from the second audio stream occurs only at “appropriate” frames that include the configuration structure and preferably also include some information for initializing the audio decoder (e.g., audio pre-roll).
[0138] Therefore, the audio stream provider can, for example, provide some portions of audio content encoded at a first bit rate (e.g., by providing frames 1 to n-1 of the first audio stream) and other portions of the audio stream encoded using a second bit rate (e.g., by providing audio frames n to n+x of the second audio stream). It is possible that the configuration structures for the first and second audio streams will be identical, except for the fact that the stream identifiers differ. This is because the decoding parameters reflected in configuration structure 424 do not necessarily need to reflect the different encoding parameters (or all encoding parameters) used to encode the first and second audio streams, making it essentially (only) a stream identifier, which is also included in the configuration structure and allows the audio decoder to determine whether a "conversion" should be performed (e.g., by reinitializing the decoder core).
[0139] In some embodiments, the decision of whether to provide audio frames from a first audio stream or a second audio stream can be made by the audio stream provider (e.g., based on knowledge of network conditions, such as network load or available network bitrate between the audio stream provider and the audio decoder). Alternatively, however, the audio decoder or an intermediate device (e.g., a network management device) can decide which audio stream should be used.
[0140] However, it should be noted that the audio decoder, or at least the audio decoder core, may not be explicitly notified by the audio stream provider and / or intermediate network that a change in the stream has occurred. In other words, the audio decoder does not receive any additional information other than signaling to the audio decoder configuration structure 424 that frames n to n+x are from the second audio stream and frames 1 to n-1 are from the first audio stream.
[0141] In summary, the audio stream provider can flexibly provide an encoded representation of audio content to the audio decoder in the form of an encoded audio signal representation. For example, the audio stream provider can flexibly switch between providing encoded frames from a first audio stream and providing encoded frames from a second audio stream, wherein the switching between audio streams is signaled by changing the stream identifier included in the configuration structure 424 (which is part of the encoded audio signal representation 412).
[0142] It should be noted here that the audio stream provider 400 may optionally be supplemented by any features, functions and details described herein.
[0143] In the following text, reference will be made to Figure 5 Examples describing the functionality of the audio stream provider 400, Figure 5 A schematic block diagram of an audio stream provider according to an embodiment of the present invention is shown.
[0144] Figure 5 The audio stream provider shown is represented by 500 and can correspond to, according to Figure 4 Audio stream provider 400. Audio stream provider 500 is configured to provide an encoded audio signal representation 512, which may correspond to an encoded audio signal representation 412.
[0145] Specifically, the audio stream provider can be configured to switch between providing frames from a first audio stream and from a second audio stream. For example, the audio stream provider 500 can be configured to switch between providing frames from the first audio stream and from the second audio stream only at so-called “standalone broadcast frames” (also known as “IPFs”).
[0146] The audio stream provider 500 can store in memory or receive from an audio encoder a first audio stream 520 and a second audio stream 530. For example, the first audio stream can be encoded at a first bit rate and can include a first stream identifier in a configuration structure (e.g., an immediate playback frame). The second audio stream 530 can be encoded at a second bit rate and can include a second stream identifier in a configuration structure (e.g., an immediate playback frame). However, the first and second audio streams can, for example, represent the same audio content. However, the first and second audio streams can also represent different audio content.
[0147] For example, the first audio stream 520 may include standalone broadcast frames at frames denoted as n1, n2, n3, and n4. For example, one or more “normal” audio frames that are not standalone broadcast frames may be arranged between two adjacent standalone broadcast frames. However, in some cases, standalone broadcast frames may also be adjacent.
[0148] Similarly, the second audio stream 530 also includes separate broadcast frames at frame positions n1, n2, n3, and n4.
[0149] It should be noted that the positions of the independent broadcast frames in the two streams 520 and 530 may optionally be the same or different. For simplicity, it is assumed here that the independent broadcast frames are in the same position in both streams.
[0150] However, in principle, it is important that the first frame after the switch is an independent playback frame. For example, when switching from providing audio frames from a first audio stream to providing audio frames from a second audio stream, the audio stream provider 500 should ensure that the first frame of the portion of frames provided from the second audio stream is an independent playback frame.
[0151] The example will be described with reference to the encoded audio signal representation shown at reference mark 550. It can be seen that the encoded audio signal representation 512 includes a portion 552 at its beginning, which includes one or more frames of the first audio stream. However, after providing an audio frame with index n1-1 of the first audio stream, the audio stream provider 500 may (based on internal decisions or some control information received externally) determine to switch to a second audio stream. Therefore, a portion 554 of the audio frames of the second audio stream is provided within the encoded audio signal representation 512. For example, frames with frame indices n1 to n2-1 from the second audio stream are provided in portion 554 within the encoded audio signal representation 512. It should be noted that the first frame of portion 554 is a standalone playback frame, located at frame index n1 within the second audio stream 530. However, when a frame with frame index n2-1 has already been provided within the encoded audio signal representation 512, the audio stream provider may again decide to return to providing audio frames from the first audio stream 520. Therefore, following (or immediately after) an audio frame with frame index n2-1 (based on the second audio stream 530), a frame with frame index n2 (obtained from the first audio stream 520) can be provided within the encoded audio signal representation. It should be noted that the frame with index n2 is also a separately broadcast frame. Thus, a portion from the first audio stream begins with the frame with index n2 and ends at frame index n4-1.
[0152] In summary, the encoded audio signal representation 512 is a cascade of portions of one or more frames, wherein some portions of the frames are taken from a first audio stream 520, and wherein some portions of the frames are taken from a second audio stream 530. The first frame of each portion is preferably an independently played frame, which is preferably ensured by the operation of the audio stream provider.
[0153] Such a standalone broadcast frame preferably includes a configuration structure with a stream identifier, wherein the stream identifier may be included, for example, in a configuration extension structure. For example, apart from the stream identifier (and possibly, apart from the configuration information following the stream identifier included in the configuration extension structure), the configuration information for the first and second streams may be the same.
[0154] For example, a standalone broadcast frame can correspond to frame 220, as explained above for audio decoder 200.
[0155] To further summarize, the audio stream provider 500 is able to access multiple audio streams (e.g., a first audio stream 520 and a second audio stream 530, and optionally other audio streams) and can select partial frames from these two or more audio streams to include in an encoded audio signal representation 512, which is forwarded to an audio decoder (e.g., via a communication network). When selecting partial frames to include in the encoded audio signal representation 512, the audio stream provider can ensure that the first frame of each partial is an independently playable frame that includes sufficient information for (artifact-free) presentation without requiring previous frames from any of the audio streams to be decoded. Furthermore, the audio stream provider provides the encoded audio signal representation in such a way that, depending on differences within the relevant sections of the configuration structure, the audio decoder receiving the encoded audio signal representation 512 can identify the switching between sections of audio frames from different streams. For some conversions, the configuration structure may differ with respect to decoder configuration parameters, but for one or more other conversions, the configuration structure may differ only in terms of the stream identifier, while other decoding configuration parameters may be the same.
[0156] Therefore, the audio decoder can recognize the switching between different audio streams and perform reinitialization ("conversion") when appropriate.
[0157] 5. According to Figure 6 audio frames
[0158] Figure 6 A representation of an audio frame that allows random access and includes a configuration section with a stream identifier in the configuration extension section is shown.
[0159] For example, Figure 6 An example of an audio frame that can take over the role of audio frame 222 described with reference to Figure 2 is shown. For example, the audio frame could be a "USAC frame". Figure 6 The audio frames can be considered as "stream access points" or "intermediate broadcast frames".
[0160] For example, frames can follow the syntax conventions of the Uniform Speech and Audio Coding Standard (which includes available modifications), but can also be adapted to the bitstream syntax of other or newer audio standards.
[0161] For example, USAC frame 600 may include a USAC-specific flag 610. Furthermore, the USAC frame may include an extension element represented as "USAC ExtElement". Extension element 620 may be an extension element containing configuration information and pre-roll data.
[0162] Optionally, a flag “USAC ExtElementPresent” may be present, indicating the presence of additional data. For example, in the case of an IPF (e.g., a flow access point), this flag is preferably 1. However, this flag can be considered optional.
[0163] Additionally, optionally, there may be a flag "USAC ExtElementUseDefaultLength", which can be used to encode whether the default length of the extended element should be used or whether the length of the extended element should be encoded. For example, in the case of IPF, it is preferred (but not required) that the value of this flag be zero.
[0164] In addition, there is extended element segment data, also referred to as “USACExtElementSegmentData”. This extended element segment data includes audio pre-roll information, also referred to as “AudioPreRoll()” in the USAC standard revision. Audio pre-roll optionally includes configuration length information “configLen” and configuration information “Config()”, where the configuration information can be the same as “USAC configuration information” (also referred to as “UsacConfig()”). Preferably, but not necessarily, “configLen” should have a value greater than zero if configuration information exists. For example, a zero value for “configLen” can indicate that configuration information does not exist. The configuration information can include some basic configuration information, such as information about the sampling frequency and the SBR frame length, as well as information about the channel configuration and several other (optional) decoder configuration items. Other decoder configuration items can include, for example, one or more of the configuration items described in the definition of the “UsacDecoderConfig()” syntax element in the USAC standard.
[0165] Furthermore, the configuration information includes configuration extension structures as sub-data structures. Configuration extension structures can, for example, follow the syntax of the element "UsacConfigExtension()". For instance, a configuration extension structure can include information about the number of configuration extensions, "numConfigExtensions". If a configuration extension of type ID_Config_Ext_Stream_ID exists (which is typically the case in embodiments according to the invention), the stream identifier is represented by the bitstream syntax element "streamId()", which can, for example, be represented by a 16-bit value.
[0166] In summary, the configuration structure in the USAC frame included in the extended elements includes some configuration information for setting decoder parameters, and also includes a stream identifier as a configuration extension, which can be represented as an integer (e.g., 16) bits.
[0167] The audio pre-scrolling information may optionally include additional information, such as a flag “applyCrossfade” indicating whether a fade-in / fade-out is applied (where, for example, a zero value may indicate that a fade-in / fade-out is not applied), information about the number of pre-scrolling frames, and information about the pre-scrolling frames, which may be represented as “auLen” and “AccessUnit()”.
[0168] USAC frames may also include additional extension elements, and typically include one or more of a single channel element, a channel pair element, or a low-frequency effect element.
[0169] In summary, a USAC frame (e.g., an audio frame 222 or a playback frame IPF in an immediate playback frame IPF) may, for example, include extended syntax elements, which include a configuration structure (e.g., 222c) and information about one or more pre-rolling frames. This information about the one or more pre-rolling frames can, for example, be used to position the processing chain in a desired state and may correspond, for example, to information 222d. Furthermore, the USAC frame also includes encoded audio information, such as single-channel elements, channel-pair elements, or low-frequency effect elements. Therefore, the audio decoder can identify changes in the audio stream based on the stream identifier “streamId()”. Moreover, the audio decoder can perform artifact-free decoding of the USAC frame 600 because decoding parameters can be set based on the configuration information included in the configuration structure, and because the appropriate state of audio decoding can be set based on the pre-rolling frame information. Therefore, the described USAC frame allows switching between decoding of frames from different audio streams and also allows the audio decoder to detect the switching without additional control information.
[0170] The USAC frame 600 described herein may correspond to audio frame 222, or to the first frame of the second audio stream included in the encoded audio signal representation 312, or to the first frame of the second audio stream included in the encoded signal representation 412, or to... Figure 5 The immediately broadcast frame (IPF) shown corresponds to this.
[0171] 6. According to Figure 7 Example audio stream
[0172] Figure 7 A representation of an example audio stream is shown, which can be provided by an audio decoder in one of the audio encoders described herein, and can be decoded by an audio decoder in one of the audio decoders described herein. Figure 7 The audio stream can also be provided by an audio stream provider as described in this article.
[0173] Audio stream 700 includes, for example, decoder configuration information as a first information block. The decoder configuration information may include, for example, the bitstream element "UsacConfig()", as defined in the USAC standard. The decoder configuration information may, for example, indicate a stream identifier for a stream and may be considered as the stream access point located at the beginning of the stream.
[0174] The audio stream also includes an audio frame data information unit 720, which may, for example, exclude any pre-roll data and may also exclude any stream identifier information. For example, the information unit 720 may be a USAC frame and may, for example, correspond to the bitstream syntax element "UsacFrame()" defined in the USAC standard.
[0175] For example, both information units 710 and 720 can belong to the first audio stream.
[0176] The audio stream 700 may also include an information unit 730, which may, for example, represent the first frame of a second stream included in the audio stream 700. The information unit 730 may, for example, include audio frame data, pre-roll data, and stream identifier information. The stream identifier information may, for example, indicate two stream identifiers that are different from the stream identifier included in the information unit 710.
[0177] For example, information unit 730 can be considered as a stream access point.
[0178] For example, information element 730 can be based on the syntax of bitstream element "UsacFrame()", as defined in the USAC standard. However, information element 730 may include an extension element of type "id_ext_ele_audiopreroll". For example, this extension element may include a configuration structure based on bitstream syntax "UsacConfig" with a configuration extension structure (e.g., based on bitstream syntax "UsacConfigExtension"). The configuration extension structure may, for example, include an extension element of type "ID_CONFIG_EXT_STREAM_ID" that encodes the stream identifier. Therefore, information item or information element 730 may, for example, include information from USAC frame 600 as described above.
[0179] Therefore, information unit 730 can represent an audio frame of a second stream and provide complete configuration information for configuring the audio decoder to correctly decode the audio frame. Specifically, the configuration information also includes audio pre-rolling information for setting the state of the audio decoder, and includes a stream identifier that allows the audio decoder to identify whether information unit 730 is associated with a different audio stream when compared with information unit 710.
[0180] Audio stream 700 also includes information unit 740, which follows information unit 730. For example, information unit 740 may be a "normal" audio frame that includes only audio frame data, without pre-roll data, configuration data, and a stream identifier. For example, information unit 740 may follow the bitstream syntax "UsacFrame()" without using any extended elements.
[0181] The audio stream 700 may also include an information unit 750, which may include, for example, audio frame data and pre-roll data, but may not include a stream identifier. Therefore, the information unit 750 can be used as a stream access point, but may not allow the detection of switching between different streams.
[0182] For example, information unit 750 can have an extended element "ID_ext_ele_audiopreroll" according to the bitstream syntax "UsacFrame()". However, in information unit 750, the configuration information as part of the audio pre-roll extended element does not include a stream identifier. Therefore, information unit 750 cannot be reliably used as the first information unit after switching between different audio streams. On the other hand, information unit 730 can be reliably used as the first information unit after switching between different audio streams because the included stream identifier allows for the detection of switching between different streams and because the information unit also includes complete information for decoding, which includes configuration information and pre-roll information.
[0183] In summary, audio stream 700 may include "information units" or encoded audio frames with different information content. There may be "very simple" audio frames that only include encoded audio data, without configuration data or pre-roll data. Furthermore, there may be audio frames that include encoded audio information as well as configuration information, including a stream identifier and pre-roll information. Such frames allow for the identification of switching between different audio streams and completely independent decoding.
[0184] Alternatively, there may be frames that have only partial information but, for example, do not allow reliable identification of switching between different streams due to the lack of stream identifier information.
[0185] It should be noted that, according to Figure 1 The audio decoder in Figure 2 can typically use audio stream 700, and according to... Figure 3 and Figure 4 Audio streaming providers typically provide, for example, Figure 7 The audio stream 700 shown is represented as, for example, as encoded audio signals 312 and 314.
[0186] 7. According to Figure 8 audio stream
[0187] Figure 8 A representation of an example audio stream according to another embodiment of the present invention is shown.
[0188] according to Figure 8 The entire audio stream is represented by 800.
[0189] It should be noted that information units 810a to 810e belong to the first audio stream. For example, information unit 810a may include a decoder configuration and may, for example, follow the bitstream syntax "UsacConfig()" defined in the USAC standard. The decoder configuration may, for example, include a configuration structure similar to configuration structure 222c. For example, information unit 810a may include a stream identifier extension, wherein the stream identifier may, for example, be included in the configuration extension structure of the configuration structure.
[0190] Information unit 810b may include, for example, audio frame data (e.g., encoded spectral values and encoded scaling factor information) without pre-roll data and without a stream identifier. Information unit 810d may be structurally similar to or the same as information unit 810b, and also represents audio frame data without pre-roll data and without a stream identifier.
[0191] Furthermore, the audio stream may include a portion 820, which follows portion 810 and is associated with a second audio stream different from the first audio stream. Portion 820 includes an information unit 820a, which includes audio frame data with pre-rolling data, wherein the pre-rolling data includes (e.g., within a configuration structure) a stream identifier extension. Therefore, information unit 820a represents an audio frame. If the audio decoder discovers, based on the stream identifier extension, that a previously decoded audio frame originates from another audio stream, the audio decoder can use the pre-rolling data to set itself to the appropriate state before decoding the audio frame data in information unit 820a. Therefore, information unit 820a is well-suited to be the first information unit after switching between different audio streams.
[0192] Part 820 also includes one, two or more information units 820b and 820d, which include audio frame data but not pre-roll data and not stream identifiers.
[0193] The audio stream 800 also includes a portion 830 associated with the third audio stream. Portion 830 includes information unit 830a, which includes audio frame data with pre-rolling data and a stream identifier extension. Portion 830 also includes information unit 830b, which includes audio frame data without pre-rolling data and without a stream identifier. The third portion 830 also includes information unit 830d, which includes audio frame data with pre-rolling data but without a stream identifier.
[0194] Therefore, it can be seen that audio stream 800 includes subsequent portions originating from different audio streams, wherein at each transition from one stream to another, there are information units (e.g., encoded audio frames) including audio frame data with pre-rolling data and a stream identifier. Thus, since stream identifier information is available within the encoded audio frame at each switch from one audio stream to another, the audio decoder can easily identify the transition by evaluating the stream identifier (e.g., in comparison with previously obtained stored stream identifiers).
[0195] It should be noted that the audio stream can be provided by an audio encoder or a bitstream provider as described herein, and the audio stream 800 can be evaluated by an audio decoder as described herein.
[0196] 8. According to Figure 9 decoder function
[0197] Figure 9 A schematic representation of the possible decoder functions of the audio decoder as described herein is shown.
[0198] For example, refer to Figure 9 The described functions can be based on Figure 1 Implemented in audio decoder 100 or in audio decoder 200 according to Figure 2. For example, Figure 5 The functions described herein can be used to determine how to continue decoding.
[0199] However, it should be noted that, for reference Figure 9 The described functionality is merely an example, and for instance, the order of decisions can be changed as long as the overall functionality remains the same. Furthermore, decisions can be combined as long as the overall functionality is not modified.
[0200] Assuming Figure 9 The function explained in the text has knowledge of information about previously decoded frames and evaluates new audio frames that can conform to the syntax described in this article.
[0201] For example, in the first check 910, the audio decoder may check for the presence of "random access," i.e., an operation that jumps to a streaming access point. If a jump to a streaming access point is identified, where the "normal" order of frames is intentionally altered, the decoder function proceeds to step 920, which evaluates the configuration data of the streaming access point to reinitialize the decoder. Fade-in / fade-out may optionally be performed to avoid abrupt switching. It should be noted that random access means "jumping" from the first frame to the second frame, where the second frame has a frame index that is not immediately following the frame index of the previously decoded frame. In other words, random access is jumping from a frame with frame index n to a frame with frame index o, where o is different from n + 1.
[0202] In step 920, a jump is performed, wherein the jump target is a frame that is to be played immediately and includes information sufficient to reinitialize the decoder.
[0203] However, if check 910 finds that there is no "random access" but rather "continuous playback," then further check 930 can be performed. In other words, if decoding proceeds from a frame with frame index n to a frame with frame index n + 1, then check 930 is performed.
[0204] In check 930, it is checked whether the (relevant) configuration defined in the configuration structure of the stream access point (or intermediate playback frame) differs from the current configuration, without considering the stream identifier (e.g., up to but not including the stream identifier). If the (relevant) configuration described in the configuration structure of the stream access point differs from the current configuration (path "Yes"), decoding can proceed to step 940. However, it should be noted that if the next frame is a stream access point that includes a configuration structure, then naturally only step 930 can be performed. If the next frame does not include a configuration structure, then naturally step 930 cannot be performed, and no difference from the current configuration can be found.
[0205] However, if in step 930 the configuration in the configuration structure of the next frame (regardless of the stream identifier) is found to be the same as the current configuration, the next check is performed, shown in block 950. In step 950, it is determined whether the stream access point includes (e.g., within the configuration structure) a stream identifier. For example, it is not necessarily required to include a stream identifier, but if a configuration extension structure exists and if that configuration extension structure actually includes a data structure element that serves as the stream identifier, then the stream identifier is only included in the configuration structure. If in comparison 950 it is found that the stream access point includes a stream identifier (branch "Yes"), then the stream identifier included in the stream access point of the next frame (the frame to be decoded) is compared with the current (stored) stream identifier. If it is found that the stream identifier included in the next frame (the frame to be decoded) is different from the current stream identifier (branch "Yes" in decision 960), then the process jumps to block 940. On the other hand, if the stream identifier of the next frame is found to be the same as the stored stream identifier, then for determining whether to perform "conversion" or initial initialization (the "No" branch of step 960), other configuration information (e.g., configuration extension) following the stream identifier in the configuration extension structure is not considered.
[0206] However, if in check 950 it is found that the stream access point (the next frame to be decoded) does not include a stream identifier, or if it is found that the stream identifier of the next frame to be decoded is the same as the stored stream identifier, the process continues to step 970.
[0207] Furthermore, it should be noted that step 940 includes a fade-in / fade-out process between audio frames using the old configuration and audio frames using the new configuration. To decode the audio frames using the new configuration, there is a re-initialization of the audio decoder (which may include initializing a new decoder instance). Additionally, the old decoder instance is "refreshed" and a fade-in / fade-out process is performed.
[0208] On the other hand, step 970 includes decoding the next frame without reinitializing the decoder, wherein pre-rolling information that may be included in the next frame is discarded (not considered).
[0209] In summary, whenever the audio decoder reaches an "intermediate play frame," there are different possibilities that can be performed; an "intermediate play frame" can also be considered a "stream access point." Furthermore, it should be noted that specific processing is generally not performed on frames that are not "intermediate play frames" or "stream access points," because such frames do not allow for reinitialization of the audio decoder, as there is no configuration structure and no pre-roll information is available in such audio frames.
[0210] When the decoder knows that there is a "jump," that is, a deviation from the normal frame order, there will naturally be a reinitialization of the audio decoder, which usually uses pre-roll information and a new configuration structure (even if the jump is within the same stream).
[0211] Without this "jump", different situations exist:
[0212] If the audio decoder finds that the configuration information (up to and including the configuration identifier) for the next stream to be decoded differs from the stored information, it will reinitialize the audio decoder. Conversely, if the audio decoder finds that the configuration information (up to and including the stream identifier (if present)) for the next frame to be decoded is the same as the stored information obtained from a previously decoded frame, it will not perform initialization. In either case, when deciding whether to perform reinitialization, the audio decoder will ignore the configuration information placed after the stream identifier in the configuration structure. Furthermore, if the audio decoder finds no stream identifier in the configuration structure, it will naturally not consider the stream identifier when comparing it with the stored information.
[0213] However, to perform the evaluation in a computationally efficient manner, the decoder can first use the stored configuration information to check the configuration information prior to the stream identifier, then check if the configuration structure includes the stream identifier, and subsequently compare the stream identifier (if present in the configuration structure) with the stored stream identifier. Once the audio decoder finds a difference, it can decide to reinitialize. On the other hand, if the audio decoder does not find a difference between the configuration information (up to and including the stream identifier), it can decide to omit reinitialization.
[0214] Therefore, the audio encoder can signal minor configuration changes that will not cause re-initialization by sending a signal after the stream identifier in the configuration extension structure, and the audio decoder can then use the slightly modified configuration (without needing re-initialization) for decoding.
[0215] In summary, for reference Figure 9 The decoder features described herein can be used in any audio decoder described herein, but should be considered optional.
[0216] 9. According to Figure 10a , Figure 10b , Figure 10c and Figure 10d Bitstream syntax
[0217] The bitstream syntax will be described below. In particular, the syntax of configuration structures will be described. As an example, the syntax of the configuration structure "UsacConfig()" will be described, which can replace configuration structure 222c or configuration structure 332 or configuration structure 424 or Figure 6 The configuration structure shown is "Config()" or Figure 7 The configuration structure shown is "UsacConfig()" or Figure 8 The configuration structure shown is "Config".
[0218] Figure 10a The diagram shows a representation of the configuration structure “UsacConfig()”. It can be seen that the configuration structure may include, for example, sampling frequency index information 1020a and optional sampling frequency information 1020b. The sampling frequency index information 1020a (possibly in combination with the sampling frequency information 1020b) describes, for example, the sampling frequency used by the encoder, and therefore also describes the sampling frequency to be used by the audio decoder.
[0219] In addition, the configuration structure may include frame length index information for spectrum band replication (SBR). For example, the index may determine the number of parameters used for spectrum band replication, such as those defined in the USAC standard.
[0220] Furthermore, the configuration structure may also include a channel configuration index 1024a, which can, for example, determine the channel configuration. For example, the channel configuration index information may define multiple channels and associated speaker mappings. For example, the channel configuration index information may have the meaning defined in the USAC standard. For example, if the channel configuration index information is equal to zero, then details about the channel configuration may be included in the "UsacChannelConfig()" data structure 1024b.
[0221] Furthermore, the configuration structure may include decoder configuration information 1026a, which may, for example, describe (or enumerate) information elements present in the audio frame data structure. For instance, the decoder configuration information may include one or more elements described in the USAC standard.
[0222] In addition, configuration structure 1010 includes a flag (e.g., named "UsacConfigExtensionPresent") indicating the presence of a configuration extension structure (e.g., configuration extension structure 226). Configuration structure 1010 also includes a configuration extension structure, which is represented, for example, by "UsacConfigExtension()" 1028a. The configuration extension structure is preferably part of configuration structure 1010 and can be represented, for example, by a sequence of bits immediately following the bits representing other configuration items of configuration structure 1010. The configuration extension structure can, for example, carry stream identifier information, as described below.
[0223] In the following text, reference will be made to Figure 10b Describes the possible syntax for configuration extension structures, where the entire configuration extension structure is specified by 1030 and corresponds to configuration extension structure 1028a.
[0224] A configuration extension structure (also known as "UsacConfigExtension()") can, for example, encode multiple configuration extensions in syntax element 1040a. It should be noted that, due to the presence of configuration extension type information 1042a and configuration extension length information 1044a for each configuration extension item, the order of different configuration extension information items can be arbitrarily chosen. Therefore, the configuration extension structure 1030 can carry multiple configuration extension items (or configuration extension information items) in a variable order, where the audio encoder can determine which configuration extension item to encode first and which to encode later. For example, for each configuration information item, the configuration extension type identifier 1042a may be present first, followed by the configuration extension length information 1044, and then the "payload" of the corresponding configuration extension information item. The encoding of the payload of the corresponding configuration extension information item can vary, for example, according to the type of configuration extension information item indicated by the configuration extension type information, and the length of the payload of the corresponding configuration extension information item can be determined by the value of the corresponding configuration extension length information 1044a. For example, in the case that the configuration extension information item is padding information, one or more padding bytes may be present. On the other hand, if the configuration extended information item is configuration extended loudness information, there can be a data structure that includes information about loudness (e.g., denoted as "loudness information set()").
[0225] Furthermore, if the configuration extension information item is a stream identifier, a numerical representation of the stream identifier, denoted as "streamId()", may exist. Syntax examples for different types of configuration extension information items are shown at reference numerals 1046a, 1048a, and 1050a.
[0226] In summary, the syntax of configuration extension structures allows for changes to the order of different configuration information items. For example, the stream identifier configuration extension item can be placed by the audio encoder before or after other configuration extension items. Therefore, the audio encoder can control which other information from the configuration extension structure should be considered in comparisons between the configuration indicated by the current configuration structure and the configuration information previously obtained by the audio decoder by placing the stream identifier configuration extension item within the configuration extension structure. Typically, in such comparisons, configuration information items preceding the configuration extension structure and any configuration extension items up to and including the stream identifier information will be considered, while any configuration extension items encoded in the bitstream after the stream identifier configuration extension item will be ignored.
[0227] Therefore, in response to Figure 10a and Figure 10b The explained configuration structure is well-suited to the concepts according to the present invention.
[0228] Figure 10c The syntax for the Stream Identifier (Configuration Extension) information item is shown, which is also specified using "StreamId()" (or "streamId()"). It can be seen that the Stream Identifier can be represented by a 16-bit binary number. Therefore, over 65,000 different values can be encoded as Stream Identifiers, which is generally sufficient to identify any transition between different audio streams.
[0229] Figure 10d An example of the assignment of type identifiers for different configuration extension information items is shown. For example, a configuration extension information item of type "flow identifier" can be represented by the value 7 of configuration extension type information 1042a. Other types of configuration extension information items can be represented, for example, by other values of configuration extension type identifier 1042a.
[0230] In short, Figures 10a to 10d It describes the possible syntax (or syntax extension) of the configuration structure, which can be used by an audio encoder to encode stream identifier information, which can be used by an audio decoder to extract the stream identifier information.
[0231] However, it should be noted that the configuration structure described herein should be considered as an example only and can be modified within a wide range. For example, the sampling frequency index information and / or the sampling frequency information and / or the spectrum bandwidth replication frame length index information and / or the channel configuration index information can be encoded in different ways. Furthermore, alternatively, one or more of the aforementioned information items can be discarded. Additionally, the UsacDecoderConfig information item can be omitted.
[0232] In addition, the encoding of the number, type, and length of configuration extensions can be modified. Furthermore, different configuration extension information items should also be considered optional and may be encoded in different ways.
[0233] Furthermore, stream identifiers can be encoded with more or fewer bits, where different types of numbers can be used for representation. Additionally, assigning identifiers to different configuration extension types should be considered a preferred example, not a necessary feature.
[0234] 9. Conclusion
[0235] In the following description, some aspects of the invention will be described, which can be used alone or in combination with the embodiments described herein.
[0236] In particular, the solution according to the present invention will be described herein.
[0237] It should be noted that the appended claims describe aspects of embodiments according to the present invention.
[0238] However, the embodiments defined by the claims may optionally be supplemented, alone or in combination, by any of the features described herein. Furthermore, it should be noted that any definitions in parentheses “()” or “[]” should be considered optional, particularly when used in the claims.
[0239] However, it should be noted that the features of the invention described below can also be used separately from the features of the claims.
[0240] Furthermore, the features and functions described in the claims and below may optionally be combined with the features and functions described in the section describing the problems of various aspects of the invention, possible use cases of the embodiments, and conventional methods. In particular, the features and functions described herein can be used in the USAC audio decoder according to ISO / IEC 23003-3: 2012, including Amendment 3, the "bitrate adaptation" sub-clause (e.g., standardized on the filing date of the priority application of this application, or on the filing date of this invention, but also—optionally—including further future modifications).
[0241] According to one aspect of the invention, it is proposed to introduce (e.g., into the USAC bitstream syntax) a new configuration extension for USAC, where usacConfigExtType == ID_CONFIG_EXT_STREAM_ID has an associated bitstream structure containing a simple, generic 16-bit identifier bit field. This identifier should be different between any two configuration structures for all streams within a set of streams used for seamless switching between streams (e.g., it can be chosen differently by the audio encoder or audio stream provider). An example of such a set of streams is the so-called "adaptive set" in the MPEG-DASH transport use case.
[0242] For example, the proposed unique stream ID configuration extension will ensure that the new configuration (and the new stream) is correctly identified at the point where the current (or current configuration) is compared with the new configuration structure (e.g., on the audio encoder side or audio decoder side), and the decoder will operate as expected and desired, such as performing appropriate decoder refresh, pre-rolling access units, and performing fade-in and fade-out (if applicable).
[0243] The following is a proposed specification text (modification) that is standardized on the filing date of this application or on the filing date of a priority application (e.g., MPEG-D USAC (ISO / IEC 23003-3 + AMD.1 + AMD-2 + AMD.3)), and may optionally include any future modifications.
[0244] The paragraphs mentioned in the following description of the invention may be used alone or in combination with a USAC audio decoder or in another frame-based audio decoder.
[0245] The configuration extensions shown in Table 15 below can be used by the audio encoder to provide an audio bitstream and can be used by the audio decoder to extract information from the audio bitstream.
[0246] When using audio encoding and decoding according to the USAC standard described above, Table 15 in Section 5.2 should be replaced with the following updated version of Table 15:
[0247] Table 15 - Syntax of UsacConfigExtension()
[0248]
[0249]
[0250] Furthermore, when considering audio encoding or decoding according to the USAC standard, a new table AMD.01 should be added at the end of Section 5.2 of the USAC standard (where encoding details and bit count are optional):
[0251] Table AMD.01 - Syntax of StreamId()
[0252]
[0253] However, in the table, encoding details and, for example, the number of bits should be considered optional.
[0254] In addition, when considering encoding or decoding according to the USAC standard, the following sub-clause 6.1.15 should be added after “6.1.14 UsacConfigExtension()”:
[0255] 6.1.15 Unique Stream Identifier (Stream ID)
[0256] 6.1.15.1 Terms, Definitions and Semantics
[0257]
[0258] For example, when a stream is part of an MPEG-DASH adaptive set as defined in ISO / IEC 23009, all stream IDs in that DASH adaptive set should be different in pairs.
[0259] 6.1.15.2 Stream Identifier Description
[0260] The configuration extension for type ID_CONFIG_EXT_STREAM_ID provides a container for signaling stream identifiers (simply referred to as "stream IDs"). The stream ID configuration extension allows a unique integer to be appended to the configuration structure, making it possible to distinguish audio bitstream configurations of two streams even if the rest of the configuration structure (bits) is the same.
[0261] The configuration extension usacConfigExtLength for type ID_CONFIG_EXT_STREAM_ID should have a value of 2 (two). (Optionally, it can be different.)
[0262] No given audio bitstream should have more than one configuration extension of type ID_CONFIG_EXT_STREAM_ID. (Optional)
[0263] If a decoder instance in normal operation receives a new configuration structure, for example, via `Config()` in the extended payload using `ID_EXT_ELE_AUDIOPREROLL`, it should compare that new configuration structure with the currently active configuration (see, for example, 7.18.3.3). This comparison can be performed, for instance, by comparing the corresponding configuration structure bit by bit.
[0264] If the configuration structure contains configuration extensions, then, for example, all configuration extensions (up to and including the configuration extension of type ID_CONFIG_EXT_STREAM_ID) should be included in the comparison. For example, all configuration extensions after the configuration extension of type ID_CONFIG_EXT_STREAM_ID should not be considered during the comparison. (Optional)
[0265] Note that the above rules allow the encoder to control whether changes to specific configuration extensions will cause the decoder to reconfigure.
[0266] It should be noted that the definitions and details of this paragraph to be added to the standard may optionally be used individually or in combination in embodiments according to the invention.
[0267] When considering USAC encoding or decoding, Table 74 in Section 6 should be determined as follows: Figure 10d The table shown is replaced.
[0268] In summary, some possible changes that could be introduced into the USAC standard have been described. However, the concepts described here can also be used in conjunction with other audio coding standards. In other words, the stream identifier information, as described herein, can also be incorporated into some configuration structures of any other audio coding standard.
[0269] When used in conjunction with other coding standards, the features described here for stream identifier information can also be applied. In this case, the terminology should be adapted to the terminology of the corresponding audio coding standard.
[0270] In the following text, some optional effects, advantages or features of the invention will be described.
[0271] The presented configuration extensions provide an easy-to-implement solution to distinguish configuration structures that were originally bit identical. The resulting distinguishability between configurations enables, for example, the correct and initially expected functionality of dynamic adaptive streaming, and seamless conversion between streams.
[0272] Some alternative solutions will be described below.
[0273] For example, the aforementioned problems can be avoided if the encoder ensures that all streams within a stream set have different configurations—that is, they use different encoding tools or different parameterizations. This typically results in paired, different configurations if the bitrate differences between the individual streams are large enough. If a fine bitrate grid is required (which is often the case), this (traditional) solution will not work in some cases.
[0274] Conversely, different streams can be distinguished by using stream identifiers included in the configuration section (also known as the configuration structure), and streams can also be distinguished if the rest of the configuration structure is the same (sometimes in the case of similar bit rates).
[0275] Alternatively (for example, as an alternative to using stream identifiers), an appropriate, unspecified configuration extension can be created that varies for each stream but is constructed differently in some way. The effect is the same. However, correct functionality cannot be guaranteed because, when comparing configurations in the above scenario, it is not guaranteed that all decoder implementations will evaluate the unspecified configuration extension.
[0276] Conversely, embodiments of the invention create a concept in which flow identifiers are clearly specified in the configuration structure and allow for explicit differentiation of different flows.
[0277] It should be noted that implementations of the inventive concept can be identified by analyzing the configuration structure of the USAC stream. Furthermore, implementations of the inventive concept can be identified by testing for the presence of the configuration extensions described above.
[0278] In the following text, some possible areas of application according to aspects of the present invention will be described.
[0279] The embodiments of the present invention provide distinguishability of originally identical data structures.
[0280] Other embodiments of the invention provide distinguishability of the originally identical audio codec configuration structure.
[0281] Embodiments of the present invention allow for seamless, dynamically adaptive streaming of audio on any transmission network.
[0282] Some other aspects will be described below, which should be considered optional.
[0283] For example, the behavior of an audio encoder / audio stream provider will be described below. Optional details about the audio encoder (which can also take the form of an audio stream provider) will be described in the following text.
[0284] Audio encoders typically do not generate a single stream that abruptly changes its configuration. Instead, an encoder or an encoder framework that includes multiple encoder instances generates multiple streams in parallel, each containing an IPF (“immediate play frame”) at a synchronization point (time point) within the stream.
[0285] The decoder framework then selects one of the concurrently generated streams based on specific and / or predetermined criteria (e.g., the quality of the internet connection) and "asks" (or requests) the encoder-side server to send that stream precisely, which is then forwarded to the decoder. All other encoded streams are simply ignored. Changes between streams are then only permitted at the IPF location.
[0286] The audio decoder initially does not recognize this change and / or is not notified of it, for example, by the decoder framework. Instead, the audio decoder needs to detect the stream change (“configuration structure”) by comparing an embedded configuration structure. From the decoder’s perspective, it appears that the encoder only generates streams with the changed configuration (“Config”). In reality, this is usually not the case. Instead, the encoder always generates multiple variants (including different bitrates) in parallel (continuously); only the decoder framework and the encoder-side server (or stream provider) split the stream and rearrange (reconnect) a portion (or stream) of the stream.
[0287] Other optional details are shown in the accompanying drawings.
[0288] Furthermore, it should be noted that the apparatus shown in the accompanying drawings can be supplemented, alone or in combination, by any of the features and functions described herein.
[0289] In summary, an audio encoder or audio stream provider can switch between providing different streams to an audio decoder (or audio decoding device), where the switching can be based on, for example, at the request of the audio decoder or audio decoding device, or at the request of any other network management device, or even determined by the audio encoder or audio stream provider. Switching between the provision of frames from different audio streams can be used to adapt the actual bitrate to the available bitrate. The decoder configuration signaled by the audio encoder (or audio stream provider) to the audio decoder can be the same across different streams, but the stream identifier should be different across different streams. Therefore, the audio decoder can use the stream identifier to identify when it should be reinitialized using additional information (e.g., configuration information and pre-roll information) included in the immediately play frame.
[0290] To further conclude, as described herein, the use of a stream identifier (“streamID”) can overcome the problems mentioned in the sections describing the problems of various aspects of the invention and possible use cases of the embodiments.
[0291] 10. Methods
[0292] Figures 11a to 11c A flowchart of a method according to an embodiment of the present invention is shown.
[0293] This can be supplemented by any features and functions described in this article. Figures 11a to 11c The method shown.
[0294] 11. Implement alternative solutions
[0295] Although some aspects have been described in the context of the apparatus, it will be clear that these aspects also represent a description of the corresponding method, wherein a block or device corresponds to a method step or a feature of a method step. Similarly, aspects described in the context of method steps also represent a description of the features of the corresponding block or item or the corresponding apparatus. Some or all of the method steps may be performed by (or using) hardware devices (such as microprocessors, programmable computers, or electronic circuits). In some embodiments, one or more of the most important method steps may be performed by such an apparatus.
[0296] Novel coded audio signals can be stored on digital storage media or transmitted on transmission media such as wireless or wired transmission media (e.g., the Internet).
[0297] Depending on certain implementation requirements, embodiments of the invention can be implemented in hardware or software. Implementation can be performed using a digital storage medium (e.g., floppy disk, DVD, Blu-ray, CD, ROM, PROM, EPROM, EEPROM, or flash memory) on which electronically readable control signals are stored, which cooperate with (or are capable of cooperating with) a programmable computer system to perform the corresponding methods. Therefore, the digital storage medium can be computer-readable.
[0298] Some embodiments of the invention include a data carrier having electronically readable control signals, which is capable of cooperating with a programmable computer system to perform one of the methods described herein.
[0299] Typically, embodiments of the present invention can be implemented as a computer program product having program code operable to perform one of the methods when the computer program product is run on a computer. The program code may, for example, be stored on a machine-readable medium.
[0300] Other embodiments include a computer program stored on a machine-readable medium for performing one of the methods described herein.
[0301] In other words, embodiments of the method of the present invention are therefore computer programs having program code for performing one of the methods described herein when the computer program is run on a computer.
[0302] Therefore, another embodiment of the method of the present invention is a data carrier (or digital storage medium or computer-readable medium) on which a computer program is recorded, the computer program being used to perform one of the methods described herein. The data carrier, digital storage medium, or recording medium is typically tangible and / or non-transitory.
[0303] Therefore, another embodiment of the method of the present invention represents a data stream or signal sequence of a computer program used to perform one of the methods described herein. The data stream or signal sequence may, for example, be configured to be transmitted via a data communication connection (e.g., via the Internet).
[0304] Another embodiment includes a processing means, such as a computer or a programmable logic device, which is configured or adapted to perform one of the methods described herein.
[0305] Another embodiment includes a computer having a computer program installed thereon for performing one of the methods described herein.
[0306] Another embodiment of the invention includes an apparatus or system configured to transmit a computer program to a receiver (e.g., electronically or optically), the computer program being used to perform one of the methods described herein. The receiver may be, for example, a computer, mobile device, storage device, etc. The apparatus or system may, for example, include a file server for transmitting the computer program to the receiver.
[0307] In some embodiments, a programmable logic device (e.g., a field-programmable gate array) may be used to perform some or all of the functions described herein. In some embodiments, the field-programmable gate array may cooperate with a microprocessor to perform one of the methods described herein. Generally, the methods are preferably performed by any hardware device.
[0308] The apparatus described herein can be implemented using hardware devices, a computer, or a combination of hardware devices and a computer.
[0309] The apparatus described herein, or any component thereof, may be implemented, at least in part, in hardware and / or software.
[0310] The methods described herein can be performed using hardware devices, computers, or a combination of hardware devices and computers.
[0311] The methods or any components of the apparatus described herein may be performed, at least in part, by hardware and / or by software.
[0312] The above embodiments are merely illustrative of the principles of the present invention. It should be understood that modifications and variations of the arrangements and details described herein will be readily apparent to those skilled in the art. Therefore, the invention is intended to be limited only by the scope of the appended claims and not by the specific details given by way of the description and explanation of the embodiments herein.
Claims
1. An audio decoder (100; 200) for providing a decoded audio signal representation (112; 212) based on an encoded audio signal representation (110; 210; 312; 412; 550; 600; 700; 800). in, The audio decoder is configured to adjust decoding parameters according to configuration information (110a; 222c; 332; 424; 1010, 1030). The audio decoder is configured to decode one or more audio frames using the current configuration information (140; 240), and The audio decoder is configured to associate configuration information (110a; 222c;) in a configuration structure with one or more frames (222) to be decoded. 332;424; The configuration information (1010, 1030) is compared with the current configuration information (140; 240), and if the configuration information in the configuration structure associated with the one or more frames to be decoded, or the relevant part of the configuration information in the configuration structure associated with the one or more frames to be decoded (1020a, 1020b, 1022a, 1024a, 1024b, 1026a, 1050a) is different from the current configuration information, a conversion is performed to use the configuration information in the configuration structure associated with the one or more frames to be decoded as the new configuration information for decoding; The audio decoder is configured to consider stream identifier information (230; streamID, 1050a, streamIdentifier) included in the configuration structure when comparing the configuration information, such that the difference between the stream identifier previously obtained by the audio decoder and the stream identifier represented by the stream identifier information in the configuration structure associated with the one or more frames to be decoded causes the conversion to be performed. The stream identifier is represented by a bitstream syntax element, which is represented by a 16-bit value.
2. A method for providing a decoded audio signal representation based on an encoded audio signal representation. in, The method includes: adjusting decoding parameters according to configuration information (110a; 222c; 332; 424; 1010, 1030). The method includes: decoding one or more audio frames using the current configuration information (140; 240), and The method includes: comparing configuration information (110a; 222c; 332; 424; 1010, 1030) in a configuration structure associated with one or more frames (222) to be decoded with current configuration information, and the method includes: if the configuration information in the configuration structure associated with the one or more frames to be decoded, or a relevant portion (1020a, 1020b, 1022a, 1024a, 1024b, 1026a, 1050a) in the configuration structure associated with the one or more frames to be decoded is different from the current configuration information, then performing a conversion to use the configuration information in the configuration structure associated with the one or more frames to be decoded as new configuration information for decoding; The method includes: when comparing the configuration information, taking into account stream identifier information (230; streamID, 1050a, streamIdentifier) included in the configuration structure, such that the difference between the stream identifier previously obtained in audio decoding and the stream identifier represented by the stream identifier information in the configuration structure associated with the one or more frames to be decoded causes the conversion to be performed. The stream identifier is represented by a bitstream syntax element, which is represented by a 16-bit value.
3. A computer program product comprising a computer program for performing the method of claim 2 when the computer program is run on a computer.
4. An audio decoder (100; 200) for providing a decoded audio signal representation (112; 212) based on an encoded audio signal representation (110; 210; 312; 412; 550; 600; 700; 800). in, The audio decoder is configured to adjust decoding parameters according to configuration information (110a; 222c; 332; 424; 1010, 1030). The audio decoder is configured to decode one or more audio frames using the current configuration information (140; 240), and The audio decoder is configured to associate configuration information (110a; 222c;) in a configuration structure with one or more frames (222) to be decoded. 332;424; The configuration information (1010, 1030) is compared with the current configuration information (140; 240), and if the configuration information in the configuration structure associated with the one or more frames to be decoded, or the relevant part of the configuration information in the configuration structure associated with the one or more frames to be decoded (1020a, 1020b, 1022a, 1024a, 1024b, 1026a, 1050a) is different from the current configuration information, a conversion is performed to use the configuration information in the configuration structure associated with the one or more frames to be decoded as the new configuration information for decoding; The audio decoder is configured to consider stream identifier information (230; streamID, 1050a, streamIdentifier) included in the configuration structure when comparing the configuration information, such that the difference between the stream identifier previously obtained by the audio decoder and the stream identifier represented by the stream identifier information in the configuration structure associated with the one or more frames to be decoded causes the conversion to be performed. The audio decoder is configured to perform fade-in / fade-out if a configuration change is detected.
5. An audio decoder (100; 200) for providing a decoded audio signal representation (112; 212) based on an encoded audio signal representation (110; 210; 312; 412; 550; 600; 700; 800). in, The audio decoder is configured to adjust decoding parameters according to configuration information (110a; 222c; 332; 424; 1010, 1030). The audio decoder is configured to decode one or more audio frames using the current configuration information (140; 240), and The audio decoder is configured to associate configuration information (110a; 222c;) in a configuration structure with one or more frames (222) to be decoded. 332;424; The configuration information (1010, 1030) is compared with the current configuration information (140; 240), and if the configuration information in the configuration structure associated with the one or more frames to be decoded, or the relevant part of the configuration information in the configuration structure associated with the one or more frames to be decoded (1020a, 1020b, 1022a, 1024a, 1024b, 1026a, 1050a) is different from the current configuration information, a conversion is performed to use the configuration information in the configuration structure associated with the one or more frames to be decoded as the new configuration information for decoding; The audio decoder is configured to consider stream identifier information (230; streamID, 1050a, streamIdentifier) included in the configuration structure when comparing the configuration information, such that the difference between the stream identifier previously obtained by the audio decoder and the stream identifier represented by the stream identifier information in the configuration structure associated with the one or more frames to be decoded causes the conversion to be performed. The audio decoder is configured to acquire and process audio frame representations including random access information (222b). The random access information mentioned above includes a configuration structure; The audio decoder is configured to: if the audio decoder finds that the configuration information in the configuration structure of the random access information, or the relevant part of the configuration information in the configuration structure of the random access information, is different from the current configuration information (240), then after initializing the audio decoder using the configuration structure of the random access information, it performs a fade-in / fade-out between the audio information (272) represented by the audio frame (220) processed before reaching the audio frame representation including the random access information and the audio information (276) obtained based on the audio frame representation (222) including the random access information.
6. The audio decoder according to claim 5, wherein, The audio decoder is configured to continue decoding without performing the initialization of the audio decoder if the audio decoder has already decoded an audio frame immediately preceding the audio frame represented by the audio frame representation including the random access information, and if the audio decoder finds that the relevant part of the configuration information (222c) in the configuration structure of the random access information is the same as the current configuration information (240).
7. The audio decoder according to claim 5 or 6, wherein, The audio decoder is configured to perform initialization of the audio decoder using the configuration structure of the random access information if the audio decoder has not yet decoded an audio frame immediately preceding the audio frame represented by the audio frame representation including the random access information.
8. A method for providing a decoded audio signal representation based on an encoded audio signal representation. in, The method includes: adjusting decoding parameters according to configuration information (110a; 222c; 332; 424; 1010, 1030). The method includes: decoding one or more audio frames using the current configuration information (140; 240), and The method includes: comparing configuration information (110a; 222c; 332; 424; 1010, 1030) in a configuration structure associated with one or more frames (222) to be decoded with current configuration information, and the method includes: if the configuration information in the configuration structure associated with the one or more frames to be decoded, or a relevant portion (1020a, 1020b, 1022a, 1024a, 1024b, 1026a, 1050a) in the configuration structure associated with the one or more frames to be decoded is different from the current configuration information, then performing a conversion to use the configuration information in the configuration structure associated with the one or more frames to be decoded as new configuration information for decoding; The method includes: when comparing the configuration information, taking into account stream identifier information (230; streamID, 1050a, streamIdentifier) included in the configuration structure, such that the difference between the stream identifier previously obtained in audio decoding and the stream identifier represented by the stream identifier information in the configuration structure associated with the one or more frames to be decoded causes the conversion to be performed. The method includes performing a fade-in / fade-out operation if a configuration change is detected.
9. A computer program product comprising a computer program for performing the method of claim 8 when the computer program is run on a computer.