PatentDe  


Dokumentenidentifikation DE69526017T2 21.11.2002
EP-Veröffentlichungsnummer 0704836
Titel Vorrichtung zur Vektorquantisierung
Anmelder Kabushiki Kaisha Toshiba, Kawasaki, Kanagawa, JP
Erfinder Miseki, Kimio, Minato-ku, Tokyo 105, JP;
Amada, Tadashi, Minato-ku, Tokyo 105, JP
Vertreter Henkel, Feiler & Hänzel, 81675 München
DE-Aktenzeichen 69526017
Vertragsstaaten DE, FR, GB, IT
Sprache des Dokument EN
EP-Anmeldetag 29.09.1995
EP-Aktenzeichen 953069523
EP-Offenlegungsdatum 03.04.1996
EP date of grant 27.03.2002
Veröffentlichungstag im Patentblatt 21.11.2002
IPC-Hauptklasse G10L 19/00
IPC-Nebenklasse

Beschreibung[de]

Die Erfindung betrifft eine Vorrichtung zur Vektorquantifizierung, die zum Kodieren von Sprache oder eines Bildes verwendet wird.

Bei einem Vektorquantifizierungsschema wird ein Block, der aus einer Mehrzahl von durch Abtasten von Sprachsignalen und ähnlichem erhaltener Proben besteht, als ein Punkt in einem mehrdimensionalen Vektorraum betrachtet, und die Sprachsignale werden gleichzeitig kodiert. In dem Vektorquantifizierungsschema wird ein Zielvektor durch einen der Vektoren ausgedrückt, der durch einem Index bezeichnet ist. Das Vektorquantifizierungsschema wird gewöhnlich bei einer Sprach-Kodiervorrichtung zur Kompression und Kodierung von einem Sprachsignal für eine Radioübertragung verwendet.

Entsprechend einem kürzlich als CELP-Schema (Code- Excited Linear Prediction Scheme) vorgestellten Sprach- Kodierschema werden die Form der Pitch- oder Tonhöhen- Komponente eines Anregungssignals, das als Sprachquelle dient, und die Form einer Rauschkomponente durch Vektorquantifizierung mit zwei Codebüchern ausgedrückt, d. h. einem Adaptiv-Codebuch und einem Rausch-Codebuch, und ein durch miteinander Kombinieren dieser Formen erhaltenes Anregungssignal wird zum Durchlaufen eines Synthesefilters veranlasst, das eine sich mit der Zeit ändernde Charakteristik (Filterkoeffizient) hat, wodurch eine synthetisierte Sprache erzeugt wird. Damit die Qualität der synthetisierten Sprache hoch wird, führt ein Kodierabschnitt eines Anregungssignals eine Kodierung so durch, dass die synthetisierte Sprache einen minimalen subjektiven Fehler hat. Genauer gesagt, ein Fehlerbewertungsparameter, der sich mit der Zeit ändert, wird aus der Eingabesprache entnommen, um einen Index auszuwählen, um Codevektoren zu bezeichnen bzw. zu designieren, die aus dem Adaptiv-Codebuch und dem Rausch-Codebuch zu entnehmen sind. Daher kann bei einem herkömmlichen CELP-Schema eine synthetisierte Sprache mit relativ hoher Qualität mit einer niedrigen Bitrate von 4 Kilobit/Sekunde (kBit/sec) erzeugt werden.

Jedoch ist bekannt, dass wenn das herkömmliche CELP- Schema oder ähnliches bei einer Sprach-Kodiervorrichtung für mobile Radiokommunikation verwendet wird, ein Code-Fehler auf dem Übertragungsweg einen zu übertragenden Index beeinflusst, so dass die Qualität der synthetisierten Sprache beachtlich beeinträchtigt werden kann. Wenn der Übertragungsweg einen schlechten Zustand hat, kann ein solcher Fehler nicht vermieden werden, auch wenn ein Fehlerkorrektur-Code eingesetzt wird. Daher ist es wichtig, um eine praktisch einsetzbare Kodiervorrichtung zu erhalten, dass ein Mechanismus zur Minimierung der Qualitätsbeeinträchtigung, die durch einen Code-Fehler auf dem Übertragungsweg verursacht wird, in dem Prozess der Sprach-Kodierung inkorporiert ist.

Als ein herkömmlich bekanntes Verfahren als Gegenmaßnahme gegen einen Code-Fehler in einer Sprach- Kodiervorrichtung sind folgende Verfahren erhältlich. Das heißt, eine Gegenmaßnahme, bei der im Voraus Redunanz in die als Kodierausgaben dienenden, übertragenen Parameter- Kandidaten eingebaut wird, eine Gegenmaßnahme, bei der die Übereinstimmung zwischen einem Codevektor und einem Index im Voraus eingestellt wird, um die Beeinträchtigung zu minimieren, die durch einen Code-Fehler erzeugt wird, und ähnliches, das bei der Ausgestaltung einer Kodiervorrichtung durchgeführt wird. Solch ein Verfahren ist beispielsweise in "Training Method of the Excitation Codebooks for CELP", von T. Moriya u. a., in The Transactions of the Institute of Electronics, Information, and Communication Engineers, Bd. J77-A, Nr. 3, Seiten 485-493, März 1994, beschrieben. Wenn bei einer Kodiervorrichtung, die zum Einsatz dieses Verfahren gestaltet ist, der Code der durch die Kodiervorrichtung ausgewählten Index-Information unter einem Code-Fehler an einem Übertragungsweg leidet, kann der von einer Dekodiervorrichtung reproduzierte Codevektor in vorteilhafter Weise im Mittel eine Qualitätsbeeinträchtigung unterdrücken.

Jedoch wird bei der oben beschriebenen Sprach- Kodiervorrichtung der Einfluss der Qualitätsbeeinträchtigung, die durch einen Code-Fehler auf einem Übertragungsweg verursacht wird, nicht bei dem Schritt der Auswahl eines Index betrachtet, der von der Kodiervorrichtung bei ihrem tatsächlichen Betrieb ausgeführt wird. Daher wird der Fehler des Codevektors unabhängig von einem Code-Fehler bewertet, und ein Index-Code des Rausch-Codebuchs wird auf der Grundlage nur des Bewertungswertes ausgewählt. Genauer gesagt, wenn ein Code-Fehler in den Code eines ausgewählten Index auftritt, wird das Ausmaß des Fehlers nicht bewertet. Daher, wenn ein Code-Fehler in einem Index-Code auftritt, tritt ein großer Fehler in einem Codevektor auf, der auf der Dekodierseite in Abhängigkeit von einem Code-Fehler ausgelesen wird, wobei die Qualität des wiedergegebenen Signals abrupt verschlechtert sein kann.

Unter den Vektorquantifizierungsschemata ist als ein Vektorquantifizierungsschema, das bei einer Sprach-Kodierung mit einer Bitrate von 8 kBit/sec verwendet wird, das VSELP- Schema (Vector Sum Excited Linear Prediction Scheme), bekannt. Das VSELP-Schema ist in "VECTOR SUM EXCITED LINEAR PREDICTION (VSELP) SPEECH CODING AT 8 KBPS", von Ira A. Gerson u. a. in Proc. IEEE Int. Conf. On Acoustics, Speech and Signal Processing, Seiten 461-464, April 1990, beschrieben.

Ein kennzeichnendes Merkmal des VSELP-Schemas ist das folgende. Das heißt, wenn die Anzahl der Bits an einem Index, der als Ausgabe-Code der Vektorquantifizierung dient, gleich p ist, werden p Basisvektoren verwendet, die im Voraus gespeichert sind, wobei 2P Codevektoren aus Kombinationen zwischen den Summen oder Differenzen zwischen den p Basisvektoren ausgedrückt werden.

Genauer gesagt werden p Basisvektoren Vm(n) mit einem Koeffizienten θim multipliziert, wobei die Multiplikationsergebnisse miteinander addiert werden, um einen Codevektor Ui(n) zu erhalten. In diesem Fall bezeichnet das Bezugszeichen Vm(n) den m-ten Basisvektor, das Bezugszeichen Ui(n) bezeichnet den Codevektor eines Index i, und der Koeffizient θim wird eingestellt, um +1 oder -1 zu sein, in Abhängigkeit der Werte von i und m. Auf diese Art ist es möglich, den optimalen Index i zu suchen, indem eine rekursive Gleichung verwendet wird. Daher, wenn die Anzahl p der Bits des Index i zwischen 7 und 9 ist, kann eine Berechnungsmenge, die für eine Vektorquantifizierung benötigt wird, klein gehalten werden, so dass eine Echtzeitbearbeitung durchgeführt werden kann.

Bei dem herkömmlichen Vektorquantifizierungsschema ist jedoch die Reduktion der Berechnungsmenge, die für die Indexsuche benötigt wird, nicht ausreichend, und die Echtzeitverarbeitung kann nicht durchgeführt werden, wenn die Zahl p der Bits des Index auf 10 oder mehr gesetzt wird.

Wie es vorangehend beschrieben wurde, kann bei der Vektorquantifizierungsvorrichtung mit dem konventionellen Schema, wenn die Zahl der Bits des Index groß ist, die Echtzeitverarbeitung aufgrund eines Anstiegs der für die Suche nach dem vorzuziehenden Index benötigten Berechnungsmenge nicht leicht durchgeführt werden.

Bei einem Sprach-Kodierschema beruhend auf einem linearen Voraussage-Analyseverfahren, das durch ein CELP- Schema dargestellt ist, werden ein Anregungssignal, eine Verstärkung oder -Gain, und ein Filterkoeffizient als Hauptparameter verwendet, die zu übertragen sind.

Das CELP-Schema wird im Anschluss kurz beschrieben. Die Sprach-Kodiervorrichtung analysiert Eingabesprache, die in Einheiten von Frames oder Rahmen unterteilt ist, um die Filterkoeffizienten eines Gewichtungssynthesefilters zu bestimmen. Andererseits werden zwei Arten von Codevektoren aus dem Adaptiv-Codebuch und dem Rausch-Codebuch so berechnet, dass der Fehler zwischen der gewichteten Spracheingabe, die erhalten wird, indem die Eingabesprache veranlasst wird, durch einen vorempfangenen Gewichtungsabschnitt zu laufen, und der dekodierten Sprachausgabe aus dem gewichteten Synthesefilter minimiert wird, wobei Verstärkungsfaktoren, mit denen die Codevektoren multipliziert werden, erhalten werden. Die beiden Arten von Codevektoren, die mit den Verstärkungsfaktoren multipliziert sind, werden synthetisiert, und der sich ergebende Vektor wird als Anregungssignal für das gewichtete Synthesefilter verwendet. Die Information, wie das Anregungssignal, die Verstärkungsfaktoren und der Filterkoeffizient des Synthesefilters werden zu der Sprachdekodiervorrichtung als kodierte Parameter gesendet. Die Sprachdekodiervorrichtung erzeugt dekodierte Sprache auf der Grundlage der empfangenen Parameter.

Bei den Sprach-Kodier-/Dekodier-Vorrichtungen ist ein wichtiges Problem, wie die Menge an Information der kodierten Parameter, die von der Kodiervorrichtung gesendet werden, reduziert werden kann. Verschiedene Maßnahmen zum Verringern der Informationsmenge der kodierten Parameter wurden durchgeführt.

Beispielsweise wird das Anregungssignal zum Anregen des Synthesefilters durch Modellieren eines Signals erhalten, das durch menschliche Stimmbänder erhalten wurde, und hat ein charakteristisches Merkmal, dass die Leistung des Anregungssignals sich moderat mit der Zeit ändert. Als ein Verfahren zum Verringern der Anzahl der benötigten Bits zur Quantifizierung bei der Übertragung der Index-Information des Gain-Codebuchs, wurde ein Verfahren mit diesem kennzeichnenden Merkmal vorgeschlagen. Genauer gesagt, die Leistung eines Anregungssignals/-signalen für ein vorangehendes Frame(s) wird gespeichert, und die Leistung des Codevektors beim gegenwärtigen Frame wird mit der Leistung der gespeicherten Anregungssignale verglichen, um den Wert eines Verstärkungsfaktors vorauszusagen. Ein Index des Codebuchs, der die Differenz zwischen dem Voraussagewert und dem Wert des tatsächlichen Verstärkungsfaktors voraussagt, wird quantifiziert (kodiert) und an die Dekodierseite übertragen, und auf der Dekodierseite wird der Wert des tatsächlichen Verstärkungsfaktors durch einen Vorgang entgegengesetzt zum oben beschriebenen Kodiervorgang erhalten.

Da jedoch dieses Verfahren die Information der vorangehenden Frames verwendet, ist die Differenz zwischen der Voraussage des Verstärkungsfaktors und dem Wert des tatsächlichen Verstärkungsfaktors an den Übertragungsabschnitten groß, wie etwa bei einem ansteigenden Abschnitt und einem abfallenden Abschnitt sowie einem Änderungsabschnitt der Stimme der Eingabesprache, so dass eine effektive Quantifizierung nicht immer erwartet werden kann.

Wie es vorangehend beschrieben wurde, wird bei einer herkömmlichen Technik, bei der bei der Übertragung der Information eines Verstärkungsfaktors, mit dem der Codevektor bei der die Sprach-Kodier-/Dekodier-Vorrichtungen mittels des CELP-Schemas multipliziert wird, die Information eines vorangehenden Frames verwendet, wenn der Verstärkungsfaktor zur Verringerung der Anzahl der Bits für die Quantifizierung der Index-Information eines Verstärkungsfaktor-Codebuchs quantifiziert wird, wobei die Leistung der Quantifizierung bei Übergangsabschnitten eines Eingabesignals nicht immer vorzuziehen ist.

Die Erfindung wurde gemacht, um mit den oben beschriebenen Umständen fertig zu werden, und hat ihre erste Aufgabe darin, eine Vektorquantifizierungsvorrichtung bereitzustellen, die in der Lage ist, abrupte Qualitätsverschlechterung eines wiedergegebenen Signals zu minimieren, auch wenn ein Code-Fehler auf dem Übertragungsweg vorhanden ist.

Es ist wünschenswert, eine Vektorquantifizierungsvorrichtung bereitzustellen, die in der Lage ist, vorzugsweise eine Indexsuche mit einer hohen Geschwindigkeit durchzuführen, auch wenn die Anzahl der Bits in dem Index groß ist.

Es ist weiter wünschenswert, eine Vektorquantifizierungsvorrichtung bereitzustellen, die die Anzahl der Bits verringern kann, die zur Quantifizierung bei der Übertragung eines Verstärkungsfaktor-Codevektors benötigt werden, und die ausgezeichnete Quantifizierungsleistung bei dem Übergangsabschnitt des Eingabesignals hat.

Entsprechend der Erfindung wird eine Vektorquantifizierungsvorrichtung zum Ausdrücken eines Zielwerts mit einem Codevektor, der von einem kodierten Index bezeichnet wird, bereitgestellt, die gekennzeichnet ist durch:

ein Fehlerbewertungsmittel zum Bewerten eines Fehlers eines designierten Codevektors unter Betrachtung eines Code- Fehlers des kodierten Index; und

einem Mittel zum Auswählen beruhend auf dem Bewertungsergebnis des Fehlerbewertungsmittels zumindest eines Index aus einer Mehrzahl von Indexkandidaten, von denen jeder ein Index sein kann, der zum Ausdruck eines Zielvektors verwendet werden kann.

Die Erfindung kann auch eine Vektorquantifizierungsvorrichtung zum Ausdruck eines Zielvektors mit einem Codevektor, der einen kodierten Index designiert, umfassen, die enthält:

ein erstes Bewertungsmittel zum Bewerten eines Fehlers eines designierten Codevektors ohne Betrachtung eines Code- Fehlers des kodierten Index;

ein zweites Bewertungsmittel zum Bewerten eines Fehlers des designierten Codevektors unter Betrachtung des Code- Fehlers des kodierten Index;

ein erstes Auswahlmittel zum Auswählen auf der Grundlage eines Bewertungsergebnisses des ersten Bewertungsmittels einer geringen Anzahl von Indexkandidaten aus einer großen Anzahl von Indexkandidaten, von denen jeder ein Index sein kann, der zum Ausdruck des Zielvektors verwendet wird; und

ein zweites Auswahlmittel zum Auswählen auf der Grundlage eines Bewertungsergebnisses des zweiten Bewertungsmittels zumindest einen Index aus einer geringen Anzahl von Indexkandidaten, die von dem ersten Auswahlmittel ausgewählt wurden.

Die Vorrichtung kann auch enthalten:

ein Eingabemittel zum Eingeben von Information, die mit einem Code-Fehler an einem Übertragungsweg zum Übertragen von Information des Index zusammenhängt, und ein Mittel zum Einstellen des Ausmaßes der Betrachtung des Code-Fehlers durch das zweite Bewertungsmittel auf der Grundlage der Informationseingabe durch das Eingabemittel.

Das Fehlerbewertungsmittel berechnet den Fehler des Codevektors, um diesen zu bewerten. Jedoch kann als ein Fehlerbewertungsverfahren zusätzlich zu einem Verfahren zum tatsächlichen Berechnen des Fehlers des Abstands zwischen Vektoren ein einfaches Fehlerbewertungsverfahren verwendet werden, das durch Kombinieren einer Kombination eines Wertes entsprechend dem inneren Produkt zwischen einem Synthesevektor und einem Zielvektor erhalten wird, einem Wert entsprechend der Leistung des Synthesevektors und einem Wert, der diesen Werten nachfolgt, oder ein Verfahren zum Berechnen eines Fehlers der direkten Form des Codevektors, der durch einen Code-Fehler verursacht wird, ohne as ein Synthesefilter verwendet wird.

Die Erfindung liefert auch eine Sprachkodiervorrichtung, die gekennzeichnet ist durch:

ein Rausch-Codebuch zum Speichern einer Mehrzahl von Rausch-Codevektoren;

ein Adaptiv-Codebuch zum Speichern eines Adaptiv- Codevektors, der eine Sprachquelle einer Spracheingabe simuliert;

einem Synthesemittel zum Synthetisieren eines Rausch- Codevektors, der aus dem Rausch-Codebuch gelesen wurde, mit einem Adaptiv-Codevektor, der aus dem Adaptiv-Codebuch gelesen wurde, wobei das Synthesemittel den Adaptiv- Codevektor auffrischt, der in dem Adaptiv-Codebuch gespeichert ist, beruhend auf dem synthetisierten Signal;

einem Mittel, das durch das synthetisierte Signal angeregt wird, um eine synthetisierte Sprache zu erzeugen; und

