[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE69418777T2 - Vektorquantisierer - Google Patents

Vektorquantisierer

Info

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
Application number
DE69418777T
Other languages
English (en)
Other versions
DE69418777D1 (de
Inventor
Masahiro Serizawa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of DE69418777D1 publication Critical patent/DE69418777D1/de
Application granted granted Critical
Publication of DE69418777T2 publication Critical patent/DE69418777T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/02Speech 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/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector 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.
  • Ausführliche Beschreibung der bevorzugten Ausführungsformen
  • 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.
DE69418777T 1993-06-30 1994-06-28 Vektorquantisierer Expired - Fee Related DE69418777T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 日本電気株式会社 音声符号化装置

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