DE69801536T2 - Vorrichtung und Verfahren zur Signalcodierung - Google Patents
Vorrichtung und Verfahren zur SignalcodierungInfo
- Publication number
- DE69801536T2 DE69801536T2 DE69801536T DE69801536T DE69801536T2 DE 69801536 T2 DE69801536 T2 DE 69801536T2 DE 69801536 T DE69801536 T DE 69801536T DE 69801536 T DE69801536 T DE 69801536T DE 69801536 T2 DE69801536 T2 DE 69801536T2
- Authority
- DE
- Germany
- Prior art keywords
- quantization
- vector
- bit allocation
- coefficient
- scalar
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 21
- 238000013139 quantization Methods 0.000 claims description 161
- 239000013598 vector Substances 0.000 claims description 97
- 238000006243 chemical reaction Methods 0.000 claims description 23
- 238000010606 normalization Methods 0.000 claims description 20
- 238000000605 extraction Methods 0.000 claims description 5
- 230000005236 sound signal Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 238000009499 grossing Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000001228 spectrum Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000002940 Newton-Raphson method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002087 whitening effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/008—Vector quantisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe coding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/0212—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
- Die Erfindung betrifft ein Verfahren und ein Gerät zur Signalcodierung, bei denen ein Zeitsignal für die Quantisierung einer Zeit-/Frequenzachsen-Umwandlung unterzogen wird. Sie bezieht sich insbesondere auf ein Verfahren und ein Gerät zur Signalcodierung, die vorzugsweise dann eingesetzt werden können, wenn ein Audiosignal mit hoher Effizienz codiert werden soll.
- Es sind verschiedene Signalcodierverfahren bekannt, bei denen eine Signalkomprimierung vorgenommen wird, wobei statistische Eigenschaften von Audiosignalen (einschließlich eines Tonsignals und eines akustischen Signals) im Zeitbereich und im Frequenzbereich sowie Eigenschaften des menschlichen Gehörsinns ausgenutzt werden. Solche Codierverfahren lassen sich unterteilen in eine Codierung im Zeitbereich, eine Codierung im Frequenzbereich, eine Analyse-Synthese-Codierung usw..
- Bei der Codierung eines Audiosignals, insbesondere eines akustischen Signals oder eines Musiksignals, wird der Tonqualität größere Beachtung geschenkt als der Quantisierungsetfizienz. Deshalb benutzt man im allgemeinen eine Quantisierung mittels skalare Quantisierung, und die untere Grenze der Vorzeichen-Bitrate ist dementsprechend vergleichsweise hoch.
- Bei dem rapiden Fortschritt der Kommunikationsmedien in Richtung auf das Multimediasystem ist es jedoch erforderlich, Verfahren zur Codierung mit reduzierter Rate vorzusehen und gleichzeitig eine Beeinträchtigung der Tonqualität zu vermeiden.
- Um dieses Ziel zu erreichen, ist die Einführung einer vektoriellen Quantisierung unumgänglich. Bei der vektoriellen Quantisierung ist jedoch die Reproduzierbarkeit eines sogenannten isolierten Spektrums, d. h. gewisser Spitzenwertabschnitte, in einem Audiosignalspektrum unvorteilhaft, und es besteht der Wunsch, hier Verbesserungen zu erzielen.
- JP-A-63 268 387 beschreibt die Anwendung von skalarer Quantisierung auf die unteren Frequenzkomponenten einer DC-Komponente und einer AC-Komponente und die Anwendung von vektorieller Quantisierung auf die hochfrequenten Komponenten bei der Quantisierung eines orthogonalen Transformationskoeffizienten in einem Block.
- Es ist ein Ziel der vorliegenden Erfindung, ein Verfahren und ein Gerät zur Signalcodierung anzugeben, mit denen die Reproduzierbarkeit eines von einem Spitzenwertabschnitt gebildeten isolierten Spektrums gesteigert und die Tonqualität verbessert werden kann, wobei gleichzeitig die Rate durch vektorielle Quantisierung reduziert wird.
- Um dieses Ziel zu erreichen, sieht die vorliegende Erfindung ein Verfahren vor, wie es in dem anhängenden Anspruch 1 definiert ist und ein Gerät, wie es in dem anliegenden Anspruch 7 definiert ist.
- Als Verfahren für die Umsteuerung zwischen skalarer Quantisierung und vektorieller Quantisierung kann beispielsweise ein selektives Verfahren angewendet werden, bei dem skalare Quantisierung für Koeffizienten auf der Frequenzachse durchgeführt wird, bei denen die zugeteilte Bitzahl gleich oder größer ist als ein vorbestimmter Schwellwert.
- Im vorliegenden Fall wird die vektorielle Quantisierung für Koeffizienten, die bereits skalar quantisiert wurden, mit dem Gewicht Null ausgeführt, so daß von den Ausgangssignale der vektoriellen Quantisierung diejenigen Ausgangsgrößen ignoriert werden, die den durch die skalare Quantisierung quantisierten Koeffizienten entsprechen, wobei diese Ausgangssignale bei der Ausgabe durch die Ausgangssignale der skalaren Quantisierung ersetzt werden.
- Darüber hinaus wird für einen Koeffizienten, der durch die skalare Quantisierung quantisiert wurde, ein Quantisierungsfehler des Koeffizienten als Eingangsgröße für die vektorielle Quantisierung benutzt, und die Ausgangsgröße der vektoriellen Quantisierung wird bei der Ausgabe zu der Ausgangsgröße der skalaren Quantisierung addiert.
- Die vektorielle Quantisierung wird durchgeführt, indem ein Eingangsvektor in mehrere Teilvektoren unterteilt wird, so daß nach Maßgabe der den einzelnen Teilvektoren entsprechenden Bitzuteilung zwischen mehreren Codebüchern umgeschaltet wird.
- Es ist außerdem vorteilhaft, ein Zeitachsensignal durch Merkmalextrahierung zu normieren, bevor es der oben erwähnten Zeit-/Frequenzachsen-Umwandlung unterzogen wird, und einen Parameter dieser Normierung zur Berechnung der Bitzuteilung zu verwenden.
- Es ist darüber hinaus möglich, die vektorielle Quantisierung für eine Mehrzahl von Teilvektoren durchzuführen, die durch Verschachteln eines Eingangsvektors gewonnen werden.
- Ein Koeffizient auf der Frequenzachse, dessen Reproduzierbarkeit durch vektorielle Quantisierung beeinträchtigt wird, kann durch skalare Quantisierung quantisiert werden.
- Die folgende Beschreibung, die lediglich als Beispiel dient und auf die anliegenden Zeichnungen Bezug nimmt, soll das Verständnis der Erfindung weiter vertiefen.
- Fig. 1 zeigt ein Blockschaltbild der Grundkonfiguration eines Ausführungsbeispiels der Erfindung,
- Fig. 2 zeigt ein Flußdiagramm zur Erläuterung einer Operation nach einem Ausführungsbeispiel der Erfindung,
- Fig. 3 zeigt ein Blockdiagramm einer spezifischen Konfiguration zur Ausführung einer skalaren Quantisierung (SQ) und einer vektoriellen Quantisierung (VQ),
- Fig. 4 zeigt ein Blockdiagramm für ein Beispiel eines Geräts zur Codierung von Audiosignalen gemäß der Erfindung.
- Im folgenden werden anhand der anliegenden Zeichnungen bevorzugte Ausführungsbeispiele der Erfindung beschrieben.
- Fig. 1 zeigt ein Blockschaltbild der Grundkonfiguration eines Ausführungsbeispiels der Erfindung.
- In der Anordnung von Fig. 1 wird einem Eingang 100 ein Wellenformsignal im Zeitbereich, z. B. ein Audiosignal, zugeführt. Es kann beispielsweise ein sogenanntes Breitband-Audiosignal mit einer Bandbreite in der Größenordnung von 0 bis 8 kHz mit einer Abtastfrequenz Fs von 16 kHz sein. Die Erfindung ist jedoch nicht auf ein solches Signal beschränkt.
- Das Eingangssignal wird von dem Eingang 100 einer Normierungsschaltung 101 zugeführt. Diese Normierungsschaltung 101 wird auch als Glättungsschaltung [Whitening-Schaltung] bezeichnet, die eine Glättung durchführt, indem Merkmale des zugeführten Wellenformzeitsignals extrahiert werden, um einen Prädiktions-Restwert zu entnehmen. Das Glätten der Zeitwellenform kann durch lineare Prädiktion oder durch nichtlineare Prädiktion erfolgen. Das zugeführte Wellenformzeitsignal kann z. B. durch lineare prädiktive Codierung (LPC) und Grundtonanalyse geglättet werden.
- Die Normierungsschaltung 101 führt das geglättete Zeitwellenformsignal einer Zeit- /Frequenzachsen-Wandlerschaltung (T/F-Mapping-Schaltung) 102 zu, in der das Signal in ein Frequenzachsensignal umgewandelt wird. Für das T/F-Mapping wird häufig eine orthogonale Umwandlung benutzt, z. B. die diskrete Cosinustransformation (DCT), die modifizierte DCT (MDCT), die schnelle Fourier-Transformation (FFT) usw.. Ein Parameter, z. B. ein MDCT- Koeffizient oder ein FFT-Koeffizient, der in der T/F-Wandlerschaltung gewonnen wird, wird einer Quantisierschaltung 103 zugeführt, die als Quantisierungseinrichtung dient, in der eine skalare Quantisierung (SQ) und eine vektorielle Quantisierung (VQ) in Kombination ausgeführt werden. Wenn der durch diese T/F-Wandlung gewonnene Koeffizient für jeden Rahmen als N-dimensionaler Vektor y angenommen wird, muß für eine effektive Quantisierung dieses Koeffizientenvektors v = (y(0), y(1), ... y(N-1))t für jeden Koeffizienten eine Quantisierungsbitzuteilung festgelegt werden. Diese Bitzuteilung kann aus einem den Gehörsinn berücksichtigenden Maskiermodell oder einfacher aus dem Parameter, wie dem LPC-Koeffizienten, gewonnen werden, der während der Glättung in der Normierungsschaltung 101 ermittelt wird, und einer Größe p(i), die aus dem Koeffizienten y berechnet wird. Im folgenden wird die Größe p(i) als Bitzuteilungs-Festlegungsindex bezeichnet. Ein spezifisches Beispiel für den Bitzuteilungs-Festlegungsindex p(i) wird weiter unten näher erläutert.
- Eine Bitzuteilungsschaltung 104 berechnet die Bitzuteilung in Abhängigkeit von dem erwähnten in der Normierungsschaltung 101 gewonnenen Parameter und dem Koeffizienten v aus der T/F-Wandlerschaltung 102. Im allgemeinen läßt sich eine Bitzuteilung ba(i), d. h. eine Bitzuteilung für den i-ten, Koeffizienten mit dem erwähnten Bitzuteilungs-Festlegungsindex p(i) folgendermaßen ausdrücken:
- ba(i) = log&sub2;(p(i)) + q
- worin q eine Korrekturgröße für die Generalisierung bedeutet. Die zulässige Gesamtzahl B der Bits für die Koeffizientenquantisierung innerhalb eines Rahmens sollte ein konstanter Wert oder ein Wert in der Nähe des konstanten Werts sein. Dementsprechend wird die erwähnte Korrekturgröße q folgendermaßen bestimmt:
- Die Steuerung für die Durchführung der skalaren Quantisierung (SQ) und der vektoriellen Quantisierung (VQ) erfolgt nach Maßgabe der für die einzelnen Koeffizienten gewonnen Bitzuteilung ba(i). Und zwar wird z. B. ein Schwellwert für die Bitzuteilung im voraus so festgelegt, daß die skalare Quantisierung und die vektorielle Quantisierung nach der folgenden Bedingung ausgewählt wird:
- Wenn ba(i) ≥ bSQ, skalare Quantisierung (SQ).
- Wenn ba(i) < bSQ, vektorielle Quantisierung (VQ).
- Da die Bitzuteilung ba(i) keine ganze Zahl ist, kann sie für die normale skalare Quantisierung nicht direkt verwendet werden. Aus ba(i) wird ein ganzzahliger Quantisierungsbit-Wert f(ba(i)) für die skalare Quantisierung benutzt. Das Folgende ist ein Beispiel für f(x), worin rint(x) eine Funktion ist, die eine dem Wert x am nächsten liegende ganze Zahl ergibt:
- In dieser Gleichung können bSQ und bhigh beispielsweise folgende Werte haben: bSQ = 2 und bhigh = 4. Sie sind jedoch nicht auf diese Werte beschränkt.
- Wenn die Zahl der Zuteilungsbits auf diese Weise ganzzahlig gemacht wird, verursacht die durch den erwähnten Korrekturwert q korrigierte notwendige Bitzahl in dem endgültigen Rahmen eine große Differenz. Deshalb wird der Wert q' in der Nachbarschaft von q gesucht, der die folgende Gleichung an B annähert.
- (3) ba'(i) = f(log&sub2;(p(i)) + q')
- Mit diesem Wert q' wird die endgültige Bitzuteilung ba'(i) für die einzelnen Koeffizienten bestimmt.
- Die Bitzuteilungsschaltung 104 legt den Wert ba'(i) fest, der der (SQ- und VQ)-Quantisierungsschaltung 103 zugeführt wird. Die (SQ- und VQ)-Quantisierungsschaltung 103 steuert die skalare Quantisierung (SQ) und die vektorielle Quantisierung (VQ) nach Maßgabe dieser Bitzuteilung ba'(i). Und zwar wird, wie oben beschrieben, die skalare Quantisierung (SQ) für Koeffizienten durchgeführt, die gleich oder größer sind als ein vorbestimmter Schwellwert, während die anderen Koeffizienten vektoriell quantisiert werden. Wenn auf diese Weise nach Ausschluß der skalar quantisierten Koeffizienten die verbleibenden Koeffizienten vektoriell quantisiert werden, kann sich die Zahl der skalar zu quantisierenden Koeffizienten von Rahmen zu Rahmen und damit die Zahl der Dimensionen für die vektorielle Quantisierung vektorielle Quantisierung von Rahmen zu Rahmen ändern. Deshalb wird die Zahl der Dimensionen für die vektorielle Quantisierung vorzugsweise auf die Gesamtzahl N aller Koeffizienten festgelegt. Wenn sich z. B. unter allen zu quantisierenden Koeffizienten ein Koeffizient befindet, der durch SQ quantisiert wurde, wird dieser Koeffizient einer vektoriellen Quantisierung mit dem Gewicht 0 unterzogen, und in der VQ-Ausgangsgröße wird das Ergebnis für diesen Koeffizienten ignoriert, so daß er durch eine SQ-Ausgangsgröße ersetzt wird. Es ist hier empfehlenswert, die zu quantisierenden Koeffizienten in eine Mehrzahl von Teilvektoren zu unterteilen und die vektorielle Quantisierung für jeden dieser Teilvektoren auszuführen und je nach der Zahl der Zuteilungsbits für die betreffenden Teilvektoren selektiv mehrere Codebücher zu benutzen.
- Darüber hinaus berechnet die Bitzuteilungsschaltung 104 ein Gewicht w(i), mit dem der Gehörsinn bei der vektoriellen Quantisierung (VQ) in der (SQ- und VQ)-Quantisierungsschaltung 103 gewichtet wird. Das berechnete Gewicht w(i) wird der (SQ- und VQ)-Quantisierungsschaltung 103 zugeführt. Dieses Gewicht w(i) wird weiter unten näher erläutert.
- An einem Ausgang 105 wird das Ausgangsindex der (SQ- und VQ)-Quantisierungsschaltung 103 abgenommen, während die Parameter, wie der oben erwähnte LPC-Koeffizient und der Grundton aus der Normierungsschaltung 101 an einem Ausgang 106 abgenommen werden.
- Obwohl das Signalcodiergerät von Fig. 1 als Hardwarekonfiguration dargestellt ist, kann es auch mit Hilfe eines digitalen Signalprozessors (DSP) oder dgl. als Software realisiert werden. Fig. 2 zeigt ein Flußdiagramm, in dem eine für einen solchen Fall vorgesehene Prozedur zur Signalcodierung dargestellt ist. Ein Ausführungsbeispiel der Erfindung wird anhand von Fig. 2 und Fig. 1 näher erläutert.
- In dem Flußdiagramm von Fig. 2 wird in dem Schritt S1 eine Normierung für die oben erwähnte Glättung durchgeführt, die der Normierungsschaltung 101 entspricht. Im folgenden werden das Glätten mit linearer prädiktiver Codierung (LPC) und die Grundtonalyse erläutert.
- Ein Wellenformzeitsignal x(n) als Eingangssignal wird durch eine geeignete Zeitfensterfunktion, z. B. ein Hamming-Fenster, gefenstert, und es wird ein LPC-Koeffizient extrahiert. Der LPC-Koeffizient wird in einen LSP-Parameter umgewandelt und dann quantisiert und interpoliert. Der quantisierte LSP-Parameter wird wieder zu einem LPC-Koeffizienten gemacht, der ein inverses LPC-Filter bildet. Das Eingangswellenformzeitsignal x(n) wird durch dieses inverse LPC-Filter normiert oder geglättet, wodurch ein LPC-Rest r&sub1;(n) gewonnen wird. Wenn hier die Größe des Rahmens mit N angenommen wird, wird der LPC-Rest r.1'(n) eines vorhergehenden Rahmens, d. h. eines um eine Rahmenlänge zurückliegenden Rahmens, dazu benutzt, den Definitionsbereich von r&sub1;(n) von 0 ≤ n < N auf -N ≤ n < N zu erweitern. In dem Bereich von n < 0 ist folgendes definiert
- r&sub1;(n) = r&sub1;'(n+N).
- Dieses r&sub1;(n) wird für die Tonhöhenberechnung benutzt. Eine Grundtonverstärkung kann eine Analyse für einen einzelnen Punkt eines Grundtons sein. Im vorliegenden Beispiel werden jedoch drei Grundtonverstärkungen g&sub0;, g&sub1; und g&sub1; für das Grundtonzentrum p und zwei Punkte p±1 vor und nach dem Zentrum berechnet, um die Genauigkeit ddes Grundtons (Periodizität, d. h. der sog. Grundtonabstand) und der Grundtonverstärkung zu verbessern
- (4) Φ(k) = (r&sub1;(n) - g&submin;&sub1;r&sub1;(n-k-1) - g&sub0;r&sub1;(n-k) - g&sub1;r&sub1;(n-k+1))²
- Der Wert von k, der den obigen Ausdruck minimiert, wird als Spitzenwert p angenommen, und drei Grundtonverstärkungen an den drei Punkten mit dem Zentrum p bilden einen Grundtonverstärkungsvektor g = (g&submin;&sub1;, g&sub0;, g&sub1;).
- Dieser Spitzenwert: p und der Grundtonverstärkungsvektor g werden quantisiert, um einen quantisierten Grundtonverstärkungsvektor Q(g) zu gewinnen, der zur Bildung eines inversen Tonhöhenfilters benutzt wird, das seinerseits zum Normieren des LPC-Restes r&sub1;(n) benutzt wird, um r&sub2;(n) zu gewinnen. Dieser LPC-Rest r&sub2;(n), der normiert wurde, wird der T/F-Wandlerschaltung 102 zugeführt.
- In dem Schritt S2 wird der LPC-Rest r&sub2;(n), der eine Zeitachsenwellenform bildet, einer T/F- (Zeit-/Frequenzachsen)-Wandlung unterzogen. Für diese T/F-Wandlung wird z. B. eine modifizierte diskrete Cosinustransformation (MDCT) benutzt.
- In dem Schritt S3, der der Bitzuteilungsschaltung 104 in Fig. 1 entspricht, wird die Bitzuteilung berechnet. Wie oben beschrieben wurde, wird diese Bitzuteilung z. B. nach einem Maskiermodell des Gehörsinns oder nach einem Parameter berechnet, wie dem bei der oben erwähnten Normierung (Glättung) gewonnenen LPC-Koeffizienten und dem aus dem Koeffizienten y berechneten Bitzuteilungs-Festlegungsindex p(i). Darüber hinaus wird in dem Schritt S3 auch ein Gewicht w(i) für die Gewichtung des Gehörsinns während der vektoriellen Quantisierung (VQ) in einem späteren Stadium berechnet.
- Zunächst wird der Bitzuteilungs-Festlegungsindex p(i) erläutert.
- Der quantisierte LPC-Koeffizient Q(αi) (worin i z. B. mit 1 ≤ i ≤ 10 angenommen wird), der bei der Normierung (Glättung) gewonnen wurde, die Tonhöhe p und der quantisierte Grundtonverstärkungsvektor Q(g) werden zur Bildung eines LPC-Synthesefilters und eines Tonhöhen- Synthesefilters benutzt. Die Übertragungsfunktionen H(z) bzw. P(z) dieser Filter können folgendermaßen ausgedrückt werden
- Darüber hinaus wird die Frequenzantwort h(i) und pch(i) der Funktionen H(z) und P(z) gewonnen. Hier repräsentiert i entsprechende Punkte auf der Frequenzachse. Außerdem wird der Koeffizient der oben erwähnten T/F-Wandlung für jede kritische Bandbreite bearbeitet, oder die kritische Bandbreite wird weiter unterteilt in Blöcke. Die Tonhöhe Pb(j) des j-ten Blocks wird ausgelesen und quantisiert, so daß der quantisierte Wert Q(Pb(j)) als Normierungsfaktor dieses Blocks benutzt wird. Infolgedessen kann der Bitzuteilungs-Festlegungsindex p(i), der ein genereller Normierungsfaktor ist, auf der Frequenzachse folgendermaßen ausgedrückt werden.
- p(i) = h(i)pch(i)Q(Pb(j)) (i E Block j).
- Als nächstes werden für die Gewichtung zuerst LPC-Filter und Filter für die Gewichtung des Gehörsinns für die Tonhöhe gebildet. Diese Filter haben Übertragungsfunktionen W&sub1;(z) und W&sub2;(z), die z. B. folgendermaßen ausgedrückt werden können:
- Die Konstanten γ&sub1;, γ&sub2; und 1 können z. B. sein γ&sub1; = 0,8, γ&sub2; = 0,5 und 1 = 0,7. Die Konstanten sind jedoch nicht auf diese Werte beschränkt.
- Das oben erwähnte Gewicht w(i) kann mit Hilfe der Frequenzantworten w&sub1;(i) und w&sub2;(i) der Funktionen W&sub1;(z) und W&sub2;(z) und der aus Q(Pb(j)) abgeleiteten Funktion Q(P'b(j)) berechnet werden.
- w(i) = w&sub1;(i) w&sub2;(i)Q(P'b(j)) (i Block j).
- Als Q(P'b(j)) kann z. B. der folgende Ausdruck benutzt werden, ist jedoch nicht hierauf beschränkt.
- A(P'b(j)) = (Q(Pb(j)))r (0 < r < 1).
- Als nächstes werden anhand von Fig. 3 die skalare Quantisierung und die vektorielle Quantisierung erläutert, die in dem Schritt S4 von Fig. 2 oder in der (SQ- und VQ)-Quantisierungsschaltung 103 von Fig. 1 ausgeführt werden.
- In Fig. 3 wird einem Eingang 21 ein Koeffizientenvektor y = (y(0), y(1), ... u(N-1))t zugeführt, der αus N Koeffizienten besteht, die der T/F-Wandlung unterzogen wurden. Es sei hier angenommen, daß ISQ eine Menge von Indizes der Koeffizienten ist, die der skalaren Quantisierung (SQ) zu unterwerfen sind, und daß IVQ eine Menge von Indizes der Koeffizienten ist, die der vektoriellen Quantisierung (VQ) zu unterwerfen sind. Das heißt, die Indizes aller Koeffizienten, die der Quantisierung zu unterwerfen sind, sind aufgeteilt in ISQ und IVQ.
- [0 ... N-1] = ISQ IVQ, ISQ IVQ = 0
- Die Quantisierungsarten SQ und VQ werden, wie oben beschrieben, mit Hilfe eines SQ/VQ- Wählers 22 nach Maßgabe der Bitzuteilung ba'(i) ausgewählt.
- Zunächst wird eine skalare Quantisierung für i ISQ durchgeführt. Es können ein einziges Codebuch oder mehrere Codebücher für die skalare Quantisierung vorgesehen sein. Das vorliegende Ausführungsbeispiel benutzt Codebücher S2, S3 und S4 mit den Quantisierungsbitzahlen 2, 3 bzw. 4. Ein SQ-Codebuch-Wähler 24 wählt in Abhängigkeit von der Bitzuteilung ba'(i) das zu benutzende Codebuch aus. Durch Verwendung von j = SQindex, das y(i) - Sba'(i)(j) ² in dem Bereich 0 ≤ j < 2ba'(j) minimiert, wird ein Ausgangssignal Q(y(j)) gewonnen, das durch einen Block für skalare Quantisierung (SQ-Block) 25 quantisiert wurde.
- y(i) = Sba'(i)(SQindex)
- Die Ergebnisse der skalaren Quantisierung (SQ) werden gesammelt, um einen N-dimensionalen Vektor ySQ zu erzeugen. Das i-te Element ySQ(i) dieses Vektors (mit 0 ≤ i < N) ist
- Als nächstes wird die vektorielle Quantisierung (VQ) erläutert. Die Zahl der Elemente der oben erwähnten Indexmenge IVQ variiert von Rahmen zu Rahmen. Falls diese Elemente gesammelt werden, um sie vektoriell zu quantisieren, ist die Einstellung der Zahl der Dimensionen kompliziert und das benötigte Codebuch ändert sich in Abhängigkeit von der Zahl der benötigten Dimensionen. In dem vorliegenden Ausführungsbeispiel werden alle N der Quantisierung mit einer festen Dimension unterzogen. Für diejenigen Koeffizienten, die bereits der skalaren Quantisierung unterzogen wurden, wird jedoch das Gewicht der vektoriellen Quantisierung auf 0 gesetzt.
- Das heißt, zunächst werden N Koeffizienten in M-dimensionale Teilvektoren zerlegt. Die Koeffizienten werden, z. B. mit einem unteren Band beginnend, einfach für jeweils M Dimensionen unterteilt. Wenn die N/M Teilvektoren gewonnen sind, wird für den k-ten Teilvektor
- vk = (y(kM), y(kM+1), ... y(kM+M-1)t
- der zunächst gewonnene Gewichtsvektor ebenfalls unterteilt, um wk zu erzeugen. Das j-te Element wk(j) von wk ist folgendermaßen definiert:
- In der gleichen Weise wie für den oben beschriebenen SQ-Fall, ist es möglich, ein einziges VQ-Codebuch oder mehrere VQ-Codebücher zu verwenden und von einem auf das andere umzuschalten. Zunächst wird die gesamte Bitzuteilung Byk des Teilvektors yk durch den VQ- Bitzuteilungs-Rechner 23 in Fig. 3 berechnet. Es kann z. B. eine durchschnittliche Bitzuteilung verwendet werden, wie sie im folgenden angegeben ist, die Bitzuteilung ist jedoch nicht hierauf beschränkt.
- Wenn dieses Byk gegeben ist, wird ein Abbildungsgesetz bestimmt, welches der L Codebüchern (C&sub0;, C&sub1;, ... CL-1) benutzt werden soll. Diesem Abbildungsgesetz entsprechend wird ein Codebuch Cr ausgewählt, das für den Teilvektor yk benutzt werden soll. Diese Codebuch- Auswahl wird in einem VQ-Codebuch-Wähler 26 in Fig. 3 ausgeführt.
- Wenn für das ausgewählte Codebuch Cr die Bitzuteilung mit Br angenommen wird, wird ein solcher Wert m = VQindex gesucht, der Wk(Yk-Cr(m)) ² in dem Bereich 0 < m < 2Br minimiert. Somit läßt sich das aus dem Vektorquantisierungsblock (VQ-Block) 27 über einen Multiplizierer 28 gewonnene quantisierte Ausgangssignal Q(yk) folgendermaßen ausdrücken.
- (10) Q(yk) = ACr(VQindex)
- worin
- Wk = diag(wk)
- Cr(I) der I-te Elementvektor von Cr ist
- Der Multiplizierer 28 multipliziert die Matrix A dieses Ausdrucks für das Ausgangssignal des VQ-Blocks 27.
- Die M-dimensionalen quaritisierten Ausgangssignale Q(yk) (0 ≤ k ≤ N/M), die durch die vektorielle Quantisierung gewonnen wurden, werden, als Gegenstück zu der oben erwähnten Teilung, miteinander verbunden, um einen N-dimensionalen Vektor Q(y)VQ zu erzeugen, der in einem Addierer 29 zu dem quantisierten skalaren Ausgangssignal Q (y)SQ addiert wird, um so das endgültige Ausgangssignal Q(y) des Quantisierungsblocks für die N Koeffizienten y zu gewinnen:
- Q(y) = Q(y)SQ + Q(y)VQ
- Es sei hier darauf hingewiesen, daß es durch die Übertragung eines Parameters, der das Gewicht bei der Quantisierung festlegt, möglich ist, eine Operation zu restaurieren, die mit einem Codierer identisch ist. Das heißt, es ist allein aus der oben erwähnten Bitzuteilung ba'(i) möglich, den der SQ zu unterziehenden Koeffizientenindex (Positionsinformation) und das bei der SQ und VQ zu benutzende Codebuch zu bestimmen. Der Decodierer kann das Codierer-Ausgangssignal also ohne irgendwelche Nebeninformationen interpretieren und invers quantisieren.
- Als nächstes wird anhand von Fig. 4 als spezielleres Beispiel für die Konfiguration des oben erwähnten Ausführungsbeispiels das Gerät für die Audiosignalcodierung erläutert.
- In Fig. 4 wird einem Eingang 10 ein digitales Audiosignal zugeführt, das durch A/D-Wandlung eines sog. Breitband-Audiosignals von z. B. 0 bis 8 kHz mit der Abtastfrequenz Fs = 16 kHz gewonnen wurde. Dieses Eingangssignal wird einem LPC-Analyse-Quantisierungsblock 30 zugeführt, in dem es einer Hamming-Fensterung mit einer Analyselänge von z. B. einem Rahmen für 512 Abtastproben unterzogen wird, um einen LPC-Koeffizienten mit etwa 10 Dimensionen zu berechnen, d. h. den Parameter α, der dann einem inversen LPC-Filter 11 zugeführt wird, um einen LPC-Rest zu gewinnen. Für diese LPC-Analyse überlappen einige der 512 Abtastproben eines Rahmens, der eine Analyseeinheit bildet, mit dem nächsten Block. In dem LPC-Analyse-Quantisierungsblock 30 wird der A-Parameter, der den LPC- Koeffizienten bildet, in einen zu quantisierenden LSP-Parameter (LSP = lineares Spektralpaar) umgewandelt und dann übertragen.
- Der Parameter α aus der LPC-Analyseschaltung 32 wird zu einer α/LSP-Wandlerschaltung 33 übertragen, in der er in einen LSP-Parameter (LSP = lineares Spektralpaar) umgewandelt wird. Dies bedeutet, daß die als Filterkoeffizienten vom Direkttyp gewonnenen Parameter α z. B. in 10 Parameter, d. h. fünf Paare von LSP-Parametern, umgewandelt werden. Die Umwandlung erfolgt z. B. nach der Newton-Raphson-Methode oder dgl.. Diese Umwandlung in LSP-Parameter erfolgt deshalb, weil dadurch bessere Interpolationseigenschaften erreicht werden können, als sie der Parameter α bietet.
- Der LSP-Parameter aus der α/LSP-Wandlerschaltung 33 wird in einem LSP-Quantisierer 34 einer vektoriellen Quantisierung oder Matrixquantisierung unterzogen. Es ist hier möglich, die Differenz zwischen Rahmen zu bestimmen, bevor die vektorielle Quantisierung durchgeführt wird, oder mehrere Rahmen für die Matrixquantisierung zusammenzufassen.
- Das quantisierte Ausgangssignal des LSP-Quantisierers 34, d. h. der LSP-Vektor-Quantisierungsindex, wird an einem Ausgang 31 abgenommen, und der LSP-Vektor oder das Ausgangssignal der inversen Quantisierung wird einer LSP-Interpolationsschaltung 36 und einer LSP/α-Wandlerschaltung 38 zugeführt.
- Die LSP-Interpolationsschaltung 36 interpoliert ein Paar von LSP-Vektoren eines laufenden Rahmens und eines vorhergehenden Rahmens, die aus der vektoriellen Quantisierung für jeden Rahmen in dem LSP-Quantisierer 34 gewonnen wurden. Diese Interpolation wird durchgeführt, um eine Rate zu gewinnen, die weiter unten erläutert wird. Im vorliegenden Beispiel wird die Interpolation für die acht mal höhere Rate durchgeführt.
- Für die inverse Filterung des Eingangstonsignals unter Verwendung des so interpolierten LSP-Vektors wird der LSP-Parameter einer LSP/α-Wandlerschaltung 37 zugeführt, die ihn in einen Parameter α umwandelt, der einen Koeffizienten eines Filters vom Direkttyp mit etwa 10 Dimensionen bildet. Das Ausgangssignal der LSP/α-Wandlerschaltung 37 wird einer inversen LPC-Filterschaltung 11 zugeführt, um den oben erwähnten LPC-Rest zu gewinnen. In dem inversen LPC-Filter 11 findet eine inverse Filterung mit dem Parameter α statt, der mit der 8-fachen Rate aktualisiert wird, um ein glattes Ausgangssignal zu gewinnen.
- Darüber hinaus liefert der LSP-Quantisierer 34 einen LSP-Koeffizienten mit der mit 1 multiplizierten Rate an die LSP/α-Wandlerschaltung 38, die ihn in einen Parameter α umwandelt, der einer Bitzuteilungs-Berechnungsschaltung 18 für die Durchführung der oben erwähnten Bitzuteilung zugeführt wird. Die Bitzuteilungs-Berechnungsschaltung 18 berechnet neben dem oben erwähnten Zuteilungsbit ba'(i) das für die Quantisierung des MDCT-Koeffizienten benutzte Gewicht w(i), wie dies oben beschrieben wurde.
- Das Ausgangssignal des inversen LPC-Filters 11 wird einem inversen Grundtonfilter 12 und einer Grundtonanalyseschaltung 15 zugeführt, die für eine Grundton-Prädiktion benutzt werden, die eine Langzeit-Prädiktion darstellt.
- Als nächstes wird die Langzeit-Prädiktion erläutert. Die Langzeit-Prädiktion wird durchgeführt, indem eine Wellenform, die auf der Zeitachse um eine Grundton-Periodizität oder einen durch die Grundtonanalyse gewonnenen Grundtonabstand verschoben ist, von der originalen Wellenform subtrahiert wird, um einen Grundton-Prädiktions-Restwert zu gewinnen. Im vorliegenden Beispiel erfolgt dies durch Dreipunkt-Prädiktion. Es ist zu beachten, daß der Grundtonabstand die Anzahl von Abtastproben ist, die einer Grundton-Periodizität der abgetasteten Zeitachsendaten entspricht.
- In der Grundtonanalyseschaltung 15 wird für jeden einzelnen Rahmen jeweils eine Grundtonanalyse durchgeführt, d. h. die Analyselänge beträgt ein Rahmen. Von den Ergebnissen der Grundtonanalyse wird ein Grundtonabstand an das inverse Grundtonfilter 12 und an einen Ausgang 42 geliefert, während einer Grundtonverstärkungs-VQ-Schaltung 16 eine Grundtonverstärkung zugeführt wird. In der Grundtonverstärkungs-VQ-Schaltung 16 werden der Grundton-Verstärkungen an den drei Punkten, die der erwähnten Dreipunkt-Prädiktion entsprechen, vektoriell quantisiert, und der Ausgang 43 liefert einen Codebuch-Index, so daß dem inversen Grundtonfilter 12 ein Vektor eines repräsentativen Werts oder ein inverses Quantisierungsausgangssignal zugeführt wird. Das inverse Grundtonfilter 12 gibt einen Grundton-Prädiktions-Restwert der Dreipunkt-Grundton-Prädiktion aus, der den Ergebnissen der Grundtonanalyse entspricht. Dieser Grundton-Prädiktions-Restwert wird einer orthogonalen Wandlereinrichtung z. B. einer MDCT-Schaltung 13, zugeführt, in der er der MDCT- Verarbeitung unterzogen wird, bevor er von der (SQ- und VQ)-Quantisierungsschaltung 20 der skalaren Quantisierung und der vektoriellen Quantisierung mit einer dem Gehörsinn entsprechenden Gewichtung unterzogen wird. Eine Schaltung 17 zum Extrahieren und Quantisieren des Spitzenwerts eines kritischen Bandes, wie sie oben beschrieben wurde, für den Koeffizienten, der der MDCT-Verarbeitung, d. h. einer T/F-Wandlung, einer Unterteilung für jede kritische Bandbreite oder einer weiteren Unterteilung der kritischen Bandbreite in Blöcke unterzogen wurde, erzeugt einen Spitzenwert für jeden zu quantisierenden Block. Dieser quantisierte Wert wird als Normierungsfaktor des Blocks der Bitzuteilungs-Berechnungsschaltung 18 zugeführt und an einem Ausgang 44 ausgegeben.
- Wie oben beschrieben wurde, erfolgt in der (SQ- und VQ)-Quantisierungsschaltung 20 eine Steuerung, durch die in Abhängigkeit von der Bitzuteilung ba'(i) aus der Bitzuteilungs-Berechnungsschaltung 18 entweder skalare oder vektoriellen Quantisierung ausgewählt wird, so daß ein Teil der MDCT-Koeffizienten skalar quantisiert wird und die übrigen Koeffizienten einer vektoriellen Quantisierung mit einer dem Gehörsinn entsprechender Gewichtung durch das oben erwähnte VQ-Gewicht w(i) unterzogen werden.
- In dem oben beschriebenen speziellen Beispiel wird die vektorielle Quantisierung (VQ) übrigens für Koeffizienten mit Ausnahme derjenigen Koeffizienten durchgeführt, die der skalaren Quantisierung (SQ) unterzogen wurden (in der Praxis wird das Gewicht für die Koeffizienten, die der SQ unterzogen wurden, auf Null gesetzt). Es ist auch möglich, die VQ gleichzeitig für den Quantisierungsfehler der Koeffizienten, die der SQ unterzogen wurden, und der Koeffizienten, die der VQ unterzogen wurden, durchzuführen.
- Wenn z. B. die Koeffizienten, die der skalaren Quantisierung (SQ) unterzogen wurden, als q(Y)SQ angenommen werden, wird ein Vektor u erzeugt, der die folgende Gleichung befriedigt:
- u = y - q(y)SQ
- Dieser Vektor u wird unterteilt in Teilvektoren uk (= uk(0), uk(1), ... uk(M-1)). Das heißt
- uk(j) = y(kM+j) - Q(y(kM-j))so.
- Nach dieser Teilung wird die Quantisierung nach der oben erwähnten VQ-Prozedur durchgeführt. Bei dieser VQ kann das Gewicht wk(j) einfach definiert werden als
- wk(j) = w(kM+j).
- Die vektorielle Quantisierung wird mit diesem Gewicht durchgeführt, und aus dem Quantisierungsergebnis Q(u) kann das endgültige Resultat Q(y) folgendermaßen gewonnen werden
- Q(y) = Q(u) + Q(y)VQ
- In der obigen Erläuterung wird die skalare Quantisierung vor der vektoriellen Quantisierung durchgeführt. Es ist jedoch auch möglich, zunächst die vektorielle Quantisierung für alle Koeffizienten auf der Frequenzachse und dann die skalare Quantisierung für diejenigen Koeffizienten auszuführen, die große Quantisierungsfehler haben.
- Das heißt, zunächst wird z. B. die vektorielle Quantisierung für alle Teilvektoren yk durchgeführt, die durch Teilen der Koeffizienten y auf der Frequenzachse gewonnen werden, die der T/F-Wandlung unterzogen worden sind. Die vektorielle Quantisierung wird hier mit dem Gewicht wk(j) durchgeführt, das folgendermaßen definiert ist
- wk(j) = w(kM+j).
- Die Ergebnisse dieser Quantisierung werden miteinander verbunden, um Q(y)VQ zu erzeugen, aus dem der Vektor des Quantisierungsfehlers folgendermaßen gewonnen wird.
- e = y - Q(y)VQ
- Aus den Elementen e wird auf irgendeine Weise, z. B. durch Sortieren der Fehlerwerte, eine vorbestimmte Anzahl von Elementen ausgewählt, die einen größeren Fehler haben. Alternativ werden aus dem Gewicht w Fehler ausgewählt, die einer vorbestimmten Zahl entsprechen, die einen größeren Wert hat. Bei der skalaren Quantisierung werden die ausgewählten Fehler selbst quantisiert.
- Bei diesem Verfahren muß jedoch separat eine Nebeninformation übertragen werden, die angibt, welche Koeffizienten skalar quantisiert wurden.
- Es ist zu beachten, daß die vorliegende Erfindung nicht auf das oben erwähnte Ausführungsbeispiel beschränkt ist. Es ist z. B. auch möglich, die vektorielle Quantisierung nach dem Verschachteln und Zerlegen eines zu quantisierenden Vektors in mehrere Teilvektoren durchzuführen. Das heißt, die Koeffizienten auf der Frequenzachse, die der vektoriellen Quantisierung unterzogen werden sollen, werden nacheinander in mehrere Teilvektoren zerlegt, beginnend mil: einem unteren Band, und es besteht nicht die Gefahr, daß Koeffizienten innerhalb eines Teilvektors in der Nähe eines vorbestimmten Bandes konzentriert sind.
- Wie die obige Beschreibung zeigt, wird erfindungsgemäß ein Eingangssignal einer Zeit-/Frequenzachsen-Wandlung unterzogen, um Koeffizienten auf der Frequenzachse zu gewinnen. Diese Koeffizienten werden einer skalaren und einer vektoriellen Quantisierung unterzogen, wobei die skalare und die vektorielle Quantisierung in Abhängigkeit von der Bitzuteilung der Koeffizienten auf der Frequenzachse gesteuert wird. Die vektorielle Quantisierung ermöglicht eine Reduzierung der Rate, während diejenigen Koeffizienten, bei denen die vektorielle Quantisierung einen Quantisierungsfehler verursachen würde, skalar quantisiert werden, so daß eine Beeinträchtigung dieser Koeffizienten vermieden wird. Darüber hinaus werden die skalare Quantisierung und die vektorielle Quantisierung in Abhängigkeit von der Bitzuteilung gesteuert, so daß keine separate Nebeninformation übertragen werden muß.
- Die Koeffizienten auf der Frequenzachse, bei denen die Zahl der Zuteilungsbits gleich oder größer ist als ein vorbestimmter Schwellwert, werden skalar quantisiert. Durch die skalare Quantisierung in einem isolierten Spektrumabschnitt, in dem die vektorielle Quantisierung eine Signalbeeinträchtigung verursacht, können Quantisierungsfehler reduziert und die Signalqualität verbessert werden.
- Bei diesem Prozeß wird für die skalar quantisierten Koeffizienten das Gewicht auf Null gesetzt, so daß alle Koeffizienten vektoriell quantisiert werden. Verglichen mit dem Fall, bei dem vektorielle Quantisierung durchgeführt wird, indem andere Koeffizienten, als diejenigen, die der skalaren Quantisierung unterzogen werden, herausgenommen werden, macht es die Erfindung möglich, die Zahl der Dimensionen der vektoriellen Quantisierung zu fixieren, so daß es nicht notwendig ist, die Dimensionszahl bei der vektoriellen Quantisierung einzustellen oder ein der Dimension entsprechendes Codebuch auszuwählen, wodurch die Verarbeitung und die Systemkonfiguration vereinfacht werden. Dies kann auch dadurch realisiert werden, daß als Eingangsgröße für die vektorielle Quantisierung die Quantisierungsfehler der Koeffizienten benutzt werden, die skalar quantisiert wurden.
- Durch das Zerlegen eines Eingangsvektors in mehrere Teilvektoren vor der vektoriellen Quantisierung ist es darüber hinaus möglich, die Codebuchgröße für die vektorielle Quantisierung zu verringern, so daß die Belastung reduziert werden kann.
- Ferner wird ein Zeitachsensignal, das zuvor durch Merkmalextraktion normiert wurde, der erwähnten Zeit-/Frequenzachsen-Wandlung unterzogen, und ein Parameter der Normierung wird für die Berechnung der Bitzuteilung benutzt, so daß der Normierungsparameter dazu verwendet werden kann, die Auswahlsteuerung zwischen der skalaren Quantisierung (SQ) und vektorielle Quantisierung (VQ) eindeutig zu definieren. Es ist dann nicht notwendig, eine Nebeninformation speziell für die SQ/VQ-Steuerung zu übertragen, so daß eine Vergrößerung der Übertragungsbitrate verhindert wird.
Claims (10)
1. Verfahren zur Signalcodierung mit
einem Verfahrensschritt, in welchem ein Eingangssignal einer
Zeitachsen/Frequenzachsen-Wandlung unterzogen wird, und
einem Quantisierungschritt, in welchem in Abhängigkeit von der Bitzuteilung für einen
durch die genannte Zeitachsen/Frequenzachsen-Wandlung gewonnenen Koeffizienten auf
der Frequenzachse eine skalare Quantisierung und eine Vektorquantisierung gesteuert und
die Quantisierung dieses Koeffizienten durchgeführt wird,
dadurch gekennzeichnet,
daß in dem Quantisierungschritt für die Koeffizienten, die durch skalare Quantisierung
quantisiert werden, eine Vektorquantisierung mit dem Gewicht Null durchgeführt wird.
2. Verfahren zur Signalcodierung nach Anspruch 1, bei dem in dem Quantisierungschritt für
einen Koeffizienten, dem bei der Bitzuteilung eine Bitzahl zugeteilt wird, die gleich oder
größer ist als ein vorbestimmter Schwellwert, eine skalare Quantisierung durchgeführt wird.
3. Verfahren zur Signalcodierung nach Anspruch 2, bei dem in dem Quantisierungschritt für
einen Koeffizienten, der durch die skalare Quantisierung quantisiert wurde, ein
Quantisierungsfehler des Koeffizienten als Eingangsgröße für eine Vektorquantisierung benutzt wird
und für die Ausgabe die Ausgangsgröße der Vektorquantisierung zu der Ausgangsgröße der
skalaren Quantisierung addiert wird.
4. Verfahren zur Signalcodierung nach einem der vorhergehenden Ansprüche, bei dem die
Vektorquantisierung durchgeführt wird, indem ein Eingangsvektor in mehrere Teilvektoren
unterteilt wird und in Abhängigkeit von der Bitzuteilung für die betreffenden Teilvektoren
zwischen mehreren Codebüchern umgeschaltet wird.
5. Verfahren zur Signalcodierung nach einem der vorhergehenden Ansprüche, bei dem ein
im voraus durch Merkmalsextraktion normiertes Zeitachsensignal als Eingangssignal für die
Zeitachsen/Frequenzachsen-Wandlung benutzt wird und für die Normierung ein Parameter
für die Berechnung der Bitzuteilung verwendet wird.
6. Verfahren zur Signalcodierung nach einem der vorhergehenden Ansprüche, bei dem die
Vektorquantisierung an einer Mehrzahl von Teilvektoren durchgeführt wird, die durch
Verschachteln eines Eingangsvektors gewonnen werden.
7. Gerät zur Signalcodierung
mit einer Zeitachsen/Frequenzachsen-Wandlereinrichtung für die
Zeitachsen/Frequenzachsen-Wandlung eines Eingangssignals
mit einer Bitzuteilungseinrichtung für die Gewinnung einer Bitzuteilung für einen durch
die genannte Zeitachsen/Frequenzachsen-Wandlung gewonnenen Koeffizienten auf der
Frequenzachse
und mit einer Quantisierungseinrichtung für die Quantisierung des Koeffizienten,
während in Abhängigkeit von der Bitzuteilung eine skalare Quantisierung und eine
Vektorquantisierung gesteuert wird,
dadurch gekennzeichnet,
daß die Quantisierungseinrichtung für die durch skalare Quantisierung quantisierten
Koeffizienten eine Vektorquantisierung mit dem Gewicht Null durchführt.
8. Gerät zur Signalcodierung nach Anspruch 7, bei dem die Quantisierungseinrichtung die
skalare Quantisierung für einen Koeffizienten durchführt, dem bei der Bitzuteilung eine
Bitzahl zugeteilt wird, die gleich oder größer ist als ein vorbestimmter Schwellwert.
9. Gerät zur Signalcodierung nach Anspruch 8, bei dem die Quantisierungseinrichtung für
den durch die skalare Quantisierung quantisierten Koeffizienten einen Quantisierungsfehler
des Koeffizienten als Eingangsgröße für eine Vektorquantisierung benutzt und für die
Ausgabe die Ausgangsgröße der Vektorquantisierung zu der Ausgangsgröße der skalaren
Quantisierung addiert wird.
10. Gerät zur Signalcodierung nach einem der Ansprüche 7, 8 oder 9,
wobei das Gerät ferner eine Normierungseinrichtung aufweist, um der
Zeitachsen/Frequenzachsen-Wandlereinrichtung ein durch Merkmalsextraktion normiertes Zeitachsensignal
zuzuführen,
und wobei die Bitzuteilungseinrichtung die Bitzuteilung unter Verwendung des
Normierungsparameters der Normierungseinrichtung berechnet.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07861697A JP3684751B2 (ja) | 1997-03-28 | 1997-03-28 | 信号符号化方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69801536D1 DE69801536D1 (de) | 2001-10-11 |
DE69801536T2 true DE69801536T2 (de) | 2002-05-08 |
Family
ID=13666830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69801536T Expired - Fee Related DE69801536T2 (de) | 1997-03-28 | 1998-03-26 | Vorrichtung und Verfahren zur Signalcodierung |
Country Status (9)
Country | Link |
---|---|
US (1) | US6034632A (de) |
EP (1) | EP0868031B1 (de) |
JP (1) | JP3684751B2 (de) |
KR (1) | KR100513815B1 (de) |
CN (1) | CN1124588C (de) |
AU (1) | AU5969798A (de) |
DE (1) | DE69801536T2 (de) |
SG (1) | SG68656A1 (de) |
TW (1) | TW403890B (de) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0966109B1 (de) * | 1998-06-15 | 2005-04-27 | Matsushita Electric Industrial Co., Ltd. | Audiokodierungsmethode und Audiokodierungsvorrichtung |
US6278385B1 (en) * | 1999-02-01 | 2001-08-21 | Yamaha Corporation | Vector quantizer and vector quantization method |
JP2003044098A (ja) * | 2001-07-26 | 2003-02-14 | Nec Corp | 音声帯域拡張装置及び音声帯域拡張方法 |
EP1513137A1 (de) * | 2003-08-22 | 2005-03-09 | MicronasNIT LCC, Novi Sad Institute of Information Technologies | Sprachverarbeitungssystem und -verfahren mit Multipuls-Anregung |
JP2008170488A (ja) * | 2007-01-06 | 2008-07-24 | Yamaha Corp | 波形圧縮装置、波形伸長装置、プログラムおよび圧縮データの生産方法 |
ATE500588T1 (de) * | 2008-01-04 | 2011-03-15 | Dolby Sweden Ab | Audiokodierer und -dekodierer |
CN101521010B (zh) * | 2008-02-29 | 2011-10-05 | 华为技术有限公司 | 一种音频信号的编解码方法和装置 |
US9373332B2 (en) * | 2010-12-14 | 2016-06-21 | Panasonic Intellectual Property Corporation Of America | Coding device, decoding device, and methods thereof |
CN108892505A (zh) * | 2016-04-20 | 2018-11-27 | 天津中天精科科技有限公司 | 一种耐高温陶瓷刀具及其制备方法 |
US20190051286A1 (en) * | 2017-08-14 | 2019-02-14 | Microsoft Technology Licensing, Llc | Normalization of high band signals in network telephony communications |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63268387A (ja) * | 1987-04-27 | 1988-11-07 | Toshiba Corp | 直交変換ベクトル、スカラ−混合量子化方式 |
US5136374A (en) * | 1990-04-03 | 1992-08-04 | At&T Bell Laboratories | Geometric vector quantization |
US5128757A (en) * | 1990-06-18 | 1992-07-07 | Zenith Electronics Corporation | Video transmission system using adaptive sub-band coding |
CA2088082C (en) * | 1992-02-07 | 1999-01-19 | John Hartung | Dynamic bit allocation for three-dimensional subband video coding |
JP3273455B2 (ja) * | 1994-10-07 | 2002-04-08 | 日本電信電話株式会社 | ベクトル量子化方法及びその復号化器 |
GB9422738D0 (en) * | 1994-11-10 | 1995-01-04 | Univ Western Ontario | Context-based, adaptive, progressive, lossless compression of still continuous -tone images |
-
1997
- 1997-03-28 JP JP07861697A patent/JP3684751B2/ja not_active Expired - Fee Related
-
1998
- 1998-03-24 TW TW087104406A patent/TW403890B/zh not_active IP Right Cessation
- 1998-03-25 SG SG1998000627A patent/SG68656A1/en unknown
- 1998-03-26 KR KR10-1998-0010611A patent/KR100513815B1/ko not_active IP Right Cessation
- 1998-03-26 EP EP98302331A patent/EP0868031B1/de not_active Expired - Lifetime
- 1998-03-26 DE DE69801536T patent/DE69801536T2/de not_active Expired - Fee Related
- 1998-03-26 US US09/048,077 patent/US6034632A/en not_active Expired - Fee Related
- 1998-03-27 AU AU59697/98A patent/AU5969798A/en not_active Abandoned
- 1998-03-28 CN CN98109291A patent/CN1124588C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0868031A1 (de) | 1998-09-30 |
KR19980080742A (ko) | 1998-11-25 |
CN1197975A (zh) | 1998-11-04 |
CN1124588C (zh) | 2003-10-15 |
JP3684751B2 (ja) | 2005-08-17 |
JPH10268897A (ja) | 1998-10-09 |
KR100513815B1 (ko) | 2005-12-06 |
AU5969798A (en) | 1998-10-01 |
EP0868031B1 (de) | 2001-09-05 |
DE69801536D1 (de) | 2001-10-11 |
US6034632A (en) | 2000-03-07 |
TW403890B (en) | 2000-09-01 |
SG68656A1 (en) | 1999-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69518452T2 (de) | Verfahren für die Transformationskodierung akustischer Signale | |
DE19811039B4 (de) | Verfahren und Vorrichtungen zum Codieren und Decodieren von Audiosignalen | |
DE69915400T2 (de) | Vorrichtung zur Kodierung und Dekodierung von Audiosignalen | |
DE69319494T2 (de) | Kodierungsvorrichtung für Audiosignalen und Verfahren dazu | |
EP2022043B1 (de) | Informationssignalcodierung | |
DE69401514T2 (de) | Vom rechenaufwand her effiziente adaptive bitzuteilung für kodierverfahren und kodiereinrichtung | |
DE69529356T2 (de) | Wellenforminterpolation mittels Zerlegung in Rauschen und periodische Signalanteile | |
DE69810361T2 (de) | Verfahren und Vorrichtung zur mehrkanaligen akustischen Signalkodierung und -dekodierung | |
DE69529672T2 (de) | System zur sprachkodierung | |
DE69521164T2 (de) | System zum Kodieren und Dekodieren von Signalen | |
DE69029232T2 (de) | System und Methode zur Sprachkodierung | |
DE69924431T2 (de) | Vorrichtung und Verfahren zur dynamischen Bitverteilung für Audiokodierung | |
DE69317958T2 (de) | Kodierer von Audiosignalen mit niedriger Verzögerung, unter Verwendung von Analyse-durch-Synthese-Techniken | |
DE69621393T2 (de) | Quantisierung von Sprachsignalen in prädiktiven Kodiersystemen unter Verwendung von Modellen menschlichen Hörens | |
DE69023411T2 (de) | Vektorquantizierungskodierer und Dekodierer. | |
DE4320990A1 (de) | Verfahren zur Redundanzreduktion | |
EP1397799B1 (de) | Verfahren und vorrichtung zum verarbeiten von zeitdiskreten audio-abtastwerten | |
DE60017825T2 (de) | Verfahren und Vorrichtung zur Kodierung und Dekodierung von Audiosignalen und Aufzeichnungsträger mit Programmen dafür | |
DE69106580T2 (de) | Codieranordnung mit einem Unterbandcoder und Sender mit der Codieranordnung. | |
EP0962015B1 (de) | Verfahren und vorrichtungen zum codieren von diskreten signalen bzw. zum decodieren von codierten diskreten signalen | |
WO2005083680A1 (de) | Vorrichtung und verfahren zum ermitteln eines schätzwerts | |
DE69107511T2 (de) | Codierverfahren und Codieranordnung mit einem Unterbandcoder und Sender mit der Codieranordnung. | |
EP1023777B1 (de) | Verfahren und vorrichtung zur erzeugung eines bitratenskalierbaren audio-datenstroms | |
DE69420682T2 (de) | Sprachdekodierer | |
DE69801536T2 (de) | Vorrichtung und Verfahren zur Signalcodierung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |