WO2015088697A1 - Dynamic range control gain encoding - Google Patents

Dynamic range control gain encoding Download PDF

Info

Publication number
WO2015088697A1
WO2015088697A1 PCT/US2014/065295 US2014065295W WO2015088697A1 WO 2015088697 A1 WO2015088697 A1 WO 2015088697A1 US 2014065295 W US2014065295 W US 2014065295W WO 2015088697 A1 WO2015088697 A1 WO 2015088697A1
Authority
WO
WIPO (PCT)
Prior art keywords
spline
nodes
values
gain values
representation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2014/065295
Other languages
French (fr)
Inventor
Frank M. Baumgarte
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of WO2015088697A1 publication Critical patent/WO2015088697A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03GCONTROL OF AMPLIFICATION
    • H03G3/00Gain control in amplifiers or frequency changers
    • H03G3/20Automatic control
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03GCONTROL OF AMPLIFICATION
    • H03G7/00Volume compression or expansion in amplifiers
    • H03G7/007Volume compression or expansion in amplifiers of digital or coded signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03GCONTROL OF AMPLIFICATION
    • H03G11/00Limiting amplitude; Limiting rate of change of amplitude
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03GCONTROL OF AMPLIFICATION
    • H03G3/00Gain control in amplifiers or frequency changers
    • H03G3/001Digital control of analog signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03GCONTROL OF AMPLIFICATION
    • H03G3/00Gain control in amplifiers or frequency changers
    • H03G3/20Automatic control
    • H03G3/30Automatic control in amplifiers having semiconductor devices
    • H03G3/32Automatic control in amplifiers having semiconductor devices the control being dependent upon ambient noise level or sound level

Definitions

  • An embodiment of the invention generally relates to a system and method for selecting spline nodes in a spline representation of Dynamic Range Control (DRC) gain values for an audio signal. Other embodiments are also described.
  • DRC Dynamic Range Control
  • DRC Dynamic Range Control/Compression reduces the dynamic range of an audio signal by some amount by (1) making soft parts in the audio signal louder; (2) making loud parts in the audio signal softer; or (3) both making soft parts louder and making loud parts softer.
  • a reduced dynamic range may be desirable in several situations, including for audio playback systems that can only reproduce a small dynamic range while maintaining low distortions, listening environments with distracting sounds, and in situations where the listener does not want to distract others.
  • DRC may also be applied to avoid clipping, i.e., exceeding the full scale of the audio format, for instance when audio samples are represented as fixed-point numbers.
  • Another application of time- varying gain is the generation of fade-in and fade-out of the audio content at the beginning and end of a song for so-called gap-less content.
  • a system and method may be used for encoding an audio signal corresponding to a piece of sound program content.
  • the system and method may convert Dynamic Range Control/Compression (DRC) gain values into a spline representation that is compatible with the current standards (e.g., International Organization for DRC)
  • DRC Dynamic Range Control/Compression
  • the system and method may: 1) minimize the bitrate for encoding and/or 2) minimize the approximation error between reference gain and interpolation values.
  • a strategy for bitrate minimization may be the reduction of the number of spline nodes since gain and slope information must be transmitted for each node. Accordingly, by reducing the number of spline nodes, the amount of data transmitted or needed to be stored will also decrease. However, if the node density is not sufficient to accurately represent the gain curve, the approximation error will increase.
  • Figure 1 shows Dynamic Range Control/Compression (DRC) gain representation using splines according to one embodiment.
  • Figure 2 shows spline modification by removing the middle node if three
  • Figure 3 shows spline modification by removing one middle node of four nodes if the two middle nodes have the same gain value and the four nodes are on an ascending or descending slope according to one embodiment.
  • Figure 4 shows spline modification by setting the slope steepness to zero for local maxima and minima of gain according to one embodiment.
  • Figure 5 shows spline modification by setting the slope steepness to zero if neighboring quantized gain values are the same according to one embodiment.
  • Figure 6 shows spline modification by removing nodes on slopes if the slope is approximately constant according to one embodiment.
  • Figure 7 shows spline modification to avoid overshoots according to one
  • Figure 8 shows a component diagram of an audio encoding device according to one embodiment.
  • Figure 9 shows a method for encoding an audio signal corresponding to a piece of sound program content according to one embodiment.
  • DRC Dynamic Range Control
  • the current MPEG working draft includes a description of the DRC gain bitstream syntax, so that time- varying gains can efficiently be transmitted to a receiver. The receiver can then apply the time-varying gains when appropriate.
  • the decoder for the encoded gain sequences is fully specified in the draft and is based on spline interpolation. However, the encoder is only required to produce a valid bitstream, but is otherwise unconstrained.
  • the time-varying DRC gains may be generated by a dynamic range compressor.
  • the time-varying DRC gains at the output of the dynamic range compressor may be given in a linear pulse-code modulation (LPCM) format at the audio sample rate and the gain samples are given in decibels (dB).
  • LPCM linear pulse-code modulation
  • the audio signal may be processed frame-by-frame, where each frame consists of a constant number of audio samples.
  • Figure 1 shows an example of a DRC representation using splines.
  • the upper graph includes the gain (solid line), where circles represent discrete time instances selected by the gain encoder to place nodes for the spline interpolation. Each node has a slope steepness indicated by the arrows. The nodes can only be located on a uniform grid which is specified by the decoding algorithm.
  • the lower graph includes the same gain (solid line) and the interpolated gain (dashed line).
  • the interpolation is based on quantized gain values and slopes. Hence, the nodes are located on cross points of the mesh and the slopes have slightly different values as specified by the decoding algorithm.
  • the main goals of an efficient DRC gain encoder may be twofold: 1) minimize the bitrate for encoding and/or 2) minimize the approximation error between reference gain and interpolation values.
  • a strategy for bitrate minimization may be the reduction of the number of nodes since gain and slope information must be transmitted for each node. Accordingly, by reducing the number of spline nodes, the amount of data transmitted or needed to be stored will also decrease. However, if the node density is not sufficient to accurately represent the gain curve, the approximation error will increase.
  • a relevant measure of the approximation may be conceptually based on a perceptual difference. This means that a deviation of the reference gain curve is only significant if it can potentially cause an audible difference.
  • the quantization step sizes for the time and gain coordinates have been designed to be smaller than critical values that would result in a just noticeable difference. Hence, deviations within half of the quantization step size are considered inaudible.
  • the gain encoder should allocate more nodes to areas with larger gain changes. If there is no gain change at all, just one node is sufficient to represent the gain for the whole frame. Due to the spline interpolation method, which is based on polynomials of orders up to three, the interpolated gain may result in unintended oscillations. These oscillations may be especially problematic when they lead to "overshoots" of the interpolated gain curve so that the audio signal would unintentionally be amplified. To avoid this problem, a gain encoder may be designed to monitor overshoots and similar artifacts of the spline interpolation and avoid these issues by modifying the encoding. The modifications may include a different placement of spline nodes and/or changes of slope steepness values.
  • the system and method produce an optimized spline representation in the sense that they aim to minimize bit rate and approximation error.
  • the method may consist of a number of operations that work well in the order they appear. However, in other embodiments the order of the operation may be changed without producing significantly inferior results. In some embodiments, the operations of the method may be performed in partially overlapping time periods.
  • the spline representation may be completely defined when all node coordinates are given along with their corresponding slope steepness.
  • the two dimensional node coordinates may be specified by a time value and a gain value. Values described herein may be quantized according to one or more techniques.
  • a single spline segment between two nodes may depend on the time/gain coordinates and slopes at the two nodes.
  • FIG. 8 shows an audio encoding device 800 according to one embodiment.
  • the audio encoding device 800 may be any device capable of performing one or more operations of the audio encoding method that will be described in greater detail below.
  • the audio encoding device 800 may be a desktop computer, a laptop computer, a tablet computer, a mobile device (e.g., a smartphone), a set-top box, a gaming device, or any other similar device that is capable of processing and encoding a piece of audio.
  • the audio encoding device 800 may include a hardware processor 801 and/or a memory unit 803.
  • the processor 801 and the memory unit 803 are generically used here to refer to any suitable combination of programmable data processing components and data storage that conduct the operations needed to implement the various functions and operations of the audio encoding device 800.
  • the processor 801 may be an applications processor typically found in a smart phone, while the memory unit 803 may refer to microelectronic, non-volatile random access memory.
  • An operating system may be stored in the memory unit 803 along with application programs specific to the various functions of the audio encoding device 800, which are to be run or executed by the processor 801 to perform the various functions of the audio encoding device 800.
  • an audio encoder 805 may be stored in the memory unit 803. As will be described in greater detail below, the audio encoder 805 may be used to encode a piece of sound program content represented by an audio signal.
  • the audio encoding device 800 may include an interface 807 for communicating with one or more audio playback devices 809 or other devices (e.g., remote audio/video streaming services) over the switching fabric 811.
  • the interface 807 may utilize wired mediums (e.g., conduit or wire) to communicate with the audio playback devices 809.
  • the interface 807 may communicate with the audio playback devices 809 through a wireless connection.
  • the interface 807 may utilize one or more wireless protocols and standards for communicating with the audio playback devices 809, including the IEEE 802.11 suite of standards, cellular Global System for Mobile Communications (GSM) standards, cellular Code Division Multiple Access (CDMA) standards, Long Term Evolution (LTE) standards, and/or Bluetooth standards.
  • GSM Global System for Mobile Communications
  • CDMA Code Division Multiple Access
  • LTE Long Term Evolution
  • the switching fabric 811 includes a set of network components that facilitate communications between multiple devices.
  • the switching fabric 811 may be composed of one or more switches, routers, hubs, etc. These network components that comprise the switching fabric 811 may operate using both wired and wireless mediums as described above in relation to the interface 807.
  • the method 900 may encode the audio signal by selecting spline nodes for DRC gain values.
  • the method 900 may be performed by one or more components of the audio encoding device 800.
  • the audio encoder 805 may perform one or more operations of the method 900.
  • the method 900 may be performed by other components of the audio encoding device 800, including hardware circuitry integrated or otherwise associated with the audio encoding device 800. Each operation of the method 900 will be described below by way of example.
  • the method 900 may commence at operation 901 with receipt of DRC gain values corresponding to an audio signal.
  • the DRC gain values may be extracted from the audio signal, which was received via the interface 807 from a remote device, or stored locally on the audio encoding device 800.
  • the DRC gain values may be fed into a DRC gain encoder (e.g., the audio encoder 805) in an LPCM format, i.e., a uniformly sampled sequence of PCM values usually at the audio sample rate.
  • the audio sample rate may be higher than the maximum rate at which spline nodes can occur.
  • DRC gains may be processed frame- by-frame. The last gain value of the previous frame may be stored to be available for processing of the current frame.
  • the DRC gain values may be smoothed over time to eliminate very fast gain changes that can misguide the algorithm. These fast gain changes can be eliminated because they are irrelevant in terms of perception. Slope values may be computed based on the smoothed DRC gain.
  • spline nodes may be calculated.
  • a number of spline nodes may be placed at certain locations for the current frame. The locations for the nodes are identified by evaluating gain changes and slopes.
  • the smoothed DRC gain may be quantized at operation 905 and the smoothed quantized gain values may be used to select spline nodes at operation 907 as follows:
  • a spline node may be placed at a certain point in time (without quantization), if there is a change in the quantized DRC gain.
  • the node locations in time are now quantized and the gain values at the new time locations are quantized. If the quantization error is large in areas with a larger slope, new nodes may be inserted to reduce the approximation error.
  • the existing nodes may be evaluated at operation 909 and modified or removed depending on the following rules:
  • Overshoots can be detected by computing the locations where the first derivative of the spline is zero. The gain at these locations can be computed and compared to the gain values at the nodes. An overshoot is given when the gain exceeds the maximum gain of the two spline nodes by a certain factor, or if the gain is below the minimum of the two spline node gains by a certain factor. For a cubic spline, there can be up to two locations with a derivative of zero if at least one slope is nonzero (see Figure 7).
  • the method 900 produces an optimized spline representation, which minimizes bit rate and approximation error.
  • the method 900 is able to generate a set of spline nodes that accurately represent a corresponding audio signal with a reduced complexity in comparison to a brute force approach as described above.
  • the DRC gain representation which includes the DRC spline nodes generated above, may be transmitted or otherwise delivered to one or more audio playback devices 809 at operation 911.
  • the DRC spline nodes may be transmitted along with other pieces of data representing a corresponding audio signal, to one or more of the audio playback devices 809 via the interface 807 and the switching fabric 811.
  • the DRC spline nodes may be transmitted to the audio playback devices 809 using any other medium.
  • the audio playback devices 809 may utilize these DRC spline nodes to decode/generate a set of DRC gain values for playback a corresponding piece of sound program content.
  • an article of manufacture for selecting spline nodes for Dynamic Range Control (DRC) gain values comprises: a non-transitory machine-readable storage medium that stores instructions which, when executed by a processor in a computer, quantize DRC gain values for a frame of a corresponding audio signal; place one or more spline nodes in a spline representation of the DRC gain values based on the quantized DRC gain values or the DRC gain values; and modify the one or more spline nodes in the spline representation to reduce overshoots and remove redundancies.
  • DRC Dynamic Range Control
  • each of the spline nodes is represented by a gain value, a time value indicating when the corresponding gain value is applied in the frame, and a slope value.
  • the non-transitory machine-readable storage medium stores further instructions for placing the one or more spline nodes which, when executed by the processor: place a spline node at a location in the spline representation corresponding to a change in gain between neighboring quantized DRC gain values.
  • the non-transitory machine -readable storage medium stores further instructions for placing the one or more spline nodes which, when executed by the processor: determine quantization error values for the quantized DRC gain values in comparison to the received DRC gain values; and when two neighboring quantized DRC gain values have the same gain value, place a spline node at a location in the spline representation corresponding to the quantized DRC gain value of the two neighboring quantized DRC gain values with the lowest quantization error.
  • the non-transitory machine -readable storage medium stores further instructions for placing the one or more spline nodes which, when executed by the processor: place a spline node in the center of the spline representation with a gain value of a corresponding quantized DRC gain value when after attempting to place spline nodes in the spline representation based on 1) change in gain between neighboring quantized DRC gain values and 2) quantization error values of two identical neighboring quantized DRC gain values no spline nodes have been placed in the spline representation.
  • the non-transitory machine -readable storage medium includes further instructions which, when executed by the processor: quantize the spline nodes placed in the time representation of the frame in terms of time values and gain values; and insert spline nodes in the spline representation of the frame to reduce approximation errors when the quantization error is above a predefined error value for one or more quantized DRC gain values with slopes above a predefined slope value.
  • the non-transitory machine -readable storage medium stores further instructions for modifying the one or more spline nodes which, when executed by the processor: remove a middle spline node when three neighboring spline nodes in the spline representation have identical gain values.
  • the non-transitory machine -readable storage medium stores further instructions for modifying the one or more spline nodes which, when executed by the processor: remove, in a set of four neighboring spline nodes in the spline representation with two outer spline nodes and two middle spline nodes, one of the middle spline nodes when both middle spline nodes have identical gain values and the set of four neighboring spline nodes are collectively on an ascending or descending slope.
  • the non-transitory machine -readable storage medium stores further instructions for modifying the one or more spline nodes which, when executed by the processor: set the slope steepness for spline nodes at local maxima and local minima in the spline representation to zero.
  • the non-transitory machine -readable storage medium stores further instructions for modifying the one or more spline nodes which, when executed by the processor: set the slope steepness for neighboring spline nodes with identical gain values in the spline representation to zero.
  • the non-transitory machine -readable storage medium stores further instructions for modifying the one or more spline nodes which, when executed by the processor: remove, in a set of three or more neighboring spline nodes, one or more spline nodes from the set of three or more neighboring spline nodes, when the slope values for the three or more spline nodes are within a predefined variance level.
  • the non-transitory machine -readable storage medium stores further instructions for modifying the one or more spline nodes which, when executed by the processor: compute the first derivative for a segment of a spline in the spline representation, wherein the segment of the spline is positioned between two spline nodes; determine the gain value for the segment of the spline when the first derivative for the segment of the spline is zero; detect an overshoot by the segment of the spline when the gain value for the segment of the spline is 1) above the maximum gain value of the two spline nodes by a predefined factor or 2) below the minimum gain value of the two spline nodes by the predefined factor; and adjust the slope values for the two spline nodes to make the slope values for the two spline nodes shallower in response to detecting an overshoot for the segment of the spline.
  • the non-transitory machine -readable storage medium includes further instructions which, when executed by the processor: smooth the DRC gain values prior to quantizing the DRC gain values such that fast gain changes are eliminated.
  • a system for selecting spline nodes for Dynamic Range Control (DRC) gain values comprises: a device, including a hardware processor, the device being configured to: quantize DRC gain values for a frame corresponding to an audio signal; place one or more spline nodes in a spline representation of the DRC gain values based on the quantized DRC gain values or the DRC gain values; and modify the one or more spline nodes in the spline representation to reduce overshoots and remove redundancies.
  • DRC Dynamic Range Control
  • each of the spline nodes is represented by a gain value, a time value indicating when the corresponding gain value is applied in the frame, and a slope value.
  • the device is further configured to: place a spline node at a location in the spline representation corresponding to a change in gain between neighboring quantized DRC gain values.
  • the device is further configured to: determine quantization error values for the quantized DRC gain values in comparison to the received DRC gain values; and when two neighboring quantized DRC gain values have the same gain value, place a spline node at a location in the spline representation corresponding to the quantized DRC gain value of the two neighboring quantized DRC gain values with the lowest quantization error.
  • the device is further configured to: place a spline node in the center of the spline representation with a gain value of a corresponding quantized DRC gain value when after attempting to place spline nodes in the spline representation based on 1) change in gain between neighboring quantized DRC gain values and 2) quantization error values of two identical neighboring quantized DRC gain values no spline nodes have been placed in the spline representation.
  • the device is further configured to: quantize the spline nodes placed in the time representation of the frame in terms of time values and gain values; and insert spline nodes in the spline representation of the frame to reduce approximation errors when the quantization error is above a predefined error value for one or more quantized DRC gain values with slopes above a predefined slope value.
  • the device is further configured to: remove a middle spline node when three neighboring spline nodes in the spline representation have identical gain values.
  • the device is further configured to: remove, in a set of four neighboring spline nodes in the spline representation with two outer spline nodes and two middle spline nodes, one of the middle spline nodes when both middle spline nodes have identical gain values and the set of four neighboring spline nodes are collectively on an ascending or descending slope.
  • the device is further configured to: set the slope steepness for spline nodes at local maxima and local minima in the spline representation to zero.
  • the device is further configured to: set the slope steepness for neighboring spline nodes with identical gain values in the spline representation to zero.
  • the device is further configured to: remove, in a set of three or more neighboring spline nodes, one or more spline nodes from the set of three or more neighboring spline nodes, when the slope values for the three or more spline nodes are within a predefined variance level.
  • the device is further configured to: compute the first derivative for a segment of a spline in the spline representation, wherein the segment of the spline is positioned between two spline nodes; determine the gain value for the segment of the spline when the first derivative for the segment of the spline is zero; detect an overshoot by the segment of the spline when the gain value for the segment of the spline is 1) above the maximum gain value of the two spline nodes by a predefined factor or 2) below the minimum gain value of the two spline nodes by the predefined factor; and adjust the slope values for the two spline nodes to make the slope values for the two spline nodes shallower in response to detecting an overshoot for the segment of the spline.
  • the device is further configured to: smooth the DRC gain values prior to quantizing the DRC gain values such that fast gain changes are eliminated.
  • an embodiment of the invention may be a machine-readable medium such as one or more solid state memory devices having stored thereon instructions which program one or more data processing components (generically referred to here as “a processor” or a “computer system”) to perform some of the operations described above.
  • a processor or a “computer system”
  • some of these operations might be performed by specific hardware components that contain hardwired logic. Those operations might alternatively be performed by any combination of programmed data processing components and fixed hardwired circuit components.

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