ein Kodiermittel zum Suchen eines Index des Rausch- Codevektors, der aus dem Rausch-Codebuch zu lesen ist, und eines Index des Adaptiv-Codevektors, der aus dem Adaptiv- Codebuch zu lesen ist, unter Betrachtung eines Code-Fehlers, so dass ein Fehler zwischen der Eingabesprache und der synthetisierten Sprache minimiert wird, wodurch beide Indices kodiert werden.

Die Erfindung liefert des Weiteren ein Vektorquantifizierungsverfahren zum Ausdrücken eines Zielvektors mit einem Codevektor, der durch einen Codeindex designiert wird, das durch das Umfassen der Schritte gekennzeichnet ist:

Bewerten eines Fehlers einer designierten Codevektors unter Betrachtung eines Code-Fehlers des kodierten Index; und

Auswahl auf der Grundlage des Bewertungsergebnisses der Fehlerbewertung zumindest eines Index aus einer Mehrzahl von Indexkandidaten, von denen jeder ein Index sein kann, der zum Ausdrücken eines Zielvektors verwendet wird.

Bei einer Sprachkodiervorrichtung mit Vektorquantifizierung, das heißt bei einer Sprachkodiervorrichtung beruhend auf einem Verfahren zum Ausdrücken synthetisierter Sprache mit einem Synthesefilter und einem Anregungssignal zum Anregen des Synthesefilters und zum Ausdrücken einer Rauschkomponente des Anregungssignals mit einem Rausch-Codevektor, der durch einen Index designiert wird, kann ein Verfahren zur Auswahl eines Index auf den Prozess zum Auswahl eines Index angewendet werden, der zum Ausdrücken der Rauschkomponente des Anregungssignals aus einer großen Anzahl von Indices verwendet wird. In diesem Fall wird Gewichtungsfehlerbewertung auf einem Codevektor durchgeführt.

Eine Vektorquantifizierungsvorrichtung zum Suchen eines Index entsprechend einem gewünschten Repräsentativ-Vektor auf der Grundlage eines Fehlers eines Repräsentativ-Vektors, der mit einem Zielvektor zusammenhängt, um den Index auszugeben, der gesucht wird, kann enthalten:

ein repräsentatives Vektorerzeugungsmittel zum Erzeugen eines Repräsentativ-Vektors, der als ein Element ein Produkt zwischen einem Element eines N-dimensionalen Ausgangs- oder Siebvektors und ein Element sn eines N-dimensionalen Polaritätsvektors hat, der ein Element einer Polarität hat, durch das der N-dimensionale Ausgangsvektor multipliziert wird, einem Polaritäts-Informationsindex-Erzeugungsmittel zum Erzeugen eines Polaritäts-Informationsindex entsprechend einer Polarität eines jeden Elements des Polaritätsvektors und einem Mittel zum Erzeugen eines Polaritätsvektors auf der Grundlage des Polaritäts-Informationsindex.

Genauer gesagt erzeugt das Repräsentativ- Vektorerzeugungsmittel einen Repräsentativ-Vektor, der als ein Element ein Produkt hat vn · sn (n = 0 bis N - 1 und sn = 1) zwischen einem Element vn des N-dimensionalen Ausgangsvektors und dem Element sn entsprechend dem N- dimensionalen Polaritätsvektor. In diesem Fall wird in dem Polaritäts-Informationsindex-Erzeugungsmittel die Polarität des Elements sn des Polaritätsvektors, der durch die Polaritäts-Information designiert ist, um die Polarität des Elements sn des Polaritätsvektors zu designieren, das von dem Polaritäts-Informationsindex-Erzeugungsmittel erzeugt wird, vorzugsweise so eingestellt, dass sk (k = L(p,n) (k und p sind ganze Zahlen, die die Ungleichung 0 ≤ k ≤ p - 1; 1 ≤ p ≤ N) erfüllen), und die Polarität sk wird veranlasst, dem Wert bk eines k-ten Bits der Polaritäts-Information zu entsprechen, wodurch ein p-Bit Polaritäts-Informationsindex erzeugt wird.

In diesem Fall ist die Funktion L(p,n) vorzugsweise so eingestellt, dass sie gleich einem Rest ist, der durch Teilen von n durch p erhalten wird, oder gleich der maximalen ganzen Zahl, die nicht np/N übersteigt.

Des Weiteren wird ein partielles inneres Produkt zwischen dem Zielvektor und dem Repräsentativ-Vektor bezüglich eines n-ten Vektorelements berechnet, das eine Bedingung k = L(p,n) des Ausgangs- oder Seed-Vektors erfüllt, und eine Polarität des partiellen inneren Produkts wird vorzugsweise so gesetzt, dass sie die Polarität sk ist.

Eine erweiterte Vektorquantifizierungsvorrichtung umfasst ein Ausgangsvektorspeichermittel, in dem eine Mehrzahl N-dimensionaler Ausgangsvektoren gespeichert sind, ein Ausgangsvektor-Indexsuchmittel zum Suchen eines Ausgangsvektors-Index zur Auswahl eines der Mehrzahl Ausgangsvektoren, die in dem Ausgangsvektorspeichermittel gespeichert sind. In diesem Fall erzeugt ein Repräsentativ- Vektor-Erzeugungsmittel einen Repräsentativ-Vektor mit einem Element, als ein Element, gleich einem Produkt zwischen einem Element des N-dimensionalen Ausgangsvektors, der durch das Ausgangsvektor-Indexsuchmittel ausgewählt ist, und einem Element eines N-dimensionalen Ausgangsvektors, der als ein Element eine Polarität hat, durch die jedes Element des · Ausgangsvektors multipliziert wird.

Das Ausgangsvektor-Indexsuchmittel ist dadurch gekennzeichnet, dass es umfasst: Mittel zum Verringern der Anzahl der Indices des Ausgangsvektors auf J (0 < J < < I) mit der folgenden Beziehung:

cor(i) = fk

die berechnet wird, wenn ein Ausgangsvektor Vi (i ist ein Ausgangsvektor-Index und erfüllt die Bedingung i = 0 bis I - 1) als Ausgangsvektor verwendet wird, beruhend auf einem partiellen inneren Produkt fk zwischen dem Zielvektor und dem Codevektor bezüglich eines n-ten Vektorelements, das eine Bedingung k = L(p,n) erfüllt (k und p sind ganze Zahlen, die erfüllen 0 ≤ k ≤ p - 1, 1 ≤ p ≤ N (N ist eine ganze Zahl)) des Ausgangsvektors Vi für jeden Vektor Vi.

Eine Vektorquantifizierungsvorrichtung kann des Weiteren dadurch gekennzeichnet sein, dass in einer Vorrichtung, die erste und zweite Eingabe-Vektoren in Einheiten von Frames empfängt und einen Verstärkungsfaktor quantifiziert, mit dem der zweite Eingangsvektor multipliziert wird, ein Invers- Normierungskoeffizient mit dem ersten Eingangsvektor eines gegenwärtigen Frames berechnet wird, und ein normierter Verstärkungsfaktor invers mit dem Invers- Normierungskoeffizienten normiert wird, wodurch der Verstärkungsfaktor berechnet wird, durch den der zweite Eingangsvektor multipliziert wird.

Wenn der Invers-Normierungskoeffizient berechnet ist, kann ein Vektor, der durch Skalieren des ersten Eingangsvektors des gegenwärtigen Frames erhalten wird, verwendet werden.

Eine weitere Vektorquantifizierungsvorrichtung ist dadurch gekennzeichnet, dass bei einer Vektorquantifizierungsvorrichtung, die erste und zweite Eingabe-Vektoren in Einheiten von Frames empfängt und einen Verstärkungsfaktor quantifiziert, durch den der zweite Vektor multipliziert wird, ein Normierungskoeffizient mit dem ersten Eingangsvektor eines gegenwärtigen Frames berechnet wird, und ein Verstärkungsfaktor, durch den der erste Vektor multipliziert wird, mit dem Normierungskoeffizienten normiert wird.

In diesem Fall, wenn der Normierungskoeffizient berechnet wird, kann ein Eingangs-Vektor, der durch Skalieren des ersten Eingangs-Vektors des gegenwärtigen Frames erhalten wird, verwendet werden.

Es kann auch eine Sprachkodiervorrichtung bereitgestellt werden, in der ein Adaptiv-Codevektor und ein Rausch- Codevektor, die jeweils aus einem Adaptiv-Codebuch und einem Rausch-Codebuch erhalten wurden, miteinander synthetisiert werden, nachdem der Adaptiv-Codevektor und der Rausch- Codevektor durch jeweilige Verstärkungsfaktorvektoren multipliziert sind, die aus einem Verstärkungsfaktor-Codebuch erhalten werden, wobei ein synthetisierter Vektor als ein Anregungssignal an ein Synthesefilter geliefert wird, das einen Filterkoeffizient hat, der auf der Grundlage eines Analyseergebnisses eines Eingabe-Sprachsignals in Einheiten von Frames beruht, wobei das Adaptiv-Codebuch, das Rausch- Codebuch und das Verstärkungsfaktor-Codebuch nach einem Adaptiv-Codevektor, einem Rausch-Codevektor und einem Verstärkungs-Codevektor durchsucht werden, so dass ein Fehler zwischen einer Sprachsignalausgabe des Synthesefilters und einem wahrgenommenen Gewichtungssignal des Eingabe- Sprachsignals minimiert wird, und wobei der Adaptiv- Codevektor, der Rausch-Codevektor und der Verstärkungs- Codevektor, der aus dem Verstärkungsfaktor-Codebuch erhalten wurde, und der Filterkoeffizient des Synthesefilters als Kodierparameter ausgegeben werden, die jeweils den Adaptiv- Codevektor, den Rausch-Codevektor, den Verstärkungsfaktorvektor und den Filterkoeffizienten darstellen, wobei die Vorrichtung Berechnungsmittel umfasst, um einen Invers-Normierungskoeffizienten zu berechnen, in dem der Adaptiv-Codevektor eines gegenwärtigen Frames, der aus dem Adaptiv-Codebuch erhalten wurde, verwendet wird, wobei Invers-Normierungsmittel zum Invers-Normieren eines Normierungsverstärkungsfaktors mit dem Invers- Normierungskoeffizienten, der durch das Berechnungsmittel berechnet wurde, um einen Verstärkungsfaktor zu erhalten, mit dem der zweite Vektor multipliziert wird, und ein Mittel zum Ausgeben eines Kodierparameters, der den normierten Verstärkungsfaktor darstellt, enthält.

Es kann auch eine Sprach-Dekodiervorrichtung bereitgestellt werden, bei der ein Adaptiv-Codevektor und ein Rausch-Codevektor, die aus einem Adaptiv-Codebuch und einem Rausch-Codebuch erhalten wurden, miteinander synthetisiert werden, nachdem der Adaptiv-Codevektor und der Verstärkungs- Codevektor jeweils mit Verstärkungsfaktorvektoren multipliziert wurden, die aus einem Verstärkungsfaktor- Codebuch erhalten wurden, wobei ein Synthesevektor als ein Anregungssignal an ein Synthesefilter mit einem Filterkoeffizienten, der auf der Grundlage eines Analyseergebnisses eines Eingabe-Sprachsignals in Einheiten von Frames bestimmt wird, zugeführt wird, wobei das Sprachsignal von dem Synthesefilter dekodiert wird, wobei die Vorrichtung umfasst: Berechnungsmittel zum Berechnen eines Invers-Normierungskoeffizientens mit dem Adaptiv-Codevektor eines gegenwärtigen Frames, der aus dem Adaptiv-Codebuch erhalten wurde, ein Invers-Normierungsmittel zum Invers- Normieren eines Normierungsverstärkungsfaktors mit dem Invers-Normierungskoeffizienten, der von dem Berechnungsmittel berechnet wurde, um einen Verstärkungsfaktor zu erhalten, mit dem der Rausch-Codevektor zu multiplizieren ist.

Zusätzliche Aufgaben und Vorteile der Erfindung werden in der folgenden Beschreibung ausgeführt und sind teilweise aus der Beschreibung offensichtlich, oder können durch Praktizieren der Erfindung erlernt werden.

Die Aufgaben und Vorteile der Erfindung können verwirklicht und erhalten werden mittels der Einrichtungen und Kombinationen, die speziell in den beiliegenden Ansprüchen ausgeführt sind.

Die Erfindung kann aus der folgenden detaillierten Beschreibung vollständiger verstanden werden, wenn diese im Zusammenhang mit den beiliegenden Zeichnungen gesehen wird, in denen zeigt:

Fig. 1 ein Blockdiagramm, das eine Vektorquantifizierungsvorrichtung entsprechend der Erfindung auf einer Kodiervorrichtungsseite der ersten Ausführungsform zeigt;

Fig. 2 ein Flussdiagramm, das eine Codeauswahlverarbeitung der ersten Ausführungsform zeigt;

Fig. 3 ein Blockdiagramm auf einer Dekodiervorrichtungsseite der ersten Ausführungsform;

Fig. 4 ein Blockdiagramm, das eine Vektorquantifizierungsvorrichtung entsprechend der zweiten Ausführungsform auf einer

Kodiervorrichtungsseite der zweiten Ausführungsform zeigt;

Fig. 5 ein Prinzipblockdiagramm, das ein drittes Beispiel einer Vektorquantifizierungsvorrichtung zeigt;

Fig. 6 ein Blockdiagramm, das eine Sprachkodiervorrichtung entsprechend einem dritten Beispiel zeigt;

Fig. 7 ein detailliertes Blockdiagramm, das einen Vorauswahlabschnitt von Fig. 6 zeigt;

Fig. 8 ein Blockdiagramm, das einen weiteren Vorauswahlabschnitt zeigt;

Fig. 9 ein Flussdiagramm, das die Verarbeitung des in Fig. 8 gezeigten Vorauswahlabschnitts zeigt;

Fig. 10 ein detailliertes Blockdiagramm, das einen Hauptauswahlabschnitt in Fig. 6 zeigt;

Fig. 11 ein Flussdiagramm, das die Verarbeitungsprozeduren einer Berechnung von polarisierter Information in dem Hauptauswahlabschnitt zeigt, der in Fig. 10 dargestellt ist;

Fig. 12 ein Flussdiagramm, das Verarbeitungsprozeduren des Hauptauswahlabschnitts zeigt, der in Fig. 10 dargestellt ist;

Fig. 13 ein Flussdiagramm, das Verarbeitungsprozeduren in einem Rausch-Codevektorwiedergabeabschnitt entsprechend dem dritten Beispiel zeigt;

Fig. 14 ein Blockdiagramm, das eine Sprachdekodiervorrichtung entsprechend dem dritten Beispiel zeigt;

Fig. 15 ein Blockdiagramm, das eine Sprachkodiervorrichtung entsprechend einem vierten Beispiel zeigt;

Fig. 16 ein Blockdiagramm, das eine Verstärkungsfaktor- Quantifizierungsvorrichtung entsprechend einem fünften Beispiel zeigt;

Fig. 17 ein Blockdiagramm, das eine Sprachkodiervorrichtung entsprechend einem sechsten Beispiel zeigt;

Fig. 18 ein Signalverlaufdiagramm, das einen Adaptiv- Codevektor, einen Rausch-Codevektor und ein Anregungssignal zum Erläutern des Betriebs des sechsten Beispiels zeigt;

Fig. 19 ein Blockdiagramm, das eine Sprachdekodiervorrichtung entsprechend einem siebenten Beispiel zeigt;

Fig. 20 ein Blockdiagramm, das eine Verstärkungsfaktor- Quantifizierungsvorrichtung entsprechend einem achten Beispiel zeigt;

Fig. 21 ein Blockdiagramm, das eine Verstärkungsfaktor- Quantifizierungsvorrichtung entsprechend einem neunten Beispiel zeigt;

Fig. 22 ein Blockdiagramm, das eine Sprachkodiervorrichtung entsprechend einem zehnten Beispiel zeigt;

Fig. 23 ein Blockdiagramm, das eine Sprachdekodiervorrichtung entsprechend einem elften Beispiel zeigt; und

Fig. 24 ein Blockdiagramm, das eine Verstärkungsfaktor- Quantifizierungsvorrichtung entsprechend einem zwölften Beispiel zeigt.

Bevorzugte erste und zweite Ausführungsformen der Vektorquantifizierungsvorrichtungen entsprechend der Erfindung werden nun unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben.

(Erste Ausführungsform)

Fig. 1 ist ein Blockdiagramm einer Sprachkodiervorrichtung entsprechend der ersten Ausführungsform, auf die eine Vektorquantifizierungsvorrichtung entsprechend der Erfindung angewendet wird. Die Ausführungsform beschreibt ein Beispiel, bei dem die Erfindung auf eine Sprachkodiervorrichtung mit einem Sprachkodierschema angewendet wird, das als CELP-Schema dargestellt ist, mit der folgenden schematischen Anordnung.

Das heißt, vier Informationsunterelemente oder -items, nämlich Synthesefilterkoeffizienten-Information, Tonhöhen- Information, die Index-Information eines Rausch-Codebuchs und die Index-Information eines Verstärkungsfaktors-Codebuchs werden aus der Spracheingabe extrahiert, und die Tonhöhen- Information oder Pitch-Information, die Index-Information des Rausch-Codebuchs und die Index-Information des Verstärkungsfaktors-Codebuchs werden kodiert, um einen Fehler der synthetisierten Sprache zu verringern (den Fehler zwischen der synthetisierten Sprache und einem Zielvektor). Die Items der kodierten Information werden zusammen mit dem Synthesefilterkoeffizienten-Information übertragen.

Bei dieser Ausführungsform wird, wie später beschrieben wird, die Suche nach einem Index eines beliebigen Codebuchs durch ein in der Erfindung einzigartiges Verfahren durchgeführt. Vor der detaillierten Beschreibung der Anordnung in Fig. 1 werden Prozeduren für das Suchen des Index des Rausch-Codebuchs entsprechend der Erfindung im Anschluss unter Bezugnahme auf Fig. 2 erläutert.

Im Schritt S0 wird ein Zielvektor beruhend auf der Spracheingabe eingestellt.

Im Schritt S1 wird der Fehler der synthetisierten Sprache ohne Betrachtung eines Code-Fehlers bewertet, und die Indexkandidaten des Rausch-Codebuchs werden ausgewählt. Das heißt, die Indices stellen eine geeignete Anzahl von Codevektorkandidaten dar, von denen jeder als Zielvektor verwendet werden kann. Beispielsweise sind die Codevektoren in der Reihenfolge der Fehlergröße angeordnet, und unter den Codevektoren wird eine vorgegebene Anzahl von Codevektoren, die jeweils den minimalen Fehler haben, sequentiell ausgewählt.

Im Schritt S2 wird eine Fehlerbewertung unter Betrachtung der Qualitätsbeeinträchtigung durch einen Code- Fehler bei der Mehrzahl Indices durchgeführt, die wie oben beschrieben ausgewählt wurden. Im Schritt S3 wird ein Index zum letztendlichen Erzeugen eines Zielvektors bestimmt.

Die in Fig. 1 gezeigte Anordnung wird im Anschluss beschrieben. Eine Sprachkodiervorrichtung entsprechend dieser Ausführungsform enthält ein Adaptiv-Codebuch 2000 zum Speichern vergangener Anregungssignale, die eine vorgegebene Zeit vorher erhalten wurden, und zum Erzeugen eines Codevektors entsprechend einer designierten Tonhöhe, und ein Rausch-Codebuch 2180 zum Speichern verschiedener Anregungssignale (Rausch-Codevektoren) und zum Erzeugen eines Rausch-Codevektors entsprechend einem Rausch-Codebuch-Index. Nachdem Verstärkungsfaktorschaltungen 2160 und 2250 Verstärkungsfaktoren g&sub1; und g&sub2; an die jeweils durch die Codebücher 2000 bzw. 2180 erhaltenen Codevektoren geben, addiert ein Addierer 2260 die Codevektoren zueinander und der sich ergebende Codevektor wird an ein Synthesefilter 2270 als ein Anregungssignal geliefert. Diese Verstärkungsfaktoren werden von einem Verstärkungsfaktor-Codebuch 2280 gegeben. Das Synthesefilter 2260 empfängt das Anregungssignal, um synthetisierte Sprache auszugeben. Andererseits wird Eingabe- Sprache an einen LPC-Analyseabschnitt (Linear Prediction Coding Section) 2290 eingegeben. Der LPC-Analyseabschnitt 2290 analysiert die Eingabe-Sprache zum Extrahieren und Kodieren der Koeffizienten-Information des Synthesefilters, was die externe Form des Spektrums der Eingangs-Sprache darstellt, gibt die Koeffizienten-Information an einen Zielvektorgenerator 2300 als Synthesefilterkoeffizienten- Information aus, und gibt die Synthesefilterkoeffizienten das Synthesefilter 2270. Als ein Verfahren zum Analysieren der Synthesefilter-Information kann beispielsweise ein LPC- Verfahren verwendet werden.

Der Zielvektorgenerator 2300 erzeugt einen Zielvektor beruhend auf der Eingangs-Sprache und der Synthesefilter- Information und gibt den Zielvektor an einen Fehlerbewertungsabschnitt 2310 aus. Der Fehlerbewertungsabschnitt 2310 verwendet den Zielvektor und die Synthesefilterkoeffizienten-Information zum Bewerten eines Fehlers des Zielvektors bezüglich der Synthesesprache, die durch das Synthesefilter 2270 erhalten wurde. Eine Ausgabe des Fehlerbewertungsabschnitts 2310 wird an einen Index-Vorauswahlabschnitt 2320 und einen Index- Auswahlabschnitt 2325 geliefert. Der Index- Vorauswahlabschnitt 2320 wählte Codevektorkandidaten (Index- Kandidaten) des Rausch-Codebuchs 2180 auf der Grundlage des Fehlerbewertungswerts aus, der von dem Fehlerbewertungsabschnitt 2310 erhalten wurde, und gibt das Auswahlergebnis an den Index-Auswahlabschnitt 2325. Unter einer geringen Anzahl von Indexkandidaten, die von dem Index- Vorauswahlabschnitt 2320 ausgewählt wurden, wählt der Index- Auswahlabschnitt 2325 den optimalen Index des Rausch- Codebuchs angesichts eines Code-Fehlers aus. Da der Code- Fehler in Betracht gezogen werden muss, ist ein Code- Fehlerprozessor 2326 zum Geben eines simulierten Code-Fehlers an einem Übertragungsweg oder einem Aufzeichnungsmedium zu dem Ausgabe-Index von dem Index-Auswahlabschnitt 2325 zwischen dem Index-Auswahlabschnitt 2325 und dem Rausch- Codebuch 2180 geschaltet.

Die Bauteile in Fig. 1 werden im Anschluss detailliert beschrieben.

Das Adaptiv-Codebuch 2000 wird zur Auswahl einer Tonhöhe bzw. Pitch verwendet. Das heißt, das Adaptiv-Codebuch 2000 speichert vorangehende Anregungssignale und wählt eine Tonhöhe aus, die als kodierter Parameter von Zwischenabständen verwendet wird, die im Voraus eingestellt wurden. Genauer gesagt, es wird eine Bewertungsbezugs zur Minimierung eines Fehlers zwischen dem Zielvektor, der von dem Zielvektorgenerator 2300 erzeugt wird und einem Synthesevektorkandidaten, der erhalten wird, indem das Synthesefilter 2270 veranlasst wird, einen Codevektor zu synthetisieren, der erhalten wird, indem die Tonhöhe an das Adaptiv-Codebuch 2000 gegeben wird, wobei der Index- Vorauswahlabschnitt 2320 die optimale Tonhöhe auswählt.

Verfahren zum tatsächlichen Bewerten der Abstände zwischen dem Zielvektor und dem Synthesevektor verwendet werden. Jedoch kann die optimale Tonhöhe durch das folgende Verfahren ausgewählt werden. Das heißt, durch Modifizieren der Gleichung zur Fehlerberechnung wird ein Wert entsprechend dem inneren Produkt zwischen dem Synthesevektor und dem Zielvektor und ein Wert entsprechend der Leistung des Synthesevektors usw. miteinander kombiniert, um wiederholtes Berechnen eines Werts, der fest bei jeder Tonhöhe ist, zu vermeiden, so dass die Größen der Fehler mit geringerem Rechenaufwand überprüft werden können.

Bei der Suche des Adaptiv-Codebuchs 2000 wird ein Codebuch-Suchverfahren äquivalent zu einem Verfahren verwendet, das zum Einstellen des Verstärkungsfaktors der Verstärkungsfaktorschaltung 2160 verwendet wurde, um der optimale Verstärkungsfaktor zu sein, der von einem herkömmlichen CELP-Schema verwendet wird. In diesem Fall wird der Einfluss auf das Anregungssignal, der durch den Code- Vektor verursacht wird, der aus dem Rausch-Codebuch 2180 extrahiert wurde, als Null betrachtet und die Suche nach einer Tonhöhe wird durchgeführt. Wenn die Anzahl der Indexkandidaten des Rausch-Codebuchs als auf eine sehr kleine Anzahl beschränkt betrachtet werden kann, wird die Suche nach einer Tonhöhe angesichts des Einflusses auf das Anregungssignal durchgeführt, der von dem Codevektor von dem Rausch-Codebuch 2180 verursacht wird. In diesem Fall kann ein Effekt, dass eine Tonhöhe und ein Rausch-Code, die Synthesesprache mit weniger Fehler erzeugen können, erwartet werden.

Prozeduren zum Suchen eines Index des Rausch-Codebuchs werden im Anschluss unter Bezug auf das Flussdiagramm, das in Fig. 2 gezeigt ist, beschrieben. Bei der Suche nach dem Index des Rausch-Codebuchs, die in der folgenden Beschreibung beschrieben ist, wird Vektorquantifizierung entsprechend der Erfindung angewendet. In diesem Fall führt der Fehlerbewertungsabschnitt 2310 die erste Bewertung durch, bei der ein Fehler des Codevektors ohne Betrachtung eines Code- Fehlers eines Index des Rausch-Codebuchs bewertet wird, und die zweite Bewertung, bei der der Fehler des Codevektors bewertet wird, wird unter Betrachtung eines Code-Fehlers eines Index des Rausch-Codebuchs bewertet.

Das heißt, der erste Fehlerbewertungsabschnitt 2310 berechnet ein Fehlerbewertungsergebnis, das erhalten wird, wenn die Index-Information des Rausch-Codebuchs 2180 frei von einem Code-Fehler ist, und der Index-Vorauswahlabschnitt 2320 wählt eine kleine Anzahl von Indexkandidaten des Rausch- Codebuchs unter einer großen Anzahl von Indexkandidaten des Rausch-Codebuchs aus, die im Voraus eingestellt sind, beruhend auf dem Fehlerbewertungsergebnis. Der Fehlerbewertungsabschnitt 2310 berechnet ein Fehlerbewertungsergebnis unter Betrachtung des Code-Fehlers der Index-Information des Rausch-Codebuchs 2180, und auf der Grundlage des Fehlerbewertungsergebnisses verringert der Index-Auswahlabschnitt 2325 die Anzahl der Indexkandidaten des Rausch-Codebuchs 2180, die durch den Index- Vorauswahlabschnitt 2320 ausgewählt wurden, wodurch nach dem optimalen Index des Rausch-Codebuchs 2180 gesucht wird, der zum Ausdrücken eines Anregungssignals verwendet wird.

Genauer gesagt, der Index-Vorauswahlabschnitt 2320 verwendet eine Suchschleife 2340, um Indexkandidaten an das Rausch-Codebuch 2180 zu geben, und eine Bewertungsbezugs, die zur Minimierung eines Fehlers zwischen dem Zielvektor, der von dem Zielvektorgenerator 2300 beruhend auf der Eingangs- Sprache erzeugt wird, und einem Synthesevektorkandidaten, der erhalten wird, indem das Synthesefilter 2270 veranlasst wird, den Codevektor entsprechend dem Indexkandidaten des Rausch- Codebuchs 2180 zu synthetisieren, bildet eine geringe Anzahl von Indexkandidaten des Rausch-Codebuchs 2180 aus. Als ein Verfahren zum Berechnen des Fehlers, das dieses Mal verwendet wird, dient ein Verfahren zum tatsächlichen Bewerten des Abstands zwischen den Vektoren. Jedoch kann ein Wert entsprechend dem inneren Produkt zwischen dem Synthesevektor und dem Zielvektor, ein Wert entsprechend der Leistung des Synthesevektors oder ein Wert, der den oben genannten Werten folgt, miteinander kombiniert werden, um die Gleichung der Fehlerberechnung zu modifizieren, um wiederholte Berechnung eines Werts, das heißt für jede Tonhöhe, zu vermeiden, so dass Indexkandidaten des Rausch-Codebuchs mit kleineren Fehlern mit weniger Berechnungsaufwand ausgewählt werden können.

Der Index-Auswahlabschnitt 2325 wählt eine kleine Anzahl von Indexkandidaten aus einer kleinen Anzahl von Indexkandidaten aus dem Rausch-Codebuch 2180 aus, die von dem Index-Vorauswahlabschnitt 2320 ausgewählt wurden. Bei dieser Ausführungsform wählt der Index-Auswahlabschnitt 2325 nur einen Index aus einer kleinen Anzahl von Indexkandidaten des Zufallsrausch-Codebuchs 2180 aus, und die Index-Information des Rausch-Codebuchs 2180, die zu übertragen ist, wird letztlich erhalten. In diesem Fall kann die Berechnung des Fehlerberechnungswerts, der in dem Fehlerbewertungsabschnitt 2310 verwendet wird, ein Bewertungsverfahren verwenden, das gleich jenem ist, das in dem Zustand ohne Betrachtung des Code-Fehlers verwendet wird. Jedoch kann, um die Berechnung weiter zu vereinfachen, der Index effektiv durch ein Verfahren ausgewählt werden, wie etwa ein Verfahren, das nicht das Synthesefilter 2270 verwendet, sondern den Fehler der direkten Form eines Codevektors, der von einem Code- Fehler verursacht wird.

Der Code-Fehlerprozessor 2326 simuliert den Code-Fehler bei einem Übertragungsweg oder einem Empfangsmedium für jeden der kleinen Anzahl von Indexkandidaten des Rausch-Codebuchs 2180, die von dem Index-Auswahlabschnitt 2325 ausgewählt wurden, und der Index wird an das Rausch-Codebuch 2180 so zugeführt, dass es möglich ist, den Fehler des Vektorkandidaten zu bewerten, der erhalten wird, wenn der Index durch den Code-Fehler geändert wird.

Als ein Verfahren zum Bewerten des Fehlers des Codevektors angesichts des Code-Fehlers auf dem Übertragungsweg oder dem Aufzeichnungsmedium wird ein Verfahren mit dem folgenden Erwartungswert E des Fehlers verwendet.

E(i) = p(j i)d(j) (1)

In diesem Fall ist E(i) ein Erwartungswert eines Fehlers, der erhalten wird, wenn der Code entsprechend einem Index i übertragen wird, p(j i) ist eine Wahrscheinlichkeit des Verursachens des Code-Fehlers auf dem Übertragungsweg oder dem Aufzeichnungsmedium zum Ändern des Index i in einen Index j, und d(j) ist ein Fehlerbewertungswert, der erhalten wird, wenn der Codevektor entsprechend dem Index j frei von einem Code-Fehler ist, oder ein vereinfachter Fehlerbewertungswert. Wenn beispielsweise der Code auf dem Übertragungsweg oder dem Aufzeichnungsmedium entsprechend dem Index i durch n Bits ausgedrückt wird, ist die Wahrscheinlichkeit, dass eines der n Bits einen Fehler hat gleich ε = p(j i) (i ? j), und die Wahrscheinlichkeit, dass n Bits keinen Fehler haben, ist 1 - nε = p(i i).

Aus der kleinen Anzahl von Indexkandidaten des Rausch- Codebuchs 2180, die von dem Index-Auswahlabschnitt 2325 ausgewählt wurden, wird der Index i als einer der Indexkandidaten des Rausch-Codebuchs 2180 ausgewählt, der einen Erwartungswert mit optimaler Größe gibt. Wenn der Fehlerbewertungswert so festgelegt ist, dass d einen Fehlerbetrag darstellt, stellt E den erwarteten Wert des Fehlerbetrags dar. Daher wird vorzugsweise ein Index ausgewählt, der erhalten wird, wenn E minimal wird.

Die folgenden Verfahren werden effektiv zum Vereinfachen der Berechnung des Erwartungswerts E verwendet. Das heißt, der Wert von p wird auf Null quantifiziert, wenn der Wert der Wahrscheinlichkeit p(i i) gleich einem Schwellwert oder kleiner ist, und Gleichung (1) wird nicht berechnet, wenn p = 0 gilt; wobei der Wert von p auf (1/2)n quantifiziert wird (n ist eine natürliche Zahl), um die Berechnung zu vereinfachen, wenn ein Festkomma DSP (digitaler Signalprozessor) verwendet wird. In diesem Fall wird angenommen, dass der Wert von p(j i) in Gleichung (1) im Voraus gegeben ist.

Angemerkt sei, dass die Festlegung des Erwartungswert E des Fehlers aus Gleichung (1) auch in "Training Method of the Excitation Codebooks for CELP" von T. Moriya u. a., in The Transactions of the Institute of Electronics, Information, and Communication Engineers, Bd. J77-A, Nr. 3, Seiten 485- 493, März 1994, beschrieben ist, das vorher erwähnt wurde. In dieser Veröffentlichung wird der Erwartungswert E nur bei der Ausgestaltung eines Codebuchs betrachtet, die Suche nach einem Index bei der tatsächlichen Kodierung verwendet einen Fehlerbewertungswert, der ohne Betrachtung eines Code-Fehlers auf dem Übertragungsweg oder einem Aufzeichnungsmedium erhalten wird.

Im Gegensatz dazu ist die Erfindung beachtlich anders gegenüber der oben erwähnten Veröffentlichung dahingehend, dass ein Bewertungsverfahren, das einen Code-Fehler auf dem Übertragungsweg oder einem Aufzeichnungsmedium in Betracht zieht, in die Indexsuche eingeschlossen ist. Auf diese Art ist, da ein Index so ausgewählt werden kann, dass die Qualität eines wiedergegebenen Signals, das tatsächlich unter der Bedingung dekodiert wurde, dass ein Code-Fehler vorhanden ist, ausgewählt werden kann, bei der Bewertung des Index vorhanden ist, die Wahrscheinlichkeit einer abrupten Verschlechterung der Qualität, die durch den Code-Fehler verursacht werden kann, minimierbar.

Ein Verfahren zum Berechnen eines Erwartungswerts E(i) eines Fehlers in der Anordnung der Sprachkodiervorrichtung, die in Fig. 1 gezeigt ist, ist wie folgt. Das heißt, wenn anstatt des Index i, der von dem Index-Auswahlabschnitt 2325 an das Rausch-Codebuch 2180 als einer der Indexkandidaten zugeführt wird, der Code-Fehlerprozessor 2326 den Index j mit einer Wahrscheinlichkeit p(j i) zuführt, die nicht vernachlässigbar ist, werden die Fehlerbewertungswerte, die für die Codevektoren entsprechend dem Index j erhalten werden, mit jeweiligen Wahrscheinlichkeiten gewichtet. Die resultierenden Fehlerbewertungswerte werden aufsummiert.

Wenn die folgende Anordnung als ein weiteres Verfahren zum Berechnen des Erwartungswerts E(i) verwendet wird, ist der Fehlerprozessor 2326 in Fig. 1 nicht erforderlich. Das heißt, der Index-Vorauswahlabschnitt 2320 speichert vorübergehend Fehlerbewertungswerte d für Indexkandidaten in dem Speicher, wobei die Fehlerbewertungswerte d, die für eine geringe Anzahl von Indexkandidaten benötigt werden, die von dem Index-Vorauswahlabschnitt 2320 ausgewählt wurden, aus dem Speicher gelesen werden, und wobei die Erwartungswerte der Fehlerbewertungswerte durch den Index-Auswahlabschnitt 2325 berechnet werden.

Wenn das oben beschriebene Indexsuchverfahren verwendet wird, kann ein letztlich bei der Kodiervorrichtungsseite ausgewählter Index eine höhere Tonqualität bereitstellen als die vorgegebene Tonqualität in der Abwesenheit eines Code- Fehlers, und die Tonqualität wird wenig beeinträchtigt, auch wenn ein Fehler vorhanden ist. Daher kann, auch wenn ein Code-Fehler tatsächlich auf dem Übertragungsweg oder dem Aufzeichnungsmedium auftritt, die Wahrscheinlichkeit einer abrupt auftretenden Qualitätsbeeinträchtigung auf der Dekodierseite minimiert werden.

Eine Sprach-Dekodiervorrichtung zum Wiedergeben kodierter Sprache auf der Basis von Kodier-Information, die von der Sprach-Kodiervorrichtung erzeugt wurde, wie es vorangehend beschrieben wurde, wird im Anschluss dargelegt. Fig. 3 ist ein Blockdiagramm, das eine Sprach- Kodiervorrichtung entsprechend einer Ausführungsform der Erfindung zeigt. Fig. 3 zeigt eine Anordnung, die Synthesefilter-Information, Tonhöhen-Information, Index- Information aus einem Rausch-Codebuch 2180 und Index- Information aus einem Verstärkungsfaktor-Codebuch 2180 empfängt, die als Parameter dienen, welche von der in Fig. 1 gezeigten Sprach-Kodiervorrichtung kodiert sind, und erzeugen synthetisierte Sprache auf der Grundlage der Informations- Elemente bzw. -Items.

Ein Verfahren zum Wiedergeben eines Anregungssignals wird als erstes beschrieben. Bei einem Adaptiv-Codebuch 1000 wird ein geeigneter Adaptiv-Codevektor, der aus vorangehenden Anregungssignalen ausgewählt wurde, auf der Grundlage der Tonhöhen-Information erhalten, die von der Sprach- Kodiervorrichtung übertragen wird. Eine Verstärkungsfaktorschaltung 1160 multipliziert den Adaptiv- Codevektor durch einen Adaptiv-Codevektorverstärkungsfaktor g&sub1;, der von einem Verstärkungsfaktor-Codebuch 1290 auf der Grundlage der Index-Information des Verstärkungsfaktor- Codebuchs erhalten wird, der von der Sprach-Kodiervorrichtung übertragen wird, um einen ersten Vektor zu bilden.

Ein Rausch-Codevektor wird aus einem Rausch-Codebuch 1180 auf der Grundlage des Index des Rausch-Codebuchs 1180 entnommen, der von der Sprach-Kodiervorrichtung übertragen wird, und eine Verstärkungsfaktorschaltung 1250 multipliziert den Rausch-Codevektor mit einem Rausch- Codevektorverstärkungsfaktor g&sub2;, der aus dem Verstärkungsfaktor-Codebuch 1290 erhalten wurde, um einen zweiten Vektor zu bilden.

Ein Addierer 1260 gibt als ein Anregungssignal einen Vektor wieder, der durch Addieren der ersten und zweiten Vektoren zueinander erhalten wird. Letztlich empfängt ein Synthesefilter 1270, das auf der Grundlage der Synthesefilter-Koeffizienten-Information, die von der Sprach- Kodiervorrichtung übertragen wurde, das Anregungssignal, um eine Sprachsynthetisierung durchzuführen, und die sich ergebende synthetisierte Sprache wird von einem Ausgangsanschluss 1280 erhalten.

Wie vorangehend beschrieben wurde, wird auf der Grundlage des Fehlerbewertungsergebnisses ein Codevektor, der unter Betrachtung eines Code-Fehlers eines Index erhalten wurde, ein gewünschter Index aus einer großen Anzahl von Indexkandidaten ausgewählt, von denen jeder zum Ausdrücken eines Zielvektors verwendet werden kann. Daher wird, auch wenn der ausgewählte Index einen Code-Fehler hat, die Wahrscheinlichkeit, dass die Qualität des wiedergegebenen Signals sich abrupt verschlechtert, beachtlich abgesenkt.

Eine geringe Anzahl von Indexkandidaten werden aus einer großen Anzahl von Indexkandidaten auf der Grundlage des Fehlerbewertungsergebnisses des Codevektors ausgewählt, wodurch von allen Indexkandidaten eine kleine Anzahl von Indexkandidaten ausgewählt wird, von denen jeder eine höhere Qualität sicherstellen kann als eine vorgegebene Qualität, und die einen kleineren Fehler bezüglich eines wiedergegebenen Signals haben, das in der Abwesenheit eines Code-Fehlers erhalten wurde. Die Fehlerbewertung unter Betrachtung des Einflusses des Code-Fehlers auf die Index- Information wird bezüglich jedem einer kleinen Anzahl von Indexkandidaten durchgeführt, und die Anzahl der Indexkandidaten verringert sich auf der Grundlage des Fehlers, wodurch Indexkandidaten ausgewählt werden, die jeweils eine Qualität mit einer geringen Beeinträchtigung in der Anwesenheit eines Code-Fehlers haben. Letztlich wird ein Index ausgewählt, um einen Zielvektor auszudrücken.

Die Fehlerbewertung unter Betrachtung des Einflusses des Code-Fehlers erfordert im Allgemeinen eine komplexe Berechnung. Jedoch kann erfindungsgemäß, da die Fehlerbewertung unter Betrachtung eines Fehlers durchgeführt wird, nachdem die Anzahl der Indexkandidaten durch die Fehlerbewertung ohne Betrachtung eines Code-Fehlers verringert ist, ein Index, der stabil die Qualitätsbeeinträchtigung bezüglich eines Code-Fehlers auf einem Übertragungsweg oder an ein Aufzeichnungsmedium unterdrücken kann ohne wesentlich den Rechenaufwand zu erhöhen, ausgewählt werden.

Zusätzlich kann gemäß der Ausführungsform eine Kodiervorrichtung, die stabil gegenüber einem Code-Fehler ist, durch Ändern eines Codesuchverfahrens auf der Kodierseite bereitgestellt werden. Wenn daher die Erfindung auf ein Kodierschema anzuwenden ist, das standardisiert ist, ist es in vorteilhafter Weise unnötig, eine Tabelle, wie etwa ein Codebuch, aufzufrischen.

Andere Ausführungsformen der Vektorquantifizierungsvorrichtung entsprechend der Erfindung werden beschrieben. Die gleichen Abschnitte wie jene der ersten Ausführungsform, werden mit den gleichen Bezugszeichen angezeigt und ihre detaillierte Beschreibung wird weggelassen.

(Zweite Ausführungsform)

Fig. 4 zeigt die zweite Ausführungsform, in der eine Vektorquantifizierungsvorrichtung entsprechend der Erfindung auf eine Sprach-Kodiervorrichtung mit einem Mechanismus angewendet wird, der Information bezüglich eines Code-Fehlers auf einem Übertragungsweg oder einem Aufzeichnungsmedium erhalten kann, oder auf eine Sprach-Kodiervorrichtung, die bei einem Radiokommunikationssystem verwendet wird, das in der Lage ist, Information bezüglich eines Code-Fehlers auf einem Übertragungsweg oder einem Aufzeichnungsmedium an die Kodiervorrichtungsseite zu liefern.

Bei der ersten Ausführungsform wird ein Code-Fehler, der im Voraus vorhergesagt wurde, verwendet, nämlich ein fester Wert wird für jeden Übertragungsweg für jedes Aufzeichnungsmedium verwendet. Jedoch verwendet die zweite Ausführungsform die folgende Anordnung. Das heißt, ein Code- Fehler-Ratendetektor 2327 erhält Information bezüglich eines Code-Fehlers auf einem Übertragungsweg oder einem Aufzeichnungsmedium von einem Anschluss 2328 zur Detektion der Anwesenheit/Abwesenheit eines Code-Fehlers oder des Zustands eines Code-Fehlers, und ein Index-Auswahlabschnitt 2325 empfängt einen Befehl zum Ändern und Einstellen - in Abhängigkeit des Zustands des Code-Fehlers - des Werts einer Wahrscheinlichkeit p(i i) des Code-Fehlers eines Index, der zum Berechnen eines Erwartungswerts E eines Fehlers verwendet wird.

Auf diese Art kann ein genauerer Erwartungswert des Fehlers in Abhängigkeit der Code-Fehlerrate des Übertragungswegs oder des Aufzeichnungsmediums erhalten werden, und ein Index, der am besten für die Situation geeignet ist, kann in vorteilhafter Weise ausgewählt werden. Beispielsweise, wenn Information, die die Abwesenheit eines Code-Fehlers darstellt, während der Übertragung oder der Aufzeichnung/Wiedergabe erhalten wird, wird das Ausmaß der Betrachtung des Code-Fehlers verringert, oder die Indexsuche wird auf der Basis der Fehlerminimierung ohne Betrachtung des Code-Fehlers durchgeführt. Wenn Information, die die Anwesenheit einer großen Anzahl von Code-Fehlern darstellt, erhalten wird, kann es leicht möglich sein, dass die oben genannte Indexsuche auf Indexsuche umgeschaltet wird, bei der das Ausmaß der Betrachtung des Code-Fehlers gemacht wird.

Bei der Suche nach einem Index eines Rausch-Codebuchs 2180 wird ein Codebuch-Suchverfahren äquivalent zu einem Codebuch-Suchverfahren verwendbar, das einem Codebuch- Suchverfahren äquivalent ist, bei dem der Verstärkungsfaktor einer Verstärkungsfaktorschaltung 2350 auf den optimalen Verstärkungsfaktor gesetzt wird, der beispielsweise in dem bekannten CELP-Schema verwendet wird.

Bei dieser Ausführungsform wird die Index-Information des Verstärkungsfaktor-Codebuchs kodiert, indem ein Verstärkungsfaktor-Codebuch 2280, das in der Lage ist, einen spezifischen Verstärkungsfaktor auf der Grundlage der Index- Information des Verstärkungsfaktor-Codebuchs zu bezeichnen, und eine Suchschleife 2350 verwendet wird. Die Suche nach der Index-Information des Verstärkungsfaktor-Codebuchs wird so durchgeführt, dass der Fehler zwischen der synthetisierten Sprache und der Spracheingabe abnimmt.

Bei dieser Ausführungsform speichert, wie bei der ersten Ausführungsform, die vorangehend beschrieben wurde, ein Index-Vorauswahlabschnitt 2320 vorübergehend Fehlerbewertungswerte d(j) für Indexkandidaten in einem Speicher, wobei die Fehlerbewertungswerte d(j), die für eine kleine Anzahl von Indexkandidaten benötigt werden, die von dem Index-Vorauswahlabschnitt 2320 ausgewählt wurden, aus dem Speicher ausgelesen werden, und wobei die Erwartungswerte der Fehlerbewertungswerte durch den Index-Auswahlabschnitt 2325 berechnet werden. Bei dieser Ausführungsform ist ein Code- Fehlerprozessor 2326 nicht nötig. Zusätzlich kann eine Sprach-Dekodiervorrichtung für die Sprach-Kodiervorrichtung die in Fig. 3 gezeigte Anordnung haben.

Wie vorangehend beschrieben wurde, kann bei der zweiten Ausführungsform zusätzlich zu dem Effekt der ersten Ausführungsform der folgende Effekt erhalten werden. Das heißt, bei einem Radiokommunikationssystem oder einer Kodiervorrichtung mit einem Mechanismus, der Information bezüglich des Code-Fehlers auf einem Übertragungsweg oder einem Aufzeichnungsmedium erhalten werden kann, wird das Ausmaß der Betrachtung des Einflusses des Code-Fehlers bei der Fehlerbewertung und der Betrachtung des Code-Fehlers in Abhängigkeit der Information bezüglich des Code-Fehlers auf dem Übertragungsweg oder dem Aufzeichnungsmedium geändert, und ein Index, der für den Zustand eines Code-Fehlers auf dem Kommunikationsweg geeignet ist und der ein wiedergegebenes Signal mit einem geringen Fehler erhalten kann, kann ausgewählt werden. Zusätzlich kann, entsprechend der zweiten Ausführungsform, eine Vektorquantifizierung durchgeführt werden, die stark gegenüber dem Code-Fehler auf dem Übertragungsweg oder dem Aufzeichnungsmedium ist.

Angemerkt sei, dass bei dem Prozess der Auswahl eines Index sowohl bei der ersten als auch der zweiten Ausführungsform die Anzahl der Indexkandidaten durch Fehlerbewertung in der Abwesenheit eines Code-Fehlers zunächst verringert wird, und dass die verringerte Anzahl von Indexkandidaten weiter durch Fehlerbewertung unter Betrachtung der Qualitätsverschlechterung verringert wird, die durch einen Code-Fehler verursacht wird. Wenn jedoch ein Codebuch eine geringe Größe hat, nämlich die Anzahl aller Indexkandidaten anfänglich klein ist, ist es offensichtlich, dass ein Verfahren der Auswahl eines Index durch Fehlerbewertung unter Betrachtung der Qualitätsverschlechterung, die durch den Code-Fehler verursacht wird, von Beginn an effektiv ist (das heißt Schritt S2 wird von Beginn an ohne Ausführung von Schritt S1 in Fig. 2 ausgeführt), um die Kodiervorrichtung zu verwirklichen, die gegenüber einem Code-Fehler auf dem Übertragungsweg stark ist. Es dient nur der Verringerung eines Berechnungsaufwands und einer Berechnungszeit, dass der optimale Index unter der Bedingung erhalten wird, bei der ein Code-Fehler vorhanden ist, nachdem die Anzahl der Indexkandidaten in der Abwesenheit eines Code-Fehlers im Schritt S2 verringert wurde.

Bei dem Prozess der Auswahl eines Index sowohl bei der ersten als auch der zweiten Ausführungsform wird die Auswahl der Indexkandidaten durch Fehlerbewertung in Abwesenheit eines Code-Fehlers zunächst verringert, und ein Indexwert aus einer wiedergegebenen Anzahl von Indexkandidaten durch Fehlerbewertung unter Betrachtung der Qualitätsverschlechterung ausgewählt, die von einem Code- Fehler verursacht wird. Jedoch kann, nachdem die Anzahl der Indexkandidaten in dem letzteren Verringerungsschritt verringert wurde, aus der Mehrzahl der sich ergebenden Indexkandidaten ein Index letztlich auf der Basis von weiteren Fehlerbewertungsergebnissen ausgewählt werden, wie etwa einem Fehlerbewertungsergebnis in einer anderen Zeitspanne (Periode) eines Sprachsignals und eines Fehlerbewertungsergebnisses unter Betrachtung eines Verstärkungsfaktors.

Zusätzlich beschreiben die ersten und zweiten Ausführungsformen ein Beispiel, bei dem die erfindungsgemäße Vektorquantifizierung auf eine Suche nach einem Index eines Rausch-Codebuchs angewendet wird. Die Erfindung ist nicht auf die ersten und zweiten Ausführungsformen beschränkt, und die Erfindung kann grundsätzlich auf einen Kodierteil eines Parameters angewendet werden, bei dem Vektorquantifizierung angewendet wird.

Nun folgt eine Beschreibung der dritten bis zwölften Beispiele, die zum Verstehen der Erfindung nützlich sind. Es gibt keine ersten und zweiten Beispiele, die hier erwähnt werden.

Ein Beispiel, in dem eine Berechnungsmenge, die für die Indexsuche benötigt wird, beachtlich verringert werden kann und wobei Echtzeitverarbeitung leicht verwirklicht werden kann, wird im Anschluss beschrieben.

Fig. 5 ist eine Ansicht, die die grundlegende Anordnung eines Rausch-Codevektorgenerators in einer Vektorquantifizierungsvorrichtung entsprechend dem dritten Beispiel zeigt.

Bei diesem Beispiel ist ein Codebuch 100 ein Rausch- Codebuch und speichert eine Mehrzahl von Nummern (I) von N- dimensionalen Ausgangsvektoren oder Seed-Vektoren V als Rausch-Codevektoren. Die I N-dimensionalen Ausgangsvektoren sind durch Vi (i = 0 bis I - 1) dargestellt. Ein Index Ic zur Auswahl eines Ausgangsvektors wird einem Anschluss 101 eingegeben, wobei einer der I Ausgangsvektoren Vi durch einen Ausgangsvektor-Auswahlschalter 102 entsprechend dem Index Ic ausgewählt wird.

Ein Polaritätsvektorgenerator 103 erzeugt einen N- dimensionalen Polaritätsvektor S auf der Basis eines Polaritäts-Informations-Index Ip. Ein Polaritätsmultiplizierer 105, der durch N Multiplizierer 104 gebildet ist, multipliziert N Elemente vn (n = 0 bis N - 1) des Ausgangsvektors V, der von dem Ausgangsvektor-Auswahlschalter 102 ausgewählt wurde, mit N Elementen sn des Paritätsvektors S, der von dem Polaritätsvektorgenerator 103 erzeugt wurde, um einen Repräsentativ-Vektor U zu erzeugen, der als ein Element un das Produkt aus vn · sn hat.

Wenn ein solcher Vektorwiedergabeabschnitt bei der Vektorquantifizierungsvorrichtung verwendet wird, kann, auch wenn die Anzahl der Bits des Repräsentiv-Vektorindex groß ist, die Suche nach dem optimalen Repräsentativ-Vektorindex mit hoher Geschwindigkeit mit einer geringen Berechnungsmenge durchgeführt werden. Daher ist der Vektorwiedergabeabschnitt für Echtzeitverarbeitung geeignet. Dieser Effekt wird im Anschluss mit einem konkreten Beispiel beschrieben. Z. B. sei betrachtet, dass Sprachdaten, die durch 8 kHz-Abtastung erhalten wurden, mit einem Codebuch vektorquantifiziert werden, indem 2²&sup0; ( = 1.048.576) Repräsentativ-Vektoren (80 Dimensionen) durch 20-Bit-Information ausgedrückt sind.

In diesem Fall können 2²&sup0; Repräsentativ-Vektoren durch Paare von Summen oder Differenzen zwischen 20 Ausgangsvektoren in einem herkömmlichen VSELP-Schema ausgedrückt werden. Um jedoch für einen vorzuziehenden Repräsentativ-Vektor der 2²&sup0; Repräsentativ-Vektoren zu suchen, wird eine Fehlerbetrags-Berechnungsschleife 2¹&sup9;-mal wiederholt. Die Repräsentativ-Vektorsuche mit einer großen Anzahl von Schleifendurchläufen erfordert einen enormen Rechenaufwand von etwa 1000 MIPS.

Im Gegensatz dazu wird gemäß diesem Beispiel das Element eines Ausgangsvektors in 20 Perioden unterteilt, und das Vektorelement in jeder Periode wird mit einer Polarität von +1 oder -1 multipliziert. In diesen Fall können 2²&sup0; Repräsentativ-Vektoren durch kombinierte Elemente der Polaritätsinformation untereinander ohne Berechnung der Summen oder Differenzen zwischen Vektoren ausgedrückt werden. Da die Polarität jeder Periode ein Bit ist, kann nur ein Repräsentativ-Vektor durch 20 Bit Information wiedergegeben werden. Die Polarität eines vorzuziehenden Repräsentativ- Vektors kann durch Durchführen einfacher Berechnung des inneren Produkts des Vektors einmal und durch Durchführen der Polaritätsbestimmung 20-mal durchgeführt werden. Daher ist der Rechenaufwand 1/10 MIPS oder weniger.

