SE466824B - Foerfarande foer kodning av en samplad talsignalvektor - Google Patents
Foerfarande foer kodning av en samplad talsignalvektorInfo
- Publication number
- SE466824B SE466824B SE9002622A SE9002622A SE466824B SE 466824 B SE466824 B SE 466824B SE 9002622 A SE9002622 A SE 9002622A SE 9002622 A SE9002622 A SE 9002622A SE 466824 B SE466824 B SE 466824B
- Authority
- SE
- Sweden
- Prior art keywords
- measure
- scaling factor
- vector
- excitation
- levels
- Prior art date
Links
- 239000013598 vector Substances 0.000 title claims description 68
- 238000000034 method Methods 0.000 title claims description 42
- 230000005284 excitation Effects 0.000 claims description 36
- 230000003044 adaptive effect Effects 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 11
- 230000015572 biosynthetic process Effects 0.000 claims description 5
- 241000258241 Mantis Species 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 238000010606 normalization Methods 0.000 description 8
- 238000007792 addition Methods 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 6
- 230000015654 memory Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 201000004624 Dermatitis Diseases 0.000 description 1
- 101000711475 Homo sapiens Serpin B10 Proteins 0.000 description 1
- 101001043818 Mus musculus Interleukin-31 receptor subunit alpha Proteins 0.000 description 1
- 102100034012 Serpin B10 Human genes 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 208000010668 atopic eczema Diseases 0.000 description 1
- 150000001768 cations Chemical class 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000007775 late Effects 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/12—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0002—Codebook adaptations
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0013—Codebook search algorithms
- G10L2019/0014—Selection criteria for distances
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/03—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
- G10L25/06—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being correlation coefficients
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
- Alarm Systems (AREA)
- Remote Monitoring And Control Of Power-Distribution Networks (AREA)
- Selective Calling Equipment (AREA)
- Telephonic Communication Services (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
Description
.-
4ee 824 4
'io
15
20
25
. 30
Ett ekvivalent och. genom artikeln ¿Efficient procedures for
finding the optimum innovation in stochastic coders", IEEE
ICASSP-86, 1986 av I.M. Atal känt sätt att
finna optimalt index baseras på maximering av den med avseende
på energin normaliserade kvadrerade korskorrelationen mellan den
Trancoso och B.S.
8 syntetiska talvektorn och den samplade talsignalvektorn.
¶:l;gDessa båda kända uttömmande sökmetoder är mycket kostsamma vad
gäller antalet erforderliga instruktionscykler i en digital sig-
8 nalprocessor, men de är också fundamentala vad gäller bevarande
av hög talkvalitet.
Sökning i en adaptiv kodbok är i sig känt genom den amerikanska
patentskriften 3 899 385 samt artikeln "Design, implementation
and evaluation of a 8.0 kbps CELP coder on a single AT&T DSP32C
digital signal processor", IEEE Workshop on speech coding for
telecommunications, Vancouver, Sept 5-5, 1989 av K. Swaminathan
och R.V. Cox.
Ett problem vid en heltalsimplementering är att den adaptiva
kodboken uppvisar en återkoppling (långtidsminne). Kodboken
uppdateras med den totala excitationsvektorn (linjärkombination
av optimala excitationsvektorer ur den fasta och adaptiva kod-
boken) från föregående ram. Denna anpassning av den adaptiva
kodboken gör det möjligt att följa de dynamiska variationerna i
talsignalen, vilket är väsentligt för"uppnående av hög talkvali-
tet. Talsignalen varierar dock över ett stort dynamiskt område,
vilket innebär att det är svårt att med bibehållen kvalitet
representera signalen i enkel precision i en digital signalpro-
cessor som arbetar med heltalsrepresentation, efterom dessa
oftast har en ordlängd på 16 bitar, vilket är otillräckligt.
Signalen måste då antingen representeras i dubbel precision (två
ord) eller i flyttalsrepresentation implementerad i mjukvara i
en digital signalprocessor som arbetar med heltalsrepresentation.
Båda dessa metoder är emellertid kostsamma i komplexitet.
10
15
20
25
(u
466 824
REDOGÖRBLSE FÖR UPPFINNINGEN
Föreliggande uppfinning syftar till erbjudande av ett förfarande
för uppnående av ett stort dynamiskt talsignalområde vid analys
av en adaptiv kodbok i en med heltalsrepresentation arbetande
digital signalprocessor, vilket förfarande ej uppvisar de med
kända metoder behäftade nackdelarna vad gäller komplexitet.
Vid ett förfarande för kodning av en samplad talsignalvektor
genom selektering av en optimal excitationsvektor i en adaptiv
kodbok, i vilket
(a)
(b)
(C)
(d)
(e)
förutbestämda excitationsvektorer successivt läses ur den
adaptiva kodboken,
varje låst excitationsvektor faltas med impulssvaret för
ett linjärt filter,
varje filterutsignal utnyttjas för bildande av
(cl) dels ett mått C, på kvadraten av korskorrelationen
med den samplade talsignalvektorn,
(c2) dels ett mått E, på filterutsignalens energi,
varje mått C, multipliceras med måttet Ch för den excita-
tionsvektor som hitintills givit det största värdet på
kvoten mellan måttet på kvadraten av korskorrelationen
mellan filterutsignalen och den samplade talsignalvektorn
och måttet på filterutsignalens energi,
varje mått El multipliceras med måttet C" för den exci-
tationsvektor som hitintills givit det största värdet på
kvoten mellan måttet på kvadraten av korskorrelationen
mellan filterutsignalen och den samplade talsignalvektorn
och måttet på filterutsignalens energi,
(466 s24 9
10
15
20
25
(f)
(9)
produkterna under steg (d) och (e) jämförs med varandra,
varvid måtten CM, E" ersätts med måtten CI, E, om produkten
under steg (d) är större än produkten under steg (e), och
den excitatinsvektor som svarar mot det största värdet på
kvoten mellan måttet på kvadraten av korskorrelationen
mellan filterutsignalen och den samplade talsignalvektorn
och måttet på filterutsignalens energi väljs såsom den
optimala excitationsvektorn i den adaptiva kodboken,
uppnås detta syftemål genom
(A)
(B)
(C)
(D)
(E)
att den adaptiva kodbokens excitationsvektorer före falt-
ningen i steg (b) blocknormaliseras med avseende på den
till beloppet största komponenten i en uppsättning av ex-
citationsvektorer ur den adaptiva kodboken,
att den samplade talsignalvektorn före bildandet av måttet
C, i steg (cl) blocknormaliseras med avseende på den till
beloppet största av sina komponenter,
att måttet C, från steg (cl) och måttet C" delas upp i resp.
mantissa och resp. första skalningsfaktor med ett förutbes-
tämt första maximalt antal nivåer,
att måttet E, från steg (c2) och måttet E" delas upp i resp.
mantissa och resp. andra skalnihgsfaktor med ett förutbes-
tämt andra maximalt antal nivåer, och
att produkterna i steg (d) och (e) bildas genom multipli-
kation av respektive mantissor och separat skalningsfaktor-
beräkning.
rxeunrönmzcxnrne
Uppfinningen, ytterligare syften samt med uppfinningen uppnådda
fördelar förstås bäst genom hänvisning till nedanstående beskriv-
ning och de bifogade ritningarna, i vilka:
10
15
20
25
30
5 466 824
visar ett blockschema av en anordning enligt teknikens
ståndpunkt för kodning av en talsignalvektor'genom selek-
tering av den optimala excitationsvektorn i en adaptiv
kodbok;
Fig. 1
Fig. 2 visar ett blockschema av en första utföringsform av en
anordning för utförande av förfarandet enligt föreliggan-
de uppfinning;
Fig. 3 visar ett blockschema av en andra, föredragen utförings-
form av en anordning för utförande av förfarandet enligt
föreliggande uppfinning; och
Fig. 4 visar ett blockschema av en tredje utföringsform av en
anordning för'utförande av förfarandet enligt föreliggan-
de uppfinning.
FÖREDRÄGBH UTFÖRINGSFORH
I de olika figurerna avser samma hänvisningssiffror genomgående
motsvarande element.
Fig. 1 visar ett blockschema av en anordning enligt teknikens
ståndpunkt för kodning av en talsignalvektor genom selektering
av den optimala excitationsvektorn i en adaptiv kodbok. En samp-
lad talsignalvektar qßn), exempelvis bestående av 40 sampel,
och en syntetisk signal šH(n), som erhållits genom faltning i en
faltningsenhet 102 av en excitationsvektor ur en adaptiv kodbok
100 med impulssvaret ln(n) för ett linjärt filter, korreleras
med varandra i en korrelator 104. Korrelatorns 104 utsignal utgör
ett mått C, på kvadraten av korskorrelationen mellan signalerna
su(n) och šH(n). Ett mätt på korskorrelationen beräknas exempel-
vis genom summering av produkterna av motsvarande komponenter i
insignalerna s"(n) och š"(n). I en energiberäknare 106 beräknar
även ett mätt E, på den syntetiska signalens šu(n) energi,
exempelvis genom summering av' kvadraterna av signalens kom-
ponenter. Dessa beräkningar utföres för för var och en av den
adaptiva kodbokens excitationsvektorer.
10
15
20
25
30
35
466 SM ë
För varje beräknat par C,, EI bildas produkterna C,-En och Elwä,
där CH och E. är värdena för den kvadrerade korskorrelationen
resp. energin för den excitationsvektor som hitintills givit den
största kvoten C;/El. Värdena C" och En är lagrade i minnen 108
resp. 110 och produkterna bildas i multiplikatorer 112 resp. 114.
Därefter jämförs produkterna i en komparator 116. Om produkten
CI-E" är större än produkten EI-C" uppdateras C", En med CI, El, i
annat fall behålls de gamla värdena på C", E". Samtidigt med
uppdateringen av C; och Fä uppdateras även ett icke visat minne
som lagrar index för motsvarande vektor i den adaptiva kodboken
100. När samtliga excitationsvektorer i den adaptiva kodboken 100
undersökts på detta sätt erhålls den optimala excitationsvektorn
som den vektor som svarar mot de värden på CM, En som finns i
minnena 108 resp. 110. Denna vektors index i kodboken 100, som
finns lagrat i det icke visade minnet, bildar en väsentlig del
av koden för den samplade talsignalvektorn.
Fig. 2 visar ett blockschema av en första utföringsform av en
anordning för utförande av förfarandet enligt föreliggande
uppfinning. Samma parametrar som i den kända anordningen enligt
fig. 1, nämligen den kvadrerade korskorrelationen och energin,
beräknas även i anordningen enligt fig. 2. Före faltningen i
faltningsenheten 102 blocknormaliseras dock den adaptiva kod-
bokens 100 excitationsvektorer i en blocknormaliseringsenhet 200
med avseende på den till beloppet största komponenten av samtliga
excitationsvektorer i kodboken. Detta sker genom att samtliga
vektorkomponenter i kodboken genomsöks för fastställande av den
till beloppet största komponenten. Därefter skiftas denna kom-
ponent så långt ät vänster som är möjligt med den valda ordläng-
den. I denna beskrivning antages en ordlängd på 16 bitar. Det
inses dock att uppfinningen ej är begränsad till just denna
ordlängd utan att även andra ordlängder är möjliga. Slutligen
skiftas de övriga vektorkomponenterna åt vänster med samma antal
skiftningssteg. På motsvarande sätt blocknormaliseras talsignal-
vektorn i en blocknormaliseringsenhet 202 med avseende på den
till beloppet största av sina komponenter.
10
15
20
25 i
30
; 466 824
Efter utförs beräkningarna av den
kvadrerade korskorrelationen och energin i korrelatorn 104 resp.
energiberäknaren 106. Resultaten lagras i dubbel precision, dvs
32 bitar vid 16 bitars ordlängd. Vid korskorrelations- och
energiberäkningarna utförs en summering av produkter. Eftersom
summan av dessa produkter normalt erfordrar fler än 32 bitar kan
en ackumulator med en längd på mer än 32 bitar utnyttjas för sum-
meringen, varefter resultatet skiftas åt höger för att rymmas
inom 32 bitar. Ett alternativt sätt är att vid en 32 bitars acku-
mulator skifta varje produkt ät höger till exempel sex bitar före
addition. Dessa skiftningar har ingen praktisk betydelse och
kommer därför ej att beaktas i nedanstående beskrivning.
blocknormaliseringarna
De erhållna resultaten delas upp i en mantissa på 16 bitar och
en skalningsfaktor. Skalningsfaktorerna har företrädesvis ett
begränsat antal skalningsnivåer. Det har visat sig att ett lämp-
ligt maximalt antal skalningsnivåer för korskorrelationen är 9,
medan ett lämpligt maximalt antal skalningsnivåer för energin är
7. Dessa värden är dock ej kritiska. Värden kring 8 har dock
visat sig vara lämpliga. Skalningsfaktorerna lagras lämpligen som
exponenter, varvid det är underförstått att skalningsfaktorn
bildas som 25, där E är exponenten. Hed de ovan föreslagna
maximala antalen skalningsnivåer kan då skalnigsfaktorn för
korskorrelationen lagras i 4 bitar medan skalningsfaktorn för
energin erfordrar' 3 bitar. Genom. att skalningsfaktorerna är
uttryckta såsom 25 kan skalningen ske genom enkel skiftning av
mantissan. '
För att illustrera uppdelningen i mantissa och skalningsfaktor
antages att vektorlängden är 40 sampel och att ordlängden är 16
bitar. Beloppet för det maximala värdet av ett sampel är i detta
fall Zßq. Det maximala värdet av korskorrelationen blir:
_ _ 2ua4) _ _ 12 _ m
ccm-4o2 -(s2)2
Skalningsfaktorn 2” för detta maximala fall betraktas som 1, dvs
2°, medan mantissan är 5-2”.
'4ee 824 ß
10
15
20
30
Antag nu att den syntetiska utsignalvektor har samtliga komponen-
ter lika med halva det maximala värdet, dvs 2164, medan den samp-
lade signalvektorn fortfarande har enbart maximala komponenter.
I detta fall blir korskorrelationen:
cc, = 4o-2'5-2"' = (s-zfi) -22°
Skalningsfaktorn för detta fall betraktas som 21, dvs 2, medan
mantissan fortfarande är 5-212. Skalningsfaktorn anger alltså hur
många gånger mindre resultatet är än CCM.
Vid andra värden pá vektorkomponenterna beräknas korskorrelatio-
nen, varefter resultatet skiftas åt vänster så länge som det
understiger CBC-ax. Antalet skiftningar ger skalningsfaktorns
exponent, medan de 15 mest signifikanta bitarna i resultatets
belopp ger mantissans belopp.
Eftersom antalet skalningsfaktorniváer kan vara begränsat kan
även antalet skiftningar som genomförs vara begränsat. Det kan
.alltså hända att mantissans mestsignifikanta bitar innehåller
nollor även efter maximal skiftning om korskorrelationen är
liten.
C, beräknas sedan genom kvadrering av korskorrelationens mantis-
sa och skiftning av resultatet 1 bit åt vänster samt dubblering
av skalfaktorns exponent och ökning av den resulterande exponen-
ten med 1. '
E! uppdelas på liknande sätt. Här behöver dock inte den avslutan-
de kvadreringen genomföras.
På samma sätt är de lagrade värdena C", E" för den hitintills op-
timala excitationsvektorn uppdelade i en 16 bitars mantissa och
en skalningsfaktor.
Hantissorna för Cl och E" multipliceras i multiplikatorn 112 medan
mantissorna för E, och C" multipliceras i multiplikatorn 114.
Skalningsfaktorerna för dessa storheter tillförs en skalnings-
faktorberäkningsenhet 204, som beräknar repektive skalningsfaktor
10
15
20
25
30
9
4-66 824
S1 och S2 genom addering av skalningsfaktorernas exponenter för
paren Cl, EQ resp. El, C". I skalningsenheterna 206, 208 påläggs
sedan skalningsfaktorerna Sl, S2 produkterna från multiplikato-
rerna 112 resp. 114 för bildande av de skalade kvantiteter som
skall jämföras i komparatorn 116. Påläggningen av respektive
skalningsfaktor sker genom skiftning av motsvarande produkt åt
höger det antal steg som anges av skalningsfaktorns exponent.
Genom att skalningsfaktorerna kan begränsas till ett maximalt
antal skalningsniväer är det möjligt att begränsa antalet skift-
ningar till ett minimum som fortfarande ger god talkvalitet. De
ovan angivna värdena 9 och 7 för korskorrelation resp. energi
har visat sig vara optimala vad gäller minimering av antalet
skiftningar vid bibehållen god talkvalitet.
En nackdel med implementeringen enligt fig. 2 är att skiftningar ~
kan vara nödvändiga för båda insignalerna. Detta leder till att
båda insignalernas noggrannhet försämras, vilket i sin tur inne-
bär att den efterföljande jämförelsen blir osâkrare. En annan
nackdel är att skiftning av båda insignalerna tar onödigt lång
tid.
Fig. 3 visar ett blockschema av en andra, föredragen utförings-
form av en anordning för utförande av förfarandet enligt före-
liggande uppfinning i vilken dessa nackdelar eliminerats. Istäl-
let för tvâ skalningsfaktorer' beräknar skalningsfaktorberäk-
ningsenheten 304 en effektiv skalningsfaktor. Denna beräknas
genom subtrahering av exponenten för'skalningsfaktorn för paret
EI, C; från exponenten för skalningsfaktorn för paret Cl, EH. Om
den resulterande exponenten är positiv skiftas produkten frän
multiplikatorn 112 ät höger det antal steg som anges av den
beräknade exponenten. I annat fall skiftas produkten frän
multiplikatorn 114 åt höger det antal steg som anges av beloppet
av den beräknade exponenten. Fördelen med denna implementering
är att endast en effektiv skiftning erfordras. Detta innebär
färre skiftningssteg, vilket i sin tur innebär ökad snabbhet.
Dessutom ökas säkerheten i jämförelsen eftersom endast den ena
signalen behöver skiftas.
"4se S24
10
15
20
25
30
/G
En implementering av den föredragna utföringsformen enligt fig.
3 illustreras i detalj av det före patentkraven bifogade PASCAL-
programmet.
Fig. 4 visar ett blockschema av en tredje utföringsform av en
anordning för utförande av förfarandet enligt föreliggande upp-
finning. Såsom vid utföringsformen enligt fig. 3 beräknar skal-
ningsfaktorberäkningsenheten 404 en effektiv skalningsfaktor,
men i denna utföringsform påläggs den effektiva skalningsfaktorn
alltid endast den ena av produkterna från multiplikatorerna 112,
114. I fig. 4 pàläggs den effektiva skalningsfaktorn produkten
från multiplikatorn 112 via skalningsenheten 406. I denna utfö-
ringsform kan därför skiftning ske både åt höger och vänster
beroende på om den effektiva skalningsfaktorns exponent är posi-
tiv eller negativ. Insignalerna till komparatorn 116 erfordrar
därför mer an ett ord.
Nedan följer en jämförelse av komplexiteten uttryckt i HIPS
(millioner instruktioner per sekund) för den i fig. 1 illustrera-
de kodningsmetoden. Endast komplexiteten för'beräkningen av kors-
korrelation, energi och jämförelsen har uppskattats eftersom
huvuddelen av komplexiteten uppkommer i dessa delar. Följande
metoder har jämförts:
1. Flyttalsimplementering i hårdvara.
2. Flyttalsimplementering i mjukvara på en med heltals-
representation arbetande digital signalprocessor.
3. Implementering i dubbel precision på en med heltals-
representation arbetande digital signalprocessor.
4. Metoden enligt föreliggande uppfinning implementerad på en
med heltalsrepresentation arbetande digital signalproces-
sor.
I nedanstående beräkningar antages att varje samplad talvektor
innehåller 40 sampel (40 komponenter), att varje talvektor
sträcker sig över en tidsram på 5 ms, och att den adaptiva
10
15
20
äs
" 466 824
kodboken innehåller 128 excitationsvektorer med vardera 40
komponenter. Uppskattningarna på antalet nödvändiga instruktions-
cykler för de olika operationerna på en med heltalsrepresentation
arbetande digital signalprocessor har hämtats ur "THS320C25
USER'S GUIDE" från Texas Instruments.
1. Flyttalsimplementering i hårdvara.
Flyttalsoperationer (FLOP) är komplexa men implementerade
i hårdvara. Därför räknas de här som vardera en instruktion
för förenkling av jämförelsen.
Korskorrelation: 40 multiplikationer-additioner
Energi : 40 multiplikationer-additioner
Jämförelse : 4 multiplikationer
1 subtraktion
Totalt 85 operationer
Detta ger 128-85 / 0.005 = 2.2 MIPS
2. Flyttalsimplementering i mjukvara.
Operationerna byggs upp av enklare instruktioner. In-
struktionsåtgången är ungefär:
Flyttalsmultiplikation:
Flyttalsaddition :
10 instruktioner
20 instruktioner
Härur erhålls:
Korskorrelation: 40-10 instruktioner
40-20 instruktioner
Energi 40-10 instruktioner
40-20 instruktioner
Jäförelse : 4-10 instruktioner
1-20 instruktioner
10
15
4>
ÖW
ß
”I
los.
03
“Fr-h
Totalt 2460 instruktioner
Detta ger 128-2460 / 0.005 = 63 MIPS
3. Implementering i dubbel precision.
Operationerna byggs upp av enklare instruktioner. In-
struktionsátgången är ungefär:
Multipl.-addition i enkel precision:
Multiplikation i dubbel precisuion :
2 subtraktioner i dubbel precision :
2 normeringar i dubbel precision :
Härur erhålls:
50
10
30
instruktion
instruktioner
instruktioner
instruktioner
Korskorrelation: 40-1 instruktioner
Energi : 40-1 instruktioner
Jämförelse : 4-50 instruktioner
1-10 instruktioner
2-30 instruktioner
Totalt 350 instruktioner
Detta ger 128-350 / 0.005 = 9.0 HIPS
4. Metoden enligt föreliggande uppfinning.
Operationerna byggs upp av enklare instruktioner. In-
struktionsåtgången är ungefär:
Multipl.-addition i enkel precision:
Normering i dubbel precision :
Multiplikation i enkel precision :
Subtraktion i enkel precision :
NLJWP'
instruktion
instruktioner
instruktioner
instruktioner
10
15
20
25
30
'Q 466 824
Härur erhålls:
Korskorrelation: 40-1 instruktioner
9 instruktioner (antalet skal-
ningsnivåer)
Energi : 40-1 instruktioner
7 instruktioner (antalet skal-
ningsnivåer)
Jämförelse : 4-3 instruktioner
5+2 instruktioner (skalning)
1-3 instruktioner
Totalt 118 instruktioner
Detta ger 128-118 / 0.005 = 3.0 HIPS
Ovanstående uppskattningar är att anse som ungefärliga och anger
storleksornigen i komplexitet för' de olika. metoderna. Dessa
uppskattningar visar att metoden.enligt föreliggande uppfinning
är nästan lika effektiv med avseende på antalet använda instruk-
tioner som en flyttalsimplementering i hårdvara. Eftersom metoden
kan implementeras i en betydligt billigare med heltalsrepresenta-
tion arbetande digital signalprocessor kan en väsentlig kostnads-
reduktion uppnås med bibehållen talkvalitet. En jämförelse med
flyttalsimplementering i mjukvara och implementering i dubbel
precision på en med heltalsrepresentation arbetande digital sig-
nalprocessor visar att metoden enligt föreliggande uppfinning
leder till en väsentlig reduktion 1 komplexitet (erforderligt
antal MIPS) vid bibehållen talkvalitet.
Fackmannen inser att olika förändringar och modifieringar av
uppfinningen är möjliga utan att dessa faller utanför uppfin-
ningens ram, vilken definieras av de bifogade patentkraven. Exem-
pelvis âr uppfinningen användbar även vid så kallade virtuella
vektorer och vid rekursiv energiberäkning. Uppfinningen är även
användbar vid selektiva sökmetoder där ej alla utan endast förut-
bestämda excitationsvektorer i den adaptiva kodboken testas. I
detta fall kan blocknormaliseringen ske antingen med avseende på
d? 466 824 ”f
hela den adaptiva kodboken eller med avseende på endast de valda
vektorerna.
10
15
20
25
35
'S 466 824
PROGRAM fixed_point;
This program calculates the optimal pitch prediction
for an adaptive code book. The optimal pitch predic-
tion is also filtered through the weighted synthesis
filter.
Input:
alphaweight
pweight
iResponse
ILTP
Output:
capGMax
capCHax
1agX
blßpt
bPrimeL0pt
USES HATHLIB
wèigntea direct form filter
coefficients
signal after synthesis filter
truncated impulse response
pitch predictor filter state
history
max pitch prediction power
max correlation
code word for optimal lag
optimal pitch prediction
optimal filtered pitch prediction
Å
MATHLIB is a module that simulates basic instructions of
Texas Instruments digital signal processor TMSCSX and
defines extended instructions (macros) in terms of these
basic instructions. The following instructions are used.
Basic instructions:
ILADD
ILMUL
IMUL
IMULR
ILSHFT
IRSHFT
arithmetic addition.
multiplication with 32 bit result.
truncated multiplication scaled to 16 bit.
rounded multiplication scaled to 16 bit.
logic n-bit left shift.
logic n-bit right shift.
10
15
20
25
30
35
'Åse 824 få
Extended instructions:
normalization of 32 bit input value giving a
16 bit result norm with rounding.
block normalization of input array giving a
normalization of all array elements accor-
ding to max absolute value in input array.
INORM
IBNORH
ILSSQR
giving a 32 bit
ISHUL sum of products
arrays giving a
ILSHUL sum of products
arrays giving a
CONST
capGLNormMax = ;
capCLNormMax = :
truncLength = 20;
maxLag = 166:
nrCoeff = 10:
subframeLength = 40:
lag0ffset = 39;
TYPE
integernormtype =
integerpowertype =
integerimpulseresponsetype =
integerhistorytype =
integersubframetype =
integerparametertype =
integerstatetype =
sum of squares of elements in input array
result.
of elements in two input
16 bit result with rounding.
of elements of two input
32 bit result.
ARRAY [0..l] OF Integer;
ARRAY [0..2,0..l] OF Integer;
ARRAY [0..truncLength-1] OF
Integer;
ARRAY [-maxLag..-1] OF
Integer:
ARRAY [0..subframelength-1]
OF Integer;
ARRAY [1..nrCoeff] OF
Integer;
ARRAY [0..nrCoeff] of
Integer
10
15
20
25
30
35
'l 466 824
VAR
iResponse
pweight
rLTP
rLTPNOrm
alphaweight
capGMax
capCMax
lagX
bLOpt
bPrimeL0pt
rLmPScale
pweightscale
capGLMax
capCLMax
lagMax
capGL
capCL
bPrimeL
state
shift,
capCLSqr,
capCLMaxSqr
pitchbelay
PROCEDURE pitChInit(
ZiResponse
Zpweight
ZrLTP
VAR zcapcmax
VAR ZcapCLMax
VAR Z1agMax
VAR ZbPrimeL
Calculates pitch prediction
lates correlation between the
integerimpulseresponsetype:
integersubframetype;
integerhistorytype;
integerhistorytype;
íntegerparametertype;
Integerpcwertype;
Integerpowertype;
Integer;
integersubframetype;
integersubframetype;
Integer:
Integer;
Integernormtype;
Integernormtype;
Integer;
Integernormtypeï
Integernormtype:
integersubframetypeï
integerstatetype;
Integer;
Integer;
integerimpulseresponsetype;
integersubframetype;
integerhistorytype;
Integernormtype;
Integerncrmtype;
00
Integer:
integersubframetype);
for a pitch delay = 40. Calcu-
calculated pitch prediction
and the weighted subframe. Finally, calculates power of
pitch prediction.
10
15
20
25
30
35
'\4ee 824 ff
Input:
rLPT r(n) = long term filter state, n<0
iResponse h(n) = impulse response
pweight p(n) = weighted input.minus zero input
response of H(z)
Output:
bPrimeL pitch prediction b'L(n) = bL(n) * h(n)
capGLHax GL: power of pitch prediction start
value
capCLMax CL; max correlation start value
lagnax pitch delay for max correlation start
value
}
VÅR
k : Integer;
Lresult : Integer; { 32 bit)
BEGIN
FOR k := 0 TO (subframeLength DIV 2) - 1 DO
ZbPrimeL[k]:= ISMUL(ZiResponse,0,k, ZrLTP,k-40,-40,
l,'PIO');
FOR k := 0 TO (subframeLength DIV 2) - 2 DO
BEGIN '
Lresu1t:= ILSMUL(ZiResponse,k+1,truncLength-1,
ZrLTP,-1,k-(truncLength-1), 1,'PI1');
Lresu1t:= ILADD(Lresu1t,32768,'PI2');
ZbPrimeL[k+(subframeLength DIV 2)] := IRSHFT(Lresu1t,16,
'P13');
END?
ZbPrimeL[subframeLength-1]:= 0:
Lresu1t:= ILSMUL(ZpWeight,0,subframeLength-1,
ZbPrimeL,0,subframeLength-1,-6,'PI7')i
ZcapCIMax[1]:= INORM(Lresult,capCLNormMax,
ZcapCLMax[0],'PI8');
Lresult:= ILSSQR(ZbPrimeL,0,subframeLength-1,-6,'PI9');
10
15
20
25
30
35
(9
466
ZcapGLMax[1]:= INORM(Lresult,capGLNormMax,
ZcapGLMax[0],'PI10'):
IF ZcapCLMax[0] <= 0 THEN
BEGIN
ZcapCLHax[0] : 0:
ZcapCLMax[1] := capCLNormMax;
Zlagflax := lagøffset;
END
ELSE
BEGIN
ZlagMax := subframeLength;
END;
END;
PROCEDURE norma1Recursion(
824
pitchbelay : Integer;
ZíResponse : integerimpulseresponsetype;
VAR ZbPrimeL : integersubframetype;
ZrLTP : integerhistorytype);
Performs recursive updating of pitch prediction.
Input:
pitchbelay current pitch predictor lag value
(41..maxLag)
rLTP r(n) = long term filter state, n<0
íResponse h(n) = impulse response
bPrimeL pitch prediction, b'L(n) = bL(n) * h(n)
Output:
bPrimeL updated bPrimeL
10
15
20
25
30
35
466 824- '20
VAR
k : Integer;
Lresult : Integer: { 32 bit)
BEGIN
FOR k := subframeLength-1 DOWNTO truncLength DO
ZbPrimeL[k] := ZbPrimeL[k-11;
FOR k := truncLength-1 DOWNTO 1 DO
BEGIN
Lresult.= ILMUL(ZiResponse[k],ZrLTP[-pitchDe1ay],'NR4');
LreSult:= ILADD(ILSHFT(Lresult,1,'NR50'),32768,'NR5');
zbPrimeL [k] := IRsHFT (ILADD (ILsHFT (zbPrimemk-i] ,W
16,'NR6'), Lresult,'NR7'),16,'NR8');
END;
Lresult:= I1MUL(ZiResponse[0],ZrLTP[-pitchDe1ay],'NR9');
ZbPrimeL[0]:= IRSHFT(ILADD(ILSHFT(Lresu1t,1,'NR100'),
32768,'NR10'),16,'NR11');
END;
PROCEDURE normalCalculation(
Zpweight : integersubframetype;
ZbPrimeL : integersubframetype;
VAR ZcapGL : integernormtype:
VAR ZcapCL : integernormtype);
I
Performs updating of max correlation and pitch prediction
power.
Input:
pweight p(n) = weighted input minus zero input
response of H(z)
bPrimeL pitch prediction b'L(n) = bL(n) * h(n)
Output:
capGL GL; temporary max pitch prediction
power
10
15
20
25
30
35
capCL
VAR
Lresult
BEGIN
11
466 824
CL; temporary max correlation
_Integer; { 32 bit}
Lresu1t:= ILSMUL(ZpWeight,0,subframeLength-1,
ZbPrimeL,0,subframeLéngth-1,-6,'NC1')7
ZcapCL[1]:= INORM(Lresu1t,capCLNormMax,ZcapCL[0],'NC2');
Lresult.= ILSSQR(ZbPrimeL,0,subframeLength-1,-6,'NC3');
ZcapGL[1]:= INORM(Lresu1t,capGLNormMax,ZcapGL[0],'NC5'):
END;
PROCEDURE normalComparison(
pitchDelay
ZcapGL
zcapcL
VAR ZcapGLMax
VAR zcapcLMax
VAR Zlagfiax
Integer;
integernormtype:
integernormtypeï
integernormtype;
integernormtype;
Integer):
Minimizes total weighted error by maximizing CL*CL / GL
Input:
pitchnelay current pitch prediction lag value
(41..maxLag)
capGL GL; temporary max pitch prediction
power
capCL CL; temporary max correlation
capGLMax GL; max pitch prediction power
capCLMax CL; max correlation
lagßax pitch delay for max correlation
Output:
capGLMax GL; updated max pitch prediction power
10
15
20
25
30
35
H 466 824 *u
capCLMax CL; updated max correlation
lagMax updated pitch delay for max correlation
Ltemp1,Ltemp2 : Integer; { 32 bit)
BEGIN
IF (ZcapCL[0] > 0) THEN
BEGIN
capCLSqr:= IMULR(ZcapCL[0],ZcapCL[0],'NCMP1');
capCLMaxSqr:= IMULR(ZcapCLMax[0],ZcapCLMax[0],'NCMP2');
Ltemp1:= ILMUL(capCLSqr,zcapGLMax[0],'NCMP3');
Ltemp2.= ILMUL(capCLMaxSqr,zcapGL[0],'NCHP4');
shift.= 2*ZcapCL[1]-ZcapGL[1]-2*ZcapCLMax[1]+
ZcapGLMax[1];
IF shift > 0 THEN
Ltemp1:= IRSHFT(Ltemp1,shift,'NCMP5')
ELSE
Ltemp2:= IRSHFT(Ltemp2,-shift,'NCMP6')7
IF Ltempl > Ltemp2 THEN
BEGIN
ZcapGLMax[0]:= ZcapGL[0];
ZcapCLMax[0].= ZcapCL[0];
ZcapGLMax[1]:= ZcapGL[1];
ZcapCLMax[1]:= ZcapCL[1]; '
ZlagMax:= pitchDe1ay;
END;
END?
PRDCEDURE pitchEncoding(
ZcapGLMax : integernormtype;
ZcapCLMax : integernormtype;
ZlagMax : Integer:
ZrLmPScale : Integer;
Zpweightscale : Integer;
10
15
20
25
30
35
VAR ZcapGMax
VAR ZcapCMax
VAR Zlagx
466 824
: integerpowertype;
: integerpowertype;
: Integer):
Performs pitch delay encoding.
Input:
capGLMax
capCLMax
lagfiax
rLTPSca1e
pweightscale
Output:
capGMax
capcnax
lagX
BEGIN
Z1agX := Z1agMax
GL; max pitch prediction power
CL: max correlation
pitch delay for max correlation
fixed point scale factor for pitch
history buffer
fixed point scale factor for input
speech buffer
max pitch prediction power
max correlation
encoded lag
- lagøffset;
IF Zlagnax = lagøffset THEN
BEGIN
zcapGMax[o,o]
ZcapCMax[0,0]
ZcapGMax[0,1]
zcapcMax[o,1]
END
ELSE
BEGIN
zcapGLMax[1]:=
zcapcLMax[1]==
OO
Il
~o
cc
ll
wo
II ll
o c» c> o
ä; E'
ZcapGLMax[1] + 2*ZrLTPSca1e;
ZcapCLMax[1] + ZrLTPScale +
Zpweightscale:
zcapGMax[o,o]
zcapcuax(o,o]
zcapGMax[o,1]
:= ZcapGLMax[0];
:= ZcapCLMax[0];
:= ZcapGLMax[1];
10
15
20
25
30
35
ï6~5 824 , N
ZcapCMax[0,1] := ZcapCLMax[l];
END;
END;
PROCEDURE pitchPrediction(
I ZlagMax : Integer:
Zalphaweight : integerparametertype;
ZrLTP : integerhistorytype;
VAR ZbL0pt : integersubframetype:
VAR ZbPrimeLOpt : integersubframetype);
{
Updates subframe with respect to pitch prediction.
Input:
lagHax pitch delay for max correlation
rLTP r(n) = long term filter state, n<0
alphaWeight weighted filter coefficients alpha(i)
Output:
bPromeL0pt optimal filtered pitch prediction
bLOpt oplimal pitch prediction
Temporary:
state temporary state for pitch prediction
calculation '
}
VÅR
k,m : Integer;
Lsignal,Ltemp,Lsave : Integer; { 32 bit)
BEGIN r
IF ZlagMax = lagøffset THEN
BEGIN ¥
FOR k := 0 TO subframeLength-1 DO
ZbL0pt[k] := 0;
END
15
20
25
30
.'55
*S 466 824
ELSE
BEGIN
FOR k := 0 TO subframeLength-1 DO
ZbLOpt[k] := ZrLTP[k-ZlagMax];
END;
FOR k := 0 TO nrCoeff DO
state[k] := 0:
FOR k := 0 TO subframeLength-1 DO
BEGIN
Lsignal := ILSHFT(ZbL0pt[k],13,'PP1')7
FOR m := nrcoeff DOWNTO 1 DO
BEGIN
Ltem := ILMUL(ZalphaWeight[m],state[m],'PP2'):
Lsigna1.= ILADD(Lsignal,-ILSHFT(Ltemp,1,'PP30'),
'PP3 ' ) ;
state[m]:= state[m-1]:
END;
Lsignal:= ILSHFT(Lsigna1,2,'PP40');
Lsave:= Lsignal;
Lsignal:= ILADD(Lsignal,Lsave,'PP4l')7
ZbPrimeLOpt[k]:= IRSHFT(ILADD(Lsignal,32768,'PP4'),
16,'PP5')7
state [ 11 == zbprimempt [k] : O
END;
END; '
BEGIN {main}
Initialize:
alphaweight,
pweight,
iResponse,
rLTP
10
15
20
25
30
35
466 824'
pWeightScale.= IBNORM(pWeight,pWeight,'MAIN1');
iâ
rLTPSca1e:= IBNORM(rLTP,rLmPNorm,'MAIN2');
pitchInit(
iResponse,
pweight,
rLTPNorm,
capGLMax,
capCLMax,
lagnax,
bPrimeL);
Ffiuåpf-uiuêflåí
In
In
In
Out
Out
Out
Out
FOR pitchbelay := (subframeLength+1) TO maxLag DO BEGIN
ncrma1Recursion(
normalCalculation(
normalComparison(
END: { FOR lcop }
pitchEncoding(
pitchbelay,
iResponse,
bPrimeL,
rLTPNurm) :
pweight,
bPrimeL,
capGL,
capCL);
pitchbelay,
capGL,
capCL,
capGLMax,
capCLMax,
1agMax);
capGLMax,
capCLMax,
lagMax,
rLTPSca1e,
pweightscale,
pnøuflsrfiømf-s øwf-'wflsflu ßfi-r-MPM
øaflwräf-NPW
In
In
In/Out
In
In
In
Out
Out
In
In
In
In/Out
In/Out
In/Out
In
In
In
In
In
uøhøwuw-f s-søu-fsfl w-fw-vw-vwvw-vwhfl
ïïäflfiflí
5
10
pitchPredictiøn(
END.
capGMax,
capCMax,
1agX);
laguax,
alphaweight,
rnrP,
bLOpt,
bPrimeLOpt);
466 824
{ Out
( Out
{ Out
In
In
In
Out
Out
Ffäêøf-uflfiulå
}
}
}
'Vïííï
Claims (13)
1. Förfarande för kodning av en samplad talsignalvektor genom selektering av en optimal excitationsvektor i en adaptiv kodbok, vid vilket förfarande (G) (b) (C) (5) (e) (f) (9) förutbestämda excitationsvektorer successivt läses ur den adaptiva kodboken, ' varje läst excitationsvektor faltas med impulssvaret för ett linjärt filter, varje filterutsignal utnyttjas för bildande av (cl) dels ett mått C, på kvadraten av korskorrelationen med den samplade talsignalvektorn, (c2) dels ett mått E, på filterutsignalens energi, varje mått CI multipliceras med måttet C" för den excita- tionsvektor som hitintills givit det största värdet på kvo- ten mellan måttet på kvadraten av korskorrelationen mellan filterutsignalen och den samplade talsignalvektorn och måt- tet på filterutsignalens energi, varje mått E, multipliceras med måttet CH för den exci- tationsvektor som hitintills givit det största värdet på kvoten mellan måttet på kvadraten av korskorrelationen mel- lan filterutsignalen och den samplade talsignalvektorn och måttet på filterutsignalens energi, produkterna under steg (d) och (e) jämförs med varandra, varvid måtten C", E" ersätts med måtten Cl, E, om produkten under steg (d) är större än produkten under steg (e), och den excitatinsvektor som svarar mot det största värdet på kvoten mellan måttet på kvadraten av korskorrelationen mel- lan filterutsignalen och den samplade talsignalvektorn och V1' 10 15 20 25 2.9 466 824 måttet på filterutsignalens energi väljs såsom den optimala excitationsvektorn i den adaptiva kodboken, k ä n n e t e c k n a t av (A) att de ur den den adaptiva kodbokens lästa excitationsvek- torer före faltningen i steg (b) blocknormaliseras med av- seende på den till beloppet största komponenten i en upp- sättning av excitationsvektorer ur den adaptiva kodboken, (B) att den samplade talsignalvektorn före bildandet av måttet Cl .i steg (cl) blocknormaliseras med avseende på den till beloppet största av sina komponenter, (C) att måttet C, från steg (cl) och måttet C, delas upp i resp. mantissa och resp. första skalningsfaktor med ett förutbes- tämt första maximalt antal nivåer, (D) att måttet E, från steg (oz) och måttet E" delas upp i resp. mantissa och resp. andra skalningsfaktor med ett förutbes- tâmt andra maximalt antal nivåer, och (E) att produkterna i steg (d) och (e) bildas genom multipli- kation av respektive mantissor och separat skalningsfaktor- beräkning.
2. Förfarande enligt krav 1, k ä n h e t e c k n a t av att uppsättningen excitationsvektorer i steg (A) utgöres av samtliga excitationsvektorer i den adaptiva kodboken.
3. Förfarande enligt krav 1, k ä n n e t e c k n a t av att uppsättningen excitationsvektorer i steg (A) endast innehåller nämnda förutbestämda excitationsvektorer ur den adaptiva kodbo- ken.
4. Förfarande enligt krav 2, k ä n n e t e o k n a t av att nämnda förutbestämda excitationsvektorer innefattar samtliga excitationsvektorer i den adaptiva kodboken. W 4§a 10 15 20 25 30 s24 3°
5. Förfarande enligt något av föregående krav, k a n n e - t e c k n a t av att skalningsfaktorerna lagras såsom exponenter uttryckta i basen 2.
6. Förfarande enligt krav 5, k ä n n e_t e c k n a t av att den totala skalningsfaktorn för respektive produkt bildas genom addi- tion av motsvarande exponenter för den första och andra skal- ningsfaktorn. '
7. Förfarande enligt krav 6, k å n n e t e c k n a t av att en effektiv skalningsfaktor beräknas genom bildande av skillnaden mellan exponenten för den totala skalningsfaktorn för produkten C, -EH och exponenten för den totala skalningsfaktorn för produkten E, -c,,.
8. Förfarande enligt krav 7, k ä n n e t e c k n a t av att produkten av mantissorna för måtten C, resp. En skiftas åt höger med det antal steg som anges av den effektiva skalningsfaktorns exponent om denna år större än noll och att produkten av mantis- sorna för måtten E, resp. Ch skiftas åt höger med det antal steg som anges av beloppet av den effektiva skalningsfaktorns exponent om denna år mindre än eller lika med noll.
9. Förfarande enligt något av föregående krav, k ä n n e - t e c k n a t av att mantissorna har en upplösning på 16 bitar.
10. Förfarande enligt något av föregående krav, k ä n n e - t e c k n a t av att det första maximala antalet nivåer år lika med det andra maximala antalet nivåer.
ll. Förfarande enligt något av föregående krav 1-9, k ä n n e - t e c k n a t av att det första maximala antalet nivåer är skilt från det andra maximala antalet nivåer.
12. Förfarande enligt krav 10 eller 11, k ä n n e t e c k n a t av att det första maximala antalet nivåer år 9.
13. Förfarande enligt krav 12, k ä n n e t e c k n a t av att det andra maximala antalet nivåer år 7.
Priority Applications (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9002622A SE466824B (sv) | 1990-08-10 | 1990-08-10 | Foerfarande foer kodning av en samplad talsignalvektor |
KR1019920700756A KR0131011B1 (ko) | 1990-08-10 | 1991-07-15 | 표본화된 신호벡터를 부호화 하는 방법 |
DE69112540T DE69112540T2 (de) | 1990-08-10 | 1991-07-15 | Verfahren zur Kodierung eines abgetasteten Sprachsignalvektors. |
AU83366/91A AU637927B2 (en) | 1990-08-10 | 1991-07-15 | A method of coding a sampled speech signal vector |
PCT/SE1991/000495 WO1992002927A1 (en) | 1990-08-10 | 1991-07-15 | A method of coding a sampled speech signal vector |
ES91850189T ES2076510T3 (es) | 1990-08-10 | 1991-07-15 | Un metodo de codificar un vector de señal de habla. |
JP03513617A JP3073013B2 (ja) | 1990-08-10 | 1991-07-15 | サンプリングされた音声信号ベクトルのコーディングの方法 |
CA002065451A CA2065451C (en) | 1990-08-10 | 1991-07-15 | Method of coding a sampled speech signal vector |
EP91850189A EP0470941B1 (en) | 1990-08-10 | 1991-07-15 | A method of coding a sampled speech signal vector |
NZ239030A NZ239030A (en) | 1990-08-10 | 1991-07-18 | Coding of a sampled speech signal vector |
US07/738,552 US5214706A (en) | 1990-08-10 | 1991-07-31 | Method of coding a sampled speech signal vector |
MX9100552A MX9100552A (es) | 1990-08-10 | 1991-08-06 | Un metodo para codificar un vector de senal de voz muestreado |
HK98105583A HK1006602A1 (en) | 1990-08-10 | 1998-06-17 | A method of coding a sampled speech signal vector |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9002622A SE466824B (sv) | 1990-08-10 | 1990-08-10 | Foerfarande foer kodning av en samplad talsignalvektor |
Publications (3)
Publication Number | Publication Date |
---|---|
SE9002622D0 SE9002622D0 (sv) | 1990-08-10 |
SE9002622L SE9002622L (sv) | 1992-02-11 |
SE466824B true SE466824B (sv) | 1992-04-06 |
Family
ID=20380132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SE9002622A SE466824B (sv) | 1990-08-10 | 1990-08-10 | Foerfarande foer kodning av en samplad talsignalvektor |
Country Status (13)
Country | Link |
---|---|
US (1) | US5214706A (sv) |
EP (1) | EP0470941B1 (sv) |
JP (1) | JP3073013B2 (sv) |
KR (1) | KR0131011B1 (sv) |
AU (1) | AU637927B2 (sv) |
CA (1) | CA2065451C (sv) |
DE (1) | DE69112540T2 (sv) |
ES (1) | ES2076510T3 (sv) |
HK (1) | HK1006602A1 (sv) |
MX (1) | MX9100552A (sv) |
NZ (1) | NZ239030A (sv) |
SE (1) | SE466824B (sv) |
WO (1) | WO1992002927A1 (sv) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5307460A (en) * | 1992-02-14 | 1994-04-26 | Hughes Aircraft Company | Method and apparatus for determining the excitation signal in VSELP coders |
US5570454A (en) * | 1994-06-09 | 1996-10-29 | Hughes Electronics | Method for processing speech signals as block floating point numbers in a CELP-based coder using a fixed point processor |
US6009395A (en) * | 1997-01-02 | 1999-12-28 | Texas Instruments Incorporated | Synthesizer and method using scaled excitation signal |
US6775587B1 (en) * | 1999-10-30 | 2004-08-10 | Stmicroelectronics Asia Pacific Pte Ltd. | Method of encoding frequency coefficients in an AC-3 encoder |
WO2011048810A1 (ja) * | 2009-10-20 | 2011-04-28 | パナソニック株式会社 | ベクトル量子化装置及びベクトル量子化方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1195350B (it) * | 1986-10-21 | 1988-10-12 | Cselt Centro Studi Lab Telecom | Procedimento e dispositivo per la codifica e decodifica del segnale vocale mediante estrazione di para metri e tecniche di quantizzazione vettoriale |
US4727354A (en) * | 1987-01-07 | 1988-02-23 | Unisys Corporation | System for selecting best fit vector code in vector quantization encoding |
US4899385A (en) * | 1987-06-26 | 1990-02-06 | American Telephone And Telegraph Company | Code excited linear predictive vocoder |
US4817157A (en) * | 1988-01-07 | 1989-03-28 | Motorola, Inc. | Digital speech coder having improved vector excitation source |
US5077798A (en) * | 1988-09-28 | 1991-12-31 | Hitachi, Ltd. | Method and system for voice coding based on vector quantization |
-
1990
- 1990-08-10 SE SE9002622A patent/SE466824B/sv not_active IP Right Cessation
-
1991
- 1991-07-15 JP JP03513617A patent/JP3073013B2/ja not_active Expired - Fee Related
- 1991-07-15 ES ES91850189T patent/ES2076510T3/es not_active Expired - Lifetime
- 1991-07-15 WO PCT/SE1991/000495 patent/WO1992002927A1/en active Application Filing
- 1991-07-15 KR KR1019920700756A patent/KR0131011B1/ko not_active IP Right Cessation
- 1991-07-15 CA CA002065451A patent/CA2065451C/en not_active Expired - Lifetime
- 1991-07-15 AU AU83366/91A patent/AU637927B2/en not_active Expired
- 1991-07-15 EP EP91850189A patent/EP0470941B1/en not_active Expired - Lifetime
- 1991-07-15 DE DE69112540T patent/DE69112540T2/de not_active Expired - Lifetime
- 1991-07-18 NZ NZ239030A patent/NZ239030A/xx unknown
- 1991-07-31 US US07/738,552 patent/US5214706A/en not_active Expired - Lifetime
- 1991-08-06 MX MX9100552A patent/MX9100552A/es unknown
-
1998
- 1998-06-17 HK HK98105583A patent/HK1006602A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
HK1006602A1 (en) | 1999-03-05 |
SE9002622L (sv) | 1992-02-11 |
EP0470941B1 (en) | 1995-08-30 |
US5214706A (en) | 1993-05-25 |
DE69112540D1 (de) | 1995-10-05 |
JPH05502117A (ja) | 1993-04-15 |
SE9002622D0 (sv) | 1990-08-10 |
AU637927B2 (en) | 1993-06-10 |
CA2065451C (en) | 2002-05-28 |
DE69112540T2 (de) | 1996-02-22 |
WO1992002927A1 (en) | 1992-02-20 |
MX9100552A (es) | 1992-04-01 |
JP3073013B2 (ja) | 2000-08-07 |
AU8336691A (en) | 1992-03-02 |
KR0131011B1 (ko) | 1998-10-01 |
EP0470941A1 (en) | 1992-02-12 |
KR920702526A (ko) | 1992-09-04 |
NZ239030A (en) | 1993-07-27 |
ES2076510T3 (es) | 1995-11-01 |
CA2065451A1 (en) | 1992-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0898267B1 (en) | Speech coding system | |
JP3151874B2 (ja) | 音声パラメータ符号化方式および装置 | |
KR100389693B1 (ko) | 선형예측및대수코드여기를사용하는음성코딩방법 | |
EP0497479B1 (en) | Method of and apparatus for generating auxiliary information for expediting sparse codebook search | |
SE518319C2 (sv) | Förfarande och anordning för vektorkvantisering | |
EP2207167B1 (en) | Multistage quantizing method | |
CA2202825C (en) | Speech coder | |
EP0296763A1 (en) | Code excited linear predictive vocoder and method of operation | |
US6314393B1 (en) | Parallel/pipeline VLSI architecture for a low-delay CELP coder/decoder | |
CA2209384C (en) | Speech coding method using synthesis analysis | |
CN1124589C (zh) | 码激励线性预测(celp)编码器中搜索激励代码簿的方法和装置 | |
SE466824B (sv) | Foerfarande foer kodning av en samplad talsignalvektor | |
KR20050072811A (ko) | 음성 코딩 시스템에서 이득 정보를 코딩하기 위한 방법 및장치 | |
US7305337B2 (en) | Method and apparatus for speech coding and decoding | |
CN101056415B (zh) | 一种乘法操作转换为加法和移位操作的方法及装置 | |
KR100510399B1 (ko) | 고정 코드북내의 최적 벡터의 고속 결정 방법 및 장치 | |
JP2591430B2 (ja) | ベクトル量子化装置 | |
KR100576024B1 (ko) | 에이켈프 음성 압축기의 코드북 검색 장치 및 방법 | |
KR0179249B1 (ko) | 고속 알피-브리에스이엘피 음성부호화 방법 | |
JP3092344B2 (ja) | 音声符号化装置 | |
Mikkonen et al. | Soft-decision decoding of binary block codes in CELP speech coding | |
Lee | Implementation of linear predictive speech coding in fixed-point arithmetic | |
KR20010073396A (ko) | 음성 부호화기의 lsp 코드북을 위한 고속탐색 방법 | |
JPH0527800A (ja) | ベクトル量子化方式 | |
Huang | AMR TO G. 729A SPEECH TRANSCODING WITH FAST CODEBOOK SEARCH |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NAL | Patent in force |
Ref document number: 9002622-0 Format of ref document f/p: F |
|
NUG | Patent has lapsed |