The present document relates to the processing of audio signals. In particular, the present document relates to a method and a corresponding system for transmitting Dynamic Range Control (DRC) profiles in a bandwidth efficient manner.
The increasing popularity of media consumer devices has created new opportunities and challenges for the creators and distributors of media content for playback on those devices, as well as for the designers and manufacturers of the devices. Many consumer devices are capable of playing back a broad range of media content types and formats including those often associated with high-quality, wide bandwidth and wide dynamic range audio content for HDTV, Blu-ray or DVD. Media processing devices may be used to play back this type of audio content either on their own internal acoustic transducers or on external transducers such as headphones or high quality home theater systems; however, all these playback systems and environment pose significantly different requirements on the dynamic range of the audio signal due to varying noise levels in the environment or due to the limited capability of the playback system to reproduce the required sound pressure levels without distortion. Limiting the dynamic range depending on the environment is an approach to provide high quality and intelligibility across a broad range of different rendering devices having different rendering capabilities and listening environments, i.e. across a broad range of rendering modes.
The present document addresses the technical problem of providing creators and distributors of media content with bandwidth efficient means for enabling the reproduction of audio signals at high quality and intelligibility on a broad range of different rendering devices having different rendering capabilities.
According to an aspect a method for generating an encoded audio signal is described. The encoded audio signal comprises a sequence of frames. The encoded audio signal is indicative of a plurality of different dynamic range control (DRC) profiles for a corresponding plurality of different rendering modes. The method comprises inserting different subsets of DRC profiles from the plurality of DRC profiles into different frames of the sequence of frames, such that two or more frames of the sequence of frames jointly comprise the plurality of DRC profiles.
According to a further aspect, a method for decoding an encoded audio signal is described. The encoded audio signal comprises a sequence of frames. Furthermore, the encoded audio signal is indicative of a plurality of different dynamic range control (DRC) profiles for a corresponding plurality of different rendering modes. Different subsets of DRC profiles from the plurality of DRC profiles are comprised within different frames of the sequence of frames, such that two or more frames of the sequence of frames jointly comprise the plurality of DRC profiles. The method comprises determining a first rendering mode from the plurality of different rendering modes, and determining one or more DRC profiles from a subset of DRC profiles comprised within a current frame of the sequence of frames. Furthermore, the method comprises determining whether at least one of the one or more DRC profiles is applicable to the first rendering mode. In addition, the method comprises selecting a default DRC profile as a current DRC profile, if none of the one or more DRC profiles is applicable to the first rendering mode, wherein definition data of the default DRC profile is known at a decoder for decoding the encoded audio signal. Furthermore, the method comprises decoding the current frame using the current DRC profile.
According to a further aspect, a bitstream comprising an encoded audio signal is described. The encoded audio signal comprises a sequence of frames. The encoded audio signal is indicative of a plurality of different dynamic range control (DRC) profiles for a corresponding plurality of different rendering modes. The different subsets of DRC profiles from the plurality of DRC profiles are comprised within different frames of the sequence of frames, such that two or more frames of the sequence of frames jointly comprise the plurality of DRC profiles.
According to another aspect, an encoder for generating an encoded audio signal is described. The encoded audio signal comprises a sequence of frames. The encoded audio signal is indicative of a plurality of different dynamic range control (DRC) profiles for a corresponding plurality of different rendering modes. The encoder is configured to insert different subsets of DRC profiles from the plurality of DRC profiles into different frames of the sequence of frames, such that two or more frames of the sequence of frames jointly comprise the plurality of DRC profiles.
According to a further aspect, a decoder for decoding an encoded audio signal is described. The encoded audio signal comprises a sequence of frames. The encoded audio signal is indicative of a plurality of different dynamic range control (DRC) profiles for a corresponding plurality of different rendering modes. The different subsets of DRC profiles from the plurality of DRC profiles are comprised within different frames of the sequence of frames, such that two or more frames of the sequence of frames jointly comprise the plurality of DRC profiles. The decoder is configured to determine a first rendering mode from the plurality of different rendering modes, to determine one or more DRC profiles from a subset of DRC profiles comprised within a current frame of the sequence of frames, to determine whether at least one of the one or more DRC profiles is applicable to the first rendering mode, to select a default DRC profile as a current DRC profile, if none of the one or more DRC profiles is applicable to the first rendering mode; wherein definition data of the default DRC profile is known at the decoder; and to decode the current frame using the current DRC profile.
According to a further aspect, a software program is described. The software program may be adapted for execution on a processor and for performing the method steps outlined in the present document when carried out on the processor.
According to another aspect, a storage medium is described. The storage medium may comprise a software program adapted for execution on a processor and for performing the method steps outlined in the present document when carried out on the processor.
According to a further aspect, a computer program product is described. The computer program may comprise executable instructions for performing the method steps outlined in the present document when executed on a computer.
It should be noted that the methods and systems including its preferred embodiments as outlined in the present patent application may be used stand-alone or in combination with the other methods and systems disclosed in this document. Furthermore, all aspects of the methods and systems outlined in the present patent application may be arbitrarily combined. In particular, the features of the claims may be combined with one another in an arbitrary manner.
The invention is explained below in an exemplary manner with reference to the accompanying drawings, wherein
As indicated above, the present document addresses the technical problem of enabling a designer and/or distributor of audio content to control the quality and intelligibility of the audio content for different types of rendering modes. An example rendering mode is a home theatre rendering mode, where audio content is played back using transducers which typically allow for a very wide dynamic range in a quiet environment. Another example rendering mode is a flat-panel mode, where the audio content is played back using transducers of e.g. a TV set, which typically allow for a reduced dynamic range compared to a home theatre. A further example rendering mode is a portable speaker mode, where the audio content is played back using the loudspeakers of a portable electronic device (such as a smartphone). The dynamic range of this rendering mode is typically small compared to the above mentioned rendering modes and often the environment is noisy. Another example rendering mode is a portable headphone mode, where the audio content is played back using headphones in conjunction with a portable electronic device. The dynamic range is limited but typically higher than the dynamic range which is provided by the loudspeakers of the portable electronic device.
In order to allow for a high quality and high intelligibility for the different rendering modes, different DRC (Dynamic Range Control) profiles for the different rendering modes may be provided along with the audio content. The audio content may be transmitted in a sequence of frames. The sequence of frames may comprise I (i.e. independent) frames which may be decoded independently from previous or succeeding frames. Furthermore, the sequence of frames may comprise other types of frames (e.g. P and/or B frames) which typically exhibit a dependency with regards to a previous and/or a succeeding frame. At least some of the frames of the sequence of frames may comprise a plurality of different DRC profiles for a plurality of different rendering modes. In particular, the I-frames of the sequence of frames may comprise the plurality of DRC profiles.
By inserting a plurality of different DRC profiles into a sequence of audio frames, an audio decoder is enabled to select an appropriate DRC profile for a particular rendering mode. As a result, it may be ensured that the rendered audio signal has a high quality (notably no clipping or distortion introduced by the transducers) and a high intelligibility.
In the following, various aspects of dynamic range control are described. Without customized dynamic range control, input audio information (e.g., PCM samples, time-frequency samples in a QMF matrix, etc.) is often reproduced at a playback device at loudness levels that are inappropriate for the playback device's specific playback environment (that is, including the device's physical and/or mechanical playback limitations), as the playback device's specific playback environment might be different from a target playback environment for which the encoded audio content had been coded at an encoding device.
Techniques as described herein can be used to support dynamic range control of a wide variety of audio content customized to any of a wide variety of playback environments while maintaining perceptual qualities of the audio content and while maintaining an artist's intent of adapting the content to different listening environments.
Dynamic Range Control (DRC) refers to time-variant, level-dependent audio processing operations that alter (e.g., compress, cut, expand, boost, etc.) the signal in order to convert an input dynamic range of loudness levels in audio content into an output dynamic range that is different from the input dynamic range. For example, in a dynamic range control scenario, soft sounds may be mapped (e.g., boosted, etc.) to higher loudness levels and loud sounds may be mapped (e.g., cut, etc.) to lower loudness values. As a result, in a loudness domain, an output range of loudness levels becomes smaller than the input range of loudness levels in this example. In some embodiments, the dynamic range control, however, may be reversible so that the original range is restored. For example, an expansion operation may be performed to recover the original range so long as mapped loudness levels in the output dynamic range, as mapped from original loudness levels, are at or below a clipping level, each unique original loudness level is mapped to a unique output loudness level, etc.
DRC techniques as described herein can be used to provide a better listening experience in certain playback environments or situations. For example, soft sounds in a noisy environment may be masked by the noise that renders the soft sounds inaudible. Conversely, loud sounds may not be desired in some situations, for example, bothering neighbors (e.g. within a “late-night” listening mode). Many devices, typically with small form-factor loudspeakers, cannot reproduce sound at high output levels or cannot reproduce sound without perceptible distortion. In some cases the lower signal levels may be reproduced below the human hearing threshold. The DRC techniques may perform mapping of input loudness levels to output loudness levels based on DRC gains (e.g., scaling factors that scale audio amplitudes, boost ratios, cut ratios, etc.) looked up with a dynamic range compression curve.
A dynamic range compression curve refers to a function (e.g., a lookup table, a curve, a multi-segment piecewise lines, etc.) that maps individual input loudness levels (e.g., of sounds other than dialogues, etc.) as determined from individual audio data frames to corresponding output loudness levels, and by consequence to individual gains or gains for dynamic range control in order to translate the input loudness levels to the corresponding output loudness levels. Each of the individual gains indicates an amount of gain to be applied to the signal to map a corresponding individual input loudness level to the intended output loudness level. Output loudness levels after applying the individual gains represent target loudness levels for audio content in the individual audio data frames in a specific playback environment.
In addition to specifying mappings between gains and loudness levels, a dynamic range compression curve may include, or may be provided with, specific release times and attack times in applying specific gains. An attack refers to an increase of signal energy (or loudness) between successive time samples, whereas a release refers to a decrease of energy (or loudness) between successive time samples. An attack time (e.g., 10 milliseconds, 20 milliseconds, etc.) refers to a time constant used in smoothing DRC gains when the corresponding signal is in attack mode. A release time (e.g., 80 milliseconds, 100 milliseconds, etc.) refers to a time constant used in smoothing DRC gains when the corresponding signal is in release mode. In some embodiments, additionally, optionally or alternatively, the time constants are used for smoothing of the signal energy (or loudness) prior to determining the DRC gain.
Different dynamic range compression curves may correspond to different playback environments (i.e. to different rendering modes). For example, a dynamic range compression curve for a playback environment of a flat panel TV may be different from a dynamic range compression curve for a playback environment of a portable device. A playback device may have two or more playback environments. For example, a first dynamic range compression curve for a first playback environment of a portable device with speakers may be different from a second dynamic range compression curve for a second playback environment of the same portable device with headset.
The metadata can be used by the audio decoder 100 to process the input audio data frames. The metadata may include a variety of operational parameters relating to one or more operations to be performed by the decoder 100, one or more dynamic range compression curves (i.e. one or more DRC profiles), normalization parameters relating to dialogue loudness levels represented in the input audio data frames, etc. A dialogue loudness level may refer to a (e.g., psychoacoustic, perceptual, etc.) level of dialogue loudness, program loudness, average dialogue loudness, etc., in an entire program (e.g., a movie, a TV program, a radio broadcast, etc.), a portion of a program, a dialogue of a program, etc.
The operation and functions of the decoder 100, or some or all of the modules (e.g., the data extractor 104, the dynamic range controller 106, etc.), may be adapted in response to the metadata extracted from the encoded input signal 102. For example, the metadata—including but not limited to dynamic range compression curves, dialogue loudness levels, etc.—may be used by the decoder 100 to generate output audio data elements (e.g., output PCM samples, output time-frequency samples in a QMF matrix, etc.) in the digital domain. The output data elements can then be used to drive audio channels or speakers to achieve a specified loudness or reference reproduction level during playback in a specific playback environment.
The dynamic range controller 106 may be configured to receive some or all of the audio data elements in the input audio data frames and the metadata, perform audio processing operations (e.g., dynamic range control operations, gain smoothing operations, gain limiting operations, etc.) on the audio data elements in the input audio data frames based at least in part on the metadata extracted from the encoded audio signal 102, etc.
In particular, the dynamic range controller 106 may comprise a selector 110, a loudness calculator 112 and/or DRC gain unit 114. The selector 110 may be configured to determine a speaker configuration (e.g., home theatre mode, flat panel mode, portable device with speakers mode, portable device with headphones mode, a 5.1 speaker configuration mode, a 7.1 speaker configuration mode, etc.) relating to a specific playback environment at the decoder 100. The speaker configuration may also be referred to as the rendering mode. Furthermore, the selector 110 may be configured to select a specific dynamic range compression curve (i.e. a DRC profile) from the dynamic range compression curves (i.e. from the plurality of DRC profiles) extracted from the metadata of the encoded input signal 102.
The loudness calculator 112 may be configured to calculate one or more types of loudness levels as represented by the audio data elements in the input audio data frames. Examples of types of loudness levels include, but are not limited to: any of individual loudness levels over individual frequency bands in individual channels over individual time intervals, broadband (or wideband) loudness levels over a broad (or wide) frequency range in individual channels, loudness levels as determined from or smoothed over an audio data block or frame, loudness levels as determined from or smoothed over more than one audio data block or frame, loudness levels smoothed over one or more time intervals, etc. Zero, one or more of these loudness levels may be altered for the purpose of dynamic range control by the decoder 100.
To determine the loudness levels, the loudness calculator 112 can determine one or more time-dependent physical sound wave properties such as spatial and/or local pressure levels at specific audio frequencies, etc., as represented by the audio data elements in the input audio data frames. The loudness calculator 112 can use the one or more time-varying physical wave properties to derive one or more types of loudness levels based on one or more psychoacoustic functions modeling human loudness perception. A psychoacoustic function may be a non-linear function—as constructed based on a model of the human auditory system—that converts/maps specific spatial pressure levels at specific audio frequencies to specific loudness for the specific audio frequencies.
A (e.g., broadband, wideband, etc.) loudness level over multiple (audio) frequencies or multiple frequency bands may be derived through integration of specific loudness levels over the multiple (audio) frequencies or multiple frequency bands. Time-averaged, smoothed, etc., loudness levels over one or more time intervals (e.g., longer than that represented by audio data elements in an audio data block or frame, etc.) may be obtained by using one or more smoothing filters that are implemented as a part of the audio processing operations in the decoder 100. Another example method for determining a (broadband) loudness level is specified in ITU-R BS.1770. The method which is specified in ITU-R BS.1770 applies time domain filtering on a time domain input audio signal and then calculates an RMS (root mean square) level on each channel of the input audio signal before integrating over the channels and gating the resulting loudness level.
A specific loudness level for different frequency bands may be calculated per audio data block of certain (e.g., 256, etc.) samples. Pre-filters may be used to apply frequency weighting (e.g., similar to IEC B-weighting, etc.) to the specific loudness levels in integrating the specific loudness levels into a broadband (or wideband) loudness level. A summation of broad loudness levels over two or more channels (e.g., left front, right front, center, left surround, right surround, etc.) may be performed to provide an overall loudness level of the two or more channels.
An overall loudness level may refer to a broadband (wideband) loudness level in a single channel (e.g., center, etc.) of a speaker configuration. An overall loudness level may refer to a broadband (or wideband) loudness level in a plurality of channels. The plurality of channels may be all channels in a speaker configuration (i.e. for a rendering mode). Additionally, optionally or alternatively, the plurality of channels may comprise a subset of channels (e.g., a subset of channels comprising left front, right front, and low frequency effect (LFE); a subset of channels comprising left surround and right surround; a subset of channels comprising center; etc.) in a speaker configuration.
A (e.g., broadband, wideband, overall, specific, etc.) loudness level may be used as input to look up a corresponding (e.g., static, pre-smoothing, pre-limiting, etc.) DRC gain from the selected dynamic range compression curve. The loudness level to be used as input to look up the DRC gain may be first adjusted or normalized with respect to a dialogue loudness level from the metadata extracted from the encoded audio signal 102 and/or with respect to an output reference level of the rendering mode. The adjustments and normalization related to adjusting the dialogue loudness level/output reference level may be performed on a portion of the audio content in the encoded audio signal 102 in a non-loudness domain (e.g., a SPL domain, etc.), before specific spatial pressure levels represented in the portion of the audio content in the encoded audio signal 102 are converted or mapped to specific loudness levels of the portion of the audio content in the encoded audio signal 102.
The DRC gain unit 114 may be configured with a DRC algorithm to generate gains (e.g., for dynamic range control, for gain limiting, for gain smoothing, etc.) and to apply the gains to one or more loudness levels in the one or more types of loudness levels represented by the audio data elements in the input audio data frames to achieve target loudness levels for the specific playback environment. The application of gains as described herein (e.g., DRC gains, etc.) may happen in the loudness domain. By way of example, gains may be generated based on the loudness calculation (which may be in Sone or just the SPL value compensated for the dialog loudness level, for example, with no conversion), smoothed and applied directly to the input signal. Techniques as described herein may apply the gains to a signal in the loudness domain, and then convert the signal from the loudness domain back to the (linear) SPL domain and calculate corresponding gains that are to be applied to the signal by assessing the signal before and after the gain was applied to the signal in the loudness domain. The ratio (or difference when represented in a logarithmic dB representation) then determines the corresponding gain for the signal.
The DRC algorithm may operate with a plurality of DRC parameters. The DRC parameters include the dialogue loudness level that has already been computed and embedded into the encoded audio signal 102 by an upstream encoder 150 (as described in the context of
The DRC gains may be used to address intra-program loudness level differences by boosting or cutting signal portions in soft and/or loud sounds in accordance with the selected dynamic range compression curve. One or more of these DRC gains may be computed/determined by the DRC algorithm based on the selected dynamic range compression curve and (e.g., broadband, wideband, overall, specific, etc.) loudness levels as determined from one or more of the corresponding audio data blocks, audio data frames, etc.
Loudness levels used to determine (e.g., static, pre-smoothing, pre-gain limiting, etc.) DRC gains by looking up the selected dynamic range compression curve may be calculated on short intervals (e.g., approximately 5.3 milliseconds, etc.). The integration time of the human auditory system (e.g., approximately 200 milliseconds, etc.) may be much longer. The DRC gains obtained from the selected dynamic range compression curve may be smoothed with a time constant to take into account the long integration time of the human auditory system. To effectuate fast rates of changes (increases or decreases) in loudness levels, short time constants may be used to cause changes in loudness levels in short time intervals corresponding to the short time constants. Conversely, to effectuate slow rates of changes (increases or decreases) in loudness levels, long time constants may be used to changes in loudness levels in long time intervals corresponding to the long time constants.
The human auditory system may react to increasing loudness levels and decreasing loudness levels with different integration time. Different time constants may be used for smoothing the static DRC gains looked up from the selected dynamic range compression curves, depending on whether the loudness level will be increasing or decreasing. For example, in correspondence with the characteristics of the human auditory system, attacks (loudness level increasing) may be smoothed with relatively short time constants (e.g., attack times, etc.), whereas releases (loudness level decreasing) may be smoothed with relatively long time constants (e.g., release time, etc.).
A DRC gain for a portion (e.g., one or more of audio data blocks, audio data frames, etc.) of audio content may be calculated using a loudness level determined from the portion of audio content. The loudness level to be used for looking up in the selected dynamic range compression curve may be first adjusted with respect to (e.g., in relation to, etc.) a dialogue loudness level (e.g., in a program of which the audio content is a part, etc.) in the metadata extracted from the encoded audio signal 102.
A reference dialogue loudness level/output reference level (e.g., −31 dBFS in the “Line” mode, −20 dBFS in the “RF” mode, etc.) may be specified or established for the specific playback environment at the decoder 100. Additionally, alternatively or optionally, in some embodiments, users may be given control over setting or changing the reference dialogue loudness level at the decoder 100.
The DRC gain unit 114 may be configured to determine a dialogue loudness related gain to the audio content to cause a change from the input dialogue loudness level to the reference dialogue loudness level as the output dialogue loudness level.
The audio renderer 108 may be configured to generate (e.g., multi-channel, etc.) channel-specific audio data 116 for the specific speaker configuration after applying gains as determined based on DRC, gain limiting, gain smoothing, etc., to the input audio data extracted from the encoded audio signal 102. The channel-specific audio data 116 may be used to drive speakers, headphones, etc., represented in the speaker configuration.
Additionally and/or optionally, the decoder 100 may be configured to perform one or more other operations relating to processing, rendering, downmixing, resampling etc., relating to the input audio data.
Techniques as described herein can be used with a variety of speaker configurations corresponding to a variety of different surround sound configurations (e.g., 2.0, 3.0, 4.0, 4.1, 4.1, 5.1, 6.1, 7.1, 7.2, 10.2, a 10-60 speaker configuration, a 60+ speaker configuration, object signals or combinations of object signals, etc.) and a variety of different rendering environment configurations (e.g., cinema, park, opera houses, concert halls, bars, homes, auditoriums, etc.).
The audio content interface 152 may be configured to receive audio content 160 and audio content control input 162 for generating an encoded audio signal 102 based at least on some or all of the audio content 160 and the audio content control input 162. For example, the audio content interface 152 may be used to receive the audio content 160 and the audio content control input 162 from a content creator, a content provider, etc.
The audio content 160 may constitute some or all of overall media data that comprises audio only, audiovisual, etc. The audio content 160 may comprise one or more of portions of a program, a program, several programs, one or more commercials, etc.
The dialogue loudness analyzer 154 may be configured to determine/establish one or more dialogue loudness levels of one or more portions (e.g., one or more programs, one or more commercials, etc.) of the audio content 152. The audio content may be represented by one or more sets of audio tracks. Dialogue audio content of the audio content may be in separate audio tracks and/or at least a portion of dialogue audio content of the audio content may be in audio tracks comprising non-dialogue audio content.
The audio content control input 162 may comprise some or all of user control input, control input provided by a system/device external to the encoder 150, control input from a content creator, control input from a content provider, etc. For example, a user such as a mixing engineer, etc., can provide/specify one or more dynamic range compression curve identifiers; the identifiers may be used to retrieve one or more dynamic range compression curves that fit the audio content 160 best from a data repository such as a DRC reference repository (156), etc.
The DRC reference repository 156 may be configured to store DRC reference parameter sets, etc. The DRC reference parameter sets may include definition data for one or more dynamic range compression curves, etc. The encoder 150 may (e.g., concurrently) encode more than one dynamic range compression curve into the encoded audio signal 102. Zero, one, or more of the dynamic range compression curves may be standard-based, proprietary, customized, decoder-modifiable, etc. By way of example, the dynamic range compression curves of
The audio signal encoder 158 may be configured to receive the audio content from the audio content interface 152, the dialogue loudness levels from the dialogue loudness analyzer 154, retrieve one or more DRC reference parameter sets (i.e. DRC profiles) from the DRC reference repository 156, format audio content into audio data blocks/frames, format the dialogue loudness levels, the DRC reference parameter sets, etc., into metadata (e.g., metadata containers, metadata fields, metadata structures, etc.) and encode the audio data blocks/frames and the metadata into the encoded audio signal 102.
Audio content to be encoded into an encoded audio signal 102 as described herein may be received in one or more of a variety of source audio formats in one or more of a variety of ways, such as wirelessly, via a wired connection, through a file, via an internet download, etc.
An encoded audio signal 102 as described herein can be a part of an overall media data bitstream (e.g., for an audio broadcast, an audio program, an audiovisual program, an audiovisual broadcast, etc.). The media data bitstream can be accessed from a server, a computer, a media storage device, a media database, a media file, etc. The media data bitstream may be broadcasted, transmitted or received through one or more wireless or wired network links. A media data bitstream may also be communicated through an intermediary such as one or more of network connections, USB connections, wide area networks, local area networks, wireless connections, optical connections, buses, crossbar connections, serial connections, etc.
Any of the components depicted (e.g.,
One or more compression curves described in terms of loudness levels in dBSPL or dBFS and gains in dB relating to dBSPL may be received, whereas DRC gain calculation is performed in a different loudness representation that has a non-linear relation with dBSPL loudness levels (e.g. Sone). The compression curve used in the DRC gain calculation may then be converted to be described in terms of the different loudness representation (e.g. Sone).
The plurality of DRC profiles may be inserted repeatedly within the I-frames of the sequence of frames. This allows a decoder 100 to determine the appropriate DRC profile for the encoded audio signal 102 and for a current rendering mode upon startup of the encoded audio signal 102, upon tune-in into a running audio program and/or subsequent to a splicing point. On the other hand, the repeated transmission of a complete set of DRC profiles leads to a relatively high bitstream overhead. In view of this, it is proposed to transmit changing subsets of DRC profiles within the I-frames of the encoded audio signal 102.
The method 600 may further comprise the step 602 of fetching a new frame which is to be decoded (i.e. the current frame) from the encoded audio signal 102. In step 603, it is verified, whether the new frame is an I-frame which might comprise a DRC profile. If the new frame is not an I-frame, then the method 600 proceeds with step 604 and processes the new frame using the current DRC profile. Furthermore, the previously used profile is set to the current DRC profile in method step 605 (prev_profile=profile).
If the new frame is an I-frame then it may be checked in method step 606, whether the I-frame comprises DRC data. By way of example, the metadata of the I-frame may comprise a flag which is indicative of whether the I-frame comprises DRC data. If no DRC data is present, then the method 300 may proceed with steps 604, 605. Otherwise, the method may proceed with method step 607.
In method step 607 it may be verified, whether the new frame is the first frame of the encoded audio signal 102 which is to be decoded. As can be seen from the flow chart of
It should be noted that in some cases, it may be beneficial to only use a single predefined DRC profile other than the default DRC profile. In such a case, the decoder 100 may be configured to set the profile variable to the predefined (i.e. implicit) DRC profile, without receiving any ID within the metadata of the new frame.
The method 600 may further comprise verifying whether the metadata of the new frame comprises one or more explicit DRC profiles (step 609). An explicit DRC profile may comprise an ID for identifying the explicit DRC profile. Furthermore, the explicit DRC profile typically comprises definition data for a dynamic range compression curve as illustrated in
The ORL of a rendering device may indicate the dynamic range capabilities of the rendering device. Typically the dynamic range capabilities decrease with increasing ORL. In case of a high ORL, compression curves with a high degree of compression should be used, in order to render an audio signal in an intelligible manner without clipping. On the other hand, in case of a low ORL, compression may be reduced to render audio signals with a high dynamic range. Due to the high dynamic range capabilities of the rendering device, intelligibility of the audio signal is nevertheless ensured.
If the metadata of the new frame comprises at least one explicit DRC profile, the profile data of a first DRC profile is read (step 610). Furthermore, it is verified whether the range of ORL of the first DRC profile is applicable to the currently used rendering device (step 611). If this is not the case, then the method 600 proceeds to look for another explicit DRC profile within the metadata of the new frame. On the other hand, if an explicit DRC profile is applicable to the rendering device, then this explicit DRC profile may be set to be the current DRC profile, which is to be used for processing the new frame (step 614).
The method 600 may further comprise verifying whether a headphone rendering mode is used and whether an explicit DRC profile is applicable to a headphone rendering mode (step 612). In addition, the method 600 may comprise verify whether an explicit DRC profile is an updated profile compared to a previously used profile (step 613). For this purpose, the ID of the explicit DRC profile may be compared with the ID of a currently used profile. By doing this, it can be ensured that the decoder 100 always uses the most current DRC profile.
Using method 600, it may be ensured that the decoder 100 always identifies a DRC profile for rendering a frame of an encoded audio signal 102, even if the decoder 100 has not yet received the DRC profile for the current rendering mode (i.e. for the current rendering device). Furthermore, it is ensured that the DRC profile for the current rendering mode is applied as soon as the decoder 100 receives the corresponding DRC profile.
As such, a method 600 for decoding an encoded audio signal 102 is described. The encoded audio signal 102 comprises a sequence of frames. Furthermore, the encoded audio signal 102 is indicative of a plurality of different dynamic range control (DRC) profiles for a corresponding plurality of different rendering modes. Examples for different rendering modes (or different reproduction environments) are a first DRC profile for use in a home theatre rendering mode; a second DRC profile for use in a flat panel rendering mode; a third DRC profile for use in a portable device loudspeaker rendering mode; and/or a fourth DRC profile for use in a headphone rendering mode. A DRC profile defines a specific DRC behavior. The DRC behavior may be described by means of a compression curve (and time constants) and/or by DRC gains. DRC gains may be temporal equidistant gains that may be applied the encoded audio signal 102 to deploy DRC. Compression curves may be accompanied by time constants which together configure a DRC algorithm. DRC typically reduces the volume of loud sounds and amplifies quiet sounds, thereby compressing the audio signal's dynamic range for an improved experience in non-ideal reproduction environments.
A sequence of frames typically comprises a plurality of succeeding frames which form an audio signal. An audio program (e.g. a broadcasted TV or radio program) may comprise a plurality of audio signal which are concatenated at splicing points. By way of example, a main audio program may be interrupted in a repeated manner by commercial breaks. The sequence of frames may correspond to the complete audio program. Alternatively, the sequence of frames may correspond to one of the plurality of audio signals which form the complete audio program.
Different subsets of DRC profiles from the plurality of DRC profiles may be comprised within different frames of the sequence of frames, such that two or more frames of the sequence of frames jointly comprise the plurality of DRC profiles. As indicated above, the distribution of DRC profiles across a plurality of frames of the sequence of frames leads to a reduction of a bitstream overhead for signaling the plurality of DRC profiles.
The method 600 may comprise determining a first rendering mode from the plurality of different rendering modes. In particular, it may be determined which rendering mode is used for rendering the encoded audio signal 102. Furthermore, the method 600 may comprise determining 609, 610 one or more DRC profiles from the plurality of DRC profiles which are comprised within a current frame of the sequence of frames. In other words, one or more DRC profiles from a subset of DRC profiles that is comprised within the current frame may be determined. In addition, it may be determined 611 whether at least one of the one or more DRC profiles is applicable to the first rendering mode. The determining 611 whether at least one of the one or more DRC profiles is applicable to the first rendering mode may comprise determining a first output reference level for the first rendering mode, determining a range of output reference levels that a DRC profile from the one or more DRC profiles is applicable to, and determining whether the first output reference level falls within the range of output reference levels.
The method 600 may further comprise selecting 604 a default DRC profile as a current DRC profile, if none of the one or more DRC profiles is applicable to the first rendering mode. Definition data of the default DRC profile is typically known at the decoder 100 for decoding the encoded audio signal 102. In addition, the method 600 may comprise decoding (and/or rendering) the current frame using the current DRC profile. As such, it may be ensured that a decoder 100 makes use of a DRC profile (and a dynamic range compression curve) even if the decoder 100 has not yet received a DRC profile which is specific to the encoded audio signal 102.
Alternatively or in addition, the method 600 may comprise selecting 604 a first DRC profile from the one or more DRC profiles as the current DRC profile, if the first DRC profile is determined to be applicable to the first rendering mode. As a result of this, the decoder 100 is configured to use the optimal first DRC profile for the encoded audio signal 102 and for the first rendering mode, as soon as the decoder 100 receives the first DRC profile.
The method 600 may further comprise determining 603, 606 whether the current frame of the sequence of frames comprises one or more DRC profiles from the plurality of DRC profiles, i.e. whether the current frame comprises a subset of DRC profiles. As outlined in the context of
Furthermore, determining 603, 606 whether the current frame comprises one or more DRC profiles from the plurality of DRC profiles or whether the current frame comprises a subset of DRC profiles may comprise verifying 606 a DRC profile flag comprised within the current frame. A DRC profile flag within the bitstream of the encoded audio signal provides a bandwidth and computational efficient means for identifying frames which carry DRC profiles.
The method 600 may further comprise determining whether the current frame is indicative of an implicit DRC profile from a plurality of implicit DRC profiles. An implicit DRC profile may comprise a pre-defined legacy compression curve and time constants that may be used for transcoding to E-AC-3. As indicated above, definition data of an implicit DRC profile may be known at the decoder 100 for decoding the input audio signal 102. In contrast to the default DRC profile, the implicit DRC profiles may be specific to different types of audio signals (as specified e.g. in Table 1). A current frame of the sequence of frames may indicate a particular implicit DRC profile (e.g. using an identifier, ID). This may provide a bandwidth efficient means for signaling an appropriate DRC profile for the encoded audio signal 102. The implicit DRC profile may be selected 608 as the current DRC profile, if it is determined that the current frame is indicative of an implicit DRC profile.
Decoding of the current frame may comprise leveling the sequence of frames to the first output reference level of the first rendering mode. Furthermore, decoding of the current frame may comprise adapting a loudness level of the current frame using the dynamic range compression curve which is specified within the current DRC profile. The adaption of the loudness level may be performed as outlined in the context of
Depending on the number of frames from the sequence of frames, the current DRC profile may correspond to a default DRC profile (which is typically independent of the input audio signal 102), to an implicit DRC profile (which may be adapted to the input audio signal 102 in a limited manner) or to the first explicit DRC profile (which may have been designed for the input audio signal 102 and/or for the first rendering mode).
Typically, only a subset of frames comprises DRC profiles. Once a current DRC profile has been selected, the current DRC profile may be maintained for decoding frames of the sequence of frames which do not comprise any DRC profiles. Furthermore, the current DRC profile may be maintained, even upon reception of frames with DRC profiles, as long as no DRC profile is received which is more up-to-date than the current DRC profile and/or which is of higher relevance for the encoded audio signal 102 (wherein the selected first explicit DRC profile has a higher relevance than a selected implicit DRC profile which has a higher relevance than the default DRC profile). By doing this, continuity and optimality of the used DRC profile can be ensured.
In complement to the method 600 for decoding an encoded audio signal 102, a method for generating or encoding an encoded audio signal 102 is described. The encoded audio signal 102 comprises a sequence of frames. Furthermore, the encoded audio signal 102 is indicative of a plurality of different dynamic range control (DRC) profiles for a corresponding plurality of different rendering modes. The method may comprise inserting different subsets of DRC profiles from the plurality of DRC profiles into different frames of the sequence of frames, such that two or more frames of the sequence of frames jointly comprise the plurality of DRC profiles. In other words, subsets of DRC profiles, with less than the total number of DRC profiles, may be provided along with different frames of the sequence of frames. By doing this, the overhead of the encoded audio signal 102 may be reduced, while at the same time providing the complete set of DRC profiles to a corresponding decoder 100. In other words, an advantage of this approach is that an encoder 150 has an increased freedom in how to transmit DRC data. This freedom can be used to reduce the bitrate.
The sequence of frames may comprise a subsequence of I-frames (e.g. every Xth frame of the sequence of frames may be an I-frame). The different subsets of DRC profiles may be inserted into different (e.g. succeeding) I-frames of the subsequence of I-frames. In order to further reduce the bandwidth I-frames may be skipped, i.e. some of the I-frames may not comprise any DRC profile data.
A (e.g. each) subset of DRC profiles may comprise only a single DRC profile. In particular, the plurality of DRC profiles may comprise N DRC profiles, with N being an integer, N>1. The N DRC profiles may be inserted into N different frames from the sequence of frames. By doing this, the bitrate which is required for the transmission of the DRC profiles may be minimized.
The method may further comprise inserting all of the plurality of DRC profiles into a first frame of the sequence of frames (e.g. into the first frame of the sequence of frames of the audio signal). As a result of this, the rending of the encoded audio signal 102 may be started directly with the correct explicit DRC profile. As indicated above, an audio program may be subdivided into a plurality of sub audio programs, e.g. a main audio program which is interrupted by commercial breaks. It may be beneficial to insert all of the plurality of DRC profiles into the first frame of each sub-audio program. In other words, it may be beneficial to insert all of the plurality of DRC profiles directly subsequent to the one or more splicing points of an audio program which comprises a plurality of sub audio programs.
The different subsets of DRC profiles from the plurality of DRC profiles may be inserted into different frames of the sequence of frames, such that each subsequence of M directly succeeding frames from the sequence of frames jointly comprises the plurality of DRC profiles, wherein M is an integer, with M>1. In other words, the plurality of DRC profiles may be transmitted repeatedly within blocks of M frames. As a result of this, a decoder 100 has to wait at the most M frames prior to obtaining an optimal explicit DRC profile for the encoded audio signal 102.
The method may further comprise inserting a flag into a frame of the sequence of frames, wherein the flag is indicative of whether the frame comprises a DRC profile or not. Providing such a flag enables the corresponding decoder 100 to efficiently identify a frame which comprises DRC profile data.
The DRC profiles of the plurality of DRC profiles may be explicit DRC profiles which comprise (i.e. which carry) definition data for defining a dynamic range compression curve. As outlined in the present document, a dynamic range compression curve provides a mapping between an input loudness and an output loudness and/or a gain to be applied to the audio signal. In particular, the definition data may comprise one or more of: a boost gain for boosting the input loudness; a boost gain range indicating a range for the input loudness, to which the boost gain is applicable; a null band range indicating a range for the input loudness, to which a gain of 0 dB is applicable; a cut gain for attenuating the input loudness; a cut gain range indicating a range for the input loudness, to which the cut gain is applicable; a boost gain ratio indicating a transition between a null gain and the boost gain; and/or a cut gain ratio indicating a transition between the null gain and the cut gain.
The method may further comprise inserting an indication (e.g. an identifier, ID) of an implicit DRC profile, wherein definition data of an implicit DRC profile is typically known to a decoder 100 of the encoded audio signal 102. The indication of an implicit DRC profile may provide a bandwidth efficient means for signaling a DRC profile which is adapted (in a limited manner) to the encoded audio signal 102.
As outlined above, a frame of the sequence of frames typically comprises audio data and metadata. A subset of DRC profiles is typically inserted as metadata.
A DRC profile may comprise definition data for defining a range of output reference levels for which the DRC profile is applicable. The output reference level is typically indicative of a dynamic range of a rendering mode. In particular, the dynamic range of the rendering mode may decrease with increasing output reference level, and vice versa. Furthermore, a maximum boost gain and a maximum cut gain of a dynamic range compression curve of a DRC profile may increase with increasing output reference level, and vice versa. As such, the output reference level provides an efficient means for selecting an appropriate DRC profile (with an appropriate dynamic range compression curve) for a particular rendering mode.
The method may further comprise generating a bitstream which comprises the encoded audio signal 102. The bitstream may be an AC4 bitstream, i.e. the bitstream may be compliant with an AC4 bitstream format.
The method may further comprise inserting explicit DRC gains for the encoded audio signal 102 into a frame of the sequence of frames. In particular, a DRC gain which is applicable to a particular frame of the sequence of frames may be inserted into the particular frame. As such, each frame of the sequence of frames may comprise a DRC data component which comprises one or more explicit DRC gains to be applied to the respective frame. In particular, each frame may comprise different explicit DRC gains for different rendering modes. For this purpose, DRC algorithms for different rendering modes may be applied within an encoder 150, and different DRC gains for the different rendering modes may be determined at the encoder 150. The different DRC gains may then be inserted explicitly within the sequence of frames. As a result of this, the corresponding decoder 100 can apply the explicit DRC gains directly, without performing the DRC algorithm using a dynamic range compression curve.
Hence, a sequence of frames may comprise or may be indicative of a plurality of explicit DRC profiles for signaling dynamic range compression curves for a plurality of corresponding rendering modes. The plurality of DRC profiles may be inserted into some (not all) of the frames (e.g. the I-frames) of the sequence of frames. Furthermore, the sequence of frames may comprise or may be indicative of one or more DRC profiles for a corresponding one or more rendering modes, wherein the one or more DRC profiles indicate that explicit DRC gains for one or more rendering modes are inserted into the frames of the sequence of frames. By way of example, the one or more DRC profiles for signaling explicit DRC gains may comprise a flag that indicates whether explicit DRC gains are comprised in the frames of the sequence of frames. The DRC gains may be inserted into each frame of the sequence of frames. In particular, each frame may comprise the one or more DRC gains which are to be used for decoding the frame.
The method may comprise inserting a DRC profile for the explicit DRC gains into a subset of frames from the sequence of frames. By way of example, the DRC profile for which DRC gains are transmitted may be indicative of DRC configuration data for the explicit gains. Specifically, the DRC profile for which DRC gains are transmitted may be included in all said subsets of DRC profiles. The DRC configuration data (e.g. a flag) may indicate that the sequence of frames comprises explicit DRC gains for a particular rendering mode. By doing this, the decoder 100 is informed about the fact that for the particular rendering mode, the explicit DRC gains are to be derived directly from the frames of the sequence of frames.
Hence, the method may further comprise determining explicit DRC gains for the encoded audio signal 102 for a particular rendering mode. In addition, the method may comprise inserting the explicit DRC gains into the frames of the sequence of frames. An explicit DRC gain may be inserted into the frame from the sequence of frames for which the explicit DRC gain is applicable. Furthermore, a frame from the sequence of frames may comprise the one or more explicit DRC gains which are required for decoding the frame within the particular rendering mode.
The method may further comprise inserting a DRC profile indicative of DRC configuration data for the particular rendering mode into a subset of frames from the sequence of frames (e.g. into the I-frames). The DRC configuration data (comprising e.g. a flag) may be indicative of the fact that for the particular rendering mode, explicit DRC gains are comprised within the frames of the sequence of frames. As such, the decoder 100 may determine efficiently whether to use compression curves from a plurality of DRC profiles for signaling dynamic range compression curves or whether to use explicit DRC gains.
The DRC profiles for signaling dynamic range compression curves and the one or more DRC profiles which point to explicit DRC gains may be comprised within a dedicated syntax element (referred to e.g. as a DRC profile syntax element) of an I-frame of the sequence of frames.
The methods and systems described in the present document may be implemented as software, firmware and/or hardware. Certain components may e.g. be implemented as software running on a digital signal processor or microprocessor. Other components may e.g. be implemented as hardware and or as application specific integrated circuits. The signals encountered in the described methods and systems may be stored on media such as random access memory or optical storage media. They may be transferred via networks, such as radio networks, satellite networks, wireless networks or wireline networks, e.g. the Internet. Typical devices making use of the methods and systems described in the present document are portable electronic devices or other consumer equipment which are used to store and/or render audio signals.
This application is a continuation from U.S. patent application Ser. No. 18/233,330 filed Aug. 14, 2023, which is a continuation from U.S. patent application Ser. No. 17/670,459 filed Feb. 13, 2022, now U.S. Pat. No. 11,727,948, which is a continuation from U.S. patent application Ser. No. 17/022,152 filed Sep. 16, 2020, now U.S. Pat. No. 11,250,868, which is a continuation from U.S. patent application Ser. No. 16/420,473 filed May 23, 2019, now U.S. Pat. No. 10,783,897, which is a continuation from U.S. patent application Ser. No. 16/026,529 filed Jul. 3, 2018, now U.S. Pat. No. 10,354,670, which is a continuation from U.S. patent application Ser. No. 15/513,546 filed Mar. 22, 2017, now U.S. Pat. No. 10,020,001, which is the U.S. national stage of PCT International Application No. PCT/EP2015/072371 filed Sep. 29, 2015, which claims the benefit of priority from U.S. Provisional Patent Application No. 62/058,228 filed Oct. 1, 2014, each of which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62058228 | Oct 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 18233330 | Aug 2023 | US |
Child | 18781163 | US | |
Parent | 17670459 | Feb 2022 | US |
Child | 18233330 | US | |
Parent | 17022152 | Sep 2020 | US |
Child | 17670459 | US | |
Parent | 16420473 | May 2019 | US |
Child | 17022152 | US | |
Parent | 16026529 | Jul 2018 | US |
Child | 16420473 | US | |
Parent | 15513546 | Mar 2017 | US |
Child | 16026529 | US |