Des Weiteren können gemäß diesem Beispiel 2²&sup0; Repräsentativ-Vektoren durch eine Anordnung ausgedrückt werden, in der 2 Bits zur Auswahl von vier Ausgangsvektoren verwendet werden, und wobei 18 Bits für die Polaritätsinformation verwendet werden. Bei diesem Verfahren muss die Berechnung des inneren Produkts eines Vektors 4-mal durchgeführt werden, und eine Fehlerbewertungsschleife muss 4-mal wiederholt werden, um nach einem vorzuziehenden Ausgangsvektor zu suchen. Jedoch ist der Rechenaufwand um etwa 1 MIPS.

Wie aus den vorangehenden Beispielen ersichtlich ist, kann, auch wenn die Anzahl der Ausgangsvektoren kleiner als die Anzahl der Ausgangsvektoren gemacht wird, die bei den herkömmlichen Verfahren verwendet werden, ein 20 Bit Codebuch verwirklicht werden. Daher kann die Speicherkapazität, die zum Speichern der Ausgangsvektoren nötig ist, vorteilhafterweise eingespart werden.

Zusätzlich kann gemäß diesem Beispiel, wenn die Polaritätsinformation aufgrund eines Code-Fehlers auf einem Übertragungsweg oder einem Speichermedium verschlechtert ist, ein Repräsentativ-Vektor mit geringer Verschlechterung in vorteilhafter Weise wiedergegeben werden. Dies liegt daran, dass 1 Bit-Polaritätsinformation die Polarität nur eines Abschnitts des Repräsentativ-Vektors beeinflusst. Im Ergebnis verschlechtert der Fehler der 1-Bit Polaritätsinformation nicht die Gesamtform des Repräsentativ-Vektors, sondern verschlechtert teilweise die Form des Repräsentativ-Vektors. Daher hat die Vektorquantifizierungsvorrichtung entsprechend diesem Beispiel einen Vorteil dahingehend, dass sie eine hohe Widerstandskraft bezüglich einem Code-Fehler der Polaritätsinformation hat.

Ein Beispiel, bei dem eine Vektorquantifizierungsvorrichtung auf eine Sprach-Kodiervorrichtung angewendet wird, wird im Anschluss beschrieben. Fig. 6 ist ein Blockdiagramm, das eine Anordnung einer Kodiervorrichtung zeigt, wenn Vektorquantifizierung auf eine Kodierung einer Rausch- Komponente als Anregungssignal für Sprach-Kodierung angewendet wird.

Ein Eingabesignal wird von einem Anschluss 201 an einen Synthesefilter-Kodierabschnitt 202 und ein Gewichtungsfilter 203 eingegeben. Der Synthesefilter-Kodierabschnitt 202 analysiert (LPC-Analyse oder ähnliches) ein Eingangs- Sprachsignal zum Extrahieren der Informationselemente eines Synthesefilters, der die Spektraleinhüllungs-Information der Spracheingabe repräsentiert, kodiert die extrahierten Informations-Elemente und die sich ergebenden Codes an einen Multiplexer 208 aus. Der Synthesefilter-Kodierabschnitt 202 analysiert das Eingangs-Sprachsignal zum Berechnen gewichteter Filterkoeffizienten-Information, gibt die gewichtete Filterkoeffizienten-Information an das Gewichtungsfilter 203 aus und gibt gewichtete Synthesefilter- Koeffizienten-Information H an einen Tonhöhen-Kodierabschnitt 204, an einen Rausch-Kodierabschnitt 205 und an einen lokalen Dekodierabschnitt 207 aus.

Das Gewichtungsfilter 203 empfängt die Gewichtungsfilterkoeffizienten-Information, das eingegebene Sprachsignal und das lokale Dekodiersignal von dem lokalen Dekodierabschnitt 207, um einen N-dimensionalen Bezugssprachvektor X auszugeben, der in Blockeinheiten verarbeitet werden kann.

Der Tonhöhen-Kodierabschnitt 204 empfängt den Bezugssprachvektor X, die Gewichtungssynthesefilter- Koeffizienten-Information H und ein vorangehendes Eingabesignal von dem lokalen Dekodierabschnitt 207 und führt eine Adaptiv-Codebuchsuche nach dem bekannten Verfahren zum Extrahieren eines Tonhöhenvektors Y&sub0; durch, der zum Wiedergeben der Tonhöhenkomponente als ein gegenwärtiger Punkt (gegenwärtiger Frame) aus dem Signalverlauf des vorangehenden Signals verwendet wird. Der Tonhöhen- Kodierabschnitt 204 gibt den Index des Tonhöhenvektors Y&sub0; an den Multiplexer 208 und gibt einen synthetisierten Tonhöhenvektor X&sub0; aus.

Der Rausch-Kodierabschnitt 205, der das charakterisierende Merkmal dieses Beispiels ist, wird im Anschluss beschrieben. Der Rausch-Kodierabschnitt 205 umfasst ein Rausch-Codebuch 100, einen korrigierten Bezugswert- Vektorgenerator 211, einen Vorauswahlabschnitt 212, einen Hauptauswahlabschnitt 213 und einen Rausch-Vektorwiedergabeabschnitt 215.

Der korrigierte Bezugswert-Vektorgenerator 211 gewichtet einen Restvektor, der durch Entfernen des Einflusses des Tonhöhenvektors X&sub0; von dem Bezugssprachvektor X mit der gewichteten Synthesefilterkoeffizienten-Information H in zeitlich umgekehrter Reihenfolge, um so einen korrigierten Bezugswert R auszugeben. Der Vorauswahlabschnitt 212 nimmt den Bezugsvektor R und das Rausch-Codebuch 100 zum Auswählen einer geringen Anzahl (J) von Indexkandidaten aus einer großen Anzahl von Indexkandidaten des Codebuchs. Der Hauptauswahlabschnitt 213 wählt genauer eine kleinere Zahl von Indexkandidaten aus den J Indexkandidaten des Vorauswahlabschnitts 212 aus, und führt eine Verarbeitung durch, wobei ein Index letztlich als der Index Ic ausgewählt wird.

Der Rausch-Vektorwiederholabschnitt 215 ist angeordnet, wie es in Fig. 5 gezeigt ist, und berechnet als Rausch- Codevektor Y&sub1; mit der optimalen Form einen Repräsentativ- Vektor U, der durch Multiplikation jedes Elements erhalten wird, wobei der Ausgangsvektor V des Rausch-Codebuchs 100 entsprechend dem Ausgangsvektorindex Ic des Hauptauswahlabschnitts 213 und der Polaritätsvektor S entsprechend einem Polaritäts-Informationsindex Ip von dem Hauptauswahlabschnitt 213 verwendet werden. Zusätzlich verwendet der Rausch-Vektorwiedergabeabschnitt 215 den Rausch-Codevektor Y&sub1; und die gewichtete Synthesefilterkoeffizienten-Information H des Synthesefilter-Kodierabschnitts 202 zur Ausgabe eines synthetisierten Rausch- Codevektors X&sub1;.

Jeder Teil des Rausch-Kodierabschnitts 205 wird im Anschluss detailliert beschrieben.

Fig. 7 zeigt die detaillierte Anordnung des Vorauswahlabschnitts 212 zusammen mit dem Rausch-Codebuch 100. In diesem Fall ist die Anzahl der Dimensionen eines Vektors zum Zwecke der Beschreibung auf N = 6 gesetzt, und die Anzahl der Bits des Polaritäts-Informationsindex Ip ist auf p = 2 gesetzt. Da die Polarität entweder +1 oder -1 ist, ist es vorzuziehen, die Elemente des Vektors entsprechend der Polarität zu dividieren, um die Prozedur zu vereinfachen. Es wird eine Funktion eingeführt, die die Gruppe der Elemente anzeigt, die die gleiche Polarität haben. Die folgende Beschreibung verwendet ein Beispiel, bei der die oben genannte Funktion L so gesetzt ist, dass L(p,n) = n mod p ist (der Rest, der bei Division von n durch p erhalten wird).

In Fig. 7 berechnet ein partieller Innenprodukt- Berechnungsabschnitt 301 partielle innere Produkte fk (k = 0 bis p - 1) zwischen dem Ausgangsvektor Vi des Index i, der aus dem Rausch-Codebuch 100 extrahiert wurde, und des entsprechenden Bezugsvektors R. Die partiellen inneren Produkte fk werden durch Berechnen der inneren Produkte nur zwischen Elementen erhalten, die k = n mod p bezüglich den Positionen n = 0 bis N - 1 der Vektorelemente erfüllen. Wenn daher p = 2 und N = 6 werden partiellen inneren Produkte fk durch die folgenden Gleichungen gegeben

f&sub0; = r&sub0;v&sub0; + r&sub2;v&sub2; + r&sub4;v&sub4; (2)

f&sub1; = r&sub1;v&sub1; + r&sub3;v&sub3; + r&sub5;v&sub5; (3

In einem Absolutwertaddierer 302 werden die Summen der Absolutwerte der partiellen inneren Produkte fk wie folgt berechnet:

cor(i) = φk (4)

Ein Bewertungsabschnitt 303 ordnet die Summen cor(i) in der Reihenfolge ihrer Beträge, sucht nach J Indices des Rausch-Codebuchs, die jeweils auf den wertgrößeren Summen von cor(i) basieren, welche aus allen Summen cor(i) ausgewählt wurden, in der Reihenfolge der Beträge, und verwendet die J Indices als Vorauswahl-Ausgaben.

Jede Summe cor(i) der Absolutwerte der partiellen inneren Produkte ist gleich dem inneren Produkt zwischen einem Vektor Ui und dem Vektor R, wenn der Polaritätsvektor S optimal zu dem Vektor Vi eingestellt ist. Daher kann die Vorauswahl eines Index des Vektors Ui mit korrigierter Form durch Suchen nach dem Maximalwert der Summen cor(i) durchgeführt werden.

Wenn die Norm des Ausgangsvektors Vi, der in dem Rausch- Codebuch 100 gespeichert ist, nicht normiert ist, kann eine Anordnung, die durch Korrigieren der in Fig. 7 gezeigten Anordnung in die in Fig. 8 gezeigte Anordnung erhalten wird, als weitere Anordnung eines Vorauswahlabschnitts 212A verwendet werden. Bezüglich Fig. 8 speichert ein Rausch- Codebuch 100 einen normierten Gewichtungskoeffizienten wi für jeden Vektor neben dem Ausgangsvektor. In einem Vorauswahlabschnitt 400 sucht ein normierter Absolutwertaddierer 402 nach J Indices, die jeweils die J größten Summen der normierten Absolutwerte haben:

cor(i) = wi fk (5)

beruhend auf dem partiellen inneren Produkt fk und dem normierten Gewichtungskoeffizienten wi. Die J Indices werden als Vorauswahl-Ausgaben verwendet. Angemerkt sei, dass der Kehrwert der Norm des Vektors Vi als Wert für den normierten Gewichtungskoeffizienten wi verwendet werden kann.

Die vorangehenden Prozeduren zur Vorauswahl mit normierter Gewichtung wird im Anschluss beschrieben.

Im Schritt S11 werden die Variablen I, J, N, P, der Vektor R und das Codebuch V eingestellt. Das Codebuch wird durch Einstellen der Adresse eines Speichers eingestellt, der die Inhalte des Codebuchs so speichert, dass das Codebuch in einem Arbeitsbereich verwendet wird.

In Schritt S12 wird der Index eines Ausgangsvektors auf i = 0 gesetzt.

In Schritt S13 werden die partiellen inneren Produkte fk (k = 0 bis p - 1) zwischen dem Vektor R und dem Vektor Vi bezüglich des Index i berechnet. Im Schritt S14 wird die Summe der Absolutwerte der partiellen inneren Produkte fk bezüglich aller k (0 bis p - 1) berechnet, und die Summe wird mit den normierten Gewichtungskoeffizienten wi multipliziert, wodurch die Summe cor(i) der normierten Absolutwerte erhalten wird. I Schritt S15 wird i auf i + 1 gesetzt. In Schritt S16 wird überprüft, ob i gleich oder kleiner i ist. Wenn die Antwort in Schritt S16 YA ist, wird der Verarbeitungsfolgeschritt S13 wiederholt. Auf diese Art wird die Verarbeitung in Schritt S13 und die Verarbeitung in Schritt S14 wiederholt durchgeführt, bis i = 0 bis I - 1 eingestellt ist.

In Schritt S17 werden die Summen cor(i) der normierten Absolutwerte in der Reihenfolge der Beträge geordnet, wobei J Indices i beruhend auf J größten Summen der normierten Absolutwerte ausgewählt werden, und wobei J Indices i als i- opt(j) (j = 0 bis J - 1) gespeichert werden.

In Schritt S18 werden die J ausgewählten Indices als Vorauswahl-Ergebnisse ausgegeben.

Der Hauptauswahlabschnitt 213 wird im Anschluss beschrieben. Fig. 10 ist ein Blockdiagramm, das eine Anordnung des Hauptauswahlabschnitts 213 zeigt. Der Hauptauswahlabschnitt 213 enthält einen Berechnungsabschnitt 501 des partiellen inneren Produkts, einen Absolutwertaddierer 502, einen Bewertungsabschnitt 503, einen Polaritätsmultiplizierer 504 und einen Berechnungsabschnitt 505 der normierten Leistung, und ist ausgestaltet zum sequentiellen Extrahieren aus dem Rausch-Codebuch 100 der Ausgangsvektoren V entsprechend den J Indices i-opt(j) (j = 0 bis J - 1), die von dem Vorauswahlabschnitt 212 ausgewählt wurden. In Fig. 10 wird p = 2 und N = 6 eingestellt. Der Berechnungsabschnitt des partielle inneren Produkts 501 (Partielles-Iinneres- Produktberechnungsabschnitt) berechnet nicht nur die partiellen inneren Produkte fk (k = 0 bis p - 1) zwischen dem Bezugsvektor R und den Ausgangsvektoren V entsprechend den Indices, die aus dem Rausch-Codebuch 100 extrahiert wurden, sondern auch ein Polaritäts-Informations-Bit bk und eine Polarität sk. Die Polarität sk kann mit der folgenden Gleichung festgelegt werden:

Sk = sign(fk) (6)

wobei sign(x) ein Wert ist, der die Polarität (positiv/negativ) von x darstellt.

Wenn das k-te Bit bk der Polaritäts-Information so eingestellt wird, dass beispielsweise bk = (1 - sk)/2 ist, kann das Bit bk der Polarität sk entsprechen.

Fig. 11 zeigt Prozeduren zum Berechnen der Polarität sk und des Polaritäts-Informations-Bits bk auf der Grundlage des Bezugsvektors R und des Ausgangsvektors V.

In Schritt S21 werden die Variablen N, P, der Vektor R und der Ausgangsvektor V eingestellt.

In Schritt S22 werden die partiellen inneren Produkte fk (k = 0 bis p - 1) mit dem Vektor R und dem Vektor V berechnet.

In Schritt S23 werden die Polarität sk und das Polaritäts-Informations-Bit bk aus den partiellen inneren Produkten fk berechnet, um die Polaritäts-Information zu bestimmen.

In Schritt S24 werden die Polarität sk und das Polaritäts-Informations-Bit bk ausgegeben.

Der Polaritätsmultiplizierer 504 verwendet die Polarität sk, die bezüglich des Vektors V berechnet wurde, zum Erzeugen des Vektors U, wobei jeder eine Form hat, die durch die folgende Gleichung optimiert ist:

Un = vn · sk (n = 0 bis N - 1, k = n mod p)

Wenn beispielsweise p = 2, N = 6 und L(p,n) = n mod p, sind, dann gilt u&sub0; = v&sub0;s&sub0;, u&sub1; = v&sub1;s&sub1;, u&sub2; = v&sub2;s&sub0;, u&sub3; = v&sub3;s&sub1;, u&sub4; = v&sub4;s&sub0; und u&sub5; = v&sub5;s&sub1;.

Der Leistungsberechnungsabschnitt 505 nimmt den Vektor U, einen synthetisierten Tonhöhenvektor X&sub0; und gewichtete Synthesefilterkoeffizienten-Information H zum Berechnen einer normierten Leistung pow des Synthesevektors des normierten Vektors V und gibt die Leistung pow an den Bewertungsabschnitt 503.

Der Absolutwertaddierer 502 berechnet ein inneres Produkt cor(i) mit dem oben beschriebenen Verfahren und gibt den inneren Produktwert cor(i) an den Bewertungsabschnitt 503. Der Bewertungsabschnitt 503 wählt den optimalen Index Ic durch eine Bewertungsverarbeitung für jeden Index mit dem inneren Produktwert cor(i) und der Leistung pow aus. Der Bewertungsabschnitt 503 gibt den optimalen Index Ic zusammen mit einem Polaritäts-Informationsindex Ip entsprechend dem optimalen Index Ic aus.

Fig. 12 zeigt die Verarbeitungsprozeduren des Hauptauswahlabschnitts 213.

In Schritt S31 wird die Initialisierung durchgeführt.

In Schritt S32 werden cor2(0) und pow(0) beruhend auf j = 0, m = i-opt(0), Ic = m und Vm berechnet.

In Schritt S33 wird überprüft, ob j = J - 1 erfüllt ist. Wenn die Antwort in Schritt S33 JA ist, wird Ip entsprechend Ic in Schritt S42 bestimmt und die Indices Ic und Ip in Schritt S43 ausgegeben.

Wenn die Antwort in Schritt S33 NEIN ist, werden j auf j + 1 und m = i-opt(j) in Schritt S34 eingestellt und das partielle innere Produkt fk (k = 0 bis p - 1) zwischen dem Vektor R und dem Vektor Vm in Schritt S35 berechnet. In Schritt S36 wird der Quadratwert von cor(j) entsprechend dem Index i-opt(j) berechnet und auf cor2(j) eingestellt. In Schritt S37 wird un = vn · sk (k = K (p, n), n = 0 bis N - i) berechnet. In Schritt S38 wird eine Leistungskomponente, zu der der Vektor U beiträgt, auf pow(j) gesetzt. In Schritt S39 wird der Index i-opt(j) mit dem Index i-opt(j - 1) mit cor2(j) und pow wie folgt verglichen:

e = cor2 (j) · pow (j - 1) - cor2 (j - 1)· pow (j) (7)

In Schritt S40 wird überprüft, ob e positiv ist. Wenn die Antwort in Schritt S40 JA ist, wird Ic = m in Schritt S41 gesetzt. Der Fluss kehrt zu Schritt S33 zurück. Wenn die Antwort in Schritt S40 NEIN ist, kehrt der Fluss sofort zu Schritt S33 zurück.

Auf diese Art werden der Index (Ausgangsvektorindex) Ic des Rausch-Codebuchs und der Polaritäts-Informationsindex Ip, die aus dem Hauptauswahlabschnitt 213 erhalten werden, dem Rausch-Vektorwiedergabeabschnitt 215 eingegeben, und die Multiplikation für jedes Element mit dem Vektor V entsprechend dem Index Ic des Rausch-Codebuchs und entnommen aus dem Rausch-Codebuch 100 und dem Vektor S entsprechend dem Polaritäts-Informationsindex Ip wird zum Berechnen des Rausch-Codevektors (repräsentativer Codevektor) U mit einer optimalen Form durchgeführt.

Fig. 13 zeigt die entsprechenden Prozeduren des Rausch- Vektorwiedergabeabschnitts 215.

In Schritt S51 werden der Ausgangsvektor V entsprechend dem Index Ic und die Bits bk, die den Polaritäts- Informationsindex Ip repräsentieren, eingestellt.

In Schritt S52 wird die Polarität sk auf der Grundlage der Bits bk erhalten.

In Schritt S53 wird die Polarität sk (k = 0 bis p - 1) mit jedem Element des Ausgangsvektors V zum Berechnen des Repräsentativ-Vektors U multipliziert.

In Schritt S54 wird der Vektor U so gesetzt, dass er ein Rausch-Codevektor Y&sub1; ist, wobei der Rausch-Vektorwiedergabeabschnitt 215 einen synthetisierten Rausch-Codevektor X&sub1; mit der gewichteten Synthesefilterkoeffizienten-Information H und dem Rausch-Codevektor Y&sub1; errechnet und den synthetisierten Rausch-Codevektor X&sub1; ausgibt.

In Fig. 6 wird der Verstärkungsfaktor-Codeabschnitt 206 jeweilige Verstärkungsfaktoren kodieren, um diese mit einer Tonhöhenkomponente und einer Rauschkomponente zu multiplizieren. Genauer gesagt, der Verstärkungsfaktor- Kodierabschnitt 206 empfängt den synthetisierten Tonhöhenvektor X&sub0; und den synthetisierten Rausch-Codevektor X&sub1;, der von dem Tonhöhen-Kodierabschnitt 204 bzw. dem Rausch- Code-Kodierabschnitt 205 ausgegeben wird, und sucht in einem inkorporierten Verstärkungsfaktor-Codebuch (nicht gezeigt) nach einem Paar Verstärkungsfaktoren (g&sub0;, g&sub1;), bei denen der Fehler zwischen dem Bezugsvektor X und einem Vektor (g&sub0;x&sub0; + g&sub1;x&sub1;) minimal ist, und nach einm Index G entsprechend diesem Paar. Der Verstärkungsfaktor-Kodierabschnitt 206 gibt das Paar (g&sub0;,g&sub1;) und den Index G aus.

Der lokale Dekodierabschnitt 207 nutzt die Verstärkungsfaktoren g&sub0; und g&sub1;, den Tonhöhenvektor Y&sub0; und den Rausch-Codevektor Y&sub1; zur Erzeugung eines Anregungssignals entsprechend einem gegenwärtigen Block (Frame). Der lokale Dekodierabschnitt 207 verwendet das Anregungssignal und die gewichtete Synthesefilterkoeffizienten-Information H zur Erzeugung eines lokal dekodierten Signals.

Der Multiplexer 208 empfängt kodierte Parameter- Information, die von den Kodierabschnitten 204, 205 und 206 erhalten wurde, multiplext diese Informations-Elemente bzw. - Items und gibt den sich ergebenden Wert an einen Übertragungsweg oder Speichermedium aus.

Eine Sprach-Dekodiervorrichtugn zur Dekodierung von übertragener Information von der Sprach-Kodiervorrichtung zur Ausgabe wiedergegebener Sprache wird im Anschluss unter Bezugnahme auf Fig. 14 beschrieben.

Die Kodierparameter-Information (Synthesefilterkoeffizienten-Information, Tonhöhen-Information, Rauschindex- Information Ic, Polaritäts-Information Ip und Verstärkungsfaktorindex-Information), die von einem Anschluss 601 eingegeben wird, wird durch einen Demultiplexer 602 in Informationselemente demultiplext, die in den Dekodierabschnitten (später zu beschreiben) verwendet werden. Ein Tonhöhen- Dekodierabschnitt 603 inkorporiert ein Adaptiv-Codebuch (nicht gezeigt), wobei vorangehende Anregungssignale, wie bei der Sprach-Kodiervorrichtung, die in Fig. 6 gezeigt ist, gespeichert werden, und empfängt Indices, die für das Adaptiv-Codebuch von dem Demultiplexer 602 zur Wiedergabe des Tonhöhenvektors Y&sub0; verwendet werden sollen.

Ein Rausch-Dekodierabschnitt 604 enthält ein Rausch- Codebuch 605 und einen Rausch-Vektorwiedergabeabschnitt 606, verwendet den Vektor V entsprechend dem kodierten Index Ic und dem Rausch-Codebuch und den Polaritäts-Informationsindex Ip zur Wiedergabe des Rausch-Codevektors U mit einer Form, die durch dieselbe Verarbeitung optimiert ist, wie sie bei dem Rausch-Vektorwiedergabeabschnitt 215 der Sprach- Kodiervorrichtung durchgeführt wird, die in Fig. 6 gezeigt ist, und gibt den Rausch-Codevektor U als den Vektor Y&sub1; aus. Ein Verstärkungsfaktor-Dekodierabschnitt 607 enthält ein Verstärkungsfaktor-Codebuch (nicht gezeigt), wie bei der Sprach-Kodiervorrichtung, und gibt Verstärkungsfaktoren g&sub0; und g&sub1; mittel des Dekodierindex G wieder. Multiplizierer 608 und 609 und ein Addierer 610 werden zum Wiedergeben des Anregungssignals g&sub0;yβ + g&sub1;y&sub1; verwendet. Ein Synthesefilter 611 verwendet dekodierte Synthesefilterkoeffizienten-Information und das Anregungssignal zum Berechnen eines dekodierten Sprachsignals und gibt das dekodierte Sprachsignal aus. Ein nachgeschaltetes Filter oder Postfilter 612 wird zum Durchführen von Verarbeitung in der Endstufe der Sprach- Dekodiervorrichtung verwendet. Das Postfilter 612 bestimmt die Filtercharakteristika auf der Grundlage übertragener kodierter Parameter-Information und gibt ein dekodiertes Sprachsignal mit eingestellter Qualität über einen Anschluss 613 als ein wiedergegebenes Sprachsignal aus.

Wie es vorangehend beschrieben wurde, wird entsprechend dem dritten Beispiel ein Polaritäts-Informationsindex, der die Polarität jedes Elements sn eines N-dimensionalen Polaritätsvektors S angibt, erzeugt, und der N-dimensionale Polaritätsvektor S wird auf der Grundlage der Polaritäts- Informationsindices erzeugt. Das Element sn des N- dimensionalen Polaritätsvektors wird mit dem Element vn eines N-dimensionalen Ausgangsvektors oder Seed-Vektors V multipliziert, um einen Repräsentativ-Vektor U zu erzeugen, der als ein Element vn · sn (n = 0 bis N - 1, sn = 1) als ein Element hat, so dass der Codevektor U mit einer Form, die sich in Abhängigkeit des Polaritäts-Informationsindex ändert, bezüglich eines Ausgangsvektors V einfach erzeugt werden kann.

In diesem Fall ist die Polarität des Elements sn des Polaritätsvektors S so gesetzt, dass sie gleich sk ist (k = LL(p,n) (0 ≤ k ≤ p - 1, 1 ≤ p ≤ N)), wobei die Polarität sk und der k-te Bit-Wert bk der Polaritäts-Information veranlasst werden, einander zu entsprechen, um einen p-Bit- Polaritäts-Informationsindex zu erzeugen. In diesem Fall ist die maximale Anzahl von Formen des Codevektors U, die auf der Grundlage eines Ausgangsvektors V erzeugt werden können, auf 2p begrenzbar. Da die Bit-Rate begrenzt ist, ist es nötig, die Anzahl der Bits des Polaritäts-Informationsindex auf p- Bit zu beschränken. Die Bit-Rate kann leicht durch Ändern des Werts p geändert werden.

Zusätzlich wird der Wert p der Funktion L(p,n) geändert, wobei die Anzahl der veränderbaren Formen des Repräsentativ- Vektors U leicht gesteuert werden kann.

Zusätzlich sei angenommen, dass die Funktion L(p,n) wie folgt eingestellt ist:

L(p,n) = n mod p (8)

oder

L (p, n) = floor (n x p/N) (9)

wobei floor(x) die maximale ganze Zahl ist, die nicht x übersteigt.

In diesem Fall kann die Anzahl der Elemente un des Codevektors U, die mit der gleichen Polarität erzeugt wird, vereinheitlicht werden. Im allgemeinen kann, wenn die oben genannte Funktion L(p,n) verwendet wird, die Information für jedes Bit bk, das Polaritäts-Information repräsentiert, effektiv eine Änderung in der Form des Codevektors U darstellen.

Der Polaritätsvektor S, der in der Lage ist, den Codevektor U zu erzeugen, bei dem der Formfehler zwischen dem Vektor U und dem Zielvektor R minimal ist, wird wie folgt bestimmt. Das heißt, das partielle innere Produkt fk zwischen dem Zielvektor R und dem Vektor V wird bezüglich des n-ten Vektorelements berechnet, das erfüllt k = L(p,n) und sk = sign(fk) (sign(x) ist ein positiver/negativer Polaritätswert von x). In dieser Art kann unabhängig von der Anzahl p der Bits des Polaritäts-Informationsindex sowohl sk und bk (k = 0 bis p - 1) durch Berechnung bestimmt werden, wobei die Dimensionszahl des Vektors klein ist. Daher, auch wenn die Zahl p der Bits des Polaritäts-Informationsindex auf 10 oder mehr eingestellt wird, steigt der Rechenaufwand, der zum Suchen der optimalen p-Bit-Informations {b&sub0;, b&sub1;, ..., bp-1} entsprechend einem Index in der normierten Vektorquantifizierung) nicht an. Daher ist zu verstehen, dass die Vektorquantissierungsvorrichtung dieses Beispiels insbesondere für eine Kodiervorrichtung geeignet ist, wobei ein Rechenaufwand für Echtzeitverarbeitung eng begrenzt ist.

Zusätzlich sind eine Mehrzahl von Ausgangsvektoren V (Seed-Vektoren) in diesem Beispiel vorhanden. Das heißt, es ist ein effektives Verfahren, das die Anordnung der Ausgangsvektoren in die Anordnung ausgedehnt werden kann, die durch Vi dargestellt ist (i = 0 bis I - 1). Genauer gesagt, der Codevektor U wird durch zwei Informationselemente dargestellt, nämlich dem Ausgangsvektorindex Ic zur Auswahl eines optimalen Ausgangsvektors V aus Vektoren Vi und dem optimalen Polaritäts-Informationsindex Ipm, entsprechend dem Ausgangsvektorindex Ic. In diesem Fall, wenn das folgende Mittel in dem Prozess der Auswahl eines Ausgangsvektorindex verwendet wird, kann der für die Indexsuche benötigte Rechenaufwand beachtlich verringert werden. Das heißt, um eine kleine Anzahl J von Indices aus einer großen Anzahl I von Ausgangsvektorindices auszuwählen, indem die folgende Gleichung verwendet wird:

cor(i) = fk

die auf der Basis des partiellen inneren Produkts fk zwischen dem Zielvektor und dem Codevektor berechnet wird, bezüglich des n-ten Vektorelements, das dieses k des Ausgangsvektors Vi erfüllt, ist gleich L(p,n) (k und p sind ganze Zahlen, die erfüllen 0 .. k .. p - 1 und 1 .. p .. N), wobei die Zahl der Ausgangsvektorindices verringert auf J (0 < J < < I) ist. Dies liegt daran, dass cor(i) das innere Produkt zwischen dem optimalen Repräsentativ-Vektor Ui, der aus dem Ausgangsvektor Vi erhalten wird, und dem Zielvektor R ist.

Bei der Vektorquantifizierungsvorrichtung entsprechend diesem Beispiel erfordert, auch wenn die Zahl p der Bits des Index, der für die Vektorquantifizierung verwendet wird, auf einen sehr großen Wert gesetzt wird, beispielsweise 10 oder mehr, die Indexsuche eine kleine Verarbeitungsmenge. Daher ist die Vektorquantifizierungsvorrichtung für Echtzeitverarbeitung geeignet.

Entsprechend diesem Beispiel kann, auch wenn die Zahl I der Ausgangsvektoren Vi eingestellt ist, so dass sie beachtlich kleiner als jene des herkömmlichen Verfahrens ist, eine große Anzahl von Codevektoren leicht in der Form eines Codebuchs realisierbar, wobei Speicherkapazität, die zum Speichern der Ausgangsvektoren benötigt wird, gespart werden kann.

Zusätzlich kann entsprechend diesem Beispiel, auch wenn Polaritäts-Information aufgrund eines Code-Fehlers auf einem Übertragungspfad oder einem Speichermedium beeinträchtigt wird, ein Codevektor mit geringer Verschlechterung in vorteilhafter Weise wiedergegeben werden. Dies liegt daran, dass die 1-Bit-Polaritäts-Information die Polarität eines Abschnitts des Codevektors beeinflusst. Im Ergebnis verschlechtert der Fehler der 1-Bit-Polaritäts-Information nicht die gesamte Form des Codevektors, sondern verschlechtert partiell die Form des Codevektors. Daher hat die Vektorquantifizierungsvorrichtung entsprechend diesem Beispiel in vorteilhafter Weise eine hohe Widerstandskraft bezüglich dem Code-Fehler der Polaritäts-Information.

(Viertes Beispiel)

Fig. 15 ist ein Blockdiagramm, das eine Sprach- Kodiervorrichtung entsprechend dem vierten Beispiel zeigt. Dieses Beispiel unterscheidet sich von dem dritten Beispiel dahingehend, dass ein Rausch-Kodierabschnitt 205 eine kleine Anzahl von Indexpaaren aus einem Rausch-Codebuch 100 und einen Polaritäts-Informationsindex auswählt, und dass ein Verstärkungsfaktor-Kodierabschnitt 206 letztlich ein Paar von Indices Ic und Ip aus der kleinen Anzahl der Indexpaare auswählt.

In Fig. 15 umfasst ein Rausch-Kodierabschnitt 205 einen korrigierten Bezugsvektorgenerator 211, ein Rausch-Codebuch 100, einen Vorauswahlabschnitt 212 und einen Rausch- Vektorwiedergabeabschnitt 215. Der Vorauswahlabschnitt 212 benutzt einen korrigierten Bezugsvektor R und das Rausch- Codebuch 100 zur Auswahl einer kleinen Anzahl (J) von Indices aus einer großen Anzahl von Indices in dem Rausch-Codebuch 100. Die J Indices und Polaritäts-Informationsindices entsprechend den J Indices werden an den Rausch- Vektorwiedergabeabschnitt 215 geliefert. Der Rausch- Vektorwiedergabeabschnitt 215 hat die gleiche Funktion wie der Rausch-Vektorwiedergabeabschnitt 215 der ersten Ausführungsform. Der Rausch-Vektorwiedergabeabschnitt 215 gibt J Paare von Indices des Codebuchs und der Polaritäts- Informationsindices, die diesen entsprechen, sowie einen Verstärkungsfaktor-Kodierabschnitt 206 aus. Der Verstärkungsfaktor-Kodierabschnitt 206 kodiert Verstärkungsfaktoren für die J Paare, die ihm eingegeben werden, indem synthetisiertes Tonhöhenvektoren X&sub0; verwendet werden, mit demselben Verfahren, das bei dem Verstärkungsfaktor-Kodierabschnitt 206 der ersten Ausführungsform verwendet wird. Letztlich wird ein Paar Vektoren mit dem minimalen Fehler bezüglich eines Bezugsvektors X aus den J Paaren ausgewählt. In diesem Fall, wenn der Rausch-Codevektor durch Y&sub1; dargestellt, der Index des Codebuchs Ic und der Polaritäts-Informationsindex Ip ist, werden Verstärkungsfaktoren g&sub0; und g&sub1; an einen lokalen Dekodierabschnitt 207 ausgegeben, und die Indices Ic und Ip und ein Index G des Verstärkungsfaktor-Codebuchs 100 werden an einen Multiplexer 208 ausgegeben.

Die anderen Anordnungen des vierten Beispiels sind die gleichen wie jene des dritten Beispiels, und ihre Beschreibung wird hier weggelassen.

(Fünftes Beispiel)

Bei dem oben beschriebenen Sprach-Kodier-/Dekodier- Vorrichtungen ist es ein wichtiges Problem, wie die Informationsmenge eines übertragenen Codes von der Kodiervorrichtung verringert wird. Insbesondere wird ein Anregungssignal für ein Synthesefilter ein Signal genannt, das von dem Modellieren eines Signals erhalten wird, das von menschlichen Stimmbändern erzeugt wird, und das ein charakteristisches Merkmal dahingehend hat, dass die Leistung des Anregungssignals sich moderat mit der Zeit ändert. Daher verringern verschiedene Verfahren zur Ausnutzung dieses charakteristischen Merkmals die Anzahl der für die Quantifizierung der Übertragung der Index-Information eines Verstärkungsfaktor-Codebuchs bereitgestellten Bits. Mehrere Beispiele, in denen die Übertragung der Information eines Verstärkungsfaktors, durch den der Codevektor multipliziert wird, die Quantifizierung durchgeführt wird, um die Anzahl der Bits zu verringern, die für die Quantifizierung der Index-Information des Verstärkungsfaktor-Codebuchs benötigt werden, werden im Anschluss beschrieben.

Fig. 16 zeigt die Anordnung einer Verstärkungsfaktorquantifizierungsvorrichtung entsprechend diesem Beispiel. Codevektoren Cx und Cy, die jeweils Anschlüssen P1 und P2 eingegeben werden, werden mit Verstärkungsfaktoren Gx und Gy mittels jeweiliger Verstärkungsfaktorschaltungen 11 und 12 multipliziert, und die sich ergebenden Vektoren werden miteinander durch einen Addierer 13 synthetisiert, um einen Ausgabevektor Cz zu bilden. Der Ausgabevektor Cz wird von einem Anschluss PS ausgegeben. Der Verstärkungsfaktor Gx wird von einem Anschluss P4 zugeführt, und der Verstärkungsfaktor Gy wird von einem Invers-Normierungsabschnitt 15 geliefert.

Die Eingangsvektoren Cx und Cy werden einem Invers- Normierungskoeffizientenkalkulator 15 eingegeben, und ein Invers-Normierungskoeffizient Ny wird durch den Invers- Normierungskoeffizientenkalkulator 14 berechnet. Der Verstärkungsfaktor Gy und die Verstärkungsfaktorschaltung 12 wird so erhalten, dass ein normierter Verstärkungsfaktor Ly, der von dem Normierungsabschnitt 15 zugeführt wird, inversnormiert wird, indem der Invers-Normierungskoeffizient Ny verwendet wird. Der Verstärkungsfaktor Gx der Verstärkungsfaktorschaltung 11 und der normierte Verstärkungsfaktor Ly der Verstärkungsfaktorschaltung 12 werden nach Notwendigkeit quantifiziert, und dann an einen Übertragungsweg übertragen oder in einem Speichermedium gespeichert.

In diesem Fall wird der Invers-Normierungskoeffizient Ny wie folgt ausgedrückt:

Ny = (10)

wobei Px und Py Leistungen der Eingangsvektoren Cx bzw. Cy sind.

Angemerkt sei, dass wenn der Wert der Leistung Px im Voraus so eingestellt ist, dass er ein konstanter Wert ist, oder so ausgestaltet ist, um ein konstanter Wert zu sein, dann kann der Invers-Normierungskoeffizient Ny wie folgt berechnet werden:

Ny = (11)

Der Verstärkungsfaktor Gy kann mit dem Invers- Normierungskoeffizienten Ny wie folgt berechnet werden:

Gy = Ly/Ny (12)

Die Verstärkungsfaktorquantifizierungsvorrichtung dieses Beispiels arbeitet besonders effektiv in dem folgenden Fall. Das heißt, wie es in einer Sprach-Kodiervorrichtung, die später beschrieben wird, entsprechend diesem Beispiel beschrieben ist, ist die Leistung des Eingangsvektors Cx im allgemeinen gleich jener des Ausgabevektors Cz, und der Eingangsvektor Cy mit einer Leistung, die nicht gleich einem Codevektor eingestellt ist, wird aus dem Rausch-Codebuch erhalten. In diesem Fall hat, obwohl der Verstärkungsfaktor Gx der Verstärkungsfaktorschaltung einen Wert in der Nähe von 1,0 hat, und der Verstärkungsfaktor Gy, der der Verstärkungsfaktorschaltung 12 zugeführt wird, einen Wert in Abhängigkeit von dem Betrag des Ausgabevektors Cz.

In diesem Fall entsprechend dem Beispiel ändert sich, auch wenn der Wert des Ausgabevektors Cz sich ändert, wie es aus Gleichung (12) offensichtlich ist, der Wert des normierten Verstärkungsfaktors Ly nicht. Daher ist die Anzahl der Quantifizierungs-Bits, die für die Übertragungs- /Speicher-Information des normierten Verstärkungsfaktors Ly benötigt wird, kleiner als jene in einem Fall, in dem die Information des Verstärkungsfaktors Gy direkt übertragen und gespeichert wird.

Dieser Mechanismus wird im Anschluss unter Bezug auf ein einfaches Beispiel beschrieben. Beispielsweise sei angenommen, dass die Leistung des Ausgabevektors Cz sich vervierfacht. Wie beschrieben wurde, da die Leistung Px des Eingangsvektors Cx in etwa gleich der Leistung des Ausgangsvektors Cz ist, wird die Leistung Px des Eingangsvektors Cx das 4-fache. Wie es oben beschrieben wurde, ist die Leistung des Eingangsvektors Cy nicht eingestellt. Im Ergebnis wird der Wert des Verstärkungsfaktors Gy, der der Verstärkungsfaktorschaltung 12 zugeführt wird, das Doppelte in seiner Amplitude. Jedoch ist der normierte Verstärkungsfaktor Ly durch den folgenden Ausdruck gegeben:

y = Gy · Ny

= 2,0 · Gy · (13)

= Gy ·

Auch wenn der normierte Verstärkungsfaktor Ly sich nicht ändert, kann der Verstärkungsfaktor Gy der Verstärkungsfaktorschaltung 12 geändert werden.

Wenn die Normierung nicht durchgeführt wird, ändert sich der Verstärkungsfaktor Gy in Abhängigkeit von einer Änderung des Ausgabevektors Cz. Daher benötigt die Übertragung der Information des Verstärkungsfaktors Gy eine große Anzahl von Bits. Im Gegensatz dazu ändert sich entsprechend diesem Beispiel der normierte Verstärkungsfaktor Ly in Abhängigkeit von der Änderung des Ausgabevektors Cz nicht. Daher kann die Übertragung/Speicherung mit einer kleinen Anzahl von Bits durchgeführt werden. Diese Ausführungsform wird auf der Kodierseite der Sprach-Kodier-/Dekodier-Vorrichtung verwendet.

(Sechstes Beispiel)

Ein Beispiel einer Sprach-Kodiervorrichtung mit der in Fig. 16 gezeigten Verstärkungsfaktorquantifizierungsvorrichtung wird im Anschluss unter Bezugnahme auf Fig. 17 beschrieben. Wie in den obigen Beispielen beruht die Sprach- Kodiervorrichtung auf einem CELP-Schema. Die Sprach- Kodiervorrichtung umfasst einen Verstärkungsquantifizierungsabschnitt 10 mit der gleichen Anordnung wie jener der in Fig. 16 gezeigten Verstärkungsfaktorquantifizierungsvorrichtung, ein Verstärkungsfaktor-Codebuch 30, ein Adaptiv- Codebuch 31, ein Rausch-Codebuch 32, ein normiertes Verstärkungsfaktor-Codebuch 33, einen LPC-Analyseabschnitt 35, ein gewichtetes Synthesefilter 36, einen Vorempfang-Gewichtungsabschnitt 37, einen Fehlerkalkulator 38 und einen Fehlerbewertungsabschnitt 39. Der Fehlerbewertungsabschnitt 39 hat die Funktionen der Indexauswahlabschnitte 2320 und 2325 aus Fig. 1 oder die Funktionen der Kodierabschnitte 202, 204, 205 und 206 und die Funktion des Multiplexers 208 aus Fig. 6.

Der Betrieb der Sprach-Kodiervorrichtung ist wie folgt.

Ein zu kodierendes Sprachsignal wird einem Eingangsanschluss 34 eingegeben. Das Eingangssprachsignal wird durch den LPC-Analyseabschnitt 35 analysiert, um den Filterkoeffizienten des gewichteten Synthesefilters 36 zu berechnen. Das Eingangssprachsignal wird auch dem Vorempfangs- Gewichtungsabschnitt 37 eingegeben, wodurch ein gewichtetes Eingangssprachsignal erhalten wird. Der Einfluss eines vorangehenden Frames wird aus dem gewichteten Eingangssprachsignal entfernt, wodurch ein Zielsignal erhalten wird.

Das Adaptiv-Codebuch 31 ist ein Codebuch, das auf vorangehenden Anregungssignalen für Anregungen des gewichteten Synthesefilters 36 beruht und sich mit der Zeit ändert. Das gewichtete Synthesefilter 36 erzeugt auch einen Codevektor (auf den als ein Adaptiv-Codevektor im Anschluss Bezug genommen wird) beruhend auf einer Tonhöhe. Andererseits ist das Rausch-Codebuch 32 ein übliches festes Codebuch, das Rauschkomponenten-Codevektoren speichert (die im folgenden als Rausch-Codevektoren bezeichnet werden). Ein Adaptiv- Codevektor, der aus dem Adaptiv-Codebuch 31 erhalten wird oder ein Rausch-Codevektor, der aus dem Rausch-Codebuch 32 erhalten wird, werden jeweils den Anschlüssen P1 und P2 des Verstärkungsfaktorquantifizierungsabschnitts 10 eingegeben, der in Fig. 16 beschrieben ist, als Eingangsvektor Cx bzw. Cy.

In dem Verstärkungsfaktorquantifizierungsabschnitt 10 multipliziert eine Verstärkungsfaktorschaltung 11 den Adaptiv-Codevektor Cx, der dem Anschluss P1 eingegeben ist, mit einem vorgegebenen Verstärkungsfaktor Cx, der von einem Anschluss P4 eingegeben wird, und mit dem Verstärkungsfaktor- Codevektor aus dem Verstärkungsfaktor-Codebuch 30 ausgedrückt ist, und eine Verstärkungsfaktorschaltung 12 multipliziert den Rausch-Codevektor, der dem Anschluss P2 eingegeben ist, mit einem Verstärkungsfaktor Gy, der von einem Invers- Normierungsabschnitt 15 ausgegeben wird. Ein Ausgabevektor, der erhalten wird, indem ein Addierer 13 veranlasst wird, die Ausgaben der Verstärkungsfaktorschaltungen 11 und 12 miteinander zu addieren, wird von einem Anschluss PS als ein Anregungssignal zur Anregung des gewichteten Synthesefilters 36 ausgegeben. Das Anregungssignal wird auch an das Adaptiv- Codebuch 31 ausgegeben (darin gespeichert), um die nächste Frame-Verarbeitung vorzubereiten.

Der Fehler zwischen dem von dem gewichteten Synthesefilter 36 erhaltenen, synthetisierten Sprachsignal und dem Zielsignal wird durch den Fehlerbewertungsabschnitt 39 bewertet und die Suche in dem Adaptiv-Codebuch 31, dem Rausch-Codebuch 32 und dem normierten Verstärkungsfaktor- Codebuch 33 nach einer Kombination eines Adaptiv-Codevektors, eines Rausch-Codevektors und eines Verstärkungsfaktors durchgeführt, sodass der Fehler minimiert ist. Der durch den Fehlerkalkulator 38 berechnete Fehler wird durch den Fehlerbewertungsabschnitt 39 bewertet. Wenn der Fehler minimal ist, werden ein Index F, der den Filterkoeffizienten des gewichteten Synthesefilters 36 darstellt, ein Index I, der den Adaptiv-Codevektor von dem Adaptiv-Codebuch 31 darstellt, ein Index J, der den Rausch-Codevektor von dem Rausch-Codebuch 32 darstellt, ein Index K, der einen durch Normierung des Verstärkungsfaktors Gy der Verstärkungsfaktorschaltung 12 aus dem normierten Verstärkungsfaktor- Codebuch 33 erhaltenen, normierten Verstärkungsfaktor Ly darstellt, und ein Index L, der den Verstärkungsfaktor Gx der Verstärkungsfaktorschaltung 11 aus dem Verstärkungsfaktor- Codebuch 30 darstellt, werden an einen Übertragungsweg oder ein Speichermedium (nicht gezeigt) als Kodierparameter ausgegeben.

Dieses Beispiel hat ein charakteristisches Merkmal dahingehend, dass der Verstärkungsfaktor Gy des Rausch- Codevektors durch den normierten Verstärkungsfaktor Ly erhalten werden kann, der aus dem normierten Verstärkungsfaktor-Codebuch 33 erhalten wird, und einen Normierungskoeffizienten Ny, der durch einen Invers-Normierungskoeffizientenkalkulator 14 erhalten wird. Das heißt, die Aufmerksamkeit wird auf einen Punkt gerichtet, dass die meiste Leistung des Anregungssignals, das dem gewichteten Synthesefilter 36 eingegeben wird, von der Leistung des Adaptiv-Codevektors von dem Adaptiv-Codebuch 31 eingenommen wird. Entsprechend diesem Beispiel verwendet der Verstärkungsfaktorquantifizierungsabschnitt 10 diesen Punkt. Diese Tendenz ist insbesondere bei einer Sprach-Periode bzw. -Zeitspanne vorteilhaft, bei der sich die Tonqualität ändert und die Anordnung hat ausgezeichnetes Verhalten insbesondere in der Sprach-Zeitspanne.

Angemerkt sei, dass als ein Stand der Technik ein Verfahren zur Normierung eines Verstärkungsfaktors auf der Basis der Leistung des Anregungssignals, das in einem Frame vor dem gegenwärtig zu kodierenden Frame verwendet wurde, bekannt ist. Wenn betrachtet wird, dass das Adaptiv-Codebuch 31 durch das Anregungssignal des vorangehenden Frames gebildet ist, scheint die Anordnung dieser Ausführungsform ähnlich zu jener des Stands der Technik. Da das Beispiel irrtümlicherweise als Stand der Technik wiedererkannt werden könnte, wird der Unterschied zwischen diesem Beispiel und dem Stand der Technik im Anschluss beschrieben.

Fig. 18 zeigt 2 Frame-Signalverläufe des Adaptiv- Codevektors Cx von dem Adaptiv-Codebuch 31, dem Rausch- Codevektor Cy von dem Rausch-Codebuch 32 und eines Anregungssignals (Anregungsvektors) Cz, der von dem Addierer 13 an der vorderen Flanke der Spracheingabe ausgegeben wird.

Es wird ein Fall betrachtet, in dem die zweite Hälfte des Frames, das auf der rechten Seite in Fig. 18 gezeigt ist, verarbeitet wird. Wenn ein Stimmlaut sich nicht ändert, nämlich wenn die Charakteristika des gewichteten Synthesefilters 36 sich nicht ändert, wird der Betrag der Sprache durch die Leistung des Anregungssignals Cz bestimmt, dass dem gewichteten Synthesefilter 36 eingegeben wird. Daher kann das Anregungssignal Cz, das bei der Normierung des Verstärkungsfaktors der zweiten Hälfte des Frames verwendet wird, für das Anregungssignal Cz in einer Zeitspanne c2 aus Fig. 18 geeignet sein. Da jedoch das Anregungssignal Cz in der Zeitspanne c2 erhalten wird, nachdem der Verstärkungsfaktor bestimmt ist, kann das Anregungssignal Cz nicht zur Normierung des Verstärkungsfaktors verwendet werden. Daher wurde beim oben beschriebenen Stand der Technik der Verstärkungsfaktor mit der Leistung des Anregungssignals des vorangehenden Frames normiert, nämlich dem Anregungssignal Cz in der Zeitspanne c1 auf der Grundlage der Eigenschaft, dass die Leistung des Anregungssignals sich nur moderat ändert.

Jedoch, wie es aus Fig. 18 offensichtlich ist, da die Differenz zwischen dem Anregungssignal Cz in den Zeitspannen c1 und c2 an der vorderen Flanke der Sprache oder ähnlichem groß ist, stellt es ein Problem bei der Effizienz dar, dass das Anregungssignal in der Zeitspanne c1 bei der Normierung des Verstärkungsfaktors verwendet wird.

Im Gegensatz dazu wird bei diesem Beispiel ein Invers- Normierungskoeffizient mit der Leistung des Adaptiv- Codevektors Cx in einer Periode a2 des gegenwärtigen Frames berechnet, und der Verstärkungsfaktor wird mit dem Invers- Normierungskoeffizienten invers-normiert. Der Adaptiv- Codevektor in der Zeitspanne c2 hat einen Signalverlauf, der durch Wiederholen eines Tonhöhensignalverlaufs von dem Anregungssignal des vorangehenden Frames erhalten wird. Dieser Signalverlauf ist nicht der gleiche wie das Anregungssignal des vorangehenden Frames und ist ähnlich dem Signalverlauf des Anregungssignals des gegenwärtigen Frames. Daher, da die Leistung des Adaptiv-Codevektors in der Zeitspanne a2 nahe an der Leistung des Anregungssignals in der Zeitspanne c2 ist, und da ein Invers-Normierungskoeffizient mit dem Adaptiv-Codevektor berechnet wird, um den Verstärkungsfaktor invers zu normieren. Deshalb kann die Invers-Normierung effizienter durchgeführt werden.

Wie es oben beschrieben wurde, wird entsprechend dem sechsten Beispiel ein Invers-Normierungskoeffizient mit dem ersten Eingangsvektor Cx berechnet, der von dem gegenwärtigen Frame erhalten wird. Auf der Grundlage des Invers- Normierungskoeffizienten wird der Verstärkungsfaktor des zweiten Eingangsvektors Cy aus einem normierten Verstärkungsfaktor berechnet. In diesem Fall, da der normierte Verstärkungsfaktor sich nicht in Abhängigkeit einer Änderung des Ausgabevektors ändert, durch den der Verstärkungsfaktor multipliziert wird, wird die Information des normierten Verstärkungsfaktors mit einer kleinen Anzahl von Bits übertragbar oder speicherbar. Zusätzlich, wenn der Eingangsvektor des gegenwärtigen Frames in der Nähe des Ausgangsvektors ist, wird der Invers-Normierungskoeffizient mit dem Eingangsvektor des gegenwärtigen Frames berechnet. Daher ist die Invers-Normierungseffizienz in dem Übergangsteil eines Eingabesignals verbessert und die Leistung bzw. Performanz der Verstärkungsfaktorquantifizierung verbessert.

Daher wird bei der Sprach-Kodiervorrichtung entsprechend diesem Beispiel, wenn ein Verstärkungsfaktor, mit dem der Rausch-Codevektor multipliziert wird, in einer Vorrichtung zum Erzeugen eines Anregungsvektors quantifiziert wird, der durch Kombinieren des Adaptiv-Codevektors und des Rausch- Codevektors miteinander als Anregungssignal des Synthesefilters erhalten wird, ein Invers-Normierungskoeffizient mit dem Adaptiv-Codevektor berechnet, der als Codevektor dient, was vorzugsweise die Charakteristika des gegenwärtigen Frames wiedergibt. Der invers normierte Verstärkungsfaktor des Rausch-Codevektors wird mit dem Invers-Normierungskoeffizienten berechnet.

(Siebentes Beispiel)

Ein Beispiel der Sprach-Dekodiervorrichtung mit der Verstärkungsfaktorquantifizierungsvorrichtung aus Fig. 16 wird im Anschluss unter Bezug auf Fig. 19 beschrieben. Diese Sprach-Kodiervorrichtung dekodiert ein Originalsprachsignal auf der Basis von Kodierparametern, die von der in Fig. 17 gezeigtEN Sprach-Kodiervorrichtung über einen Übertragungsweg oder ein Speichermedium eingegeben werden. Indices F, I, J, K und L, die als Kodierparameter dienen, werden jeweils einem Synthesefilter 44, einem Adaptiv-Codebuch 41, einem Rausch- Codebuch 42, einen normierten Verstärkungsfaktor-Codebuch bzw. einem Verstärkungsfaktor-Codebuch eingegeben.

