DE60124274T2 - Codebuchstruktur und suchverfahren für die sprachkodierung - Google Patents

Codebuchstruktur und suchverfahren für die sprachkodierung Download PDF

Info

Publication number
DE60124274T2
DE60124274T2 DE60124274T DE60124274T DE60124274T2 DE 60124274 T2 DE60124274 T2 DE 60124274T2 DE 60124274 T DE60124274 T DE 60124274T DE 60124274 T DE60124274 T DE 60124274T DE 60124274 T2 DE60124274 T2 DE 60124274T2
Authority
DE
Germany
Prior art keywords
pulse
track
speech
codebook
locations
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
Application number
DE60124274T
Other languages
English (en)
Other versions
DE60124274D1 (de
Inventor
Yang Mission Viejo GAO
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HTC Corp
Original Assignee
Mindspeed Technologies LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mindspeed Technologies LLC filed Critical Mindspeed Technologies LLC
Application granted granted Critical
Publication of DE60124274D1 publication Critical patent/DE60124274D1/de
Publication of DE60124274T2 publication Critical patent/DE60124274T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/012Comfort noise or silence coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/005Correction of errors induced by the transmission channel, if related to the coding algorithm
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/083Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being an excitation gain
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • G10L19/125Pitch excitation, e.g. pitch synchronous innovation CELP [PSI-CELP]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/26Pre-filtering or post-filtering
    • G10L19/265Pre-filtering, e.g. high frequency emphasis prior to encoding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0316Speech enhancement, e.g. noise reduction or echo cancellation by changing the amplitude
    • G10L21/0364Speech enhancement, e.g. noise reduction or echo cancellation by changing the amplitude for improving intelligibility
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/002Dynamic bit allocation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/04Speech 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/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/09Long term prediction, i.e. removing periodical redundancies, e.g. by using adaptive codebook or pitch predictor
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/0001Codebooks
    • G10L2019/0004Design or structure of the codebook
    • G10L2019/0005Multi-stage vector quantisation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/0001Codebooks
    • G10L2019/0007Codebook element generation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/0001Codebooks
    • G10L2019/0011Long term prediction filters, i.e. pitch estimation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Description

  • Die Erfindung betrifft Sprachkommunikationssysteme und insbesondere Systeme und Verfahren für die digitale Sprachkodierung.
  • Eine gängige Form der menschlichen Kommunikation erfordert die Nutzung von Kommunikationssystemen. Kommunikationssysteme weisen Beides auf: drahtgebundene und drahtlose Übertragungssysteme. Drahtlose Kommunikationssysteme sind elektrisch mit drahtgebundenen Systemen verbunden und kommunizieren unter Nutzung von Funkfrequenz (RF, radio frequency) mit mobilen Kommunikationsgeräten. Derzeit liegen die für die Kommunikation in Mobilfunksystemen verfügbaren Funkfrequenzen beispielsweise im Frequenzbereich um 900 MHz und in den persönlichen Kommunikationssystemen (PCS, personal communication systems) um 1900 MHz. Durch den gesteigerten Kommunikationsverkehr, verursacht durch die wachsende Popularität der drahtlosen Kommunikationsgeräte, wie beispielsweise Mobilfunktelefone, ist es wünschenswert, die Bandbreite von Übertragungen in den drahtlosen Systemen zu reduzieren.
  • Die digitale Übertragung in der drahtlosen Telekommunikation wird zunehmend für beides, Sprache und Daten, verwendet -bedingt durch Rauschunempfindlichkeit, Zuverlässigkeit und Kompaktheit der Ausrüstung sowie die Fähigkeit, anspruchsvolle Signalverarbeitungsfunktionen, welche digitale technische Verfahren nutzen, zu implementieren. Die digitale Übertragung von Sprachsignalen weist folgende Schritte auf: Abtasten eines analogen wellenförmigen Sprachsignals mit einem Analog-zu-Digital Konverter, Sprachkomprimierung (Kodierung), Übertragung, Sprachdekomprimierung (Dekodierung), Digital-zu-Analog Konvertierung und Wiedergabe in einen Hörer oder Lautsprecher. Das Abtasten eines analogen wellenförmigen Sprachsignals mit einem Analog-zu-Digital Konverter erzeugt ein digitales Signal. Allerdings führt die Anzahl der im digitalen Signal zur Abbildung eines analogen wellenförmigen Sprachsignals verwendeten Bits zu einer relativ hohen Bandbreite. Zum Beispiel führt ein mit 8000 Hz (einmal aller 0,125 ms) abgetastetes Sprachsignal, bei dem jeder Abtastwert von 16 Bits repräsentiert wird, zu einer Bitrate von 128000 (16·8000) Bits pro Sekunde oder 128 kbps (kilobit per second).
  • Sprachkomprimierung reduziert die Anzahl der Bits, die das Sprachsignal abbilden, wodurch die zur Übertragung erforderliche Bandbreite vermindert wird. Allerdings kann Sprachkomprimierung zur Verschlechterung der Qualität dekomprimierter Sprache führen. Im Allgemeinen führt eine höhere Bitrate zu höherer Qualität, während eine niedrigere Bitrate zu geringerer Qualität führt. Dennoch können Sprachkomprimierungstechniken, wie zum Beispiel Kodiertechniken, dekomprimierte Sprache relativ hoher Qualität bei relativ niedrigen Bitraten erzeugen. Gewöhnlich versuchen Kodiertechniken niedriger Bitraten die wahrnehmbar wichtigen Merkmale des Sprachsignals darzustellen, mit oder ohne Beibehaltung des eigentlichen wellenförmigen Sprachsignals.
  • Typischerweise werden Teile des Sprachsignals, für welche die adäquat wahrnehmbare Wiedergabe schwieriger oder wichtiger ist (beispielsweise stimmhafte Sprache, Verschlusslaute oder stimmliche Einsätze), unter Nutzung einer höheren Anzahl von Bits kodiert. Teile des Sprachsignals, für welche die adäquat wahrnehmbare Wiedergabe weniger schwierig oder weniger wichtig ist (beispielsweise stimmlose Anteile oder die Stille zwischen den Worten) werden mit einer geringeren Anzahl von Bits kodiert. Die resultierende durchschnittliche Bitrate für das Sprachsignal wird vergleichsweise niedriger sein, als es für eine feste Bitrate der Fall sein würde, welche dekomprimierte Sprache von ähnlicher Qualität bereitstellt.
  • Das Dokument von Minde T. B. et al.: „An Enhanced Full-Rate Speech Coder for GSM and PCS1900", Speech Coding for Telekommunications, Tagungsband, XP10269436, 20. bis 22. September 1995, Seiten 65 bis 66, auf welchem der Oberbegriff von Anspruch 1 basiert, offenbart ein Sprachkodiersystem, in welchem ein Sprachverarbeitungsschaltkreis ein Kodierbuch aufweist, welches eine Mehrzahl untergeordneter Kodierbücher mit einem für Impulse bestimmten und einem für Geräusche bestimmten untergeordneten Kodierbuch aufweist und in dem jedes untergeordnete Kodierbuch eine Mehrzahl von Impulsorten für die Erzeugung mindestens eines Kodiervektors als Antwort auf ein wellenförmiges Sprachsignal aufweist.
  • Das Dokument von Soon Y. et al.: „A high quality Bi-celp speech Coder at 8 kbit/s and below", IEEE International Conference on Acoustics, Speech and Signal Processing, München, Deutschland, XP822558, 21. bis 24. April 1997, Band 2, Seiten 759 bis 762, zeigt ein Sprachkodiersystem, worin ein Anregungsvektor als eine Linearkombination zweier Kodiervektoren gebildet wird; einer von einem Zufallskodierbuch und der andere von einem Multi-Impuls Kodierbuch.
  • Ferner offenbart das Dokument von Järvinen K. et al.: „GSM Enhanced Full Rate Speech Codec", IEEE International Conference on Acoustics, Speech and Signal Processing, München, Deutschland, XP10225908, 21. bis 24. April 1997, Band 2, Seiten 771 bis 774 ein Sprachkodiersystem, welches ACELP (Algebraic Code Excited Linear Prediction) zur Qualitätsverbesserung nutzt, wobei ein algebraisches Kodierbuch als festes Kodierbuch verwendet wird.
  • In ähnlicher Weise offenbart das Dokument WO 00 54258A einen Schallquellen-Vektorgenerator und Sprachkodierer/dekodierer, wobei ein Zufallskodiervektor von einem algebraischen Kodierbuch erzeugt wird.
  • Ferner offenbart Dokument US 5 701 392 A ein System und ein Verfahren zur Kodierbuchsuche für das Erzielen einer schnellen Kodierung von Sprache, wobei ein algebraisches Kodierbuch aus Kodiervektoren gebildet wird, die Impulse mit Amplituden ungleich Null aufweisen.
  • Schließlich offenbart Dokument WO 00 11657 A ein Sprachkodiersystem und ein Verfahren zum Durchsuchen eines Kodierbuchs, wobei das Kodierbuch einen Kodiervektor mit einer Mehrzahl von Impulsen aufweist. Das Kodierbuch weist eine Mehrzahl von festen oder neuartigen untergeordneten Kodierbüchern für jede der Kodier-Bitraten zur Verwendung bei der Erzeugung neuartiger Vektoren auf.
  • Diese Sprachkomprimierungstechniken haben zur Verringerung der für die Übertragung eines Sprachsignals verwendeten Bandbreite geführt. Dennoch ist die weitere Reduzierung der Bandbreite in einem Kommunikationssystem wichtig für eine große Anzahl Anwender. Dementsprechend besteht ein Bedarf nach Sprachkodiersystemen und -verfahren, die zur Minimierung der zur Sprachrepräsentation benötigten durchschnittlichen Bitrate fähig sind, während sie eine hochqualitative dekomprimierte Sprache bereitstellen.
  • Zusammenfassung
  • Die Erfindung stellt ein Verfahren zum Aufbauen einer effizienten Kodierbuchstruktur und ein schnelles Suchverfahren bereit, welche zum Beispiel in einem SMV System verwendet werden. Das SMV System variiert die Kodier- und Dekodierraten in einem Kommunikationsgerät, wie beispielsweise einem Mobiltelefon, einem Mobilfunktelefon, einem tragbaren Funksender-Empfänger oder einem anderen drahtlosen oder drahtgebundenen Gerät. Die offenbarten Ausführungsbeispiele beschreiben ein System zur Variierung der Raten und zugehörigen Bandbreite gemäß eines Signals von einer externen Quelle, beispielsweise das Kommunikationssystem, mit dem das mobile Gerät zusammenwirkt. In verschiedenen Ausführungsbeispielen wählt das Kommunikationssystem einen Modus für das Kommunikations-Equipment aus, welches das System nutzt, und die Sprache wird gemäß diesem Modus verarbeitet.
  • Ein Ausführungsbeispiel eines Sprachkompressionssystems weist einen Codec mit voller Rate (Voll-Rate Codec), einen Codec mit halber Rate (Halb-Rate Codec), einen Codec mit viertel Rate (Viertel-Rate Codec) und einen Codec mit achtel Rate (Achtel-Rate Codec) auf, jeder davon in der Lage, Sprachsignale zu kodieren und dekodieren. Das Sprachkomprimierungssystem führt eine Auswahl der Rate (Rate-Auswahl) auf einer Rahmen-für-Rahmen Basis eines Sprachsignals durch, so dass einer der Codecs ausgewählt wird. Das Sprachkomprimierungssystem nutzt dann eine feste Kodierbuchstruktur mit einer Mehrzahl untergeordneter Kodierbücher. Eine Suchroutine wählt einen besten Kodiervektor für die Kodierung und Dekodierung der Sprache aus den Kodierbüchern aus. Die Suchroutine basiert auf der Minimierung einer Fehlerfunktion in einer iterativen Weise.
  • Dementsprechend ist der Sprachkodierer in der Lage, die Codecs selektiv zu aktivieren, so dass die Gesamtqualität des rekonstruierten Sprachsignals unter Beibehaltung der gewünschten durchschnittlichen Bitrate maximiert wird. Weitere Systeme, Verfahren, Merkmale und Vorteile der Erfindung sind oder werden für jemanden mit Fachkenntnissen in der Betrachtung der folgenden Figuren und detaillierten Beschreibung ersichtlich. Es ist beabsichtigt, dass all diese zusätzlichen Systeme, Verfahren, Merkmale und Vorteile, die diese Beschreibung aufweist, im Bereich dieser Erfindung liegen und durch die beigefügten Ansprüche geschützt werden.
  • Kurzbeschreibung der Figuren
  • Die Komponenten in den Figuren sind nicht unbedingt maßstabsgerecht, der Schwerpunkt liegt vielmehr auf der Veranschaulichung der Prinzipien der Erfindung. Ferner bezeichnen Bezugszeichen übereinstimmende Teile in den verschiedenen Ansichten.
  • 1 ist eine graphische Darstellung eines Sprachmusters während einer Zeitperiode.
  • 2 ist ein Blockdiagramm eines Ausführungsbeispiels eines Sprachkodiersystems.
  • 3 ist ein erweitertes Blockdiagramm eines in 2 gezeigten Sprachkodiersystems.
  • 4 ist ein erweitertes Blockdiagramm des in 2 veranschaulichten Dekodiersystems.
  • 5 ist ein Blockdiagramm, welches feste Kodierbücher darstellt.
  • 6 ist ein erweitertes Blockdiagramm des Sprachkodiersystems.
  • 7 ist ein Ablaufdiagramm für einen Prozess zum Finden eines festen untergeordneten Kodierbuchs.
  • 8 ist ein Ablaufdiagramm für einen Prozess zum Finden eines festen untergeordneten Kodierbuchs.
  • 9 ist ein erweitertes Blockdiagramm des Sprachkodiersystems.
  • 10 ist eine schematische Darstellung der Struktur eines untergeordneten Kodierbuchs.
  • 11 ist eine schematische Darstellung der Struktur eines untergeordneten Kodierbuchs.
  • 12 ist eine schematische Darstellung der Struktur eines untergeordneten Kodierbuchs.
  • 13 ist eine schematische Darstellung der Struktur eines untergeordneten Kodierbuchs.
  • 14 ist eine schematische Darstellung der Struktur eines untergeordneten Kodierbuchs.
  • 15 ist eine schematische Darstellung der Struktur eines untergeordneten Kodierbuchs.
  • 16 ist eine schematische Darstellung der Struktur eines untergeordneten Kodierbuchs.
  • 17 ist eine schematische Darstellung der Struktur eines untergeordneten Kodierbuchs.
  • 18 ist eine schematische Darstellung der Struktur eines untergeordneten Kodierbuchs.
  • 19 ist eine schematische Darstellung der Struktur eines untergeordneten Kodierbuchs.
  • 20 ist ein erweitertes Blockdiagramm des Dekodiersystems aus 2.
  • 21 ist ein Blockdiagramm eines Sprachkodiersystems.
  • Detaillierte Beschreibung der bevorzugten Ausführungsbeispiele
  • Sprachkomprimierungssysteme (Codecs) weisen einen Kodierer und einen Dekodierer auf und können zur Reduzierung der Bitrate digitaler Sprachsignale verwendet werden. Zahlreiche Algorithmen für Sprachcodecs sind entwickelt worden, welche die für die Kodierung der Originalsprache benötigte Anzahl von Bits reduzieren und dabei versuchen, die hohe Qualität rekonstruierter Sprache beizubehalten. CELP (Code-Excited Linear Predictive) Kodiertechniken, wie sie in dem Artikel mit dem Titel "Code-Excited Linear Prediction: High-Quality Speech at Very Low Rates" von M. R. Schroeder und B. S. Atal, Band ICASSP-85, Seiten 937–940, 1985, behandelt wurden, stellen einen effektiven Sprachkodieralgorithmus bereit. Ein Beispiel eines Kodierers, basierend auf CELP mit veränderlicher Rate, ist TIA (Telecommunications Industry Associations) IS-127 Standard, der für CDMA (code division multiple access) Anwendungen entwickelt wurde. Die CELP Kodiertechnik nutzt mehrere Prädikationstechniken so, dass die Redundanz aus dem Sprachsignal beseitigt wird. Das CELP Kodierverfahren speichert abgetastete Sprachsignale in Blöcken von Abtastwerten, die Rahmen genannt werden. Die Daten-Rahmen können dann verarbeitet werden, so dass ein komprimiertes Sprachsignal in digitaler Form erzeugt wird. Andere Ausführungsbeispiele können die Verarbeitung untergeordneter Rahmen, genauso wie stattdessen Rahmen-Verarbeitung, aufweisen.
  • 1 schildert die in CELP Sprachkodierung verwendeten Wellenformen. Ein eingehendes Sprachsignal 2 besitzt irgendein Maß der Vorhersagbarkeit oder Periodizität 4. Das CELP Kodierverfahren nutzt zwei Typen von Prädikationswerten, einen kurzfristigen Prädikationswert und einen langfristigen Prädikationswert. Der kurzfristige Prädikationswert wird typischerweise vor dem langfristigen Prädikationswert angewandt. Ein von dem kurzfristigen Prädikationswert abgeleiteter Prädikationsfehler wird kurzfristiger Restwert genannt und ein von dem langfristigen Prädikationswert abgeleiteter Prädikationsfehler wird langfristiger Restwert genannt. Bei der Benutzung von CELP Kodierung wird ein erster Prädikationsfehler kurzfristiger Restwert oder LPC Restwert 6 genannt. Ein zweiter Prädikationsfehler wird Abstandsrestwert 8 genannt.
  • Der langfristige Restwert kann unter Benutzung eines festen Kodierbuchs, welches eine Mehrzahl von festen Kodierbucheinträgen oder -vektoren aufweist, kodiert werden. Einer dieser Einträge kann ausgewählt und mit einer festen Kodierbuchverstärkung multipliziert werden, um den langfristigen Restwert abzubilden. Verzögerungs- und Verstärkungsparameter können auch aus einem adaptiven Kodierbuch berechnet und zur Sprachkodierung oder -dekodierung verwendet werden. Der kurzfristige Prädikationswert kann auch als eine LPC (Linear Prediction Coding) Repräsentation oder als eine spektrale Hüllkurvenrepräsentation bezeichnet werden und weist typischerweise 10 Prädikationsparameter auf. Jeder Verzögerungsparameter kann auch eine Abstandsverzögerung genannt werden und jeder Parameter der langfristigen Prädikationswertverstärkung kann auch eine adaptive Kodierbuchverstärkung genannt werden. Der Verzögerungsparameter definiert einen Eintrag oder einen Vektor in dem adaptiven Kodierbuch.
  • Der CELP Kodierer führt eine LPC Analyse durch, so dass die kurzfristigen Prädikationsparameter bestimmt werden. Im Anschluss an die LPC Analyse können die langfristigen Prädikationsparameter bestimmt werden. Zusätzlich erfolgt die Bestimmung des festen Kodierbucheintrages und der festen Kodierbuchverstärkung, welche den langfristigen Restwert am besten repräsentieren. In der CELP Kodierung wird Analyse-durch-Synthese (analysis-by-synthesis, ABS) verwendet. Im ABS Verfahren können der Beitrag des festen Kodierbuchs, die Verstärkung des festen Kodierbuchs und die langfristigen Prädikationsparameter durch Synthetisierung gefunden werden, unter Nutzung eines inversen Prädikationsfilters und unter Anwendung eines Wahrnehmungs-Wichtungs-Maßes. Die kurzfristigen (LPC) Prädikationskoeffizienten, die Verstärkung des festen Kodierbuchs, genauso wie der Verzögerungsparameter und der Parameter der langfristigen Verstärkung können dann quantisiert werden. Die Quantisierungs-Indizes können, genauso wie die Indizes des festen Kodierbuchs, vom Kodierer an den Dekodierer gesandt werden.
  • Der CELP Dekodierer verwendet die Indizes des festen Kodierbuchs, so dass ein Vektor aus dem festen Kodierbuch extrahiert wird. Der Vektor kann mit der Verstärkung des festen Kodierbuchs multipliziert werden, so dass ein Beitrag des festen Kodierbuchs erzeugt wird. Ein Beitrag des langfristigen Prädikationswertes kann zum Beitrag des festen Kodierbuchs addiert werden, so dass eine synthetisierte Anregung erzeugt wird, welche als eine Anregung bezeichnet wird. Der Beitrag des langfristigen Prädikationswertes weist die Anregung aus der Vergangenheit auf, multipliziert mit der Verstärkung des langfristigen Prädikationswertes. Die Addition des Beitrages des langfristigen Prädikationswertes kann alternativ als Beitrag eines adaptiven Kodierbuchs oder als langfristige (Abstands-) Filterung betrachtet werden. Die kurzfristige Anregung kann einen inversen Prädikationsfilter mit kurzer Laufzeit (LPC) durchlaufen, welcher Prädikationskoeffizienten kurzer Laufzeit (LPC) verwendet, die durch den Kodierer quantisiert werden, so dass synthetisierte Sprache erzeugt wird. Die synthetisierte Sprache kann dann einen nachgeschalteten Filter durchlaufen, welcher das wahrnehmbare Kodierungsrauschen reduziert.
  • 2 ist ein Blockdiagramm eines Ausführungsbeispiels eines Sprachkomprimierungssystems 10, welches adaptive und feste Kodierbücher nutzen kann. Insbesondere kann das System feste Kodierbücher nutzen, welche eine Mehrzahl untergeordneter Kodierbücher für die Kodierung bei unterschiedlichen Raten aufweisen, abhängig von dem durch das externe Signal gesetzten Modus und der Sprachcharakterisierung. Das Sprachkomprimierungssystem 10 weist ein Kodiersystem 12, ein Kommunikationsmedium 14 und ein Dekodiersystem 16 auf, die wie dargestellt verbunden sein können. Das Sprachkomprimierungssystem 10 kann irgendein Kodiergerät sein, welches dazu in der Lage ist, ein Sprachsignal 18 zu empfangen und zu kodieren und es dann zu dekodieren, so dass eine nachbearbeitete synthetisierte Sprache 20 erzeugt wird.
  • Das Sprachkomprimierungssystem 10 arbeitet so, dass das Sprachsignal 18 empfangen wird. Das von einem Sender (nicht dargestellt) ausgestrahlte Sprachsignal 18 kann zum Beispiel von einem Mikrofon erfasst und vom Analog-zu-Digital Konverter (nicht dargestellt) digitalisiert werden. Der Sender kann eine menschliche Stimme, ein Musikinstrument oder ein anderes Gerät sein, welches zur Ausstrahlung analoger Signale in der Lage ist.
  • Das Kodiersystem 12 arbeitet so, dass das Sprachsignal 18 kodiert wird. Das Kodiersystem 12 segmentiert das Sprachsignal 18 in Rahmen, so dass ein Bitstrom erzeugt wird. Ein Ausführungsbeispiel des Sprachkomprimierungssystems 10 verwendet Rahmen, die 160 Abtastwerte aufweisen, welche bei einer Abtastrate von 8000 Hz 20 ms pro Rahmen entsprechen. Die durch den Bitstrom repräsentierten Rahmen können für das Kommunikationsmedium 14 bereitgestellt werden.
  • Das Kommunikationsmedium 14 kann irgendein Übertragungsmechanismus sein, beispielsweise ein Kommunikationskanal, Funkwellen, drahtgebundene Übertragungen, faseroptische Übertragungen oder irgendein Medium, welches dazu in der Lage ist, den vom Kodiersystem 12 erzeugten Bitstrom zu transportieren. Das Kommunikationsmedium 14 kann auch ein Speichermechanismus sein, beispielsweise ein Speicherbaustein, ein Speichermedium oder ein anderer Baustein, welcher dazu in der Lage ist, den vom Kodiersystem 12 erzeugten Bitstrom zu speichern und abzufragen. Das Kommunikationsmedium 14 arbeitet so, dass der vom Kodiersystem 12 erzeugte Bitstrom zum Dekodiersystem 16 übertragen wird.
  • Das Dekodiersystem 16 empfängt den Bitstrom vom Kommunikationsmedium 14. Das Dekodiersystem 16 arbeitet so, dass der Bitstrom dekodiert wird und die nachbearbeitete synthetisierte Sprache 20 in Form eines digitalen Signals erzeugt wird. Die nachbearbeitete synthetisierte Sprache 20 kann dann von einem Digital-zu-Analog Konverter (nicht dargestellt) in ein analoges Signal umgewandelt werden. Das analoge Ausgangssignal des Digital-zu-Analog Konverters kann durch einen Empfänger (nicht dargestellt) empfangen werden, welcher ein menschliches Ohr, ein magnetischer Bandrekorder oder irgendein anderes Gerät sein kann, welches dazu fähig ist, ein analoges Signal zu empfangen. Alternativ kann die nachbearbeitete synthetisierte Sprache 20 durch ein digitales Aufzeichnungsgerät empfangen werden, ein Spracherkennungsgerät oder irgendein anderes Gerät, welches zum Empfangen eines digitalen Signals in der Lage ist.
  • Ein Ausführungsbeispiel des Sprachkomprimierungssystems 10 weist außerdem eine Modus-Leitung 21 auf. Die Modus-Leitung 21 transportiert ein Modussignal, welches die gewünschte durchschnittliche Bitrate für den Bitstrom anzeigt. Das Modussignal kann extern durch ein System erzeugt werden, welches das Kommunikationsmedium steuert, beispielsweise ein drahtloses Telekommunikationssystem. Das Kodiersystem 12 kann bestimmen, welche aus einer Mehrzahl von Codecs innerhalb des Kodiersystems 12 zu aktivieren sind oder wie der Codec in Beantwortung des Modussignals zu bedienen ist.
  • Die Codecs weisen einen Kodierer-Teil und einen Dekodierer-Teil auf, welche sich innerhalb des Kodiersystems 12 beziehungsweise des Dekodiersystems 16 befinden. In einer Ausführung des Sprachkomprimierungssystems 10 gibt es vier Codecs, nämlich einen Voll-Rate Codec 22, einen Halb-Rate Codec 24, einen Viertel-Rate Codec 26 und einen Achtel-Rate Codec 28. Jeder der Codecs 22, 24, 26 und 28 ist zur Erzeugung des Bitstroms einsetzbar. Die Größe des Bitstroms, der bei jedem Codec 22, 24, 26 und 28 erzeugt wird, und folglich die für seine Übertragung über das Kommunikationsmedium 14 benötigte Bandbreite, ist unterschiedlich.
  • In einem Ausführungsbeispiel erzeugen der Voll-Rate Codec (22) 170 Bits, der Halb-Rate Codec (24) 80 Bits, der Viertel-Rate Codec (26) 40 Bits und der Achtel-Rate Codec (28) 16 Bits pro Rahmen. Die Größe des Bitstroms jedes Rahmens entspricht der Bitrate, nämlich 8,5 kbps für den Voll-Rate Codec 22, 4,0 kbps für den Halb-Rate Codec 24, 2,0 kbps für den Viertel-Rate Codec 26 und 0,8 kbps für den Achtel-Rate Codec 28. Allerdings sind in alternativen Ausführungsbeispielen mehr oder weniger Codecs möglich, genauso wie andere Bitraten. Durch die Verarbeitung des Sprachsignals 18 mit den verschiedenen Codecs wird eine durchschnittliche Bitrate oder ein durchschnittlicher Bitstrom erzielt.
  • Das Kodiersystem 12 bestimmt, welche der Codecs 22, 24, 26 und 28 verwendet werden können, um einen bestimmten Rahmen basierend auf der Charakterisierung des Rahmens und auf der vom Modussignal vorgegebenen gewünschten durchschnittlichen Bitrate zu kodieren. Die Charakterisierung eines Rahmens basiert auf dem Anteil des Sprachsignals 18, der in dem jeweiligen Rahmen enthalten ist. Zum Beispiel können Rahmen als stationär stimmhaft, nicht-stationär stimmhaft, stimmlos, stimmlicher Einsatz, Hintergrundgeräusch, Stille usw. charakterisiert werden.
  • Das Modussignal auf der Modussignalleitung 21 zeigt in einem Ausführungsbeispiel einen Modus 0, einen Modus 1 und einen Modus 2 an; jeder der drei Modi stellt eine unterschiedliche gewünschte durchschnittliche Bitrate für die Variierung der prozentualen Verwendung von jedem der Codecs 22, 24, 26 und 28 bereit. Der Modus 0 kann als ein Premiummodus bezeichnet werden, in welchem die meisten Rahmen mit dem Voll-Rate Codec 22; weniger Rahmen mit dem Halb-Rate Codec 24; und Rahmen, welche Stille und Hintergrundgeräusch aufweisen, mit dem Viertel-Rate Codec 26 und dem Achtel-Rate Codec 28 kodiert werden. Modus 1 kann als ein Standardmodus bezeichnet werden, in welchem Rahmen mit hohem Informationsgehalt, beispielsweise stimmlicher Einsatz und einige stimmhafte Rahmen, mit dem Voll-Rate Codec 22 kodiert werden können. Zusätzlich können andere stimmhafte und stimmlose Rahmen mit dem Halb-Rate Codec 24, einige stimmlose Rahmen mit dem Viertel-Rate Codec 26 und Stille-Rahmen und Rahmen mit stationärem Hintergrundgeräusch mit dem Achtel-Rate Codec 28 kodiert werden.
  • Modus 2 kann als Sparmodus bezeichnet werden, in welchem nur wenige Rahmen mit hohem Informationsgehalt mit dem Voll-Rate Codec 22 kodiert werden können. Die meisten Rahmen in Modus 2 können mit dem Halb-Rate Codec 24 kodiert werden, mit Ausnahme einiger stimmloser Rahmen, die mit dem Viertel-Rate Codec 26 kodiert werden können. Stille und Rahmen mit stationärem Hintergrundgeräusch können mit dem Achtel-Rate Codec 28 in Modus 2 kodiert werden. Dementsprechend kann das Sprachkomprimierungssystem 10 durch die Variierung der Auswahl der Codecs 22, 24, 26 und 28 rekonstruierte Sprache der gewünschten durchschnittlichen Bitrate liefern, wobei versucht wird, die höchstmögliche Qualität beizubehalten. Weitere Modi, zum Beispiel ein in einem Super-Sparmodus arbeitetender Modus 3 oder ein maximal Halb-Rate Modus, in welchem der größte aktivierte Codec der Halb-Rate Codec 24 ist, sind in alternativen Ausführungsbeispielen möglich.
  • Ferner kann die Steuerung des Sprachkomprimierungssystems 10 auch durch eine Halb-Rate Signalleitung 30 bereitgestellt werden. Die Halb-Rate Signalleitung 30 liefert ein Halb-Rate Signalisierungs-Flag. Das Halb-Rate Signalisierungs-Flag kann von einer externen Quelle, beispielsweise einem drahtlosen Telekommunikationssystem, bereitgestellt werden. Sobald aktiviert, lässt das Halb-Rate Signalisierungs-Flag das Sprachkomprimierungssystem 10 den Halb-Rate Codec 24 als maximale Rate verwenden. In alternativen Ausführungsbeispielen lässt das Signalisierungs-Flag das Sprachkomprimierungssystem 10 einen Codec 22, 24, 26 oder 28 anstelle eines anderen verwenden oder kennzeichnet einen anderen Codec 22, 26 oder 28 als maximale oder minimale Rate.
  • In einem Ausführungsbeispiel des Sprachkompressionssystems 10 können der voll-Rate Codec 22 und der Halb-Rate Codec 24 auf einem eX-CELP (extended CELP) Verfahren basieren und der Codec mit Viertelrate 26 sowie der Codec mit Achtelrate 28 können auf einem Wahrnehmungsabgleich-Verfahrenn basieren. Das eX-CELP Verfahren erweitert die herkömmliche Balance zwischen Wahrnehmungsabgleich und Wellenform-Abgleich des herkömmlichen CELP. Insbesondere kategorisiert das eX-CELP Verfahren die Rahmen unter Verwendung einer Raten-Auswahl und einer Typklassifizierung, welche später beschrieben werden. In den verschiedenen Kategorien von Rahmen können verschiedene Kodierverfahren verwendet werden, welche unterschiedliche Wahrnehmungsabgleiche, unterschiedliche Wellenformabgleiche und unterschiedliche Bitbelegungen haben. Das Wahrnehmungsabgleich-Verfahren des Viertel-Rate Codecs 26 und des Achtel-Rate Codecs verwenden keinen Wellenformabgleich und konzentrieren sich stattdessen auf die Wahrnehmungsaspekte bei der Kodierung von Rahmen.
  • Die Rate-Auswahl wird bestimmt durch Charakterisierung jedes Rahmen des Sprachsignals basierend auf dem Anteil des in dem bestimmten Rahmen enthaltenen Sprachsignals. Zum Beispiel können Rahmen auf vielerlei Art charakterisiert werden, beispielsweise als stationäre stimmhafte Sprache, nicht-stationäre stimmhafte Sprache, stimmlos, Hintergrundgeräusch, Stille, und so weiter. Zusätzlich wird die Rate-Auswahl durch den vom Sprachkompressionssystem verwendeten Modus beeinflusst. Die Codecs wurden zur Optimierung der Kodierung innerhalb verschiedener Charakterisierungen des Sprachsignals entwickelt. Die optimale Kodierung gleicht den Wunsch, synthetisierte Sprache höchster wahrnehmbarer Qualität zu erzeugen, mit der Beibehaltung der gewünschten durchschnittlichen Rate des Bitstroms ab. Das erlaubt die maximale Nutzung der verfügbaren Bandbreite. Während des Betriebs aktiviert das Sprachkompressionssystem selektiv die Codecs, basierend auf dem Modus, genauso wie auf der Charakterisierung jeden Rahmen, so dass die wahrnehmbare Sprachqualität optimiert wird.
  • Die Kodierung jeden Rahmens, entweder mit dem eX-CELP Verfahren oder dem Wahrnehmungsabgleich-Verfahren, kann auf der weiteren Unterteilung des Rahmens in eine Mehrzahl untergeordneter Rahmen basieren. Die untergeordneten Rahmen können in Größe und Anzahl für jeden Codec 22, 24, 26 und 28 differieren und können innerhalb eines Codecs variieren. Innerhalb der untergeordneten Rahmen können die Sprachparameter und Wellenformen mit mehreren Prädiktions-Skalar-Techniken und Nicht-Prädiktions-Skalar-Techniken und Prädiktions-Vektorquantisierungs-Techniken kodiert sein. In der Skalarquantisierung kann ein Sprachparameter oder -element durch einen Indexort des nächstliegenden Eintrags in einer repräsentativen Skalartabelle repräsentiert werden. In der Vektorquantisierung können mehrere Sprachparameter gruppiert werden, so dass ein Vektor gebildet wird. Der Vektor kann durch einen Indexort des nächstliegenden Eintrages in einer repräsentativen Vektortabelle repräsentiert werden.
  • In der Prädikations-Kodierung kann ein Element aus der Vergangenheit vorhergesagt werden. Das Element kann ein Skalar oder ein Vektor sein. Der Prädikationsfehler kann dann unter Verwendung einer Skalartabelle (Skalarquantisierung) oder einer Vektortabelle (Vektorquantisierung) quantisiert werden. Das eX-CELP Kodierverfahren verwendet, ähnlich der traditionellen CELP, ein ABS (Analysis-by-Synthesis) Schema für die Auswahl der besten Abbildung für mehrere Parameter. Insbesondere können die Parameter in einem adaptiven Kodierbuch oder einem festen Kodierbuch, oder in beiden enthalten sein, und können außerdem Verstärkungsfaktoren für beide aufweisen. Das ABS-Schema nutzt inverse Prädikationsfilter und Wahrnehmungs-Wichtungs-Maße zur Auswahl der besten Kodierbucheinträge.
  • 3 ist ein detaillierteres Blockdiagramm des in 2 gezeigten Kodiersystems 12. Ein Ausführungsbeispiel des Kodiersystems 12 weist ein Vorverarbeitungsmodul 34, einen Voll-Rate Kodierer 36, einen Halb-Rate Kodierer 38, einen Viertel-Rate Kodierer 40 und einen Achtel-Rate Kodierer 42 auf, welche wie gezeigt verbunden sein können. Die Ratenkodierer 36, 38, 40 und 42 weisen ein Eingangs-Rahmen-Verarbeitungsmodul 44 und ein Anregungs-Verarbeitungsmodul 54 auf.
  • Das vom Kodiersystem 12 empfangene Sprachsignal 18 wird auf Rahmen-Level durch das Vorverarbeitungsmodul 34 verarbeitet. Das Vorverarbeitungsmodul 34 ist zur Bereitstellung einer ersten Verarbeitung des Sprachsignals 18 einsetzbar. Die erste Verarbeitung kann Filterung, Signalverbesserung, Rauschunterdrückung, Verstärkung und andere ähnliche Techniken aufweisen, die in der Lage sind, das Sprachsignal 18 für die nachfolgende Kodierung zu optimieren.
  • Der voll-Rate Kodierer 36, der Halb-Rate Kodierer 38, der Viertel-Rate Kodierer 40 und der Achtel-Rate Kodierer 42 sind der kodierende Anteil der Voll-, Halb-, Viertel- und Achtel-Raten Codecs 22, 24, 26 beziehungsweise 28. Das Eingangs-Rahmen-Verarbeitungsmodul 44 führt eine erste Rahmen-Verarbeitung sowie Sprachparameterextraktion durch und legt fest, welche der Raten-Kodierer 36, 38, 40 und 42 einen bestimmten Rahmen kodieren. Das Eingangs-Rahmen-Verarbeitungsmodul 44 kann anschaulich in eine Mehrzahl von Eingangs-Rahmen-Verarbeitungsmodule unterteilt werden, nämlich in ein Voll-Rahmen Eingangs-Verarbeitungsmodul 46, ein Halb-Rahmen Eingangs-Verarbeitungsmodul 48, ein Viertel-Rahmen Eingangs-Verarbeitungsmodul 50 und ein Achtel-Rahmen Eingangs-Verarbeitungsmodul 52. Das Eingangs-Rahmen-Verarbeitungsmodul 44 führt eine gemeinsame Verarbeitung durch, so dass eine Rate-Auswahl bestimmt werden kann, die einen der Raten-Kodierer 36, 38, 40 und 42 aktiviert.
  • In einem Ausführungsbeispiel basiert die Raten-Auswahl auf der Charakterisierung des Rahmen des Sprachsignals 18 und dem Modus des Sprachkomprimierungssystems 10. Die Aktivierung eines der Raten-Kodierer 36, 38, 40 und 42 aktiviert gleichzeitig eines der Eingangs-Rahmen-Verarbeitungsmodule 46, 48, 50 und 52. Ein bestimmtes Eingangs-Rahmen-Verarbeitungsmodul 46, 48, 50 oder 52 wird aktiviert, so dass die Kennzeichen des Sprachsignals 18, die für den ganzen Rahmen gleich sind, kodiert werden. Die Kodierung durch das Eingangs-Rahmen-Verarbeitungsmodul 44 quantisiert die Parameter des Sprachsignals 18, welche ein Rahmen aufweist. Die quantisierten Parameter führen zu einer Erzeugung eines Teils des Bitstroms. Die Module können außerdem anhand dessen eine erste Klassifikation durchführen, ob ein Rahmen Typ 0 oder Typ 1 ist (siehe unten). Die Typklassifizierung und Raten-Auswahl kann zur Optimierung der Kodierung durch Anteile des Anregungs-Verarbeitungsmoduls 54 verwendet werden, welche dem Voll-Rate Kodierer 36 und dem Halb-Rate Kodier 38 entsprechen.
  • Ein Ausführungsbeispiel des Anregungs-Verarbeitungsmoduls 54 kann in ein Voll-Rate Modul 56, ein Halb-Rate Modul 58, ein Viertel-Rate Modul 60 und ein Achtel-Rate Modul 62 unterteilt werden. Die Module 56, 58, 60 und 62 entsprechen den Kodierern 36, 38, 40 und 42. Das Voll-Rate Modul 56 und das Halb-Rate Module 58 eines Ausführungsbeispiels weisen beide eine Mehrzahl von Rahmen-Verarbeitungsmodulen und eine Mehrzahl von Verarbeitungsmodulen für untergeordnete Rahmen auf, die eine von den behandelten Kodierern substantiell verschiedene Kodierung liefern.
  • Der für den Voll-Rate Kodierer 36 und den Halb-Rate Kodierer 38 zuständige Teil des Anregungs-Verarbeitungs-Moduls 54 weist Typauswahlmodule, Verarbeitungsmodule für erste untergeordnete Rahmen, Verarbeitungsmodule für zweite untergeordnete Rahmen, Verarbeitungsmodule für erste Rahmen und Verarbeitungsmodule für zweite untergeordnete Rahmen auf. Speziell weist das Voll-Rate Modul 56 ein F-Typ Auswahlmodul 68, ein F0 Verarbeitungsmodul 70 für untergeordnete Rahmen, ein F1 Modul 72 für erste Rahmen-Verarbeitung, ein F1 Verarbeitungsmodul 74 für die Verarbeitung zweiter untergeordneter Rahmen und ein F1 Modul 76 für die Verarbeitung zweiter Rahmen auf. Der Ausdruck "F" kennzeichnet Voll-Rate, der Ausdruck "H" kennzeichnet Halb-Rate, und "0" sowie "1" zeigen Typ Null beziehungsweise Typ Eins an. In ähnlicher Weise weist das Halb-Rate Modul 58 ein H-Typ Auswahlmodul 78 auf, ein H0 Verarbeitungsmodul für untergeordnete Rahmen 80, ein H1 erstes Rahmen-Verarbeitungsmodul 82, ein H1 Verarbeitungsmodul für untergeordnete Rahmen 84 und ein H1 zweites Rahmen-Verarbeitungsmodul 86 auf.
  • Das F-Typ Auswahlmodul 68 und das H-Typ Auswahlmodul 78 steuern die Verarbeitung des Sprachsignals 18 so, dass der auf der Typklassifikation basierende Kodierprozess weiter optimiert wird. Die Klassifikation als Typ 1 zeigt an, dass der Rahmen eine harmonische Struktur und eine Formantstruktur aufweist, welche sich nicht schnell ändert, wie beispielsweise stationäre stimmhafte Sprache. Alle anderen Rahmen können als Typ 0 klassifiziert werden, beispielsweise eine harmonische Struktur und eine Formantstruktur, welche sich schnell ändert, oder der Rahmen zeigt stationäre stimmlose oder rauschähnliche Charakteristika. Die Bitanordnung für Rahmen, welche als Typ 0 klassifiziert sind, kann infolgedessen so eingestellt werden, dass dieses Verhalten besser dargestellt und ausgewiesen werden kann.
  • Die Klassifikation als Typ Null im voll-Rate Modul 56 aktiviert das F0 erste Verarbeitungsmodul für untergeordnete Rahmen 70, so dass der Rahmen auf Basis eines untergeordneten Rahmens verarbeitet wird. Das F1 erste Rahmen-Verarbeitungsmodul 72, das F1-Verarbeitungsmodul für untergeordnete Rahmen 74 und das F1 zweite Rahmen-Verarbeitungsmodul 76 werden kombiniert, so dass ein Anteil des Bitstroms erzeugt wird, wenn der verarbeitete Rahmen als Typ 1 klassifiziert wird. Die Typklassifizierung schließt beides ein: Verarbeitung untergeordneter Rahmen und Rahmen-Verarbeitung im Voll-Rate Modul 56.
  • In ähnlicher Weise erzeugt das H0 Verarbeitungsmodul für untergeordnete Rahmen 80 einen Anteil des Bitstroms auf einer Basis untergeordneter Rahmen für das Halb-Rate Modul 58, wenn der verarbeitete Rahmen als Typ Null klassifiziert wird.
  • Außerdem werden das H1 erste Rahmen-Verarbeitungsmodul 82, das H1-Verarbeitungsmodul für untergeordnete Rahmen 84 und das H1 zweite Rahmen-Verarbeitungsmodul 86 so kombiniert, dass ein Anteil des Bitstromes erzeugt wird, wenn der verarbeitete Rahmen als Typ Eins klassifiziert wird. Wie in dem Voll-Rate Modul 56 schließt die Klassifizierung als Typ Eins beides ein: die Verarbeitung untergeordneter Rahmen und die Rahmen-Verarbeitung.
  • Das Viertel-Rate Modul 60 und das Achtel-Rate Module 62 sind Teil der Viertel-Rate und Achtel-Rate Kodierer 40 beziehungsweise 42 und weisen keine Typklassifizierung auf. Die Typklassifizierung ist wegen der Beschaffenheit der verarbeiteten Rahmen nicht enthalten. Das Viertel-Rate Modul 60 und das Achtel-Rate-Modul 62 erzeugen einen Anteil des Bitstroms auf einer Basis untergeordneter Rahmen beziehungsweise einer Rahmen-Basis, wenn aktiviert.
  • Die Rate-Module 56, 58, 60 und 62 erzeugen einen Anteil des Bitstromes, welcher mit einem entsprechenden Anteil des von den Eingangs-Rahmen-Verarbeitungsmodulen 46, 48, 50 und 52 erzeugten Bitstroms zusammengefügt wird, so dass eine digitale Abbildung eines Rahmens entsteht. Zum Beispiel kann der Anteil des Bitstroms, welcher vom Voll-Rate Eingangs-Rahmen-Verarbeitungsmodul 46 und vom voll-Rate Modul 56 erzeugt wird, so zusammengefügt werden, dass ein Bitstrom gebildet wird, wenn der voll-Rate Kodierer 36 zur Kodierung eines Rahmens aktiviert wird. Die Bitströme von jedem der Kodierer 36, 38, 40 und 42 können außerdem so zusammengefügt werden, dass ein Bitstrom entsteht, der eine Mehrzahl der Rahmen des Sprachsignals 18 abbildet. Der von den Kodierern 36, 38, 40 und 42 erzeugte Bitstrom wird vom Dekodiersystem 16 dekodiert.
  • 4 ist ein erweitertes Blockdiagramm des in 2 gezeigten Dekodiersystems 16. Ein Ausführungsbeispiel des Dekodiersystems 16 weist einen Voll-Rate Dekodierer 90, einen Halb-Rate Dekodierer 92, einen Viertel-Rate Dekodierer 94, einen Achtel-Rate Dekodierer 96, ein Synthesefilter-Modul 98 und ein Nachbearbeitungsmodul 100 auf. Die Voll-, Halb-, Viertel- und Achtel-Rate Dekodierer 90, 92, 94 und 96, das Synthesefilter-Modul 98 und das Nachbearbeitungsmodul 100 sind der dekodierende Anteil der Voll-, Halb-, Viertel- und Achtel-Rate Codecs 22, 24, 26 und 28.
  • Die Dekodierer 90, 92, 94 und 96 empfangen den Bitstrom und dekodieren das digitale Signal, so dass verschiedene Parameter des Sprachsignals 18 rekonstruiert werden. Die Dekodierer 90, 92, 94 und 96 können zur Dekodierung jeden Rahmens basierend auf der Rate-Auswahl aktiviert werden. Die Rate-Auswahl kann vom Kodiersystem 12 durch einen separaten Informationsübertragungsmechanismus, wie beispielsweise einen Steuerkanal in einem drahtlosen Telekommunikationssystem, an das Dekodiersystem 16 geliefert werden. Alternativ ist die Rate-Auswahl in der Übertragung der kodierten Sprache enthalten (da jeder Rahmen separat kodiert wird) oder wird von einer externen Quelle übertragen.
  • Der Synthesefilter 98 und das Nachbearbeitungsmodul 100 sind Teil des Dekodierprozesses für jeden der Dekodierer 90, 92, 94 und 96. Das Zusammenfügen der Parameter des Sprachsignals 18, welche durch die Dekodierer 90, 92, 94 und 96 unter Nutzung des Synthesefilters 98 dekodiert werden, erzeugt ungefilterte synthetisierte Sprache. Die ungefilterte synthetisierte Sprache durchläuft das Nachbearbeitungsmodul 100, so dass die nachbearbeitete synthetisierte Sprache 20 erzeugt wird.
  • Ein Ausführungsbeispiel des Voll-Rate Dekodierers 90 weist einen F-Typ Selektor 102 und eine Mehrzahl Anregungs-Rekonstruktionsmodule auf. Zu den Anregungs-Rekonstruktionsmodulen gehören ein F0 Anregungs-Rekonstruktionsmodul 104 und ein F1 Anregungs-Rekonstruktionsmodul 106. Zusätzlich weist der Voll-Rate Dekodierer 90 ein Rekonstruktionsmodul für Koeffizienten linearer Prädikation (LPC, Linear Prediction Coefficient) 107 auf. Das LPC Rekonstruktionsmodul 107 weist ein F0 LPC Rekonstruktionsmodul 108 und ein F1 LPC Rekonstruktionsmodul 110 auf.
  • In ähnlicher Weise weist ein Ausführungsbeispiel eines Halb-Rate Dekodierers 92 einen H-Typ Selektor 112 und eine Mehrzahl von Anregungs-Rekonstruktionsmodulen auf. Zu den Anregungs-Rekonstruktionsmodulen gehören ein H0 Anregungs-Rekonstruktionsmodul 114 und ein H1 Anregungs-Rekonstruktionsmodul 116. Zusätzlich weist der Halb-Rate Dekodierer 92 ein Rekonstruktionsmodul für Koeffizienten linearer Prädikation (LPC) auf, welches ein H-LPC-Rekonstruktionsmodul 118 ist. Obwohl ähnlich im Konzept, sind die Voll- und Halb-Rate Dekodierer 90 und 92 dazu bestimmt, die Bitströme von den entsprechenden Voll- und Halb-Rate Kodierern 36 beziehungsweise 38 zu dekodieren.
  • Die F- und H-Typ Selektoren 102 und 112 aktivieren selektiv die entsprechenden Anteile der Voll- und Halb-Rate Dekodierer 90 und 92 in Abhängigkeit von der Typklassifikation. Wenn die Typklassifikation Typ Null ist, werden die F0 oder H0 Module zur Rekonstruktion der Anregung 104 oder 114 aktiviert. Umgekehrt werden, wenn die Typklassifikation Typ Eins ist, die F1 oder H1 Module zur Rekonstruktion der Anregung 106 oder 116 aktiviert. Die F0- oder F1-LPC-Rekonstruktionsmodule 108 oder 110 werden von den Typ Null beziehungsweise Typ Eins Klassifikationen aktiviert. Das H-LPC-Rekonstruktionsmodul 118 wird allein auf der Raten-Auswahl basierend aktiviert.
  • Der Viertel-Rate Dekodierer 94 weist ein Anregungs-Rekonstruktionsmodul 120 und ein LPC Rekonstruktionsmodul 122 auf. In ähnlicher Weise weist der Achtel-Rate Dekodierer 96 ein Anregungs-Rekonstruktionsmodul 124 und ein LPC Rekonstruktionsmodul 126 auf. Beide, die entsprechenden Anregungs-Rekonstruktionsmodule 120 oder 124, und die entsprechenden LPC Rekonstruktionsmodule 122 oder 126 werden allein auf der Raten-Auswahl basierend aktiviert, aber andere Aktivierungseingaben können bereitgestellt werden.
  • Jedes der Module zur Rekonstruktion der Anregung ist, wenn aktiviert, zum Bereitstellen der kurzfristigen Anregung auf einer kurzfristigen Anregungsleitung 128 einsetzbar. In ähnlicher Weise arbeitet jedes der LPC Rekonstruktionsmodule so, dass die kurzfristigen Prädikationskoeffizienten auf einer Leitung für kurzfristige Prädikationskoeffizienten 130 erzeugt werden. Die kurzfristigen Anregungs-Koeffizienten und die kurzfristigen Prädikationskoeffizienten werden an den Synthesefilter 98 geliefert. Zusätzlich werden in einem Ausführungsbeispiel die kurzfristigen Prädikationsparameter an das Nachbearbeitungsmodul 100 geliefert, wie in 4 gezeigt.
  • Das Nachbearbeitungsmodul 100 kann Filterung, Signalverbesserung, Rauschunterdrückung, Verstärkung, Anstiegskorrektur und andere ähnliche Techniken aufweisen, die in der Lage sind, die wahrnehmbare Qualität der synthetisierten Sprache zu verbessern. Eine Verringerung des hörbaren Rauschens kann durch das Hervorheben der Formantstruktur der synthetisierten Sprache erreicht werden, oder durch die Unterdrückung nur des Rauschens in den Frequenzregionen, welche wahrnehmbar nicht für die synthetisierte Sprache relevant sind. Da akustisches Rauschen eher bei niedrigeren Bitraten auffällt, kann ein Ausführungsbeispiel des Nachbearbeitungsmodules 100 so aktiviert werden, dass, abweichend von einem anderen Verfahren, die Nachbearbeitung der synthetisierten Sprache abhängig von der ausgewählten Rate durchgeführt wird. Ein anderes Ausführungsbeispiel des Nachbearbeitungsmodules 100 kann dazu einsetzbar sein, unterschiedliche Nachbearbeitungsarten für unterschiedliche Gruppen der Dekodierer 90, 92, 94 und 96 basierend auf der Rate-Auswahl bereitzustellen.
  • Während des Betriebs analysiert das in 3 gezeigte Eingangs-Rahmen-Verarbeitungsmodul 44 das Sprachsignal 18, so dass die Rate-Auswahl bestimmt wird und einer der Codecs 22, 24, 26 oder 28 aktiviert wird. Wenn zum Beispiel der Voll-Rate Codec 22 aktiviert wird, so dass ein Rahmen basierend auf der Rate-Auswahl verarbeitet wird, dann bestimmt das Voll-Rate Eingangs-Rahmen-Verarbeitungsmodul 46 die Typklassifikation für den Rahmen und erzeugt einen Teil des Bitstroms. Das Voll-Rate Modul 56 erzeugt basierend auf der Typklassifikation den Restbetrag des Bitstroms für den Rahmen.
  • Der Bitstrom kann vom Voll-Rate Dekodierer 90 basierend auf der Rate-Auswahl empfangen und dekodiert werden. Der Voll-Rate Dekodierer 90 dekodiert den Bitstrom unter Verwendung der Typenklassifikation, die während der Kodierung bestimmt wurde. Der Synthesefilter 98 und das Nachbearbeitungsmodul 100 nutzen die Parameter, welche vom Bitstrom dekodiert wurden, um die nachbearbeitete synthetisierte Sprache 20 zu erzeugen. Der Bitstrom, der von jedem der Codecs 22, 24, 26 oder 28 erzeugt wurde, weist deutlich unterschiedliche Bitallokationen auf, so dass unterschiedliche Parameter und/oder Charakteristika des Sprachsignals 18 innerhalb eines Rahmens hervorgehoben werden.
  • Feste Kodierbuchstruktur
  • Die feste Kodierbuchstruktur erlaubt die reibungslose Funktion der Kodierung und Dekodierung der Sprache in einem Ausführungsbeispiel. Wie unter Fachleuten bekannt und oben beschrieben, weisen die Codecs außerdem adaptive und feste Kodierbücher auf, welche die kurzfristigen und langfristigen Restwerte minimieren helfen. Es wurde herausgefunden, dass bestimmte Kodierbuchstrukturen wünschenswert sind, wenn Sprache entsprechend der Erfindung kodiert und dekodiert wird. Diese Strukturen betreffen hauptsächlich die feste Kodierbuchstruktur und insbesondere ein festes Kodierbuch, welches eine Mehrzahl untergeordneter Kodierbücher aufweist. In einem Ausführungsbeispiel wird eine Mehrzahl fester untergeordneter Kodierbücher nach dem besten untergeordneten Kodierbuch und dann nach einem Kodiervektor innerhalb des ausgewählten untergeordneten Kodierbuchs durchsucht.
  • 5 ist ein Blockdiagramm, welches die Struktur fester Kodierbücher und untergeordneter Kodierbücher in einem Ausführungsbeispiel darstellt. Das feste Kodierbuch für den F0 Codec weist drei (verschiedene) untergeordnete Kodierbücher 161, 163 und 165, jedes mit 5 Impulsen, auf. Das feste Kodierbuch für den F1 Codec ist ein einzelnes untergeordnetes 8-Impuls-Kodierbuch 162. Für den Halb-Rate Codec weist das feste Kodierbuch 178 drei untergeordnete Kodierbücher für den H0 auf, ein untergeordnetes 2-Impuls-Kodierbuch 192, ein untergeordnetes 3-Impuls-Kodierbuch 194 und ein drittes untergeordnetes Kodierbuch 196 mit Gauß'schem Rauschen. Im H1 Codec weist das feste Kodierbuch ein untergeordnetes 2-Impuls-Kodierbuch 193, ein untergeordnetes 3-Impuls-Kodierbuch 195 und ein untergeordnetes 5-Impuls-Kodierbuch 197 auf. In einem anderen Ausführungsbeispiel weist der H1 Codec nur ein untergeordnetes 2-Impuls-Kodierbuch 193 und ein untergeordnetes 3-Impuls-Kodierbuch 195 auf.
  • Wichtungsfaktoren bei der Auswahl eines festen untergeordneten Kodierbuchs und eines Kodiervektors
  • Die Kodierung mit niedrigen Bitraten verwendet das wichtige Konzept der Wahrnehmungs-Wichtung, um die Sprachkodierung festzulegen. Hier wird ein spezieller Wichtungsfaktor vorgestellt, welcher anders als der vorher für den Wahrnehmungs-Wichtungs-Filter in der Regelkreisanalyse beschriebene Faktor ist. Dieser spezielle Wichtungsfaktor wird unter Verwendung spezieller Sprachmerkmale erzeugt und als ein Kriteriumswert zur Bevorzugung eines speziellen untergeordneten Kodierbuchs in einem mit einer Mehrzahl untergeordneter Kodierbücher ausgestatteten Kodierbuch angewandt. Ein untergeordnetes Kodierbuch kann vor den anderen untergeordneten Kodierbüchern für ein spezielles Sprachsignal, wie beispielsweise rauschähnliche stimmlose Sprache, bevorzugt werden. Die zum Berechnen des Wichtungsfaktors verwendeten Merkmale weisen das Signal-zu-Rausch Verhältnis (SRV), die Sprachschärfe, die Abstandsverzögerung, die Abstandskorrelation, genauso wie andere Merkmale auf, ohne sich auf diese zu beschränken. Das Klassifikationssystem für jeden Sprachrahmen ist auch für das Definieren der Sprachmerkmale von Bedeutung.
  • Das SRV ist ein herkömmliches Verzerrungskriterium, welches als das Verhältnis zwischen einem Schätzwert der Energie des Hintergrundrauschens und der Energie eines Rahmens berechnet werden kann. Ein Ausführungsbeispiel der SRV-Berechnung stellt sicher, dass das Verhältnis nur echtes Hintergrundrauschen aufweist, indem eine modifizierte Stimmaktivitäts-Entscheidung verwendet wird. Zusätzlich können beispielsweise auch, bei Abbildung der vorher berechneten Parameter, das von den Reflektionskoeffizienten wiedergegebene Spektrum, die Abstandskorrelation Rp, das SRV, die Energie eines Rahmens, die Energie des vorhergehenden Rahmens, die verbleibende Schärfe und die gewichtete Sprachschärfe verwendet werden. Die Schärfe ist als das Verhältnis des Durchschnitts der Abtastwert-Absolutwerte zum Maximum der Sprachabtastwert-Absolutwerte definiert. Zusätzlich erhält man vor der Suche fester Kodierbücher aus der Rahmen-Klassen-Entscheidung und anderen Sprachparametern eine verfeinerte Suchklassifizierungs-Entscheidung für untergeordnete Rahmen.
  • Abstandskorrelation
  • Ein Ausführungsbeispiel des Zielsignals für Zeitverzerrung ist eine von der modifizierten gewichteten Sprache des aktuellen Segments abgeleitete Synthese, welche durch s'w (n) und die von Lp(n) repräsentierte Abstandsspur 348 gebildet wird. Entsprechend der Abstandsspur 348, Lp(n), kann jeder Abtastwert des Zielsignals stw (n), n = 0, ..., Ns – 1 durch Interpolation der modifizierten gewichteten Sprache unter Verwendung eines mit 21. Ordnung Hamming-gewichteten Spaltfensters,
    Figure 00270001
    für n = 0, ..., Ns – 1
    ermittelt werden, wobei I(Lp(n)) und f(Lp(n)) die ganzzahligen und partiellen Anteile der Abstandsverzögerung sind, beziehungsweise ist ws(f, i) das Hamming-gewichtete Spaltfenster und NS die Segmentlänge. Ein gewichtetes Ziel sw tw (n) ist durch swtw (n) = we(n)·stw (n) gegeben. Die Wichtungsfunktion we(n) kann eine zweiteilige lineare Funktion sein, welche den Abstandskomplex hervorhebt und das "Rauschen" zwischen den Abstandskomplexen abschwächt. Die Gewichtung kann entsprechend einer Klassifikation angepasst werden, indem der Abstandskomplex für Segmente höherer Periodizität stärker hervorgehoben wird.
  • Signalverzerrung
  • Die modifizierte gewichtete Sprache für das Segment kann gemäß der folgenden Abbildung gegeben durch
    Figure 00280001
    rekonstruiert werden, wobei τc ein die Verzerrungsfunktion definierender Parameter ist. Allgemein spezifiziert τc den Beginn des Abstandskomplexes. Der durch Gleichung 2 gegebene Abgleich spezifiziert eine Zeitverzerrung und der durch Gleichung 3 gegebene Abgleich spezifiziert eine Zeitverschiebung (keine Verzerrung). Beide können mittels Hamming-gewichteter Spaltfensterfunktion ausgeführt werden.
  • Abstandsverstärkung und Schätzung der Abstandskorrelation
  • Die Abstandsverstärkung und Abstandskorrelation können auf einer Abstandszyklus-Basis geschätzt werden und sind durch die Gleichungen 2 beziehungsweise 3 definiert. Die Abstandsverstärkung wird geschätzt, um den mittleren quadratischen Fehler zwischen dem durch Gleichung 1 definierten Ziel stw (n), und dem endgültigen durch die Gleichungen 2 und 3 definierten modifizierten Signal s'w '(n), zu minimieren, und können durch
    Figure 00290001
    gegeben sein. Die Abstandsverstärkung wird an das Anregungs-Verstärkungsmodul 54 als die unquantisierten Abstandsverstärkungen geliefert. Die Abstandskorrelation kann durch
    Figure 00290002
    gegeben sein. Beide Parameter sind auf einer Abstandszyklus-Basis verfügbar und können linear interpoliert sein.
  • Kodierung fester Kodierbücher für Rahmen vom Typ 0
  • 6 weist ein F0 Verarbeitungsmodul für untergeordnete Rahmen 70 und ein H0 Verarbeitungsmodule für untergeordnete Rahmen 80 auf, einschließlich einer Sektion mit adaptivem Kodierbuch 362, einer Sektion mit festem Kodierbuch 364 und einer Verstärkungs-Quantisierungs-Sektion 366. Die Sektion mit adaptivem Kodierbuch 362 empfängt eine Abstandsspur 348, nützlich zur Berechnung eines Bereichs in dem adaptiven Kodierbuch, so dass nach einem Vektor eines adaptiven Kodierbuchs va 382 (einer Verzögerung) gesucht wird. Das adaptive Kodierbuch führt außerdem eine Suche so durch, dass der beste Abstandsvektor va für jeden untergeordneten Rahmen bestimmt und gespeichert wird. Eine adaptive Verstärkung ga 384 wird in diesem Teil des Sprachsystems außerdem berechnet. Diese Betrachtung wird sich auf die Sektion des festen Kodierbuchs konzentrieren, und insbesondere auf die darin enthaltenen festen untergeordneten Kodierbücher. 6 zeigt die feste Kodierbuchsektion 364, welche ein festes Kodierbuch 390, einen Multiplizierer 392, einen Synthesefilter 394, einen Wahrnehmungs-Wichtungs-Filter 396, einen Subtrahierer 398 und ein Minimierungsmodul 400 aufweist. Die Suche nach dem Beitrag des festen Kodierbuchs durch die Sektion des festen Kodierbuchs 364 ist ähnlich der Suche in der Sektion des adaptiven Kodierbuchs 362. Die Verstärkungs-Quantisierungs-Sektion 366 kann ein 2D VQ Verstärkungskodierbuch 412, einen ersten Multiplizierer 414 und einen zweiten Multiplizierer 416, Addierer 418, Synthesefilter 420, Wahrnehmungs-Wichtungs-Filter 422, Subtrahierer 424 und ein Minimierungsmodul 426 aufweisen. Die Verstärkungs-Quantisierungs-Sektion nutzt die zweite, in der festen Kodierbuch-Sektion erzeugte, re-synthetisierte Sprache 406, und erzeugt auch eine dritte re-synthetisierte Sprache 438.
  • Ein fester Kodierbuchvektor (vc) 402, welcher den langfristigen Restwert für einen untergeordneten Rahmen repräsentiert, wird von dem festen Kodierbuch 390 bereitgestellt. Der Multiplizierer 392 multipliziert den festen Kodierbuchvektor (vc) 402 mit einer Verstärkung (gc) 404. Die Verstärkung (gc) 404 ist unquantisiert und ist eine Abbildung des Anfangswertes der festen Kodierbuchverstärkung, die wie später beschrieben berechnet werden kann. Das resultierende Signal wird an den Synthesefilter 394 geliefert. Der Synthesefilter 394 empfängt die quantisierten LPC Koeffizienten Aq(z) 342 und erzeugt zusammen mit dem Wahrnehmungs-Wichtungs-Filter 396 ein re-synthetisiertes Sprachsignal 406. Der Subtrahierer 398 subtrahiert das resynthetisierte Sprachsignal 406 von einem langfristigen Fehlersignal 388, so dass ein Fehlersignal eines festen Kodierbuchs 408 erzeugt wird.
  • Das Minimierungsmodul 400 empfängt das Fehlersignal eines festen Kodierbuchs 408, welches den Fehler bei der Quantisierung des langfristigen Restwertes durch das feste Kodierbuch 390 repräsentiert. Das Minimierungsmodul 400 verwendet das Fehlersignal eines festen Kodierbuchs 408 und besonders die Energie des Fehlersignales eines festen Kodierbuchs 408, genannt gewichteter mittlerer quadratischer Fehler (WMSE, weighted mean square error), so dass die Auswahl von Vektoren für den festen Kodierbuchvektor (vc) 402 aus dem festen Kodierbuch 292 so gesteuert wird, dass der Fehler verringert wird. Das Minimierungsmodul 400 empfängt auch die Steuerinformation 356, die eine endgültige Charakterisierung für jeden Rahmen aufweisen kann.
  • Die endgültige Charakterisierungsklasse, welche in der Steuerinformation 356 enthalten ist, steuert, wie das Minimierungsmodul 400 Vektoren für den festen Kodierbuchvektor (vc) 402 aus dem festen Kodierbuch 390 auswählt. Der Prozess wiederholt sich, bis die Suche durch das zweite Minimierungsmodul 400 den besten Vektor als festen Kodierbuchvektor (vc) 402 aus dem festen Kodierbuch 390 für jeden untergeordneten Rahmen ausgewählt hat. Der beste Vektor für den festen Kodierbuchvektor (vc) 402 minimiert den Fehler im zweiten re-synthetisierten Sprachsignal 406 hinsichtlich des langfristigen Fehlersignals 388. Die Indizes zeigen den besten Vektor für den festen Kodierbuchvektor (vc) 402 an und können, wie vorher betrachtet, zur Bildung der festen Kodierbuch-Komponenten 146a und 178a verwendet werden.
  • Durchsuchen eines festen Kodierbuchs vom Typ 0 für Voll-Rate Codec
  • Die feste Kodierbuchkomponente 146a für Rahmen der Klassifikation von Typ 0 kann jeden von vier untergeordneten Rahmen des Voll-Rate Codecs 22 abbilden, indem die drei verschiedenen untergeordneten 5-Impuls-Kodierbücher 160 verwendet werden. Sobald die Suche beginnt, können Vektoren für den festen Kodierbuchvektor (vc) 402 in dem festen Kodierbuch 390 bestimmt werden, indem das Fehlersignal 388, gegeben durch t'(n) = t(n) – ga·(e(n – Loptp )·h(n), (Gleichung 6)verwendet wird, wobei t'(n) ein Ziel für eine Suche eines festen Kodierbuchs ist, t(n) ein originales Zielsignal ist, ga eine adaptive Kodierbuchverstärkung ist, e(n) eine frühere Anregung zur Erzeugung eines Beitrages eines adaptiven Kodierbuchs ist, Lp opt eine optimierte Verzögerung ist und h(n) eine Impulsantwort eines wahrnehmbar gewichteten LPC Synthesefilters ist.
  • Die Abstandsverbesserung kann auf die untergeordneten 5-Impuls-Kodierbücher 161, 163, 165 innerhalb des festen Kodierbuchs 390 während der Suche in Vorwärtsrichtung oder Rückwärtsrichtung angewandt werden. Die Suche ist eine iterative, gesteuerte Komplexsuche nach dem besten Vektor aus dem festen Kodierbuch. Ein Anfangswert für die feste Kodierbuchverstärkung, repräsentiert durch die Verstärkung (gc) 404, kann gleichzeitig mit der Suche gefunden werden.
  • Die 7 und 8 veranschaulichen die zur Suche nach den besten Indizes im festen Kodierbuch verwendete Prozedur. In einem Ausführungsbeispiel hat ein festes Kodierbuch k untergeordnete Kodierbücher. Mehr oder weniger untergeordnete Kodierbücher können in anderen Ausführungsbeispielen verwendet werden. Um die Beschreibung der iterativen Suchprozedur zu vereinfachen, hat das folgende Beispiel zunächst ein einzelnes untergeordnetes Kodierbuch, welches N Impulse aufweist. Der mögliche Ort eines Impulses wird durch eine Mehrzahl von Positionen auf einer Spur definiert. In einem ersten Suchdurchlauf sucht die Kodiererschaltung die Impulspositionen sequenziell vom ersten Impuls 633 (PN = 1) zum nächsten Impuls 635, bis zum letzten Impuls 637 (PN = N). Für jeden dem ersten Impuls nachfolgenden Impuls wird die Suche nach der aktuellen Impulsposition durch die Berücksichtigung des Einflusses vorher lokalisierter Impulse geleitet. Der Einfluss soll die Energie des Fehlersignals des festen untergeordneten Kodierbuchs 408 minimieren. In einem zweiten Suchdurchlauf korrigiert die Verarbeitungsschaltung des Kodierers jede Impulsposition sequenziell, wiederum vom ersten Impuls 639 bis zum letzten Impuls 641, durch die Berücksichtigung des Einflusses aller anderen Impulse. In anschließenden Durchläufen wird die Funktionsweise des zweiten oder nachfolgenden Suchdurchlaufs wiederholt, bis der letzte Durchlauf 643 erreicht ist. Weitere Durchläufe können verwendet werden, wenn die hinzugefügte Komplexität erlaubt ist. Dieser Prozedur wird gefolgt, bis k Durchläufe komplett sind 645 und ein Wert für das untergeordnete Kodierbuch berechnet ist.
  • 8 ist ein Flussdiagramm für das in 7 beschriebene Verfahren zur Verwendung für die Suche in einem festen Kodierbuch, welches eine Mehrzahl untergeordneter Kodierbücher aufweist. Ein erster Durchlauf wird gestartet 651 durch Durchsuchen eines ersten untergeordneten Kodierbuch 653 und durch Durchsuchen anderer untergeordneter Kodierbücher 655 in der gleichen Weise, wie für 7 beschrieben, und Bewahren des besten Resultates 657, bis das letzte untergeordnete Kodierbuch durchsucht ist 659. Falls gewünscht, kann auch ein zweiter Durchlauf 661 oder anschließender Durchlauf 663 in einer iterativen Weise verwendet werden. In einigen Ausführungsbeispielen wird eines der untergeordneten Kodierbüchern in dem festen Kodierbuch typischerweise nach dem Beenden des ersten Suchdurchlaufes ausgewählt, so dass die Komplexität der Suche minimiert und die Suche verkürzt wird. Weitere Suchdurchläufe werden nur mit dem ausgewählten untergeordneten Kodierbuch durchgeführt. In anderen Ausführungsbeispielen kann eines der untergeordneten Kodierbücher nur nach dem zweiten Suchdurchlauf oder danach ausgewählt werden, sollten es die Verarbeitungsressourcen erlauben. Berechnungen minimaler Komplexität sind wünschenswert, insbesondere, da eher zwei- oder dreimal soviel Impulse berechnet werden müssen, als ein Impuls, ehe sich die hier beschriebenen Verbesserungen einstellen.
  • In einem Ausführungsbeispiel wird die Suche nach dem besten Vektor für den festen Kodierbuchvektor (vc) 402 in jedem der drei 5-Impuls-Kodierbücher 160 komlettiert. Beim Abschluss des Suchprozesses innerhalb jedes der drei 5-Impuls-Kodierbücher 160 sind beste Kandidaten-Vektoren für den festen Kodierbuchvektor (vc) 402 identifiziert worden. Die Auswahl, welcher der besten Kandidaten-Vektoren aus welchem der 5-Impuls-Kodierbücher 160 verwendet wird, kann durch Minimierung des entsprechenden Fehlersignals des festen Kodierbuchs 408 für jeden der drei besten Vektoren festgelegt werden. Für die Zwecke dieser Betrachtung wird für jedes der drei untergeordneten Kandidaten-Kodierbücher das entsprechende Fehlersignal des festen Kodierbuchs 408 als erstes, zweites und drittes Fehlersignal des festen untergeordneten Kodierbuchs bezeichnet.
  • Die Minimierung des gewichteten mittleren quadratischen Fehlers (WMSE) aus dem ersten, zweiten und dritten Fehlersignal des festen Kodierbuchs ist mathematisch mit der Maximierung eines Kriteriumswertes vergleichbar, welcher zuerst durch die Multiplikation mit einem Wichtungsfaktor modifiziert werden kann, um die Auswahl eines spezifischen untergeordneten Kodierbuchs zu begünstigen. Innerhalb des Voll-Rate Codecs 22 kann für als Typ 0 klassifizierte Rahmen der Kriteriumswert von dem ersten, zweiten und dritten Fehlersignal des festen Kodierbuchs durch die auf untergeordneten Rahmen basierenden Wichtungsmaße gewichtet werden. Der Wichtungsfaktor kann durch Benutzung eines Schärfemaßes des Restsignals, eines Sprachaktivitäts-Detektiermoduls, eines Signal-zu-Rausch Verhältnisses (SRV) und einer normierten Abstandskorrelation geschätzt werden. Andere Ausführungsbeispiele können andere Wichtungsfaktormaße nutzen. Basierend auf der Wichtung und auf dem maximalen Kriteriumswert können eines der drei festen 5- Impuls-Kodierbücher 160 und der beste Kandidaten-Vektor in diesem untergeordneten Kodierbuch ausgewählt werden.
  • Das ausgewählte 5-Impuls-Kodierbuch 161, 163 oder 165 kann dann für eine endgültige Entscheidung über den besten Vektor für den Vektor des festen Kodierbuchs (vc) 402 genau durchsucht werden. Die genaue Suche wird an den Vektoren im ausgewählten 5-Impuls-Kodierbuch 160 mit dem besten Kandidaten-Vektor, ausgewählt als erster Startvektor, durchgeführt. Die Indizes, welche den besten Vektor (maximaler Kriteriumswert) aus den festen Kodierbuchvektoren anzeigen, befinden sich im Bitstrom, so dass sie zum Dekodierer übertragen werden.
  • In einem Ausführungsbeispiel wird die Anregung des festen Kodierbuchs für den Voll-Rate Kodierer mit vier untergeordneten Rahmen durch 22 Bits pro untergeordnetem Rahmen repräsentiert. Diese Bits können verschiedene Impulsverteilungen, Impulsvorzeichen und Impulsorte repräsentieren. Die Anregung des festen Kodierbuchs für den Halb-Rate Kodierer mit zwei untergeordneten Rahmen wird durch 15 Bits pro untergeordnetem Rahmen repräsentiert, ebenfalls mit Impulsverteilungen, Impulsvorzeichen und Impulsorten, genauso wie mögliche zufällige Anregung. Deshalb werden 88 Bits für die feste Anregung im Voll-Rate Kodierer verwendet und 30 Bits werden für die feste Anregung im Halb-Rate Kodierer verwendet. In einem Ausführungsbeispiel weist das feste Kodierbuch eine Anzahl verschiedener untergeordneter Kodierbücher auf, wie in 5 dargestellt. Eine Suchroutine wird verwendet und nur der am besten abgeglichene Vektor von einem untergeordneten Kodierbuch wird für die weitere Verarbeitung ausgewählt.
  • Die Anregung des festen Kodierbuchs wird von 22 Bits für jeden der vier untergeordneten Rahmen des Voll-Rate Codecs für Rahmen des Typs 0 (F0) repräsentiert. Wie in 5 gezeigt, hat das feste Kodierbuch für Typ 0, Voll-Rate Kodierbuch 160, drei untergeordnete Kodierbücher. Ein erstes Kodierbuch 161 hat 5 Impulse und 221 Einträge. Das zweite Kodierbuch 163 hat auch 5 Impulse und 220 Einträge, während das dritte feste untergeordnete Kodierbuch 165 5 Impulse verwendet und 220 Einträge hat. Die Verteilung der Impulsorte ist in jedem der untergeordneten Kodierbücher unterschiedlich. Ein Bit wird zur Unterscheidung zwischen dem ersten Kodierbuch oder entweder dem zweiten oder dem dritten Kodierbuch verwendet und ein anderes Bit wird zur Unterscheidung zwischen dem zweiten und dem dritten Kodierbuch verwendet.
  • Das erste untergeordnete Kodierbuch des F0-Codecs hat eine 21-Bit-Struktur (zusammen mit dem 22. Bit zur Unterscheidung des untergeordneten Kodierbuchs), in welcher dieses 5-Impuls-Kodierbuch 4 Bits (16 Positionen) pro Spur für jede von drei Spuren verwendet, und 3 Bits für jede von zwei Spuren, so dass 21 Bits die Impulsorte abbilden (drei Bits für Vorzeichen und 3 Spuren × 4 Bits + 2 Spuren × 3 Bits = 18 Bits). Ein Beispiel eines Kodierverfahrens für feste untergeordnete 5-Impuls-Kodierbücher mit 21 Bits für jeden untergeordneten Rahmen sieht folgendermaßen aus:
    Impuls 1: (0, 5, 10, 15, 20, 25, 30, 35, 2, 7, 12, 17, 22, 27, 32, 37)
    Impuls 2: (1, 6, 11, 16, 21, 26, 31, 36, 3, 8, 13, 18, 23, 28, 33, 38)
    Impuls 3: (4, 9, 14, 19, 24, 29, 34, 39)
    Impuls 4: (1, 6, 11, 16, 21, 26, 31, 36, 3, 8, 13, 18, 23, 28, 33, 38)
    Impuls 5: (4, 9, 14, 19, 24, 29, 34, 39).
    wobei die Zahlen den Ort innerhalb des untergeordneten Rahmens repräsentieren.
  • Zu bemerken ist, dass zwei der Spuren "3-Bit" mit 8 Positionen ungleich Null sind, während die anderen drei "4-Bit" mit 16 Positionen sind. Zu bemerken ist, dass die Spur für den zweiten Impuls dieselbe wie die Spur für den vierten Impuls ist und dass die Spur für den dritten Impuls dieselbe wie die Spur für den fünften Impuls ist. Allerdings ist der Ort des zweiten Impulses nicht unbedingt derselbe wie der Ort des vierten Impulses und der Ort des dritten Impulses ist nicht unbedingt derselbe wie der Ort des fünften Impulses. Zum Beispiel kann der zweite Impuls am Ort 16 sein, während der vierte Impuls am Ort 28 sein kann. Da es 16 mögliche Orte für Impuls 1, Impuls 2 und Impuls 4 gibt, wird jeder von ihnen von 4 Bits dargestellt. Da es acht mögliche Orte für die Impulse 3 und 5 gibt, wird jeder von ihnen von 3 Bits repräsentiert. Ein Bit wird verwendet, um das Vorzeichen von Impuls 1 abzubilden; 1 Bit wird verwendet, um das gemeinsame Vorzeichen von Impuls 2 und Impuls 4 abzubilden und 1 Bit wird verwendet, um das gemeinsame Vorzeichen von Impuls 3 und Impuls 5 darzustellen. Das gemeinsame Vorzeichen nutzt die Redundanz der Information in den Impulsorten. Zum Beispiel ist die Platzierung von Impuls 2 am Ort 11 und die Platzierung von Impuls 4 am Ort 36 das Gleiche wie die Platzierung von Impuls 2 am Ort 36 und die Platzierung von Impuls 4 am Ort 11. Diese Redundanz ist gleich 1 Bit und deshalb werden zwei verschiedene Vorzeichen mit einem einzelnen Bit für Impuls 2 und Impuls 4 übertragen, genauso wie für Impuls 3 und Impuls 5. Der gesamte Bitstrom für dieses Kodierbuch weist 1 + 1 + 1 + 4 + 4 + 3 + 4 + 3 = 21 Bits auf. Die Struktur des festen untergeordneten Kodierbuchs wird in 10 gezeigt.
  • Eine Struktur für das zweite untergeordnete 5-Impuls-Kodierbuch 163 mit 220 Einträgen kann als eine Matrix mit fünf Zeilen dargestellt werden. 20 Bits reichen zur Abbildung des untergeordneten 5-Impuls-Kodierbuchs aus, wobei 3 Bits (8 Positionen pro Zeile) für jede Position (5 × 3 = 15 Bits) und 5 Bits für die Vorzeichen benötigt werden. (Wie oben bemerkt, zeigen die anderen 2 Bits bei insgesamt 22 Bits pro untergeordnetem Rahmen an, welche der drei untergeordneten Kodierbücher verwendet werden.)
    Pulse 1: (0, 1, 2, 3, 4, 6, 8, 10)
    Pulse 2: (5, 9, 13, 16, 19, 22, 25, 27)
    Pulse 3: (7, 11, 15, 18, 21, 24, 28, 32)
    Pulse 4: (12, 14, 17, 20, 23, 26, 30, 34)
    Pulse 5: (29, 31, 33, 35, 36, 37, 38, 39),
    wobei die Zahlen den Ort innerhalb des untergeordneten Rahmens repräsentieren. Da jede Spur acht mögliche Orte hat, wird der Ort für jeden Impuls unter Benutzung von 3 Bits für jeden Impuls übertragen. Ein Bit wird zur Anzeige des Vorzeichens jedes Impulses verwendet. Deshalb weist der gesamte Bitstrom für dieses Kodierbuch 1 + 3 + 1 + 3 + 1 + 3 + 1 + 3 + 1 + 3 = 20 Bits auf. Diese Struktur wird in 11 veranschaulicht.
  • Die Struktur für das dritte untergeordnete 5-Impuls-Kodierbuch 165 des festen Kodierbuchs in der gleichen 20-Bit Umgebung ist
    Impuls 1: {0, 1, 2, 3, 4, 5, 6, 7}
    Impuls 2: {8, 9, 10, 11, 12, 13, 14, 15}
    Impuls 3: {16, 17, 18, 19, 20, 21, 22, 23}
    Impuls 4: {24, 25, 26, 27, 28, 29, 30, 31}
    Impuls 5: {32, 33, 34, 35, 36, 37, 38, 39},
    wobei die Zahlen den Ort innerhalb des untergeordneten Rahmens repräsentieren. Da jede Spur 8 mögliche Orte hat, kann der Ort für jeden Impuls unter Benutzung von 3 Bits übertragen werden. Ein Bit wird dafür verwendet, das Vorzeichen jedes Impulses anzuzeigen. Damit weist der gesamte Bitstrom für dieses Kodierbuch 1 + 3 + 1 + 3 + 1 + 3 + 1 + 3 + 1 + 3 = 20 Bits auf. Diese Struktur wird in 12 dargestellt.
  • Im F0 Codec resultiert jeder Suchdurchlauf in einem Kandidaten-Vektor von jedem untergeordneten Kodierbuch und einem entsprechenden Kriteriumswert als eine Funktion des gewichteten mittleren quadratischen Fehlers, welcher aus der Verwendung dieses ausgewählten Kandidaten-Vektors resultiert. Zu bemerken ist, dass der Kriteriumswert so gestaltet ist, dass die Maximierung des Kriteriumswertes zur Minimierung des gewichteten mittleren quadratischen Fehlers (WMSE) führt. Das erste untergeordnete Kodierbuch wird als erstes durchsucht, wobei ein erster Durchlauf (sequentielles Addieren der Impulse) und ein zweiter Durchlauf (eine weitere Verfeinerung der Impulsorte) verwendet werden. Das zweite untergeordnete Kodierbuch wird dann unter Verwendung nur eines ersten Durchlauf es durchsucht. Wenn der Kriteriumswert von diesem zweiten untergeordneten Kodierbuch größer ist als der Kriteriumswert von dem ersten untergeordneten Kodierbuch, dann wird das zweite untergeordnete Kodierbuch temporär ausgewählt, und wenn nicht, dann wird das erste untergeordnete Kodierbuch temporär ausgewählt. Der Kriteriumswert des temporär ausgewählten untergeordneten Kodierbuchs wird dann unter Verwendung einer Abstandskorrelation, der verfeinerten Klassenentscheidung für den untergeordneten Rahmen, der Restschärfe und des SRV modifiziert. Dann wird das dritte untergeordnete Kodierbuch durchsucht, wobei ein erster Durchlauf von einem zweiten Durchlauf gefolgt wird. Wenn der Kriteriumswert von der Suche des dritten untergeordneten Kodierbuchs größer ist als der modifizierte Kriteriumswert des temporär ausgewählten untergeordneten Kodierbuchs, dann wird das dritte untergeordnete Kodierbuch als das endgültige untergeordnete Kodierbuch ausgewählt, wenn nicht, dann ist das temporär ausgewählte untergeordnete Kodierbuch (das erste oder zweite) das endgültige untergeordnete Kodierbuch. Die Modifikation des Kriteriumswertes hilft bei der Auswahl des dritten untergeordneten Kodierbuchs (welches mehr für Rauschrepräsentation geeignet ist), sogar wenn der Kriteriumswert des dritten untergeordneten Kodierbuchs etwas kleiner als der Kriteriumswert des ersten oder zweiten untergeordneten Kodierbuchs ist.
  • Das endgültige untergeordnete Kodierbuch wird weiterhin unter Verwendung eines dritten Durchlaufs durchsucht, wenn das erste oder das dritte untergeordnete Kodierbuch als endgültiges untergeordnetes Kodierbuch ausgewählt wurde, oder unter Verwendung eines zweiten Durchlauf s, wenn das zweite untergeordnete Kodierbuch als das endgültige untergeordnete Kodierbuch ausgewählt wurde, um die besten Impulsorte im endgültigen Kodierbuch auszuwählen.
  • Festes Kodierbuch vom Typ 0 für den Halb-Rate Codec
  • Die Anregung des festen Kodierbuchs für den Halb-Rate Codec vom Typ 0 verwendet 15 Bits für jeden der zwei untergeordneten Rahmen des Halb-Rate Codecs für Rahmen. Das Kodierbuch hat drei untergeordnete Kodierbücher, wovon zwei Impulskodierbücher sind und das dritte ein Gauß'sches Kodierbuch ist. Die Rahmen vom Typ 0 nutzen drei Kodierbücher für jeden der zwei untergeordneten Rahmen. Das erste Kodierbuch 192 hat zwei Impulse, das zweite Kodierbuch 194 hat drei Impulse und das dritte Kodierbuch 196 weist zufällige Anregung auf, vorherbestimmt unter Verwendung der Gauß'schen Verteilung (Gauß'sches Kodierbuch). Das Anfangsziel für die Verstärkung des festen Kodierbuchs, repräsentiert durch die Verstärkung (gc) 404, kann in ähnlicher Weise wie der Voll-Rate Codec 22 bestimmt werden. Zusätzlich kann die Suche nach dem festen Kodiervektor (vc) 402 innerhalb des festen Kodierbuchs 390 in ähnlicher Weise wie der Voll-Rate Codec 22 gewichtet werden. Im Halb-Rate Codec 24 kann die Wichtung auf den besten Vektor von jedem der Impulskodierbücher 192, 194, genauso wie vom Gauß'schen Kodierbuch 196, angewandt werden. Die Wichtung wird zur Bestimmung des aus einer Wahrnehmungsperspektive geeignetsten Vektors eines festen Kodierbuchs (vc) 402 angewandt.
  • Zusätzlich kann die Wichtung des gewichteten mittleren quadratischen Fehlers im Halb-Rate Codec 24 weiter erhöht werden, so dass die Wahrnehmungsperspektive hervorgehoben wird. Eine weitere Verbesserung kann durch die Aufnahme zusätzlicher Parameter in die Wichtung erreicht werden. Die zusätzlichen Faktoren können die Regelkreis-Abstandsverzögerung und die normierte adaptive Kodierbuchkorrelation sein. Andere Charakteristika können eine weitere Verbesserung der wahrgenommenen Sprachqualität ermöglichen.
  • Das ausgewählte Kodierbuch, die Impulsorte und die Impulsvorzeichen für das Impulskodierbuch oder die Gauß'sche Anregung für das Gauß'sche Kodierbuch werden in 15 Bits für jeden untergeordneten Rahmen von 80 Abtastwerten kodiert. Das erste Bit im Bitstrom zeigt an, welches Kodierbuch verwendet wird; wenn das erste Bit auf "1" gesetzt ist, dann wird das erste Kodierbuch verwendet und wenn das erste Bit auf "0" gesetzt ist, dann wird entweder das zweite Kodierbuch oder das dritte Kodierbuch verwendet. Wenn das erste Bit auf "1" gesetzt ist, dann werden die übrigen 14 Bits zur Beschreibung der Impulsorte und Impulsvorzeichen für das erste Kodierbuch verwendet. Wenn das erste Bit auf "0" gesetzt ist, dann zeigt das zweite Bit an, ob das zweite Kodierbuch oder das dritte Kodierbuch verwendet wird. Wenn das zweite Bit auf "1" gesetzt ist, dann wird das zweite Kodierbuch verwendet, und wenn das zweite Bit auf "0" gesetzt ist, dann wird das dritte Kodierbuch verwendet. Die übrigen 13 Bits werden zur Beschreibung der Impulsorte und -Vorzeichen für das zweite Kodierbuch oder die Gauß'sche Anregung für das dritte Kodierbuch verwendet.
  • Die Spuren für das untergeordnete 2-Impuls-Kodierbuch haben 80 Positionen und sind durch
    Impuls 1:
    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79
    Impuls 2:
    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 66, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79
    gegeben.
  • Da log2(80) = 6,322 ... kleiner ist als 6,5, kann der Ort für beide Impulse unter Verwendung von 2 × 6,5 = 13 Bits kombiniert und kodiert werden. Der erste Index wird mit 80 multipliziert und der zweite Index wird zum Ergebnis addiert. Dies führt zu einer kombinierten Indexzahl, welche kleiner als 213 = 8192 ist und von 13 Bits dargestellt werden kann. Am Dekodierer erhält man den ersten Index durch ganzzahlige Division der kombinierten Indexzahl durch 80 und den zweiten Index erhält man durch den Rest der Division der kombinierten Indexzahl durch 80. Da sich die Spuren für die zwei Impulse überlagern, repräsentiert nur 1 Bit beide Vorzeichen. Deshalb enthält der gesamte Bitstrom für dieses Kodierbuch 1 + 13 = 14 Bits. Diese Struktur wird in 13 gezeigt.
  • Für das untergeordnete 3-Impuls-Kodierbuch ist der Ort eines jeden Impulses auf spezielle Spuren beschränkt, welche durch die Kombination eines allgemeinen Ortes (definiert durch den Startpunkt) der Gruppe von drei Impulsen erzeugt werden, und die individuelle relative Verschiebung jedes der drei Impulsen vom allgemeinen Ort. Der allgemeine Ort ("Phase" genannt) wird durch 4 Bits definiert und die relative Verschiebung jedes Impulses wird durch 2 Bits pro Impuls definiert. Drei zusätzliche Bits definieren die Vorzeichen für die drei Impulse. Die Phase (der Startpunkt für die Platzierung der drei Impulse) und der relative Ort der Impulse sind gegeben durch:
    Phase 1: {0, 4, 8, 12, 16, 20, 24, 28, 33, 38, 43, 48, 53, 58, 63, 68}.
    Impuls 1: 0, 3, 6, 9
    Impuls 2: 1, 4, 7, 10
    Impuls 3: 2, 5, 8, 11.
  • Das folgende Beispiel veranschaulicht, wie die Phase mit dem relativen Ort verbunden ist. Für den Phasenindex 7 ist die Phase 28 (der 8. Ort, da die Indizes mit 0 beginnen). Dann kann der erste Impuls nur an den Orten 28, 31, 34 oder 37 sein, der zweite Impuls kann nur an den Orten 29, 32, 35 oder 38 sein und der dritte Impuls kann nur an den Orten 30, 33, 36 oder 39 sein. Der gesamte Bitstrom für das Kodierbuch weist 1 + 2 + 1 + 2 + 1 + 2 + 4 = 13 Bits auf: in der Sequenz von Impuls 1 relatives Vorzeichen und Ort, Impuls 2 relatives Vorzeichen und Ort, Impuls 3 relatives Vorzeichen und Ort, Phasenort. Diese 3-Impuls-Struktur fester untergeordneter Kodierbücher wird in 14 gezeigt.
  • In einem anderen Ausführungsbeispiel ist für das zweite untergeordnete Kodierbuch mit drei Impulsen der Ort jeden Impulses für Rahmen von Typ 0 auf spezielle Spuren beschränkt. Die Position des ersten Impulses ist mit einer festen Spur kodiert und die Positionen der verbleibenden zwei Impulse sind mit dynamischen Spuren kodiert, welche relativ zur ausgewählten Position des ersten Impulses sind. Die feste Spur für den ersten Impuls und die relativen Spuren für die anderen zwei Spuren sind wie folgt definiert:
    Impuls 1: 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75.
    Impuls 2: Pos1 – 7, Pos1 – 5, Pos1 – 3, Pos1 – 1, Pos1 + 1, Pos1 + 3, Pos1 + 5, Pos1 + 7.
    Impuls 3: Pos1 – 6, Pos1 – 4, Pos1 – 2, Pos1, Pos1 + 2, Pos1 + 4, Pos1 + 6, Pos1 + 8.
  • Natürlich muss die dynamische Spur auf den Bereich des untergeordneten Rahmens beschränkt sein. Die Gesamtzahl der Bits für dieses zweite untergeordnete Kodierbuch ist 13 Bits = 4(Impuls 1) + 3 (Impuls 2) + 3 (Impuls 3) + 3 (Vorzeichen).
  • Das Gauß'sche Kodierbuch wird als letztes durchsucht, wobei eine schnelle Suchroutine basierend auf zwei orthogonalen Basisvektoren verwendet wird. Ein gewichteter mittlerer quadratischer Fehler (WMSE) aus den drei Kodierbüchern wird für die endgültige Auswahl des Kodierbuchs und der Kodierbuch-Indizes wahrnehmungs-gewichtet. Für den Halb-Rate Codec, Typ 0, gibt es zwei untergeordnete Rahmen und 15 Bits werden zum Charakterisieren jedes untergeordneten Rahmens verwendet. Das Gauß'sche Kodierbuch nutzt eine der Gauß'schen Verteilung erzeugte Tabelle vorgegebener Zufallszahlen. Die Tabelle weist 32 Vektoren von 40 Zufallszahlen in jedem Vektor auf. Der untergeordnete Rahmen wird durch Verwendung von zwei Vektoren mit 80 Abtastwerten gefüllt, wobei der erste Vektor die geradzahligen Orte füllt und der zweite Vektor die ungeradzahligen Orte füllt. Jeder Vektor wird mit einem durch 1 Bit repräsentierten Vorzeichen multipliziert.
  • 45 Zufallsvektoren werden aus den 32 gespeicherten Vektoren erzeugt. Die ersten 32 Zufallsvektoren sind identisch mit den 32 gespeicherten Vektoren. Die letzten 13 Zufallsvektoren werden aus den 13 zuerst gespeicherten Vektoren in der Tabelle erzeugt, wobei jeder Vektor periodisch nach links geschoben wird. Die Verschiebung nach links wird durch die Bewegung der zweiten Zufallszahl in jedem Vektor an die erste Position im Vektor erreicht, die dritte Zufallszahl wird an die zweite Position verschoben, und so weiter. Um die periodische Bewegung nach links zu vervollständigen, wird die erste Zufallszahl am Ende des Vektors platziert. Da log2(45) = 5,492 ... weniger als 5,5 ist, können die Indizes beider Zufallsvektoren unter Benutzung von 2 × 5,5 = 11 Bits kombiniert und kodiert werden. Der erste Index wird mit 45 multipliziert und zum zweiten Index addiert. Dieses Ergebnis ist eine kombinierte Indexzahl, welche kleiner als 211 = 2048 ist und kann mit 11 Bits dargestellt werden. Das Gauß'sche Kodierbuch kann deshalb viel mehr Vektoren erzeugen und verwenden, als in dem Kodierbuch selbst enthalten sind.
  • Am Dekodierer wird der erste Index durch ganzzahlige Division der kombinierten Indexzahl durch 45 ermittelt und der zweite Index wird durch den Rest der Division der kombinierten Indexzahl durch 45 ermittelt. Die Vorzeichen der beiden Vektoren werden hierfür auch kodiert. Deshalb weist der gesamte Bitstrom für dieses Kodierbuch 1 + 1 + 11 = 13 Bits auf. Die Struktur des Gauß'schen festen untergeordneten Kodierbuchs wird in 15 gezeigt.
  • Für den H0 Codec wird das erste untergeordnete Kodierbuch als Erstes durchsucht, wobei ein erster Durchlauf (sequentielle Addition der Impulse) und ein zweiter Durchlauf (eine weitere Verfeinerung der Impulsorte) verwendet werden. Der Kriteriumswert für das erste untergeordnete Kodierbuch wird dann unter Verwendung einer Abstandsverzögerung und einer Abstandskorrelation modifiziert. Das zweite untergeordnete Kodierbuch wird dann in zwei Schritten durchsucht. Als erster Schritt wird ein Ort, der ein mögliches Zentrum repräsentiert, gefunden. Dann werden die drei Impulsorte um dieses Zentrum gesucht und bestimmt. Wenn der Kriteriumswert vom zweiten untergeordneten Kodierbuch größer als der modifizierte Kriteriumswert vom ersten untergeordneten Kodierbuch ist, dann wird das zweite untergeordnete Kodierbuch temporär ausgewählt, und wenn nicht, wird das erste untergeordnete Kodierbuch temporär ausgewählt. Der Kriteriumswert des temporär ausgewählten untergeordneten Kodierbuchs wird weiter modifiziert, wobei die verfeinerte Klassenentscheidung für untergeordnete Rahmen, die Abstandkorrelation, die Restschärfe, die Abstandsverzögerung und die SRV verwendet werden. Dann wird das Gauß'sche untergeordnete Kodierbuch durchsucht. Wenn der Kriteriumswert aus dem Durchsuchen des Gauß'schen untergeordneten Kodierbuchs größer ist als der modifizierte Kriteriumswert des temporär ausgewählten untergeordneten Kodierbuchs, dann wird das Gauß'sche untergeordnete Kodierbuch als das endgültige untergeordnete Kodierbuch ausgewählt. Falls nicht, dann ist das temporär selektierte untergeordnete Kodierbuch (das erste oder zweite) das endgültige untergeordnete Kodierbuch. Die Modifikation des Kriteriumswertes hilft, das Gauß'sche untergeordnete Kodierbuch (welches geeigneter für die Darstellung von Rauschen ist) auszuwählen, sogar wenn der Kriteriumswert des Gauß'schen untergeordneten Kodierbuchs etwas kleiner ist als der modifizierte Kriteriumswert des ersten untergeordneten Kodierbuchs oder der Kriteriumswert des zweiten untergeordneten Kodierbuchs. Der ausgewählte Vektor im endgültigen untergeordneten Kodierbuch wird ohne weiter verfeinerte Suche verwendet.
  • In einem anderen Ausführungsbeispiel wird ein untergeordnetes Kodierbuch verwendet, welches weder vom Gauß'schen noch vom Impuls-Typ ist. Dieses untergeordnete Kodierbuch kann mit einem vom Gauß'schen Verfahren verschiedenen Populationsverfahren erstellt werden, wobei mindestens 20% der Orte innerhalb des untergeordneten Kodierbuchs ungleich Null sind. Neben dem Gauß'schen Verfahren kann irgendein Erstellungsverfahren verwendet werden.
  • Kodierung fester Kodierbücher für Rahmen vom Typ 1
  • Entsprechend 9 weisen das F1 Verarbeitungsmodul für erste Rahmen 72 und das H1 Verarbeitungsmodul für erste Rahmen 82 ein 3D/4D Regelkreismodul VQ 454 auf. Das F1 Verarbeitungsmodul für untergeordnete Rahmen 74 und das H1 Verarbeitungsmodul für untergeordnete Rahmen 84 weisen das adaptive Kodierbuch 368, das feste Kodierbuch 390, einen ersten Multiplizierer 456, einen zweiten Multiplizierer 458, einen ersten Synthesefilter 460 und einen zweiten Synthesefilter 462 auf. Zusätzlich weisen das F Verarbeitungsmodul für untergeordnete Rahmen 74 und das H1 Verarbeitungsmodul für untergeordnete Rahmen 84 einen ersten Wahrnehmungs-Wichtungs-Filter 464, einen zweiten Wahrnehmungs-Wichtungs-Filter 466, einen ersten Subtrahierer 468, einen zweiten Subtrahierer 470, ein erstes Minimierungsmodul 472 und ein Modul zur Energieeinstellung 474 auf. Das F1 Verarbeitungsmodul für zweite Rahmen 76 und das H1 Verarbeitungsmodul für zweite Rahmen 86 weisen einen dritten Multiplizierer 476, einen vierten Multiplizierer 478, einen Addierer 480, einen dritten Synthesefilter 482, einen dritten Wahrnehmungs-Wichtungs-Filter 484, einen dritten Subtrahierer 486, ein Puffermodul 488, ein zweites Minimierungsmodul 490 und ein 3D/4D VQ Verstärkungskodierbuch 492 auf.
  • Die Verarbeitung der als Typ Eins klassifizierten Rahmen innerhalb des Anregungs-Verarbeitungs-Moduls 54 stellt eine Verarbeitung auf beidem, einer Rahmen-Basis und einer Basis untergeordneter Rahmen bereit. Um diese Darstellung kompakt zu halten, wird sich die folgende Betrachtung auf die Module innerhalb des voll-Rate Codecs 22 beziehen. Die Module im Halb-Rate Codec 24 können als ähnlich funktionierend angesehen werden, sofern nicht anders angegeben. Die Quantisierung der adaptiven Kodierbuchverstärkung durch das F1 erste Rahmen-Verarbeitungsmodul 72 erzeugt die adaptive Verstärkungskomponente 148b. Das F1 Verarbeitungsmodul für untergeordnete Rahmen 74 und das F1 zweite Rahmen-Verarbeitungsmodul 76 arbeiten so, dass der feste Kodierbuchvektor und die zugehörige feste Kodierbuchverstärkung bestimmt werden, beziehungsweise wie bereits dargelegt. Das F1 Verarbeitungsmodul für untergeordnete Rahmen 74 nutzt die Spurtabellen, wie bereits dargelegt, so dass die feste Kodierbuchkomponente 146b, wie in 6 veranschaulicht, erzeugt wird.
  • Das F1 zweite Rahmen-Verarbeitungsmodul 76 quantisiert die feste Kodierbuchverstärkung, so dass die feste Verstärkungskomponente 150b erzeugt wird. In einem Ausführungsbeispiel nutzt der Voll-Rate Codec 22 10 Bits für die Quantisierung von 4 festen Kodierbuchverstärkungen und der Halb-Rate Codec 24 nutzt 8 Bits für die Quantisierung der drei festen Kodierbuchverstärkungen. Die Quantisierung kann mittels einer Prädikation per gleitendem Durchschnitt durchgeführt werden. Generell werden die Prädikationszustände in eine geeignete Dimension konvertiert, bevor die Prädikation und die Quantisierung durchgeführt werden.
  • Im Voll-Rate Codec wird die Verstärkungskomponente für feste Kodierbücher vom Typ Eins 150b durch die Abbildung der Verstärkungen fester Kodierbücher mit einer Mehrzahl von Energien fester Kodierbücher, angegeben in Dezibel (dB), erzeugt. Die Energien der festen Kodierbücher werden quantisiert, so dass eine Mehrzahl quantisierter Energien fester Kodierbücher erzeugt wird, welche dann übersetzt werden, so dass eine Mehrzahl quantisierter Verstärkungen fester Kodierbücher erzeugt wird. Zusätzlich werden die Energien fester Kodierbücher aus den quantisierten Energiefehlern fester Kodierbücher des vorhergehenden Rahmens vorhergesagt, so dass eine Mehrzahl Prädikations-Energien fester Kodierbücher erzeugt wird. Der Unterschied zwischen den Prädikations-Energien fester Kodierbüchern und den Energien fester Kodierbücher ist eine Mehrzahl Prädikations-Energiefehler fester Kodierbücher. Für jeden untergeordneten Rahmen werden unterschiedliche Prädikationskoeffizienten verwendet. Die Prädikations-Energien der festen Kodierbücher des ersten, des zweiten, des dritten und des vierten untergeordneten Rahmens werden aus den vier quantisierten Energiefehlern fester Kodierbücher des vorhergehenden Rahmens vorhergesagt, beziehungsweise unter Verwendung der Koeffizientensets {0,7; 0,6; 0,4; 0,2}, {0,4; 0,2; 0,1; 0,05}, {0,3; 0,2; 0,075; 0,025} und {0,2; 0,075; 0,025; 0,0} vorhergesagt.
  • Erstes Rahmen-Verarbeitungsmodul
  • Das 3D/4D VQ Regelkreismodul 454 empfängt die unquantisierten Abstandsverstärkungen 352 von einem Abstands-Vorverstärkungsmodul (nicht dargestellt). Die unquantisierten Abstandsverstärkungen 352 repräsentieren die adaptive Kodierbuchverstärkung für die Regelkreis-Abstandsverzögerung. Das 3D/4D VQ Regelkreismodul 454 quantisiert die unquantisierten Abstandsverstärkungen 352, so dass eine quantisierte Abstandsverstärkung (gka ) 496 erzeugt wird, welche die besten quantisierten Abstandsverstärkungen für jeden untergeordneten Rahmen repräsentiert, wobei k die Anzahl der untergeordneten Rahmen ist. In einem Ausführungsbeispiel gibt es vier untergeordnete Rahmen für den Voll-Rate Codec 22 und drei untergeordnete Rahmen für den Halb-Rate Codec 24, welche den vier quantisierten Verstärkungen (g1a , g2a , g3a und g4a ) beziehungsweise drei quantisierten Verstärkungen (g1a , g2a und g3a ) jedes untergeordneten Rahmens entsprechen. Der Indexort der quantisierten Abstandsverstärkung (gka ) 496 innerhalb der Vorverstärkungs-Quantisierung-Tabelle repräsentiert die adaptive Verstärkungskomponente 148b für den Voll-Rate Codec 22 oder die adaptive Verstärkungskomponente 180b für den Halb-Rate Codec 24. Die quantisierte Abstandsverstärkung (gka ) 496 wird an das F1 zweite Verarbeitungsmodul für untergeordnete Rahmen 74 oder das H1 zweite Verarbeitungsmodul für untergeordnete Rahmen 84 geliefert.
  • Verarbeitungsmodul für untergeordnete Rahmen
  • Das F1 oder H1 Verarbeitungsmodul für untergeordnete Rahmen 74 oder 84 nutzt die Abstandsspur 348, so dass ein adaptiver Kodierbuchvektor ka ) 498 identifiziert wird. Der adaptive Kodierbuchvektor ka ) 498 repräsentiert das adaptive Kodierbuch für jeden untergeordneten Rahmen, wobei k die Nummer des untergeordneten Rahmens ist. In einem Ausführungsbeispiel gibt es vier untergeordnete Rahmen für den Voll-Rate Codec 22 und drei untergeordnete Rahmen für den Halb-Rate Codec 24, welche den vier Vektoren 1a , ν2a , ν3a und ν4a ) beziehungsweise drei Vektoren 1a , ν2a und ν3a ) für den Beitrag des adaptiven Kodierbuchs für jeden untergeordneten Rahmen entsprechen.
  • Der adaptive Kodierbuchvektor ka ) 498 und die quantisierte Abstandsverstärkung (g ^ka ) 496 werden von einem ersten Multiplizierer 456 multipliziert. Der erste Multiplizierer 456 erzeugt ein Signal, welches durch den ersten Synthesefilter 460 und das erste Wahrnehmungs-Wichtungs-Filtermodul 464 verarbeitet wird, so dass ein erstes re-synthetisiertes Sprachsignal 500 geliefert wird. Der erste Synthesefilter 460 empfängt die quantisierten LPC Koeffizienten Aq(z) 342 von einem LSF Quantisierungsmodul (nicht dargestellt) als Teil der Verarbeitung. Der erste Subtrahierer 468 subtrahiert das erste re-synthetisiertes Sprachsignal 500 von der modifizierten gewichteten Sprache 350, die von einem Abstands-Vorverarbeitungsmodul (nicht dargestellt) bereitgestellt wird, so dass ein langfristiges Fehlersignal 502 erzeugt wird.
  • Das F1 Verarbeitungsmodul für untergeordnete Rahmen 74 oder das H1 Verarbeitungsmodul für untergeordnete Rahmen 84 führt außerdem eine Suche nach dem Beitrag des festen Kodierbuchs durch, ähnlich zu der durch das bereits behandelte F0 Verarbeitungsmodul für untergeordnete Rahmen 70 und das bereits behandelte H0 Verarbeitungsmodul für untergeordnete Rahmen 80 durchgeführten. Vektoren für einen festen Kodierbuchvektor kc ) 504, der den langfristigen Fehler für einen untergeordneten Rahmen repräsentiert, werden vom festen Kodierbuch 390 während der Suche ausgewählt. Der zweite Multiplizierer 458 multipliziert den festen Kodierbuchvektor kc ) 504 mit einer Verstärkung ((gkc )) 506, wobei k gleich der Nummer des untergeordneten Rahmens ist. Die Verstärkung (gkc ) 506 ist unquantisiert und repräsentiert die feste Kodierbuchverstärkung für jeden untergeordneten Rahmen. Das resultierende Signal wird durch den zweiten Synthesefilter 462 und den zweiten Wahrnehmungs-Wichtungs-Filter 466 verarbeitet, so dass ein zweites re-synthetisiertes Sprachsignal 508 erzeugt wird. Das zweite re-synthetisierte Sprachsignal 508 wird vom langfristigen Fehlersignal 502 durch den zweiten Subtrahierer 470 subtrahiert, so dass ein festes Kodierbuch-Fehlersignal 510 erzeugt wird.
  • Das feste Kodierbuch-Fehlersignal 510 wird vom ersten Minimierungsmodul 472 zusammen mit der Steuerinformation 356 empfangen. Das erste Minimierungsmodul 472 arbeitet in der gleichen Weise wie das vorher behandelte zweite Minimierungsmodul 400, gezeigt in 6. Der Suchprozess wiederholt sich, bis das erste Minimierungsmodul 472 den besten Vektor für den festen Kodierbuchvektor kc ) 504 aus dem festen Kodierbuch 390 für jeden untergeordneten Rahmen ausgewählt hat. Der beste Vektor für den festen Kodierbuchvektor kc ) 504 minimiert die Energie des festen Kodierbuch-Fehlersignals 510. Die Indizes zeigen den besten Vektor für den festen Kodierbuchvektor kc ) 504 an, wie vorher behandelt, und bilden die festen Kodierbuchkomponenten 146b, 178b.
  • Durchsuchen eines festen Kodierbuchs vom Typ 1 für Voll-Rate Codec
  • In einem Ausführungsbeispiel wird das in 4 gezeigte 8-Impuls-Kodierbuch 162 vom Voll-Rate Codec 22 für jeden der vier untergeordneten Rahmen vom Typ 1 verwendet. Das Ziel für den festen Kodierbuchvektor kc ) 504 ist das langfristige Fehlersignal 502. Das von t'(n) repräsentierte langfristige Fehlersignal 502 wird basierend auf der modifizierten, gewichteten und von t(n) repräsentierten Sprache 350 abzüglich des Beitrags des adaptiven Kodierbuchs vom Eingangs-Rahmen-Verarbeitungsmodul 44, bestimmt, entsprechend: t'(n) = t(n) – g0·(ν0(n)·h(n)), (Gleichung 7)wobei
    Figure 00520001
    ist und wobei t'(n) das Ziel einer Suche eines festen Kodierbuchs ist, t(n) ein Zielsignal ist, ga eine Verstärkung eines adaptiven Kodierbuchs ist, h(n) eine Impulsantwort eines wahrnehmungs-gewichteten Synthesefilters ist, e(n) frühere Anregung ist, I(Lp(n)) der ganzzahlige Anteil einer Abstandsverzögerung ist und f(Lp(n)) ein Bruchteil einer Abstandsverzögerung ist und ws(f, i) ein Hamming-gewichtetes Spaltfenster ist.
  • Ein einzelnes Kodierbuch von 8 Impulsen mit 230 Einträgen wird für jeden der vier untergeordneten Rahmen für die Kodierung von Rahmen vom Typ 1 durch den Voll-Rate Codec verwendet. In diesem Beispiel gibt es 6 Spuren mit 8 möglichen Orten für jede Spur (jede 3 Bits) und zwei Spuren mit 16 möglichen Orten für jede Spur (jede 4 Bits). 4 Bits werden für Vorzeichen verwendet. 30 Bits werden für die Voll-Rate Codec-Verarbeitung jedes untergeordneten Rahmens vom Typ 1 bereitgestellt. Der Ort, wo jeder der Impulse im 40-sampligen untergeordneten Rahmen platziert werden kann, ist auf Spuren beschränkt. Spuren für die 8 Impulse sind gegeben durch:
    Impuls 1: {0, 5, 10, 15, 20, 25, 30, 35, 2, 7, 12, 17, 22, 27, 32, 37}
    Impuls 2: {1, 6, 11, 16, 21, 26, 31, 36}
    Impuls 3: {3, 8, 13, 18, 23, 28, 33, 38}
    Impuls 4: {4, 9, 14, 19, 24, 29, 34, 39}
    Impuls 5: {0, 5, 10, 15, 20, 25, 30, 35, 2, 7, 12, 17, 22, 27, 32, 37}
    Impuls 6: {1, 6, 11, 16, 21, 26, 31, 36}
    Impuls 7: {3, 8, 13, 18, 23, 28, 33, 38}
    Impuls 8: {4, 9, 14, 19, 24, 29, 34, 39}.
  • Die Spur für den ersten Impuls ist gleich der Spur für den fünften Impuls, die Spur für den zweiten Impuls ist gleich der Spur für den sechsten Impuls, die Spur für den dritten Impuls ist gleich der Spur für den siebten Impuls und die Spur für den vierten Impuls ist gleich der Spur für den achten Impuls.
  • Ähnlich der Betrachtung für das erste untergeordnete Kodierbuch für Rahmen vom Typ 0 sind die ausgewählten Impulsorte normalerweise nicht die gleichen. Da es 16 mögliche Orte für Impuls 1 und Impuls 5 gibt, wird jeder durch 4 Bits dargestellt. Das es 8 mögliche Orte für die Impulse 2 bis 8 gibt, ist jeder mit 3 Bits dargestellt. Ein Bit wird zur Abbildung des gemeinsamen Vorzeichens von Impuls 1 und Impuls 5 verwendet (Impuls 1 und Impuls 5 haben den gleichen Absolutwert und ihre ausgewählten Orte können vertauscht werden). 1 Bit wird zur Darstellung des gemeinsamen Vorzeichens von Impuls 2 und Impuls 6 verwendet, 1 Bit wird zur Darstellung des gemeinsamen Vorzeichens von Impuls 3 und Impuls 7 verwendet und 1 Bit zur Darstellung des gemeinsamen Vorzeichen von Impuls 4 und Impuls 8. Das gemeinsame Vorzeichen nutzt die Redundanz der Information in den Impulsorten. Deshalb weist der gesamte Bitstrom für dieses Kodierbuch 1 + 1 + 1 + 1 + 4 + 3 + 3 + 3 + 4 + 3 + 3 + 3 = 30 Bits auf. Diese Struktur untergeordneter Kodierbücher wird in 16 veranschaulicht.
  • Durchsuchen eines festen Kodierbuchs vom Typ 1 für Halb-Rate Codec
  • In einem Ausführungsbeispiel wird der langfristige Fehler mit 13 Bits für jeden der drei untergeordneten Rahmen für als Typ Eins klassifizierte Rahmen für den Halb-Rate Codec 24 dargestellt. Das langfristige Fehlersignal kann in einer ähnlichen Weisen bestimmt werden, wie bei der Suche eines festen Kodierbuchs im Voll-Rate Codec 22. Ähnlich wie bei der Suche eines festen Kodierbuchs für den Halb-Rate Codec 24 für Rahmen vom Typ Null, können hochfrequenter Rauscheintrag, durch hohe Korrelation im vorhergehenden untergeordneten Rahmen bestimmte zusätzliche Impulse und ein schwacher kurzfristiger Spektralfilter in die Impulsantwort des zweiten Synthesefilters 462 einbezogen werden. Zusätzlich kann Abstandsverbesserung auch in die Impulsantwort des zweiten Synthesefilters 462 einbezogen werden.
  • Im Halb-Rate Codec vom Typ Eins können adaptive und feste Kodierbuch-Verstärkungskomponenten 180b und 182b ebenfalls ähnlich zum Voll-Rate Codec 22 unter Verwendung multidimensionaler Vektor-Quantisierer erzeugt werden. In einem Ausführungsbeispiel werden ein dreidimensionaler Vor-Vektor-Quantisierer (3D preVQ) und ein dreidimensionaler verzögerter Vektor-Quantisierer (3D delayed VQ) für die adaptiven beziehungsweise festen Verstärkungskomponenten 180b 182b verwendet. In einem Ausführungsbeispiel enthält jede multidimensionale Verstärkungstabelle 3 Elemente für jeden untergeordneten Rahmen eines als Typ Eins klassifizierten Rahmens. Ähnlich wie beim Voll-Rate Codec quantisiert der Vor-Vektor-Quantisierer für die adaptive Verstärkungskomponente 180b die adaptiven Verstärkungen direkt, und in ähnlicher Weise quantisiert der verzögerte Vektor-Quantisierer für die feste Verstärkungskomponente 182b den Prädikationsfehler für die Energie des festen Kodierbuchs. Zur Prädikation der Energie des festen Kodierbuchs für jeden untergeordneten Rahmen werden unterschiedliche Prädikationskoeffizienten verwendet. Die festen Prädikations-Kodierbuchenergien des ersten, des zweiten und des dritten untergeordneten Rahmens werden aus den 3 quantisierten Fehlern für die Energie des festen Kodierbuchs des vorhergehenden Rahmens vorhergesagt, beziehungsweise unter Verwendung des Koeffizientensets {0,6; 0,3; 0,1}, {0,4; 0,25; 0,1} und {0,3; 0,15; 0,075}.
  • In einem Ausführungsbeispiel nutzt der H1 Codec zwei untergeordnete Kodierbücher und in einem anderen Ausführungsbeispiel nutzt er drei untergeordnete Kodierbücher. Die ersten beiden untergeordneten Kodierbücher sind in jedem Ausführungsbeispiel gleich. Die Anregung des festen Kodierbuchs wird mit 13 Bits für jeden der drei untergeordneten Rahmen für Rahmen vom Typ 1 vom Halb-Rate Codec dargestellt. Das erste Kodierbuch hat 2 Impulse, das zweite Kodierbuch hat 3 Impulse und ein drittes Kodierbuch hat 5 Impulse. Das Kodierbuch, die Impulsorte und die Impulsvorzeichen werden mit 13 Bits für jeden untergeordneten Rahmen kodiert. Die Größe der ersten zwei untergeordneten Rahmen ist 53 Abtastwerte und die Größe des letzten untergeordneten Rahmens ist 54 Abtastwerte. Das erste Bit im Bitstrom zeigt an, ob das erste Kodierbuch (12 Bits) verwendet wird, oder ob entweder das zweite oder das dritte untergeordnete Kodierbuch (jedes 11 Bits) verwendet wird. Wenn das erste Bit auf "1" gesetzt ist, dann wird das erste Kodierbuch verwendet, wenn das erste Bit auf "0" gesetzt ist, dann wird entweder das zweite Kodierbuch oder das dritte Kodierbuch verwendet. wenn das erste Bit auf "1" gesetzt ist, dann werden all die verbleibenden 12 Bits zur Beschreibung der Impulsorte und Vorzeichen für das erste Kodierbuch verwendet. Wenn das erste Bit auf "0" gesetzt ist, dann zeigt das zweite Bit an, ob das zweite Kodierbuch verwendet wird oder das dritte Kodierbuch verwendet wird. Wenn das zweite Bit auf "1" gesetzt ist, dann wird das zweite Kodierbuch verwendet und wenn das zweite Bit auf "0" gesetzt ist, dann wird das dritte Kodierbuch verwendet. In jedem der beiden Fälle werden die verbleibenden 11 Bits zur Beschreibung der Impulsorte und Vorzeichen für das zweite Kodierbuch oder das dritte Kodierbuch verwendet. Wenn es kein drittes untergeordnetes Kodierbuch gibt, dann wird das zweite Bit immer auf "1" gesetzt.
  • Für das untergeordnete 2-Impuls-Kodierbuch 193 (von 5) mit 212 Einträgen ist jeder Impuls auf eine Spur beschränkt, wobei 5 Bits die Spurposition und 1 Bit das Impulsvorzeichen spezifizieren. Die Spuren für die 2 Impulse sind gegeben durch
    Impuls 1: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52}
    Impuls 2: {1, 3, 5, 7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 99, 51}.
  • Da die Anzahl der Orte 32 ist, kann jeder Impuls mittels 5 Bits kodiert werden. Zwei Bits definieren das Vorzeichen für jedes Bit. Daher weist der gesamte Bitstrom für dieses Kodierbuch 1 + 5 + 1 + 5 = 12 Bits (Vorzeichen von Impuls 1, Impulsort, Vorzeichen von Impuls 2, Ort von Impuls 2) auf. Diese Struktur wird in 17 gezeigt.
  • Für das zweite untergeordnete Kodierbuch, das 3-pulsige untergeordnete Kodierbuch 195 (aus 5) mit 212 Einträgen, ist der Ort jedes der drei Impulse im 3-Impuls-Kodierbuch für Rahmen vom Typ 1 auf spezielle Spuren beschränkt. Die Kombinationen einer Phase mit der individuellen relativen Verschiebung für jeden der drei Impulse erzeugen die Spuren. Die Phase ist durch 3 Bits definiert und die relative Verschiebung für jeden Impuls ist durch 2 Bits pro Phase definiert. Die Phase (der Startpunkt für die Platzierung der 3 Impulse) und der relative Ort der Impulse sind gegeben durch:
    Phase: 0, 5, 11, 17, 23, 29, 35, 41.
    Impuls 1: 0, 3, 6, 9
    Impuls 2: 1, 4, 7, 10
    Impuls 3: 2, 5, 8, 11.
  • Das erste untergeordnete Kodierbuch wird voll durchsucht, gefolgt von einer vollständigen Suche eines zweiten untergeordneten Kodierbuchs. Das untergeordnete Kodierbuch und der Vektor, die zum maximalen Kriteriumswert führen, werden ausgewählt. Der gesamte Bitstrom für dieses zweite Kodierbuch weist 3(Phase) + 2(Impuls 1) + 2(Impuls 2) + 2(Impuls 3) + 3(Vorzeichenbits) = 12 Bits auf, wobei die drei Impulse und ihre Vorzeichenbits dem Phasenort von 4 Bits vorausgehen. 18 veranschaulicht diese Struktur eines untergeordneten Kodierbuchs.
  • In einem anderen Ausführungsbeispiel wird das obige zweite untergeordnete Kodierbuch in wiederum zwei untergeordnete Kodierbücher unterteilt. Das heißt, beide, das zweite untergeordnete Kodierbuch beziehungsweise das dritte untergeordnete Kodierbuch haben 211 Einträge. Nun wird für das zweite untergeordnete Kodierbuch mit 3 Impulsen der Ort jeden Impulses für Rahmen vom Typ 1 auf spezielle Spuren beschränkt. Die Position des ersten Impulses wird mit einer festen Spur kodiert und die Positionen der verbleibenden zwei Impulse werden mit dynamischen Spuren relativ zur ausgewählten Position des ersten Impulses kodiert. Die feste Spur für den ersten Impuls und die relativen Spuren für die anderen zwei Spuren sind wie folgt definiert:
    Impuls 1: 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48.
    Impuls 2: Pos1 – 3, Pos1 – 1, Pos1 + 1, Pos1 + 3
    Impuls 3: Pos1 – 2, Pos1, Pos1 + 2, Pos1 + 4
  • Natürlich müssen die dynamischen Spuren auf den Bereich untergeordneter Rahmen beschränkt sein.
  • Das dritte untergeordnete Kodierbuch weist 5 Impulse auf, jeder auf eine feste Spur beschränkt und jeder Impuls hat ein eindeutiges Vorzeichen. Die Spuren für die 5 Impulse sind:
    Impuls 1: 0, 15, 30 45
    Impuls 2: 0, 5
    Impuls 3: 10, 20
    Impuls 4: 25, 35
    Impuls 5: 40, 50.
  • Der gesamte Bitstrom für dieses untergeordnete Kodierbuch weist 11 Bits, = 2(Impuls 1) + 1(Impuls 2) + 1(Impuls 3) + 1(Impuls 4) + 1(Impuls 5) + 5(Vorzeichen), auf. Diese Struktur wird in 19 gezeigt.
  • In einem Ausführungsbeispiel wird eine vollständige Suche des untergeordneten 2-Impuls-Kodierbuchs 193, des untergeordneten 3- Impuls-Kodierbuchs 195 und des untergeordneten 5-Impuls-Kodierbuchs 197, wie in 5 veranschaulicht, durchgeführt. In anderen Ausführungsbeispielen kann auch das vorher beschriebene schnelle Suchverfahren verwendet werden. Das Impuls-Kodierbuch und der beste Vektor für den festen Kodierbuchvektor kc ) 504, der das Fehlersignal des festen Kodierbuchs 510 minimiert, werden für die Abbildung des langfristigen Restwertes jedes untergeordneten Rahmens ausgewählt. Zusätzlich kann eine erste Verstärkung eines festen Kodierbuchs, die durch die Verstärkung (gkc ) 506 repräsentiert wird, ähnlich wie beim Voll-Rate Codec 22, während der Suche bestimmt werden. Die Indizes zeigen den besten Vektor für den festen Kodierbuchvektor kc ) 504 an und bilden die feste Kodierbuchkomponente 178b.
  • Dekodiersystem
  • Entsprechend 20 bildet ein funktionelles Blockdiagramm den Voll-Rate Dekodierer 90 und den Halb-Rate Dekodierer 92 von 3 ab. Der Voll-Rate Dekodierer 90 oder der Halb-Rate-Dekodierer 92 weisen die Anregungs-Rekonstruktionsmodule 104, 106, 114 und 116 und die LPC (linear prediction coefficient) Rekonstruktionsmodule 107 und 118 auf. Ein Ausführungsbeispiel der Anregungs-Rekonstruktionsmodule 104, 106, 114 und 116 weist das adaptive Kodierbuch 368, das feste Kodierbuch 390, das 2D VQ Verstärkungs-Kodierbuch 412, das 3D/4D VQ Regelkreis-Kodierbuch 454 und das 3D/4D VQ Verstärkungs-Kodierbuch 492 auf. Die Anregungs-Rekonstruktionsmodule 104, 106, 114 und 116 weisen auch einen ersten Multiplizierer 530, einen zweiten Multiplizierer 532 und einen Addierer 534 auf. In einem Ausführungsbeispiel weisen die LPC Rekonstruktionsmodule 107 und 118 ein LSF Dekodiermodul 536 und ein LSF Konvertierungsmodul 538 auf. Zusätzlich weist der Halb-Rate Codec 24 das Prädikations-Schaltmodul 336 auf und der Halb-Rate Codec 22 weist das Interpolationsmodul 338 auf.
  • Die Dekodierer 90, 92, 94 und 96 empfangen den Bitstrom wie in 4 gezeigt und dekodieren das Signal, so dass verschiedene Parameter des Sprachsignals 18 rekonstruiert werden. Die Dekodierer dekodieren jeden Rahmen als eine Funktion der Raten-Auswahl und Klassifikation. Die Rate-Auswahl wird dem Dekodiersystem 16 vom Kodiersystem durch ein externes Signal in einem Steuerkanal in einem drahtlosen Telekommunikationssystem geliefert.
  • Außerdem werden in 20 das Synthesefiltermodul 98 und das Nachbearbeitungsmodul 100 gezeigt. In einem Ausführungsbeispiel weist das Nachbearbeitungsmodul 100 ein kurzfristiges Filtermodul 540, ein langfristiges Filtermodul 542, ein Filtermodul zur Anstiegskompensation 544 und ein adaptives Verstärkungs-Steuerungsmodul 546 auf. Entsprechend der Raten-Auswahl kann der Bitstrom zur Erzeugung nachbearbeiteter synthetisierter Sprache 20 dekodiert werden. Die Dekodierer 90 und 92 führen einen inversen Abgleich der Bitstromkomponenten mit Algorithmenparametern durch. Der inverse Abgleich kann von einer von der Typklassifikation abhängigen Synthese innerhalb des Voll-Rate Codecs 22 und des Halb-Rate Codecs 24 gefolgt werden.
  • Die Dekodierung für den Viertel-Rate Codec 26 und den Achtel-Rate Codec 28 ist ähnlich wie die für den Voll-Rate Codec 22 und die für den Halb-Rate Codec 24. Allerdings verwenden der Viertel-Rate Codec 26 und der Achtel-Rate Codec 28 Vektoren ähnlicher, jedoch zufälliger, Zahlen und die bereits behandelte Energieverstärkung, statt des adaptiven Kodierbuchs 368 und des festen Kodierbuchs 390 und zugehöriger Verstärkungen. Die Zufallszahlen und die Energieverstärkung können zur Rekonstruierung einer Anregungsenergie verwendet werden, welche die kurzfristige Anregung eines Rahmens repräsentiert. Die LPC Rekonstruktionsmodule 122 und 126 ähneln auch dem Voll-Rate Codec 22 und dem Halb-Rate Codec 24, mit Ausnahme des Prädikations-Schaltermodules 336 und des Interpolationsmoduls 338.
  • Innerhalb des Voll-Rate Dekodierers 90 und des Halb-Rate-Dekodierers 92 hängt die Arbeitsweise der Anregungs-Rekonstruktionsmodule 104, 106, 114 und 116 stark von der von den Typkomponenten 142 und 174 gelieferten Typklassifikation ab. Das adaptive Kodierbuch 368 empfängt die Abstandsspur 348. Die Abstandsspur 348 wird vom Dekodiersystem 16 aus den adaptiven Kodierbuchkomponenten 144 und 176, welche im Bitstrom durch das Kodiersystem 12 bereitgestellt wurden, rekonstruiert. In Abhängigkeit von der von den Typkomponenten 142 und 174 bereitgestellten Typklassifikation stellt das adaptive Kodierbuch 368 dem Multiplizierer 530 einen adaptiven Kodierbuchvektor ka ) 550 bereit. Der Multiplizierer 530 multipliziert den quantisierten Vektor des adaptiven Kodierbuchs ka ) 550 mit einem Verstärkungsvektor (gka ) 552. Die Auswahl des Verstärkungsvektors (gka ) 552 hängt außerdem von der von den Typkomponenten 142 und 174 bereitgestellten Typklassifikation ab.
  • In einem Ausführungsbeispiel liefert das 2D VQ Verstärkungs-Kodierbuch 412 dem Multiplizierer 530 die adaptive Kodierbuchverstärkung (gka ) 552, wenn der Rahmen im Voll-Rate Codec 22 als Typ Null klassifiziert ist. Die adaptive Kodierbuchverstärkung (gka ) 552 wird aus der Verstärkungskomponente des adaptiven Kodierbuchs 148a und der Verstärkungskomponente des festen Kodierbuchs 150a bestimmt. Die Verstärkung des adaptiven Kodierbuchs (gka ) 552 als Teil des besten Vektors für den quantisierten Verstärkungsvektor (g ^ac) 433, der durch die Verstärkungs- und Quantisierungssektion 366 des F0 Verarbeitungsmoduls für untergeordnete Rahmen 70 bestimmt wurde, ist die gleiche, wie schon behandelt. Der quantisierte adaptive Kodierbuchvektor ka ) 550 wird von der Regelkreis-Komponente des adaptiven Kodierbuchs 144b bestimmt. In ähnlicher Weise ist der quantisierte adaptive Kodierbuchvektor ka ) 550 der gleiche, wie der beste Vektor für den adaptiven Kodierbuchvektor (va) 382, welcher durch das F0 Verarbeitungsmodul für untergeordnete Rahmen 70 bestimmt wurde.
  • Das 2D VQ Verstärkungs-Kodierbuch 412 ist zweidimensional und stellt dem Multiplizierer 530 die Verstärkung eines adaptiven Kodierbuchs (gka ) 552 und dem Multiplizierer 532 eine Verstärkung eines festen Kodierbuchs (gkc ) 554 bereit. Die feste Kodierbuchverstärkung (gkc ) 554 wird von der adaptiven Kodierbuch-Verstärkungskomponente 148a und der festen Kodierbuch-Verstärkungskomponente 150a in ähnlicher Weise bestimmt und ist Teil des besten Vektors für den quantisierten Verstärkungsvektor (g ^ac) 433. Ebenfalls auf der Typklassifikation basierend stellt das feste Kodierbuch 390 dem Multiplizierer 532 einen quantisierten festen Kodierbuchvektor kc ) 556 bereit. Der quantisierte feste Kodierbuchvektor kc ) 556 wird aus der Kodierbuch-Identifikation, den Impulsorten und den Impulsvorzeichen oder dem Gauß'schen Kodierbuch für den Halb-Rate Codec, welcher von der festen Kodierbuchkomponente 146a bereitgestellt wird, rekonstruiert. Der quantisierte feste Kodierbuchvektor kc ) 556 ist der gleiche wie der beste Vektor für den festen Kodierbuchvektor (vc) 402, bestimmt durch das F0 Verarbeitungsmodul für untergeordnete Rahmen 70, wie bereits behandelt. Der Multiplizierer 532 multipliziert den quantisierten festen Kodierbuchvektor kc ) 556 mit der Verstärkung des festen Kodierbuchs (gkc ) 554.
  • Wenn die Typklassifikation für den Rahmen Typ Eins ist, stellt ein multidimensionaler Vektor-Quantisierer dem Multiplizierer 530 die Verstärkung des adaptiven Kodierbuchs (gka ) 552 bereit, wobei die Anzahl der Dimensionen in dem multidimensionalen Vektor-Quantisierer von der Anzahl der untergeordneten Rahmen abhängt. In einem Ausführungsbeispiel kann der multidimensionale Vektor-Quantisierer der 3D/4D Regelkreis VQ 454 sein. In ähnlicher Weise stellt ein multidimensionaler Vektor-Quantisierer dem Multiplizierer 532 die Verstärkung des festen Kodierbuchs (gkc ) 554 bereit. Die Verstärkung des adaptiven Kodierbuchs (gka ) 552 und die Verstärkung des festen Kodierbuchs (gkc ) 554 werden von den Verstärkungskomponenten 147 und 179 bereitgestellt und sind dieselben wie die quantisierte Abstandsverstärkung (g ^ka ) 496 beziehungsweise die quantisierte Verstärkung des festen Kodierbuchs (g ^kc ) 513.
  • In als Typ Null oder Typ Eins klassifizierten Rahmen wird das Ausgangssignal vom ersten Multiplizierer 530 durch den Addierer 534 empfangen und zum Ausgangssignal des zweiten Multiplizierers 532 addiert. Das Ausgangssignal des Addierers 534 ist die kurzfristige Anregung. Die kurzfristige Anregung wird dem Synthesefiltermodul 98 auf der kurzfristigen Anregungsleitung 128 bereitgestellt.
  • Die Erzeugung der kurzfristigen Prädikationskoeffizienten (LPC) in den Dekodierern 90 und 92 ist ähnlich wie die Verarbeitung im Kodiersystem 12. Das LSF Dekodiermodul 536 rekonstruiert die quantisierten LSFs aus den LSF Komponenten 140 und 172. Das LSF Dekodiermodul 536 nutzt die gleiche LSF Quantisiertabelle und LSF Prädikationskoeffizienten-Tabellen, die vom Kodiersystem 12 verwendet werden. Für den Halb-Rate Codec 24 wählt das Prädikations-Schaltermodul 336 eines der Prädikationskoeffizientensets aus, so dass die Prädikations-LSFs berechnet werden, wie von den LSF Komponenten 140 und 172 angewiesen. Die Interpolation der quantisierten LSFs erfolgt unter Benutzung des gleichen linearen Interpolationspfades, der im Kodiersystem 12 verwendet wird. Für den Voll-Rate Codec 22 für als Typ Null klassifizierte Rahmen wählt das Interpolationsmodul 338 denjenigen Interpolationspfad aus den im Kodiersystem 12 verwendeten gleichen Interpolationspfaden aus, der von den LSF Komponenten 140 und 172 angewiesen wird. Die Gewichtung des quantisierten LSFs wird gefolgt von der Konvertierung in die quantisierten LPC Koeffizienten Aq(z) 342 innerhalb des LSF-Konvertierungsmoduls 538. Die quantisierten LPC Koeffizienten Aq(z) 342 sind die kurzfristigen Prädikationskoeffizienten, welche dem Synthesefilter 98 auf der kurzfristigen Prädikationskoeffizientenleitung 130 geliefert werden.
  • Die quantisierten LPC Koeffizienten Aq(z) 342 können vom Synthesefilter 98 zum Filtern der kurzfristigen Prädikationskoeffizienten verwendet werden. Der Synthesefilter 98 ist ein kurzfristiger inverser Prädikationsfilter, der synthetisierte Sprache erzeugt, die nicht nachbearbeitet wird. Die nicht nachbearbeitete synthetisierte Sprache kann dann das Nachbearbeitungsmodul 100 durchlaufen. Die kurzfristigen Prädikationskoeffizienten können außerdem dem Nachbearbeitungsmodul 100 bereitgestellt werden.
  • Das langfristige Filtermodul 542 führt eine detaillierte Suche nach der Abstandsperiode in der synthetisierten Sprache durch. In einem Ausführungsbeispiel wird die fein abgestimmte Suche unter Benutzung von Abstandskorrelation und harmonischer Filterung, welche von der bitratenabhängigen Verstärkung gesteuert wird, durchgeführt. Die harmonische Filterung wird für den Viertel-Rate Codec 26 und den Achtel-Rate Codec 28 abgeschaltet. Die Nachfilterung wird mit einem adaptiven Verstärkungs-Steuerungsmodul 546 abgeschlossen. Das adaptive Verstärkungs-Steuerungsmodul 546 bringt das Energieniveau der synthetisierten Sprache, welches innerhalb des Nachbearbeitungsmoduls 100 verarbeitet wurde, auf das Level der ungefilterten synthetisierten Sprache. Etwas Levelglättung und -anpassung können außerdem innerhalb des adaptiven Verstärkungs-Steuerungsmoduls 546 durchgeführt werden. Das Ergebnis der Filterung durch das Nachbearbeitungsmodul 100 ist die synthetisierte Sprache 20.
  • Ausführungsbeispiele
  • Eine Implementierung eines Ausführungsbeispieles des Sprachkomprimierungssystems 10 kann ein DSP (Digital Signal Processing) Chip sein. Der DSP Chip kann mit Quellcode programmiert werden. Der Quellcode kann zunächst in Festkomma-Format und dann in die DSP-spezifische Programmiersprache übersetzt werden. Der übersetzte Quellcode kann anschließend in den DSP geladen werden und darin ablaufen.
  • 21 ist ein Blockdiagramm eines Sprachkomprimierungssystem 100 mit einem festen untergeordneten Kodierbuch und mindestens einem zusätzlichen Faktor für das Kodieren, entsprechend des einen Ausführungsbeispiels, welches Abstandsverzögerung verwendet. Das Sprachkodiersystem 100 weist ein erstes Kommunikationsgerät 105 auf, welches bei Bedarf über ein Kommunikationsmedium 110 mit einem zweiten Kommunikationsgerät 115 verbunden wird. Das Sprachkodiersystem 100 kann irgendein Funktelefon, eine Funkfrequenz oder ein anderes Telekommunikationssystem sein, welches dazu in der Lage ist, ein Sprachsignal 145 zu kodieren und das kodierte Signal zu dekodieren, so dass synthetisierte Sprache erzeugt wird. Die Kommunikationsgeräte 105, 115 können Funktelefone, tragbare Funksender-Empfänger und ähnliches sein.
  • Das Kommunikationsmedium 110 kann Systeme aufweisen, welche irgendeinen Übertragungsmechanismus, einschließlich Funkwellen, Infrarot, Freileitungen, Glasfasern, irgendein anderes Medium, welches in der Lage ist, digitale Signale zu übertragen (Leitungen oder Kabel), oder irgendeine Kombination davon aufweisen. Das Kommunikationsmedium 110 kann außerdem einen Speichermechanismus, einschließlich eines Speicherbausteins, eines Speichermediums oder eines anderen Bausteins, aufweisen, welcher in der Lage ist, digitale Signale zu speichern und abzurufen. Gebräuchlicherweise überträgt das Kommunikationsmedium 110 einen digitalen Bitstrom zwischen dem ersten Kommunikationsgerät 105 und dem zweiten Kommunikationsgerät 115.
  • Das erste Kommunikationsgerät 105 weist einen Analog-zu-Digital Konverter 120, einen Prä-Prozessor 125 und einen Kodierer 130 auf, verbunden wie gezeigt. Das erste Kommunikationsgerät 105 kann eine Antenne oder ein anderes Interface zum Kommunikationsmedium (nicht dargestellt) haben, um digitale Signale über das Kommunikationsmedium 110 zu senden und zu empfangen. Das erste Kommunikationsgerät 105 kann außerdem andere Komponenten haben, die dem Fachmann für irgendwelche Kommunikationsgeräte bekannt sind, beispielsweise ein Dekodierer oder ein Digital-zu-Analog Konverter.
  • Das zweite Kommunikationsgerät 115 weist einen Dekodierer 135 und Digital-zu-Analog Konverter 140 auf, verbunden wie dargestellt. Obwohl nicht gezeigt, kann das zweite Kommunikationsgerät 115 einen oder mehr Synthesefilter, einen Postprozessor und andere Komponenten haben. Das zweite Kommunikationsgerät 115 kann außerdem eine Antenne oder ein anderes Interface zum Kommunikationsmedium (nicht dargestellt) für das Senden und Empfangen digitaler Signale mit dem Kommunikationsmedium haben. Der Prä-Prozessor 125, Kodierer 130 und Dekodierer 135 weisen Prozessoren, digitale Signalprozessoren (DSPs), applikationsspezifische integrierte Schaltkreise oder andere digitale Bauelemente für das Implementieren der Kodierung und der hier behandelten Algorithmen auf. Der Prä-Prozessor 125 und der Kodierer 130 können gesonderte Komponenten oder die gleichen Komponenten aufweisen.
  • Im Betrieb empfängt der Analog-zu-Digital Konverter 120 ein Sprachsignal 145 von einem Mikrofon (nicht dargestellt) oder einem anderen Signaleingabegerät. Das Sprachsignal kann stimmhafte Sprache, Musik oder ein anderes analoges Signal sein. Der Analog-zu-Digital Konverter 120 digitalisiert das Sprachsignal, so dass das digitalisierte Sprachsignal dem Prä-Prozessor 125 bereitgestellt wird. Der Prä-Prozessor 125 sendet das digitalisierte Signal durch einen Hochpassfilter (nicht dargestellt), vorzugsweise mit einer Grenzfrequenz von etwa 60 bis 80 Hz. Der Prä-Prozessor 125 kann andere Prozesse durchführen, beispielsweise Rauschunterdrückung, so dass das digitalisierte Signal für die Kodierung verbessert wird. Der Kodierer 130 kodiert die Sprache unter Verwendung einer Abstandsverzögerung, eines festen Kodierbuchs, einer festen Kodierbuchverstärkung sowie von LPC Parametern und anderen Parametern. Der Code wird im Kommunikationsmedium 110 übertragen.
  • Der Dekodierer 135 empfängt den Bitstrom vom Kommunikationsmedium 110. Der Dekodierer arbeitet so, dass der Bitstrom dekodiert und ein synthetisiertes Sprachsignal 150 in Form eines digitalisierten Signals erzeugt wird. Das synthetisierte Sprachsignal 150 wird durch den Digital-zu-Analog Konverter 140 in ein analoges Signal konvertiert. Der Kodierer 130 und der Dekodierer 135 verwenden ein Sprachkomprimierungssystem, welches üblicherweise ein Codec genannt wird, so dass die Bitrate des rauschunterdrückten digitalisierten Sprachsignals reduziert wird. Zum Beispiel nutzt die CELP (Code Excited Linear Prediction) Kodiertechnik mehrere Prädikationstechniken, so dass Redundanz vom Sprachsignal entfernt wird.
  • Obwohl ein Ausführungsbeispiel der Erfindung die speziellen oben erwähnten Modi aufweist, ist die Erfindung nicht auf dieses Ausführungsbeispiel beschränkt. Daher kann ein Modus aus mehr als 3 Modi oder weniger als 3 Modi ausgewählt werden. Zum Beispiel kann ein anderes Ausführungsbeispiel aus 5 Modi auswählen: Modus 0, Modus 1 und Modus 2, genauso wie Modus 3 und Halb-Rate Max Modus. Noch ein anderes Ausführungsbeispiel der Erfindung kann einen Modus ohne Übertragung aufweisen, wenn die Übertragungsschaltkreise mit ihrer vollen Kapazität verwendet werden. Obwohl bevorzugt im Kontext eines G.729 Standards implementiert, können andere Ausführungsbeispiele und Implementierungen unter diese Erfindung fallen.
  • Obwohl verschiedene Ausführungsbeispiele der Erfindung beschrieben wurden, erscheint es bei gewöhnlicher Fachkenntnis naheliegend, dass viel mehr Ausführungsbeispiele und Implementierungen im Bereich dieser Erfindung möglich sind. Dementsprechend soll diese Erfindung nicht beschränkt werden, ausgenommen im Sinn der beigefügten Ansprüche.

Claims (19)

  1. Sprachkodiersystem mit: einer Sprachverarbeitungsschaltung, die zum Empfangen eines wellenförmigen Sprachsignals ausgelegt ist, wobei die Sprachverarbeitungsschaltung ein Kodierbuch aufweist, das eine Vielzahl von untergeordneten Kodierbüchern mit zumindest zwei unterschiedlichen untergeordneten Kodierbüchern aufweist, und wobei jedes untergeordnete Kodierbuch eine Vielzahl von Impulsorten zum Erzeugen von zumindest einem Kodiervektor in Abhängigkeit von dem wellenförmigen Sprachsignal aufweist, dadurch gekennzeichnet, dass die Vielzahl von untergeordneten Kodierbüchern aufweisen: ein erstes untergeordnetes Kodierbuch (192, 193) zum Bereitstellen eines ersten Kodiervektors mit einem ersten Impuls und einem zweiten Impuls; und ein zweites untergeordnetes Kodierbuch (194, 195) zum Bereitstellen eines zweiten Kodiervektors mit einem dritten Impuls, einem vierten Impuls und einem fünften Impuls.
  2. Sprachkodiersystem nach Patentanspruch 1, wobei der zumindest ein Kodiervektor entweder ein impulsähnlicher oder ein rauschähnlicher Kodiervektor ist.
  3. Sprachkodiersystem nach Patentanspruch 1, wobei die Vielzahl von Impulsorten zumindest eine Spur aufweisen, und wobei der zumindest eine Kodiervektor zumindest einen Impuls aufweist, der aus der zumindest einen Spur ausgewählt ist, wobei vorzugsweise der zumindest eine Impuls einen ersten Impuls und einen zweiten Impuls aufweist, wobei die zumindest eine Spur eine erste und zweite Spur aufweist, und wobei der erste Impuls aus der ersten Spur und der zweite Impuls aus der zweiten Spur ausgewählt wird, wobei vorzugsweise der zumindest eine Impuls ferner einen dritten Impuls aufweist, wobei die zumindest eine Spur ferner eine dritte Spur aufweist, und wobei der dritte Impuls aus der dritten Spur ausgewählt wird, wobei vorzugsweise zumindest ein Impulsort der dritten Spur unterschiedlich zu einem Impulsort von zumindest einem der ersten Spur und der zweiten Spur ist.
  4. Sprachkodiersystem nach Patentanspruch 1, wobei die Vielzahl von untergeordneten Kodierbüchern ferner aufweist: ein drittes untergeordnetes Kodierbuch (197) zum Bereitstellen eines dritten Kodiervektors mit einem sechsten Impuls, einem siebten Impuls, einem achten Impuls, einem neunten Impuls und einem zehnten Impuls, wobei vorzugsweise das erste untergeordnete Kodierbuch eine erste Spur und eine zweite Spur aufweist, wobei der erste Impuls aus der ersten Spur ausgewählt wird und der zweite Impuls aus der zweiten Spur ausgewählt wird; wobei das zweite untergeordnete Kodierbuch eine dritte Spur, eine vierte Spur und eine fünfte Spur aufweist, wobei der dritte Impuls aus der dritten Spur ausgewählt wird, der vierte Impuls aus der vierten Spur ausgewählt wird, und der fünfte Impuls aus der fünften Spur ausgewählt wird; und wobei das dritte untergeordnete Kodierbuch eine sechste Spur, eine siebte Spur, eine achte Spur, eine neunte Spur und eine zehnte Spur aufweist, wobei der sechste Impuls aus der sechsten Spur ausgewählt wird, der siebte Impuls aus der siebten Spur ausgewählt wird, der achte Impuls aus der achten Spur ausgewählt wird, der neunte Impuls aus der neunten Spur ausgewählt wird, und der zehnte Impuls aus der zehnten Spur ausgewählt wird.
  5. Sprachkodiersystem nach Patentanspruch 4, wobei die erste Spur die folgenden Impulsorte aufweist 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52; wobei die zweite Spur folgende Impulsorte aufweist 1, 3, 5, 7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51; wobei die dritte Spur die folgenden Impulsorte aufweist 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48; wobei die vierte Spur die Impulsorte Pos1 – 2, Pos1, Pos1 + 2, Pos1 + 4 aufweist; wobei die fünfte Spur die Impulsorte Pos1 – 3, Pos1 – 1, Pos1 + 1, Pos1 + 3 aufweist; wobei die sechste Spur die Impulsorte 0, 15, 30, 45 aufweist; wobei die siebte Spur die Impulsorte 0,5 aufweist; wobei die achte Spur die Impulsorte 10, 20 aufweist; wobei die neunte Spur die Impulsorte 25, 35 aufweist; und wobei die zehnte Spur die Impulsorte 40, 50 aufweist, wobei die vierte und fünfte Spur dynamische Spuren relativ zu Pos1 darstellen, die eine vorbestimmte Position des dritten Impulses darstellt und innerhalb eines untergeordneten Rahmens begrenzt ist.
  6. Sprachkodiersystem nach Patentanspruch 4, wobei die Impuls-Kandidatenorte der vierten Spur und der fünften Spur jeweils einen relativen Versatz von einem vorbestimmten Ort des dritten Impulses aufweisen, wobei vorzugsweise der relative Versatz 2 Bits aufweist und der Ort des dritten Impulses 4 Bits enthält, wobei vorzugsweise die dritte Spur die Impulsorte 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48 aufweist.
  7. Sprachkodiersystem nach Patentanspruch 1, wobei die Vielzahl von untergeordneten Kodierbüchern aufweisen: ein viertes untergeordnetes Kodierbuch zum Bereitstellen eines ersten Kodiervektors mit einem ersten Impuls, einem zweiten Impuls, einem dritten Impuls, einem vierten Impuls und einem fünften Impuls; ein fünftes untergeordnetes Kodierbuch zum Bereitstellen eines zweiten Kodiervektors mit einem sechsten Impuls, einem siebten Impuls, einem achten Impuls, einem neunten Impuls und einem zehnten Impuls; und ein sechstes untergeordnetes Kodierbuch zum Bereitstellen eines dritten Kodiervektors mit einem elften Impuls, einem zwölften Impuls, einem dreizehnten Impuls, einem vierzehnten Impuls und einem fünfzehnten Impuls.
  8. Sprachkodiersystem nach Patentanspruch 7, wobei das vierte untergeordnete Kodierbuch eine erste Spur, eine zweite Spur, eine dritte Spur, eine vierte Spur und eine fünfte Spur aufweist, wobei der erste Impuls aus der ersten Spur, der zweite Impuls aus der zweiten Spur, der dritte Impuls aus der dritten Spur, der vierte Impuls aus der vierten Spur und der fünfte Impuls aus der fünften Spur ausgewählt wird; wobei das fünfte untergeordnete Kodierbuch eine sechste Spur, eine siebte Spur, eine achte Spur, eine neunte Spur und eine zehnte Spur aufweist, wobei der sechste Impuls aus der sechsten Spur, der siebte Impuls aus der siebten Spur, der achte Impuls aus der achten Spur, der neunte Impuls aus der neunten Spur und der zehnte Impuls aus der zehnten Spur ausgewählt wird; und wobei das sechste untergeordnete Kodierbuch eine elfte Spur, eine zwölfte Spur, eine dreizehnte Spur, eine vierzehnte Spur und eine fünfzehnte Spur aufweist, wobei der elfte Impuls aus der elften Spur, der zwölfte Impuls aus der zwölften Spur, der dreizehnte Impuls aus der dreizehnten Spur, der vierzehnte Impuls aus der vierzehnten Spur und der fünfzehnte Impuls aus der fünfzehnten Spur ausgewählt wird.
  9. Sprachkodiersystem nach Patentanspruch 8, wobei die erste Spur folgende Impulsorte aufweist 1, 3, 6, 8, 11, 13, 16, 18, 21, 23, 26, 28, 31, 33, 36, 38; wobei die zweite Spur folgende Impulsorte aufweist 4, 9, 14, 19, 24, 29, 34, 39; wobei die dritte Spur folgende Impulsorte aufweist 1, 3, 6, 8, 11, 13, 16, 18, 21, 23, 26, 28, 31, 33, 36, 38; wobei die vierte Spur folgende Impulsorte aufweist 4, 9, 14, 19, 24, 29, 34, 39; wobei die fünfte Spur folgende Impulsorte aufweist 0, 2, 5, 7, 10, 12, 15, 17, 20, 22, 25, 27, 30, 32, 35, 37; wobei die sechste Spur folgende Impulsorte aufweist 0, 1, 2, 3, 4, 6, 8, 10; wobei die siebte Spur folgende Impulsorte aufweist 5, 9, 13, 16, 19, 22, 25, 27; wobei die achte Spur folgende Impulsorte aufweist 7, 11, 15, 18, 21, 24, 28, 32; wobei die neunte Spur folgende Impulsorte aufweist 12, 14, 17, 20, 23, 26, 30, 34; wobei die zehnte Spur folgende Impulsorte aufweist 29, 31, 33, 35, 36, 37, 38, 39; wobei die elfte Spur folgende Impulsorte aufweist 0, 1, 2, 3, 4, 5, 6, 7; wobei die zwölfte Spur folgende Impulsorte aufweist 8, 9, 10, 11, 12, 13, 14, 15; wobei die dreizehnte Spur folgende Impulsorte aufweist 16, 17, 18, 19, 20, 21, 22, 23; wobei die vierzehnte Spur folgende Impulsorte aufweist 24, 25, 26, 27, 28, 29, 30, 31; und wobei die fünfzehnte Spur folgende Impulsorte aufweist 32,33,34,35,36,37,38,39.
  10. Sprachkodiersystem nach Patentanspruch 1, wobei die Vielzahl von untergeordneten Kodierbüchern ein untergeordnetes Gauß'sches Kodierbuch (196) aufweist, wobei vorzugsweise das untergeordnete Gauß'sche Kodierbuch einen Gauß'schen Kodiervektor erzeugt, wobei vorzugsweise die Vielzahl von untergeordneten Kodierbüchern ferner aufweisen: ein erstes untergeordnetes Kodierbuch zum Bereitstellen eines ersten Kodiervektors mit einem ersten Impuls und einem zweiten Impuls; und ein zweites untergeordnetes Kodierbuch zum Bereitstellen eines zweiten Kodiervektors mit einem dritten Impuls, einem vierten Impuls und einem fünften Impuls, wobei vorzugsweise das erste untergeordnete Kodierbuch eine erste Spur und eine zweite Spur aufweist, wobei der erste Impuls aus der ersten Spur und der zweite Impuls aus der zweiten Spur ausgewählt wird; und wobei das zweite untergeordnete Kodierbuch eine dritte Spur, eine vierte Spur und eine fünfte Spur aufweist, wobei der dritte Impuls aus der dritten Spur, der vierte Impuls aus der vierten Spur und der fünfte Impuls aus der fünften Spur ausgewählt wird.
  11. Sprachkodiersystem nach Patentanspruch 10, wobei die erste Spur folgende Impulsorte aufweist 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79; wobei die zweite Spur folgende Impulsorte aufweist 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79; wobei die dritte Spur folgende Impulsorte aufweist 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75; wobei die vierte Spur die Impulsorte Pos1 – 8, Pos1 – 6, Pos1 – 4, Pos1 – 2, Pos1 + 2, Pos1 + 4, Pos1 + 6, Pos1 + 8 aufweist; und wobei die fünfte Spur die Impulsorte Pos1 – 7, Pos1 – 5, Pos1 – 3, Pos1 – 1, Pos1 + 1, Pos1 + 3, Pos1 + 5, Pos1 + 7 aufweist, wobei die vierten und fünften Spuren dynamisch relativ zu Pos1 sind, die eine vorbestimmte Position des dritten Impulses darstellt und innerhalb eines untergeordneten Rahmens begrenzt ist.
  12. Sprachkodiersystem nach Patentanspruch 10, wobei die Impulsorte der vierten Spur und der fünften Spur jeweils einen relativen Versatz von einem vorbestimmten Ort des dritten Impulses aufweisen, wobei vorzugsweise der relative Versatz 3 Bits und den vorbestimmten Ort des dritten aufweist, wobei vorzugsweise der vorbestimmte Ort 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75 aufweist.
  13. Sprachkodiersystem nach Patentanspruch 1, wobei die Vielzahl von untergeordneten Kodierbüchern ein untergeordnetes Zufalls-Kodierbuch mit zufälligen Impulsorten aufweist, wobei zumindest 20% der zufällig verteilten Impulsorte nicht Null sind.
  14. Sprachkodiersystem nach Patentanspruch 1, wobei die Sprachverarbeitungsschaltung einen Kriteriumswert zum Auswählen eines der untergeordneten Kodierbücher verwendet, um einen der Kodiervektoren bereitzustellen, wobei vorzugsweise der Kennzeichenwert abhängig von einem adaptiven Gewichtungsfaktor ist, wobei vorzugsweise der adaptive Gewichtungsfaktor zumindest aus einer Abstandskorrelation, einer Restschärfe, einem Signal-zu-Rausch-Verhältnis und/oder einer Abstandsverzögerung berechnet wird.
  15. Sprachkodiersystem nach Patentanspruch 1, wobei die Sprachverarbeitungsschaltung zumindest einen Kodierer und/oder Dekodierer aufweist.
  16. Sprachkodiersystem nach Patentanspruch 1, wobei die Sprachverarbeitungsschaltung zumindest einen Baustein mit digitalem Signalprozessor (DSP) aufweist.
  17. Verfahren zum Suchen eines Kodiervektors in einem Sprachkodiersystem mit zumindest einem Impuls-Kodierbuch oder einem untergeordneten Impuls-Kodierbuch mit einer Vielzahl von Kodiervektoren, wobei jeder Kodiervektor zumindest drei Impulse aufweist, wobei jeder Impuls einen Ort, ein Vorzeichen und einen Größenwert besitzt, und wobei unterschiedliche Kombinationen von Impulsen unterschiedliche Kodiervektoren darstellen, mit den Schritten: gemeinsames Auswählen von Orten, Vorzeichen und Größenwerten von ersten zwei Impulsen (P1, P2); gemeinsames Auswählen von Orten, Vorzeichen und Größenwerten von nächsten zwei Impulsen (Pi, Pi+1); bis gemeinsames Auswählen von Orten, Vorzeichen und Größenwerten von letzten zwei Impulsen (PN–1, PN); Auswählen einer Kombination von Impulsen als einen Kandidaten-Kodiervektor; und aufeinander folgendes Suchen in zumindest zwei Suchrunden von einem ersten Paar von Impulsen bis zu einem letzten Paar von Impulsen, wobei eine nächste Suchrunde ein kleineres Fehlersignal ergibt als eine vorhergehende Suchrunde; wobei die nächste Suchrunde umfasst: gemeinsames Auswählen eines ersten Paares von Impulsen in Abhängigkeit von einem wellenförmigen Sprachsignal und in Abhängigkeit zu anderen temporär erfassten Impulsen von einem der ersten und vorhergehenden Suchrunden, wobei die Impulse einen ersten Signalfehler für die nächste Suchrunde in Bezug zum wellenförmigen Sprachsignal aufweisen; gemeinsames Auswählen eines nächsten Paares von Impulsen in Abhängigkeit vom wellenförmigen Sprachsignal und in Abhängigkeit von anderen temporär bestimmten Impulsen von der vorhergehenden Suchrunde und der nächsten Suchrunde, wobei das nächste Paar von Impulsen einen Signalfehler in Bezug zum wellenförmigen Sprachsignal aufweist, der kleiner oder gleich dem vorhergehenden Signalfehler ist; gemeinsames Auswählen eines letzten Paares von Impulsen in Abhängigkeit von dem wellenförmigen Sprachsignal und in Abhängigkeit von anderen temporär bestimmten Impulsen von der vorhergehenden Suchrunde und der nächsten Suchrunde, wobei das letzte Paar von Impulsen einen Signalfehler in Bezug zum wellenförmigen Sprachsignal aufweist, der kleiner oder gleich dem vorhergehenden Signalfehler ist; und Bereitstellen der Impulse als einen Kandidaten-Kodiervektor von der nächsten Suchrunde.
  18. Verfahren zum Suchen eines Kodiervektors gemäß Patentanspruch 17, wobei das Paar von Impulsen für die nächste Suchrunde unterschiedlich zum Paar von Impulsen der vorhergehenden Suchrunde ist.
  19. Verfahren zum Suchen eines Kodiervektors nach Patentanspruch 17, wobei die nächste Suchrunde unter Verringerung eines Fehlersignals so lange wiederholt wird, bis eine letzte Suchrunde erreicht ist.
DE60124274T 2000-09-15 2001-09-17 Codebuchstruktur und suchverfahren für die sprachkodierung Expired - Lifetime DE60124274T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US663242 2000-09-15
US09/663,242 US6556966B1 (en) 1998-08-24 2000-09-15 Codebook structure for changeable pulse multimode speech coding
PCT/IB2001/001729 WO2002025638A2 (en) 2000-09-15 2001-09-17 Codebook structure and search for speech coding

Publications (2)

Publication Number Publication Date
DE60124274D1 DE60124274D1 (de) 2006-12-14
DE60124274T2 true DE60124274T2 (de) 2007-06-21

Family

ID=24660996

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60124274T Expired - Lifetime DE60124274T2 (de) 2000-09-15 2001-09-17 Codebuchstruktur und suchverfahren für die sprachkodierung

Country Status (8)

Country Link
US (1) US6556966B1 (de)
EP (1) EP1317753B1 (de)
KR (1) KR20030046451A (de)
CN (1) CN1240049C (de)
AT (1) ATE344519T1 (de)
AU (1) AU2001287969A1 (de)
DE (1) DE60124274T2 (de)
WO (1) WO2002025638A2 (de)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704701B1 (en) * 1999-07-02 2004-03-09 Mindspeed Technologies, Inc. Bi-directional pitch enhancement in speech coding systems
US6959274B1 (en) 1999-09-22 2005-10-25 Mindspeed Technologies, Inc. Fixed rate speech compression system and method
US7013268B1 (en) * 2000-07-25 2006-03-14 Mindspeed Technologies, Inc. Method and apparatus for improved weighting filters in a CELP encoder
FR2813722B1 (fr) * 2000-09-05 2003-01-24 France Telecom Procede et dispositif de dissimulation d'erreurs et systeme de transmission comportant un tel dispositif
JP3558031B2 (ja) * 2000-11-06 2004-08-25 日本電気株式会社 音声復号化装置
US7505594B2 (en) * 2000-12-19 2009-03-17 Qualcomm Incorporated Discontinuous transmission (DTX) controller system and method
JP3404016B2 (ja) * 2000-12-26 2003-05-06 三菱電機株式会社 音声符号化装置及び音声符号化方法
JP3566220B2 (ja) * 2001-03-09 2004-09-15 三菱電機株式会社 音声符号化装置、音声符号化方法、音声復号化装置及び音声復号化方法
US6996522B2 (en) * 2001-03-13 2006-02-07 Industrial Technology Research Institute Celp-Based speech coding for fine grain scalability by altering sub-frame pitch-pulse
FI119955B (fi) * 2001-06-21 2009-05-15 Nokia Corp Menetelmä, kooderi ja laite puheenkoodaukseen synteesi-analyysi puhekoodereissa
US7133485B1 (en) * 2001-06-25 2006-11-07 Silicon Laboratories Inc. Feedback system incorporating slow digital switching for glitch-free state changes
DE10140507A1 (de) * 2001-08-17 2003-02-27 Philips Corp Intellectual Pty Verfahren für die algebraische Codebook-Suche eines Sprachsignalkodierers
ATE322069T1 (de) * 2002-08-08 2006-04-15 Cit Alcatel Verfahren zur signalkodierung mittels einer vektorquantisierung
US7698132B2 (en) * 2002-12-17 2010-04-13 Qualcomm Incorporated Sub-sampled excitation waveform codebooks
WO2004090864A2 (en) * 2003-03-12 2004-10-21 The Indian Institute Of Technology, Bombay Method and apparatus for the encoding and decoding of speech
KR100546758B1 (ko) * 2003-06-30 2006-01-26 한국전자통신연구원 음성의 상호부호화시 전송률 결정 장치 및 방법
US7792670B2 (en) * 2003-12-19 2010-09-07 Motorola, Inc. Method and apparatus for speech coding
EP1735778A1 (de) * 2004-04-05 2006-12-27 Koninklijke Philips Electronics N.V. Stereocodierungs- und decodierungsverfahren und vorrichtungen dafür
US7860710B2 (en) * 2004-09-22 2010-12-28 Texas Instruments Incorporated Methods, devices and systems for improved codebook search for voice codecs
SG123639A1 (en) * 2004-12-31 2006-07-26 St Microelectronics Asia A system and method for supporting dual speech codecs
US7571094B2 (en) * 2005-09-21 2009-08-04 Texas Instruments Incorporated Circuits, processes, devices and systems for codebook search reduction in speech coders
CN101371296B (zh) * 2006-01-18 2012-08-29 Lg电子株式会社 用于编码和解码信号的设备和方法
US7342460B2 (en) * 2006-01-30 2008-03-11 Silicon Laboratories Inc. Expanded pull range for a voltage controlled clock synthesizer
US8326609B2 (en) * 2006-06-29 2012-12-04 Lg Electronics Inc. Method and apparatus for an audio signal processing
US8010351B2 (en) * 2006-12-26 2011-08-30 Yang Gao Speech coding system to improve packet loss concealment
US8688437B2 (en) 2006-12-26 2014-04-01 Huawei Technologies Co., Ltd. Packet loss concealment for speech coding
KR101398836B1 (ko) * 2007-08-02 2014-05-26 삼성전자주식회사 스피치 코덱들의 고정 코드북들을 공통 모듈로 구현하는방법 및 장치
KR20100006492A (ko) 2008-07-09 2010-01-19 삼성전자주식회사 부호화 방식 결정 방법 및 장치
US7898763B2 (en) * 2009-01-13 2011-03-01 International Business Machines Corporation Servo pattern architecture to uncouple position error determination from linear position information
US8924207B2 (en) * 2009-07-23 2014-12-30 Texas Instruments Incorporated Method and apparatus for transcoding audio data
US8260220B2 (en) * 2009-09-28 2012-09-04 Broadcom Corporation Communication device with reduced noise speech coding
US9728200B2 (en) * 2013-01-29 2017-08-08 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for adaptive formant sharpening in linear prediction coding
MX371425B (es) * 2013-06-21 2020-01-29 Fraunhofer Ges Forschung Aparato y metodo para la ocultacion mejorada del libro de codigo adaptativo en la ocultacion similar a acelp mediante la utilizacion de una estimacion mejorada del retardo de tono.
US20150025894A1 (en) * 2013-07-16 2015-01-22 Electronics And Telecommunications Research Institute Method for encoding and decoding of multi channel audio signal, encoder and decoder
US9418671B2 (en) 2013-08-15 2016-08-16 Huawei Technologies Co., Ltd. Adaptive high-pass post-filter
EP4018584A4 (de) * 2019-08-23 2023-05-03 Lenovo (Beijing) Limited Verfahren und vorrichtung zur bestimmung eines harq-ack-codebuchs

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868867A (en) * 1987-04-06 1989-09-19 Voicecraft Inc. Vector excitation speech or audio coder for transmission or storage
US5701392A (en) 1990-02-23 1997-12-23 Universite De Sherbrooke Depth-first algebraic-codebook search for fast coding of speech
JP2841765B2 (ja) * 1990-07-13 1998-12-24 日本電気株式会社 適応ビット割当て方法及び装置
EP0500961B1 (de) * 1990-09-14 1998-04-29 Fujitsu Limited Sprachkodierungsystem
JPH06138896A (ja) 1991-05-31 1994-05-20 Motorola Inc 音声フレームを符号化するための装置および方法
EP0577488B9 (de) 1992-06-29 2007-10-03 Nippon Telegraph And Telephone Corporation Verfahren und Vorrichtung zur Sprachkodierung
CA2108623A1 (en) 1992-11-02 1994-05-03 Yi-Sheng Wang Adaptive pitch pulse enhancer and method for use in a codebook excited linear prediction (celp) search loop
DE4330243A1 (de) * 1993-09-07 1995-03-09 Philips Patentverwaltung Sprachverarbeitungseinrichtung
FR2729245B1 (fr) 1995-01-06 1997-04-11 Lamblin Claude Procede de codage de parole a prediction lineaire et excitation par codes algebriques
CA2213909C (en) * 1996-08-26 2002-01-22 Nec Corporation High quality speech coder at low bit rates
GB9700776D0 (en) * 1997-01-15 1997-03-05 Philips Electronics Nv Method of,and apparatus for,processing low power pseudo-random code sequence signals
US6041297A (en) * 1997-03-10 2000-03-21 At&T Corp Vocoder for coding speech by using a correlation between spectral magnitudes and candidate excitations
US5970444A (en) * 1997-03-13 1999-10-19 Nippon Telegraph And Telephone Corporation Speech coding method
US5924062A (en) * 1997-07-01 1999-07-13 Nokia Mobile Phones ACLEP codec with modified autocorrelation matrix storage and search
JP3199020B2 (ja) * 1998-02-27 2001-08-13 日本電気株式会社 音声音楽信号の符号化装置および復号装置
JP3180762B2 (ja) * 1998-05-11 2001-06-25 日本電気株式会社 音声符号化装置及び音声復号化装置
US6014618A (en) * 1998-08-06 2000-01-11 Dsp Software Engineering, Inc. LPAS speech coder using vector quantized, multi-codebook, multi-tap pitch predictor and optimized ternary source excitation codebook derivation
US6173257B1 (en) 1998-08-24 2001-01-09 Conexant Systems, Inc Completed fixed codebook for speech encoder
JP4173940B2 (ja) * 1999-03-05 2008-10-29 松下電器産業株式会社 音声符号化装置及び音声符号化方法

Also Published As

Publication number Publication date
US6556966B1 (en) 2003-04-29
AU2001287969A1 (en) 2002-04-02
WO2002025638A2 (en) 2002-03-28
CN1457425A (zh) 2003-11-19
ATE344519T1 (de) 2006-11-15
KR20030046451A (ko) 2003-06-12
WO2002025638A3 (en) 2002-06-13
CN1240049C (zh) 2006-02-01
DE60124274D1 (de) 2006-12-14
EP1317753B1 (de) 2006-11-02
EP1317753A2 (de) 2003-06-11

Similar Documents

Publication Publication Date Title
DE60124274T2 (de) Codebuchstruktur und suchverfahren für die sprachkodierung
DE60012760T2 (de) Multimodaler sprachkodierer
DE60120766T2 (de) Indizieren von impulspositionen und vorzeichen in algebraischen codebüchern zur codierung von breitbandsignalen
DE69625874T2 (de) Verfahren und Vorrichtung zur Wiedergabe von Sprachsignalen, zur Dekodierung, zur Sprachsynthese und tragbares Funkendgerät
DE69928288T2 (de) Kodierung periodischer sprache
DE69916321T2 (de) Kodierung eines verbesserungsmerkmals zur leistungsverbesserung in der kodierung von kommunikationssignalen
DE69926821T2 (de) Verfahren zur signalgesteuerten Schaltung zwischen verschiedenen Audiokodierungssystemen
DE602004007786T2 (de) Verfahren und vorrichtung zur quantisierung des verstärkungsfaktors in einem breitbandsprachkodierer mit variabler bitrate
DE60121405T2 (de) Transkodierer zur Vermeidung einer Kaskadenkodierung von Sprachsignalen
DE69910058T2 (de) Verbesserung der periodizität eines breitbandsignals
DE69615839T2 (de) Sprachkodierer
DE60029990T2 (de) Glättung des verstärkungsfaktors in breitbandsprach- und audio-signal dekodierer
DE60128677T2 (de) Verfahren und vorrichtung zur prädiktiven quantisierung von stimmhaften sprachsignalen
DE69322313T2 (de) C.E.L.P. - Vocoder
DE3856211T2 (de) Verfahren zur adaptiven Filterung von Sprach- und Audiosignalen
DE69727895T2 (de) Verfahren und Vorrichtung zur Sprachkodierung
DE69634645T2 (de) Verfahren und Vorrichtung zur Sprachkodierung
DE60011051T2 (de) Celp-transkodierung
DE69900786T2 (de) Sprachkodierung
DE69816810T2 (de) Systeme und verfahren zur audio-kodierung
DE69634179T2 (de) Verfahren und Vorrichtung zur Sprachkodierung und -dekodierung
US6714907B2 (en) Codebook structure and search for speech coding
DE69613360T2 (de) Linear-prädiktiver analyse-durch-synthese sprachkodierer
DE69724739T2 (de) Verfahren zur Erzeugung von Hintergrundrauschen während einer diskontinuierlichen Übertragung
DE69023402T2 (de) Verfahren zur Sprachkodierung und -dekodierung.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HTC CORP., TAOYUAN, TW

8328 Change in the person/name/address of the agent

Representative=s name: 2K PATENTANWAELTE BLASBERG KEWITZ & REICHEL, PARTN