DE3883701T2 - Verfahren und Vorrichtung für multiplexierte Vektorquantifizierung. - Google Patents
Verfahren und Vorrichtung für multiplexierte Vektorquantifizierung.Info
- Publication number
- DE3883701T2 DE3883701T2 DE88117612T DE3883701T DE3883701T2 DE 3883701 T2 DE3883701 T2 DE 3883701T2 DE 88117612 T DE88117612 T DE 88117612T DE 3883701 T DE3883701 T DE 3883701T DE 3883701 T2 DE3883701 T2 DE 3883701T2
- Authority
- DE
- Germany
- Prior art keywords
- vector
- distortion
- candidate vectors
- calculating
- candidate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 239000013598 vector Substances 0.000 title claims description 380
- 238000000034 method Methods 0.000 title claims description 60
- 238000011002 quantification Methods 0.000 title 1
- 238000013139 quantization Methods 0.000 claims description 70
- 238000004364 calculation method Methods 0.000 claims description 52
- 230000005540 biological transmission Effects 0.000 claims description 28
- 108010076504 Protein Sorting Signals Proteins 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 238000001228 spectrum Methods 0.000 description 8
- 238000012549 training Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/008—Vector quantisation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3082—Vector coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/94—Vector quantisation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
- Die vorliegende Erfindung betrifft ein Verfahren zum Codieren einer Sprach- oder Bildsignalfolge mit einer geringen Informationsmenge und insbesondere ein Multiplexvektorquantisierungsverfahren und eine Vorrichtung für dieses, die gegenüber Übertragungskanalfehlern robust sind.
- Ein Vektorquantisierungsverfahren ist als effektives Verfahren zum Codieren einer Signalfolge mit einer geringen Informationsmenge bekannt. Bei diesem Verfahren werden diskrete Werte von zu codierenden aufeinanderfolgenden Signalproben für jeweils eine bestimmte Anzahl gruppiert und als ein Vektor für jede Gruppe definiert, wobei jeder Vektor mit einem Codebuch, das Rekonstruktionsvektoren enthält, verglichen wird und der Index eines Rekonstruktionsvektors, bei dem die Quantisierungsverzerrung minimal ist, als Ausgangscode verwendet wird.
- Fig. 1 zeigt die allgemeine Anordnung für das herkömmliche Vektorquantisierungsverfahren. Die Bezugszahlen 21 und 23 bezeichnen Codebücher, 22 einen Codierer und 24 einen Decodierer. Symbole, die hier verwendet werden, haben die folgende Bedeutung:
- u: Eingangsvektor
- u(i): i-tes Element des Eingangsvektors u, wobei i = 0, 1, ..., k-1
- k: Vektordimension
- r: Codeübertragungsrate [Bits/Probe]
- b: Übertragungscode (kr Bits)
- Z: Codebuch
- zl: l-ter Rekonstruktionsvektor, der im Codebuch Z enthalten ist
- z(i, l): i-tes Element des Rekonstruktionsvektors zl
- M: Anzahl von Rekonstruktionsvektoren zl, die im Codebuch z enthalten sind, wobei M = 2kr und l = 0, 1, ..., M-1
- d&sub1;: Quantisierungsverzerrung
- Die Codebücher 21 und 23 enthalten jeweils M = 2kr Rekonstruktionsvektoren 21, wobei l = 0, 1, ..., M-1. Auf der Sendeseite benutzt der Codierer 22 für jeden Eingangsvektor u das Codebuch 21, berechnet die Quantisierungsverzerrung d&sub1;, die durch das Quadrat des Abstands zwischen jeweils den M = 2kr Rekonstruktionsvektoren zl und dem Eingangsvektor u gegeben ist, bestimmt den Rekonstruktionsvektor, der zur kleinsten Verzerrung dl führt und sendet seinen Index l als den kr-Bit langen Sendecode b. Die Verzerrung dl wird unter Verwendung der folgenden Gleichung (1) errechnet:
- Auf der Empfangsseite benutzt der Decodierer 24 das Codebuch 23 auf der Basis des empfangenen Sendecodes b (d.h. des Index des Rekonstruktionsvektors) und wählt den Rekonstruktionsvektor, der dem empfangenen Sendecode b entspricht, und gibt ihn aus.
- Dieses Quantisierungsverfahren hat im wesentlichen den Fehler, daß es einen Vektor rekonstruiert, der von dem Eingangsvektor völlig verschieden ist, wenn Kanalfehler auftreten, da der Index und der Wert des Rekonstruktionsvektors keinerlei Zusammenhang im Hinblick auf den Abstand aufweisen.
- Um dies zu vermeiden, ist es im Stand der Technik nötig, die Codefehlerrate durch Benutzung eines fehlerkorrigierenden Codes herabzusetzen, indem also dem Sendecode Redundanz gegeben wird. In diesem Fall kann die Codefehlerrate beispielsweise dadurch deutlich gesenkt werden, daß man zusätzliche redundante Bits verwendet, deren Menge 50 % der Menge der betroffenen Informationsbits ausmacht. Dieses Verfahren erfordert jedoch immer dieselbe Menge redundanter Bits, auch bei einem fehlerfreien Kanal. Das bedeutet, daß, wo die Gesamtmenge der zu übertragenden Information fixiert ist, die Menge der zur Verfügung stehenden Informationsbits nur 2/3 der zu sendenden Gesamtinformationsmenge ist, selbst wenn ein fehlerfreier Kanal verwendet wird, und die Quantisierungsverzerrung wird natürlich zunehmen. In der Praxis ändert sich die Codefehlerrate mit der Zeit, und es ist schwierig, das Kanalcodeschema nach Maßgabe der variierenden Fehlerrate zu modifizieren, so daß es unvermeidlich ist, die Leistungsfähigkeit entweder für einen fehlerfreien Kanal oder für einen fehlerhaften Kanal zu opfern. Demzufolge ist der Einsatz von fehlerkorrigierenden Codes nicht immer wirkungsvoll zur Verringerung der Quantisierungsverzerrung in Fällen, wo die zu sendende Informationsmenge fixiert ist. Außerdem muß für die Abstandserrechnung (d.h. die Errechnung der Quantisierungsverzerrung dl) bei der Vektorquantifizierung mit dem herkömmlichen, in Fig. 1 gezeigten Codierer 22, das Codebuch 21 eine Speicherkapazität zur Speicherung der H = 2kr Rekonstruktionsvektoren zl aufweisen, und zusätzlich muß die Verzerrung dl für jeden der M Rekonstruktionsvektoren errechnet werden. Daher leidet der Stand der Technik daran, daß der Rechenumfang und die Speicherkapazität des Codebuchs je nach einer Exponentialfunktion der Informationsmenge kr pro Vektor zunehmen.
- Das Dokument ICASSP'86 PROCEEDINGS, 7. - 11. April 1986, Seiten 3095 - 3097 offenbart einen Vektorquantisierer und ein Vektorquantisierungsverfahren, das sich von dem oben erläuterten Prinzip dadurch unterscheidet, daß die Quantisierung in mehreren Stufen erfolgt, wobei ein Beispiel mit zwei Stufen in dem Dokument offenbart ist. Bei diesem Mehrstufenquantisierer verwendet jede Stufe ihr eigenes Codebuch. Die erste Stufe quantisiert einen Eingangsvektor und liefert eine quantisierte Ausgabe entsprechend einem Index in einem ihm zugeordneten ersten Codebuch. Der Differenzvektor zwischen dem Eingangsvektor und der Ausgabe der ersten Stufe wird dann von einer zweiten Stufe weiter quantisiert, die eine zweite quantisierte Ausgabe entsprechend einem Index in dem der zweiten Stufe zugeordneten zweiten Codebuch liefert. Der Reproduktionsvektor ist die Summe der zwei quantisierten Ausgaben. Die beiden Indexe der beiden Stufen werden zur Übertragung oder Speicherung verwendet. Die diesem Mehrstufenquantisierungsverfahren anhaftenden Probleme sind im wesentlichen die gleichen, wie sie oben im Hinblick auf Fig. 1 erläutert wurden.
- Eine Aufgabe der vorliegenden Erfindung ist es, ein Vektorquantisierungsverfahren und eine Vorrichtung dafür zu schaffen, bei dem das decodierte Signal nicht ernsthaft verzerrt wird, selbst wenn ein Codefehler bei der Codierung einer Sprach- oder Bildsignalfolge durch Kompression ihrer Informationsfolge auftritt, und bei dem der Rechenumfang und/oder die Speicherkapazität eines für die Codierung erforderlichen Speichers beide gering sind.
- Diese Aufgabe wird mit einem Multiplexvektorquantisierer bzw. einem Multiplexvektorquantisierungsverfahren gelöst, wie sie beansprucht werden.
- Bei einem Codierverfahren, bei dem eine Eingangssignalfolge in Gruppen mit jeweils einer bestimmten Anzahl von Proben bzw. Abtastwerten aufgeteilt wird und jede Gruppe von einem Vektor als der Einheit für die Quantisierung dargestellt wird, ist gemäß der vorliegenden Erfindung eine Vielzahl von Codebuchkanälen vorgesehen, und für jeden Eingangsvektor wird ein Satz von Kandidatvektoren, jeder von einem anderen der Codebücher in den jeweiligen Kanälen, ausgewählt so, daß sich die kleinste Verzerrung zwischen dem Eingangsvektor und dem gemittelten Vektor dieser Kandidatvektoren ergibt, und dann werden die Indexcodes der jeweiligen Kandidatvektoren gemultiplext und als ein Sendecode ausgegeben.
- Durch Quantisierung jedes einzelnen Eingangsvektors mit einer Vielzahl von Indexcodes unter Einsatz einer Vielzahl von Codebüchern und Übertragen der gemultiplexten Indexcodes, wie oben erwähnt, kann eine Zunahme der Quantisierungsverzerrung aufgrund eines Codefehlers klein gehalten werden, obwohl die Verzerrung für einen fehlerfreien Kanal ein wenig größer als bei Verwendung der herkömmlichen Vektorquantisierung ist.
- Fig. 1 ist ein Blockdiagramm, das einen Codierer auf der Sendeseite und einen Decodierer auf der Empfangsseite in einem herkömmlichen Vektorquantisierungssystem zeigt, welches ein Codebuch verwendet;
- Fig. 2 ist ein Blockdiagramm, das den Vektorquantisierer der vorliegenden Erfindung und einen Decodierer dafür zeigt;
- Fig. 3 ist ein Blockdiagramm, das den in Fig. 2 gezeigten Vektorquantisierer der vorliegenden Erfindung im einzelnen darstellt;
- Fig. 4 ist ein Blockdiagramm, das eine Anordnung zur Durchführung der Berechnung eines quadratischen Abstands bei dem in Fig. 3 gezeigten Vektorquantisierer der vorliegenden Erfindung darstellt;
- Fig. 5 ist ein Blockdiagramm, das ein anderes Beispiel der Anordnung zur Berechnung des quadratischen Abstands bei dem in Fig. 3 gezeigten Ausführungsbeispiel darstellt;
- Fig. 6 ist ein Blockdiagramm, das eine Anordnung zur Durchführung der Berechnung eines gewichteten quadratischen Abstands bei dem in Fig. 3 gezeigten Ausführungsbeispiel darstellt;
- Fig. 7 ist ein Flußdiagramm, das eine Lernfolge zur Erzeugung zweier Codebücher zeigt, die bei dem Vektorquantisierer der vorliegenden Erfindung eingesetzt werden;
- Fig. 8 ist eine graphische Darstellung, die eine Verbesserung des Codebuchs durch Iteration der Lernfolge in der Folge des Flußdiagramms von Fig. 7 zeigt;
- Fig. 9A und 9B sind Diagramme zum Vergleich von durch einen Codefehler beeinträchtigten Bereichen bei dem herkömmlichen Vektorquantisierungsverfahren und dem Vektorquantisierungsverfahren gemäß der vorliegenden Erfindung;
- Fig. 10 ist eine graphische Darstellung, die den Vergleich zwischen dem Vektorquantisierungsverfahren der vorliegenden Erfindung und dem herkömmlichen Vektorquantisierungsverfahren im Hinblick auf das Signalrauschverhältnis über der Codefehlerrate zeigt;
- Fig. 11 ist eine graphische Darstellung, die die Wirkung des Vektorquantisierungsverfahrens der vorliegenden Erfindung im Vergleich zu der des herkömmlichen Verfahrens zeigt;
- Fig. 12 ist ein Blockdiagramm, das ein Übertragungssystem für den Fall der Anwendung des Vektorquantisierungsverfahrens der vorliegenden Erfindung auf die gewichtete Vektorquantisierung einer Restwellenform im Frequenzbereich darstellt;
- Fig. 13 ist eine graphische Darstellung, die das Signalrauschverhältnis für einen Codefehler in einem in Fig. 12 gezeigten Positionssystem im Vergleich zum Signalrauschverhältnis im Fall der Verwendung des herkömmlichen Vektorquantisierungsverfahrens darstellt; und
- Fig. 14 ist eine graphische Darstellung, die Verzerrungen des Spektrums durch Codefehler im Fall des Einsatzes der vorliegenden Erfindung auf die Quantisierung eines Linearprädiktionsparameters in Fig. 12 im Vergleich zu Verzerrungen des Spektrums im Fall des Einsatzes des herkömmlichen Vektorquantisierungsverfahrens darstellt.
- Fig. 2 zeigt in Blockform die allgemeine Anordnung eines Übertragungssystems, das den Vektorquantisierer gemäß einem Ausführungsbeispiel der vorliegenden Erfindung einsetzt. Die Bezugszahlen 11, 12 und 15, 16 bezeichnen Codebücher, 13 einen Codierer, 14 einen Multiplexer, 17 einen Decodierer und 18 einen Vektorverknüpfer. Dieses Ausführungsbeispiel zeigt den Fall, wo Codebücher in zwei Kanälen vorgesehen sind, nämlich die Codebücher 11 und 15 in einem X-Kanal und die Codebücher 12 und 16 in einem Y-Kanal. Die in der folgenden Beschreibung verwendeten Symbole sind wie folgt definiert:
- u: Eingangsvektor
- k: Vektordimension, d.h. die Anzahl von Proben, die den Eingangsvektor bilden,
- r: Übertragungsrate (Bits/Probe)
- b: Sendecode (kr Bits)
- X, Y: Codebücher
- x(i, j): i-tes Element eines Kandidatvektors xj von dem Codebuch X
- y(i, m): i-tes Element eines Kandidatvektors Ym von dem Codebuch Y
- u(i): i-tes Element des Eingangsvektors u, d.h. ein i-ter Proben- bzw. Abtastwert
- N: Anzahl der Kandidatvektoren (= 2kr/2), die in jedem der Codebücher X und Y enthalten sind
- i: 0, 1, ... , k-1
- j: 0, 1, ..., N-1
- m: 0, 1, ..., N-1
- Bei diesem Ausführungsbeispiel haben die Codebücher 11 und 12 je 2kr/2 Kandidatvektoren, und die Codebücher 15 und 16 auf der Empfangsseite enthalten ebenfalls 2kr/2 Kandidatvektoren. Die Codebücher 11, 12 und 15, 16 der jeweiligen Kanäle werden jeweils dadurch geschaffen, daß man Kandidatausgaben in einem Lernlauf durch Verwendung von Lernproben bestimmt, die statistisch identisch mit Eingaben sind, die quantisiert werden sollen. Dies wird später beschrieben. Alternativ können von Lernproben extrahierte Vektoren als Kandidatausgabevektoren verwendet werden.
- Bei dem Vektorquantisierer auf der Sendeseite 100 benutzt der Codierer 30 bei jedem Anlegen eines Eingangsvektors u die beiden Codebücher 11 und 12 und führt für jedes von ihnen eine Vektorquantisierung unter Verwendung der halben Informationsmenge (k r Bits), die dem quantisierten Sendecode b zugewiesen ist, aus. Das heißt, die Anzahl von Bits jedes quantisierten Indexcodes bx und by der jeweiligen Kanäle ist durch k r/2 repräsentiert. Der Multiplexer 14 multiplext die quantisierten Indexcodes bx und by der jeweiligen Kanäle in den Vektorquantisierungscode b = bxby, der durch k r Bits repräsentiert wird und an die Empfangsseite 200 übertragen wird. An der Empfangsseite 200 benutzt der Decodierer 17 die Codebücher 15 und 16 auf der Basis der Indexcodes bx und by der jeweiligen Kanäle, die in dem Sendecode b enthalten sind, und gewinnt Kandidatvektoren x und y der jeweiligen Kanäle. Der Vektorverknüpfer 18 ermittelt ein arithmetisches Mittel der Ausgabevektoren x und y und liefert dies als einen eigentlichen Rekonstruktionsvektor.
- Fig. 3 zeigt ein spezielles Betriebsbeispiel der Anordnung des Vektorquantisierers 100 der vorliegenden Erfindung. Jedes Feld des X-Kanalcodebuchs 11 enthält einen Kandidatvektor xj und seinen Vektorindex j (d.h. einen quantisierten Indexcode bx). In ähnlicher Weise enthält auch jedes Feld des Y-Kanalcodebuchs 12 einen Kandidatvektor ym und seinen Vektorindex in (d.h. einen quantisierten Indexcode by). Die Anzahl der Kandidatvektoren xj und ym der Codebücher 11 und 12 der jeweiligen Kanäle beträgt jeweils 2kr/2, wie oben im Hinblick auf Fig. 2 erwähnt. Folglich setzen sich die Vektorindizes j und m (die quantisierten Indexcodes bx und by für einen Übertragungskanal) jeweils aus kr/2 Bits zusammen. In Fig. 3 sind die Vektorindizes j und m der Einfachheit halber jeweils durch vier Bits dargestellt.
- Funktionell kann der Encoder 13 aufgeteilt werden in einen Rechenabschnitt 131 zur Berechnung eines Durchschnittskandidatvektors, einen Rechenabschnitt 132 zur Berechnung eines quadratischen Abstands und einen Abschnitt 133 zur Bestimmung eines minimalen Abstands.
- Der Durchschnittskandidatvektor-Rechenabschnitt 131 berechnet einen gemittelten oder Durchschnittsvektor vj,m
- Vj,m = (xj + Ym)/2 ... (2)
- für alle Kombinationen von Kandidatvektoren xj und ym der X- und Y-Kanalcodebücher 11 und 12 in sequentieller Folge. Der Rechenabschnitt 132 für den quadratischen Abstand errechnet für jede von allen Kombinationen (j,m) eine Verzerrung dj,m zwischen dem Eingangsvektor u und dem oben erwähnten Durchschnittsvektor vj,m, die durch einen quadratischen Abstand repräsentiert wird.
- dj,m = u - vj,m ² = u - (xj + ym)/2 ² ... (3)
- Da die Anzahl jeder dieser Vektorindizes j und m N beträgt, errechnet der Rechenabschnitt für den quadratischen Abstand eine Gesamtanzahl von N² Verzerrungswerten dj,m. Es ist offenbar, daß M = N², was die Anzahl von Rekonstruktionsvektoren ist, die für das Codebuch Z des in Fig. 1 gezeigten herkömmlichen Systems erforderlich ist.
- Der Abschnitt 133 zur Ermittlung des minimalen Abstands empfängt nacheinander die einzelnen Kombinationen der Kandidatvektoren xj und ym der beiden Kanäle und die entsprechende Verzerrung dj,m zwischen dem Eingangsvektor u und dem Durchschnittsvektor vj,m und ermittelt eine Kombination von Kandidatvektoren xj, ym, die die Verzerrung dj,m minimiert. Auf der Grundlage der so ermittelten Kombination von Kandidatvektoren xj und ym entnimmt der Abschnitt 133 zur Bestimmung des minimalen Abstands den Codebüchern 11 und 12 die entsprechenden Vektorindizes j und m und gibt sie als quantisierte Indexcodes bx und by aus.
- Die Vektorindizes j und m (d.h. die quantisierten Indexcodes bx und by) der jeweiligen Kanäle werden mittels des Multiplexers 14 auf Multiplexbasis zusammengesetzt, was den Originalvektorquantisierungscode b für den Eingangsvektor u ergibt. Fig. 3 zeigt, daß die Vektorindizes (d.h. die quantisierten Indexcodes) bx = 1111 und by = 0001 des X-Kanals und des Y-Kanals zu "11110001" gezeitmultiplext werden. Es ist auch möglich, ein Frequenzmultiplexen oder andere Diversity Techniken zur Übertragung der Indexcodes anstelle des Zeitmultiplex einzusetzen.
- Wie aus dem obigen hervorgeht, werden gemäß dem Vektorquantisierer der vorliegenden Erfindung im Fall der Verwendung von zwei Codebüchern, wie dies in Fig. 3 beispielhaft dargestellt ist, die Kandidatvektoren xj und ym von den beiden Codebüchern X und Y für den Eingangsvektor u ausgewählt, und es werden diejenigen Vektorindizes j und m bestimmt, die die Verzerrung d zwischen dem Mittel (xj + ym)/2 der Kandidatvektoren und dem Eingangsvektor u minimieren, so daß die Wahrscheinlichkeit, daß der Abstand zwischen den ausgewählten Kandidatvektoren xj und ym kurz ist, sehr hoch ist. In dem Fall, wo diese quantisierten Indexcodes bx = j und by = m zusammengemultiplext und als der Vektorquantisierungscode b = jm übertragen werden, würde folglich selbst dann, wenn ein Einbitfehler in der ersten Hälfte (j) oder der zweiten Hälfte (m) des Codes b, der an der Empfangsseite in Fig. 2 empfangen wird, enthalten ist, einer ihrer decodierten Vektoren x und y richtig seien, wenn diese andere Hälfte keinen Bitfehler enthält, so daß der mittlere decodierte Ausgangsvektor (x + y)/2 sich nicht stark vom Eingangsvektor u an der Sendeseite unterscheiden würde. Anders ausgedrückt, die Verzerrung des decodierten Vektors durch einen Übertragungskanalfehler ist entsprechend verringert. Darüber hinaus braucht der Speicher bei dem Ausführungsbeispiel der vorliegenden Erfindung, das oben in Verbindung mit den Fig. 2 und 3 beschrieben wurde, nur eine Gesamtheit von 2N Kandidatvektoren zu speichern, da zwei Codebücher verwendet werden, von denen jedes N = 2kr/2 Kandidatvektoren speichert. Im Gegensatz dazu ist bei der bekannten Vektorquantisierung ein Speicher zu verwenden, der M = 2kr = N² Rekonstruktionsvektoren speichert.
- Die Errechnung des quadratischen Abstands dj,m, die durch Gleichung (3) wiedergegeben ist, kann detaillierter durch folgende Gleichung (4) ausgedrückt werden. In der folgenden Beschreibung sind jedoch zur Abkürzung x/2 und y/2 durch x bzw. y ersetzt.
- In Fig. 4 sind zusammen mit den Codebüchern 11 und 12 die Anordnungen des Rechenabschnitts 131 für den mittleren Kandidatvektor und der Rechenabschnitt 132 für den quadratischen Abstand in Fig. 3 für den Fall der Errechnung der Verzerrung dj,m unter Verwendung von Gleichung (4) dargestellt. Für den Eingangsvektor u, werden die Kandidatvektoren xj und ym aus dem X-Kanalcodebuch 11 bzw. dem Y-Kanalcodebuch 12 ausgelesen, eine Berechnung u(i) - x(i,j) - y(i,m) mittels eines Addierers 31 unter Verwendung des jeweiligen i-ten Elements u(i), x(i,j) und y(i,m) des Eingangsvektors und der Kandidatvektoren ausgeführt, und die addierte Ausgabe durch einen Quadratakkumulator 32 quadriert und akkumuliert. Diese beiden Additionen (Subtraktionen) und eine Quadratakkumulation, d.h. eine Gesamtzahl von drei Berechnungen, werden k Male für die entsprechenden Elemente i = 0 bis i = k-1 der Vektoren ausgeführt, wodurch man die Verzerrung dj,m für das Paar ausgewählter Kandidatvektoren xj und ym erhält. Die Anzahl von Kombinationen der Kandidatvektoren x und Ym ist N². In diesem Fall sind 3kN² Berechnungen zum Erhalt der Verzerrung dj,m für jede der Kombinationen und zur Bestimmung des Vektorindexpaars (j,m), das die kleinste Verzerrung dj,m liefert, erforderlich. Dieser Rechenumfang ist etwas größer als der beim herkömmlichen, in Fig. 1 gezeigten Vektorquantisierer erforderliche, bei dem eine Subtraktion und eine Quadratakkumulation in Gleichung (1) N² Male für die Vektorelemente i = 0 bis i = k-1 ausgeführt werden. Das heißt, das in Fig. 4 gezeigte Ausführungsbeispiel der Erfindung ist insofern ungünstig, als der erforderliche Rechenumfang größer ist als im Fall von Fig. 1, obwohl die erforderliche Gesamtspeicherkapazität der Codebücher 11 und 12 deutlich geringer ist.
- Nachfolgend soll unter Bezugnahme auf Fig. 5 ein Ausführungsbeispiel beschrieben werden, das in diesem Punkt verbessert ist.
- Die Gleichung (4) kann zur folgenden Gleichung (5) erweitert werden:
- wobei
- Der erste Term von Gleichung (5) hat nichts mit dem ausgewählten Kandidatvektorindexpaar (j, m) zu tun. Demzufolge besteht keine Notwendigkeit der Errechnung von u²(i) zur Bestimmung des Vektorindexpaars (j, m), das zur geringsten Verzerrung dj,m führt. Es ist also ausreichend, das Vektorindexpaar von (j, m) zu bestimmen, das die kleinste Verzerrung d'j,m ergibt, die durch folgende Gleichung (7) anstelle von Gleichung (5) definiert ist.
- In Gleichung (7) steht der zweite Term F(j, m), wie durch Gleichung (6) definiert, nicht in Beziehung zum Eingangsvektor u und kann allein aus den von den Codebüchern X und Y gewählten Kandidatvektoren xj, ym errechnet werden. Daher kann der Rechenumfang für Gleichung (7) dadurch verringert werden, daß man in einem Speicher die Ergebnisse der Berechnung von F(j, m) in Gleichung (7) für alle Kombinationen von Vektorindizes (N² Kombinationen) vorab speichert und die entsprechendem berechneten Werte von F(j, m) ausliest, wenn die Verzerrung d'j,m mittels Gleichung (7) errechnet wird.
- Fig. 5 zeigt ein Beispiel, bei dem der Rechenabschnitt 131 für den gemittelten Kandidatvektor, der Rechenabschnitt 132 für den quadratischen Abstand und die Codebücher 11 und 12 des Ausführungsbeispiels von Fig. 3 auf der Grundlage von Gleichung (7) angeordnet sind. Bei diesem Beispiel ist ein Tabellenspeicher 33 vorgesehen, in dem die Werte von F(j, m), die für alle Kombinationen der Vektorindizes (j, m) mittels Gleichung (6) errechnet wurden, in oben beschriebener Weise gespeichert sind. Der erste Term von Gleichung (7) ist die Summe des inneren Produkts der Vektoren u und xj und des inneren Produkts der Vektoren u und ym, die durch die Rechner 34 bzw. 35 für das innere Produkt errechnet werden. Die Ergebnisse der Berechnung der inneren Produkte werden jeweils als Scalarwert an einen Addierer 36 geliefert, wo sie dem entsprechenden, aus dem Tabellenspeicher 33 ausgelesenen Wert von F(j, m) hinzuaddiert werden. Die Ausgabe des Addierers 36 stellt das Ergebnis der Berechnung der Verzerrung d'j,m mittels Gleichung (7) dar. Dieses Ausführungsbeispiel umfaßt 2kN Berechnungen des inneren Produkts mittels der Rechner 34 und 35 und 2N² Scalaradditionen/subtraktionen mittels des Addierers 36 und erfordert eine Speicherkapazität von 2kN für die Codebücher 11 und 12 und eine Speicherkapazität N² für den Tabellenspeicher 33.
- Die folgende Tabelle I zeigt die Speicherkapazitäten und den Rechenumfang, die beim herkömmlichen Vektorquantisierer von Fig. 1 und bei den Ausführungsbeispielen der Fig. 4 und 5 mit k = 16 und N = 16 erforderlich sind. Tabelle I Rechenumfang (Anzahl von Schritten) Speicherkapazität (Anzahl von Wörtern)
- Die obigen Ausführungsbeispiele wurden im Hinblick auf die Verwendung des quadratischen Abstands als Ausdruck für die Quantisierungsverzerrung dj,m oder d'j,m beschrieben. Diese Ausführungsbeispiele können auf die Vektorquantisierung eines Spektrumumhüllungsparameters angewendet werden, nachdem er zu einem LSP-Parameter oder logarithmischen Bereichsverhältnis bei der Sprachcodierung transformiert wurde. Für eine Quantisierung hoher Effizienz eines Sprachwellenformsignals oder eines Prädiktionsrestsignals ist es jedoch erforderlich, eine adaptive gewichtete Abstandsberechnung in einem Frequenzbereich durchzuführen. Ein Abstandsmaß in einem solchen Fall ist wie folgt gegeben:
- Darin bezeichnet w(i) ein i-tes Element eines Gewichtungsvektors w, der sich jedesmal ändert, wenn sich das i-te Element u(i) des Eingangsvektors u ändert, aber während der Berechnung des Minimalwerts der Verzerrung d zusammen mit dem i-ten Element u(i) unverändert bleibt. Nebenbei bemerkt, führt der Fall, daß w(i) unabhängig von u(i) festgehalten wird, zu dein der Benutzung des quadratischen Abstands, der durch Gleichung (4) ausgedrückt ist. Entwickelt man die Gleichung (8) und läßt dabei den ersten Term, der zur Bestimmung des minimalen Abstands nichts beiträgt, weg und repräsentiert den Rest der Gleichung mit dem zweiten und dem dritten Term durch d*, dann folgt
- Zur Vorerrechnung und Vorabspeicherung aller Elemente von F(i,j,m) in Gleichung (10) benötigt man anders als im Fall der Gleichung (6) einen Speicher mit einer Kapazität von kN². Außerdem muß kN² Mal ein inneres Produkt zur Berechnung des zweiten Terms von Gleichung (9) errechnet werden, wie durch Gleichung (11) definiert.
- Zur Errechnung des ersten Terms von Gleichung (9) wird s(i), das durch die folgende Gleichung (12) definiert ist,
- nur einmal für i = 0, 1, ..., k-1 voraberrechnet.
- s(i) = -2w(i)u(i) .... (12)
- Die Ermittlung des inneren Produkts von N Elementen erfolgt zweimal für s(i), wodurch man G und H erhält, die durch die folgenden Gleichungen (13) und (14) definiert sind.
- Als Folge dieser Vorbereitungen gewinnt man d*j,m der Gleichung (9) durch folgende Scalaroperation:
- d*j,m = G(j) + H(m) + E(j,m) .... (15)
- Fig. 6 zeigt eine Anordnung zur Ausführung der oben beschriebenen Berechnung bei dem Ausführungsbeispiel von Fig. 3. In dem Tabellenspeicher 33 sind kN² durch Gleichung (10) gegebene Werte von F(i,j,m) vorabgespeichert. Der Gewichtungsvektor w wird dem Vektorquantisierer zusammen mit dem Eingangsvektor u eingegeben, und die entsprechenden i-ten Elemente dieser Vektoren werden nach Gleichung (12) mittels eines Multiplizierers 37 multipliziert. Die dadurch erhaltenen gewichteten Eingangsvektoren s(i) (wobei i = 0, 1, ..., k-1) werden an die Rechner 34 und 35 für das innere Produkt geliefert, die die inneren Produkte der gewichteten Vektoren und der Kandidatvektoren xj und ym, die aus den Codebüchern 11 und 12 ausgelesen werden, nach den Gleichungen (13) bzw. (14) ermitteln. Auf der anderen Seite wird der Gewichtungsvektor w an einen Rechner 38 für ein inneres Produkt geliefert, in dem das innere Produkt des Gewichtungsvektors und des Vektors F(i,j,m) (wobei i = 0, 1, ..., k-1), der aus dem Tabellenspeicher 33 nach Maßgabe des Wechselindexpaars (j, m) ausgelesen wird, nach Gleichung (11) errechnet wird. Die errechneten Ausgaben von den Rechnern 34, 35 und 38 für das innere Produkt werden an den Addierer 36 geliefert, wo eine Scalaroperation nach Gleichung (15) stattfindet, die den Wert d*j,m ergibt, der der Verzerrung für den Fall entspricht, daß der Eingangsvektor u zu j, m codiert wird.
- Die folgende Tabelle II zeigt, welcher Rechenumfang und welche Speicherkapazität beim Ausführungsbeispiel von Fig. 6 erforderlich sind. In Tabelle II sind zu Vergleichszwekken außerdem der Rechenumfang und die Speicherkapazität dargestellt, die in den Fällen erforderlich sind, wo das Gewicht w in Gleichung (1) entsprechend Fig. 1 und in Gleichung (4) entsprechend Fig. 4 in gleicher Weise wie in Gleichung (8) enthalten ist, obwohl diese Fälle hier nicht beschrieben werden, da sie der obigen Beschreibung folgend leicht abgeleitet werden können. Tabelle II Rechenumfang (Anzahl von Schritten) Speicherkapazität (Anzahl von Wörtern)
- Bei Verwendung des gewichteten Abstands sind die Verfahren (2) und (3) jeweils entweder im Hinblick auf den Rechenumfang oder die Speicherkapazität größer als das Verfahren (1), durch Kombinieren der Verfahren (2) und (3) können jedoch sowohl der Rechenumfang als auch die Speicherkapazität im Vergleich zu jenen beim Verfahren (1) verringert werden. Dies kann man erreichen, indem man in der Form einer Tabelle die Werte von F(i,j,m) nach Gleichung (9) teilweise vorabspeichert. Nimmt man das Verhältnis der Anzahl von vorab zu speichernden Werten zur Gesamtanzahl der Werte von F(i,j,m) mit λ an (wobei 0 < λ < 1), ergeben sich der erforderliche Rechenumfang und die Speicherkapazität zu 2N² + k + 2kN + (3 - 2λ) bzw. 2kN + λkN². Eine geeignete Auswahl des oben genannten Verhältnisses λ erlaubt einen Kompromiß zwischen dem Rechenumfang und der Speicherkapazität mit der Möglichkeit der Anpassung an gegebene Auslegungsanforderungen.
- Es ist auch möglich, F(i,j,m) von Gleichung (10) weiter zu erweitern und Werte jeweiliger Terme in gesonderten Tabellen zu speichern. In diesem Fall sind sowohl der Rechenumfang als auch die Speicherkapazität größer als im Fall des Verfahrens (3), es ist aber möglich, teilweise oder ganz die Berechnung eines Produktterms x(i,j) y(i,m) zu vermeiden und die Verzerrung d*j,m anzunähern. Dabei kann der Code, der die Verzerrung minimiert, nicht immer ausgewählt werden, aber der Rechenumfang und die Speicherkapazität können deutlich reduziert werden.
- Die vorliegende Erfindung kann auch leicht auf den Fall angewendet werden, wo das Abstandsmaß einen freien Parameter τ enthält, der gemäß Gleichung (16) mit den Kandidatvektoren in den Codebüchern multipliziert wird.
- Ein Verzerrungsmaß, das durch die folgende Gleichung ausgedrückt ist, ist oft bei der Quantisierung eines Restsignals von Sprache im Zeitbereich verwendet worden.
- Die Errechnung dieser Verzerrung d&sub1; wird unter Verwendung eines Codebuchs Z ausgeführt. Benutzt man dieses Verzerrungsmaß, dann kann die Verzerrung dj,m bei dem Vektorquantisierungsverfahren gemäß der vorliegenden Erfindung wie folgt ausgedrückt werden:
- wobei h(i,g) ein Element in der i-ten Reihe und der g-ten Spalte einer Matrix H zum Erhalt eines Faltungsprodukts ist und τ ein Parameter ist, der so bestimmt wird, daß die Verzerrung dj,m minimal wird.
- Die Definitionen der Verzerrung dj,m nach den Gleichungen (3), (4) und (5) reflektieren die Leistungsfähigkeit für einen fehlerfreien Kanal. Die Definition der Verzerrung durch die folgende Gleichung (17) ist zur Erzielung einer weiteren Robustheit gegenüber Übertragungscodefehlern wirksam.
- wobei u ein Parameter von 0 bis 1 ist. Wenn u auf 1 gesetzt wird, dann ist die obige Verzerrung derjenigen nach Gleichung (3) äquivalent, und, wenn u kleiner gewählt wird, dann nimmt die Redundanz jedes Codebuchs zu, was die Verminderung der Verzerrung erlaubt, falls einer der beiden Kanäle fehlerfrei ist. Das bedeutet, daß die Robustheit gegenüber Übertragungskanalfehlern vergrößert ist.
- Zieht man Übertragungskanalfehler in Betracht, dann kann man die folgende Gleichung als Definition der Verzerrung für xj und ym betrachten, die für den Eingangsvektor u gewählt wurden.
- wobei q(f/j) die bedingte Wahrscheinlichkeit bezeichnet, daß der Vektorindex j in dem Kanal fehlerhaft zu f wechselt. Das gleiche gilt für q(m/g).
- Diese Verzerrungsinaße basieren auf dem quadratischen Abstand, sie können aber leicht auf den zuvor erwähnten gewichteten quadratischen Abstand oder andere Maße angewendet werden. Bei dem Voranstehenden wird ferner der endgültige Ausgangsrekonstruktionsvektor an der Empfangsseite als ein einfacher arithmetischer Mittelwert erzeugt, da angenommen wird, daß die gleiche Informationsmenge auf eine Vielzahl von Kanälen verteilt ist. Wenn jedoch die Informationsmenge bei den Kanälen unterschiedlich ist, wird der Ausgangsrekonstruktionsvektor als ein gewichteter Mittelwert erzeugt. Im Fall beispielsweise der Verwendung von zwei Kanälen und dem quadratischen Abstand, gewinnt man den gewichteten mittleren Vektor einfach wie folgt:
- vj,m = {22r(x)xj + 22r(y)ym}/{22r(x) + 22r(y)}
- wobei r(x) und r(y) die Übertragungsraten der jeweiligen Kanäle x und y sind. Dies beruht auf der Tatsache, daß ein erwarteter Wert der Quantisierungsverzerrung in dem Kanal x durch 2-2r(x) angenähert werden kann.
- Unter Bezugnahme auf Fig. 7 soll nun eine Prozedur zur Schaffung der beiden Codebücher 11 und 12 zur Verwendung bei den Ausführungsbeispielen der vorliegenden Erfindung, die in den Fig. 2 bis 6 gezeigt sind, beschrieben werden. Das Flußdiagramm von Fig. 7 zeigt den Fall der lokalen Minimierung der Verzerrung durch abwechselndes Erneuern der beiden Codebücher, aber die Prozedur kann auch auf die Schaffung von mehr als zwei Codebüchern angewendet werden.
- Im Schritt S&sub0; wird eine Anzahl von Vektoren bereitgestellt, die sich je aus k aufeinanderfolgenden, von einer Lernprobenfolge an beliebiger Position extrahierten Proben zusammensetzen, und diese Vektoren werden in zwei Gruppen aufgeteilt, je bestehend aus Anfangskandidatvektoren gleicher Anzahl, mit denen die Anfangscodebücher X und Y bereitgestellt werden. Alternativ kann eine Gruppe von Vektoren als Codebuch X verwendet werden, die durch gewöhnliches Vektorquantisierungslernen unter Verwendung von Lernproben gewonnen wurden, und als Codebuch Y eine Gruppe von Vektoren, die unter Verwendung einer Folge ihrer Fehler erhalten wurden.
- Im Schritt S&sub1; werden dann Lernvektoren mit einer ausreichend größeren Anzahl als die Kandidatvektoren als Eingangsvektor u benutzt und die Verzerrung d, beispielsweise mittels Gleichung (3), zwischen jedem Eingangsvektor u und jedem Kandidatvektorpaar xj, ym errechnet, um das Kandidatvektorpaar xj, ym zu bestimmen, das die geringste Verzerrung d ergibt. Anders ausgedrückt, jeder Eingangsvektor u wird mittels des Quantisierungsverfahrens der vorliegenden Erfindung quantisiert und das Kandidatvektorpaar xj, ym bestimmt, das dem Eingangsvektor u entspricht.
- Im Schritt S&sub2; wird die Gesamtsumme D der minimalen Verzerrungen d, die im Schritt S&sub1; für alle Eingangsvektoren ermittelt wurden, errechnet, und wenn die Gesamtsumme D oder ihr Verbesserungsverhältnis unterhalb einem Schwellenwert liegt, dann wird entschieden, daß die Codebücher X und Y die gewünschten Kandidatvektoren enthalten, und der Lernvorgang gestoppt. Wenn dies nicht der Fall ist, geht die Lernfolge weiter zum Schritt S&sub3;, in dem die Inhalte ym des Codebuchs Y erneuert werden, während die Inhalte xj unverändert bleiben.
- Das heißt, beim Schritt S&sub3;&submin;&sub1; wird im Hinblick auf alle Kandidatvektorpaare (xj, ym), die im Schritt S&sub1; als den jeweiligen Eingangsvektoren u entsprechend bestimmt wurden, jeder der Kandidatvektoren ym als variabler Vektor betrachtet; eine Gleichung, die die Summe der Verzerrungen aller Eingangsvektoren u, die jenen Vektorpaaren entsprechen, die denselben variablen Vektor ym enthalten, wird nach dem variablen Vektor ym partiell differenziert und auf null gesetzt; und ein Vektorwert ym, der durch Lösen der differenzierten Gleichung nach dem variablen Vektor ym erhalten wird, wird als neuer Kandidatvektor ym verwendet. Wenn alle P (wobei P variabel ist) Eingangsvektoren, die den Kandidatvektor ym in ihren entsprechenden Vektorpaaren enthalten, durch um1, um2, ..., umP gegeben sind und die entsprechenden Vektorpaare durch (xf1, ym), (xf2, ym), (xf3, ym), ..., (XfP, ym), dann ist der Vektorwert ym als ihr Schwerpunkt durch folgende Gleichung gegeben:
- Dem folgt Schritt S&sub3;&submin;&sub2;, bei dem das festgehaltene Codebuch X und das erneuerte Codebuch Y dazu verwendet werden, die Korrespondenz jedes Eingangsvektors u zu dem Kandidatvektor in dem Codebuch Y zu bestimmen, wobei die Korrespondenz jedes Eingangsvektors u zu dem Kandidatvektor in dem Codebuch X im Zustand des Schritts S&sub1; fixiert ist. Dann wird im Schritt S&sub3;&submin;&sub3; das Codebuch Y auf gleiche Weise wie im Schritt S&sub3;&submin;&sub1; wieder erneuert.
- Im Schritt S&sub4; wird ein Kandidatvektorpaar (xj, ym) entsprechend jedem Eingangsvektor u unter Verwendung des Codebuchs X und des erneuerten Codebuchs Y bestimmt. Schritt S&sub4; ist dem Schritt S&sub1; äquivalent.
- Im Schritt S&sub5; werden die Inhalte des Codebuchs X erneuert, während die Inhalte des Codebuchs Y fixiert bleiben. Das heißt, im Schritt S&sub5;&submin;&sub1; wird der Kandidatvektor xj als variabler Vektor für die Kandidatvektorpaare (xj, ym), die den jeweiligen Eingangsvektoren u entsprechen und im Schritt S&sub4; bestimmt wurden, betrachtet; eine Gleichung, die die Summe der Verzerrungen aller Eingangsvektoren u, die jenen Vektorpaaren entsprechen, die denselben variablen Vektor xj enthalten, wird mit dem variablen Vektor xj partiell differenziert und auf null gesetzt; und ein Wert j, der nach Auflösen der differenzierten Gleichung nach dem variablen Vektor xj erhalten wird, wird als neuer Kandidatvektor xj verwendet. Wenn alle Q (wobei Q variabel ist) Eingangsvektoren, die den Kandidatvektor xj in ihren entsprechenden Vektorpaaren enthalten, durch uj1, uj2, ..., ujQ und die entsprechenden Vektorpaare durch (xj, yg1), (xj, yg2), ..., (xj, ygQ) gegeben sind, dann ist der Vektor xj als ihr Schwerpunkt durch folgende Gleichung gegeben:
- Als nächstes werden im Schritt S&sub5;&submin;&sub2; das erneuerte Codebuch X und das festgehaltene Codebuch Y dazu verwendet, die Korrespondenz zwischen jedem Eingangsvektor u und dem Kandidatvektor in dem Codebuch X zu bestimmen, wobei die Korrespondenz jedes Eingangsvektors u mit dem Kandidatvektor im Codebuch Y im Zustand des Schritts S&sub4; fixiert ist. Dann wird das Codebuch X im Schritt S&sub5;&submin;&sub3; in gleicher Weise wie im Schritt S&sub5;&submin;&sub1; nochmal erneuert.
- Die Lernfolge geht zurück zum Schritt S&sub1;, wonach dieselben iterativen Operationen, wie sie oben beschrieben wurden, in den Schritten S&sub2; bis S&sub5; ablaufen. Die Erneuerung der Codebücher X und Y setzt sich fort, bis die Gesamtsumme D der Verzerrungen oder ihr Verbesserungsverhältnis kleiner als der Schwellenwert wird.
- Bei dem obigen können die Schritte S&sub3;&submin;&sub2;, S&sub3;&submin;&sub3; und S&sub5;&submin;&sub2;, S&sub5;&sub3; auch weggelassen werden. Außerdem können diese Schritte abwechselnd wiederholt werden.
- Fig. 8 zeigt im Hinblick auf das Signalrauschverhältnis, wie die Verzerrung durch die Codebuchlernfolge verringert wird. In Fig. 8 entsprechen die Symbole , , , Δ und den Schritten S&sub1;, S&sub3;&submin;&sub1;, S&sub3;&submin;&sub2;, S&sub5;&submin;&sub1; bzw. S&sub5;&submin;&sub2; im Flußdiagramm von Fig. 7. Die Verzerrung nimmt immer ab, ungeachtet wie oft das Schrittpaar S&sub3;&submin;&sub1; und S&sub3;&submin;&sub2; und das Schrittpaar S&sub5;&submin;&sub1; und S&sub5;&submin;&sub2; wiederholt wird.
- Die Fig. 9A und 9B zeigen einen Vergleich der Leistungsfähigkeit zwischen dein herkömmlichen, in Fig. 1 gezeigten Einkanalquantisierer (Fig. 9A) und dem Zweikanalquantisierer der vorliegenden Erfindung (Fig. 9B) im Hinblick auf den Bereich der Beschädigung durch einen Übertragungscodefehler, wobei das Fehlerbit umkreist ist. Da das Vorsehen mehrerer Kanäle von Codebüchern und mehrerer Sendecodes für jeden Eingangsvektor die Einheit, in der die Codes gesendet werden, teilt, ist die Wahrscheinlichkeit des Auftretens von Codefehlern in allen Kanälen geringer als die Fehlerrate normal übertragener Codes, deren Übertragungseinheit ungeteilt ist. Anders ausgedrückt, der Beschädigungsbereich eines Codefehlers in einem Bit im Fall von zwei Kanälen ist halb so groß wie im Fall eines Kanals, wie durch Schraffur in den Fig. 9A und 9B dargestellt.
- Fig. 10 zeigt die Leistungsfähigkeit des Vektorquantisierers der vorliegenden Erfindung für eine Signalfolge mit einer speicherlosen Laplaceverteilung im Fall von r = 1. Die Laplaceverteilung simuliert ein Linearprädiktionsrestsignal eines Sprachsignals. In Fig. 10 geben die Kurven (a) die Zweikanalquantisierung und die Kurven (b) bis (e) die herkömmliche Einkanalquantisierung wieder. Die Abszisse repräsentiert eine Bitfehlerrate und die Ordinate das Signalrauschverhältnis. Es ergibt sich aus Fig. 10, daß der Zweikanalquantisierer etwa dieselbe Leistungsfähigkeit wie der Einkanalquantisierer gleicher Dimension im Fall ohne Codefehler aufweist, aber besser als letzterer ist, wenn Codefehler vorhanden sind.
- Fig. 11 zeigt die Leistungsfähigkeit des Zweikanalquantisierers gemäß der vorliegenden Erfindung im Vergleich zu herkömmlichen Quantisierern, die Vektorquantisierungscodes und einen fehlerkorrigierenden Code einsetzen, wobei die Gesamtinformationsmenge fixiert ist. Die in diesem Fall verwendeten korrigierenden Codes sind sieben Arten von BCH- Codes, die zur Korrektur mehrerer Fehler fähig sind. Die Zahlen in Klammern repräsentieren die Gesamtanzahl von Informationsbits, die Anzahl von Quellenbits und die Anzahl fehlerkorrigierbarer Bits. Diese herkömmlichen Quantisierer sind insofern nachteilig, als die Verzerrung durch redundante Bits zunimmt und die Verzerrung rapide ansteigt, wenn die Anzahl von Codefehlern einen bestimmten Wert übersteigt. Demgemäß ist der Quantisierer der vorliegenden Erfindung gegenüber den herkömmlichen Quantisierern vorteilhaft.
- Fig. 12 zeigt ein Beispiel eines Zweikanalvektorquantisierers der vorliegenden Erfindung in der Anwendung auf die Transformationscodierung von Sprache mit gewichteter Vektorquantisierung, wobei es sich um eine der effektiven Techniken für Mittelbandsprachcodierung handelt. Ein digitales Spracheingangssignal S wird an einen Linearprädiktionsanalysierer 41 angelegt, der einen Satz von Linearprädiktionsparametern {αi} als Filterkoeffizienten an ein Inversfilter 42 liefert, das ein Linearprädiktionsrestsignal R abgibt. Das Restsignal R wird mittels eines Kosinustransformators 43 kosinustransformiert, und seine DCT-(diskrete Kosinustransformation)-Koeffizienten werden auf der Frequenzachse neu geordnet und in eine Vielzahl von Subvektoren aufgegliedert. Ein so erhaltener Vektor u wird einem Zweikanalgewichtungsvektorquantisierer 100 gemäß der vorliegenden Erfindung geliefert, in dem der Eingangsvektor u einer Vektorquantisierung unterzogen wird, indem er zum Gewicht einer Spektralumhüllenden addiert wird, und von dem der quantisierte Code als Wellenforminformation B gesendet wird. Zur gleichen Zeit wird auch eine Seiteninformation A, die aus einer Tonlagenperiode (pitch period) Δt, den Linearprädiktionsparametern {αi} und der Signalenergie P besteht, codiert und übertragen. Ein Decodierer 200 an der Empfangsseite verweist auf die Codebücher 15 und 16 und rekonstruiert das Kandidatvektorpaar xj, ym von der empfangenen Wellenforminformation B und gibt dann ihren gemittelten Vektor als einen Rekonstruktionsvektor von den Decodierern 17 und 18 aus. Der Rekonstruktionsvektor wird an einen inversen Kosinustransformator 14 angelegt, durch den ein Restsignal R' decodiert wird. Auf der anderen Seite wird die empfangene Parameterinformation A von einem Parameterdecodierer 45 decodiert, und die Linearprädiktionsparameter {αi} werden als Filterkoeffizienten an ein Synthesefilter 46 angelegt. Das Restsignal R' wird an das Synthesefilter 46 angelegt, wodurch die Sprache synthetisiert wird.
- Die Codebücher 11, 12 (und 15, 16) für den Zweikanalquantisierer werden dadurch vorbereitet, daß zuerst mit einer Gaußschen Zufallszahlenfolge unter Verwendung eines Verzerrungsmaßes, gewichtet mit einem langzeitgemittelten Spektrum, trainiert wird. Der dabei produzierte Vektor ist in der Energie einer Komponente, die dem Hochfrequenzband auf der Frequenzachse entspricht, im wesentlichen null- was zu decodierter Sprache ohne Hochfrequenzkomponente führt. Um dies abzuschwächen, wird der Kandidatvektor durch einen Vektor ersetzt, der der geringste hinsichtlich des gewichteten Abstands unter den Gaußschen Zufallszahlen der Lernfolge ist.
- Fig. 13 zeigt das Signalrauschleistungsvermögen der Zweikanalvektorquantisierung für Übertragungskanalfehler in Fig. 12 im Vergleich zu dem Signalrauschleistungsvermögen der herkömmlichen, in Fig. 1 gezeigten Einkanalvektorquantisierung. Bei der Eingangssprache S handelt es sich um männliche und weibliche Sprache, die wiederholt mit verschiedenen Codefehlermustern verwendet wurden, und die Signalrauschkurven stellen Werte dar, die über etwa 90 Sekunden Sprache gemittelt wurden. Die Kurven (b) und (c), mit Ausnahme von (a), geben den Fall wieder, wo die gewöhnliche Einkanalvektorquantisierung für die Wellenformquantisierung verwendet wurde. Bei der Seiteninformation B in allen Fällen der Kurven (a), (b) und (c) sowie der Wellenforminformation A im Fall (c) erfolgte eine Fehlerkorrektur unter Verwendung von doppelfehlerkorrigierbaren BCH-Codes (31, 21). Der Grund dafür ist, daß, da die Seiteninformation etwa 20 % der Gesamtinformation ausmacht, eine Zunahme ihrer Wellenformverzerrung durch redundante Bits der fehlerkorrigierenden Codes gering ist, während die Welleninformation ernsthaft beschädigt wird, wenn ein Fehler auftritt. Es ergibt sich aus Fig. 13, daß die Zweikanalvektorquantisierung die Wellenformverzerrung kleiner machen kann als die anderen Verfahren, und zwar über den Bereich von Fehlerraten von 0 bis 0,3 % oder so.
- Es folgt nun eine Beschreibung der Anwendung der vorliegenden Erfindung auf die Quantisierung der Linearprädiktions- parameter {αi} bei der oben im Hinblick auf Fig. 12 beschriebenen Sprachcodierung. Zunächst werden die Linearprädiktionskoeffizienten {αi} in LSP-(Linear Spectrum Pair)- Parameter umgewandelt, durch die es einfacher wird, die Filter stabil zu halten und ihnen eine gute Interpolationscharakteristik zu geben (U.S. Patent Nr. 4 393 272). Die Vektor-Scalarquantisierung wird für die LSP-Parameter unter Verwendung von 8 Bits für den Vektorteil und 13 Bits für den Scalarteil ausgeführt. In Fig. 14 ist der Vergleich zwischen der normalen Vektorquantisierung und der Quantisierung der vorliegenden Erfindung im Hinblick auf eine Spektralverzerrung (d.h. einen LPC Cepstrumabstand) für den Fall gezeigt, wo jedes des 8-Bit-Codes, der dem Vektorteil entspricht, zwangsweise invertiert und decodiert wird. Die Abszisse zeigt den Cepstrumabstand und die Ordinate die Position des invertierten Bits im Code. Weiße Balken zeigen die Spektrumverzerrung durch die gewöhnliche Vektorquantisierung, und schraffierte Balken durch die Vektorquantisierung gemäß der vorliegenden Erfindung. Der Grund für die Bewertung in bezug auf die Spektrumverzerrung ist der, daß ein Codefehler bei den Linearprädiktionsparametern, wie etwa den LSP-Parametern, direkt als eine Quantisierungsverzerrung der codierten Sprache reflektiert wird. Es ist darauf hinzuweisen, daß, je kleiner der Wert des Cepstrumabstands ist, desto weniger Verzerrung im rekonstruierten Signal auftritt. Fig. 14 zeigt, daß die Zweikanalquantisierung gemäß der vorliegenden Erfindung den Einfluß auf die Spektrumverzerrung im Vergleich zum gewöhnlichen Quantisierungsverfahren vermindert. Für einen fehlerfreien Kanal ist die gewöhnliche Vektorquantisierung besser als die der vorliegenden Erfindung, obwohl der Unterschied nur sehr gering ist.
- Wie oben beschrieben, wird gemäß dem Vektorquantisierungs verfahren der vorliegenden Erfindung, da ein Eingangsvektor in eine Vielzahl von Kanälen unter Verwendung mehrerer Codebücher quantisiert wird, die Einheit der quantisierten Codes geteilt und als Folge dessen die Wahrscheinlichkeit, daß alle so geteilten Codes während der Übertragung fehlerhaft werden, ist sehr viel geringer als die Übertragungsfehlerrate eines auf gewöhnliche Weise quantisierten Codes, der nicht geteilt ist. Anders ausgedrückt, der Bereich der Beschädigung durch einen 1-Bit-Codefehler ist deutlich begrenzt. Damit ist die Beschädigung des decodierten Vektors abgeschwächt. Wenn andererseits keine Codefehler auftreten, kann man davon ausgehen, daß, da die Kombination von Ausgangscodes so bestimmt wird, daß der Mittelwert von Kandidatvektoren jeweiliger Kanäle die Verzerrung zwischen ihnen und dem Eingangsvektor minimieren, die Vektorquantisierung der vorliegenden Erfindung im wesentlichen die gleiche Leistungsfähigkeit wie die gewöhnliche Einkanalvektorquantisierung für dieselbe Informationsmenge hat.
- Darüber hinaus hat die Mehrkanalvektorquantisierung gemäß der vorliegenden Erfindung zusätzlich zur Robustheit gegenüber Codefehlern die Vorteile einer deutlichen Verringerung der Speicherkapazität der Codebücher und der Verringerung des Rechenumfangs für das Herausziehen der Kandidatvektoren zur Quantisierung, wie durch die Tabellen I und II gezeigt. Außerdem kann durch Begrenzung der herauszuziehenden Kandidatvektoren auf die Nähe des Eingangsvektors in jedem Codebuch der Rechenumfang im wesentlichen ohne Verminderung der Leistungsfähigkeit reduziert werden.
- Demzufolge wird die Verwendung des Quantisierungsverfahrens gemäß der vorliegenden Erfindung zu einer verbesserten Leistungsfähigkeit bei der Sprachwellenformcodierung und Bildcodierung führen. Die vorliegende Erfindung ist von besonderem Nutzen, wenn sie bei einer Codierung eingesetzt wird, bei der Kanalfehler auftreten und eine Informationskompression erforderlich ist.
Claims (35)
1. Einstufiger Multiplexvektorquantisierer
umfassend:
eine Vielzahl von Codebuchspeichereinrichtungen (11,
12), in denen je eine bestimmte Anzahl von Kandidatvektoren
gespeichert ist,
eine Verzerrungsberechnungseinrichtung (131, 132),
durch die eine Verzerrung zwischen einem Eingangsvektor und
einem gemittelten Vektor eines Satzes von Kandidatvektoren
für eine Vielzahl unterschiedlicher Sätze von
Kandidatvektoren errechnet wird, wobei jeder Satz von Kandidatvektoren
einen Kandidatvektor von jedem der Vielzahl von
Codebuchspeichereinrichtungen (11, 12) umfaßt,
eine Minimumverzerrungsbestimmungseinrichtung (133) zur
Bestimmung des Satzes von Kandidatvektoren, deren gemittelter
Vektor zur geringsten Verzerrung führt, und
eine Multiplexeinrichtung (14) zum Multiplexen und
Ausgeben der Codes, die die Kandidatvektoren des von der
Minimumverzerrungsbestimmungseinrichtung bestimmten Satzes
repräsentieren.
2. Quantisierer nach Anspruch 1, bei dem die
Multiplexeinrichtung (14) eine Einrichtung zum Zeitmultiplexen der die
Kandidatvektoren repräsentierenden Codes ist.
3. Quantisierer nach Anspruch 1, bei dem die
Verzerrungsberechnungseinrichtung (131, 132) eine Einrichtung ist,
die als die Verzerrung einen quadratischen Abstand zwischen
dem Eingangsvektor und dem geinittelten Vektor errechnet.
4. Quantisierer nach Anspruch 1, bei dem die
Verzerrungsberechnungseinrichtung eine Einrichtung ist, die als die
Verzerrung einen gewichteten quadratischen Abstand zwischen
dem Eingangsvektor und dem gemittelten Vektor errechnet.
5. Quantisierer nach Anspruch 1, bei dem die
Verzerrungsberechnungseinrichtung (131, 132) enthält: eine
Subtrahiereinrichtung (31) zur Errechnung eines Differenzvektors
zwischen dem gemittelten Vektor und dem Eingangsvektor und
eine Quadratsummiereinrichtung (32) zum Errechnen der Summe
der Quadrate jeweiliger Elemente des Differenzvektors und zur
Ausgabe der Summe als die Verzerrung.
6. Quantisierer nach Anspruch 1, bei dem die
Verzerrungsberechnungseinrichtung enthält:
eine Tabellenspeichereinrichtung (33), in der Summen
der Quadrate jeweiliger Elemente eines Vektors, bei dem es
sich um die Summe der Kandidatvektoren jedes der Sätze
handelt, jeweils ausgewählt von einer der Vielzahl von
Codebuchspeichereinrichtungen (11, 12), entsprechend den jeweiligen
Sätzen von Kandidatvektoren gespeichert sind,
eine Berechnungseinrichtung (34, 35) zur Berechnung des
inneren Produkts von dem Eingangsvektor mit jedem Satz von
Kandidatvektoren, jeweils ausgewählt von einer der Vielzahl
von Codebuchspeichereinrichtungen, und
eine Subtrahiereinrichtung (36) zur Errechnung einer
Differenz zwischen der Summe der inneren Produkte von der
Berechnungseinrichtung für das innere Produkt und der Summe von
Quadraten entsprechend dem ausgewählten Satz von
Kandidatvektoren, die aus dein Tabellenspeicher ausgelesen wurden, und
zur Ausgabe der errechneten Differenz als die Verzerrung.
7. Quantisierer nach Anspruch 1, bei dem die
Verzerrungsberechnungseinrichtung enthält:
eine Mulipliziereinrichtung (37), die den
Eingangsvektor und einen ihm entsprechenden eingegebenen
Gewichtungsvektor multipliziert und einen gewichteten Eingangsvektor
ausgibt,
eine Tabellenspeichereinrichtung (33), in der ein
konstanter Vektor, der als seine jeweiligen Elemente, das
Quadrat der Summe entsprechender Elemente jeweiliger
Kandidatvektoren jedes der Sätze, ausgewählt von einer der
Vielzahl von Codebuchspeichereinrichtungen verwendet,
entsprechend jedem der Sätze gespeichert ist,
eine erste Berechnungseinrichtung (34, 35) zur
Berechnung des inneren Produkts der Kandidatvektoren der aus der
Vielzahl von Codebuchspeichereinrichtungen (11, 12)
ausgewählten Sätze und des gewichteten Eingangsvektors von der
Multipliziereinrichtung,
eine zweite Berechnungseinrichtung (38) zur Berechnung
des inneren Produkts des konstanten Vektors, der aus der
Tabellenspeichereinrichtung entsprechend dem ausgewählten
Satz von Kandidatvektoren ausgelesen wurde, und des
Gewichtungsvektors, und
eine Addiereinrichtung (36) zur Ausgabe der Differenz
zwischen den inneren Produkten von der ersten und der zweiten
Berechnungseinrichtung als die Verzerrung.
8. Quantisierer nach einem der Ansprüche 1 bis 7, bei
dein zwei Codebücher (11, 12) vorgesehen sind.
9. Quantisierer nach Anspruch 1, bei dem sich der
Eingangsvektor aus k Elementen zusammensetzt und die Vielzahl
von Codebuchspeichereinrichtungen (11, 12) ein X-Codebuch,
das N Kandidatvektoren xj, je bestehend aus k Elementen,
wobei j = 0, 1, ..., N-1 ist, und ein Y-Codebuch mit N
Kandidatvektoren ym, je bestehend aus k Elementen, wobei m = 0, 1,
..., N-1 ist, gespeichert hat, wobei k eine positive ganze
Zahl und N eine ganze Zahl gleich oder größer als 2 sind.
10. Quantisierer nach Anspruch 9, bei dem, wenn man die
i-ten Elemente des Eingangsvektors und der Kandidatvektoren
xj und ym mit u(i), x(i,j) bzw. y(i,m) bezeichnet, die
Verzerrungsberechnungseinrichtung eine Einrichtung (131, 132)
ist, die als die Verzerrung für die Kandidatvektoren xj und
ym des ausgewählten Satzes (j, m) eine Verzerrung d'j,m
errechnet, die durch die folgenden Gleichungen definiert ist
11. Quantisierer nach Anspruch 10, bei dem die
Verzerrungsberechnungseinrichtung (131, 132) eine
Tabellenspeichereinrichtung (33) enthält, in der Werte, die durch Berechnung
von F(j,m) aus Gleichung (2) für alle Kombinationen (j, m)
der Kandidatvektoren xj und ym erhalten wurden, entsprechend
den Kombinationen (j, m) gespeichert wurden, und die
Verzerrungsberechnungseinrichtung aus der
Tabellenspeichereinrichtung den Wert von F(j,m) entsprechend dem ausgewählten Satz
von Kandidatvektoren (j, m) ausliest und dann die durch
Gleichung (1) definierte Verzerrung berechnet.
12. Quantisierer nach Anspruch 9, bei dem, bezeichnet
man die i-ten Elemente eines Eingangsgewichtungsvektors w,
des Eingangsvektors u und der Kandidatvektoren xj und ym mit
w(i), u(i), x(i,j) bzw. y(i,m), die
Verzerrungsberechnungseinrichtung (131, 132) eine Einrichtung ist, die als die
Verzerrung für die Kandidatvektoren xj und ym des
ausgewählten Satzes (j, m) eine Verzerrung d'j,m berechnet, die durch
folgende Gleichungen definiert ist:
13. Quantisierer nach Anspruch 12, bei dem die
Verzerrungsberechnungseinrichtung (131, 132) einen Tabellenspeicher
(33) zur Speicherung vorberechneter Werte von wenigstens
einem Teil der Berechnung des konstanten Vektors F(i,j,m),
der durch Gleichung (2) ausgedrückt ist, für den ausgewählten
Satz von Kandidatvektoren xj und ym enthält.
14. Quantisierer nach Anspruch 1, bei dem die
Multiplexeinrichtung(14) eine Einrichtung zum Frequenzmultiplexen
der Codes ist, die jeweils die Kandidatvektoren
repräsentieren.
15. Multiplexvektorquantisierungsverfahren, bei dem
eine Eingangssignalfolge in eine Vielzahl von Gruppen
unterteilt wird, die je aus einer Vielzahl von Proben bzw.
Abtastwerten bestehen und einen Eingangsvektor bilden, und
bei dem jeder Eingangsvektor quantisiert wird, umfassend die
Schritte:
(a) Auswählen eines Kandidatvektors von jedem einer
Vielzahl von Codebüchern (11, 12), die je eine bestimmte
Anzahl von Kandidatvektoren enthalten,
(b) Errechnen einer Verzerrung zwischen einem
gemittelten Vektor des Satzes der ausgewählten Kandidatvektoren und
dem Eingangsvektor,
(c) Wiederholen der Schritte (a) und (b) für
Kandidatvektoren einer Vielzahl unterschiedlicher Sätze, ausgewählt
aus der Vielzahl von Codebüchern, und Bestimmen des Satzes
von Kandidatvektoren, der die geringste der jeweils
errechneten Verzerrungen ergibt, und
(d) Multiplexen und Ausgeben der Codes, die jeweils die
Kandidatvektoren des bestimmten Satzes repräsentieren.
16. Verfahren nach Anspruch 15, bei dem ein
quadratischer Abstand zwischen dem Eingangsvektor und dem gemittelten
Vektor errechnet und als Verzerrung im Schritt (b) ausgegeben
wird.
17. Verfahren nach Anspruch 15, bei dem ein gewichteter
quadratischer Abstand zwischen dem Eingangsvektor und dem
gemittelten Vektor als Verzerrung im Schritt (b) berechnet
wird.
18. Verfahren nach Anspruch 15, bei dem sich jeder
Eingangsvektor aus k Elementen zusammensetzt, eines der Vielzahl
von Codebüchern ein X-Codebuch mit N Kandidatvektoren xj, je
bestehend aus k Elementen, ist, wobei j = 0, 1, ..., N-1 ist,
und das andere Codebuch ein Y-Codebuch mit N Kandidatvektoren
ym, je bestehend aus k Elementen, ist, wobei m = 0, 1, ...,
N-1 ist, k eine positive ganze Zahl und N eine ganze Zahl
gleich oder größer als 2 ist.
19. Verfahren nach Anspruch 18, bei dem, wenn man die
i-ten Elemente des Eingangsvektors u, der Kandidatvektoren xj
und ym mit u(i), x(i,j) bzw. y(i,m) bezeichnet, Schritt (b)
ein Schritt ist, bei dem als Verzerrung für die
Kandidatvektoren xj und ym des ausgewählten Satzes (j, m) eine
Verzerrung d'j,m errechnet wird, die durch die folgenden
Gleichungen definiert ist:
20. Verfahren nach Anspruch 19, bei dem der Schritt (b)
ein Schritt ist, bei dem die Verzerrung d'j,m' die durch
Gleichung (1) definiert ist, unter Verwendung eines
Tabellenspeichers (33) berechnet wird, in dem Werte gespeichert sind,
die durch Vorabberechnung der Konstanten F(j,m), die durch
Gleichung (2) definiert ist, für alle Sätze (j, m) erhalten
wurden.
21. Verfahren nach Anspruch 20, bei dem Schritt (b) ein
Schritt ist, bei dem das innere Produkt des Eingangsvektors u
und jedes der Kandidatvektoren xj und ym berechnet wird und
als die Verzerrung d'j,m die Differenz zwischen der Summe der
inneren Produkte und der Konstanten F(j,m), die aus dem
Tabellenspeicher ausgelesen wird, berechnet wird.
22. Verfahren nach Anspruch 18, bei dem, wenn man die
i-ten Elemente eines Eingangsgewichtungsvektors w des
Eingangsvektors u und der Kandidatvektoren xj und ym mit w(i),
u(i), x(i,j) bzw. y(i,m) bezeichnet, Schritt (b) ein Schritt
ist, in dem als die Verzerrung für die Kandidatvektoren xj
und ym des ausgewählten Satzes (j, m) eine Verzerrung d'j,m
errechnet wird, die durch die folgenden Gleichungen definiert
ist:
23. Verfahren nach Anspruch 22, bei dem Schritt (b) ein
Schritt ist, bei dem die durch Gleichung (1) definierte
Verzerrung d'j,m unter Verwendung eines Tabellenspeichers (33)
berechnet wird, in dein vorabberechnete Werte wenigstens eines
Teiles der Berechnung des durch Gleichung (2) definierten
Konstantenvektors für den ausgewählten Satz von
Kandidatvektoren xj und ym gespeichert sind.
24. Verfahren nach Anspruch 22, bei dem die Berechnung
von Gleichung (1) in Schritt (b) einen Schritt des
Multiplizierens des Eingangsvektors u mit dem Gewichtungsvektor w und
einen Schritt der Berechnung des inneren Produkts des
Multiplikationsergebnisses mit jedem der Kandidatvektoren xj und
ym umfaßt.
25. Verfahren nach Anspruch 18, bei dem, wenn man die
i-ten Elemente eines Eingangsgewichtungsvektors w, des
Eingangsvektors u und der Kandidatvektoren xj und ym mit w(i),
u(i), x(i,j) bzw. y(i,m) bezeichnet, Schritt (b) ein Schritt
ist, bei dem als die Verzerrung für die Kandidatvektoren xj
und ym des ausgewählten Satzes (j, m) eine Verzerrung dj,m
errechnet wird, die durch die folgende Gleichung definiert
ist:
wobei τ eine beliebige positive ganze Zahl ist.
26. Verfahren nach Anspruch 18, bei dem Schritt (b) ein
Schritt ist, bei dem als die Verzerrung für die
Kandidatvektoren xj und ym des ausgewählten Satzes (j, m) eine
Verzerrung dj,m errechnet wird, die durch die folgenden Gleichungen
definiert ist:
wobei u eine beliebige Konstante im Bereich von 0 ≤ u ≤
1 ist.
27. Verfahren nach Anspruch 18, bei dem Schritt (b) ein
Schritt ist, bei dem als die Verzerrung für die
Kandidatvektoren xj und ym des ausgewählten Satzes (j, m) eine
Verzerrung dj,m errechnet wird, die durch die folgende Gleichung
definiert ist:
wobei q(f j) und q(g m) die bedingte Möglichkeit
repräsentieren, daß die Codes j und m, die die Kandidatvektoren xj
und ym bezeichnen, in einem Übertragungskanal fehlerhaft zu g
bzw. f wechseln.
28. Verfahren nach Anspruch 15, bei dem ein Schritt der
Bereitstellung der Vielzahl von Codebüchern (11, 12) umfaßt:
(1) einen Schritt, bei dem eine bestimmte Anzahl von
Eingangsprobenvektoren beliebig in eine Vielzahl von Gruppen
unterteilt wird, um eine Vielzahl von Anfangscodebüchern zu
erzeugen,
(2) einen Schritt, bei dem Lernvektoren einer Anzahl
ausreichend größer als die bestimmte Anzahl als
Eingangsvektoren verwendet werden und sie sequentiell durch das
Multiplexvektorquantisierungsverfahren unter Verwendung der
Vielzahl von Codebüchern quantisiert werden, wodurch der Satz
von Kandidatvektoren bestimmt wird, dem die Lernvektoren
jeweils entsprechen,
(3) einen Schritt, bei dem die Inhalte der Vielzahl von
Codebüchern mit Ausnahme eines beliebigen von ihnen fixiert
werden, ein beliebiger Kandidatvektor des einen Codebuchs als
ein variabler Vektor betrachtet wird, eine Gleichung, in der
die Summe der Verzerrungen für alle Lernvektoren, die diesen
einen Kandidatvektor in ihren jeweiligen Sätzen von
Kandidatvektoren
enthalten, nach dem variablen Vektor partiell
differenziert wird, auf null gesetzt wird und ein nach Auflösen
der Gleichung nach dem variablen Vektor erhaltener Vektorwert
als neuer Kandidatvektor an die Stelle des einen
Kandidatvektors gesetzt wird,
(4) einen Schritt, bei dem Schritt (3) für all die
anderen Kandidatvektoren des einen anfänglichen Codebuchs
wiederholt wird und sie durch neue Kandidatvektoren
ausgetauscht werden, wodurch die Inhalte des einen anfänglichen
Codebuchs erneuert werden, und
(5) einen Schritt, bei dem die Schritte (2), (3) und
(4) für all die anderen anfänglichen Codebücher zur
Erneuerung ihrer Inhalte wiederholt werden.
29. Verfahren nach Anspruch 28, bei dem der Schritt der
Erzeugung der Vielzahl von Codebüchern (11, 12) einen Schritt
der mehrfachen Wiederholung der Schritte (2), (3) und (4) für
dasselbe Codebuch enthält.
30. Verfahren nach Anspruch 28, bei dem der Schritt der
Erzeugung der Vielzahl von Codebüchern (11, 12) einen Schritt
der mehrfachen Wiederholung der Schritte (2), (3), (4) und
(5) enthält.
31. Verfahren nach Anspruch 15, bei dem der Schritt (d)
ein Schritt des Zeitmultiplexens und Ausgebens der jeweiligen
Codes, die Kandidatvektoren des bestimmten Satzes
repräsentieren, ist.
32. Verfahren nach Anspruch 15, bei dem der Schritt (d)
ein Schritt des Frequenzmultiplexens und Ausgebens der
jeweiligen Codes, die Kandidatvektoren des bestimmten Satzes
repräsentieren, ist.
33. Verfahren nach Anspruch 31 oder 32, bei dem die
Codes, die die Kandidatvektoren des bestimmten Satzes
repräsentieren,
Indizes sind, die die jeweiligen Kandidatvektoren
bezeichnen.
34. Verfahren nach Anspruch 18, bei dem der gemittelte
Vektor definiert ist durch folgende Gleichung:
vj,m = {22r(x)xj + 22r(y)ym}/{22r(x) + 22r(y)}
wobei r(x) und r(y) Übertragungsraten der die
Kandidatvektoren xj bzw. ym repräsentierenden Codes sind.
35. Verfahren nach Anspruch 18, bei dem, wenn man das
i-te Element des Eingangsvektors u und die g-ten Elemente der
Kandidatvektoren xj und ym mit u(i), x(g,j) bzw. y(g,m)
bezeichnet, der Schritt (b) ein Schritt ist, bei dem als die
Verzerrung für die Kandidatvektoren xj und ym des
ausgewählten Satzes eine Verzerrung dj,m berechnet wird, die durch die
folgende Gleichung definiert ist:
wobei h(i,g) ein Element an der i-ten Reihe und der g-
ten Spalte einer Matrix zum Erhalt eines Faltungsprodukts und
T ein Parameter sind, der die Verzerrung dj,m minimiert.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27538887 | 1987-10-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3883701D1 DE3883701D1 (de) | 1993-10-07 |
DE3883701T2 true DE3883701T2 (de) | 1994-02-10 |
Family
ID=17554798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE88117612T Expired - Lifetime DE3883701T2 (de) | 1987-10-30 | 1988-10-21 | Verfahren und Vorrichtung für multiplexierte Vektorquantifizierung. |
Country Status (4)
Country | Link |
---|---|
US (1) | US4922508A (de) |
EP (1) | EP0314018B1 (de) |
CA (1) | CA1311060C (de) |
DE (1) | DE3883701T2 (de) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0783315B2 (ja) * | 1988-09-26 | 1995-09-06 | 富士通株式会社 | 可変レート音声信号符号化方式 |
CA2002015C (en) * | 1988-12-30 | 1994-12-27 | Joseph Lindley Ii Hall | Perceptual coding of audio signals |
DE69031186D1 (de) * | 1989-03-10 | 1997-09-11 | Canon Kk | Verfahren und Vorrichtung zum Codieren von Bildinformation |
US5031037A (en) * | 1989-04-06 | 1991-07-09 | Utah State University Foundation | Method and apparatus for vector quantizer parallel processing |
US4994927A (en) * | 1989-06-19 | 1991-02-19 | Gte Laboratories Inc | Self-adaptive neural net based vector quantizer for image compression |
JPH0332228A (ja) * | 1989-06-29 | 1991-02-12 | Fujitsu Ltd | ゲイン―シェイプ・ベクトル量子化方式 |
US5263119A (en) * | 1989-06-29 | 1993-11-16 | Fujitsu Limited | Gain-shape vector quantization method and apparatus |
JPH0370336A (ja) * | 1989-08-10 | 1991-03-26 | Mitsubishi Electric Corp | ディジタル変調の波形データ修正方法 |
US5072293A (en) * | 1989-08-29 | 1991-12-10 | U.S. Philips Corporation | Method of estimating motion in a picture signal |
US5255346A (en) * | 1989-12-28 | 1993-10-19 | U S West Advanced Technologies, Inc. | Method and apparatus for design of a vector quantizer |
US5253053A (en) * | 1990-12-31 | 1993-10-12 | Apple Computer, Inc. | Variable length decoding using lookup tables |
JP3151874B2 (ja) * | 1991-02-26 | 2001-04-03 | 日本電気株式会社 | 音声パラメータ符号化方式および装置 |
JPH0568243A (ja) * | 1991-09-09 | 1993-03-19 | Hitachi Ltd | 可変長符号化制御方式 |
US5325126A (en) * | 1992-04-01 | 1994-06-28 | Intel Corporation | Method and apparatus for real time compression and decompression of a digital motion video signal |
US5651026A (en) * | 1992-06-01 | 1997-07-22 | Hughes Electronics | Robust vector quantization of line spectral frequencies |
US5388124A (en) * | 1992-06-12 | 1995-02-07 | University Of Maryland | Precoding scheme for transmitting data using optimally-shaped constellations over intersymbol-interference channels |
US5467413A (en) * | 1993-05-20 | 1995-11-14 | Radius Inc. | Method and apparatus for vector quantization for real-time playback on low cost personal computers |
JP2626492B2 (ja) * | 1993-09-13 | 1997-07-02 | 日本電気株式会社 | ベクトル量子化装置 |
US5692100A (en) * | 1994-02-02 | 1997-11-25 | Matsushita Electric Industrial Co., Ltd. | Vector quantizer |
US5517595A (en) * | 1994-02-08 | 1996-05-14 | At&T Corp. | Decomposition in noise and periodic signal waveforms in waveform interpolation |
US5521988A (en) * | 1994-04-05 | 1996-05-28 | Gte Laboratories Incorporated | Vector transform coder with multi-layered codebooks and dynamic bit allocation |
JP2956473B2 (ja) * | 1994-04-21 | 1999-10-04 | 日本電気株式会社 | ベクトル量子化装置 |
US5822456A (en) * | 1994-07-14 | 1998-10-13 | Johnson-Grace | Optimal spline interpolation for image compression |
JP2000511363A (ja) * | 1994-07-14 | 2000-08-29 | ジョンソン、グレイス、カンパニー | 画像を圧縮するための方法及び装置 |
US5592227A (en) * | 1994-09-15 | 1997-01-07 | Vcom, Inc. | Method and apparatus for compressing a digital signal using vector quantization |
US5636231A (en) * | 1995-09-05 | 1997-06-03 | Motorola, Inc. | Method and apparatus for minimal redundancy error detection and correction of voice spectrum parameters |
US5889891A (en) * | 1995-11-21 | 1999-03-30 | Regents Of The University Of California | Universal codebook vector quantization with constrained storage |
US5835037A (en) * | 1996-12-31 | 1998-11-10 | Iterated Systems, Inc. | Method and apparatus for modeling discrete data sequences by multiple vector representation |
US7630895B2 (en) * | 2000-01-21 | 2009-12-08 | At&T Intellectual Property I, L.P. | Speaker verification method |
US6076055A (en) * | 1997-05-27 | 2000-06-13 | Ameritech | Speaker verification method |
EP0920204B1 (de) * | 1997-11-24 | 2006-02-15 | STMicroelectronics S.r.l. | MPEG-2 Dekodierung mit reduziertem Speicherbedarf durch Rekomprimierung mit adaptiver baumstrukturierter Vektorquantisierung |
JP4460903B2 (ja) * | 2004-01-20 | 2010-05-12 | 株式会社東芝 | 半導体ウェーハのidマーク認識方法 |
EP3136727B1 (de) | 2011-04-12 | 2018-06-13 | Sun Patent Trust | Bewegtvideocodierungsverfahren und bewegtvideocodierungsvorrichtung |
CN107197247B (zh) | 2011-05-24 | 2020-01-14 | 威勒斯媒体国际有限公司 | 图像编码方法及图像编码装置 |
US9485518B2 (en) | 2011-05-27 | 2016-11-01 | Sun Patent Trust | Decoding method and apparatus with candidate motion vectors |
TR201819396T4 (tr) | 2011-05-27 | 2019-01-21 | Sun Patent Trust | Görüntü Kod Çözme Metodu Ve Görüntü Kod Çözme Cihazı |
SG194746A1 (en) | 2011-05-31 | 2013-12-30 | Kaba Gmbh | Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding/decoding device |
WO2012164908A1 (ja) | 2011-05-31 | 2012-12-06 | パナソニック株式会社 | 動画像符号化方法、動画像符号化装置、動画像復号化方法、動画像復号化装置、および動画像符号化復号化装置 |
KR101900986B1 (ko) | 2011-06-30 | 2018-09-20 | 선 페이턴트 트러스트 | 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치, 및, 화상 부호화 복호 장치 |
KR101888226B1 (ko) | 2011-08-03 | 2018-08-13 | 선 페이턴트 트러스트 | 동화상 부호화 방법, 동화상 부호화 장치, 동화상 복호화 방법, 동화상 복호화 장치, 및, 동화상 부호화 복호화 장치 |
MX2014003991A (es) | 2011-10-19 | 2014-05-07 | Panasonic Corp | Metodo de codificacion de imagenes, aparato de codificacion de imagenes, metodo de decodificacion de imagenes y aparato de decodificacion de imagenes. |
KR101821532B1 (ko) | 2012-07-12 | 2018-03-08 | 노키아 테크놀로지스 오와이 | 벡터 양자화 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4541012A (en) * | 1982-01-04 | 1985-09-10 | Compression Labs, Inc. | Video bandwidth reduction system employing interframe block differencing and transform domain coding |
CA1226946A (en) * | 1984-04-17 | 1987-09-15 | Shigeru Ono | Low bit-rate pattern coding with recursive orthogonal decision of parameters |
DE3670746D1 (de) * | 1985-12-04 | 1990-05-31 | Siemens Ag | Verfahren zur datenreduktion digitaler bildsignale durch vektorquantisierung. |
IT1184023B (it) * | 1985-12-17 | 1987-10-22 | Cselt Centro Studi Lab Telecom | Procedimento e dispositivo per la codifica e decodifica del segnale vocale mediante analisi a sottobande e quantizzazione vettorariale con allocazione dinamica dei bit di codifica |
JP2527350B2 (ja) * | 1987-02-25 | 1996-08-21 | 富士写真フイルム株式会社 | ベクトル量子化による画像デ―タの圧縮および再構成装置 |
US4805193A (en) * | 1987-06-04 | 1989-02-14 | Motorola, Inc. | Protection of energy information in sub-band coding |
US4791654A (en) * | 1987-06-05 | 1988-12-13 | American Telephone And Telegraph Company, At&T Bell Laboratories | Resisting the effects of channel noise in digital transmission of information |
-
1988
- 1988-10-21 DE DE88117612T patent/DE3883701T2/de not_active Expired - Lifetime
- 1988-10-21 EP EP88117612A patent/EP0314018B1/de not_active Expired - Lifetime
- 1988-10-25 CA CA000581235A patent/CA1311060C/en not_active Expired - Lifetime
- 1988-10-25 US US07/261,859 patent/US4922508A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US4922508A (en) | 1990-05-01 |
EP0314018A3 (en) | 1990-05-30 |
CA1311060C (en) | 1992-12-01 |
EP0314018B1 (de) | 1993-09-01 |
DE3883701D1 (de) | 1993-10-07 |
EP0314018A2 (de) | 1989-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3883701T2 (de) | Verfahren und Vorrichtung für multiplexierte Vektorquantifizierung. | |
DE69518452T2 (de) | Verfahren für die Transformationskodierung akustischer Signale | |
DE3789857T2 (de) | System zur Komprimierung von Bildern mit mehreren Graustufen. | |
DE69737514T2 (de) | System und verfahren zum bearbeiten wellenartiger und umgekehrten wellenartigen transformationen von digitalen daten | |
DE69227401T2 (de) | Verfahren zum Kodieren und Dekodieren von Sprachsignalen | |
DE3853916T2 (de) | Digitaler-sprachkodierer mit verbesserter vertoranregungsquelle. | |
DE69026292T2 (de) | Methode zur Bilddatenkodierung | |
DE69015695T2 (de) | Einrichtung zur Transformationskodierung. | |
DE69511390T2 (de) | Quellencodierer mit voreingestellter qualität | |
DE69735679T2 (de) | Verfahren zur Bilddecodierung | |
DE69527078T2 (de) | Verfahren zur vektorkodierung und entsprechender kodierer/dekodierer | |
DE69133458T2 (de) | Verfahren zur Sprachquantisierung und Fehlerkorrektur | |
DE69915400T2 (de) | Vorrichtung zur Kodierung und Dekodierung von Audiosignalen | |
DE69132626T2 (de) | Binärkodierungsverfahren mit gleichmässiger Umschaltung-Verteilung der binären Elemente und Inkrementierungs-Dekrementierungsverfahren dafür | |
DE3784942T2 (de) | Duplex-datenuebertragung. | |
DE69425847T2 (de) | Rechner für die inverse diskrete Cosinus-Transformation | |
DE69125775T2 (de) | Sprachkodierungs- und Dekodierungssystem | |
DE69029232T2 (de) | System und Methode zur Sprachkodierung | |
EP0421186B1 (de) | Verfahren zur Codierung beliebig geformter Bildsegmente | |
DE69810361T2 (de) | Verfahren und Vorrichtung zur mehrkanaligen akustischen Signalkodierung und -dekodierung | |
DE60017825T2 (de) | Verfahren und Vorrichtung zur Kodierung und Dekodierung von Audiosignalen und Aufzeichnungsträger mit Programmen dafür | |
DE68925516T2 (de) | Wirksames Kodierungsverfahren und zugehöriges Dekodierungsverfahren | |
DE68921949T2 (de) | System zur Kodierung eines Bildsignals. | |
DE69629986T2 (de) | Verfahren und Gerät zum Kodieren digitaler akustischer Signale | |
DE102006051673A1 (de) | Vorrichtung und Verfahren zum Nachbearbeiten von Spektralwerten und Encodierer und Decodierer für Audiosignale |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Free format text: HOFFMANN, E., DIPL.-ING., PAT.-ANW., 82166 GRAEFELFING |