# US 10,320,413 B2 · Methods and devices for vector segmentation for coding

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

- Number: US 10,320,413 B2
- Document ID: US10320413B2
- Status: Granted
- Kind: B2
- Application number: 14/421,680
- Filed: 2014-11-06
- Published: 2016-03-03
- Granted: 2019-06-11
- Earliest claimed: 2013-11-07
- Assignees: Telefonaktiebolaget LM Ericsson (publ)
- Applicants: Telefonaktiebolaget L M Ericsson (PUBL)
- Inventors: Tomas Jansson Toftgård; Volodya Grancharov; Jonas Svedberg
- Web page: https://patentgrep.com/patent/US10320413B2

## CPC

- H03M 7/3082: {Vector coding (for television signals, see H04N19/94)}
- G06F 17/16: Matrix or vector computation {, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization (matrix transposition G06F7/78)}
- G10L 19/038: Vector quantisation, e.g. TwinVQ audio
- G10L 19/12: the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
- H04N 19/124: Quantisation
- H04N 19/192: the adaptation method, adaptation tool or adaptation type being iterative or recursive
- H04N 19/94: Vector quantisation
- G10L 19/002: Dynamic bit allocation (for perceptual audio coders G10L19/032)
- G10L 2019/0001: {Codebooks}
- G10L 2019/0004: {Design or structure of the codebook}
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method for partitioning of input vectors for coding is presented. The method comprises obtaining (210) of an input vector. The input vector is segmented (220), in a non-recursive manner, into an integer number, NSEG, of input vector segments. A representation of a respective relative energy difference between parts of the input vector on each side of each boundary between the input vector segments is determined (230), in a recursive manner. The input vector segments and the representations of the relative energy differences are provided (250) for individual coding. Partitioning units and computer programs for partitioning of input vectors for coding, as well as positional encoders, are presented.

## Claims

### Claim 1

A method for partitioning of input vectors for encoding of an audio signal, wherein the method comprises the steps of:
obtaining the audio signal;
obtaining an input vector for use in encoding at least a portion of the audio signal;
segmenting, in a non-recursive manner, the input vector into an integer number, NSEG, of input vector segments;
determining energy ratios in a recursive manner, wherein each determined energy ratio represents a ratio between energies of a left level segment of the input vector and a right level segment of the input vector; and
providing the input vector segments and the energy ratios for individual coding, wherein
the step of determining the energy ratios in a recursive manner comprises:
a) dividing the input vector into: 1) a first left level segment of the input vector and 2) a first right level segment of the input vector, wherein the first left level segment of the input vector comprises one or more of the input vector segments and the first right level segment of the input vector comprises a different one or more of the input vector segments;
b) determining E0, wherein E0 represents an energy of the first left level segment of the input vector;
c) determining E1, wherein E1 represents an energy of the first right level segment of the input vector; and
d) calculating a first energy ratio (R0) representing a ratio between energies of the first left level segment and the first right level segment, wherein calculating the first energy ratio (R0) comprises calculating E1/E0, and
the method further comprises
determining a number of bits (B0SEG) to allocate for the first left level segment in dependence on i) a ratio between the length of the first left level segment (L0SEG) and the length of the first right level segment (L1SEG) and ii) the first energy ratio (R0); and
allocating the determined number of bits (B0SEG) for the first left level segment.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the integer number, NSEG, is the smallest integer number by which each the input vector segment fulfils constraints associated with a quantizer for the coding.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the input vector segments have identical lengths or a respective length differing by not more than 1.

### Claim 4 (depends on 3)

The method according to claim 3, wherein the first NSEG−1 input vector segments have identical lengths.

### Claim 5 (depends on 3)

The method according to claim 3, wherein all input vector segments have lengths not differing by more than 1.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the step of determining the energy ratios further comprises:
determining that the first right level segment comprises more than one input vector segment;
as a result of determining that the first right level segment comprises more than one input vector segment, dividing the first right level segment into a second left level segment and a second right level segment; and
calculating a second energy ratio representing a ratio between energies of the second left level segment and the second right level segment.

### Claim 7 (depends on 6)

The method according to claim 6, wherein the second left level segment is not equal in size to the second right level segment.

### Claim 8 (depends on 6)

The method according to claim 6, further comprising allocating bits for coding of each the input vector segment.

### Claim 9 (depends on 8)

The method according to claim 8, wherein the step of allocating bits is performed in connection to the step of determining the energy rations in a recursive manner.

### Claim 10 (depends on 6)

The method according to claim 6, further comprising allocating bits for coding of each the input vector segment.

### Claim 11 (depends on 1)

The method according to claim 1, wherein allocating bits determining the number of bits (B0SEG) to allocate for the first left level segment in dependence on i) a ratio between the length of the first left level segment (L0SEG) and the length of the first right level segment (L1SEG) and ii) the first energy ratio (R0) comprises determining the number of bits (B0SEG) for the first left level segment according to:
B
0
SEG
=
B
SEG
+
(
f
1
+
f
0
)
⁢
L
1
SEG
-
1
2
⁢
log
2
⁡
(
R
0
)
⁢
L
1
SEG
1
+
L
1
SEG
L
0
SEQ
,
wherein f0 and f1 are compensation factors and BSEG is the number of available bits for shape coding the first left level segment and the first right level segment.

### Claim 12 (depends on 11)

The method according to claim 11, wherein the compensation factors are dependent on lengths of input vector segments, the number of input vector segments within both lower level input vectors and bits allocated for both lower level input vectors.

### Claim 13 (depends on 12)

The method according to claim 12, wherein the compensation factors are dependent on at least average bits per input vector segment within both lower level input vectors, the input vector segment lengths and a minimum lower level input vector length.

### Claim 14

A partitioning unit, the partitioning unit being configured to:
obtain an input vector for use in encoding at least a portion of an audio signal;
segment, in a non-recursive manner, the input vector into an integer number, NSEG, of input vector segments;
determine energy ratios in a recursive manner, wherein each determined energy ratio represents a ratio between energies of a left level segment of the input vector and a right level segment of the input vector; and
provide the input vector segments and the energy ratios for individual coding, wherein
the partitioning unit is configured to determine the energy ratios in a recursive manner by performing a process comprising:
a) dividing the input vector into: 1) a first left level segment of the input vector and 2) a first right level segment of the input vector, wherein the first left level segment of the input vector comprises one or more of the input vector segments and the first right level segment of the input vector comprises a different one or more of the input vector segments;
b) determining E0, wherein E0 represents an energy of the first left level segment of the input vector;
c) determining E1, wherein E1 represents an energy of the first right level segment of the input vector; and
d) calculating a first energy ratio (R0) representing a ratio between energies of the first left level segment and the first right level segment, wherein calculating the first energy ratio comprises calculating E1/E0, and
the partitioning unit is further configured to:
determine a number of bits (B0SEG) to allocate for the first left level segment in dependence on i) a ratio between the length of the first left level segment (L0SEG) and the length of the first right level segment (L1SEG) and ii) the first energy ratio (R0); and
allocate the determined number of bits (B0SEG) for the first left level segment.

### Claim 15 (depends on 14)

The partitioning unit of claim 14, wherein the partitioning unit comprises a processor and a memory, the memory comprising instructions executable by the processor, whereby the processor is operative to determine the energy ratios in a recursive manner.

### Claim 16 (depends on 14)

The partitioning unit of claim 14, wherein the integer number, NSEG, is the smallest integer number by which each the input vector segment fulfils constraints associated with a quantizer for the coding.

### Claim 17 (depends on 14)

The partitioning unit according to claim 14, wherein the input vector segments have identical lengths or a respective length differing by not more than 1.

### Claim 18 (depends on 17)

The partitioning unit according to claim 17, wherein the first NSEG−1 input vector segments have identical lengths.

### Claim 19 (depends on 17)

The partitioning unit according to claim 17, wherein all input vector segments have lengths not differing by more than 1.

### Claim 20 (depends on 14)

The partitioning unit according to claim 14, wherein the process further comprises:
determining that the first right level segment comprises more than one input vector segment;
as a result of determining that the first right level segment comprises more than one input vector segment, dividing the first right level segment into a second left level segment and a second right level segment; and
calculating a second energy ratio representing a ratio between energies of the second left level segment and the second right level segment.

### Claim 21 (depends on 20)

The partitioning unit according to claim 20, wherein the second left level segment is not equal in size to the second right level segment.

### Claim 22 (depends on 20)

The partitioning unit according to claim 20, wherein the partitioning unit is further configured to allocate bits for coding of each the input vector segment.

### Claim 23 (depends on 22)

The partitioning unit according to claim 22, wherein the partitioning unit is configured to perform the allocating of bits in connection to the determining the energy ratios in a recursive manner.

### Claim 24 (depends on 14)

