Matrix decomposition for rendering adaptive audio using high definition audio codecs
AssigneeDolby Laboratories Licensing Corporation
InventorsVinay Melkote, Malcolm James Law
Life of this patent
Estimating the term…
Abstract
A method of decomposing a matrix of dimension L-by-N, where L is less than or equal to N, into a sequence of N-by-N unit primitive matrices and a permutation matrix comprising a sequence that is the product of the primitive matrices and the permutation matrix, containing L rows that are substantially close to the provided L-by-N matrix, where the choice of the permutation matrix and the indices of the non-trivial rows in the primitive matrices are chosen to limit the coefficient values in the primitive matrices.
Claims20
A method of decomposing a multi-dimensional matrix into a sequence of unit primitive matrices and a permutation matrix, comprising:
- receiving in a processor of a signal processing system, a matrix of dimension L-by-N, where L is less than or equal to N, wherein the L-by-N matrix is equivalent to an M0-by-N matrix A0 rotated by applying an L-by-M0 rotation matrix Z, wherein L is less than or equal to M0, and wherein the rotation matrix Z is designed to:
- minimize cross correlation between the columns of the rotated L-by-N matrix, or
- minimize the 12 norm of the columns of the rotated L-by-N matrix, or
- minimize the absolute value of coefficients in the N-by-N primitive matrices,
- wherein the M0-by-N matrix A0 is a time-varying matrix configured to adapt to changing spatial metadata;
- deriving from the L-by-N matrix a sequence of N-by-N unit primitive matrices and a permutation matrix, wherein an N-by-N unit primitive matrix is defined as a matrix in which N−1 rows contain off-diagonal elements equal to zero and on-diagonal elements with an absolute value of 1, wherein the product of the unit primitive matrices and the permutation matrix contains L rows that approximate the L-by-N matrix;
- and
- configuring the permutation matrix and indices of non-trivial rows in the unit primitive matrices such that the absolute coefficient values in the unit primitive matrices are limited with respect to a maximum allowed coefficient value of the signal processing system;
- wherein the matrix A0 at a first time instant t1 is different from the matrix A0 at a second time instant t2, and the matrix Z at the first time instant t1 is equal to the matrix Z at the second time instant t2.
A system for decomposing a multi-dimensional matrix into a sequence of unit primitive matrices and a permutation matrix, comprising:
- a receiver stage of the system receiving a matrix of dimension L-by-N, where L is less than or equal to N, wherein the L-by-N matrix is equivalent to an M0-by-N matrix A0 rotated by applying an L-by-M0 rotation matrix Z, wherein L is less than or equal to M0 and wherein the rotation matrix Z is designed to:
- minimize cross correlation between the columns of the rotated L-by-N matrix, or
- minimize the 12 norm of the columns of the rotated L-by-N matrix, or
- minimize the absolute value of coefficients in the N-by-N primitive matrices,
- wherein the M0-by-N matrix A0 is a time-varying matrix configured to adapt to changing spatial metadata;
- and
- a processor of the system deriving from the L-by-N matrix a sequence of N-by-N unit primitive matrices and a permutation matrix, wherein an N-by-N unit primitive matrix is defined as a matrix in which N−1 rows contain off-diagonal elements equal to zero and on-diagonal elements with an absolute value of 1,wherein the product of the primitive matrices and the permutation matrix contains L rows that approximate the L-by-N matrix, wherein the permutation matrix and indices of non-trivial rows in the primitive matrices are configured such that the absolute coefficient values in the primitive matrices are limited with respect to a maximum allowed coefficient value of the system, wherein the matrix A0 at a first time instant t1 is different from the matrix A0 at a second time instant t2, and the matrix Z at the first time instant t1 is equal to the matrix Z at the second time instant t2.
A system comprising:
- an encoder component configured to receive audio comprising N input channels or objects, determine one or more time-varying downmix specifications, decompose a multi-dimensional matrix into a sequence of unit primitive matrices and a permutation matrix by
- receiving a matrix of dimension L-by-N, where L is less than or equal to N, wherein the L-by-N matrix is equivalent to an M0-by-N matrix A0 rotated by applying an L-by-M0 rotation matrix Z, wherein L is less than or equal to M0, and wherein the rotation matrix Z is designed to:
- minimize cross correlation between the columns of the rotated L-by-N matrix, or
- minimize the 12 norm of the columns of the rotated L-by-N matrix, or
- minimize the absolute value of coefficients in the N-by-N primitive matrices,
- wherein the M0-by-N matrix A0 is a time-varying matrix configured to adapt to changing spatial metadata;
- deriving from the L-by-N matrix a sequence of N-by-N unit primitive matrices and a permutation matrix, wherein an N-by-N unit primitive matrix is defined as a matrix in which N−1 rows contain off-diagonal elements equal to zero and on-diagonal elements with an absolute value of 1, wherein the product of the unit primitive matrices and the permutation matrix contains L rows that approximate the L-by-N matrix, and
- configuring the permutation matrix and indices of non-trivial rows in the primitive matrices such that the absolute coefficient values in the primitive matrices are limited with respect to a maximum allowed coefficient value of the signal processing system;
- wherein the matrix A0 at a first time instant t1 is different from the matrix A0 at a second time instant t2, and the matrix Z at the first time instant t1 is equal to the matrix Z at the second time instant t2;
- the encoder further configured to apply the decomposed permutation matrix and inverses of the primitive matrices to the N input channels or objects to produce the internal channels, determine a downmix permutation matrix and one or more downmix matrices for each of one of more downmix formats, losslessly encode the internal channels, and pack the permutation matrix, the primitive matrices, the encoded internal channels, and the downmix permutation matrix and downmix matrices for each of the one or more downmix formats into a bitstream comprising two or more substreams;
- and
- a decoder coupled to the encoder and configured to receive the bitstream comprising two or more substreams, and either:
- extract the internal channels, the permutation matrix, and the primitive matrices, losslessly decode the internal channels, and apply the primitive matrices and permutation matrix to the internal channels to losslessly reproduce the N input channels and/or objects;
- or
- extract a subset of the internal channels, a downmix permutation matrix and one or more downmix matrices, and apply the downmix matrices and the downmix permutation matrix to the subset of the internal channels to reproduce a downmix of the N input channels and/or objects.
Dependencies are inferred from the claim text.