Vector Quantizer Codebook Ordering for Fast Nearest-Neighbor Search

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing vector quantization methods face high computational complexity during nearest neighbor searches, which restricts their use in applications with stringent complexity requirements, despite offering good rate distortion performance.

Innovation Solution

A method that reduces computational complexity by sorting codevectors based on a selected component's variance, using binary search and modified partial distortion searches, allowing for efficient nearest neighbor finding without additional memory requirements, and optimizing the search process to terminate early based on distortion measures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If full nearest neighbor search is performed evaluating distortion for each codeword, then search accuracy is improved, but computational complexity increases significantly

Engineering Contradiction:
Improvesearch accuracyVSAvoidcomputational complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The codebook is segmented into multiple subcodebooks, each containing a subset of codewords. The search process is divided into multiple stages: first searching within relevant subcodebooks, then refining the search around promising candidates. This segmentation reduces the number of distortion evaluations needed while maintaining search accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The codebook is pre-sorted based on variance of selected components, and preliminary candidate codewords are identified using simplified criteria before performing full distortion evaluation. This preliminary action filters out unlikely candidates, reducing the computational burden of the exhaustive search.

Inventive Principle:
Principle #10Preliminary action

2Manufacturing precision

If codebook size is increased to improve representation quality, then quantization performance is improved, but search time increases

Engineering Contradiction:
Improvequantization performanceVSAvoidsearch time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The large codebook is divided into multiple subcodebooks, allowing the search to be distributed across smaller subsets. This maintains the benefit of having a large codebook for high quantization performance while reducing the time required to search through all codewords by processing subcodebooks in parallel or sequentially with early termination.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of evaluating all codewords in the codebook, the method performs partial distortion evaluation on a subset of promising candidates identified through preliminary sorting and variance-based selection. This partial action achieves acceptable search results without the excessive time cost of complete evaluation.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If variance-based sorting is applied to codevectors, then search efficiency is improved, but memory requirements increase

Engineering Contradiction:
Improvesearch efficiencyVSAvoidmemory requirements
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

Instead of sorting the entire codebook by variance (which would require significant additional memory), the method applies variance-based sorting locally to smaller subsets or subcodebooks. This maintains the search efficiency benefits of variance-based ordering while minimizing memory overhead by limiting the scope of sorted structures.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP2304722B1Method and apparatus for fast nearest-neighbor search for vector quantizers
Publication Date: 2018.03.14 NOKIA TECHNOLOGIES OY
  • EP2304722B1 patent drawingFigure 1
  • EP2304722B1 patent drawingFigure 2
  • EP2304722B1 patent drawingFigure 3

AI summary

A method comprises identifying a component k of a codevector from a codebook C having one or more codevectors, the component k introducing highest variance for an input vector; allowing ordering of codevectors in the codebook C; and searching for a best match vector for the input vector using ordered codevectors.