The partitioning unit according to claim 14, wherein the partitioning unit is further configured to allocate bits for coding of each the input vector segment.

### Claim 25 (depends on 14)

The partitioning unit according to claim 14, wherein allocating bits for the first left level segment in dependence on i) a ratio between the length of the first left level segment (L0SEG) and the length of the first right level segment (L1SEG) and ii) the first energy ratio (R0) comprises allocating the bits for the first left level segment according to:
B
0
SEG
=
B
SEG
+
(
f
1
-
f
0
)
⁢
L
1
SEG
-
1
2
⁢
log
2
⁡
(
R
0
)
⁢
L
1
SEG
1
+
L
1
SEG
L
0
SEQ
,
wherein f0 and f1 are compensation factors and BSEG is the number of available bits for shape coding the first left level segment and the first right level segment.

### Claim 26 (depends on 25)

The partitioning unit according to claim 25, wherein the compensation factors are dependent on lengths of input vector segments, the number of input vector segments within both lower level input vectors and bits allocated for both lower level input vectors.

### Claim 27 (depends on 26)

The partitioning unit according to claim 26, wherein the compensation factors are dependent on at least average bits per input vector segment within both lower level input vectors, the input vector segment lengths and a minimum lower level input vector length.

### Claim 28 (depends on 14)

An encoder for positional encoding, comprising an input unit configured to receive an input vector representing a signal, a partitioning unit according to claim 14, a quantizer and an output unit for an encoded signal.

### Claim 29

A non-transitory computer readable medium comprising a computer program comprising instructions, which when executed by at least one processor, causes the at least one processor to:
obtain an input vector for use in encoding at least a portion of an audio signal;
segment, in a non-recursive manner, the input vector into an integer number, NSEG, of input vector segments;
determine energy ratios in a recursive manner, wherein each determined energy ratio represents a ratio between energies of a left level segment of the input vector and a right level segment of the input vector; and
provide the input vector segments and the energy ratios for individual coding, wherein
the computer program causes the processor to determine the energy ratios in a recursive manner by causing the processor to perform a process comprising:
a) dividing the input vector into: 1) a first left level segment of the input vector and 2) a first right level segment of the input vector, wherein the first left level segment of the input vector comprises one or more of the input vector segments and the first right level segment of the input vector comprises a different one or more of the input vector segments;
b) determining E0, wherein E0 represents an energy of the first left level segment of the input vector;
c) determining E1, wherein E1 represents an energy of the first right level segment of the input vector; and
d) calculating a first energy ratio representing a ratio between energies of the first left level segment and the first right level segment, wherein calculating the first energy ratio comprises calculating E1/E0, and
the computer program further causes the processor to:
determine a number of bits (B0SEG) to allocate for the first left level segment in dependence on i) a ratio between the length of the first left level segment (L0SEG) and the length of the first right level segment (L1SEG) and ii) the first energy ratio (R0); and
allocate the determined number of bits (B0SEG) for the first left level segment.

### Claim 30

An apparatus for partitioning of input vectors for coding, wherein the apparatus comprises:
an obtaining module for obtaining an input vector for use in encoding at least a portion of an audio signal;
a segmenting module for segmenting, in a non-recursive manner, the input vector into an integer number, NSEG, of input vector segments;
a determining module for determining energy ratios in a recursive manner, wherein each determined energy ratio represents a ratio between energies of a left level segment of the input vector and a right level segment of the input vector; and
a providing module for providing the input vector segments and the energy ratios for individual coding, wherein
the determining module is configured to determine the energy ratios in a recursive manner by performing a process comprising:
a) dividing the input vector into: 1) a first left level segment of the input vector and 2) a first right level segment of the input vector, wherein the first left level segment of the input vector comprises one or more of the input vector segments and the first right level segment of the input vector comprises a different one or more of the input vector segments;
b) determining E0, wherein E0 represents an energy of the first left level segment of the input vector;
c) determining E1, wherein E1 represents an energy of the first right level segment of the input vector; and
d) calculating a first energy ratio representing a ratio between energies of the first left level segment and the first right level segment, wherein calculating the first energy ratio comprises calculating E1/E0, and
the apparatus further comprises a bit allocating configured to:
i) determine a number of bits (B0SEG) to allocate for the first left level segment in dependence on i) a ratio between the length of the first left level segment (L0SEG) and the length of the first right level segment (L1SEG) and ii) the first energy ratio (R0); and
ii) allocate the determined number of bits (B0SEG) for the first left level segment.
