DE69621393T2 - Quantisierung von Sprachsignalen in prädiktiven Kodiersystemen unter Verwendung von Modellen menschlichen Hörens - Google Patents
Quantisierung von Sprachsignalen in prädiktiven Kodiersystemen unter Verwendung von Modellen menschlichen HörensInfo
- Publication number
- DE69621393T2 DE69621393T2 DE69621393T DE69621393T DE69621393T2 DE 69621393 T2 DE69621393 T2 DE 69621393T2 DE 69621393 T DE69621393 T DE 69621393T DE 69621393 T DE69621393 T DE 69621393T DE 69621393 T2 DE69621393 T2 DE 69621393T2
- Authority
- DE
- Germany
- Prior art keywords
- signal
- gain
- quantized
- processor
- coefficients
- 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
- 238000013139 quantization Methods 0.000 title description 24
- 238000000034 method Methods 0.000 claims description 48
- 230000000873 masking effect Effects 0.000 claims description 32
- 239000013598 vector Substances 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 21
- 230000009466 transformation Effects 0.000 claims description 8
- 230000008447 perception Effects 0.000 claims description 5
- 238000001228 spectrum Methods 0.000 description 21
- 238000012545 processing Methods 0.000 description 13
- 238000003786 synthesis reaction Methods 0.000 description 13
- 230000015572 biosynthetic process Effects 0.000 description 12
- 230000003044 adaptive effect Effects 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 9
- 230000003595 spectral effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000015654 memory Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 238000009499 grossing Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000002238 attenuated effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000003750 conditioning effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 210000000721 basilar membrane Anatomy 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000001308 synthesis method Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/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
-
- 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/002—Dynamic bit allocation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/06—Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0003—Backward prediction of gain
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0011—Long term prediction filters, i.e. pitch estimation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0013—Codebook search algorithms
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/03—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
- G10L25/24—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being the cepstrum
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/27—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
- Die vorliegende Erfindung betrifft das Komprimieren (Codieren) von Audiosignalen, zum Beispiel Sprachsignalen, unter Verwendung eines prädiktiven Codierungssystems.
- In der Literatur der Signalkomprimierung wird gelehrt, daß Sprach- und Musiksignalformen durch sehr verschiedene Codierungstechniken codiert werden. Die Sprachcodierung, wie zum Beispiel die Sprachcodierung mit Telefonbandbreite (3,4 kHz) bei 16 kb/s oder darunter wurde bisher von prädiktiven Zeitbereichs- Codierern dominiert. Diese Codierer verwenden Sprach- Produktions-Modelle zur Vorhersage von zu codierenden Sprachsignalformen. Vorhergesagte Signalformen werden dann von den tatsächlichen (zu codierenden) (ursprünglichen) Signalformen subtrahiert, um Redundanz in dem ursprünglichen Signal zu reduzieren. Die Reduktion der Signalredundanz liefert Codierungsgewinn. Beispiele für solche prädiktiven Sprachcodierer sind die adaptive prädiktive Codierung, die lineare prädiktive Mehrimpulscodierung und die CELP-Codierung (Code-Excited Linear Prediction), die alle in der Technik der Sprachsignalkomprimierung wohlbekannt sind.
- Die breitbandige Musikcodierung (0-20 kHz) mit 64 kb/s oder darüber wurde dagegen durch Frequenzbereichstransformations- oder Subbandcodierer dominiert. Diese Musikcodierer unterscheiden sich wesentlich von den oben besprochenen Sprachcodierern. Dieser Unterschied ist auf den Umstand zurückzuführen, daß die Musikquellen im Gegensatz zu Sprachquellen zu verschieden sind, um ohne weiteres eine Prädiktion zu gestatten. Folglich werden Modelle von Musikquellen bei der Musikcodierung im allgemeinen nicht verwendet. Statt dessen verwenden Musikcodierer aufwendige Modelle des menschlichen Hörens zur Codierung derjenigen Teile des Signals, die wahrnehmungsbezogen relevant sind. Das heißt, im Gegensatz zu Sprachcodierern, die gewöhnlich Spracherzeugungsmodelle einsetzen, verwenden Musikcodierer Modelle des Hörens - der Schallwahrnehmung - zum Erhalten eines Codierungsgewinns.
- In Musikcodierern werden Modelle des Hörens verwendet, um eine Rauschmaskierungsfähigkeit der zu codierenden Musik zu bestimmen. Der Ausdruck "Rauschmaskierungsfähigkeit" bedeutet, wieviel Quantisierungsrauschen in ein Musiksignal eingeführt werden kann, ohne daß ein Zuhörer das Rauschen bemerkt. Diese Rauschmaskierungsfähigkeit wird dann zur Einstellung der Quantisiererauflösung (z. B. der Quantisiererschrittgröße) benutzt. Je mehr tonartig die Musik ist, desto schlechter maskiert die Musik im allgemeinen Quantisierungsrauschen und um so kleiner wird deshalb die erforderliche Quantisiererschrittgröße und umgekehrt. Kleinere Schrittgrößen entsprechen kleineren Codierungsgewinnen und umgekehrt. Beispiele für solche Musikcodierer sind der Perceptual Audio Coder (PAC) von AT&T und der Audiocodierungsstandard ISO MPEG.
- Zwischen der Sprachcodierung mit Telefonbandbreite und der Breitband-Musikcodierung liegt die Breitband- Sprachcodierung, bei der das Sprachsignal mit 16 kHz abgetastet wird und eine Bandbreite von 7 kHz aufweist. Der Vorteil der 7-kHz-Breitbandsprache besteht darin, daß die resultierende Sprachqualität wesentlich besser als Sprache mit Telefonbandbreite ist, und sie dennoch zur Codierung eine wesentlich niedrigere Bitrate als ein 20-kHz-Audiosignal benötigt. Unter diesen bereits vorgeschlagenen Breitband-Sprachcodierern verwenden einige prädiktive Zeitbereichscodierung, andere Frequenzbereichstransformations- oder Subbandcodierung und wieder andere eine Mischung von Zeitbereichs- und Frequenzbereichstechniken.
- Die Aufnahme von wahrnehmungsbezogenen Kriterien in die prädiktive Sprachcodierung (Breitband oder anderweitig) war auf die Verwendung eines wahrnehmungsbezogenen Gewichtungsfilters im Kontext der Auswahl des besten synthetisierten Sprachsignals von mehreren in Frage kommenden synthetisierten Sprachsignalen beschränkt. Siehe das U.S.-Patent Nr. Re. 32,580 für Atal et al. Solche Filter erzielen eine Art von Rauschformung, die bei der Reduktion von Rauschen in dem Codierungsprozeß nützlich ist. Ein bekannter Codierer versucht, diese Technik durch Verwendung eines wahrnehmungsbezogenen Modells bei der Bildung dieses wahrnehmungsbezogenen Gewichtungsfilters zu verbessern. Siehe W. W. Chang et al., "Audio Coding Using Masking-Threshold Adapted Perceptual Filter", Proc. IEEE Workshop Speech Coding for Telecomm., Seiten 9-10, Oktober 1993.
- Trotz den oben beschriebenen Bemühungen verwenden keine der bekannten Sprach- oder Audiocodierer sowohl ein Spracherzeugungsmodell für Zwecke der Signalprädiktion als auch ein Modell des Hörens, um die Quantisiererauflösung gemäß einer Analyse der Signalrauschmaskierungsfähigkeit einzustellen.
- Die vorliegende Erfindung kombiniert dagegen ein prädiktives Codierungssystem mit einem Quantisierungsprozeß, der ein Signal auf der Grundlage eines Rauschmaskierungssignals quantisiert, das mit einem gegenüber Rauschen empfindlichen Modell des menschlichen Hörens bestimmt wird. Das Ausgangssignal des prädiktiven Codierungssystems wird somit mit einem Quantisierer mit einer Auflösung (z. B. einer Schrittgröße bei einem gleichförmigen Skalarquantisierer oder der Anzahl der zur Identifizierung von Codevektoren in einem Vektorquantisierer verwendeten Bit) quantisiert, die eine Funktion eines gemäß einem wahrnehmungsbezogenen Audiomodell bestimmten Rauschmaskierungssignals ist.
- Gemäß der in Anspruch 1 definierten Erfindung wird ein Signal erzeugt, das eine Abschätzung (oder Prädiktion) eines Sprachinformationen darstellenden Signals darstellt. Der Ausdruck "Sprachinformationen darstellendes Signal" ist allgemein genug, um nicht nur Sprache selbst zu bedeuten, sondern auch Ableitungen von Sprachsignalen, die häufig in Sprachcodierungssystemen angetroffen werden (wie zum Beispiel Restsignale der linearen Prädiktion und der Tonhöhenprädiktion). Das Abschätzungssignal wird dann mit dem ursprünglichen Signal verglichen, um ein Signal zu bilden, das die Differenz zwischen den verglichenen Signalen darstellt. Dieses die Differenz zwischen den verglichenen Signalen darstellende Signal wird dann gemäß einem wahrnehmungsbezogenen Rauschmaskierungssignal quantisiert, das durch ein Modell der menschlichen Audio-Wahrnehmung erzeugt wird.
- Ein Ausführungsbeispiel der vorliegenden Erfindung, das als TPC ("Transform Predictive Coding") bezeichnet wird, codiert 7-kHz-Breitbandsprache mit einer Zielbitrate von 16 bis 32 kb/s. Wie der der Name sagt, kombiniert TPC die Techniken der Transformationscodierung und der prädiktiven Codierung in einem einzigen Codierer. Genauer gesagt verwendet der Codierer lineare Prädiktion zur Entfernung der Redundanz aus der Eingangssprachsignalform und dann Transformationscodierungstechniken zur Codierung des resultierenden Prädiktionsrests. Der transformierte Prädiktionsrest wird auf der Grundlage der Kenntnis der menschlichen Hörwahrnehmung quantisiert, die durch ein wahrnehmungsbezogenes Gehörmodell ausgedrückt wird, um das Hörbare zu codieren und das Unhörbare zu verwerfen.
- Ein wichtiges Merkmal des Ausführungsbeispiels betrifft die Art und Weise der Bestimmung der wahrnehmungsbezogenen Rauschmaskierungsfähigkeit (z. B. die wahrnehmungsbezogene Schwelle der "gerade wahrnehmbaren Verzerrung") des Signals und die Art der Durchführung der anschließenden Bitzuteilung. Anstatt mit dem unquantisierten Eingangssignal eine wahrnehmungsbezogene Schwelle zu bestimmen, so wie es bei herkömmlichen Musikcodierern geschieht, werden die Rauschmaskierungsschwelle und die Bitzuteilung der Ausführungsform auf der Grundlage des Frequenzgangs eines quantisierten Synthesefilters (in der Ausführungsform, eines quantisierten LPC-Synthesefilters) bestimmt. Dieses Merkmal hat einen Vorteil für das System, daß keine Bitzuteilungssignale vom Codierer zum Decodierer übermittelt werden müssen, damit der Decodierer die Verarbeitung der wahrnehmungsbezogenen Schwelle und der Bitzuteilung replizieren kann, die zur Decodierung der empfangenen codierten Breitband- Sprachinformationen notwendig ist. Statt dessen werden Synthesefilterkoeffizienten ausgenutzt, die für andere Zwecke übermittelt werden, um die Bitrate zu speichern.
- Ein weiteres wichtiges Merkmal des Ausführungsbeispiels betrifft die Art und Weise, wie der TPC-Codierer Bit den Codiererfrequenzen zuteilt, und wie der Decodierer auf der Grundlage der zugeteilten Bit ein quantisiertes Ausgangssignal erzeugt. In bestimmten Fällen teilt der TPC-Codierer nur einem Teil des Audiobands Bit zu (zum Beispiel können Bit nur Koeffizienten zwischen 0 und 4 kHz zugeteilt werden). Es werden keine Bit zur Darstellung von Koeffizienten zwischen 4 kHz und 7 kHz zugeteilt, und der Decodierer erhält somit in diesem Frequenzbereich keine Koeffizienten. Ein solcher Fall tritt auf, wenn zum Beispiel der TPC-Codierer mit sehr niedrigen Bitraten, z. B. 16 kb/s, arbeiten muß. Obwohl er über keine Bit verfügt, die das codierte Signal in dem 4-kHz- und 7-kHz-Frequenzbereich darstellen, muß der Docodierer weiterhin ein Signal in diesem Bereich synthetisieren, wenn er ein breitbandiges Ansprechverhalten liefern soll. Aufgrund dieses Merkmals der Ausführungsform erzeugt, d. h. synthetisiert, der Decodierer Koeffizientensignale in diesem Bereich von Frequenzen auf der Grundlage anderer verfügbarer Informationen, ein Verhältnis einer (aus LPC-Parametern erhaltenen) Abschätzung des Signalspektrums zu einer Rauschmaskierungsschwelle bei Frequenzen in dem Bereich. Phasenwerte für die Koeffizienten werden zufällig gewählt. Mit Hilfe dieses Verfahrens kann der Decodierer ein breitbandiges Ansprechverhalten liefern, ohne daß Sprachsignalkoeffizienten für das gesamte Band übertragen werden müssen.
- Die potentiellen Anwendungen eines Breitband- Sprachcodierers sind z. B. ISDN-Videokonferenzen oder Audiokonferenzen, Multimedia-Audio, "Hifi"-Telefonie und gleichzeitige Sprache und Daten (SVD) über DFÜ- Leitungen unter Verwendung von Modems mit 28,8 kb/s oder darüber.
- Fig. 1 zeigt ein Codiererausführungsbeispiel der vorliegenden Erfindung.
- Fig. 2 zeigt ein ausführliches Blockschaltbild des LPC- Analyseprozessors von Fig. 1.
- Fig. 3 zeigt ein ausführliches Blockschaltbild des Tonhöhenprädiktionsprozessors von Fig. 1.
- Fig. 4 zeigt ein ausführliches Blockschaltbild des Transformationsprozessors von Fig. 1.
- Fig. 5 zeigt ein ausführliches Blockschaltbild des Gehörmodell- und Quantisierersteuerprozessors von Fig. 1.
- Fig. 6 zeigt eine Dämpfungsfunktion eines LPC- Leistungsspektrums, die bei der Bestimmung der Maskierungsschwelle für die adaptive Bitzuteilung verwendet wird.
- Fig. 7 zeigt eine allgemeine Bitzuteilung der Codiererausführungsform von Fig. 1
- Fig. 8 zeigt ein Decodiererausführungsbeispiel der vorliegenden Erfindung.
- Fig. 9 zeigt ein Flußdiagramm der zur Bestimmung einer abgeschätzten Maskierungsschwellenfunktion durchgeführten Verarbeitung.
- Fig. 10 zeigt ein Flußdiagramm der zur Synthetisierung des Betrags und der Phase von Restkoeffizienten der schnellen Fouriertransformation zur Verwendung durch den Decodierer von Fig. 8 durchgeführten Verarbeitung.
- Der Klarheit halber wird das Ausführungsbeispiel der vorliegenden Erfindung als einzelne Funktionsblöcke umfassend dargestellt (darunter als "Prozessoren" bezeichnete Funktionsblöcke). Die von diesen Blöcken dargestellten Funktionen können entweder durch Verwendung von gemeinsam benutzter oder von eigener Hardware bereitgestellt werden, darunter ohne Einschränkung Hardware, die Software ausführen kann. Zum Beispiel können die Funktionen der in Fig. 1-5 und 8 dargestellten Prozessoren durch einen einzigen gemeinsam benutzten Prozessor bereitgestellt werden. (Die Verwendung des Begriffs "Prozessor" sollte nicht als sich ausschließlich auf Hardware, die Software ausführen kann, beziehend aufgefaßt werden.)
- Ausführungsbeispiele können Hardware für digitale Signalverarbeitung (DSP) umfassen, wie zum Beispiel den DSP16 oder DSP32C von AT&T, Nur-Lese-Speicher (ROM) zum Speichern von Software, die die nachfolgend besprochenen Operationen durchführt, und Direktzugriffsspeicher (RAM) zum Speichern von DSP- Ergebnissen. Außerdem können höchstintegrierte Hardwareausführungsformen (VLSI) sowie kundenspezifische VLSI-Schaltkreise in Kombination mit einer Vielzweck-DSP-Schaltung bereitgestellt werden.
- Fig. 1 zeigt eine beispielhafte TPC-Sprachcodiererausführungsform der vorliegenden Erfindung. Der TPC- Codierer umfaßt einen LPC-Analyseprozessor 10, ein LPC- (oder "Kurzzeit"-)Prädiktionsfehlerfilter 20, einen Tonhöhenprädiktions- (oder "Langzeit"-Prädiktions-)Prozessor 30, einen Transformationsprozessor 40, einen Gehörmodellquantisierersteuerprozessor 50, einen Restquantisierer 60 und Bitstrommultiplexer (MUX) 70.
- Gemäß der Ausführungsform wird Kurzzeitredundanz aus einem Eingangssprachsignal s durch das LPC-Prädiktionsfehlerfilter 20 entfernt. Das resultierende LPC- Prädiktionsrestsignal d weist immer noch aufgrund der Tonhöhenperiodizität in stimmhafter Sprache etwas Langzeit-Redundanz auf. Diese Langzeit-Redundanz wird durch den Tonhöhenprädiktionsprozessor 30 entfernt. Nach der Tonhöhenprädiktion wird das Tonhöhenprädiktionsrestsignal e durch den Transformationsprozessor 40, der eine schnelle Fouriertransformation (FFT) implementiert, in den Frequenzbereich transformiert. Der Restquantisierer 60 wendet eine adaptive Bitzuteilung an, um Prädiktionsrest-FFT-Koeffizienten gemäß ihrer wahrnehmungsbezogenen Wichtigkeit, die durch den Gehörmodellquantisierer von Steuerprozessor 50 bestimmt wird, Bit zuzuteilen.
- Codebuchindizes, die (a) die LPC-Prädiktorparameter (il); (b) die Tonhöhenprädiktorparameter (ip,it); (c) die Transformationsverstärkungspegel (ig); und (d) den quantisierten Prädiktionsrest (ir) darstellen, werden in einen Bitstrom gemultiplext und als Nebeninformation über einen Kanal zu einem Decodierer übertragen. Der Kanal kann einen beliebigen geeigneten Kommunikationskanal umfassen, darunter drahtlose Kanäle, Computer und Datennetze, Telefonnetze; und kann Speicher, wie zum Beispiel Solid-State-Speicher (zum Beispiel Halbleiterspeicher), optische Speichersysteme (wie zum Beispiel CD-ROM), Magnetspeicher (zum Beispiel Plattenspeicher) usw. enthalten oder daraus bestehen.
- Der TPC-Decodierer kehrt im wesentlichen die im Codierer durchgeführten Operationen um. Er decodiert die LPC-Prädiktorparameter, die Tonhöhenprädiktorparameter und die Verstärkungspegel und die FFT- Koeffizienten des Prädiktionsrests. Die decodierten FFT-Koeffizienten werden durch Anwenden einer FFT- Rücktransformation wieder in den Zeitbereich zurücktransformiert. Der resultierende decodierte Prädiktionsrest wird dann durch einen Tonhöhensynthesefilter und ein LPC-Synthesefilter geleitet, um das Sprachsignal zu rekonstruieren.
- Um die Komplexität so gering wie möglich zu halten, verwendet der TPC eine Quantisierung mit offener Schleife. Quantisierung mit offener Schleife bedeutet, daß der Quantisierer versucht, die Differenz zwischen dem unquantisierten Parameter und seiner quantisierten Version ohne Beachtung der Auswirkungen auf die Ausgangssprachqualität zu minimieren. Dies steht zum Beispiel im Gegensatz zu CELP-Codierern, bei denen der Tonhöhenprädiktor, die Verstärkung und die Erregung gewöhnlich in geschlossener Schleife quantisiert werden. Bei der Quantisierung eines Codierungsparameters mit geschlossener Schleife versucht die Quantisierercodebuchsuche die Verzerrungen in der letztendlich rekonstruierten Ausgangssprache zu minimieren. Dies führt natürlich im allgemeinen zu einer besseren Ausgangssprachqualität, jedoch zum Preis einer höheren Komplexität der Codebuchsuche.
- Fig. 2 zeigt ein ausführliches Blockschaltbild des LPC- Analyseprozessors 10. Der Prozessor 10 umfaßt einen Fenster- und Autokorrelationsprozessor 210; einen Prozessor 215 für spektrale Glättung und Korrektur mit weißem Rauschen; einen Levinson-Durbin-Rekursionsprozessor 220; einen Bandbreitenerweiterungsprozessor 225; einen LPC-zu-LSP-Umsetzungsprozessor 230; und einen LPC-Leistungsspektrumsprozessor 235; einen LSP- Quantisierer 240; einen LSP-Sortierprozessor 245; einen LSP-Interpolationsprozessor 250; und einen LSP-zu-LPC- Umsetzungsprozessor 255.
- Der Fenster- und Autokorrelationsprozessor 210 beginnt den Prozeß der LPC-Koeffizientenerzeugung. Der Prozessor 210 erzeugt Autokorrelationskoeffizienten r auf herkömmliche Weise einmal alle 20 ms, aus denen anschließend LPC-Koeffizienten wie nachfolgend besprochen berechnet werden. Siehe Rabiner, L. R. et al., Digital Processing of Speech Signals, Prentice- Hall, Inc., Englewood Cliffs, New Jersey, 1978 (Rabiner et al.). Die LPC-Rahmengröße beträgt 20 ms (oder 320 Sprachabtastwerte bei einer Abtastrate von 16 kHz). Jeder 20-ms-Rahmen wird weiter in 5-Teilrahmen mit einer Länge von jeweils 4 ms (oder 64 Abtastwerten) aufgeteilt. Der LPC-Analyseprozessor verwendet ein 24-ms-Hamming-Fenster mit einer Mitte an dem letzten 4-ms-Teilrahmen des aktuellen Rahmens auf herkömmliche Weise.
- Um eine potentielle schlechte Konditionierung zu mildern, werden bestimmte herkömmliche Signalaufbereitungstechniken verwendet. Der Prozessor 215 zur spektralen Glättung und Korrektur mit weißem Rauschen wendet vor der LPC-Analyse eine spektrale Glättungstechnik (SST) und eine Korrekturtechnik mit weißem Rauschen an. Die in der Technik wohlbekannte SST (Tohkura, Y. et al., "Spectral Smoothing Technique in PARCOR Speech Analysis-Synthesis", IEEE Trans. Acoust., Speech, Signal Processing, ASSP-26: 587-596, Dezember 1978 (Tohkura et al.)) umfaßt das Multiplizieren eines berechneten Autokorrelationskoeffizientenarray (aus dem Prozessor 210) durch ein Gaußsches Fenster, dessen Fouriertransformation der Wahrscheinlichkeitsdichtefunktion (PDF) einer Gauß-Verteilung mit einer Standardabweichung von 40 Hz entspricht. Die Korrektur mit weißem Rauschen, die ebenfalls herkömmlich ist (Chen, J.-H., "A Robust Low-Delay CELP Speech Coder at 16 kbit/s, Proc. IEEE Global Co mm. Conf., Seiten 1237- 1241, Dallas, TX, November 1989), vergrößert den Zero- Lag-Autokorrelationskoeffizienten (d. h. den Energieterm) um 0,001%.
- Die von dem Prozessor 215 erzeugten Koeffizienten werden dann dem Levinson-Durbin-Rekursionsprozessor 220 zugeführt, der auf herkömmliche Weise 16 LPC- Koeffizienten a1, für i= 1, 2, ..., 16 erzeugt (die Ordnung des LPC-Prädiktors 20 beträgt 16).
- Der Bandbreitenerweiterungprozessor 225 multipliziert jedes aizur weiteren Signalaufbereitung mit einem Faktor g' mit g' = 0,994. Dies entspricht einer Bandbreitenerweiterung von 30 Hz. (Tohkura et al.)
- Nach dieser Bandbreitenerweiterung werden LPC- Prädiktionskoeffizienten auf herkömmliche Weise durch den LPC-zu-LSP-Umsetzungsprozessor 230 in die LSP- Koeffizienten (Line Spectral Pair) umgesetzt. Siehe Soong, F. K. et al., "Line Spectrum Pair (LSP) and Speech Data Compression", Proc. IEEE Int. Conf. Acoust., Speech, Signal Processing, Seiten 1.10.1- 1.10.4, März 1984 (Soong et al.).
- Die Vektorquantisierung (VQ) wird dann durch den Vektorquantisierer 240 bereitgestellt, um die resultierenden LSP-Koeffizienten zu quantisieren. Das von dem Prozessor 240 verwendete spezifische VQ- Verfahren gleicht dem in Paliwal, K. K. et al., "Efficient Vector Quantization of LPC Parameters at 24 bits/frame"', Proc. IEEE Int. Conf. Acoust., Speech, Signal Processing, Seiten 661-664, Toronto, Kanada, Mai 1991 (Paliwal et al.), vorgeschlagenen aufgeteilten VQ. Der 16-dimensionale LSP-Vektor wird in 7 kleinere Teilvektoren mit den Dimensionen 2, 2, 2, 2, 2, 3, 3 aufgeteilt, wobei von dem unteren Frequenzende an gezählt wird. Jeder der 7 Teilvektoren wird auf 7 Bit quantisiert (d. h. unter Verwendung eines VQ-Codebuchs von 128 Codevektoren). Es gibt also sieben Codebuchindizes it(1)- it(7), wobei jeder Index sieben Bit lang ist, für insgesamt 49 Bit pro Rahmen, die bei der LPC- Parameterquantisierung verwendet werden. Diese 49 Bit werden zur Übertragung zum Decodierer als Nebeninformationen dem MUX 70 zugeführt.
- Der Prozessor 240 führt seine Suche durch das VQ- Codebuch unter Verwendung eines herkömmlichen WMSE- Verzerrungsmaßes (weighted mean-square error) durch, das in Paliwal et al. beschrieben wird. Das verwendete Codebuch wird mit herkömmlichen Codebucherzeugungstechniken bestimmt, die in der Technik wohlbekannt sind. Anstelle des WMSE-Maßes kann ein herkömmliches MSE-Verzerrungsmaß verwendet werden, um die Komplexität des Codierers ohne zuviel Verschlechterung der Ausgangssprachqualität zu reduzieren.
- LSP-Koeffizienten sind normalerweise monoton zunehmend. Die Quantisierung kann jedoch zu einer Unterbrechung dieser Reihenfolge führen. Die Unterbrechung resultiert in einem unstabilen LPC-Synthesefilter im Decodierer. Um dieses Problem zu vermeiden, sortiert der LSP- Sortierprozessor 245 die quantisierten LSP- Koeffizienten, um wieder die monoton zunehmende Reihenfolge einzurichten und Stabilität sicherzustellen.
- Die quantisierten LSP-Koeffizienten werden in dem letzten Teilrahmen des aktuellen Rahmens verwendet. Wie üblich, wird eine lineare Interpolation zwischen diesen LSP-Koeffizienten und denen aus dem letzten Teilrahmen des vorherigen Rahmens durch den LSP-Interpolationsprozessor 250 durchgeführt, um LSP-Koeffizienten für die ersten vier Teilrahmen bereitzustellen. Die interpolierten und quantisierten LSP-Koeffizienten werden zur Verwendung in jedem Teilrahmen durch den LSP-zu-LPC-Umsetzungsprozessor 255 auf herkömmliche Weise wieder in LPC-Prädiktorkoeffizienten umgesetzt. Dies geschieht sowohl im Codierer als auch im Decodierer. Die LSP-Interpolation ist wichtig bei der Aufrechterhaltung der glatten Wiedergabe der Ausgangssprache. Die LSP-Interpolation ermöglicht ein Aktualisieren des LPC-Prädiktors einmal pro Teilrahmen (4 ms) auf glatte Weise. Der resultierende LPC- Prädiktor 20 wird zum Vorhersagen des Eingangssignals des Codierers verwendet. Die Differenz zwischen dem Eingangssignal und seiner vorhergesagten Version ist der LPC-Prädiktionsrest d.
- Der Tonhöhenprädiktionsprozessor 30 umfaßt einen Tonhöhenextraktionsprozessor 410, einen Tonhöhenabgriffsquantisierer 415 und ein Tonprädiktionsfehlerfilter 420 mit drei Abgriffen (siehe Fig. 3). Der Prozessor 30 dient zum Entfernen der Redundanz in dem LPC-Prädiktionsrest d aufgrund der Tonhöhenperiodizität in stimmhafter Sprache. Die von dem Prozessor 30 verwendete Tonhöhenabschätzung wird nur einmal pro Rahmen (einmal alle 20 ms) aktualisiert. Es gibt zwei Arten von Parametern bei der Tonhöhenprädiktion, die quantisiert und zum Decodierer gesendet werden müssen: die Tonhöhenperiode, die der Periode der nahezu periodischen Signalform stimmhafter Sprache entspricht, und die drei Tonhöhenprädiktorkoeffizienten (Abgriffe).
- Die Tonhöhenperiode des LPC-Prädiktionsrests wird durch den Tonhöhenextraktionsprozessor 410 unter Verwendung einer modifizierten Version des effizienten zweistufigen Suchverfahrens bestimmt, das in dem U.S.- Patent Nr. 5,327,520 mit dem Titel "Method of Use of Voice Message Coder/Decoder" besprochen wird. Der Prozessor 410 leitet den LPC-Rest zunächst durch ein eliptisches Tiefpaßfilter dritter Ordnung, um die Bandbreite auf etwa 800 Hz zu begrenzen, und führt dann eine 8 : 1-Dezimierung des Tiefpaßfilterausgangssignals durch. Die Korrelationskoeffizienten des dezimierten Signals werden für Zeitverzögerungen im Bereich von 4 bis 35 berechnet, entsprechend Zeitverzögerungen von 32 bis 280 Abtastwerten im undezimierten Signalbereich. Der zulässige Bereich für die Tonhöhenperiode beträgt deshalb 2 ms bis 17,5 ms oder 57 Hz bis 500 Hz im Hinblick auf die Tonhöhenfrequenz. Dies reicht aus, um den normalen Tonhöhenumfang im wesentlichen aller Sprecher, einschließlich tiefer männlicher Stimmen und hoher Kinderstimmen, abzudecken.
- Nachdem der Prozessor 410 die Korrelationskoeffizienten des dezimierten Signals berechnet hat, wird die erste Hauptspitze der Korrelationskoeffizienten mit der niedrigsten Zeitverzögerung identifiziert. Dies ist die Suche der ersten Stufe. Es sei t die resultierende Zeitverzögerung. Dieser Wert t wird mit 8 multipliziert, um die Zeitverzögerung im undezimierten Signalbereich zu erhalten. Die resultierende Zeitverzögerung 8t zeigt auf die Umgebung, in der die wahre Tonhöhenperiode am wahrscheinlichsten liegt. Um die ursprüngliche Zeitauflösung im undezimierten Signalbereich beizubehalten, wird im Bereich von t-7 bis t+7 eine Tonhöhensuche zweiter Stufe ausgeführt. Die Korrelationskoeffizienten des ursprünglichen undezimierten LPC-Rests d werden für die Zeitverzögerungen von t-7 bis t+7 berechnet (unter Berücksichtigung der unteren Grenze von 32 Abtastwerten und der oberen Grenze von 280 Abtastwerten). Die Zeitverzögerung, die dem größten Korrelationskoeffizienten in diesem Bereich entspricht, wird dann als die letzte Tonhöhenperiode p identifiziert. Diese Tonhöhenperiode p wird mit einem herkömmlichen VQ- Codebuch zu 8 Bit codiert, und der 8-Bit-Codebuchindex ip wird zur Übertragung zu dem Decodierer als Nebeninformationen dem MUX 70 zugeführt. Acht Bit reichen aus, um die Tonhöhenperiode darzustellen, da es nur 280 - 32 + 1 = 249 mögliche ganze Zahlen gibt, die als die Tonhöhenperiode gewählt werden können.
- Die drei Tonhöhenprädiktorabgriffe werden zusammen in quantisierter Form durch den Tonhöhenabgriffsquantisierer 415 bestimmt. Der Quantisierer 415 umfaßt ein herkömmliches VQ-Codebuch mit 64 Codevektoren, die 64 mögliche Mengen von Tonhöhenprädiktorabgriffen darstellen. Die Energie des Tonhöhenprädiktionsrests in dem aktuellen Rahmen wird als das Verzerrungsmaß einer Suche durch das Codebuch verwendet. Ein solches Verzerrungsmaß ergibt einen höheren Tonhöhenprädiktionsgewinn als ein einfaches MSE-Maß an den Prädiktorabgriffen selbst. Normalerweise wäre mit diesem Verzerrungsmaß die Codebuchsuchekomplexität bei Verwendung eines Brute-Force-Ansatzes sehr hoch. Der Quantisierer 415 verwendet jedoch ein effizientes Codebuchsuchverfahren, das in der Technik wohlbekannt ist (siehe das U.S.-Patent Nr. 5,327,520) für dieses Verzerrungsmaß. Obwohl die Einzelheiten dieses Verfahrens hier nicht dargelegt werden, ist das Grundprinzip wie folgt.
- Es kann gezeigt werden, daß das Minimieren des Restenergieverzerrungsmaßes äquivalent mit der Maximierung eines Skalarprodukts der beiden 9- dimensionalen Vektoren ist. Einer dieser 9- dimensionalen Vektoren enthält nur Korrelationskoeffizienten des LPC-Prädiktionsrests. Der andere 9- dimensionale Vektor enthält nur die aus der Menge der drei bewerteten Tonhöhenprädiktorabgriffe abgeleiteten Produktterme. Da ein solcher Vektor signalunabhängig ist und nur von dem Tonhöhenabgriffs-Codevektor abhängt, gibt es nur 6 solche möglichen Vektoren (einen für jeden Tonhöhenabgriffs-Codevektor), und sie können im voraus berechnet und in einer Tabelle, dem VQ-Codebuch, gespeichert werden. Bei einer tatsächlichen Codebuchsuche wird zunächst der 9- dimensionale Vektor der LPC-Restkorrelation berechnet.
- Als nächstes wird das Skalarprodukt des resultierenden Vektors mit jedem der 64 im voraus berechneten und gespeicherten 9-dimensionalen Vektoren berechnet. Der Vektor in der gespeicherten Tabelle, der das größte Skalarprodukt ergibt, ist der Gewinner, und die drei quantisierten Tonhöhenprädiktorabgriffe werden von ihm abgeleitet. Da die gespeicherte Tabelle 64 Vektoren enthält, reicht ein 6-Bit-Index it aus, um die drei quantisierten Tonhöhenprädiktorabgriffe darzustellen. Diese 6 Bit werden zur Übertragung zum Decodierer als Nebeninformationen dem MUX 70 zugeführt.
- Die quantisierte Tonhöhenperiode und die Tonhöhenprädiktorabgriffe, die wie oben besprochen bestimmt wurden, dienen zur Aktualisierung des Tonhöhenprädiktionsfehlerfilters 420 einmal pro Rahmen. Die quantisierte Tonhöhenperiode und die Tonhöhenprädiktorabgriffe werden von dem Filter 420 zur Vorhersage des LPC-Prädiktionsrests verwendet. Der vorhergesagte LPC-Prädiktionsrest wird dann von dem tatsächlichen LPC-Prädiktionsrest subtrahiert. Nach dem Subtrahieren der vorhergesagten Version von dem unquantisierten LPC-Rest hat man den unquantisierten Tonhöhenprädiktionsrest e erhalten, der unter Verwendung des unten beschriebenen Transformationscodierungsansatzes codiert wird.
- Das Tonhöhenprädiktionsrestsignal e wird teilrahmenweise durch den Transformationsprozessor 40 codiert. Fig. 4 zeigt ein ausführliches Blockschaltbild des Prozessors 40. Der Prozessor 40 umfaßt einen FFT- Prozessor 510, einen Verstärkungsprozessor 520, einen Verstärkungsquantisierer 530, einen Verstärkungsinterpolatationsprozessor 540 und einen Normierungsprozessor 550.
- Der FFT-Prozessor 510 berechnet eine herkömmliche 64- Punkt-FFT für jeden Teilrahmen des Tonhöhenprädiktionsrests e. Diese Größentransformation vermeidet die sogenannte "Vorecho"-Verzerrung, die in der Audiocodierungstechnik wohlbekannt ist. Siehe Jayant, N. et al., "Signal Compression Based on Models of Human Perception", Proc. IEEE, Seiten 1385-1422, Oktober 1993.
- Nachdem jeder 4-ms-Teilrahmen des Prädiktionsrests durch den Prozessor 510 in den Frequenzbereich transformiert worden ist, extrahiert der Verstärkungsprozessor 520 Verstärkungspegel (oder Effektivwerte (RMS-Werte)), und der Verstärkungsquantisierer 530 quantisiert diese für die verschiedenen Frequenzbänder. Für jeden der fünf Teilrahmen in dem aktuellen Rahmen extrahiert der Prozessor 520 zwei Verstärkungswerte: (1) den RMS-Wert der ersten fünf FFT-Koeffizienten aus dem Prozessor 510 als eine Niederfrequenzverstärkung (0 bis 1 kHz) und (2) den RMS-Wert des 17. bis 29. FFT- Koeffizienten aus dem Prozessor 510 als eine Hochfrequenzverstärkung (4 bis 7 kHz). Somit werden zur Verwendung durch den Verstärkungsquantisierer 530 2 · 5 = 10 Verstärkungswerte pro Rahmen extrahiert.
- Der Verstärkungsquantisierer 530 verwendet getrennte Quantisierungsverfahren für die Hochfrequenz- und Niederfrequenzverstärkung in jedem Rahmen. Für die Hochfrequenzverstärkungen (4-7 kHz) codiert der Quantisierer 530 die Hochfrequenzverstärkung des letzten Teilrahmens des aktuellen Rahmens zu 5 Bit unter Verwendung einer herkömmlichen Skalarquantisierung. Diese quantisierte Verstärkung wird dann durch den Quantisierer 530 in den logarithmischen Dezibel- (db-)Bereich umgesetzt. Da es nur 32 mögliche quantisierte Verstärkungspegel gibt (bei 5 Bit), werden die 32 entsprechenden logarithmischen Verstärkungen im voraus berechnet und in einer Tabelle gespeichert, und die Umsetzung der Verstärkung aus dem linearen Bereich in den logarithmischen Bereich erfolgt durch Tabellennachschlag. Der Quantisierer 530 führt eine lineare Interpolation im logarithmischen Bereich zwischen dieser resultierenden logarithmischen Verstärkung und der logarithmischen Verstärkung des letzten Teilrahmens des letzten Rahmens durch. Diese Interpolation ergibt eine Approximation (d. h. eine Prädiktion) der logarithmischen Verstärkung für die Teilrahmen 1 bis 4. Als nächstes werden die linearen Verstärkungen der Teilrahmen 1 bis 4, die durch den Verstärkungsprozessor 520 zugeführt werden, in den logarithmischen Bereich umgesetzt, und die interpolierten logarithmischen Verstärkungen werden von den Ergebnissen subtrahiert. Dies ergibt 4 logarithmische Verstärkungsinterpolationsfehler, die zu zwei Vektoren jeweils der Dimension 2 gruppiert werden.
- Jeder 2-dimensionale logarithmische Verstärkungsinterpolationsfehlervektor wird dann auf herkömmliche Weise unter Verwendung eines einfachen MSE-Verzerrungsmaßes zu 7 Bit vektorquantisiert. Die beiden 7-Bit- Codebuchindizes, zusätzlich zu dem 5-Bit-Skalar, der den letzten Teilrahmen des aktuellen Rahmens darstellt, werden zur Übertragung zum Decodierer dem MUX 70 zugeführt.
- Der Verstärkungsquantisierer 530 addiert außerdem die resultierenden 4 quantisierten logarithmischen Verstärkungsinterpolationsfehler wieder zu den 4 interpolierten logarithmischen Verstärkungen, um die quantisierten logarithmischen Verstärkungen zu erhalten. Diese 4 quantisierten logarithmischen Verstärkungen werden dann wieder in den linearen Bereich umgesetzt, um die 4 quantisierten Hochfrequenzverstärkungen für die Teilrahmen 1 bis 4 zu erhalten. Diese quantisierten Hochfrequenzverstärkungen werden zusammen mit der quantisierten Hochfrequenzverstärkung des Teilrahmens 5 zur Verarbeitung auf die nachfolgend beschriebene Weise dem Verstärkungsinterpolationsprozessor 540 zugeführt.
- Der Verstärkungsquantisierer 530 führt die Quantisierung der Niederfrequenzverstärkungen (0-1 kHz) auf der Grundlage der quantisierten Hochfrequenzverstärkungen und der quantisierten Tonhöhenprädiktorabgriffe durch. Die Statistiken der logarithmischen Verstärkungsdifferenz, die durch Subtrahieren der logarithmischen Hochfrequenzverstärkung von der logarithmischen Niederfrequenzverstärkung desselben Teilrahmens erhalten werden, wird stark durch den Tonhöhenprädiktor beeinflußt. Für Rahmen mit wenig Tonhöhenperiodizität hätte die logarithmische Verstärkungsdifferenz ungefähr einen verschwindenden Mittelwert und weist eine kleinere Standardabweichung auf. Für die Rahmen mit starker Tonhöhenperiodizität würde die logarithmische Verstärkungsdifferenz dagegen einen großen negativen Mittelwert und eine größere Standardabweichung aufweisen. Diese Beobachtung bildet die Grundlage eines effizienten Quantisierers für die 5 Niederfrequenzverstärkungen in jedem Rahmen.
- Für jede der 64 möglichen quantisierten Menge von Tonhöhenprädiktorabgriffen werden der bedingte Mittelwert und die bedingte Standardabweichung der logarithmischen Verstärkungsdifferenz unter Verwendung einer großen Sprachdatenbank im voraus berechnet. Die resultierenden Tabellen mit 64 Einträgen werden dann von dem Verstärkungsquantisierer 530 bei der Quantisierung der Niederfrequenzverstärkungen verwendet.
- Die Niederfrequenzverstärkung des letzten Teilrahmens wird folgendermaßen quantisiert. Der während der Quantisierung der Tonhöhenprädiktorabgriffe erhaltene Codebuchindex wird bei Tabellennachschlagoperationen verwendet, um den bedingten Mittelwert und die bedingte Standardabweichung der logarithmischen Verstärkungsdifferenz für diese bestimmte quantisierte Menge von Tonprädiktorabgriffen zu extrahieren. Die logarithmische Verstärkungsdifferenz des letzten Teilrahmens wird dann berechnet. Der bedingte Mittelwert wird von dieser unquantisierten logarithmischen Verstärkungsdifferenz subtrahiert, und die resultierende logarithmische Verstärkungsdifferenz mit Mittelwertentfernung wird durch die bedingte Standardabweichund dividiert. Diese Operation erzeugt im Prinzip eine Größe mit Einheitsvarianz und verschwindendem Mittelwert, die unter Verwendung einer Skalarquantisierung durch den Verstärkungsquantisierer 530 zu 4 Bit quantisiert wird.
- Der quantisierte Wert wird dann mit der bedingten Standardabweichung multipliziert und das Ergebnis wird zu dem bedingten Mittelwert addiert, um eine quantisierte logarithmische Verstärkungsdifferenz zu erhalten. Als nächstes wird die quantisierte logarithmische Hochfrequenzverstärkung wieder zurückaddiert, um die quantisierte logarithmische Niederfrequenzverstärkung des letzten Teilrahmens zu erhalten. Der resultierende Wert dient dann zur Durchführung einer linearen Interpolation der logarithmischen Niederfrequenzverstärkung für die Teilrahmen 1 bis 4. Diese Interpolation erfolgt zwischen der quantisierten logarithmischen Niederfrequenzverstärkung des letzten Teilrahmens des vorherigen Rahmens und der quantisierten logarithmischen Niederfrequenzverstärkung des letzten Teilrahmens des aktuellen Rahmens.
- Die 4 logarithmischen Niederfrequenzverstärkungsinterpolationsfehler werden dann berechnet. Als erstes werden die durch den Verstärkungsprozessor 520 gelieferten linearen Verstärkungen in den logarithmischen Bereich umgesetzt. Danach werden die interpolierten logarithmischen Niederfrequenzverstärkungen von den umgesetzten Verstärkungen subtrahiert. Die resultierenden logarithmischen Verstärkungsinterpolationsfehler werden durch die bedingte Standardabweichung der logarithmischen Verstärkungsdifferenz normiert. Die normierten Interpolationsfehler werden dann zu zwei Vektoren der Dimension 2 gruppiert. Diese Vektoren werden unter Verwendung eines einfachen MSE-Verzerrungsmaßes, ähnlich wie bei dem VQ-Verfahren für den Hochfrequenzfall, jeweils in 7 Bit vektorquantisiert. Die beiden 7-Bit-Codebuchindizes werden zusätzlich zu dem 4-Bit-Skalar, der den letzten Teilrahmen des aktuellen Rahmens darstellt, zur Übertragung zum Decodierer dem MUX 70 zugeführt.
- Der Verstärkungsquantisierer multipliziert außerdem die 4 quantisierten Werte mit der bedingten Standardabweichung, um den ursprünglichen Maßstab wiederherzustellen, und addiert dann die interpolierte logarithmische Verstärkung zu dem Ergebnis. Die resultierenden Werte sind die quantisierten logarithmischen Niederfrequenzverstärkungen für die Teilrahmen 1 bis 4. Als letztes werden alle 5 quantisierten logarithmischen Niederfrequenzverstärkungen zur nachfolgenden Verwendung durch den Verstärkungsinterpolationsprozessor 540 in den linearen Bereich umgesetzt.
- Der Verstärkungsinterpolationsprozessor 540 bestimmt approximierte Verstärkungen für das Frequenzband von 1 bis 4 kHz. Als erstes werden die Verstärkungspegel für den 13. bis 16. FFT-Koeffizienten (3 bis 4 kHz) so gewählt, daß sie mit der quantisierten Hochfrequenzverstärkung übereinstimmen. Danach erhält man die Verstärkungspegel für den 6. bis 12. FFT- Koeffizienten (1 bis 3 kHz) durch lineare Interpolation zwischen der quantisierten logarithmischen Niederfrequenzverstärkung und der quantisierten logarithmischen Hochfrequenzverstärkung. Die resultierenden interpolierten logarithmischen Verstärkungswerte werden wieder in den linearen Bereich umgesetzt. Beim Abschluß der Verarbeitung des Verstärkungsinterpolationsprozessors ist somit jedem FFT-Koeffizienten von 0 bis 7 kHz (bzw. dem ersten bis 29. FFT-Koeffizienten) entweder eine quantisierte oder eine interpolierte Verstärkung zugeordnet. Ein Vektor dieser Verstärkungswerte wird zur nachfolgenden Verarbeitung dem Verstärkungsnormierungsprozessor 550 zugeführt.
- Der Verstärkungsnormierungsprozessor 550 normiert die durch den FFT-Prozessor 510 erzeugten FFT- Koeffizienten, indem er jeden Koeffizienten durch seine entsprechende Verstärkung dividiert. Die resultierenden verstärkungsnormierten FFT-Koeffizienten sind dann bereit, durch den Restquantisierer 60 quantisiert zu werden.
- Fig. 7 zeigt den Bitstrom des Ausführungsbeispiels der vorliegenden Erfindung. Wie oben beschrieben, wurden 49 Bit/Rahmen für die Codierung von LPC-Parametern, 8 + 6 = 14 Bit/Rahmen für den Tonhöhenprädiktor mit drei Abgriffen und 5 + (2 · 7) + 4 + (2 · 7) = 37 Bit/Rahmen für die Verstärkungen zugeteilt. Deshalb beträgt die Gesamtzahl von Nebeninformationsbit 49 + 14 + 37 = 100 Bit pro 20-ms-Rahmen oder 20 Bit pro 4-ms-Teilrahmen. Man beachte, daß der Codierer mit einer von drei verschiedenen Raten verwendet werden könnte: 16, 24 und 32 kb/s. Bei einer Abtastrate von 16 kHz bedeuten diese drei Zielraten 1, 1,5 und 2 Bit/Abtastwert bzw. 64, 96 und 128 Bit/Teilrahmen. Wenn 20 Bit/Teilrahmen für Nebeninformationen verwendet werden, lauten die zur Codierung der Hauptinformationen (Codierung von FFT- Koeffizienten) übrigen Bitzahlen 44, 76 und 108 Bit/Teilrahmen für die drei Raten von 16, 24 bzw. 32 kb/s.
- Gemäß den Prinzipien der vorliegenden Erfindung wird eine adaptive Bitzuteilung durchgeführt, um diese übrigen Bit mit verschiedener Quantisierungsgenauigkeit verschiedenen Teilen des Frequenzspektrums zuzuweisen, um die wahrnehmungsbezogene Qualität der Ausgangssprache am TPC-Decodierer zu verbessern. Dies geschieht durch Verwendung eines Modells der menschlichen Empfindlichkeit gegenüber Rauschen in Audiosignalen. Solche Modelle sind in der Technik der wahrnehmungsbezogenen Audiocodierung bekannt. Siehe z. B. Tobias, J. V., Hrsg. Foundations of Modern Auditory Theory, Academic Press, New York und London, 1970. Siehe außerdem Schroeder, M. R. et al., "Optimizing Digital Speech Coders by Exploiting Masking Properties of the Human Ear", J. Acoust. Soc. Amer., 66: 1647-1652, Dezember 1979 (Schroeder et al).
- Der Gehörmodell- und Quantisierersteuerprozessor 50 umfaßt einen LPC-Leistungsspektrumsprozessor 510, einen Maskierungsschwellenprozessor 515 und einen Bitzuteilungsprozessor 520. Während die adaptive Bitzuteilung einmal pro Teilrahmen durchgeführt werden könnte, führt das Ausführungsbeispiel der vorliegenden Erfindung die Bitzuteilung einmal pro Rahmen durch, um die rechnerische Komplexität zu vermindern.
- Anstatt das unquantisierte Eingangssignal zur Ableitung der Rauschmaskierungsschwelle und der Bitzuteilung zu verwenden, so wie es bei herkömmlichen Musikcodierern geschieht, werden die Rauschmaskierungsschwelle und die Bitzuteilung des Ausführungsbeispiels aus dem Frequenzgang des quantisierten LPC-Synthesefilters bestimmt (der häufig als das "LPC-Spektrum" bezeichnet wird). Das LPC-Spektrum kann als eine Approximation der Spektralhülle des Eingangssignals in dem 24-ms-LPC- Analysefenster betrachtet werden. Das LPC-Spektrum wird auf der Grundlage der quantisierten LPC-Koeffizienten bestimmt. Die quantisierten LPC-Koeffizienten werden durch den LPC-Analyseprozessor 10 dem LPC- Spektrumsprozessor 510 des Gehörmodell- und Quantisierersteuerprozessors 50 zugeführt. Der Prozessor 510 bestimmt das LPC-Spektrum folgendermaßen. Die quantisierten LPC-Filterkoeffizienten (ä) werden zunächst durch eine 64-Punkt-FFT transformiert. Die Leistung der ersten 33 FFT-Koeffizienten wird bestimmt, und die Kehrwerte dieser Leistungswerte dann berechnet. Das Ergebnis ist das LPC-Leistungsspektrum, das eine Frequenzauflösung einer 64-Punkt-FFT aufweist.
- Nach der Bestimmung des LPC-Leistungsspektrums wird durch den Maskierungsschwellenprozessor 515 eine geschätzte Rauschmaskierungsschwelle berechnet. Die Maskierungsschwelle TM wird mit einer modifizierten Version des Verfahrens berechnet, das in dem U.S.- Patent Nr. 5,314,457 beschrieben wird. Der Prozessor 515 skaliert die 33 Abtastwerte des LPC- Leistungsspektrums aus dem Prozessor 510 durch eine frequenzabhängige Dämpfungsfunktion, die empirisch aus subjektiven Hörexperimenten bestimmt wird. Wie in Fig. 6 gezeigt, beginnt die Dämpfungsfunktion mit 12 dB für den Gleichstromterm des LPC-Leistungsspektrums, nimmt zwischen 700 und 800 Hz auf etwa 15 dB zu und nimmt dann in Richtung hoher Frequenzen monoton ab und reduziert sich schließlich auf 6 dBbei 8000 Hz.
- Jeder der 33 gedämpften LPC-Leistungsspektrumsabtastwerte wird dann zur Skalierung einer "Basilar Membran-Spreizfunktion" verwendet, die für diese bestimmte Frequenz abgeleitet wird, um die Maskierungsschwelle zu berechnen. Eine Spreizfunktion für eine gegebene Frequenz entspricht der Form der Maskierungsschwelle als Reaktion auf ein Einton- Maskierersignal mit dieser Frequenz. Gleichung (5) von Schroeder et al. beschreibt solche Spreizfunktionen im Hinblick auf die "Bark"-Frequenzskala, oder die kritisches-Band-Frequenzskala wird hiermit ausdrücklich und vollständig erwähnt. Der Skalierungsprozeß beginnt mit den ersten 33 Frequenzen einer 64-Punkt-FFT über 0- 16 kHZ (d. h. 0 Hz, 250 Hz, 500 Hz, ..., 8000 Hz), die in die "Bark"-Frequenzskala umgesetzt werden. Für jeden der 33 resultierenden Bark-Werte wird dann die entsprechende Spreizfunktion an diesen 33 Bark-Werten unter Verwendung von Gleichung (5) von Schroeder et al. abgetastet. Die 33 resultierenden Spreizfunktionen werden in einer Tabelle gespeichert, was als Teil eines Off-Line-Prozesses geschehen kann. Zur Berechnung der geschätzten Maskierungsschwelle wird jede der 33 Spreizfunktionen mit dem entsprechenden Abtastwert des gedämpften LPC-Leistungsspektrums multipliziert, und die resultierenden 33 skalierten Spreizfunktionen werden aufsummiert. Das Ergebnis ist die abgeschätzte Maskierungsschwellenfunktion, die dem Bitzuteilungsprozessor 520 zugeführt wird. Fig. 9 zeigt die Verarbeitung, die durch den Prozessor 520 durchgeführt wird, um die abgeschätzte Maskierungsschwellenfunktion zu bestimmen.
- Es ist zu beachten, daß dieses Verfahren zur Abschätzung der Maskierungsschwelle nicht das einzig verfügbare Verfahren ist.
- Um die Komplexität gering zu halten, verwendet der Bitzuteilungsprozessor 520 ein "gieriges" Verfahren zur Zuteilung der Bit für die Restquantisierung. Das Verfahren ist "gierig" in dem Sinne, daß es ein Bit auf einmal ohne Rücksicht auf den potentiellen Einfluß auf die zukünftige Bitzuteilung der "bedürftigsten" Frequenzkomponente zuteilt.
- Am Anfang, wenn noch kein Bit zugewiesen ist, ist die entsprechende Ausgangssprache null, und das Codierungsfehlersignal ist die Eingangssprache selbst. Deshalb wird zu Anfang angenommen, daß das LPC- Leistungsspektrum das Leistungsspektrum des Codierungsrauschens ist. Danach wird die Rausch-Lautheit bei jeder der 33 Frequenzen einer 64-Punkt-FFT unter Verwendung der oben berechneten Maskierungsschwelle und einer vereinfachten Version des Rauschlautheitsberechnungsverfahrens in Schroeder et al. abgeschätzt.
- Die vereinfachte Rauschlautheit bei jeder der 33 Frequenzen wird folgendermaßen durch den Prozessor 520 berechnet. Erstens erfolgt die Berechnung der kritischen Bandbreite Bi an der i-ten Frequenz unter Verwendung einer linearen Interpolation der kritischen Bandbreite, die in Tabelle 1 von Scharfs Buchkapitel in Tobias aufgelistet ist. Das Ergebnis ist der approximierte Wert des Terms df/dx in Gleichung (3) von Schroeder et al. Die 33 kritischen Bandbreitenwerte werden im voraus berechnet und in einer Tabelle gespeichert. Danach wird für die i-te Frequenz die Rauschleistung Ni mit der Maskierungsschwelle Mi verglichen. Für Ni ≤ Mi wird die Rauschlautheit Liauf null gesetzt. Für Ni > Mi wird die Rauschlautheit folgendermaßen berechnet:
- Li = Bi((Ni -Mi)/(1 + (Si/Ni)²)0,25
- wobei Si der Abtastwert des LPC-Leistungsspektrums bei der i-ten Frequenz ist.
- Nachdem der Prozessor 520 für alle 33 Frequenzen die Rauschlautheit berechnet hat, wird die Frequenz mit der maximalen Rauschlautheit identifiziert und dieser Frequenz ein Bit zugeteilt. Die Rauschleistung bei dieser Frequenz wird dann um einen Faktor reduziert, der empirisch aus dem Signal/Rausch-Verhältnis (SNR) bestimmt wird, das während des Entwurfs des VQ- Codebuchs zur Quantisierung der Prädiktionsrest-FFT- Koeffizienten erhalten wird. (Beispielhafte Werte für den Reduktionsfaktor liegen zwischen 4 und 5 dB). Die Rauschlautheit bei dieser Frequenz wird dann unter Verwendung der reduzierten Rauschleistung aktualisiert. Als nächstes wird wieder das Maximum aus dem aktualisierten Rauschlautheitsarray identifiziert und der entsprechenden Frequenz ein Bit zugewiesen. Dieser Prozeß wird fortgesetzt, bis alle verfügbaren Bit erschöpft sind.
- Für den 32- und den 24-kb/s-TPC-Codierer, kann jede der 33 Frequenzen während der adaptiven Bitzuteilung Bit erhalten. Für den 16-kb/s-TPC-Codierer kann dagegen eine bessere Sprachqualität erzielt werden, wenn der Codierer nur den Frequenzbereich von 0 bis 4 kHz (d. h. den ersten 16 FFT-Koeffizienten) Bit zuweist und die Rest-FFT-Koeffizienten in dem höheren Frequenzband von 4 bis 8 kHz synthetisiert. Das Verfahren zum Synthetisieren der Rest-FFT-Koeffizienten von 4 bis 8 kHz wird nachfolgend in Verbindung mit dem beispielhaften Decodierer beschrieben.
- Da die quantisierten LPC-Synthesekoeffizienten ( ) auch im TPC-Decodierer verfügbar sind, ist zu beachten, daß es nicht notwendig ist, die Bitzuteilungsinformationen zu übertragen. Diese Bitzuteilungsinformationen werden durch eine Kopie des Gehörmodellquantisierersteuerprozessors 50 im Decodierer bestimmt. Somit kann der TPC-Decodierer lokal die adaptive Bitzuteilungsoperation des Codierers kopieren, um diese Bitzuteilungsinformationen zu erhalten.
- Nach der Bitzuteilung führt der Quantisierer 60 die tatsächliche Quantisierung von normierten Prädiktionsrest-FFT-Koeffizienten EN durch. Der Gleichstromterm der FFT ist eine reelle Zahl und wird skalarquantisiert, wenn sie überhaupt während der Bitzuteilung Bit erhält. Die maximale Anzahl von Bit, die sie erhalten kann, beträgt 4. Für den zweiten bis zum 16. FFT- Koeffizienten wird ein herkömmlicher zweidimensionaler Vektorquantisierer verwendet, um den Real- und Imaginärteil zusammen zu quantisieren. Die maximale Anzahl von Bit für diesen VQ in zwei Dimensionen beträgt 6 Bit. Für den 17. bis 30. FFT-Koeffizienten wird ein herkömmlicher 4-dimensionaler Vektorquantisierer verwendet, um den Real- und Imaginärteil zweier angrenzender FFT-Koeffizienten zu quantisieren.
- Fig. 8 zeigt ein Decodiererausführungsbeispiel der vorliegenden Erfindung. Der beispielhafte Decodierer umfaßt einen Demultiplexer (DEMUX) 65, einen LPC- Parameterdecodierer 80, einen Gehörmodell-Entquantisierersteuerprozessor 90, einen Entquantisierer 70, einen Rücktransformationsprozessor 100, ein Tonhöhensynthesefilter 110 und ein LPC-Synthesefilter 120 in der in Fig. 8 gezeigten Verbindung. Als eine allgemeine Proposition führt die Decodiererausführungsform die Umkehrung der durch den beispielhaften Codierer an den Hauptinformationen durchgeführten Operationen durch.
- Für jeden Rahmen trennt der DEMUX 65 alle Haupt- und Nebeninformationskomponenten von dem empfangenen Bitstrom. Die Hauptinformationen werden dem Entquantisierer 70 zugeführt. Der Ausdruck "Entquantisieren" bedeutet hier die Erzeugung einer quantisierten Ausgabe auf der Grundlage eines codierten Werts wie zum Beispiel eines Index. Um diese Hauptinformationen zu entquantisieren, muß eine adaptive Bitzuteilung durchgeführt werden, um zu bestimmen, wieviele der Hauptinformationsbit jedem quantisierten Transformationskoeffizienten von Hauptinformationen zugeordnet sind.
- Der erste Schritt bei der adaptiven Bitzuteilung ist die Erzeugung quantisierter LPC-Koeffizienten (wovon die Zuteilung abhängt). Wie bereits besprochen, werden sieben LSP-Codebuchindizes it(1)-it(7) über den Kanal zum Decodierer übermittelt, um quantisierte LSP- Koeffizienten darzustellen. Quantisierte LSP- Koeffizienten werden durch den Decodierer 80 als Reaktion auf die empfangenen LSP-Indizes aus dem DEMUX 65 mit Hilfe einer Kopie des (unbesprochenen) LSP- Codebuchs synthetisiert. Als letztes werden aus den LSP-Koeffizienten auf herkömmliche Weise LPC- Koeffizienten abgeleitet.
- Mit den synthetisierten LPC-Koeffizienten bestimmt der Gehörmodellentquantisierersteuerprozessor 90 die Bitzuteilung (auf der Grundlage der quantisierten LPC- Parameter) für jeden FFT-Koeffizienten genauso, wie oben in bezug auf den Codierer besprochen. Nach der Ableitung der Bitzuteilungsinformationen kann der Entquantisierer 70 dann die Haupt-FFT- Koeffizienteninformationen korrekt decodieren und die quantisierten Versionen der verstärkungsnormierten Prädiktionsrest-FFT-Koeffizienten erhalten.
- Für diejenigen Frequenzen, die überhaupt keine Bit erhalten, sind die decodierten FFT-Koeffizienten null. Die Positionen solcher "spektralen Löcher" entwickeln sich mit der Zeit, und dies kann zu einer deutlichen künstlichen Verzerrung führen, die bei vielen Transformationscodierern relativ häufig auftritt. Um diese künstliche Verzerrung zu vermeiden, werden die spektralen Löcher durch den Entquantisierer 70 mit niedrigpegeligen FFT-Koeffizienten mit Zufallsphasen und -beträgen gleich 3 dB unter der quantisierten Verstärkung "aufgefüllt".
- Für 32- und 24-kb/s-Codierer erfolgt die Bitzuteilung für das gesamte Frequenzband, wie oben bei der Besprechung des Codierers beschrieben. Für den 16-kb/s- Codierer wird die Bitzuteilung auf das Band von 0 bis 4 kHz beschränkt. Das Band von 4 bis 8 kHz wird folgendermaßen synthetisiert. Erstens wird das Verhältnis zwischen dem LPC-Leistungsspektrum und der Maskierungsschwelle bzw. das Signal-zu-Maskierungs- Schwellenverhältnis (SMR) für die Frequenzen in 4 bis 7 kHz berechnet. Der 17. bis 29. FFT-Koeffizient (4 bis 7 kHz) werden unter Verwendung von Phasen synthetisiert, die zufällig sind, und mit Betragswerten, die durch das SMR gesteuert werden. Für diejenigen Frequenzen mit SMR > 5 dB wird der Betrag der Rest-FFT-Koeffizienten auf 4 dB über der quantisierten Hochfrequenzverstärkung (RMS-Wert der FFT-Koeffizienten in dem Band von 4 bis 7 kHz) gesetzt. Für die Frequenzen mit SMR ≤ 5 dB liegt der Betrag 3 dB unter der quantisierten Hochfrequenzverstärkung. Von dem 30. bis zum 33. FFT-Koeffizienten nimmt der Betrag in einer Rampe von 3 dB auf 30 dB unter der quantisierten Hochfrequenzverstärkung ab, und die Phase ist wiederum zufällig. Fig. 10 zeigt die Verarbeitung, die den Betrag und die Phase der FFT-Koeffizienten synthetisiert.
- Nachdem alle FFT-Koeffizienten decodiert, ausgefüllt oder synthetisiert worden sind, sind sie bereit zur Skalierung. Die Skalierung wird durch den Rücktransformationsprozessor 100 erzielt, der (aus dem DEMUX 65) einen 5-Bit-Index für die Hochfrequenzverstärkung und einen 4-Bit-Index für die Niederfrequenzverstärkung empfängt, die jeweils dem letzten Teilrahmen des aktuellen Rahmens entsprechen, sowie Indizes für die logarithmischen Verstärkungsinterpolationsfehler für das Nieder- und Hochfrequenzband der ersten vier Teilrahmen. Diese Verstärkungsindizes werden decodiert und die Ergebnisse werden zur Gewinnung des Skalierungsfaktors für jeden FFT- Koeffizienten verwendet, wie oben in dem Abschnitt über Verstärkungsberechnung und Quantisierung beschrieben. Die FFT-Koeffizienten werden dann durch ihre einzelnen Verstärkungen skaliert.
- Die resultierenden verstärkungsskalierten quantisierten FFT-Koeffizienten werden dann durch den Rücktransformationsprozeß 100 mit einer inversen FFT wieder in den Zeitbereich zurücktransformiert. Diese Rücktransformation ergibt den quantisierten Zeitbereichs- Prädiktionsrest .
- Der quantisierte Zeitbereichs-Prädiktionsrest wird dann durch das Tonhöhensynthesefilter 110 geleitet. Das Filter 110 fügt auf der Grundlage einer quantisierten Tonhöhenperiode Tonhöhenperiodizität zu dem Rest hinzu, um , den quantisierten LPC-Prädiktionsrest, zu gewinnen. Die quantisierte Tonhöhenperiode wird aus dem 8-Bit-Index ip decodiert, der aus dem DEMUX 65 erhalten wird. Die Tonhöhenprädiktorabgriffe werden aus dem 6- Bit-Index it decodiert, der ebenfalls aus dem DEMUX 65 erhalten wird.
- Als letztes wird dann die quantisierte Ausgangssprache durch das LPC-Synthesefilter 120 unter Verwendung der quantisierten LPC-Koeffizienten aus dem LPC- Parameterdecodierer 80 erzeugt.
- Obwohl hier mehrere spezifische Ausführungsformen der vorliegenden Erfindung gezeigt und beschrieben wurden, versteht sich, daß diese Ausführungsformen lediglich die vielen möglichen spezifischen Anordnungen veranschaulichen, die als Anwendung der Prinzipien der Erfindung konzipiert werden können. Im Hinblick auf die obige Offenlegung können Durchschnittsfachleute zahlreiche und verschiedene andere Anordnungen gemäß diesen Prinzipien konzipieren, ohne vom Schutzumfang der Erfindung abzuweichen, der durch die angefügten Ansprüche definiert wird.
- Zum Beispiel kann man eine gute Sprach- und Musikqualität aufrechterhalten, indem nur die FFT- Phaseninformationen in dem Band von 4 bis 7 kHz für die Frequenzen mit SMR > 5 dB codiert werden. Der Betrag wird genauso bestimmt wie das Hochfrequenzsyntheseverfahren, das in der Nähe des Endes der Besprechung der Bitzuteilung beschrieben wurde.
- Die meisten CELP-Codierer aktualisieren die Tonhöhenprädiktorparameter einmal alle 4 bis 6 ms, um eine effizientere Tonhöhenprädiktion zu erzielen. Dies ist viel häufiger als die 20-ms-Aktualisierungen des Ausführungsbeispiels des TPC-Codierers. Dementsprechend sind andere Aktualisierungsraten möglich, zum Beispiel alle 10 ms.
- Es können andere Verfahren zur Abschätzung der Rauschlautheit verwendet werden. Anstatt die maximale Rauschlautheit zu minimieren, kann außerdem die Summe der Rauschlautheit für alle Frequenzen minimiert werden. Das zuvor im Codiererabschnitt beschriebene Verstärkungsquantisierungsverfahren weist eine relativ gute Codierungseffizienz auf und arbeitet gut für Sprachsignale. Ein alternatives Verstärkungsquantisierungsverfahren wird nachfolgend beschrieben. Es weist vielleicht keine so gute Codierungseffizienz auf, ist aber wesentlich einfacher und kann robuster gegenüber Nicht-Sprachsignalen sein.
- Das alternative Verfahren beginnt mit der Berechnung einer "Rahmenverstärkung", die der RMS-Wert des Zeitbereichs-Tonhöhenprädiktionsrestsignals ist, der über den gesamten Rahmen hinweg berechnet wird. Dieser Wert wird dann in dB-Werte umgesetzt und mit einem Skalarquantisierer auf 5 Bit quantisiert. Für jeden Teilrahmen werden drei Verstärkungswerte aus dem Rest- FFT-Koeffizienten berechnet. Die Niederfrequenzverstärkung und die Hochfrequenzverstärkung werden genauso wie zuvor berechnet, d. h. der RMS-Wert der ersten 5 FFT-Koeffizienten und der RMS-Wert des 17. bis 29. FFT-Koeffizienten. Zusätzlich wird die Mittelfrequenzverstärkung als der RMS-Wert des 6. bis 16. FFT-Koeffizienten berechnet. Diese drei Verstärkungswerte werden in dB-Werte umgesetzt, und die Rahmenverstärkung in dB von ihnen subtrahiert. Das Ergebnis sind die normierten Teilrahmenverstärkungen für die drei Frequenzbänder.
- Die normierte Niederfrequenz-Teilrahmenverstärkung wird durch einen 4-Bit-Skalarquantisierer quantisiert. Die normierten Mittelfrequenz- und Hochfrequenz-Teilrahmenverstärkungen werden zusammen durch einen 7-Bit- Vektorquantisierer quantisiert. Um die quantisierten Teilrahmenverstärkungen im linearen Bereich zu erhalten, wird die Rahmenverstärkung in dB wieder zu der quantisierten Version der normierten Teilrahmenverstärkungen zurückaddiert und das Ergebnis wieder in den linearen Bereich umgesetzt.
- Im Gegensatz zu den obigen Verfahren, bei denen eine lineare Interpolation durchgeführt wurde, um die Verstärkungen für das Frequenzband von 1 bis 4 kHz zu erhalten, benötigt dieses alternative Verfahren diese Interpolation nicht. Jeder Rest-FFT-Koeffizient gehört zu einem der drei Frequenzbänder, in denen eine eigene Teilrahmenverstärkung bestimmt wird. Jede der drei quantisierten Teilrahmenverstärkungen im linearen Bereich dient zur Normierung oder Skalierung aller Rest-FFT-Koeffizienten in dem Frequenzband, aus dem die Teilrahmenverstärkung abgeleitet wird.
- Man beachte, daß dieses alternative Verstärkungsquantisierungsverfahren mehr Bit benötigt, um alle Verstärkungen anzugeben. Für eine gegebene Bitrate sind deshalb zur Quantisierung der Rest-FFT-Koeffizienten weniger Bit verfügbar.
Claims (10)
1. Verfahren zur Codierung eines Signals, das
Sprachinformationen darstellt (s), mit den folgenden
Schritten:
Erzeugen (10) eines ersten Signals ( ), das eine
Abschätzung des Sprachinformationen darstellenden
Signals darstellt;
Vergleichen (20) des Sprachinformationen darstellenden
Signals mit dem ersten Signal, um ein zweites Signal
(d) zu bilden, das eine Differenz zwischen den
verglichenen Signalen darstellt;
Bestimmen (50) einer Quantisiererauflösung;
Quantisieren (60) einer Funktion des zweiten Signals
gemäß der bestimmten Quantisiererauflösung; und
Erzeugen (MUX 70) eines codierten Signals, das eine
erste Komponente (ir) aufweist, auf der Grundlage des
quantisierten Signals, dadurch gekennzeichnet, daß die
Quantisiererauflösung gemäß dem ersten Signal und einem
wahrnehmungsbezogenen Rauschmaskierungssignal bestimmt
wird, wobei das Rauschmaskierungssignal auf einem
Modell der menschlichen Audio-Wahrnehmung basiert.
2. Verfahren nach Anspruch 1, wobei die Funktion des
zweiten Signals mehrere Frequenzkoeffizienten umfaßt
und das Bestimmen einer Quantisiererauflösung das
Bestimmen der Bitzuteilung für die Quantisierung
jeweiliger Frequenzkoeffizienten des zweiten Signals
umfaßt.
3. Verfahren nach Anspruch 1, wobei das Bestimmen einer
Quantisiererauflösung das Bestimmen der Bitzuteilung
für die Identifizierung von Codevektoren in einem
Vektorquantisierer umfaßt.
4. Verfahren nach Anspruch 2, wobei bei der
Bitzuteilung mindestens einem Frequenzkoeffizienten des
zweiten Signals null Bit zugeteilt werden.
5. Verfahren nach Anspruch 2, wobei die
Frequenzkoeffizienten FFT-Koeffizienten sind.
6. Verfahren nach Anspruch 1, wobei das Erzeugen eines
codierten Signals weiterhin das Erzeugen einer zweiten
Komponente auf der Grundlage des zweiten Signals
umfaßt, um eine Bestimmung der Quantisiererauflösung
aus dem codierten Signal zu ermöglichen.
7. Verfahren nach Anspruch 1, wobei das zweite Signal
Restinformationen einer linearen Prädiktion umfaßt.
8. Verfahren nach Anspruch 1, wobei die Funktion des
zweiten Signals das zweite Signal mit entfernten
Tonhöhenprädiktionsinformationen umfaßt.
9. Verfahren nach Anspruch 1, wobei die Funktion des
zweiten Signals eine Transformation in einen
Frequenzbereich des zweiten Signals nach der Entfernung
von Tonhöhenprädiktionsinformationen aus dem zweiten
Signal umfaßt.
10. Verfahren nach Anspruch 1, wobei das
wahrnehmungsbezogene Rauschmaskierungssignal eine
Rauschmaskierungsschwelle umfaßt, die auf dem ersten
Signal basiert.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/530,980 US5710863A (en) | 1995-09-19 | 1995-09-19 | Speech signal quantization using human auditory models in predictive coding systems |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69621393D1 DE69621393D1 (de) | 2002-07-04 |
DE69621393T2 true DE69621393T2 (de) | 2002-11-14 |
Family
ID=24115771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69621393T Expired - Lifetime DE69621393T2 (de) | 1995-09-19 | 1996-09-17 | Quantisierung von Sprachsignalen in prädiktiven Kodiersystemen unter Verwendung von Modellen menschlichen Hörens |
Country Status (7)
Country | Link |
---|---|
US (1) | US5710863A (de) |
EP (1) | EP0764941B1 (de) |
JP (1) | JPH09152900A (de) |
CA (1) | CA2185731C (de) |
DE (1) | DE69621393T2 (de) |
ES (1) | ES2174030T3 (de) |
MX (1) | MX9604161A (de) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08179796A (ja) * | 1994-12-21 | 1996-07-12 | Sony Corp | 音声符号化方法 |
FR2729246A1 (fr) * | 1995-01-06 | 1996-07-12 | Matra Communication | Procede de codage de parole a analyse par synthese |
KR0155315B1 (ko) * | 1995-10-31 | 1998-12-15 | 양승택 | Lsp를 이용한 celp보코더의 피치 검색방법 |
JP3266819B2 (ja) * | 1996-07-30 | 2002-03-18 | 株式会社エイ・ティ・アール人間情報通信研究所 | 周期信号変換方法、音変換方法および信号分析方法 |
US6377978B1 (en) | 1996-09-13 | 2002-04-23 | Planetweb, Inc. | Dynamic downloading of hypertext electronic mail messages |
US6584498B2 (en) | 1996-09-13 | 2003-06-24 | Planet Web, Inc. | Dynamic preloading of web pages |
US6134518A (en) * | 1997-03-04 | 2000-10-17 | International Business Machines Corporation | Digital audio signal coding using a CELP coder and a transform coder |
US6055496A (en) * | 1997-03-19 | 2000-04-25 | Nokia Mobile Phones, Ltd. | Vector quantization in celp speech coder |
US7325077B1 (en) * | 1997-08-21 | 2008-01-29 | Beryl Technical Assays Llc | Miniclient for internet appliance |
US6031908A (en) * | 1997-11-14 | 2000-02-29 | Tellabs Operations, Inc. | Echo canceller employing dual-H architecture having variable adaptive gain settings |
US6470309B1 (en) * | 1998-05-08 | 2002-10-22 | Texas Instruments Incorporated | Subframe-based correlation |
US6253165B1 (en) * | 1998-06-30 | 2001-06-26 | Microsoft Corporation | System and method for modeling probability distribution functions of transform coefficients of encoded signal |
US6073093A (en) * | 1998-10-14 | 2000-06-06 | Lockheed Martin Corp. | Combined residual and analysis-by-synthesis pitch-dependent gain estimation for linear predictive coders |
US6138089A (en) * | 1999-03-10 | 2000-10-24 | Infolio, Inc. | Apparatus system and method for speech compression and decompression |
CN1192355C (zh) * | 1999-11-16 | 2005-03-09 | 皇家菲利浦电子有限公司 | 宽带音频传输系统 |
US7058572B1 (en) * | 2000-01-28 | 2006-06-06 | Nortel Networks Limited | Reducing acoustic noise in wireless and landline based telephony |
ATE363711T1 (de) * | 2000-04-24 | 2007-06-15 | Qualcomm Inc | Verfahren und vorrichtung zur prädiktiven quantisierung von stimmhaften sprachsignalen |
US20020040299A1 (en) * | 2000-07-31 | 2002-04-04 | Kenichi Makino | Apparatus and method for performing orthogonal transform, apparatus and method for performing inverse orthogonal transform, apparatus and method for performing transform encoding, and apparatus and method for encoding data |
US7171355B1 (en) * | 2000-10-25 | 2007-01-30 | Broadcom Corporation | Method and apparatus for one-stage and two-stage noise feedback coding of speech and audio signals |
GB0108080D0 (en) * | 2001-03-30 | 2001-05-23 | Univ Bath | Audio compression |
EP1405303A1 (de) * | 2001-06-28 | 2004-04-07 | Koninklijke Philips Electronics N.V. | Breitbandsignalübertragungssystem |
US7110942B2 (en) * | 2001-08-14 | 2006-09-19 | Broadcom Corporation | Efficient excitation quantization in a noise feedback coding system using correlation techniques |
US7206740B2 (en) * | 2002-01-04 | 2007-04-17 | Broadcom Corporation | Efficient excitation quantization in noise feedback coding with general noise shaping |
US7328151B2 (en) * | 2002-03-22 | 2008-02-05 | Sound Id | Audio decoder with dynamic adjustment of signal modification |
US7191136B2 (en) * | 2002-10-01 | 2007-03-13 | Ibiquity Digital Corporation | Efficient coding of high frequency signal information in a signal using a linear/non-linear prediction model based on a low pass baseband |
US20040167774A1 (en) * | 2002-11-27 | 2004-08-26 | University Of Florida | Audio-based method, system, and apparatus for measurement of voice quality |
BR0316663A (pt) * | 2002-11-29 | 2005-10-11 | Koninkl Philips Electronics Nv | Métodos para codificar um sinal de áudio e para decodificar um fluxo de áudio, codificador, reprodutor, sistema e fluxo de áudio, e, meio de armazenamento |
US20040167772A1 (en) * | 2003-02-26 | 2004-08-26 | Engin Erzin | Speech coding and decoding in a voice communication system |
US8473286B2 (en) * | 2004-02-26 | 2013-06-25 | Broadcom Corporation | Noise feedback coding system and method for providing generalized noise shaping within a simple filter structure |
BRPI0514940A (pt) * | 2004-09-06 | 2008-07-01 | Matsushita Electric Ind Co Ltd | dispositivo de codificação escalável e método de codificação escalável |
CN101283407B (zh) * | 2005-10-14 | 2012-05-23 | 松下电器产业株式会社 | 变换编码装置和变换编码方法 |
DE102006022346B4 (de) * | 2006-05-12 | 2008-02-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Informationssignalcodierung |
US9159333B2 (en) | 2006-06-21 | 2015-10-13 | Samsung Electronics Co., Ltd. | Method and apparatus for adaptively encoding and decoding high frequency band |
KR101393298B1 (ko) * | 2006-07-08 | 2014-05-12 | 삼성전자주식회사 | 적응적 부호화/복호화 방법 및 장치 |
CN105976824B (zh) * | 2012-12-06 | 2021-06-08 | 华为技术有限公司 | 信号解码的方法和设备 |
MX353042B (es) | 2013-06-10 | 2017-12-18 | Fraunhofer Ges Forschung | Método y aparato para codificación, procesamiento y decodificación de envolvente de señal de audio mediante modelado de una representación de suma acumulativa que emplea cuantificación de distribución y codificación. |
WO2014198724A1 (en) | 2013-06-10 | 2014-12-18 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for audio signal envelope encoding, processing and decoding by splitting the audio signal envelope employing distribution quantization and coding |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE32580E (en) * | 1981-12-01 | 1988-01-19 | American Telephone And Telegraph Company, At&T Bell Laboratories | Digital speech coder |
JPS60116000A (ja) * | 1983-11-28 | 1985-06-22 | ケイディディ株式会社 | 音声符号化装置 |
US4969192A (en) * | 1987-04-06 | 1990-11-06 | Voicecraft, Inc. | Vector adaptive predictive coder for speech and audio |
NL8700985A (nl) * | 1987-04-27 | 1988-11-16 | Philips Nv | Systeem voor sub-band codering van een digitaal audiosignaal. |
US5012517A (en) * | 1989-04-18 | 1991-04-30 | Pacific Communication Science, Inc. | Adaptive transform coder having long term predictor |
US5327520A (en) * | 1992-06-04 | 1994-07-05 | At&T Bell Laboratories | Method of use of voice message coder/decoder |
US5314457A (en) * | 1993-04-08 | 1994-05-24 | Jeutter Dean C | Regenerative electrical |
US5533052A (en) * | 1993-10-15 | 1996-07-02 | Comsat Corporation | Adaptive predictive coding with transform domain quantization based on block size adaptation, backward adaptive power gain control, split bit-allocation and zero input response compensation |
-
1995
- 1995-09-19 US US08/530,980 patent/US5710863A/en not_active Expired - Lifetime
-
1996
- 1996-09-17 ES ES96306736T patent/ES2174030T3/es not_active Expired - Lifetime
- 1996-09-17 DE DE69621393T patent/DE69621393T2/de not_active Expired - Lifetime
- 1996-09-17 CA CA002185731A patent/CA2185731C/en not_active Expired - Fee Related
- 1996-09-17 EP EP96306736A patent/EP0764941B1/de not_active Expired - Lifetime
- 1996-09-18 MX MX9604161A patent/MX9604161A/es not_active IP Right Cessation
- 1996-09-19 JP JP8247609A patent/JPH09152900A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US5710863A (en) | 1998-01-20 |
DE69621393D1 (de) | 2002-07-04 |
EP0764941B1 (de) | 2002-05-29 |
MX9604161A (es) | 1997-08-30 |
JPH09152900A (ja) | 1997-06-10 |
EP0764941A2 (de) | 1997-03-26 |
CA2185731A1 (en) | 1997-03-20 |
ES2174030T3 (es) | 2002-11-01 |
EP0764941A3 (de) | 1998-06-10 |
CA2185731C (en) | 2001-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69621393T2 (de) | Quantisierung von Sprachsignalen in prädiktiven Kodiersystemen unter Verwendung von Modellen menschlichen Hörens | |
DE69615302T2 (de) | Maskierung des wahrnehmbaren Rauschens auf der Basis der Frequenzantwort eines Synthesefilters | |
DE69620967T2 (de) | Synthese von Sprachsignalen in Abwesenheit kodierter Parameter | |
DE69529393T2 (de) | Verfahren zur gewichteten Geräuschfilterung | |
DE60029990T2 (de) | Glättung des verstärkungsfaktors in breitbandsprach- und audio-signal dekodierer | |
DE69926821T2 (de) | Verfahren zur signalgesteuerten Schaltung zwischen verschiedenen Audiokodierungssystemen | |
DE69132885T2 (de) | CELP-Kodierung niedriger Verzögerung und 32 kbit/s für ein Breitband-Sprachsignal | |
DE60011051T2 (de) | Celp-transkodierung | |
DE69634645T2 (de) | Verfahren und Vorrichtung zur Sprachkodierung | |
DE19811039B4 (de) | Verfahren und Vorrichtungen zum Codieren und Decodieren von Audiosignalen | |
DE69529356T2 (de) | Wellenforminterpolation mittels Zerlegung in Rauschen und periodische Signalanteile | |
EP2022043B1 (de) | Informationssignalcodierung | |
DE69531642T2 (de) | Synthese eines Anregungssignals bei Ausfall von Datenrahmen oder Verlust von Datenpaketen | |
DE69916321T2 (de) | Kodierung eines verbesserungsmerkmals zur leistungsverbesserung in der kodierung von kommunikationssignalen | |
DE10041512B4 (de) | Verfahren und Vorrichtung zur künstlichen Erweiterung der Bandbreite von Sprachsignalen | |
DE60013785T2 (de) | VERBESSERTE SUBJEKTIVE QUALITäT VON SBR (SPECTRAL BAND REPLICATION)UND HFR (HIGH FREQUENCY RECONSTRUCTION) KODIERVERFAHREN DURCH ADDIEREN VON GRUNDRAUSCHEN UND BEGRENZUNG DER RAUSCHSUBSTITUTION | |
EP1979901B1 (de) | Verfahren und anordnungen zur audiosignalkodierung | |
DE60121405T2 (de) | Transkodierer zur Vermeidung einer Kaskadenkodierung von Sprachsignalen | |
DE69910239T2 (de) | Verfahren und vorrichtung zur adaptiven bandbreitenabhängigen grundfrequenzsuche für die kodierung breitbandiger signale | |
DE69836785T2 (de) | Audiosignalkompression, Sprachsignalkompression und Spracherkennung | |
DE69529672T2 (de) | System zur sprachkodierung | |
DE60128121T2 (de) | Wahrnehmungsbezogen verbesserte aufbesserung kodierter akustischer signale | |
KR101143724B1 (ko) | 부호화 장치 및 부호화 방법, 및 부호화 장치를 구비한 통신 단말 장치 및 기지국 장치 | |
DE60012760T2 (de) | Multimodaler sprachkodierer | |
MXPA96004161A (en) | Quantification of speech signals using human auiditive models in predict encoding systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |