# US 2021/0241779 A1 · Vector quantizer

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

- Number: US 2021/0241779 A1
- Document ID: US20210241779A1
- Status: Published application
- Kind: A1
- Application number: 17/236,563
- Filed: 2021-04-21
- Published: 2021-08-05
- Earliest claimed: 2012-03-29
- Assignees: Telefonaktiebolaget LM Ericsson (publ)
- Applicants: Telefonaktiebolaget LM Ericsson (publ)
- Inventors: Volodya Grancharov; Tomas Jansson Toftgård
- Web page: https://patentgrep.com/patent/US20210241779A1

## CPC

- G10L 19/038: Vector quantisation, e.g. TwinVQ audio
- G10L 19/18: Vocoders using multiple modes
- H03M 7/3082: {Vector coding (for television signals, see H04N19/94)}
- H04N 19/94: Vector quantisation
- G10L 2019/0013: {Codebook search algorithms}
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- 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)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Vector Quantizer and method therein for vector quantization, e.g. in a transform audio codec. The method comprises comparing an input target vector with four centroids C0, C1, C0,flip and C1,flip, wherein centroid C0,flip is a flipped version of centroid C0 and centroid C1,flip is a flipped version of centroid C1, each centroid representing a respective class of codevectors. A starting point for a search related to the input target vector in the codebook is determined, based on the comparison. A search is performed in the codebook, starting at the determined starting point, and a codevector is identified to represent the input target vector. A number of input target vectors per block or time segment is variable. A search space is dynamically adjusted to the number of input target vectors. The codevectors are sorted according to a distortion measure reflecting the distance between each codevector and the centroids C0 and C1.

## Claims

### Claim 1

A method performed by a transform codec comprising a vector quantizer, the method comprising:
obtaining a number of input target vectors, wherein the number of input target vectors per time segment is variable and said number of input target vectors comprise coefficients derived from an audio signal or a video signal;
comparing an input target vector of the number of input target vectors with at least two centroids C0, C1, to determine which of the at least two centroids to assign the input target vector to, each centroid representing a respective class of codevectors;
determining a starting point in a codebook for a search related to the input target vector based on which of the at least two centroids the input target vector was determined to be assigned the input target vector, wherein a search space for the search is dynamically adjusted based on the number of input target vectors obtained and a computational complexity constraint, and each codevector in a respective class of codevectors is sorted according to a distortion measure reflecting a distance between the codevector and said at least two centroids C0 and C1;
performing the search in the codebook starting at the starting point determined, and identifying a codevector to represent the input target vector; and
performing an action based on the codevector identified.

### Claim 2 (depends on 1)

The method according to claim 1, further comprising dynamically receiving a change in the computational complexity constraint.

### Claim 3 (depends on 1)

The method according to claim 1, wherein identifying the codevector to represent the input target vector comprises identifying the codevector based on the search resulting in one or more codebook indices pointing to a codevector which best matches the input target vector.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the at least two centroids C0, C1 comprise four centroids C0, C1, C0,flip and C1,flip, wherein centroid C0,flip is a flipped version of centroid C0 and centroid C1,flip is a flipped version of centroid C1.

### Claim 5 (depends on 1)

The method according to claim 1, wherein the search space is dynamically adjusted by increasing or reducing a size of the search space based on the number of input target vectors.

### Claim 6 (depends on 1)

The method according to claim 1, wherein codevectors in the codebook are sorted such that codevectors closest to centroid C0 and most distanced to centroid C1 are in one side of the codebook, while codevectors closest to said centroid C1 and most distanced to said centroid C0 are clustered in the other side of the codebook.

### Claim 7 (depends on 1)

The method according to claim 1, wherein the at least two centroids C0, C1 comprise four centroids C0, C1, C0,flip and C1,flip, and codevectors for class C0,flip represented by the centroid C0,flip are flipped versions of codevectors for class C0 represented by the centroid C0 and codevectors for class C1,flip represented by the centroid C1,flip are flipped versions of codevectors for class C1 represented by the centroid C1.

### Claim 8 (depends on 5)

The method according to claim 5, wherein elements of codevectors Ck,flip in class Cj,flip are given by equation:
ck,flip=[ck(M) ck (M-1) . . . ck(1)],
where ck(M) are vector elements of a corresponding class Cj and M is a length of the codevector ck,flip and k is an index of the codevector.

### Claim 9 (depends on 1)

The method according to claim 1 wherein the codebook is created based on said at least two centroids C0 and C1, wherein the at least two centroids C0, C1 comprise four centroids C0, C1, C0,flip and C1,flip, wherein said centroid C0,flip and said centroid C1,flip are created by reading said centroids C0 and C1 in reverse order, wherein codevectors for class C0 represented by centroid C0 and codevectors for class C1 represented by centroid C1 are stored in memory, and codevectors for class C0,flip p represented by centroid C0,flip and codevectors for class C1,flip represented by centroid C1,flip are created by dynamically reading elements of said codevectors for class C0 and said codevectors for class C1 in reverse order when reading codevectors for class C0,flip and codevectors for class C1,flip.

### Claim 10

A transform codec comprising a vector quantizer comprising:
a communication unit, adapted to obtain a number of input target vectors, wherein the number of input target vectors per time segment is variable and said input target vectors comprise coefficients derived from an audio signal or a video signal;
a comparing unit, adapted to, for an input target vector of the number of input target vectors, compare the input target vector with at least two centroids C0, C1, to determine which of the at least two centroids to assign the input target vector to, each centroid representing a respective class of codevectors;
a determining unit adapted to determine a starting point in a codebook, for the input target vector, for a search in the codebook, based which of the at least two centroids the input target vector was determined to be assigned the input target vector and to dynamically adjust a search space based on the number of input target vectors obtained and a computational complexity constraint;
a search unit, adapted to, for the input target vector, perform a search in the codebook starting at the starting point determined, and identify a codevector to represent the input target vector, wherein each codevector in a respective class of codevectors is sorted according to a distortion measure reflecting a distance between the codevector and said at least two centroids C0 and C1; and
a providing unit, adapted to perform an action based on the codevector identified.

### Claim 11 (depends on 10)

The transform codec according to claim 10, wherein the communication unit is further adapted to dynamically receive a change in the computational complexity constraint.

### Claim 12 (depends on 10)

The transform codec according to claim 10, wherein the search unit is adapted to identify the codevector to represent the input target vector by identifying the codevector based on the search resulting in one or more codebook indices pointing to a codevector which best matches the input target vector.

### Claim 13 (depends on 10)

The transform codec according to claim 10, wherein the at least two centroids C0, C1 comprise four centroids C0, C1, C0,flip and C1,flip, wherein centroid C0,flip is a flipped version of centroid C0 and centroid C1,flip is a flipped version of centroid C1.

### Claim 14 (depends on 10)

The transform codec according to claim 10, wherein the determining unit is adapted to dynamically adjust the search space by increasing or reducing a size of the search space based on the number of input target vectors.

### Claim 15 (depends on 10)

The transform codec according to claim 10, wherein codevectors in the codebook are sorted such that codevectors closest to centroid C0 and most distanced to centroid C1 are in one side of the codebook, while codevectors closest to said centroid C1 and most distanced to said centroid C0 are clustered in the other side of the codebook.

### Claim 16 (depends on 10)

The transform codec according to claim 10, wherein the at least two centroids C0, C1 comprise four centroids C0, C1, C0,flip and C1,flip, and codevectors for class C0,flip represented by centroid C0,flip are flipped versions of codevectors for class C0 represented by centroid C0 and codevectors for class C1,flip represented by centroid C1,flip are flipped versions of codevectors for class C1 represented by centroid C1.

### Claim 17 (depends on 16)

The transform codec according to claim 16, wherein elements of codevectors ck,flip in class cj,flip are given by equation:
ck,flip=[ck (M) ck (M -1) . . . ck(1)],
where ck(M) are vector elements of a corresponding class Cj and M is a length of the codevector ck,flip and k is and index of the codevector.

### Claim 18 (depends on 17)

The transform codec of claim 17 wherein the codebook is created based on said centroids C0 and C1, wherein said centroid C0,flip and said centroid C1,flip are created by reading said centroids C0 and C1 in reverse order, and the codevectors for said class C0 and the codevectors for said class C1 are stored in memory, and codevectors for class C0,flip and codevectors for class C1,flip are created by dynamically reading elements of said codevectors for class C0 and said codevectors for class C1 in reverse order when reading codevectors for class C0,flip and codevectors for class C1,flip.

### Claim 19 (depends on 10)

A Mobile terminal comprising the transform codec according to claim 10.

### Claim 20 (depends on 1)

A non-transitory computer readable medium storing computer readable code, which when run in a processing unit, causes the vector quantizer to perform operations of claim 1.
