DE3853161T2 - Vektorquantisierungscodierer. - Google Patents

Vektorquantisierungscodierer.

Info

Publication number
DE3853161T2
DE3853161T2 DE3853161T DE3853161T DE3853161T2 DE 3853161 T2 DE3853161 T2 DE 3853161T2 DE 3853161 T DE3853161 T DE 3853161T DE 3853161 T DE3853161 T DE 3853161T DE 3853161 T2 DE3853161 T2 DE 3853161T2
Authority
DE
Germany
Prior art keywords
speech
signal
codebook
code word
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE3853161T
Other languages
English (en)
Other versions
DE3853161D1 (de
Inventor
Claude Galand
Jean Menez
Michele Rosso
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE3853161D1 publication Critical patent/DE3853161D1/de
Application granted granted Critical
Publication of DE3853161T2 publication Critical patent/DE3853161T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/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/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector quantisation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0002Codebook adaptations
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0004Design or structure of the codebook
    • G10L2019/0005Multi-stage vector quantisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • Diese Erfindung beschäftigt sich mit digitaler Sprachcodierung und insbesondere der Sprachcodierung mit niedriger Bitrate.
  • Hintergrund der Erfindung
  • Es wurden Sprachcodierungsanordnungen mit niedriger Bitrate vorgeschlagen, in denen Sprachmusterblöcke in eine Tabellenadresse und einen Verstärkungsfaktor codiert werden. Solche Codierer sind als Vektorquantisierungscodierer bekannt. Weitere Hinweise auf die Art der verwendeten Codierung findet man in "Fast Code-Excited Linear Prediction (CELP) Coding Based on Algebraic Codes" von J. P. Adoul et al in International Conference on Acoustic, Speech and Signal Processing (ICASSP) 1987 und in "Code-Excited Linear Prediction (CELP) High-quality Speech at Low Bit Rates" von M. R. Schroeder und B. S. Atal, ICASSP, 1985.
  • Offensichtlich hängen sowohl die Qualität eines CELP-Codierers als auch seine Leistungsfähigkeit besonders vom Inhalt der Tabelle ab. Der Tabelleninhalt (d.h. das Codebuch) wird herkömmlicherweise mit statistisch festgelegten Codeworten geladen, was einen guten Kompromiß ergibt, aber für jeweilige Einzelfälle sicher keine optimale Lösung ist.
  • Ein adaptives Codebuch wurde in dem früheren, nicht veröffentlichten EP-A-0 296 764 verwendet, in dem das Codebuch als Kellerliste organisiert ist, so daß während der Codierungsoperationen neue Mustersätze in das Codebuch gebracht werden, die sofort die früheren Muster des Codebuches ersetzen.
  • Aufgabe der Erfindung
  • Eine Aufgabe dieser Erfindung besteht darin, einen Prozeß und eine Vorrichtung für die dynamische Optimierung des Inhaltes eines CELP/LTP-Codebuches zur Verfügung zu stellen. Eine solche Optimierung wird erreicht durch das Verfahren und die Vorrichtung, wie in den beigefügten Ansprüchen beansprucht.
  • Kurze Beschreibung der Zeichnungen
  • Figuren 1 und 2 stellen den Stand der Technik dar.
  • Figur 3 ist ein Blockdiagramm, das die Prinzipien der Erfindung darstellt.
  • Figur 4 ist ein Flußdiagramm für die Codierung/Decodierung entsprechend der Erfindung.
  • Figuren 5 bis 7 sind Flußdiagramme für die Operationen, die zur Erfindung gehören.
  • Figur 8 veranschaulicht ein in der Erfindung enthaltenes verteiltes Codebuchkonzept.
  • Figuren 9 und 10 sind Flußdiagramme, die das Zurücksetzen des Codebuches für die Erfindung zeigen.
  • Figuren 11A und B sind Blockdiagramme, die die Analyse- und Syntheseoperationen für eine Mehrgeschwindigkeits-Codierung/Decodierung zeigen, in der die Erfindung realisiert werden kann.
  • Beschreibung der bevorzugten Ausführungsform der Erfindung
  • Obwohl die Erfindung auf eine beliebige Vektorquantisierungsanordnung anwendbar ist, ist sie besonders für eine Codierungsarchitektur geeignet, die CELP und eine Langzeitvorhersage kombiniert. Ein effektives Verfahren für die Kombination einer codeerregten linear vorhersagenden (CELP-) Codierung mit einer Langzeitvorhersage (LTP) wurde bereits in einer gleichzeitig anhängenden Anmeldung Nr. 88480006 eingereicht am 8. März 1988. Ihre Grundprinzipien werden hier unter Bezugnahme auf Figuren 1 und 2 für die Codierung bzw. korrelative Decodierung zusammengefaßt.
  • Für die Codierung wird das Sprachsignal s(n) zuerst durch eine sogenannte Kurzzeitanalyse dekorreliert (gefiltert), die in einem adaptiven Prädiktor A(z) (10) ausgeführt wird, dessen Koeffizienten (ai) von einem vorverstärkten s(n) abgeleitet werden, um ein Restsignal r(n) bereitzustellen. Ein vorhergesagter Rest rp(n) wird in einer Vorrichtung (11) von r(n) subtrahiert und ergibt ein Fehlerrestsignal e(n), das im weiteren durch Musterblöcke oder -subblöcke in eine Tabellenadresse (k) und einen Verstärkungsfaktor (G) für jeden Block oder Subblock in einem CELP-Codierer (12) codiert wird. Kurz gesagt, der CELP-Codierer enthält ein Vektorquantisierer-(VQ-) Suchgerät und ein Codebuch (CB). Die Codierung wird auf der Grundlage eines Musterblockes durchgeführt und umfaßt das Finden eines Blockes von im Codebuch gespeicherten Mustern (d.h. ein Codewort), das am besten mit dem zu codierenden e(n)-Block übereinstimmt. Die beste Übereinstimmung bedeutet hier die geringste globale Blockdifferenzenergie (mittlerer quadratischer Fehler), unter der Voraussetzung, daß ein Verstärkungsfaktor G zwischen dem Codewort und dem Block von e(n)-Mustern, der CELP-codiert werden soll, zu berücksichtigen ist. Man muß dann einfach in einem Codierer C (13) die Codewortadresse k und die Verstärkung G codieren/quantisieren. Blockkompandierungs-PCM- (BCPCM) Verfahren, wie sie von A. Croisier in "Progress in PCM and Delta Modulation: Block Companded Coding of Speech Signal", vorgestellt von A. Croisier 1974 auf dem Internationalen Seminar über Digitale Kommunikation in Zürich, vorgeschlagen wurden, können verwendet werden, um die Funktionen des Gerätes 13 zu realisieren.
  • Das ausgewählte Codewort wird auch in einer Vorrichtung (14) decodiert, um ein decodiertes Fehlerrestsignal e'(n) zu erzeugen, das in eine Langzeitvorhersage- (LTP) Schleife eingespeist wird, die das vorhergesagte Restsignal rp(n) liefert. Zu diesem Zweck werden ein harmonischer Schwingungswert M und ein Verstärkungs- oder Verhältnisfaktor B in einer Vorrichtung (15) berechnet und dazu verwendet, einen Filter (16) abzustimmen, der eine M lange Verzögerungsleitung und ein B-Multiplikationsgerät (nicht dargestellt) enthält. Der Filter (16) erhält ein Signal
  • r'(n) = rp(n) + e'(n).
  • Das am Ende CELP/LTP-codierte s(n) enthält verschiedene G, k, B, M und einen Satz von PARCOR-abhängigen Koeffizienten ai.
  • Die Decodierungsoperationen, die ausgeführt werden, um ein decodiertes s(n), d.h. s'(n), wiederherzustellen, sind in Figur 2 schematisch dargestellt. Die Codewortadresse k wird verwendet, um ein lokales Codebuch zu adressieren und von dort ein ausgewähltes Codewort CB(k) zu lesen. Dieses Codewort wird in einem Decoder (21) mit G multipliziert, was ein decodiertes Fehlerrestsignal e'(n) mit
  • e'(n) = G . CB(k)
  • ergibt.
  • B und M werden benutzt, um einen Filter (22) abzustimmen, der einen mit e'(n) gespeisten Addierer (23) speist und einen decodierten Rest r'(n) liefert, der dann wieder von einem inversen adaptiven Prädiktor (25) gefiltert wird, der mit dem Satz der vom Codierer gelieferten Koeffizienten ai abgestimmt wird.
  • Offensichtlich hängt die Leistungsfähigkeit des Codierers und Decodierers stark vom Inhalt des Codebuches ab. Entsprechend dem Stand der Technik sind beide Codebücher so beschaffen, daß sie feste und statistisch festgelegte Codewörter speichern. Die vorliegende Erfindung stellt Mittel zur Optimierung der Codebuchinhalte zur Verfügung, indem sie dynamisch sprecherabhängig gemacht werden. Codebucheinstellungen werden entweder blind vorgenommen, d.h. Codierer und Decodierer arbeiten unabhängig voneinander, oder auf kooperativer Basis im Verlaufe des Übertragungsprozesses.
  • In Figur 3 ist ein Blockdiagramm dargestellt, das das in dieser Erfindung enthaltene Prinzip veranschaulicht. Wie man sehen kann, sind Eingaben an den CELP-Codierer sowohl von e'(n) als auch von r'(n) vorgesehen.
  • Demzufolge ist das Codierungs/Decodierungs-Flußdiagramm so wie in Figur 4 beschaffen.
  • Für die Sprachsignalanalyse (Codierung) wird das Eingangssignal vom Kurzzeitprädiktor gefiltert, dessen Übertragungsfunktion im z-Bereich durch A(z) ausgedrückt wird, und stellt das erste Restsignal r(n) zur Verfügung. Der zweite Rest oder Fehlerrest e(n) wird vom ersten Rest r(n) und vom Ausgang des Langzeitprädiktors abgeleitet, der auf einen früher rekonstruierten Rest e'(n) angewendet wird.
  • e(n) = r(n) - B . r'(n-M)
  • r'(n) = e (n) + B . r'(n-M)
  • Die Codierung des Restsignals e(n) wird durch Subblöcke von 20 Mustern realisiert, wobei ein konventionelles vereinfachtes CELP-Verfahren mit einem Codebuch CB(l) verwendet wird, mit
  • l = 1, N + L - 1,
  • wobei N die Gesamtzahl der Codeworte innerhalb des Codebuches und L die Länge eines Subblockes ist. Zur Vereinfachung wird im folgenden jedes mögliche Mustercodewort der Länge L durch CB(i) bezeichnet, i = 1, N; CB(i) = CB(l), l = i,
  • i + L - 1.
  • Dieses Codebuch wird für jeden Subblock adaptiv aktualisiert, entsprechend der vorhergehenden Folge, deren Auswahl später beschrieben wird. Mit anderen Worten, der Rest e(n) wird durch eine CB-Folge des aktuellen Codebuches und einen Verstärkungsfaktor G codiert. Dann wird der Codebuchinhalt CB(i) für die Codierung des nächsten Subblocks mit einer Linearkombination des decodierten zweiten Restsignals e'(n) und dem decodierten ersten Rest r'(n) aktualisiert.
  • Für die Sprachsignalsynthese (Decodierung) wird das decodierte Restfehlersignal e'(n) in den Langzeitvorhersage-Umkehrfilter und anschließend in den Kurzzeitvorhersage-Umkehrfilter eingespeist. Der synthetische decodierte erste Rest r'(n) wird auch für die Aktualisierung des Codebuches verwendet.
  • In Figur 5 ist ein Blockdiagramm der Operationen dargestellt, die bei der Durchführung sowohl der Kurzzeit- als auch der Langzeitanalyse im Codierer verwendet werden.
  • Das ursprüngliche Sprachsignal s(n) wird verarbeitet, um acht parcor-abhängige Koeffizienten a(i) abzuleiten, die dazu verwendet werden, das Restsignal r(n) mit Hilfe der folgenden Operationen zu berechnen:
  • r(n) wird bei der Berechnung der Parameter B und M benutzt, die dann wieder zur Berechnung der Restsignale e(n) und r'(n) verwendet werden.
  • Zur Berechnung der Werte B und M sind verschiedene Methoden verfügbar. Man kann sich beispielsweise beziehen auf B. S. Atal "Predictive Coding of Speech at low Bit Rate", veröffentlicht in den IEEE Trans. on Communication, Band COM-30, April 1982; oder auf B. S. Atal und M. R. Schroeder, "Adaptive predictive coding of speech signals", Bell System Technical Journal, Band 49, 1970.
  • Allgemein gesprochen ist M ein Schwingungswert oder eine Harmonische davon. Wir nehmen an, daß die Sprachsignale in 20 ms lange Musterblöcke aufgeteilt werden, wobei jeder wieder aus 2,5 ms langen Subblöcken besteht.
  • Für jede Menge von vier Mustersubblöcken [r(n), n = 1, ... , 80] werden über den Mustern der vorhergehenden Subblöcke des decodierten Restsignals r'(n-k) Kreuzkorrelationsoperationen R(k) wie folgt ausgeführt:
  • k = 20, ... , 120.
  • Der Ort des Spitzenwertes der Funktion R(k) ergibt den gesuchten Wert von M. Deshalb:
  • Es sollte beachtet werden, daß M im allgemeinen gleich einer Harmonischen der Schwingungsperiode des Sprechers ist.
  • Der Verstärkungskoeffizient B des Langzeitprädiktors wird dann für den aktuellen Mustersubblock [r(n), n = 1, ... , 20] abgeleitet, unter Verwendung von:
  • Für jedes Muster des aktuellen Subblockes kann man dann ableiten:
  • rp(n) = B . r'(n-M)
  • e(n) = r(n) - rp(n)
  • Die parcor-abhängigen Kurzzeitkoeffizienten werden tatsächlich von einem vorverstärkten s(n) abgeleitet, um einen Rauschformeffekt einzuführen, so wie im Flußdiagramm von Fig. 6 dargestellt. Zuerst wird ein Vorverstärkungskoeffizient R berechnet, wobei man benutzt:
  • R = R2 / R1
  • Das vorverstärkte Sprachsignal wird durch sp(n) bezeichnet, mit
  • sp(n) = s(n) - R . s(n-1).
  • Die vorverstärkten ai-Parameter werden mit einem Aufwärtsverfahren von den sogenannten PARCOR-Koeffizienten K(i) abgeleitet, die dann wieder von dem vorverstärkten Signal sp(n) abgeleitet werden, wobei eine konventionelle Leroux-Guegen-Methode verwendet wird. Die Ki-Koeffizienten können unter Verwendung des Un/Yang-Algorithmus durch 28 Bits codiert werden. Einen Hinweis auf diese Methoden und den Algorithmus findet man in
  • - J. Leroux und C. Guegen: "A fixed point computation of partial correlation coefficients", IEEE Transactions on ASSP, S. 257 bis 259, Juni 1977.
  • - C. K. Un und S. C. Yang: "Piecewise linear quantization of LPC reflexion coefficient", Proc. Int. Conf. on ASSP, Hartford, Mai 1977.
  • - J. D. Markel und A. H. Gray: "Linear prediction of speech", springer-Verlag 1976, Step-up Procedure, S. 94 bis 95.
  • Eine weitere Verbesserung der obigen Methode für die Berechnung der a(i) wird erreicht durch die Ausführung von Interpolationsoperationen, um die negativen Auswirkungen einer schnellen Anderung über aufeinanderfolgende, gerade analysierte Musterblöcke hinweg entsprechend dem folgenden Algorithmus zu minimieren.
  • Betrachtet man die Vorhersagekoeffizienten, die für den aktuellen j-ten Block von Sprachsignalmustern mit der obigen Methode berechnet wurden und durch ap(i,j) für i = 1,8 bezeichnet werden, dann sind die Vorhersagekoeffizienten a(i,j,n) zur Zeit n, die tatsächlich für die Abstimmung sowohl von A(z) als auch von 1/A(z) benutzt werden, gegeben durch:
  • a(i,j,n) = wn . ap(i,j) + (1-wn) . ap(i,j-1)
  • für i = 1, ... , 8,
  • und w < 1 stellt einen Abklingfaktor dar, beispielsweise w = 0,95.
  • Die Kurzzeitfilteroperationen des Filters A(z) werden dann ausgeführt, um r(n) zu berechnen durch:
  • In Fig. 7 ist ein Flußdiagramm dargestellt, das die CELP-Codierung veranschaulicht.
  • Die ersten zwei Indexzähler i und j werden auf i = 1 ud j = 1 gesetzt. Die Tabelle wird sequentiell abgetastet. Ein Codewort CB(i) wird aus der Tabelle herausgelesen.
  • Ein erstes Skalarprodukt wird mit i = 1 berechnet:
  • Dieser Wert wird zu SP2(i) guadriert und durch den quadrierten Wert des entsprechenden Codewortes dividiert [d.h. durch CB2(i)]:
  • i wird dann um eins erhöht, und die obigen Operationen werden wiederholt, bis i = N ist, wobei N die Anzahl der Codeworte im Codebuch ist. Das optimale Codewort CB(k), das das Maximum von
  • SP2(k)/CB2(k)
  • innerhalb der Folge
  • SP2 (i)/CB2(i) für i = 1, ... , N
  • liefert, wird dann ausgewählt. Diese Operation ermöglicht die Feststellung der Tabellenreferenzzahl k.
  • Wenn k einmal ausgewählt wurde, dann wird der entsprechende Verstärkungsfaktor berechnet:
  • G = SP(k)/CB2 (k)
  • Setzt man voraus, daß die Anzahl der Muster innerhalb der Folge e(n) als Vielfaches von L gewählt wird, dann wird die Folge e(n) in J Fenster, die jeweils L Muster lang sind, unterteilt, danach wird j um 1 erhöht, und der obige Prozeß wird wiederholt, bis j = J ist.
  • Die Berechnungen können vereinfacht und die Komplexität des Codierers verringert werden, wenn das Codebuch normalisiert wird, um jede Codewortenergie auf den Einheitswert zu setzen. Mit anderen Worten, die Amplituden der Vektoren mit N Komponenten werden aufl oder auf einen festen Wert C normalisiert.
  • CB2(i) = 1
  • für i = 1, ... , N
  • oder CB2(i) = C
  • In diesem Fall wird der Ausdruck, der das beste Codewort k festlegt, vereinfacht (alle im Algorithmus auftretenden Nenner sind gleich dem Einheitswert oder gleich C) Auf der anderen Seite bleibt der Ausdruck für G(k) ungeändert, um eine gute Genauigkeit zu erhalten.
  • Wie bereits erwähnt, wird für den Codierer eine wesentliche Verbesserung erreicht, wenn der Codebuchinhalt dynamisch an einen beliebigen betroffenen Sprecher angepaßt wird. Die Anpassung wird durch einen Rückkopplungs-Aktualisierungs-Prozeß erreicht. Es sei vorausgesetzt, daß das ursprüngliche Codebuch so beschaffen ist, daß es N + L - 1 vordefinierte, sequentiell angeordnete Muster enthält und der Platz mit der besten Übereinstimmung erreicht wird, indem der aktuelle Musterblock oder -subblock, der CELP-codiert werden soll, über das Codebuch hinweg verschoben wird. Das Codebuch wird in einen festen Teil und einen adaptiven Teil aufgeteilt (siehe Figur 8) . Mit anderen Worten, der vorher gespeicherte Codebuchinhalt [CB(l); l = 1, ... , N + L - 1] wird unterteilt in:
  • - einen ersten Teil CB(l); l = 1, ... , N1, wobei N1 eine vorher definierte Codebuchadresse ist. Dieser erste Teil wird im Verlauf der adaptiven Codebuchverarbeitung unverändert gelassen.
  • Dieser feste Teil ist dazu bestimmt, statistisch ausgewählte Folgen von Sprachrestsignalen zu speichern, die repräsentativ sind für Schweigen, stimmlose Sprachteile und Übergangsteile;
  • - einen zweiten Teil CB(l); l = N 1 + 1, ... , N + L - 1, der anfänglich gesetzt wird, um eine Folge von Sprachrestsignalen zu speichern, die für Stimmteile der Sprache repräsentativ sind und über verschiedene Sprachkörper gemittelt wurden.
  • Dieser Teil muß im Verlaufe des aktuellen Sprachcodierungsprozesses aktualisiert werden.
  • Diese Strategie ermöglicht die Anpassung an sich langsam ändernde Signale (gehaltene Vokale), kann aber auch mit schnellen Anderungen (Übergängen) übereinstimmen.
  • Die Anpassung des variablen Codebuchteils besteht zuerst aus der Verschiebung dieses Teils um ein Codewort (L) nach links. Mit anderen Worten, die Codebuchadressen werden geändert, so daß CB(i) = CB(i+L) wird; d.h. der Codebuchinhalt mit den Adressen zwischen Nl + L + 1 und N + L - 1 ersetzt den Codebuchabschnitt, der zwischen den Adressen N1 + 1 und N - 1 liegt.
  • Dann wird das Codewort, das zwischen N und N + L - 1 liegt, durch den zuletzt codierten und einmal normalisierten Block ersetzt, d.h.:
  • CB(n) = NORM (a . e'(n) + (1-a) . r'(n))
  • wobei NORM für einen Normalisierungsoperator steht:
  • n = 1, ... , L.
  • SQRT ( ) bezeichnet die Quadratwurzelfunktion.
  • a < 1 ist ein Gewichtskoeffizient, z.B. a = 0,8.
  • C ist der konstante Energiewert für jedes Codewort des ursprünglichen Codebuches:
  • CB2(i) = C für i = 1, ... , N.
  • Unter der Voraussetzung, daß der Codierer ein Teil eines Übertragungsnetzwerkes (nicht dargestellt) ist, sollten im Verlaufe eines Übertragungsprozesses, während die Codebuchanpassung an einem Ende (dem Sendeende) des Netzwerkes durchgeführt wird, korrelative Anpassungen an die Empfangsstationen gebracht werden (sowohl an den entsprechenden Empfänger als auch an seinen zugeordneten Sender).
  • Diese Anpassungen können entweder mit beiden Endstationen durchgeführt werden, die nahezu getrennt arbeiten, oder mit einer schnellen Startoperation unter der Steuerung von einer der Stationen verstärkt werden. In jedem Falle sollten die Aktualisierungen der Codebücher an beiden Enden des Netzwerkes synchronisiert werden.
  • Für die erste Operationsart kurz formuliert, startet das System, indem sowohl die sendenden als auch die empfangenden Netzwerkstationen ihre Codebücher unabhängig voneinander aktualisieren. Die Aktualisierungen der sendenden Station beruhen auf jedem übertragenen Codewort, es werden aber die Codebücher sowohl der Sende- als auch der Empfangssysteme der Station aktualisiert. Am anderen Ende des Netzwerkes steuert das empfangene Codewort die Codebuch-Aktualisierungen.
  • Diese Operationsart kann zu unsynchronisierten Codebuchinhalten führen. Dies wird vermieden, wenn man Rücksetzungen der Codebücher auf ihren ursprünglichen Inhalt bei einem vorher ausgewählten speziellen Ereignis, das beiden Netzwerkenden bekannt ist, erzwingt. Das Ereignis sollte offensichtlich an das Ende einer Unterhaltung gebunden sein, aber zusätzlich könnte das Ereignis an das Auftreten langen Schweigens (Schweigen länger als eine vorher definierte Zeitspanne) im Verlaufe des Sprechens oder einer Unterhaltung gebunden sein. Man sagt dann, daß die Sprachsignale Redespurts enthalten, und die Rücksetzungen geschehen am Anfang jedes Redespurts. Der Beginn eines Redespurts, d.h. das Ende eines langen Schweigens, wird auf der sprechenden Seite (Sendeende) mit Hilfe einer sogenannten Sprachaktivitätserkennungs- (VAD) Operation identifiziert. VAD-Geräte sind im Fachgebiet bekannt, und man kann sich bezüglich weiterer Einzelheiten beispielsweise auf die Europäische Patentanmeldung beziehen, die unter der Nummer 0127718 veröffentlicht wurde.
  • Am Empfangsende des Netzwerkes kann das Ende eines langen Schweigens mit unterschiedlichen Mitteln identifiziert werden. Beispielsweise kann eine ein Bit lange Kennzeichnung an den empfangenen Rahmen angehängt werden, die die Feststellung des gewünschten Ereignisses ermöglicht. Wie beispielsweise in der gleichzeitig angemeldeten Europäischen Anmeldung 84430015.2 gezeigt wird, ist dieses Bit einfach so beschaffen, daß es sich nur ändert, wenn ein langes Schweigen beendet wurde und ein neuer Redespurt begann. Diese Ein-Bit-Änderungen werden benutzt, um Rücksetzungen des Codebuches zu steuern.
  • In Figur 9 ist ein Flußdiagramm dargestellt, das den Rücksetzprozeß für ein Codebuch darstellt, in den die Sprachaktivitätserkennung einbezogen ist. Das gesamte System arbeitet normalerweise so wie in Verbindung mit Figur 4 dargestellt, außer für die Einbeziehung der Sprachaktivitätserkennung. Das System ist zur Überwachung der Kurzzeitanalyse bestimmt, um irgendein Schweigen (d.h. keine Aktivität) in der zu codierenden Sprache festzustellen. Immer wenn ein Schweigen festgestellt wird, das länger als ein bestimmter Schwellwert ist, setzt das System ein Kennzeichen, das als Rücksetzkommando arbeitet. Dieses Rücksetzkommando setzt die variablen Teile sowohl der Analyse- als auch der Synthese-Codebücher auf ihren ursprünglichen Inhalt, d.h. auf den Inhalt vor irgendeiner Aktualisierung zurück.
  • Der adaptive Codebuchprozeß kann mit einer schnellen dualen Startcodierung verstärkt werden. Am Anfang irgendeines Redespurts (VAD=1) werden die ersten 20 Muster des Restsignals r(n) von der CELP-Codierung ausgeschlossen. Stattdessen werden sie mit einem 3-Bit-Blockkompandierungs-PCM- (BCPCM) Quantisierer zu rc(n) codiert. Diese codierten Muster werden in den Synthetisierer übertragen und sowohl lokal als auch entfernt am anderen Ende des Netzwerkes benutzt, um die entsprechenden Codebücher und die Langzeit-Verzögerungsleitung zu aktualisieren. Dies entspricht einer Rahmenwegnahme-Operation. Ein Bit wird verwendet, um die Tatsache anzuzeigen, daß eine Nebeninformation übertragen wird.
  • Das obige Flußdiagramm ist in Figur 10 dargestellt. Ein VAD- Kennzeichen wird aus der Kurzzeitanalyse von s(n) abgeleitet, dieses Kennzeichen zeigt an, ob der aktuelle Signalmusterrahmen einen Sprachrahmen oder einen Pauserahmen (Schweigen) darstellt. Aufeinanderfolgende Pausenrahmen werden bis zu einem vorher festgelegten Wert gezählt, der so gewählt wurde, daß er für eine lange Pause repräsentativ ist, und es wird ein VAD-Kennzeichen erzeugt. In diesem Fall wird der erste nachfolgende Rahmen von 20 Mustern des Sprachrestsignals r(n) von der CELP-Codierung ausgeschlossen (siehe Schalter S1 in Figur 10) und stattdessen in einen Rahmen rc(n) BCPCM-codiert. Dieser Rahmen rc(n) wird in einen Rahmen r"(n) codiert, der als ein r'(n)- (oder ein r'(n- M)-) Rahmen benutzt wird, um Langzeitanalyseoperationen am betrachteten Rahmen auszuführen. Er wird auch benutzt, um das Codebuch des lokalen Analysators zu aktualisieren (siehe die gestrichelten Linien in Figur 10).
  • rc(n) wird für die lokale Synthese benutzt, indem es zuerst zu r"(n) BCPCM-decodiert wird und als ein r'(n)-Rahmen benutzt wird, um das Codebuch der Synthesevorrichtung über einen Schalter 52, der vom VAD-Kennzeichen gesteuert wird, zu aktualisieren.
  • Wenn das Codebuch einmal aktualisiert wurde, werden für jeden Redespurt die nachfolgenden Aktualisierungen so ausgeführt, wie es unter Bezugnahme auf Figuren 3 und 4 angegeben wurde. Mit anderen Worten, irgendein e(n), das durch die Langzeitanalyse mit Hilfe von
  • e(n) = r(n) - B . r'(n-M)
  • abgeleitet wurde, wird zu k und G CELP-codiert, um für Synthesezwecke benutzt zu werden (siehe Figur 10, wo eine Empfängersynthese dargestellt ist)
  • Während der Analyse wird das ausgewählte Codewort CB gemeinsam mit r'(n) benutzt, um das Codebuch des Analysators zu aktualisieren.
  • Wie hierin gezeigt wurde, ist die vorliegende CELP-Verbesserung besonders für den CELP/LTP-Typ geeignet. Sie könnte jedoch für jeden beliebigen Codierer der CELP-Familie angewendet werden.
  • In der gleichzeitig anhängenden Europäischen Anmeldung 88480007.9, eingereicht am 8. März 1988, wurde beispielsweise eine Mehrgeschwindigkeitsstruktur vorgestellt.
  • Figur 11A bzw. 11B faßt die Analyse- und Syntheseoperationen zusammen, die zu dieser Mehrgeschwindigkeitscodierung gehören. Das Fehlersignal e(n) wird durch einen ersten Vektorquantisierer (CELP) VQ1 codiert. Ein Quantisierungsfehler r(n) wird erzeugt, um die Differenzen zwischen dem codierten und dem nichtcodierten e(n) darzustellen, und der Quantisierungsfehler wird dann wieder in einem zweiten Vektorquantiserer VQ2 codiert.
  • Der entstehende Bitstrom ist eine Verkettung von zwei Bitströmen; der erste ist repräsentativ für das bei niedriger Geschwindigkeit codierte Signal (entsprechend VQ1), und das andere ist repräsentativ für das bei hoher Geschwindigkeit codierte Signal (entsprechend VQ2).
  • Falls notwendig, beispielsweise bei Überlastung des Übertragungskanals in einem Kommunikationsnetzwerk, kann der Bitstrom auf niedrige Geschwindigkeit zurückgeschaltet werden. In diesem Kontext kann der Algorithmus für das adaptive Codebuch in ziemlich direkter Weise auf VQ1 (oder VQ2) angewendet werden.

Claims (6)

1. Verfahren zur dynamischen Anpassung eines Vektorquantisierungs-Codebuches, das ursprünglich vorher ausgewählte Codeworte enthält, während der Codierungsoperationen für ein CELP/LTP-Sprachsignal, wobei aufeinanderfolgende Folgen von sprachabhängigen Signalmustern r(n) individuell codiert werden, durch Erzeugung eines Langzeitvorhersage- (LTP) Signals rp(n), durch Subtraktion des vorhergesagten Signals rp(n) vom Signal r(n) und durch Ableitung eines Fehlersignals e(n) und aufeinanderfolgender Vektorquantisierungsmuster des Fehlersignals, durch eine Adresse k des Codebuch-Codewortes, das mit der e(n)-Folge am besten übereinstimmt, und durch einen Verstärkungsfaktor G, wobei das Verfahren umfaßt:
- die Decodierung der gerade codierten e(n)-Folge in eine decodierte Folge e'(n);
- die Addition der decodierten Folge e'(n) zu einer Folge des langzeitvorhergesagten Signals rp(n), um daraus ein Signal r'(n) abzuleiten;
- die Erzeugung eines aktualisierten normalisierten Codewortes CB(i) durch
CB(i) = NORM (a . e'(i) + (1-a) . r'(i)),
wobei a < 1 ein vorher ausgewählter Gewichtskoeffizient ist, und die NORM-Operation steht für
wobei SQRT(.) für die Quadratwurzelfunktion steht, C der konstante Energiewert für jedes Codewort des anfänglichen Codebuches ist und
- das Laden des aktualisierten Codewortes in das Codebuch, wodurch ein früher gespeichertes Codewort dort gestrichen wird.
2. Verfahren gemäß Anspruch 1, wobei das Sprachsignal während einer Unterhaltung codiert wird, die sogenannte Redespurts enthält, die durch sogenannte lange Pausen getrennt sind, und das Verfahren dadurch charakterisiert ist, daß das adaptive Codebuch am Anfang jedes Redespurts auf seinen ursprünglichen Inhalt zurückgesetzt wird.
3. Verfahren gemäß Anspruch 2, das weiterhin einen schnellen Startschritt umfaßt, in dem die erste Folge von Signalmustern jedes Redespurts von der Vektorquantisierungsoperation ausgeschlossen und durch Blockkompandierungs-Impulscodemodulations- (BCPCM) Techniken codiert und decodiert und für den Anfangsschritt jeder Redespurt-Codebuch-Aktualisierung benutzt wird.
4. CELP/LTP-Sprachcodierungsgerät mit adaptiven Kurzzeitfiltermitteln für die Filterung eines Sprachsignals s(n) und der Ableitung eines Restsignals r(n), mit einer Langzeitvorhersage- (LTP) Rückkopplungsschleife zur Erzeugung eines vorhergesagten Restsignals rp(n); mit Mitteln zur Subtraktion des vorhergesagten Restsignals vom Restsignal und zur Ableitung eines Fehlersignals e(n); mit Vektorquantisierungsmitteln, die mit diesen Subtraktionsmitteln verbunden sind, wobei die Vektorquantisierungsmittel ein Codebuch enthalten, das anfangs mit vorher definierten Codeworten geladen wird, sowie Suchmittel, um Folgen von aufeinanderfolgenden e(n)-Mustern in eine ausgewählte Codewortadresse und einen Verstärkungsfaktor umzuwandeln, einen Codewort-Codierer, um das ausgewählte Codewort zu codieren, einen Codewort-Decodierer, der mit dem Codewort-Codierer verbunden ist, um ein decodiertes Fehlersignal e'(n) bereitzustellen; wobei die Langzeitvorhersage- (LTP) Rückkopplungsschleife mit dem Codewort-Decodierer verbunden ist, um ein decodiertes Restsignal r'(n) und das Signal rp(n) bereitzustellen, und die Mittel umfassen:
- Mittel zur Aufteilung der Codebuchinhalte in einen Teil mit festem Inhalt und einen Teil fester Länge mit adaptivem Inhalt;
- Normalisierungsmittel, die mit dem Codewort-Decodierer und der Rückkopplungsschleife zur Erzeugung normalisierter ausgewählter Codeworte CB(i) verbunden sind, wobei:
CB(i) = NORM (a . e'(i) + (1-a) . r'(i))
wobei die NORM-Operation für eine Normalisierungsoperation entsprechend
steht, a < 1 einen vorher ausgewählten Gewichtskoeffizienten darstellt, SQRT(.) für die Quadratwurzelfunktion steht und C der konstante Energiewert für jedes Codewort ist;
- Lademittel, die mit den Normalisierungsmitteln verbunden sind, um das normalisierte Codewort in den adaptiven Teil des Codebuches zu laden, wobei ein früher gespeichertes Codewort dort gestrichen wird.
5. Sprachcodierungsgerät entsprechend Anspruch 4, das weiterhin umfaßt:
- einen Sprachaktivitätsdetektor (VAD), der im Sprachsignal auf das Auftreten des Anfangs und des Endes von beliebigen Pausen, die länger als ein vorher definierter Wert sind, reagiert, wobei diese langen Pausen Redespurts begrenzen, und zur Erzeugung eines VAD-Kennzeichens am Anfang jedes Redespurts;
- Rücksetzmittel, die auf das VAD-Kennzeichen reagieren, zum Rücksetzen des adaptiven Codebuchteils auf seinen ursprünglichen Inhalt.
6. Sprachcodierungsgerät entsprechend Anspruch 5, das weiterhin enthält:
- Blockkompandierungs-Impulscodemodulations- (BCPCM) Codierungs- und Decodierungsmittel;
- Verzögerungsmittel, die mit dem r(n)-Signal gespeist werden und auf das VAD-kennzeichen reagieren, um die erste zu codierende Folge von Sprachmustern am Anfang jedes Redespurts vom CELP/LTP-Codierer zu entfernen und in die BCPCM- Codierungs-Decodierungs-Mittel zu bringen;
- Mittel, um die BCPCM-decodierte Musterfolge in den adaptiven Codebuchteil zu bringen.
DE3853161T 1988-10-19 1988-10-19 Vektorquantisierungscodierer. Expired - Fee Related DE3853161T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP88480060A EP0364647B1 (de) 1988-10-19 1988-10-19 Vektorquantisierungscodierer

Publications (2)

Publication Number Publication Date
DE3853161D1 DE3853161D1 (de) 1995-03-30
DE3853161T2 true DE3853161T2 (de) 1995-08-17

Family

ID=8200501

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3853161T Expired - Fee Related DE3853161T2 (de) 1988-10-19 1988-10-19 Vektorquantisierungscodierer.

Country Status (4)

Country Link
US (1) US5007092A (de)
EP (1) EP0364647B1 (de)
JP (1) JPH02155313A (de)
DE (1) DE3853161T2 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2560873B2 (ja) * 1990-02-28 1996-12-04 日本ビクター株式会社 直交変換符号化復号化方法
CA2051304C (en) * 1990-09-18 1996-03-05 Tomohiko Taniguchi Speech coding and decoding system
JP2626223B2 (ja) * 1990-09-26 1997-07-02 日本電気株式会社 音声符号化装置
DK0550657T3 (da) * 1990-09-28 1997-01-13 Philips Electronics Uk Ltd Fremgangsmåde og system til kodning af analoge signaler
US5195168A (en) * 1991-03-15 1993-03-16 Codex Corporation Speech coder and method having spectral interpolation and fast codebook search
DE69233397T2 (de) * 1991-06-11 2005-08-11 Qualcomm, Inc., San Diego Vorrichtung und Methode zur Maskierung von Fehlern in Datenrahmen
JP3129778B2 (ja) * 1991-08-30 2001-01-31 富士通株式会社 ベクトル量子化器
US5455888A (en) * 1992-12-04 1995-10-03 Northern Telecom Limited Speech bandwidth extension method and apparatus
DE4315319C2 (de) * 1993-05-07 2002-11-14 Bosch Gmbh Robert Verfahren zur Aufbereitung von Daten, insbesondere von codierten Sprachsignalparametern
US5651090A (en) * 1994-05-06 1997-07-22 Nippon Telegraph And Telephone Corporation Coding method and coder for coding input signals of plural channels using vector quantization, and decoding method and decoder therefor
JP3224955B2 (ja) * 1994-05-27 2001-11-05 株式会社東芝 ベクトル量子化装置およびベクトル量子化方法
US5797118A (en) * 1994-08-09 1998-08-18 Yamaha Corporation Learning vector quantization and a temporary memory such that the codebook contents are renewed when a first speaker returns
US5497337A (en) * 1994-10-21 1996-03-05 International Business Machines Corporation Method for designing high-Q inductors in silicon technology without expensive metalization
JPH08179796A (ja) * 1994-12-21 1996-07-12 Sony Corp 音声符号化方法
US5751901A (en) * 1996-07-31 1998-05-12 Qualcomm Incorporated Method for searching an excitation codebook in a code excited linear prediction (CELP) coder
FI114248B (fi) * 1997-03-14 2004-09-15 Nokia Corp Menetelmä ja laite audiokoodaukseen ja audiodekoodaukseen
US6092040A (en) * 1997-11-21 2000-07-18 Voran; Stephen Audio signal time offset estimation algorithm and measuring normalizing block algorithms for the perceptually-consistent comparison of speech signals
US7072832B1 (en) * 1998-08-24 2006-07-04 Mindspeed Technologies, Inc. System for speech encoding having an adaptive encoding arrangement
US7171355B1 (en) 2000-10-25 2007-01-30 Broadcom Corporation Method and apparatus for one-stage and two-stage noise feedback coding of speech and audio signals
US7110942B2 (en) * 2001-08-14 2006-09-19 Broadcom Corporation Efficient excitation quantization in a noise feedback coding system using correlation techniques
US20030101049A1 (en) * 2001-11-26 2003-05-29 Nokia Corporation Method for stealing speech data frames for signalling purposes
US6751587B2 (en) 2002-01-04 2004-06-15 Broadcom Corporation Efficient excitation quantization in noise feedback coding with general noise shaping
US7206740B2 (en) * 2002-01-04 2007-04-17 Broadcom Corporation Efficient excitation quantization in noise feedback coding with general noise shaping
US7103538B1 (en) * 2002-06-10 2006-09-05 Mindspeed Technologies, Inc. Fixed code book with embedded adaptive code book
US8473286B2 (en) * 2004-02-26 2013-06-25 Broadcom Corporation Noise feedback coding system and method for providing generalized noise shaping within a simple filter structure
US8092263B2 (en) * 2007-07-06 2012-01-10 Ddk Ltd. Process for producing connector and connector produced by the same process
JP2010034794A (ja) * 2008-07-28 2010-02-12 Fujitsu Ltd オーディオ符号化装置、オーディオ符号化プログラム及びオーディオ符号化方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4720861A (en) * 1985-12-24 1988-01-19 Itt Defense Communications A Division Of Itt Corporation Digital speech coding circuit
EP0241170B1 (de) * 1986-03-28 1992-05-27 AT&T Corp. Anordnung zur Erzeugung eines anpassungsfähigen Spracherkennungssignals
JPH088499B2 (ja) * 1986-12-09 1996-01-29 富士通株式会社 静止画像の符号化方式
US4910781A (en) * 1987-06-26 1990-03-20 At&T Bell Laboratories Code excited linear predictive vocoder using virtual searching
JPH0727400B2 (ja) * 1988-04-28 1995-03-29 三菱電機株式会社 学習型ベクトル量子化器

Also Published As

Publication number Publication date
DE3853161D1 (de) 1995-03-30
US5007092A (en) 1991-04-09
JPH02155313A (ja) 1990-06-14
EP0364647B1 (de) 1995-02-22
EP0364647A1 (de) 1990-04-25

Similar Documents

Publication Publication Date Title
DE3853161T2 (de) Vektorquantisierungscodierer.
DE3883519T2 (de) Verfahren und Einrichtung zur Sprachkodierung mit mehreren Datenraten.
DE69932460T2 (de) Sprachkodierer/dekodierer
DE68911287T2 (de) Codierer/decodierer.
DE69814517T2 (de) Sprachkodierung
DE69926821T2 (de) Verfahren zur signalgesteuerten Schaltung zwischen verschiedenen Audiokodierungssystemen
DE2945414C2 (de) Sprachsignal-Voraussageprozessor und Verfahren zur Verarbeitung eines Sprachleistungssignals
DE69126195T2 (de) System für eingebettetes Kodieren von Sprachsignalen
DE69900786T2 (de) Sprachkodierung
DE69828725T2 (de) Sprachcodier- und -decodiersystem
DE19604273C5 (de) Verfahren und Vorrichtung zum Durchführen einer Suche in einem Kodebuch im Hinblick auf das Kodieren eines Klangsignales, Zellkommunikationssystem, Zellnetzwerkelement und mobile Zell-Sender-/Empfänger-Einheit
DE68916944T2 (de) Verfahren zur schnellen Bestimmung der Grundfrequenz in Sprachcodierern mit langfristiger Prädiktion.
DE69331079T2 (de) CELP-Vocoder
DE69023402T2 (de) Verfahren zur Sprachkodierung und -dekodierung.
DE69731588T2 (de) Coderienrichtung mit verringerter komplexität für ein signalübertragungssystem
DE3784942T2 (de) Duplex-datenuebertragung.
DE69832358T2 (de) Verfahren zur Sprachkodierung und -dekodierung
DE69524890T2 (de) Parametrische Sprachkodierung
DE19811039A1 (de) Verfahren und Vorrichtungen zum Codieren und Decodieren von Audiosignalen
DE69121411T2 (de) Methode und gerät zur codierung von analogen signalen
DE69033510T2 (de) Numerischer sprachkodierer mit verbesserter langzeitvorhersage durch subabtastauflösung
DE69329568T2 (de) Verfahren zur Sprachkodierung
DE69028434T2 (de) System zur Codierung von Breitbandaudiosignalen
DE19722705A1 (de) Verfahren zur Abschätzung der Verstärkung zur Sprachkodierung
DE60101827T2 (de) Relative Pulsposition für einen CELP-Sprachkodierer

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee