Audio decoder, method of providing a decoded audio signal, and computer program product

By introducing stream identifier information into the audio decoder, the problem of auditory artifacts during audio stream conversion in adaptive streaming is solved, achieving seamless conversion and efficient decoding while reducing signaling overhead.

CN116631416BActive Publication Date: 2025-11-07FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310552620.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2017-01-11
Filing Date
2018-01-10
Publication Date
2025-11-07
Estimated Expiration
2038-01-10

AI Technical Summary

Technical Problem

In adaptive streaming use cases, audio decoders cannot effectively identify the transitions between different audio streams, resulting in auditory artifacts such as clicking sounds or sudden noises. Existing technologies cannot achieve seamless transitions without affecting audio quality.

Method used

By introducing stream identifier information into the audio decoder, the decoder is configured to recognize the stream identifier in the configuration structure, allowing conversion between different streams without additional protocol-level information. This provides flexibility in deciding when to evaluate the stream identifier to avoid unnecessary information passing and decoder re-initialization.

Benefits of technology

It achieves seamless switching between different audio streams, avoids auditory artifacts, reduces signaling overhead while maintaining audio quality, and improves the efficiency and flexibility of the decoder.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116631416B_ABST
    Figure CN116631416B_ABST
Patent Text Reader

Abstract

An audio decoder for providing a decoded audio signal representation based on an encoded audio signal representation is disclosed, which is configured to adjust a decoding parameter according to configuration information and to decode one or more audio frames using the current configuration information. The audio decoder is configured to compare the configuration information in a configuration structure associated with the one or more frames to be decoded with the current configuration information and to perform a transition to use the configuration information in the configuration structure as new configuration information for the decoding if the configuration information in the configuration structure, or a relevant part of the configuration information in the configuration structure, is different from the current configuration information. The audio decoder is configured to take into account stream identifier information included in the configuration structure when comparing the configuration information, such that a difference between a stream identifier previously acquired by the audio decoder and a stream identifier represented by the stream identifier information in the configuration structure causes said transition to be performed. Corresponding methods and computer program products are also disclosed.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of application with the filing date of 10 January 2018, international application number PCT / EP2018 / 050575, Chinese application number “201880017357.7”, with the title “Audio decoder, audio encoder, method of providing a decoded audio signal, method of providing an encoded audio signal, audio stream using a stream identifier, audio stream provider and computer program”. TECHNICAL FIELD

[0002] An embodiment according to the application relates to an audio decoder for providing a decoded audio signal representation based on an encoded audio signal representation.

[0003] Other embodiments according to the application relate to an audio encoder for providing an encoded audio signal representation.

[0004] Other embodiments according to the application relate to a method of providing a decoded audio signal representation.

[0005] Other embodiments according to the application relate to a method of providing an encoded audio signal representation.

[0006] Other embodiments according to the application relate to an audio stream.

[0007] Other embodiments according to the application relate to an audio stream provider.

[0008] Other embodiments according to the application relate to a computer program for performing one of these methods. BACKGROUND

[0009] In the following, the problem behind the various aspects of the application and possible use scenarios of embodiments according to the application will be described.

[0010] There are cases of switching between different audio streams or different encoded audio frame sequences. For example, different audio frame sequences can comprise different audio content between which a switch should be made.

[0011] For example, when employing MPEG-D USAC (ISO / IEC 23003-3 + Amd. 1 + Amd. 2 + Amd. 3) in adaptive streaming use cases, it can happen that two streams within a so-called adaptive set (which can form a group of two or more streams that a user can switch between) have exactly the same configuration structure (even though their bitrates are different). This can happen, for example, if an encoder is only selected to operate the encoder using exactly the same encoding tools that are set for both bitrates.

[0012] For example, the audio encoder can use the same basic encoding settings (which are also signaled to the audio decoder) but can still provide a different representation of the audio values. For example, when a lower bit rate is desired, the audio encoder can use a coarser quantization of the spectral values, which results in a smaller bit demand, even if the basic encoder settings or decoder settings remain unchanged.

[0013] However, this is not a problem (for example, even if the bit rates of two streams within an adaptive set are different, the occurrence of a case where the two streams have exactly the same configuration structure).

[0014] However, it has been found that in adaptive streaming use cases, the decoder should know whether a 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 of stream has been detected, the audio decoder will in certain cases run a specified sequence of operational steps to ensure the following steps:

[0016] • Correctly shutting down one decoder instance and feeding the temporarily internally stored decoded signal portions to the decoder output - a process called "flushing".

[0017] • The decoder will re-instantiate and re-configure itself using the configuration information associated with the changed stream.

[0018] • The decoder will "pre-roll" the embedded access units piggybacked in the immediate play-out frame (IPF). The pre-rolling of such access units puts the decoder in a fully initialized state such that the output of the decoding of the first frame results in a fully compatible decoded audio signal.

[0019] • Optionally, the audio output from the decoder flushing process and the output from the first access unit of the re-configured decoder fade in and out within a very short time period, for example, depending on the respective bitstream signaling elements.

[0020] For example, all of the above steps can be run to achieve the only goal of obtaining a "seamless" transition from the decoded audio of one stream to the decoded audio of another stream. "Seamless" means that the stream transition itself has no audible artifacts and glitches. In fact, the stream transition can be perceptually noticeable because - for example - the overall encoding quality or the audio bandwidth or tonal color changes. However, the actual point (time point) of the transition itself does not cause an auditory impression. In other words, there is no "click" or "burst of noise" or similar disturbing sound at the transition point.

[0021] It has been found that information whether a stream change has occurred can be obtained by analyzing the configuration structure embedded in the immediate play-out frame and comparing it with the configuration of the currently decoded stream. For example, the audio decoder can assume a change of stream only if and only if the received configuration is different from the current configuration.

[0022] For example, if the decoder receives an immediate play-out frame (IPF) of a stream with a changed bitrate, the decoder detects the presence of an audio pre-roll extension payload, extracts the configuration structure and makes a comparison between the new configuration and the current configuration. For more details, see also ISO / IEC 23003-3:2012 / Amd.3, subclause "Bitrate adaptation".

[0023] However, it has been found that if both the current configuration structure and the new configuration structure are identical, the decoder will not recognize that it is receiving access units from a different stream than before, and will neither reconfigure the decoder nor will the decoder decode the audio pre-roll residing in the extension payload of the IPF.

[0024] Instead, the decoder will try to continue decoding as if it had received a continuing access unit from the previous active stream. This will (e.g. in the legacy case without using or evaluating the streamID) lead to the possible situation that the window boundary and the encoding mode of the last decoded frame do not correspond to the new frame of the new stream, which in turn leads to audible artifacts like clicks or noise bursts. This would defeat the main purpose of the IPF and the concept of adaptive audio streaming, which is based on the idea of seamless transitions between streams.

[0025] In the following, some legacy approaches will be described.

[0026] It should be noted that for Unified Speech and Audio Coding (USAC) there is no known solution.

[0027] In MPEG-H 3D Audio (ISO / IEC 23008-3 + all amendments), the problem can be solved if the audio data is sent in the MPEG-H Audio Stream ("MHAS") packetized stream format. The MHAS packet contains a packet tag which can be different between streams, and thus can be used to distinguish configurations. However, the MHAS format is not specified for MPEG-D USAC.

[0028] In MPEG-4 HE-AAC (ISO / IEC 14496-3 + all amendments) there is a workaround that requires the encoder to ensure that at potential transition points (so-called stream access points (SAP)) all streams have the same window shape and window sequence and other constraints for the employed signal processing tools. This has a detrimental effect on the final audio quality. The design of the above-mentioned IPF is completely to free all these constraints for new codecs.

[0029] In summary, there is a need for a concept that allows switching between different audio streams and that provides an improved trade-off between amount of overhead and ease of implementation. SUMMARY

[0030] An audio decoder according to an embodiment of the application creates a kind of audio decoder for providing a decoded audio signal representation from an encoded audio signal representation. The audio decoder is configured to adjust decoding parameters in dependence on configuration information. The audio decoder is configured to decode one or more audio frames using a current configuration (e.g. using the currently active configuration information). Further, the audio decoder is configured to compare the configuration information in a configuration structure associated with the one or more frames to be decoded with the current configuration information and to perform a transition 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 if the configuration information in the configuration structure associated with the one or more frames to be decoded, or a relevant part of the configuration information in the configuration structure associated with the one or more frames to be decoded (e.g. the part up to and including the stream identifier), is different from the current configuration information. Wherein the audio decoder is configured to consider stream identifier information included in the configuration structure when comparing the configuration information such that a difference between a stream identifier previously acquired by the audio decoder and a stream identifier represented by the stream identifier information in the configuration structure associated with the one or more frames to be decoded causes said transition to be performed.

[0031] The embodiment according to the present application is based on the idea that the presence and evaluation of stream identifier information included in the configuration structure allows to distinguish between different streams at the audio decoder side and thus also the execution of a conversion, even in case the actual decoding configuration (which can be described by the remaining configuration information in the configuration structure) is the same for both streams. Thus, the stream identifier can be used as a criterion to distinguish between different streams between which a conversion can be made. Since the stream identifier information is included in the configuration structure (e.g. together with other configuration information to adjust 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 made or not. For example, the stream identifier information is included in a sub-data structure of the data structure defining the decoding parameters ("configuration structure") such 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 a conversion from a first stream to a second stream without any impact on the decoding parameters when decoding consecutive parts of a single stream, even in case the same decoding parameters are used in different streams. It is possible to recognize a switch between different streams at the audio decoder side without the need to access information from different protocol levels, even in case the same decoding parameters are used in different streams. Moreover, it is not necessary to use the same decoding parameters in different streams at positions where a switch between different streams is allowed.

[0032] In summary, the concept presented in this application allows to recognize a switch between different streams with moderate implementation complexity (e.g. without the need to extract dedicated signaling information from different protocol levels and forward it to the audio decoder) while avoiding the need to enforce specific encoding / decoding settings (e.g. selection of windows etc.) at the conversion point. Thus, excessive overhead and a degradation of the audio quality can also be avoided.

[0033] In a preferred embodiment, the audio decoder is configured to check whether the configuration structure comprises stream identifier information and to selectively consider the stream identifier information in the comparison if the stream identifier information is included in the configuration structure. Thus, it is not necessary to include the stream identifier information in every configuration structure. Instead, the stream identifier can be omitted in configuration structures of audio frames for which the possibility of a switch between different streams is not required. Thus, some bits can be saved and the evaluation of the stream identifier information can be avoided at points where a switch between different streams is not allowed.

[0034] In a preferred embodiment, the audio decoder is configured to check whether the configuration structure comprises a configuration extension structure and to check whether the configuration extension structure comprises 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] Thus, the stream identifier can be placed in a configuration extension structure, the presence of which is optional, wherein even the presence of the stream identifier information can be considered optional even if the configuration extension structure is present. Thus, the audio decoder can flexibly identify whether stream identifier information is present or not, which gives the audio encoder the possibility to avoid including unnecessary information. By placing the stream identifier in a data structure that can be activated and deactivated (e.g. by a flag in the fixed (always present) part of the configuration structure), the stream identifier information can be placed exactly where it is needed, while saving bits if the stream identifier information is not needed. This is advantageous, as it is not necessary to include the stream identifier information for every frame having a configuration structure, as switching between streams is typically only possible at specified times.

[0036] In a preferred embodiment, the audio decoder is configured to accept a variable ordering of the configuration information items in the configuration extension structure. For example, the audio decoder is configured to consider the configuration information items (e.g. configuration extensions) arranged before the stream identifier information (e.g. before an item named "streamID") in the configuration extension structure (e.g. and the stream identifier information) when comparing the configuration information in the configuration structure associated with the one or more frames to be decoded with the current configuration information. Further, the audio decoder can be configured to not consider the configuration information items (e.g. configuration extensions) arranged after the stream identifier information in the configuration extension structure (e.g. "UsacConfigExtension()") when comparing the configuration information in the configuration structure associated with the one or more frames to be decoded with the current configuration information.

[0037] By using such a concept, the transition between different streams can be detected in a very flexible way. For example, all such configuration information items that indicate a "significant" change of the audio stream can be placed in the configuration extension structure before the stream identifier information, so that a change of these parameters triggers a transition from one stream to another stream. On the other hand, by not considering some configuration information items when comparing the information in the configuration structure associated with one or more frames to be decoded with the current configuration information, it is possible to change "minor" configuration parameters of the audio decoder without triggering a "transition", i.e. a switch from one stream to another stream, which can be associated with a re-initialization. In other words, by only evaluating the configuration information items arranged before the stream identifier information in the configuration extension structure and the stream identifier information itself in the comparison, it is possible to avoid that any change of "minor" decoding parameters triggers a "transition". Instead, the audio encoder can place such "minor" configuration information items (which are related to minor decoding parameters) in the configuration extension structure after the stream identifier information. Then, the audio encoder can change such "minor" configuration information items within a stream without triggering a "transition" (or a re-initialization) due to each change. On the other hand, those configuration information items that remain unchanged in a stream can be placed in the configuration extension structure before the stream identifier information, and a change of such "highly relevant" configuration information items (which can indicate a "significant" change of the audio stream, for example) will result in a "transition" (and typically in a re-initialization of the audio decoder). Since the audio decoder can also accept a variable ordering of the configuration information items in the configuration extension structure, the audio encoder can decide according to signal characteristics or according to other criteria which changes of which configuration information items should trigger a "transition" or a re-initialization of the audio decoder and which configuration information items within a stream should be changeable without triggering a "transition" or a re-initialization of the audio decoder.

[0038] In a preferred embodiment, the audio decoder is configured to identify one or more configuration information items in the configuration extension structure based on one or more configuration extension type identifiers before the respective configuration information item. By using such configuration extension type identifiers, a variable ordering of the configuration information items can be realized.

[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 a bit of the configuration structure that is evaluated by the audio decoder. 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 that is evaluated by the audio decoder. Thus, it can be flexibly decided when stream identifier information should be added to an audio stream, and the audio decoder can easily determine when such stream identifier information is available. Thus, it is sufficient to include stream identifier information of an audio stream (which requires multiple bits) at points where switching between different streams is possible. Immediate play frames (IPF) within a continuous audio stream do not need to carry stream identifier information at positions where switching between different streams is not possible, which saves bitrate.

[0040] In a preferred embodiment, the audio decoder is configured to obtain and process an audio frame representation (e.g., an immediate play frame, IPF) comprising random access information (e.g., an “Audio PreRoll Extension Payload”, also referred to as “AudioPreRoll()”). The random access information comprises a configuration structure (e.g., referred to as “Config()”) and information for bringing the state of the processing chain of the audio decoder into a desired state (e.g., represented with “AccessUnit()”). The audio decoder is configured to, if the audio decoder finds configuration information in the configuration structure (e.g., “Config()”) of the random access information (e.g., immediate play frame, IPF), or a relevant portion of the configuration information in the configuration structure of the random access information, is different from the current configuration information, fade between audio information represented by (decoded) audio frames processed prior to reaching the audio frame representation comprising the random access information and audio information obtained based on the audio frame representation comprising the random access information after initializing the audio decoder using the configuration structure of the random access information and after adjusting the state of said audio decoder using the information for bringing the state of the processing chain into the desired state. For example, if the value “numPreRollFrames” is zero, the decoding of pre-roll frames can be omitted.

[0041] In other words, by evaluating the configuration information or a relevant portion thereof (e.g., up to and including the stream identifier information) in the configuration structure, the audio decoder can recognize whether a transition between different streams is present, and in case of a transition between different streams, the audio decoder can make use of the random access information. The random access information can help to bring the processing chain of the audio decoder into an appropriate state (typically, achieved by one or more previous frames in case of no transition), thereby avoiding artifacts at the transition. In summary, the concept allows for artifact-free switching between different streams, wherein the audio decoder does not need any information from different protocol levels other than the sequence of frame representations.

[0042] In a preferred embodiment, the audio decoder is configured to continue decoding without performing an initialization of the audio decoder and without using information that brings the state of the processing chain of the audio decoder into a desired state (e.g. pre-roll extended play) if the audio decoder has already decoded the audio frame immediately preceding the audio frame represented by the audio frame representation comprising random access information (e.g. immediate play frame, IPF) and if the audio decoder finds that the relevant part of the configuration information in the configuration structure of the random access information is identical to the current configuration information. Thus, if the audio decoder identifies by comparing the relevant part of the configuration information in the configuration structure with the current configuration information that there is no transition between different streams but a continuous play out of the same stream, the overhead (e.g. processing or computational overhead) caused by performing an initialization of the audio decoder is avoided. Thus, a high efficiency is achieved and the initialization of the audio decoder is only performed when needed.

[0043] In a preferred embodiment, the audio decoder is configured to perform an initialization of the audio decoder using the configuration structure of the random access information and to adjust the state of the audio decoder using information that brings the state into a desired state if the audio decoder has not yet decoded the audio frame immediately preceding the audio frame represented by the audio frame representation comprising random access information. In other words, the initialization is also performed if there is an actual "random access" where the audio decoder knows that the previous audio frame has not yet been decoded. Thus, the random access information is used in case of a real "random access" (i.e. when jumping to a certain frame) and in case of a switch between different streams (where the "real" random access can be signaled to the audio decoder and where the switch between different streams can only be identified by the audio decoder by evaluating stream identifier information).

[0044] It should be noted that the audio decoder discussed here can optionally be supplemented by any of the 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 decoding parameters to be used by an audio decoder). The configuration structure further comprises a stream identifier.

[0046] Thus, the audio encoder provides an audio signal representation which can be well used by the above mentioned 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 which does not describe the decoder configuration (or decoding parameters) to be used by the audio decoder but identifies the stream. Thus, the encoded audio signal representation includes the stream identifier and based on the encoded audio signal information itself different streams can be identified without any information from different protocol levels being required. For example, since the stream identifier information is a mandatory part of the audio signal representation or of the configuration structure included within the audio signal representation, there is no need to use information provided on packet level. Thus, as discussed herein, the audio decoder can identify a switch 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 the stream identifier in a configuration extension structure of the configuration structure, wherein the configuration extension structure including the stream identifier can be enabled and disabled by the audio encoder. Thus, it can be flexibly decided on the audio encoder side whether stream identifier information should be included or not. For example, for audio frames where the audio encoder knows that there will be no stream switch, the inclusion of stream identifier information can be selectively omitted.

[0048] In a preferred embodiment, the audio encoder is configured to include a configuration extension type identifier specifying the stream identifier in the configuration extension structure to signal that there is a stream identifier in the configuration extension structure. Thus, even if there is other configuration extension information in the configuration extension structure, the stream identifier information can be omitted. In other words, not every configuration extension structure has to 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 not including the stream identifier. Thus, the stream identifier is only included in a configuration structure if the audio encoder recognizes that this is necessary. For example, the audio encoder only needs to include the stream identifier in the configuration structure of frames where a switch between streams can take place. By doing so, the bit rate can be kept rather small.

[0050] In a preferred embodiment, the audio encoder is configured to switch between the provision of first encoded audio information represented by a first sequence of audio frames and second encoded audio information represented by a second sequence of audio frames; wherein a correct rendering of a first audio frame of the second sequence of audio frames after a last frame of the first sequence of audio frames is rendered requires a re-initialization of the audio decoder. In this case, the audio encoder is configured to include a configuration structure in an audio frame representation representing the first frame of the second sequence of audio frames, the configuration structure comprising a stream identifier associated with the second sequence of audio frames. The stream identifier associated with the second sequence of audio frames is selected to be different from a stream identifier associated with the first sequence of audio frames. Thus, the audio encoder can provide within the configuration structure signaling allowing the audio decoder to distinguish between different streams and to identify when a re-initialization (also referred to as a "transition") should be performed.

[0051] In a preferred embodiment, the audio encoder does not provide any other signaling information than the stream identifier indicating a switch from the first sequence of audio frames to the second sequence of audio frames. Thus, the bit rate can be kept comparably small. In particular, it can be avoided that signaling in addition to the encoded audio information is included in different protocol levels. Moreover, the audio encoder does not know in advance when the switch from the first sequence of audio frames to the second sequence of audio frames actually occurs. For example, the audio decoder can first request audio frames from the first sequence of audio frames and the audio decoder (or any other control device controlling the provision of audio frames) can decide that now audio frames from the second stream should be processed by the audio decoder when the audio decoder identifies certain needs (e.g. when the available bit rate increases or decreases). However, in certain cases, the audio decoder can not know when (or exactly when) to switch between the provision of audio frames from the first sequence and the provision of audio frames from the second sequence and can only be able to identify from which sequence of audio frames the currently received audio frames originate by evaluating the stream identifier included in the configuration structure.

[0052] In a preferred embodiment, the audio encoder is configured to provide a first sequence of audio frames (e.g., a first stream) and a second sequence of audio frames (e.g., a second stream) using different bit rates (where the first stream and the second stream can represent the same audio content). Moreover, the audio encoder can be configured to signal to the audio decoder the same decoder configuration information for decoding the first sequence of audio frames and for decoding the second sequence of audio frames in addition to different bitstream identifiers. In other words, the audio encoder can signal to the audio decoder to use the same decoder parameters, but the first stream and the second stream can still comprise different bit rates. This can be caused, for example, by using different quantization resolutions or different psychoacoustic models when providing the first audio stream and the second audio stream. However, these different quantization resolutions or different psychoacoustic models do not affect the decoding parameters to be used by the audio decoder, but only the actual bit rate. Thus, the different bitstream identifiers can be the only possibility for the audio decoder to distinguish whether the audio frames to be decoded are from the first stream or from the second stream, and the evaluation of the bitstream identifiers also allows the audio decoder to identify when a transition (or re-initialization) should be made.

[0053] Thus, the audio encoder can serve in environments where changes in available bit rates can occur, and the signaling overhead can remain quite small.

[0054] Moreover, it should be noted that the audio encoder discussed here can optionally be supplemented by any of the features and functionalities and details described herein.

[0055] Another embodiment according to the present application relates to a method for providing a decoded audio signal representation based on an encoded audio signal representation. The method comprises adjusting decoding parameters according to configuration information, and the method comprises decoding one or more audio frames using the current configuration information (e.g., the currently active configuration information). Moreover, the method further comprises comparing the configuration information in the configuration structure associated with the one or more frames to be decoded with the current configuration information, and the method comprises making a transition (e.g., including a re-initialization of the decoding) to use the configuration information in the configuration structure associated with the one or more frames to be decoded as a new configuration for the decoding 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), is different from the current configuration information. The method further comprises considering the stream identifier information included in the configuration structure when comparing the configuration information, such that a difference between the stream identifier previously acquired 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 a transition. The method is based on the same considerations as the audio decoder described above.

[0056] The method can be supplemented by any of the features and functionalities described herein, individually or in combination, as well as the details.

[0057] A method for providing an encoded audio signal representation is created according to another embodiment of the present application. The method comprises encoding overlapping or non-overlapping frames of an audio signal using encoding parameters to obtain the encoded audio signal representation. The method comprises providing a configuration structure describing the encoding parameters (or, equivalently, decoding parameters to be used by an audio decoder), wherein the configuration structure comprises a stream identifier. The method is based on the same considerations as the above-described audio encoder.

[0058] Furthermore, it should be noted that the methods described herein can be supplemented by any of the features and functionalities described above with respect to the corresponding audio decoder and audio encoder. Moreover, the methods can be supplemented by any of the features, functionalities and details described herein, individually or in combination.

[0059] An audio stream is created according to an embodiment of the present application. The audio stream comprises an encoded representation of overlapping or non-overlapping frames of an audio signal. The audio stream further comprises a configuration structure describing the encoding parameters (or, equivalently, decoding parameters to be used by an audio decoder). The configuration structure comprises stream identifier information (e.g. in the form of an integer value) representing a stream identifier.

[0060] The audio stream is based on the above-described considerations. In particular, the stream identifier included in the configuration structure of the audio stream (which also describes the encoding parameters (or, equivalently, decoding parameters to be used by an audio decoder)) allows the audio decoder to distinguish between different streams, even if the same encoding parameters (or decoding parameters) are used.

[0061] In a preferred embodiment, the 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 a bit of the configuration structure. Moreover, 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. The use of such an audio stream allows to flexibly include the stream identifier information when needed, while it can be omitted when not needed (e.g. for frames that do not allow switching between multiple streams). Thus, bit rate can be saved.

[0062] In a preferred embodiment, the stream identifier is embedded in a sub-data structure of the representation of the audio frame (and can be extracted by the audio decoder from such sub-data structure). By embedding the stream identifier in a sub-data structure of the representation of the audio frame, it can be avoided that the audio decoder has to use information from a higher protocol level. Instead, for decoding the audio frame, the audio decoder only needs the representation of the audio frame and can decide whether there is a switch between different streams.

[0063] In a preferred embodiment, the stream identifier is only embedded in a sub-data structure of the representation of the audio frame comprising the configuration structure (and can be extracted by the audio decoder from such sub-data structure of the representation of the audio frame comprising the configuration structure). The idea is based on the finding that a switch between streams (without noticeable artifacts) can only be performed at frames comprising the configuration structure. Thus, it has been found that it is sufficient to embed the stream identifier in a sub-data structure of the representation of the audio frame comprising the configuration structure, while not including the stream identifier in representations of audio frames not comprising the configuration structure.

[0064] The audio streams described herein can be supplemented by any of the features, functionalities and details discussed herein, individually or in combination. In particular, the features described for the audio encoder, the audio decoder and the stream provider can also be applied to the audio streams.

[0065] An audio stream provider for providing an encoded audio signal representation is created according to embodiments of the present application. The audio stream provider is configured to provide encoded versions of time-wise 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, decoding parameters to be used by an audio decoder) as part of the encoded audio signal representation, wherein the configuration structure comprises a stream identifier. This audio stream provider is based on the same considerations as the above-described audio encoder and the above-described audio decoder.

[0066] In a preferred embodiment, the audio stream provider is configured to provide the encoded audio signal representation such that the stream identifier is included in a configuration extension structure of the configuration structure, wherein said 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 idea as discussed above with respect to the audio encoder and with respect to the audio decoder. 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, e.g. provided by multiple audio encoders operating in a parallel fashion or from a storage medium).

[0067] In a preferred embodiment, the audio stream provider is configured to provide the encoded audio signal representation such that the configuration extension structure comprises 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 as mentioned above with respect to the audio encoder and with respect to the audio stream.

[0068] In a preferred embodiment, the audio stream provider is configured to provide the encoded audio signal representation such that the encoded audio signal representation comprises 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 does not have to be included in every configuration structure. Instead, there can be a flexible adjustment of the configuration structures that should include the stream identifier. Typically, the stream identifier will be included in the configuration structure of such audio frames for which there is a switch between streams (or a switch between streams is anticipated or allowed). In other words, a switch between different streams including different configuration structures than the stream identifier will only be performed by the stream provider at frames where the stream identifier is present. Thus, the audio decoder (receiving the encoded audio representation from the audio stream provider) has the possibility to identify a switch between different streams even if the decoding parameters (signaled by the configuration structure) are basically the same or even completely identical.

[0069] In a preferred embodiment, the audio stream provider is configured to switch between the provision of a first portion of encoded audio information (represented by a first sequence of audio frames) and a second portion of encoded audio information (represented by a second sequence of audio frames), wherein a reinitialization of the audio decoder is required for a correct rendering of a first audio frame of the second sequence of audio frames after rendering of a last frame of the first sequence of audio frames. The audio stream provider is configured to provide the encoded audio signal representation such that the audio frame representation representing the first frame of the second sequence of audio frames comprises a configuration structure comprising a stream identifier associated with the second sequence of audio frames, wherein the stream identifier associated with the second sequence of audio frames and the stream identifier associated with the first sequence of audio frames are different. In other words, the audio stream provider switches between two audio streams (sequences of audio frames) with associated different stream identifiers. Thus, the audio decoder will generally know the stream identifier associated with the first sequence of audio frames (e.g. by evaluating the configuration structure associated with the first sequence of audio frames), and upon the audio decoder receiving the first frame of the second sequence of audio frames, the audio decoder will be able to evaluate the configuration structure comprising the stream identifier associated with the second sequence of audio frames and 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 provides audio frames from the first stream, then switches to provide audio frames from the second stream, and provides the appropriate signaling information (i.e. the stream identifier) within the configuration structure of the first frame of the second audio stream provided after the switch. Thus, 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 the encoded audio signal representation such that the encoded audio signal representation does not provide any other signaling information than the stream identifier indicating the switch from the first sequence of audio frames to the second sequence of audio frames. Thus, a significant saving in bit rate can be achieved. The protocol complexity also remains small, as no information has to be included at different protocol levels and such information has to be extracted from different protocol levels at the audio decoder side.

[0071] In a preferred embodiment, the audio stream provider is configured to provide the encoded audio signal representation such that the first sequence of audio frames (e.g. the first stream) and the second sequence of audio frames (e.g. the second stream) are encoded using different bitrates. Furthermore, the audio stream provider is configured to provide the encoded audio signal representation such that the encoded audio signal representation signals to the audio decoder the same decoder configuration information (or decoder parameters or decoding parameters) for decoding the first sequence of audio frames and for decoding the second sequence of audio frames except for different bitstream identifiers. Thus, the audio stream provider provides very similar configuration information for different streams (the first stream and the second stream), which can e.g. only differ in the bitstream identifier. In this case, the use of bitstream identifiers is particularly useful as they allow to reliably distinguish different bitstreams with minimal signaling overhead.

[0072] In a preferred embodiment, the audio stream provider is configured to switch between providing the first sequence of audio frames and the second sequence of audio frames to the audio decoder, wherein the first sequence of audio frames and the second sequence of audio frames are encoded using different bitrates. The audio stream provider is configured to selectively switch between providing the first sequence of audio frames and providing the second sequence of audio frames at audio frames where the audio frame representation (e.g. the immediate play frame, IPF) comprises random access information (e.g. the audio pre-roll extension payload “AudioPreRoll()”) while refraining from switching between the sequences at audio frames which do not comprise random access information. The audio stream provider is configured to provide the encoded audio signal representation such that a stream identifier is comprised in the configuration structure of the audio frame provided when switching from the first sequence of audio frames to the second sequence of audio frames. For example, by this configuration of the audio stream provider it is ensured that switching between the provision of frames of the first sequence of audio frames and the provision of frames of the second sequence of audio frames only takes place when the first frame of the second sequence of audio frames comprises a configuration structure with the stream identifier as well as the random access information. Thus, the audio decoder can detect the switch between different audio streams and can thus identify that the random access information should be evaluated (while it is typically not evaluated when there is no switch between different audio streams and when the audio decoder assumes to present a continuous sequence of audio frames of a single stream.).

[0073] Thus, by such a concept a good audio quality without artifacts when switching between different audio streams can be achieved.

[0074] In another embodiment, the audio stream provider is configured to obtain multiple parallel sequences of audio frames 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 of sequences one or more sequences of frames are associated with using the stream identifier in the configuration structure comprising the first audio frame representation provided after the switch. Thus, the audio decoder can identify transitions between different streams with less overhead without the need to use information from other protocol layers.

[0075] It is noted that the audio stream provider discussed here can be supplemented by any of the features, functions and details described herein, individually or in combination.

[0076] A method for providing an encoded audio signal representation is created according to another embodiment of the invention. The method comprises providing an encoded version of overlapping or non-overlapping frames of an audio signal encoded using encoding parameters as part of the encoded audio signal representation. The method comprises 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 comprises a stream identifier.

[0077] The method is based on the same considerations as the stream provider discussed above. The method can be supplemented by any of the features, functions and details described herein, e.g. with respect to the stream provider, also with respect to the audio encoder, the audio decoder or the audio stream.

[0078] A computer program for performing the methods described herein is created according to another embodiment of the invention. BRIEF DESCRIPTION OF DRAWINGS

[0079] Embodiments according to the invention will be described hereinafter with reference to the accompanying drawings, in which:

[0080] Figure 1 A schematic block diagram of an audio decoder according to a (simple) embodiment of the invention is shown;

[0081] Figure 2 A schematic block diagram of an audio decoder according to an embodiment of the invention is shown;

[0082] Figure 3 A schematic block diagram of an audio encoder according to a (simple) embodiment of the invention is shown;

[0083] Figure 4 A schematic block diagram of an audio stream provider according to a (simple) embodiment of the invention is shown;

[0084] Figure 5A schematic block diagram of an audio stream provider according to an embodiment of the application is shown;

[0085] Figure 6 A representation of an audio frame allowing random access and comprising a configuration section with a stream identifier in a configuration extension section according to an embodiment of the application is shown;

[0086] Figure 7 A representation of an example audio stream according to an embodiment of the application is shown;

[0087] Figure 8 A representation of an example audio stream according to an embodiment of the application is shown;

[0088] Figure 9 A schematic representation of possible decoder functions of an audio decoder as described herein is shown;

[0089] Figure 10a A representation of an example configuration structure used by the audio encoders and audio decoders described herein is shown; and

[0090] Figure 10b A representation of an example configuration extension structure used by the audio encoders and audio decoders described herein is shown;

[0091] Figure 10c A representation of an example stream identifier bit stream element is shown; and

[0092] Figure 10d An example of values for "usacConfigExtType" is shown, which can optionally replace table 74 in the USAC standard;

[0093] Figure 11a A flow chart of a method for providing a decoded audio signal representation based on an encoded audio signal representation according to an embodiment of the application is shown;

[0094] Figure 11b A flow chart of a method for providing an encoded audio signal representation according to an embodiment of the application is shown; and

[0095] Figure 11c A flow chart of a method for providing an encoded audio signal representation according to an embodiment of the application is shown. DETAILED DESCRIPTION

[0096] 1. Audio decoder according to Figure 1 claim 0

[0097] Figure 1 A schematic block diagram of an audio decoder according to a (simple) embodiment of the application is shown.

[0098] The audio decoder 100 receives an encoded audio signal representation 110 and provides a decoded audio signal representation 112 based on the encoded audio signal representation 110. For example, the encoded audio signal representation 110 can be an audio stream comprising a sequence of Unified Speech and Audio Coding (USAC) frames. However, the encoded audio signal representation can 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, comprise configuration information 110 which may, for example, be comprised in a configuration structure and may, for example, comprise a stream identifier. The stream identifier may, for example, be comprised in the configuration information or the configuration structure. The configuration information or the configuration structure may, for example, be associated with one or more frames to be decoded and may, for example, describe decoding parameters to be used by the audio decoder.

[0099] Here, the decoder 100 may, for example, comprise a decoder core 130 which can be configured to decode one or more audio frames using current configuration information (wherein the current configuration information may, for example, define the decoding parameters). The audio decoder is further configured to adjust the decoding parameters in accordance with the configuration information 110a.

[0100] For example, the audio decoder is configured to compare the configuration information in the configuration structure associated with the one or more frames to be decoded with the current configuration information (e.g. the configuration information used for decoding one or more previously decoded frames). Furthermore, the audio decoder can be configured to perform a transition to use the configuration information in the configuration structure associated with the one or more frames to be decoded as new configuration information for performing the decoding if the configuration information in the configuration structure associated with the one or more frames to be decoded is different from the current configuration information or a relevant part of the configuration information in the configuration structure associated with the one or more frames to be decoded is different from the current configuration information. When performing the "transition", the audio decoder may, for example, re-initialize the decoder core 130 using random access information which is intended to describe a state of the decoder core that should be used for correctly decoding the audio frames (the first audio frame) after the "transition".

[0101] In particular, the audio decoder is configured to consider the stream identifier comprised in the configuration structure (i.e. within the configuration information) when comparing the configuration information (i.e. when comparing the configuration information in the configuration structure associated with the one or more frames to be decoded with the current configuration information) such that a difference between the stream identifier previously acquired by the audio decoder and the stream identifier indicated by the stream identifier information in the configuration structure associated with the one or more frames to be decoded results in performing the transition.

[0102] In other words, the audio decoder can for example comprise a memory for the current configuration (or for the current configuration information), which can be denoted by 140. The audio decoder 100 can further comprise a comparator (or any other means for performing a comparison) 150, which can compare at least a relevant part of the current configuration information (including the stream identifier) and a corresponding part of the configuration information (including the stream identifier) associated with the next (audio) frame to be decoded. For example, the relevant part can be the part up to and including the stream identifier, wherein the configuration information following the stream identifier in the bitstream representing the configuration information can be ignored in some embodiments.

[0103] If this comparison, which can be performed by the comparator 150, indicates a difference between the current configuration information (or the relevant part thereof) and the configuration information associated with the next (audio) frame to be decoded (or the relevant part thereof), the comparator 150 can recognize that a “switch” should be made.

[0104] Making the switch can for example comprise re-initializing the decoder core, even if the decoding parameters described by the configuration information associated with the next (audio) frame to be decoded are identical to the decoder configuration (decoding parameters) described by the current configuration information (wherein the configuration information associated with the next audio frame to be decoded only differs from the current configuration information in that the stream identifier is different). On the other hand, if the configuration information associated with the next audio frame to be decoded differs more from the current configuration information, for example by defining different decoding parameters, the audio decoder 100 will naturally also make a “switch”, which typically means re-initializing the decoder core 130 and changing the decoding parameters.

[0105] In summary, the audio decoder 100 according to Figure 1 by evaluating the stream identifier included in the configuration structure of the audio frame, is able to identify a switch between frames of different audio streams, even if the decoding parameters to be used by the decoder core 130 remain unchanged, which eliminates the need for dedicated signaling of a switch between audio streams and / or a condition for re-initializing the decoder core. Thus, the decoder 100 can correctly decode the audio frames even if there is a switch from one stream to another, since the audio decoder can identify such a switch and handle it appropriately, for example by re-initializing the audio decoder and reconfiguring the audio decoder with new configuration parameters, if necessary.

[0106] It should be noted that the audio decoder 100 according to Figure 1 may optionally be supplemented by any of the features and functionalities described herein and the details individually or in combination.

[0107] 2. According to Figure 2 audio decoder

[0108] Figure 2A schematic block diagram of an audio decoder 200 according to an embodiment of the application is shown.

[0109] The audio decoder 200 is configured to receive an encoded audio signal representation 210 and to provide a decoded audio signal representation 212 based thereon. The encoded audio signal representation 210 can for example be an audio stream comprising a sequence of Unified Speech and Audio Coding (USAC) frames. However, it is also possible that a sequence of audio frames encoded using a different audio coding concept is input into the audio decoder 200. For example, the audio decoder can receive an audio frame 220 of a first stream and can subsequently (as a next audio frame) receive an audio frame 222 of a second stream. The audio frame 220, the audio frame 222 can for example be provided by an audio stream provider. For example, the audio frame 220 can comprise an encoded representation 220a of an 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 excitation and encoded Linear Predictive Coding coefficients. The audio frame 222 can for example also comprise an encoded representation 222a of an audio signal which can have the same form as the encoded representation 220a of the audio signal comprised in the frame 220. However, in addition, the frame 222 can also comprise random access information 222b which in turn can comprise a configuration structure 222c and information 222d for bringing a state of a processing chain (e.g. of a decoder core) into a desired state. This information 222d can for example be denoted as "AudioPreRoll".

[0110] The audio decoder 200 can for example extract the configuration structure 222c from the encoded audio signal representation 210, the configuration structure 222c can also be regarded as configuration information. The configuration structure 222c can for example comprise information or a flag (or a bit) indicating whether a configuration extension structure 226 is present as part of the configuration structure. This information or flag or bit is denoted with 224a.

[0111] The configuration extension structure 226 can for example comprise information or a flag or a bit or an identifier indicating whether a stream identifier is present. The latter information, flag, bit or identifier is denoted with 228. If the information or flag or bit or identifier 228 indicates that a stream identifier is present, then a stream identifier 230 is also present, the stream identifier 230 can typically be part of the configuration extension structure 226.

[0112] Furthermore, the configuration extension structure can comprise information whether other information (e.g. appropriate bits or flags or identifiers) is present and can also comprise other information (if applicable).

[0113] The audio decoder 100 can for example comprise a memory 240 which can hold current configuration information (e.g. configuration information extracted from a previous frame or configuration structure of a previous frame for decoding the previous frame). The audio decoder 200 further comprises a comparator or comparing means 250 configured to compare the configuration information associated with the audio frame to be decoded with the current configuration information stored in the memory 240. For example, the comparator or comparing means 250 can 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 the memory up to and including the stream identifier. In other words, any item of information in the configuration structure 222c up to and including the stream identifier can be compared with the current configuration information from the memory 240 to determine whether the configuration information in the 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 the configuration structure 222c actually comprises the configuration extension structure 226 and the stream identifier 230. If the configuration extension structure 226 is not present, it will of course not be considered in the comparison. Furthermore, if the stream identifier 230 is not present (e.g. because the flag 228 indicates that it is not included in the frame 222), the stream identifier 230 will of course not be evaluated in the comparison. Furthermore, any configuration information in the configuration structure 222c after the stream identifier 230 will generally be ignored in the comparison, since such configuration information is assumed to have a secondary importance and a change of such configuration information (which is after the stream identifier 230 in the configuration structure 222c) does not represent a switch between different streams, but can even occur within a single stream.

[0114] In summary, the comparing means 250 will generally compare the configuration information of the audio frame to be decoded (up to and including the stream identifier) but preferably omitting the configuration arranged in the configuration extension structure after the stream identifier with the current configuration information (obtained from a previously decoded audio frame). Thus, if a discrepancy in the configuration information is found in the comparison, the comparing means 250 detects a new stream (or substream). Thus, this comparison serves to control the transition from a first stream (or substream) to a second stream (or substream).

[0115] Implementing such a transition can for example comprise flushing the decoding of the last frame of the first stream, reconfiguring, state initialization of the processing chain to the desired state, and for example the execution of a fade-in fade-out between the time domain representation of the last frame of the first stream and the first frame of the second stream.

[0116] The audio decoder 200 further comprises a decoder core 216 which can be configured to decode frames of the first stream (or first sequence of frames) using the first configuration (which can be described by the current configuration information). Further, the decoder core 216 can be configured to decode the second stream or second sequence of frames using the second configuration (e.g. using the new configuration which is described by the configuration information 222c of the audio frame to be decoded). For example, a re-initialization of the decoder core can be triggered when the comparison 250 finds a difference between the significant part of the configuration information 222c of the audio frame 222 to be decoded and the current configuration information in the memory 240.

[0117] For example, a re-initialization of the decoder can be used between the last frame of the first stream and the first frame of the second stream. Alternatively, for example, if the decoder is implemented (at least partially) in software, a "new instance" of the decoder can be used. Further, when switching from the decoding of the first stream to the decoding of the second stream ("transition"), some side information can be used to bring the state of the processing chain of the decoder core into a desired state. For example, the context state of the arithmetic decoder can be brought into a desired state or the content of the temporal discrete filter can be brought into a desired state. This can be done using dedicated information which is also referred to as "audio pre-roll" APR. It is important to bring the state of the processing chain into a desired state because the first frame of the second stream which is processed (decoded) by the audio decoder can not be the actual first frame of the second audio stream. Rather, when the audio stream provider switches from providing frames from the first audio stream to providing frames from the second audio stream, the first frame of the second audio stream which is processed by the audio decoder can be a certain frame during the second audio stream. Thus, the "first frame of the second audio stream" which is processed by the audio decoder can depend on a specific setting of the state of the decoding chain which is typically caused by the decoding of previous frames of the second audio stream (before the audio frame to be decoded, the audio frame is the first audio frame of the second audio stream which is processed by the audio decoder after the transition). Thus, when switching from the decoding of audio frames of the first audio stream to the decoding of audio frames of the second audio stream, the lost setting of the state of the audio decoder (which would typically be achieved by decoding previous frames of the second audio stream) is now achieved by using "audio pre-roll" information which defines an appropriate setting of the state of the audio decoding.

[0118] As can be seen from reference sign 270, the decoding of the last frame of the first audio stream provides a decoded portion 272 (also denoted as "useful portion"). Optionally, the decoding of the last frame of the first audio stream can 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 in order to properly decode the first frame of the second audio stream. Furthermore, 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 in time with the useful portion 272 of the last frame of the first stream. Thus, a crossfade can 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 glitchless transition 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) is performed.

[0119] In summary, the audio decoder 200 can recognize when the audio encoder or audio stream provider switches from providing audio frames of a first stream to providing audio frames of a second stream. For this purpose, the audio decoder evaluates the configuration information 222c (also denoted as configuration structure) and performs a comparison with the current configuration information stored in the memory 240. When it is recognized that the audio frame to be decoded belongs to a different audio stream when compared to the previously decoded audio frame, a re-initialization of the decoder core is performed, which typically includes bringing the state of the processing chain of the decoder core into a desired state by evaluating certain "audio pre-roll" information. Thus, the audio decoder can properly process the case that the audio encoder or audio stream provider provides audio frames from a new stream (second audio stream) without further notification (except for providing the configuration structure 222c including the stream identifier 230).

[0120] It should be noted that the audio decoder 200 described herein can be supplemented by any of the features and functionalities as well as details described herein, individually or in combination.

[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 application is shown.

[0123] The audio encoder 300 receives an input audio signal 310 (e.g. in the form of a time domain representation) and provides an encoded audio signal representation 312 based on the input audio signal 310. The audio encoder 300 comprises 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. The audio encoder 320 may, for example, comprise a time domain to spectral domain conversion and encoding of the spectral domain representation. The processing may, for example, be performed in a frame-wise manner.

[0124] Furthermore, the audio encoder may, for example, comprise a configuration structure provision 330 configured to provide a configuration structure 332 describing the encoding parameters (or, equivalently, the decoding parameters to be used by the audio decoder). The configuration structure 332 may, for example, correspond to the configuration structure 222c. In particular, the configuration structure 332 may, for example, comprise the encoding parameters (e.g. in encoded form) or, equivalently, the decoding parameters (e.g. in encoded form) describing the settings to be used by the decoder (or decoder core) when decoding the encoded audio signal representation 312. Examples of the configuration structure 332 will be described below. Furthermore, the configuration structure 332 comprises a stream identifier which may, for example, correspond to the stream identifier 230. The stream identifier may, for example, specify an audio stream (e.g. a continuous piece of audio content encoded in a continuous manner using specific encoder settings). The stream identifier provided by the configuration structure provision 330 may, for example, be chosen such that between audio streams for which it should be possible to switch without artifacts and without the need to explicitly inform the audio decoder about this switch all of these audio streams should carry different stream identifiers. However, in some cases it can be sufficient if these streams with associated identical encoding parameters (or, equivalently, decoding parameters to be used by the audio decoder) comprise different stream identifiers. In other words, it can be sufficient to only require different stream identifiers for these streams for which the other encoding or decoding parameters are identical.

[0125] The encoder control 340 may, for example, control both the encoder core 320 and the configuration structure provision 330. The encoder control 340 may, for example, decide on the encoding parameters to be used by the encoder core 320 (which may, for example, at least partially correspond to the decoding parameters to be used by the audio decoder) and may, furthermore, inform the configuration structure provision 330 on the encoding parameters / decoding parameters to be included in the configuration structure 332. The encoded audio representation 312 thus comprises the encoded audio content and, furthermore, the configuration structure 332. The audio decoder (e.g. the audio decoder 100 or the audio decoder 200) may, thus, immediately recognize when different audio streams encoded using different encoding parameters are provided (even if not all of the encoding parameters are reflected by the decoding parameters included in the configuration structure).

[0126] With respect to this issue, it should be noted that usually not all encoding parameters need to be signaled to the audio decoder. For example, only those encoding parameters are signaled to the audio decoder which influence the decoding algorithm. Encoding parameters which are sent to the audio decoder in order to determine the settings of the audio decoder are also designated as decoding parameters. On the other hand, some important encoding parameters are usually not 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 decide how coarsely the audio encoder quantizes spectral values and / or how many spectral values the audio can quantize to small values or even to zero. However, for the audio decoder it is sufficient to see the encoding result but he does not need to know the specific strategy how the encoder kept the bit rate comparably small. Moreover, there can be different approaches at the encoder side to achieve a comparably small bit rate depending on the type of audio content and also depending on the actual desired bit rate. These parameters can be considered as "encoding parameters" but they will not be reflected in the "decoding parameter" set (and will not be included in the encoded representation of the audio frame) where the decoding parameters (and the encoding parameters which are incorporated in the encoded audio representation) usually only describe which settings the decoder should use, i.e. how it should process the encoded information provided by the encoder.

[0127] Thus, it can actually be the case that the decoding parameters which can be included in the configuration structure 332 can be the same even if the encoder core uses different encoding parameters (e.g. in terms of the target bit rate or in terms of parameters which influence the target bit rate like quantization resolution or involved psychoacoustic models).

[0128] In other words, the audio encoder can for example be able to encode a given audio content using different encoding parameters even if the decoding parameters which the decoder will use (in order to process and decode the encoded representation of the audio content) can be the same.

[0129] In such a case, the audio encoder can provide different stream identifiers within the configuration structure 332 so that the audio decoder can still distinguish between such different encoded representations of the audio content.

[0130] Moreover, it should be noted that the audio encoder 300 according to Figure 3 may optionally be supplemented by any of the features, functions and details described herein.

[0131] 4. The audio stream provider of Figure 4 claim 1

[0132] Figure 4 A schematic block diagram of an audio stream provider according to an embodiment of the application is shown.

[0133] The audio stream provider 400 is configured to provide the encoded audio signal representation 412. The audio stream provider is configured to provide encoded versions 422 of (temporally) overlapping or non-overlapping frames of the audio signal encoded using the encoding parameters as part of the encoded audio signal representation 412.

[0134] Further, the audio stream provider is configured to provide a configuration structure 424 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 424 comprises a stream identifier.

[0135] For example, the audio stream provider can comprise a provision (or provider) of encoded versions of overlapping or non-overlapping frames of the audio signal. Further, the audio stream provider can also comprise a configuration structure provision or configuration structure provider 423 for providing the configuration structure 424.

[0136] Thus, the audio stream provider can provide portions of different audio streams as part of the encoded audio signal representation 412, which the audio stream provider can for example store in a memory or receive from an audio encoder. When providing a portion of a first audio stream and then switching to providing a portion of a second audio stream, the configuration structure 424 can be associated with a first audio frame of the second audio stream provided after switching from the first audio stream to the second audio stream. The configuration structure 424 can for example be a portion of the respective audio stream received by the audio stream provider from an audio encoder or stored in a memory of the audio stream provider. Thus, the audio stream provider can for example store a sequence of consecutive audio frames of a first audio stream and also store a sequence of consecutive audio frames of a second audio stream. At least some frames of the first audio stream and some frames of the second audio stream can have an associated respective configuration structure describing decoding parameters to be used by the audio decoder. The configuration structure can also comprise a respective stream identifier, for example an integer identifying the audio stream. For example, the audio stream provider can be configured to provide frames 1 to n-1 (where 1 to n-1 can be a temporal index) of a first audio stream and frames n to n+x (where n to n+x can be a temporal index) of a second audio stream as part of the encoded audio signal representation 412, wherein frames 1 to n-1 of the second audio stream can not be provided as part of the encoded audio signal representation 412 directed to a particular audio decoder or a particular group of audio decoders. For example, the first audio stream and the second audio stream can represent the same content encoded at different bit rates. Thus, frames 1 to n-1 of the audio content are represented by the first audio stream encoded at a 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 in the encoded audio signal representation 412 to a particular device or group of devices.

[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 comprises 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 only takes place at a "proper" frame, which comprises a configuration structure and preferably also comprises some information for initializing the audio decoder (e.g. audio pre-roll).

[0138] Thus, the audio stream provider can for example provide some portions of the 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 structure of the first audio stream and the second audio stream will be identical, except for the fact that the stream identifier is different. This is because the decoding parameters reflected in the configuration structure 424 do not necessarily need to reflect different encoding parameters (or all encoding parameters) used for encoding the first audio stream and for encoding the second audio stream, such that it is in fact (only) a stream identifier, which is also included in the configuration structure and which allows the audio decoder to determine whether a "transition" should be made (e.g. by re-initializing the decoder core).

[0139] In some embodiments, the decision whether to provide audio frames from the first audio stream or from the second audio stream can be made by the audio stream provider (e.g. based on knowledge of network conditions, e.g. network load or available network bit rate of the network between the audio stream provider and the audio decoder). However, alternatively, 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 can not be explicitly informed by the audio stream provider and / or the intermediate network that a change of stream has occurred. In other words, the audio decoder does not receive any additional information in addition to the configuration structure 424 signaling that frames n to n+x come from the second audio stream and frames 1 to n-1 come from the first audio stream.

[0141] In summary, the audio stream provider can flexibly provide an encoded representation of the 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 the provision of encoded frames from the first audio stream and the provision of encoded frames from the second audio stream, wherein the switching between the 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 can optionally be supplemented by any of the features, functions and details described herein.

[0143] In the following, reference will be made to Figure 5 Examples of functions of the audio stream provider 400 will be described, Figure 5 A schematic block diagram of an audio stream provider according to an embodiment of the application is shown.

[0144] Figure 5 The audio stream provider shown in Fig. 5 is denoted 500 and can correspond to the audio stream provider 400 according to Figure 4 The audio stream provider 500 is configured to provide an encoded audio signal representation 512, which can correspond to the encoded audio signal representation 412.

[0145] In particular, the audio stream provider can be configured to switch between the provision of frames from the first audio stream and from the second audio stream. For example, the audio stream provider 500 can be configured to switch between the provision of frames from the first audio stream and from the second audio stream only at so-called "independent playout frames" (also referred to as "IPFs").

[0146] The audio stream provider 500 can store the first audio stream 520 and the second audio stream 530 in a memory or can receive them from an audio encoder. For example, the first audio stream can be encoded at a first bit rate and can comprise a first stream identifier in a configuration structure (e.g. an immediate playout frame). The second audio stream 530 can be encoded at a second bit rate and can comprise a second stream identifier in a configuration structure (e.g. an immediate playout frame). However, the first audio stream and the second audio stream can for example represent the same audio content. However, the first audio stream and the second audio stream can also represent different audio content.

[0147] For example, the first audio stream 520 can comprise independent playout frames at frame positions denoted n1, n2, n3 and n4. For example, one or more "normal" audio frames, which are not independent playout frames, can be arranged between two adjacent independent playout frames. However, in some cases, independent playout frames can also be adjacent.

[0148] Similarly, the second audio stream 530 also comprises independent playout frames at frame positions n1, n2, n3 and n4.

[0149] It should be noted that the positions of the independent playout frames in the two streams 520, 530 can optionally be the same but can also be different. For simplicity, it is assumed here that the frame positions of the independent playout frames in the two streams are the same.

[0150] However, in principle, it is important that the first frame after the switch is an independent play-out frame. For example, when switching from the provision of audio frames of the first audio stream to the provision of audio frames of the second audio stream, it should be ensured by the audio stream provider 500 that the first frame of the part of the frames provided from the second audio stream is an independent play-out frame.

[0151] An example will be described with reference to the encoded audio signal representation shown at reference sign 550. It can be seen that the encoded audio signal representation 512 comprises at its start position a part 552 comprising 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 can determine (based on an internal decision or based on some control information received externally) to switch to the second audio stream. Hence, a part 554 of audio frames of the second audio stream is provided within the encoded audio signal representation 512. For example, frames from the second audio stream with frame indices n1 to n2-1 are provided in the part 554 within the encoded audio signal representation 512. It should be noted that the first frame of the part 554 is an independent play frame, which is at frame index n1 within the second audio stream 530. However, when the frame with frame index n2-1 has been provided within the encoded audio signal representation 512, the audio stream provider can again decide to return to providing audio frames from the first audio stream 520. Hence, after (or immediately after) the audio frame with frame index n2-1 (based on the second audio stream 530), a frame with frame index n2 (taken 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 an independent play-out frame. Hence, the part from the first audio stream starts with the frame with index n2 and ends at frame index n4-1.

[0152] In summary, the encoded audio signal representation 512 is a concatenation of one or more parts of frames, wherein some parts of frames are taken from the first audio stream 520 and wherein some parts of frames are taken from the second audio stream 530. The first frame of each part is preferably an independent play-out frame, which is preferably ensured by the operation of the audio stream provider.

[0153] Such an independent play-out frame preferably comprises a configuration structure with a stream identifier, wherein the stream identifier can for example be contained in a configuration extension structure. For example, the configuration information of the first stream and the second stream can be identical except for the stream identifier (and possibly except for configuration information following the stream identifier contained within the configuration extension structure).

[0154] For example, the independent play-out frame can correspond to the frame 220 as explained above with respect to the audio decoder 200.

[0155] Further summarizing, the audio stream provider 500 has access to multiple audio streams (e.g., the first audio stream 520 and the second audio stream 530 and optionally other audio streams) and can select partial frames from the two or more audio streams to include in the encoded audio signal representation 512, which is forwarded (e.g., over a communication network) to an audio decoder. 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 independent playout frame that includes sufficient information for (artifact-free) rendering without having any decoded previous frames of any of the audio streams. Further, the audio stream provider provides the encoded audio signal representation in such a way that, depending on differences within the relevant portion of the configuration structure, the audio decoder receiving the encoded audio signal representation 512 is able to identify the switch between portions of audio frames from different streams. For some transitions, the configuration structure can differ with respect to the decoder configuration parameters, but for one or more other transitions, the configuration structure can differ only in terms of the stream identifier, while other decoder configuration parameters can be the same.

[0156] Thus, the audio decoder can identify the switch between different audio streams and perform a reinitialization ("transition") when appropriate.

[0157] 5. The audio frame of claim Figure 6 ​

[0158] Figure 6 A representation of an audio frame is shown that allows random access and includes a configuration portion with a stream identifier in a configuration extension portion.

[0159] For example, Figure 6 A representation of an audio frame is shown that allows random access and includes a configuration portion with a stream identifier in a configuration extension portion. Figure 2 An example of an audio frame that describes the role of the audio frame 222. For example, the audio frame can be a "USAC frame." Figure 6 An audio frame of the USAC frame 600 can be considered a "stream access point" or "intermediate playout frame."

[0160] For example, the frame can follow the syntax conventions of the Unified Speech and Audio Coding standard (including available modifications), but can also apply to bitstream syntax of other or newer audio standards.

[0161] For example, the USAC frame 600 can include a USAC independent flag 610. Further, the USAC frame can include an extension element denoted as "USAC ExtElement." The extension element 620 can be an extension element with configuration information and pre-roll data.

[0162] Optionally, there can be a flag "USAC ExtElementPresent" indicating that there is additional data. For example, in case of an IPF (e.g. a stream access point), this flag is preferably 1. However, this flag can be considered optional.

[0163] Further, optionally, there can be a flag "USAC ExtElementUseDefaultLength" which can be used to encode whether the default length of an extension element should be used or whether the length of an extension element is encoded. For example, in case of an IPF, preferably (but not necessarily) the value of this flag is zero.

[0164] Further, there is extension element segment data which is also denoted as "USAC ExtElementSegmentData". These extension element segment data comprise audio pre-roll information which is also denoted as "AudioPreRoll()" in the amendment of the USAC standard. The audio pre-roll optionally comprises a configuration length information "configLen" and configuration information "Config()", wherein the configuration information can be identical to the "USAC configuration information" which is also denoted as "UsacConfig()". Preferably, but not necessarily, if the configuration information is present, "configLen" should take a value greater than zero. For example, a zero value of "configLen" can indicate that the configuration information is not present. The configuration information can comprise some basic configuration information, e.g. information about the sampling frequency and information about the SBR frame length and information about the channel configuration and a number of other (optional) decoder configuration items. The other decoder configuration items can for example comprise one or more or even all of the configuration items described in the definition of the "UsacDecoderConfig()" syntax element in the USAC standard.

[0165] Further, the configuration information comprises a configuration extension structure as a sub-data structure. The configuration extension structure can for example follow the syntax of the syntax element "UsacConfigExtension()". For example, the configuration extension structure can comprise information about the number of configuration extensions "numConfigExtensions". If there is a configuration extension of type ID_Config_Ext_Stream_ID (which is typically the case in embodiments according to the present application), the stream identifier is denoted by the bitstream syntax element "streamId()", which can for example be denoted by a 16-bit value.

[0166] In summary, the configuration structure in a USAC frame comprised in an extension element comprises some configuration information for setting decoder parameters and further comprises as a configuration extension a stream identifier which can be denoted as an integer (e.g. 16) bit.

[0167] The audio pre-roll information optionally comprises further information, e.g. a flag "applyCrossfade" indicating whether or not a crossfade is applied (wherein, for example, a value of zero can indicate that no crossfade is applied), information about the number of pre-roll frames and information about the pre-roll frames, which can be denoted as "auLen" and "AccessUnit()".

[0168] The USAC frame optionally further comprises additional extension elements, and typically comprises 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. one of the USAC frames 222 or one of the playback frames IPF of the immediate playback frame IPF) can, for example, comprise extension syntax elements, wherein the extension syntax elements comprise a configuration structure (e.g. 222c) and information about one or more pre-roll frames, which can, for example, be used to bring the state of a processing chain into a desired state and which can, for example, correspond to the information 222d. Furthermore, the USAC frame comprises encoded audio information, like a single channel element, a channel pair element or a low frequency effect element. Thus, an audio decoder can identify a change of an audio stream based on the stream identifier "streamId()". Furthermore, the audio decoder can perform a glitch-free decoding of the USAC frame 600, because decoding parameters can be set based on the configuration information comprised in the configuration structure and because an appropriate state of the audio decoding can be set based on the pre-roll frame information. Thus, the described USAC frame allows switching between decoding of frames from different audio streams and also allows detecting the switching by an audio decoder without additional control information.

[0170] The USAC frame 600 described herein can correspond to the audio frame 222, or can correspond to a first frame of the second audio stream comprised in the encoded audio signal representation 312, or can correspond to a first frame of the second audio stream comprised in the encoded signal representation 412, or can correspond to a playback frame IPF as shown in Figure 5

[0171] 6. The example audio stream of Figure 7 claim 1

[0172] Figure 7 A representation of an example audio stream is shown, which can be provided by one of the audio encoders described herein and which can be decoded by one of the audio decoders described herein. Figure 7 The audio stream of Fig. 1 1 can also be provided by an audio stream provider as described herein.

[0173] ​The audio stream 700 comprises, for example, decoder configuration information as a first information block. The decoder configuration information can, for example, comprise a bitstream element "UsacConfig()" as defined in the USAC standard. The decoder configuration information can, for example, indicate a stream identifier of one stream and can be considered as a stream access point located at the beginning of the stream.

[0174] The audio stream further comprises an audio frame data information unit 720 which can, for example, not comprise any pre-roll data and can also not comprise any stream identifier information. For example, the information unit 720 can be a USAC frame and can, 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 a first audio stream.

[0176] The audio stream 700 can further comprise an information unit 730 which can, for example, represent a first frame of a second stream comprised in the audio stream 700. The information unit 730 can, for example, comprise audio frame data, pre-roll data and stream identifier information. The stream identifier information can, for example, indicate two stream identifiers which are different from the stream identifier comprised in the information unit 710.

[0177] For example, the information unit 730 can be considered as a stream access point.

[0178] For example, the information unit 730 can be according to the syntax of the bitstream element "UsacFrame()" as defined in the USAC standard. However, the information unit 730 can comprise an extension element of type "id_ext_ele_audio preroll". For example, this extension element can comprise a configuration structure according to the bitstream syntax "UsacConfig" with a configuration extension structure, for example, according to the bitstream syntax "UsacConfigExtension". The configuration extension structure can, for example, comprise an extension element of type "ID_CONFIG_EXT_STREAM_ID" which encodes a stream identifier. Thus, the information item or information unit 730 can, for example, comprise the information of the USAC frame 600 as described above.

[0179] Thus, the information unit 730 can represent an audio frame of a second stream and provide complete configuration information for configuring an audio decoder to correctly decode the audio frame. In particular, the configuration information further comprises audio pre-roll information for setting a state of the audio decoder and the configuration information comprises a stream identifier which allows the audio decoder to identify whether the information unit 730 is associated with a different audio stream when compared to the information units 700, 710.

[0180] The audio stream 700 further comprises an information unit 740, which follows the information unit 700. For example, the information unit 740 can be a "normal" audio frame, which comprises only audio frame data, no pre-roll data, no configuration data and no stream identifier. For example, the information unit 740 can follow the bitstream syntax "UsacFrameO" without using any extension elements.

[0181] The audio stream 700 can further comprise an information unit 750, which may, for example, comprise audio frame data and pre-roll data, but can not comprise a stream identifier. Thus, the information unit 750 can be used as a stream access point, but can not allow to detect a switch between different streams.

[0182] For example, the information unit 750 can follow the bitstream syntax "UsacFrameO" with the extension element "ID_ext_ele_audio preroll". However, in the information unit 750, the configuration information, which is part of the audio pre-roll extension element, does not comprise a stream identifier. Thus, the information unit 750 cannot reliably be used as a first information unit after a switch between different audio streams. On the other hand, the information unit 730 can reliably be used as a first information unit after a switch between different audio streams, because the stream identifier comprised therein allows to detect a switch between different streams and because the information unit also comprises complete information for decoding, including configuration information and pre-roll information.

[0183] In summary, the audio stream 700 can comprise "information units" or encoded audio frames with different information content. There can be "very simple" audio frames, which comprise only encoded audio data, no configuration data and no pre-roll data. Further, there can be audio frames comprising encoded audio information as well as configuration information, which audio frames further comprise a stream identifier and pre-roll information. Such frames allow to identify a switch between different audio streams as well as a fully independent decoding.

[0184] Further, there can optionally be frames with only partial information, but which do not allow to reliably identify a switch between different streams, for example, because of no stream identifier information.

[0185] It should be noted that the audio decoder according to Figure 1 and Figure 2 may generally use the audio stream 700, and the audio stream provider according to Figure 3 and Figure 4 may generally provide the audio stream 700 as shown in Figure 7 (e.g., as encoded audio signal representations 312 and 314).

[0186] 7. The audio stream according to Figure 8 claim 6

[0187] Figure 8 A representation of an example audio stream according to another embodiment of the application is shown.

[0188] According to Figure 8 The audio stream as a whole is denoted with 800.

[0189] It is noted that the information units 810a to 810e belong to a first audio stream. For example, the information unit 810a can comprise a decoder configuration and can, for example, follow the bitstream syntax "UsacConfig()" defined in the USAC standard. The decoder configuration can, for example, comprise a configuration structure similar to the configuration structure 222c. For example, the information unit 810 can comprise a stream identifier extension, wherein the stream identifier can, for example, be comprised in a configuration extension structure of the configuration structure.

[0190] The information unit 810b can, for example, comprise audio frame data (e.g. encoded spectral values and encoded scaling factor information) without pre-roll data and without a stream identifier. The information unit 810d can be similar or identical in structure to the information unit 810b and also represents audio frame data without pre-roll data and without a stream identifier.

[0191] Furthermore, the audio stream can comprise a portion 820, which follows the portion 810 and is associated with a second audio stream different from the first audio stream. The portion 820 comprises an information unit 820a, which comprises audio frame data with pre-roll data, wherein the pre-roll data comprises (e.g. within a configuration structure) a stream identifier extension. Thus, the information unit 820a represents an audio frame. If an audio decoder discovers based on the stream identifier extension that a previously decoded audio frame comes from another audio stream, the audio decoder can use the pre-roll data to set the audio decoder into an appropriate state before decoding the audio frame data in the information unit 820a. Thus, the information unit 820a is well suited to be the first information unit after a switch between different audio streams.

[0192] The block 820 further comprises one, two or more information units 820b and 820d, which comprise audio frame data but neither pre-roll data nor a stream identifier.

[0193] The data stream 800 further comprises a portion 830 associated with a third audio stream. The portion 830 comprises an information unit 830a comprising audio frame data with pre-roll data and comprising a stream identifier extension. The portion 830 further comprises an information unit 830b comprising audio frame data without pre-roll data and without a stream identifier. The third portion 830 further comprises an information unit 830d comprising audio frame data with pre-roll data but without a stream identifier.

[0194] Thus, it can be seen that the audio stream 800 comprises subsequent portions originating from different audio streams, wherein at each transition from one stream to another stream, there is an information unit (e.g. an encoded audio frame) comprising audio frame data with pre-roll data and with a stream identifier. Thus, since there is available stream identifier information within the encoded audio frame at each switch from an audio stream to another audio stream, an audio decoder can easily identify the transition by evaluating the stream identifier (e.g. in comparison to a previously obtained stored stream identifier).

[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. The decoder function of Figure 9 claim 7.

[0197] Figure 9 A schematic representation of possible decoder functions of an audio decoder as described herein is shown.

[0198] For example, with reference to Figure 9 The described functions can be implemented in an audio encoder 100 according to Figure 1 or in an audio decoder 200 according to Figure 2 For example, the functions described in Figure 5 may be used to decide how to continue decoding.

[0199] However, it should be noted that the functions described with reference to Figure 9 are only examples and that, for example, the order of the decisions can be changed as long as the overall functionality remains the same. Furthermore, the decisions can be combined as long as the overall functionality is not modified.

[0200] It is assumed that the functions as explained in Figure 9 have knowledge about the information of the previously decoded frame and evaluate the new audio frame, which can comply with the syntax described herein.

[0201] For example, in a first check 110, the audio decoder can check whether there is a "random access", i.e. an operation to jump to a stream access point. If a jump to a stream access point is identified, in which the "normal" order of frames is intentionally changed, the decoder function continues with a step 920 to evaluate the configuration data of the stream access point in order to re-initialize the decoder. A cross-fade can optionally be performed to avoid a sudden switch. It should be noted that a random access means to "jump" from a first frame to a second frame, in which the second frame has a frame index that is not immediately following the frame index of the previously decoded frame. In other words, a random access is a jump from a frame with frame index n to a frame with frame index o, in which o is different from n+1.

[0202] In a step 920, a jump is performed, in which the jump target is a frame that is an immediate play-out frame and which comprises information sufficient to re-initialize the decoder.

[0203] However, if in the check 910 it is found that there is no "random access" but a "continuous playback", a further check 930 can be performed. In other words, if the decoding proceeds from a frame with frame index n to a frame with frame index n+1, the check 930 is performed.

[0204] In the check 930, it is checked whether the (relevant) configuration defined in the configuration structure of the stream access point (or intermediate play-out frame) without taking into account the stream identifier (e.g. up to but not including the stream identifier) is different from the current configuration. If the (relevant) configuration described in the configuration structure of the stream access point is different from the current configuration (path "yes"), the decoding can proceed to a step 940. However, it should be noted that step 930 can naturally only be performed if the next frame is a stream access point comprising a configuration structure. If the next frame does not comprise a configuration structure, step 930 can naturally not be performed and no difference to the current configuration can be found.

[0205] However, if it is found in step 930 that the configuration in the configuration structure of the next frame (regardless of the stream identifier) is the same as the current configuration, a next check is made, which is 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 is present and if this configuration extension structure actually includes a data structure element as a stream identifier, the stream identifier is only included in the configuration structure. If it is found in comparison 950 that the stream access point includes a stream identifier (branch "yes"), the stream identifier included in the stream access point of the next 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 (to be decoded) is different from the current stream identifier (branch "yes" of decision 960), a jump is made to block 940. On the other hand, if it is found that the stream identifier of the next frame is the same as the stored stream identifier, the other configuration information (e.g., configuration extensions) following the stream identifier in the configuration extension structure are not taken into account for the determination whether to perform a "transition" or an initial initialization (branch "no" of step 960).

[0206] However, if it is found in check 950 that the stream access point (of 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 crossfade between the audio frames using the old configuration and the audio frames using the new configuration. In order to decode the audio frames using the new configuration, there is a re-initialization of the audio decoder (which can include the initialization of a new decoder instance). Furthermore, the old decoder instance is "flushed" and performs the crossfade.

[0208] On the other hand, step 970 includes decoding the next frame without re-initializing the decoder, wherein the pre-roll information (if any) included in the next frame is discarded (not taken into account).

[0209] In summary, whenever the audio decoder reaches an "intermediate play-out frame", which can also be considered a "stream access point", there are different possibilities which can be performed. Also, it should be noted that typically no special processing is done at frames which are not "intermediate play-out frames" or "stream access points", because such frames do not allow a re-initialization of the audio decoder, because there is no configuration structure and no pre-roll information available in such audio frames.

[0210] When the decoder knows that there is a "jump", i.e., a deviation from the normal frame ordering, there is of course a re-initialization of the audio decoder, which typically uses the pre-roll information as well as the new configuration structure (even if the jump is within the same stream).

[0211] If there is no such "jump", there are different cases:

[0212] If the audio decoder finds that the configuration information (up to and including the configuration identifier) of the next stream to be decoded is different from the stored information, it will also re-initialize the audio decoder. If, on the other hand, the audio decoder finds that the configuration information (up to and including the stream identifier, if present) of the next frame to be decoded is the same as the stored information obtained from the previously decoded frame, no initialization is performed. In any case, when deciding whether to perform a re-initialization, the audio decoder will ignore the configuration information placed in the configuration structure after the stream identifier. Also, if the audio decoder finds that there is no stream identifier in the configuration structure, it will naturally not take the stream identifier into account when comparing with the stored information.

[0213] However, in order to perform the evaluation in a computationally efficient way, the decoder can first check the configuration information before the stream identifier with the stored configuration information, then check whether the stream identifier is included in the configuration structure, and then perform the comparison of 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 re-initialize. If, on the other hand, the audio decoder does not find a difference between the configuration information (up to and including the stream identifier), it can decide to omit the re-initialization.

[0214] Thus, a minor configuration change that does not lead to a re-initialization can be signaled by the audio encoder in the configuration extension structure after the stream identifier, and the audio decoder can in this case decode with only slightly changed configuration (no re-initialization needed).

[0215] In summary, with reference to Figure 9 The described decoder functionality can be used in any of the audio decoders described herein, but should be considered optional.

[0216] 9. According to Figure 10a , Figure 10b , Figure 10c and Figure 10d Bitstream syntax

[0217] In the following, the bitstream syntax will be described. In particular, the syntax of the configuration structure will be described. As an example, the syntax of the configuration structure "UsacConfig()" will be described, which can replace the configuration structure 222c or the configuration structure 332 or the configuration structure 424 or Figure 6 the configuration structure "Config()" shown in Figure 7 the configuration structure "UsacConfig()" shown in Figure 8 the configuration structure "Config" shown in

[0218] Figure 10aA representation of the configuration structure "UsacConfig()" is shown. It can be seen that the configuration structure can for example comprise 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, for example describes the sampling frequency used by the encoder and thus also the sampling frequency to be used by the audio decoder.

[0219] Furthermore, the configuration structure can also comprise frame length index information for spectral band replication (SBR). For example, the index can determine the number of parameters used for spectral band replication, for example as defined in the USAC standard.

[0220] Furthermore, the configuration structure can also comprise channel configuration index 1024a, which can for example determine the channel configuration. For example, the channel configuration index information can define a plurality of channels and an associated loudspeaker mapping. For example, the channel configuration index information can have the meaning defined in the USAC standard. For example, if the channel configuration index information is equal to zero, details regarding the channel configuration can be included in the "UsacChannelConfig()" data structure 1024b.

[0221] Furthermore, the configuration structure can comprise decoder configuration information 1026a, which can for example describe (or enumerate) information elements present in the audio frame data structure. For example, the decoder configuration information can comprise one or more elements described in the USAC standard.

[0222] Furthermore, the configuration structure 1010 also comprises a flag (for example named "UsacConfigExtensionPresent") indicating the presence of a configuration extension structure (for example the configuration extension structure 226). The configuration structure 1010 also comprises a configuration extension structure, which is for example represented with "UsacConfigExtension()" 1028a. The configuration extension structure is preferably part of the configuration structure 1010 and can for example be represented by a sequence of bits immediately following the bits representing the other configuration items of the configuration structure 1010. The configuration extension structure can for example carry stream identifier information, as described below.

[0223] In the following, reference will be made to Figure 10b A possible syntax of the configuration extension structure is described, wherein the configuration extension structure as a whole is designated with 1030 and corresponds to the configuration extension structure 1028a.

[0224] The configuration extension structure (also referred to as "UsacConfigExtension()") can encode multiple configuration extensions, for example, in the syntax element 1040a. It should be noted that due to the presence of the configuration extension type information 1042a and the configuration extension length information 1044a for each configuration extension item, the order of the different configuration extension information items can be chosen arbitrarily. Thus, the configuration extension structure 1030 can carry multiple configuration extension items (or configuration extension information items) in a variable order, wherein the audio encoder can determine which configuration extension item is encoded first and which configuration extension item is encoded later. For example, for each configuration information item, there can first be the configuration extension type identifier 1042a, followed by the configuration extension length information 1044, and then there can be the "payload" of the respective configuration extension information item. The encoding of the payload of the respective configuration extension information item can vary, for example, depending on the type of the configuration extension information item as indicated by the configuration extension type information, and the length of the payload of the respective configuration extension information item can be determined by the value of the respective configuration extension length information 1044a. For example, in case the configuration extension information item is padding information, there can be one or more padding bytes. On the other hand, if the configuration extension information item is configuration extension loudness information, there can be a data structure comprising information on loudness (e.g., denoted as "Loudness Information Set ()").

[0225] Furthermore, if the configuration extension information item is a stream identifier, there can be a numerical representation of the stream identifier denoted as "streamId ()". Syntax examples for different types of configuration extension information items are shown at reference signs 1046a, 1048a, and 1050a.

[0226] In summary, the syntax of the configuration extension structure makes it possible to change the order of the different configuration information items. For example, the stream identifier configuration extension information item can be placed by the audio encoder before or after other configuration extension information items. Thus, the audio encoder can control by placing the stream identifier configuration extension information item within the configuration extension structure which other information of the configuration extension structure should be considered in the comparison between the configuration indicated by the current configuration structure and the configuration information previously acquired by the audio decoder. Typically, the configuration information items before the configuration extension structure and any configuration extension information items up to and including the stream identifier information will be considered in such a comparison, while any configuration extension information items encoded in the bitstream after the stream identifier configuration extension information item will be ignored in the comparison.

[0227] Thus, for Figure 10a and Figure 10b The explained configuration structure is well suited for the concepts according to the present application.

[0228] Figure 10cThe syntax of the stream identifier (configuration extension) information item is shown, which is also designated with "StreamId ()" (or with "streamId ()"). It can be seen that the stream identifier can be represented by a 16-bit binary number. Thus, more than 65,000 different values can be encoded as stream identifiers, which is usually sufficient to identify any transitions 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 the type "stream identifier" can be represented by the value 7 of the configuration extension type information 1042a. Configuration extension information items of other types can be represented, for example, by other values of the configuration extension type identifier 1042a.

[0230] In summary, Figure 10a to Figure 10d A possible syntax (or syntax extension) of the configuration structure is described, which can be used by an audio encoder for encoding stream identifier information, which can be used by an audio decoder for extracting stream identifier information.

[0231] It should be noted, however, that the configuration structure described here should only be considered as an example and can be modified within a very wide range. For example, the sampling frequency index information and / or the sampling frequency information and / or the spectral bandwidth copy frame length index information and / or the channel configuration index information can be encoded differently. In addition, one or more of the above-mentioned information items can optionally be dropped. In addition, the UsacDecoderConfig information item can also be omitted.

[0232] In addition, the encoding of the number of configuration extensions, the configuration extension type and the configuration extension length can be modified. In addition, different configuration extension information items should also be considered optional and can also be encoded differently.

[0233] In addition, the stream identifier can also be encoded with more or fewer bits, wherein different types of numerical representations can be used. In addition, the assignment of identifier numbers to different configuration extension types should be considered a preferred example rather than a necessary feature.

[0234] 9. Conclusion

[0235] In the following, aspects according to the present application will be described, which can be used alone or in combination with the embodiments described herein.

[0236] In particular, a solution according to the present application will be described here.

[0237] It should be noted that the attached claims describe aspects of embodiments according to the present application.

[0238] However, the embodiments defined by the claims can optionally be supplemented by any of the features described herein, alone or in combination. Moreover, it should be noted that any definition in parentheses "()" or "[]" should be considered optional, in particular when used in a claim.

[0239] However, it should be noted that the features of the application described below can also be used separately from the features of the claims.

[0240] Furthermore, the features and functions described in the claims and described below can optionally be combined with the features and functions described in the parts of the description that address the problems of the aspects of the application, the possible use scenarios of the embodiments and the conventional methods. In particular, the features and functions described here can be used in a USAC audio decoder according to ISO / IEC 23003-3: 2012, including Amendment 3, subclause "Bitrate adaptation" (e.g. standardized at the filing date of the priority application of the present application, or standardized at the filing date of the present application, but also - optionally - including future further amendments).

[0241] According to one aspect of the application, 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 bitfield. This identifier shall be different between any two configuration structures of all streams within a set of streams for seamless switching between the streams (e.g. can be differently selected by an audio encoder or an audio stream provider). One example of such a set of streams is the so-called "adaptation set" in the MPEG-DASH delivery use case.

[0242] For example, the proposed unique stream ID configuration extension will ensure that the new configuration (and new stream) is correctly identified at the point where the current (or current configuration) is compared with the new configuration structure (e.g. at the audio encoder side or at the audio decoder side) and the decoder will behave as expected and as intended, e.g. the decoder will do the appropriate decoder refresh, pre-roll access unit and perform the crossfading (if applicable).

[0243] The following is the proposed normative text (modification) of the specification standardized at the filing date of the present application or at the filing date of the priority application (e.g. MPEG-D USAC (ISO / IEC 23003-3 + AMD.1 + AMD-2 + AMD.3)) and optionally including any future modifications.

[0244] The paragraphs mentioned in the following described aspects of the application can be used alone or in combination with a USAC audio decoder or in another frame-based audio decoder.

[0245] The configuration extensions as shown in table 15 below can be used by an audio encoder in order to provide an audio bitstream and can be used by an audio decoder in order to extract information from an audio bitstream.

[0246] When using audio encoding and decoding according to the USAC standard as described above, table 15 in section 5.2 shall be replaced by the following updated version of table 15:

[0247] Table 15 - Syntax of UsacConfigExtension()

[0248]

[0249]

[0250]

[0251] Furthermore, when considering audio encoding or audio decoding according to the USAC standard, at the end of section 5.2 of the USAC standard, the following new table AMD.01 shall be added (where encoding details, bit numbers are optional):

[0252] Table AMD.01 - Syntax of Streamld()

[0253]

[0254] However, in said table, the encoding details and e.g. bit numbers shall be considered as optional.

[0255] Furthermore, when considering encoding or decoding according to the USAC standard, the following subclause 6.1.15 shall be added after "6.1.14 UsacConfigExtension()":

[0256] "6.1.15 Unique stream identifier (stream ID)

[0257] 6.1.15.1 Terms, definitions and semantics

[0258] streamldentifier (stream identification double byte unsigned integer stream identifier (stream symbol) ID) that shall uniquely identify the configuration of a stream within a set of associated streams for seamless switching between streams.

[0259] (stream identifier) can take values between 0 and 65535

[0260] (encode details are optional)

[0261] When being part of an MPEG-DASH adaptation set as defined in ISO / IEC 23009, all stream IDs of the streams in this DASH adaptation set shall be pairwise different.

[0262] 6.1.15.2 Stream identifier description

[0263] The configuration extension of type ID_CONFIG_EXT_STREAM_ID provides a container for signaling a stream identifier (short: "stream ID"). The stream ID configuration extension allows to attach a unique integer to a configuration structure such that two audio bitstream configurations of two streams can be distinguished even if the rest of the configuration structure (bits) is identical.

[0264] The usacConfigExtLength of the configuration extension of type ID_CONFIG_EXT_STREAM_ID shall have the value 2 (two). (Optionally, it can also be different)

[0265] Any given audio bitstream shall not have more than one configuration extension of type ID_CONFIG_EXT_STREAM_ID. (Optional)

[0266] If a regular operation decoder instance receives a new configuration structure, e.g. via Config() in the ID_EXT_ELE_AUDIOPREROLL extension payload, it shall compare this new configuration structure with the currently active configuration (see, e.g., 7.18.3.3). This comparison can be done, e.g., by a bit-by-bit comparison of the corresponding configuration structures.

[0267] If the configuration structure contains configuration extensions, then, e.g., all configuration extensions (up to and including the configuration extension of type ID_CONFIG_EXT_STREAM_ID) shall be included in the comparison. All configuration extensions after the configuration extension of type ID_CONFIG_EXT_STREAM_ID shall not be considered during the comparison, e.g. (Optional)

[0268] Note that the above rule allows the encoder to control whether a change of a particular configuration extension will cause the decoder to reconfigure.

[0269] It should be noted that the definitions and details of this paragraph to be added to the standard can optionally be used individually or in combination in embodiments according to the invention.

[0270] When considering USAC encoding or decoding, Table 74 in section 6 shall be replaced by the table as shown in Figure 10d .

[0271] In summary, some possible changes that could introduce the USAC standard are described. However, the concepts described here can also be used in combination with other audio coding standards. In other words, the stream identifier information as described herein can also be introduced into some configuration structures of any other audio coding standard.

[0272] The features described here for the stream identifier information can also be applied when used in combination with other coding standards. In this case, the terminology should be adapted to the terminology of the respective audio coding standard.

[0273] In the following, some optional effects and advantages or features according to the present application will be described.

[0274] The presented configuration extension provides an easy-to-implement solution to distinguish between otherwise bit-identical configuration structures. The achieved distinguishability between the configurations enables the correct and originally intended functionality of e.g. dynamic adaptive streaming and seamless switching between streams.

[0275] In the following, some alternative solutions will be described.

[0276] For example, the above-mentioned problem can be avoided if the encoder makes sure that all streams within a stream set have different configurations, i.e. they use different coding tools or use different parameterizations. This usually results in pair-wise different configurations if the difference in bit rate of the individual streams is large enough. If a fine grid of bit rates is required (which is often the case), this (traditional) solution will not work in some cases.

[0277] Instead, by using a stream identifier included in the configuration part (also referred to as configuration structure), different streams can also be distinguished if the rest of the configuration structure is identical (which is sometimes the case of similar bit rates).

[0278] Or (e.g. as an alternative to using a stream identifier), an appropriate, unspecified configuration extension can be created which is varied for each stream but differently structured in some way. The effect is the same. Although the correct functionality cannot be guaranteed because not all decoder implementations are guaranteed to evaluate this unspecified configuration extension when comparing configurations in the above-mentioned scenario.

[0279] Instead, embodiments according to the present application create a concept in which a stream identifier is clearly specified in the configuration structure and allows to unambiguously distinguish between different streams.

[0280] It should be noted that the implementation of the inventive concept can be recognized by analyzing the configuration structure of a USAC stream. Furthermore, the implementation of the inventive concept can be recognized by testing for the presence of a configuration extension as described above.

[0281] In the following, some possible application fields according to aspects of the present application will be described.

[0282] Embodiments according to the present application provide distinguishability of otherwise identical data structures.

[0283] Other embodiments according to the present application provide distinguishability of otherwise identical audio codec configuration structures.

[0284] Embodiments according to the present application allow seamless dynamic adaptive streaming of audio over any transport network.

[0285] In the following, some other aspects will be described which shall be considered optional.

[0286] For example, in the following audio encoder / audio stream provider behavior will be described. In the following, some optional details regarding an audio encoder (which can also take the form of an audio stream provider) will be described.

[0287] The audio encoder typically does not generate one (single) stream which suddenly changes its configuration, but the encoder or an encoder framework comprising multiple encoder instances generates multiple streams in parallel, which each comprise IPF (“immediate play frame”) at a synchronization position (time point) within the stream.

[0288] The decoder framework then selects one of the streams generated in parallel according to certain and / or predetermined criteria (e.g. quality of the internet connection) and “asks” (or requests) the encoder side server to exactly send this stream and then forwards the stream to the decoder. All other encoded streams are simply ignored. Changes between the streams are then only allowed at the position of the IPF.

[0289] The audio decoder initially does not recognize this change and / or is not informed about this change, e.g. by the decoder framework. Instead, the audio decoder needs to detect the stream change by comparison of the embedded configuration structures (“configuration structures”). From the decoder’s perspective, it seems as if the encoder only generated a stream with changed configuration (“Config”). In reality, this is usually not the case. Instead, the encoder always (continuously) generates multiple variants (including different bit rates) in parallel; only the decoder framework and the encoder side server (or stream provider) split the stream and rearrange (reconnect) parts (or streams) of the stream.

[0290] Other optional details are shown in the drawings.

[0291] Furthermore, it should be noted that the apparatuses shown in the drawings can be supplemented by any of the features and functions described herein, individually or in combination.

[0292] In summary, the audio encoder or audio stream provider can provide switching between different streams to a certain audio decoder (or audio decoding device), where the switching can be based on a request, e.g. by the audio decoder or audio decoding device, or by any other network management device, or even decided by the audio encoder or audio stream provider. The switching between the provision of frames from different audio streams can be used to adapt the actual bit rate to the available bit rate. The decoder configuration signaled from the audio encoder (or audio stream provider) to the audio decoder can be the same between different streams, but the stream identifier should be different between different streams. Thus, the audio decoder can use the stream identifier to identify when the additional information (e.g. configuration information and pre-roll information) included in the immediate play-out frame should be used for re-initialization of the audio decoder.

[0293] To further conclude, using a stream identifier ("streamID") can overcome the problems mentioned in the part of the description of aspects of the application and possible use scenarios of embodiments as described herein.

[0294] 10. Method

[0295] Figure 11a to 11c A flow chart of a method according to embodiments of the application is shown.

[0296] The methods shown in Figure 11a to 11c may be supplemented by any of the features and functionalities described herein.

[0297] 11. Implementation alternatives

[0298] While some aspects have been described in the context of an apparatus, it is clear that other aspects of the application also represent a description, albeit an implicit one, of corresponding methods, wherein blocks or devices correspond to method steps or features of method steps. Similarly, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus. Some or all of the method steps can be executed by (or using) a hardware apparatus, like for example, a microprocessor, a programmable computer or electronic circuit. In some embodiments, one or more of the most important method steps can be executed by such an apparatus.

[0299] The novel encoded audio signal can be stored on a digital storage medium or can be transmitted on a transmission medium such as a wireless transmission medium or a wired transmission medium (e.g. the Internet).

[0300] Depending on certain implementation requirements, embodiments of the application can be implemented in hardware or in software. The implementation can be carried out using a digital storage medium, for example a floppy disk, a DVD, a Blu-Ray, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate with a programmable computer system such that one of the methods described herein is performed. Therefore, the digital storage medium can be computer readable.

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

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

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

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

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

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

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

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

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

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

[0311] The apparatuses described herein can be implemented using a hardware apparatus, or using a computer, or using a combination of hardware and computer.

[0312] The apparatuses described herein, or any components of the apparatuses described herein, can be implemented at least partially in hardware and / or in software.

[0313] The methods described herein can be executed using a hardware apparatus, or using a computer, or using a combination of hardware and computer.

[0314] The methods described herein, or any components of the apparatuses described herein, can be executed at least partially in hardware and / or in software.

[0315] The above-described embodiments are merely illustrative for the principles of the present invention. It should be understood that modifications and variations of the arrangements and the details described herein will be apparent to others skilled in the art. It is the intent, therefore, to be limited only by the scope of the appended patent claims and not by the specific details presented by way of 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), wherein the audio decoder being configured to adjust decoding parameters in dependence on configuration information (110a; 222c; 332; 424; 1010, 1030), wherein the audio decoder is configured to decode one or more audio frames using current configuration information (140; 240), and wherein the audio decoder is configured to compare configuration information (110a; 222c; 332; 424; 1010, 1030) in a configuration structure associated with the one or more frames (222) to be decoded with current configuration information (140; 240), and to switch to using configuration information in the configuration structure associated with the one or more frames to be decoded as new configuration information for decoding if the configuration information in the configuration structure associated with the one or more frames to be decoded, or a relevant part (1020a, 1020b, 1022a, 1024a, 1024b, 1026a, 1050a) of the configuration information in the configuration structure associated with the one or more frames to be decoded, is different from the current configuration information, wherein the audio decoder is configured to consider stream identifier information (230; streamID, 1050a, streamIdentifier) comprised in the configuration structure when comparing the configuration information, such that a difference between a stream identifier previously acquired by the audio decoder and a stream identifier represented by the stream identifier information in the configuration structure associated with the one or more frames to be decoded causes the switching, 332;424; wherein the audio decoder is configured to use pre-rolling information when switching to bring a state of audio decoding into a desired state.

2. 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), the audio decoder being configured to adjust decoding parameters in dependence on configuration information (110a; 222c; 332; 424; 1010, 1030), wherein the audio decoder is configured to decode one or more audio frames using current configuration information (140; 240), and wherein wherein the audio decoder is configured to compare configuration information (110a; 222c; 332; 424; 1010, 1030) in a configuration structure associated with the one or more frames (222) to be decoded with current configuration information (140; 240), and to switch to using configuration information in the configuration structure associated with the one or more frames to be decoded as new configuration information for decoding if the configuration information in the configuration structure associated with the one or more frames to be decoded, or a relevant part (1020a, 1020b, 1022a, 1024a, 1024b, 1026a, 1050a) of the configuration information in the configuration structure associated with the one or more frames to be decoded, is different from the current configuration information, wherein the audio decoder is configured to consider stream identifier information (230; streamID, 1050a, streamIdentifier) comprised in the configuration structure when comparing the configuration information, such that a difference between a stream identifier previously acquired by the audio decoder and a stream identifier represented by the stream identifier information in the configuration structure associated with the one or more frames to be decoded causes the switching, wherein the audio decoder is configured to use pre-rolling information when switching to bring a state of audio decoding into a desired state. ​ 332;424; 1010, 1030) with current configuration information (140; 240) and, if configuration information in the configuration structure associated with the one or more frames to be decoded, or a relevant part of 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 transition is made to use configuration information in the configuration structure associated with the one or more frames to be decoded as new configuration information for decoding; wherein the audio decoder is configured to consider stream identifier information (230; streamID, 1050a, streamIdentifier) comprised in the configuration structure when comparing the configuration information, such that a difference between a stream identifier previously acquired by the audio decoder and a stream identifier represented by the stream identifier information in the configuration structure associated with the one or more frames to be decoded causes the transition, wherein the audio decoder is configured to obtain and process an audio frame representation comprising random access information (222b), wherein the random access information comprises a configuration structure (222c; 1010, 1030) and information (222d; AccessUnit()) for bringing a state of a processing chain of the audio decoder into a desired state, wherein the audio decoder is configured to, if the audio decoder finds that configuration information in the configuration structure (222c) of the random access information, or a relevant part of configuration information in the configuration structure of the random access information, is different from the current configuration information (240), use the information (222d) for bringing a state of a processing chain into a desired state to adjust a state of the audio decoder.

3. The audio decoder of claim 2, wherein, the audio decoder is configured to, if the audio decoder has decoded an audio frame immediately preceding an audio frame represented by the audio frame representation comprising the random access information, and if the audio decoder finds that a relevant part of the configuration information (222c) in the configuration structure of the random access information is identical to the current configuration information (240), continue decoding without performing an initialization of the audio decoder and without using information (222d) for bringing a state of a processing chain of the audio decoder into a desired state.

4. The audio decoder of claim 2 or 3, wherein the audio decoder is configured to, if the audio decoder has not decoded an audio frame immediately preceding an audio frame represented by the audio frame representation comprising the random access information, perform an initialization of the audio decoder using the configuration structure (222c) of the random access information and to adjust a state of the audio decoder using information (222d) for bringing a state of a processing chain into a desired state.

5. A method for providing a decoded audio signal representation based on an encoded audio signal representation, wherein the method comprises adjusting decoding parameters according to configuration information (110a; 222c; 332; 424; 1010, 1030), wherein the method comprises decoding one or more audio frames using current configuration information (140; 240), and wherein the method comprises: 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 wherein the method comprises: 222c; 332; 424; if configuration information in the configuration structure associated with the one or more frames to be decoded, or a relevant part (1020a, 1020b, 1022a, 1024a, 1024b, 1026a, 1050a) of the configuration information in the configuration structure associated with the one or more frames to be decoded, is different from the current configuration information, then transitioning to use configuration information in the configuration structure associated with the one or more frames to be decoded as new configuration information for decoding; wherein the method comprises considering stream identifier information (230; streamID, 1050a, streamIdentifier) included in the configuration structure when comparing the configuration information, such that a difference between a stream identifier previously acquired in audio decoding and a stream identifier represented by the stream identifier information in the configuration structure associated with the one or more frames to be decoded causes the transitioning, wherein the method comprises using pre-roll information when transitioning to bring a state of audio decoding to a desired state.

6. A computer program product comprising a computer program for performing the method according to claim 5 when the computer program is run on a computer.

Citation Information

Patent Citations

  • Audio encoder, audio decoder, encoded audio information, methods for encoding and decoding an audio signal and computer program

    CN102334160A

  • Method and system for analysing sound

    CN103890838A