A system and method is provided for converting Dynamic Range Control/Compression (DRC) gain values into a spline representation that is compatible with the current standards. The system and method may: 1) minimize the bitrate for encoding and/or 2) minimize the approximation error between reference gain and interpolation values. A strategy for bitrate minimization may be the reduction of the number of spline nodes since gain and slope information must be transmitted for each node. Accordingly, an efficient heuristics based approach is provided that reduces the number of spline nodes needed to represent a series of DRC gain values using interpolation while accounting for overshoots and other inaccuracies.

Description

DYNAMIC RANGE CONTROL GAIN ENCODING
RELATED MATTERS
[0001] This application claims the benefit of the earlier filing date of U.S. provisional application no. 61/914,288, filed December 10, 2013.
FIELD
[0002] An embodiment of the invention generally relates to a system and method for selecting spline nodes in a spline representation of Dynamic Range Control (DRC) gain values for an audio signal. Other embodiments are also described.
BACKGROUND
[0003] Dynamic Range Control/Compression (DRC) reduces the dynamic range of an audio signal by some amount by (1) making soft parts in the audio signal louder; (2) making loud parts in the audio signal softer; or (3) both making soft parts louder and making loud parts softer. A reduced dynamic range may be desirable in several situations, including for audio playback systems that can only reproduce a small dynamic range while maintaining low distortions, listening environments with distracting sounds, and in situations where the listener does not want to distract others. DRC may also be applied to avoid clipping, i.e., exceeding the full scale of the audio format, for instance when audio samples are represented as fixed-point numbers. Another application of time- varying gain is the generation of fade-in and fade-out of the audio content at the beginning and end of a song for so-called gap-less content.
[0004] The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
SUMMARY
[0005] In one embodiment, a system and method may be used for encoding an audio signal corresponding to a piece of sound program content. In particular, the system and method may convert Dynamic Range Control/Compression (DRC) gain values into a spline representation that is compatible with the current standards (e.g., International Organization for
Standardization (ISO) and/or Moving Picture Experts Group (MPEG) standards and proposals). In one embodiment, the system and method may: 1) minimize the bitrate for encoding and/or 2) minimize the approximation error between reference gain and interpolation values. In one embodiment, a strategy for bitrate minimization may be the reduction of the number of spline nodes since gain and slope information must be transmitted for each node. Accordingly, by reducing the number of spline nodes, the amount of data transmitted or needed to be stored will also decrease. However, if the node density is not sufficient to accurately represent the gain curve, the approximation error will increase.
[0006] To solve this optimization, a brute-force method may be used that evaluates all possible combinations of DRC spline nodes for an audio signal and picks the best configuration. However, this method may be extremely complex due to the huge number of possible combinations. Hence, a technically more reasonable approach may be one based on heuristics that is able to achieve good results with comparatively small complexity. Such a heuristic method is presented herein.
[0007] The above summary does not include an exhaustive list of all aspects of the present invention. It is contemplated that the invention includes all systems and methods that can be practiced from all suitable combinations of the various aspects summarized above, as well as those disclosed in the Detailed Description below and particularly pointed out in the claims filed with the application. Such combinations have particular advantages not specifically recited in the above summary.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The embodiments of the invention are illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to "an" or "one" embodiment of the invention in this disclosure are not necessarily to the same embodiment, and they mean at least one.
[0009] Figure 1 shows Dynamic Range Control/Compression (DRC) gain representation using splines according to one embodiment.
[0010] Figure 2 shows spline modification by removing the middle node if three
consecutive nodes have identical gain values according to one embodiment.
[0011] Figure 3 shows spline modification by removing one middle node of four nodes if the two middle nodes have the same gain value and the four nodes are on an ascending or descending slope according to one embodiment.
[0012] Figure 4 shows spline modification by setting the slope steepness to zero for local maxima and minima of gain according to one embodiment.
[0013] Figure 5 shows spline modification by setting the slope steepness to zero if neighboring quantized gain values are the same according to one embodiment.
[0014] Figure 6 shows spline modification by removing nodes on slopes if the slope is approximately constant according to one embodiment.
[0015] Figure 7 shows spline modification to avoid overshoots according to one
embodiment. [0016] Figure 8 shows a component diagram of an audio encoding device according to one embodiment.
[0017] Figure 9 shows a method for encoding an audio signal corresponding to a piece of sound program content according to one embodiment.
DETAILED DESCRIPTION
[0018] Several embodiments of the invention with reference to the appended drawings are now explained. Whenever the shapes, relative positions and other aspects of the parts described in the embodiments are not clearly defined, the scope of the invention is not limited only to the parts shown, which are meant merely for the purpose of illustration. Also, while numerous details are set forth, it is understood that some embodiments of the invention may be practiced without these details. In other instances, well-known circuits, structures, and techniques have not been shown in detail so as not to obscure the understanding of this description.
[0019] Dynamic Range Control (DRC) of audio signals is currently subject to
standardization by International Organization for Standardization (ISO) and/or Moving Picture Experts Group (MPEG). At the current stage of standardization, time-varying DRC gain values are encoded for transmission along with a corresponding audio signal. Since MPEG only specifies the bitstream format and decoding algorithm, there is flexibility in encoder design and optimization. An algorithm is provided herein for the conversion of DRC gain values into a spline representation for encoding that is compatible with the current MPEG proposal.
[0020] The current MPEG working draft includes a description of the DRC gain bitstream syntax, so that time- varying gains can efficiently be transmitted to a receiver. The receiver can then apply the time-varying gains when appropriate. The decoder for the encoded gain sequences is fully specified in the draft and is based on spline interpolation. However, the encoder is only required to produce a valid bitstream, but is otherwise unconstrained.
[0021] The time-varying DRC gains may be generated by a dynamic range compressor. For simplicity, the time-varying DRC gains at the output of the dynamic range compressor may be given in a linear pulse-code modulation (LPCM) format at the audio sample rate and the gain samples are given in decibels (dB). The audio signal may be processed frame-by-frame, where each frame consists of a constant number of audio samples.
[0022] Figure 1 shows an example of a DRC representation using splines. The upper graph includes the gain (solid line), where circles represent discrete time instances selected by the gain encoder to place nodes for the spline interpolation. Each node has a slope steepness indicated by the arrows. The nodes can only be located on a uniform grid which is specified by the decoding algorithm.
[0023] The lower graph includes the same gain (solid line) and the interpolated gain (dashed line). The interpolation is based on quantized gain values and slopes. Hence, the nodes are located on cross points of the mesh and the slopes have slightly different values as specified by the decoding algorithm.
[0024] In one embodiment, the main goals of an efficient DRC gain encoder may be twofold: 1) minimize the bitrate for encoding and/or 2) minimize the approximation error between reference gain and interpolation values. In one embodiment, a strategy for bitrate minimization may be the reduction of the number of nodes since gain and slope information must be transmitted for each node. Accordingly, by reducing the number of spline nodes, the amount of data transmitted or needed to be stored will also decrease. However, if the node density is not sufficient to accurately represent the gain curve, the approximation error will increase.
[0025] A relevant measure of the approximation may be conceptually based on a perceptual difference. This means that a deviation of the reference gain curve is only significant if it can potentially cause an audible difference. As a guideline, the quantization step sizes for the time and gain coordinates have been designed to be smaller than critical values that would result in a just noticeable difference. Hence, deviations within half of the quantization step size are considered inaudible.
[0026] Intuitively, the gain encoder should allocate more nodes to areas with larger gain changes. If there is no gain change at all, just one node is sufficient to represent the gain for the whole frame. Due to the spline interpolation method, which is based on polynomials of orders up to three, the interpolated gain may result in unintended oscillations. These oscillations may be especially problematic when they lead to "overshoots" of the interpolated gain curve so that the audio signal would unintentionally be amplified. To avoid this problem, a gain encoder may be designed to monitor overshoots and similar artifacts of the spline interpolation and avoid these issues by modifying the encoding. The modifications may include a different placement of spline nodes and/or changes of slope steepness values.
[0027] To solve this optimization, a brute-force method may be used that evaluates all possible encodings and picks the best configuration. However, this method may be extremely complex due to the huge number of possible combinations. Hence, a technically more reasonable approach may be one based on heuristics that is able to achieve good results with comparatively small complexity. Such a heuristic method is presented below.
[0028] OPTIMIZED SPLINE REPRESENTATION
[0029] In the following, a system and method for DRC gain representation using splines is described. The system and method produce an optimized spline representation in the sense that they aim to minimize bit rate and approximation error. The method may consist of a number of operations that work well in the order they appear. However, in other embodiments the order of the operation may be changed without producing significantly inferior results. In some embodiments, the operations of the method may be performed in partially overlapping time periods.
[0030] The spline representation may be completely defined when all node coordinates are given along with their corresponding slope steepness. The two dimensional node coordinates may be specified by a time value and a gain value. Values described herein may be quantized according to one or more techniques. In some embodiments, a single spline segment between two nodes may depend on the time/gain coordinates and slopes at the two nodes.
[0031] AUDIO ENCODING DEVICE
[0032] Figure 8 shows an audio encoding device 800 according to one embodiment. The audio encoding device 800 may be any device capable of performing one or more operations of the audio encoding method that will be described in greater detail below. For example, the audio encoding device 800 may be a desktop computer, a laptop computer, a tablet computer, a mobile device (e.g., a smartphone), a set-top box, a gaming device, or any other similar device that is capable of processing and encoding a piece of audio.
[0033] As shown in Figure 8, the audio encoding device 800 may include a hardware processor 801 and/or a memory unit 803. The processor 801 and the memory unit 803 are generically used here to refer to any suitable combination of programmable data processing components and data storage that conduct the operations needed to implement the various functions and operations of the audio encoding device 800. The processor 801 may be an applications processor typically found in a smart phone, while the memory unit 803 may refer to microelectronic, non-volatile random access memory. An operating system may be stored in the memory unit 803 along with application programs specific to the various functions of the audio encoding device 800, which are to be run or executed by the processor 801 to perform the various functions of the audio encoding device 800. For example, an audio encoder 805 may be stored in the memory unit 803. As will be described in greater detail below, the audio encoder 805 may be used to encode a piece of sound program content represented by an audio signal.
[0034] In one embodiment, the audio encoding device 800 may include an interface 807 for communicating with one or more audio playback devices 809 or other devices (e.g., remote audio/video streaming services) over the switching fabric 811. The interface 807 may utilize wired mediums (e.g., conduit or wire) to communicate with the audio playback devices 809. In another embodiment, the interface 807 may communicate with the audio playback devices 809 through a wireless connection. For example, the interface 807 may utilize one or more wireless protocols and standards for communicating with the audio playback devices 809, including the IEEE 802.11 suite of standards, cellular Global System for Mobile Communications (GSM) standards, cellular Code Division Multiple Access (CDMA) standards, Long Term Evolution (LTE) standards, and/or Bluetooth standards.
[0035] In one embodiment, the switching fabric 811 includes a set of network components that facilitate communications between multiple devices. For example, the switching fabric 811 may be composed of one or more switches, routers, hubs, etc. These network components that comprise the switching fabric 811 may operate using both wired and wireless mediums as described above in relation to the interface 807.
[0036] Turning now to Figure 9, a method 900 for encoding an audio signal corresponding to a piece of sound program content (e.g., a musical composition or an audio track for a movie) will now be described. In one embodiment, the method 900 may encode the audio signal by selecting spline nodes for DRC gain values. In one embodiment, the method 900 may be performed by one or more components of the audio encoding device 800. For example, the audio encoder 805 may perform one or more operations of the method 900. In other embodiments, the method 900 may be performed by other components of the audio encoding device 800, including hardware circuitry integrated or otherwise associated with the audio encoding device 800. Each operation of the method 900 will be described below by way of example.
[0037] PREPARATION STEPS
[0038] In one embodiment, the method 900 may commence at operation 901 with receipt of DRC gain values corresponding to an audio signal. For example, the DRC gain values may be extracted from the audio signal, which was received via the interface 807 from a remote device, or stored locally on the audio encoding device 800. The DRC gain values may be fed into a DRC gain encoder (e.g., the audio encoder 805) in an LPCM format, i.e., a uniformly sampled sequence of PCM values usually at the audio sample rate. The audio sample rate may be higher than the maximum rate at which spline nodes can occur. DRC gains may be processed frame- by-frame. The last gain value of the previous frame may be stored to be available for processing of the current frame. In one embodiment, at operation 903, the DRC gain values may be smoothed over time to eliminate very fast gain changes that can misguide the algorithm. These fast gain changes can be eliminated because they are irrelevant in terms of perception. Slope values may be computed based on the smoothed DRC gain.
[0039] PLACING INITIAL SPLINE NODES
[0040] Following optional smoothing, spline nodes may be calculated. In a first step, a number of spline nodes may be placed at certain locations for the current frame. The locations for the nodes are identified by evaluating gain changes and slopes. [0041] In one embodiment, the smoothed DRC gain may be quantized at operation 905 and the smoothed quantized gain values may be used to select spline nodes at operation 907 as follows:
[0042] A spline node may be placed at a certain point in time (without quantization), if there is a change in the quantized DRC gain.
[0043] If there is a period with identical quantized DRC gain values, a node is placed at the quantized value with the smallest quantization error.
[0044] If there is no node assigned so far, a node is placed in the middle of the
frame.
[0045] The node locations in time are now quantized and the gain values at the new time locations are quantized. If the quantization error is large in areas with a larger slope, new nodes may be inserted to reduce the approximation error.
[0046] MODIFYING NODES
[0047] The existing nodes may be evaluated at operation 909 and modified or removed depending on the following rules:
[0048] Remove the middle node if three consecutive nodes have identical gain (see
Figure 2).
[0049] Remove one middle node of four nodes if the two middle nodes have the same gain value and the four nodes are on an ascending or descending slope (see Figure 3).
[0050] Set the slope steepness to zero for local maxima and minima of the gain (see
Figure 4).
[0051] Set the slope steepness to zero if neighboring quantized gain values are the same (see Figure 5).
[0052] Remove nodes on slopes if the slope is approximately constant (see Figure 6).
[0053] Avoid overshoots: make steep slopes shallower if there is an overshoot. Overshoots can be detected by computing the locations where the first derivative of the spline is zero. The gain at these locations can be computed and compared to the gain values at the nodes. An overshoot is given when the gain exceeds the maximum gain of the two spline nodes by a certain factor, or if the gain is below the minimum of the two spline node gains by a certain factor. For a cubic spline, there can be up to two locations with a derivative of zero if at least one slope is nonzero (see Figure 7).
[0054] As explained above, the method 900 produces an optimized spline representation, which minimizes bit rate and approximation error. In particular, by using a heuristics approach to select and modify spline nodes for placement in a DRC representation, the method 900 is able to generate a set of spline nodes that accurately represent a corresponding audio signal with a reduced complexity in comparison to a brute force approach as described above.
[0055] In one embodiment, the DRC gain representation, which includes the DRC spline nodes generated above, may be transmitted or otherwise delivered to one or more audio playback devices 809 at operation 911. For example, the DRC spline nodes may be transmitted along with other pieces of data representing a corresponding audio signal, to one or more of the audio playback devices 809 via the interface 807 and the switching fabric 811. However, in other embodiments, the DRC spline nodes may be transmitted to the audio playback devices 809 using any other medium. The audio playback devices 809 may utilize these DRC spline nodes to decode/generate a set of DRC gain values for playback a corresponding piece of sound program content.
[0056] Several example embodiments will not be described based on the description provided above. In one embodiment, an article of manufacture for selecting spline nodes for Dynamic Range Control (DRC) gain values, comprises: a non-transitory machine-readable storage medium that stores instructions which, when executed by a processor in a computer, quantize DRC gain values for a frame of a corresponding audio signal; place one or more spline nodes in a spline representation of the DRC gain values based on the quantized DRC gain values or the DRC gain values; and modify the one or more spline nodes in the spline representation to reduce overshoots and remove redundancies.
[0057] In one embodiment, each of the spline nodes is represented by a gain value, a time value indicating when the corresponding gain value is applied in the frame, and a slope value.
[0058] In one embodiment the non-transitory machine-readable storage medium stores further instructions for placing the one or more spline nodes which, when executed by the processor: place a spline node at a location in the spline representation corresponding to a change in gain between neighboring quantized DRC gain values.
[0059] In one embodiment, the non-transitory machine -readable storage medium stores further instructions for placing the one or more spline nodes which, when executed by the processor: determine quantization error values for the quantized DRC gain values in comparison to the received DRC gain values; and when two neighboring quantized DRC gain values have the same gain value, place a spline node at a location in the spline representation corresponding to the quantized DRC gain value of the two neighboring quantized DRC gain values with the lowest quantization error.
[0060] In one embodiment, the non-transitory machine -readable storage medium stores further instructions for placing the one or more spline nodes which, when executed by the processor: place a spline node in the center of the spline representation with a gain value of a corresponding quantized DRC gain value when after attempting to place spline nodes in the spline representation based on 1) change in gain between neighboring quantized DRC gain values and 2) quantization error values of two identical neighboring quantized DRC gain values no spline nodes have been placed in the spline representation.
[0061] In one embodiment, the non-transitory machine -readable storage medium includes further instructions which, when executed by the processor: quantize the spline nodes placed in the time representation of the frame in terms of time values and gain values; and insert spline nodes in the spline representation of the frame to reduce approximation errors when the quantization error is above a predefined error value for one or more quantized DRC gain values with slopes above a predefined slope value.
[0062] In one embodiment, the non-transitory machine -readable storage medium stores further instructions for modifying the one or more spline nodes which, when executed by the processor: remove a middle spline node when three neighboring spline nodes in the spline representation have identical gain values.
[0063] In one embodiment, the non-transitory machine -readable storage medium stores further instructions for modifying the one or more spline nodes which, when executed by the processor: remove, in a set of four neighboring spline nodes in the spline representation with two outer spline nodes and two middle spline nodes, one of the middle spline nodes when both middle spline nodes have identical gain values and the set of four neighboring spline nodes are collectively on an ascending or descending slope.
[0064] In one embodiment, the non-transitory machine -readable storage medium stores further instructions for modifying the one or more spline nodes which, when executed by the processor: set the slope steepness for spline nodes at local maxima and local minima in the spline representation to zero.
[0065] In one embodiment, the non-transitory machine -readable storage medium stores further instructions for modifying the one or more spline nodes which, when executed by the processor: set the slope steepness for neighboring spline nodes with identical gain values in the spline representation to zero.
[0066] In one embodiment, the non-transitory machine -readable storage medium stores further instructions for modifying the one or more spline nodes which, when executed by the processor: remove, in a set of three or more neighboring spline nodes, one or more spline nodes from the set of three or more neighboring spline nodes, when the slope values for the three or more spline nodes are within a predefined variance level.
[0067] In one embodiment, the non-transitory machine -readable storage medium stores further instructions for modifying the one or more spline nodes which, when executed by the processor: compute the first derivative for a segment of a spline in the spline representation, wherein the segment of the spline is positioned between two spline nodes; determine the gain value for the segment of the spline when the first derivative for the segment of the spline is zero; detect an overshoot by the segment of the spline when the gain value for the segment of the spline is 1) above the maximum gain value of the two spline nodes by a predefined factor or 2) below the minimum gain value of the two spline nodes by the predefined factor; and adjust the slope values for the two spline nodes to make the slope values for the two spline nodes shallower in response to detecting an overshoot for the segment of the spline.
[0068] In one embodiment, the non-transitory machine -readable storage medium includes further instructions which, when executed by the processor: smooth the DRC gain values prior to quantizing the DRC gain values such that fast gain changes are eliminated.
[0069] In one embodiment, a system for selecting spline nodes for Dynamic Range Control (DRC) gain values, comprises: a device, including a hardware processor, the device being configured to: quantize DRC gain values for a frame corresponding to an audio signal; place one or more spline nodes in a spline representation of the DRC gain values based on the quantized DRC gain values or the DRC gain values; and modify the one or more spline nodes in the spline representation to reduce overshoots and remove redundancies.
[0070] In one embodiment, each of the spline nodes is represented by a gain value, a time value indicating when the corresponding gain value is applied in the frame, and a slope value.
[0071] In one embodiment, the device is further configured to: place a spline node at a location in the spline representation corresponding to a change in gain between neighboring quantized DRC gain values.
[0072] In one embodiment, the device is further configured to: determine quantization error values for the quantized DRC gain values in comparison to the received DRC gain values; and when two neighboring quantized DRC gain values have the same gain value, place a spline node at a location in the spline representation corresponding to the quantized DRC gain value of the two neighboring quantized DRC gain values with the lowest quantization error.
[0073] In one embodiment, the device is further configured to: place a spline node in the center of the spline representation with a gain value of a corresponding quantized DRC gain value when after attempting to place spline nodes in the spline representation based on 1) change in gain between neighboring quantized DRC gain values and 2) quantization error values of two identical neighboring quantized DRC gain values no spline nodes have been placed in the spline representation.
[0074] In one embodiment, the device is further configured to: quantize the spline nodes placed in the time representation of the frame in terms of time values and gain values; and insert spline nodes in the spline representation of the frame to reduce approximation errors when the quantization error is above a predefined error value for one or more quantized DRC gain values with slopes above a predefined slope value.
[0075] In one embodiment, the device is further configured to: remove a middle spline node when three neighboring spline nodes in the spline representation have identical gain values.
[0076] In one embodiment, the device is further configured to: remove, in a set of four neighboring spline nodes in the spline representation with two outer spline nodes and two middle spline nodes, one of the middle spline nodes when both middle spline nodes have identical gain values and the set of four neighboring spline nodes are collectively on an ascending or descending slope.
[0077] In one embodiment, the device is further configured to: set the slope steepness for spline nodes at local maxima and local minima in the spline representation to zero.
[0078] In one embodiment, the device is further configured to: set the slope steepness for neighboring spline nodes with identical gain values in the spline representation to zero.
[0079] In one embodiment, the device is further configured to: remove, in a set of three or more neighboring spline nodes, one or more spline nodes from the set of three or more neighboring spline nodes, when the slope values for the three or more spline nodes are within a predefined variance level.
[0080] In one embodiment, the device is further configured to: compute the first derivative for a segment of a spline in the spline representation, wherein the segment of the spline is positioned between two spline nodes; determine the gain value for the segment of the spline when the first derivative for the segment of the spline is zero; detect an overshoot by the segment of the spline when the gain value for the segment of the spline is 1) above the maximum gain value of the two spline nodes by a predefined factor or 2) below the minimum gain value of the two spline nodes by the predefined factor; and adjust the slope values for the two spline nodes to make the slope values for the two spline nodes shallower in response to detecting an overshoot for the segment of the spline.
[0081] In one embodiment, the device is further configured to: smooth the DRC gain values prior to quantizing the DRC gain values such that fast gain changes are eliminated.
[0082] As explained above, an embodiment of the invention may be a machine-readable medium such as one or more solid state memory devices having stored thereon instructions which program one or more data processing components (generically referred to here as "a processor" or a "computer system") to perform some of the operations described above. In other embodiments, some of these operations might be performed by specific hardware components that contain hardwired logic. Those operations might alternatively be performed by any combination of programmed data processing components and fixed hardwired circuit components.
[0083] While certain embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of and not restrictive on the broad invention, and that the invention is not limited to the specific constructions and arrangements shown and described, since various other modifications may occur to those of ordinary skill in the art. The description is thus to be regarded as illustrative instead of limiting.

Claims

CLAIMS What is claimed is:
1. A method for selecting spline nodes for Dynamic Range Control (DRC) gain values, comprising:
receiving DRC gain values corresponding to an audio signal;
quantizing the DRC gain values for a frame of the audio signal;
placing one or more spline nodes in a spline representation of the DRC gain values based on the quantized DRC gain values or the DRC gain values; and
modifying the one or more spline nodes in the spline representation to reduce overshoots and remove redundancies.
2. The method of claim 1, wherein each of the spline nodes is represented by a gain value, a time value indicating when the corresponding gain value is applied in the frame, and a slope value.
3. The method of claim 2, wherein placing the one or more spline nodes comprises:
placing a spline node at a location in the spline representation corresponding to a change in gain between neighboring quantized DRC gain values.
4. The method of claim 3, wherein placing the one or more spline nodes further comprises: determining quantization error values for the quantized DRC gain values in comparison to the received DRC gain values; and
when two neighboring quantized DRC gain values have the same gain value, placing a spline node at a location in the spline representation corresponding to the quantized DRC gain value of the two neighboring quantized DRC gain values with the lowest quantization error.
5. The method of claim 4, wherein placing the one or more spline nodes further comprises: placing a spline node in the center of the spline representation with a gain value of a corresponding quantized DRC gain value when after attempting to place spline nodes in the spline representation based on 1) change in gain between neighboring quantized DRC gain values and 2) quantization error values of two identical neighboring quantized DRC gain values no spline nodes have been placed in the spline representation.
6. The method of claim 5, further comprising:
quantizing the spline nodes placed in the time representation of the frame in terms of time values and gain values; and
inserting spline nodes in the spline representation of the frame to reduce approximation errors when the quantization error is above a predefined error value for one or more quantized DRC gain values with slopes above a predefined slope value.
7. The method of claim 2, wherein modifying the one or more spline nodes comprises: removing a middle spline node when three neighboring spline nodes in the spline representation have identical gain values.
8. The method of claim 2, wherein modifying the one or more spline nodes comprises: removing, in a set of four neighboring spline nodes in the spline representation with two outer spline nodes and two middle spline nodes, one of the middle spline nodes when both middle spline nodes have identical gain values and the set of four neighboring spline nodes are collectively on an ascending or descending slope.
9. The method of claim 2, wherein modifying the one or more spline nodes comprises: setting the slope steepness for spline nodes at local maxima and local minima in the spline representation to zero.
10. The method of claim 2, wherein modifying the one or more spline nodes comprises: setting the slope steepness for neighboring spline nodes with identical gain values in the spline representation to zero.
11. The method of claim 2, wherein modifying the one or more spline nodes comprises: removing, in a set of three or more neighboring spline nodes, one or more spline nodes from the set of three or more neighboring spline nodes, when the slope values for the three or more spline nodes are within a predefined variance level.
12. The method of claim 2, wherein modifying the one or more spline nodes comprises: computing the first derivative for a segment of a spline in the spline representation, wherein the segment of the spline is positioned between two spline nodes;
determining the gain value for the segment of the spline when the first derivative for the segment of the spline is zero; detecting an overshoot by the segment of the spline when the gain value for the segment of the spline is 1) above the maximum gain value of the two spline nodes by a predefined factor or 2) below the minimum gain value of the two spline nodes by the predefined factor; and
adjusting the slope values for the two spline nodes to make the slope values for the two spline nodes shallower in response to detecting an overshoot for the segment of the spline.
13. The method of claim 1, further comprising:
smoothing the DRC gain values prior to quantizing the DRC gain values such that fast gain changes are eliminated.
14. An article of manufacture for selecting spline nodes for Dynamic Range Control (DRC) gain values, comprising:
a non-transitory machine-readable storage medium that stores instructions which, when executed by a processor in a computer,
quantize DRC gain values for a frame of a corresponding audio signal;
place one or more spline nodes in a spline representation of the DRC gain values based on the quantized DRC gain values or the DRC gain values; and
modify the one or more spline nodes in the spline representation to reduce
overshoots and remove redundancies.
15. The article of manufacture of claim 14, wherein each of the spline nodes is represented by a gain value, a time value indicating when the corresponding gain value is applied in the frame, and a slope value.
16. The article of manufacture of claim 15, wherein the non-transitory machine -readable storage medium stores further instructions for placing the one or more spline nodes which, when executed by the processor:
place a spline node at a location in the spline representation corresponding to a change in gain between neighboring quantized DRC gain values.
17. The article of manufacture of claim 16, wherein the non-transitory machine -readable storage medium stores further instructions for placing the one or more spline nodes which, when executed by the processor:
determine quantization error values for the quantized DRC gain values in comparison to the received DRC gain values; and when two neighboring quantized DRC gain values have the same gain value, place a spline node at a location in the spline representation corresponding to the quantized DRC gain value of the two neighboring quantized DRC gain values with the lowest quantization error.
18. The article of manufacture of claim 17, wherein the non-transitory machine -readable storage medium stores further instructions for placing the one or more spline nodes which, when executed by the processor:
place a spline node in the center of the spline representation with a gain value of a corresponding quantized DRC gain value when after attempting to place spline nodes in the spline representation based on 1) change in gain between neighboring quantized DRC gain values and 2) quantization error values of two identical neighboring quantized DRC gain values no spline nodes have been placed in the spline representation.
19. The article of manufacture of claim 18, wherein the non-transitory machine -readable storage medium includes further instructions which, when executed by the processor:
quantize the spline nodes placed in the time representation of the frame in terms of time values and gain values; and
insert spline nodes in the spline representation of the frame to reduce approximation errors when the quantization error is above a predefined error value for one or more quantized DRC gain values with slopes above a predefined slope value.
20. A system for selecting spline nodes for Dynamic Range Control (DRC) gain values, comprising:
a device, including a hardware processor, the device being configured to:
quantize DRC gain values for a frame corresponding to an audio signal;
place one or more spline nodes in a spline representation of the DRC gain values based on the quantized DRC gain values or the DRC gain values; and
modify the one or more spline nodes in the spline representation to reduce overshoots and remove redundancies.
21. The system of claim 20, wherein each of the spline nodes is represented by a gain value, a time value indicating when the corresponding gain value is applied in the frame, and a slope value.
The system of claim 21, wherein the device is further configured to: place a spline node at a location in the spline representation corresponding to a change in gain between neighboring quantized DRC gain values.
23. The system of claim 22, wherein the device is further configured to: determine quantization error values for the quantized DRC gain values in comparison to the received DRC gain values; and
when two neighboring quantized DRC gain values have the same gain value, place a spline node at a location in the spline representation corresponding to the quantized DRC gain value of the two neighboring quantized DRC gain values with the lowest quantization error.
24. The system of claim 23, wherein the device is further configured to: place a spline node in the center of the spline representation with a gain value of a corresponding quantized DRC gain value when after attempting to place spline nodes in the spline representation based on 1) change in gain between neighboring quantized DRC gain values and 2) quantization error values of two identical neighboring quantized DRC gain values no spline nodes have been placed in the spline representation.
25. The system of claim 24, wherein the device is further configured to:
quantize the spline nodes placed in the time representation of the frame in terms of time values and gain values; and
insert spline nodes in the spline representation of the frame to reduce approximation errors when the quantization error is above a predefined error value for one or more quantized DRC gain values with slopes above a predefined slope value.
PCT/US2014/065295 2013-12-10 2014-11-12 Dynamic range control gain encoding Ceased WO2015088697A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361914288P 2013-12-10 2013-12-10
US61/914,288 2013-12-10
US14/280,423 US9276544B2 (en) 2013-12-10 2014-05-16 Dynamic range control gain encoding
US14/280,423 2014-05-16

Publications (1)

Publication Number Publication Date
WO2015088697A1 true WO2015088697A1 (en) 2015-06-18

Family

ID=53272202

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2014/065295 Ceased WO2015088697A1 (en) 2013-12-10 2014-11-12 Dynamic range control gain encoding

Country Status (2)

Country Link
US (1) US9276544B2 (en)
WO (1) WO2015088697A1 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10070243B2 (en) 2013-09-12 2018-09-04 Dolby Laboratories Licensing Corporation Loudness adjustment for downmixed audio content
US10074379B2 (en) 2012-05-18 2018-09-11 Dolby Laboratories Licensing Corporation System for maintaining reversible dynamic range control information associated with parametric audio coders
US10095468B2 (en) 2013-09-12 2018-10-09 Dolby Laboratories Licensing Corporation Dynamic range control for a wide variety of playback environments
US10311891B2 (en) 2012-03-23 2019-06-04 Dolby Laboratories Licensing Corporation Post-processing gains for signal enhancement
US10340869B2 (en) 2004-10-26 2019-07-02 Dolby Laboratories Licensing Corporation Adjusting dynamic range of an audio signal based on one or more dynamic equalization and/or dynamic range control parameters
US10349125B2 (en) 2013-04-05 2019-07-09 Dolby Laboratories Licensing Corporation Method and apparatus for enabling a loudness controller to adjust a loudness level of a secondary media data portion in a media content to a different loudness level
US10360919B2 (en) 2013-02-21 2019-07-23 Dolby International Ab Methods for parametric multi-channel encoding
US10411669B2 (en) 2013-03-26 2019-09-10 Dolby Laboratories Licensing Corporation Volume leveler controller and controlling method
US10418045B2 (en) 2010-02-11 2019-09-17 Dolby Laboratories Licensing Corporation System and method for non-destructively normalizing loudness of audio signals within portable devices
US10453467B2 (en) 2014-10-10 2019-10-22 Dolby Laboratories Licensing Corporation Transmission-agnostic presentation-based program loudness
US10594283B2 (en) 2014-05-26 2020-03-17 Dolby Laboratories Licensing Corporation Audio signal loudness control
US10672413B2 (en) 2013-01-21 2020-06-02 Dolby Laboratories Licensing Corporation Decoding of encoded audio bitstream with metadata container located in reserved data space
US10671339B2 (en) 2013-01-21 2020-06-02 Dolby Laboratories Licensing Corporation System and method for optimizing loudness and dynamic range across different playback devices
US11404071B2 (en) 2013-06-19 2022-08-02 Dolby Laboratories Licensing Corporation Audio encoder and decoder with dynamic range compression metadata
US11708741B2 (en) 2012-05-18 2023-07-25 Dolby Laboratories Licensing Corporation System for maintaining reversible dynamic range control information associated with parametric audio coders
US12603094B2 (en) 2010-12-03 2026-04-14 Dolby Laboratories Licensing Corporation Adaptive processing with multiple media processing nodes

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170098452A1 (en) * 2015-10-02 2017-04-06 Dts, Inc. Method and system for audio processing of dialog, music, effect and height objects
CN115171709B (en) * 2022-09-05 2022-11-18 腾讯科技(深圳)有限公司 Speech coding, decoding method, device, computer equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100083344A1 (en) * 2008-09-30 2010-04-01 Dolby Laboratories Licensing Corporation Transcoding of audio metadata
WO2013173080A1 (en) * 2012-05-18 2013-11-21 Dolby Laboratories Licensing Corporation System for maintaining reversible dynamic range control information associated with parametric audio coders

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558391B2 (en) * 1999-11-29 2009-07-07 Bizjak Karl L Compander architecture and methods
US6782366B1 (en) 2000-05-15 2004-08-24 Lsi Logic Corporation Method for independent dynamic range control
SE0202159D0 (en) * 2001-07-10 2002-07-09 Coding Technologies Sweden Ab Efficientand scalable parametric stereo coding for low bitrate applications
US7398207B2 (en) 2003-08-25 2008-07-08 Time Warner Interactive Video Group, Inc. Methods and systems for determining audio loudness levels in programming
US7617109B2 (en) 2004-07-01 2009-11-10 Dolby Laboratories Licensing Corporation Method for correcting metadata affecting the playback loudness and dynamic range of audio information
US20080120114A1 (en) * 2006-11-20 2008-05-22 Nokia Corporation Method, Apparatus and Computer Program Product for Performing Stereo Adaptation for Audio Editing
US8085941B2 (en) 2008-05-02 2011-12-27 Dolby Laboratories Licensing Corporation System and method for dynamic sound delivery
WO2010104300A2 (en) 2009-03-08 2010-09-16 Lg Electronics Inc. An apparatus for processing an audio signal and method thereof
EP2486654B1 (en) 2009-10-09 2016-09-21 DTS, Inc. Adaptive dynamic range enhancement of audio recordings
TWI529703B (en) 2010-02-11 2016-04-11 杜比實驗室特許公司 System and method for non-destructively normalizing audio signal loudness in a portable device
US9136980B2 (en) 2010-09-10 2015-09-15 Qualcomm Incorporated Method and apparatus for low complexity compression of signals
US20140369527A1 (en) 2011-09-22 2014-12-18 Earsoft Limited Dynamic range control
US9509267B2 (en) 2011-11-08 2016-11-29 Nokia Technologies Oy Method and an apparatus for automatic volume leveling of audio signals

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100083344A1 (en) * 2008-09-30 2010-04-01 Dolby Laboratories Licensing Corporation Transcoding of audio metadata
WO2013173080A1 (en) * 2012-05-18 2013-11-21 Dolby Laboratories Licensing Corporation System for maintaining reversible dynamic range control information associated with parametric audio coders

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FRANK BAUMGARTE ET AL: "Description of Apple's proposal considering the CfP on Dynamic Range Control Technology", 106. MPEG MEETING; 28-10-2013 - 1-11-2013; GENEVA; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11),, no. m31471, 23 October 2013 (2013-10-23), XP030059923 *
FRANK BAUMGARTE: "Enhanced Dynamic Range Control Metadata", 104. MPEG MEETING; 22-4-2013 - 26-4-2013; INCHEON; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11),, no. m28901, 17 April 2013 (2013-04-17), XP030057434 *

Cited By (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10340869B2 (en) 2004-10-26 2019-07-02 Dolby Laboratories Licensing Corporation Adjusting dynamic range of an audio signal based on one or more dynamic equalization and/or dynamic range control parameters
US11341982B2 (en) 2010-02-11 2022-05-24 Dolby Laboratories Licensing Corporation System and method for non-destructively normalizing loudness of audio signals within portable devices
US10418045B2 (en) 2010-02-11 2019-09-17 Dolby Laboratories Licensing Corporation System and method for non-destructively normalizing loudness of audio signals within portable devices
US11948592B2 (en) 2010-02-11 2024-04-02 Dolby Laboratories Licensing Corporation System and method for non-destructively normalizing loudness of audio signals within portable devices
US10566006B2 (en) 2010-02-11 2020-02-18 Dolby Laboratories Licensing Corporation System and method for non-destructively normalizing loudness of audio signals within portable devices
US12183355B2 (en) 2010-02-11 2024-12-31 Dolby Laboratories Licensing Corporation System and method for non-destructively normalizing loudness of audio signals within portable devices
US11670315B2 (en) 2010-02-11 2023-06-06 Dolby Laboratories Licensing Corporation System and method for non-destructively normalizing loudness of audio signals within portable devices
US12603094B2 (en) 2010-12-03 2026-04-14 Dolby Laboratories Licensing Corporation Adaptive processing with multiple media processing nodes
US11308976B2 (en) 2012-03-23 2022-04-19 Dolby Laboratories Licensing Corporation Post-processing gains for signal enhancement
US11694711B2 (en) 2012-03-23 2023-07-04 Dolby Laboratories Licensing Corporation Post-processing gains for signal enhancement
US10311891B2 (en) 2012-03-23 2019-06-04 Dolby Laboratories Licensing Corporation Post-processing gains for signal enhancement
US10902865B2 (en) 2012-03-23 2021-01-26 Dolby Laboratories Licensing Corporation Post-processing gains for signal enhancement
US12112768B2 (en) 2012-03-23 2024-10-08 Dolby Laboratories Licensing Corporation Post-processing gains for signal enhancement
US10388296B2 (en) 2012-05-18 2019-08-20 Dolby Laboratories Licensing Corporation System for maintaining reversible dynamic range control information associated with parametric audio coders
US11708741B2 (en) 2012-05-18 2023-07-25 Dolby Laboratories Licensing Corporation System for maintaining reversible dynamic range control information associated with parametric audio coders
US12175992B2 (en) 2012-05-18 2024-12-24 Dolby Laboratories Licensing Corporation System for maintaining reversible dynamic range control information associated with parametric audio coders
US10074379B2 (en) 2012-05-18 2018-09-11 Dolby Laboratories Licensing Corporation System for maintaining reversible dynamic range control information associated with parametric audio coders
US10217474B2 (en) 2012-05-18 2019-02-26 Dolby Laboratories Licensing Corporation System for maintaining reversible dynamic range control information associated with parametric audio coders
US10522163B2 (en) 2012-05-18 2019-12-31 Dolby Laboratories Licensing Corporation System for maintaining reversible dynamic range control information associated with parametric audio coders
US10950252B2 (en) 2012-05-18 2021-03-16 Dolby Laboratories Licensing Corporation System for maintaining reversible dynamic range control information associated with parametric audio coders
US12333214B2 (en) 2013-01-21 2025-06-17 Dolby Laboratories Licensing Corporation System and method for optimizing loudness and dynamic range across different playback devices
US10671339B2 (en) 2013-01-21 2020-06-02 Dolby Laboratories Licensing Corporation System and method for optimizing loudness and dynamic range across different playback devices
US10672413B2 (en) 2013-01-21 2020-06-02 Dolby Laboratories Licensing Corporation Decoding of encoded audio bitstream with metadata container located in reserved data space
US11817108B2 (en) 2013-02-21 2023-11-14 Dolby International Ab Methods for parametric multi-channel encoding
US10930291B2 (en) 2013-02-21 2021-02-23 Dolby International Ab Methods for parametric multi-channel encoding
US11488611B2 (en) 2013-02-21 2022-11-01 Dolby International Ab Methods for parametric multi-channel encoding
US12100404B2 (en) 2013-02-21 2024-09-24 Dolby International Ab Methods for parametric multi-channel encoding
US10360919B2 (en) 2013-02-21 2019-07-23 Dolby International Ab Methods for parametric multi-channel encoding
US10643626B2 (en) 2013-02-21 2020-05-05 Dolby International Ab Methods for parametric multi-channel encoding
US12166460B2 (en) 2013-03-26 2024-12-10 Dolby Laboratories Licensing Corporation Volume leveler controller and controlling method
US10411669B2 (en) 2013-03-26 2019-09-10 Dolby Laboratories Licensing Corporation Volume leveler controller and controlling method
US11218126B2 (en) 2013-03-26 2022-01-04 Dolby Laboratories Licensing Corporation Volume leveler controller and controlling method
US10707824B2 (en) 2013-03-26 2020-07-07 Dolby Laboratories Licensing Corporation Volume leveler controller and controlling method
US11711062B2 (en) 2013-03-26 2023-07-25 Dolby Laboratories Licensing Corporation Volume leveler controller and controlling method
US10349125B2 (en) 2013-04-05 2019-07-09 Dolby Laboratories Licensing Corporation Method and apparatus for enabling a loudness controller to adjust a loudness level of a secondary media data portion in a media content to a different loudness level
US11823693B2 (en) 2013-06-19 2023-11-21 Dolby Laboratories Licensing Corporation Audio encoder and decoder with dynamic range compression metadata
US11404071B2 (en) 2013-06-19 2022-08-02 Dolby Laboratories Licensing Corporation Audio encoder and decoder with dynamic range compression metadata
US12183354B2 (en) 2013-06-19 2024-12-31 Dolby Laboratories Licensing Corporation Audio encoder and decoder with dynamic range compression metadata
US11842122B2 (en) 2013-09-12 2023-12-12 Dolby Laboratories Licensing Corporation Dynamic range control for a wide variety of playback environments
US11429341B2 (en) 2013-09-12 2022-08-30 Dolby International Ab Dynamic range control for a wide variety of playback environments
US11533575B2 (en) 2013-09-12 2022-12-20 Dolby Laboratories Licensing Corporation Loudness adjustment for downmixed audio content
US10095468B2 (en) 2013-09-12 2018-10-09 Dolby Laboratories Licensing Corporation Dynamic range control for a wide variety of playback environments
US10368181B2 (en) 2013-09-12 2019-07-30 Dolby Laboratories Licensing Corporation Loudness adjustment for downmixed audio content
US10993062B2 (en) 2013-09-12 2021-04-27 Dolby Laboratories Licensing Corporation Loudness adjustment for downmixed audio content
US10956121B2 (en) 2013-09-12 2021-03-23 Dolby Laboratories Licensing Corporation Dynamic range control for a wide variety of playback environments
US10674302B2 (en) 2013-09-12 2020-06-02 Dolby Laboratories Licensing Corporation Loudness adjustment for downmixed audio content
US12279104B1 (en) 2013-09-12 2025-04-15 Dolby Laboratories Licensing Corporation Loudness adjustment for downmixed audio content
US12185077B2 (en) 2013-09-12 2024-12-31 Dolby Laboratories Licensing Corporation Loudness adjustment for downmixed audio content
US10070243B2 (en) 2013-09-12 2018-09-04 Dolby Laboratories Licensing Corporation Loudness adjustment for downmixed audio content
US12210799B2 (en) 2013-09-12 2025-01-28 Dolby Laboratories Licensing Corporation Dynamic range control for a wide variety of playback environments
US10594283B2 (en) 2014-05-26 2020-03-17 Dolby Laboratories Licensing Corporation Audio signal loudness control
US10453467B2 (en) 2014-10-10 2019-10-22 Dolby Laboratories Licensing Corporation Transmission-agnostic presentation-based program loudness
US12080308B2 (en) 2014-10-10 2024-09-03 Dolby Laboratories Licensing Corporation Transmission-agnostic presentation-based program loudness
US11062721B2 (en) 2014-10-10 2021-07-13 Dolby Laboratories Licensing Corporation Transmission-agnostic presentation-based program loudness

Also Published As

Publication number Publication date
US9276544B2 (en) 2016-03-01
US20150162884A1 (en) 2015-06-11

Similar Documents

Publication Publication Date Title
US9276544B2 (en) Dynamic range control gain encoding
JP7767675B2 (en) Dynamic range control for various playback environments
CN1973434B (en) Method for correcting metadata affecting the playback loudness and dynamic range of audio information
JP7273914B2 (en) Efficient DRC profile transmission
US9576585B2 (en) Method and apparatus for normalized audio playback of media with and without embedded loudness metadata of new media devices
EP3761672B1 (en) Using metadata to aggregate signal processing operations
US20130144631A1 (en) Audio signal processing apparatus and audio signal processing method
JP2016534669A (en) Loudness adjustment for downmixed audio content
WO2021050639A1 (en) Dynamic range compression with reduced artifacts
HK40057531A (en) Efficient drc profile transmission
HK40040416B (en) Decoding an encoded audio signal using drc profiles
HK40040416A (en) Decoding an encoded audio signal using drc profiles
HK40001928B (en) Decoding an encoded audio signal using drc profiles

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14802793

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14802793

Country of ref document: EP

Kind code of ref document: A1