DE69129329T2 - Sprachkodierungsystem - Google Patents
SprachkodierungsystemInfo
- Publication number
- DE69129329T2 DE69129329T2 DE69129329T DE69129329T DE69129329T2 DE 69129329 T2 DE69129329 T2 DE 69129329T2 DE 69129329 T DE69129329 T DE 69129329T DE 69129329 T DE69129329 T DE 69129329T DE 69129329 T2 DE69129329 T2 DE 69129329T2
- Authority
- DE
- Germany
- Prior art keywords
- vectors
- vector
- code
- delta
- calculation
- 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
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
- 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/0007—Codebook element generation
-
- 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
-
- 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)
Description
- Die vorliegende Erfindung betrifft ein Sprachcodierungssystem zur Datenkompression von Sprachsignalen. Insbesondere betrifft sie ein Sprachcodierungssystem unter Anwendung eines Vektorquantisierungssystems vom Typ Analyse-durch-Synthese (A-b- S) zur Codierung bei einer Übertragungsgeschwindigkeit von 4 bis 16 kbps, das heißt die Vektorquantisierung erfolgt mittels Analyse-durch-Synthese.
- Sprachcodierer unter Anwendung der A-b-S-Vektorquantisierung, beispielsweise codeangeregte lineare Prädiktionscodierer (CELP), sind in den letzten Jahren als vielversprechend als Sprachcodierer für die Kompression von Sprachsignalen angesehen worden, wobei die Qualität bei Systemen zwischen verschiedenen Telefongesellschaften, digitaler Mobilfunk-Kommunikation usw. erhalten bleiben soll. Siehe beispielsweise Patendokument WO 89/02147. Bei einem solchen Quantisierungs-Sprachcodierer (hier nachfolgend einfach als "Codierer" bezeichnet) wird eine Prädiktionswichtung auf Codevektoren eines Codeverzeichnisses angewandt, um reproduzierte Signale zu erzeugen. Die Leistungsabweichungen zwischen den reproduzierten Signalen und den Eingabe-Sprachsignalen werden bewertet, und die Nummer (Index) des Codevektors, der die kleinste Abweichung ergibt, wird auf der Empfängerseite entschieden bzw. dorthin gesendet.
- Ein Codierer unter Anwendung des oben erwähnten A-b-S-Vektorquantisierungssystems führt die Verarbeitung durch, indem die lineare Prädiktionsanalyse-Filterverarbeitung auf jeden der Vektoren der Tongeneratorsignale angewandt wird, von denen es etwa 1000 im Codeverzeichnis gespeicherte Muster gibt. Von den etwa 1000 Mustern muß das eine wieder aufgefunden werden, das die kleinste Abweichung zwischen den reproduzierten Sprachsignalen und dem zu codierenden Eingabe-Sprachsignal ergibt.
- Wegen der Notwendigkeit des sofortigen Gesprächs, muß das oben erwähnte Wiederauffinden in Echtzeit durchgeführt werden. Da dies so ist, muß die Wiederauffindungs-Verarbeitung während des Gesprächs ständig in kurzen Zeitabständen von beispielsweise 5 ms erfolgen.
- Wie später erwähnt werden wird, umfaßt die Wiederauffindungs-Verarbeitung jedoch komplizierte Rechenvorgänge der Filterberechnung sowie der Korrelationsberechnung. Der Umfang der für diese Vorgänge erforderlichen Berechnungen ist riesig und umfaßt beispielsweise einige hundert Millionen Multiplikationen und Additionen pro Sekunde. Wenn man sich damit befaßt, sind sogar bei digitalen Signalprozessoren (DSP), mit der gegenwärtig höchsten Geschwindigkeit, mehrere Chips erforderlich. Im Falle von Telefonsystemen mit Zellenaufbau gibt es dabei das Problem der Einhaltung kleiner Abmessungen und geringen Energieverbrauchs.
- Der vorliegenden Erfindung liegt bei Betrachtung der oben erwähnten Probleme die Aufgabe zugrunde, ein Sprachcodierungssystem zu schaffen, welches den Umfang der Berechnungen stark reduziert, wobei die Eigenschaften einer A-b-S- Vektorquantisierungscodierung hoher Qualität und hoher Effizienz erhalten bleiben sollen.
- Um diese Aufgabe zu erfüllen, werden nach der vorliegenden Erfindung Differentialvektoren (hier nachstehend als Deltavektoren bezeichnet) ΔCn zu den vorhergehenden Codevektoren Cn-1 unter den Codevektoren des Codeverzeichnisses addiert und dort die Gruppe der Codevektoren zur Erzeugung der nächsten Codevektoren Cn gespeichert. Hierbei bezeichnet n die Reihenfolge in der Gruppe der Codevektoren.
- Die vorliegende Erfindung soll nachfolgend unter Bezugnahme auf die beigefügten Zeichnungen näher erläutert werden, welche darstellen:
- Fig. 1 ist eine Darstellung zur Erläuterung des Mechanismus der Spracherzeugung.
- Fig. 2 ist ein Blockschaltbild, welches die allgemeine Anordnung eines A-b-S- Vektorquantisierungs-Sprachcodierers zeigt.
- Fig. 3 ist ein Blockschaltbild, welches den Teil der Codeverzeichnis-Wiederauffindungs- Verarbeitung von Fig. 2 mit mehr Einzelheiten zeigt.
- Fig. 4 zeigt den Grundgedanken der vorliegenden Erfindung.
- Fig. 5 zeigt in einfacher Weise die Konzeption der ersten Ausführungsform, die auf der vorliegenden Erfindung beruht.
- Fig. 6 ist ein Blockschaltbild, welches den Teil der Codeverzeichnis-Wiederauffindungs- Verarbeitung auf der Grundlage der ersten Ausführungsform mit mehr Einzelheiten zeigt.
- Fig. 7 ist ein Blockschaltbild, welches den Teil der Codeverzeichnis-Wiederauffindungs- Verarbeitung auf der Grundlage der ersten Ausführungsform unter Verwendung eines anderen Beispieles mit mehr Einzelheiten zeigt.
- Fig. 8 ist eine Darstellung eines anderen Beispieles der Autokorrelations- Berechnungseinheit.
- Fig. 9 ist ein Blockschaltbild, welches den Teil der Codeverzeichnis-Wiederauffindungs- Verarbeitung nach der ersten Ausführungsform unter Verwendung eines anderen Beispieles mit mehr Einzelheiten zeigt.
- Fig. 10 ist eine Darstellung eines anderen Beispieles der Autokorrelations- Berechnungseinheit.
- Fig. 11 ist eine Darstellung der Grundkonstruktion einer zweiten Ausführungsform auf der Grundlage der vorliegenden Erfindung.
- Fig. 12 ist eine Darstellung, welche die zweite Ausführungsform von Fig. 11 mit mehr Einzelheiten zeigt.
- Fig. 13 ist eine Darstellung zur Erläuterung der Baumstruktur-Anordnung der Deltavektoren, welche für die zweite Ausführungsform charakteristisch ist.
- Die Fig. 14A, 14B und 14C sind Darstellungen der Verteilungen der Codevektoren, die im Codeverzeichnis virtuell erzeugt wurden (Modus A, B und C).
- Die Fig. 15A, 15B und 15C sind Darstellungen zur Erläuterung der Neuanordnung der Vektoren auf der Grundlage einer Abwandlung der zweiten Ausführungsform.
- Fig. 16 ist eine Darstellung eines Beispiels des Teiles der Codeverzeichnis- Wiederauffindungs-Verarbeitung auf der Grundlage einer Abwandlung der zweiten Ausführungsform.
- Fig. 17 ist eine Darstellung eines Codierers vom CELP-Typ mit sequentieller Optimierung.
- Fig. 18 ist eine Darstellung eines Codierers vom CELP-Typ mit simultaner Optimierung.
- Fig. 19 ist eine Darstellung des Algorithmus von Fig. 17.
- Fig. 20 ist eine Darstellung des Algorithmus von Fig. 18.
- Fig. 21A ist ein Vektordiagramm, welches schematisch den Verstärkungs-Optimierungs- Vorgang im Falle des CELP-Systems mit sequentieller Optimierung zeigt.
- Fig. 21B ist ein Vektordiagramm, welches schematisch den Verstärkungs-Optimierungs- Vorgang im Falle des CELP-Systems mit simultaner Optimierung zeigt.
- Fig. 21C ist ein Vektordiagramm, welches schematisch den Verstärkungs-Optimierungs- Vorgang im Falle des CELP-Systems mit Orthogonal-Anstiegstransformations- Optimierung zeigt.
- Fig. 22 ist eine Darstellung, welche einen Codierer vom Typ des CELP-Systems mit Orthogonal-Anstiegstransformations-Optimierung zeigt.
- Fig. 23 ist eine Darstellung eines Teiles der Codeverzeichnis-Wiederauffindungs- Verarbeitung mit mehr Einzelheiten auf der Grundlage der ersten Ausführungsform unter Verwendung eines weiteren Beispieles.
- Die Fig. 24A und 24B sind Vektordiagramme zur Erläuterung der Leit- Orthogonaltransformation.
- Fig. 25 ist eine Darstellung, welche die Eignung der ersten Ausführungsform der vorliegenden Erfindung zur Verminderung des Rechenaufwandes zeigt.
- Fig. 26 ist eine Darstellung, welche die Eignung der zweiten Ausführungsform der vorliegenden Erfindung zur Verminderung des Rechenaufwandes sowie zur drastischen Verkleinerung der Speichergröße zeigt.
- Figur 1 ist eine Darstellung zur Erläuterung des Mechanismus der Spracherzeugung.
- Sprache umfaßt stimmhafte und stimmlose Laute. Stimmhafte Laute werden auf der Grundlage der Erzeugung von Impulslauten durch die Schwingung der Stimmbänder erzeugt, durch die Sprechpfad-Charakteristiken von Rachen und Mund des Individiums modifiziert, um die Sprache zu bilden. Weiterhin werden die stimmlosen Laute ohne Schwingung der Stimmbänder gebildet und durchlaufen den Sprechpfad, um unter Verwendung einer einfachen Gauss'schen Rauschfolge zu Ursprung eines Lautes zu werden. Daher kann ein Mechanismus zur Spracherzeugung, wie er in Fig. 1 dargestellt ist, aus einem Impulslauterzeuger PSG, der als Ursprung der stimmhaften Laute dient und einem Rauschlauterzeuger NSG, der als Ursprung der stimmlosen Laute dient sowie einem linearen Prädiktionsanalysefilter LPCF zur Hinzufügung der Sprechpfad- Charakteristiken zu den von Lauterzeugern (PSG und NSG) ausgegebenen Signalen modelliert werden. Anzumerken ist, daß die menschliche Stimme eine Periodizität aufweist und die Periode der Periodizität der vom Impulslauterzeuger PSG ausgegebenen Impulse entspricht, und daß sie sich entsprechend der Person und dem Inhalt der Sprache ändert.
- Wenn es auf Grund des oben Gesagten möglich wäre, die Impulsperiode des Impulslauterzeugers und die Rauschfolge des Rauschlauterzeugers entsprechend der eingegebenen Sprache festzustellen, dann wäre es möglich, die eingegebene Sprache durch einen Code (durch Daten) zu codieren, welcher die Impulsperiode sowie die Rauschfolge des Rauschlauterzeugers identifiziert.
- Daher wird ein adaptives Codeverzeichnis verwendet, um die Impulsperiode des Impulslauterzeugers auf der Grundlage der Periodizität des eingegebenen Sprachsignals zu identifizieren, die Impulsfolge mit der Periode in das lineare Prädiktionsanalysefilter einzugeben, die Filterberechnungsverarbeitung durchzuführen, die sich ergebenden Filterberechnungswerte werden vom eingegebenen Sprachsignal subtrahiert und die periodische Komponente wird entfernt. Als nächstes wird eine vorgegebene Anzahl von Rauschfolgen (jede Rauschfolge wird durch einen vorgegebenen Codevektor von N Dimensionen ausgedrückt) erzeugt. Wenn der einzelne Codevektor, der die kleinste Abweichung zwischen den reproduzierten Signalvektoren, die aus der Analysefilterverarbeitung unterworfenen Codevektoren zusammengesetzt sind und dem Eingabe-Signalvektor (N-dimensionaler Vektor), aus dem die periodische Komponente entfernt wurde, gefunden werden kann, dann ist es möglich, die Sprache durch einen Code (Daten) zu codieren, welcher die Periode und den Codevektor angibt. Die Daten werden zur Empfängerseite gesandt, wo die Originalsprache (Eingabe-Sprachsignal) reproduziert wird. Diese Daten sind eine hochgradig komprimierte Information.
- Figur 2 ist ein Blockschaltbild, welches die allgemeine Anordnung eines A-b-S- Vektorquantisierungs-Sprachcodierers zeigt. In der Figur bezeichnet die Bezugszahl 1 ein Rauschcodeverzeichnis, welches eine Anzahl von beispielsweise 1024 Typen von zufällig erzeugten Rauschfolgen C speichert (jede Rauschfolge wird durch einen N-dimensionalen Codevektor ausgedrückt), 2 bezeichnet eine Verstärkereinheit mit einer Verstärkung g, 3 bezeichnet ein lineares Prädiktionsanalysefilter, welches die Analysefilter- Berechnungsverarbeitung durchführt und die Sprechpfad-Charakteristiken am Ausgang der Verstärkereinheit simuliert, 4 bezeichnet einen Abweichungsgenerator, welcher die Abweichungen zwischen den vom linearen Prädiktionsanalysefilter 3 ausgegebenen reproduzierten Signalvektoren und dem Eingabe-Signalvektor ausgibt und 5 bezeichnet eine Abweichungsleistungs-Bewertungseinheit, welche die Abweichungen bewertet und die Rauschfolge (den Codevektor) findet, die die kleinste Abweichung ergibt.
- Bei der Vektorquantisierung mittels des A-b-S-Systems wird anders als bei der normalen Vektorquantisierung die optimale Verstärkung g mit den Codevektoren C des Rauschcodeverzeichnisses 1 multipliziert, dann wird mittels des linearen Prädiktionsanalysefilters 3 die Filterverarbeitung durchgeführt, die Abweichungssignale (E) zwischen den aus der Filterverarbeitung erhaltenen reproduzierten Signalvektoren (gAC) und dem Eingabe-Sprachsignalvektor werden vom Abweichungsgenerator 4 gefunden, das Wiederauffinden wird im Rauschcodeverzeichnis 1 unter Verwendung der Leistung des Abweichungssignals als Bewertungsfunktion (Abstandsskala) von der Abweichungsleistungs-Bewertungseinheit 5 durchgeführt, die Rauschfolge (der Codevektor), welche die kleinste Leistungsabweichung ergibt, wird gefunden, und das Eingabe-Sprachsignal (AX) wird mittels eines Codes codiert, welcher diese Rauschfolge (Codevektor) angibt. A ist eine Wahrnehmungswichtungsmatrix.
- Die oben erwähnte Abweichungsleistung ist durch die folgende Gleichung gegeben:
- E ² = AX - gAC ² (1)
- Der optimale Codevektor C und die Verstärkung a werden bestimmt, indem die durch die Gleichung (1) dargestellte Abweichungsleistung so klein wie möglich gemacht wird. Es ist anzumerken, daß die Leistung je nach der Lautstärke der Stimme schwankt, so daß die Verstärkung g optimiert wird, und die Leistung des reproduzierten Signals gAC wird der Leistung des Eingabe-Sprachsignals AX angepaßt. Die optimale Verstärkung kann durch partielles Differenzieren der Gleichung (1) nach g und Nullsetzen derselben gefunden werden. Das heißt
- d E ² /dg = 0
- wodurch g durch die folgende Gleichung gegeben ist:
- g = ((AX)T(AC)/(AC)T(AC)) (2)
- Wenn dieses g in Gleichung (1) substituiert wird, dann ergibt sich als Ergebnis:
- E ² = AX ² - ((AX)2T(AC)²)/(AC)T(AC)) (3)
- Wenn die Kreuzkorrelation zwischen dem Eingabesignal AX und der Analysefilter- Ausgabe AC gleich RXC ist und die Autokorrelation der Analysefilterausgabe AC ist gleich RCC, dann werden die Kreuzkorrelation und die Autokorrelation durch die folgenden Gleichungen ausgedrückt:
- RXC = (AX)T (AC) (4)
- RCC = (AC)T (AC) (5)
- Zu beachten ist, daß T eine transponierte Matrix anzeigt.
- Der Codevektor C, welcher die kleinste Leistungsabweichung E bei Gleichung (3) ergibt, ergibt bei der gleichen Gleichung den größten zweiten Term auf der rechten Seite, so daß der Codevektor C durch die folgende Gleichung ausgedrückt werden kann:
- C = argmax (RXC²/RCC) (6)
- (wobei argmax das maximale Argument ist). Die optimale Verstärkung ergibt sich durch die folgende Anwendung der Kreuzkorrelation und der Autokorrelation, die Gleichung (6) aus Gleichung (2) erfüllen:
- g = RXC/RCC (7)
- Figur 3 ist ein Blockschaltbild, welches den Teil der Codeverzeichnis- Wiederauffindungs-Verarbeitung in der Anordnung von Figur 2 mit mehr Einzelheiten zeigt. Das heißt: es ist eine Darstellung des Teiles der Codeverzeichnis- Wiederauffindungs-Verarbeitung zum Codieren des Eingabesignals durch Finden derjenigen Rauschfolge (des Codevektors), welche die geringste Leistungsabweichung ergibt. Die Bezugszahl 1 bezeichnet ein Rauschcodeverzeichnis, welches M Typen (M Größen) von Rauschfolgen C speichert (jede Rauschfolge wird durch einen N- dimensionalen Rauschvektor ausgedrückt), und 3 bezeichnet ein lineares Prädiktionsanalysefilter (LPC-Filter) mit NP Analyseordnungen, welches eine Filterberechnungsverarbeitung anwendet, welche die Sprechpfad-Charakteristiken simuliert. Angemerkt wird, daß eine Erläuterung der Verstärkereinheit 2 von Fig. 2 entfällt.
- Die Bezugszahl 6 ist eine Multiplikationseinheit, welche die Kreuzkorrelation RXC (= (AX)T (AC)) berechnet, 7 ist eine Quadratberechnungeinheit, welche das Quadrat der Kreuzkorrelation RXC berechnet, 8 ist eine Autokorrelations-Berechnungseinheit, welche die Autokorrelation RCC (=(AC)T (AC)) berechnet, 9 ist eine Divisionseinheit, welche RXC²/RCC berechnet und 10 ist eine Abweichungsleistungs-Bewertungs- und Bestimmungseinheit, welche die Rauschfolge (den Codevektor) bestimmt, die den größten Wert RXC²/RCC oder mit anderen Worten die kleinste Leistungsabweichung ergibt und damit den Codevektor angibt. Diese Bauelemente 6, 7, 8, 9 und 10 entsprechen der Abweichungsleistungs-Bewertungseinheit 5 von Fig. 2.
- Bei der oben erwähnten herkömmlichen Codeverzeichnis-Wiederauffindungs- Verarbeitung treten die zuvor erwähnten Probleme auf. Dies wird hier später erläutert werden.
- Die herkömmliche Codeverzeichnis-Wiederauffindungs-Verarbeitung umfaßt drei Hauptbestandteile: (1) Filterverarbeitung des Codevektors C, (2) Berechnungsverarbeitung der Kreuzkorrelation RXC und (3) Berechnungsverarbeitung der Autokorrelation RCC. Wenn hierbei die Ordnung des LPC-Filters 3 gleich NP und die Dimension der Vektorquantisierung (Codevektor) gleich N ist, erreicht der Umfang der oben für (1) bis (3) für einen einzelnen Codevektor erforderlichen Berechnungen NP N, N und N. Daher beläuft sich der Umfang der pro Codevektor für die Codeverzeichnis- Wiederauffindung erforderlichen Berechnungen auf (NP + 2) N. Das üblicherweise verwendete Rauschcodeverzeichnis 1 hat 40 Dimensionen und eine Codeverzeichnisgröße von 1024 (N = 40, M = 1024), wobei die Anzahl der Analyseordnungen des LPC- Filters 3 etwa 10 ist, so daß eine einzige Codeverzeichnis-Wiederauffindung
- (10 + 2) 40 1024 = 480 K
- Multiplikations- und Akkumulationsvorgänge umfaßt. Hierbei ist K = 10³.
- Diese Codeverzeichnis-Wiederauffindung wird für jeden Unterblock (5 ms) der Sprachcodierung durchgeführt, so daß die gewaltige Verarbeitungskapazität von 96 Mops (Mega-Operationen pro Sekunde) erforderlich wird. Sogar bei Einsatz des digitalen Signalprozessors mit der höchsten gegenwärtig verfügbaren Geschwindigkeit (der Berechnungen mit 20 bis 40 Mops erlaubt) wären zur Echtzeitverarbeitung mehrere Chips erforderlich. Dies ist ein Problem. Nachfolgend werden einige Ausführungsformen erläutert, die dieses Problem lösen.
- Figur 4 zeigt den Grundgedanken der vorliegenden Erfindung. Das Rauschcodeverzeichnis 1 der Figur speichert eine Anzahl von M Rauschfolgen, jede mit der Dimension N, als Codevektoren C&sub0;, C&sub1;, C&sub2;, C&sub3;, C&sub4;, ... Cm. Gewöhnlich gibt es zwischen diesen Vektoren keine Beziehungen. Deshalb wurde in der Vergangenheit bei der Wiederauffindungs-Verarbeitung nach Fig. 3 die Berechnung zur Bewertung der Abweichungsleistung für jeden einzelnen der m Codevektoren völlig unabhängig voneinander durchgeführt.
- Wenn jedoch die betrachteten Codevektoren geändert werden, dann ist es möglich, eine Beziehung zwischen ihnen durch die Deltavektoren ΔC auszudrücken, wie es in Fig. 4 dargestellt ist. Durch numerische Gleichungen ausgedrückt, erhält sie folgende Form:
- Betrachtet man beispielsweise den Codevektor C&sub2; in den obigen Gleichungen, so enthält er den Codevektor C&sub1; als ein Element. Da dies so ist, ist bei der Durchführung der Berechnung am Codevektor C&sub2; der Teil, welcher den Codevektor C&sub1; betrifft, bereits abgeschlossen, und wenn von den Ergebnissen Gebrauch gemacht wird, reicht es aus, für die verbleibende Berechnung nur noch den Deltavektor ΔC&sub2; zu ändern.
- Da dies so ist, ist es erforderlich, den Deltavektor ΔC so einfach, wie möglich zu machen. Wenn die Deltavektoren ΔC kompliziert sind, dann gäbe es im obigen Beispiel keinen großen Unterschied zwischen dem Rechenaufwand, der zu einer unabhängigen Berechnung des Codevektors C&sub2;, wie in der Vergangenheit, erforderlich ist und dem Rechenaufwand für die Änderung des Deltavektors ΔC&sub2;.
- Figur 5 ist eine Darstellung, welche in einfacher Weise die Konzeption der ersten Ausführungsform auf der Grundlage der vorliegenden Erfindung zeigt. Irgendein nächster Vektor, beispielsweise der i-te Codevektor Ci ist die Summe des vorhergehenden Codevektors Ci-1 und des Deltavektors ΔCi. Wie oben erwähnt, muß dabei der Deltavektor ΔCi so einfach wie möglich sein. Die Reihen schwarzer Punkte, die in Fig. 5 entlang der horizontalen Achsen der Abschnitte Ci-1, ΔCi und Ci aufgezeichnet wurden, haben im Falle des N-dimensionalen Codevektors die Anzahl N und entsprechen den Abtastpunkten auf der Wellenform einer Rauschfolge. Wenn jeder Codevektor beispielsweise 40 Abtastungen (N = 40) umfaßt, gibt es in jedem Abschnitt 40 schwarze Punkte. In Fig. 5 ist ein Beispiel dargestellt, wo der Deltavektor ΔCi genau vier signifikante abgetastete Daten Δ&sub1;, Δ&sub2;, Δ&sub3; und Δ&sub4; umfaßt, was extrem einfach ist.
- Unter einem anderen Betrachtungswinkel erläutert: Wenn ein Rauschcodeverzeichnis 1 beispielsweise 1024 (M = 1024) Muster von Codevektoren in einer Tabelle speichert, ist man völlig frei, diese Codevektoren so anzuordnen, wie man es wünscht. So kann man die Codevektoren des Rauschcodeverzeichnisses 1 auch derart neu anordnen, daß die Differentialvektoren (ΔC) so einfach wie möglich werden, wenn die Differenzen zwischen benachbarten Codevektoren (Ci-1, Ci) gebildet werden. Das heißt, die Codevektoren werden derart zu einer Ursprungstabelle geordnet, daß unabhängig davon, welche zwei benachbarte Codevektoren (Ci-1, Ci) genommen werden, der Deltavektor (ΔCi) zwischen den beiden zu einem einfachen Vektor mit nur wenigen Abtastdaten wird, wie es in Fig. 5 dargestellt ist.
- Wenn dies getan ist und dann die Ergebnisse der am Anfangsvektor C&sub0; durchgeführten Berechnungen gespeichert werden, dann reicht es nachfolgend, wie in der obigen Gleichung (8) dargestellt, zur Berechnung der Änderung der Codevektoren C&sub1;, C&sub2;, C&sub3; ... aus, lediglich die Berechnung für den Teil der einfachen Deltavektoren ΔC&sub1;, ΔC&sub2;, ΔC&sub3; ... sowie die zyklische Addition der Ergebnisse zu C&sub1; durchzuführen.
- Angemerkt sei, daß die Codevektoren Ci-1 und Ci von Fig. 5 beispielhaft als dünnbesetzte Vektoren dargestellt wurden, das heißt, die Codevektoren wurden zuvor derart verarbeitet, daß sie eine große Anzahl von Codes mit einem Abtastwert von Null enthalten. Das Verfahren dünnbesetzter Codevektoren ist bekannt.
- Im einzelnen werden Deltavektor-Gruppen nacheinander derart in einem Deltavektor- Verzeichnis 11 (wird später erwähnt werden) gespeichert, daß die Differenz zwischen jegliche zwei benachbarten Codevektoren Ci-1 und Ci zum einfachen Deltavektor ΔCi wird.
- Figur 6 ist ein Blockschaltbild, welches den Teil der Codeverzeichnis- Wiederauffindungs-Verarbeitung auf der Grundlage der ersten Ausführungsform mit mehr Einzelheiten zeigt. Grundsätzlich beruht die Anordnung auf der zuvor erwähnten Fig. 3. Jedoch zeigt Fig. 6 ein Beispiel der Anwendung auf einen Sprachcodierer des bekannten CELP-Typs mit sequentieller Optimierung. Daher ist anstelle des Eingabe- Sprachsignals AX (Fig. 3) der wahrnehmungsgewichtete Anstiegs-Prädiktions- Abweichungs-Signalvektor AY dargestellt, aber dies hat keine Auswirkungen auf die Erläuterung der Erfindung. Ferner ist die Berechnungseinrichtung 19 dargestellt, aber die ist eine vorgeschaltete Verarbeitungsstufe, verbunden mit der Verschiebung des linearen Prädiktionsanalysefilters 3 von der in Fig. 3 dargestellten Position zur in Fig. 6 dargestellten Position, und ist für das Verständnis der vorliegenden Erfindung nicht von Bedeutung.
- Das Element, das dem Teil zur Erzeugung der Kreuzkorrelation RXC in Fig. 3 entspricht, ist die Kreuzkorrelations-Berechnungseinheit 12 von Fig. 6. Das Element, das dem Teil zur Erzeugung der Autokorrelation RCC in Fig. 3 entspricht, ist die Autokorrelations- Berechnungseinheit 13 von Fig. 6. In der Kreuzkorrelations-Berechnungseinheit 12 ist die Einrichtung zum zyklischen Addieren 20 zur Realisierung der vorliegenden Erfindung als Additionseinheit 14 und Verzögerungseinheit 15 dargestellt. In entsprechender Weise ist in der Autokorrelations-Berechnungseinheit 13 die Einrichtung zum zyklischen Addieren 20 zur Realisierung der vorliegenden Erfindung als Additionseinheit 16 und Verzögerungseinheit 17 dargestellt.
- Der unbedingt zu erwähnende Punkt ist das Deltavektor-Codeverzeichnis 11 von Fig. 6. Die Codevektoren C&sub0;, C&sub1;, C&sub2;, ... werden nicht im Rauschcodeverzeichnis 1 von Fig. 3 gespeichert. Statt dessen werden nach dem Anfangsvektor C&sub0; die Deltavektoren ΔC&sub1;, ΔC&sub2;, ΔC&sub3;, ..., also die Differenzen zum jeweils vorhergehenden Vektor, gespeichert.
- Wenn zu Beginn der Anfangsvektor C&sub0; berechnet wird, werden die Berechnungsergebnisse in der Verzögerungseinheit 15 (das gleiche gilt für die Verzögerungseinheit 17) gehalten und zurückgeleitet, um von der Additionseinheit 14 (das gleiche gilt für die Additionseinheit 16) zum nächsten ankommenden Deltavektor ΔC&sub1; addiert zu werden. Nachdem all dies in der gleichen Weise abgeschlossen wurde, entspricht die durchgeführte Verarbeitung dem herkömmlichen Verfahren, bei welchem die Berechnungen für die Codevektoren C&sub1;, C&sub2;, C&sub3;, ... separat durchgeführt werden.
- Dies soll nachfolgend mit mehr Einzelheiten erläutert werden. Der wahrnehmungsgewichtete Anstiegs-Prädiktions-Abweichungs-Signalvektor AY wird mittels der Berechnungseinrichtung 21 zu ATAY transformiert, die Deltavektoren ΔC des Deltavektor-Codeverzeichnisses 11 werden zur Multiplikation an die Kreuzkorrelations- Berechnungseinheit 12 gegeben, und der vorhergehende Korrelationswert (ACi-1)TAY wird zyklisch addiert, so daß der Korrelationswert (AC)TAY von beiden erzeugt wird.
- Das heißt, da Ci-1 + ΔCi = Ci ist, wird folgende Berechnung angewandt:
- wodurch der gegenwärtige Korrelationswert (AC)TAY erzeugt und der Abweichungsleistungs-Bewertungseinheit 5 zugeführt wird.
- Ferner werden, wie in Fig. 6 dargestellt, in der Autokorrelations-Berechnungseinheit 13 die Deltavektoren ΔC zyklisch zu den vorhergehenden Codevektoren Ci-1 addiert, um auf diese Weise die Codevektoren Ci zu erzeugen, und nach der wahrnehmungsgewichteten Reproduktion werden die Autokorrelationswerte (AC)TAC der Codevektoren AC gefunden und an die Bewertungseinheit 5 gegeben.
- Daher reicht es aus, in der Kreuzkorrelationseinheit 12 und in der Autokorrelationseinheit 13 die Multiplikation mit den dünnbesetzten Deltavektoren durchzuführen, wodurch der Berechnungsaufwand drastisch gesenkt werden kann.
- Figur 7 ist ein Blockschaltbild, welches den Teil der Codeverzeichnis- Wiederauffindungs-Verarbeitung auf der Grundlage der ersten Ausführungsform unter Verwendung eines anderen Beispieles mit mehr Einzelheiten zeigt. Es zeigt den Fall der Anwendung auf einen bekannten Sprachcodierer vom CELP-Typ mit Simultanoptimierung. In dieser Figur beziehen sich auch die erste und zweite Berechnungseinrichtung 19-1 und 19-2 nicht direkt auf die vorliegende Erfindung. Anzumerken ist, daß die Kreuzkorrelations-Berechnungseinheit 12 die Verarbeitung parallel, unterteilt in das Eingabe-Sprachsystem und den Anstieg P (zuvor erwähnte Periode) durchführt, was in der ersten und zweiten Kreuzkorrelations-Berechnungseinheit 12-1 und 12-2 erfolgt.
- Der Eingabe-Sprachsignalvektor AX wird durch die erste Berechnungseinrichtung 19-1 in ATAX umgewandelt, und der Anstiegs-Prädiktions-Differentialvektor AP wird durch die zweite Berechnungseinrichtung 19-2 in ATAP umgewandelt. Die Deltavektoren ΔC werden durch die erste und zweite Kreuzkorrelations-Berechnungseinheit 12-1 und 12-2 multipliziert und zyklisch addiert, um (AC)TAX sowie (AC)TAP zu erzeugen. Ferner erzeugt die Autokorrelations-Berechnungseinheit 13 in entsprechender Weise (AC)TAC und gibt diesen Wert an die Bewertungseinheit 5. Dieser Berechnungsumfang reicht speziell für die Deltavektoren aus.
- Figur 8 ist eine Darstellung, welche ein anderes Beispiel der Autokorrelations- Berechnungseinheit zeigt. Die in den Figuren 6 und 7 dargestellte Autokorrelations- Berechnungseinheit 13 kann genausogut durch eine andere Anordnung realisiert werden. Der hier dargestellte Rechner 21 ist so konstruiert, daß er die im Analysefilter 3 sowie in der Autokorrelations-Berechnungseinheit 8 in den Figuren 6 und 7 erforderliche Multiplikation mit einer einzigen Multiplikation durchführt.
- Im Computer 21 werden die vorhergehenden Codevektoren Ci-1 sowie die wahrnehmungsgewichteten Korrelationswerte ATA der Matrix A gespeichert. Die Berechnung mit den Deltavektoren ΔCi sowie die zyklische Addition werden von der Additionseinheit 16 beziehungsweise von der Verzögerungseinheit 17 (zyklische Additionseinrichtung 20) durchgeführt, wodurch es möglich ist, die Autokorrelationswerte (AC)TAC zu finden.
- Das heißt, weil Ci-1 + ΔCi = Ci ist, werden entsprechend der folgenden Gleichung:
- die Korrelationswerte ATA und der vorhergehende Codevektor Ci-1 gespeichert und die laufenden Autokorrelationswerte (AC)TAC erzeugt und können der Bewertungseinheit 5 zuleitet werden.
- Wenn dies erfolgt ist, dann umfaßt der Vorgang nur noch die Multiplikation von ATA, ΔCi und Ci-1. Wie schon früher bemerkt, besteht, wie in den Figuren 6 und 7 dargestellt, kein Bedarf für zwei Multiplikationsvorgänge mehr und der Umfang der Berechnungen kann entscheidend eingeschränkt werden.
- Figur 9 ist ein Blockschaltbild, welches den Teil der Codeverzeichnis- Wiederauffindungs-Verarbeitung nach der ersten Ausführungsform unter Verwendung eines anderen Beispieles mit mehr Einzelheiten zeigt. Grundsätzlich entspricht es der zu zuvor erläuterten Fig. 3, aber Fig. 9 zeigt ein Beispiel der Anwendung auf einen Sprachcodierer vom CELP-Typ mit Anstiegs-Orthogonaltransformations-Optimierung.
- In Fig. 9 ist der nach der Berechnungseinrichtung 19' angeordnete Block 22 eine Zeitumkehr-Orthogonaltransformations-Einheit. Die zeitumgekehrten wahrnehmungsgewichteten Eingabe-Sprachsignalvektoren ATAX werden durch die Berechnungseinheit 19' aus den wahrnehmungsgewichteten Eingabe- Sprachsignalvektoren AX berechnet, dann werden durch die Zeitumkehr- Orthogonaltransformations-Einheit 22 die zeitumgekehrten orthogonal transformierten Eingabe-Sprachsignalvektoren (AH)TAX bezüglich des optimalen wahrnehmungsgewichteten Anstiegs-Prädiktions-Differentialvektors AP berechnet. Die Berechnungseinheit 19' und die Zeitumkehr-Orthogonaltransformations-Einheit 22 betreffen jedoch nicht direkt den Erfindungsgedanken.
- In der Kreuzkorrelations-Berechnungseinheit 12 wird, ähnlich wie im Falle der Figuren 6 und 7, die Multiplikation mit den Deltavektoren ΔC sowie die zyklische Addition durchgeführt, und die Korrelationswerte (AHC)TAX werden an die Bewertungseinheit 5 gegeben. H ist die Matrix, welche die Orthogonaltransformation ausdrückt.
- Die Berechnung wird zu diesem Zeitpunkt zu:
- Andererseits werden in der Autokorrelations-Berechnungseinheit 13 die Deltavektoren ΔCi des Deltavektor-Codeverzeichnisses 11 durch die Additionseinheit 16 und die Verzögerungseinheit 17 zyklisch addiert, um die Codevektoren Ci zu erzeugen, die wahrnehmungsgewichteten und orthogonal transformierten Codevektoren AHC = AC' werden zum optimalen Zeitpunkt in Bezug auf den wahrnehmungsgewichteten (A) Anstiegs-Prädiktions-Differentialvektor AP berechnet, und die Autokorrelationswerte (AHC)TAHC = (AC')TAC' der wahrnehmungsgewichteten, orthogonal transformierten Codevektoren AHC werden gefunden
- Sogar wenn die Anstiegs-Orthogonaltransformations-Optimierung durchgeführt wird, ist es möglich, den Umfang der Berechnung durch die Deltavektoren in der gleichen Weise deutlich zu vermindern.
- Figur 10 zeigt ein anderes Beispiel der Autokorrelations-Berechnungseinheit. Die in Fig. 9 dargestellte Autokorrelations-Berechnungseinheit 13 kann genausogut durch eine andere Anordnung realisiert werden. Diese entspricht der Anordnung der oben erwähnten Fig. 8.
- Der hier dargestellte Rechner 23 kann die Multiplikationsvorgänge, die im Analysefilter (AH)3' und in der Autokorrelations-Berechnungseinheit 8 in Fig. 9 erforderlich sind, in einem einzigen Multiplikationsvorgang durchführen.
- Im Rechner 23 werden die vorhergehenden Codevektoren Ci-1 und die orthogonal transformierten sowie wahrnehmungsgewichteten AH-Matrix-Korrelationswerte (AH)TAH gespeichert, die Berechnung mit den Deltavektoren ΔCi wird durchgeführt, und schließlich wird die zyklische Addition durch die Additionseinheit 16 sowie die Verzögerungseinheit 17 durchgeführt, wodurch es möglich ist, die Autokorrelationswerte zu finden, welche umfassen:
- und es ist möglich, den Rechenaufwand beträchtlich zu senken. Hier wird H entsprechend dem optimalen AP geändert.
- Die oben erwähnte erste Ausführungsform ergab die in einem herkömmlichen Rauschcodeverzeichnis 1 gespeicherten Codevektoren C&sub1;, C&sub2;, C&sub3; in virtueller Weise durch lineare Akkumulation der Deltavektoren ΔC&sub1;, ΔC&sub2;, ΔC&sub3; ... In diesem Falle werden die Deltavektoren dünner besetzt, indem beispielsweise vier Abtastungen von 40 Abtastungen als signifikante Daten genommen werden (Abtastdaten, deren Wert ungleich Null ist). Außer dieser werden jedoch keine speziellen Regeln für die Einstellung von Deltavektoren gegeben.
- Die zweite erläuterte Ausführungsform erzeugt die Deltavektor-Gruppen nach einer speziellen Regel, um zu prüfen, ob der für die Codeverzeichnis-Wiederauffindungs- Verarbeitung erforderliche Rechenaufwand tatsächlich wesentlich reduziert wird. Weiterhin hat die zweite Ausführungsform den Vorteil, daß es möglich ist, die Größe des Speichers im Deltavektor-Codeverzeichnis 11 wesentlich zu vermindern. Nachfolgend soll die zweite Ausführungsform mit mehr Einzelheiten erläutert werden.
- Figur 11 ist eine Darstellung, welche die grundsätzliche Anordnung der zweiten Ausführungsform auf der Grundlage der vorliegenden Erfindung zeigt. Die Konzeption der zweiten Ausführungsform ist in der oberen Hälfte von Fig. 11 anschaulich dargestellt. Die Deltavektoren zur Erzeugung der virtuell gebildeten, beispielsweise 1024 Muster von Codevektoren werden in einer Baumstruktur mit einer gewissen Regelmäßigkeit mit Plus- oder Minus-Polarität angeordnet. Dadurch ist es möglich, die Filterberechnung und die Korrelationsberechnung in die Berechnung von genau (L - 1) (wobei L beispielsweise 10 ist) Deltavektoren aufzulösen und den Berechnungsumfang stark zu vermindern.
- In Fig. 11 bezeichnet die Bezugszahl 11 ein Deltavektor-Codeverzeichnis, welches eine Referenz-Rauschfolge speichert, das heißt, den Anfangsvektor C&sub0; und die (L - 1) Typen von Differential-Rauschfolgen, nämlich die Deltavektoren ΔC&sub1; bis ΔCL-1 (wobei L die Anzahl der Stufen der Baumstruktur ist, L = 10). Die Bezugszahl 3 bezeichnet das oben erwähnte lineare Prädiktionsanalysefilter (LPC-Filter) zur Durchführung der Filterberechnungsverarbeitung, welche die Sprechpfad-Charakteristiken simuliert. Mit 31 ist eine Speichereinheit bezeichnet zum Speichern der Filterausgabe AC&sub0; des Anfangsvektors sowie der Filterausgaben AΔC&sub1; bis AΔCL-1 der (L - 1) Typen den Datenvektoren ΔC, die bei der Durchführung der Filterberechnungsverarbeitung am Anfangsvektor C&sub0; und an den (L - 1) Typen von Deltavektoren ΔC&sub1; bis ΔCL-1 durch das Filter 3 erhalten wurden. Mit 12 ist die zuvor erwähnte Kreuzkorrelations- Berechnungseinheit bezeichnet, welche die Kreuzkorrelation RXC (= (AX)T(AC)) berechnet. Mit 13 ist die zuvor erwähnte Autokorrelations-Berechnungseinheit bezeichnet, welche die Autokorrelation RCC (= (AC)T(AC)) berechnet. Mit 10 ist die oben erwähnte Abweichungsleistungs-Bewertungs- und Bestimmungseinheit bezeichnet, welche zur Bestimmung derjenigen Rauschfolge (Codevektor) dient, welche das größte Verhältnis RXC²/RCC ergibt, das heißt die kleinste Abweichungsleistung und mit 30 ist schließlich eine Sprachcodierungseinheit bezeichnet, welche das Eingabe-Sprachsignal durch Daten (Code) codiert, welche die Rauschfolge (den Codevektor) mit der kleinsten Abweichungsleistung angeben. Die Arbeitsweise des Codierers ist folgende:
- Eine vorgegebene einzelnen Referenz-Rauschfolge, nämlich der Anfangsvektor C&sub0; sowie (L - 1) Typen von Delta-Rauschfolgen aus den Deltavektoren ΔC&sub1; bis ΔCL-1 (L = 10) werden im Deltavektor-Codeverzeichnis 11 gespeichert. Die Deltavektoren ΔC&sub1; bis ΔCL-1 werden für jede Schicht zum Anfangsvektor C&sub0; addiert (+) und von diesem subtrahiert (-), um die (2 - 1) Typen von Rauschfolgen-Codevektoren C&sub0; bis C&sub1;&sub0;&sub2;&sub2; nacheinander in einer Baumstruktur auszudrücken. Um die 2¹&sup0; Muster der Codevektoren C&sub0; bis C&sub1;&sub0;&sub2;&sub3; auszudrücken, wird ferner ein Nullvektor oder C&sub0;-Vektor zu diesen Codevektoren addiert. Wenn dies erfolgt ist, ist es durch bloßes Speichern des Anfangsvektors C&sub0; und der (L - 1) Typen von Deltavektoren ΔC&sub1; bis ΔCL-1 (L = 10) in das Deltavektor-Codeverzeichnis 11 möglich, nacheinander 2L - 1 (=2¹&sup0; - 1 = M - 1) Typen von Codevektoren oder 2L (= 2¹&sup0; = M) Typen von Codevektoren zu erzeugen. Es ist möglich, die Speichergröße des Deltavektor-Codeverzeichnisses 11 auf L N (= 10 N) zu beschränken und es ist möglich, die Speichergröße im Vergleich zur Speichergröße von M N (= 1024 N) des herkömmlichen Rauschcodeverzeichnisses 1 beträchtlich zu vermindern.
- Weiterhin führt das Analysefilter 3 die Analysefilterverarbeitung am Anfangsvektor C&sub0; und an den (L - 1) Typen von Deltavektoren ΔC&sub1; bis ΔCL-1 durch, um die Filterausgabe AC&sub0; des Anfangsvektors sowie die Filterausgaben AΔC&sub1; bis AΔCL-1 (L = 10) der (L - 1) Typen von Deltavektoren zu finden, welche in der Speichereinheit 31 gespeichert werden. Ferner werden durch Addieren und Subtrahieren der Filterausgabe AΔC&sub1; des ersten Deltavektors bezüglich der Filterausgabe AC&sub0; des Anfangsvektors C&sub0; die Filterausgaben AC&sub1; und AC&sub2; für zwei Typen von Rauschfolgen-Codevektoren C&sub1; und C&sub2; berechnet. Durch Addieren und Subtrahieren der Filterausgabe AΔC&sub2; des zweiten Deltavektors bezüglich der Filterausgaben AC&sub1; und AC&sub2; werden neue Rauschfolgen- Codevektoren berechnet. Die Filterausgaben AC&sub3; und AC&sub6; für zwei Typen von Rauschfolgen-Codevektoren C&sub3; und C&sub4; sowie die Codevektoren C&sub5; und C&sub6; werden berechnet. Unten werden in entsprechender Weise die Filterausgabe AΔCi-1 des (i - 1)- ten Deltavektors sowie die Filterausgabe AΔCi des i-ten Deltavektors zur Wirkung auf die berechnete Filterausgabe Ack veranlaßt. Die Filterausgaben AC2k-1 und AC2k+2 für die beiden Rauschfolgen-Codevektoren werden berechnet, wodurch die Filterausgaben für alle Codevektoren erzeugt werden. Indem dies geschieht, können die Analysefilter- Berechnungsverarbeitung der Codevektoren C&sub0; bis C&sub1;&sub0;&sub2;&sub2; auf die Analysefilter- Berechnungsverarbeitung des Anfangsvektors C&sub0; und der (L - 1) (L = 10) Typen von Deltavektoren ΔC&sub1; bis ΔCL-1 (L = 10) sowie die Anzahl von
- NP N M = 1024 NP N
- erforderlichen Multiplikationen und Akkumulationsvorgängen, die früher zur Filterverarbeitung erforderlich war, auf eine Anzahl von
- NP N L (= 10 NP N)
- Multiplikations- und Akkumulationsvorgängen reduziert werden.
- Weiterhin wird durch die Abweichungsleistungs-Bewertungs- und Bestimmungseinheit 10 die Rauschfolge (der Codevektor) ermittelt, welche die geringste Abweichungsleistung ergibt und der Code, welcher den Codevektor angibt, wird durch die Sprachcodierungseinheit 30 zur Sprachcodierung ausgegeben. Die Verarbeitung zum Finden des Codevektors, der die kleinste Abweichungsleistung ergibt, wird darauf reduziert, den Codevektor zu finden, der das größte Verhältnis des Quadrates der Kreuzkorrelation RXC (= XTAC, wobei T eine transponierte Matrix ist) zwischen der Analysefilter-Berechnungsausgabe AC und dem Eingabe-Sprachsignalvektor AX sowie der Autokorrelation RCC (=(AC)(AC)) der Ausgabe des Analysefilters ergibt. Weiterhin werden die Analysefilter-Berechnungsausgabe Ack der vorhergehenden Schicht und die gegenwärtige Deltavektor-Filterausgabe AΔCi verwendet, um die Analysefilter- Berechnungsausgaben AC2k+1 und AC2k+2 durch die nachfolgenden Rekursionsformeln zu berechnen:
- AC2k+1 = ACk + AΔCi
- AC2k+2 = ACk - AΔCi (12)
- Die Kreuzkorrelationen RXC(2k+2) und RXC(2k-2) werden durch die folgenden Rekursionsformeln ausgedrückt:
- RXC(2k+1) = RXC(k) + (AX)T(AΔCi)
- RXC(2k+2) = RXC(k) - (AX)T(AΔCi) (13)
- wobei die Kreuzkorrelation RXC(k) einer Schicht früher verwendet wird, um die gegenwärtige Kreuzkorrelation RXC(2k+1) und RXC(2k+2) mit der Kreuzkorrelations- Berechnungseinheit 12 zu berechnen. Wenn dies erfolgt ist, dann ist es möglich, die Kreuzkorrelationen zwischen den Filterausgaben aller Codevektoren und dem Eingabe- Sprachsignal AX allein durch die Berechnung des zweiten Terms auf der rechten Seite zu berechnen. Das heißt, während es in der Vergangenheit notwendig war M N (= 1024 N) Multiplikations- und Akkumulationsvorgänge durchzuführen, um die Kreuzkorrelation zu erhalten, ist es jetzt möglich, L N (= 10 N) Multiplikations- und Akkumulationsvorgänge durchzuführen und auf diese Weise die Anzahl der Berechnungen gewaltig zu reduzieren.
- Ferner ist die Autokorrelations-Berechnungseinheit 13 so konstruiert, daß sie die gegenwärtigen Kreuzkorrelationen RCC(2k+1) und RCC(2k+2) unter Verwendung von RCC(k) aus einer Schicht früher berechnet. Wenn dies erfolgt ist, dann ist es möglich, die Autokorrelationen RCC unter Verwendung der Gesamtzahl von L Autokorrelationen (AC&sub0;)² und (AΔC&sub1;)² bis (AΔCL-1) der Filterausgabe AC&sub0; des Anfangsvektors sowie der Filterausgaben AΔC&sub1; bis AΔCL-1 der (L - 1) Typen von Deltavektoren sowie die (L² - 1)/2 Kreuzkorrelationen mit den Filterausgaben AC&sub0; und ΔAC&sub1; bis AΔCL-1 zu berechnen. Das bedeutet: Während früher M N (= 1024 N) Multiplikations- und Akkumulationsvorgänge notwendig waren, um die Autokorrelation zu erhalten, ist es jetzt möglich geworden, sie mit genau L(L + 1) N/2 (= 55 N) Multiplikations- und Akkumulationsvorgängen zu erhalten, wodurch die Anzahl der Berechnungen gewaltig gesenkt werden kann.
- Figur 12 ist eine Darstellung, welche die zweite Ausführungsform von Fig. 11 mit mehr Einzelheiten zeigt. Wie schon früher bemerkt, ist 11 das Deltavektor-Codeverzeichnis zum Speichern und Halten des Anfangsvektors C&sub0;, welcher die einzelne Referenz- Rauschfolge ausdrückt, sowie der Deltavektoren ΔC&sub1; bis ΔCL-1 (L = 10), welche die (L - 1) Typen von Differential-Rauschfolgen ausdrücken. Der Anfangsvektor C&sub0; und die Deltavektoren ΔC&sub1; bis ΔCL-1 (L = 10) werden in N Dimensionen ausgedrückt. Das heißt, der Anfangsvektor und die Deltavektoren sind N-dimensionale Vektoren, die durch Codierung der Amplituden von N abgetasteten Rauschproben erhalten wurden, die in einer Zeitfolge erzeugt wurden. Die Bezugszahl 3 bezeichnet das zuvor erwähnte lineare Prädiktionsanalysefilter (LPC-Filter), welches eine Filterberechnungsverarbeitung durchführt, die die Sprechpfad-Charakteristiken simuliert. Es enthält ein IIR-Filter (unendliche Impulsantwort) von NP-ter Ordnung. Um die Analysefilterverarbeitung am Codevektor C durchzuführen, werden eine N x N-Quadratmatix A- und eine Codevektor C-Berechnung durchgeführt. Die Anzahl NP der Koeffizienten des Filters vom IIR-Typ unterscheidet sich auf Grund des Eingabe-Sprachsignals AX und wird bei jedem Erscheinen nach einem bekannten Verfahren bestimmt. Das heißt, es gibt eine Korrelation zwischen nebeneinanderliegenden Abtastungen des Eingabe-Sprachsignals, so daß ein Korrelationskoeffizient zwischen den Abtastungen gefunden wird. Der teilweise Autokorrelationskoeffizient, auch als Parcor-Koeffizient bekannt, wird aus diesem Korrelationskoeffizienten gefunden. Der α-Koeffizient des IIR-Filters wird aus dem Parcor-Koeffizienten bestimmt, die N x N-Quadratmatrix A wird unter Verwendung der Impulsantwortfolge des Filters erstellt und die Analysefilterverarbeitung am Codevektor durchgeführt.
- Die Bezugszahl 31 bezeichnet eine Speichereinheit zum Speichern der bei der Durchführung der Filterberechnungsverarbeitung am Anfangsvektor C&sub0; erhaltenen Filterausgaben AC&sub0; sowie AΔC&sub1; bis AΔCL-1, welche die Referenz-Rauschfolge ausdrücken sowie die Deltavektoren ΔC&sub1; bis ΔCL-1, welche L - 1 Typen von Delta- Rauschfolgen ausdrücken. Die Bezugszahl 12 bezeichnet eine Kreuzkorrelations- Berechnungseinheit zur Berechnung der Kreuzkorrelation RXC (= (AX)T(AC)). Die Bezugszahl 13 bezeichnet eine Autokorrelations-Berechnungseinheit zur Berechnung der Kreuzkorrelation RCC (=(AC)T(AC)) und die Bezugszahl 38 bezeichnet eine Berechnungseinheit zur Berechnung des Verhältnisses zwischen dem Quadrat der Kreuzkorrelation und der Autokorrelation.
- Die Abweichungsleistung E ² wird durch die oben erwähnte Gleichung (3) ausgedrückt, so daß der Codevektor C, welcher die kleinste Abweichungsleistung ergibt, den größten zweiten Term auf der rechten Seite von Gleichung (3) hat. Daher ist die Berechnungseinheit 38 mit Quadratberechnungseinheit 7 und der Divisionseinheit 9 versehen und berechnet die folgende Gleichung:
- F(X, C) = RXC²/RCC (14)
- Die Bezugszahl 10 bezeichnet, wie schon früher erläutert wurde, die Abweichungsleistungs-Bewertungs- und Bestimmungseinheit, welche diejenige Rauschfolge (den Codevektor) bestimmt, die das größte Verhältnis RXC²/RCC oder mit anderen Worten, die kleinste Abweichungsleistung ergibt. Die Bezugszahl 30 bezeichnet eine Sprachcodierungseinheit, welche die Eingabe-Sprachsignale mit einem Code codiert, der die Rauschfolge (den Codevektor) angibt, die die kleinste Abweichungsleistung ergibt.
- Figur 13 ist eine Darstellung zur Erläuterung der Baumstruktur-Anordnung von Deltavektoren, welche die zweite Ausführungsform charakterisiert. Das Deltavektor- Codeverzeichnis 11 speichert einen einzelnen Anfangsvektor C&sub0; und (L - 1) Typen von Deltavektoren ΔC&sub1; bis ΔCL-1 (L = 10). Die Deltavektoren ΔC&sub1; bis ΔCL-1 werden in jeder Schicht bezüglich des Anfangsvektors C&sub0; addiert (+) oder subtrahiert (-), um so (2¹&sup0; - 1) Typen von Codevektoren C&sub0; bis C&sub1;&sub0;&sub2;&sub2; nacheinander in einer Baumstruktur auszudrücken. Zu diesen Codevektoren werden Nullvektoren (Alle Abtastwerte N-dimensionaler Abtastungen sind Null) addiert, um 2 Codevektoren C&sub0; bis C&sub1;&sub0;&sub2;&sub3; auszudrücken. Wenn dies getan ist, dann können die Beziehungen zwischen den Codevektoren wie folgt ausgedrückt werden:
- (wobei I die erste Schicht, II die zweite Schicht, III die dritte Schicht und XX die zehnte Schicht ist) und im allgemeinen kann dies durch die Rekursionsformeln:
- C2k+1 = Ck + ΔCi (16)
- C2k+2 = Ck - ΔCi (17)
- ausgedrückt werden.
- Das heißt, daß durch Speichern gerade des Anfangsvektors C&sub0; und von (L - 1) Typen von Deltavektoren ΔC&sub1; bis ΔCL-1 (L = 10) im Deltavektor-Codeverzeichnis 11 ist es möglich, nacheinander irgendeinen von 2L (= 2¹&sup0;) Typen von Rauschfolgen- Codevektoren virtuell zu erzeugen. Es ist möglich, die Speichergröße des Deltavektor- Codeverzeichnisses 11 auf L N (= 10 N) zu beschränken, wodurch sich gegenüber der Speichergröße von N N (= 1024 N) eines herkömmlichen Rauschcodeverzeichnisses eine gewaltige Reduzierung ergibt.
- Als Nächstes soll eine Erläuterung der Filterverarbeitung im linearen Prädiktionsanalysefilter (A) (Filter 3 in Fig. 12) am Codevektor C2k+1 und C2k+2, allgemein ausgedrückt durch die obigen Gleichungen (16) und (17), erfolgen.
- Die Analysefilterberechnung gibt bezüglich der Codevektoren C2k+1 und C2k+2 die Werte AC2k+1 und AC2k+2 aus. Sie können durch die Rekursionsformeln
- AC2k+1 = A(Ck + ΔCi) = ACk + AΔCi (18)
- AC2k+2 = A(Ck - ΔCi) = ACk - AΔCi (19)
- ausgedrückt werden, wobei i = 1, 2, L - 1, 2i-1 ≤ k < 2i - 1 ist. Wenn daher die Filteranalyseverarbeitung durch das Analysefilter 3 am Anfangsvektor C&sub0; sowie an den (L - 1) Typen von Deltavektoren ΔC&sub1; bis ΔCL-1 (L = 10) durchgeführt wird und die Filterausgabe AC&sub0; des Anfangsvektors sowie die Filterausgaben AΔC&sub1; bis AΔCL-1 (L = 10) der (L - 1) Typen von Deltavektoren gefunden und in der Speichereinheit 31 gespeichert werden, gelingt es, die Filterverarbeitung der Codevektoren aller Rauschfolgen, wie unten angegeben, zu vermindern:
- Das heißt:
- (1) Durch Addition und Subtraktion der Filterausgabe AΔC&sub1; des ersten Deltavektors zu der bzw. von der Filterausgabe AC&sub0; des Anfangsvektors ist es möglich, die Filterausgaben AC&sub1; und AC&sub2; der Codevektoren C&sub1; und C&sub2; von zwei Typen von Rauschfolgen zu berechnen.
- (2) Ferner ist es durch Addition und Subtraktion der Filterausgabe AΔC&sub2; des zweiten Deltavektors zu den bzw. von den beiden neu berechneten Filterausgaben AC&sub1; und AC&sub2; möglich, die Filterausgaben AC&sub3; bis AC&sub6;, also von insgesamt vier Typen, nämlich der Codevektoren C&sub3;, C&sub4;, C&sub5; und C&sub6; zu berechnen.
- (3) Danach ist es möglich, durch Einwirken der Filterausgabe AΔCi des i-ten Deltavektors auf die Filterausgabe ACk, die durch Einwirken der Filterausgabe AΔCi-1 des (i - 1)-ten Deltavektors berechnet wurde und durch Berechnung der jeweiligen beiden Typen von Filterausgaben AC2k+1 und AC2k+2 Filterausgaben für die Codevekoren aller 2L (= 2¹&sup0;) Rauschfolgen zu erzeugen.
- Das heißt, durch die Anwendung des Baumstruktur-Deltavektor-Codeverzeichnisses 11 der vorliegenden Erfindung wird es möglich, die Filterverarbeitung der Codevektoren mittels der oben genannten Gleichungen (18) und (19) rekursiv durchzuführen. Gerade durch die Durchführung der Analysefilterverarbeitung am Anfangsvektor C&sub0; sowie an den (L - 1) Typen von Deltavektoren AC&sub1; bis ACL-1 (L = 10) sowie die Addition unter Wechsel der Polaritäten (+, -) wird die Filterverarbeitung aller Rauschfolgen erreicht.
- Wie später bemerkt wird, ist im Falle des Deltavektor-Codeverzeichnisses 11 der zweiten Ausführungsform bei der Berechnung der Kreuzkorrelation RXC und der Autokorrelation RCC die Filterberechnungsausgabe für alle Codevektoren tatsächlich unnötig. Es reicht aus, wenn nur die Ergebnisse der Filterberechnungsverarbeitung für den Anfangsvektor C&sub0; und die (L - 1) Typen von Deltavektoren ΔC&sub1; bis ΔCL-1 (L = 10) erhalten werden.
- Daher kann die frühere Analysefilter-Berechnungsverarbeitung an den Codevektoren C&sub0; bis C&sub1;&sub0;&sub2;&sub3; (Rauschcodeverzeichnis 1) auf die Analysefilter-Berechnunsgverarbeitung des Anfangsvektors C&sub0; und die (L - 1) Typen von Deltavektoren ΔC&sub1; bis ΔCL-1 (L = 10) beschränkt werden. Während die Filterverarbeitung in der Vergangenheit eine Anzahl von
- NP N M (= 1024 NP N)
- Multiplikations- und Akkumulationsvorgängen erforderte, kann diese Anzahl daher bei der vorliegenden Ausführungsform auf
- N N L (= 10 NP N)
- Multiplikations- und Akkumulationsvorgänge reduziert werden.
- Als nächstes soll die Berechnung der Kreuzkorrelation RXC erläutert werden.
- Wenn die Analysefilterberechnung die Werte AC2k+1 und AC2k+2 ausgibt, die mittels Rekursionsformeln, wie denjenigen die in den Gleichungen (18) und (19) dargestellt sind, unter Verwendung einer vorangegangenen Analysefilter-Berechnungsausgabe Ack sowie der Filterausgabe AΔCi des gegenwärtigen Deltavektors ausgedrückt werden, dann können die Kreuzkorrelationen RXC(2k+1) und RXC(2k+2) durch die nachstehenden Rekursionsformeln ausgedrückt werden:
- Daher ist es möglich, die gegenwärtigen Kreuzkorrelationen RXC(2k+1) und RXC(2k+2) unter Verwendung der Kreuzkorrelation RXC(δ) einer vorhergehenden Schicht mittels der Kreuzkorrelations-Berechnungseinheit 12 zu berechnen. Wenn dies erfolgt ist, dann reicht es aus, lediglich die Kreuzkorrelationsberechnung des zweiten Terms auf der rechten Seite der Gleichungen (20) und (21) durchzuführen, um die Kreuzkorrelation zwischen den Filterausgaben der Codevektoren aller Rauschfolgen und des Eingabe- Sprachsignals AX zu berechnen. Das heißt, während die herkömmliche Berechnung der Kreuzkorrelation eine Anzahl von
- M N (= 1024 N)
- Multiplikations- und Akkumulationsvorgängen erforderte, ist dies entsprechend der zweiten Ausführungsform mit gerade
- L N (= 10 N)
- Multiplikations- und Akkumulationsvorgänge möglich und, demzufolge kann die Anzahl der Berechnungen drastisch reduziert werden.
- Es ist anzumerken, daß die Bezugszahl 6 in Fig. 12 eine Multiplikationseinheit bezeichnet, um die rechte Seite des zweiten Terms (AX)T(AΔCi) der Gleichungen (20) und (21) zu berechnen. Die Bezugszahl 35 bezeichnet eine Polaritätseingabeeinheit zur Erzeugung von + 1 und - 1. Die Bezugszahl 36 bezeichnet eine Multiplikationseinheit zur Multiplikation der Polarität + 1 um die Polarität des zweiten Terms auf der rechten Seite vorzugeben. Die Bezugszahl 15 bezeichnet die oben erwähnte Verzögerungseinheit, um der vorhergehenden Korrelation RXC(k) eine vorgegebene Zeit einer Speicherverzögerung zu erteilen, und die Bezugszahl 14 bezeichnet die oben erwähnte Additionseinheit zur Durchführung der Addition des ersten Terms und des zweiten Terms auf der rechten Seite der Gleichungen (20) und (21), um die gegenwärtigen Kreuzkorrelationen RXC(2k+1) und RXC(2k+2) auszugeben.
- Als nächstes soll die Berechnung der Autokorrelation RCC erläutert werden.
- Wenn die Analysefilterberechnung AC2k+1 und AC2k+2 ausgibt. welche, wie in den obigen Gleichungen (18) und (19) gezeigt, durch Rekursionsformeln aus der Analysefilter-Berechnungsausgabe der einen vorigen Schicht ACk und dem gegenwärtigen Deltavektor AΔCi ausgedrückt werden, können die Autokorrelationen RCC der Codevektoren der Rauschfolgen durch die folgenden Gleichungen ausgedrückt werden:
- Dies kann allgemein ausgedrückt werden durch:
- Das heißt, durch Addition der gegenwärtigen Kreuzkorrelation (AΔCi)T(AΔCi) von AΔCi zur Autokorrelation RCCk einer Schicht früher sowie durch Addition der Kreuzkorrelationen von AΔCi und AC&sub0; sowie von AΔCi zu AΔCi-1 unter Wechsel der Polaritäten (+, -) ist es möglich, die Kreuzkorrelationen RCC(2k+1) und RCC(2k+2) zu berechnen. Indem dies getan wird, ist es möglich, die Autokorrelationen RCC unter Verwendung der Gesamtzahl L der Autokorrelationen (AC&sub0;)² sowie (AΔC&sub1;)² bis (AΔCL-1)² der Filterausgabe AC&sub0; des Anfangsvektors und der Filterausgaben AΔC&sub1; bis AΔCL-1 der (L - 1) Typen von Deltavektoren sowie der (L² - 1)/2 Kreuzkorrelationen zwischen den Filterausgaben AC&sub0; sowie AΔC&sub1; bis AΔCL-1 zu berechnen. Das heißt, es ist möglich, die Berechnung der Kreuzkorrelation, welche in der Vergangenheit
- M N (= 1024 N)
- Multiplikations- und Akkumulationsvorgänge erforderte, durch gerade
- L(L+1) N/2 (= 55 N)
- Multiplikations- und Akkumulationsvorgänge durchzuführen, wodurch es möglich ist, die Anzahl der Berechnungsvorgänge beträchtlich zu senken. Hier ist anzumerken, daß die Bezugszahl 32 in Fig. 12 eine Autokorrelations-Berechnungseinheit zur Berechnung der Autokorrelation (AΔCi)T(AΔCi) des zweiten Terms auf der rechten Seite der Gleichungen (23) und (24) bezeichnet. Die Bezugszahl 33 bezeichnet eine Kreuzkorrelations-Berechnungseinheit zur Berechnung der Kreuzkorrelationen in den Gleichungen (23) und (24). Die Bezugszahl 34 bezeichnet eine Kreuzkorrelations- Analyseeinheit zur Addition der Kreuzkorrelationen mit vorgegebenen Polaritäten (+, -). Die Bezugszahl 16 bezeichnet die oben erwähnte Additionseinheit, welche die Autokorrelation RCC(k) der vorigen Schicht, die Autokorrelation (AΔCi)T(AΔCi) und die Kreuzkorrelationen addiert, um die Gleichungen (23) und (24) zu berechnen. Die Bezugszahl 17 bezeichnet schließlich die oben erwähnte Verzögerungseinheit, welche die Autokorrelation RCC(k) der Schicht zuvor für eine vorgegebene Verzögerungszeit speichert.
- Schließlich soll eine Erläuterung der Schaltung von Fig. 12 als Ganzes erfolgen.
- Eine zuvor ausgewählte einzelne Referenz-Rauschfolge, das heißt, der Anfangsvektor C&sub0; und die (L - 1) Typen von Differential-Rauschfolgen, das heißt, die Deltavektoren ΔC&sub1; bis ΔCL-1 (L = 10) werden im Deltavektor-Verzeichnis 11 gespeichert. Im linearen Prädiktionsanalysefilter (LPC) 3 wird die Analysefilterverarbeitung auf den Anfangsvektor C&sub0; sowie auf die (L - 1) Typen von Deltavektoren ΔC&sub1; bis ΔCL-1 angewandt, um die Filterausgaben AC&sub0; sowie AΔC&sub1; bis AΔCL-1 (L = 10) zu erhalten, und diese werden in der Speichereinheit 31 gespeichert.
- In diesem Zustand wird unter Anwendung von i = 0 die Kreuzkorrelation
- RXC(0) (= (AX)TAC&sub0;)
- in der Kreuzkorrelations-Berechnungseinheit 12 berechnet. Die Autokorrelation
- RCC(0) ( = (AC&sub0;)T(AC&sub0;))
- wird in der Autokorrelations-Berechnungseinheit 13 berechnet, und diese Werte von Kreuzkorrelation und Autokorrelation werden verwendet, um F(X, C) (= RXC²/RCC) mit der Berechnungseinheit 38 nach der oben erwähnten Gleichung (14) zu berechnen.
- Die Abweichungsleistungs-Bewertungs- und -Bestimmungseinheit 10 vergleicht den berechneten Wert F(X, C) und den bis dahin erreichten Maximalwert Fmax (Anfangswert von 0) von F(X, C). Wenn F(X, C) größer ist als Fmax, dann wird F(X, C) zu Fmax gemacht, um Fmax auf den letzten Stand zu bringen. Die Codes werden dann unter Verwendung eines Code (Index) auf den letzen Stand gebracht, um diesen einzelnen Vektor anzugeben, der Fmax ergibt.
- Wenn die oben beschriebene Verarbeitung für die Anzahl von 2i (= 2&sup0;) Codevektoren durchgeführt ist, dann wird unter Verwendung von i = 1 die Kreuzkorrelation nach der obigen Gleichung (20) berechnet (wobei k = 0 und i = 1 ist). Die Autokorrelation wird nach der obigen Gleichung (23) berechnet, und die Kreuzkorrelation sowie die Autokorrelation werden verwendet, um die obige Gleichung (14) mittels der Berechnungseinheit 38 zu berechnen.
- Die Abweichungsleistungs-Bewertungs- und Bestimmungseinheit 10 vergleicht den berechneten Wert F(X, C) und den Maximalwert Fmax (Anfangswert von 0) mit dem bis dahin erreichten Wert von F(X, C). Wenn F(X, C) größer ist als Fmax, dann wird F(X, C) zu Fmax gemacht, um Fmax auf den letzten Stand zu bringen und die Codes bis dahin werden unter Verwendung eines Codes (Index) auf den letzten Stand gebracht, der den einzelnen Codevektor angibt, der dieses Fmax ergibt.
- Als nächstes wird die Kreuzkorrelation entsprechend der oben erwähnten Gleichung (21) (wobei k = 0 und i = 1 ist) berechnet. Die Autokorrelation wird entsprechend der oben erwähnten Gleichung (24) berechnet, und die Kreuzkorrelation und die Autokorrelation werden verwendet, um mittels der Berechnungseinheit 38 die obige Gleichung (14) zu berechnen.
- Die Abweichungsleistungs-Bewertungs- und Berechnungs-Einheit 10 vergleicht den berechneten Wert F(X, C) und den Maximalwert Fmax (Anfangswert von 0) von F(X, C) bis dahin. Wenn F(X, C) größer ist als Fmax, dann wird F(X, C) zu Fmax gemacht, um Fmax auf den letzten Stand zu bringen und die Codes bis dahin werden unter Verwendung eines Codes (Index) auf den letzten Stand gebracht, der den einzelnen Codevektor angibt, der dieses Fmax ergibt.
- Wenn die obige Verarbeitung an einer Anzahl von 2i (= 2¹) Codevektoren durchgeführt ist, dann wird die gleiche Verarbeitung unter Verwendung von i = 2 wiederholt. Wenn die oben genannte Verarbeitung an allen der Anzahl von 2¹&sup0; Codevektoren durchgeführt ist, dann gibt der Sprachcodierer 30 den neuesten in der Abweichungsleistungs- Bewertungs- und Bestimmungseinheit 10 gespeicherten Code (Index) als Sprachcodierungsinformation für das Eingabe-Sprachsignal aus.
- Die nächste Erläuterung soll eine abgewandelte zweite Ausführungsform betreffen, die einer Abwandlung der oben erwähnten zweiten Ausführungsform entspricht. Bei der oben erwähnten zweiten Ausführungsform werden alle Codevektoren virtuell reproduziert, indem gerade der Anfangsvektor C&sub0; sowie eine begrenzte Anzahl (L - 1) von Deltavektoren (ΔC&sub1;) gehalten werden, da dies zur Verminderung des Berechnungsumfanges sowie zu einer beträchtlichen Verminderung der Größe des Speichers des Codeverzeichnisses sehr wirksam ist.
- Wenn man jedoch die Komponenten der Vektoren des Deltavektor-Codeverzeichnisses 11 betrachtet, dann ist, wie durch die obige Gleichung (15) gezeigt wird, die Komponente von C&sub0;, bzw. des Anfangsvektors, in allen Vektoren enthalten, während die Komponente der untersten Schicht, das heißt die Komponente des neunten Deltavektors ΔC&sub9; nur in der Hälfte, bzw. in 512 Vektoren (siehe Fig. 13) enthalten ist. Das heißt, die Beiträge der Deltavektoren zur Zusammensetzung des Codeverzeichnisses 11 sind nicht gleich. Je höher die Schicht ist, welche der Deltavektor in der Baumstruktur-Anordnung bildet, beispielsweise der Anfangsvektor C&sub0; und der erste Deltavektor ΔC&sub1;, in um so mehr Codevektoren sind die Vektoren als Komponenten enthalten, was zur Bestimmung des Verteilungsmodus des Codeverzeichnisses gesagt werden kann.
- Die Figuren 14A, 14B und 14C sind Darstellungen, welche die Verteilungen von Codevektoren zeigen, die im Codeverzeichnis virtuell gebildet werden (Modus A, Modus B und Modus C). Werden beispielsweise drei Vektoren betrachtet, das heißt C&sub0;, ΔC&sub1; und ΔC&sub2;, so gibt es sechs Vektor-Verteilungstypen (Modus A bis Modus F). Die Figuren 14A bis 14C zeigen die Moden A bis C. In den Figuren kennzeichnen ex, ey und ez die Einheitsvektoren in Richtung der x-Achse, der y-Achse und der z-Achse, welche die drei Dimensionen bilden. Die übrigen Moden D, E und F entsprechen Zuordnungen der folgenden Einheitsvektoren zu den Vektoren:
- Modus D: C&sub0; = ex, ΔC&sub1; = ez, ΔC&sub2; = ey
- Modus E: C&sub0; = ey, ΔC&sub1; = ez, ΔC&sub2; = ex
- Modus F: C&sub0; = ez, ΔC&sub1; = ex, ΔC&sub2; = ey
- Daher wird es verständlich, daß es Deltavektor-Codeverzeichnisse 11 mit unterschiedlichen Verteilungen der Moden in Abhängigkeit von der Reihenfolge der als Deltavektoren gegebenen Vektoren gibt. Das heißt, wenn die Reihenfolge der Deltavektoren ständig in einer festgelegten Weise erfolgt, wie es in Fig. 13 dargestellt ist, dann können diejenigen Codevektoren reproduziert werden, die gegenüber einem bestimmten Modus ein konstantes Vorzeichen haben, und es ist nicht garantiert, daß eine optimale Sprachcodierung für das Eingabe-Sprachsignal AX durchgeführt wird, das von der Vektorquantisierung erfaßt wird. Das heißt: es besteht die Gefahr einer Zunahme der Quantisierungsverzerrung.
- Daher kann bei der abgewandelten zweiten Ausführungsform der vorliegenden Erfindung durch Neuanordnung der Reihenfolge der Gesamtzahl von L Vektoren, die als Anfangsvektor C&sub0; und Deltavektoren ΔC gegeben sind, der Verteilungsmodus der im Codeverzeichnis 1 virtuell erzeugten Codevektoren eingestellt werden. Das heißt: die Eigenschaften des Codeverzeichnisses können geändert werden.
- Weiterhin kann der Verteilungsmodus der Codevektoren eingestellt werden, um ihn an die Eigenschaften des zu codierenden Signals anzupassen. Dies ermöglicht eine weitere Verbesserung der Qualität der reproduzierten Sprache.
- In diesem Falle werden die Vektoren für jeden Block entsprechend den Eigenschaften des linearen Prädiktionsanalysefilters (LPC) 3 neu angeordnet. Wenn dies geschehen ist, dann ist auf der Seite, welche die Sprachcodierungsdaten empfängt, das heißt auf der Decodierungseite, möglich, die genau gleich Einstellung (Neuanordnung von Vektoren) durchzuführen, wie sie auf der Codierungsseite erfolgt, ohne daß von der Codierungsseite eine besondere Einstellungsinformation gesendet wird.
- Als ein spezielles Beispiel bei der Durchführung der Neuanordnung der Vektoren werden die Leistungen der durch Anwendung der linearen Prädiktionsfilteranalyse-Verarbeitung auf den Anfangsvektor und die Deltavektoren erhaltenen Filterausgaben bewertet und die Vektoren in der Reihenfolge Anfangsvektor, erster Deltavektor, zweiter Deltavektor ... nacheinander, beginnend mit den Vektoren mit der größeren Leistungszunahme im Vergleich zur Leistung vor der Filterverarbeitung neu, angeordnet.
- Bei der oben erwähnten Neuanordnung werden die Vektoren im voraus transformiert, so daß der Anfangsvektor und die Deltavektoren nach der linearen Prädiktionsfilteranalyse- Verarbeitung orthogonal zueinander sind. Dadurch ist es möglich, die im Codeverzeichnis 11 virtuell gebildeten Vektoren gleichmäßig auf einer Hyperebene zu verteilen.
- Bei der oben erwähnten Neuanordnung ist es ferner empfehlenswert, die Leistungen des Anfangsvektors und der Deltavektoren zu normieren. Dies ermöglicht die Neuanordnung durch einfachen Vergleich der Leistungen der Filterausgaben der Vektoren.
- Weiterhin werden bei der Übertragung der Sprachcodierungsdaten zur Empfängerseite den Sprachcodierungsdaten Codes zugewiesen, so daß der Zwischencodeabstand (Euklidischer Vektorabstand) zwischen den Vektoren, die zu den höheren Schichten der Baumstruktur-Vektoranordnung gehören, größer wird als derjenige zwischen Vektoren, die niederen Schichten gehören. Dies trägt der Tatsache Rechnung, daß die Auswirkung auf die Qualität der durch Decodierung auf der Empfängerseite reproduzierten Sprache um so größer ist, je höher die Schicht ist, zu welcher der Vektor gehört. Dies ermöglicht es, die Verschlechterung der Qualität der reproduzierten Sprache gering zu halten, sogar, wenn auf der Übertragungsstrecke zur Empfängerseite ein Übertragungsfehler auftritt.
- Die Figuren 15A, 15B und 15C sind Darstellungen zur Erläuterung der Neunanordnung von Vektoren auf der Grundlage der abgewandelten zweiten Ausführungsform. In Fig. 15A ist die Kugel rund um den Ursprung des Koordinatensystems (schraffiert) der Raum aller durch die Einheitsvektoren ex, ey und ez definierten Vektoren. Wenn der Einheitsvektor ex dem Anfangsvektor C&sub0; vorläufig zugewiesen wird, und die Einheitsvektoren ey und ez werden dem ersten Deltavektor ΔC&sub1; und dem zweiten Deltavektor ΔC&sub2; zugewiesen, dann werden die durch dieselben definierten Ebenen zu Ebenen, welche die Senkrechte auf der Kugel im Punkt C&sub0; enthalten. Dies entspricht dem Modus A (Fig. 14A).
- Wenn die lineare Prädiktionsfilteranalyse-Verarbeitung (A) auf die Vektoren C&sub0; (= ex), ΔC&sub1; (= ey) und ΔC&sub2; (= ez) angewandt wird, dann verlieren die Filterausgaben A(ex), A(ey) und A(ez) ihre Gleichmäßigkeit in der x-, y- und z-Richtung und erleiden eine gewisse Verzerrung. Die Fig. 15B zeigt diesen Zustand. Sie zeigt die Vektorverteilung für den Fall der unter der Figur wiedergegebenen Ungleichung. Das heißt: durch das Durchlaufen des linearen Prädiktionsanalysefilters 3 erfolgt die Verstärkung mit einer gewissen Verzerrung.
- Die Eigenschaften A des linearen Prädiktionsanalysefilters 3 weisen bezüglich der Vektoren, welche das Deltavektor-Codeverzeichnis 11 bilden, verschiedene Amplituden Verstärkungseigenschaften auf, so daß es besser ist, daß alle im Codeverzeichnis 11 virtuell erzeugten Vektoren ungleichmäßig im Vektorraum verteilt als sind, als wenn sie dort gleichmäßig verteilt wären. Wenn daher untersucht wird, welche Richtung der Vektorkomponente am meisten verstärkt wird und die Verteilung dieser Richtung der Vektorkomponente vergrößert wird, wird es möglich, die Vektoren effizient im Codeverzeichnis 11 zu speichern, und als Ergebnis werden die Quantisierungscharakteristiken der Sprachsignale verbessert.
- Wie oben bemerkt, gibt es in der Baumstruktur-Verteilung der Deltavektoren eine Abweichung, aber durch Neuanordnung der Reihenfolge der Deltavektoren können die Eigenschaften des Codeverzeichnisses 11 geändert werden.
- Nach Fig. 15C werden die Vektoren in der Reihenfolge vom Deltavektor (ΔC&sub2;) mit der größten Leitung an neu angeordnet, wenn es nach der in Fig. 15B dargestellten Filterverarbeitung eine Abweichung des Leistungsverstärkungsfaktors gab. Dann werden die Codeverzeichnis-Vektoren noch einmal entsprechend der Baumstruktur-Anordnung erzeugt. Durch Anwendung eines solchen Deltavektor-Codeverzeichnisses 11 zum Codieren ist es möglich, die Qualität der reproduzierten Sprache im Vergleich zur festen Zuordnung und Anordnung der Deltavektoren, wie bei der oben erwähnten zweiten Ausführungsform, zu verbessern.
- Fig. 16 ist eine Darstellung eines Beispieles des Teiles der Codeverzeichnis- Wiederauffindungs-Verarbeitung auf der Grundlage der abgewandelten zweiten Ausführungsform. Sie zeigt ein Beispiel der in den Figuren 15A, 15B und 15C dargestellten Neuanordnung. Sie entspricht einer Abwandlung der oben erwähnten Anordnung von Fig. 12 (zweite Ausführungsform). Im Vergleich zur Anordnung von Fig. 12 sind in Fig. 16 die Leistungsbewertungseinheit 41 und die Sortiereinheit 42 wirkungsmäßig in die Speichereinheit 31 einbezogen worden. Die Leistungsbewertungseinheit 41 bewertet die Leistung des Anfangsvektors und der Deltavektoren nach der Filterverarbeitung durch das lineare Analysefilter 3. Auf der Grundlage der Größen der Amplituden-Verstärkungsfaktoren, die als Ergebnis der Bewertung erhalten werden, ordnet die Sortiereinheit 42 die Reihenfolge der Vektoren neu. Die Leistungsbewertungseinheit 41 und die Sortiereinheit 42 können unter Bezugnahme auf die obigen Figuren 14A bis 14C sowie 15A bis 15C wie folgt erläutert werden.
- Die Leistungen der durch die lineare Prädiktionsfilter-Verarbeitung der im Deltavektor- Codeverzeichnis 11 gespeicherten Vektoren (C&sub0;, ΔC&sub1; und ΔC&sub2;) erhaltenen Vektoren (AC&sub0;, AΔC&sub1; und AΔC&sub2;) werden berechnet. Wie schon oben bemerkt, werden an dieser Stelle die Leistungen der Vektoren normiert (siehe folgender Punkt (1)), wobei ein Richtungsvergleich der Leistungen nach der Filterverarbeitung auch ein Vergleich der Amplituden-Verstärkungsfaktoren der Vektoren bedeuten könnte (siehe folgender Punkt (2)).
- (1) Normierung der Deltavektoren:
- (2) Amplituden-Verstärkungsfaktor bezüglich des Vektors C&sub0;:
- AC&sub0; ²/ C&sub0; ²= Aex ²
- Amplituden-Verstärkungsfaktor bezüglich des Vektors C&sub1;:
- AC&sub1; ²/ C&sub1; ²= Aey ²
- Amplituden-Verstärkungsfaktor bezüglich des Vektors C&sub2;:
- AC&sub2; ²/ C&sub2; ²= Aez ²
- Die Amplituden-Verstärkungsfaktoren der Vektoren infolge des Analysefilters (A) werden von der Leistungsbewertungseinheit 41 empfangen und die Vektoren in der Reihenfolge vom größten Verstärkungsfaktor an abwärts neu angeordnet (sortiert). Durch diese Neuanordnung werden neue Deltavektoren in der Reihenfolge vom größten Verstärkungsfaktor an abwärts beispielsweise als Anfangsvektor (C&sub0;), erster Deltavektor (ΔC&sub1;), zweiter Deltavektor (ΔC&sub2;) ... angeordnet. Die folgende Codierungsverarbeitung wird in genau der gleichen Weise durchgeführt, wie im Falle des Baumstruktur- Codeverzeichnisses von Fig. 12, indem das Baumstruktur-Codeverzeichnis 11 die erhaltenen Deltavektoren enthält. Nachfolgend soll der Sortiervorgang für den Fall gezeigt werden, der in den Fig. 15A bis 15C dargestellt ist.
- Sortieren: Aez ² > Aex ² > Aey ²
- Neuanordnung: C&sub0; = ez, ΔC&sub1; = ex, ΔC&sub2; = ey
- Die oben beschriebene zweite Ausführungsform sowie die abgewandelte zweite Ausführungsform können in entsprechender Weise wie die oben beschriebene erste Ausführungsform für jeden Sprachcodierer vom CELP-Typ mit sequentieller Optimierung, vom CELP-Typ mit simultaner Optimierung oder vom CELP-Typ mit orthogonaler Anstiegs-Transformations-Optimierung usw. angewandt werden. Das Verfahren der Anwendung gleicht der Anwendung der zyklischen Additionseinrichtung 20 (14, 15; 16, 17, 14-1, 15-1; 14-2, 15-2), die bei der ersten Ausführungsform detailliert erläutert ist.
- Nachfolgend soll, wegen der Bezugnahme darauf, eine Erläuterung der verschiedenen genannten Typen von Sprachcodierern erfolgen.
- Figur 17 ist eine Darstellung eines Codierers vom CELP-Typ mit sequentieller Optimierung, und Figur 18 ist eine Darstellung eines Codierers vom CELP-Typ mit simultaner Optimierung. Es sei angemerkt, daß die zuvor erwähnten Hauptbestandteile mit den gleichen Bezugszahlen oder Symbolen versehen sind.
- In Fig. 17 speichert das adaptive Codeverzeichnis 101 N-dimensionale Anstiegs- Prädiktions-Restvektoren entsprechend den N verzögerten Abtastungen in der Anstiegsperiode einer jeden Abtastung. Ferner ist das Codeverzeichnis 1, wie schon früher erwähnt, im voraus auf genau 2m Muster von Codevektoren eingestellt worden, welche unter Verwendung N-dimensionaler Rauschfolgen entsprechend den N Abtastungen erzeugt wurden. Vorzugsweise werden Abtastdaten der Codevektoren, deren Amplitude unterhalb eines bestimmten Schwellenwertes liegt (beispielsweise N/4 Abtastungen von N Abtastungen), durch 0 ersetzt. Ein solches Codeverzeichnis wird als dünnbesetztes Codeverzeichnis bezeichnet.
- Zuerst werden die Anstiegs-Prädiktionsvektoren AP durch Wahrnehmungswichtung der Anstiegs-Wahrnehmungs-Differentialvektoren P de adaptiven Codeverzeichnisses 101 mittels des linearen Wahrnehmungswichtungs-Prädiktionsanalysefilters 103 erzeugt, welches durch A = 1/A'(z) dargestellt ist (wobei A'(z) das lineare Wahrnehmungswichtungs-Prädiktionsanalysefilter dargestellt) und im Verstärker 105 mit der Verstärkung b multipliziert, um den reproduzierten Anstiegs-Prädiktions- Signalvektor bAP zu erzeugen.
- Als nächstes werden die wahrnehmungsgewichteten Anstiegs-Prädiktions-Abweichungs- Signalvektoren AY zwischen den reproduzierten Anstiegs-Prädiktions-Signalvektoren bAP und dem durch das Wahrnehmungswichtungsfilter 107, das durch A(z)/A'(z) dargestellt ist (wobei A'(z) ein lineares Prädiktionanalysefiter zeigt), wahrnehmungsgewichteten Eingabe-Sprachsignalvektor AX mittels der Subtraktionseinheit 108 gefunden. Der optimale Anstiegs-Prädiktions-Differentialvektor P und die optimale Verstärkung b werden für jeden Block nach der folgenden Gleichung mittels der Bewertungseinheit 110 ausgewählt:
- AY ² = AX - bAPX ² (25)
- so daß sich die minimale Leistung des Anstiegs-Prädiktions-Abweichungs-Signalvektors AY ergibt.
- Weiterhin werden, wie schon früher erwähnt, die wahrnehmungsgewichteten reproduzierten Codevektoren AC durch Wahrnehmungswichtung im linearen Prädiktionsanalysefilter 3 in der gleichen Weise wie die Codevektoren C des Codeverzeichnisses 1 im Verstärker 2 mit der Verstärkung g multipliziert, um die reproduzierten linearen Prädiktions-Signalvektoren gAC zu erzeugen. Hier ist anzumerken, daß der Verstärker 2 genausogut vor dem Filter 3 angeordnet werden kann.
- Weiterhin werden die Abweichungs-Signalvektoren E des reproduzierten linearen Anstiegs-Prädiktions-Signalvektors gAC sowie die oben erwähnten Anstiegs-Prädiktions- Abweichungs-Signalvektoren AY durch die Abweichungs-Erzeugungseinheit 4 gefunden und durch die Bewertungseinheit 5 für jeden Block der optimale Codevektor C aus dem Codeverzeichnis 1 sowie die optimale Verstärkung g derart ausgewählt, daß sich die minimale Leistung des Abweichungs-Signalvektors E nach der folgenden Gleichung ergibt:
- E ² = AY - gAC ² (26)
- Es wird angemerkt, daß die Anpassung des adaptiven Codeverzeichnisses 101 durchgeführt wird, indem die Additionseinheit 112 den Wert bAP + gAC ermittelt, dieser durch das lineare Wahrnehmungswichtungs-Prädiktionsanalysefilter (A'(z)) 113 zu bP + gC analysiert wird, durch die Verzögerungseinheit 114 um einen Block verzögert und das Ergebnis im adaptiven Codeverzeichnis (Anstiegs-Prädiktions-Codeverzeichnis) des nächsten Blockes gespeichert wird.
- Auf diese Weise werden im in Fig. 17 dargestellten Codierer vom CELP-Typ mit sequentieller Optimierung die Verstärkungen b und g getrennt gesteuert, während im in Fig. 18 dargestellten Codierer vom CELP-Typ mit simultaner Optimierung bAP und gAC durch die Additionseinheit 115 addiert werden, um AX' = bAP + gAC zu finden. Weiterhin wird der Abweichungs-Signalvektor E zum wahrnehmungsgewichteten Eingabe-Sprachsignalvektor AX aus dem Filter 107 in der oben beschriebenen Weise durch die Abweichungs-Erzeugungseinheit 4 gefunden. Der Codevektor C, der die minimale Leistung des Vektors E ergibt, wird durch die Bewertungseinheit 5 aus dem Codeverzeichnis 1 ausgewählt, und die Auswahl der optimalen Verstärkungen b und g wird simultan gesteuert.
- In diesem Falle wird aus den obigen Gleichungen (25) und (26) die folgende Gleichung erhalten:
- E ² = AX - bAP - gAC ² (27)
- Hierzu wird angemerkt, daß die Adaption des adaptiven Codeverzeichnisses 101 in diesem Falle bezüglich AX' in der gleichen Weise entsprechend der Ausgabe der Additionseinheit 112 von Fig. 17 durchgeführt wird.
- Die in der Konzeption der obigen Figuren 17 und 18 dargestellten Verstärkungen b und g führen tatsächlich die Optimierung für den Codevektor C im Codeverzeichnis 1 in den jeweiligen CELP-Systemen durch, wie sie in den Figuren 19 und 20 dargestellt sind.
- Das heißt: im Falle der Fig. 17, wenn die Verstärkung g, welche die minimale Leistung des Vektors E ergibt, durch partielle Differentiation gefunden wird, dann erhält man aus:
- 0 = δ ( AY - gAC ²)/δg = 2 (-AC)T(AY - gAC)
- die folgende Gleichung:
- g = (AC)TAY/(AC)TAC (28)
- Daher werden in Fig. 19 der Anstiegs-Prädiktions-Abweichungs-Signalvektor AY und die Codevektoren AC erhalten, indem die Codevektoren C des Codeverzeichnisses 1 das lineare Wahrnehmungswichtungs-Prädiktionsanalysefilter 3 durchlaufen und in der Multiplikationseinheit 6 multipliziert werden, um die Korrelationswerte (AC)TAY beider Codevektoren zu erhalten, und die Autokorrelationswerte (AC)TAC der wahrnehmungsgewichtet reproduzierten Codevektoren AC werden von der Autokorrelations-Berechnungseinheit 8 ermittelt.
- Weiterhin wählt die Bewertungseinheit 5 den optimalen Codevektor C sowie die Verstärkung g aus, welche die minimale Leistung des Abweichungs-Signalvektors E bezüglich des Anstiegs-Prädiktions-Abweichungs-Signalvektors AY nach der obigen Gleichung (28) auf der Grundlage der beiden Korrelationswerte (AC)TAY und (AC)TAC ergibt.
- Anzumerken ist, daß die Verstärkung g bezüglich des Codevektors C gefunden wird, um die obige Gleichung (26) zu minimieren. Wenn die Quantisierung der Verstärkung durch einen Modus mit offenem Regelkreis erfolgt, ist dies das gleiche, wie die Maximierung der folgenden Gleichung:
- ((AY)TAC)²/(AC)TAC
- Wenn ferner im Falle der Fig. 18 in der obigen Gleichung (27) die Verstärkungen b und g zur Minimierung der Leistung des Vektors E durch partielle Differentiation gefunden werden, dann gilt:
- g = [(AP)TAP(AC)TAX - (AC)TAP(AP)TAX]/V
- b = [(AP)TAC(AP)TAX - (AC)TAP(AC)TAX]/V (29)
- wobei
- V = (AP)TAP(AC)TAC - ((AC)TAP)² ist.
- Daher werden in Fig. 20 der wahrnehmungsgewichtete Eingabe-Sprachsignalvektor AX sowie die aus den Codevektoren C des Codeverzeichnisses 1 nach Durchlaufen des linearen Wahrnehmungswichtungs-Prädiktionsanalysefilters 3 erhaltenen Codevektoren AC durch die Multiplikationseinheit 6-1 multipliziert, um die Korrelationswerte (AC)TAX der beiden zu erhalten. Die wahrnehmungsgewichteten Anstiegs- Prädiktionsvektoren AP und die Codevektoren AC werden mittels der Multiplikationseinheit 6-2 multipliziert, um die Kreuzkorrelationen (AC)TAP der beiden zu erzeugen, und die Autokorrelationswerte (AC)T des Codevektors AC werden von der Autokorrelations-Berechnungseinheit 8 gefunden.
- Weiterhin wählt die Bewertungseinheit 5 den optimalen Codevektor C sowie die Verstärkungen b und g aus, welche bezüglich des wahrnehmungsgewichteten Eingabe- Sprachsignalvektors AX nach der obigen Gleichung (29) auf der Grundlage der Korrelationswerte (AC)TAX, (AC)TAP und (AC)TAC die minimale Leistung des Abweichungs-Signalvektors E ergeben.
- Auch in diesem Falle entspricht die Minimierung der Leistung des Vektors E der Maximierung des Verhältnisses der Korrelationswerte:
- 2b(AP)TAX - b²(AP)TAP + 2g(AC)TAX - g²(AC)TAC - 2bg(AP)TAC.
- Im Falle des CELP-Systems mit sequentieller Optimierung ist auf diese Weise ein geringerer Gesamtrechenaufwand im Vergleich zum CELP-System mit simultaner Optimierung erforderlich, aber die Qualität der codierten Sprache wird verschlechtert.
- Figur 21A ist ein Vektordiagramm, welches schematisch den Verstärkungs- Optimierungs-Vorgang für den Fall des CELP-Sytems mit sequentieller Optimierung zeigt. Figur 21B ist ein Vektordiagramm, welches schematisch den Verstärkungs- Optimierungs-Vorgang für den Fall des CELP-Sytems mit simultaner Optimierung zeigt, und Figur 21C ist ein Vektordiagramm, welches schematisch den Verstärkungs- Optimierungs-Vorgang für den Fall des CELP-Sytems mit Optimierung durch Anstiegs- Orthogonaltransformation zeigt.
- Im Falle des System mit sequentieller Optimierung nach Fig. 21A ist ein relativ geringer Rechenaufwand erforderlich, um den optimierten Vektor AX' = bAP + gAC zu erhalten, aber es können leicht Abweichungen zwischen dem Vektor AX' und dem Eingabevektor AX auftreten, so daß die Wiedergabequalität des Signals schlechter wird.
- Ferner wird beim simultanen Optimierungssystem von Fig. 21B AX' = AX, wie es für den Fall von zwei Dimensionen dargestellt ist, so daß das System mit simultaner Optimierung im Vergleich zum System mit sequentieller Optimierung im allgemeinen eine bessere Qualität der Sprachreproduktion ergibt, aber wie in Gleichung (29) dargestellt, gibt es hier das Problem. daß der Rechenaufwand höher ist.
- Daher hat die Patentanmelderin bereits vorher eine Patentanmeldung (Japanische Patentanmeldung Nr. 2-161041) für den in Fig. 22 dargestellten Codierer hinterlegt, um eine zufriedenstellende Codierung und Decodierung sowohl hinsichtlich der Sprach- Reproduktionsqualität als auch hinsichtlich des Rechenumfanges zu erreichen, wobei von den Vorteilen sowohl der Sprachcodierungssysteme mit sequentieller als auch mit simultaner Optimierung Gebrauch gemacht wird.
- Das heißt, daß bezüglich der Anstiegsperiode der Anstiegs-Prädiktions-Differentialvektor P und die Verstärkung b in der gleichen Weise, wie in der Vergangenheit bewertet und ausgewählt werden, aber bezüglich des Codevektors C und der Verstärkung g ist eine Einheit 50 zur gewichteten Orthogonaltransformation vorgesehen, und die Codevektoren C des Codeverzeichnisses 1 werden in reproduzierte wahrnehmungsgewichtete Codevektoren AC' umgewandelt, die zum optimalen Anstiegs-Prädiktions- Differentialvektor AP unter den Anstiegs-Prädiktions-Differentialvektoren orthogonal sind.
- Bei der weiteren Erläuterung an Hand von Fig. 21C ist die Tatsache zu betrachten, daß ein Ausfall des aus dem Codeverzeichnis 1 entnommenen Codevektors AC, welcher der Wahrnehmungswichtungsmatrix A als orthogonal zum reproduzierten wahrnehmungsgewichteten Anstiegs-Prädiktionsvektor bAP unterworfen wird, wie oben erwähnt und in Fig. 21A dargestellt, Ursache einer Vergrößerung des Quantisierungsfehlers ε ist. Es ist sogar beim CELP-System mit sequentieller Optimierung von Fig. 21A möglich, den Quantisierungsfehler auf etwa die gleiche Größenordnung zu vermindern, wie beim System mit simultaner Optimierung, wenn der Wahrnehmungsgewichtete Codevektor AC nach einem bekannten Verfahren orthogonal zum Codevektor AC' transformiert wird, der seinerseits orthogonal zum wahrnehmungsgewichteten Anstiegs-Prädiktions-Differentialvektor AP ist.
- Der auf diese Weise erhaltene Codevektor AC' wird mit der Verstärkung g multipliziert, um das reproduzierte lineare Prädiktionssignal gAC' zu erzeugen. Der Codevektor, welcher den minimalen linearen Prädiktions-Abweichungs-Signalvektor E vom reproduzierten linearen Prädiktionssignal gAC' ergibt sowie die wahrnehmungsgewichteten Eingabe-Sprachsignalvektoren AX werden von der Bewertungseinheit 5 aus dem Codeverzeichnis 1 ausgewählt. Außerdem wird die Verstärkung g gewählt.
- Anzumerken ist, daß es zur Verminderung des Filter-Berechnungsaufwandes zur Codeverzeichnis-Wiederauffindung erwünscht ist, ein dünnbesetztes Rauschcodeverzeichnis zu verwenden, wobei das Codeverzeichnis eine Rauschfolge mit dem Rauschen und einer großen Anzahl als Abtastwerte eingesetzter Nullen enthält. Zusätzlich kann von einem Überlappungs-Codeverzeichnis Gebrauch gemacht werden, bei welchem sich die Codevektoren untereinander überlappen.
- Fig. 23 ist eine Darstellung, welche den Teil der Codeverzeichnis-Wiederauffindungs- Verarbeitung unter Anwendung bei einem weiteren Beispiel der ersten Ausführungsform mit mehr Einzelheiten zeigt. Sie zeigt den oben erwähnten Anwendungsfall eines Sprachcodieres vom CELP-Typ mit orthogonaler Anstiegs-Transformations- Optimierung. Auch in diesem Falle kann die vorliegende Erfindung ohne jegliche Hindernisse angewandt werden.
- Diese Fig. 23 zeigt ein Beispiel der Kombination der Autokorrelations- Berechnungseinheit 13 von Fig. 10 mit der in Fig. 9 dargestellten Anordnung. Weiterhin kann die in Fig. 9 dargestellte Berechnungseinrichtung 19' durch die transponierte Matrix AT in der gleichen Weise aufgebaut sein, wie die Berechnungseinrichtung 19 von Fig. 6, aber in diesem Beispiel ist sie als Zeitumkehrfilter aufgebaut.
- Die Autokorrelations-Berechnungseinrichtung 60 der Figur umfaßt die Berechnungseinheiten 60a bis 60e. Die Berechnungseinheit 60a unterwirft in der gleichen Weise wie die Berechnungseinrichtung 19' den optimalen, wahrnehmungsgewichteten Anstiegs-Prädiktions-Differentialvektor AP, das heißt, das Eingabesignal, der Zeitumkehr-Wahrnehmungswichtung, um den berechneten Hilfsvektor V = ATAP zu erzeugen.
- Dieser Vektor V wird in der Berechnungseinheit 60b, welche als Eingabe die zu allen Deltavektoren ΔC im Deltavektor-Codeverzeichnis 11 orthogonalen Vektoren D empfängt, in drei Vektoren B, uB und AB transformiert, bei denen die Wahrnehmungswichtungs-Filterverarbeitung (A) angewandt wird.
- Von diesen werden die Vektoren B und uB zur Zeitumkehr-Orthogonaltransformations- Einheit 71 gesandt, wo die Zeitumkehr-Leit-Orthogonaltransformation auf die ATAX- Ausgabe der Berechnungseinrichtung 70 angewandt wird, um den Wert HTATAX = (AH)TAX zu erzeugen.
- Hier soll eine Erläuterung der Zeitumkehr-Leit-Transformation HT in der Transformationseinheit 71 erfolgen.
- Zuerst wird die Leit-Transformation selbst unter Bezugnahme auf die Figuren 24A und 24B erläutert, wenn der berechnete Hilfsvektor V auf eine parallele Komponente des Vektors D unter Benutzung der gestrichelt dargestellten Faltungslinie zurückgefaltet wird und der Vektor ( V / D )D erhalten wird. Hier ist anzumerken, daß D/ D den Einheitsvektor in D-Richtung angibt.
- Der auf diese Weise erhaltene D-Richtungs-Vektor wird als 1( V / D )D in der -D- Richtung genommen, das heißt, wie dargestellt, in der entgegengesetzten Richtung. Als Ergebnis wird der Vektor B = V-( V / D )D erhalten und wird durch Addition zu V orthogonal zur Faltungslinie (siehe Fig. 24B).
- Als nächstes wird, wenn die Komponente des Vektors C im Vektor B gefunden ist, in gleicher Weise, wie im Falle der Fig. 24A, der Vektor {(CTB)/(BTB)}B erhalten.
- Wenn der Vektor in der Richtung entgegengesetzt zu diesem Vektor genommen und zum Vektor C addiert wird, dann wird der zu V orthogonale Vektor C' erhalten. Das heißt:
- C' = C - 2B{(CTB)/(BTB)}B (30)
- Wenn in dieser Gleichung (30) u = 2/BTB ist, dann ist:
- C' = C - B(uBTC) (31)
- Da andererseits C' = HC ist, wird die Gleichung (31) zu
- H = C'C&supmin;¹ = I - B(uBT)
- (wobei I ein Einheitsvektor ist).
- Daher ist
- HT = I - (uB)BT = I - B(uBT)
- Dies ist das gleiche wie H.
- Wenn daher der Eingabevektor ATAX der Transformationseinheit 71 beispielsweise zu W gemacht wird, denn gilt:
- HTW = W - (WB)(uBT) = (AH)TAX
- und die Berechnung wird in ihrer Anordnung so, wie sie gezeigt ist. Es wird angemerkt, daß Kreismarkierungen in der Figur Vektorberechnungen kennzeichnen, während Dreiecke Skalarberechnungen angeben.
- Als Verfahren zur orthogonalen Transformation ist das Verfahren von Gram-Schmidt oder dergleichen bekannt.
- Wenn weiterhin die Deltavektoren ΔC aus dem Codeverzeichnis 11 in der Multiplikationseinheit 65 mit dem Vektor (AH)TAX multipliziert werden, dann werden die Korrelationswerte
- RXC = (ΔC)T(AH)TAX = (AHΔC)TAX
- erhalten. Diese werden von der zyklischen Additionseinheit 67 (zyklische Additionseinrichtung 20) zyklisch addiert, wodurch (AHC)TAX zur Bewertungseinheit 5 gesandt wird.
- Im Gegensatz dazu werden in der Berechnungseinheit 60c aus den Eingabevektoren AB und uB die orthogonale Transformationsmatrix H und die orthogonale Zeitumkehr- Transformationsmatrix H erzeugt. Weiterhin ist dort eine Finite-Impulsantwort-(FIR)- Wahrnehmungswichtungs-Filtermatrix A eingebaut, um für jeden Block mittels der Berechnungseinheit 70 und der Transformationseinrichtung 71 die Zeitumkehr- Wahrnehmungswichtungs-Orthogonaltransformationsmatrix AH zu erzeugen.
- Weiterhin wird die so gefundene Autokorrelationsmatrix G = (AH)TAH in der Berechnungseinheit 60d gespeichert, wie es in Fig. 10 dargestellt ist. Wenn die Deltavektoren ΔC aus dem Codeverzeichnis 11 an die Berechnungseinheit 60d gegeben werden, wird
- (ΔCi)TGCi-1 + (ΔCi)TGΔCi
- erhalten. Dieser Wert wird in der zyklischen Additionseinheit 60e (zyklische Berechnungseinrichtung 20) zyklisch zum vorhergehenden Autokorrelationswert (AHCi-1)TAHCi-1 addiert, wodurch es möglich wird, daß der gegenwärtige Autokorrelationswert (AHCi)TAHCi gefunden und zur Bewertungseinheit 5 gesandt wird.
- Auf diese Weise ist es möglich, auf der Grundlage der beiden zur Bewertungseinheit 5 gesandten Autokorrelationswerte den optimalen Deltavektor und die Verstärkung auszuwählen.
- Schließlich soll an Hand von Zahlenbeispielen eine Erläuterung der Vorteile erfolgen, die mit der ersten und zweiten Ausführungsform der vorliegenden Erfindung erreicht werden können.
- Figur 25 ist eine Darstellung, welche die Möglichkeiten der Verminderung des Rechenaufwandes durch die erste Ausführungsform der vorliegenden Erfindung zeigt. Abschnitt (a) der Figur zeigt den Fall eines Codierers vom CELP-Typ mit sequentieller Optimierung und zwar den Rechenaufwand für folgende Anwendungsfälle
- (1) ein herkömmliches, zu 4/5 dünn besetztes Codeverzeichnis.
- (2) ein herkömmliches Überlappungs-Codeverzeichnis und
- (3) ein Deltavektor-Codeverzeichnis auf der Grundlage des ersten Ausführungsform der vorliegenden Erfindung
- als Rauschcodeverzeichnis.
- N ist in Fig. 25 die Anzahl der Abtastungen und NP ist die Anzahl von Reihenfolgen des Filters 3. Es gibt ferner verschiedene Rahmen zur Berechnung des Rechenumfanges, aber hier betrifft der Rahmen genau (1) die Filterverarbeitungsberechnung, (2) die Kreuzkorrelationsberechnung und (3) die Autokorrelationsberechnung, welche im Codierer besonders umfangreiche Berechnungen erfordern,
- Wenn im einzelnen die Anzahl der Abtastungen N gleich 10 ist, dann ist am rechten Ende der Figur angegeben, daß die Gesamtzahl der Berechnungen beim herkömmlichen Beispiel (1) 432 k Multiplikations- und Akkumulationsvorgänge umfaßt und beim herkömmlichen Beispiel (2) 84 k Multiplikations- und Akuumulationsvorgänge. Im Gegensatz dazu sind bei der ersten Ausführungsform 28 k Multiplikations- und Akkumulationsvorgänge erforderlich, was eine bedeutende Reduzierung darstellt.
- Abschnitt (b) und Abschnitt (c) von Fig. 25 zeigen den Fall eines Codierers vom CELP- Typ mit simultaner Optimierung und eines Codierers vom CELP-Typ mit Anstiegs- Orthogonal-Transformations-Optimierung. Der Rechenumfang ist für die (a) berechnet worden. Daraus kann man lernen, daß in jedem der Fälle der Rechenumfang durch die Anwendung der ersten Ausführungsform der Erfindung beträchtlich auf 30 K bzw. 28 K Multiplikations- und Akkumulationsvorgänge vermindert werden kann.
- Figur 26 ist eine Darstellung, welche die Möglichkeiten zur Verminderung des Rechenaufwandes sowie zur beträchtlichen Verminderung der Speichergröße durch die zweite Ausführungsform der vorliegenden Erfindung zeigt. Der Abschnitt (a) der Figur zeigt den Rechenaufwand und Abschnitt (b) die Größe des Codeverzeichnis-Speichers.
- Die Anzahl der Abtastungen N der Codevektoren ist auf einen Standardwert von N = 40 festgelegt. Ferner wird beim herkömmlichen System als Größe M des Codeverzeichnisses ein Standardwert von M = 1024 angewandt, während die Größe M bei der zweiten Ausführungsform der vorliegenden Erfindung auf L reduziert worden ist, wobei im einzelnen L = 10 festgelegt worden ist. Dieses L ist gleich der Anzahl der Schichten 1, 2, 3, ... L, die in Fig. 11, oben dargestellt sind.
- In allen betrachteten Fällen des Gesamt-Rechenumfanges werden die 480 k Multiplikations- und Akkumulationsvorgänge (96 Mops), die beim herkömmlichen System erforderlich sind, bei der zweiten Ausführungsform der vorliegenden Erfindung auf etwa 1/70 dieses Umfanges, das heißt auf 6,6 K Multiplikations- und Akkumulationsvorgänge abgesenkt.
- Weiterhin zeigt ein Blick auf die Speichergröße (Abschnitt (b)) in Fg. 26, daß diese auf ein 1/100 der ursprünglichen Größe reduziert wurde.
- Sogar bei der abgewandelten zweiten Ausführungsform ist der Gesamtumfang der Berechnungen einschließlich der Filter-Verarbeitungsberechnung, die den Hauptumfang der Berechnungen ausmacht, sowie einschließlich der Berechnung der Autokorrelationen und der Kreuzkorrelationen im gleichen beträchtlichen Unmfang vermindert worden, wie der in Fig. 26 dargestellte Wert zeigt.
- Auf diese Weise werden nach der ersten Ausführungsform der vorliegenden Erfindung Differenzvektoren (Deltavektoren) zwischen benachbarten Codevektoren als im Rauschcodeverzeichnis zu speichernde Codevektoren verwendet. Als Ergebnis wird der Umfang der Berechnungen gegenüber demjenigen in der Vergangenheit weiter reduziert.
- Weiterhin erfolgten bei der zweiten Ausführungsform der vorliegenden Erfindung weitere Verbesserungen gegenüber der oben erwähnten, ersten Ausführungsform, nämlich:
- (I) Die Anzahl von NP N M (= 1024 NP N) in der Vergangenheit zur Filterverarbeitung erforderlicher Multiplikations- und Akkumulationsvorgänge kann auf eine Anzahl von N N L (= 10 NP N) Multiplikations- und Akkumulationsvorgänge vermindert werden.
- (II) Es ist möglich, den Codevektor, der die minimale Abweichungsleistung ergibt, auf einfache Weise zu finden.
- (III) Die Anzahl von M N (= 1024 N) in der Vergangenheit zur Berechnung der Kreuzkorrelation erforderlicher Multiplikations- und Akkumulationsvorgänge kann auf eine Anzahl von N L (= 10 N) Multiplikations- und Akkumulationsvorgänge vermindert werden, so daß die Gesamtzahl der Berechnungen beträchtlich reduziert wird.
- (IV) Die Anzahl von M N (= 1024 N) in der Vergangenheit zur Berechnung der Autokorrelation erforderlicher Multiplikations- und Akkumulationsvorgänge kann auf eine Anzahl von L(L + 1) N/2 (= 55 N) Multiplikations- und Akkumulationsvorgänge vermindert werden.
- (V) Die Speichergröße kann beträchtlich reduziert werden.
- Weiterhin ist es nach der abgewandelten zweiten Ausführungsform möglich, die Qualität der reproduzierten Sprache weiter zu verbessern.
- Die vorliegende Erfindung kann beispielsweise bei Übertragungssystemen mit Zellenaufbau oder bei Mobiltelefonsystemen angewandt werden, insbesondere bei Sprachcodierern zur Übertragung eingegebener Sprache als digitale Daten zu Empfängersystemen.
Claims (18)
1. Sprachcodierungssystem, bei welchem die eingegebene Sprache durch Finden eines
einzelnen Codevektors mittels Bewertungsberechnung codiert wird und dieser
Codevektor eine minimale Abweichung zwischen den reproduzierten Signalen ergibt,
welche durch lineare Prädiktionsanalyse-Filterverarbeitung durch Simulation der
Sprechpfad-Charakteristiken aus Codevektoren, die aufeinanderfolgend aus einem
Rauschcodeverzeichnis, welches eine Vielzahl von Rauschfolgen als Codevektoren (C&sub0;,
C&sub1;, C&sub2;, ...) speichert und einem Eingabe-Sprachsignal durch Anwendung einer
Codespezifizierung dieses Codevektors erhalten werden,
dadurch gekennzeichnet, daß
das Rauschcodeverzeichnis aus einem Deltavektor-Codeverzeichnis (11) besteht, welches
einen Anfangsvektor (C&sub0;) sowie eine Vielzahl von Deltavektoren (ΔC) speichert, die
durch Finden der Differentialvektoren zwischen nebeneinanderliegenden Codevektoren
für alle Codevektoren erhalten wurden und
die Deltavektoren zyklisch addiert werden, um die Codevektoren (C&sub0;, C&sub1;, C&sub2;, ...)
virtuell zu reproduzieren.
2. Sprachcodierungssystem nach Anspruch 1, bei welchem die Deltavektoren N-
dimensionale Vektoren, bestehend aus einer Anzahl von N (N ist eine natürliche Zahl
gleich oder größer als 2) Zeitreihen-Abtastdaten sind, wobei einige der Abtastdaten aus
der Anzahl von N Abtastdaten signifikante Daten (Δ1, Δ2, Δ3 und Δ4) und der Rest
dünnbesetzte Vektoren des Datenwertes Null sind.
3. Sprachcodierungssystem nach Anspruch 2, bei welchem die Codevektoren (C&sub0;, C&sub1;,
C&sub2;, ...) im Rauschcodeverzeichnis neu angeordnet werden, so daß die
Differentialvektoren zwischen nebeneinanderliegenden Vektoren kleiner werden, die
Differentialvektoren zwischen nebeneinanderliegenden Codevektoren für die neu
angeordneten Codevektoren gefunden und somit die dünnbesetzten Vektoren erhalten
werden.
4. Sprachcodierungssystem nach Anspruch 1, bei welchem eine Einrichtung (20) zur
Durchführung der oben erwähnten zyklischen Addition als Teil der
Berechnungseinrichtung für die Bewertungsberechnung vorgesehen ist.
5. Sprachcodierungssystem nach Anspruch 4, bei welchem die Einrichtung (20) für die
zyklische Addition aus Additionseinheiten (14, 14-1, 14-2) zur Addition der
Berechnungsdaten und aus Verzögerungseinheiten (16, 16-1, 16-2) zur Verzögerung der
Ausgangswerte der Additionseinheiten und deren Rückführung zu einem Eingang der
Additionseinheiten, wobei die vorhergehenden Berechnungsergebnisse in den
Verzögerungseinheiten gehalten werden, der nächste gegebene Deltavektor als Eingabe
genommen wird und die Berechnungsergebnisse somit fortgeschrieben werden.
6. Sprachcodierungssystem nach Anspruch 1, bei welchem eine Vielzahl von
Deltavektoren (ΔC) durch (L - 1) Typen von Deltavektoren ausgedrückt werden, die in
einer Baumstruktur angeordnet sind, wobei L die Gesamtzahl der Schichten ist, welche
die Baumstruktur mit dem Anfangsvektor (C&sub0;) an seiner Spitze ausmachen.
7. Sprachcodierungssystem nach Anspruch 6, bei welchem die (L - 1) Typen von
Deltavektoren bei jeder Schicht aufeinanderfolgend zum Anfangsvektor (C&sub0;) addiert oder
von diesem subtrahiert werden, so daß virtuell (2L - 1) Typen von Codevektoren
reproduziert werden.
8. Sprachcodierungssystem nach Anspruch 7, bei welchem zu den (2L - 1) Typen von
Codevektoren Nullvektoren addiert werden, um die gleiche Anzahl Codevektoren zu
reproduzieren, wie die 2L Typen in dem Rauschcodeverzeichnis gespeicherter
Codevektoren.
9. Sprachcodierungssystem nach Anspruch 7, bei welchem der durch Multiplikation des
Anfangsvektors (C&sub0;) mit -1 erhaltene Codevektor (-C&sub0;) zu den (2L - 1) von Codevektoren
addiert wird, um die gleiche Anzahl von Codevektoren zu reproduzieren, wie die 2L im
Rauschcodeverzeichnis gespeicherter Codevektoren.
10. Sprachcodierungssystem nach Anspruch 6, bei welchem eine Einrichtung (20) zur
Durchführung der zyklischen Addition als Teil der Berechnungseinrichtung für die
Bewertungsberechnung vorgesehen ist.
11. Sprachcodierungssystem nach Anspruch 10, bei welchem die Bewertungsberechnung
die Berechnung der Kreuzkorrelation sowie die lineare Prädiktionsanalyse-
Filterberechnung umfaßt und die Analyse-Filterberechnungsausgabe (AC) durch eine
Rekursionsformel unter Verwendung der Analyse-Filterberechnungsausgabe der Schicht
zuvor sowie des gegenwärtigen Deltavektors ausgedrückt wird, wodurch die
Kreuzkorrelationsberechnung durch eine Rekursionsformel ausgedrückt wird.
12. Sprachcodierungssystem nach Anspruch 11, bei welchem die Bewertungsberechnung
die Berechnung der Autokorrelation einschließt und die Analyse-
Filterberechnungsausgabe (AC) durch eine Rekursionsformel unter Verwendung der
Analyse-Filterberechnungsausgabe der Schicht zuvor sowie des gegenwärtigen
Deltavektors ausgedrückt wird, wodurch die Kreuzkorrelationsberechnung durch eine
Rekursionsformel unter Verwendung der Gesamtzahl von L Autokorrelationen der
Analyse-Filterberechnungsausgabe des Anfangsvektors (C&sub0;) sowie der Filter-
Berechnungsausgabe der (L - 1) Typen von Deltavektoren und der (L² - 1)/2 Typen von
Kreuzkorrelationen unter den Analyse-Filterberechnungsausgaben ausgedrückt wird.
13. Sprachcodierungssystem nach Anspruch 6, bei welchem die Reihenfolge des
Anfangsvektors (C&sub0;) und der (L - 1) Typen von Deltavektoren (ΔC) in der Baumstruktur
entsprechend den Eigenschaften des eingegebenen Sprachsignals geändert wird, um den
Anfangsvektor und die Deltavektoren neu anzuordnen.
14. Sprachcodierungssystem nach Anspruch 13, bei welchem der Anfangsvektor und die
Deltavektoren bei jedem Block entsprechend den Eigenschaften des Filters (3) neu
angeordnet werden, um die lineare Analyse-Filterberechnung als eine
Bewertungsberechnung durchzuführen.
15. Sprachcodierungssystem nach Anspruch 14, bei welchem die Leistungen der vom
Filter (3) erhaltenen reproduzierten Signale durch die Bewertungsberechnung bewertet
und die Vektoren in der neuen Reihenfolge von Anfangsvektor (C&sub0;) T erster Deltavektor
(ΔC&sub1;) neu T zweiter Deltavektor (ΔC&sub2;) ... aufeinanderfolgend von dem Vektor an,
dessen Leistung gegenüber der Leistung vor der Filterbehandlung am meisten erhöht
wurde, neu angeordnet werden.
16. Sprachcodierungssystem nach Anspruch 15, bei welchem der Anfangsvektor (C&sub0;)
und die Deltavektoren (ΔC) im voraus derart transformiert werden, daß sie nach der
Filterbehandlung gegenseitig orthogonal sind, so daß alle Vektoren im Deltavektor-
Codeverzeichnis (11) auf einer Hyperebene gleichmäßig verteilt sind.
17. Sprachcodierungssystem nach Anspruch 15, bei welchem die Beträge der Leistungen
mit einer normierten Leistung vergleichen werden, die durch Normierung derselben
erhalten wurde.
18. Sprachcodierungssystem nach Anspruch 13, bei welchem beim Zuweisen der Codes
zum Spezifizieren der Codevektoren die Codes derart zugewiesen werden, daß der zu
den höheren Schichten in der Baumstruktur-Vektoranordnung gehörende
Zwischencodeabstand größer wird als der zu den niederen Schichten gehörende
Zwischencodeabstand.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24417490 | 1990-09-14 | ||
JP3127669A JPH04352200A (ja) | 1991-05-30 | 1991-05-30 | 音声符号化方式 |
PCT/JP1991/001235 WO1992005541A1 (fr) | 1990-09-14 | 1991-09-17 | Systeme de codage de la parole |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69129329D1 DE69129329D1 (de) | 1998-06-04 |
DE69129329T2 true DE69129329T2 (de) | 1998-09-24 |
Family
ID=26463564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69129329T Expired - Fee Related DE69129329T2 (de) | 1990-09-14 | 1991-09-17 | Sprachkodierungsystem |
Country Status (6)
Country | Link |
---|---|
US (1) | US5323486A (de) |
EP (1) | EP0500961B1 (de) |
JP (1) | JP3112681B2 (de) |
CA (1) | CA2068526C (de) |
DE (1) | DE69129329T2 (de) |
WO (1) | WO1992005541A1 (de) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3077944B2 (ja) * | 1990-11-28 | 2000-08-21 | シャープ株式会社 | 信号再生装置 |
SG47586A1 (en) * | 1990-12-21 | 1998-04-17 | British Telecomm | Speech coding |
US5671327A (en) * | 1991-10-21 | 1997-09-23 | Kabushiki Kaisha Toshiba | Speech encoding apparatus utilizing stored code data |
US5864650A (en) * | 1992-09-16 | 1999-01-26 | Fujitsu Limited | Speech encoding method and apparatus using tree-structure delta code book |
IT1257431B (it) * | 1992-12-04 | 1996-01-16 | Sip | Procedimento e dispositivo per la quantizzazione dei guadagni dell'eccitazione in codificatori della voce basati su tecniche di analisi per sintesi |
CA2102080C (en) * | 1992-12-14 | 1998-07-28 | Willem Bastiaan Kleijn | Time shifting for generalized analysis-by-synthesis coding |
JP2591430B2 (ja) * | 1993-06-30 | 1997-03-19 | 日本電気株式会社 | ベクトル量子化装置 |
JP2626492B2 (ja) * | 1993-09-13 | 1997-07-02 | 日本電気株式会社 | ベクトル量子化装置 |
US5462879A (en) * | 1993-10-14 | 1995-10-31 | Minnesota Mining And Manufacturing Company | Method of sensing with emission quenching sensors |
DE69426860T2 (de) * | 1993-12-10 | 2001-07-19 | Nec Corp., Tokio/Tokyo | Sprachcodierer und Verfahren zum Suchen von Codebüchern |
JPH07168913A (ja) * | 1993-12-14 | 1995-07-04 | Chugoku Nippon Denki Software Kk | 文字認識システム |
JP3119063B2 (ja) * | 1994-01-11 | 2000-12-18 | 富士通株式会社 | 符号情報処理方式並びにその符号装置及び復号装置 |
JP2956473B2 (ja) * | 1994-04-21 | 1999-10-04 | 日本電気株式会社 | ベクトル量子化装置 |
US5704003A (en) * | 1995-09-19 | 1997-12-30 | Lucent Technologies Inc. | RCELP coder |
AU767779B2 (en) * | 1995-10-20 | 2003-11-27 | Facebook, Inc. | Repetitive sound compression system |
EP0856185B1 (de) * | 1995-10-20 | 2003-08-13 | America Online, Inc. | Kompressionsystem für sich wiederholende töne |
JP3707116B2 (ja) * | 1995-10-26 | 2005-10-19 | ソニー株式会社 | 音声復号化方法及び装置 |
JP3680380B2 (ja) * | 1995-10-26 | 2005-08-10 | ソニー株式会社 | 音声符号化方法及び装置 |
EP0821848B1 (de) * | 1996-02-15 | 2005-03-16 | Koninklijke Philips Electronics N.V. | Signalübertragungssystem mit verringerter komplexität |
TW317051B (de) * | 1996-02-15 | 1997-10-01 | Philips Electronics Nv | |
US6038528A (en) * | 1996-07-17 | 2000-03-14 | T-Netix, Inc. | Robust speech processing with affine transform replicated data |
US6192336B1 (en) * | 1996-09-30 | 2001-02-20 | Apple Computer, Inc. | Method and system for searching for an optimal codevector |
US6161086A (en) * | 1997-07-29 | 2000-12-12 | Texas Instruments Incorporated | Low-complexity speech coding with backward and inverse filtered target matching and a tree structured mutitap adaptive codebook search |
US6556966B1 (en) * | 1998-08-24 | 2003-04-29 | Conexant Systems, Inc. | Codebook structure for changeable pulse multimode speech coding |
US6480822B2 (en) | 1998-08-24 | 2002-11-12 | Conexant Systems, Inc. | Low complexity random codebook structure |
US6493665B1 (en) * | 1998-08-24 | 2002-12-10 | Conexant Systems, Inc. | Speech classification and parameter weighting used in codebook search |
US6823303B1 (en) * | 1998-08-24 | 2004-11-23 | Conexant Systems, Inc. | Speech encoder using voice activity detection in coding noise |
US6173257B1 (en) * | 1998-08-24 | 2001-01-09 | Conexant Systems, Inc | Completed fixed codebook for speech encoder |
US6714907B2 (en) | 1998-08-24 | 2004-03-30 | Mindspeed Technologies, Inc. | Codebook structure and search for speech coding |
US6212496B1 (en) | 1998-10-13 | 2001-04-03 | Denso Corporation, Ltd. | Customizing audio output to a user's hearing in a digital telephone |
US6850884B2 (en) * | 2000-09-15 | 2005-02-01 | Mindspeed Technologies, Inc. | Selection of coding parameters based on spectral content of a speech signal |
US6842733B1 (en) | 2000-09-15 | 2005-01-11 | Mindspeed Technologies, Inc. | Signal processing system for filtering spectral content of a signal for speech coding |
EP1353323B1 (de) * | 2000-11-27 | 2007-01-17 | Nippon Telegraph and Telephone Corporation | Verfahren, einrichtung und programm zum codieren und decodieren eines akustischen parameters und verfahren, einrichtung und programm zum codieren und decodieren von klängen |
KR20060131793A (ko) * | 2003-12-26 | 2006-12-20 | 마츠시타 덴끼 산교 가부시키가이샤 | 음성ㆍ악음 부호화 장치 및 음성ㆍ악음 부호화 방법 |
KR20080052813A (ko) * | 2006-12-08 | 2008-06-12 | 한국전자통신연구원 | 채널별 신호 분포 특성을 반영한 오디오 코딩 장치 및 방법 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61237519A (ja) * | 1985-04-12 | 1986-10-22 | Mitsubishi Electric Corp | フレ−ム間適応ベクトル量子化符号化装置 |
JPS63240600A (ja) * | 1987-03-28 | 1988-10-06 | 松下電器産業株式会社 | ベクトル量子化方法 |
US4868867A (en) * | 1987-04-06 | 1989-09-19 | Voicecraft Inc. | Vector excitation speech or audio coder for transmission or storage |
CA1337217C (en) * | 1987-08-28 | 1995-10-03 | Daniel Kenneth Freeman | Speech coding |
EP0331857B1 (de) * | 1988-03-08 | 1992-05-20 | International Business Machines Corporation | Verfahren und Einrichtung zur Sprachkodierung mit niedriger Datenrate |
JPH0365822A (ja) * | 1989-08-04 | 1991-03-20 | Fujitsu Ltd | ベクトル量子化符号器及びベクトル量子化復号器 |
US5144671A (en) * | 1990-03-15 | 1992-09-01 | Gte Laboratories Incorporated | Method for reducing the search complexity in analysis-by-synthesis coding |
-
1991
- 1991-09-17 DE DE69129329T patent/DE69129329T2/de not_active Expired - Fee Related
- 1991-09-17 CA CA002068526A patent/CA2068526C/en not_active Expired - Fee Related
- 1991-09-17 JP JP03515016A patent/JP3112681B2/ja not_active Expired - Fee Related
- 1991-09-17 WO PCT/JP1991/001235 patent/WO1992005541A1/ja active IP Right Grant
- 1991-09-17 EP EP91915981A patent/EP0500961B1/de not_active Expired - Lifetime
- 1991-09-17 US US07/856,221 patent/US5323486A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CA2068526A1 (en) | 1992-03-15 |
JP3112681B2 (ja) | 2000-11-27 |
CA2068526C (en) | 1997-02-25 |
EP0500961A1 (de) | 1992-09-02 |
DE69129329D1 (de) | 1998-06-04 |
EP0500961B1 (de) | 1998-04-29 |
WO1992005541A1 (fr) | 1992-04-02 |
EP0500961A4 (de) | 1995-01-11 |
US5323486A (en) | 1994-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69129329T2 (de) | Sprachkodierungsystem | |
DE69029120T2 (de) | Stimmenkodierer | |
DE69915400T2 (de) | Vorrichtung zur Kodierung und Dekodierung von Audiosignalen | |
DE69518452T2 (de) | Verfahren für die Transformationskodierung akustischer Signale | |
DE69412294T2 (de) | System zur prädiktiven Kodierung/Dekodierung eines digitalen Sprachsignals mittels einer adaptiven Transformation mit eingebetteten Kodes | |
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 | |
DE69932460T2 (de) | Sprachkodierer/dekodierer | |
DE60124274T2 (de) | Codebuchstruktur und suchverfahren für die sprachkodierung | |
DE69227650T2 (de) | Digitaler Sprachkodierer | |
DE69529356T2 (de) | Wellenforminterpolation mittels Zerlegung in Rauschen und periodische Signalanteile | |
DE69032168T2 (de) | Dynamisches codebuch zur wirksamen sprachcodierung unter anwendung von algebraischen coden | |
DE60120766T2 (de) | Indizieren von impulspositionen und vorzeichen in algebraischen codebüchern zur codierung von breitbandsignalen | |
DE60006271T2 (de) | Celp sprachkodierung mit variabler bitrate mittels phonetischer klassifizierung | |
DE69608947T2 (de) | Verfahren zur Analyse eines Audiofrequenzsignals durch lineare Prädiktion, und Anwendung auf ein Verfahren zur Kodierung und Dekodierung eines Audiofrequenzsignals | |
DE69604729T2 (de) | Verfahren zur sprachkodierung mittels linearer prädiktion und anregung durch algebraische kodes | |
DE69838305T2 (de) | Orthogonalisierungssuche für die CELP basierte Sprachkodierung | |
DE3854453T2 (de) | CELP Vocoder und Anwendungsverfahren. | |
DE69724126T2 (de) | Audiosignalkodier- und dekodierverfahren und audiosignalkodierer und -dekodierer | |
DE19647298C2 (de) | Kodiersystem | |
DE3874427T2 (de) | Linearer praediktionsvocoder mit code-anregung. | |
DE69628103T2 (de) | Verfahren und Filter zur Hervorbebung von Formanten | |
DE3853916T2 (de) | Digitaler-sprachkodierer mit verbesserter vertoranregungsquelle. | |
DE69810361T2 (de) | Verfahren und Vorrichtung zur mehrkanaligen akustischen Signalkodierung und -dekodierung | |
DE68912692T2 (de) | Zur Sprachqualitätsmodifizierung geeignetes Übertragungssystem durch Klassifizierung der Sprachsignale. | |
DE60126149T2 (de) | Verfahren, einrichtung und programm zum codieren und decodieren eines akustischen parameters und verfahren, einrichtung und programm zum codieren und decodieren von klängen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |