Fixed Codebook Search Algorithm for Voice Coding Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current fixed codebook search methods in voice coding, particularly those using the CELP model, face inefficiencies in computation due to a fixed count of cyclic searches, making real-time search impossible and reducing overall computation efficiency.
Innovation Solution
Implementing a counter to record searches where the Qk value increases or decreases, allowing the search iteration to stop when preset conditions are met, thereby reducing search count and improving efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a fixed count of cyclic searches is used in the fixed codebook search method, then the search process is simple to implement, but the computation efficiency is low and real-time search is impossible
Solution Approach 1:
The patent transforms the fixed search count into a dynamic termination mechanism. Instead of performing a predetermined number of cyclic searches, the algorithm now dynamically terminates based on whether improvement is detected. The search stops when no better pulse position is found or when a maximum iteration limit is reached, making the search process adaptive rather than static.
Solution Approach 2:
The patent introduces a feedback mechanism where the algorithm monitors the Qk value changes across iterations. By comparing the current best Qk value with newly calculated values, the system receives feedback on whether further searches are likely to improve results. This feedback drives the termination decision, allowing the search to stop when it determines that additional iterations will not yield better results.
2Measurement precision
If a full search algorithm is used to find the best pulse position, then the voice quality is ensured, but the computation load is huge and real-time search is impossible
Solution Approach 1:
The patent applies partial action by performing only the necessary searches to achieve adequate pulse position accuracy. Instead of exhaustively searching all possible positions with equal thoroughness, the algorithm performs searches iteratively and terminates when the improvement threshold is not met, performing just enough computation to achieve satisfactory results without unnecessary additional searches.
Solution Approach 2:
The patent uses preliminary action by obtaining an initial codebook and initial pulse position estimates before the main search process. This preliminary setup provides a starting point that is already somewhat optimized, reducing the amount of search work needed to reach final optimal positions. The initial codebook preparation done outside the main search loop contributes to reducing overall search time.
3Manufacturing precision
If multiple cyclic searches are performed to improve pulse position, then the search accuracy is improved, but the computation complexity increases
Solution Approach 1:
The patent makes the search algorithm dynamic by allowing the number of cyclic searches to vary based on detected improvement. Rather than performing a fixed number of iterations or increasingly complex searches, the algorithm adapts its behavior - continuing searches only when improvement is detected and stopping when improvement ceases, thus optimizing the balance between accuracy and complexity.
Solution Approach 2:
The patent implements feedback control where each cyclic search's result feeds into the decision for subsequent searches. The Qk value comparisons provide feedback that determines whether to continue or terminate the search process, creating a self-regulating system that automatically adjusts the search effort based on actual improvement rather than predetermined parameters.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A fixed codebook search method includes: initializing a counter; searching for pulses and calculating the value of a cost function Qk; initializing the counter if the Qk value increases; increasing the value of the counter if the Qk value does not increase; judging whether the value of the counter is greater than the threshold value; continuing the search process if the value of the counter is not greater than the threshold value; and ending the whole search process if the value of the counter is greater than the threshold value. A searcher includes: a pulse searching unit; an identifying unit, configured to: identify the initial state, and set the state flag to a non-initial state when the Qk value increases; and a judging unit, configured to: judge whether the identifying unit indicates the initial state, and end the whole search process if determining that the identifying unit indicates the initial state. The present invention reduces the search count and improves the search efficiency.