-
TECHNISCHES GEBIET
-
Die
vorliegende Erfindung betrifft die Codierung und Decodierung von
Mehrkanalsignalen, wie beispielsweise Stereo-Audiosignalen.
-
STAND DER TECHNIK
-
Konventionelle
Sprachcodierverfahren basieren im Allgemeinen auf Einzelkanal-Sprachsignalen.
Ein Beispiel ist die Sprachcodierung, die in einer Verbindung zwischen
einem regulären
Telefon und einem Mobiltelefon verwendet wird. Die Sprachcodierung
wird auf der Funkverbindung verwendet, um die Bandbreitennutzung
auf der frequenzbegrenzten Luftschnittstelle zu reduzieren. Gut
bekannte Beispiele der Sprachcodierung sind PCM (Pulse Code Modulation),
ADPCM (Adaptive Differential Pulse Code Modulation), Subbandcodierung,
Transformationscodierung, LPC-(Linear Predictive Coding)Vocoding,
und Hybridcodierung, wie beispielsweise CELP-(Code-Excited Linear
Predictive)Codierung [1–2].
-
In
einer Umgebung, in der die Audio-/Sprachkommunikation mehr als ein
Eingangssignal verwendet, z.B. eine Computerarbeitsstation mit Stereolautsprechern
und zwei Mikrofonen (Stereo-Mikrofone), sind zwei Audio-/Sprachkanäle zum Übertragen
der Stereosignale erforderlich. Ein anderes Beispiel einer Mehrkanalumgebung
könnte
ein Konferenzraum mit zwei, drei oder vier Kanaleingaben/-ausgaben
sein. Es wird erwartet, dass dieser Anwendungstyp im Internet und
bei Mobilfunksystemen der dritten Generation Verwendung findet.
-
Allgemeine
Prinzipien für
die Codierung/Decodierung eines Mehrkanal-Lineare-Prädiktive-Analyse-durch-Synthese-(LPAS) Signals
sind in [3] beschrieben. Jedoch sind die beschriebenen Prinzipien nicht
immer in Situationen optimal, in denen eine starke Variation in
der Korrelation zwischen unterschiedlichen Kanälen existiert. Zum Beispiel
kann ein Mehrkanal-LPAS-Codierer mit Mikrofonen, die etwas beabstandet
sind, oder mit Richtungsmikrofonen, die nahe beieinander sind, verwendet
werden. In manchen Einstellungen werden mehrfache Geräuschquellen üblich sein
und eine Zwischenkanalkorrelation ist reduziert, während in
anderen Einstellungen ein einzelnes Geräusch überwiegend sein wird. Manchmal
wird die Akustikeinstellung für
jedes Mikrofon ähnlich
sein, in anderen Situationen können manche
Mikrofone nahe bei reflektierenden Oberflächen sein, während andere
dieses nicht sind. Der Typ und Grad von Zwischenkanal- und Intrakanal-Signalkorrelationen
in diesen unterschiedlichen Einstellungen variieren wahrscheinlich.
Der in [3] beschriebene Codierer ist nicht immer gut geeignet, diese
unterschiedlichen Fälle
zu bewältigen.
-
Dokument
EP 0 858 067 beschreibt
einen Mehrkanal-Sprachcodierer,
der eine prädiktive
Codierung, wie beispielsweise CELP, verwendet, wobei einige Codierungsschemata
verwendet werden können
und die Schemaauswahl auf den Korrelationen zwischen den Signalen
der Kanäle
basiert.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es
ist eine Aufgabe der vorliegenden Erfindung, die Adaptierung einer
Codierung/Decodierung für
ein Mehrkanal-Lineare-Prädiktive-Analyse-durch-Synthese-Signal
zum Variieren einer Zwischenkanalkorrelation zu erleichtern.
-
Das
Hauptproblem ist es, eine effiziente Mehrkanal-LPAS-Sprachcodierungsstruktur
zu finden, die die variierende Quellsignalkorrelation ausnutzt.
Für ein
M-Kanalsprachsignal,
ist ein Codierer wünschenswert,
der einen Bitstrom produzieren kann, der im Durchschnitt erheblich
M-mal unter dem eines Einzelkanal-Sprachcodierers ist, während dieselbe
oder eine bessere Klangqualität
bei einer gegebenen durchschnittlichen Bitrate bewahrt wird.
-
Andere
Aufgaben enthalten eine angemessene Implementierung und eine Berechnungskomplexität für Realisierungen
der Codierer innerhalb dieser Grundstruktur.
-
Diese
Aufgaben werden in Übereinstimmung mit
den angefügten
Ansprüchen
gelöst.
-
Kurz
zusammengefasst beinhaltet die vorliegende Erfindung einen Codierer,
der zwischen mehrfachen Modi umschalten kann, so dass Codierungsbits
zwischen unterschiedlichen Teilen des Mehrkanal-LPAS-Codierers erneut
zugeteilt werden können, um
am besten zu dem Typ und Grad der Zwischenkanalkorrelation zu passen.
Dieses ermöglicht
eine Quellsignal-gesteuerte Mehrmodus-Mehrkanal-Analyse-durch-Synthese-Sprachcodierung,
die zum Verringern der durchschnittlichen Bitrate und zum Aufrechterhalten
einer hohen Klangqualität
verwendet werden kann.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die
Erfindung zusammen mit weiteren Aufgaben und Vorteilen davon kann
am besten durch Verweis auf die folgende Beschreibung in Zusammenhang
mit den begleitenden Zeichnungen verstanden werden.
-
1 ist
ein Blockdiagramm eines konventionellen Einzelkanal-LPAS-Sprachcodierers.
-
2 ist
ein Blockdiagramm einer Ausführungsform
des Analyseteils eines Mehrkanal-LPAS-Sprachcodierers gemäß dem Stand
der Technik.
-
3 ist
ein Blockdiagramm einer Ausführungsform
des Syntheseteils eines Mehrkanal-LPAS-Sprachcodierers gemäß dem Stand der Technik.
-
4 ist
ein Blockdiagramm einer beispielhaften Ausführungsform des Syntheseteils
eines Mehrkanal-LPAS-Sprachcodierers gemäß der vorliegenden Erfindung.
-
5 ist
ein Flussdiagramm einer beispielhaften Ausführungsform eines Verfahrens
zum Suchen eines mehrteiligen festen Codebuchs.
-
6 ist
ein Flussdiagramm eines anderen beispielhaften Verfahrens eines
Verfahrens zum Suchen eines mehrteiligen festen Codebuchs.
-
7 ist
ein Blockdiagramm einer beispielhaften Ausführungsform eines Analyseteils
eines Mehrkanal-LPAS-Sprachcodierers gemäß der vorliegenden Erfindung.
-
8 ist
ein Flussdiagramm, das eine beispielhafte Ausführungsform eines Verfahrens
zum Bestimmen der Codierungsstrategie veranschaulicht.
-
DETAILLIERTE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
In
der folgenden Beschreibung werden dieselben Bezugszeichen für äquivalente
oder ähnliche Elemente
verwendet.
-
Die
vorliegende Erfindung wird nun durch Vorstellung eines konventionellen
Mehrkanal-Lineare-Prädiktive-Analyse-durch-Synthese-(LPAS)Sprachcodierers
und eines allgemeinen Mehrkanal-Lineare-Prädiktive-Analyse-durch- Synthese-Sprachcodierers
beschrieben, der in [3] beschrieben sind.
-
1 ist
ein Blockdiagramm eines konventionellen Einzelkanal-LPAS-Sprachcodierers.
Der Codierer umfasst zwei Teile, und zwar einen Syntheseteil und
einen Analyseteil (ein entsprechender Decodierer wird nur einen
Syntheseteil enthalten).
-
Der
Syntheseteil umfasst ein LPC-Synthesefilter 12, das ein
Anregungssignal i(n) empfängt
und ein synthetisches Sprachsignal s ^(n) ausgibt. Das Anregungssignal
i(n) wird durch Addieren zweier Signale u(n) und v(n) in einem Addierer 22 gebildet.
Das Signal u(n) wird durch Skalieren eines Signals f(n) von einem
festen Codebuch 16 mittels einer Verstärkung gF in
einem Verstärkungselement 20 gebildet.
Das Signal v(n) wird durch Skalieren einer verzögerten (durch Verzug "Verzögerung") Version des Anregungssignals
i(n) von einem adaptiven Codebuch 14 durch eine Verstärkung gA in einem Verstärkungselement 18 gebildet.
Das adaptive Codebuch ist durch eine Rückkopplungsschleife mit einem
Verzugelement 24 gebildet, das das Anregungssignal i(n)
um eine Subrahmenlänge
N verzögert.
Somit wird das adaptive Codebuch vergangene Anregungen i(n) enthalten,
die in das Codebuch verschoben werden (die ältesten Anregungen werden aus
dem Codebuch herausgeschoben und verworfen). Die LPC-Synthesefilter-Parameter werden
typischerweise jeden 20–40
ms Rahmen aktualisiert, während das
adaptive Codebuch jeden 5–10
ms Subrahmen aktualisiert wird.
-
Der
Analyseteil des LPAS-Codierers führt eine
LPC-Analyse des eingehenden Sprachsignals s(n) durch und führt auch
eine Anregungsanalyse durch.
-
Die
LPC-Analyse wird durch ein LPC-Analysefilter 10 durchgeführt. Dieses
Filter empfängt
das Sprachsignal s(n) und bildet ein parametrisches Modell dieses
Signals auf einer Rahmen-um-Rahmen-Basis. Die Modellparameter werden
ausgewählt,
um die Energie eines Restvektors zu minimieren, der durch die Differenz
zwischen einem tatsächlichen
Sprachrahmenvektor und dem durch das Modell produzierten entsprechenden
Signalvektor gebildet ist. Die Modellparameter werden durch die
Filterkoeffizienten des Analysefilters 10 dargestellt.
Diese Filterkoeffizienten definieren die Transferfunktion A(z) des
Filters. Da das Synthesefilter 12 eine Transferfunktion
hat, die wenigstens ungefähr
gleich 1/A(z) ist, werden diese Filterkoeffizienten außerdem das Synthesefilter 12 steuern,
wie durch die gestrichelte Steuerlinie angegeben.
-
Die
Anregungsanalyse wird durchgeführt, um
die beste Kombination des festen Codebuchvektors (Codebuchindex),
der Verstärkung
gF, des adaptiven Codebuchvektors (Verzögerung)
und der Verstärkung
gA zu bestimmen, die in dem synthetischen Signalvektor
{s ^(n)} resultiert, der am besten mit Sprachsignalvektor {s(n)} übereinstimmt
(hierbei bezeichnet {} eine Sammlung von Abtastwerten, die einen
Vektor oder Rahmen bilden). Dieses wird durch eine erschöpfende Suche
getan, die sämtliche
mögliche
Kombinationen dieser Parameter testet (suboptimale Suchverfahren,
bei denen manche Parameter unabhängig
von den anderen Parametern bestimmt werden und dann während der
Suche nach den verbleibenden Parametern konstant gehalten werden,
sind auch möglich).
Um zu testen, wie nah ein synthetischer Vektor {s ^(n)} dem entsprechenden Sprachvektor
{s(n)} ist, kann die Energie des Differenzvektors {e(n)} (in einem
Addierer 26 gebildet) in einem Energierechner 30 berechnet
werden. Jedoch ist es effizienter, die Energie eines gewichteten
Fehlersignalvektors {ew(n)} zu berücksichtigen,
in welchem die Fehler auf solch eine Weise umverteilt worden sind,
dass große
Fehler durch Frequenzbänder einer
großen
Amplitude maskiert werden. Dies wird im Gewichtungsfilter 28 getan.
-
Die
Modifizierung des Einzelkanal-LPAS-Codierers von 1 zu
einem Mehrkanal-LPAS-Codierer in Übereinstimmung mit [3] wird
nun mit Verweis auf 2 bis 3 beschrieben.
Ein Zweikanal-(Stereo)Sprachsignal wird angenommen, aber dieselben
Prinzipien können
auch für
mehr als zwei Kanäle
verwendet werden.
-
2 ist
ein Blockdiagramm einer Ausführungsform
des Analyseteils des in [3] beschrieben Mehrkanal-LPAS-Sprachcodierers.
Das Eingangssignal ist in 2 nun ein
Mehrkanalsignal, wie durch Signalkomponenten s1(n),
s2(n) angegeben. Das LPC-Analysefilter 10 in 1 ist
durch einen LPC-Analysefilterblock 10M mit einer Matrix-wertigen Transferfunktion
A(z) ersetzt worden. Ähnlich
sind Addierer 26, Gewichtungsfilter 28 und Energierechner 30 durch
entsprechende Mehrkanalblöcke 26M, 28M bzw. 30M ersetzt
worden.
-
3 ist
ein Blockdiagramm einer Ausführungsform
des Syntheseteils des in [3] beschriebenen Mehrkanal-LPAS-Sprachcodierers.
Ein Mehrkanaldecodierer kann auch durch solch einen Syntheseteil
gebildet werden. Hierbei ist das LPC-Synthesefilter 12 in 1 durch
einen LPC-Synthesefilterblock 12M mit
einer Matrix-wertigen Transferfunktion A–1(z)
ersetzt worden, welche (wie durch die Notation angegeben) wenigstens
ungefähr
gleich der inversen von A(z) ist. Ähnlich sind der Addierer 22,
das feste Codebuch 16, das Verstärkungselement 20,
das Verzögerungselement 24,
das adaptive Codebuch 14 und das Verstärkungselement 18 durch
entsprechende Mehrkanalblöcke 22M, 16M, 24M, 14M bzw. 18M ersetzt
worden.
-
Ein
Problem dieses Mehrkanalcodierers gemäß dem Stand der Technik ist,
dass er nicht sehr flexibel hinsichtlich der aufgrund der variierenden
Mikrofonumgebungen variierenden Zwischenkanalkorrelation ist. Zum
Beispiel können
in manchen Situationen einige Mikrofone Sprache von einem einzelnen Sprecher
aufnehmen. In solch einem Fall können die Signale
von den unterschiedlichen Mikrofonen im Wesentlichen durch verzögerte und
skalierte Versionen desselben Signals gebildet werden, d.h., dass die
Kanäle
stark korreliert sind. In anderen Situationen können unterschiedliche gleichzeitige
Sprecher bei den individuellen Mikrofonen sein. In diesem Fall gibt
es nahezu keine Zwischenkanalkorrelation. Manchmal wird die Akustikeinstellung
für jedes
Mikrofon ähnlich
sein, in anderen Situationen können manche
Mikrofone nahe an reflektierenden Oberflächen sein, während andere
dieses nicht sind. Der Typ und Grad der Zwischenkanal- und Intrakanal-Signalkorrelationen
in diesen unterschiedlichen Einstellungen variiert wahrscheinlich.
Dieses erzeugt eine Motivation für
Codierer, die zwischen mehrfachen Modi umschalten können, so
dass Bits zwischen unterschiedlichen Teilen des Mehrkanal-LPAS-Codierers erneut
zugeteilt werden können,
um den Typ und grad der Zwischenkanalkorrelation am besten zu treffen.
Eine feste Qualitätsschwelle
und zeitvariierende Signaleigenschaften (einzelner Sprecher, mehrere Sprecher,
Vorliegen oder Abwesenheit von Hintergrundrauschen usw.) bringt
eine Motivation für
Mehrkanal-CELP-Codierer mit variablen Bruttobitraten. Eine feste
Bruttobitrate kann auch verwendet werden, wo die Bits nur erneut
zugeteilt werden, um die Codierung und die wahrgenommene Endbenutzerqualität zu verbessern.
-
Die
folgende Beschreibung eines Mehrmodus-Mehrkanal-LPAS-Codierers wird beschreiben, wie
die Codierungsflexibilität
in den vielfältigen
Blöcken
erhöht
werden kann. Es sollte jedoch verstanden werden, dass nicht alle
Blöcke
auf die beschriebene Weise konfiguriert werden müssen. Der exakte Ausgleich
zwischen Codierungsflexibilität
und Komplexität
muss für
die individuelle Codiererimplementierung bestimmt werden.
-
4 ist
ein Blockdiagramm einer beispielhaften Ausführungsform des Syntheseteils
eines Mehrkanal-LPAS-Sprachcodierers
gemäß der vorliegenden
Erfindung.
-
Ein
wesentliches Merkmal des Codierers ist die Struktur des mehrteiligen
festen Codebuchs. Gemäß der Erfindung
enthält
es sowohl individuelle feste Codebücher FC1, FC2 für jeden
Kanal als auch ein gemeinsam genutztes festes Codebuch FCS. Obwohl
das gemeinsam genutzte feste Codebuch FCS allen Kanälen gemeinsam
ist (was bedeutet, dass derselbe Codebuchindex von allen Kanälen verwendet
wird), sind die Kanäle
mit individuellen Verzögerungen
D1, D2 verknüpft,
wie in 4 veranschaulicht. Darüber hinaus sind die individuellen
festen Codebücher
FC1, FC2 mit individuellen Verstärkungen gF1, gF2 verknüpft, während die
individuellen Verzögerungen
D1, D2 (welche entweder ganzzahlig oder gebrochen sein können) mit
individuellen Verstärkungen
gFS1, gFS2 verknüpft sind.
Die Anregung von jedem individuellen festen Codebuch FS1, FS2 wird
zu der entsprechenden Anregung (ein gemeinsamer Codebuchvektor,
aber individuelle Verzögerungen und
Verstärkungen
für jeden
Kanal) von dem gemeinsam genutzten festen Codebuch FCS in einem
Addierer AF1, AF2 hinzugefügt.
Typischerweise umfassen die festen Codebücher algebraische Codebücher, in
denen die Anregungsvektoren durch Einheitspulse gebildet werden,
die über
jeden Vektor in Übereinstimmung
mit gewissen Regeln verteilt werden (dieses ist in dem Fachgebiet
wohlbekannt und wird hier in weiterem Detail nicht beschrieben).
-
Diese
mehrteilige feste Codebuchstruktur ist sehr flexibel. Zum Beispiel
können
manche Codierer mehrere Bits in den individuellen festen Codebüchern verwenden,
während
andere Codierer mehrere Bits in dem gemeinsam genutzten festen Codebuch verwenden
können.
Darüber
hinaus kann ein Codierer die Verteilung von Bits zwischen individuellen
und gemeinsam genutzten Codebüchern
dynamisch ändern,
in Abhängigkeit
von der Zwischenkanalkorrelation. In dem idealen Fall, in dem jeder
Kanal aus einer skalierten und einer umgesetzten Version desselben Signals
(echofreier Raum) besteht, wird nur das gemeinsam genutzte Codebuch
benötigt,
und die Verzögerungswerte
entsprechen direkt der Klangausbreitungszeit. In dem entgegengesetzten
Fall, in dem die Zwischenkanalkorrelation sehr gering ist, sind
nur getrennte feste Codebücher
erforderlich. Für
manche Signale kann es auch zweckgemäß sein, mehrere Bits an einen
individuellen Kanal als an die anderen Kanäle zuzuteilen (asymmetrische
Verteilung von Bits).
-
Obwohl 4 eine
Zweikanalstruktur eines festen Codebuchs veranschaulicht, wird erkannt
werden, dass die Konzepte leichtfertig auf mehr Kanäle durch
Erhöhen
der Anzahl individueller Codebücher und
der Anzahl von Verzögerungen
und Zwischenkanalverstärkungen
verallgemeinert werden können.
-
Die
gemeinsam genutzten und individuellen fixierten Codebücher werden
typischerweise in serieller Reihenfolge durchsucht. Die bevorzugte
Reihenfolge ist es, zuerst den Anregungsvektor des gemeinsam genutzten
fixierten Codebuchs, die Verzögerungen
und Verstärkungen
zu bestimmen. Danach werden die individuellen festen Codebuchvektoren und
Verstärkungen
bestimmt.
-
Zwei
Verfahren zum Suchen eines mehrteiligen festen Codebuchs werden
nun mit Verweis auf 5 und 6 beschrieben.
-
5 ist
ein Flussdiagramm einer Ausführungsform
eines Verfahrens zum Suchen eines mehrteiligen festen Codebuchs
gemäß der vorliegenden
Erfindung. Schritt S1 bestimmt einen primären oder führenden Kanal, typischerweise
den stärksten Kanal
(der Kanal, der die größte Rahmenenergie hat).
Schritt S2 bestimmt die Kreuzkorrelation zwischen jedem sekundären oder
verzögernden
Kanal und dem Primärkanal
für ein
vorbestimmtes Intervall, z.B. ein Teil oder ein vollständiger Rahmen.
Schritt S3 speichert Verzögerungskandidaten
für jeden
Sekundärkanal.
Diese Verzögerungskandidaten
werden durch die Positionen einer Anzahl der höchsten Kreuzkorrelationsspitzen
und der nächsten
Positionen um jede Spitze für
jeden Sekundärkanal
definiert. Man könnte
z.B. die drei höchsten
Spitzen bzw. Peaks wählen,
und dann die nächsten
Positionen auf beiden Seiten jeder Spitze hinzufügen, was insgesamt 9 Verzögerungskandidaten
ergibt. Wenn Hochauflösungs-(fraktionale)Verzögerungen
verwendet werden, kann die Anzahl von Kandidaten um jede Spitze
herum z.B. auf 5 oder 7 erhöht
werden. Die höhere
Auflösung
kann durch Hochtasten des Eingabesignals erhalten werden. Die Verzögerung für den Primärkanal kann
in einer einfachen Ausführungsform
als Null betrachtet werden. Da jedoch die Pulse in dem Codebuch
typischerweise nicht beliebige Positionen haben, kann ein gewisser
Codierungsgewinn durch Zuweisen einer Verzögerung auch an den Primärkanal erzielt
werden. Dieses ist besonders der Fall, wenn Hochauflösungsverzögerungen
verwendet werden. Im Schritt S4 wird ein temporärer gemeinsam genutzter fester
Codebuchvektor für
jede gespeicherte Verzögerungskandidatenkombination gebildet.
Schritt S5 wählt
die Verzögerungskombination
aus, die dem besten temporären
Codebuchvektor entspricht. Schritt S6 bestimmt die optimalen Zwischenkanalverstärkungen.
Schließlich
bestimmt Schritt S7 die kanalspezifischen (nicht-gemeinsam genutzten)
Anregungen und Verstärkungen.
-
In
einer Variation dieses Algorithmus werden alle oder die besten temporären Codebuchvektoren und
entsprechende Verzögerungen
und Zwischenkanalverstärkungen
behalten bzw. belassen. Für
jede belassene Kombination wird eine kanalspezifische Suche in Übereinstimmung
mit Schritt S7 durchgeführt.
Schließlich
wird die beste Kombination einer gemeinsam genutzten und einer individuellen
festen Codebuchanregung ausgewählt.
-
Um
die Komplexität
dieses Verfahrens zu reduzieren, ist es möglich, den Anregungsvektor
des temporären
Codebuchs auf nur wenige Pulse zu beschränken. Zum Beispiel enthält in dem
GSM-System das vollständige
feste Codebuch eines verbesserten Vollraten-(enhanced full rate)
Kanals 10 Pulse. In diesem Fall sind 3–5 temporäre Codebuchpulse zweckgemäß. Im Allgemeinen
würde 25–50% der Gesamtanzahl
von Pulsen eine zweckgemäße Zahl sein.
Wenn die beste Verzögerungskombination
ausgewählt
worden ist, wird das vollständige
Codebuch nur nach dieser Kombination abgesucht (typischerweise verbleiben
die bereits positionierten Pulse unverändert, nur die übrigen Pulse
eines vollständigen Codebuchs
müssen
positioniert werden).
-
6 ist
ein Flussdiagramm einer anderen Ausführungsform eines Verfahrens
zum Suchen eines mehrteiligen festen Codebuchs. In dieser Ausführungsform
sind die Schritte S1, S6 und S7 dieselben wie in der Ausführungsform
von 5. Schritt S10 positioniert einen neuen Anregungsvektorpuls
in einer optimalen Position für
jede erlaubte Verzögerungskombination
(beim erstmaligen Durchführen dieses
Schrittes sind sämtliche
Verzögerungskombinationen
erlaubt). Schritt S11 testet, ob sämtliche Pulse verbraucht worden
sind. Wenn nicht, schränkt Schritt
S12 die erlaubten Verzögerungskombinationen
auf die besten verbleibenden Kombinationen ein. Danach wird ein
anderer Puls den verbleibenden erlaubten Kombinationen hinzugefügt. Wenn
alle Pulse verbraucht worden sind, wählt schließlich Schritt S13 die beste
verbleibende Verzögerungskombination und
ihren entsprechenden gemeinsam genutzten festen Codebuchvektor aus.
-
Hinsichtlich
Schritt S12 gibt es einige Möglichkeiten.
Eine Möglichkeit
ist es, nur einen gewissen Prozentsatz, z.B. 25%, der besten Verzögerungskombinationen
in jeder Iteration zu behalten. Um jedoch zu vermeiden, dass nur
eine Kombination übrig
bleibt, bevor sämtliche
Pulse verbraucht worden sind, ist es möglich, sicherzustellen, dass
wenigstens eine gewisse Anzahl von Kombinationen nach jeder Iteration übrig bleibt.
Eine Möglichkeit
ist es, sicherzustellen, dass immer wenigstens so viele Kombinationen,
wie Pulse übriggeblieben
sind, plus Eins verbleiben. Auf diese Weise gibt es immer einige
Kandidatenkombinationen, von denen in jeder Iteration gewählt werden
kann.
-
Mit
nur einer Kreuzkanalverzweigung in dem festen Codebuch müssen der
Primärkanal
und der Sekundärkanal
Rahmen-um-Rahmen
bestimmt werden. Eine Möglichkeit
hierfür
ist es, dem festen Codebuchteil für den Primärkanal mehr Pulse zur Nutzung zuzuweisen
als dem Sekundärkanal.
-
Für die Verstärkungen
der festen Codebücher
erfordert jeder Kanal eine Verstärkung
für das gemeinsam
genutzte feste Codebuch und eine Verstärkung für das individuelle Codebuch.
Diese Verstärkungen
haben typischerweise eine signifikante Korrelation zwischen den
Kanälen.
Sie werden auch mit Verstärkungen
in dem adaptiven Codebuch korreliert sein. Somit werden Zwischenkanalvorhersagen
dieser Verstärkungen
möglich
sein, und eine Vektorquantisierung kann zum Codieren dieser verwendet
werden.
-
Unter
Rückverweis
auf 4 enthält
das mehrteilige adaptive Codebuch ein adaptives Codebuch AC1, AC2
für jeden
Kanal. Ein mehrteiliges adaptives Codebuch kann auf eine Anzahl
von Wegen in einem Mehrkanalcodierer konfiguriert sein.
-
Eine
Möglichkeit
ist es, alle Kanäle
eine gemeinsame Pitch-Verzögerung
gemeinsam nutzen zu lassen. Dieses ist machbar, wenn es eine starke
Zwischenkanalkorrelation gibt. Selbst wenn die Pitch-Verzögerung gemeinsam
genutzt wird, können die
Kanäle
immer noch separate Pitch-Verstärkungen
gA11, gA22 haben.
Die gemeinsam genutzte Pitch-Verzögerung wird in einer Art einer
geschlossenen Schleife in allen Kanälen gleichzeitig durchsucht.
-
Eine
andere Möglichkeit
ist es, dass jeder Kanal eine individuelle Pitch-Verzögerung P11, P22 überlassen
bekommt. Dieses ist machbar, wenn es eine schwache Zwischenkanalkorrelation
gibt (die Kanäle
sind unabhängig).
Die Pitch-Verzögerungen können differentiell
oder absolut codiert sein.
-
Eine
andere Möglichkeit
ist es, den Anregungsverlauf in einer Kreuzkanalweise zu verwenden.
Zum Beispiel kann Kanal 2 aus dem Anregungsverlauf von Kanal 1 bei
Zwischenkanalverzögerung P12 vorhergesagt werden. Dies ist machbar,
wenn es eine starke Zwischenkanalkorrelation gibt.
-
Wie
in dem Fall mit dem festen Codebuch ist die beschriebene Struktur
des adaptiven Codebuchs für
eine Mehrmodus-Operation sehr flexibel und geeignet. Die Wahl, ob
gemeinsam genutzte oder individuelle Pitch-Verzögerungen
verwendet werden, kann auf der Restsignalenergie basieren. In einem ersten
Schritt wird die Restenergie der optimalen gemeinsam genutzten Pitch-Verzögerung bestimmt.
In einem zweiten Schritt wird die Restenergie der optimalen individuellen
Pitch-Verzögerungen
bestimmt. Wenn die Restenergie des Falls der gemeinsam genutzten
Pitch-Verzögerung
die Restenergie des Falls der individuellen Pitch-Verzögerung um
eine vorbestimmte Menge überschreitet,
werden die individuellen Pitch-Verzögerungen verwendet. Andernfalls
wird eine gemeinsam genutzte Pitch-Verzögerung verwendet. Wenn erwünscht, kann
ein gleitender Durchschnitt der Energiedifferenz zum Glätten der
Entscheidung verwendet werden.
-
Diese
Strategie kann als eine Strategie einer "geschlossenen Schleife" betrachtet werden,
um zwischen einer gemeinsam genutzten oder individuellen Pitch-Verzögerungen
zu entscheiden. Eine andere Möglichkeit
ist eine Strategie einer "offenen
Schleife", die beispielsweise
auf einer Zwischenkanalkorrelation basiert. In diesem Fall wird
eine gemeinsam genutzte Pitch-Verzögerung verwendet,
wenn die Zwischenkanalkorrelation eine vorbestimmte Schwelle überschreitet.
Andernfalls werden individuelle Pitch-Verzögerungen verwendet.
-
Ähnliche
Strategien können
verwendet werden, um zu bestimmen, ob Zwischenkanal-Pitch-Verzögerungen
verwendet werden sollen oder nicht.
-
Darüber hinaus
wird eine signifikante Korrelation zwischen den Verstärkungen
eines adaptiven Codebuchs unterschiedlicher Kanäle erwartet. Diese Verstärkungen
können
aus dem internen Verstärkungsverlauf
des Kanals, aus Verstärkungen
in demselben Rahmen, aber zu anderen Kanälen gehörend, und auch aus Verstärkungen
eines festen Codebuchs vorhergesagt werden. Wie in dem Fall mit
dem festen Codebuch ist auch eine Vektorquantisierung möglich.
-
Im
LPC-Synthesefilterblock 12M in 4 verwendet
jeder Kanal ein individuelles LPC-(Linear Predictive Coding)Filter.
Diese Filter können
unabhängig
auf dieselbe Weise wie in dem Einzelkanalfall hergeleitet werden.
Jedoch können
auch manche oder alle der Kanäle
dasselbe LPC-Filter
benutzen. Dieses ermöglicht
es, zwischen Mehrfach- und
Einzelfiltermodi in Abhängigkeit
von Signaleigenschaften, z.B. Spektraldistanzen zwischen LPC-Spektren, umzuschalten.
Wenn eine Zwischenkanalprädiktion für die LSP-(Line
Spectral Pairs)Parameter verwendet wird, wird die Vorhersage für Modi einer
geringen Korrelation abgeschaltet oder reduziert.
-
7 ist
ein Blockdiagramm einer beispielhaften Ausführungsform des Analyseteils
eines Mehrkanal-LPAS-Sprachcodierers
gemäß der Erfindung.
Zusätzlich
zu den Blöcken,
die bereits mit Verweis auf 1 und 2 beschrieben
worden sind, enthält
der Analyseteil in 7 einen Mehrmodus-Analyseblock 40.
Block 40 bestimmt die Zwischenkanalkorrelation, um zu bestimmen,
ob es eine ausreichende Korrelation zwischen den Kanälen gibt, um
die Codierung unter Verwendung nur des gemeinsam genutzten Codebuchs
FCS, der Verzögerungen
D1, D2 und der Verstärkungen
gFS1, gFS2 zu rechtfertigen.
Wenn nicht, wird es notwendig sein, die individuellen festen Codebücher FC1,
FC2 und Verstärkungen
gF1, gF2 zu verwenden.
Die Korrelation kann durch die übliche
Korrelation in der Zeitdomäne bzw.
Zeitbereich bestimmt werden, d.h. durch Verschieben der Sekundärkanalsignale
bezüglich
des Primärsignals,
bis eine beste Passung erhalten wird. Wenn es mehr als zwei Kanäle gibt,
wird ein gemeinsam genutztes festes Codebuch verwendet werden, wenn
der kleinste Korrelationswert eine vorbestimmte Schwelle überschreitet.
Eine andere Möglichkeit ist
es, ein gemeinsam genutztes Codebuch für die Kanäle zu verwenden, die mit dem
Primärkanal
eine Korrelation haben, die eine vorbestimmte Schwelle überschreitet,
und individuelle feste Codebücher
für die
verbleibenden Kanäle
zu verwenden. Die exakte Schwelle kann durch Hörtests bestimmt werden.
-
Der
Analyseteil kann auch einen Relativenergierechner
42 enthalten,
der Skalierungsfaktoren e
1, e
2 für jeden
Kanal bestimmt. Diese Skalierungsfaktoren können bestimmt werden gemäß:
wobei E
i die
Energie von Rahmen i ist. Unter Verwendung dieser Skalierungsfaktoren
kann die gewichtete Restenergie R
1, R
2 für
jeden Kanal gemäß der relativen
Stärke
des Kanals umskaliert werden, wie in
7 angegeben.
Die Umskalierung der Restenergie für jeden Kanal hat vielmehr
den Effekt eines Optimierens hinsichtlich des relativen Fehlers
in jedem Kanal als den Effekt eines Optimierens hinsichtlich des
absoluten Fehlers in jedem Kanal. Eine Mehrkanal-Fehlerumskalierung
kann in allen Schritten verwendet werden (Herleiten von LPC-Filtern,
adaptiven und festen Codebüchern).
-
Die
Skalierungsfaktoren können
auch allgemeinere Funktionen der Relativkanalstärke e
i sein, zum
Beispiel
wobei α eine Konstante in dem Intervall
4–7 ist,
z.B. α ≈ 5. Die exakte
Form der Skalierungsfunktion kann durch subjektive Hörtests bestimmt
werden.
-
Die
Funktionalität
der vielfältigen
Elemente der beschriebenen Ausführungsform
der vorliegenden Erfindung wird typischerweise durch einen oder einige
Mikroprozessoren oder Mikro-/Signalprozessor-Kombinationen und entsprechende
Software implementiert.
-
In
den Figuren sind einige Blöcke
und Parameter optional und können
auf der Grundlage der Charakteristika des Mehrkanalsignals und eines
Gesamtsprachqualitätserfordernisses
verwendet werden. Bits in dem Codierer können zugeteilt werden, wo sie
am besten benötigt
werden. Der Codierer kann auf einer Rahmen-um-Rahmen-Basis wählen, Bits zwischen dem LPC-Teil,
dem adaptiven und festen Codebuch unterschiedlich zu verteilen.
Dies ist ein Typ einer Intrakanal-Mehrmodus-Operation.
-
Ein
anderer Typ einer Mehrmodus-Operation ist das Verteilen von Bits
in dem Codierer zwischen den Kanälen
(asymmetrische Codierung). Dieses wird als Zwischenkanal-Mehrmodus-Operation
bezeichnet. Ein Beispiel hierfür
würde ein
größeres festes
Codebuch für
einen/manche der Kanäle oder
mit mehreren Bits in einem Kanal codierte Codiererverstärkungen
sein. Die zwei Typen der Mehrmodus-Operation können kombiniert werden, um
effizient die Quellsignalcharakteristika auszunutzen.
-
Beim
Betrieb einer variablen Rate kann sich die Gesamt-Codierer-Bitrate
auf einer Rahmen-um-Rahmen-Basis ändern. Segmente mit ähnlichem
Hintergrundrauschen in allen Kanälen
werden weniger Bits als Sprachsegmente mit einem Übergang
von nicht-stimmhafter zu stimmhafter Sprache erfordern, die bei
geringfügig
unterschiedlichen Positionen innerhalb von mehreren Kanälen auftreten.
In Szenarien, wie beispielsweise einer Telefonkonferenz, in der
mehrere Sprecher einander überlappen können, können unterschiedliche
Geräusche
bzw. Klänge
verschiedene Kanäle
für aufeinanderfolgende
Rahmen dominieren. Dieses motiviert auch eine momentan erhöhte höhere Bitrate.
-
Die
Mehrmodus-Operation kann auf eine Weise einer geschlossenen Schleife
oder mit einem Verfahren einer offenen Schleife gesteuert werden. Das
Verfahren der geschlossenen Schleife bestimmt den Modus in Abhängigkeit
von einem Restcodierungsfehler für
jeden Modus. Dieses ist ein berechnungsintensives Verfahren. In
einem Verfahren einer offenen Schleife wird der Codiermodus durch
Entscheidungen auf der Grundlage von Eingangssignalcharakteristika
bestimmt. In dem Intrakanal-Fall
wird der Modus der variablen Rate beispielsweise auf der Grundlage
der Stimmeigenschaft, Spektralcharakteristika und der Signalenergie
wie in [4] beschrieben bestimmt. Für Zwischenkanalmodus-Entscheidungen können die
Zwischenkanal-Kreuzkorrelationsfunktion
oder eine Spektraldistanzfunktion zum Bestimmen des Modus verwendet
werden. Für
die Codierung von Rauschen und Nicht-Sprache ist es relevanter,
die Mehrkanal-Korrelationseigenschaften in der Frequenzdomäne zu verwenden.
Eine Kombination von Techniken einer geschlossenen Schleife und einer
offenen Schleife ist auch möglich.
Die Analyse einer offenen Schleife entscheidet über einige wenige Kandidatenmodi,
die codiert werden, und dann wird der endgültige Restfehler in einer Entscheidung einer
geschlossenen Schleife verwendet.
-
Die
Zwischenkanalkorrelation wird bei Verzögerungen stärker sein, die einen Bezug
zu Distanzdifferenzen zwischen Klangquellen und Mikrofonpositionen
haben. Solche Zwischenkanalverzögerungen
werden in Verbindung mit den adaptiven und festen Codebüchern in
dem vorgeschlagenen Mehrkanal-LPS-Codierer verwertet. Für eine Zwischenkanal-Mehrmodus-Operation
wird dieses Merkmal für Modi
einer geringen Korrelation abgeschaltet werden, und es werden keine
Bits auf Zwischenkanalverzögerungen
aufgewendet.
-
Mehrkanalvorhersage
und Quantisierung können
für Modi
einer hohen Zwischenkanalkorrelation verwendet werden, um die Anzahl
von Bits zu reduzieren, die für
die Mehrkanal-LPAS-Verstärkungs- und
LPC-Parameter erforderlich sind. Für Modi einer geringen Zwischenkanalkorrelation
werden eine Zwischenkanalvorhersage und Quantisierung verwendet.
Es könnte
ausreichend sein, nur eine Intrakanalvorhersage und Quantisierung
zu haben.
-
Eine
Mehrkanal-Fehlergewichtung, wie mit Verweis auf 7 beschrieben,
könnte
in Abhängigkeit
von der Zwischenkanalkorrelation an- und abgeschaltet werden.
-
Ein
Beispiel eines von Block 40 durchgeführten Algorithmus zum Bestimmen
der Codierungsstrategie wird unten mit Verweis auf 8 beschrieben. Jedoch
wird zuerst eine Anzahl von Erläuterungen und
Annahmen gegeben werden.
-
Der
Merkmodus-Analyseblock 40 kann in einer offenen Schleife
oder einer geschlossenen Schleife oder einer Kombination beider
Prinzipien arbeiten. Eine Ausführungsform
einer offenen Schleife analysiert die eingehenden Signale von den
Kanälen und
entscheidet über
eine passende Codierungsstrategie für den aktuellen Rahmen und
die passende Fehlergewichtung und Kriterien, die für den aktuellen Rahmen
zu verwenden sind.
-
In
dem folgenden Beispiel wird die LPC-Parameterquantisierung in einer Weise
einer offenen Schleife bestimmt, während die endgültigen Parameter
des adaptiven Codebuchs und des festen Codebuchs auf eine Weise
einer geschlossenen Schleife bestimmt werden, wenn stimmhafte bzw.
gesprochene Sprache zu codieren ist.
-
Das
Fehlerkriterium für
die Suche des festen Codebuchs wird gemäß der Ausgabe einer individuellen
kanalphonetischen Klassifizierung variiert.
-
Es
sei angenommen, dass die phonetischen Klassen für jeden Kanal (VOICED bzw.
STIMMHAFT, UN-VOICED bzw. NICHT-STIMMHAFT,
TRANSIENT, BACKGROUND bzw. HINTERGRUND) sind, mit den Subklassen
(VERY NOISY bzw. SEHR RAUSCHEND, NOISY bzw. RAUSCHEND, CLEAN bzw. RAUSCHFREI).
Die Subklassen geben an, ob das Eingabesignal rauschbehaftet ist
oder nicht, was eine Zuverlässigkeitsangabe
für die
phonetische Klassifizierung gibt, die auch zur Feinabstimmung der
endgültigen
Fehlerkriteria verwendet werden kann.
-
Wenn
ein Rahmen in einem Kanal als UNVOICED oder BACKGROUND klassifiziert
ist, wird das Fehlerkriterium des festen Codebuchs zu einem Energie-
und Frequenzdomänen-Fehlerkriterium für diesen
Kanal geändert.
Für weitere
Informationen über
die phonetische Klassifizierung siehe [4].
-
Es
sei angenommen, dass die LPC-Parameter auf zwei unterschiedliche
Weisen codiert werden können:
- 1. Eine gemeinsame Menge von LPC-Parametern für den Rahmen.
- 2. Separate Mengen von LPC-Parametern für jeden Rahmen.
-
Der
Langzeitschätzer
bzw. Long Term Predictor (LTP) ist als ein adaptives Codebuch implementiert.
-
Es
sei angenommen, dass die LTP-Verzögerungsparameter auf unterschiedliche
Weisen codiert sein können:
- 1. Keine LTP-Verzögerungsparameter in einem Kanal.
- 2. LTP-Verzögerungs-Parameter
nur für
Kanal 1.
- 3. LTP-Verzögerungs-Parameter
nur für
Kanal 2.
- 4. Separate LTP-Verzögerungsparameter
für Kanal
1 und Kanal 2.
-
Die
LTP-Verstärkungsparameter
sind separat für
jeden Verzögerungsparameter
codiert.
-
Es
sei angenommen, dass die Parameter des festen Codebuchs für einen
Kanal auf fünf
Arten codiert sein können:
- • Separates
Codebuch kleiner Größe, (durchsucht in
der Frequenzdomäne,
für nicht-stimmhafte/Hintergrundrauschen-Codierung).
- • Separates
Codebuch mittlerer Größe.
- • Separates
Codebuch großer
Größe.
- • Gemeinsam
genutztes Codebuch.
- • Gemeinsam
genutztes Codebuch und separates Codebuch mittlerer Größe.
-
Die
Verstärkungen
für jeden
Kanal und jedes Codebuch sind separat codiert.
-
8 ist
ein Flussdiagramm, das eine beispielhafte Ausführungsform eines Verfahrens
zum Bestimmen einer Codierungsstrategie veranschaulicht.
-
Die
Mehrmodus-Analyse tätigt
eine Vorklassifizierung der Mehrkanaleingabe in drei Hauptquantisierungsstrategien: (MULTI-TALK
bzw. MEHRGESPRÄCH,
SINGLE-TALK bzw. EINZELGESPRÄCH, NO-TALK
bzw. KEIN GESPRÄCH).
Der Fluss ist in 8 veranschaulicht.
-
Zum
Auswählen
der zweckgemäßen Strategie
hat jeder Kanal seine eigene Intrakanal-Aktivitätserfassung und Intrakanal-Phonetikklassifizierung
in Schritten S20, S21. Wenn beide der Phonetikklassifizierungen
A, B BACKGROUND angeben, ist die Ausgabe im Mehrkanal-Unterscheidungsschritt
S22 NO-TALK, andernfalls ist die Ausgabe TALK. Schritt S23 testet,
ob die Ausgabe vom Schritt S22 TALK angibt. Wenn dieses nicht der
Fall ist, schreitet der Algorithmus zum Schritt S24 zum Durchführen einer Nichtgesprächsstrategie
fort.
-
Wenn
andererseits Schritt S23 TALK angibt, fährt der Algorithmus zum Schritt
S25 fort, um zwischen einer Mehr/Einzelsprechersituation zu unterscheiden.
Zwei Zwischenkanaleigenschaften werden in diesem Beispiel verwendet,
um die Entscheidung im Schritt S25 zu tätigen, nämlich die Zwischenkanalzeitkorrelation
und die Zwischenkanalfrequenzkorrelation.
-
Der
Zwischenkanal-Zeitkorrelationswert in diesem Beispiel wird gleichgerichtet
und erfährt
dann eine Schwellenwertbehandlung (Schritt S26) in zwei diskrete
Werte (LOW_TIME_CORR bzw. GERINGE_ZEIT_KORR und HIGH_TIME_CORR bzw.
HOHE_ZEIT_KORR).
-
Die
Zwischenkanalfrequenzkorrelation wird durch Extrahieren einer normalisierten
Spektraleinhüllenden
für jeden
Kanal und dann Aufsummieren der gleichgerichteten Differenz zwischen
den Kanälen
implementiert (Schritt S27). Die Summe erfährt dann eine Schwellenwertbehandlung
in zwei diskrete Werte (LOW_FREQ_CORR bzw. GERINGE_FREQ_KORR und
HIGH_FREQ_CORR bzw. HOHE_FREQ_KORR), wobei LOW_FREQ_CORR gesetzt
wird, wenn die Summe der gleichgerichteten Differenzen größer als
eine Schwelle ist (d.h., dass die Zwischenkanalfrequenzkorrelation
unter Verwendung eines direkten Spektral-(Einhüllenden)Differenzmaßes geschätzt wird). Die
Spektraldifferenz kann z.B. in der LSF-Domäne oder unter Verwendung der
Amplituden von einer N-stelligen FFT berechnet werden. (Die Spektraldifferenz
kann auch frequenzgewichtet werden, um geringen Frequenzdifferenzen
eine größere Wichtigkeit
zu verleihen.)
-
Im
Schritt S25 ist die Ausgabe SINGLE, wenn beide der Phonetikklassifizierungen
(A, B) VOICED angeben und HIG_TIME_CORR gesetzt ist.
-
Wenn
beide der Phonetikklassifizierungen (A, B) UNVOICED angeben und HIGH_FREQ_CORR
gesetzt ist, ist die Ausgabe SINGLE.
-
Wenn
eine der Phonetikklassifizierungen (A, B) VOICED angibt, und die
vorherige Ausgabe SINGLE war, und HIGH_TIME_CORR gesetzt ist, bleibt die
Ausgabe bei SINGLE.
-
Andernfalls
ist die Ausgabe MULTI.
-
Schritt
S28 testet, ob die Ausgabe vom Schritt S25 SINGLE oder MULTI ist.
Wenn sie SINGLE ist, schreitet der Algorithmus zum Schritt S29 zum Durchführen einer
Einzelgesprächsstrategie
voran. Andernfalls schreitet er zum Schritt S30 zum Durchführen einer
Mehrgesprächsstrategie
voran.
-
Die
drei Strategien, die im Schritt S24, S29 bzw. S30 durchgeführt werden,
werden nun beschrieben. Die Abkürzungen
FCB und ACB werden für
das feste Codebuch bzw. für
das adaptive Codebuch verwendet.
-
Im
Schritt S24 (kein Gespräch)
gibt es zwei Möglichkeiten:
-
HIGH_FREQ_CORR:
-
- • Gemeinsame
Bits verwendet (geringe Spektraldistanz).
- • LPC
Geringe Bitrate verwendet.
- • ACB Übersprungen,
wenn Langzeitkorrelation gering ist.
- • FCB
Codebuch für
sehr geringe Bitrate verwendet.
-
LOW_FREQ_CORR:
-
- • Separate
Bitzuteilungen verwendet (Spektraldistanz ist hoch), für jeden
Kanal.
- • LPC
Geringe Bitrate verwendet.
- • ACB Übersprungen,
wenn Langzeitkorrelation gering ist.
- • FCB
Codebuch für
sehr geringe Bitrate verwendet.
-
Im
Schritt S29 (Einzelgespräch)
wird die folgende Strategie verwendet. Allgemein: gemeinsame Bits
werden verwendet, wenn möglich.
Auswahl einer geschlossenen Schleife und Phonetikklassifizierung wird
verwendet, um die Bitzuteilung zu finalisieren.
- • LPC gemeinsam
- • ACB
Common oder Separate
1. Als VOICED klassifizierte Kanäle: ACBs
ausgewählt
in einer Weise einer geschlossenen Schleife für stimmhafte Rahmen, gemeinsames
ACB oder zwei separate ACBs
2. Ein Kanal ist als nicht-VOICED
klassifiziert und der andere als VOICED:
Separate ACBs für jeden
Kanal.
3. Keiner der Kanäle
ist als VOICED klassifiziert:
ACB wird dann nicht bei allen
verwendet.
- • FCB
Common oder Separate:
1. Wenn beide Kanäle VOICED sind, wird ein Common
FCB verwendet.
2. Wenn beide Kanäle VOICED sind und wenigstens
einer der vorherigen Rahmen von jedem Kanal nicht-VOICED war, werden
ein gemeinsames FCB plus zwei separate FCBs mittlerer Größe verwendet
(dieses wird als ein Hochfahrzustand angenommen).
3. Wenn einer
der Kanäle
nicht-VOICED ist, werden separate FCBs verwendet.
4. Die Größe der separaten
FCBs wird unter Verwendung der phonetischen Klasse für diesen
Kanal gesteuert.
-
Man
beachte: Wenn einer der Kanäle
in der Hintergrundklasse klassifiziert ist, wird es dem anderen
Kanal FCB erlaubt, die meisten der verfügbaren Bits zu verwenden (d.h.,
das FCB-Codebuch der großen
Größe, wenn
ein Kanal im Leerlauf ist).
-
Im
Schritt S30 (Mehrgespräch)
wird die folgende Strategie verwendet. Allgemein: es werden separate
Kanäle
angenommen, wenige oder keine gemeinsamen Bits.
- • LPC separat
codiert
- • ACB
separat codiert
- • FCB
separat codiert, kein gemeinsames FCB, die Größe des FCB für jeden
Kanal wird unter Verwendung der phonetischen Klasse bestimmt, es wird
auch ein Ansatz einer geschlossenen Schleife mit einem minimalen
gewichteten SNR-Ziel in stimmhaften Rahmen zum Bestimmen der endgültigen Größe des FCB
für stimmhafte
Rahmen verwendet.
-
Eine
als verallgemeinertes LPAS (siehe [5]) bekannte Technik kann außerdem in
einem Mehrkanal-LPAS-Codierer der vorliegenden Erfindung verwendet
werden. Kurz zusammengefasst beinhaltet diese Technik die Vorverarbeitung
des Eingabesignals auf einer Rahmen-um-Rahmen-Basis vor der tatsächlichen
Codierung. Einige mögliche
modifizierte Signale werden untersucht, und dasjenige, das mit der
geringsten Verzerrung codiert werden kann, wird als das zu codierende
Signal ausgewählt.
-
Die
Beschreibung oben ist primär
auf einen Codierer gerichtet gewesen. Der entsprechende Decodierer
würde nur
den Syntheseteil solch eines Codierers enthalten. Typischerweise
wird eine Codierer/Decodiererkombination in einem Endgerät verwendet,
das codierte Signale über
einen bandbreitenbegrenzten Kommunikationskanal überträgt/empfängt. Das Endgerät kann ein
Funkendgerät
in einem Mobiltelefon oder einer Basisstation sein. Solch ein Endgerät könnte auch
vielfältige
andere Elemente enthalten, wie beispielsweise eine Antenne, einen Verstärker, einen
Entzerrer, einen Kanalcodierer/decodierer usw. Jedoch sind diese
Elemente für
die Beschreibung der vorliegenden Erfindung nicht essentiell und
sind deshalb weggelassen worden.
-
Der
Fachmann wird verstehen, dass vielfältige Modifizierungen und Änderungen
auf die vorliegende Erfindung angewendet werden können, ohne von
deren Schutzbereich abzuweichen, der durch die angefügten Ansprüche definiert
ist.
-
VERWEISE
-
- [1] A. Gersho, "Advances in Speech and Audio Compression", Proc. of the IEEE,
Vol. 82, Nr. 6, Seiten 900–918,
Juni 1994.
- [2] A.S. Spanias, "Speech
Coding: A Tutorial Review",
Proc. of the IEEE, Vol. 82, Nr. 10, Seiten 1541–1582, Okt. 1994.
- [3] WO 00/19413 (Telefonaktiebolaget
LM Ericsson).
- [4] Allen Gersho et. al, "Variable
rate speech coding for cellular networks", Seiten 77–84, Speech and audio coding
for wireless and network applications, Kluwer Academic Press, 1993.
- [5] Bastiaan Kleijn et. al, "Generalized
analysis-by-synthesis
coding and ist application to pitch prediction", Seiten 337–340, In Proc. IEEE Int. Conf. Acoust.,
Speech and Signal Processing, 1992.