• 沒有找到結果。

' EFFICIENT CODEBOOK SEARCH METHOD FOR ACELP SPEECH CODECS

N/A
N/A
Protected

Academic year: 2022

Share "' EFFICIENT CODEBOOK SEARCH METHOD FOR ACELP SPEECH CODECS"

Copied!
3
0
0

加載中.... (立即查看全文)

全文

(1)

EFFICIENT CODEBOOK SEARCH METHOD FOR ACELP SPEECH CODECS

Hochong Park, Younchang Choi and Doyoon Lee

Dept.

of

Electronics Engineering, Kwangwoon University Seoul, Korea

[email protected].!a

ABSTRACT

Speech codecs with ACELP structure are widely used due to their high performance for the bit rates between 4kbps and 16kbps.

In ACELP codecs, search for the best codevector from a huge codebook is the crucial pan in both performance and complexity.

In most cases, non-optimal search method is used in order to reduce the search load with minimal performance degradation.

However, its complexity is still the major pan of tbe overall codec complexity. Furthermore, there is no unified method for ACELP codebook search; rather different method is developed for each ACELP codec. In this paper, a unified framework for efficient ACELP codebook search method based on pulse replacement procedure is proposed, and is applied to standard ACELP codecs.

It is confmed that the proposed method provides the same performance as the standard method with much less search load.

1.

INTRODUCTION

Narrow-hand speech codecs with ACELP(a1gebraic-code- excited linear prediction) structure are most widely used in digital speech communications due to their high performance. For example, ITU G.729 CS-ACELP[l] and G.723.1[2] for VoIP, IS-127 EVRC[3] for CDMA cellular systems, and AMR[4] for IMT-2000 systems are adopted as the standard speech codecs. An ACELP codebook is a set of codevectors, each consisting of several pulses with position constraints, and the optimal codevector from the codehook is searched for each codehook subframe. However, the full search of the entire codebook is practically impossible due to the enormous number of codevector candidates, which leads to the development of sub-optimal codehook search method for ACELP codec.

Although the complexity of codebook search is reduced using the sub-optimal codebook search method, the codebook search is still the major reason for the high computational complexity of ACELP codec. Therefore, it is desirable to develop even more efficient codebook search method with no degradation in overall performance. Furthermore, since each ACELP codec has different constraints in pulse position of codevector and different track structure, the standard search method varies with codecs and no framework for ACELP codebook search method is present.

Therefore, a new ACELP codebook search method is required that has the following features; (i) providing same performance as the standard method with much less search load, and (ii) providing a framework for ACELP codebook search that can be applied to ACELP codebook with any constraints on pulse position and track structure. For this requirement, in this paper, a unified efficient ACELP codebook search method is developed, and is applied to G.729, EVRC and AMR. The performance of proposed search method is measured objectively and subjectively, and compared with the standard method.

0-7803-7549-1/02/$17.00 02002 IEEE.

2. ACELP CODEBOOK SEARCH 2.1.

In ACELP codec, the optimal codevector is the one with the largest Q, =(d

'

ck )2/(c: 0 ck), where ck is the codevector with index k, d is the correlation vector between the target signal and the impulse response of weighted synthesis filter, and 0 is the autocorrelation matrix of impulse response. Theoretically, Qk is maximized when the mean squared enor between the weighted input speech and the weighted reconstructed speech is minimized.

The repetitive computation and comparison of Qk for all codevectors is the main portion of codebook search load.

?herefore, the complexity of ACELP codehook search is measured in terms of the number of Q, computations, which is equivalent to the number of codevector candidates in codebook search[5,6]. Hence, the codebook search method should examine as small number of candidates as possible with no performance degradation.

2.2. Standard ACELP Codebook Search Method

The standard codebook search method recommended in each ACELP codec uses vanOus search techniques. Iu EVRC, where a codevector has 8 pulses and each track has 11 pulse positions, 4 pairs of pulses are sequentially searched and two pulses in each pair are jointly searched, which is called a "two-track-based sequential search". This reqnires l l x l l x 4 searches because 11x1 1 searches for two pulses are repeated 4 times sequentially.

Finally, this procedure is repeated 4 times with different track order, and the entire codebook search load of EVRC is 11xllx4x4= 1936searches.

In G.729, a codevector has 4 pulses, and 4 tracks with 8, 8, 8, and 16 pulse positions each are defined. A "focused search method" is used, where a pre-computed threshold is tested before entering the last loop far 4th track. In addition, the number of times the last loop is entered cannot exceed 90 in average.

Therefore, only 90x16= 1440 candidates are tested out of 8 x 8 ~ 8 ~ 1 6 = 8 1 9 2 possible candidates.

In G.719A[5], which is the fast version of G.729, the codebook search load is reduced using a "depth-first tree search" approach First, two pulse positions over two tracks are determined from 2x8=16 candidates, where only 2 pulse positions in the fmt track are tested. Second, two more pulse positions are determined over other two tracks from 8x8=64 candidates. Next, this procedure is repeated by shifting the pulse assignment to the tracks, resulting in (16+64)x2=160 searches, and the whole procedure is repeated twice with different handling of the last track. The total number of examined candidates is 160x2=320 that is only 22% of (3.729 search load[5].

Cost

of

ACELP Codebook Search

17

(2)

In AMR, there exist 8 modes with different bit rates, and each mode has different codehook structure and search method. In 12.2kbps mode, a 10-pulse codevector is searched from 5 tracks, each with 8 pulse positions. A pulse position with the maximum value of a certain cost function is determined for each track and the global maximum position io is determined. With the io and the local maximum position of one track fxed, the remaining 8 pulse positions are searched by two-track-based sequential search, resulting in (8x8)x4= 256 searches. The same procedure is repeated 4 times by shifting the track for local maximum position, resulting in 256x4=1024 searches. The search method of other mode is similar to these and omitted in this paper for short presentation; the search load is summarized in Table 1.

3.

PROPOSED CODEBOOK SEARCH METHOD 3.1. Pulse Replacement Procedure

The proposed ACELP codehook search method is based on a novel procedure called "pulse replacement[b]." Suppose that a

non-optimal codevector is given and a hener codevector than this is desired. Then, instead of searching for a totally new codevector, a better codevector can be determined hy replacing one pulse with other one under the constraint that Qk of codevector increases.

That is, with one pulse replacement, the performance of codevector can be increased and the near-optimal codevector can be determined by applying this procedure repeatedly.

In pulse replacement procedure, it is necessaq to measure the contribution of each pulse and replace the least important pulse with a new one. In the proposed method, the conhibution of a pulse is measured by the value of Qk of codevector after removing the corresponding pulse. For example, for a 4-pulse codevector with pulses atp,,p2,p3, andp,, Qh of codevector with 3 pulses at p,, PI. and p 3 is the contribution measure of pulse at p 4 . Since the change of Qk is caused by the removal of a pulse, the pulse resulting in codevector with the largest

Q h

is the least important pulse.

After removing the least important pulse, a new pulse is searched from the valid tracks so that Qk of new codevector is maximized. Since the value of Qk never decreases by pulse replacement, if this procedure is repeated, the codevector approaches to the optimal solution steadily. If Q* does not change, which is the case when the removed pulse is selected again, the pulse replacement procedure is terminated.

Before applying the pulse replacement procedure, the initial codevector is required. This initial codevector needs not be selected careftlly because its performance will be enhanced by pulse replacement procedure. Hence, the initial codevector can be determined by any kind of fast sequential search method. Also, multiple initial codevectors can he selected, each being processed by independent pulse replacement procedure, and the final optimal codevector is selected among outputs of all initial codevectors.

Therefore, the proposed ACELP codebook search method is based on two-stage stmcture. At the fust stage, a number of coarse initial codevectors are searched sequentially with minimal search load. Then at the second stage, pulse replacement procedure is applied to each initial codevector repeatedly to enhance the performance of codevector. The block diagram of proposed search method is depicted in Figure I.

The complexity of proposed method is very low because it is basically a sequential search method and the search is run on a pulse basis. The number of times that Qk is computed for

Scmh far Initial Codeveclon

4

Initial Codevectors

4

,..~ ....

7

Compute Pulse Connibution

Final Codevector

c

Figure 1. Block diagram of the proposed ACELP codebook search method.

contribution measure of each pulse is equal to the number of pulses in codevector, and that for the search for new pulse is equal to the number of valid pulse positions. Hence the search load of the proposed method is represented as Cx {L+(P+T)rN), where C is the number of initial codevectors, L is the search load for initial codevector, P is the number of pulses in codevector, T is the number of pulse positions in track, and N is the number of pulse replacements.

The proposed method does not assume any special track structure or the length of codevector, so it can be applied to any ACELP codec without any modification. Hence, it provides a

unified efficient ACELP codebook search method for all ACELP codec.

3.2.

Application

to

Standard Codecs

The proposed ACELP codehook search method is applied to standard ACELP codecs. In EVRC, the codevector has 8 pulses, and 5 tracks denoted by 10, Z l , TZ, 73, and T4 with 11 pulse positions exist. At first, 8 pulses are selected in TO, TI,

TZ,

T3, T4, TO, TI, T2 order sequentially with 11x8=88 searches. The same is repeated 4 times with different track order, and the hest one is selected as the initial codevector. 88x4=352 searches is required at this stage. At the second stage, pulse replacement procedure is applied to the initial cadevector, which requires 8+(11~2) searches because the new pulse can he from at most 2 tracks according to EVRC standard[3]. In summary, the search load of proposed method is (352+30xN) where N is the number of pulse replacements, and when pulse replacement is done 3 times, the overall search load is 442, which is only 22.8% of standard method.

In G.729 and G.729.4, at the fust stage, 4 pulses from 4 tracks are determined sequentially starting from the first track with

18

(3)

8+8+8+16 =40 searches. For pulse replacement, Q k is computed 4 times for contribution measure of each pulse, and the new pulse search requires 16 searches at most. Therefore, the overall search load is 40+(4+16)xN. For 2 pulse replacements, EO searches are required, which is 25% of G.729A search load.

In 12.2kbps mode of AMR, 4 initial codevectois, each with I O pulses, are selected where each one is determined hy sequential search of 8 pulses from 8-position back with the global and one local maximum positions fued. This stage requires 8 ~ 8 ~ 6 4 searches. The pulse replacement procedure is applied to each initial codevector independently, where the global and local maximum positions are not allowed for replacement. Hence, one pulse replacement requires 8 contribution measures and 8 new searches. Fiaally, the results of 4 initial codevectors are compared and the best one is selected as the final codevector. Total search load is 4x{64+(8+8)xN).

In 10.2kbps mode of AMR, the same process as in the 12.2kkhps mode is used only with necessary modification due to the difference in the number of pulses and the number of tracks.

Total load is given by 3x {(IOx6)+ (6+10)xN)

In all other modes of AMR, multiple initial codevectors are determined by the sequential search with different track order, and the pulse replacement procedure is applied to each codevector independently, followed by the final codevector selection. Search load of each mode is summarized in Table 2.

4.

EXPERIMENTAL RESULTS

The objective performance of the proposed codebook search method is measured in terms of segmental S N R (SNRseg) using various speech data(Eng1ish and Korean). The codebook search load of EVRC, G.729A and AMR with the proposed codebook search method and the SNRseg are summarized in Tables 2 and 3.

It can he seen that with very low complexity for codebook search, each ACELP codec provides voice quality equivalent to that of standard method.

Informal listening tests are also conducted as in Table 4. For EVRC and F.729A, 5 speech sentences for each language and speaker are processed by the standard method and by the proposed method, and are randomly presented in pairs to 6 listeners. For AMR, 16 speech sentences for each category are processed by two methods and presented to 10 listeners. It can be seen that the proposed method is considered equivalent or to better than the standard method in voice quality in more than 90%

of the tests for EVRC and 80% for F.729A and AMR.

5 .

CONCLUSIONS

In this paper, an efficient ACELP codebook search method is proposed. It is based on a pulse replacement procedure, where the contribution of each pulse in codevector is measured and the least importaut pulse is removed from the codevector and a new pulse is searched and added. This procedure may be repeated to further enhance the performance of codevector. The initial codevector for pulse replacement is determined coarsely with a fast sequential method. The proposed method does not assume any track structure and the number of pulses, and can be applied to any ACELP codec, so it provides aunified efficient ACELP codebook search method. It is applied to EVRC, G.729A, and AMR codec and it is confirmed that the proposed method has the performance equivalent to that of the standard method with much less codebook search load.

6 . REFERENCES

[I] ITU G.729, “Coding of speech at 8kh/s using conjugate- structure algebraic-code-excited linear pre-diction,” 1996.

[2] ITU G.723.1, “Dual-rate speech coder for multimedia communications transmitting at 5.3 and 6.3kb/s,” 1996 [3] TIAIEIMS-lZ7, “Enhanced variable rate cudec; speech

service option 3 for wideband spread-specmm digital systems,” 1997.

[4] ETSI EN 301 703, “Digital cellular telecommunication system(Phase 2+); Adaptive Multi-Rate (AMR)”, 1999.

[51 R. Salami, C. Lailamme, B. Bessette, and J-P. Adoul, “ITU-T G.729 Annex A: Reduced complexity Xkbls CS-ACELP codec for digital simultaneous voice and data,” IEEE Communication Mugmine, Sept. 1997.

[6] Hochong Park, “Efficient codebook search method for EVRC speech codec,” IEEE Signal Processing Letters, vo1.7, no. 1, 2000.

Table 2. Codehook search load of the proposed method, where N is the number of pulse replacements. Ratio(%) is the ratio of the proposed method complexity to the standard method complexity.

Table 3. Objective performance of the proposed method measured in terms of SNRseg(dB).

Tab 4. Subjective performance of the proposed method measured in terms of A-B preference tests

19

參考文獻

相關文件

Search the portion of List preceding TestEntry for TargetValue, and report the result of that search if (TargetValue > TestEntry):. Search the portion of List following

In later experiments that incorporate pitch into the feature vector, there was no error increase when the pitch track from our two pass system was used instead of the pitch

We used the method in the earlier publication to simulate 45 radio- graphs of total hip arthroplasties with 15 different anteversions ranging from 15°–29°, and then verified the

Two distinct real roots are computed by the Müller’s Method with different initial points... Thank you for

In this paper, we suggest the Levenberg-Marquardt method with Armijo line search for solving absolute value equations associated with the second-order cone (SOCAVE for short), which

Master Taixu has always thought of Buddhist arts as important, the need to protect Buddhist arts, and using different forms of method to propagate the Buddha's teachings.. However,

• Each student might start from a somewhat different point of view and experience the encounters with works of art and ideas in a different way... Postmodern

Biases in Pricing Continuously Monitored Options with Monte Carlo (continued).. • If all of the sampled prices are below the barrier, this sample path pays max(S(t n ) −