Der Adaptiv-Codevektor und der Rausch-Codevektor, die die gleichen wie jene sind, die von dem Adaptiv-Codebuch 31 und dem Rausch-Codebuch 32 auf der Grundlage der Indices I und J bei der in Fig. 17 gezeigten Sprach-Kodiervorrichtung ausgegeben werden, werden von dem Adaptiv-Codebuch 41 und dem Rausch-Codebuch 42 erhalten. Der Adaptiv-Codevektor und der Rausch-Codevektor werden jeweils als Eingangsvektoren Cx und Cy den Anschlüssen P1 und P2 eines Verstärkungsfaktorquantifizierungsabschnitts 20 eingegeben, der die gleiche Anordnung hat wie jener der Verstärkungsfaktorquantifizierungsvorrichtung, die in Fig. 16 beschrieben ist.

In dem Verstärkungsfaktorquantifizierungsabschnitt 20 multipliziert eine Verstärkungsfaktorschaltung 21 der Adaptiv-Codevektor, der dem Anschluss P1 eingegeben wurde, mit einem Verstärkungsfaktor Gx, der von dem Verstärkungsfaktor-Codebuch 40 erhalten wurde, und eine Verstärkungsfaktorschaltung 22 multipliziert den Rausch-Codevektor, der dem Anschluss P2 eingegeben wurde, mit einem Verstärkungsfaktor Gy, der durch Durchführen der Invers-Normierungsberechnung bezüglich des normierten Verstärkungswertes Ly erhalten wird, wobei ein Invers-Normierungskoeffizient Ny in einem Invers-Normierungsabschnitt 25 verwendet wird. Ein Ausgabevektor, der erhalten wird, indem ein Addierer 23 veranlasst wird, die Ausgaben der Verstärkungsfaktorschaltungen 21 und 22 miteinander zu addieren, wird als Anregungssignal zum Anregen des Synthesefilters 44 verwendet. Auf der Grundlage des Index F wird der Filterkoeffizient des Synthesefilters 44 so eingestellt, dass er die gleiche Charakteristika wie jene des Filterkoeffizienten des Synthesefilters 36 in der in Fig. 17 gezeigten Sprach-Kodiervorrichtung hat. Als ein Ergebnis wird das Originalsprachsignal aus dem Synthesefilter 44 als eine dekodierte Ausgabe erhalten.

Wie oben beschrieben wurde, verwendet die Sprach- Dekodiervorrichtung entsprechend diesem Beispiel eine Vorrichtung zum Dekodieren der Originalsprache auf der Grundlage der von der Sprach-Kodiervorrichtung der fünften Ausführungsform über einen Übertragungsweg oder ein Speichermedium eingegebenen Kodierparameter, den Adaptiv- Codevektor, der als Codevektor dient, welcher vorzugsweise die Eigenschaft der Sprache eines gegenwärtigen Frames wiedergibt, um einen Invers-Normierungskoeffizienten zu berechnen, und der normierte Verstärkungsfaktor in den kodierten Parametern wird invers-normiert, wobei der Invers- Normierungskoeffizient verwendet wird, um einen Verstärkungsfaktor zu erhalten, mit dem der Rausch-Codevektor zu multiplizieren ist.

(Achtes Beispiel)

Fig. 20 zeigt die Anordnung einer Verstärkungsfaktorquantifizierungsvorrichtung entsprechend dem achten Beispiel, das sich auf eine Modifikation des fünften Beispiels bezieht. Die an den Anschlüssen P1 und P2 eingegebenen Codevektoren Cx und Cy werden mit den Verstärkungsfaktoren Gx und Gy mittels der Verstärkungsfaktorschaltung 11 bzw. 12 multipliziert, und die sich ergebenden Vektoren werden miteinander durch einen Addierer 13 synthetisiert, um der Ausgabevektor Cz zu sein. Der Ausgabevektor Cz wird von einem Anschluss PS ausgegeben.

Die Eingangsvektoren Cx und Cy werden einem Normierungskoeffizientenkalkulator 14A eingegeben, und der Normierungskoeffizientenkalkulator 14A berechnet einen Normierungskoeffizienten Ny'. Ein normierter Verstärkungsfaktor Ly, der erhalten wird, indem der Normierungsabschnitt 15A veranlasst wird, den Verstärkungsfaktor Gy der Verstärkungsschaltung 12 zu normieren, wird nach Bedarf quantifiziert, und der sich ergebende Wert wird über einen Übertragungsweg übertragen, um in einem Speichermedium gespeichert zu sein.

In diesem Fall ist der Normierungskoeffizient Ny' wie folgt dargestellt:

Ny' = (14)

Angemerkt sei, dass wenn der Wert einer Leistung Px eingestellt ist, um ein konstanter Wert zu sein, oder ausgestaltet ist, um in etwa ein konstanter Wert zu sein, der Normierungskoeffizient Ny' ebenfalls wie folgt berechnet werden kann:

Ny' = (15)

Der normierte Verstärkungsfaktor Ly kann mit dem Normierungskoeffizienten Ny' wie folgt berechnet werden:

Ly = Gy · Ny' (16)

Bei der Verstärkungsfaktorquantifizierungsvorrichtung entsprechend dieser Ausführungsform wird ein Normierungskoeffizient mit dem ersten Eingangsvektor berechnet, der von dem gegenwärtigen Frame erhalten wird, ein normierter Verstärkungsfaktor, der durch Normierung des Werts des Verstärkungsfaktors des zweiten Eingangsvektors erhalten wird, wird auf der Grundlage des Normierungskoeffizienten berechnet. Da der normierte Verstärkungsfaktor, der wie oben beschrieben berechnet wurde, sich nicht in Abhängigkeit mit der Änderung des Vektors, der nach der Multiplikation mit dem Verstärkungsfaktor ausgegeben wird, ändert, kann die Information des normierten Verstärkungsfaktors mit einer kleinen Anzahl von Bits gespeichert oder übertragen werden. Wenn zusätzlich der Eingangsfaktor des gegenwärtigen Frames in der Nähe des Ausgabevektors ist, wird der Normierungskoeffizient mit dem Eingangsvektors des gegenwärtigen Frames berechnet. Daher ist die Normierung effizient in dem Übertragungsteil eines Eingabesignals verbessert, und die Leistung der Verstärkungsfaktorquantifizierung verbessert.

(Neuntes Beispiel)

Fig. 21 zeigt die Anordnung einer Verstärkungsfaktorquantifizierungsvorrichtung entsprechend dem neunten Beispiel, das sich auf eine Modifikation des fünften Beispiels bezieht. Die den Anschlüssen P1 und P2 eingegebenen Codevektoren Cx und Cy werden mit Verstärkungsfaktoren Gx und Gy mittels der jeweiligen Verstärkungsfaktorschaltungen 11 und 12 multipliziert und die sich ergebenden Vektoren miteinander durch einen Addierer 13 synthetisiert, um einen Ausgabevektor Cz zu sein. Der Ausgabevektor Cz wird von einem Anschluss PS ausgegeben. Ein Ausgabevektor Cx' (ein Vektor, der erhalten wird, indem die Verstärkungsfaktorschaltung 11 veranlasst wird, den Eingangsvektor Cx mit einem Verstärkungsfaktor Gx zu multiplizieren, nämlich ein skalierter Eingangsvektor) von der Verstärkungsfaktorschaltung 11 und ein Codevektor Cy werden einem Invers- Normierungskoeffizientenkalkulator 14 zugeführt, und der Invers-Normierungskoeffizientenkalkulator berechnet einen Invers-Normierungskoeffizienten Ny". Der Verstärkungsfaktor Gy der Verstärkungsfaktorschaltung 12 wird so erhalten, dass ein normierter Verstärkungsfaktor Ly mit dem Invers- Normierungskoeffizienten Ny" in einem Invers- Normierungsabschnitt 15 invers-normiert ist.

Bei der Verstärkungsfaktorquantifizierungsvorrichtung entsprechend diesem Beispiel wird ein Invers-Normierungskoeffizient mit einem Vektor berechnet, der durch Skalieren des in dem gleichen Frame erhaltenen, ersten Eingangsvektors erhalten wird, und einer normierter Vektor wird auf der Grundlage des Invers-Normierungskoeffizienten inversnormiert, um den Wert des Verstärkungsfaktors des zweiten Eingangsvektors zu berechnen. In diesem Fall, da der so berechnete normierte Verstärkungsfaktor sich nicht in Abhängigkeit einer Änderung in der Vektorausgabe nach der Multiplikation des Verstärkungsfaktors ändert, kann die Information des normierten Verstärkungsfaktors mit einer kleinen Anzahl von Bits übertragen oder gespeichert werden. Zusätzlich, wenn der Eingangsvektor des gegenwärtigen Frames in der Nähe des Ausgabevektors ist, wird der Invers- Normierungskoeffizient mit dem Eingangsvektor des gegenwärtigen Frames berechnet. Daher ist die Normierungseffizienz in dem Übertragungsteil eines Eingabesignals verbessert und die Leistung bzw. Performanz der Verstärkungsfaktorquantifizierung ist verbessert.

Dieses Beispiel hat einen Vorteil dahingehend, dass eine höhere Genauigkeit der Verstärkungsfaktorquantifizierung als bei dem fünften Beispiel erhalten werden kann, wenn der Verstärkungsfaktor der Verstärkungsfaktorschaltung 11 einen Wert in der Nähe von 1,0 hat. Dies liegt daran, dass, obwohl der Invers-Normierungskoeffizient Ny" unter Betrachtung des Wertes des Verstärkungsfaktors der Schaltung 11 als 1,0 in der fünften Ausführungsform berechnet wurde, der Invers- Normierungskoeffizient Ny" berechnet wird, nachdem der Verstärkungsfaktor der Verstärkungsfaktorschaltung 11 bei der neunten Ausführungsform in Betracht gezogen wurde.

(Zehntes Beispiel)

Fig. 22 zeigt ein Beispiel einer Sprach-Kodiervorrichtung mit der Verstärkungsfaktorquantifizierungsvorrichtung aus Fig. 21.

(Elftes Beispiel)

Fig. 23 zeigt ein Beispiel einer Sprach-Dekodiervorrichtung mit der Verstärkungsfaktorquantifizierungsvorrichtung aus Fig. 21.

(Zwölftes Beispiel)

Fig. 24 zeigt eine Anordnung einer Verstärkungsfaktorquantifizierungsvorrichtung entsprechend dem zwölften Beispiel, nämlich einer Modifikation des fünften Beispiels. Den Anschlüssen P1 und P2 eingegebene Codevektoren Cx und Cy werden mit Verstärkungsfaktoren Gx und Gy mittels der jeweiligen Verstärkungsfaktorschaltungen 11 und 12 multipliziert, und die sich ergebenden Vektoren werden miteinander durch einen Addierer 13 synthetisiert, so dass sie ein Ausgabevektor Cz sind. Der Ausgabevektor Cz wird von einem Anschluss PS ausgegeben.

Der Ausgabevektor Cz' der Schaltung 11 und ein Eingangsvektor Cy werden einem Normierungskoeffizientenkalkulator 14A zugeführt, und der Normierungskoeffizientenkalkulator 14A berechnet einen Normierungskoeffizienten Ny'''. Ein normierter Verstärkungsfaktor Ly, der erhalten wird, indem der Normierungsabschnitt 15A veranlasst wird, den Verstärkungsfaktor Gy der Verstärkungsfaktorschaltung 12 zu normieren, wird nach Bedarf quantifiziert, und der sich ergebende Wert wird an einen Übertragungsweg übertragen oder in einem Speichermedium gespeichert.

Wie vorangehend beschrieben wurde, kann erfindungsgemäß eine Vektorquantifizierungsvorrichtung bereitgestellt werden, die in der Lage ist, eine abrupte Qualitätsbeeinträchtigung eines Wiedergabesignals zu minimieren, auch wenn ein Code- Fehler auf einem Übertragungsweg vorhanden ist. Die erfindungsgemäße Vektorquantifizierungsvorrichtung kann Hochgeschwindigkeitsindexsuche mit einer geringen Verarbeitungsmenge durchführen, auch wenn die Bitanzahl eines Index groß ist, und eine äquivalent große Zahl von Codevektoren kann als ein Codebuch verwirklicht werden, auch wenn die Anzahl der in dem Codebuch gespeicherten Ausgangsvektoren oder Seed-Vektoren vermindert ist. Daher kann die zum Speichern der Ausgangsvektoren benötigte Speicherkapazität in vorteilhafter Weise verringert werden. Zusätzlich wird erfindungsgemäß ein Normierungskoeffizient mit dem ersten Eingangsvektor eines gegenwärtigen Frames berechnet, und ein Verstärkungsfaktor, mit dem der zweite Eingangsvektor multipliziert wird, wird normiert. Daher ist die Quantifizierungsleistung, insbesondere in dem Übertragungsteil eines Eingabesignals, im Vergleich mit einem Verfahren verbessert, das das Signal des vorangehenden Frames zur Normierung eines Verstärkungsfaktors verwendet.

Die Erfindung ist nicht auf die beschriebenen Ausführungsformen beschränkt und verschiedene Änderungen und Modifikationen der Erfindung können vorgenommen werden, die innerhalb des Rahmens der beiliegenden Ansprüche liegen.


Anspruch[de]

1. Vektorquantisierungsvorrichtung zum Ausdrücken eines Targetvektors durch Verwenden eines durch einen codierten Index designierten Codevektors, gekennzeichnet durch folgende Merkmale:

Fehlerbewertungsmittel (2310) zum Bewerten eines Fehlers eines designierten Codevektors mit Berücksichtigung eines Codefehlers des codierten Index; und

Mittel (2325) zum Auswählen auf der Grundlage eines Bewertungsergebnisses des Fehlerbewertungsmittels mindestens eines Index aus einer Mehrzahl von Indexkandidaten, von denen jeder ein Index sein kann, der verwendet wird, um den Targetvektor auszudrücken.

2. Vektorquantisierungsvorrichtung gemäß Anspruch 1, dadurch gekennzeichnet, daß das Fehlerbewertungsmittel umfaßt:

Eingabemittel (2327) zum Eingeben von Codefehlerinformation auf einem Übertragungsweg zum Übertragen des codierten Index; und

Mittel (2325, 2326) zum Bewerten eines Fehlers des designierten Codevektors auf der Grundlage der von dem Eingabemittel eingegebenen Codefehlerinformation.

3. Vektorquantisierungsvorrichtung zum Ausdrücken eines Targetvektors durch Verwenden eines durch einen codierten Index designierten Codevektors mit:

erstem Bewertungsmittel (2320) zum Bewerten eines Fehlers eines designierten Codevektors ohne Berücksichtigung eines Codefehlers des codierten Index;

zweitem Bewertungsmittel (2325) zum Bewerten eines Fehlers des designierten Codevektors unter Berücksichtigung des Codevektors des codierten Index;

erstem Auswahlmittel (2320) zum Auswählen auf der Grundlage eines Bewertungsergebnisses des ersten Bewertungsmittels einer kleinen Anzahl von Indexkandidaten aus einer großen Anzahl von Indexkandidaten, von denen jeder ein Index sein kann, der verwendet wird, um den Targetvektor auszudrücken; und

zweitem Auswahlmittel (2325) zum Auswählen auf der Grundlage eines Bewertungsergebnisses des zweiten Bewertungsmittels mindestens eines Index aus einer kleinen Anzahl von Indexkandidaten, die von dem ersten Auswahlmittel ausgewählt wurden.

4. Vektorquantisierungsvorrichtung gemäß Anspruch 3, dadurch gekennzeichnet, daß das zweite Bewertungsmittel umfaßt:

Eingabemittel (2327) zum Eingeben von Codefehlerinformation auf einem Übertragungsweg zum Übertragen eines codierten Index;

Mittel (2325, 2326) zum Bewerten eines Fehlers des designierten Codevektors auf der Grundlage der von dem Eingabemittel eingegebenen Codefehlerinformation.

5. Sprachcodiervorrichtung, gekennzeichnet durch folgende Merkmale:

ein Rauschcodebuch (2180) zum Speichern einer Mehrzahl von Rauschcodevektoren;

ein adaptives Codebuch (2000) zum Speichern eines adaptiven Codevektors, der eine Sprachquelle einer eingegebenen Sprache simuliert;

Synthesemittel (2110, 2250, 2260) zum Synthetisieren eines aus dem Rauschcodebuch ausgelesenen Rauschcodevektors mit einem von dem adaptiven Codebuch ausgelesenen adaptiven Codevektor, wobei das Synthesemittel den in dem adaptiven Codebuch gespeicherten adaptiven Codevektor auf der Grundlage eines Synthesesignals aktualisiert;

Mittel (2270), das von dem Synthesesignal angeregt wird, zum Erzeugen einer Synthesesprache; und

Codiermittel (2300, 2310, 2320, 2325) zum Suchen nach einem Index des Rauschcodevektors, der aus dem Rauschcodebuch auszulesen ist, und eines Index des adaptiven Codevektors, der aus dem adaptiven Codebuch auszulesen ist, unter Berücksichtigung eines Codefehlers, so daß ein Fehler zwischen der Eingangssuche und der Synthesesprache minimiert wird, wodurch beide Indizes codiert werden.

6. Vorrichtung gemäß Anspruch 5, dadurch gekennzeichnet, daß das Codiermittel umfaßt:

Mittel zur Vorauswahl (2320) einer vorbestimmten Anzahl von Indizes von Rauschcodevektoren, die von dem Rauschcodebuch zu lesen sind, ohne Berücksichtigung eines Codevektors, so daß der Fehler zwischen der Eingangssprache und der Synthesesprache relativ klein wird; und

Hauptauswahlmittel (2325) zum Auswählen eines Index des Rauschcodevektors, der aus dem Rauschcodebuch unter Berücksichtigung des Codefehlers zu lesen ist, so daß der Fehler zwischen der Eingangssprache und der Synthesesprache minimiert wird.

7. Vorrichtung gemäß Anspruch 6, dadurch gekennzeichnet, daß das Codiermittel umfaßt:

Eingabemittel (2327) zum Eingeben von Information, die sich auf einen Codefehler auf einem Übertragungsweg für einen Code bezieht; und

Mittel zum Einstellen des Grades der Berücksichtigung des Codefehlers durch das Hauptauswahlmittel abhängig von der Information, die sich auf den Codefehler auf den Übertragungsweg bezieht, die von dem Eingabemittel eingegeben wurde.

8. Vektorquantisierungsverfahren zum Ausdrücken eines Targetvektors durch Verwenden eines durch einen codierten Index designierten Codevektors, gekennzeichnet durch folgende Schritte:

Bewerten eines Fehlers eines designierten Codevektors unter Berücksichtigung eines Codefehlers des codierten Index; und

Auswählen auf der Grundlage eines Bewertungsergebnisses der Fehlerbewertung mindestens eines Index aus einer Mehrzahl von Indexkandidaten, von denen jeder ein Index sein kann, der verwendet wird, um den Targetvektor auszudrücken.







IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com