DE60012760T2 - Multimodaler sprachkodierer - Google Patents

Multimodaler sprachkodierer Download PDF

Info

Publication number
DE60012760T2
DE60012760T2 DE60012760T DE60012760T DE60012760T2 DE 60012760 T2 DE60012760 T2 DE 60012760T2 DE 60012760 T DE60012760 T DE 60012760T DE 60012760 T DE60012760 T DE 60012760T DE 60012760 T2 DE60012760 T2 DE 60012760T2
Authority
DE
Germany
Prior art keywords
rate
type
gain
codebook
frame
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
DE60012760T
Other languages
English (en)
Other versions
DE60012760D1 (de
Inventor
Yang Gao
Adil Benyassine
Jes Thyssen
Eyal Sholomot
Huan-Yu Su
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.)
Conexant Systems LLC
Original Assignee
Conexant Systems 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
Priority claimed from US09/574,396 external-priority patent/US6782360B1/en
Application filed by Conexant Systems LLC filed Critical Conexant Systems LLC
Publication of DE60012760D1 publication Critical patent/DE60012760D1/de
Application granted granted Critical
Publication of DE60012760T2 publication Critical patent/DE60012760T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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 OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/167Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03GCONTROL OF AMPLIFICATION
    • H03G3/00Gain control in amplifiers or frequency changers without distortion of the input signal
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding

Description

  • Technisches Gebiet
  • Diese Erfindung bezieht sich auf Sprachkommunikationssysteme bzw. Sprachnachrichtensysteme und spezieller auf Systeme für digitale Sprachcodierung.
  • Technischer Hintergrund
  • Eine gängige Art und Weise menschlicher Kommunikation ist mittels Verwendung von Kommunikationssystemen bzw. Nachrichtensystemen. Kommunikationssysteme umfassen sowohl drahtleitungsgestützte als auch drahtlose funkgestützte Systeme. Drahtlose Kommunikationssysteme sind mit den drahtgestützten Systemen elektrisch verbunden und kommunizieren mit den mobilen Kommunikationsgeräten unter Verwendung von Funkfrequenz (radio frequency, RF)-Kommunikation. Gegenwärtig sind die zur Kommunikation in zellularen Systemen verfügbaren Funkfrequenzen beispielsweise in dem zellularen Frequenzbereich um 900 MHz zentriert und in dem persönlichen Kommunikationsdienste (personal communication services, PCS)-Frequenzbereich um 1900 MHz zentriert. Daten- und Sprachübertragungen innerhalb des drahtlosen Systems besitzen eine Bandbreite, die einen Teil der Funkfrequenz verbraucht. Aufgrund von zunehmendem Verkehr, der durch die wachsende Popularität drahtloser Kommunikationsgeräte, wie beispielsweise Funktelefone, verursacht wird, ist es wünschenswert, die Bandbreite von Übertragungen innerhalb des drahtlosen Systems zu reduzieren.
  • Digitale Übertragung bei drahtlosen Funkkommunikationen wird zunehmend sowohl auf Sprache als auch Daten angewendet, und zwar aufgrund von Rauschimmunität, Zuverlässigkeit, Kompaktheit der Ausrüstung und der Fähigkeit fortgeschrittene Signalverarbeitungsfunktionen unter Verwendung digitaler Techniken zu implementieren. Digitale Übertragung von Sprachsignalen umfasst die folgenden Schritte: Abtasten einer analogen Sprachwellenform mit einem Analog-zu-Digital-Konverter, Sprachkomprimierung bzw. Sprach kompression (Codierung), Übertragung, Sprachdekomprimierung bzw. Sprachdekompression (Decodierung), Digital-zu-Analog-Konvertierung, und Wiedergabe in einen Hörer bzw. eine Hörmuschel oder einen Lautsprecher. Die Abtastung der analogen Sprachwellenform mit dem Analog-zu-Digital-Konverter erzeugt ein digitales Signal. Die Anzahl der in dem digitalen Signal verwendeten Bits zum Darstellen der analogen Sprachwellenform erzeugt jedoch eine relativ große Bandbreite. Beispielsweise führt ein Sprachsignal, das mit einer Rate von 8000 Hz (einmal jede 0,125 ms) abgetastet ist, wobei jeder Abtastwert bzw. jede Tastung durch 16 Bits dargestellt ist, zu einer Bitrate von 128000 (16 × 8000) Bits pro Sekunde oder 128 Kbps (Kilobits pro Sekunde).
  • Sprachkomprimierung kann zum Reduzieren der Anzahl von Bits bzw. Bitanzahl, die das Sprachsignal repräsentieren verwendet werden und dadurch die zur Übertragung nötige Bandbreite reduzieren. Sprachkomprimierung kann jedoch zur Degradation der Qualität der dekomprimierten Sprache führen. Im Allgemeinen wird eine höhere Bitrate zu höherer Qualität führen, während eine niedrigere Bitrate zu niedrigerer Qualität führen wird. Moderne Sprachkomprimierungstechniken, wie beispielsweise Codierungstechniken können jedoch dekomprimierte Sprache mit relativ hoher Qualität bei relativ niedrigen Bitraten erzeugen. Im Allgemeinen versuchen moderne Codierungstechniken die wichtigen wahrnehmbaren Merkmale des Sprachsignals zu repräsentieren und zwar ohne die tatsächliche Sprachwellenform zu erhalten bzw. zu bewahren.
  • Eine zum Verringern der Bitrate verwendete Codierungstechnik umfasst das Variieren des Grades der Sprachkomprimierung (d.h. Variieren der Bitrate) und zwar in Abhängigkeit von dem Teil des zu komprimierenden Sprachsignals. Typischerweise werden Teile des Sprachsignals, für die adäquate Wahrnehmungsdarstellung bzw. Repräsentation schwieriger ist (wie beispielsweise stimmhafte Sprache, Plosive bzw. Verschlusslaute oder stimmhafte Einsätze bzw. stimmhaftes Einschwingen), unter Verwendung einer höheren Bitanzahl codiert und übertragen. Umgekehrt werden Teile der Sprache, für die adäquate Wahrnehmungsrepräsentation weniger schwierig ist (wie beispielsweise stimmloses, oder die Stille bzw. Ruhe zwischen Wörtern), mit einer niedrigeren Bitanzahl codiert. Die resultierende durchschnittliche Bitrate für das Sprachsignal wird relativ niedriger sein als sie es in dem Fall einer festen bzw. fixierten Bitrate wäre, die dekomprimierte Sprache gleicher Qualität liefert.
  • Sprachkomprimierungssysteme, im Allgemeinen Codecs genannt, umfassen einen Encoder und einen Decoder und können zum Reduzieren der Bitrate digitaler Sprachsignale verwendet werden. Für Sprach-Codecs wurden zahlreiche Algorithmen entwickelt, die die Bitanzahl reduzieren, die zum digitalen Codieren der Originalsprache nötig ist, wobei versucht wird, hohe Qualität rekonstruierter Sprache zu erhalten. Codeangeregte lineare prädiktive (Code-Excited Linear Predictive, CELP) Codierungstechniken wie in dem Artikel mit dem Titel „Code-Excited Linear Predictive: High-Quality Speech at Very Low Rates" von M.R. Schroeder und B.S. Atal, Proc. ICASSP-85, Seiten 937–940, 1985, liefern einen effektiven Sprachcodierungsalgorithmus. Ein Beispiel eines CELP-basierten Sprachcoders mit variabler Rate bzw. Geschwindigkeit ist der TIA (Telecommunications Industry Association) IS-127 Standard, der für CDMA (Code Division Multiple Access, Codemultiplex-Vielfachzugriff) Anwendungen ausgelegt ist, und zwar mit dem Titel „Enhanced Variable Rate Codec, Speech Service Option 3 für Wideband Spread Spectrum digital Systems", Committee, TR-45.5, Kategorie: Telecommunications, veröffentlicht 1. Januar 1997. Die CELP Codierungstechnik verwendet mehrere Prädiktionstechniken bzw. Vorhersagetechniken zum Entfernen der Redundanz aus dem Sprachsignal. Der CEPL Codierungsansatz ist rahmenbasiert in dem Sinn, dass er abgetastete Eingangssprachsignale speichert und zwar in einen Block von Tastungen, als Rahmen bezeichnet. Die Datenrahmen können dann zum Kreieren eines komprimierten Sprachsignals in digitaler Form verarbeitet werden.
  • Der CELP Codierungsansatz verwendet zwei Arten von Prädiktoren, einen Kurzzeitprädiktor (short-term predictor) und einen Langzeitprädiktor (long-term predictor). Der Kurzzeitprädiktor wird typischerweise vor dem Langzeitprädiktor angewendet. Ein von dem Kurzzeitprädiktor abgeleiteter Prädiktionsfehler wird üblicherweise Kurzzeitrest bzw. Kurzzeitresidum (short-term residual) genannt und ein von dem Langzeitprädiktor abgeleiteter Prädiktionsfehler wird üblicherweise Langzeitrest genannt. Der Langzeitrest kann unter Verwendung eines festen bzw. fixierten Codebuchs codiert werden, wobei das Codebuch eine Vielzahl von festen bzw. fixierten Codebucheinträgen oder Vektoren umfasst. Einer der Einträge kann ausgewählt werden und mit einem festen Codebuchgewinn multipliziert werden, und zwar um den Langzeitrest darzustellen. Der Kurzzeitprädiktor kann auch als eine LPC (Linear Prediction Coding, lineare Prädiktionscodierung) oder als eine spektrale Darstellung bezeichnet werden und enthält typischerweise 10 Prädiktionsparameter. Der Langzeitprädiktor kann auch als ein Tonhöhenprädiktor (pitch predictor) oder als ein adaptives Codebuch bezeichnet werden und enthält typischerweise einen Verzögerungs- bzw. Nacheil- bzw. Abstandsparameter (lag parameter) und einen Langzeitprädiktor-Verstärkungsparameter (gain parameter). Jeder Abstandsparameter kann auch Tonhöhenabstand (pitch lag) genannt werden, und jeder Langzeitprädiktor-Verstärkungsparameter kann auch eine adaptive Codebuchverstärkung genannt werden. Der Abstandsparameter definiert einen Eintrag oder einen Vektor in dem adaptiven Codebuch.
  • Der CELP Codierer führt zum Bestimmen der Kurzzeitprädiktorparameter eine LPC Analyse durch. Im Anschluss an die LPC Analyse können die Langzeitprädiktorparameter bestimmt werden. Zusätzlich findet eine Bestimmung des festen Codebucheintrags und des festen Codebuchgewinns bzw -verstärkung statt, und zwar der die am Besten den Langzeitrest repräsentieren. Das leistungsfähige Konzept der Analyse durch Synthese (analysis-by-synthesis, ABS) wird beim CELP Codieren angewendet. In dem ABS Ansatz können der beste Beitrag von dem festen Codebuch, der beste feste Codebuchgewinn und die besten Langzeitprädiktorparameter gefunden werden und zwar indem diese durch Synthese aufgebaut werden unter Verwendung eines inversen Präditionsfilters und Anwenden eines Wahrnehmungsgewichtungsmaßes (perceptual weighting measure). Die Kurzzeit (LPC)-Prädiktionskoeffizienten, der feste Codebuchgewinn, wie auch der Abstandsparameter und der Langzeitverstärkungsparameter können dann quantisiert werden. Die Quantisierungsindizes, wie auch die festen Codebuchindizes, können von dem Codierer zu dem Decoder gesendet werden.
  • Der CELP Decoder verwendet die festen Codebuchindizes um einen Vektor aus dem festen Codebuch zu extrahieren. Der Vektor kann mit dem festen Codebuchgewinn multipliziert werden und zwar um eine Langzeitanregung zu kreieren, die auch als fester Codebuchbeitrag bekannt ist. Ein Langzeitprädiktorbeitrag kann zu der Langzeitanregung addiert werden, und zwar um eine Kurzzeitanregung zu kreieren, die allgemein einfach als eine Anregung bezeichnet wird. Der Langzeitprädiktorbeitrag enthält die Kurzzeitanregung aus der Vergangenheit, multipliziert mit dem Langzeitprädiktorgewinn. Die Addition des Langzeitprädiktorbeitrags kann alternativ als ein adaptiver Codebuchbeitrag oder als eine Langzeit (Tonhöhen)-Filterung gesehen werden. Die Kurzzeitanregung kann durch einen kurzzeitinversen Prädiktionsfilter (LPC) gegeben werden, der die Kurzzeit (LPC)-Prädiktionskoeffizienten verwendet, die von dem Codierer quantisiert wurden, um synthetisierte Sprache zu erzeugen. Die synthetisierte Sprache kann dann durch einen Nachfilter (postfilter) laufen, der wahrnehmbares Codierungsrauschen reduziert.
  • Diese Sprachkomprimierungstechniken haben zu einer Verminderung des zur Übertragung eines Sprachsignals verwendeten Bandbreitenumfangs geführt. Weitere Bandbreitenreduktion ist jedoch besonders wichtig bei einem Kommunikationssystem, das seine Ressourcen an eine große Anzahl von Nutzern verteilen muss. Entsprechend gibt es einen Bedarf für Systeme und Verfahren zur Sprachcodierung, die geeignet sind, die zur Sprachdarstellung benötigte durchschnittliche Bitrate zu minimieren, und dabei hohe Qualität dekomprimierter Sprache zu liefern.
  • Offenbarung der Erfindung
  • Diese Erfindung liefert Systeme zum Codieren und Decodieren von Sprachsignalen. Die Ausführungsbeispiele können die CELP Codierungstechnik und prädiktionsbasierende Codierung verwenden und zwar als einen Rahmen zum Anwenden von Signalverarbeitungsfunktionen, unter Verwendung von Wellenformabgleich und wahrnehmungsbezogenen Techniken bzw. Verfahren. Diese Techniken erlauben die Erzeugung bzw. Generierung von synthetisierter Sprache, die nahe bzw. genau der originalen Sprache ähnelt, und zwar durch Einbeziehen von Wahrnehmungsmerkmalen bei Aufrechterhaltung einer relativ niedrigen Bitrate. Eine Anwendung der Ausführungsbeispiele ist bei drahtlosen Kommunikationssystemen. In dieser Anwendung kann die Codierung von Originalsprache oder die Decodierung zum Erzeugen synthetisierter Sprache bei Mobilkommunikationsgeräten stattfinden. Zusätzlich kann Codierung und Decodierung innerhalb drahtgestützter Systeme oder innerhalb anderer drahtloser Kommunikationssysteme stattfinden, und zwar zum Vorsehen von Interfaces bzw. Schnittstellen zu drahtgestützten Systemen.
  • Ein Ausführungsbeispiel eines Sprachkomprimierungssystems umfasst einen-Vollraten-Codec, einen Halbraten-Codec, einen Viertelraten-Codec und einen Achtelraten-Codec, wobei jeder geeignet ist, Sprachsignale zu codieren und zu decodieren. Die Vollraten-, Halbraten-, Viertelraten- und Achtelraten-Codecs codieren die Sprachsignale mit Bitraten von 8,5 Kbps, 4 Kbps, 2 Kbps bzw. 0,8 Kbps. Das Sprachkomprimierungssystem führt eine Ratenwahl bzw. Ratenauswahl bzw. Ratenselektion für einen Rahmen eines Sprachsignals durch, um einen der Codecs auszuwählen. Die Ratenauswahl wird auf einer rahmenweisen Grundlage durchgeführt. Rahmen werden kreiert durch Unterteilen des Sprachsignals in Segmente mit einer begrenzten Zeitdauer. Da jeder Rahmen mit einer unterschiedlichen Bitrate bzw. Bitgeschwindigkeit codiert werden kann, ist das Sprachkomprimierungssystem ein Sprachkomprimierungssystem mit variabler Rate bzw. Geschwindigkeit, das die Sprache mit einer durchschnittlichen Bitrate codiert.
  • Die Ratenauswahl wird bestimmt durch Charakterisierung jedes Rahmens des Sprachsignals und zwar basierend auf dem Anteil des Sprachsignals, das in dem bestimmten Rahmen enthalten ist. Beispielsweise können Rahmen wie folgt charakterisiert werden: stationär stimmhaft, nicht-stationär stimmhaft, stimmlos, Hintergrundrauschen, Ruhe usw. Zusätzlich basiert die Ratenaus wahl auf einem Modus innerhalb dessen das Sprachkomprimierungssystem operiert bzw. betrieben wird. Die unterschiedlichen Modi zeigen die gewünschte durchschnittliche Bitrate an. Die Codecs werden für optimierte Codierung entworfen bzw. bestimmt, und zwar innerhalb der unterschiedlichen Charakterisierungen des Sprachsignals. Optimale Codierung wägt ab zwischen dem Wunsch synthetisierte Sprache der höchsten wahrnehmbaren Qualität zu liefern und dem Beibehalten der gewünschten bzw. Soll-Durchschnittsbitrate, um dadurch die Verwendung der vorhandenen Bandbreite zu maximieren. Während des Betriebs aktiviert das Sprachkomprimierungssystem wahlweise die Codecs und zwar basierend sowohl auf dem Modus als auch der Charakterisierung des Rahmens in einem Bestreben, die wahrnehmbare Qualität der synthetisierten Sprache zu optimieren.
  • Sobald der Voll- oder der Halbraten-Codec von der Ratenauswahl ausgewählt wurde, findet eine Typklassifizierung des Sprachsignals statt, zum weiteren Optimieren der Codierung. Die Typklassifizierung kann ein erster Typ (d.h. ein Typ Eins (Type One)) für Rahmen sein, die eine harmonische Struktur und eine Formantstruktur beinhalten, die sich nicht schnell ändert, oder ein zweiter Typ (d.h. ein Typ Null (Type Zero)) für alle anderen Rahmen sein. Die Bitzuordnung der Vollraten- und Halbraten-Codecs kann ansprechend auf die Typklassifizierung eingestellt werden und zwar um die Codierung des Rahmens weiter zu optimieren. Die Einstellung der Bitzuordnung liefert verbesserte wahrnehmbare Qualität des rekonstruierten Sprachsignals und zwar durch Betonen bzw. Hervorheben unterschiedlicher Aspekte des Sprachsignals innerhalb jedes Rahmens.
  • Entsprechend ist der Sprachcodierer geeignet, die Codecs wahlweise zu aktivieren und zwar um die Gesamtqualität eines rekonstruierten Sprachsignals zu maximieren, während die gewünschte durchschnittliche Bitrate beibehalten wird. Andere Systeme, Verfahren, Merkmale und Vorteile der Erfindung sind oder werden für einen Fachmann, bei der Betrachtung der folgenden Figuren und detaillierten Beschreibung, klar werden. Es ist beabsichtigt, dass alle solche zusätzlichen Systeme, Verfahren, Merkmale und Vorteile in diese Be schreibung einbezogen werden, innerhalb des Rahmens der Erfindung liegen und von den begleitenden Ansprüchen geschützt werden.
  • Kurze Beschreibung der Zeichnungen
  • Die Komponenten in den Figuren sind nicht notwendigerweise maßstabsgetreu, stattdessen liegt der Schwerpunkt beim Erläutern der Prinzipien der Erfindung. Außerdem bezeichnen in den Figuren gleiche Bezugszeichen überall in den unterschiedlichen Ansichten übereinstimmende Teile.
  • 1 zeigt ein Blockdiagramm eines Ausführungsbeispiels eines Sprachkomprimierungssystems.
  • 2 zeigt ein erweitertes Blockdiagramm eines Ausführungsbeispiels des in 1 dargestellten Codierungssystems.
  • 3 zeigt ein erweitertes Blockdiagramm eines Ausführungsbeispiels des in 1 dargestellten Decodierungssystems.
  • 4 zeigt eine Tabelle, die die Bitzuordnung eines Ausführungsbeispiels des Vollraten-Codec darstellt.
  • 5 zeigt eine Tabelle, die die Bitzuordnung eines Ausführungsbeispiels des Halbraten-Codec darstellt.
  • 6 zeigt eine Tabelle, die die Bitzuordnung eines Ausführungsbeispiels des Viertelraten-Codec darstellt.
  • 7 zeigt eine Tabelle, die die Bitzuordnung eines Ausführungsbeispiels des Achtelraten-Codec darstellt.
  • 8 zeigt ein erweitertes Blockdiagramm eines Ausführungsbeispiels des in 2 dargestellten Vorverarbeitungsmoduls.
  • 9 zeigt ein erweitertes Blockdiagramm eines Ausführungsbeispiels des in 2 dargestellten Initiale- bzw. Anfangsrahmenverarbeitungsmoduls für die Voll- und Halbraten-Codecs
  • 10 zeigt ein erweitertes Blockdiagramm eines Ausführungsbeispiels des in 2 dargestellten ersten Teil- bzw. Unterrahmenverarbeitungsmoduls für die Voll- und Halbraten-Codecs
  • 11 zeigt ein erweitertes Blockdiagramm eines Ausführungsbeispiels des in 2 dargestellten ersten Rahmenverarbeitungsmoduls, des zweiten Unterrahmenverarbeitungsmoduls und des zweiten Rahmenverarbeitungsmoduls für die Voll- und Halbraten-Codecs.
  • 12 zeigt ein erweitertes Blockdiagramm eines Ausführungsbeispiels für das, in 3 dargestellte, Decodierungssystem für die Voll- und Halbraten-Codecs.
  • Modi zum Ausführen der Erfindung
  • Die Ausführungsbeispiele werden erläutert mit Bezug auf Sprachsignale, die Verarbeitung irgendwelcher anderer Signale ist jedoch möglich. Es ist auch selbstverständlich, dass die offenbarten nummerischen Werte nummerisch dargestellt werden können durch Fließkomma- (floating point), Festkomma- (fixed point), Dezimal- oder andere gleichartige nummerische Darstellung, die leichte Variation in den Werten verursachen kann, aber die Funktionalität nicht beeinträchtigt. Ferner sind als Module bezeichnete funktionale Blöcke nicht dazu gedacht diskrete Strukturen darzustellen und können in verschiedenen Ausführungsbeispielen kombiniert oder weiter unterteilt werden.
  • 1 zeigt ein Blockdiagramm eines Ausführungsbeispiels des Sprachkomprimierungssystems 10. Das Sprachkomprimierungssystem 10 umfasst ein Codierungssystem 12, ein Kommunikationsmedium 14 und ein Decodierungssystem 16, die wie dargestellt, verbunden sein können. Das Sprachkomprimierungssystem 10 kann irgendein System sein, das geeignet ist, ein Sprachsignal 18 zu empfangen und zu codieren, und es dann zu decodieren um nachverarbeitete (post-processed) synthetisierte Sprache 20 zu kreieren bzw. zu erzeugen. In einem typischen Kommunikationssystem ist das drahtlose Kommunikationssystem mit einem öffentlichen Telefonnetz (public switched telephone network, PSTN) elektrisch verbunden und zwar innerhalb des drahtgestützten Kommunikationssystems. Innerhalb des drahtlosen Kommunikationssystems werden typischerweise eine Vielzahl von Basisstationen verwendet um Funkkommunikation vorzusehen, und zwar mit mobilen Kommunikati onsgeräten, wie beispielsweise einem Mobiltelefon (cellular telephone) oder einem tragbaren Funktransceiver.
  • Das Sprachkomprimierungssystem 10 arbeitet um das Sprachsignal 18 zu empfangen. Das von einem Sende (nicht gezeigt) ausgesendete Sprachsignal 18 kann beispielsweise von einem Mikrofon (nicht gezeigt) eingefangen werden, und durch einen Analog-zu-Digital-Konverter (nicht gezeigt) digitalisiert werden. Der Sender kann eine menschliche Sprache, ein Musikinstrument oder irgendein anderes Gerät sein, das geeignet ist, analoge Signale auszusenden. Das Sprachsignal 18 kann irgendeinen Klangtyp repräsentieren, wie beispielsweise stimmhafte Sprache, stimmlose Sprache, Hintergrundrauschen, Stille, Musik usw.
  • Das Codierungssystem 12 wird betrieben zum Codieren des Sprachsignals 18. Das Codierungssystem 12 kann Teil eines mobilen Kommunikationsgeräts, einer Basisstation oder irgendeines anderen drahtlosen oder Drahtleitungskommunikationsgeräts sein, das geeignet ist, durch einen Analog-zu-Digital-Konverter digitalisierte Sprachsignale 18 zu empfangen und zu codieren. Die Drahtleitungskommunikationsgeräte können Sprache über Internetprotokoll (Voice over Internet Protocol, VoIP)-Geräte und Systeme umfassen. Das Codiersystem 12 segmentiert das Sprachsignal 18 in Rahmen um einen Bitstrom zu generieren. Ein Ausführungsbeispiel des Sprachkomprimierungssystems 10 verwendet Rahmen, die 160 Abtastungen bzw. Tastungen enthalten bzw. aufweisen, was bei einer Abtastrate von 8000 Hz 20 Millisekunden pro Rahmen entspricht. Die von dem Bitstrom repräsentierten Rahmen können an das Kommunikationsmedium 14 geliefert werden.
  • Das Kommunikationsmedium 14 kann irgendein Übertragungsmechanismus sein, wie beispielsweise ein Kommunikationskanal, Funkwellen, Mikrowellendrahtübertragungen, Glasfaserübertragungen oder irgendein Medium, das geeignet ist, den vom Codierungssystem 12 generierten Bitstrom zu befördern. Das Kommunikationsmedium 14 kann auch Sende- bzw. Übertragungsgeräte und Empfangsgeräte umfassen, die bei der Übertragung des Bitstroms ver wendet werden. Ein beispielhaftes Ausführungsbeispiel des Kommunikationsmediums 14 kann Kommunikationskanäle, Antennen und zugeordnete Transceiver zur Funkkommunikation in einem drahtlosen Kommunikationssystem umfassen. Das Kommunikationsmedium 14 kann auch ein Speichermechanismus sein, wie beispielsweise ein Speichergerät, ein Aufbewahrungsmedium oder anderes Gerät, das geeignet ist zum Aufbewahren bzw. Speichern und Wiedergewinnen des vom Codiersystem 12 generierten Bitstroms. Das Kommunikationsmedium 14 wird betrieben zum Senden bzw. Übertragen des vom Codiersystem 12 generierten Bitstroms zu dem Decodiersystem 16.
  • Das Decodiersystem 16 empfängt den Bitstrom von dem Kommunikationsmedium 14. Das Decodiersystem 16 (14) kann Teil eines mobilen Kommunikationsgeräts sein, einer Basisstation oder anderen drahtlosen oder Drahtleitungskommunikationsgerät sein, das geeignet ist, den Bitstrom zu empfangen. Das Decodiersystem 16 wird betrieben zum Decodieren des Bitstroms und zum Generieren der nachverarbeiteten synthetisierten Sprache 20, und zwar in der Form eines digitalen Signals. Die nachverarbeitete synthetisierte Sprache 20 kann dann durch einen Digital-zu-Analog-Converter (nicht gezeigt) in ein Analogsignal konvertiert werden. Der Analogaussgang des Digital-zu-Analog-Converters kann durch einen Empfänger (nicht gezeigt) empfangen werden, der ein menschliches Ohr, ein Magnetbandrecorder oder irgendein anderes Gerät sein kann, das geeignet ist, ein Analogsignal zu empfangen. Alternativ kann ein digitales Aufnahmegerät, ein Spracherkennungsgerät oder irgendein anderes Gerät, das geeignet ist ein digitales Signal zu empfangen, die nachverarbeitete synthetisierte Sprache 20 empfangen.
  • Ein Ausführungsbeispiel des Sprachkomprimierungssystems 10 umfasst auch eine Modusleitung 21. Die Modusleitung 21 führt bzw. trägt ein Modussignal, das das Sprachkomprimierungssystem 10 steuert, und zwar durch Anzeigen der gewünschten durchschnittlichen Bitrate für den Bitstrom. Das Modussignal kann extern generiert werden, durch beispielsweise ein drahtloses Kommunikationssystem, das ein Modussignalgenerierungsmodul verwendet. Das Modussignalgenerierungsmodul bestimmt das Modussignal und zwar basierend auf einer Vielzahl von Faktoren, wie beispielsweise der gewünschten Qualität der nachverarbeiteten synthetisierten Sprache 20, der verfügbaren Bandbreite, den von einem Nutzer bezogenen Diensten oder irgendeinem anderen relevanten Faktor. Das Modussignal wird von dem Kommunikationssystem, innerhalb dessen das Sprachkomprimierungssystem 10 betrieben wird gesteuert und ausgewählt. Das Modussignal kann an das Codierungssystem 12 geliefert werden, um bei der Bestimmung welcher der Vielzahl von Codecs innerhalb des Codierungssystems 12 aktiviert werden kann, zu helfen.
  • Die Codecs beinhalten einen Codierabschnitt bzw. -anteil und einen Decodierabschnitt bzw. -anteil, die innerhalb des Codierungssystems 12 bzw. des Decodiersystems 16 lokalisiert sind. In einem Ausführungsbeispiel des Sprachkomprimierungssystems 10 gibt es vier Codecs, und zwar wie folgt: einen Vollraten-Codec 22, einen Halbraten-Codec 24, einen Viertelraten-Codec 26 und einen Achtelraten-Codec 28. Jeder der Codecs 22, 24, 26 und 28 ist betreibbar zum Generieren des Bitstroms. Die Größe des Bitstroms, der von jedem Codec 22, 24, 26 und 28 generiert wird, und somit die Bandbreite oder Kapazität, die zur Übertragung des Bitstroms über das Kommunikationsmedium 14 benötigt wird, ist unterschiedlich.
  • In einem Ausführungsbeispiel generieren bzw. erzeugen der Vollraten-Codec 22, der Halbraten-Codec 24, der Viertelraten-Codec 26 bzw. der Achtelraten-Codec 28 pro Rahmen 170 Bits, 80 Bits, 40 Bits bzw. 16 Bits. Die Größe des Bitstroms jedes Rahmens entspricht einer Bitrate und zwar 8,5 Kbps für den Vollraten-Codec 22, 4,0 Kbps für den Halbraten-Codec 24, 2,0 Kbps für den Viertelraten-Codec 26 und 0,8 Kbps für den Achtelraten-Codec 28. Jedoch sind weniger oder mehr Codecs sowie auch andere Bitraten in alternativen Ausführungsbeispielen möglich. Durch Verarbeitung der Rahmen des Sprachsignals 18 mit den verschiedenen Codecs wird eine durchschnittliche Bitrate erreicht. Das Codierungssystem 12 bestimmt welcher der Codecs, 22, 24, 26 und 28 verwendet werden kann zum Codieren eines speziellen Rahmens und zwar basierend auf der Charakterisierung des Rahmens und auf der durch das Modussignal gelieferten gewünschten durchschnittlichen Bitrate. Charakterisierung eines Rahmens basiert auf dem Abschnitt des in dem speziellen Rahmen enthaltenen Sprachsignals 18. Beispielsweise können Rahmen charakterisiert werden als stationär stimmhaft, nicht-stationär stimmhaft, stimmlos, Einschwingen bzw. Anlaut (onset), Hintergrundrauschen, Stille usw.
  • Das Modussignal auf der Modussignalleitung 21 kennzeichnet in einem Ausführungsbeispiel einen Modus 0, einen Modus 1 und einen Modus 2. Jeder der drei Modi liefert eine unterschiedliche gewünschte durchschnittliche Bitrate, die den Prozentsatz der Verwendung jedes der Codecs 22, 24, 26 und 28 variieren kann. Modus 0 kann als ein Premiummodus bezeichnet werden, in dem die meisten der Rahmen mit dem Vollraten-Codec 22 codiert werden können; wenigere der Rahmen können mit dem Halbraten-Codec 24 codiert werden; und Rahmen, die Stille bzw. Ruhe und Hintergrundrauschen enthalten können mit dem Viertelraten-Codec 26 und dem Achtelraten-Codec 28 codiert werden. Modus 1 kann als ein Standardmodus bezeichnet werden, in dem Rahmen mit hohem Informationsinhalt wie beispielsweise Anlaute und einige stimmhafte Rahmen mit dem Vollraten-Codec 22 codiert werden können. Zusätzlich können andere stimmhafte und stimmlose Rahmen mit dem Halbraten-Codec 24 codiert werden, einige stimmlose Rahmen können mit dem Viertelraten-Codec 26 codiert werden und stille und stationäre Hintergrundrauschrahmen können mit dem Achtelraten-Codec 28 codiert werden.
  • Modus 2 kann als ein wirtschaftlicher Modus bezeichnet werden, in dem nur einige Rahmen mit hohem Informationsinhalt mit dem Vollraten-Codec 22 codiert werden können. Die meisten der Rahmen im Modus 2 können mit dem Halbraten-Codec 24 codiert werden, mit der Ausnahme einiger stimmloser Rahmen, die mit dem Viertelraten-Codec 26 codiert werden können. Stille und stationäre Hintergrundrauschrahmen können mit dem Achtelraten-Codec 28 im Modus 2 codiert werden. Entsprechend kann das Sprachkomprimierungssystem 10 durch Variieren der Auswahl der Codecs 22, 24, 26 und 28 rekonstruierte Sprache mit der gewünschten durchschnittlichen Bitrate liefern und zwar in einem Bestreben die höchstmögliche Qualität zu erhalten. Zusätzliche Modi, wie beispielsweise ein Modus 3, der in einem superwirtschaftlichen Modus betrieben wird, oder einem Halbratenmaxmodus, bei dem der maximal aktivierte Codec der Halbratenmodus 24 ist, sind in alternativen Ausführungsbeispielen möglich.
  • Weitere Steuerung des Sprachkomprimierungssystems 10 kann auch durch eine Halbratensignalleitung 30 vorgesehen sein. Die Halbratensignalleitung 30 liefert einen Halbratensignalisiermarker bzw. -anzeige (flag). Die Halbratensignalisiermarker kann durch eine Quelle, wie beispielsweise einem drahtlosen Kommunikationssystem, geliefert werden. Wenn er aktiviert bzw. gesetzt ist, weist der Halbratensignalisiermarker das Sprachkomprimierungssystem 10 an, den Halbraten-Codec 24 als die maximale Rate zu verwenden. Die Bestimmung wann der Halbratensignalisiermarker zu aktivieren ist, wird durch das Kommunikationssystem durchgeführt innerhalb dessen das Sprachkomprimierungssystem 10 betrieben wird. Ähnlich wie bei der Modussignalbestimmung steuert ein Halbratensignalisiermodul die Aktivierung des Halbratensignalisiermarkers und zwar basierend auf einer Vielzahl von Faktoren, die durch das Kommunikationssystem bestimmt werden. In alternativen Ausführungsbeispielen könnte der Halbratensignalisiermarker das Sprachkomprimierungssystem 10 anweisen, einen Codec 22, 24, 26 und 28 anstelle eines anderen zu verwenden oder einen oder mehrere der Codecs 22, 24, 26 und 28 als maximale oder minimale Rate bestimmen.
  • In einem Ausführungsbeispiel des Sprachkomprimierungssystems 10 können die Voll- und Halbraten-Codec 22 und 24 auf einem eX-CELP (extended CELP, erweiterter CELP)-Ansatz basieren und die Viertel- und Achtelraten-Codec 26 und 28 können auf einem Wahrnehmungsanpassungsansatz bzw. -vorgehensweise basieren. Der eX-CELP Ansatz erweitert die traditionelle Balance zwischen Wahrnehmungsanpassung bzw. Abgleich und Wellenformanspassung des traditionellen CELP und wird beschrieben in einer Veröffentlichung mit dem Titel „EX-CELP: A SPEECH CODING PARADIGM". Veröffentlicht in „The Proceedings of the ICASSP 2001, Salt Lake Cite, UTAH; Mai 2001, Seiten 689–692 von Gao et al. Im Speziellen kategorisiert der eX-CELP Ansatz die Rahmen unter Verwendung einer Ratenselektion bzw. -auswahl und einer Typklassifizierung, die später beschrieben wird. Innerhalb der unterschiedlichen Rahmenkategorien können unterschiedliche Codierungsansätze verwendet werden, die unterschiedliche Wahrnehmungsanpassung, unterschiedliche Wellenformanpassung und unterschiedliche Bitzuweisungen besitzen. Der Wahrnehmungsanpassungsansatz des Viertelraten-Codec 26 und des Achtelraten-Codec 28 verwendet keine Wellenformanpassung und ist stattdessen beim Codieren von Rahmen auf Wahrnehmungsaspekte konzentriert.
  • Die Codierung jedes Rahmen mit entweder dem eX-CELP Ansatz oder dem Wahrnehmungsanpassungsansatz kann basieren auf weiterem Unterteilen des Rahmens in eine Vielzahl von Teil- bzw. Unterrahmen. Die Unterrahmen können für jeden Codec 22, 24, 26 und 28 in Größe und Anzahl unterschiedlich sein. Zusätzlich können bezüglich des eX-CELP Ansatzes die Unterrahmen für jede Kategorie unterschiedlich sein. Innerhalb der Unterrahmen können Sprachparameter und Wellenformen mit verschieden prädiktiven und nicht-prädiktiven Scalar- und Vektorquantisierungstechniken codiert werden. Bei Scalarquantisierung kann ein Sprachparameter oder -element durch einen Indexort bzw. eine Indexstelle (index location) des nächsten bzw. nächstgelegenen Eintrags in einer repräsentativen Scalartabelle repräsentiert werden. Bei Vektorquantisierung können verschiedene Sprachparameter gruppiert werden, um einen Vektor zu bilden bzw. zu formen. Der Vektor kann durch einen Indexort des nächstgelegenen Eintrags in einer repräsentativen Vektortabelle repräsentiert werden.
  • Bei prädiktiver Codierung kann ein Element aus der Vergangenheit prädiktiert bzw. vorhergesagt werden. Das Element kann ein Skalar oder ein Vektor sein. Der Prädiktionsfehler kann dann quantisiert werden, und zwar durch Verwendung einer Skalartabelle (Skalarquantisierung) oder einer Vektortabelle (Vektorquantisierung). Der eX-CELP Codierungsansatz, ähnlich dem traditionellen CELP, verwendet das leistungsfähige Analyse-durch-Synthese (Analysis-by-Synthesis, ABS)-Schema zur Auswahl der besten Repräsentation bzw. Dar stellung verschiedener Parameter. Insbesondere können die Parameter das adaptive Codebuch, das feste bzw. fixierte Codebuch und ihre entsprechenden Verstärkungen sein. Das ABS Schema verwendet inverse Prediktionsfilter und wahrnehmungsangepasste Maße bzw. Messungen zur Auswahl der besten Codebucheinträge.
  • Eine Implementierung eines Ausführungsbeispiels des Sprachkomprimierungssystems 10 kann in einem Signalverarbeitungsgerät, wie beispielsweise einem digitalen Signalverarbeitungs (Digital Signal Processing, DSP)-Chip, einem mobilen Kommunikationsgerät oder einer Funktübertragungsbasisstation sein. Das Signalverarbeitungsgerät kann mit Quellcode (source code) programmiert werden. Der Quellcode muss erst in Festkomma übersetzt werden und dann in die Programmiersprache übersetzt werden, die speziell für das Signalverarbeitungsgerät ist. Der übersetzte Quellcode kann dann in das Signalverarbeitungsgerät hinuntergeladen werden und ablaufen. Ein Beispiel von Quellcode ist das von einem Ausführungsbeispiel des Sprachkomprimierungssystems 10 verwendete Computerprogramm in der C-Sprache, das in dem beigefügten Mikrofilmanhang als Anhang A und B einbezogen ist.
  • 2 zeigt ein detaillierteres Blockdiagramm des in 1 dargestellten Codiersystems 12. Ein Ausführungsbeispiel des Codiersystems 12 umfasst ein Vorverarbeitungsmodul (pre-processing module) 34, einen Vollraten-Codierer (full-rate encoder) 36, einen Halbraten-Codierer (half-rate encoder) 38, einen Viertelraten-Codierer (quarter-rate encoder) 40 und einen Achtelraten-Codierer (eigth-rate encoder) 42, die wie dargestellt, verbunden werden können. Die Raten-Codierer 36, 38, 40 und 42 umfassen ein Anfangs- bzw. Initialrahmenverarbeitungsmodul 44 und ein Anregungsverarbeitungsmodul 54.
  • Das vom Codiersystem 12 empfangene Sprachsignal 18 wird auf einer Rahmenebene von dem Vorverarbeitungsmodul 34 verarbeitet. Das Vorverarbeitungsmodul 34 wird betrieben um eine Anfangsverarbeitung des Sprachsignals 18 vorzusehen. Die Anfangsverarbeitung kann Filterung, Signalverstärkung bzw. -anhebung, Rauschentfernung, Verstärkung und andere ähnliche Techniken umfassen, die geeignet sind, das Sprachsignal 18 für nachfolgende Codierung zu optimieren.
  • Die Voll-, Halb-, Viertel- und Achtelraten-Codierer 36, 38, 40 bzw. 42 sind die Codierabschnitte bzw. -anteile des Voll-, Halb-, Viertel bzw. Achtelraten-Codecs 22, 24, 26 bzw. 28. Das Anfangsrahmenverarbeitungsmodul 44 führt anfängliche Rahmenverarbeitung, Sprachparameterextraktion durch und bestimmt welcher der Raten-Codierer 36, 38, 40 und 42 einen bestimmten Rahmen codieren wird. Das Anfangsrahmenverarbeitungsmodul 44 kann zur Darstellung in eine Vielzahl von Anfangsrahmenverarbeitungsmodulen unterteilt werden und zwar in ein Anfangsvollrahmenverarbeitungsmodul 46, ein Anfangshalbrahmenverarbeitungsmodul 48, ein Anfangsviertelrahmenverarbeitungsmodul 50 und ein Anfangsachtelrahmenverarbeitungsmodul 52. Jedoch sollte bemerkt werden, dass das Anfangsrahmenverarbeitungsmodul 44 Verarbeitung durchführt, die allen der Raten-Codierer 36, 38, 40 und 42 gemeinsam ist, und spezielle Verarbeitung durchführt, die speziell ist für jeden Raten-Codierer 36, 38, 40 und 42. Die Unterteilung des Anfangsrahmenverarbeitungsmoduls 44 in die entsprechenden Anfangsrahmenverarbeitungsmodule 46, 48, 50 und 52 korrespondiert mit einem entsprechenden Raten-Codierer 36, 38, 40 und 42.
  • Das Anfangsrahmenverarbeitungsmodul 44 führt zum Bestimmen einer Ratenauswahl bzw. Ratenwahl (rate selection), die einen der Raten-Codierer 36, 38, 40 und 42 aktiviert, gemeinsame Verarbeitung durch. In einem Ausführungsbeispiel basiert die Ratenwahl auf der Charakterisierung des Rahmens des Sprachsignal 18 und dem Modus innerhalb dessen das Sprachkomprimierungssystem 10 betrieben wird. Aktivierung eines der Raten-Codierer 36, 38, 40 und 42 aktiviert entsprechend eines der Anfangsrahmenverarbeitungsmodule 46, 48, 50 und 52.
  • Das spezielle Anfangsrahmenverarbeitungsmodul 46, 48, 50 und 52 wird zum Codieren von Aspekten des Sprachsignals 18, die dem gesamten Rahmen gemeinsam sind, aktiviert. Die Codierung durch das Anfangsrahmenverarbei tungsmodul 44 quantisiert Parameter des in einem Rahmen enthaltenen Sprachsignals 18. Die quantisierten Parameter führen zur Generierung bzw. Erzeugung eines Teils bzw. Anteils des Bitstroms. Im Allgemeinen ist der Bitstrom die komprimierte Darstellung eines Rahmens des Sprachsignals 18, der durch das Codiersystem 12 durch einen der Raten-Codierer 36, 38, 40 und 42 verarbeitet worden ist.
  • Zusätzlich zu der Ratenauswahl führt das Anfangsrahmenverarbeitungsmodul 44 Verarbeitung durch, um eine Typklassifikation für jeden Rahmen zu bestimmen, der durch die Voll- und Halbraten-Codierer 36 und 38 verarbeitet wird. Die Typklassifikation eines Ausführungsbeispiels klassifiziert das durch einen Rahmen repräsentierte Sprachsignal 18 als einen ersten Typ (d.h. ein Typ Eins) oder als einen zweiten Typ (d.h. ein Typ Null). Die Typklassifikation eines Ausführungsbeispiels ist abhängig von der Art und Charakteristika des Sprachsignals 18. In einem alternativen Ausführungsbeispiel können zusätzliche Typklassifikationen und unterstützende Verarbeitung vorgesehen sein.
  • Typ Eins Klassifizierung umfasst Rahmen des Sprachsignals 18, die stationäres Verhalten zeigen. Stationäres Verhalten zeigende Rahmen umfassen eine harmonische Struktur und eine Formantstruktur, die sich nicht schnell ändern. Alle anderen Rahmen können mit der Typ Null Klassifizierung klassifiziert werden. In alternativen Ausführungsbeispielen können zusätzliche Typklassifizierungen Rahmen in zusätzliche Klassifizierungen klassifizieren, und zwar basierend auf Zeitbereich, Frequenzbereich usw. Die Typklassifizierung optimiert Codierung durch das Anfangsvollratenrahmenverarbeitungsmodul 46 und das Anfangshalbratenrahmenverarbeitungsmodul 48, wie später beschrieben wird. Zusätzlich können sowohl die Typklassifizierung als auch die Ratenauswahl verwendet werden, um Codierung durch Anteile des Anregungsverarbeitungsmoduls 54 zu optimieren und zwar durch Anteile, die den Voll- und Halbraten-Codierern 36 und 38 entsprechen.
  • Ein Ausführungsbeispiel des Anregungsverarbeitungsmoduls 54 kann unterteilt werden und zwar in ein Vollratenmodul 56, ein Halbratenmodul 58, ein Viertelratenmodul 60 und ein Achtelratenmodul 62. Die Ratenmodule 56, 58, 60 und 62 entsprechen den Raten-Codierern 36, 38, 40 und 42, wie in 2 dargestellt ist. Die Voll- und Halbratenmodule 56 und 58 eines Ausführungsbeispiels umfassen beide eine Vielzahl von Rahmenverarbeitungsmodulen, und eine Vielzahl von Unterrahmenverarbeitungsmodulen, die wesentlich unterschiedliche Codierung vorsehen, wie noch erläutert werden wird.
  • Der Anteil des Anregungsverarbeitungsmoduls 54 für sowohl den Voll- als auch den Halbraten-Codierer 36 und 38 umfassen Typauswahlmodule, erste Unterrahmenverarbeitungsmodule, zweite Unterrahmenverarbeitungsmodule, erste Rahmenverarbeitungsmodule und zweite Unterrahmenverarbeitungsmodule. Spezieller umfasst das Vollratenmodul 56 ein F Typ Auswahlmodul 68, ein F Null erstes Unterrahmenverarbeitungsmodul 70, ein F1 erstes Rahmenverarbeitungsmodul 72, ein F1 zweites Unterrahmenverarbeitungsmodul 74 und ein F1 zweites Rahmenverarbeitungsmodul 76. Der Ausdruck „F" steht für Vollrate und „0" und „1" kennzeichnen Typ Null bzw. Typ Eins. In gleicher Weise umfasst das Halbratenmodul 58 ein H Typ Auswahlmodul 78, ein H Null erstes Unterrahmenverarbeitungsmodul 80, ein H1 erstes Rahmenverarbeitungsmodul 82, ein H1 zweites Unterrahmenverarbeitungsmodul 84 und ein H1 zweites Rahmenverarbeitungsmodul 86.
  • Die F und H Typ Auswahlmodule 68, 78 weisen die Verarbeitung des Sprachsignals 18 an, den Codierprozess, basierend auf der Typklassifikation weiter zu optimieren. Klassifikation als Typ Eins zeigt an, dass der Rahmen eine harmonische Struktur und eine Formantstruktur, die sich nicht schnell ändern beinhaltet, wie beispielsweise stationäre stimmhafte Sprache. Entsprechend können die Bits, die zum Darstellen eines als Typ Eins klassifizierten Rahmens verwendet werden, zugewiesen werden zum Vereinfachen der Codierung, die aus diesen Aspekten beim Darstellen des Rahmens einen Vorteil ziehen kann. Klassifikation als Typ Null zeigt an, dass der Rahmen nichtstationäres Verhalten zeigen kann, z.B. eine harmonische Struktur und eine Formantstruktur, die sich schnell ändert oder der Rahmen kann stationäre stimmlose oder rauschähnliche Charakteristika zeigen. Die Bitzuordnung für als Typ Null klassifizierte Rahmen kann konsequenter Weise geregelt werden, um dieses Verhalten besser darzustellen und zu berücksichtigen.
  • Für das Vollratenmodul 56 generiert das F0 erste Unterrahmenverarbeitungsmodul 70 einen Anteil des Bitstroms, und zwar wenn der verarbeitete Rahmen als Typ Null klassifiziert ist. Typ Null Klassifizierung eines Rahmens aktiviert das F Null erste Unterrahmenverarbeitungsmodul 70 um den Rahmen auf einer Unterrahmenbasis zu verarbeiten. Das F1 erste Rahmenverarbeitungsmodul 72, das F1 zweite Unterrahmenverarbeitungsmodul 74 und die F1 zweite Verarbeitungsmodule 76 kombinieren um einen Anteil des Bitstrom zu generieren und zwar wenn der verarbeitete Rahmen als Typ 1 klassifiziert ist. Typ 1 Klassifizierung umfasst sowohl Unterrahmen als auch Rahmenverarbeitung innerhalb des Vollratenmoduls 56.
  • Für das Halbratenmodul 58 generiert das H0 erste Unterrahmenverarbeitungsmodul 80 in gleicher Weise einen Anteil des Bitstroms auf einer Unterrahmenbasis und zwar wenn der verarbeitete Rahmen als Typ Null klassifiziert ist. Ferner kombinieren das H1 erste Rahmenverarbeitungsmodul 82, das H1 zweite Unterrahmenverarbeitungsmodul 84 und das H1 zweite Rahmenverarbeitungsmodul 86 um einen Anteil des Bitstroms zu generieren, und zwar wenn der verarbeitete Rahmen als Typ 1 klassifiziert ist. Wie bei dem Vollratenmodul 56 umfasst die Typ 1 Klassifikation sowohl Unterrahmen- als auch Rahmenverarbeitung.
  • Die Viertel- und Achtelratenmodule 60 und 62 sind Teil der Viertel- und Achtenraten-Codierer 40 bzw. 42 und umfassen nicht die Typklassifikation. Die Typklassifikation ist nicht enthalten und zwar aufgrund der Art der Rahmen, die verarbeitet werden. Die Viertel- und Achtelratenmodule 60 und 62 erzeugen einen Anteil des Bitstroms auf einer Unterrahmenbasis bzw. einer Rahmenbasis, und zwar wenn sie aktiviert sind.
  • Die Ratenmodule 56, 58, 60 und 62 generieren einen Anteil des Bitstroms, der zusammengesetzt bzw. zusammengeführt wird mit einem entsprechenden Anteil des Bitstroms, der durch die Anfangsrahmenverarbeitungsmodule 46, 48, 50 und 52 generiert wird, und zwar zum Kreieren einer digitalen Repräsentation eines Rahmens. Beispielsweise kann der durch das Anfangsvollratenrahmenverarbeitungsmodul 46 und das Vollratenmodul 56 generierte Anteil des Bitstroms zusammengefügt werden, um den Bitstrom zu generieren, wenn der Vollratencodierer 36 aktiviert ist, um einen Rahmen zu codieren. Die Bitströme von jedem der Codierer 36, 38, 40 und 42 können ferner zusammengefügt werden, um einen Bitstrom zu bilden, der eine Vielzahl von Rahmen des Sprachsignals 18 repräsentiert. Der von den Codierern 36, 38, 40 und 42 generierte Bitstrom wird von dem Decodiersystem 16 decodiert.
  • 3 zeigt ein erweitertes Blockdiagramm des in 1 dargestellten Decodiersystems 16. Ein Ausführungsbeispiel des Decodiersystems 16 umfasst einen Vollratendecoder 90, einen Halbratendecoder 92, einen Viertelratendecoder 94, einen Achtelratendecoder 96, ein Synthesefiltermodul 98 und ein Nachverarbeitungsmodul (post processing module) 100. Die Voll-, Halb-, Viertel- und Achtelratendecoder 90, 92, 94 und 96, das Synthesefiltermodul 98 und das Nachverarbeitungsmodul 100 sind die Decodieranteile der Voll-, Halb-, Viertel- und Achtelraten-Codecs 22, 24, 26 und 28.
  • Die Decoder 90, 92, 94 und 96 empfangen den Bitstrom und decodieren das Digitalsignal um verschiedene Parameter des Sprachsignals 18 wiederherzustellen. Die Decoder 90,92, 94 und 96 können aktiviert werden, um jeden Rahmen basierend auf der Ratenwahl zu decodieren. Die Ratenwahl kann von dem Codiersystem 12 an das Decodiersystem 16 durch einen separaten Informationsübertragungsmechanismus geliefert werden, wie beispielsweise einen Steuerkanal in einem drahtlosen Kommunikationssystem. In diesem beispielhaften Ausführungsbeispiel kann die Ratenwahl an die mobilen Kommunikationsgeräte geliefert werden als Teil von Broadcast-Strahlsignalen (broadcast beacon signals), die von den Basisstationen innerhalb des drahtlosen Kommunikationssystems generiert werden. Im Allgemeinen werden die Broadcast-Beacon-Signale erzeugt um Identifizierungsinformation zu liefern, die verwendet wird, um Kommunikationen zwischen den Basisstationen und den mobilen Kommunikationsgeräten aufzubauen.
  • Das Synthesefilter 98 und das Nachverarbeitungsmodul 100 sind Teil des Decodierungsprozesses für jeden der Decoder 90, 92, 94 und 96. Zusammenfügen der Parameter des Sprachsignals 18, die decodiert werden von den Decodern 90, 92, 94 und 96 unter Verwendung des Synthesefilters 98, erzeugt synthetisierte Sprache. Die synthetisierte Sprache durchläuft das Nachverarbeitungsmodul 100 um die nachverarbeitete synthetisierte Sprache 20 zu kreieren.
  • Ein Ausführungsbeispiel des Vollratendecoders 90 umfasst ein F Typ Auswahlglied 102 und eine Vielzahl von Anregungsrekonstruktionsmodulen (excitation reconstruction modules). Die Anregungsrekonstruktionsmodule umfassen ein F0 Anregungsrekonstruktionsmodul 104 und ein F1 Anregungsrekonstruktionsmodul 106. Zusätzlich umfasst der Vollratendecoder 90 ein Linearprädiktionskoeffizienten (linear prediction coefficient, LPC)-Rekonstruktionsmodul 107. Das LPC Rekonstruktionsmodul 107 umfasst ein F0 LPC Rekonstruktionsmodul 108 und ein F1 LPC Rekonstruktionsmodul 110.
  • In gleicher Weise umfasst ein Ausführungsbeispiel des Halbratendecoders 92 ein H Typ Auswahlglied 112 und eine Vielzahl von Anregungsrekonstruktionsmodulen. Die Anregungsrekonstruktionsmodule umfassen ein H0 Anregungsrekonstruktionsmodul 114 und ein H1 Anregungsrekonstruktionsmodul 116. Zusätzlich umfasst der Halbratendecoder 92 ein Linearprädiktionskoeffizienten (auf LPC)-Rekonstruktionsmodul, das ein H LPC Rekonstruktionsmodul 118 ist. Obwohl im Konzept ähnlich, sind die Voll- und Halbratendecoder 90 und 92 bestimmt Bitströme von den entsprechenden Voll- und Halbratencodierern 36 bzw. 38 zu decodieren.
  • Die F und H Typ Auswahlglieder 102 und 112 aktivieren selektiv entsprechende Anteile der Voll- und Halbratendecoder 90 und 92 und zwar abhängig von der Typklassifikation. Wenn die Typklassifikation vom Typ Null ist, werden die F0 oder H0 Anregungsrekonstruktionsmodule 104 oder 114 aktiviert. Umgekehrt werden, wenn die Typklassifikation vom Typ Eins ist, die F1 oder H1 Anregungsrekonstruktionsmodule 106 oder 116 aktiviert. Die F0 oder F1 LPC Rekonstruktionsmodule 108 oder 110 werden durch die Typ Null bzw. Typ Eins Typklassifikationen aktiviert. Das H LPC Rekonstruktionsmodul 118 wird nur basierend auf der Ratenauswahl aktiviert.
  • Der Viertelratendecoder 94 umfasst ein Q Anregungsrekonstruktionsmodul 120 und ein Q LPC Rekonstruktionsmodul 122. In gleicher Weise umfasst der Achtelratendecoder 96 ein E Anregungsrekonstruktionsmodul 124 und ein E LPC Rekonstruktionsmodul 126. Sowohl die entsprechenden Q oder E Anregungsrekonstruktionsmodule 120 oder 124 als auch die entsprechenden Q oder E LPC Rekonstruktionsmodule 122 oder 126 werden nur bzw. einzig basierend auf der Ratenauswahl aktiviert.
  • Jedes der Anregungsrekonstruktionsmodule ist betreibbar um die Kurzzeitanregung auf einer Kurzzeitanregungsleitung 128 zu liefern, und zwar wenn es aktiviert ist. In gleicher Weise wird jedes der LPC Rekonstruktionsmodule betrieben, um die Kurzzeitprädiktionskoeffizienten auf einer Kurzzeitprädiktionskoeffizientenleitung 130 zu generieren. Die Kurzzeitanregungs- und die Kurzzeitprädiktionskoeffizienten werden an das Synthesefilter 98 geliefert. Zusätzlich werden in einem Ausführungsbeispiel die Kurzzeitprädiktionskoeffizienten an das Nachverarbeitungsmodul 100 geliefert, wie in 3 dargestellt ist.
  • Das Nachverarbeitungsmodul 100 kann Filterung, Signalverbesserung bzw. Verstärkung, Rauschmodifikation, Verstärkung, Neigungskorrektur (tilt correction) und andere ähnliche Techniken aufweisen, die geeignet sind, die wahrnehmbare Qualität der synthetisierten Sprache zu verbessern. Das Nachverarbeitungsmodul 100 ist betreibbar zum Verringern des hörbaren Rauschens ohne die synthetisierte Sprache zu verschlechtern. Verringern des hörbaren Rauschens kann erreicht werden durch Anheben bzw. Betonen der For mantstruktur der synthetisierten Sprache oder durch Unterdrücken nur des Rauschens in den Frequenzbereichen, die wahrnehmungsbezogen für die synthetisierte Sprache nicht relevant sind. Da hörbares Rauschen bei niedrigen Bitraten wahrnehmbarer wird, kann ein Ausführungsbeispiel des Nachverarbeitungsmoduls 100 aktiviert werden, um Nachverarbeitung der synthetisierten Sprache, unterschiedlich abhängig von der Ratenauswahl, vorzusehen. Ein anderes Ausführungsbeispiel des Nachverarbeitungsmoduls 100 kann betreibbar sein um unterschiedliche Nachverarbeitung für unterschiedliche Gruppen der Decoder 90, 92, 94 und 96 vorzusehen, und zwar basierend auf der Ratenauswahl.
  • Während des Betriebs analysiert das in 2 dargestellte Anfangsrahmenverarbeitungsmodul 44 das Sprachsignal 18 um die Ratenauswahl zu bestimmen, und einen der Codecs 22, 24, 26 und 28 zu aktivieren. Falls beispielsweise der Vollraten-Codec 22 aktiviert wird, um einen Rahmen basierend auf der Ratenauswahl zu verarbeiten, bestimmt das Anfangsvollratenrahmenverarbeitungsmodul 46 die Typklassifikation für den Rahmen und erzeugt einen Anteil des Bitstroms. Das Vollratenmodul 56 erzeugt, basierend auf der Typklassifikation den Rest bzw. restlichen Anteil des Bitstroms für den Rahmen.
  • Der Bitstrom kann von dem Vollratendecoder 90 empfangen und decodiert werden, und zwar basierend auf der Ratenauswahl. Der Vollratendecoder 90 decodiert den Bitstrom unter Verwendung der Typklassifikation, die während dem Codieren bestimmt wurde. Das Synthesefilter 98 und das Nachverarbeitungsmodul 100 verwenden die von dem Bitstrom decodierten Parameter um die nachverarbeitete synthetisierte Sprache 20 zu generieren. Der Bitstrom, der von jedem der Codecs 22, 24, 26 und 28 generiert wird, enthält signifikant unterschiedliche Bitzuordnungen, um unterschiedliche Parameter und/oder Charakteristika des Sprachsignals 18 innerhalb eines Rahmen zu betonen.
  • 1.0 Bitzuordnung
  • 4, 5, 6 und 7 sind Tabellen, die ein Ausführungsbeispiel darstellen für die Bitzuordnung für den Vollraten-Codec 22, den Halbraten-Codec 24, den Viertelraten-Codec 26 bzw. den Achtelraten-Codec 28. Die Bitzuordnung bestimmt den durch das Anfangsrahmenverarbeitungsmodul 44 generierten Anteil des Bitstrom und den durch das Anregungsverarbeitungsmodul 54 generierten Anteil des Bitstrom und zwar innerhalb eines entsprechenden Codierers 36, 38, 40 und 42. Zusätzlich bestimmt die Bitzuweisung die Bitanzahl in dem Bitstrom, die einen Rahmen repräsentieren. Entsprechend variiert die Bitrate abhängig von dem Codec 22, 24, 26 und 28, der aktiviert ist. Der Bitstrom kann in einen ersten Anteil und einen zweiten Anteil klassifiziert bzw. eingeteilt werden und zwar abhängig davon ob die repräsentativen Bits auf einer Rahmenbasis bzw. einer Unterrahmenbasis von dem Codiersystem 12 generiert werden. Wie später beschrieben wird, variieren der erste Anteil und der zweite Anteil des Bitstroms abhängig von dem Codec 22, 24, 26 und 28, der zum Codieren und Decodieren eines Rahmens des Sprachsignals 18 ausgewählt ist.
  • 1.1 Bitzuordnung für den Vollraten-Codec
  • Jetzt bezugnehmend auf 2, 3 und 4 wird der Vollratenbitstrom des Vollraten-Codec 22 beschrieben. Jetzt bezugnehmend auf 4 umfasst die Bitzuordnung für den Vollraten-Codec 22 eine Linienspektrumfrequenz (line spectrum frequency, LSF)-Komponente 140, eine Typkomponente 142, eine adaptive Codebuchkomponente 144, eine feste bzw. fixierte Codebuchkomponente 146 und eine Verstärkungskomponente 147. Die Verstärkungskomponente 147 umfasst eine adaptive Codebuchverstärkungkomponente 148 und eine feste bzw. fixierte Codebuchverstärkungkomponente 150. Die Bitstromzuordnung wird ferner definiert durch eine Typ Null Spalte 152 und eine Typ Eins Spalte 154. Die Typ Null und die Typ Eins Spalten 152 und 154 bestimmen die Zuordnung der Bits in dem Bitstrom und zwar basierend auf der Typklassifikation des Sprachsignals 18, wie vorher diskutiert. In einem Ausführungsbeispiel verwenden sowohl die Typ Null Spalte 152 als auch die Typ Eins Spalte 154 vier Teil- bzw. Unterrahmen von jeweils fünf Millisekunden, um das Sprachsignal 18 zu verarbeiten.
  • Das in 2 dargestellte Initial- bzw. Vollrahmenverarbeitungsmodul 46 generiert die LSF Komponente 140. Die LSF Komponente 140 wird, basierend auf den Kurzzeitprädiktorparametern, generiert. Die Kurzzeitprädiktorparameter werden in eine Vielzahl von Linienspektrumfrequenzen (LSFs) konvertiert. Die LSFs repräsentieren die spektrale Einhüllende (spectral envelope) eines Rahmens. Zusätzlich wird eine Vielzahl prädiktierter bzw. vorhergesagter LSFs aus den LSFs vorhergehender Rahmen bestimmt. Die vorhergesagten LSFs werden von den LSFs abgezogen um einen LSFs Prädiktionsfehler zu kreieren. In einem Ausführungsbeispiel umfasst der LSF Prädiktionsfehler einen Vektor mit 10 Parametern. Der LSF Prädiktionsfehler wird mit den vorhergesagten LSFs kombiniert um eine Vielzahl quantisierter LSFs zu generieren. Die quantisierten LSFs werden interpoliert und konvertiert um eine Vielzahl quantisierter LPC Koeffizienten Aq(z) von jeden Unterrahmen zu bilden, wie im Detail später erörtert wird. Zusätzlich wird der LSFs Prädiktionsfehler quantisiert um die LSF Komponente 140 zu generieren, die an das Decodiersystem 16 übertragen wird.
  • Wenn der Bitstrom beim Decodiersystem 16 empfangen wird, wird die LSF Komponente 140 verwendet, um einen quantisierten Vektor zu lokalisieren, der einen quantisierten LSFs Prädiktionsfehler repräsentiert. Der quantisierte LSFs Prädiktionsfehler wird auf die vorhergesagten LSFs addiert, um quantisierte LSFs zu generieren. Die vorhergesagten LSFs werden aus den LSFs vorhergehender Rahmen bestimmt und zwar innerhalb des Decodierungssystems 16, wie beim Codiersystem 12. Die resultierenden quantisierten LSFs können für jeden Unterrahmen unter Verwendung einer vorherbestimmten Gewichtung interpoliert werden. Die vorherbestimmte Gewichtung definiert einen Interpolationspfad, der fest bzw. fixiert oder variabel sein kann. Der Interpolationspfad liegt zwischen den quantisierten LSFs des vorhergehenden Rahmens und den quantisierten LSFs des aktuellen Rahmens. Der Interpolationspfad kann verwendet werden, um eine spektraleinhüllende Darstellung für jeden Unterrahmen in dem aktuellen Rahmen vorzusehen.
  • Für Rahmen, die als vom Typ Null klassifiziert sind, wird in einem Ausführungsbeispiel der LSF Komponente 140 codiert, unter Verwendung einer Vielzahl von Stufen 156 und einem Interpolationselement 158, wie in 4 dargestellt. Die Stufen 156 repräsentieren den LSFs Prädiktionsfehler, der zum Codieren der LSF Komponente 140 für einen Rahmen verwendet wird. Das Interpolationselement 158 kann verwendet werden, um eine Vielzahl von Interpolationspfaden vorzusehen und zwar zwischen den quantisierten LSFs des vorhergehenden Rahmens und den quantisierten LSFs des Rahmens der aktuell verarbeitet wird. Im Allgemeinen repräsentiert das Interpolationselement 158 während dem Decodieren auswählbare Anpassung in der Kontur der Linienspektrumfrequenzen (LSFs). Auswählbare Anpassung kann verwendet werden aufgrund der nichtstationären spektralen Eigenschaft von Rahmen, die als Typ Null klassifiziert sind. Für Rahmen, die als Typ Eins klassifiziert sind, kann die LSF Komponente 140 codiert werden, und zwar unter Verwendung nur der Stufen 156 und einem vorherbestimmten linearen Interpolationspfad aufgrund der stationären spektralen Eigenschaft solcher Rahmen.
  • Ein Ausführungsbeispiel der LSF Komponente 140 umfasst zwei Bits zum Codieren des Interpolationselements 158 und zwar für Rahmen, die als vom Typ Null klassifiziert sind. Die Bits identifizieren bzw. kennzeichnen den speziellen Interpolationspfad. Jeder der Interpolationspfade stellt die Gewichtung der vorhergehenden quantisierten LSFs für jeden Unterrahmen ein, und stellt die Gewichtung des aktuellen quantisierten LSFs für jeden Unterrahmen ein. Die Auswahl eines Interpolationspfads kann bestimmt werden, und zwar basierend auf dem Grad der Variationen in der spektral Einhüllenden zwischen aufeinanderfolgenden Unterrahmen. Beispielsweise, falls es eine wesentliche Variation in der spektral Einhüllenden in der Mitte des Rahmens gibt, wählt das Interpolationselement 158 einen Interpolationspfad, der den Einfluss der quantisierten LSFs von dem vorhergehenden Rahmen vermindert. Ein Ausführungsbeispiel des Interpolationselements 158 kann irgendeinen von vier unterschiedlichen Interpolationspfaden für jeden Unterrahmen repräsentieren.
  • Die vorhergesagten LSFs können generiert werden, und zwar unter Verwendung einer Vielzahl von gleitenden Mittelwertprädiktorkoeffizienten (moving average predictor coefficients). Die Prädiktorkoeffizienten bestimmen wie viel der LSFs vergangener Rahmen verwendet werden, um die LSFs des aktuellen Rahmen vorherzusagen. Die Prädiktorkoeffizienten innerhalb des Vollraten-Codec 22 verwenden eine LSF Prädiktorkoeffiziententabelle. Die Tabelle kann im Allgemeinen durch die folgende Matrix dargestellt werden:
  • Figure 00280001
    Tabelle 1
  • In einem Ausführungsbeispiel ist m gleich 2 und n gleich 10. Entsprechend ist die Prädiktionsordnung zwei und es gibt zwei Vektoren mit Prädikorkoeffizienten von denen jeder 10 Elemente umfasst. Ein Ausführungsbeispiel der LSF Prädiktorkoeffiziententabelle trägt den Titel „Float 64 B_85k" und ist im Anhang B des beigefügten Micorfilmanhangs enthalten.
  • Sobald die vorhergesagten LSFs bestimmt worden sind, kann der LSFs Prädiktionsfehler unter Verwendung der aktuellen bzw. tatsächlichen LSFs berechnet werden. Der LSFs Prädiktionsfehler kann unter Verwendung eines volldimensionalen Mehrstufenquantisierers (full dimensional multi-stage quantizer) quantisiert werden. Eine LSF Prädiktionsfehlerquantisierungstabelle, die eine Vielzahl von Quantisierungsvektoren umfasst, repräsentiert jede Stufe 156, die mit dem mehrstufigen Quantisierer verwendet werden kann. Der mehrstufige Quantisierer bestimmt einen Anteil der LSF Komponente 140 für jede Stufe 156. Die Bestimmung des Anteils der LSF Komponente 140 basiert auf einem Ausschlusssuchansatz (pruned search approach). Der Ausschlusssuchansatz bestimmt aus jeder Stufe vielversprechende Quantisierungsvektorkandidaten. Nach dem Abschluss der Bestimmung der Kandidaten für alle Stufen findet eine gleichzeitige Entscheidung statt, die die besten Quantisierungsvektoren für jede Stufe auswählt.
  • In der ersten Stufe bestimmt der mehrstufige Quantisierer eine Vielzahl von Kandidatenquantisierungsfehlern der ersten Stufe (candidate first stage quantization errors). Die Kandidatenquantisierungsfehler der ersten Stufe entsprechen dem Unterschied zwischen dem LSFs Prädiktionsfehler und den in der ersten Stufe lokalisierten bzw. gelegenen nächsten angepassten Quantisierungsvektoren. Der mehrstufige Quantisierer bestimmt dann eine Vielzahl von Kandidatenquantisierungsfehlern der zweiten Stufe und zwar durch Identifizieren der in der zweiten Stufe lokalisierten Quantisierungsvektoren, die am Besten zu den Kandidatenquantisierungsfehlern der ersten Stufe passen. Dieser iterative Prozess wird für jede der Stufen vollendet und vielversprechende Kandidaten werden von jeder Stufe aufgehoben. Die endgültige Auswahl der besten repräsentativen Quantisierungsvektoren für jede Stufe findet gleichzeitig statt, wenn die Kandidaten für alle die Stufen bestimmt worden sind. Die LSF Komponente 140 umfasst Indexstellen der nächsten passenden Quantisierungsvektoren von jeder Stufe. Ein Ausführungsbeispiel der LSF Komponente 140 umfasst 25 Bits zum Codieren der Indexstellen innerhalb der Stufen 156. Die LSF Prädiktionsfehlerquantisierungstabelle für den Quantisierungsansatz kann im Allgemeinen durch die folgende Matrix dargestellt werden:
  • Figure 00300001
    Tabelle 2
  • Ein Ausführungsbeispiel der Quantisierungstabelle für sowohl die Typ Null als auch die Typ Eins Klassifikation verwendet vier Stufen (j = 4), in denen jeder Quantisierungsvektor durch 10 Elemente (n = 10) repräsentiert ist. Die Stufen 156 dieses Ausführungsbeispiels umfassen 128 Quantisierungsvektoren (r = 128) für eine der Stufen 156 und 64 Quantisierungsvektoren (s = 64) in den verbleibenden Stufen 156. Entsprechend kann die Indexstelle der Quantisierungsvektoren innerhalb der Stufen 156 codiert werden, und zwar unter Verwendung von 7 Bits für die eine der Stufen 156, die 128 Quantisierungsvektoren umfasst. Zusätzlich können Indexstellen für jede der Stufen 156, die 64 Quantisierungsvektoren umfasst, unter Verwendung von 6 Bits codiert werden. Ein Ausführungsbeispiel der LSF Prädiktionsfehlerquantisierungstabelle, die sowohl für die Typ Null als auch die Typ Eins Klassifikation verwendet wird, hat den Titel „Float64 Cbes_85k" und ist im Anhang B des beigefügten Mikrofilmanhangs enthalten.
  • Innerhalb des Decodiersystems 16 erhalten die F0 oder F1 LPC Rekonstruktionsmodule 108, 110 in dem Vollratendecoder 90 die LSF Komponente 140 aus dem Bitstrom, wie in 3 dargestellt ist. Die LSF Komponente 140 kann verwendet werden, um die quantisierten LSFs zu rekonstruieren, wie vorher erörtert wurde. Die quantisierten LSFs können interpoliert und konvertiert werden, um die linearen Prädiktionscodierungskoeffizienten für jeden Unterrahmen des aktuellen Rahmens zu bilden.
  • Für die Typ Null Klassifikation kann die Rekonstruktion durch das F0 LPC Rekonstruktionsmodul 108 durchgeführt werden. Die Rekonstruktion umfasst Bestimmung der vorhergesagten LSFs, die Codierung des quantisierten LSFs Prädiktionsfehlers und Rekonstruktion der quantisierten LSFs. Zusätzlich können die quantisierten LSFs interpoliert werden, unter Verwendung des identifizierten Interpolationspfades. Wie vorher diskutiert wurde, wird einer der vier Interpolationspfade für das F0 LPC Rekonstruktionsmodul 108 identifiziert bzw. kenntlich gemacht, und zwar durch das Interpolationselement 158, das einen Teil der LSF Komponente 140 bildet. Rekonstruktion der Typ Eins Klassifikation umfasst die Verwendung des vorherbestimmten linearen Interpolationspfades und der LSF Prädiktionsfehlerquantisierungstabelle durch das F1 LPC Rekonstruktionsmodul 110. Die LSF Komponente 140 bildet einen Teil des ersten Anteils des Bitstroms, da es auf einer Rahmenbasis codiert wird, und zwar sowohl bei dem Typ Null als auch den Typ Eins Klassifikationen.
  • Die Typkomponente 142 bildet auch einen Teil des ersten Anteils des Bitstroms. Wie in 2 dargestellt ist, generiert das F Typ Selektormodul 68 die Typkomponente 142, um die Typklassifikation eines speziellen Rahmens zu repräsentieren. Jetzt bezugnehmend auf 3 empfängt das F Typ Selektormodul 102 in dem Vollratendecoder 90 die Typkomponente 142 aus dem Bitstrom.
  • Ein Ausführungsbeispiel der adaptiven Codebuchkomponente 144 kann eine gesteuerte (open loop) adaptive Codebuchkomponente 144a oder eine geregelte (closed loop) adaptive Codebuchkomponente 144b sein. Die gesteuerte oder geregelte adaptive Codebuchkomponente 144a, 144b wird durch das initiale Vollrahmenverarbeitungsmodul 46 oder entsprechend durch das F0 erste Unterrahmenverarbeitungsmodul 70 generiert, wie in 2 dargestellt ist. Die gesteuerte adaptive Codebuchkomponente 144a kann durch die gere gelte adaptive Codebuchkomponente 144b in dem Bitstrom ersetzt werden, wenn der Rahmen als vom Typ Null klassifiziert wird. Im Allgemeinen bezieht sich die gesteuerte (open loop) Bestimmung auf Verarbeitung auf eine Rahmenbasis, die Analyse-durch-Synthese (ABS) nicht umfasst. Die geregelte (closed loop) Verarbeitung wird auf einer Unterrahmenbasis durchgeführt, und umfasst Analyse-durch-Synthese (ABS).
  • Codierung des Tonhöhenabstands, die auf der Periodizität des Sprachsignals 18 basiert, generiert die adaptive Codebuchkomponente 144. Die gesteuerte adaptive Codebuchkomponente 144a wird für einen Rahmen generiert; wohingegen die geregelte adaptive Codebuchkomponente 144b auf einer Unterrahmenbasis generiert wird. Entsprechend ist die gesteuerte adaptive Codebuchkomponente 144a Teil des ersten Anteils des Bitstroms, und die geregelte adaptive Codebuchkomponente 144b ist Teil des zweiten Anteils des Bitstroms. In einem Ausführungsbeispiel, wie in 4 dargestellt, umfasst die gesteuerte adaptive Codebuchkomponente 144a 8 Bits und die geregelte adaptive Codebuchkomponente 144b umfasst 26 Bits. Die gesteuerte adaptive Codebuchkomponente 144a und die geregelte adaptive Codebuchkomponente 144b können generiert werden, unter Verwendung eines adaptiven Codebuchvektors, der später beschrieben wird. Bezugnehmend jetzt auf 3 empfängt das Decodiersystem 16 die gesteuerte oder geregelte adaptive Codebuchkomponente 144a oder 144b. Die gesteuerte oder geregelte adaptive Codebuchkomponente 144a oder 144b wird durch das F0 oder entsprechend F1 Anregungsrekonstruktionsmodul 104 oder entsprechend 106 decodiert.
  • Ein Ausführungsbeispiel der festen Codebuchkomponente 146 kann eine fixierte Typ Null Codebuchkomponente 146a oder eine fixierte Typ Eins Codebuchkomponente 146b sein. Die fixierte Typ Null Codebuchkomponente 146a wird durch das F Null erste Unterrahmenverarbeitungsmodul 70 generiert, wie in 2 dargestellt ist. Das F1 Unterrahmenverarbeitungsmodul 72 generiert die fixierte Typ Eins Codebuchkomponente 146b. Die fixierte Typ Null oder Typ Eins Codebuchkomponente 146a oder 146b wird generiert unter Verwendung eines fixierten Codebuchvektors und Synthese-durch-Analyse auf einer Unterrahmenbasis, was später beschrieben wird. Die fixierte Codebuchkomponente 146 repräsentiert den Langzeitrest eines Unterrahmens, unter Verwendung eines n-Impulscodebuchs, wobei n die Anzahl der Impulse in dem Codebuch ist.
  • Bezugnehmend jetzt auf 4 umfasst die fixierte Typ Null Codebuchkomponente 146a eines Ausführungsbeispiels 22 Bits pro Unterrahmen. Die fixierte Typ Null Codebuchkomponente 146a umfasst Identifikation von einem aus einer Vielzahl von n-Impulscodebüchern, Impulsstellen in dem Codebuch und den Vorzeichen (signs) repräsentativer Impulse (Menge „n"), die den Impulsstellen entsprechen. In einem beispielhaften Ausführungsbeispiel bestimmen bis zu zwei Bits, welches von drei n-Impulscodebüchern codiert worden ist. Speziell das erste der zwei Bits wird auf „1" gesetzt, um zu kennzeichnen, dass das erste der drei n-Impulscodebücher verwendet wird. Falls das erste Bit auf „0" gesetzt ist, kennzeichnet das zweite der zwei Bits ob das zweite oder das dritte der drei n-Impulscodebücher verwendet wird. Entsprechend in dem beispielhaften Ausführungsbeispiel besitzt das erste der drei n-Impulscodebücher 21 Bits um die Impulsstellen und Vorzeichen zu repräsentieren, und das zweite und dritte der drei n-Impulscodebücher haben 20 Bits zur Verfügung.
  • Jeder der repräsentativen Impulse innerhalb eines der n-Impulscodebücher umfasst eine entsprechende Spur (track). Die Spur ist eine Auflistung von Abtaststellen in einem Unterrahmen, wobei jede Abtaststelle in der Auflistung eine der Impulsstellen ist. Ein Unterrahmen, der codiert wird, kann in eine Vielzahl von Abtaststellen unterteilt werden, wobei jede der Abtaststellen einen Abtastwert enthält. Die Spuren der entsprechenden repräsentativen Impulse listen nur einen Anteil der Abtaststellen von einem Unterrahmen auf. Jeder der repräsentativen Impulse innerhalb eines der n-Impulscodebücher kann durch eine der Impulsstellen in der entsprechenden Spur repräsentiert werden.
  • Während des Betriebs wird jeder der repräsentativen Impulse nacheinander in jede der Impulsstellen in der entsprechenden Spur platziert. Die repräsentativen Impulse werden in ein Signal konvertiert, das unter Verwendung von ABS mit den Abtastwerten in den Abtaststellen des Unterrahmens vergleichen werden kann. Die repräsentativen Impulse werden mit den Abtastwerten verglichen und zwar in jenen Abtaststellen, die zeitlich später sind als die Abtaststelle der Impulsstelle. Die Impulsstelle, die die Differenz minimiert zwischen dem repräsentativen Impuls und den Abtastwerten, die zeitlich später sind, bildet einen Anteil der fixierten Typ Null Codebuchkomponente 146a. Jeder der repräsentativen Impulse in einem ausgewählten n-Impulscodebuch kann durch eine entsprechende Impulsstelle repräsentiert werden, die einen Anteil der fixierten Typ Null Codebuchkomponente 146a bildet. Die Spuren sind in Spurtabellen enthalten, die im Allgemeinen durch die folgende Matrix repräsentiert werden können:
  • Figure 00340001
    Tabelle 3
  • Ein Ausführungsbeispiel der Spurtabellen sind die Tabellen mit dem Titel „static short track_5_4_0", static short track_5_3_2" und „static short track_5_3_1" innerhalb der Sammlung mit dem Titel „tracks.tab", die im Anhang B des beigefügten Mikrofilmanhangs enthalten ist.
  • In dem in 4 dargestellten beispielhaften Ausführungsbeispiel sind die n-Impulscodebücher drei 5-Impulscodebücher 160, wobei das erste der drei 5-Impulscodebücher 160 5 repräsentative Impulse umfasst, deswegen n = 5.
  • Ein erster repräsentativer Impuls besitzt eine Spur, die 16 (f = 16) der 40 Abtaststellen in dem Unterrahmen umfasst. Der erste repräsentative Impuls aus dem ersten der drei 5-Impulscodebücher 160 wird mit den Abtastwerten in den Abtaststellen verglichen. Eine der Abtaststellen, die in der Spur vorhanden ist, die mit dem ersten repräsentativen Impuls assoziiert ist, wird als Impulsstelle identifiziert bzw. gekennzeichnet und zwar unter Verwendung von 4 Bits. Die Abtaststelle, die in der Spur identifiziert wird, ist die Abtaststelle in dem Unterrahmen, die die Differenz zwischen dem ersten repräsentativen Impuls und den Abtastwerten, die zeitlich später liegen, minimiert, wie vorher erörtert wurde. Die Identifizierung der Impulsstelle in der Spur bildet einen Anteil der fixierten Typ Null Codebuchkomponente 146a.
  • In diesem beispielhaften Ausführungsbeispiel besitzen die zweiten und vierten repräsentativen Impulse entsprechende Spuren mit 16 Abtaststellen (g und i = 16) und die dritten und fünften repräsentativen Impulse besitzen entsprechend Spuren mit 8 Abtaststellen (h und j = 8). Entsprechend werden die Impulsstellen für die zweiten und vierten repräsentativen Impulse unter Verwendung von 4 Bits identifiziert bzw. gekennzeichnet und die Impulsstellen der dritten und fünften repräsentativen Impulse werden unter Verwendung von 3 Bits identifiziert. Als ein Ergebnis umfasst die fixierte Typ Null Codebuchkomponente 146a für das erste der drei 5-Impulscodebücher 160 18 Bits zum Identifizieren der Impulsstellen.
  • Die Vorzeichen (signs) der repräsentativen Impulse in den identifizierten Impulsstellen können auch in der fixierten Typ Null Codebuchkomponente 146a identifiziert werden. In dem beispielhaften Ausführungsbeispiel repräsentiert ein Bit das Vorzeichen für den ersten repräsentativen Impuls, ein Bit repräsentiert ein kombiniertes Vorzeichen sowohl für den zweiten als auch den vierten repräsentativen Impuls und ein Bit repräsentiert das kombinierte Vorzeichen für den dritten und den fünften repräsentativen Impuls. Die kombinierten Vorzeichen verwenden die Redundanz der Information in den Impulsstellen um zwei eindeutige Vorzeichen mit einem einzelnen Bit zu übertragen. Entsprechend umfasst die fixierte Typ Null Codebuchkomponente 146a für das erste der drei 5-Impulscodebücher 160 drei Bits für die Vorzeichenbezeichnung, was eine Gesamtmenge von 21 Bits ergibt.
  • In einem beispielhaften Ausführungsbeispiel umfassen die zweiten und dritten der drei 5-Impulscodebücher 160 auch 5 repräsentative Impulse (n = 5) und die Spuren in der Spurtabelle umfassen jeweils 8 Abtaststellen (f, g, h, j = 8). Entsprechend werden die Impulsstellen für jeden der repräsentativen Impulse in dem zweiten und dritten der drei 5-Impulscodebücher 160 unter Verwendung von 3 Bits identifiziert. Zusätzlich werden in diesem beispielhaften Ausführungsbeispiel die Vorzeichen für jede der Impulsstellen unter Verwendung von 1 Bit identifiziert.
  • Für Rahmen, die als Typ Eins klassifiziert sind, ist in einem beispielhaften Ausführungsbeispiel das n-Impulscodebuch ein 8 Impulscodebuch 162 (n = 8). Das 8 Impulscodebuch 162 wird unter Verwendung von 30 Bits pro Unterrahmen codiert und zwar um ein Ausführungsbeispiel der fixierten Typ Eins Codebuchkomponente 146b zu kreieren. Die 30 Bits umfassen 26 Bits, die Impulsstellen identifizieren, die Spuren wie in der Typ Null Klassifikation verwenden, und 4 Bits, die die Vorzeichen identifizieren. Ein Ausführungsbeispiel der Spurtabelle ist die Tabelle mit dem Titel „static INT16track_8_4_0" innerhalb der Sammlung mit dem Titel „tracks.tab", die im Anhang B des beigefügten Mikrofilmanhangs enthalten ist.
  • In dem beispielhaften Ausführungsbeispiel umfassen die Spuren, die mit den ersten und fünften repräsentativen Impulsen assoziiert sind, 16 Abtaststellen, die unter Verwendung von 4 Bits codiert werden. Die Spuren, die mit den verbleibenden repräsentativen Impulsen assoziiert sind, umfassen 8 Abtaststellen, die unter Verwendung von 3 Bits codiert werden. Die ersten und fünften repräsentativen Impulse, die zweiten und sechsten repräsentativen Impulse, die dritten und siebten repräsentativen Impulse und die vierten und achten repräsentativen Impulse verwenden die kombinierten Vorzeichen für jeweils beide entsprechenden Impulse. Wie in 3 dargestellt ist, wenn der Bitstrom vom Decodiersystem 16 empfangen wird, decodieren die F0 oder die F1 An regungsrekonstruktionsmodule 104 oder 106 die Impulsstellen auf den Spuren. Die Impulsstellen auf den Spuren werden durch die F0 oder die F1 Anregungsrekonstruktionsmodule 104 oder 106 für eines der drei 5-Impulscodebücher 160 oder entsprechend das 8-Impulscodebuch 162 decodiert. Die fixierte Codebuchkomponente 146 ist Teil des zweiten Anteils des Bitstroms, da es auf einer Unterrahmenbasis generiert wird.
  • Wieder Bezug nehmend auf 4 repräsentiert die Verstärkungskomponente 147 im Allgemeinen die adaptiven und fixierten Codebuchgewinne. Für Typ Null Klassifikation ist die Verstärkungskomponente 147 eine Typ Null adaptive und fixierte Codebuchverstärkungskomponente 148a, 150a, die sowohl die adaptiven als auch die fixierten Codebuchgewinne repräsentiert. Die Typ Null adaptive und fixierte Codebuchverstärkungskomponente 148a, 150a ist Teil des zweiten Anteils des Bitstroms, da sie auf einer Unterrahmenbasis bzw. Grundlage codiert wird. Wie in 2 dargestellt ist, wird die Typ Null adaptive und fixierte Codebuchverstärkungskomponente 148a, 150a durch das F0 erste Unterrahmenverarbeitungsmodul 70 generiert.
  • Für jeden Unterrahmen eines Rahmens, der als Typ Null klassifiziert ist, werden die adaptiven und fixierten Codebuchgewinne gemeinsam durch einen zweidimensionalen Vektorquantisierer (2DVQ) 164 codiert, um die Typ Null adaptive und fixierte Codebuchverstärkungskomponente 148a, 150a zu generieren. In einem Ausführungsbeispiel umfasst die Quantisierung das Übersetzen der fixierten Codebuchverstärkung in eine fixierte Codebuchenergie und zwar in Dezibeleinheiten (dB). Zusätzlich kann eine vorhergesagte fixierte Codebuchenergie aus den quantisierten fixierten Codebuchenergiewerten vorhergehender Rahmen generiert werden. Die vorhergesagte fixierte Codebuchenergie kann unter Verwendung einer Vielzahl fixierter Codebuchprädiktorkoeffizienten abgeleitet werden.
  • Ähnlich zu den LSFs Prädiktorkoeffizienten bestimmen die fixierten Codebuchprädiktorkoeffizienten wieviel der fixierten Codebuchenergie vergangener Rahmen verwendet werden kann, um die fixierte Codebuchenergie des aktu ellen Rahmens vorherzusagen. Die vorhergesagte fixierte Codebuchenergie wird von der fixierten Codebuchenergie abgezogen, um einen fixierten Prädiktionscodebuchenergiefehler zu generieren. Durch Einstellen der Gewichtung der vorhergehenden Rahmen und der aktuellen Rahmen für jeden Unterrahmen, kann die vorhergesagte fixierte Codebuchenergie berechnet werden, um den fixierten Prädiktionscodebuchfehler bzw. Prädiktionsfehler des fixierten Codebuchs zu minimieren.
  • Der Prädiktionsfehler der fixierten Codebuchenergie bzw. fixierter Prädiktionscodebuchenergiefehler wird mit der adaptiven Codebuchverstärkung gruppiert, um einen zweidimensionalen Vektor zu bilden. Anschließend an die Quantisierung des fixierten Prädiktionscodebuchenergiefehlers und dem adaptiven Codebuchgewinn, wie später beschrieben, kann der zweidimensionale Vektor als ein quantisierter Verstärkungsvektor (g ^ac) bezeichnet werden. Der zweidimensionale Vektor wird mit einer Vielzahl vorherbestimmter Vektoren in einer 2D Verstärkungsquantisierungstabelle verglichen. Eine Indexstelle wird identifiziert, die die Stelle in der 2D Verstärkungsquantisierungstabelle des vorherbestimmten Vektors ist, der den zweidimensionalen Vektor am Besten repräsentiert. Die Indexstelle ist die adaptive und fixierte Codebuchverstärkungskomponente 148a und 150a für den Unterrahmen. Die adaptive und fixierte Codebuchverstärkungskomponente 148a und 150a für den Rahmen repräsentiert die für jeden der Unterrahmen identifizierten Indizes.
  • Die vorherbestimmten Vektoren umfassen zwei Elemente, eines das die adaptive Codebuchverstärkung repräsentiert und eines das den fixierten Codebuchenergieprädiktionsfehler repräsentiert. Die 2D Verstärkungsquantisierungstabelle kann im Allgemeinen dargestellt werden durch:
  • Figure 00390001
    Tabelle 4
  • Der zweidimensionale Vektorquantisierer (2D VQ) 164 eines Ausführungsbeispiels verwendet 7 Bits pro Unterrahmen um die Indexstelle eines der 128 Quantisierungsvektoren (n = 128) zu identifizieren. Ein Ausführungsbeispiel der 2D Verstärkungsquantisierungstabelle trägt den Titel „_Float64 gainVQ_2_128_8_5" und ist im Anhang B des beigefügten Mikrofilmanhangs enthalten.
  • Für Rahmen, die als Typ Eins klassifiziert sind, wird eine Typ Eins adaptive Codebuchverstärkungskomponente 148b erzeugt, und zwar durch das F1 erste Rahmenverarbeitungsmodul 72, wie in 2 dargestellt ist. Ähnlich generiert das F1 zweite Rahmenverarbeitungsmodul 76 eine Typ Eins fixierte Codebuchverstärkungskomponente 150b. Die Typ Eins adaptive Codebuchverstärkungskomponente 148b und die Typ Eins fixierte Codebuchverstärkungskomponente 150b werden auf einer Rahmenbasis generiert, um einen Teil des ersten Anteils des Bitstroms zu bilden.
  • Wieder bezugnehmend auf 4 wird die Typ Eins adaptive Codebuchverstärkungskomponente 148b generiert, und zwar unter Verwendung eines mehrdimensionalen Vektorquantisierers, der ein vierdimensionaler Vorvektorquantisierer (four-dimensional pre vector quantizer, 4D pre VQ) 166 in einem Ausführungsbeispiel ist. Der Ausdruck „vor" bzw. "pre" wird verwendet um zu betonen, dass in einem Ausführungsbeispiel die adaptiven Codebuchgewinne für alle die Unterrahmen in einem Rahmen vor der Suche in dem fixierten Codebuch für irgendeinen der Unterrahmen quantisiert werden. In einem alternativen Ausführungsbeispiel ist der mehrdimensionale Quantisierer ein n dimen sionaler Vektorquantisierer, der Vektoren für n Unterrahmen quantisiert, wobei n irgendeine Anzahl von Unterrahmen sein kann.
  • Der durch den vierdimensionalen Vorvektorquantisierer (4D pre VQ) 166 quantisierte Vektor ist ein adaptiver Codebuchverstärkungsvektor mit Elementen, die jeden der adaptiven Codebuchgewinne aus jedem der Unterrahmen repräsentiert. Im Anschluss an Quantisierung kann, wie später erörtert wird, der adaptive Codebuchverstärkungsvektor auch als eine quantisierte Tonhöhenverstärkung (quantized pitch gain, g ^k a) bezeichnet werden. Quantisierung des adaptiven Codebuchverstärkungsvektors zum Generieren der adaptiven Codebuchverstärkungskomponente 148b wird durch Suchen in einer Vorverstärkungsquantisierungstabelle (pre-gain quantization table) durchgeführt. Die Vorverstärkungsquantisierungstabelle umfasst eine Vielzahl von vorherbestimmten Vektoren, die durchsucht werden können, um den vorherbestimmten Vektor zu bestimmen, der den adaptiven Codebuchverstärkungsvektor am Besten repräsentiert. Die Indexstelle des identifizierten vorherbestimmten Vektors innerhalb der Vorverstärkungsquantisierungstabelle ist die Typ Eins adaptive Codebuchkomponente 148b. Die adaptive Codebuchverstärkungskomponente 148b eines Ausführungseispiels umfasst 6 Bits.
  • In einem Auführungsbeispiel umfassen die vorherbestimmten Vektoren 4 Elemente, 1 Element für jeden Unterrahmen. Entsprechend kann die Vorverstärkungsquantisierungstabelle im Allgemeinen dargestellt werden als:
  • Figure 00400001
    Tabelle 5
  • Ein Ausführungsbeispiel der Vorverstärkungsquantisierungstabelle umfasst 64 vorher bestimmte Vektoren (n = 64). Ein Ausführungsbeispiel der Vorverstärkungsquantisierungstabelle trägt den Titel „Float64 gp4_tab" und ist im Anhang B des beigefügten Mikrofilmanhangs enthalten.
  • Die Typ Eins fixierte Codebuchverstärkungskomponente 150b kann in gleicher Weise codiert werden, und zwar unter Verwendung eines mehrdimensionalen Vektorquantisierers für n Unterrahmen. In einem Ausführungsbeispiel ist der mehrdimensionale Vektorquantisierer ein vierdimensionaler verzögerter Vektorquantisierer (four-dimensional delayed vector quantizer, 4D delayed VQ) 168. Der Ausdruck „verzögert" bzw. "delayed" betont, dass die Quantisierung der fixierten Codebuchgewinne für die Unterrahmen erst nach der Suche in dem fixierten Codebuch für all die Unterrahmen stattfindet. Wieder bezugnehmend auf 2 bestimmt das F1 zweite Rahmenverarbeitungsmodul 76 die fixierte Codebuchverstärkung für jeden der Unterrahmen. Die fixierte Codebuchverstärkung kann bestimmt werden, indem zuerst Parameter, die auf einer Unterrahmenbasis generiert wurden, zwischengespeichert werden, bis der gesamte Rahmen verarbeitet worden ist. Wenn der Rahmen verarbeitet worden ist, werden die fixierten Codebuchgewinne für alle der Unterrahmen quantisiert und zwar unter Verwendung der zwischengespeicherten Parameter, um die Typ Eins fixierte Codebuchverstärkungskomponente 150b zu generieren. In einem Ausführungsbeispiel umfasst die Typ Eins fixierte Codebuchverstärkungskomponente 150b 10 Bits, wie in 4 dargestellt ist.
  • Die Typ Eins fixierte Codebuchverstärkungskomponente 150b wird erzeugt durch Darstellen der fixierten Codebuchverstärkungen mit einer Vielzahl fixierter Codebuchenergien in Dezibeleinheiten (dB). Die fixierten Codebuchenergien werden quantisiert, um eine Vielzahl quantisierter fixierter Codebuchenergien zu generieren, die dann übersetzt werden, um eine Vielzahl quantisierter fixierter Codebuchgewinne zu kreieren. Zusätzlich werden die fixierten Codebuchenergien aus den quantisierten fixierten Codebuchenergiefehlern der vorhergehenden Rahmen vorhergesagt, und zwar um eine Vielzahl vorhergesagter fixierter Codebuchenergien zu generieren. Der Unterschied zwi schen den vorhergesagten fixierten Codebuchenergien und den fixierten Codebuchenergien ist eine Vielzahl fixierter Prädiktionscodebuchenergiefehler. In einem Ausführungsbeispiel können unterschiedliche Prädiktionskoeffizienten für jeden der vier Unterrahmen verwendet werden, und zwar zum Erzeugen der vorhergesagten fixierten Codebuchenergien. In diesem beispielhaften Ausführungsbeispiel werden die vorhergesagten fixierten Codebuchenergien des ersten, des zweiten, des dritten und des vierten Unterrahmens aus den vier quantisierten fixierten Codebuchenergiefehlern des vorhergehenden Rahmens vorhergesagt. Die Prädiktionskoeffizienten für die ersten, zweiten, dritten und vierten Unterrahmen dieses beispielhaften Ausführungsbeispiels können {0,7, 0,6, 0,4, 0,2,}, {0,4, 0,2, 0,1, 0,05}, {0,3, 0,2, 0,075, 0,025} bzw. {0,2, 0,075, 0,025, 0,0} sein.
  • Die fixierten Prädiktionscodebuchenergiefehler können gruppiert werden, um einen fixierten Codebuchverstärkungsvektor zu bilden, der, wenn er quantisiert wird, als eine quantisierte fixierte Codebuchverstärkung (g ^k c) bezeichnet werden. In einem Ausführungsbeispiel repräsentiert der fixierte Prädiktionscodebuchenergiefehler für jeden Unterrahmen die Elemente in dem Vektor. Die fixierten Prädiktionscodebuchenergiefehler werden quantisiert und zwar unter Verwendung einer Vielzahl vorherbestimmter Vektoren in einer verzögerten Verstärkungsquantisierungstabelle. Während der Quantisierung kann ein Wahrnehmungsgewichtungsmaß einbezogen werden, um den Quantisierungsfehler zu minimieren. Eine Indexstelle, die den vorherbestimmten Vektor in der verzögerten Verstärkungsquantisierungstabelle identifiziert, ist die fixierte Codebuchverstärkungskomponente 150b für den Rahmen.
  • Die vorherbestimmten Vektoren in der verzögerten Verstärkungsquantisierungstabelle eines Ausführungsbeispiels umfassen 4 Elemente. Entsprechend kann die verzögerte Verstärkungsquantisierungstabelle durch die vorher erörterte Tabelle 5 dargestellt werden. Ein Ausführungsbeispiel der verzögerten Verstärkungsquantisierungstabelle umfasst 1024 vorherbestimmte Vektoren (n = 1024). Ein Ausführungsbeispiel der verzögerten Verstärkungsquantisie rungstabelle trägt den Titel „Float64 gainVQ_4_1024" und ist im Anhang B des beigefügten Mikrofilmanhangs enthalten.
  • Wieder bezugnehmend auf 3, können die fixierten und adaptiven Codebuchverstärkungskomponenten 148 und 150 codiert werden, und zwar durch den Vollratendecoder 90, innerhalb des Decodierungssystems 16, basierend auf der Typklassifikation. Das F0 Anregungskonstruktionsmodul 104 decodiert die Typ Null adaptive und fixierte Codebuchverstärkungskomponente 148a, 150a. In gleicher Weise werden die Typ Eins adaptive Codebuchverstärkungskomponente 148b und die Typ Eins fixierte Verstärkungskomponente 150b durch das F1 Anregungsrekonstruktionsmodul 106 decodiert.
  • Die Decodierung der fixierten und adaptiven Codebuchverstärkungskomponenten 158 und 160 umfasst die Generierung der entsprechenden vorhergesagten Verstärkungen durch den Vollratendecoder 90 und zwar wie vorher erörtert wurde. Die entsprechenden quantisierten Vektoren aus den entsprechenden Quantisierungstabellen werden dann unter Verwendung der entsprechenden Indexstellen gefunden bzw. angeordnet. Die entsprechenden quantisierten Vektoren werden dann mit den entsprechenden vorhergesagten Verstärkungen zusammengesetzt, um entsprechende quantisierte Codebuchgewinne zu generieren. Die quantisierten Codebuchgewinne, die aus den Typ Null fixierten und adaptiven Verstärkungskomponenten 148a und 150a generiert wurden, repräsentieren die Werte sowohl für die fixierten als auch adaptiven Codebuchgewinne für einen Unterrahmen. Die quantisierte Codebuchverstärkung, die aus der Typ Eins adaptiven Codebuchverstärkungskomponente 148b und der Typ Eins fixierten Codebuchverstärkungskomponente 150b generiert wurde, repräsentiert die Werte für die fixierten bzw. adaptiven Codebuchgewinne und zwar für jeden Unterrahmen in einem Rahmen.
  • 1.2 Bitzuordnung für den Halbraten-Codec
  • Bezugnehmend jetzt auf 2, 3 und 5 wird der Halbratenbitstrom des Halbraten-Codec 24 beschrieben. Der Halbraten-Codec 24 ist in vieler Hinsicht gleichartig wie der Vollraten-Codec 22, besitzt aber eine unterschiedliche Bitzuordnung. Somit, der Kürze wegen, wird sich die Erörterung auf die Unterschiede konzentrieren. Jetzt bezugnehmend auf 5 umfasst die Bitstromzuordnung eines Ausführungsbeispiels des Halbraten-Codecs 24 eine Linienspektrumfrequenz (LSF)-Komponente 172, eine Typkomponente 174, eine adaptive Codebuchkomponente 176, eine fixierte Codebuchkomponente 178 und eine Verstärkungskomponente 179. Die Verstärkungskomponente 179 umfasst ferner eine adaptive Codebuchverstärkungskomponente 180 und eine fixierte Codebuchverstärkungskomponente 182. Der Bitstrom des Halbraten-Codec 24 wird auch ferner definiert durch eine Typ Null Spalte 184 und eine Typ Eins Spalte 186. In einem Ausführungsbeispiel verwendet die Typ Null Spalte 184 zwei Unterrahmen mit 10 Millisekunden, die jeweils 80 Abtastungen enthalten. Die Typ Eins Spalte 186 eines Ausführungsbeispiels verwendet drei Unterrahmen, wobei die ersten und zweiten Unterrahmen 53 Abtastungen enthalten, und der dritte Unterrahmen 54 Abtastungen enthält.
  • Obwohl ähnlich wie bei dem Vollraten-Codec 22 generiert, umfasst die LSF Komponente 172 eine Vielzahl von Stufen 188 und einen Prädiktorschalter 190, sowohl für die Typ Null als auch die Type Eins Klassifikationen. Zusätzlich umfasst ein Ausführungsbeispiel der LSF Komponente 172 21 Bit, die Teil des ersten Anteils des Bitstroms bilden. Das in 2 dargestellte initiale Halbrahmenverarbeitungsmodul 48 generiert die LSF Komponente 172 auf die gleiche Weise wie der Vollraten-Codec 22. Wieder bezugnehmend auf 5 umfasst der Halbraten-Codec 24 eines Ausführungsbeispiels drei Stufen 188, zwei mit 128 Vektoren und einen mit 64 Vektoren. Die drei Stufen 188 des Halbraten-Codecs 24 werden in gleicher Weise betrieben wie der Vollraten-Codec 22 für Rahmen, die als Typ Eins klassifiziert sind, mit der Ausnahme der Auswahl eines Satzes von Prädiktorkoeffizienten, wie später erläutert wird. Die Indexstelle jedes der 128 Vektoren wird mit 7 Bits identifiziert und die Indexstelle jedes der 64 Vektoren wird mit 6 Bits identifiziert. Ein Ausführungsbeispiel der LSF Prädiktionsfehlerquantisierungstabelle für den Halbraten-Codec 24 trägt den Titel „Float64 CBes_40k" und ist im Anhang B des beigefügten Mikrofilmanhangs enthalten.
  • Der Halbraten-Codec 24 unterscheidet sich auch vom Vollraten-Codec 22 durch Auswählen zwischen Sätzen von Prädiktorkoeffizienten. Der Prädiktorschalter 190 eines Ausführungsbeispiels identifiziert einen von zwei möglichen Sätzen von Prädiktorkoeffizienten unter Verwendung von einem Bit. Der ausgewählte Satz von Prädiktorkoeffizienten kann verwendet werden, um die vorhergesagten Linienspektrumfrequenzen (LSFs) zu bestimmen, und zwar gleichartig wie beim Vollraten-Codec 22. Der Prädiktorschalter 190 bestimmt und identifiziert welcher der Sätze von Prädiktorkoeffizienten den Quantisierungsfehler am Besten minimiert. Die Sätze von Prädiktorkoeffizienten können in einer LSF Prädiktorkoeffiziententabelle enthalten sein, die im Allgemeinen durch die folgende Matrix dargestellt werden kann:
  • Figure 00450001
    Tabelle 6
  • In einem Ausführungsbeispiel gibt es vier Prädiktorkoeffizienten (m = 4) in jedem der zwei Sätze G = 2), die jeweils 10 Elemente umfassen (n = 10). Die LSF Prädiktorkoeffiziententabelle für den Halbraten-Codec 24 trägt in einem Ausführungsbeispiel den Titel „Float64 B_40k" und ist im Anhang B des beigefügten Mikrofilmanhangs enthalten. Wieder bezugnehmend auf 3 werden die LSF Prädiktionsfehlerquantisierungstabelle und die LSF Prädiktorkoeffiziententabelle von dem H LPC Rekonstruktionsmodul 118 innerhalb des Decodierungssystems 16 verwendet. Das H LPC Rekonstruktionsmodul 118 – empfängt und decodiert die LSF Komponente 172 aus dem Bitstrom, um die quantisierten Rahmen LSFs zu rekonstruieren. Gleichartig zu dem Vollraten-Codec 22 verwendet der Halbraten-Codec 24 für Rahmen, die als Typ Eins klassifiziert sind, einen vorherbestimmten linearen Interpolationspfad. Der Halbraten-Codec 24 verwendet jedoch den vorherbestimmten linearen Interpolationspfad für Rahmen, die sowohl als Typ Null als auch Typ Eins klassifiziert sind.
  • Die adaptive Codebuchkomponente 176 in dem Halbraten-Codec 24 modelliert auf die gleiche Weise den Tonhöhenabstand (pitch lag) und zwar basierend auf der Periodizität des Sprachsignals 18. Die adaptive Codebuchkomponente 176 wird für die Typ Null Klassifikation auf einer Unterrahmenbasis und für die Typ Eins Klassifikation auf einer Rahmenbasis codiert. Wie in 2 dargestellt ist, codiert das initiale Halbrahmenverarbeitungsmodul 48 eine gesteuerte (open loop) adaptive Codebuchkomponente 176a für Rahmen mit der Typ Eins Klassifikation. Für Rahmen mit der Typ Null Klassifikation codiert das H0 erste Unterrahmenverarbeitungsmodul 80 eine geregelte (closed loop) adaptive Codebuchkomponente 176b.
  • Wieder bezugnehmend auf 5 wird ein Ausführungsbeispiel der gesteuerten adaptiven Codebuchkomponente 176a durch 7 Bits pro Rahmen codiert, und die geregelte adaptive Codebuchkomponente 176b wird durch 7 Bits pro Unterrahmen codiert. Entsprechend ist die Typ Null adaptive Codebuchkomponente 176a ein Teil des ersten Anteils des Bitstroms und die Typ Eins adaptive Codebuchkomponente 176b ist Teil des zweiten Anteils des Bitstroms. Wie in 3 dargestellt, empfängt das Decodiersystem 16 die geregelte adaptive Codebuchkomponente 176b. Die geregelte adaptive Codebuchkomponente 176b wird von dem Halbratendecoder 92 decodiert und zwar unter Verwendung des H0 Anregungsrekonstruktionsmoduls 114. In gleicher Weise decodiert das H1 Anregungsrekonstruktionsmodul 116 die gesteuerte adaptive Codebuchkomponente 176a.
  • Ein Ausführungsbeispiel der fixierten Codebuchkomponente 178 für den Halbraten-Codec 24 ist abhängig von der Typklassifikation zum Codieren des Langzeitrests, wie bei dem Vollraten-Codec 22. Wieder Bezug nehmend auf 2 wird eine Typ Null fixierte Codebuchkomponente 178a oder eine Typ Eins fixierte Codebuchkomponente 178b erzeugt, und zwar durch das H0 erste Unterrahmenverarbeitungsmodul 80 oder entsprechend durch das H1 zweite Unterrahmenverarbeitungsmodul 84. Entsprechend bilden die Typ Null und Typ Eins fixierten Codebuchkomponenten 178a und 178b einen Teil des zweiten Anteils des Bitstroms.
  • Wieder bezugnehmend auf 5 wird die Typ Null fixierte Codebuchkomponente 178a eines beispielhaften Ausführungsbeispiels codiert unter Verwendung von 15 Bits pro Unterrahmen und zwar mit bis zu 2 Bits, die das zu verwendende Codebuch identifizieren wie bei dem Vollraten-Codec 22. Codieren der Typ Null fixierten Codebuchkomponente 178a umfasst die Verwendung einer Vielzahl von n Impulscodebüchern, die in dem beispielhaften Ausführungsbeispiel ein 2-Impulscodebuch 192 und ein 3-Impulscodebuch 194 sind. Zusätzlich wird in diesem beispielhaften Ausführungsbeispiel ein gaussförmiges Codebuch (gaussion codebook) 195 verwendet, das Einträge umfasst, die zufälliger Anregung bzw. Zufallsanregung (random exitation) entsprechen. Für die n Impulscodebücher verwendet der Halbraten-Codec 24 die Spurtabellen auf die gleiche Weise wie der Vollraten-Codec 22. In einem Ausführungsbeispiel wird die Spurtabelle mit dem Titel „static INT16track_2_7_1", „static INT16track_1_3_0" und „staic INT16track_3_2_0", enthalten in der Sammlung mit dem Titel „tracks.tab" des Anhangs B des Mikrofilmanhangs verwendet.
  • In einem beispielhaften Ausführungsbeispiel des 2-Impulscodebuchs 192 umfasst jede Spur in der Spurtabelle 80 Abtaststellen für jeden repräsentativen Impuls. Die Impulsstellen für sowohl die ersten als auch die zweiten repräsentativen Impulse werden unter Verwendung von 13 Bits codiert. Codierung 1 von den 80 möglichen Impulsstellen wird mit 13 Bits erreicht, und zwar durch Identifizieren der Impulsstelle für den ersten repräsentativen Impuls, Multiplizieren der Impulsstelle mit 80 und Addieren der Impulsstelle des zweiten repräsentativen Impulses zu dem Ergebnis. Das Endergebnis ist ein Wert, der mit 13 Bits codiert werden kann, mit einem zusätzlichen Bit, das verwendet wird zum Darstellen der Vorzeichen beider repräsentativen Impulse und zwar wie in dem Vollraten-Codec 22.
  • In einem beispielhaften Ausführungsbeispiel des 3-Impulscodebuchs 194 werden die Impulsstellen generiert und zwar durch die Kombination einer allgemeinen Stelle, die eine von 16 durch 4 Bits definierten Abtaststellen sein kann, und einer davon relativen Versetzung (displacement). Die relative Versetzung kann 3 Werte sein, die jeweils einen von den 3 repräsentativen Impulsen in dem 3-Impulscodebuch 194 repräsentieren. Die Werte repräsentieren die Stellendifferenz und zwar weg von der allgemeinen Stelle, und können mit 2 Bits für jeden repräsentativen Impuls definiert werden. Die Vorzeichen für die 3 repräsentativen Impulse können jeweils mit einem Bit definiert werden, so dass die gesamten Bits für die Impulsstelle und die Vorzeichen 13 Bits sind.
  • Das gaussförmige Codebuch 195 repräsentiert im Allgemeinen Sprachsignale vom Rauschtyp, die unter Verwendung von zwei orthogonalen Basiszufallsvektoren codiert werden können. Die Typ Null fixierte Codebuchkomponente 178a repräsentiert die zwei orthogonal basierten Zufallsvektoren, die aus dem gaussförmigen Codebuch 195 generiert werden. Die Typ Null fixierte Codebuchkomponente 178a repräsentiert wie eine Vielzahl orthogonaler Basiszufallsvektoren in einer gaussförmigen Tabelle gestört (perturbate) werden, um die Anzahl von orthogonalen Basiszufallsvektoren zu erhöhen und zwar ohne Erhöhung der Speicheranforderungen. In einem beispielhaften Ausführungsbeispiel wird die Anzahl der orthogonalen Basiszufallsvektoren von 32 Vektoren auf 45 Vektoren erhöht. Eine gaussförmige Tabelle, die 32 Vektoren umfasst, wobei jeder Vektor 40 Elemente aufweist, repräsentiert das gaussförmige Codebuch des beispielhaften Ausführungsbeispiels. In diesem beispielhaf ten Ausführungsbeispiel werden die zwei zum Codieren verwendeten orthogonalen Zufallsvektoren miteinander verschachtelt (interleaved) um 80 Abtastungen in jedem Unterrahmen zu repräsentieren. Das gaussförmige Codebuch kann im Allgemeinen durch die folgende Matrix dargestellt werden:
  • Figure 00490001
    Tabelle 7
  • Ein Ausführungsbeispiel des gaussförmigen Codebuchs 195 trägt den Titel „double bv" und ist im Anhang B des beigefügten Mikrofilmanhangs enthalten. Für das beispielhafte Ausführungsbeispiel des gaussförmigen Codebuchs 195 identifizieren 11 Bits die kombinierten Indizes (Stelle und Störung (locaction and perturbation)) von beiden der zwei zu Codierung verwendeten orthogonalen Basiszufallsvektoren und 2 Bits definieren die Vorzeichen der orthogonalen Basiszufallsvektoren.
  • Codierung der Typ Eins fixierten Codebuchkomponente 178b umfasst eine Vielzahl von n Impulscodebüchern, die in dem beispielhaften Ausführungsbeispiel ein 2-Impulscodebuch 196 und ein 3-Impulscodebuch 197 sind. Das 2-Impulscodebuch 196 und das 3-Impulscodebuch 197 funktionieren in ähnlicher Weise wie das 2-Impulscodebuch 192 und das 3-Impulscodebuch 194 der Typ Null Klassifikation, die Struktur ist jedoch unterschiedlich. Typ Eins fixierte Codebuchkomponente 178b eines beispielhaften Ausführungsbeispiels wird unter Verwendung von 13 Bits pro Unterrahmen codiert. Von den 13 Bits identifiziert 1 Bit das 2-Impulscodebuch 196 oder das 3-Impulscodebuch 197 und 12 Bits repräsentieren die entsprechenden Impulsstellen und die Vorzeichen der repräsentativen Impulse. In dem 2-Impulscodebuch 196 des beispielhaften Ausführungsbeispiels umfassen die Spuren für jeden repräsentativen Impuls 32 Abtaststellen, die unter Verwendung von 5 Bits codiert werden, wo bei die verbleibenden 2 Bits für das Vorzeichen jedes repräsentativen Impulses verwendet werden. In dem 3-Impulscodebuch 197 umfasst die allgemeine Stelle 8 Abtaststellen, die unter Verwendung von 4 Bits codiert werden. Die relative Versetzung wird mit 2 Bits codiert, und die Vorzeichen für die repräsentativen Impulse werden in 3 Bits codiert, und zwar in ähnlicher Weise wie bei den als Type Null klassifizierten Rahmen.
  • Wieder bezugnehmend auf 3 empfängt das Decodiersystem 16 die Typ Null oder die Typ Eins fixierten Codebuchkomponenten 178a und 178b. Die Typ Null oder Typ Eins fixierten Codebuchkomponenten 178a und 178b werden von dem H0 Anregungsrekonstruktionsmodul 114 oder entsprechend dem H1 Rekonstruktionsmodul 116 decodiert. Die Decodierung der Typ Null fixierten Codebuchkomponente 178a findet statt unter Verwendung eines Ausführungsbeispiels des 2-Impulscodebuchs 192, des 3-Impulscodebuchs 194 oder des gaussförmigen Codebuchs 195. Die Typ Eins fixierte Codebuchkomponente 178b wird unter Verwendung des 2-Impulscodebuchs 196 oder des 3-Impulscodebuchs 197 decodiert.
  • Wieder bezugnehmend auf 5 umfasst ein Ausführungsbeispiel der Verstärkungskomponente 179 eine Typ Null adaptive und fixierte Codebuchverstärkungskomponente 180a und 182a. Die Typ Null adaptive und fixierte Codebuchverstärkungskomponente 180a und 182a können quantisiert werden unter Verwendung des zweidimensionalen Vektorquantisierers (2D VQ) 164 und der 2D Verstärkungsquantisierungstabelle (Tabelle 4), auch verwendet für den Vollraten-Codec 22. In einem Ausführungsbeispiel trägt die 2D Verstärkungsquantisierungstabelle den Titel „Fload64 gainVQ_3_128" und ist im Anhang B des beigefügten Mikrofilmanhangs enthalten.
  • Typ Eins adaptive und fixierte Codebuchverstärkungskomponenten 180b und 182b können auch in ähnlicher Weise wie beim Vollraten-Codec 22 generiert werden, und zwar unter Verwendung mehrdimensionaler Vektorquantisierer. In einem Ausführungsbeispiel werden ein dreidimensionaler Vorvektorquantisierer (three-dimensional pre vector quantizer, 3D preVQ) 198 bzw. ein drei- dimensionaler verzögerter Vektorquantisierer (three-dimensional delayed vector quantizer, 3D delayed VQ) 200 für die adaptiven bzw. fixierten Verstärkungskomponenten 180b bzw. 182b verwendet. Die Vektorquantisierer 198 und 200 führen Quantisierung durch unter Verwendung entsprechender Verstärkungsquantisierungstabellen. In einem Ausführungsbeispiel sind die Verstärkungsquantisierungstabellen eine Vorverstärkungsquantisierungstabelle bzw. eine verzögerte Verstärkungsquantisierungstabelle für die adaptiven bzw. fixierten Codebuchverstärkungen. Die mehrdimensionalen Verstärkungstabellen können ähnlich strukturiert sein, und eine Vielzahl vorherbestimmter Vektoren enthalten. Jede mehrdimensionale Verstärkungstabelle in einem Ausführungsbeispiel umfasst 3 Elemente für jeden Unterrahmen eines als Typ Eins klassifizierten Rahmens.
  • Ähnlich dem Vollraten-Codec 22 kann der dreidimensionale Vorvektorquantisierer (3D preVQ) 198 für die adaptive Verstärkungskomponente 180b, die adaptiven Verstärkungen direkt quantisieren. Zusätzlich kann der dreidimensionale verzögerte Vektorquantisierer (3D delayed VQ) 200 für die fixierte Verstärkungskomponente 182b den fixierten Codebuchenergieprädiktionsfehler quantisieren. Unterschiedliche Prädiktionskoeffizienten können verwendet werden um die fixierte Codebuchenergie für jeden Unterrahmen vorherzusagen. In einem bevorzugten Ausführungsbeispiel werden die vorhergesagten fixierten Codebuchenergien der ersten, der zweiten und der dritten Unterrahmen aus den 3 quantisierten fixierten Codebuchenergiefehlern des vorhergehenden Rahmens vorhergesagt. In diesem beispielhaften Ausführungsbeispiel werden die vorhergesagten fixierten Codebuchenergien der ersten, der zweiten bzw. der dritten Unterrahmen vorhergesagt unter Verwendung des Satzes von Koeffizienten {0,6, 0,3, 0,1}, {0,4, 0,25, 0,1} bzw. {0,3, 0,15, 0,075}.
  • Die Verstärkungsquantisierungstabellen für den Halbraten-Codec 24 können im Allgemeinen dargestellt werden als:
  • Figure 00520001
    Tabelle 8
  • Ein Ausführungsbeispiel der vom dreidimensionalen Vorvektorquantisierer (3D preVQ) 198 verwendeten Vorverstärkungsquantisierungstabelle umfasst 16 Vektoren (n = 16). Der dreidimensionale verzögerte Vektorquantisierer (3D delayed VQ) 200 verwendet ein Ausführungsbeispiel der verzögerten Verstärkungsquantisierungstabelle, die 256 Vektoren (n = 256) umfasst. Die Verstärkungsquantisierungstabellen für den Vorvektorquantisierer (3D preVQ) 198 bzw. den verzögerten Vektorquantisierer (3D delayed VQ) 200 eines Ausführungsbeispiels haben den Titel Float64 gp3_tab" bzw. „Float64 gainVQ_3_256" und sind im Anhang B des beigefügten Mikrofilmanhangs enthalten.
  • Wieder bezugnehmend auf 2 wird die Typ Null adaptive und fixierte Codebuchverstärkungskomponente 180a und 182a durch das H0 erste Unterrahmenverarbeitungsmodul 80 generiert. Das H1 erste Rahmenverarbeitungsmodul 82 generiert die Typ Eins adaptive Codebuchverstärkungskomponente 180b. In ähnlicher Weise wird die Typ Eins fixierte Codebuchverstärkungskomponente 182b durch das H1 zweite Rahmenverarbeitungsmodul 86 generiert. Wieder bezugnehmend auf 3 empfängt das Decodierungssystem 16 die Typ Null adaptive und fixierte Codebuchverstärkungskomponente 180a und 182a. Die Typ Null adaptive und fixierte Codebuchverstärkungskomponente 180a und 182a wird durch das H0 Anregungsrekonstruktionsmodul 114 decodiert und zwar basierend auf der Typklassifikation. In ähnlicher Weise decodiert das H1 Anregungsrekonstruktionsmodul 116 die Typ Eins adaptive Verstärkungskomponente 180b und die Typ Eins fixierte Codebuchverstärkungskomponente 182b.
  • 1.3 Bitzuordnung für den Viertelraten-Codec
  • Jetzt bezugnehmend auf 2, 3 und 6 wird jetzt der Viertelratenbitstrom des Viertelraten-Codec 26 erläutert. Das dargestellte Ausführungsbeispiel des Viertelraten-Codec 26 wird sowohl auf einer Rahmenbasis als auch einer Unterrahmenbasis betrieben, aber umfasst nicht die Typklassifikation als Teil des Codierungsprozesses, wie bei den Voll- und Halbraten-Codecs 22 und 24. Jetzt bezugnehmend auf 6 umfasst der vom Viertelraten-Codec 26 generierte Bitstrom eine LSF Komponente 202 und eine Energiekomponente 204. Ein Ausführungsbeispiel des Viertelraten-Codecs 26 wird betrieben unter Verwendung von zwei Unterrahmen von jeweils 10 Millisekunden um Rahmen zu verarbeiten und zwar unter Verwendung von 39 Bits pro Rahmen.
  • Die LSF Komponente 202 wird auf einer Rahmenbasis codiert und zwar unter Verwendung eines ähnlichen LSF Quantisierungsschemas wie bei dem Vollraten-Codec 22, wenn der Rahmen als Typ Null klassifiziert ist. Der Viertelraten-Codec 26 verwendet ein Interpolationselement 206 und eine Vielzahl von Stufen 208, um die LSFs zu codieren, damit diese die spektral Einhüllende eines Rahmens repräsentieren. Ein Ausführungsbeispiel der LSF Komponente 202 wird unter Verwendung von 27 Bits codiert. Die 27 Bits repräsentieren das Interpolationselement 206, das in 2 Bits codiert wird, und vier der Stufen 108, die in 25 Bits codiert werden. Die Stufen 208 umfassen eine Stufe, die unter Verwendung von 7 Bits codiert wird, und drei Stufen, die unter Verwendung von 6 Bits codiert werden. In einem Ausführungsbeispiel verwendet der Viertelraten-Codec 26 die exakte Quantisierungstabelle und Prädiktorkoeffiziententabelle, die vom Vollraten-Codec 22 verwendet werden. Die Quantisierungstabelle und die Prädiktorkoeffiziententabelle eines Ausführungsbeispiels tragen den Titel „Float64 CBes_85k" bzw. „Float64 B_85k" und sind im Anhang B des beigefügten Mikrofilmanhangs enthalten.
  • Die Energiekomponente 204 repräsentiert eine Energieverstärkung, die multipliziert werden kann, und zwar mit einem Vektor jetzt noch ähnlicher (similar yet) Zufallszahlen, die sowohl von dem Codiersystem 12 als auch dem Deco diersystem 16 erzeugt werden können. In einem Ausführungsbeispiel wird die Energiekomponente 204 unter Verwendung von 6 Bits pro Unterrahmen codiert. Die Energiekomponente 204 wird generiert durch erstes Bestimmen der Energieverstärkung für den Unterrahmen, und zwar basierend auf den Zufallszahlen. Zusätzlich wird eine vorhergesagte Energieverstärkung für den Unterrahmen bestimmt, und zwar basierend auf der Energieverstärkung vergangener bzw. vorhergegangener Rahmen.
  • Die vorhergesagte Energieverstärkung wird von der Energieverstärkung abgezogen, um einen Energieverstärkungsprädiktionsfehler zu bestimmen. Der Energieverstärkungsprädiktionsfehler wird quantisiert und zwar unter Verwendung eines Energieverstärkungsquantisierers und einer Vielzahl vorherbestimmter Scalare in einer Energieverstärkungsquantisierungstabelle. Indexstellen der vorherbestimmten Scalare für jeden Unterrahmen können durch die Energiekomponente 204 für den Rahmen repräsentiert werden.
  • Die Energieverstärkungsquantisierungstabelle kann im Allgemeinen durch die folgende Matrix repräsentiert werden:
  • Figure 00540001
    Tabelle 9
  • In einem Ausführungsbeispiel enthält die Energiequantisierungstabelle 64 (n = 64) der vorherbestimmten Scalare. Ein Ausführungsbeispiel der Energieverstärkungsquantisierungstabelle trägt den Titel Float64 gainSQ_1_64" und ist im Anhang B des beigefügten Mikrofilmanhangs enthalten.
  • In 2 wird die LSF Komponente 202 durch das initiale Viertelrahmenverarbeitungsmodul 50 auf einer Rahmenbasis codiert. In ähnlicher Weise wird die Energiekomponente 204 durch das Viertelratenmodul 60 auf einer Unterrahmenbasis codiert. Jetzt bezugnehmend auf 3 empfängt das Decodiersystem 16 die LSF Komponente 202. Die LSF Komponente 202 wird durch das Q LPC Rekonstruktionsmodul 122 decodiert und die Energiekomponente 204 wird durch das Q Anregungsrekonstruktionsmodul 120 decodiert. Die Decodierung der LSF Komponente 202 ist ähnlich den Decodierverfahren für den Vollraten-Codec 22 für als Typ Eins klassifizierte Rahmen. Die Energiekomponente 204 wird zum Bestimmen der Energieverstärkung decodiert. Ein Vektor jetzt ähnlicher Zufallszahlen innerhalb des Decodiersystems 16 generiert, kann mit der Energieverstärkung multipliziert werden, um die Kurzzeitanregung zu generieren.
  • 1.4 Bitzuordnung für den Achtelraten-Codec
  • In den 2, 3 und 7 kann der Achtelratenbitstrom des Achtelraten-Codec 28 die Typklassifikation als Teil des Codierprozesses nicht enthalten, und kann nur auf einer Rahmenbasis betrieben werden. Jetzt bezugnehmend auf 7 umfasst der Bitstrom des Achtelraten-Codec 28, in ähnlicher Weise wie der Viertelraten-Codec 26, eine LSF Komponente 240 und eine Energiekomponente 242. Die LSF Komponente 240 kann codiert werden und zwar unter Verwendung eines ähnlichen LSF Quantisierungsschemas, wie beim Vollraten-Codec 22, wenn der Rahmen als Typ Eins klassifiziert ist. Der Achtelraten-Codec 28 verwendet eine Vielzahl von Stufen 244 zum Codieren des Kurzzeitprädiktors oder spektraler Repräsentation eines Rahmens. Ein Ausführungsbeispiel der LSF Komponente 240 wird in drei Stufen 244 unter Verwendung von 11 Bits pro Rahmen codiert. Zwei der drei Stufen 244 werden mit 4 Bits und die letzte der drei Stufen 244 wird mit 3 Bits codiert.
  • Der Quantisierungsansatz zum Erzeugen der LSF Komponente 240 für den Achtelraten-Codec 28 umfasst eine LSF Prädiktionsfehlerquantisierungstabelle und eine Prädiktorkoeffiziententabelle, ähnlich dem Vollraten-Codec 22. Die LSF Prädiktionsfehlerquantisierungstabelle und die LSF Prädiktorkoeffiziententabelle kann im Allgemeinen durch die vorher erörterten Tabellen 1 und 2 repräsentiert werden. In einem beispielhaften Ausführungsbeispiel umfasst die LSF Quantisierungstabelle für den Achtelraten-Codec 28 drei Stufen G = 3) mit 16 Quantisierungsvektoren in zwei Stufen (r = 16) und 8 Quantisierungsvektoren in einer Stufe (s = 8), wobei jede 10 Elemente (n = 10) besitzt. Die Prädiktorkoeffiziententabelle eines Ausführungsbeispiels umfasst 4 Vektoren (m = 4) mit jeweils 10 Elementen (n = 10). Die Quantisierungstabelle und die Prädiktorkoeffiziententabelle eines Ausführungsbeispiels haben den Titel „Float64 CBes_08k" bzw. „Float64B_08k" und sind im Anhang B des beigefügten Mikrofilmanhangs enthalten.
  • In 2 wird die LSF Komponenten 240 auf einer Rahmenbasis durch das initiale Achtelrahmenverarbeitungsmodul 52 codiert. Die Energiekomponente 242 wird auch auf einer Rahmenbasis durch das Achtelratenmodul 62 codiert. Die Energiekomponente 242 repräsentiert eine Energieverstärkung, die in ähnlicher Weise wie beim Viertelraten-Codec 26 bestimmt und codiert werden kann. Ein Ausführungsbeispiel der Energiekomponente 242 wird durch 5 Bits pro Rahmen repräsentiert, wie in 7 dargestellt ist. Ähnlich dem Viertelraten-Codec 26 können die Energieverstärkung und die vorhergesagte Energieverstärkung verwendet werden, um einen Energieprädiktionsfehler zu bestimmen. Der Energieprädiktionsfehler wird quantisiert und zwar unter Verwendung eines Energieverstärkungsquantisierers und einer Vielzahl vorher bestimmter Skalare in einer Energieverstärkungsquantisierungstabelle. Die Energieverstärkungsquantisierungstabelle kann im Allgemeinen durch Tabelle 9, wie vorher diskutiert, dargestellt werden. Der Energieverstärkungsquantisierer eines Ausführungsbeispiels verwendet eine Energieverstärkungsquantisierungstabelle, die 32 Vektoren (n = 32) enthält, die den Titel trägt „Float64 gainSQ_1_32" und im Anhang B des beigefügten Mikrofilmanhangs enthalten ist.
  • In 3 können die LSF Komponente 240 und die Energiekomponente 242 decodiert werden, und zwar nach dem Empfang durch das Decodiersystem 16. Die LSF Komponente 240 und die Energiekomponente 242 werden durch das E LPC Rekonstruktionsmodul 126 bzw. das E Anregungsrekonstruktions modul 124 decodiert. Die Decodierung der LSF Komponente 240 ist ähnlich wie beim Vollraten-Codec 22 für als Typ Eins klassifizierte Rahmen. Die Energiekomponente 242 kann decodiert werden durch Anwenden der decodierten Energieverstärkung auf einen Vektor mit jetzt ähnlichen Zufallszahlen, wie beim Viertelraten-Codec 26.
  • Ein Ausführungsbeispiel des Sprachkomprimierungssystems 10 ist geeignet einen Bitstrom zu kreieren und dann zu decodieren, und zwar unter Verwendung eines der vier Codecs 22, 24, 26 und 28. Der durch einen bestimmten Codec 22, 24,26 und 28 generierte Bitstrom kann codiert werden, mit Betonung bzw. unter Hervorhebung unterschiedlicher Parameter des Sprachsignals 18 innerhalb eines Rahmens und zwar abhängig von der Ratenauswahl und der Typklassifikation. Entsprechend kann die Wahrnehmungsqualität bzw. wahrnehmbare Qualität der aus dem Bitstrom decodierten nachverarbeiteten synthetisierten Sprache 20 optimiert werden, während die gewünschte durchschnittliche Bitrate beibehalten wird.
  • Eine detaillierte Erörterung der Konfiguration und des Betriebs der in den Ausführungsbeispielen der 2 und 3 dargestellten Sprachkomprimierungssystemmodule wird jetzt geliefert. Der Leser wird ermutigt, den Quellcode zu betrachten, der im Anhang A des beigefügten Mikrofilmanhangs beinhaltet ist und zwar im Zusammenhang mit der Erörterung um das Verständnis zu erhöhen.
  • 2.0 Vorverarbeitungsmodul (pre-processing module)
  • Jetzt bezugnehmend auf 8 wird ein erweitertes Blockdiagramm des in 2 dargestellten Vorverarbeitungsmoduls 34 geliefert. Ein Ausführungsbeispiel des Vorverarbeitungsmoduls 34 umfasst ein Stille- bzw. Ruheverstärkungsmodul (silence enhancement module) 302, ein Hochpassfiltermodul 304 und ein Rauschunterdrückungsmodul 306. Das Vorverarbeitungsmodul 34 empfängt das Sprachsignal 18 und liefert ein vorverarbeitetes Sprachsignal 308.
  • Das Ruheverstärkungsmodul 302 empfängt das Sprachsignal 18 und hat die Funktion der minimalen Rauschauflösung (minimum noise resolution) nachzufolgen. Die Ruheverstärkungsfunktion bzw. Ruheanhebungsfunktion folgt adaptiv der minimalen Auflösung nach und pegelt das Sprachsignal 18 um Null herum ein, und detektiert ob der aktuelle Rahmen „Ruherauschen" (silence noise) sein könnte. Falls ein Rahmen mit „Ruherauschen" detektiert wird, kann das Sprachsignal 18 auf den Null-Pegel geregelt (ramped) werden. Andernfalls kann bzw. könnte das Sprachsignal 18 nicht modifiziert werden. Beispielsweise kann das Codierungsschema nach der A-Regel, bzw. A-law Codierungsschema so ein unhörbares „Ruherauschen" in ein deutlich hörbares Rauschen transformieren. A-law-Codierung und Decodierung des Sprachsignal 18 vor dem Vorverarbeitungsmodul 34 kann Abtastwerte, die fast Null sind, verstärken und zwar auf Werte von etwa +8 oder –8 und dabei ein fast unhörbares Rauschen in ein hörbares Rauschen transformieren. Nach der Verarbeitung durch das Ruheverstärkungsmodul 302 kann das Sprachsignal 18 an das Hochpassfiltermodul 304 geliefert werden.
  • Das Hochpassfiltermodul 304 kann ein Pol-Nullstellen-Filter (pole-zero-filter) zweiter Ordnung sein, und kann durch die folgende Transferfunktion H(z) angegeben sein.
  • Figure 00580001
  • Während der Hochpassfilterung kann der Eingang um den Faktor 2 herunterscaliert werden, und zwar durch Teilen der Koeffizienten des Zählers durch 2.
  • Nach der Verarbeitung durch das Hochpassfilter kann das Sprachsignal 18 an das Rauschunterdrückungsmodul 306 gegeben werden. Das Rauschunterdrückungsmodul 306 wendet Rauschunterdrückung im Frequenzbereich an, und kann eines der vielen bekannten Verfahren zur Rauschunterdrückung sein. Das Rauschunterdrückungsmodul 306 kann ein Programm zur Fouriertrans formation umfassen, wie es von einem Rauschunterdrückungsverfahren wie in Section 4.1.2 des TIA/EIA IS-127 Standards mit dem Titel „Enhanced Variable Rate Codec, Speech Service Option 3 for Wideband Spread Spectrum Digital Systems" beschrieben ist.
  • Das Rauschunterdrückungsmodul 306 eines Ausführungsbeispiels transformiert jeden Rahmen des Sprachsignals 18 in den Frequenzbereich, wo die Spektralamplituden von den Spektralphasen getrennt werden können. Die Spektralamplituden können in Bänder gruppiert werden, die den menschlichen Gehörkanalbändern folgen. Eine Dämpfungsverstärkung (attenuation gain) kann für jedes Band berechnet werden. Die Dämpfungsverstärkungen können berechnet werden und zwar mit weniger Gewichtung auf Spektralbereiche für die wahrscheinlich ist, dass sie harmonische Struktur aufweisen. In solchen Bereichen kann das Hintergrundrauschen durch die starke stimmhafte Sprache maskiert werden. Entsprechend kann jede Dämpfung der Sprache die Qualität der Originalsprache stören und zwar ohne irgendeine wahrnehmbare Verbesserung der Reduktion des Rauschens.
  • Nach der Berechnung der Dämpfungsverstärkung können die spektralen Amplituden in jedem Band mit der Dämpfungsverstärkung multipliziert werden. Die spektralen Amplituden können dann mit den originalen spektralen Phasen kombiniert werden, und das Sprachsignal 18 kann zurück in den Zeitbereich transformiert werden. Das Zeitbereichssignal kann überlappt und addiert (overlapped-and-added) werden, um das vorverarbeitete Sprachsignal 308 zu generieren. Das vorverarbeitete Sprachsignal 308 kann dann an das initiale Rahmenverarbeitungsmodul 44 geliefert werden.
  • 3.0 Initiales Rahmenverabeitungsmodul (initial frame processing module)
  • 9 zeigt ein Blockdiagramm des initialen Rahmenverarbeitungsmoduls 44, wie in 2 dargestellt. Ein Ausführungsbeispiel des initialen Rahmenverarbeitungsmoduls 44 umfasst einen LSF Generierungsabschnitt 312, ein Wahrnehmungsgewichtungsfiltermodul 314, ein gesteuertes Tonhöhenschät zungsmodul (open loop pitch estimation module) 316, einen Charakterisierungsabschnitt 318, ein Ratenauswahlmodul 320, ein Tonhöhenvorverarbeitungsmodul 322 und ein Typklassifikationsmodul 324. Der Charakterisierungsabschnitt 318 umfasst ferner ein Sprachaktivitätsdetektions (voice activity detection, VAD)-Modul 326 und ein Charakterisierungsmodul 328. Der LSF Generierungsabschnitt 312 umfasst ein LPC Analysemodul 330, ein LSF Glättungsmodul (smoothing module) 332 und ein LSF Quantisierungsmodul 334. Zusätzlich umfasst der LSF Generierungsabschnitt 312 innerhalb des Vollratencodierers 36 ein Interpolationsmodul 338 und innerhalb des Halbratencodierers 38 umfasst der LSF Generierungsabschnitt ein Prädiktorschaltmodul 336.
  • Bezugnehmend auf 2 wird das initiale Rahmenverarbeitungsmodul 44 betrieben, um die LSF Komponenten 140, 172, 202 und 240 zu generieren, wie auch die Ratenauswahl und die Typklassifikation zu bestimmen. Die Ratenauswahl und Typklassifikation steuern die Verarbeitung durch das Anregungsverarbeitungsmodul 54. Das in 9 dargestellte initiale Rahmenverarbeitungsmodul 44 ist illustrativ für ein Ausführungsbeispiel des initialen Vollrahmenverarbeitungsmoduls 46 und des initialen Halbrahmenverarbeitungsmoduls 48. Ausführungsbeispiele des initialen Viertelrahmenverarbeitungsmoduls 50 und des initialen Achtelrahmenverarbeitungsmoduls 52 unterscheiden sich in gewissem Maße.
  • Wie vorher in einem Ausführungsbeispiel erörtert, findet die Typklassifikation für das initiale Viertelratenrahmenverarbeitungsmodul 50 und das initiale Achtelratenrahmenverarbeitungsmodul 52 nicht statt. Zusätzlich werden der Langzeitprädiktor und der Langzeitprädiktorrest nicht getrennt verarbeitet, um die in 6 und 7 dargestellte Energiekomponente 204 und 242 zu repräsentieren. Entsprechend werden nur der LSF Abschnitt 312, der Charakterisierungsabschnitt 318 und das Ratenauswahlmodul 320, in 9 dargestellt, innerhalb des initialen Viertelratenrahmenverarbeitungsmoduls 50 und des initialen Achtelratenrahmenverarbeitungsmoduls 52 betrieben.
  • Um das Verständnis des initialen Rahmenverarbeitungsmoduls 44 zu vereinfachen wird zuerst ein allgemeiner Überblick des Betriebs erörtert, gefolgt von einer detaillierten Erörterung. Jetzt bezugnehmend auf 9 wird das vorverarbeitete Sprachsignal 308 initial bzw. anfänglich an den LSF Generierungsabschnitt 312, das Wahrnehmungsgewichtungsfiltermodul 314 und den Charakterisierungsabschnitt 318 geliefert. Jedoch ist einiges der Verarbeitung innerhalb des Charakterisierungsabschnitts 318 von der Verarbeitung abhängig, die innerhalb des gesteuerten Tonhöhenschätzungsmoduls 316 stattfindet. Der LSF Generierungsabschnitt 312 schätzt und codiert die spektrale Repräsentation des vorverarbeiteten Sprachsignals 308. Das Wahrnehmungsgewichtungsfiltermodul 314 wird betrieben um Wahrnehmungsgewichtung bzw. wahrnehmungsbezogene Gewichtung während der Codierung des vorverarbeiteten Sprachsignals 308 vorzusehen, und zwar gemäß der natürlichen Maskierung bzw. Verdeckung, die während der Verarbeitung durch das menschliche Hörsystem stattfindet. Das gesteuerte Tonhöhenschätzungsmodul 316 bestimmt den gesteuerten Tonhöhenabstand (open loop pitch lag) für jeden Rahmen. Der Charakterisierungsabschnitt 318 analysiert den Rahmen des vorverarbeiteten Sprachsignals 308 und charakterisiert den Rahmen um die nachfolgende Verarbeitung zu optimieren.
  • Während und nach dem Verarbeiten durch den Charakterisierungsabschnitt 318 können die resultierenden Charakterisierungen des Rahmens durch das Tonhöhenvorverarbeitungsmodul 322 verwendet werden, um Parameter zu generieren, die bei der Generierung des geregelten Tonhöhenabstands (closed loop pitch lag) verwendet werden. Zusätzlich wird die Charakterisierung des Rahmens durch das Ratenauswahlmodul 320 zum Bestimmen der Ratenauswahl verwendet. Basierend auf Parametern des Tonhöhenabstands, die durch das Tonhöhenvorverarbeitungsmodul 322 und die Charakterisierungen bestimmt wurden, wird die Typklassifizierung durch das Typklassifikationsmodul 324 bestimmt.
  • 3.1 LPC Analysemodul
  • Das vorverarbeitete Sprachsignal 308 wird durch das LPC Analysemodul 330 innerhalb des LSF Generierungsabschnitts 312 empfangen. Das LPC Analysemodul 330 bestimmt die Kurzzeitprädiktionsparameter, die verwendet werden, um die LSF Komponenten 312 zu generieren. Innerhalb eines-Ausführungsbeispiels des LPC Analysemoduls 330 gibt es drei LPC Analysen 10ter Ordnung, die für einen Rahmen des vorverarbeiteten Sprachsignals 308 durchgeführt werden. Die Analysen können zentriert sein, und zwar innerhalb des zweiten Viertels des Rahmens, des vierten Viertels des Rahmens und einer Vorausschau (lookahead). Die Vorausschau ist ein Sprachsegment, das in den nächsten Rahmen hinüberhängt (overhangs) um Übergangseffekte (transitional effects) zu reduzieren. Die Analyse innerhalb der Vorausschau umfasst Abtastungen aus dem aktuellen Rahmen und aus dem nächsten Rahmen des vorverarbeiteten Sprachsignals 308.
  • Unterschiedliche Fenster können für jede LPC Analyse innerhalb eines Rahmens verwendet werden, um die Linearprädiktionskoeffizienten zu berechnen. Die LPC Analysen in einem Ausführungsbeispiel werden unter Verwendung des Autokorrelationsverfahrens zum Berechnen der Autokorrelationskoeffizienten durchgeführt. Die Autokorrelationskoeffizienten können aus einer Vielzahl von Datenabtastungen innerhalb jedes Fensters berechnet werden. Während der LPC Analyse kann eine Bandbreitenerweiterung von 60 Hz und ein Korrekturfaktor für weißes Rauschen von 1,0001 auf die Autokorrelationskoeffizienten angewendet werden. Die Bandbreitenerweiterung liefert zusätzliche Robustheit gegen Signal- und Rundungsfehler, während nachfolgender Codierung. Der Korrekturfaktor für weißes Rauschen addierte gewissermaßen ein Grund- bzw. Hintergrundrauschen (noise floor) von –40 dB um den spektralen Dynamikbereich zu reduzieren, und ferner Fehler während der weiteren Codierung zu mildern.
  • Eine Vielzahl von Reflektionskoeffizienten kann aus den Autokorrelationskoeffizienten unter Verwendung eines Leroux-Gueguen Algorithmus berechnet werden. Die Reflektionskoeffizienten können dann in die Linearprädiktionskoeffizienten konvertiert werden. Die Linearprädiktonskoeffizienten können ferner in die LSFs (Line Spectrum Frequencies Linienspektrumfrequenzen) konvertiert werden, wie vorher erörtert wurde. Die innerhalb des vierten Viertels berechneten LSFs können quantisiert werden, und an das Decodiersystem 16 als die LSF Komponente 140, 172, 202, 240 gesendet werden. Die innerhalb des zweiten Viertels berechneten LSFs können verwendet werden, um den Interpolationspfad für den Vollratenencoder 36 zu bestimmen und zwar für als Typ Null klassifizierte Rahmen. Der Interpolationspfad ist auswählbar und kann mit dem Interpolationselement 158 identifiziert werden. Zusätzlich können die innerhalb dem zweiten Viertel und der Vorausschau berechneten LSFs in dem Codiersystem 12 verwendet werden, um den Kurzzeitrest und eine gewichtete Sprache zu generieren, die später beschrieben werden wird.
  • 3.2 LSF Glättungsmodul (LSF Smoothing Module)
  • Während stationärem Hintergrundrauschen können die innerhalb des vierten Viertels des Rahmens berechneten LSFs durch das LSF Glättungsmodul 322 vor der Quantisierung der LSFs geglättet werden. Die LSF werden geglättet, um die wahrnehmbaren Charakteristika des Hintergrundrauschens besser zu erhalten. Die Glättung wird gesteuert durch eine Sprachaktivitätsbestimmung, die von dem VAD Modul 326 geliefert wird, das später beschrieben wird und durch eine Analyse der Evolution der spektralen Darstellung des Rahmens. Ein LSF Glättungsfaktor wird mit βlsf bezeichnet. In einem beispielhaften Ausführungsbeispiel gilt:
    • 1. Am Beginn der „glatten" Hintergrundrauschsegmente wird der Glättungsfaktor quadratisch hochgefahren (ramped) und zwar von 0 bis 0,9 über 5 Rahmen.
    • 2. Während „glatten" Hintergrundrauschsegmenten kann der Glättungsfaktor 0,9 sein.
    • 3. Am Ende der „glatten" Hintergrundrauschsegmente kann der Glättungsfaktor unmittelbar auf 0 reduziert werden.
    • 4. Während nicht „glatter Hintergrundrauschsegmente kann der Glättungsfaktor 0 sein. Gemäß dem LSF Glättungsfaktor können die LSFs für die Quantisierung wie folgt berechnet werden:
      Figure 00640001
    wobei lsfn (k) und lsfn–1(k) die geglätteten LSFs des aktuellen bzw. vorhergehenden Rahmens repräsentieren und lsf2(k) repräsentiert die LSFs des LPC Analyse, die beim letzten Viertel des aktuellen Rahmens zentriert ist.
  • 3.3 LSF Quanitisierungsmodul
  • Das LPC Modell 10ter Ordnung, das durch die geglätteten LSFs (Gleichung 2) gegeben ist, kann in dem LSF Bereich (LSF domain) durch das LSF Quantisierungsmodul 334 quantisiert werden. Der Quantisierungswert ist eine Vielzahl von quantisierten LPC Koeffizienten Aq(z) 342. Das Quantisierungsschema verwendet einen Prädiktor mit gleitendem Mittelwert n-ter Ordnung. In einem Ausführungsbeispiel verwendet das Quantisierungsschema einen Prädiktor mit gleitendem Mittelwert zweiter Ordnung für den Vollraten-Codec 22 und den Viertelraten-Codec 26. Für den Halbraten-Codec 24 kann ein geschalteter Prädiktor mit gleitendem Mittelwert vierter Ordnung (4th order moving average switched predictor) verwendet werden. Für den Achtelraten-Codec 28 kann ein Prädiktor mit gleitendem Mittelwert vierter Ordnung verwendet werden. Die Quantisierung der LSF Prädiktionsfehler kann durch mehrstufige Codebücher durchgeführt werden, und zwar in den entsprechenden Codecs wie vorher erörtert wurde.
  • Das Fehlerkriterium für die LSFs Quantisierung ist ein gewichtetes mittleres quadratisches Fehlermaß. Die Gewichtung für den gewichteten mittleren quadratischen Fehler ist eine Funktion des LPC Größenspektrums (magnitude spectrum). Entsprechend kann das Ziel der Quantisierung angegeben werden durch:
    Figure 00650001
    wobei die Gewichtung wie folgt sein kann:
    Figure 00650002
    und |P(f)| das Leistungsspektrum bei der Frequenz f ist (der Index n bezeichnet die Rahmennummer). In dem beispielhaften Ausführungsbeispiel gibt es 10 Koeffizienten.
  • In einem Ausführungsbeispiel werden die Ordnungseigenschaften der quantisierten LPC Koeffizienten Aq(z) 342 überprüft. Falls ein LSF Paar umgedreht (flipped) ist, können sie umgeordnet werden. Wenn zwei oder mehr LSF Paare umgedreht sind, können die quantisierten LPC Koeffizienten Aq(z) 342 als gelöscht erklärt werden, und können rekonstruiert werden und zwar unter Verwendung der Rahmenlöschungsverschleierung des Decodiersystems 16, die später diskutiert wird. In einem Ausführungsbeispiel kann ein Minimalabstand von 50 Hz zwischen benachbarten Koeffizienten der quantisierten LPC Koeffizienten Aq(z) 342 erzwungen werden.
  • 3.4 Prädiktorschaltmodul (Predictor Switch Module)
  • Das Prädiktorschaltmodul 336 wird innerhalb des Halbraten-Codec 24 betrieben. Die vorhergesagte (predicted) LSFs können generiert werden, unter Verwendung von Prädiktorkoeffizienten mit gleitendem Mittelwert, wie vorher erörtert wurde. Die Prädiktorkoeffizienten bestimmen wieviel der LSFs vergangener Rahmen (passed frames) verwendet werden, um die LSFs des aktuellen Rahmens vorherzusagen. Das Prädiktorschaltmodul 336 ist mit dem LSFs Quantisierungsmodul 334 gekoppelt, um die Prädiktorkoeffizienten zu liefern, die den Quantisierungsfehler minimieren, wie vorher erörtert wurde.
  • 3.5 LSF Interpolationsmodul (Interpolation Module)
  • Die quantisierten und unquantisierten LSFs können auch für jeden Unterrahmen innerhalb des Vollraten-Codec 22 interpoliert werden. Die quantisierten und unquantisierten LSFs werden interpoliert um quantisierte und unquantisierte lineare Prädiktionsparameter für jeden Unterrahmen vorzusehen. Das LSF Interpolationsmodul 338 wählt einen Interpolationspfad für Rahmen des Vollraten-Codec 22 mit der Typ Null Klassifikation, wie vorher erörtert wurde. Für alle anderen Rahmen kann ein vorherbestimmter linearer Interpolationspfad verwendet werden.
  • Das LSF Interpolationsmodul 338 analysiert die LSFs des aktuellen Rahmens mit Bezug auf die LSF der vorhergehenden Rahmen und der LSFs, die im zweiten Viertel des Rahmens berechnet wurden. Ein Interpolationspfad kann gewählt werden, und zwar basierend auf dem Grad der Variationen, in der Spektraleinhüllenden zwischen den Unterrahmen. Die unterschiedlichen Interpolationspfade stellen die Gewichtung der LSFs des vorhergehenden Rahmens ein und stellen die Gewichtung der LSFs des aktuellen Rahmens für den aktuellen Unterrahmen ein, wie vorher erörtert wurde. Nach der Einstellung durch das LSF Interpolationsmodul 338 können die interpolierten LSFs in Prädiktorkoeffizienten für jeden Unterrahmen konvertiert werden.
  • Für Typ Eins Klassifikation innerhalb des Vollraten-Codec 22, wie auch für den Halbraten-Codec 24, den Viertelraten-Codec 26 und den Achtelraten-Codec 28 kann der vorherbestimmte lineare Interpolationspfad verwendet werden, um die Gewichtung einzustellen. Die interpolierten LSFs können in ähnlicher Weise in Prädiktorkoeffizienten nach der Interpolation konvertiert werden. Zusätzlich können die Prädiktorkoeffizienten ferner gewichtet werden, um die Koeffizienten zu kreieren, die von dem Wahrnehmungsgewichtungsfiltermodul 314 verwendet werden.
  • 3.6 Wahrnehmungsgewichtungsfiltermodul (Perceptual Weighting Filter Module
  • Das Wahrnehmungsgewichtungsfiltermodul 314 wird betrieben um das vorverarbeitete Sprachsignal 308 zu empfangen und zu filtern. Die Filterung durch das Wahrnehmungsgewichtungsfiltermodul 314 kann durchgeführt werden durch Betonen bzw. Anheben der Talgebiete (valley areas) und Dämpfen bzw. Zurücknehmen (de-emphasizing) der Spitzengebiete (peak areas) des vorverarbeiteten Sprachsignals 308. Ein Ausführungsbeispiel des Wahrnehmungsgewichtungsfiltermoduls 314 besitzt zwei Teile. Der erste Teil kann der herkömmliche Pol-Nullstellenfilter sein, angegeben durch:
    Figure 00670001
    wobei A(z/γ1) und 1/A(z/γ2) ein Nullstellenfilter bzw. ein Polfilter sind. Die Prädiktionskoeffizienten für den Null-Stellenfilter und den Polfilter können von den interpolierten LSFs für jeden Unterrahmen erhalten werden, und mit γ1 bzw. γ2 gewichtet werden. In einem beispielhaften Ausführungsbeispiel des Wahrnehmungsgewichtungsfiltermoduls 314 ist die Gewichtung γ1 = 0,9 und γ2 = 0,5. Der zweite Teil des Wahrnehmungsgewichtungsfiltermoduls 314 kann ein adaptiver Tiefpassfilter sein, gegeben durch:
    Figure 00670002
    wobei n eine Funktion der stationären langzeitspektralen Eigenschaften ist, die später erörtert wird. In einem Ausführungsbeispiel, falls die stationären langzeitspektralen Eigenschaften die typische Neigung (tilt) besitzen, die mit öffentlichen Telefonnetzwerken (public switched telephone network, PSTN) assoziiert ist, dann ist n = 0,2, andernfalls n = 0,0. Die typische Neigung wird im Allgemeinen als eine modifizierte IRS Charakteristik oder spektrale Neigung bezeichnet: nach der Verarbeitung durch das Wahrnehmungsgewichtungsfiltermodul 314 kann das vorverarbeitete Sprachsignal 308 als ein gewichtetes Sprachsignal 344 beschrieben werden. Die gewichtete Sprache 344 wird an das gesteuerte Tonhöhenschätzungsmodul 316 geliefert.
  • 3.7 Gesteuerte Tonhöhenschätzungsmodul (Open Loop Pitch Estimation Module
  • Das gesteuerte Tonhöhenschätzungsmodul 316 generiert den gesteuerten Tonhöhenabstand (open loop pitch lag) für einen Rahmen. In einem Ausführungsbeispiel umfasst der gesteuerte Tonhöhenabstand tatsächlich drei gesteuerte Tonhöhenabstände, nämlich einen ersten Tonhöhenabstand für die erste Hälfte des Rahmens, einen zweiten Tonhöhenabstand für die zweite Hälfte des Rahmens und einen dritten Tonhöhenabstand für den Vorausschauanteil (look ahead portion) des Rahmens.
  • Für jeden Rahmen werden die zweiten und dritten Tonhöhenabstände durch das gesteuerte Tonhöhenschätzungsmodul 316 geschätzt, und zwar basierend auf dem aktuellen Rahmen. Der erste gesteuerte Tonhöhenabstand ist der dritte gesteuerte Tonhöhenabstand (die Vorausschau) aus dem vorhergehenden Rahmen, der weiter eingestellt werden kann. Die drei gesteuerten Tonhöhenabstände werden geglättet um eine kontinuierliche Tonhöhenkontur (continuous pitch contour) vorzusehen. Die Glättung der gesteuerten Tonhöhenabstände verwendet einen Satz heuristischer und ad-hoc Entscheidungsregeln, um die optimale Tonhöhenkontur des Rahmens zu erhalten. Die gesteuerte Tonhöhenschätzung basiert auf der gewichteten Sprache 344, die mit sw(n) bezeichnet ist. Die durch das gesteuerte Tonhöhenschätzungsmodul 316 in einem Ausführungsbeispiel geschätzten Werte sind Abstände (lags), die von 17 bis 148 reichen.
  • Die ersten, zweiten und dritten gesteuerten Tonhöhenabstände können unter Verwendung einer normalisierten Korrelation, R(k) bestimmt werden, die wie folgt berechnet werden kann:
    Figure 00690001
    wobei in dem beispielhaften Ausführungsbeispiel n = 79 ist, um die Anzahl der Abstastungen in dem Unterrahmen zu repräsentieren. Die maximale normalisierte Korrelation R(k) wird für jeden einer Vielzahl von Regionen bzw. Gebieten bestimmt. Die Gebiete können vier Gebiete sein, die vier Unterbereiche innerhalb dem Bereich der möglichen Abstände repräsentieren. Beispielsweise kann ein erstes Gebiet von 17–33 Abständen reichen, ein zweites Gebiet von 34–67 Abständen reichen, ein drittes Gebiet von 68–137 Abständen reichen und ein viertes Gebiet von 138–148 Abständen reichen. Ein gesteuerter Tonhöhenabstand entsprechend dem Abstand, der die normalisierten Korrelationswerte R(k) aus jedem Gebiet maximiert, sind die initialen Tonhöhenabstandskandidaten. Ein bester Kandidat von den initialen Tonhöhenabstandskandidaten wird ausgewählt und zwar basierend auf der normalisierten Korrelation, Charakterisierungsinformation und der Geschichte des gesteuerten Tonhöhenabstands. Diese Prozedur kann für den zweiten Tonhöhenabstand und für den dritten Tonhöhenabstand durchgeführt werden.
  • Schließlich können die ersten, zweiten und dritten gesteuerten Tonhöhenabstände eingestellt werden, und zwar für eine optimale Anpassung (fitting) an die gesamte Tonhöhenkontur (overall pitch contour) und zum Bilden des gesteuerten Tonhöhenabstands für den Rahmen. Der gesteuerte Tonhöhenabstand wird an das Tonhöhenvorverarbeitungsmodul 322 zur weiteren Verarbeitung geliefert, die später beschrieben wird. Das gesteuerte Tonhöhenschätzmodul 316 liefert auch den Tonhöhenabstand und normalisierte Korrelationswerte beim Tonhöhenabstand. Die normalisierten Korrelationswerte beim Tonhöhenabstand werden eine Tonhöhenkorrelation genannt und wer den mit Rp bezeichnet. Die Tonhöhenkorrelation Rp wird verwendet beim Charakterisieren des Rahmens innerhalb des Charakterisierungsabschnitts 318.
  • 3.8 Charakterisierungsabschnitt (Characterization Section)
  • Der Charaktersierungsabschnitt 318 ist betreibbar zum Analysieren und Charakterisieren jedes Rahmens des vorverarbeiteten Sprachsignals 308. Die Charakterisierungsinformation wird von einer Vielzahl von Modulen verwendet, und zwar innerhalb des initialen Rahmenverarbeitungsmoduls 44, wie auch durch das Anregungsverarbeitungsmodul 54. Speziell wird die Charakterisierungsinformation in dem Ratenauswahlmodul 320 und dem Typklassifikationsmodul 324 verwendet. Zusätzlich kann die Charakterisierungsinformation während der Quantisierung und Codierung verwendet werden, insbesondere beim Betonen der wahrnehmungswichtigen Merkmale der Sprache unter Verwendung eines klassenabhängigen Gewichtungsansatzes, der später beschrieben wird.
  • Charakterisierung des vorverarbeiteten Sprachsignals 308 durch den Charakterisierungsabschnitt 318 findet für jeden Rahmen statt. Der Betrieb eines Ausführungsbeispiels des Charakterisierungsabschnitts 318 kann im Allgemeinen beschrieben werden als Sechs-Analysekategorien des vorverarbeiteten Sprachsignals 308. Die sechs Kategorien sind: Spachaktivitätsbestimmung, Identifizierung stimmloser rauschähnlicher Sprache, eine 6-Klassensignalcharakterisierung, Ableitung eines Rausch-zu-Singnalverhältnisses, eine 4-gradige bzw. 4-stufige (4-grade) Charakterisierung und eine Charakterisierung einer stationären Langzeitspektralcharakteristik.
  • 3.9 Sprachaktivitätdetektions (Voice Acitivity Detection, VAD) Modul
  • Das Sprachaktivitätsdetektions (VAD) Modul 326 führt Sprachaktivitätsbestimmung als den ersten Schritt der Charakterisierung durch. Das VAD Modul 326 wird betrieben zum Bestimmen ob das vorverarbeitete Sprachsignal 308 eine Form von Sprache ist, oder ob es bloß Ruhe bzw. Stille oder Hintergrundrauschen ist. Ein Ausführungsbeispiel des VAD Moduls 326 detektiert Sprachaktivität durch Nachführen des Verhaltens des Hintergrundrauschens. Das VAD Modul 326 überwacht den Unterschied zwischen Parametern des aktuellen Rahmens und Parametern, die das Hintergrundrauschen repräsentieren. Unter Verwendung eines Satzes von vorherbestimmten Schwellwerten kann der Rahmen als ein Sprachrahmen oder als ein Hintergrundrauschrahmen klassifiziert werden.
  • Das VAD Modul 326 wird betrieben zum Bestimmen der Sprachaktivität und zwar basierend auf Überwachung einer Vielzahl von Parametern, wie beispielsweise dem Maximum des absoluten Wertes der Abtastungen in dem Rahmen, wie auch den Reflektionskoeffizienten, dem Prädiktionsfehler, den LSFs und den Autokorrelationskoeffizienten zehnter Ordnung, die durch das LPC Analysemodul 330 geliefert werden. Zusätzlich verwendet ein beispielhaftes Ausführungsbeispiel des VAD Moduls 326 die Parameter des Tonhöhenabstands und die adaptive Codebuchverstärkung von letzten (recent) Rahmen. Die Tonhöhenabstände und die adaptiven Codebuchgewinne, die vom VAD Modul 326 verwendet werden, sind aus den vorhergehenden Rahmen, da Tonhöhenabstände und adaptive Codebuchgewinne des aktuellen Rahmens jetzt noch nicht verfügbar sind. Die durch das VAD Modul 326 durchgeführte Sprachaktivitätsbestimmung kann verwendet werden, um mehrere Aspekte des Codiersystems 12 zu steuern, wie auch einen Teil einer endgültigen Klassencharakterisierungsentscheidung durch das Charakterisierungsmodul 328 zu bilden.
  • 3.10 Charakterisierungsmodul
  • Nach der Sprachaktivitätsbestimmung durch das VAD-Modul 326 wird das Charakterisierungsmodul 328 aktiviert. Das Charakterisierungsmodul 328 führt die zweite, dritte, vierte und fünfte Kategorie der Analyse des vorverarbeiteten Sprachsignals 308 durch, wie vorher erörtert wurde. Die zweite Kategorie ist die Detektion stimmloser rauschähnlicher Sprachrahmen.
  • 3.10.1 Detektion stimmloser rauschähnlicher Sprache (Unvoiced Noise-Like Speech Detection)
  • Im Allgemeinen umfassen stimmlose rauschähnliche Sprachrahmen nicht eine harmonische Struktur, wohingegen stimmhafte Rahmen dies tun. Die Detektion eines stimmlosen rauschähnlichen Sprachrahmens basiert, in einem Ausführungsbeispiel, auf dem vorverarbeiteten Sprachsignal 308 und ein gewichtetes Restsignal Rw(z) ist gegeben durch:
    Figure 00720001
    wobei A(z/γ1) ein gewichtetes Nullstellen-Filter mit der Gewichtung γ1 repräsentiert und S(z) ist das vorverarbeitete Sprachsignal 308. Eine Vielzahl von Parametern, wie beispielsweise die folgenden sechs Parameter, können verwendet werden um zu bestimmen, ob der aktuelle Rahmen stimmlose rauschähnliche Sprache ist:
    • 1. Die Energie des vorverarbeiteten Sprachsignals 308 über die ersten ¾ des Rahmens.
    • 2. Eine Zählung der Sprachabtastungen innerhalb des Rahmens, die unter einer vorherbestimmten Schwelle sind.
    • 3. Eine Restschärfe (residual sharpness), die bestimmt wird unter Verwendung eines gewichteten Restsignals und der Rahmengröße. Die Schärfe ist durch das Verhältnis des Durchschnitts der Absolutwerte der Abtastungen zu dem Maximum der Absolutwerte der Abtastungen gegeben. Das gewichtete Restsignal kann aus Gleichung 8 bestimmt werden.
    • 4. Ein erster Reflektionskoeffizient, der die Neigung des Größenspektrums (magnitude spectrum) des vorverarbeiteten Sprachsignals 308 repräsentiert.
    • 5. Die Nulldurchgangsrate des vorverarbeiteten Sprachsignals 308.
    • 6. Eine Prädiktionsmessung zwischen dem vorverarbeiteten Sprachsignal 308 und dem gewichteten Restsignal.
  • In einem Ausführungsbeispiel wird ein Satz vorherbestimmter Schwellwerte mit den oben aufgeführten Parametern verglichen, um die Determination bzw. Bestimmung zu machen, ob ein Rahmen stimmlose rauschähnliche Sprache ist. Die resultierende Determination kann verwendet werden beim Steuern des Tonhöhenvorverarbeitungsmoduls 322 und bei der fixierten Codebuchsuche, die beide später beschrieben werden. Zusätzlich wird die Determination stimmloser rauschähnlicher Sprache beim Bestimmen der 6-klassigen Signalcharakterisierung des vorverarbeiteten Sprachsignals 308 verwendet.
  • 3.10.2 6-Klassige Signalcharakterisierung (6-Class Signal Characterization)
  • Das Charakterisierungsmodul 328 kann auch die dritte Kategorie der Analyse durchführen, die die 6-klassige Signalcharakterisierung ist. Die 6-klassige Signalcharakterisierung wird durchgeführt durch Charakterisieren des Rahmens in eine von 6 Klassen, gemäß den dominierenden Merkmalen des Rahmens. In einem Ausführungsbeispiel können die 6 Klassen wie folgt beschrieben werden:
    0. Ruhe/Hintergrundrauschen
    1. Stationäre rauschähnliche stimmlose Sprache
    2. Nicht-stationär stimmlos
    3. Anlaut bzw. Einschwingen (onset)
    4. Nicht-stationär stimmhaft
    5. Stationär stimmhaft
  • In einem alternativen Ausführungsbeispiel werden auch andere Klassen einbezogen, wie beispielsweise als plosive charakterisierte Rahmen. Anfänglich unterscheidet das Charakterisierungsmodul 328 zwischen Ruhe/Hintergrundrauschrahmen (Klasse 0), nicht-stationären stimmlosen Rahmen (Klasse 2), Anlautrahmen (Klasse 3) und stimmhaften Rahmen, die durch Klasse 4 und 5 repräsentiert sind. Charakterisierung stimmhafter Rahmen als nicht-stationär (Klasse 4) und als stationär (Klasse 5) können während der Aktivierung des Tonhöhenvorverarbeitungsmoduls 322 durchgeführt werden. Des weiteren kann bzw. könnte das Charakterisierungsmodul 328 anfänglich nicht zwischen stationären rauschähnlichen stimmlosen Rahmen (Klasse 1) und nicht-stationären stimmlosen Rahmen (Klasse 2) unterscheiden. Diese Charakterisierungsklasse kann also auch während der Verarbeitung durch das Tonhöhenvorverarbeitungsmodul 322 identifiziert werden, und zwar unter Verwendung der Bestimmung durch den vorher erörterten stimmlosen rauschähnlichen Sprachalgorithmus.
  • Das Charakterisierungsmodul 328 führt die Charakterisierung durch, unter Verwendung von, beispielsweise dem vorverarbeiteten Sprachsignal 308 und der Sprachaktivitätsdetektion durch das VAD Modul 326. Zusätzlich kann das Charakterisierungsmodul 328 den gesteuerten Tonhöhenabstand für den Rahmen und die normalisierte Korrelation Rp entsprechend dem zweiten gesteuerten Tonhöhenabstand verwenden.
  • Eine Vielzahl spektraler Neigungen und eine Vielzahl absoluter Maxima können durch das Charakterisierungsmodul 328 von dem vorverarbeiteten Sprachsignal 308 abgeleitet werden. In einem beispielhaften Ausführungsbeispiel werden die spektralen Neigungen für 4 überlappte Segmente, die jeweils 80 Abtastungen aufweisen, berechnet. Die 4 überlappten Segmente können durch ein Hamming-Fenster mit 80 Abtastungen gewichtet werden. Die absoluten Maxima eines beispielhaften Ausführungsbeispiels werden aus 8 überlappten Segmenten des vorverarbeiteten Sprachsignal 308 abgeleitet. Im Allgemeinen ist die Länge jedes der 8 überlappten Segmente ungefähr 1,5 mal die Periode des gesteuerten Tonhöhenabstands. Die absoluten Maxima können verwendet werden, um eine geglättete Kontur der Amplitudeneinhüllenden zu kreieren.
  • Die spektrale Neigung, das absolute Maximum und die Tonhöhenkorrelation Rp Parameter können aktualisiert oder interpoliert werden, und zwar mehr mals pro Rahmen. Durchschnittswerte für diese Parameter können auch mehrmals für Rahmen berechnet werden, die durch das VAD Modul 326 als Hintergrundrauschen charakterisiert wurden. In einem beispielhaften Ausführungsbeispiel werden 8 aktualisierte Schätzungen jedes Parameters unter Verwendung von 8 Segmenten mit jeweils 20 Abtastungen erhalten. Die Schätzungen der Parameter für das Hintergrundrauschen können von den Schätzungen der Parameter für nachfolgende, nicht als Hintergrundrauschen charakterisierte Rahmen abgezogen werden, um einen Satz von „rauschgereinigten" (noise cleaned) Parametern zu kreieren.
  • Ein Satz von auf Statistik bezogenen Entscheidungsparametern kann aus den „rauschgereinigten" (noise clean) Parametern und dem gesteuerten Tonhöhenabstand berechnet werden. Jeder der auf Statistik bezogenen Entscheidungsparameter repräsentiert eine statistische Eigenschaft der Originalparameter, wie beispielsweise Mittelwertbildung, Abweichung, Evolution, Maximum oder Minima. Unter Verwendung eines Satzes der vorherbestimmten Schwellenparameter können initiale Charakterisierungsentscheidungen für den aktuellen Rahmen getroffen werden, und zwar basierend auf den statistischen Entscheidungsparametern. Basierend auf der initialen Charakterisierungsentscheidung, vergangenen Charakterisierungsentscheidungen und der Sprachaktivitätsentscheidung des VAD Moduls 326 kann eine initiale Klassenentscheidung für den Rahmen gemacht werden. Die initiale Klassenentscheidung charakterisiert den Rahmen als einen der Klassen 0, 2, 3 oder als einen durch Klassen 4 und 5 repräsentierten stimmhaften Rahmen.
  • 3.10.3 Rausch-zu-Signal Verhältnisableitung (Noise-to-Signal Ratio Derivation)
  • Zusätzlich zu der Rahmencharakterisierung führt das Charakterisierungsmodul 328 eines Ausführungsbeispiels auch die vierte Kategorie der Analyse durch, und zwar durch Ableiten eines Rausch-zu-Signal Verhältnisses (noise-to-signal ratio, NSR). Das NSR ist ein herkömmliches Störungs- bzw. Verzerrungskriterium, das berechnet werden kann als das Verhältnis zwischen einer Schätzung der Hintergrundrauschenergie und der Energie eines Rahmens. Ein Ausführungsbeispiel der NSR Berechnung stellt sicher, dass nur wirkliches Hintergrundrauschen in das Verhältnis einbezogen wird, und zwar unter Verwendung einer modifizierten Sprachaktivitätsentscheidung. Die modifizierte Sprachaktivitätsentscheidung wird abgeleitet unter Verwendung der initialen Sprachaktivitätsentscheidung durch das VAD Modul 326, die Energie des Rahmens des vorverarbeiteten Sprachsignals 308 und den für den Vorausschauanteil berechneten LSFs. Falls die modifizierte Sprachaktivitätsentscheidung anzeigt, dass der Rahmen Hintergrundrauschen ist, wird die Energie des Hintergrundrauschens aktualisiert.
  • Das Hintergrundrauschen wird aus der Rahmenenergie aktualisiert, unter Verwendung von, beispielsweise gleitendem Mittelwert. Falls der Energiepegel des Hintergrundrauschens größer ist als der Energiepegel der Rahmenenergie wird es durch die Rahmenenergie ersetzt. Die Ersetzung durch die Rahmenenergie kann zur Folge haben, dass der Energiepegel des Hintergrundrauschens nach unten verlagert wird, und das Ergebnis abgeschnitten wird. Das Ergebnis repräsentiert die Schätzung der Hintergrundrauschenergie, die bei der Berechnung des NSR verwendet werden kann.
  • Nach der Berechnung des NSR führt das Charakterisierungsmodul 328 eine Korrektur der initialen Klassenentscheidung zu einer modifizierten Klassenentscheidung durch. Die Korrektur kann durchgeführt werden unter Verwendung der initialen Klassenentscheidung, der Sprachaktivitätsbestimmung und der stimmlosen rauschähnlichen Sprachbestimmung. Zusätzlich repräsentieren die vorher berechneten Parameter beispielsweise das durch die Reflektionskoeffizienten ausgedrückte Spektrum, die Tonhöhenkorrelation Rp, das NSR, die Energie des Rahmens, die Energie der vorhergehenden Rahmen, die Restschärfe bzw. verbleibende Schärfe (residual sharpness) und eine Schärfe der gewichteten Sprache kann auch verwendet werden. Die Korrektur der initialen Klassenentscheidung wird Charakterisierungsabstimmung (tuning) genannt. Charakterisierungsabstimmung kann die initiale Klassenentscheidung ändern, wie auch einen Einsatzbedingungsmarker (onset condition flag) und einen stimmhaften Rauschmarker (noisy voiced flag) setzen, wenn diese Bedingungen identifiziert werden. Zusätzlich kann das Abstimmen auch eine Änderung in der Sprachaktivitätsentscheidung durch das VAD Modul 326 auslösen.
  • 3.10.4 4-gradige Charakterisierung
  • Das Charakterisierungsmodul 328 kann auch die fünfte Kategorie der Charakterisierung, und zwar die 4-gradige Charakterisierung generieren. Die 4-gradige Charakterisierung ist ein Parameter, der das Tonhöhenvorverarbeitungsmodul 322 steuert. Ein Ausführungsbeispiel der 4-gradigen Charakterisierung unterscheidet zwischen 4 Kategorien. Die Kategorien können nummerisch von 1 bis 4 bezeichnet werden. Die Kategorie mit der Bezeichnung 1 wird verwendet, um das Tonhöhenvorverarbeitungsmodul 322 zurückzusetzen und zwar um eine akkumulierte Verzögerung zu vermeiden, die ein Verzögerungsbudget während der Tonhöhenvorverarbeitung überschreitet. Im Allgemeinen zeigen die verbleibenden Kategorien zunehmende stimmhafte Stärke an. Zunehmende stimmhafte Stärke ist ein Maß der Periodizität der Sprache. In einem alternativen Ausführungsbeispiel könnten mehr oder weniger Kategorien berücksichtigt werden, um die Pegel der stimmhaften Stärke (voicing strength) anzuzeigen.
  • 3.10.5 Stationäre Langzeitspektraleigenschaften (Stationary Long-Term Spectral Characteristics)
  • Das Charakterisierungsmodul 328 kann auch die sechste Kategorie der Analyse durchführen, und zwar durch Bestimmen der stationären Langzeitspektraleigenschaften des vorverarbeiteten Sprachsignals 308. Die stationäre Langzeitspektraleigenschaft wird über eine Vielzahl von Rahmen bestimmt, beispielsweise unter Verwendung von spektraler Information, wie die LSFs, die 6-klassige Signalcharakterisierung und die gesteuerte Tonhöhenverstärkung. Die Bestimmung basiert auf Langzeitdurchschnitten dieser Parameter.
  • 3.11 Ratenauswahlmodul (Rate Selection Module)
  • Nach der modifizierten Klassenentscheidung durch das Charakterisierungsmodul 328 kann das Ratenselektionsmodul 320 eine initiale Ratenselektion durchführen, die eine gesteuerte Ratenselektion genannt wird. Das Ratenselektionsmodul 320 kann beispielsweise die modifizierte Klassenentscheidung, das NSR, den Einsatzmarker, die Restenergie, die Schärfe, die Tonhöhenkorrelation Rp und spektrale Parameter, wie die Reflektionskoeffizienten beim Bestimmen der gesteuerten Ratenauswahl verwenden. Die gesteuerte Ratenauswahl kann auch gewählt werden, basierend auf dem Modus innerhalb dessen das Sprachkomprimierungssystem 10 betrieben wird. Das Ratenselektionsmodul bzw. Ratenauswahlmodul 320 wird abgeglichen, und zwar zum Liefern der gewünschten Durchschnittsbitrate, wie von jedem der Modi angezeigt wird. Die initiale Ratenauswahl kann modifiziert werden, und zwar nach der Verarbeitung durch das Tonhöhenvorverarbeitungsmodul 322, das später beschrieben wird.
  • 3.12 Tonhöhenvorverarbeitunpsmodul (Pitch Pre-Processing Module)
  • Das Tonhöhenvorverarbeitungsmodul 322 wird auf einer Rahmenbasis betrieben, um Analyse und Modifikation der gewichteten Sprache 344 durchzuführen. Das Tonhöhenvorverarbeitungsmodul 322 kann beispielsweise Kompression oder Dilatationstechniken bzw. Erweiterungstechniken auf Tonhöhenzyklen der gewichteten Sprache 344 verwenden um den Codierprozess zu verbessern. Der gesteuerte Tonhöhenabstand wird durch das Tonhöhenvorverarbeitungsmodul 322 quantisiert, um die gesteuerte adaptive Codebuchkomponente 144a oder 176a zu generieren, wie vorher mit Bezug auf 2, 4 und 5 erörtert wurde. Falls die endgültige Typklassifikation des Rahmens von Typ Eins ist, repräsentiert diese Quantisierung den Tonhöhenabstand für den Rahmen. Falls jedoch die Typklassifikation nach der Verarbeitung durch das Tonhöhenvorverarbeitungsmodul 322 geändert wird, wird die Tonhöhenabstandsquantisierung auch geändert, um die gesteuerte adaptive Code buchkomponente 144 oder 176 zu repräsentieren, wie vorher mit Bezug auf 2, 4 und 5 erörtert wurde.
  • Der gesteuerte Tonhöhenabstand für den Rahmen, der durch das gesteuerte Tonhöhenschätzmodul 316 generiert wurde, wird quantisiert und interpoliert um eine Tonhöhenspur 348 zu kreieren. Im Allgemeinen versucht das Tonhöhenvorverarbeitungsmodul 322 die gewichtete Sprache 344 zu modifizieren, und zwar zum Anpassen an die Tonhöhenspur 348. Falls die Modifikation erfolgreich ist, ist die endgültige Typklassifikation des Rahmens vom Typ Eins. Falls die Modifikation nicht erfolgreich ist, ist die endgültige Typklassifikation des Rahmens vom Typ Null.
  • Wie später weiter ausgeführt wird, kann die Tonhöhenvorverarbeitungsmodifikationsprozedur kontinuierliche Zeitverformungen (time warping) der gewichteten Sprache 344 durchführen. Die Verformung führt eine variable Verzögerung ein. In einem beispielhaften Ausführungsbeispiel ist die maximale variable Verzögerung innerhalb des Codiersystems 12 20 Abtastungen (2,5 ms). Die gewichtete Sprache 344 kann auf einer tonhöhenzyklusweisen Basis modifiziert werden, und zwar mit einer bestimmten Überlappung zwischen benachbarten Tonhöhenzyklen, um Diskontinuitäten zwischen den rekonstruierten/modifizierten Segmenten zu vermeiden. Die gewichtete Sprache 344 kann gemäß der Tonhöhenspur 348 modifiziert werden, und zwar um eine modifizierte gewichtete Sprache 350 zu generieren. Zusätzlich werden eine Vielzahl unquantisierter Tonhöhenverstärkungen 352 durch das Tonhöhenvorverarbeitungsmodul 322 generiert. Falls die Typklassifikation des Rahmens der Typ Eins ist, werden die unquantisierten Tonhöhenverstärkungen 352 verwendet, um die Typ Eins adaptive Codebuchverstärkungskomponente 148 (für Vollraten-Codec 22) oder 180 (für Halbraten-Codec 24) zu generieren. Die Tonhöhenspur 348, die modifizierte gewichtete Sprache 350 und die unquantisierten Tonhöhenverstärkungen 352 werden an das Anregungsverarbeitungsmodul 54 geliefert.
  • Wie vorher erörtert, steuert die 4-gradige Charakterisierung durch das Charakterisierungsmodul 328 die Tonhöhenvorverarbeitung. In einem Ausführungsbeispiel, falls der Rahmen überwiegend Hintergrundrauschen oder stimmlos mit niedriger Tonhöhenkorrelation, wie beispielsweise Kategorie 1 ist, bleibt der Rahmen unverändert und die akkumulierte Verzögerung der Tonhöhenvorverarbeitung wird auf Null zurückgesetzt. Falls der Rahmen überwiegend impulsähnlich stimmlos, wie beispielsweise Kategorie 2 ist, kann die akkumulierte Verzögerung erhalten bleiben, und zwar ohne jede Verformung (warping) des Signals, außer einer einfachen Zeitverschiebung. Die Zeitverschiebung kann gemäß der akkumulierten Verzögerung des Eingangssprachsignals 18 bestimmt werden. Für Rahmen mit den verbleibenden 4-gradigen Charakterisierungen, kann der Kern des Tonhöhenvorverarbeitungsalgorithmuses ausgeführt werden, um das Signal optimal zu verwinden bzw. verformen (warp).
  • Im Allgemeinen führt der Kern des Tonhöhenvorverarbeitungsmoduls 322 in einem Ausführungsbeispiel drei Hauptaufgaben durch. Erstens wird die gewichtete Sprache 344 modifiziert und zwar in einem Versuch mit der Tonhöhenspur 348 übereinzustimmen. Zweitens werden eine Tonhöhenverstärkung und eine Tonhöhenkorrelation für das Signal geschätzt. Schließlich wird die Charakterisierung des Sprachsignals 18 und die Ratenauswahl verfeinert, und zwar basierend auf der zusätzlichen Signalinformation, die während der Tonhöhenvorverarbeitungsanalyse erlangt wurde. In einem anderen Ausführungsbeispiel kann zusätzliche Tonhöhenvorverarbeitung enthalten sein, wie beispielsweise Wellenforminterpolation. Im Allgemeinen kann Wellenforminterpolation verwendet werden, um bestimmte irreguläre Übergangssegmente zu modifizieren, und zwar unter Verwendung von Vorwärts-Rückwärts-Wellenforminterpolationstechniken zum Herausheben der Regelmässigkeiten und zum Unterdrücken der Unregelmäßigkeiten der gewichteten Sprache 344.
  • 3.12.1 Modifikation
  • Modifikation der gewichteten Sprache 344 liefert eine genauere Anpassung der gewichteten Sprache 344 in ein Tonhöhencodierungsmodell, das dem Relaxed Code Excited Linear Prediction (RCEPL) Sprachcodierungsansatz ähnlich ist. Ein Beispiel einer Implementierung der RCEPL Sprachcodierung wird im TIA (Telecommunications Industry Association) IS-127 Standard geliefert. Die Leistungsfähigkeit der Modifikation ohne irgendeinen Verlust der wahrnehmbaren Qualität, kann eine genaue Tonhöhensuche, Schätzung einer Segmentgröße, Zielsignalverformung und Signalverformung umfassen. Die genaue Tonhöhensuche kann auf einer Rahmenebenenbasis durchgeführt werden, während die Schätzung einer Segmentgröße, die Zielsignalverformung und die Signalverformung für jeden Tonhöhenzyklus ausgeführt werden können.
  • 3.12.1.1 Genaue Tonhöhensuche (Fine Pitch Search)
  • Die genaue Tonhöhensuche kann auf der gewichteten Sprache 344 durchgeführt werden, und zwar basierend auf den vorher bestimmten zweiten und dritten Tonhöhenabstände, der Ratenauswahl und der akkumulierten Tonhöhenvorverarbeitungsverzögerung. Die genaue Tonhöhe sucht nach Bruchteilstonhöhenabständen (fractional pitch lags). Die Bruchteilstonhöhenabstände sind nicht ganzzahlige Tonhöhenabstände, die mit der Quantisierung der Abstände kombiniert werden. Die Kombination wird abgeleitet durch Durchsuchen der Quantisierungstabellen der Abstände, die verwendet werden zum Quantisieren der gesteuerten Tonhöhenabstände, und durch Finden der Abstände, die die Tonhöhenkorrelation der gewichteten Sprache 344 maximieren. In einem Ausführungsbeispiel wird die Suche für jeden Codec unterschiedlich durchgeführt, und zwar aufgrund der unterschiedlichen Quantisierungstechniken, die mit den unterschiedlichen Ratenauswahlen assoziiert sind. Die Suche wird in einem Suchgebiet durchgeführt, das durch den gesteuerten Tonhöhenabstand identifiziert wird, und das durch die akkumulierte Verzögerung gesteuert wird.
  • 3.12.1.2 Geschätzte Segmentgröße
  • Die Segmentgröße folgt der Tonhöhenperiode und zwar mit einigen kleineren Anpassungen. Im Allgemeinen wird der Tonhöhenkomplex (der Hauptimpulse) des Tonhöhenzykluses zum Ende eines Segments hin lokalisiert, um die maximale Genauigkeit der Verformung des wichtigsten wahrnehmbaren Teils, des Tonhöhenkomplexes, zu erlauben. Für ein gegebenes Segment ist der Startpunkt fixiert, und der Endpunkt kann verschoben werden, um die beste Modellanpassung zu erhalten. Die Verschiebung des Endpunkts dehnt oder komprimiert gewissermaßen die Zeitskala. Infolgedessen werden die Abtastungen am Beginn des Segments kaum verschoben, und die größte Verschiebung wird zum Ende des Segments hin stattfinden.
  • 3.12.1.3 Zielsignal zur Verformung (Target Signal for Warping)
  • Ein Ausführungsbeispiel des Zielsignals für zeitliche Verformung ist eine Synthese des abgeleiteten aktuellen Segments, und zwar abgeleitet aus der modifizierten gewichteten Sprache 350, die durch s'w(n) repräsentiert ist, und der Tonhöhenspur 348, die durch Lp(n) repräsentiert ist. Gemäß der Tonhöhenspur 348, Lp(n), kann jeder Abtastwert des Zielsignals sw(n), n = 0, .... Ns-1 kann durch Interpolation der modifizierten gewichteten Sprache 350 erhalten werden, und zwar unter Verwendung eines Hamming-gewichteten-Sinc-Fensters 21ter Ordnung,
    Figure 00820001
    wobei i(Lp(n)) und f(Lp(n)) die ganzzahligen bzw. Bruchteile des Tonhöhenabstands sind; ws(f,i) das Hamming-gewichtete-Sinc-Fenster (Hamming weighted Sinc window) ist und ns die Länge des Segments ist. Ein gewichtetes Ziel (weighted target) swt w(n) ist gegeben durch swt w(n) = wc(n)·st w(n). Die Gewichtungsfunktion, wc(n) kann eine zweistückige lineare Funktion sein, die den Tonhöhenkomplex anhebt bzw. betont und das „Rauschen" zwischen Tonhöhenkomplexen dämpft bzw. reduziert (de-emphasizes). Die Gewichtung kann gemäß der 4-gradigen Klassifikation angepasst werden und zwar durch Erhöhen der Betonung auf dem Tonhöhenkomplex für Segmente höherer Periodizität.
  • Die ganzzahlige Verschiebung, die die normalisierte Kreuzkorrelation zwischen dem gewichteten Ziel swt w(n) und der gewichteten Sprache 344 ist sw(n + τacc), wobei sw(n + τacc) die gewichtete Sprache 344 ist, die verschoben (shifted) werden kann und zwar gemäß einer akkumulierten Verzögerung τacc, die gefunden werden kann durch Maximieren von
  • Figure 00830001
  • Eine verfeinerte (Bruchteils-) Verschiebung kann bestimmt werden, und zwar durch Suchen einer hochgetasteten (upsampled) Version von R(τshift) in der Nähe von τshift. Das kann zu einer endgültigen optimalen Verschiebung τopt und der entsprechenden normalisierten Kreuzkorrelation Rnopt) führen.
  • 3.12.1.4 Signalverformung (Signal Warping)
  • Die modifizierte gewichtete Sprache 350 für das Segment kann rekonstruiert werden, und zwar gemäß der Abbildung, die gegeben ist durch
    Figure 00830002
    Figure 00840001
    wobei τc ein Parameter ist, der die Verformungsfunktion definiert. Im Allgemeinen spezifiziert τc den Anfang des Tonhöhenkomplexes. Die durch Gleichung 11 angegebene Abbildung spezifiziert eine Zeitverformung und die durch Gleichung 12 angegebene Abbildung spezifiziert eine zeitliche Verschiebung (keine Verformung). Beide können unter Verwendung einer Hamming-gewichteten-Sinc-Fensterfunktion durchgeführt werden.
  • 3.12.2 Tonhöhenverstärkungs- und Tonhöhenkorrelationsschätzung (Pitch Gain and Pitch Correlation Estimation)
  • Die Tonhöhenverstärkung und Tonhöhenkorrelation kann auf einer Zyklusbasis geschätzt werden und werden durch Gleichungen 11 bzw. 12 definiert. Die Tonhöhenverstärkung wird geschätzt um den mittleren quadratischen Fehler zu minimieren und zwar zwischen dem durch Gleichung 9 definierten Ziel st w(n) und dem durch Gleichungen 11 und 12 definierten endgültigen modifizierten Signal s'w(n) und kann angegeben werden durch
  • Figure 00840002
  • Die Tonhöhenverstärkung wird durch das Anregungsverarbeitungsmodul 54 geliefert, und zwar in der Form der unquantisierten Tonhöhenverstärkungen 352. Die Tonhöhenkorrelation kann angegeben werden durch
  • Figure 00850001
  • Beide Parameter sind auf einer Tonhöhen (Pitch)-Zyklusbasis verfügbar, und können linear interpoliert werden.
  • 3.12.3 Verfeinerte Klassifikation und verfeinerte Ratenauswahl (Refined Classification and Refined Rate Selection)
  • Nach der Tonhöhenvorverarbeitung durch das Tonhöhenvorverarbeitungsmodul 322 werden die durchschnittliche Tonhöhenkorrelation und die Tonhöhenverstärkungen an das Charakterisierungsmodul 328 und das Ratenauswahlmodul 320 geliefert. Das Charakterisierungsmodul 328 und das Ratenauswahlmodul 320 kreieren eine endgültige Charakterisierungsklasse bzw. eine endgültige Ratenauswahl und zwar unter Verwendung der Tonhöhenkorrelation und der Tonhöhenverstärkungen. Die endgültige Charakterisierungsklasse und die endgültige Ratenauswahl können bestimmt werden durch Verfeinern der 6-klassigen Signalcharakterisierung und der gesteuerten Ratenauswahl des Rahmens.
  • Speziell bestimmt das Charakterisierungsmodul 328 ob ein Rahmen mit einer Charakterisierung als ein stimmhafter Rahmen als ein Klasse 4 „nicht-stationär stimmhaft" oder Klasse 5 „stationär stimmhaft" charakterisiert werden sollte. Zusätzlich kann eine endgültige Bestimmung stattfinden, dass ein spezieller Rahmen stationär rauschähnlich stimmlose Sprache ist, und zwar basierend auf der vorhergehenden Bestimmung, dass der spezielle Rahmen modifizierte stimmlose rauschähnliche Sprache ist. Rahmen, die als rauschähnliche stimmlose Sprache bestätigt wurden, können als Klasse 1 „stationäre rauschähnliche stimmlose Sprache" charakterisiert werden.
  • Basierend auf der endgültigen Charakterisierungsklasse, der gesteuerten Ratenauswahl durch das Ratenauswahlmodul 320 und dem Halbratensignalisiermarker auf der Halbratensignalisierleitung 30 (1) kann eine endgültige Ratenauswahl bestimmt werden. Die endgültige Ratenauswahl wird an das Anregungsverarbeitungsmodul 54 als ein Ratenauswahlindikator 354 geliefert. Zusätzlich wird die endgültige Charakterisierungsklasse für den Rahmen an das Anregungsverarbeitungsmodul 54 als Steuerinformation 356 geliefert.
  • 3.13 Typklassifikationsmodul
  • Für den Vollraten-Codec 22 und den Halbraten-Codec 24 kann die endgültige Charakterisierungsklasse auch durch das Typklassifikationsmodul 324 verwendet werden. Ein Rahmen mit einer endgültigen Charakterisierungsklasse der Klasse 0 bis 4 wird bestimmt ein Typ Null Rahmen zu sein, und ein Rahmen der Klasse 5 wird bestimmt, ein Typ Eins Rahmen zu sein. Die Typklassifikation wird an das Anregungsverarbeitungsmodul 54 als ein Typ Indikator 358 geliefert.
  • 4.0 Anregungsverarbeitungsmodul (Excitation Processing Module)
  • Der Typ Indikator 358 vom Typklassifikationsmodul 324 aktiviert selektiv entweder das Vollratenmodul 54 oder das Halbratenmodul 56, wie in 2 dargestellt ist, und zwar abhängig von der Ratenauswahl. 10 zeigt ein Blockdiagramm, das das in 2 dargestellte F0 oder H0 erste Unterrahmenverarbeitungsmodul 70 oder 80 repräsentiert, das für die Typ 0 Klassifikation aktiviert wird. In ähnlicher Weise zeigt 11 ein Blockdiagramm, das das F1 oder H1 erste Rahmenverarbeitungsmodul 72 oder 82, das F1 oder H1 zweite Unterrahmenverarbeitungsmodul 74 oder 84 und das F1 oder H1 zweite Rahmenverarbeitungsmodul 76 oder 86 repräsentiert, die für Typ 1 Klassifikation aktiviert werden. Wie vorher erörtert, repräsentieren das „F" und „H" den Vollraten-Codec 22 bzw. den Halbraten-Codec 24.
  • Die Aktivierung des Viertelratenmoduls 60 und des Achtelratenmoduls 62, wie in 2 dargestellt, kann auf der Ratenauswahl basieren. In einem Ausführungsbeispiel wird eine pseudozufällige Sequenz (pseudo-random sequence) generiert und skaliert, um die Kurzzeitanregung zu repräsentieren. Die Energiekomponente 204 und 242 (2) repräsentiert die Skalierung der Pseudozufallssequenz, wie vorher diskutiert. In einem Ausführungsbeispiel wird der „Keim" (seed), der zum Generieren der Pseudozufallssequenz verwendet wird, aus dem Bitstrom extrahiert, um dadurch Synchronität zwischen dem Codiersystem 12 und dem Decodiersystem 16 vorzusehen.
  • Wie vorher erörtert, empfängt das Anregungsverarbeitungsmodul 54 auch die modifizierte gewichtete Spache 350, die unquantisierten Tonhöhenverstärkungen 352, den Ratenindikator 354 und die Steuerinformation 356. Die Viertel- und Achtenraten-Codecs 26 und 28 verwenden diese Signale nicht während der Verarbeitung. Jedoch können diese Signale verwendet werden, um Rahmen des Sprachsignals 18 innerhalb des Vollraten-Codecs 22 und des Halbraten-Codecs 24 weiterzuverarbeiten. Die Verwendung dieser Parameter durch den Vollraten-Codec 22 und den Halbraten-Codec 24, wie später beschrieben, beruht auf der Typklassifikation des Rahmens als Typ 0 oder Typ 1.
  • 4.1 Anregungsverarbeitungsmodul für Type Null Rahmen des Vollraten-Codecs und des Halbraten-Codecs
  • Jetzt bezugnehmend auf 10, umfasst ein Ausführungsbeispiel des F0 oder H0 ersten Unterrahmenverarbeitungsmoduls 70, 80 einen adaptiven Codebuchabschnitt 362, einen fixierten bzw. festen (fixed) Codebuchabschnitt 364 und einen Verstärkungsquantisierungsabschnitt 366. Die Verarbeitung und Codierung für Rahmen vom Typ 0 ist einigermaßen ähnlich zu der herkömmlichen CELP Codierung, beispielsweise dem TIA (Telecommunication Industry Association) Standard IS-127. Für den Vollraten-Codec 22 kann der Rahmen in vier Unterrahmen unterteilt werden, während der Rahmen für den Halbraten-Codec 24 in zwei Unterrahmen unterteilt werden kann, wie vorher erörtert wurde. Diese in 10 repräsentierten Funktionen werden auf einer Unterrahmenbasis ausgeführt.
  • Das F0 oder H0 erste Unterrahmenverarbeitungsmodul 70 und 80 (2) werden betrieben zum Bestimmen des geregelten Tonhöhenabstands und des entsprechenden adaptiven Codebuchgewinns für das adaptive Codebuch. Zusätzlich wird der Langzeitrest unter Verwendung des fixierten Codebuchs quantisiert und die entsprechende fixierte Codebuchverstärkung wird auch bestimmt. Die Quantisierung des geregelten Tonhöhenabstands und gemeinsame Quantisierung der adaptiven Codebuchverstärkung und der fixierten Codebuchverstärkung werden auch durchgeführt.
  • 4.1.1 Adaptiver Codebuchabschnitt
  • Der adaptive Codebuchabschnitt 362 umfasst ein adaptives Codebuch 368, einen ersten Multiplizierer 370, ein erstes Synthesefilter 372, ein erstes Wahrnehmungsgewichtungsfilter 374, einen ersten Subtrahierer 376 und ein erstes Minimierungsmodul 378. Der adaptive Codebuchabschnitt 362 führt eine Suche für den besten geregelten Tonhöhenabstand aus dem adaptiven Codebuch 362 durch und zwar unter Verwendung des Analyse-durch-Synthese (ABS) Ansatzes.
  • Ein Segment aus dem adaptiven Codebuch 368 entsprechend dem geregelten Tonhöhenabstand kann als ein adaptiver Codebuchvektor (va) 382 bezeichnet werden. Die Tonhöhenspur 348 aus dem Tonhöhenvorverarbeitungsmodul 322 der 9 kann verwendet werden zum Identifizieren eines Gebiets in dem adaptiven Codebuch 368, und zwar zum Suchen für Vektoren für den adaptiven Codebuchvektor (va) 382. Der erste Multiplizierer 370 multipliziert den ausgewählten adaptiven Codebuchvektor (va) 382 durch eine Verstärkung (ga) 384. Die Verstärkung (ga) 384 ist unquantisiert und repräsentiert eine initiale adaptive Codebuchverstärkung, die berechnet wird, wie später beschrieben wird. Das resultierende Signal wird an den ersten Synthesefilter 372 gegeben, der eine Funktion durchführt, die die Inverse der vorher erörterten LPC Analyse ist. Das erste Synthesefilter 372 empfängt die quantisierten LPC Koeffizienten Aq(z) 342 von dem LSF Quantisierungsmodul 334 und zusammen mit dem ersten Wahrnehmungsgewichtungsfiltermodul 374 erzeugt es ein erstes re-synthetisiertes Sprachsignal 386. Der erste Subtrahierer 376 subtrahiert das erste re-synthetisierte Sprachsignal 386 von der modifizierten gewichteten Sprache 350 um ein Langzeitfehlersignal 388 zu erzeugen. Die modifizierte gewichtete Sprache 350 ist das Zielsignal für die Suche in dem adaptiven Codebuch 368.
  • Das erste Minimierungsmodul 378 empfängt das Langzeitfehlersignal 388, das ein Vektor ist, der den Fehler beim Quantisieren des geregelten Tonhöhenabstands repräsentiert. Das erste Minimierungsmodul 378 führt die Berechnung der Energie des Vektors und die Bestimmung des entsprechenden gewichteten mittleren quadratischen Fehlers durch. Zusätzlich steuert das erste Minimierungsmodul 378 die Suche und Auswahl von Vektoren aus dem adaptiven Codebuch 368, für den adaptiven Codebuchvektor (va) 382, um die Energie des Langzeitfehlersignals 388 zu reduzieren.
  • Der Suchprozess wird wiederholt bis das erste Minimierungsmodul 378 den besten Vektor für den adaptiven Codebuchvektor (va) 382 aus dem adaptiven Codebuch 368 für jeden Unterrahmen ausgewählt hat. Die Indexstelle des besten Vektors für den adaptiven Codebuchvektor (va) 382 innerhalb des adaptiven Codebuchs 368 bildet Teil der geregelten (closed loop) adaptiven Codebuchkomponente 144b, 176b (2). Dieser Suchprozess minimiert effektiv die Energie des Langzeitfehlersignals 388. Der beste geregelte Tonhöhenabstand wird ausgewählt durch Auswahl des besten adaptiven Codebuchvektors (va) 382 aus dem adaptiven Codebuch 368. Das resultierende Langzeitfehlersignal 388 ist das modifizierte gewichtete Sprachsignal 350, abzüglich (less) des gefilterten besten Vektors für den adaptiven Codebuchvektor (va) 382.
  • 4.1.1.1 Gesteuerte (Closed-Loop) adaptive Codebuchsuche für den Vollraten-Codec
  • Der gesteuerte Tonhöhenabstand für den Vollraten-Codec 22 wird in dem Bitstrom durch die gesteuerte adaptive Codebuchkomponente 144b repräsentiert. Für ein Ausführungsbeispiel des Vollraten-Codec 22 werden die gesteuerten Tonhöhenabstände für die ersten und die dritten Unterrahmen mit 8 Bits repräsentiert, und die gesteuerten Tonhöhenabstände für die zweiten und vierten Unterrahmen werden mit 5 Bits repräsentiert, wie vorher erörtert wurde. In einem Ausführungsbeispiel ist der Abstand in dem Bereich von 17 bis 148 Abständen. Die 8 Bits und die 5 Bits können die gleiche Tonhöhenauflösung repräsentieren. Die 8 Bits können jedoch auch den vollen Bereich des geregelten Tonhöhenabstands für einen Unterrahmen repräsentieren und die 5 Bits können einen limitierten Wert der geregelten Tonhöhenabstände um den geregelten Tonhöhenabstand des vorhergehenden Unterrahmens herum repräsentieren. In einem beispielhaften Ausführungsbeispiel ist die Auflösung des geregelten Tonhöhenabstands 0,2 und zwar einheitlich zwischen Abstand 17 und Abstand 33. Von Abstand 33 bis Abstand 91 des beispielhaften Ausführungsbeispiels wird die Auflösung allmählich von 0,2 auf 0,5 erhöht, und die Auflösung von Abstand 91 bis Abstand 148 ist einheitlich 1,0.
  • Der adaptive Codebuchabschnitt 362 führt eine ganzzahlige Abstandssuche für geregelte ganzzahlige Tonhöhenabstände durch. Für die ersten und die dritten Unterrahmen (d.h. jene, die mit 8 Bits dargestellt sind) kann die ganzzahlige Abstandssuche im Bereich von [Lp – 3, ... Lp + 3] durchgeführt werden, wobei Lp der Unterrahmentonhöhenabstand ist. Der Unterrahmentonhöhenabstand wird von der Tonhöhenspur 348 erhalten, die verwendet wird um einen Vektor in dem adaptiven Codebuch 368 zu identifizieren. Die Kreuzkorrelationsfunktion R(I) für den ganzzahligen Abstandssuchbereich kann berechnet werden gemäß
    Figure 00910001
    wobei t(n) das Zielsignal ist, das die modifizierte gewichtete Sprache 350 ist, e(n) ist der durch den adaptiven Codebuchvektor (va) 382 repräsentierte adaptive Codebuchbeitrag, h(n) ist die kombinierte Antwort des ersten Synthesefilters 372 und des Wahrnehmungsgewichtungsfilters 374. In dem beispielhaften Ausführungsbeispiel gibt es 40 Abtastungen in einem Unterrahmen, obwohl mehr oder weniger Abtastungen verwendet werden könnten.
  • Der geregelte ganzzahlige Tonhöhenabstand der R(I) maximiert, kann als ein verfeinerter ganzzahliger Abstand (refined integer lag) gewählt werden. Der beste Vektor aus dem adaptiven Codebuch 368 für den adaptiven Codebuchvektor (va) 382 kann durch Hochtasten (upsampling) der Kreuzkorrelationsfunktion R(I) bestimmt werden, und zwar unter Verwendung eines Hamminggewichteten-Sinc neunter Ordnung. Hochtastung wird von einer Suche nach den Vektoren innerhalb des adaptiven Codebuchs 368 gefolgt, die den geregelten Tonhöhenabständen entsprechen, die innerhalb 1 Abtastung des verfeinerten ganzzahligen Abstands sind. Die Indexstelle innerhalb des adaptiven Codebuchs 368 des besten Vektors für den adaptiven Codebuchvektor (va) 382 für jeden Unterrahmen wird durch die geregelte adaptive Codebuchkomponente 144b in dem Bitstrom repräsentiert. Die initiale adaptive Codebuchverstärkung kann geschätzt werden gemäß:
    Figure 00910002
    wobei Lp opt den Abstand des besten Vektors für den adaptiven Codebuchvektor (va) 382 repräsentiert, und e(n – Lp opt) repräsentiert den besten Vektor für den adaptiven Codebuchvektor (va) 382. Zusätzlich wird in diesem beispiel haften Ausführungsbeispiel die Schätzung durch 0,0 ≤ g ≤ 1,2 begrenzt, und n repräsentiert 40 Abtastungen in einem Unterrahmen. Eine normalisierte adaptive Codebuchkorrelation wird durch R(I) gegeben, wenn I = Lp opt ist. Die initiale adaptive Codebuchverstärkung kann ferner normalisiert werden, gemäß der normalisierten adaptiven Codebuchkorrelation, der initialen Klassenentscheidung und der Schärfe des adaptiven Codebuchbeitrags. Die Normalisierung führt zu der Verstärkung (ga) 384. Die Verstärkung (ga) 384 ist unquantisiert und repräsentiert die anfängliche adaptive Codebuchverstärkung für den geregelten Tonhöhenabstand.
  • 4.1.1.2 Geregelte adaptive Codebuchsuche für Halbraten-Codierung
  • Der geregelte Tonhöhenabstand für den Halbraten-Codec 24 wird durch die geregelte adaptive Codebuchkomponente 176b (2) repräsentiert. Für den Halbraten-Codec 24 eines Ausführungsbeispiels werden die geregelten Tonhöhenabstände für jeden der zwei Unterrahmen in 7 Bits codiert, wobei jeder einen Abstand in dem Bereich von 17 bis 127 Abständen repräsentiert. Die ganzzahlige Abstandssuche kann im Bereich von [Lp – 3, ..., Lp + 3] durchgeführt werden, im Gegensatz zu der Bruchteilsuche, die im Vollraten-Codec 22 durchgeführt wird. Die Kreuzkorrelationsfunktion R(I) kann wie in Gleichung 15 berechnet werden, wobei die Summierung über eine Unterrahmengröße des beispielhaften Ausführungsbeispiels von 80 Abtastungen durchgeführt wird. Der geregelte Tonhöhenabstand, der R(I) maximiert, wird als der verfeinerte ganzzahlige Abstand gewählt. Die Indexstelle innerhalb des adaptiven Codebuchs 368 des besten Vektors für den adaptiven Codebuchvektor (va) 382 für jeden Unterrahmen wird durch die geregelte adaptive Codebuchkomponente 176b in dem Bitstrom repräsentiert.
  • Der Initialwert für die adaptive Codebuchverstärkung kann gemäß Gleichung 16 berechnet werden, wobei die Summierung über eine Unterrahmengröße des beispielhaften Ausführungsbeispiels von 80 Abtastungen durchgeführt wird. Die Normalisierungsprozeduren, wie vorher erörtert, können dann angewendet werden, und führen zu der Verstärkung (ga) 384, die unquantisiert ist.
  • Das von entweder dem Vollratentcodec 22 oder dem Halbraten-Codec 24 generierte Langzeitfehlersignal 388 wird während der Suche durch den fixierten Codebuchabschnitt 364 verwendet. Vor der fixierten Codebuchsuche wird die Sprachaktivitätsentscheidung erlangt, und zwar von dem VAD Modul 326 aus 9, das auf den Rahmen anwendbar ist. Die Sprachaktivitätsentscheidung für den Rahmen kann in eine Unterrahmensprachaktivitätsentscheidung für jeden Unterrahmen unterteilt werden. Die Unterrahmensprachaktivitätsentscheidung kann verwendet werden, um die Wahrnehmungswahl des Beitrags des fixierten Codebuchs zu verbessern.
  • 4.1.2 Fixierter Codebuchabschnitt
  • Der fixierte Codebuchabschnitt 364 umfasst ein fixiertes Codebuch 390, einen zweiten Multiplizierer 392, ein zweites Synthesefilter 394, ein zweites Wahrnehmungsgewichtungsfilter 396, einen zweiten Subtrahierer 398 und ein zweites Minimierungsmodul 400. Die Suche für den fixierten Codebuchbeitrag durch den fixierten Codebuchabschnitt 364 ist ähnlich der Suche innerhalb des adaptiven Codebuchabschnitts 362.
  • Ein fixierter Codebuchvektor (vc) 402, der den Langzeitrest für einen Unterrahmen repräsentiert, wird vom fixierten Codebuch 390 geliefert. Der zweite Multiplizierer 392 multipliziert den fixierten Codebuchvektor (vc) 402 mit einer Verstärkung (gc) 404. Die Verstärkung (gc) 404 ist unquantisiert und ist eine Repräsentation des Initialwerts der fixierten Codebuchverstärkung, die wie später beschrieben wird, berechnet werden kann. Das resultierende Signal wird an das zweite Synthesefilter 394 geliefert. Das zweite Synthesefilter 394 empfängt die quantisierten LPC Koeffizienten Aq(z) 342 von dem LSF Quantisierungsmodul 334 und zusammen mit dem zweiten Wahrnehmungsgewichtungsfilter 396 kreiert es ein zweites re-synthetisiertes Sprachsignal 406. Der zweite Subtrahierer 398 subtrahiert das re-synthetisierte Sprachsignal 406 aus dem Langzeitfehlersignal 388, um einen Vektor zu erzeugen, der ein fixiertes Codebuchfehlersignal 408 ist.
  • Das zweite Minimierungsmodul 400 empfängt das fixierte Codebuchfehlersignal 408, das den Fehler beim Quantisieren des Langzeitrests durch das fixierte Codebuch 390 repräsentiert. Das zweite Minimierungsmodul 400 verwendet die Energie des fixierten Codebuchfehlersignals 408 um die Auswahl von Vektoren für den fixierten Codebuchvektor (vc) 402 aus dem fixierten Codebuch 292 zu steuern, und zwar um die Energie des fixierten Codebuchfehlersignals 408 zu reduzieren. Das zweite Minimierungsmodul 400 empfängt auch die Steuerinformation 356 aus dem Charakterisierungsmodul 328 der 9.
  • Die endgültige Charakterisierungsklasse, die in der Steuerinformation 356 enthalten ist, steuert wie das zweite Minimierungsmodul 400 Vektoren für den fixierten Codebuchvektor (vc) 402 aus dem fixierten Codebuch 390 auswählt. Der Prozess wird wiederholt bis die Suche durch das zweite Minimierungsmodul 400 den besten Vektor für den fixierten Codebuchvektor (vc) 402 aus dem fixierten Codebuch 390 für jeden Unterrahmen ausgewählt hat. Der beste Vektor für den fixierten Codebuchvektor (vc) 402 minimiert den Fehler in dem zweiten re-synthetisierten Sprachsignal 406 bezüglich des Langzeitfehlersignals 388. Die Indizes identifizieren den besten Vektor für den fixierten Codebuchvektor (vc) 402 und, wie vorher erörtert, können zum Bilden der fixierten Codebuchkomponente 146a und 178a verwendet werden.
  • 4.1.2.1 Fixierte Codebuchsuche für den Vollraten-Codec
  • Wie vorher mit Bezug auf 2 und 4 erörtert, kann die fixierte Codebuchkomponente 146a für Rahmen der Type Null Klassifikation jede von vier Unterrahmen des Vollraten-Codec 22 unter Verwendung der drei 5-Impulscodebücher 160 repräsentieren. Wenn die Suche initiiert wird, können Vektoren für den fixierten Codebuchvektor (vc) 402 innerhalb des fixierten Codebuchs 390 bestimmt werden, und zwar unter Verwendung des Langzeitfehlersignals 338, das dargestellt wird durch:
  • Figure 00950001
  • Tonhöhenverstärkung kann auf die drei 5-Impulscodebücher 160 (in 4 dargestellt) innerhalb des fixierten Codebuchs 390 in der Vorwärtsrichtung während der Suche angewendet werden. Die Suche ist eine iterative Suche mit gesteuerter Komplexität nach dem besten Vektor für den fixierten Codebuchvektor (vc) 402. Ein Initialwert für die durch die Verstärkung (gc) 404 repräsentierte fixierte Codebuchverstärkung kann gleichzeitig mit der Suche nach dem besten Vektor für den fixierten Codebuchvektor (vc) 402 gefunden werden.
  • In einem beispielhaften Ausführungsbeispiel wird die Suche für den besten Vektor für den fixierten Codebuchvektor (vc) 402 in jedem der drei 5-Impulscodebücher 160 vollendet. Beim Abschluss des Suchprozesses innerhalb jedes der drei 5-Impulscodebücher 160 sind beste Kandidatenvektoren für den fixierten Codebuchvektor (vc) 402 identifiziert worden. Die Auswahl eines der drei 5-Impulscodebücher 160 und welcher der entsprechenden besten Kandidatenvektoren verwendet wird, kann bestimmt werden, und zwar unter Verwendung des entsprechenden fixierten Codebuchfehlersignals 408 für jeden der besten Kandidatenvektoren (candidate best vectors). Die Bestimmung des gewichteten mittleren quadratischen Fehlers (weighted mean squared error, WMSE) für jeden der entsprechenden fixierten Codebuchfehlersignale 408 durch das zweite Minimierungsmodul 400 wird zuerst durchgeführt. Für die Zwecke dieser Erörterung werden die gewichteten mittleren quadratischen Fehler (WMSEs) für jeden der besten Kandidatenvektoren von jedem der drei 5-Impulscodebücher 160 als erste, zweite und dritte fixierte Codebuch WMSEs bezeichnet.
  • Die ersten, zweiten und dritten fixierten Codebuch WMSEs können zuerst gewichtet werden. Innerhalb des Vollraten-Codec 22 können für als Typ Null klassifizierte Rahmen die ersten, zweiten und dritten fixierten Codebuch WMSEs durch die Unterrahmensprachaktivitätsentscheidung gewichtet wer den. Zusätzlich kann die Gewichtung vorgesehen werden durch ein Schärfemaß (sharpness measure) jedes der ersten, zweiten und dritten fixierten Codebuch WMSEs und dem NSR aus dem Charakterisierungsmodul 328 von 9. Basierend auf der Gewichtung kann eines der drei 5-impulsfixierten Codebücher 160 und der beste Kandidatenvektor in dem Codebuch selektiert bzw. ausgewählt werden.
  • Das selektierte 5-Impulscodebuch 160 kann dann für eine endgültige Entscheidung des besten Vektors für den fixierten Codebuchvektor (vc) 402 genau bzw. fein durchsucht werden. Die genaue Suche wird auf den Vektoren in dem selektierten einen der drei 5-Impulscodebücher 160, die in der Nähe bzw. Umgebung des gewählten besten Kandidatenvektors durchgeführt. Die Indizes, die den besten Vektor identifizieren, und zwar für den fixierten Codebuchvektor (vc) 402 innerhalb des ausgewählten einen der drei 5-Impulscodebücher 160 sind Teil der fixierten Codebuchkomponente 178a in dem Bitstrom.
  • 4.1.2.2 Fixierte Codebuchsuche für den Halbraten-Codec
  • Für Rahmen der Type Null Klassifikation repräsentiert die fixierte Codebuchkomponente 178a jeden der zwei Unterrahmen des Halbraten-Codecs 24. Wie vorher mit Bezug auf 5 erörtert wurde, kann die Repräsentation auf den Impulscodebüchern 192, 194 und dem gaussförmigen Codebuch 195 basiert werden. Das initiale Ziel für die durch die Verstärkung (gc) 404 repräsentierte fixierte Codebuchverstärkung kann in ähnlicher Weise wie beim Vollraten-Codec 22 bestimmt werden. Zusätzlich kann die Suche für den fixierten Codebuchvektor (vc) 402 innerhalb des fixierten Codebuchs 390 ähnlich wie beim Vollraten-Codec 22 gewichtet werden. Beim Halbraten-Codec 24 kann die Gewichtung auf die besten Kandidatenvektoren von jedem der Impulscodebücher 192 und 194 wie auch dem gaussförmigen Codebuch 195 angewendet werden. Die Gewichtung wird angewendet um den am besten geeigneten fixierten Codebuchvektor (vc) 402 zu bestimmen, und zwar aus einer Perspektive der Wahrnehmung. Zusätzlich kann die Gewichtung des gewich teten mittleren quadratischen Fehlers (weighted mean squared error, WMSE) beim Halbraten-Codec 24 weiter angehoben werden, um die Wahrnehmungsperspektive hervorzuheben. Weitere Betonung kann erreicht werden durch Einbeziehen zusätzlicher Parameter in die Gewichtung. Die zusätzlichen Faktoren können der geregelte Tonhöhenabstand und die normalisierte adaptive Codebuchkorrelation sein.
  • Zusätzlich zur angehobenen bzw. betonten Gewichtung können vor der Suche der Codebücher 192, 194, 195 nach den besten Kandidatenvektoren einige Charakteristika in die Einträge der Impulscodebücher 192, 194 eingebaut werden. Diese Charakteristika können weitere Betonung bzw. Steigerung der wahrnehmbaren Qualität vorsehen. In einem Ausführungsbeispiel kann gesteigerte Wahrnehmungsqualität bzw. wahrnehmbare Qualität während dem Suchen erreicht werden, und zwar durch Modifizieren der Filterantwort des zweiten Synthesefilters 394, unter Verwendung dreier Steigerungen (enhancements). Die erste Steigerung kann erreicht werden durch Einkoppeln von hochfrequentem Rauschen in das fixierte Codebuch, was das Hochfrequenzband modifiziert. Die Einkopplung von Hochfrequenzrauschen kann in die Antwort des zweiten Synthesefilters 394 einbezogen werden, und zwar durch Falten der hochfrequenten Rauschimpulsantwort mit der Impulsantwort des zweiten Synthesefilters 394.
  • Die zweite Steigerung kann verwendet werden, um zusätzliche Impulse an Stellen einzubeziehen, die durch hohe Korrelationen in dem vorher quantisierten Unterrahmen bestimmt werden können. Die Amplitude der zusätzlichen Impulse kann gemäß der Korrelationsstärke eingestellt werden, dadurch dem Codiersystem 16 erlaubend, die gleiche Operation ohne die Notwendigkeit zusätzlicher Information von dem Codiersystem 12 durchzuführen. Der Beitrag von diesen zusätzlichen Impulsen kann auch in die Impulsantwort des zweiten Synthesefilters 394 einbezogen werden. Die dritte Steigerung filtert das fixierte Codebuch 390 mit einem schwachen Kurzzeitspektralfilter und zwar zum Kompensieren der Reduktion der Formantschärfe, die aus der Bandbreitenerweiterung und der Quantisierung der LSFs resultiert.
  • Die Suche nach dem besten Vektor für den fixierten Codebuchvektor (vc) 402 basiert auf dem Minimieren der Energie des fixierten Codebuchfehlersignals 408, wie zuvor erörtert wurde. Die Suche kann zuerst auf dem 2-Impulscodebuch 192 durchgeführt werden. Das 3-Impulscodebuch 194 kann als nächstes durchsucht werden, und zwar in zwei Schritten. Der erste Schritt kann ein Zentrum für den zweiten Schritt bestimmen, der als eine fokussierte Suche bezeichnet werden kann. Rückwärts und vorwärts gewichtete Tonhöhensteigerung kann für die Suche in beiden Impulscodebüchern 192 und 194 angewendet werden. Das gaussförmige Codebuch 195 kann als letztes durchsucht werden, und zwar unter Verwendung einer schnellen Suchroutine, die zum Bestimmen der zwei orthogonalen Basisvektoren zur Codierung verwendet wird, wie vorher erörtert wurde.
  • Die Auswahl eines der Codebücher 192, 194 und 195 und dem besten Vektor für den fixierten Codebuchvektor (vc) 402 kann in ähnlicher Weise wie beim Vollraten-Codec 22 durchgeführt werden. Die Indices, die den besten Vektor für den fixierten Codebuchvektor (vc) 402 innerhalb des ausgewählten Codebuchs identifizieren, sind Teil der fixierten Codebuchkomponente 178a in dem Bitstrom.
  • An dieser Stelle sind die besten Vektoren für den adaptiven Codebuchvektor (va) 382 und den fixierten Codebuchvektor (vc) 402 gefunden worden, und zwar innerhalb der adaptiven bzw. fixierten Codebücher 368, 390. Die unquantisierten Initialwerte für die Verstärkung (ga) 384 und die Verstärkung (gc) 404 können jetzt durch die besten Verstärkungswerte ersetzt werden. Die besten Verstärkungswerte können bestimmt werden und zwar basierend auf den besten Vektoren für den adaptiven Codebuchvektor (va) 382 fixierten Codebuchvektor (vc) 402 und zwar wie vorher bestimmt. Nach der Bestimmung der besten Verstärkungen werden diese gemeinsam quantisiert. Die Verstärkung und Quantisierung der Verstärkungen findet innerhalb des Verstärkungsquantisierungsabschnitts 366 statt.
  • 4.1.3 Verstärkungsguantisierungsabschnitt
  • Der Verstärkungsquantisierungsabschnitt 366 eines Ausführungsbeispiels umfasst ein 2D VQ Verstärkungscodebuch 412, einen dritten Multiplizierer 414, einen vierten Multiplizierer 416, einen Addierer 418, ein drittes Synthesefilter 420, ein drittes Wahrnehmungsgewichtungsfilter 422, einen dritten Subtrahierer 424, ein drittes Minimierungsmodul 426 und einen Energiemodifizierungsabschnitt 428. Der Energiemodifizierungsabschnitt 428 eines Ausführungsbeispiels umfasst ein Energieanalysemodul 430 und ein Energieeinstellmodul 432. Die Bestimmung und Quantisierung der fixierten und adaptiven Codebuchverstärkungen kann innerhalb des Verstärkungsquantisierungsabschnitts 366 durchgeführt werden. Zusätzlich findet eine weitere Modifikation der modifizierten gewichteten Sprache 350 in dem Energiemodifikationsabschnitt 428 statt, wie noch erörtert wird, und zwar um ein modifiziertes Zielsignal 434 zu bilden, das für die Quantisierung verwendet werden kann.
  • Die Bestimmung und Quantisierung umfasst das Suchen zum Bestimmen eines quantisierten Verstärkungsvektors (g ^ac) 433, der die gemeinsame Quantisierung (joint quantization) der adaptiven Codebuchverstärkung und der fixierten Codebuchverstärkung repräsentiert. Für die Suche können die adaptiven und fixierten Codebuchverstärkungen erlangt werden durch Minimieren des gewichteten mittleren quadratischen Fehlers, gemäß:
    Figure 00990001
    wobei va(n) der beste Vektor für den adaptiven Codebuchvektor (va) 382 ist und vc(n) der beste Vektor für den fixierten Codebuchvektor (vc) 402 ist, wie vorher erörtert wurde. In dem beispielhaften Ausführungsbeispiel basiert die Summierung auf einem Rahmen der 80 Abtastungen enthält, wie beispielsweise in einem Ausführungsbeispiel des Halbraten-Codecs 24. Die Minimie rung kann gemeinsam erlangt werden (Erlangen von ga und gc gleichzeitig) oder sequentiell erlangt werden (Erlangen von ga zuerst und dann von gc) und zwar abhängig von einem Schwellwert der normalisierten adaptiven Codebuchkorrelation. Die Verstärkungen können dann teilweise modifiziert werden, und zwar um die Fluktuationen der rekonstruierten Sprache bei vorhandenem Hintergrundrauschen zu glätten. Die modifizierten Verstärkungen werden als g'a und g'c bezeichnet. Das modifizierte Zielsignal 434 kann unter Verwendung der modifizierten Verstärkungen wie folgt generiert werden:
  • Figure 01000001
  • Eine Suche nach dem besten Vektor für den quantisierten Verstärkungsvektor (g ^ac) 433 wird innerhalb des 2D VQ Verstärkungscodebuchs 412 durchgeführt. Das 2D VQ Verstärkungscodebuch 412 kann die vorher erörterte 2D Verstärkungsquantisierungstabelle sein, wie in Tabelle 4 dargestellt. Das 2D VQ Verstärkungscodebuch 412 wird nach Vektoren für den quantisierten Verstärkungsvektor (g ^ac) 433, der den mittleren quadratischen Fehler minimiert, durchsucht, d.h. Minimieren von
    Figure 01000002
    wobei eine quantisierte fixierte Codebuchverstärkung (g ^a) 435 und eine quantisierte adaptive Codebuchverstärkung (g ^c) 436 von dem 2D VQ Verstärkungscodebuch 412 abgeleitet werden kann. In dem beispielhaften Ausführungsbeispiel basiert die Summierung auf einem Rahmen, der 80 Abtastungen aufweist, wie beispielsweise in einem Ausführungsbeispiel des Halbraten-Codecs 24. Die quantisierten Vektoren in dem 2D VQ Verstärkungscodebuch 412 repräsentieren tatsächlich die adaptive Codebuchverstärkung und einen Korrekturfaktor für die fixierte Codebuchverstärkung, wie vorher erörtert wurde.
  • Nach der Bestimmung des modifizierten Zielsignals 434 wird der quantisierte Verstärkungsvektor (g ^ac) 433 an Multiplizierer 414 und 416 gegeben. Der dritte Multiplizierer 414 multipliziert den besten Vektor für den adaptiven Codebuchvektor (va) 482 aus dem adaptiven Codebuch 368 mit der quantisierten adaptiven Codebuchverstärkung (g ^a) 435. Der Ausgang vom dritten Multiplizierer 414 wird an den Addierer 418 geliefert. Ähnlich multipliziert der vierte Multiplizierer 416 die quantisierte fixierte Codebuchverstärkung (g ^c) 436 mit dem besten Vektor für den fixierten Codebuchvektor (vc) 402 aus dem fixierten Codebuch 390. Der Ausgang vom vierten Multiplizierer 416 wird auch an den Addierer 418 geliefert. Der Addierer 418 addiert die Ausgänge von den Multiplizierern 414, 416 und liefert das resultierende Signal an das dritte Synthesefilter 420.
  • Die Kombination des dritten Synthesefilters 420 und des Wahrnehmungsgewichtungsfilters 422 generiert ein drittes re-synthetisiertes Sprachsignal 438. Wie bei den ersten und zweiten Synthesefiltern 372 und 394 empfängt das dritte Synthesefilter 420 die quantisierten LPC Koeffizienten Aq(z) 342. Der dritte Subtrahierer 424 subtrahiert das dritte re-synthetisierte Sprachsignal 438 von dem modifizierten Zielsignal 434 um ein drittes Fehlersignal 442 zu generieren. Das dritte Minimierungsmodul 426 empfängt das dritte Fehlersignal 442, das den Fehler repräsentiert, der aus der gemeinsamen Quantisierung der fixierten Codebuchverstärkung und der adaptiven Codebuchverstärkung durch das 2D VQ Verstärkungscodebuch 412 resultiert. Das dritte Minimierungsmodul 426 verwendet die Energie des dritten Fehlersignals 442 um die Suche und Auswahl der Vektoren aus dem 2D VQ Verstärkungscodebuch 412 zu steuern, und zwar um die Energie des dritten Fehlersignals 442 zu reduzieren.
  • Der Prozess wird wiederholt bis das dritte Minimierungsmodul 426 den besten Vektor von dem 2D VQ Verstärkungscodebuch 412 für jeden Unterrahmen, der die Energie des dritten Fehlersignals 442 minimiert, selektiert bzw. ausgewählt hat. Sobald die Energie des dritten Fehlersignals 442 für jeden Unterrahmen minimiert worden ist, werden die Indexstellen der gemeinsam quanti sierten Verstärkungen (g ^a) und (g ^c) 435 und 436 verwendet zum Generieren der Verstärkungskomponente 147, 179 für den Rahmen. Für den Vollraten-Codec 22 ist die Verstärkungskomponente 147 die fixierte und adaptive Verstärkungskomponente 148a, 150a und für den Halbraten-Codec 24 ist die Verstärkungskomponente 179 die adpative und fixierte Verstärkungskomponente 180a und 182a.
  • Die Synthesefilter 372, 394 und 420, die Wahrnehmungsgewichtungsfilter 374, 396 und 422, die Minimierungsmodule 378, 400 und 426, die Multiplizierer 370, 392, 414 und 416, die Addierer 418 und die Subtrahierer 376, 398 und 424 (wie auch irgendwelche anderen in dieser Anmeldung beschriebenen Filter, Minimierungsmodule, Multiplizierer, Addierer und Subtrahierer) können durch irgendein anderes Gerät ersetzt werden oder modifiziert werden, in einer Art und Weise, die dem Fachmann bekannt ist, und zwar dem Fachmann, der für die spezielle Anmeldung geeignet ist.
  • 4.2 Anregungsverarbeitungsmodul für Typ Eins Rahmen des Vollraten-Codecs und des Halbraten-Codecs
  • In 11 umfassen die F1, H1 ersten Rahmenverarbeitungsmodule 72 und 82 ein 3D/4D gesteuertes (open loop) VQ Modul 454. Die F1, H1 zweite Unterrahmenverarbeitungsmodule 74 und 84 eines Ausführungsbeispiels umfassen das adaptive Codebuch 368, das fixierte Codebuch 390, einen ersten Multiplizierer 456, einen zweiten Multiplizierer 458, ein erstes Synthesefilter 460 und ein zweites Synthesefilter 462. Zusätzlich umfassen die F1, H1 zweite Unterrahmenverarbeitungsmodule 74 und 84, ein erstes Wahrnehmungsgewichtungsfilter 464, ein zweites Wahrnehmungsgewichtungsfilter 466, einen ersten Subtrahierer 468, einen zweiten Subtrahierer 470, ein erstes Minimierungsmodul 472 und ein Energieeinstellmodul 474. Die F1, H1 zweiten Rahmenverarbeitungsmodule 76 und 86 umfassen einen dritten Multiplizierer 476, einen vierten Multiplizierer 478, einen Addierer 480, ein drittes Synthesefilter 482, ein drittes Wahrnehmungsgewichtungsfilter 484, einen dritten Subtrahierer 486, ein Zwischenspeichermodul bzw. Buffermodul (buffering module) 488, ein zweites Minimierungsmodul 490 und ein 3D/4D VQ Verstärkungscodebuch 492.
  • Die Verarbeitung von als Typ Eins klassifizierten Rahmen innerhalb des Anregungsverarbeitungsmoduls 54 sieht eine Verarbeitung sowohl auf einer Rahmenbasis als auch einer Unterrahmenbasis vor, wie vorher erörtert. Um der Kürze willen wird sich folgende Erörterung auf die Module innerhalb des Vollraten-Codecs 22 beziehen. Die Module in dem Halbraten-Codec 24 können als genauso funktionierend betrachtet werden, außer es wird anders angegeben. Die Quantisierung der adaptiven Codebuchverstärkung durch das F1 erste Rahmenverarbeitungsmodul 72 generiert die adaptive Verstärkungskomponente 148b. Das F1 zweite Unterrahmenverarbeitungsmodul 74 und das F1 zweite Rahmenverarbeitungsmodul 76 werden betrieben um den fixierten Codebuchvektor bzw. die korrespondierende fixierte Codebuchverstärkung zu bestimmen, wie vorher angegeben. Das F1 zweite Unterrahmenverarbeitungsmodul 74 verwendet die Spurtabellen, wie vorher erörtert, zum Erzeugen der fixierten Codebuchkomponente 146b, wie in 2 dargestellt ist.
  • Das F1 zweite Rahmenverarbeitungsmodul 76 quantisiert die fixierte Codebuchverstärkung um die fixierte Verstärkungskomponente 150b zu generieren. In einem Ausführungsbeispiel verwendet der Vollraten-Codec 22 10 Bits für die Quantisierung von vier fixierten Codebuchverstärkungen und der Halbraten-Codec 24 verwendet 8 Bits für die Quantisierung von den drei fixierten Codebuchverstärkungen. Die Quantisierung kann unter Verwendung von Prädiktion mit begleitendem Mittelwert durchgeführt werden. Im Allgemeinen werden, bevor die Prädiktion und die Quantisierung durchgeführt werden, die Prädiktionszustände (prediction states) in eine geeignete Dimension konvertiert.
  • 4.2.1 Erstes Rahmenverarbeitungsmodul
  • Ein Ausführungsbeispiel des 3D/4D gesteuerten VQ Moduls 454 kann der vorher erörterte vierdimensionale Vorvektorquantisierer (4D pre VQ) 166 und die assoziierte Vorverstärkungsquantisierungstabelle für den Vollraten-Codec 22 sein. Ein anderes Ausführungsbeispiel für das 3D/4D gesteuerte VQ Modul 454 kann der vorher erörterte dreidimensionale Vorvektorquantisierer (3D pre VQ) 198 und die assoziierte Vorverstärkungsquantisierungstabelle für den Halbraten-Codec 24 sein. Das 3D/4D gesteuerte VQ Modul 454 empfängt die unquantisierten Tonhöhenverstärkungen 352 von dem Tonhöhenvorverarbeitungsmodul 322. Die unquantisierten Tonhöhenverstärkungen 352 repräsentieren die adaptive Codebuchverstärkung für den gesteuerten Tonhöhenabstand, wie vorher erörtert.
  • Das 3D/4D gesteuerte VQ Modul 454 quantisiert die unquantisierten Tonhöhenverstärkungen 352 um eine quantisierte Tonhöhenverstärkung (g ^k a) 496 zu generieren, wie die besten quantisierten Tonhöhenverstärkungen für jeden Unterrahmen repräsentiert, wobei k die Anzahl der Unterrahmen ist. In einem Ausführungsbeispiel gibt es vier Unterrahmen für den Vollraten-Codec 22 und drei Unterrahmen für den Halbraten-Codec 24, die vier quantisierten Verstärkungen (g ^1 a, g ^2 a, g ^3 a, g ^4 a) bzw. drei quantisierten Verstärkungen (g ^1 a, g ^2 a, g ^3 a) von jedem Unterrahmen entsprechen. Die Indexstelle der quantisierten Tonhöhenverstärkung (g ^k a) 496 innerhalb der Vorverstärkungsquantisierungstabelle repräsentiert die adaptive Verstärkungskomponente 148b für den Vollraten-Codec 22 oder die adaptive Verstärkungskomponente 180b für den Halbraten-Codec 24. Die quantisierte Tonhöhenverstärkung (g ^k a) 496 wird an das F1 zweite Unterrahmenverarbeitungsmodul 74 oder das H1 zweite Unterrahmenverarbeitungsmodul 84 geliefert.
  • 4.2.2 Zweites Unterrahmenverarbeitungsmodul
  • Das F1 oder H1 zweite Unterrahmenverarbeitungsmodul 74 oder 84 verwendet die durch das Tonhöhenvorverarbeitungsmodul 322 gelieferte Tonhöhenspur 384 um einen adaptiven Codebuchvektor (vk a) 498 zu identifizieren. Der adaptive Codebuchvektor (vk a) 498 repräsentiert den adaptiven Codebuchbeitrag für jeden Unterrahmen, wobei k gleich der Unterrahmennummer ist. In einem Ausführungsbeispiel gibt es vier Unterrahmen für den Vollraten-Codec 22 und drei Unterrahmen für den Halbraten-Codec 24, die vier Vektoren (v1 a, v2 a, v3 a, v4 a) bzw. drei Vektoren (v1 a, v2 a, v3 a) für den adaptiven Codebuchbeitrag für jeden Unterrahmen entsprechen.
  • Der für den adaptiven Codebuchvektor (vk a) 498 ausgewählte Vektor kann aus vergangenen Vektoren abgeleitet werden, die in dem adaptiven Codebuch 368 und der Tonhöhenspur 348 lokalisiert sind. Wobei die Tonhöhenspur 348 interpoliert sein kann, und durch Lp(n) repräsentiert wird. Demgemäß ist keine Suche nötig. Der adaptive Codebuchvektor (vk a) 498 kann erhalten werden, durch Interpolieren der vergangenen adaptiven Codebuchvektoren (vk a) 498 in dem adaptiven Codebuch mit einem Hamming-gewichteten-Sinc-Fenster (Hamming weighted Sinc window) der 21ten Ordnung, wie folgt:
    Figure 01050001
    wobei e(n) die vergangene Anregung, i(Lp(n)) und f(Lp(n)) die ganzzahligen bzw. Bruchteile des Tonhöhenabstands sind, und ws(f,i) das Hamming-gewichtete-Sinc-Fenster ist.
  • Der adaptive Codebuchvektor (vk a) 498 und die quantisierte Tonhöhenverstärkung (g ^k a) 496 werden durch den ersten Multiplizierer 456 multipliziert. Der erste Multiplizierer 456 generiert ein Signal, das durch das erste Synthesefilter 460 und das erste Wahrnehmungsgewichtungsfiltermodul 464 verarbeitet wird, und zwar zum Liefern eines ersten re-synthetisierten Sprachsignals 500. Der erste Synthesefilter 460 empfängt die quantisierten LPC Koeffizienten Aq(z) 342 aus dem LSF Quantisierungsmodul 344 als Teil der Verarbeitung. Der erste Subtrahierer 468 subtrahiert das erste re-synthetisierte Sprachsignal 500 aus der modifizierten gewichteten Sprache 350, die durch das Tonhöhenvorverarbeitungsmodul 322 geliefert wird, um ein Langzeitfehlersignal 502 zu generieren.
  • Das F1 oder H1 zweite Unterrahmenverarbeitungsmodul 74 oder 84 führt auch eine Suche nach dem fixierten Codebuchbeitrag durch, die ähnlich der durch das F0 oder H0 erste Unterrahmenverarbeitungsmodul 70 und 80 durchgeführten ist, wie vorher erörtert. Vektoren für einen fixierten Codebuchvektor (vk c) 504 der den Langzeitrest für einen Unterrahmen repräsentiert, werden aus dem fixierten Codebuch 390 während der Suche ausgewählt. Der zweite Multiplizierer 458 multipliziert den fixierten Codebuchvektor (vk c) 504 mit einer Verstärkung (gk c) 506, wobei k die Unterrahmennummer ist. Die Verstärkung (gk c) 506 ist unquantisiert und repräsentiert die fixierte Codebuchverstärkung für jeden Unterrahmen. Das resultierende Signal wird durch das zweite Synthesefilter 462 und das zweite Wahrnehmungsgewichtungsfilter 466 verarbeitet, um ein zweites re-synthetisiertes Sprachsignal 508 zu generieren. Das zweite re-synthetisierte Sprachsignal 508 wird von dem Langzeitfehlersignal 502 subtrahiert und zwar durch den zweiten Subtrahierer 470, um ein fixiertes Codebuchfehlersignal 510 zu erzeugen.
  • Das fixierte Codebuchfehlersignal 510 wird von dem ersten Minimierungsmodul 472 zusammen mit der Steuerinformation 356 empfangen. Das erste Minimierungsmodul 472 wird genauso betrieben wie das vorher erörterte zweite Minimierungsmodul 400, das in 10 dargestellt ist. Der Suchprozess wird wiederholt bis das erste Minimierungsmodul 472 den besten Vektor für den fixierten Codebuchvektor (vk c) 504 aus dem fixierten Codebuch 390 für jeden Unterrahmen selektiert hat. Der beste Vektor für den fixierten Codebuchvektor (vk c) 504 minimiert die Energie des fixierten Codebuchfehlersignals 510. Die Indizes identifizieren den besten Vektor für den fixierten Codebuchvektor (vk c) 504, wie vorher erörtert, und bilden die fixierte Codebuchkomponente 146b und 178b.
  • 4.2.2.1 Fixierte Codebuchsuche für den Vollraten-Codec
  • In einem Ausführungsbeispiel wird das in 4 dargestellte 8-Impuls Codebuch 162 für jeden der vier Unterrahmen für Rahmen des Typs 1 durch den Vollraten-Codec 22 verwendet, wie vorher erörtert. Das Ziel für den fixierten Codebuchvektor (vk c) 504 ist das Langzeitfehlersignal 502, wie vorher beschrieben. Das durch t'(n) repräsentierte Langzeitfehlersignal 502 wird bestimmt, basierend auf der durch t(n) repräsentierten modifizierten gewichteten Sprache 350, wobei der adaptive Codebuchbeitrag von dem initialen Rahmenverarbeitungsmodul 44 entfernt wird, und zwar gemäß:
  • Figure 01070001
  • Während der Suche nach dem besten Vektor für den fixierten Codebuchvektor (vk c) 504 kann die Tonhöhenanhebung bzw. -steigerung in die Vorwärtsrichtung angewendet werden. Zusätzlich minimiert die Suchprozedur den fixierten Codebuchrest 508 unter Verwendung einer iterativen Suchprozedur mit gesteuerter Komplexität, um den besten Vektor für den fixierten Codebuchvektor (vk c) 504 zu bestimmen. Eine durch die Verstärkung (gk c) 506 repräsentierte initiale fixierte Codebuchverstärkung wird während der Suche bestimmt. Die Indices identifizieren den besten Vektor für den fixierten Codebuchvektor (vk c) 504 und bilden die fixierte Codebuchkomponente 146b, wie vorher erörtert.
  • 4.2.2.2 Fixierte Codebuchsuche für Halbraten-Codec
  • In einem Ausführungsbeispiel wird der Langzeitrest mit 13 Bits für jeden der drei Unterrahmen für als Typ 1 klassifizierte Rahmen für den Halbraten-Codec 24 repräsentiert, wie vorher erörtert. Der Langzeitrest kann in ähnlicher Weise wie die fixierte Codebuchsuche bei dem Vollraten-Codec 22 bestimmt werden. Ähnlich der fixierten Codebuchsuche für den Halbraten-Codec 24 für Rahmen vom Typ Null können die Einspeisung hochfrequenten Rauschens, die zusätzlichen Impulse, die durch hohe Korrelation in dem vorhergehenden Unterrahmen bestimmt werden, und der schwache Kurzzeitspektralfilter in die Impulsantwort des zweiten Synthesefilters 462 eingeführt werden. Zusätzlich kann auch eine Vorwärtstonhöhenanhebung in die Impulsantwort des zweiten Synthesefilters 462 eingeführt werden.
  • In einem Ausführungsbeispiel wird eine volle Suche für das 2-Impulscodebuch 196 und das 3-Impulscodebuch 197 durchgeführt, wie in 5 dargestellt ist. Das Impulscodebuch 196, 197 und der beste Vektor für den fixierten Codebuchvektor (vk c) 504, der das fixierte Codebuchfehlersignal 510 minimiert, werden zur Repräsentation des Langzeitrests für jeden Unterrahmen ausgewählt. Zusätzlich kann eine durch die Verstärkung (gk c) 506 repräsentierte initiale fixierte Codebuchverstärkung während der Suche bestimmt werden, und zwar ähnlich dem Vollraten-Codec 22. Die Indices identifizieren den besten Vektor für den fixierten Codebuchvektor (vk c) 504 und bilden die fixierte Codebuchkomponente 178b.
  • Wie vorher erörtert, wird das F1 oder H1 zweite Unterrahmenverarbeitungsmodul 74 oder 84 auf einer Unterrahmenbasis betrieben. Jedoch wird das F1 oder H1 zweite Rahmenverarbeitungsmodul 76 oder 86 auf einer Rahmenbasis betrieben. Entsprechend können durch das F1 oder H1 zweite Unterrahmenverarbeitungsmodul 74 oder 84 bestimmte Parameter in dem Zwischenspeichermodul 488 zur späteren Verwendung auf einer Rahmenbasis gespeichert werden. In einem Ausführungsbeispiel sind die gespeicherten Parameter der beste Vektor für den adaptiven Codebuchvektor (vk a) 498 und der beste Vektor für den fixierten Codebuchvektor (vk c) 504. Zusätzlich können ein modifiziertes Zielsignal 512 und die Verstärkungen (g ^k a), (gk c) 496 und 506, die die initialen adaptiven und fixierten Codebuchverstärkungen repräsentieren, gespeichert werden. Die Generierung des modifizierten Zielsignals 512 wird später beschrieben.
  • Bis jetzt sind der beste Vektor für den adaptiven Codebuchvektor (vk a) 498, der beste Vektor für den fixierten Codebuchvektor (vk c) 504 und die beste Tonhöhenverstärkungen für die quantisierte Tonhöhenverstärkung (g ^k a) 496 identifiziert worden. Unter Verwendung dieser besten Vektoren und besten Tonhöhenverstärkungen können die besten fixierten Codebuchverstärkungen für die Verstärkung (gk c) 506 bestimmt werden. Die besten fixierten Codebuchverstärkungen für die Verstärkung (gk c) 506 werden die vorher für die Verstärkung (gk c) 506 bestimmten unquantisierten initialen fixierten Code buchverstärkungen ersetzen. Um die besten fixierten Codebuchverstärkungen zu bestimmen, wird eine gemeinsame verzögerte Quantisierung der fixierten Codebuchverstärkungen für jeden Unterrahmen durchgeführt, und zwar unter das zweiten Rahmenverarbeitungsmodul 76 und 78.
  • 4.2.3 Zweites Rahmenverarbeitungsmodul
  • Das zweite Rahmenverarbeitungsmodul 76 und 86 wird auf einer Rahmenbasis betrieben, und zwar um die durch die fixierten Verstärkungskomponenten 150 und 182 repräsentierte fixierte Codebuchverstärkung zu generieren. Das modifizierte Ziel 512 wird zuerst bestimmt, und zwar in einer Weise ähnlich der Verstärkungsbestimmung und Quantisierung der als Typ Null klassifizierten Rahmen. Das modifizierte Ziel 512 wird für jeden Unterrahmen bestimmt und wird durch t''(n) repräsentiert. Das modifizierte Ziel kann abgeleitet werden unter Verwendung der besten Vektoren für den adaptiven Codebuchvektor (vk a) 498 und dem Codebuchvektor (vk c) 504, wie auch der adaptiven Codebuchverstärkung und dem Initialwert der fixierten Codebuchverstärkung und zwar abgeleitet aus Gleichung 18 durch:
  • Figure 01090001
  • Ein Initialwert für die fixierte Codebuchverstärkung für jeden Unterrahmen, der bei der Suche verwendet werden soll, kann durch Minimierung erhalten werden:
    Figure 01090002
    wobei va(n) der adaptive Codebuchbeitrag für einen bestimmten Unterrahmen und vc(n) der fixierte Codebuchbeitrag für einen bestimmten Unterrahmen ist. Zusätzlich ist g ^a die quantisierte und normalisierte adaptive Codebuchverstärkung für einen bestimmten Unterrahmen, die eines der Elemente einer quanti sierten fixierten Codebuchverstärkung (g ^k c) 513 ist. Die berechnete fixierte Codebuchverstärkung gc wird weiter normalisiert und korrigiert, und zwar zum Liefern der besten Energieübereinstimmung bzw. Anpassung zwischen dem dritten re-synthetisierten Sprachsignal und dem modifizierten Zielsignal 512, das zwischengespeichert worden ist. Unquantisierte fixierte Codebuchverstärkungen aus den vorhergehenden Unterrahmen können verwendet werden zum Generieren des adaptiven Codebuchvektors (vk a) 498 für die Verarbeitung des nächsten Unterrahmens gemäß Gleichung 21.
  • Die Suche nach Vektoren für die quantisierte fixierte Codebuchverstärkung (g ^k c) 513 wird innerhalb des 3D/4D VQ Verstärkungscodebuchs 492 durchgeführt. Das 3D/4D VQ Verstärkungscodebuch 492 kann der vorher erörterte mehrdimensionale Verstärkungsquantisierer und die zugeordnete Verstärkungsquantisierungstabelle sein. In einem Ausführungsbeispiel kann das 3D/4D VQ Verstärkungscodebuch 492 der vorher erörterte 4D verzögerte VQ Verstärkungsquantisierer 168 für den Vollraten-Codec 22 sein. Wie vorher erörtert, kann der 4D verzögerte VQ Verstärkungsquantisierer 168 betrieben werden unter Verwendung der assoziierten verzögerten Verstärkungsquantisierungstabelle, die als Tabelle 5 dargestellt ist. In einem anderen Ausführungsbeispiel kann das 3D/4D VQ Verstärkungscodebuch 492 der vorher erörterte 3D verzögerte VQ Verstärkungsquantisierer 200 für den Halbraten-Codec 24 sein. Der 3D verzögerter VQ Verstärkungsquantisierer 200 kann betrieben werden unter Verwendung der verzögerten Verstärkungsquantisierungstabelle, die als die vorher erörterte Tabelle 8 dargestellt ist.
  • Das 3D/4D VQ Verstärkungscodebuch 492 kann nach Vektoren für die quantisierte fixierte Codebuchverstärkung (g ^k c) 513 durchsucht werden, die die Energie ähnlich dem vorher erörterten 2D VQ Verstärkungscodebuch 412 der 10 minimiert. Die quantisierten Vektoren in dem 3D/4D VQ Verstärkungscodebuch 492 repräsentieren tatsächlich einen Korrekturfaktor für die vorhergesagte fixierte Codebuchverstärkung, wie vorher erörtert. Während der Suche multipliziert der dritte Multiplizierer 476 den adaptiven Codebuchvektor (vk a) 498 mit der quantisierten Tonhöhenverstärkung (g ^k a) 496 und zwar nach der Bestimmung des modifizierten Ziels 512. Zusätzlich multipliziert der vierte Multiplizierer 478 den fixierten Codebuchvektor (vk c) 504 mit der quantisierten fixierten Codebuchverstärkung (g ^k c) 513. Der Addierer 480 addiert die resultierenden Signale von den Multiplizierern 476 und 478.
  • Das resultierende Signal aus dem Addierer 480 wird durch das dritte Synthesefilter 482 und das Wahrnehmungsgewichtungsfiltermodul 484 gegeben, um ein drittes re-synthesiertes Sprachsignal 514 zu erzeugen. Wie bei den ersten und zweiten Synthesefiltern 460, 462 empfängt das dritte Synthesefilter 482 die quantisierten LPC Koeffizienten Aq(z) 342 von dem LSF Quantisierungsmodul 334 als Teil der Verarbeitung. Der dritte Subtrahierer 486 subtrahiert das dritte re-synthetisierte Sprachsignal 514 von dem modifizierten Zielsignal 512, das vorher in dem Zwischenspeichermodul 488 gespeichert wurde. Das resultierende Signal ist der gewichtete mittlere quadratische Fehler, der als ein drittes Fehlersignal 516 bezeichnet wird.
  • Das dritte Minimierungsmodul 490 empfängt das dritte Fehlersignal 516, das den Fehler repräsentiert, der aus der Quantisierung der fixierten Codebuchverstärkung durch das 3D/4D VQ Verstärkungscodebuch 492 resultiert. Das dritte Minimierungsmodul 490 verwendet das dritte Fehlersignal 516, und zwar zum Steuern der Suche und Selektion von Vektoren, aus dem 3D/4D VQ Verstärkungscodebuch 492, um die Energie des dritten Fehlersignals 516 zu reduzieren. Der Suchprozess wird wiederholt bis das dritte Minimierungsmodul 490 den besten Vektor selektiert hat und zwar aus dem 3D/4D VQ Verstärkungscodebuch 492 für jeden Unterrahmen, der den Fehler in dem dritten Fehlersignal 516 minimiert. Sobald die Energie des dritten Fehlersignals 516 minimiert worden ist, wird die Indexstelle der quantisierten fixierten Codebuchverstärkung (g ^k c) 513 in dem 3D/4D VQ Verstärkungscodebuch 492 ver wendet, und zwar zum Generieren der fixierten Codebuchverstärkungskomponente 150b für den Vollraten-Codec 22 und der fixierten Codebuchverstärkungskomponente 182b für den Halbraten-Codec 24.
  • 4.2.3.1 3D/4D VQ Verstärkungscodebuch
  • In einem Ausführungsbeispiel, wenn das 3D/4D VQ Verstärkungscodebuch 492 ein vierdimensionales Codebuch ist, kann es durchsucht werden, um Folgendes zu minimieren:
    Figure 01120001
    wobei die quantisierten Tonhöhenverstärkungen {g ^1 a, g ^2 a, g ^3 a, g ^4 a} vom initialen Rahmenverarbeitungsmodul 44 stammen, und {t1(n), t2(n), t3(n), t4(n)}, {v1 a(n), v2 a(n), v3 a(n), v4 a(n)} und {v1 c(n), v2 c(n), v3 c(n), v4 c(n)} während der Unterrahmenverarbeitung zwischengespeichert werden können, wie vorher erörtert. In einem beispielhaften Ausführungsbeispiel werden die fixierten Codebuchverstärkungen {g ^1 c, g ^2 c, g ^3 c, g ^4 c} von einem 10-Bitcodebuch abgeleitet, wobei die Einträge des Codebuchs einen vierdimensionalen Korrekturfaktor für die vorhergesagten fixierten Codebuchverstärkungen enthalten, wie vorher erörtert. Zusätzlich gilt n = 40 um 40 Abtastungen pro Rahmen zu repräsentieren.
  • In einem anderen Ausführungsbeispiel, wenn das 3D/4D VQ Verstärkungscodebuch 492 ein dreidimensionales Codebuch ist, kann es durchsucht werden, um Folgendes zu minimieren:
    Figure 01130001
    wobei die quantisierten Tonhöhenverstärkungen {g ^1 a, g ^2 a, g ^3 a} von dem initialen Rahmenverarbeitungsmodul 44 herkommen und {t1(n), t2(n), t3(n)}, {v1 a(n), v2 a(n), v3 a(n)} und {v1 c(n), v2 c(n), v3 c(n)} während der Unterrahmenverarbeitung zwischengespeichert werden können, wie vorher erörtert. In einem beispielhaften Ausführungsbeispiel werden die fixierten Codebuchverstärkungen {g ^1 c, g ^2 c, g ^3 c} von einem 8-Bit-Codebuch abgeleitet, wobei die Einträge des Codebuchs einen dreidimensionalen Korrekturfaktor für die vorhergesagten fixierten Codebuchverstärkungen beinhalten. Die Prädiktion der fixierten Codebuchverstärkungen kann auf gleitender Mittelwertprädiktion der fixierten Codebuchenergie in dem log-Bereich (log domain) basieren.
  • 5.0 Decodiersystem
  • Jetzt bezugnehmend auf 12 wird ein erweitertes Blockdiagramm dargestellt, das die Voll- und Halbratendecoder 90 und 92 der 3 repräsentiert. Die Voll- oder Halbratendecoder 90 oder 92 umfassen die Anregungsrekonstruktionsmodule 104, 106, 114 und 116 und die Linearprädiktionskoeffizienten (LPC) Rekonstruktionsmodule 107 und 118. Ein Ausführungsbeispiel jedes der Anregungsrekonstruktionsmodule 104, 106, 114 und 116 umfasst das adaptive Codebuch 368, das fixierte Codebuch 390, das 2D VQ Verstärkungscodebuch 412, das 3D/4D gesteuerte VQ Codebuch 454 und das 3D/4D VQ Verstärkungscodebuch 492. Die Anregungsrekonstruktionsmodule 104, 106, 114 und 116 umfassen auch einen ersten Multiplizierer 530, einen zweiten Multiplizierer 532 und einen Addierer 534. In einem Ausführungsbeispiel umfassen die LPC Rekonstruktionsmodule 107, 118 ein LSF Decodiermodul 536 und ein LSF Konvertierungsmodul 538. Zusätzlich umfasst der Halbraten- Codec 24 das Prädiktorschaltmodul 336 und der Vollraten-Codec 22 umfasst das Interpolationsmodul 338.
  • In 12 sind auch das Synthesefiltermodul 98 und das Nachverarbeitungsmodul 100 dargestellt. In einem Ausführungsbeispiel umfasst das Nachverarbeitungsmodul 100 ein Kurzzeitnachfiltermodul 540, ein Langzeitfiltermodul 542, ein Neigungskompensationsfiltermodul (tilt compensation filter module) 544 und ein adaptives Verstärkungssteuermodul 546. Gemäß der Ratenauswahl kann der Bitstrom decodiert werden, um die nachverarbeitete synthetisierte Sprache 20 zu generieren. Die Decoder 90 und 92 führen eine inverse Abbildung (inverse mapping) der Komponenten des Bitstroms auf Algorithmusparametern durch. Die inverse Abbildung kann von einer typklassifikationsabhängigen Synthese innerhalb der Voll- und Halbraten-Codecs 22 und 24 gefolgt werden.
  • Die Decodierung für den Viertelraten-Codec 26 und den Achtelraten-Codec 28 ist ähnlich der für die Voll- und Halbraten-Codecs 22 und 24. Jedoch verwenden die Viertel- und Achtelraten-Codecs 26 und 28 Vektoren ähnlicher, jedoch zufälliger Zahlen, und die Energieverstärkung, wie vorher erörtert, und zwar anstelle der adaptiven und der fixierten Codebücher 368 und 390, und assoziierter Gewinne. Die Zufallszahlen und die Energieverstärkung können verwendet werden, um eine Anregungsenergie zu rekonstruieren, die die Kurzzeitanregung eines Rahmens repräsentiert. Die LPC Rekonstruktionsmodule 122 und 126 sind auch ähnlich jenen des Voll- und Halbraten-Codecs 22, 24 mit der Ausnahme des Prädiktorschaltmoduls 336 und dem Interpolationsmodul 338.
  • 5.1 Anrepungsrekonstruktion (Excitation Reconstruction)
  • Innerhalb der Voll- und Halbratendecoder 90 und 92 ist der Betrieb der Anregungsrekonstruktionsmodule 104, 106, 114 und 116 weitgehend abhängig von der Typklassifikation, die durch die Typkomponente 142 und 174 geliefert wird. Das adaptive Codebuch 368 empfängt die Tonhöhenspur 348. Die Ton höhenspur 348 wird durch das Decodiersystem 16 rekonstruiert, und zwar aus der adaptiven Codebuchkomponente 144 und 176, die in dem Bitstrom durch das Codiersystem 12 geliefert wird. Abhängig von der durch die Typkomponente 142 und 174 gelieferte Typklassifikation liefert das adaptive Codebuch 368 einen quantisierten adaptiven Codebuchvektor (vk a) 550 an den Multiplizierer 530. Der Multiplizierer 530 multipliziert den quantisierten adaptiven Codebuchvektor (vk a) 550 mit einem adaptiven Codebuchverstärkungsvektor (gk a) 552. Die Auswahl des adaptiven Codebuchverstärkungsvektors (gk a) 552 hängt auch von der durch die Typkomponente 142 und 174 gelieferten Typklassifikation ab.
  • In einem beispielhaften Ausführungsbeispiel, falls der Rahmen beim Vollraten-Codec 22 als Typ Null klassifiziert wird, liefert das 2D VQ Verstärkungscodebuch 412 den adaptiven Codebuchverstärkungsvektor (gk a) 552 an den Multiplizierer 530. Der adaptive Codebuchverstärkungsvektor (gk a) 552 wird aus der adaptiven und fixierten Codebuchverstärkungskomponente 148a und 150a bestimmt. Der adaptive Codebuchverstärkungsvektor (gk a) 552 ist der gleiche als Teil des besten Vektors für den quantisierten Verstärkungsvektor (g ^ac) 433, der durch den Verstärkungs- und Quantisierungsabschnitt 366 des F0 ersten Unterrahmenverarbeitungsmoduls 70 bestimmt wird, und zwar wie vorher erörtert. Der quantisierte adaptive Codebuchvektor (vk a) 550 wird von der geregelten adaptiven Codebuchkomponente 144b bestimmt. In ähnlicher Weise ist der quantisierte adaptive Codebuchvektor (vk a) 550 der gleiche wie der beste Vektor für den adaptiven Codebuchvektor (va) 382, der durch das F0 erste Unterrahmenverarbeitungsmoduls 70 bestimmt wird.
  • Das 2D VQ Verstärkungscodebuch 412 ist zweidimensional und liefert den adaptiven Codebuchverstärkungsvektor (gk a) 552 an den Multiplizierer 553 und einen fixierten Codebuchverstärkungsvektor (gk c) 554 an den Multiplizierer 532. Der fixierte Codebuchverstärkungsvektor (gk c) 554 wird in gleicher Weise aus der adaptiven und fixierten Codebuchverstärkungskomponente 148a und 150a bestimmt und ist Teil des besten Vektors für den quantisierten Verstärkungsvektor (g ^ac) 433. Auch basierend auf der Typklassifikation liefert das fixierte Codebuch 390 einen quantisierten fixierten Codebuchvektor (vk a) 556 an den Multiplizierer 532. Der quantisierte fixierte Codebuchvektor (vk a) 556 wird rekonstruiert aus der Codebuchidentifikation, den Impulsstellen (oder dem gaussförmigen Codebuch 195 für den Halbraten-Codec 24) und den Impulsvorzeichen, die durch die fixierte Codebuchkomponente 146a geliefert werden. Der quantisierte fixierte Codebuchvektor (vk a) 556 ist der gleiche wie der beste Vektor für den fixierten Codebuchvektor (vc) 402, der durch das F0 erste Unterrahmenverarbeitungsmodul 70 bestimmt wird, und zwar wie vorher erörtert. Der Multiplizierer 532 multipliziert den quantisierten fixierten Codebuchvektor (vk a) 556 mit dem fixierten Codebuchverstärkungsvektor (gk c) 554.
  • Falls die Typklassifikation des Rahmens Typ Eins ist, liefert ein mehrdimensionaler Vektorquantisierer den adaptiven Codebuchverstärkungsvektor (gk a) 552 an den Multiplizierer 530. Dabei ist die Anzahl der Dimensionen in dem Mehrdimensionalen Vektorquantisierer von der Anzahl der Unterrahmen abhängig. In einem Ausführungsbeispiel kann der mehrdimensionale Vektorquantisierer die 3D/4D gesteuerte VQ 454 sein. In ähnlicher Weise liefert ein mehrdimensionaler Vektorquantisierer den fixierten Codebuchverstärkungsvektor (gk c) 554 an den Multiplizierer 532. Der adaptive Codebuchverstärkungsvektor (gk a) 552 und der fixierte Codebuchverstärkungsvektor (gk c) 554 werden durch die Verstärkungskomponente 147 und 179 geliefert, und sind die gleichen wie die quantisierte Tonhöhenverstärkung (g ^k a) 496 bzw. die quantisierte fixierte Codebuchverstärkung (g ^k c) 513.
  • Bei den als Typ Eins oder Typ Null klassifizierten Rahmen wird die Ausgabe vom ersten Multiplizierer 530 durch den Addierer 534 empfangen und wird zu der Ausgabe vom zweiten Multiplizierer 532 addiert. Die Ausgabe vom Addierer 534 ist die Kurzzeitanregung. Die Kurzzeitanregung wird an das Synthesefiltermodul 98 auf der Kurzzeitanregungsleitung 128 geliefert.
  • 5.2 LPC Rekonstruktion
  • Die Generierung der Kurzzeit (LPC) Prädiktionskoeffizienten in den Decodern 90 und 92 ist ähnlich der Verarbeitung in dem Codiersystem 12. Das LSF Decodiermodul 536 rekonstruiert die quantisierten LSFs aus der LSF Komponente 140 und 172. Das LSF Decodiermodul 536 verwendet die gleiche LSF Prädiktionsfehlerquantisierungstabelle und LSF Prädiktorkoeffiziententabellen, die vom Codiersystem 12 verwendet werden. Für den Halbraten-Codec 24 wählt das Prädiktorschaltmodul 336 einen der Sätze der Prädiktorkoeffizienten und zwar um die vorhergesagten LSFs wie durch die LSF Komponente 140, 172 angewiesen, zu berechnen. Die Interpolation der quantisierten LSFs findet statt unter Verwendung des gleichen linearen Interpolationspfads, der im Codiersystem 12 verwendet wird. Für den Vollraten-Codec 22 für als Typ Null klassifizierte Rahmen wählt das Interpolationsmodul 338 einen der gleichen Interpolationspfade, die im Codiersystem 12 verwendet werden, und zwar wie durch die LSF Komponente 140 und 172 angewiesen. Der Gewichtung der quantisierten LSFs folgt eine Konvertierung in die quantisierten LPC Koeffizienten Aq(z) 342 und zwar innerhalb des LSF Konvertierungsmoduls 538. Die quantisierten LPC Koeffizienten Aq(z) 342 sind die Kurzzeitprädiktionskoeffizienten, die an das Synthesefilter 98 auf der Kurzzeitprädiktionskoeffizientenleitung 130 geliefert werden.
  • 5.3 Synthesefilter
  • Die quantisierten LPC Koeffizienten Aq(z) 342 können durch das Synthesefilter 98 zum Filtern der Kurzzeitprädiktionskoeffizienten verwendet werden. Das Synthesefilter 98 kann ein kurzzeitinverses Prädiktionsfilter sein, das synthetisierte Sprache vor der Nachverarbeitung generiert. Die synthetisierte Sprache kann dann durch das Nachverarbeitungsmodul 100 gegeben werden. Die Kurzzeitprädikitonskoeffizienten können auch an das Nachverarbeitungsmodul 100 geliefert werden.
  • 5.4 Nachverarbeitung (Post-Processing)
  • Das Nachverarbeitungsmodul 100 verarbeitet die synthetisierte Sprache, basierend auf der Ratenauswahl bzw. Ratenselektion und den Kurzzeitprädiktionskoeffizienten. Das Kurzzeitnachfiltermodul 540 kann das erste zum Verarbeiten der synthetisierten Sprache sein. Filterparameter innerhalb des Kurzzeitnachfiltermoduls 540 können angepasst werden und zwar gemäß der Ratenauswahl und der durch das Charakterisierungsmodul 328 bestimmten Langzeitspektralcharakteristik und zwar wie vorher mit Bezug auf 9 erörtert. Der Kurzzeitnachfilter kann beschrieben werden durch:
    Figure 01180001
    wobei in einem beispielhaften Ausführungsbeispiel γ1,n = 0,75·γ1,n–1 + 0,25·r0 und γ2 = 0,75 und r0 bestimmt wird, und zwar basierend auf der Ratenauswahl und der Langzeitspektralcharakteristik. Die Verarbeitung wird in dem Langzeitfiltermodul 542 fortgesetzt.
  • Das Langzeitfiltermodul 542 führt eine Feinabstimmungssuche (fine tuning search) für die Tonhöhenperiode in der synthetisierten Sprache durch. In einem Ausführungsbeispiel wird die Feinabstimmungssuche durchgeführt unter Verwendung einer Tonhöhenkorrelation und einer ratenabhängigen verstärkungsgesteuerten harmonischen Filterung. Die harmonische Filterung wird für den Viertelraten-Codec 26 und den Achtelraten-Codec 28 deaktiviert bzw. abgeschaltet. Das Neigungskompensationsfiltermodul 544 ist in einem Ausführungsbeispiel ein Filter erster Ordnung mit endlicher Impulsantwort (first-order finite impulse response (FIR) filter). Das FIR Filter kann abgestimmt werden und zwar gemäß der spektralen Neigung des Wahrnehmungsfiltermoduls 314, das vorher mit Bezug auf 9 erörtert wurde. Das Filter kann auch gemäß der Langzeitspektralcharakteristik abgestimmt werden, die durch das Charak terisierungsmodul 328 bestimmt wurde, das auch mit Bezug auf 9 erörtert wurde.
  • Die Nachfilterung kann mit einem adaptiven Verstärkungssteuermodul 546 beendet werden. Das adaptive Verstärkungssteuermodul 546 bringt den Energiepegel der synthetisierten Sprache, die innerhalb des Nachverarbeitungsmoduls 100 verarbeitet worden ist, auf den Pegel der synthetisierten Sprache vor der Nachverarbeitung. Pegelglättung und Adaptionen können auch innerhalb des adaptiven Verstärkungssteuerungsmoduls 546 durchgeführt werden. Das Ergebnis der Verarbeitung durch das Nachverarbeitungsmodul 100 ist die nachverarbeitete synthetisierte Sprache 20.
  • In einem Ausführungsbeispiel des Decodiersystems 16 werden durch das Decodiersystem 16 empfangene Rahmen, die gelöscht wurden, beispielsweise aufgrund von Verlust des Signals während der Funkübertragung, durch das Decodiersystem 16 identifiziert. Das Decodiersystem 16 kann danach eine Rahmenlöschungsverschleierungsoperation durchführen. Die Operation umfasst das Interpolieren von Sprachparametern für den gelöschten Rahmen aus dem vorherigen Rahmen. Die extra polierten Sprachparameter können zum Synthetisieren des gelöschten Rahmens verwendet werden. Zusätzlich kann Parameterglättung durchgeführt werden, um kontinuierliche Sprache für die Rahmen, die dem gelöschten Rahmen folgen, sicherzustellen. In einem anderen Ausführungsbeispiel umfasst das Decodiersystem 16 auch Bestimmungsfähigkeiten für schlechte Rate (bad rate). Identifikation einer schlechten Ratenauswahl für einen Rahmen, der durch das Decodiersystem 16 empfangen wird, wird erreicht durch Identifizieren illegaler Bitsequenzen in dem Bitstrom und Deklarieren, dass der spezielle Rahmen gelöscht ist.
  • Die vorher erörterten Ausführungsbeispiele des Sprachkomprimierungssystems 10 führen eine Sprachkomprimierung mit variabler Rate durch, und zwar unter Verwendung des Vollraten-Codecs 22, des Halbraten-Codecs 24, des Viertelraten-Codecs 26 und des Achtelraten-Codec 28. Die Codecs 22, 24, 26 und 28 operieren mit unterschiedlichen Bitzuordnungen und Bitraten, unter Verwendung unterschiedlicher Codieransätze, zum Codieren von Rahmen des Sprachsignals 18. Der Codieransatz der Voll- und Halbraten-Codecs 22 und 24 besitzt unterschiedliche Wahrnehmungsanpassung, unterschiedliche Wellenformanpassung und unterschiedliche Bitzuordnungen, und zwar abhängig von der Typklassifikation eines Rahmens. Die Viertel- und Achtelraten-Codecs 26 und 28 codieren Rahmen nur unter Verwendung von parametrischer Wahrnehmungsrepräsentationen. Ein Modussignal identifiziert eine gewünschte durchschnittliche Bitrate für das Sprachkomprimierungssystem 10. Das Sprachkomprimierungssystem 10 aktiviert die Codecs 22, 24, 26 und 28 selektiv, und zwar zum Ausgleichen bzw. Abwägen zwischen der gewünschten durchschnittlichen Bitrate und der Optimierung der wahrnehmbaren Qualität der nachbearbeiteten synthetisierten Sprache 20 um ein Gleichgewicht herzustellen.
  • Während verschiedene Ausführungsbeispiele der Erfindung beschrieben wurden, ist es dem Fachmann klar, dass viele weitere Ausführungsbeispiele und Implementierungen möglich sind, die im Rahmen dieser Erfindung liegen. Entsprechend soll die Erfindung nicht beschränkt sein außer angesichts der angehängten Ansprüche und ihrer Äquivalente.

Claims (68)

  1. Ein Sprachkomprimierungssystem mit variabler Rate bzw. Geschwindigkeit (10) zum Verarbeiten eines Sprachsignals (18), wobei das Sprachkomprimierungssystem mit variabler Rate Folgendes aufweist: ein Codiersystem (12), das benutzt wird bzw. betreibbar ist zum Extrahieren und Codieren von Parametern eines Rahmens des Sprachsignals, wobei das Codiersystem Folgendes aufweist: ein Teilrahmen- bzw. Unterrahmenverarbeitungsmodul (70, 74, 80, 84), das benutzt wird zum Codieren von Parametern, die für einen Unterrahmen des Rahmens repräsentativ sind, und zwar als eine Funktion einer Geschwindigkeits- bzw. Ratenauswahl, die eine Rate aus einer ersten Rate und einer zweiten Rate aufweist und einer Typklassifikation, die einen Typ aus einem ersten Typ (152, 184) und einem zweite Typ (154, 186) aufweist und wobei der erste Typ und der zweite Typ Bit-Zuordnungen für die erste Rate und die zweite Rate anzeigen, wobei das Unterrahmenverarbeitungsmodul Folgendes aufweist: einen Verstärkungsquantisierungsabschnitt (366), der benutzt wird zum gemeinsamen Codieren einer adaptiven Codebuchverstärkung und einer fixierten bzw. festen Codebuchverstärkung, wenn die Typklassifikation vom ersten Typ ist; und ein Rahmenverarbeitungsmodul (44, 72, 76, 82, 86), das benutzt wird zum Codieren von Parametern, die für den Rahmen repräsentativ sind, und zwar als eine Funktion der Ratenauswahl und der Typklassifikation, wobei das Rahmenverarbeitungsmodul Folgendes aufweist: ein 3D-/4D-VQ-Modul mit offener Schleife (3D-/4D-VQ-Modulsteuerung, bzw. gesteuertes 3D-/4D-VQ-Modul) (454), das benutzt wird zum Codieren der adaptiven Codebuchverstärkung, wenn die Typklassifikation vom zweiten Typ ist; und ein 3D-/4D-Verstärkungscodebuch (492), wobei das Rahmenverarbeitungsmodul benutzt wird zum Codieren der fixierten Codebuchverstärkung mit dem 3D-/4D-VQ-Verstärkungscodebuch, wenn die Typklassifikation vom zweiten Typ ist.
  2. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 1, wobei das Unterrahmenverarbeitungsmodul ferner einen adaptiven Codebuchabschnitt (362) aufweist, der benutzt wird zum Erzeugen eines Tonhöhenabstands bzw. Tonhöhennacheilens (pitch lag) mit geschlossener Schleife (Tonhöhenabstandsregelung, bzw. geregelter Tonhöhenabstand), wenn die Typklassifikation vom ersten Typ ist.
  3. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 1 oder 2, wobei das Unterrahmenverarbeitungsmodul ferner ein Tonhöhenschätzungsmodul mit offener Schleife (Tonhöhenschätzungsmodulsteuerung) (316) aufweist, das benutzt wird zum Erzeugen eines Tonhöhenabstands mit offener Schleife, wenn die Typklassifikation vom zweiten Typ ist.
  4. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 1, 2 oder 3, wobei das Rahmenverarbeitungsmodul ein Tonhöhenvorverarbeitungsmodul (322) aufweist, das benutzt wird zum Modifizieren des Sprachsignals um das Codieren zu verbessern.
  5. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 1, wobei das Rahmenverarbeitungsmodul ein Interpolationsmodul (338) aufweist, das benutzt wird zum Auswählen eines Interpolationspfades, wenn die Typklassifikation vom ersten Typ ist und die Ratenauswahl die erste Rate ist, wobei das Rahmenverarbeitungsmodul benutzt wird zum Codieren von Kurzzeitvorhersageparametern als eine Funktion des Interpolationspfades.
  6. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 1, wobei das Rahmenverarbeitungsmodul ein Vorhersageschaltermodul (336) aufweist, das benutzt wird zum Erzeugen von Vorhersagekoeffizienten bzw. Prädiktorkoeffizienten, wenn die Ratenauswahl die zweite Rate ist, wobei das Rahmenverarbeitungsmodul benutzt wird zum Codieren von Kurzzeitvorhersageparametern als eine Funktion der Vorhersagekoeffizienten.
  7. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 1, wobei das Rahmenverarbeitungsmodul ein Tonhöhenvorverarbeitungsmodul (pitch pre-processing module) (322) aufweist, das benutzt wird zum Modifizieren des Sprachsignals um das Codieren zu verbessern.
  8. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7, wobei das Tonhöhenvorverarbeitungsmodul benutzt wird zum Durchführen kontinuierlicher zeitlicher Verformung (time warping) des Sprachsignals.
  9. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7 oder 8, wobei das Tonhöhenvorverarbeitungsmodul benutzt wird zum Modifizieren des Sprachsignals als eine Funktion einer Grad- bzw. Qualitäts-Charakterisierung (grade characterization) des Sprachsignals.
  10. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7, 8 oder 9, wobei das Tonhöhenvorverarbeitungsmodul benutzt wird zum Durchführen von Wellenforminterpolation des Sprachsignals.
  11. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7, wobei das Rahmenverarbeitungsmodul ein Interpolationsmodul (338) aufweist, das benutzt wird zum Auswählen eines Interpolationspfades, wenn die Typklassifikation vom ersten Typ ist und die Ratenauswahl die erste Rate ist, wobei das Rahmenverarbeitungsmodul benutzt wird zum Codieren von Kurzzeitvorhersageparametern als eine Funktion des Interpolationspfades.
  12. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7, wobei das Rahmenverarbeitungsmodul ein Vorhersageschaltermodul (336) aufweist, das benutzt wird zum Auswählen von Vorhersagekoeffizienten, wenn die Ratenauswahl die zweite Rate ist, wobei das Rahmenverarbeitungsmodul benutzt wird zum Codieren von Kurzzeitvorhersageparametern als eine Funktion der Vorhersagekoeffizienten.
  13. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7, wobei das Rahmenverarbeitungsmodul benutzt wird zum Codieren von Kurzzeitvorhersageparametern, eines Tonhöhenabstands mit offener Schleife, einer adaptiven Codebuchverstärkung und einer fixierten Codebuchverstärkung, wenn die Typklassifikation vom zweiten Typ ist.
  14. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7 oder 13, wobei das Rahmenverarbeitungsmodul ein 3D-/4D-VQ-Modul mit offener Schleife (454) aufweist, das benutzt wird zum Codieren einer adaptiven Codebuchverstärkung mit einer Vorverstärkungsquantisierungstabelle, wenn die Typklassifikation vom zweiten Typ ist.
  15. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7, 13 oder 14, wobei das Rahmenverarbeitungsmodul ein 3D-/4D-VQ-Verstärkungscodebuch (492) aufweist, das benutzt wird zum Codieren einer fixierten Codebuchverstärkung mit einer verzögerten Verstärkungsquantisierungstabelle, wenn die Typklassifikation vom zweiten Typ ist.
  16. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7, wobei das Unterrahmenverarbeitungsmodul benutzt wird zum Codieren eines Tonhöhenabstands mit offener Schleife, eines fixierten Codebuchbeitrags, einer adaptiven Codebuchverstärkung und einer festen Codebuchverstärkung, wenn die Typklassifikation vom ersten Typ ist.
  17. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7, wobei das Unterrahmenverarbeitungsmodul benutzt wird zum Suchen eines fixierten Codebuchs (390) und zwar zum Bestimmen eines fixierten Codebuchbeitrags für den Unterrahmen, wobei das fixierte Codebuch drei 5-Impuls-Codebücher (160) aufweist, wenn die Ratenauswahl die erste Rate ist und die Typ Klassifikation vom ersten Typ ist.
  18. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7 oder 17, wobei das Unterrahmenverarbeitungsmodul benutzt wird zum Suchen eines fixierten Codebuchs (390) und zwar zum Bestimmen eines fixierten Co debuchbeitrags für den Unterrahmen, wobei das fixierten Codebuch ein 8-Impuls-Codebuch (162) aufweist, wenn die Ratenauswahl die erste Rate ist und die Typklassifikation vom zweiten Typ ist.
  19. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7, wobei das Unterrahmenverarbeitungsmodul benutzt wird zum Suchen eines fixierten Codebuchs (390) und zwar zum Bestimmen eines fixierten Codebuchbeitrags für den Unterrahmen, wobei das fixierte Codebuch ein 2-Impuls-Codebuch (192), ein 3-Impuls-Codebuch (194) und ein Gauss-förmiges Codebuch (195) aufweist, wenn die Ratenauswahl die zweite Rate ist und die Typklassifikation vom ersten Typ ist.
  20. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7 oder 19, wobei das Unterrahmenverarbeitungsmodul benutzt wird zum Suchen eines fixierten Codebuchs (390) und zwar zum Bestimmen eines fixierten Codebuchbeitrags für den Unterrahmen, wobei das fixierte Codebuch ein 2-Impuls-Codebuch (196) und ein 3-Impuls-Codebuch (197) aufweist, wenn die Ratenauswahl die zweite Rate ist und die Typklassifikation vom zweiten Typ ist.
  21. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 19 oder 20, wobei das Unterrahmenverarbeitungsmodul benutzt wird zum Durchführen von Verbesserungen für das fixierte Codebuch, wobei die Verbesserungen wenigstens Injektion von Hochfrequenzrauschen oder Einbeziehung von zusätzlichen Impulsen und Filterung aufweisen.
  22. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7, wobei das Unterrahmenverarbeitungsmodul benutzt wird zum Bestimmen eines quantisierten Verstärkungsvektors für den Unterrahmen, wenn die Ratenauswahl die erste Rate oder die zweite Rate ist und die Typklassifikation vom ersten Typ ist, wobei der quantisierte Verstärkungsvektor repräsentativ für gemeinsames Codieren einer adaptiven Codebuchverstärkung und einer fixierten Codebuchverstärkung ist.
  23. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 7, wobei die erste Rate 8,5 kBit pro Sekunde und die zweite Rate 4,0 kBit pro Sekunde ist.
  24. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 1, das ferner Folgendes aufweist: eine Linienspektrum-Frequenzvorhersagefehler-Quantisierungstabelle als eine Funktion der Ratenauswahl auswählbar, wobei die Linienspektrum-Frequenzvorhersage-Quantisierungstabelle mit der Codierung von Kurzzeitvorhersageparametern des Sprachsignals assoziiert ist; eine 2D-Verstärkungsquantisierungstabelle, die mit dem Quantisierungsabschnitt bzw. -Sektion assoziiert ist; eine Vorverstärkungsquantisierungstabelle, die als eine Funktion der Ratenauswahl auswählbar ist, wobei die Vorverstärkungsquantisierungstabelle mit der Codierung der adaptiven Codebuchverstärkung assoziiert ist, wenn die Typklassifikation vom zweiten Typ (154, 186) ist; eine verzögerte Verstärkungsquantisierungstabelle, die als eine Funktion der Ratenauswahl auswählbar ist, wobei die verzögerte Verstärkungsquantisierungstabelle mit der Codierung der fixierten Codebuchverstärkung assoziiert ist; und ein Decodiersystem (16), das mit dem Codiersystem in Kommunikation ist, wobei das Codiersystem (16) benutzt wird zum Decodieren des Sprachsignals mit der Linienspektrum-Frequenzvorhersagefehler-Quantisierungstabelle und wenigstens einem der folgenden: der 2D-Verstärkungsquantisierungstabelle, der Vorverstärkungsguantisierungstabelle und der verzögerten Verstärkungsquantisierungstabelle als eine Funktion der Ratenauswahl und der Typklassifikation.
  25. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 24, wobei die Linienspektrum-Frequenzvorhersagefehler-Quantisierungstabelle vier Stufen (156) aufweist, wenn die Ratenauswahl eine Vollrate ist.
  26. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 25, wobei die erste Stufe 128 Quantisierungsvektoren aufweist.
  27. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 24, wobei die Linienspektrum-Frequenzvorhersagefehler-Quantisierungstabelle drei Stufen (188) aufweist, wenn die Ratenauswahl eine Halbrate ist.
  28. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 27, wobei eine erste Stufe und eine zweite Stufe jeweils 128 Quantisierungsvektoren aufweisen und eine dritte Stufe 64 Quantisierungsvektoren aufweist.
  29. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 28, wobei die erste Stufe einen ersten Quantisierungsvektor dargestellt durch {0,00842379, 0,00868718, 0,01533677, 0,00423439, 0,00886805, -0,02132286, -0,03152681, -0,01975061, 0,01152093, -0,01341948} und einen zweiten Quantisierungsvektor dargestellt durch {0,02528175, 0,04259634, 0,03789221, 0,01659535, -0,00266498, -0,01529545, -0,01653101, -0,01528401, -0,01047642, -0,01127117} aufweist.
  30. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 28, wobei die zweite Stufe einen ersten Quantisierungsvektor dargestellt durch {0,00589332, 0,00462334, -0,00937151, -0,01478366, 0,00674597, 0,00164302, -0,00890749, -0,00091839, 0,00487032, 0,00012026} und einen zweiten Quantisierungsvektor dargestellt durch {-0,00346857, -0,00100200, -0,00418711, -0,01512477, -0,00104209, -0,00491133, -0,00209555, 0,00045850, 0,00023339, 0,00567173} aufweist.
  31. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 28, wobei die dritte Stufe einen ersten Quantisierungsvektor dargestellt durch {-0,00071405, 0,00244371, 0,00235739, -0,00329369, 0,00472867, -0,00361321, -0,00584670, 0,00863128, 0,00145642, -0,00441746} und einen zweiten Quantisierungsvektor dargestellt durch {0,00242589, -0,00430711, -0,00122645, -0,00464764, -0,00017887, -0,00471663, 0,00181162, 0,00249980, -0,00276848, -0,00485697} aufweist.
  32. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 24, wobei das Codiersystem benutzt wird zum gemeinsamen Codieren der fixierten Codebuchverstärkung und der adaptiven Codebuchverstärkung mit der 2D-Verstärkungsquantisierungstabelle für jeden der wenigstens zwei Unterrahmen eines Rahmens des Sprachsignals.
  33. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 24, wobei die 2D-Verstärkungsquantisierungstabelle 128 Quantisierungsvektoren mit jeweils zwei Elementen aufweist.
  34. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 24, wobei die 2D-Verstärkungsquantisierungstabelle einen ersten Quantisierungsvektor dargestellt durch {1,13718400, 2,00167200} und einen zweiten Quantisierungsvektor dargestellt durch {1,15061100, 0,80219900} aufweist, wenn die Ratenauswahl eine Vollrate ist.
  35. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 24, wobei die Vorverstärkungsquantisierungstabelle 64 Vektoren aufweist, wenn die Ratenauswahl eine Vollrate ist.
  36. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 24, wobei die Vorverstärkungsquantisierungstabelle 16 Vektoren aufweist, wenn die Ratenauswahl eine Halbrate ist.
  37. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 24, wobei die Vorverstärkungsquantisierungstabelle einen ersten Vektor dargestellt durch {0,60699869, 0,59090763, 0,64920781, 0,64610492} und einen zweiten Vektor dargestellt durch {0,68101613, 0,65403889, 0,64210982, 0,63130892} aufweist, wenn die Ratenauswahl eine Vollrate ist.
  38. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 24, wobei die Vorverstärkungsquantisierungstabelle einen ersten Vektor dargestellt durch {1,16184904, 1,16859789, 1,13656320} und einen zweiten Vektor dargestellt durch {1,14613289, 1,06371877, 0,91852525} aufweist, wenn die Ratenauswahl eine Halbrate ist.
  39. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 24, wobei die verzögerte Verstärkungsquantisierungstabelle 1024 Vektoren aufweist, wenn die Ratenauswahl eine Vollrate ist.
  40. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 24, wobei die verzögerte Verstärkungsquantisierungstabelle 256 Vektoren aufweist, wenn die Ratenauswahl eine Halbrate ist.
  41. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 24, wobei das Codiersystem benutzt wird zum Codieren mit der verzögerten Verstärkungsquantisierungstabelle und einer Vielzahl von Vorhersagekoeffizienten, wenn die Typklassifikation vom zweiten Typ ist und die Ratenauswahl eine Vollrate ist.
  42. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 41, wobei die Vorhersagekoeffizienten einen ersten Vorhersagekoeffizienten dargestellt durch {0,7, 0,6, 0,4, 0,2}, einen zweiten Vorhersagekoeffizienten dargestellt durch {0,4, 0,2, 0,1, 0,05}, einen dritten Vorhersagekoeffizienten dargestellt durch {0,3, 0,2, 0,075, 0,025} und einen vierten Vorhersagekoeffizienten dargestellt durch {0,2, 0,075, 0,025, 0,0} aufweisen.
  43. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 24, wobei die verzögerte Verstärkungsquantisierungstabelle einen ersten Vektor dargestellt durch {0,18423671, 0,06523999, 0,13390472} und einen zweiten Vektor dargestellt durch {0,27552690, 0,09702324, 0,05427950} aufweist, wenn die Ratenauswahl eine Halbrate ist.
  44. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 24, wobei das Codiersystem ferner eine Linienspektrum-Frequenzvorhersage-Koeffiziententabelle aufweist, die mit der Codierung von Kurzzeitvorhersageparametern assoziiert ist, wobei die Linienspektrum-Frequenzvorhersage-Koeffiziententabelle einen ersten Satz von Vorhersagekoeffizienten und einen zweiten Satz von Vorhersagekoeffizienten aufweist, wobei der erste und zweite Satz von Vorhersagekoeffizienten durch das Codierungssystem wählbar sind, wenn die Ratenauswahl eine Halbrate ist.
  45. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 44, wobei der erste Satz von Vorhersagekoeffizienten einen ersten Vektor dargestellt durch {0,45782564, 0,59002827, 0,73704688, 0,73388197, 0,75903791, 0,74076479, 0,65966007, 0,58070788, 0,52280647, 0,42738207} und einen zweiten Vektor dargestellt durch {0,19087084, 0,26721569, 0,38110463, 0,39655069, 0,43984539, 0,42178869, 0,34869783, 0,28691864, 0,23847475, 0,17468375} aufweist.
  46. Sprachkomprimierungssystem mit variabler Rate nach Anspruch 44, wobei der zweite Satz von Vorhersagekoeffizienten einen ersten Vektor dargestellt durch {0,14936742, 0,25397094, 0,42536339, 0,40318214, 0,39778242, 0,34731435, 0,22773174, 0,17583478, 0,12497067, 0,11001108 wie} und einen zweiten Vektor dargestellt durch {0,09932127, 0,15389237, 0,24021347, 0,24507006, 0,26478926, 0,23018456, 0,15178193, 0,11368182, 0,07674584, 0,06122567} aufweist.
  47. Ein Bitstrom, der durch ein Sprachkomprimierungssystem mit variabler Rate (10) erzeugt wird zum Repräsentieren bzw. Darstellen eines Sprachsignals (18), wobei der Bitstrom Folgendes aufweist: einen Vollraten-Bitstrom, der einen ersten Rahmen des Sprachsignals (Sprachsignalrahmen) repräsentiert, wobei der Vollraten-Bitstrom eine Typ-Komponente (142, 174) zum Anzeigen der Zuweisung einer Vielzahl von Bits, die den ersten Rahmen repräsentieren aufweist; einen Halbraten-Bitstrom, der einen zweiten Rahmen des Sprachsignals repräsentiert, wobei der Halbraten-Bitstrom die Typ-Komponente zum Anzeigen der Zuweisung einer Vielzahl von Bits, die den zweiten Rahmen repräsentieren aufweist; einen Viertelraten-Bitstrom, der einen dritten Rahmen des Sprachsignals repräsentiert mit einer vorher bestimmten Anzahl von Bits die fest bzw. fixiert zugewiesen sind; und einen Achtelraten-Bitstrom, der einen vierten Rahmen des Sprachsignals repräsentiert mit einer vorher bestimmten Anzahl von Bits die fest zugewiesen sind.
  48. Bitstrom nach Anspruch 47, wobei die Typ-Komponente eine Typklassifikation repräsentiert, die einen ersten Typ (152, 184) oder einen zweiten Typ (154, 186) aufweist.
  49. Bitstrom nach Anspruch 47, wobei der Vollraten-Bitstrom folgendes aufweist: 1 Bit, das eine Typklassifikation mit der Typ-Komponente repräsentiert und 169 Bits, die selektiv zugewiesen sind als eine Funktion in der Typklassifikation zum Darstellen einer Linienspektrumfrequenz-Komponente (140, 172), einer adaptiven Codebuch-Komponente (144, 176), einer fixierten Codebuch-Komponente (146, 178) und einer Verstärkungs-Komponente (147, 179).
  50. Bitstrom nach Anspruch 49, wobei die Linienspektrumfrequenzkomponente repräsentativ ist für Kurzzeitvorhersageparameter für den ersten Rahmen, wobei die Linienspektrumfrequenzkomponente 27 Bits aufweist, wenn die Typklassifikation von einem ersten Typ (152, 184) ist und 21 Bits aufweist, wenn die Typklassifikation von einem zweiten Typ (154, 186) ist.
  51. Bitstrom nach Anspruch 49, wobei die adaptive Codebuchkomponente repräsentativ ist für einen adaptiven Codebuchbeitrag, wobei die adaptive Codebuchkomponente 26 Bits aufweist, die den adaptiven Codebuchbeitrag repräsentieren und zwar für jeden einer Vielzahl von Unter- bzw. Teilrahmen, wenn die Typklassifikation von einem ersten Typ (152, 184) ist und 8 Bits aufweist, die den adaptiven Codebuchbeitrag des ersten Rahmens repräsentieren, wenn die Typklassifikation von einem zweiten Typ (154, 186) ist.
  52. Bitstrom nach Anspruch 49, wobei die fixierte bzw. feste Codebuchkomponente repräsentativ ist für den festen bzw. fixierten Codebuchbeitrag für eine Vielzahl von Teilrahmen des ersten Rahmens, wobei die feste Codebuchkomponente 88 Bits aufweist, wenn die Typklassifikation von einem ersten Typ (152, 184) ist und 120 Bits aufweist, wenn die Typklassifikation von einem zweiten Typ (154, 186) ist.
  53. Bitstrom nach Anspruch 47, wobei der Halbraten-Bitstrom folgendes aufweist: 1 Bit, das eine Typklassifikation mit der Typ-Komponente repräsentiert, 21 Bits, die eine Linienspektrumfrequenzkomponente (140, 172) repräsentieren und 58 Bits, die als eine Funktion der Typklassifikation selektiv zugewiesen sind zum Repräsentieren einer adaptiven Codebuchkomponente (144, 176), einer festen Codebuchkomponente (146, 178) und einer Verstärkungskomponente (147, 179).
  54. Bitstrom nach Anspruch 53, wobei die adaptive Codebuchkomponente repräsentativ ist für einen adaptiven Codebuchbeitrag, wobei die adaptive Codebuchkomponente 14 Bits aufweist, die den adaptiven Codebuchbeitrag für jeden einer Vielzahl von Teilrahmen des zweiten Rahmens repräsentieren, wenn die Typklassifikation von einem ersten Typ (152, 184) ist und 7 Bits aufweist, die den adaptiven Codebuchbeitrag des zweiten Rahmens repräsentieren, wenn die Typklassifikation von einem zweiten Typ (154, 186) ist.
  55. Bitstrom nach Anspruch 53, wobei die feste Codebuchkomponente repräsentativ ist für den festen Codebuchbeitrag für eine Vielzahl von Teilrahmen des zweiten Rahmens, wobei die feste Codebuchkomponente 30 Bits aufweist, wenn die Typklassifikation von einem ersten Typ (152, 184) ist und 39 Bits aufweist, wenn die Typklassifikation von einem zweiten Typ (154, 186) ist.
  56. Bitstrom nach Anspruch 47, wobei der Achtelraten-Bitstrom eine Linienspektrumfrequenzkomponente (240) und eine Energiekomponente (242) auf weist.
  57. Bitstrom nach Anspruch 56, wobei der Achtelraten-Bitstrom 11 Bits aufweist, die die Linienspektrumfrequenzkomponente repräsentieren und 5 Bits aufweist, die die Energiekomponente repräsentieren.
  58. Ein Verfahren zum Verarbeiten eines Sprachsignals (18) mit einem Sprachkomprimierungssystem mit variabler Rate (10), wobei das Verfahren Folgendes aufweist: a) Extrahieren von Parametern aus einem Rahmen des Sprachsignals; b) Auswählen einer Rate als eine Funktion der extrahierten Parameter; c) Auswählen eines ersten Typs (152, 184) oder eines zweiten Typs (154, 186) als eine Funktion der extrahierten Parameter, wobei der erste Typ und der zweite Typ Bit-Zuweisungen für die Rate anzeigen; d) gemeinsames Codieren einer adaptiven Codebuchverstärkung und einer festen Codebuchverstärkung für jeden der Teilrahmen, wenn die Typklassifikation vom ersten Typ ist; und e) individuelles Codieren der adaptiven Codebuchverstärkung und der festen Codebuchverstärkung für den Rahmen, wenn die Typklassifikation vom zweiten Typ ist.
  59. Verfahren nach Anspruch 58, das ferner Folgendes aufweist: f) Codieren eines Tonhöhenabstands (pitch lag) mit geschlossener Schleife (Tonhöhenabstandsregelung bzw. geregelter Tonhöhenabstand) für jede einer Vielzahl von Teilrahmen des Rahmens, wenn die Typklassifikation vom ersten Typ ist; und g) Codieren eines Tonhöhenabstands mit offener Schleife (Tonhöhenabstandssteuerung, bzw. gesteuerter Tonhöhenabstand), der für den Rahmen repräsentativ ist, wenn die Typklassifikation vom zweiten Typ ist.
  60. Verfahren nach Anspruch 58 oder 59, wobei a) das Durchführen von Tonhöhenvorverarbeitung zum Modifizieren des Sprachsignals aufweist.
  61. Verfahren nach Anspruch 58, wobei b) das Auswählen der Rate als eine Funktion eines Modussignals (Betriebsartensignals) aufweist.
  62. Verfahren nach Anspruch 58, wobei b) Folgendes aufweist: Durchführen einer Ratenauswahl mit offener Schleife (Ratenauswahlsteuerung); und Durchführen einer finalen bzw. endgültigen Ratenauswahl als eine Funktion der Ratenauswahl mit offener Schleife, der Charakterisierung des Rahmens und einem Halbraten-Signalisierungsmarker (flag).
  63. Verfahren nach Anspruch 58, das ferner Folgendes aufweist: f) Auswählen eines Interpolationspfades zum Codieren von Kurzzeitvorhersageparametern, wenn die Typklassifikation vom ersten Typ ist und die ausgewählte Rate eine Vollrate ist.
  64. Verfahren nach Anspruch 58, das ferner Folgendes aufweist: f) Auswählen eines Satzes von Vorhersagekoeffizienten, wenn die ausgewählte Rate eine Halbrate ist; und g) Codieren von Kurzzeitvorhersageparametern als eine Funktion des ausgewählten Satzes von Vorhersagekoeffizienten.
  65. Verfahren nach Anspruch 58, wobei e) das Codieren der adaptiven Codebuchverstärkung mit einer Vorverstärkungsquantisierungstabelle aufweist.
  66. Verfahren nach Anspruch 58 oder 65, wobei e) das Codieren der festen Codebuchverstärkung mit einer verzögerten Verstärkungsquantisierungstabelle aufweist.
  67. Verfahren nach Anspruch 58, das ferner Folgendes aufweist: f) Auswählen der Rate als eine Halbrate; g) Injizieren von hochfrequentem Rauschen in ein festes Codebuch; h) Einbeziehen von zusätzlichen Impulsen in das feste Codebuch; und i) Codieren eines festen Codebuchbeitrags.
  68. Verfahren nach Anspruch 58, wobei b) das Auswählen einer Rate aus 8,5 Kilobit pro Sekunde und 4 Kilobit pro Sekunde aufweist.
DE60012760T 1999-09-22 2000-09-15 Multimodaler sprachkodierer Expired - Lifetime DE60012760T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15532199P 1999-09-22 1999-09-22
US155321P 1999-09-22
US574396 2000-05-19
US09/574,396 US6782360B1 (en) 1999-09-22 2000-05-19 Gain quantization for a CELP speech coder
PCT/US2000/025182 WO2001022402A1 (en) 1999-09-22 2000-09-15 Multimode speech encoder

Publications (2)

Publication Number Publication Date
DE60012760D1 DE60012760D1 (de) 2004-09-09
DE60012760T2 true DE60012760T2 (de) 2005-08-04

Family

ID=26852220

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60012760T Expired - Lifetime DE60012760T2 (de) 1999-09-22 2000-09-15 Multimodaler sprachkodierer

Country Status (8)

Country Link
EP (1) EP1214706B9 (de)
JP (2) JP4176349B2 (de)
KR (1) KR100488080B1 (de)
CN (1) CN1245706C (de)
AT (1) ATE272885T1 (de)
AU (1) AU7486200A (de)
BR (1) BRPI0014212B1 (de)
DE (1) DE60012760T2 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100463418B1 (ko) * 2002-11-11 2004-12-23 한국전자통신연구원 Celp 음성 부호화기에서 사용되는 가변적인 고정코드북 검색방법 및 장치
FR2867649A1 (fr) * 2003-12-10 2005-09-16 France Telecom Procede de codage multiple optimise
JP4846712B2 (ja) * 2005-03-14 2011-12-28 パナソニック株式会社 スケーラブル復号化装置およびスケーラブル復号化方法
US7177804B2 (en) * 2005-05-31 2007-02-13 Microsoft Corporation Sub-band voice codec with multi-stage codebooks and redundant coding
CN101371295B (zh) * 2006-01-18 2011-12-21 Lg电子株式会社 用于编码和解码信号的设备和方法
US8451915B2 (en) * 2007-03-21 2013-05-28 Samsung Electronics Co., Ltd. Efficient uplink feedback in a wireless communication system
KR20100006492A (ko) * 2008-07-09 2010-01-19 삼성전자주식회사 부호화 방식 결정 방법 및 장치
US8712764B2 (en) 2008-07-10 2014-04-29 Voiceage Corporation Device and method for quantizing and inverse quantizing LPC filters in a super-frame
KR101170466B1 (ko) 2008-07-29 2012-08-03 한국전자통신연구원 Mdct 영역에서의 후처리 방법, 및 장치
JP2010122617A (ja) * 2008-11-21 2010-06-03 Yamaha Corp ノイズゲート、及び収音装置
JP2010160496A (ja) * 2010-02-15 2010-07-22 Toshiba Corp 信号処理装置および信号処理方法
US9047875B2 (en) 2010-07-19 2015-06-02 Futurewei Technologies, Inc. Spectrum flatness control for bandwidth extension
US9076443B2 (en) * 2011-02-15 2015-07-07 Voiceage Corporation Device and method for quantizing the gains of the adaptive and fixed contributions of the excitation in a CELP codec
US9626982B2 (en) 2011-02-15 2017-04-18 Voiceage Corporation Device and method for quantizing the gains of the adaptive and fixed contributions of the excitation in a CELP codec
US9026434B2 (en) * 2011-04-11 2015-05-05 Samsung Electronic Co., Ltd. Frame erasure concealment for a multi rate speech and audio codec
US9336789B2 (en) * 2013-02-21 2016-05-10 Qualcomm Incorporated Systems and methods for determining an interpolation factor set for synthesizing a speech signal
CN104517612B (zh) * 2013-09-30 2018-10-12 上海爱聊信息科技有限公司 基于amr-nb语音信号的可变码率编码器和解码器及其编码和解码方法
JP5981408B2 (ja) * 2013-10-29 2016-08-31 株式会社Nttドコモ 音声信号処理装置、音声信号処理方法、及び音声信号処理プログラム
CN106463134B (zh) 2014-03-28 2019-12-13 三星电子株式会社 用于对线性预测系数进行量化的方法和装置及用于反量化的方法和装置
KR102400540B1 (ko) 2014-05-07 2022-05-20 삼성전자주식회사 선형예측계수 양자화방법 및 장치와 역양자화 방법 및 장치
CN109979470B (zh) * 2014-07-28 2023-06-20 瑞典爱立信有限公司 椎体矢量量化器形状搜索
US10109284B2 (en) * 2016-02-12 2018-10-23 Qualcomm Incorporated Inter-channel encoding and decoding of multiple high-band audio signals
US10373630B2 (en) * 2017-03-31 2019-08-06 Intel Corporation Systems and methods for energy efficient and low power distributed automatic speech recognition on wearable devices
WO2019068915A1 (en) * 2017-10-06 2019-04-11 Sony Europe Limited AUDIO FILE ENVELOPE BASED ON RMS POWER IN SUB-WINDOW SEQUENCES
CN108122552B (zh) * 2017-12-15 2021-10-15 上海智臻智能网络科技股份有限公司 语音情绪识别方法和装置
CN113593521B (zh) * 2021-07-29 2022-09-20 北京三快在线科技有限公司 语音合成方法、装置、设备及可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3353852B2 (ja) * 1994-02-15 2002-12-03 日本電信電話株式会社 音声の符号化方法
US5701390A (en) * 1995-02-22 1997-12-23 Digital Voice Systems, Inc. Synthesis of MBE-based coded speech using regenerated phase information

Also Published As

Publication number Publication date
JP2005338872A (ja) 2005-12-08
EP1214706B9 (de) 2005-01-05
KR20020033819A (ko) 2002-05-07
EP1214706A1 (de) 2002-06-19
KR100488080B1 (ko) 2005-05-06
CN1451155A (zh) 2003-10-22
EP1214706B1 (de) 2004-08-04
AU7486200A (en) 2001-04-24
BR0014212A (pt) 2003-06-10
BRPI0014212B1 (pt) 2016-07-26
DE60012760D1 (de) 2004-09-09
ATE272885T1 (de) 2004-08-15
CN1245706C (zh) 2006-03-15
JP2003513296A (ja) 2003-04-08
JP4176349B2 (ja) 2008-11-05

Similar Documents

Publication Publication Date Title
DE60012760T2 (de) Multimodaler sprachkodierer
DE60124274T2 (de) Codebuchstruktur und suchverfahren für die sprachkodierung
DE69910058T2 (de) Verbesserung der periodizität eines breitbandsignals
DE69916321T2 (de) Kodierung eines verbesserungsmerkmals zur leistungsverbesserung in der kodierung von kommunikationssignalen
DE60011051T2 (de) Celp-transkodierung
US6735567B2 (en) Encoding and decoding speech signals variably based on signal classification
DE60027573T2 (de) Quantisierung der spektralen amplitude in einem sprachkodierer
US6581032B1 (en) Bitstream protocol for transmission of encoded voice signals
DE60121405T2 (de) Transkodierer zur Vermeidung einer Kaskadenkodierung von Sprachsignalen
DE60029990T2 (de) Glättung des verstärkungsfaktors in breitbandsprach- und audio-signal dekodierer
US6574593B1 (en) Codebook tables for encoding and decoding
DE60128677T2 (de) Verfahren und vorrichtung zur prädiktiven quantisierung von stimmhaften sprachsignalen
DE69926821T2 (de) Verfahren zur signalgesteuerten Schaltung zwischen verschiedenen Audiokodierungssystemen
DE69932593T2 (de) Dekodierungsverfahren und system mit einem adaptiven postfilter
EP1509906B1 (de) Verfahren und anordnung zur grundfrequenzverbesserung eines decodierten sprachsignals
DE69934608T3 (de) Adaptive kompensation der spektralen verzerrung eines synthetisierten sprachresiduums
DE60120766T2 (de) Indizieren von impulspositionen und vorzeichen in algebraischen codebüchern zur codierung von breitbandsignalen
DE69133458T2 (de) Verfahren zur Sprachquantisierung und Fehlerkorrektur
DE60122203T2 (de) Verfahren und system zur erzeugung von behaglichkeitsrauschen bei der sprachkommunikation
DE60017763T2 (de) Verfahren und vorrichtung zur erhaltung einer ziel-bitrate in einem sprachkodierer
DE60128479T2 (de) Verfahren und vorrichtung zur bestimmung eines synthetischen höheren bandsignals in einem sprachkodierer
EP0732686A2 (de) CELP-Kodierung niedriger Verzögerung und 32 kbit/s für ein Breitband-Sprachsignal
DE60024080T2 (de) Kodierung von sprachsegmenten mit signalübergängen durch interpolation von mehrimpulsanregungssignalen
DE60124079T2 (de) Sprachverarbeitung
DE60023913T2 (de) Verfahren und vorrichtung zur unterabtastung der im phasenspektrum erhaltenen information

Legal Events

Date Code Title Description
8364 No opposition during term of opposition