DE69418777T2 - Vektorquantisierer - Google Patents
VektorquantisiererInfo
- Publication number
- DE69418777T2 DE69418777T2 DE69418777T DE69418777T DE69418777T2 DE 69418777 T2 DE69418777 T2 DE 69418777T2 DE 69418777 T DE69418777 T DE 69418777T DE 69418777 T DE69418777 T DE 69418777T DE 69418777 T2 DE69418777 T2 DE 69418777T2
- Authority
- DE
- Germany
- Prior art keywords
- autocorrelation
- vector
- weighted
- code
- cross
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000013598 vector Substances 0.000 title claims description 105
- 238000004364 calculation method Methods 0.000 claims description 52
- 238000013139 quantization Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 238000005311 autocorrelation function Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005284 excitation 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
-
- 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/02—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 spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
- G10L19/038—Vector quantisation, e.g. TwinVQ audio
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Radar Systems Or Details Thereof (AREA)
Description
- Die Erfindung betrifft einen Vektorquantisierer und insbesondere einen Vektorquantisierer für einen Sprachcodierer zum Codieren von Sprachsignalen mit höher Qualität bei niedrigen Bitraten, insbesondere bei 4 kB/s oder weniger.
- Ein CELP-System (lineares Frädiktionscodiersystem mit Code-Erregung) ist dem Fachmann als ein System bekannt, das eine Codierung von Sprachsignalen mit niedriger Bitrate bewirkt. In dem CELP-System wird ein Sprachsignal auf der Basis einer linearen Prädiktion analysiert, und das resultierende Restsignal wird vektorquantisiert. Bei einer Anwendung des CELP-Systems auf eine Codierung mit einer Bitrate von 4 kB/s oder weniger sind die Bits, die dem Restsignal zugeteilt werden können, nicht ausreichend, und daher muß die Vektorlänge vergrößert werden. Dies führt zu dem Problem, daß die Quantisierung von Änderungen der Sprachcharakteristik in dem Vektor unzureichend ist. Um dieses Problem zu lösen, ist ein Vektorquantisierer vorgeschlagen worden, bei dem Änderungen der Sprachcharakteristik in dem Vektor berücksichtigt werden, wie in dem vom Japanischen Patentamt erteilten Tokugan Hei 4-35 881 mit dem Titel "Speech Coding Apparatus" (Sprachcodiervorrichtung) offenbart. Wenn in diesem bekannten System ein Eingangssignalvektor durch = [x(0), x(1), ..., x(N-1)], ein Codevektor für die Quantisierung des Eingangssignalvektors durch (i) = [c(i, 0), c(i, 1), ..., c(i, N-1)] (wobei i die Indexzahl des Codevektors, S eine Codebuch-Größe und i = 0, 1, ..., S-1 ist), die Verstärkung durch g(i) und die Gewichtsfunktionsmatrix durch bezeichnet werden, dann erfolgt in diesem bekannten System die Quantisierung durch Suche nach einem Index, bei dem der gewichtete quadratische Abstand D(i) in der untenstehenden Gleichung ein Minimum ist.
- In diesem Falle ist der optimale Wert von g(i), bei dem die Gleichung (1) einen Minimalwert annimmt, durch
- gegeben.
- Durch Einsetzen von Gleichung (1) in Gleichung (2) erhält man
- wobei T die transponierte Matrix bzw. den transponierten Vektor bezeichnet.
- Die Gewichtsfunktionsmatrix dient zur deutlichen Gewichtung in jedem unterteilten Teilintervall (nachstehend als Teilintervall bezeichnet) im Eingangssignalvektor . Im folgenden wird ein Beispiel betrachtet, in dem die Anzahl der Teilintervalle gleich 2 ist, und die Gewichtung erfolgt an einem Eingangssignal x(0), ..., x(N(0)-1) mit einer Impulsantwort h(0, i) (i = 0, 1, ..., L-1) und an einem Eingangssignal x(N(0)), ..., x(N-1) mit einer Impulsantwort h(1, i) (i - 0, 1, ..., L-1). Die Gewichtsfunktionsmatrix ist durch Impulsantwortmatrizen gegeben, die durch Gleichungen (4) bis (7) dargestellt werden.
- Der erste Term
- auf der rechten Seite der Gleichung (3) basiert nicht auf einem Codevektor, sondern ist konstant, so daß er nicht für jeden Index berechnet zu werden braucht. Folglich ist das Maß des Abstands für die Suche:
- Das obige bekannte Verfahren wird nachstehend anhand der Zeichnungen beschrieben.
- Fig. 3 zeigt ein Blockschaltbild, das einen bekannten Vektorquantisierer darstellt. Wie aus Fig. 3 ersichtlich, werden von Eingangsanschlüssen 115, 105 bzw. 110 ein Eingangssignalvektor, eine Impulsantwort zum Gewichten eines ersten Teilintervalls und eine Impulsantwort zum Gewichten eine zweiten Teilintervalls eingespeist. Eine Gewichtungsschaltung 117 gewichtet die . Eine weitere Gewichtungsschaltung 125 gewichtet (i) bezüglich jedes Codevektors (i). Eine Berechnungsschaltung 130 für die gewichtete Autokorrelation berechnet die Autokorrelation
- Eine Berechnungsschaltung 135 für die gewichtete Kreuzkorrelation berechnet
- bezüglich jedes Codevektors (i). Eine Abstandsberechnungsschaltung 140 berech net den Abstand Eopt(i) unter Verwendung der Gleichung (8). Eine Abstandsbestimmungsschaltung 145 liefert einen Quantisierungsindex eines Codevektors, der dem Minimum von Eopt (i) entspricht.
- Bei diesem bekannten Vektorquantisierer kann die Leistungsfähigkeit der Quantisierung verbessert werden, indem eine Gewichtung für jedes Teilintervall in dem Eingangssignalvektor vorgenommen wird.
- Bei diesem bekannten Vektorquantisierer beträgt die Anzahl der Operationen, die zum Quantisieren eines einzigen Eingangssignalvektors für jede Schaltung benötigt werden, L(2N - L+1)/2 Operationen in der Gewichtungsschaltung in der Signalcodebuchschaltung, L(2N - L + 1)/2 Operationen in der Eingangssignalgewichtungsschaltung, SN Operationen in der Gewichtungssignal-Autokorrelationsberechnungsschaltung, SN Operationen in der Gewichtungssignal-Kreuzkorrelationsberechnungsschaltung, 2S Operationen in der Abstandsberechnungsschaltung und der Abstandsprüfschaltung, d. h. insgesamt L(2N - L + 1)/2 + S[L(2N - L + 1)/2 + 2N + 2] Operationen. Hierbei werden die Summation über die Produkte, die Addition und die Subtraktion jeweils als eine Operation gezählt.
- Als konkretes Beispiel für die Anzahl der Operationen erhält man unter der Annahme, daß N = 80, N(0) = 40, L = 21 und S = 256 ist, 419262 Operationen als Anzahl der für die Quantisierung eines Eingangssignalvektors notwendigen Operationen. Da bei dem bekannten Vektorquantisierer die Gewichtungsberechnung, wie oben festgestellt, bei jedem Codevektor ausgeführt werden muß, ergibt sich eine enorme Anzahl erforderlicher Operationen.
- Es ist daher eine Aufgabe der vorliegenden Erfindung, das obige Problem zu lösen und eine Vektorquantisierung mit einer geringen Anzahl von Operationen zu ermöglichen.
- Nach einem Aspekt der vorliegenden Erfindung wird ein Vektorquantisierer gemäß der Definition in Anspruch 1 bereitgestellt.
- Nach einem anderen Aspekt der vorliegenden Erfindung wird ein Vektorquantisierer gemäß der Definition in Anspruch 2 bereitgestellt.
- Weitere Aufgaben und Merkmale der vorliegenden Erfindung werden aus der folgenden Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen ersichtlich.
- Fig. 1 zeigt ein Blockschaltbild, das eine erste Ausführungsform der vorliegenden Erfindung darstellt;
- Fig. 2 zeigt ein Blockschaltbild, das eine zweite Ausführungsform der vorliegenden Erfindung darstellt; und
- Fig. 3 zeigt ein Blockschaltbild, das einen bekannten Vektorquantisierer darstellt.
- Wenn bei dem erfindungsgemäßen Vektorquantisierer die Änderung der Gewichtsfunktion (d. h. der Impulsantwort) für ein Teilintervall klein ist, kann bei dem bekannten Vektorquantisierer eine Näherung in die Berechnung von
- eingeführt werden, wodurch eine Verringerung der Anzahl der Operationen ermöglicht wird.
- Zur Herleitung der Näherungsgleichung wird die folgende Definition eingeführt.
- Um zu vermeiden, daß die folgende Entwicklung zu komplex wird, wird der Faktor (i), der einen Index von 0(1) und 1(1) darstellt, weggelassen. Dabei kann unter Verwendung der Gleichungen (9) und (4)
- wie folgt entwickelt werden:
- Nachstehend wird die Näherungsberechnung jedes Terms auf der rechten Seite erläutert.
- Im folgenden wird die Berechnung des ersten und des zweiten Terms
- in Gleichung (10) beschrieben. Da die Differenz zwischen den Gewichtsfunktionen (Impulsantworten) des ersten und des zweiten Teilintervalls klein ist und der zweite Term als eine Komponente des Einflußsignals im ersten Term klein ist, kann die folgende Näherung angegeben werden:
- Ferner kann unter Anwendung eines Autokorrelationsverfahrens, das in einer Arbeit von I. M. Trancoso und B. S. Atal mit dem Titel "Efficient Search Procedures for Selecting the Optimum Innovation in Stochastic Coders" (Leistungsfähige Suchverfahren zur Auswahl der optimalen Innovation in stochastischen Codierern), IEEE Transactions on Acoustics, Speech, and Signal Processing 38, Nr. 3, März 1990, beschrieben wird, die Näherung wie folgt ausgeführt werden:
- wobei H(0, j) die Autokorrelation der Impulsantwort ist, die wie folgt berechnet wird:
- Ferner erhält man unter Verwendung der Autokorrelation des ersten Teilabschnitts des Codevektors:
- Auf diese Weise können wir eine Näherungsgleichung für den ersten und den zweiten Term in Gleichung (10) in der Form
- erhalten.
- Der dritte und der vierte Term
- werden unter Anwendung des oben angegebenen Autokorrelationsverfahrens berechnet, wobei die Autokorrelationsfunktion H(1, j) und die Autokorrelation C(1, j) der Gewichtungs-Impulsantwort für das zweite Teilintervall wie folgt angesetzt werden:
- Die Berechnung wird unter Anwendung des obigen Autokorrelationsverfahrens wie folgt ausgeführt:
- Die Berechnung des fünften Terms
- läßt sich transformieren und wie folgt ausführen:
- wobei C1 (1, i) die Kreuzkorrelation zwischen dem ersten und dem zweiten Teilintervall des Codevektors ist, die zu
- berechnet wird.
- So kann mit vorheriger Berechnung und Speicherung der Autokorrelation und der Kreuzkorrelation der einzelnen Teilintervalle des Codevektors als Korrelations-Codebuch die Nähe rung
- unter Verwendung der Gleichungen (17), (23), (25) und (10) berechnet werden.
- Indessen wird
- unter Anwendung eines Verfahrens berechnet, das in Miyano & Ozawa, "4 kB/s Improved CELP Coder with Efficient Vector Quantization" (Verbesserter 4 kB/s-CELP- Codierer mit leistungsfähiger Vektorquantisierung), Proceedings of ICASSP, S4.4, S. 214-216, 1991, beschrieben wird. Genauer gesagt, nicht der Eingangssignalvektor und der Codevektor werden jeweils gewichtet, wie im mittleren Teil der Gleichung (27), sondern der Gewichtungs-Eingangsvektor wird zunächst mit der transponierten Matrix T der Gewichtsfunktionsmatrix multipliziert, wie auf der rechten Seite der Gleichung (27). So ist es möglich,
- durch bloße Berechnung des inneren Produkts von (i) und
- zu erhalten.
- Folglich braucht die Gewichtungsberechnung zu (i) nicht für jeden Codevektor ausgeführt zu werden, und die Anzahl der Operationen kann verringert werden.
- Die Anzahl der für die Quantisierung eines Eingangssignalvektors notwendigen Operationen beträgt L(L + 1)/2 Operationen für die Berechnung der Autokorrelation der Eingangsgewichtsfunktion 1 (Impulsantwort 1), L(L + 1)/2 Operationen für die Berechnung der Autokorrelation der Eingangsgewichtsfunktion 2 (Impulsantwort 2), S(3L - 1) Operationen für die Berechnung der Autokorrelation des Gewichtungssignals, L(2N - L + 1)/2 + SN Operationen für die Berechnung der Kreuzkorrelation des Gewichtungssignals, 2S Operationen für die Abstandsberechnungs- und die Abstandsprüfschaltungen, d. h. insgesamt L(L + 1) +L (2N - L + 1)/2 + S(3L - I + N + 2) Operationen. Unter den oben angegebenen Bedingungen beträgt die Anzahl der Operationen 38796 Operationen. Diese Anzahl beträgt nur etwa ein Zehntel der in dem bekannten Verfahren notwendigen Anzahl. Es besteht jedoch die Ansicht, daß sich die Leistung durch die Verwendung der Näherung verschlechtert.
- Ferner werden gemäß der vorliegenden Erfindung bei der Berechnung mit Gleichung (10) der dritte und der vierte Term für die Berechnung der Komponente im ersten Teilintervall, die Einfluß auf das zweite Teilintervall hat, weggelassen. Infolgedessen vermindert sich die Genauigkeit der Näherung, was zu einer gewissen Verschlechterung der Quantisierungsleistung führt. Die Anzahl der Operationen kann jedoch weiter reduziert werden. Konkret gesagt, die Gesamtanzahl der Operationen beträgt 2L(L + 1)/2 + L(2N - L + 1)/2 + S(2L + N + 2), und unter der obigen Bedingung beträgt sie 35146 Operationen.
- Wie gezeigt wurde, ist es unter Verwendung des erfindungsgemäßen Vektorquantisierers möglich, eine Vektorquantisierung mit einer sehr geringen Anzahl von Operationen im Vergleich zu derjenigen des bekannten Vektorquantisierers zu erhalten.
- Die vorliegende Erfindung wird nachstehend anhand der Zeichnungen beschrieben.
- Fig. 1 zeigt ein Blockschaltbild, das eine erste Ausführungsform der vorliegenden Erfindung darstellt.
- In Fig. 1 ist eine erste Ausführungsform des erfindungsgemäßen Vektorquantisierers dargestellt. Der abgebildete Vektorquantisierer weist auf: Autokorrelations-Berechnungsschaltungen 320 und 330, die an ihren Eingangsanschlüssen 305 und 310 die ersten und zweiten Impulsantwortsignale der Gewichtsfunktionen bezüglich vorgegebener erster und zweiter Teilintervalle eines Eingangssignalvektors empfangen, der von einem Eingangsanschluß 315 eingegeben wird, und erste und zweite Autokorrelationen der ersten und zweiten Impulsantwortsignale berechnen; eine Signalcodebuchschaltung 335, in der mehrere im voraus erzeugte Codevektoren gespeichert sind, deren Länge gleich der Codelänge des Eingangssignalvektors ist; eine Autokorrelations-Codebuchschaltung 340, in der die erste Autokorrelation des ersten Teilintervalls des Codevektors gespeichert ist; eine Autokorrelations-Codebuchschaltung 345, in der die zweite Autokorrelation des zweiten Teilintervalls des Codevektors gespeichert ist; eine Kreuzkorrelations-Codebuchschaltung 355, in der die Kreuzkorrelation zwischen dem ersten und dem zweiten Teilintervall des Codevektors gespeichert ist; eine Berechnungsschaltung für die gewichtete Kreuzkorrelation 365 zum Berechnen der gewichteten Kreuzkorrelation zwischen dem gewichteten Eingangssignal und dem Codevektor, dessen erstes und zweites Teilintervall unter Verwendung der ersten und der zweiten Impulsantwort gewichtet sind: eine Berechnungsschaltung für die gewichtete Autokorrelationsfunktion 360 zum Berechnen der gewichteten Autokorrelationsfunktion des gewichteten Codevektors unter Verwendung der Autokorrelationen der ersten und zweiten Impulsantworten, der ersten und zweiten Autokorrelationen der ersten und zweiten Teilintervalle des Codevektors und der Kreuzkorrelation zwischen dem ersten und dem zweiten Teilintervall; eine Abstandsberechnungsschaltung 370 zum Berechnen des Abstands unter Verwendung der gewichteten Kreuzkorrelation zwischen dem gewichteten digitalen Eingangssignal und den gewichteten Codevektoren sowie der gewichteten Autokorrelation des gewichteten Codevektors: und eine Abstandsprüfschaltung 375 zur Bereitstellung eines Index eines Codevektors, welcher dem minimalen Abstand entspricht.
- Im folgenden wird die Arbeitsweise der ersten Ausführungsform unter Bezugnahme auf Fig. 1 beschrieben. Für die Beschreibung werden die Gleichungen (8) bis (27) benutzt.
- Die Signalcodebuchschaltung 335, in der mehrere im voraus erzeugte Vektoren gespeichert sind, deren Länge gleich der Codelänge des Eingangssignalcodes ist, übergibt jedesmal, wenn sie von der Abstandsprüfschaltung 375 ein Ausgabebefehl-Flag empfängt, Codevektoren in der Reihenfolge der Indizes an die Berechnungsschaltung 365 für die gewichtete Kreuzkorrelation. Die Autokorrelations-Codebuchschaltung 340, in der die erste Autokorrelation gespeichert ist, die im voraus unter Verwendung der Gleichung (16) berechnet wird, übergibt jedesmal, wenn sie von der Abstandsprüfschaltung 375 ein Ausgabebefehl- Flag empfängt, die erste Autokorrelation in der Reihenfolge der Indizes an die Berechnungsschaltung 360 für die gewichtete Autokorrelation.
- Die Autokorrelations-Codebuchschaltung 345, in der die zweite Autokorrelation gespeichert ist, die im voraus unter Verwendung der Gleichung (19) berechnet wird, übergibt jedesmal, wenn sie von der Abstandsprüfschaltung 375 ein Ausgabebe fehl-Flag empfängt, die zweite Autokorrelation in der Reihenfolge der Indizes an die Berechnungsschaltung 360 für die gewichtete Autokorrelation. Die Kreuzkorrelations-Codebuchschaltung 355, in der die Kreuzkorrelation gespeichert ist, die im voraus unter Verwendung der Gleichung (26) berechnet wird, übergibt jedesmal, wenn sie von der Abstandsprüfschaltung 375 ein Ausgabebefehl-Flag empfängt, die Kreuzkorrelation in der Reihenfolge der Indizes an die Berechnungsschaltung 360 für die gewichtete Autokorrelation.
- Die Autokorrelations-Berechnungsschaltung 320 berechnet unter Verwendung der Gleichung (15) die Autokorrelation der ersten Impulsantwort, die vom Eingangsanschluß 305 eingegeben wird, und übergibt die berechnete Autokorrelation an die Berechnungsschaltung 360 für die gewichtete Autokorrelation.
- Die Autokorrelations-Berechnungsschaltung 330 berechnet unter Verwendung der Gleichung (18) die Autokorrelation der zweiten Impulsantwort, die vom Eingangsanschluß 310 eingegeben wird, und übergibt die berechnete Autokorrelation an die Berechnungsschaltung 360 für die gewichtete Autokorrelation. Die Berechnungsschaltung 365 für die gewichtete Kreuzkorrelation berechnet
- in der Gleichung (27) unter Verwendung des Eingangssignalvektors , der von dem Eingangsanschluß 315 eingegeben wird, und den von den Eingangsanschlüssen 305 und 310 eingegebenen ersten und zweiten Impulsantworten. Dann empfängt sie den Codevektor (i) von der Signalcodebuchschaltung 335 und berechnet die Kreuzkorrelation
- aus dem gewichteten Eingangssignalvektor und dem gewichteten Codevektor. Schließlich übergibt sie die berechnete Kreuzkorrelation
- an die Abstandsberechnungsschaltung 370.
- Die Berechnungsschaltung 360 für die gewichtete Autokorrelation empfängt die erste und die zweite Autokorrelation nach den Gleichungen (16) und (19) bzw. die Kreuzkorrelation nach Gleichung (26) von den Autokorrelations-Codebuchschaltungen 340 und 345 bzw. der Kreuzkorrelations-Codebuchschaltung 355, berechnet die Autokorrelation des gewichteten Codevektors mit den Gleichungen (17), (23), (25) und (10), und übergibt die berechnete Autokorrelation an die Abstandsberechnungsschaltung 370.
- Die Abstandsberechnungsschaltung 370 berechnet unter Verwendung der Gleichung (8) den Abstand aus der Autokorrelation des gewichteten Codevektors, die in der Berechnungsschaltung 360 für die gewichtete Autokorrelation berechnet wurde, und der Kreuzkorrelation des gewichteten Codevektors und des gewichteten Eingangssignalvektors, die in der Berechnungsschaltung 365 für die gewichtete Kreuzkorrelation berechnet wurde. Die Abstandsprüfschaltung 375 übergibt den Index des Codevektors, der dem minimalen berechneten Abstand entspricht, an den Ausgangsanschluß 380. Dann übergibt sie Ausgabebefehl- Flags an die Signalcodebuchschaltung 335, die erste und die zweite Autokorrelations-Codebuchschaltung 340 und 345 und die Kreuzkorrelations-Codebuchschaltung 355, so daß diese Schaltungen den nächsten Codevektor, die nächsten Autokorrelationen und die nächste Kreuzkorrelation übergeben.
- Im folgenden wird eine zweite Ausführungsform der vorliegenden Erfindung beschrieben. Fig. 2 zeigt ein Blockschaltbild, das die zweite Ausführungsform der vorliegenden Erfindung darstellt.
- In Fig. 2 sind gleiche Teile wie in der in Fig. 1 dargestellten ersten Ausführungsform durch gleiche Bezugszeichen und Symbole bezeichnet. Diese zweite Ausführungsform unterscheidet sich von der ersten Ausführungsform darin, daß sie eine Berechnungsschaltung 460 für die gewichtete Autokorrelation aufweist, die anstelle der Berechnungsschaltung 360 für die gewichtete Autokorrelation vorgesehen ist. Die Berechnungsschaltung 460 für die gewichtete Autokorrelation weist eine Funktion zur Berechnung der Autokorrelation des gewichteten Codevektors unter Verwendung der Autokorrelationen der ersten und zweiten Impulsantworten und der ersten und zweiten Autokorrelationen der ersten und zweiten Teilintervalle des Codevektors auf. Die Kreuzkorrelations-Codebuchschaltung 355 ist weggelassen.
- Im folgenden wird die Arbeitsweise der zweiten Ausführungsform anhand von Fig. 2 und unter Verwendung der Gleichungen (8) bis (27) beschrieben.
- Die Signalcodebuchschaltung 335, in der mehrere im voraus erzeugte Vektoren gespeichert sind, welche die gleiche Länge wie die Codelänge des Eingangssignalvektors aufweisen, übergibt den Codevektor in der Reihenfolge der Indizes an die Berechnungsschaltung 365 für die gewichtete Kreuzkorrelation, sobald sie ein Ausgabebefehl-Flag von der Abstandsprüfschaltung 375 empfängt. Die Autokorrelations-Codebuchschaltung 340, in der die zuvor unter Verwendung der Gleichung (16) berechnete erste Autokorrelation gespeichert ist, übergibt die erste Autokorrelation in der Reihenfolge der Indizes an die Berechnungsschaltung 460 für die gewichtete Autokorrelation, sobald sie ein Ausgabebefehl-Flag von der Abstandsprüfschaltung 375 empfängt.
- Die Autokorrelations-Codebuchschaltung 345, in der die zuvor unter Verwendung der Gleichung (19) berechnete zweite Autokorrelation gespeichert ist, übergibt die zweite Autokorrelation in der Reihenfolge der Indizes an die Berechnungsschaltung 460 für die gewichtete Autokorrelation, sobald sie ein Ausgabebefehl-Flag von der Abstandsprüfschaltung 375 empfängt.
- Die Autokorrelations-Berechnungsschaltung 320 berechnet die Autokorrelation der vom Eingangsanschluß 305 eingegebenen ersten Impulsantwort unter Verwendung der Gleichung (15) und übergibt die berechnete Autokorrelation an die Berechnungsschaltung 460 für die gewichtete Autokorrelation.
- Die Autokorrelations-Berechnungsschaltung 330 berechnet die Autokorrelation der vom Eingangsanschluß 310 eingegebenen zweiten Impulsantwort unter Verwendung der Gleichung (18) und übergibt die berechnete Autokorrelation an die Berechnungsschaltung 460 für die gewichtete Autokorrelation. Die Berechnungsschaltung 365 für die gewichtete Kreuzkorrelation 365 berechnet zunächst
- in Gleichung (27) unter Verwendung des vom Eingangsanschluß 315 eingegebenen Eingangssignalvektors 1 und der von den Eingangsanschlüssen 305 und 310 eingegebenen ersten und zweiten Impulsantworten.
- Dann empfängt sie den Codevektor (i) von der Signalcodebuchschaltung 335 und berechnet die Kreuzkorrelation
- des gewichteten Eingangssignalvektors und des gewichteten Codevektors. Schließlich übergibt sie die berechnete Kreuzkorrelation
- an die Abstandsberechnungsschaltung 370. Die Berechnungsschaltung 460 für die gewichtete Autokorrelation empfängt die in den Gleichungen (16) und (19) dargestellten Autokorrelationen von den Autokorrelations-Codebuchschaltungen 340 und 345 und berechnet die Autokorrelation des gewichteten Codevektors unter Verwendung der Gleichungen (17) und (23) sowie einer Gleichung, die man aus Gleichung (10) durch Streichen des fünften Terms
- erhält, und übergibt die berechnete Autokorrelation an die Abstandsberechnungsschaltung 370.
- Die Abstandsberechnungsschaltung 370 berechnet unter Verwendung der Gleichung (8) den Abstand aus der Autokorrelation des gewichteten Codevektors, die in der Berechnungsschaltung 460 für die gewichtete Autokorrelation berechnet wird, und der Kreuzkorrelation des gewichteten Codevektors und des gewichteten Eingangssignalvektors, die in der Berechnungsschaltung 365 für die gewichtete Kreuzkorrelation berechnet wird. Die Abstandsprüfschaltung 375 übergibt den Index des Codevektors, der dem minimalen berechneten Abstand entspricht, an den Ausgangsanschluß 380. Ferner übergibt sie Ausgabebefehl-Flags an die Signalcodebuchschaltung 335 und die Autokorrelations-Codebuchschaltungen 340 und 345, so daß diese Schaltungen den nächsten Codevektor, die nächsten Autokorrelationen und die nächste Kreuzkorrelation übergeben.
Claims (2)
1. Vektorquantisierer, der aufweist:
mehrere Autokorrelations-Berechnungseinrichtungen, die
jeweils eine Autokorrelation eines Impulsantwortsignals einer
Gewichtsfunktion für das entsprechende Teilintervall von
mehreren Teilintervallen eines Eingangssignalvektors berechnen;
eine Signalcodebucheinrichtung zum Speichern mehrerer
im voraus erzeugter Codevektoren, wobei jeder der Codevektoren
eine Länge aufweist, die gleich einer Codelänge des
Eingangssignalvektors ist;
mehrere Autokorrelations-Codebucheinrichtungen zum
Speichern der mehreren Autokorrelationen der Teilintervalle
der Codevektoren;
eine Berechnungseinrichtung für die gewichtete
Kreuzkorrelation zum Berechnen einer gewichteten Kreuzkorrelation
des gewichteten Eingangssignalvektors und des gewichteten
Codevektors unter Verwendung des Eingangssignalvektors, der
mehreren Codevektoren und der mehreren Impulsantworten;
eine Berechnungseinrichtung für die gewichtete
Autokorrelation zum Berechnen einer Autokorrelation der gewichteten
Codevektoren unter Verwendung der Autokorrelationen der
mehreren Impulsantworten und der mehreren Teilintervalle der
Codevektoren;
eine Abstandsberechnungseinrichtung zum Berechnen eines
Abstands zwischen dem Eingangssignalvektor und dem Codevektor
unter Verwendung der Kreuzkorrelationen des gewichteten
Eingangssignalvektors und der gewichteten Codevektoren sowie der
Autokorrelation des gewichteten Codevektors; und
eine Abstandsprüfeinrichtung zur Übergabe eines Index
eines Codevektors, der dem minimalen Abstand entspricht.
2. Vektorquantisierer nach Anspruch 1, gekennzeichnet
durch mehrere Kreuzkorrelations-Codebucheinrichtungen zum
Speichern mehrerer Kreuzkorrelationen der entsprechenden
Teilintervalle des Codevektors, und durch
die Tatsache, daß die Berechnungseinrichtung für die
gewichtete Autokorrelation außerdem für die Verwendung der
Kreuzkorrelationen eingerichtet ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5160554A JP2591430B2 (ja) | 1993-06-30 | 1993-06-30 | ベクトル量子化装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69418777D1 DE69418777D1 (de) | 1999-07-08 |
DE69418777T2 true DE69418777T2 (de) | 1999-12-23 |
Family
ID=15717507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69418777T Expired - Fee Related DE69418777T2 (de) | 1993-06-30 | 1994-06-28 | Vektorquantisierer |
Country Status (5)
Country | Link |
---|---|
US (1) | US5761632A (de) |
EP (1) | EP0632429B1 (de) |
JP (1) | JP2591430B2 (de) |
CA (1) | CA2126936C (de) |
DE (1) | DE69418777T2 (de) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2914332B2 (ja) * | 1996-12-27 | 1999-06-28 | 日本電気株式会社 | 周波数荷重評価関数に基づくスペクトル特徴パラメータ抽出装置 |
JPH10233692A (ja) * | 1997-01-16 | 1998-09-02 | Sony Corp | オーディオ信号符号化装置および符号化方法並びにオーディオ信号復号装置および復号方法 |
SE519562C2 (sv) * | 1998-01-27 | 2003-03-11 | Ericsson Telefon Ab L M | Förfarande och anordning för avstånds- och distorsionsskattning vid kanaloptimerad vektorkvantisering |
TW439368B (en) * | 1998-05-14 | 2001-06-07 | Koninkl Philips Electronics Nv | Transmission system using an improved signal encoder and decoder |
DE10123366C1 (de) * | 2001-05-14 | 2002-08-08 | Fraunhofer Ges Forschung | Vorrichtung zum Analysieren eines Audiosignals hinsichtlich von Rhythmusinformationen |
WO2007116815A1 (ja) | 2006-04-07 | 2007-10-18 | Colcoat Co., Ltd. | ジアルコキシマグネシウム粒状物及びその合成方法 |
CN106847300B (zh) * | 2017-03-03 | 2018-06-22 | 北京捷思锐科技股份有限公司 | 一种语音数据处理方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4612414A (en) * | 1983-08-31 | 1986-09-16 | At&T Information Systems Inc. | Secure voice transmission |
US4868867A (en) * | 1987-04-06 | 1989-09-19 | Voicecraft Inc. | Vector excitation speech or audio coder for transmission or storage |
JP2940005B2 (ja) * | 1989-07-20 | 1999-08-25 | 日本電気株式会社 | 音声符号化装置 |
US5208862A (en) * | 1990-02-22 | 1993-05-04 | Nec Corporation | Speech coder |
EP0500961B1 (de) * | 1990-09-14 | 1998-04-29 | Fujitsu Limited | Sprachkodierungsystem |
JP2776050B2 (ja) * | 1991-02-26 | 1998-07-16 | 日本電気株式会社 | 音声符号化方式 |
US5179594A (en) * | 1991-06-12 | 1993-01-12 | Motorola, Inc. | Efficient calculation of autocorrelation coefficients for CELP vocoder adaptive codebook |
US5187745A (en) * | 1991-06-27 | 1993-02-16 | Motorola, Inc. | Efficient codebook search for CELP vocoders |
US5265190A (en) * | 1991-05-31 | 1993-11-23 | Motorola, Inc. | CELP vocoder with efficient adaptive codebook search |
US5173941A (en) * | 1991-05-31 | 1992-12-22 | Motorola, Inc. | Reduced codebook search arrangement for CELP vocoders |
JP3089769B2 (ja) * | 1991-12-03 | 2000-09-18 | 日本電気株式会社 | 音声符号化装置 |
JP3248215B2 (ja) * | 1992-02-24 | 2002-01-21 | 日本電気株式会社 | 音声符号化装置 |
-
1993
- 1993-06-30 JP JP5160554A patent/JP2591430B2/ja not_active Expired - Fee Related
-
1994
- 1994-06-28 DE DE69418777T patent/DE69418777T2/de not_active Expired - Fee Related
- 1994-06-28 EP EP94109994A patent/EP0632429B1/de not_active Expired - Lifetime
- 1994-06-28 CA CA002126936A patent/CA2126936C/en not_active Expired - Fee Related
-
1997
- 1997-05-16 US US08/857,653 patent/US5761632A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0632429A3 (de) | 1997-01-22 |
JP2591430B2 (ja) | 1997-03-19 |
DE69418777D1 (de) | 1999-07-08 |
EP0632429B1 (de) | 1999-06-02 |
US5761632A (en) | 1998-06-02 |
JPH0720898A (ja) | 1995-01-24 |
EP0632429A2 (de) | 1995-01-04 |
CA2126936C (en) | 2000-09-12 |
CA2126936A1 (en) | 1994-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69227401T2 (de) | Verfahren zum Kodieren und Dekodieren von Sprachsignalen | |
DE69029232T2 (de) | System und Methode zur Sprachkodierung | |
DE69328450T2 (de) | Verfahren und Vorrichtung zur Sprachkodierung | |
DE69838305T2 (de) | Orthogonalisierungssuche für die CELP basierte Sprachkodierung | |
DE3854453T2 (de) | CELP Vocoder und Anwendungsverfahren. | |
DE69232892T2 (de) | Sprachkodierungssystem | |
DE69420431T2 (de) | Sprachkodierungssystem | |
DE19604273C5 (de) | Verfahren und Vorrichtung zum Durchführen einer Suche in einem Kodebuch im Hinblick auf das Kodieren eines Klangsignales, Zellkommunikationssystem, Zellnetzwerkelement und mobile Zell-Sender-/Empfänger-Einheit | |
DE3874427T2 (de) | Linearer praediktionsvocoder mit code-anregung. | |
DE69636209T2 (de) | Vorrichtung zur Sprachkodierung | |
DE3784942T2 (de) | Duplex-datenuebertragung. | |
DE69226804T2 (de) | Spracherkennung durch ein zum Bezugmusterlernen angepasstes neuronales Netzwerk | |
DE69229124T2 (de) | Mehrteiliger expertsystem | |
DE69223335T2 (de) | Sprachkodiersystem | |
DE69610915T2 (de) | Verfahren zur quantisierung des verstärkungsfaktors für die linear-prädiktive sprachkodierung mittels analyse-durch-synthese | |
DE69609089T2 (de) | Sprachkodierer mit aus aktuellen und vorhergehenden Rahmen extrahierten Merkmalen | |
DE69522990T2 (de) | Quantisierung von Eingangsvektoren mit und ohne Umordnung von Elementen eines Kandidatvektors | |
DE69129385T2 (de) | Sprachkodiersystem | |
DE4491015C2 (de) | Verfahren zum Erzeugen eines Spektralrauschbewertungsfilters zur Verwendung in einem Sprachcoder | |
DE4031638A1 (de) | Spracherkennungseinrichtung | |
DE69418777T2 (de) | Vektorquantisierer | |
EP0285222A2 (de) | Verfahren zum Erkennen zusammenhängend gesprochener Wörter | |
DE69612788T2 (de) | Kodebuch-Suchverfahren für die Sprachverarbeitung | |
DE69630177T2 (de) | Sprachkodierer mit der Fähigkeit zur wesentlichen Vergrösserung der Codebuchgrösse ohne aber die Zahl der übertragenen Bits zu vergrössern | |
DE69519896T2 (de) | Verfahren und Vorrichtung zur Kodierung eines Anregungssignals |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |