# US 2019/0378524 A1 · Metadata driven dynamic range control

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0378524 A1
- Document ID: US20190378524A1
- Status: Published application
- Kind: A1
- Application number: 16/546,972
- Filed: 2019-08-21
- Published: 2019-12-12
- Earliest claimed: 2013-03-29
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Frank M. Baumgarte
- Web page: https://patentgrep.com/patent/US20190378524A1

## CPC

- G10L 19/02: using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L 19/008: Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
- G10L 19/032: Quantisation or dequantisation of spectral components
- G10L 19/167: {Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes}
- H03G 7/002: {in untuned or low-frequency amplifiers, e.g. audio amplifiers (H03G7/007, H03G7/001, H03G7/008, H03G7/02, H03G7/06 take precedence)}
- H03G 7/007: {of digital or coded signals}
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- H03G: CONTROL OF AMPLIFICATION

## Abstract

A system for encoding and applying Dynamic Range Control/Compression (DRC) gain values to a piece of sound program content is described. In particular, a set of DRC gain values representing a DRC gain curve for the piece of content may be divided into frames corresponding to frames of the piece of content. A set of fields may be included with an audio signal representing the piece of content. The additional fields may represent the DRC gain values using linear or spline interpolation. The additional fields may include 1) an initial gain value for each DRC frame, 2) a set of slope values at particular points in the DRC curve, 3) a set of time delta values for each consecutive pair of slope values, and/or 4) one or more gain delta values representing changes of DRC gain values in the DRC gain curve between points of the slope values.

## Claims

### Claim 1

A method of encoding Dynamic Range Control (DRC) gain values in a bitstream representing a piece of sound program content, comprising:
grouping each audio channel of the sound program content into a single DRC group from a set of DRC groups;
encoding DRC gain values into DRC gain data for each sub-band in each audio frame for each DRC group; and
inserting the DRC gain data into the bitstream for each DRC group.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
inserting a coding mode data value into the bitstream for each DRC group, wherein the coding mode data value represents a mode for encoding the DRC gain values in each corresponding DRC frames, wherein the DRC gain data is organized in DRC frames with a size equal to a size of the audio frames in the DRC groups and the coding mode data value indicates a number of DRC gain values for a DRC group;
inserting an initial gain value into the bitstream for each DRC frame, the initial gain value indicating a starting DRC gain value that is used to generate subsequent DRC gain values in a corresponding DRC frame; and
inserting slope values into the bitstream for each DRC frame, wherein the slope values correspond to sampled points of a DRC gain curve representing the DRC gain values.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
inserting a time delta value into the bitstream for pairs of DRC gain values, wherein the time delta value indicates a time separation between each pair of DRC gain values; and
inserting a gain delta value into the bitstream for pairs of DRC gain values, wherein the gain delta value indicates DRC gain value differences between each pair of DRC gain values.

### Claim 4 (depends on 3)

The method of claim 3, wherein the time delta value and the gain delta value are to be used by an audio playback device to apply DRC gain to a corresponding audio frame using interpolation and the interpolation is a linear interpolation or a window-based overlap-add interpolation.

### Claim 5 (depends on 4)

The method of claim 4, wherein the time delta values are Huffman encoded.

### Claim 6 (depends on 5)

The method of claim 5, wherein the audio playback device further uses a slope value to apply DRC gain to a corresponding audio frame using interpolation.

### Claim 7 (depends on 6)

The method of claim 6, wherein the slope value, the time delta value, and the gain delta value are inserted at an end of each DRC frame to allow use of a low-delay mode during decoding by a playback device.

### Claim 8 (depends on 7)

The method of claim 7, wherein the interpolation is a cubic interpolation.

### Claim 9 (depends on 8)

The method of claim 8, wherein the interpolation is a spline interpolation.

### Claim 10 (depends on 1)

The method of claim 1, wherein a maximum sample rate of the DRC gain data used to encode the DRC gain values is an integer power of two relative to a sample interval of the sound program content.

### Claim 11 (depends on 10)

The method of claim 10, wherein a minimum sample interval for the DRC gain data is between 0.5 ms and 1.0 ms.

### Claim 12

A method for dynamic range control of an audio signal, the method comprising:
a. receiving a bitstream representing a piece of sound program content, wherein the bitstream has inserted therein Dynamic Range Control (DRC) gain data for each sub-band in each audio frame for each DRC group of a set of DRC groups, wherein each channel of the sound program content is grouped into a single DRC group from the set of DRC groups; and
b. using DRC gain data for each DRC group to apply corresponding DRC gain values to each sub-band of each audio frame.

### Claim 13 (depends on 12)

The method of claim 12, wherein the DRC gain data is organized in DRC frames with a size equal to the size of the audio frames in the DRC groups.

### Claim 14 (depends on 13)

The method of claim 13, wherein the DRC gain data for each DRC group includes:
a. a first data value representing a selected coding mode for an initial DRC gain value;
b. a second data value representing the initial DRC gain value; and
c. a third data value representing differences applied to the initial DRC gain value to generate the DRC gain values for each frame of the DRC group.

### Claim 15 (depends on 12)

The method of claim 12, wherein the DRC gain data is organized in DRC frames with a size equal to a size of the audio frames in the DRC groups.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
extracting a coding mode data value from the bitstream, wherein the coding mode data value represents a mode for encoding the DRC gain values.

### Claim 17 (depends on 16)

The method of claim 16, wherein the coding mode data value indicates a number of DRC gain values for a DRC group.

### Claim 18 (depends on 17)

The method of claim 17, further comprising:
extracting an initial gain value from the bitstream for each DRC frame, wherein the initial gain value indicates a starting DRC gain value used to generate subsequent DRC gain values in a corresponding DRC frame.

### Claim 19 (depends on 18)

The method of claim 18, further comprising:
extracting a time delta value into the bitstream for pairs of DRC gain values, wherein the time delta value indicates a time separation between each pair of DRC gain values;
extracting a gain delta value into the bitstream for pairs of DRC gain values, wherein the gain delta value indicates DRC gain value differences between each pair of DRC gain values, and
applying DRC gain, using the time delta value and the gain delta value, to a corresponding audio frame using interpolation.

### Claim 20 (depends on 12)

The method of claim 12, wherein multiple channels are assigned to a single DRC group.
