ACELP Speech Codebook Optimization Using Toeplitz Autocorrelation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The computationally complex bottleneck in ACELP-type speech coding algorithms, specifically in optimizing the residual codebook, is not viable due to the exhaustive search of a size NP space, leading to non-optimal iterative algorithms that fail to meet hardware complexity limits and perceptual quality requirements.

Innovation Solution

The proposed solution involves modifying the correlation matrix in the ACELP optimization process to an autocorrelation matrix with a Hermitian Toeplitz structure, which reduces computational complexity and memory requirements by considering the impact of the zero impulse response on both current and future frames, while maintaining perceptual quality.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If exhaustive search algorithm is used for codebook optimization, then coding quality is improved, but computational complexity increases excessively

Engineering Contradiction:
Improvecoding qualityVSAvoidcomputational complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the codebook optimization process into two distinct stages: a training phase where the autocorrelation matrix is pre-computed and stored, and a coding phase where the pre-computed matrix is used for rapid optimization. This segmentation allows the computationally intensive matrix computation to be performed once during training, while the actual coding process benefits from reduced complexity using the stored matrix, thus resolving the contradiction between achieving optimal coding quality and maintaining manageable computational complexity.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If traditional correlation matrix approach is used, then codebook optimization is achieved, but memory requirements increase

Engineering Contradiction:
Improvecodebook optimization accuracyVSAvoidmemory requirements
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent extracts the computationally intensive autocorrelation matrix computation from the real-time coding process and performs it separately during a training phase. The extracted matrix is then stored for reuse during coding, which reduces the memory requirements during active coding operations compared to storing and re-computing the full correlation matrix for each coding operation.

Inventive Principle:
Principle #2Taking out (Extraction)

3Device complexity

If non-optimal iterative algorithms are used for codebook optimization, then computational complexity is reduced, but coding quality deteriorates

Engineering Contradiction:
Improvecomputational complexityVSAvoidcoding quality
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The patent performs preliminary computation of the autocorrelation matrix during a training phase before actual coding operations. This preliminary action prepares the optimization data structure in advance, allowing the coding process to use pre-computed values rather than performing iterative optimizations during real-time coding, thus achieving both reduced computational complexity and maintained coding quality.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12633298B2Apparatus for encoding a speech signal employing ACELP in the autocorrelation domain
Publication Date: 2026.05.19 FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV
  • US12633298B2 patent drawing
  • US12633298B2 patent drawing
  • US12633298B2 patent drawing

AI summary

An apparatus for encoding a speech signal that determines a codebook vector of a speech coding algorithm includes a matrix determiner for determining an autocorrelation matrix R, and a codebook vector determiner for determining the codebook vector depending on the autocorrelation matrix R. The matrix determiner determines the autocorrelation matrix R by determining vector coefficients of a vector r, wherein the autocorrelation matrix R includes a plurality of rows and a plurality of columns, wherein the vector r indicates one of the columns or one of the rows of the autocorrelation matrix R, wherein R(i, j)=r(|i−j|), wherein R(i, j) indicates the coefficients of the autocorrelation matrix R, wherein i is a first index indicating one of a plurality of rows of the autocorrelation matrix R, and wherein j is a second index indicating one of the plurality of columns of the autocorrelation matrix R.