-
Die
vorliegende Erfindung bezieht sich allgemein auf Quantisierer bzw.
die Quantisierung von Informationssignalen und in Ausführungsbeispielen
auf die Quantisierung von Audiosignalen, wie sie beispielsweise zur
Datenkompression von Audiosignalen bzw. zur Audiocodierung verwendet
wird. In einem speziellen Ausführungsbeispiel
bezieht sich die vorliegende Erfindung auf eine Audiocodierung mit
kurzer Verzögerungszeit.
-
Das
derzeit bekannteste Audiokompressionsverfahren ist das MPEG-1 Layer
III. Bei diesem Kompressionsverfahren werden die Abtast- bzw. Audiowerte
eines Audiosignals verlustbehaftet in ein codiertes Signal codiert.
Anders ausgedrückt
werden bei der Kompression Irrelevanz und Redundanz des ursprünglichen
Audiosignals reduziert bzw. idealer Weise entfernt. Um dies zu erzielen,
werden durch ein psychoakustisches Modell simultane und zeitliche
Maskierungen erkannt, d.h. es wird eine sich zeitlich ändernde,
vom Audiosignal abhängige
Maskierungsschwelle berechnet bzw. bestimmt, die angibt, ab welcher
Lautstärke
Töne einer
bestimmten Frequenz für
das menschliche Gehör
erst wahrnehmbar sind. Diese Information wird wiederum zur Codierung
des Signals verwendet, indem die Spektralwerte des Audiosignals
abhängig
von der Maskierungsschwelle genauer, weniger genau oder gar nicht
quantisiert und in das codierte Signal eingebunden werden.
-
Audiokompressionsverfahren,
wie das MP3-Format, erfahren dann eine Grenze in ihrer Anwendbarkeit,
wenn es darum geht, Audiodaten über
einen bitratenbegrenzten Übertragungskanal
einerseits komprimiert, andererseits aber mit möglichst geringer Verzögerungszeit
zu übertragen.
Bei einigen Anwendungen spielt die Verzögerungszeit keine Rolle, wie
z.B. bei der Archivierung von Audioinformationen. Audiocoder mit niedriger
Verzögerung,
manchmal auch „Ultra
Low Delay Coder" genannt,
sind jedoch dort notwendig, wo es um zeitkritische Übertragungen
von Audiosignalen geht, wie z.B. beim Tele-Conferencing, bei drahtlosen
Lautsprechern oder Mikrophonen. Für diese Anwendungsgebiete wird
in dem Artikel von Schuller G. usw. „Perceptual Audio Coding using
Adaptive Pre- and Post-Filters and Lossless Compression", IEEE Transactions
on Speech and Audio Processing, Bd. 10, Nr. 6, September 2002, S.
379–390,
eine Audiocodierung vorgeschlagen, bei der die Irrelevanzreduktion
und die Redundanzreduktion nicht basierend auf einer einzigen Transformation,
sondern auf zwei getrennten Transformationen durchgeführt werden.
-
Das
Prinzip wird im folgenden Bezug nehmend auf die 12 und 13 erläutert. Die
Codierung geht von einem Audiosignal 902 aus, das bereits
abgetastet worden ist und deshalb bereits als eine Folge 904 von Audio-
bzw. Abtastwerten 906 vorliegt, wobei durch einen Pfeil 908 die
zeitliche Reihenfolge der Audiowerte 906 angedeutet ist.
Für aufeinanderfolgende
Blöcke
von Audiowerten 906, die mit aufsteigender Nummerierung
mit „Block#" gekennzeichnet sind,
wird mittels eines psychoakustischen Modells eine Mithörschwelle
berechnet. 13 zeigt
beispielsweise ein Diagramm, bei dem über die Frequenz f mit der
Kurve a das Spektrum eines Signalblocks aus 128 Audiowerten 906 und
bei b die Maskierungsschwelle, wie sie durch ein psychoakustisches
Modell berechnet worden ist, in logarithmischen Einheiten aufgetragen
ist. Die Maskierungsschwelle zeigt, wie bereits erwähnt, an,
bis zu welcher Intensität
Frequenzen für
das menschliche Ohr unhörbar
sind, nämlich
alle Töne
unterhalb der Maskierungsschwelle b. Basierend auf den für jeden
Block berechneten Mithörschwellen
wird nun eine Irrelevanzreduktion durch Steuerung eines parametrisierbaren
Filters gefolgt von einem Quantisierer erzielt. Für ein parametrisierbares
Filter wird eine Parametrisierung derart berechnet, daß die Frequenzantwort
desselben dem Inversen des Betrags der Maskierungsschwelle entspricht.
Diese Parametrisierung ist in 12 durch
x#(i) angedeutet.
-
Nach
der Filterung der Audiowerte 906 erfolgt eine Quantisierung
mit konstanter Schrittweite, beispielsweise eine Rundungsoperation
auf die nächste
Ganzzahl. Das hierdurch hervorgerufene Quantisierungsrauschen ist
weißes
Rauschen. Decoderseitig wird das gefilterte Signal wieder mit einem
parametrisierbaren Filter „rücktransformiert", dessen Übertragungsfunktion
auf den Betrag der Maskierungsschwelle selbst eingestellt wird.
Hierdurch wird nicht nur das gefilterte Signal wieder dekodiert
sondern auch das Quantisierungsrauschen decoderseitig an die Form
der Maskierungsschwelle angepaßt.
Damit das Quantisierungsrauschen möglichst genau der Maskierungsschwelle
entspricht, wird codiererseitig zu jedem Parametersatz bzw. zu jeder
Parametrisierung ferner ein Verstärkungswert a# berechnet,
der vor der Quantisierung auf das gefilterte Signal angewendet wird.
Damit decodiererseitig die Rücktransformation
durchgeführt
werden kann, werden der Verstärkungswert
a und die Parametrisierung x als Seiteninformationen 910 neben
den eigentlichen Hauptdaten, nämlich
den quantisierten, gefilterten Audiowerten 912, zum Codierer übertragen.
Zur Redundanzreduktion 914 werden diese Daten, d.h. Seiteninformationen 910 und
Hauptdaten 912, noch einer verlustlosen Kompression, nämlich einer
Entropiecodierung, unterzogen, wodurch das codierte Signal erhalten
wird.
-
Obiger
Artikel schlägt
als Blockgröße eine
Größe von 128
Abtastwerten 906 vor. Hierdurch wird eine relativ kurze
Verzögerung
von 8 ms bei 32 kHz Abtastrate ermöglicht. Bezüglich der detaillierten Implementierung
wird in dem Artikel noch beschrieben, daß zur Effizienzsteigerung der
Seiteninformationscodierung die Seiteninformationen, nämlich die
Koeffizienten x# und a# nur
dann übertragen
werden, wenn genügend Änderung
im Vergleich zu einem vorher übertragenen
Parametersatz vorhanden ist, d.h. wenn die Änderung einen bestimmten Schwellwert überschreitet.
Zudem wird beschrieben, daß die
Implementierung vorzugsweise so vorgenommen wird, daß ein aktueller
Parametersatz nicht unmittelbar auf alle zu dem jeweiligen Block
gehörenden
Abtastwerte angewendet wird, sondern daß eine lineare Interpolation
der Filterkoeffizienten x# verwendet wird,
um hörbare
Artefakte zu vermeiden. Um die lineare Interpolation der Filterkoeffizienten
durchzuführen,
wird eine Lattice-Struktur für
das Filter vorgeschlagen, um das Auftreten von Instabilitäten zu verhindern. Für den Fall,
daß ein
codiertes Signal mit einer gesteuerten Bitrate erwünscht ist,
schlägt
der Artikel noch vor, das gefilterte und mit dem zeitabhängigen Verstärkungsfaktor
a skalierte Signal selektiv noch mit einem Faktor ungleich 1 zu
multiplizieren bzw. zu schwächen,
so daß zwar
hörbare
Störungen
entstehen, aber die Bitrate an aufwendig zu codierenden Stellen
des Audiosignals reduziert werden kann.
-
Obwohl
das in dem oben zitierten Artikel beschriebene Audiocodierungsschema
die Verzögerungszeit für viele
Anwendungen bereits ausreichend reduziert, besteht ein Problem bei
obigem Schema darin, daß aufgrund
der Notwendigkeit, die Maskierungsschwelle bzw. die Übertragungsfunktion
des codiererseitigen Filters, im folgenden als Prefilter bezeichnet, übertragen
zu müssen,
der Übertragungskanal
relativ hoch belastet wird, obgleich ja die Filterkoeffizienten
nur bei Überschreiten
einer vorbestimmten Schwelle übertragen
werden.
-
Ein
weiterer Nachteil obigen Codierschemas besteht darin, daß aufgrund
der Tatsache, daß die
Maskierungsschwelle bzw. das Inverse hiervon durch den zu übertragenden
Parametersatz x# decodierseitig zur Verfügung gestellt
werden muß,
ein Kompromiß zwischen
einerseits einer möglichst
niedrigen Bitrate bzw. einem hohen Kompressionsverhältnis und
andererseits einer möglichst
genauen Approximation bzw. Parametrisierung der Maskierungsschwelle
bzw. dem Inversen hiervon zu treffen ist. Unvermeidlich ist es deshalb,
daß das
durch obiges Audiocodierschema an die Maskierungsschwelle angepaßte Quantisierungsrauschen
an einigen Frequenzbereichen die Maskierungsschwelle überschreitet
und deshalb für
den Hörer
zu hörbaren
Audiostörungen
führt. 13 zeigt beispielsweise
mit der Kurve c die parametrisierte Frequenzantwort des decoderseitigen
parametrisierbaren Filters. Wie es zu sehen ist, gibt es Bereiche,
an denen die Übertragungsfunktion
des decoderseitigen Filters, im folgenden auch als Postfilter bezeichnet,
die Maskierungsschwelle b überschreitet.
Das Problem vergrößert sich
nun dadurch, daß die
Parametrisierung nur intermittierend bei genügend Änderung zwischen den Parametrisierungen übertragen
und dazwischen interpoliert wird. Eine Interpolation der Filterkoeffizienten
x#, wie in dem Artikel vorgeschlagen, allein
führt bei
Konstanthalten des Verstärkungswertes
a# von Stützstelle zu Stützstelle
bzw. von neuer Parametrisierung zu neuer Parametrisierung zu hörbaren Störungen.
Auch wenn die in dem Artikel vorgeschlagene Interpolation auch auf
den Seiteninformationswert a#, d.h. die übertragenen
Verstärkungswerte,
angewendet wird, können
in dem decodiererseitig ankommenden Audiosignal hörbare Audioartefakte
verbleiben.
-
Ein
weiteres Problem bei dem Audiocodierschema nach 12 bzw. 13 besteht
darin, daß das
gefilterte Signal aufgrund der frequenzselektiven Filterung eine
nicht vorhersehbare Form annehmen kann, bei der sich insbesondere
aufgrund einer zufälligen Überlagerung
vieler einzelner Oberwellen ein einzelner oder einzelne Audiowerte
des codierten Signals zu sehr hohen Werten aufsummieren, die aufgrund
ihres seltenen Auftretens wiederum bei der anschließenden Redundanzreduktion
zu einem schlechteren Kompressionsverhältnis führen.
-
Die
Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren
und eine Vorrichtung zum Quantisieren eines Informationssignals
zu schaffen, so daß bei
nur geringfügiger
Qualitätsverschlechterung
des ursprünglichen
Informati onssignals eine höhere
Datenkompression des Informationssignals realisierbar ist.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 12 und eine Vorrichtung
gemäß Anspruch 1
gelöst.
-
Ein
erfindungsgemäßes Quantisieren
eines Informationssignals einer Folge von Informationswerten umfaßt das frequenzselektive
Filtern der Folge von Informationswerten, um eine Folge von gefilterten
Informationswerten zu erhalten, sowie das Quantisieren der gefilterten
Informationswerte, um eine Folge von quantisierten Informationswerten
zu erhalten, mittels einer Quantisierungsstufenfunktion, die die
gefilterten Informationswerte auf die quantisierten Informationswerte
abbildet, und deren Verlauf unterhalb eines Schwelleninformationswerts
steiler ist als oberhalb des Schwelleninformationswerts.
-
Es
ist beobachtet worden, daß durch
das frequenzselektive Filtern eines Audiosignals in dem resultierenden
gefilterten Informationssignal künstlich
erzeugte Artefakte entstehen, an denen einzelne Informationswerte
aufgrund einer zufälligen
konstruktiven Interferenz aller oder vieler Oberwellen Werte annehmen,
die bedeutend höher
als die maximalen Werte des ursprünglichen Signals sind, wie
z.B. mehr als zweimal so hoch. Es ist nun der Kerngedanke der vorliegenden
Erfindung, daß ein
Abschneiden des gefilterten Informationssignals oberhalb einer geeigneten
Schwelle, die beispielsweise zweimal so viel wie der größte mögliche Wert des
zu filternden ursprünglichen
Informationssignals beträgt,
so daß die
durch das frequenzselektive Filtern künstlich erzeugten Artefakte
aus dem gefilterten Informationssignal entfernt bzw. geglättet werden,
nach Rückfilterung
kaum zu einer Beeinträchtigung
der Qualität
des nach Quantisierung rückgefilterten
Informationssignals führt,
wohingegen aber das Abschneiden oder das Vergrößern der Quantisierungsschrittweite
oberhalb einer geeigneten Schwelle enorme Einsparungen in einer
Bitdarstellung des gefilterten Informationssignals bietet.
-
Gemäß einem
bevorzugten Ausführungsbeispiel
ist das Informationssignal ein Audiosignal, bei dem die selektive
Quantisierung ober- bzw. unterhalb einer bestimmten Schwelle zu
einer kaum hörbaren
Audioqualitätsverringerung
bei gleichzeitiger enormer Reduzierung der Bitdarstellung führt.
-
Die
Quantisierungsstufenfunktion kann hierzu alternativ vorgesehen sein,
um oberhalb des Schwellwertes alle Audiowerte auf eine höchste Quantisierungsstufe
zu quantisieren, oder es wird eine Quantisierungsstufenfunktion
verwendet, die oberhalb des Schwellwertes flacher verläuft bzw.
oberhalb des Schwellwertes eine größere Quantisierungsschrittweite
aufweist, so daß die
künstlich
erzeugten Artefakte gröber quantisiert
werden.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
Blockschaltbild eines Audiocodierers gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung;
-
2 ein
Flußdiagramm
zur Veranschaulichung der Arbeitsweise des Audiocodierers von 1 am Dateneingang;
-
3 ein
Flußdiagramm
zur Veranschaulichung der Arbeitsweise des Audiocodierers von 1 im Hinblick
auf die Auswertung des eingehenden Audiosignals durch ein psychoakustisches
Modell;
-
4 ein
Flußdiagramm
zur Veranschaulichung der Arbeitsweise des Audiocodierers von 1 im Hinblick
auf die Anwendung der durch das psychoaku stische Modell erhaltenen
Parameter auf das eingehende Audiosignal;
-
5a ein
schematisches Diagramm zur Veranschaulichung des eingehenden Audiosignals,
der Folge von Audiowerten, aus der dasselbe besteht, und der Arbeitsschritte
von 4 in Relation zu den Audiowerten;
-
5b ein
schematisches Diagramm zur Veranschaulichung des Aufbaus des codierten
Signals;
-
6 ein
Flußdiagramm
zur Veranschaulichung der Arbeitsweise des Audiocodierers von 1 im Hinblick
auf die Endverarbeitung bis zum codierten Signal;
-
7a ein
Diagramm in dem ein Ausführungsbeispiel
für eine
Quantisierungsstufenfunktion gezeigt ist;
-
7a ein
Diagramm in dem ein weiteres Ausführungsbeispiel für eine Quantisierungsstufenfunktion gezeigt
ist;
-
8 ein
Blockschaltbild eines Audiodecodierers, der zur Decodierung eines
durch den Audiocodierer von 1 codierten
Audiosignals in der Lage ist, gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung;
-
9 ein
Flußdiagramm
zur Veranschaulichung der Arbeitsweise des Decodierers von 8 am
Dateneingang;
-
10 ein
Flußdiagramm
zur Veranschaulichung der Arbeitsweise des Decodierers von 8 im
Hinblick auf die Zwischenspeicherung der vordecodierten, quantisierten,
gefilterten Audiodaten und der Verarbeitung der Audioblöcke ohne
zugehörige
Seiteninformationen;
-
11 ein
Flußdiagramm
zur Veranschaulichung der Arbeitsweise des Decodierers von 8 im
Hinblick auf die eigentliche Rückfilterung;
-
12 ein
schematisches Diagramm zur Veranschaulichung eines herkömmlichen
Audiocodierschemas mit kurzer Verzögerungszeit; und
-
13 ein
Diagramm, in dem exemplarisch ein Spektrum eines Audiosignals, eine
Mithörschwelle desselben
und die Übertragungsfunktion
des Postfilters im Decodierer gezeigt sind.
-
1 zeigt
einen Audiocodierer gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. Der Audiocodierer, der allgemein mit 10 angezeigt
ist, umfaßt
zunächst
einen Dateneingang 12, an dem derselbe das zu codierende
Audiosignal empfängt,
das, wie es später
Bezug nehmend auf 5a noch näher erläutert werden wird, aus einer
Folge von Audiowerten bzw. Abtastwerten besteht, sowie einen Datenausgang,
an dem das codierte Signal ausgegeben wird, dessen Informationsinhalt
Bezug nehmend auf 5b näher erörtert wird.
-
Der
Audiocodierer 10 von 1 gliedert
sich in einen Irrelevanzreduktionsteil 16 und einen Redundanzreduktionsteil 18.
Der Irrelevanzreduktionsteil 16 umfaßt eine Einrichtung 20 zum
Ermitteln einer Mithörschwelle,
eine Einrichtung 22 zur Berechnung eines Verstärkungswertes,
eine Einrichtung 24 zur Berechnung einer Parametrisierung,
eine Stützstellenvergleichseinrichtung 26,
einen Quantisierer 28 und ein parametrisierbares Prefilter 30 sowie
einen Eingangs-FIFO- (first-in-first-out) Puffer 32. Der
Redundanzreduktionsteil 18 umfaßt einen Komprimierer 34,
eine Bitra tensteuerung 36, einen Eingangs-Speicher 38 und
einen Multiplizierer 40.
-
Irrelevanzreduktionsteil 16 und
Redundanzreduktionsteil 18 sind seriell in dieser Reihenfolge
zwischen Dateneingang 12 und Datenausgang 14 geschaltet.
Insbesondere ist der Dateneingang 12 mit einem Dateneingang
der Einrichtung 20 zum Ermitteln einer Mithörschwelle
und einem Dateneingang des Eingangspuffers 32 verbunden.
Ein Datenausgang der Einrichtung 20 zum Ermitteln einer
Mithörschwelle
ist mit einem Eingang der Einrichtung 24 zur Berechnung
einer Parametrisierung sowie mit einem Dateneingang der Einrichtung 22 zur
Berechnung eines Verstärkungswertes
verbunden, um an dieselben eine ermittelte Mithörschwelle weiterzuleiten. Die
Einrichtungen 22 und 24 berechnen basierend auf
der Mithörschwelle
eine Parametrisierung bzw. einen Verstärkungswert und sind mit der
Stützstellenvergleichseinrichtung 26 verbunden, um
an dieselbe diese Ergebnisse weiterzuleiten. Die Stützstellenvergleichseinrichtung 26 leitet
je nach einem Vergleichsergebnis, wie es im folgenden noch erörtert werden
wird, die von den Einrichtungen 22 und 24 berechneten
Ergebnisse als Eingangsparameter bzw. Parametrisierung an das parametrisierbare
Prefilter 30 weiter. Das parametrisierbare Prefilter 30 ist
zwischen einen Datenausgang des Eingangspuffers 32 und
einen Dateneingang des Quantisierers 28 geschaltet. Der
Quantisierer 28 leitet an den Redundanzreduktionsteil 18 quantisierte,
gefilterte Audiowerte weiter, und zwar genau genommen an den Dateneingang
des Eingangsspeichers 38. Die Stützstellenvergleichseinrichtung 26 leitet
an den Redundanzreduktionsteil 18 Informationen weiter,
aus denen die an das parametrisierbare Prefilter 30 weitergeleiteten
Eingangsparameter herleitbar sind, und zwar genau genommen an einen
Dateneingang des Komprimierers 34. Der Komprimierer 34 empfängt ferner
die quantisierten, gefilterten Audiowerte aus dem Eingangsspeicher 38,
wobei jedoch zwischen den Datenausgang des Puffers 38 und
den Komprimierer 34 der Multiplizierer 40 geschaltet
ist, um die quantisierten, gefilterten Audiowerte mit einem Multiplikator
zu multiplizieren, der von der Bitratensteuerung 36 eingestellt
wird. Die Bitratensteuerung 36 ist zwischen einen Datenausgang
des Komprimierers 34 und den Datenausgang 14 des
Audiocodierers 10 geschaltet, um den Multiplikator für den Multiplizierer 40 geeignet
zu bestimmen. Der Multiplizierer 40 kann wahlweise das
Multiplikationsergebnis an den Eingang des Quantisierers 28 weiterleiten.
-
Nachdem
im Vorhergehenden der Aufbau des Audiocodierers von 1 beschrieben
worden ist, wird im folgenden Bezug nehmend auf die 2–7b dessen
Funktionsweise beschrieben.
-
Wie
es 2 zu entnehmen ist, ist das Audiosignal, wenn
es den Dateneingang 12 erreicht, bereits durch Audiosignalabtastung 50 aus
einem analogen Audiosignal erhalten worden. Die Audiosignalabtastung wird
mit einer vorbestimmten Abtastfrequenz durchgeführt, die üblicherweise zwischen 32–48 kHz
liegt. Am Dateneingang 12 liegt folglich ein Audiosignal
an, das aus einer Folge von Abtast- bzw. Audiowerten besteht. Obwohl,
wie es aus der folgenden Beschreibung noch deutlich werden wird,
die Codierung des Audiosignals nicht blockbasiert stattfindet, werden
die Audiowerte am Dateneingang 12 zunächst in einem Schritt 52 zu
Audioblöcken
zusammengefaßt.
Die Zusammenfassung zur Audioblöcken
geschieht, wie es aus folgender Beschreibung deutlich wird, lediglich
zu Zwecken der Bestimmung der Mithörschwelle und findet in einer
Eingangsstufe der Einrichtung 20 zum Ermitteln einer Mithörschwelle
statt. Bei dem vorliegenden Ausführungsbeispiel
wird exemplarisch davon ausgegangen, daß jeweils 128 aufeinanderfolgende
Audiowerte zu Audioblöcken
zusammengefaßt
werden, und daß die
Zusammenfassung derart stattfindet, daß aufeinanderfolgende Audioblöcke sich
einerseits nicht überlappen
und andererseits unmittelbar benachbart zueinander sind. Dies sei
anhand von 5a noch einmal kurz exemplarisch
erläutert.
-
5a zeigt
mit 54 die Folge von Abtastwerten an, wobei jeder Abtastwert
durch ein Rechteck 56 veranschaulicht ist. Die Abtastwerte
sind zu Zwecken der Veranschaulichung numeriert, wobei aus Übersichtlichkeitsgründen wiederum
nur einige der Abtastwerte der Folge 54 gezeigt sind. Wie
es durch geschweifte Klammern oberhalb der Folge 54 gezeigt
ist, sind gemäß vorliegendem
Ausführungsbeispiel
jeweils 128 aufeinanderfolgende Abtastwerte zu einem Block zusammengefaßt, wobei
die unmittelbar darauffolgenden 128 Abtastwerte den nächsten Block
bilden. Lediglich vorsichtshalber wird darauf hingewiesen, daß die Zusammenfassung
zu Blöcken
auch anders vorgenommen werden könnte,
beispielsweise durch überlappende
Blöcke
oder beabstandete Blöcke
und Blöcke
mit einer anderen Blockgröße, obwohl
die Blockgröße von 128
wiederum bevorzugt ist, da sie einen guten Kompromiß zwischen
einerseits einer hohen Audioqualität und andererseits einer möglichst
niedrigen Verzögerungszeit
liefert.
-
Während die
in dem Schritt 52 in der Einrichtung 20 zusammengefaßten Audioblöcke in der
Einrichtung 20 zum Ermitteln einer Mithörschwelle blockweise verarbeitet
werden, werden in dem Eingangspuffer 32 die eingehenden
Audiowerte solange gepuffert bzw. zwischengespeichert 54,
bis das parametrisierbare Prefilter 30 von der Stützstellenvergleichseinrichtung 26 Eingangsparameter
erhalten hat, um eine Prefilterung vorzunehmen, wie es im folgenden
noch beschrieben wird.
-
Wie
es 3 zu entnehmen ist, beginnt die Einrichtung 20 zum
Ermitteln einer Mithörschwelle
ihre Bearbeitung unmittelbar, nachdem genügend Audiowerte am Dateneingang 12 eingegangen
sind, um einen Audioblock zu bilden bzw. den nächsten Audioblock zu bilden,
was die Einrichtung 20 durch eine Überprüfung in Schritt 60 überwacht.
Ist ein bearbeitbarer vollständiger
Audioblock noch nicht vorhanden, wartet die Einrichtung 20.
Ist ein vollständiger
zu bearbeitender Audioblock vorhanden, so berechnet die Einrichtung 20 zum Ermitteln
einer Mithörschwelle
in einem Schritt 62 auf der Basis eines geeigneten psychoakustischen
Modells in einem Schritt 62 eine Mithörschwelle. Zur Veranschaulichung
der Mithörschwelle
wird wiederum auf 12 und insbesondere die Kurve
b verwiesen, die auf der Grundlage eines psychoakustischen Modells
beispielsweise bezüglich
eines aktuellen Audioblocks mit einem Spektrum a erhalten worden
ist. Die Maskierungsschwelle, die in Schritt 62 ermittelt
wird, ist eine frequenzabhängige
Funktion, die für
aufeinanderfolgende Audioblöcke
variieren kann, und auch von Audiosignal zu Audiosignal, wie z.B.
von Rock- zu Klassikmusikstücken,
deutlich variieren kann. Die Mithörschwelle gibt für jede Frequenz
einen Schwellwert an, unterhalb dessen das menschliche Gehör Störungen nicht
wahrnehmen kann.
-
In
einem darauffolgenden Schritt
64 berechnen die Einrichtung
24 und
die Einrichtung
22 aus der berechneten Mithörschwelle
M(f) (wobei f die Frequenz angebe) einen Verstärkungswert a bzw. einen Parametersatz
aus N Parametern x(i) (i = 1, ..., N). Die Parametrisierung x(i),
die die Einrichtung
24 in Schritt
64 berechnet,
ist für
das parametrisierbare Prefilter
30 vorgesehen, das beispielsweise
in einer Adaptivfilterstruktur ausgeführt ist, wie sie bei der LPC-Codierung
verwendet wird (LPC = linear predictive coding = lineare Prädiktionscodierung)
ausgeführt.
Seien beispielsweise s(n) mit n = 0, ... 127 die 128 Audiowerte
des augenblicklichen Audioblocks und s'(n) die sich ergebenden gefilterten
128 Audiowerte, dann ist das Filter beispielsweise derart ausgeführt, daß folgende
Gleichung erfüllt
ist:
wobei K die Filterordnung
ist und a t / k mit k = 1, ..., K die Filterkoeffizienten sind und der
Index t veranschaulichen soll, daß sich die Filterkoeffizienten
bei aufeinanderfol genden Audioblöcken ändern. Die
Einrichtung
24 berechnet nun die Parametrisierung a t / k derart,
daß die Übertragungsfunktion
H(f) des parametrisierbaren Prefilters
30 in etwa gleich
dem Inversen des Betrags der Maskierungsschwelle M(f) ist, d.h.
so daß
gilt, wobei die Abhängigkeit
von t wiederum veranschaulichen soll, daß für verschiedene Audioblöcke sich
die Maskierungsschwelle M(f) ändert.
Bei Implementierung des Prefilters
30 als das oben erläuterte adaptive
Filter werden die Filterkoeffizienten a t / k folgendermaßen erhalten:
die inverse diskrete Fourier-Transformation von |M(f,t)|
2 über
der Frequenz für
den Block zum Zeitpunkt t ergibt die Zielautokorrelationsfunktion
r t / mm(i). Dann werden die a t / k durch Lösen
des linearen Gleichungssystems erhalten:
-
-
Damit
aber bei der noch im folgenden näher
beschriebenen linearen Interpolation zwischen den Parametrisierungen
keine Instabilitäten
auftreten, wird vorzugsweise für
das Filter 30 eine Lattice-Struktur verwendet, wobei die
Filterkoeffizienten von der Lattice-Struktur in Reflektionskoeffizienten
umparametrisiert werden. Bezüglich
näherer
Details im Hinblick auf die Ausgestaltung des Prefilters, die Berechnung
der Koeffizienten und die Umparametrisierung wird auf den in der
Beschreibungseinleitung erwähnten
Artikel von Schuller usw. und insbesondere auf Seite 381, Gliederungspunkt
III, verwiesen, welcher hiermit diesbezüglich unter Bezugnahme aufgenommen
wird.
-
Während folglich
die Einrichtung 24 eine Parametrisierung für das parametrisierbare
Prefilter 30 derart berechnet, daß dessen Übertragungsfunktion gleich
dem Inversen der Maskierungsschwelle ist, berechnet die Einrichtung 22 basierend
auf der Mithörschwelle
eine Rauschleistungsgrenze, nämlich
eine Grenze, die angibt, welche Rauschleistung der Quantisierer 28 in
das durch das Prefilter 30 gefilterte Audiosignal einführen darf,
damit das Quantisierungsrauschen nach der Rück- bzw. Postfilterung auf
Decoderseite unterhalb der Mithörschwelle
M(f) oder genau auf derselben liegt. Die Einrichtung 22 berechnet
diese Rauschleistungsgrenze als die Fläche unterhalb des Betragsquadrats
der Mithörschwelle
M, d.h. als ∑|M(f)|2. Den Verstärkungswert a berechnet die
Einrichtung 22 aus der Rauschleistungsgrenze, indem sie
die Wurzel aus dem Bruch von Quantisierungsrauschleistung durch
Rauschleistungsgrenze berechnet. Das Quantisierungsrauschen ist
das durch den Quantisierer 28 hervorgerufene Rauschen.
Das durch den Quantisierer 28 hervorgerufene Rauschen ist, wie
es noch beschrieben werden wird, weißes Rauschen und somit frequenzunabhängig. Die
Quantisierungsrauschleistung ist die Leistung des Quantisierungsrauschens.
-
Wie
es aus der vorhergehenden Beschreibung deutlich wurde, berechnet
die Einrichtung 22 neben dem Verstärkungswert a auch die Rauschleistungsgrenze.
Obwohl es möglich
ist, daß die
Stützstellenvergleichseinrichtung 26 aus
dem von der Einrichtung 22 erhaltenen Verstärkungswert
a erneut die Rauschleistungsgrenze berechnet, ist es ferner möglich, daß die Einrichtung 22 neben
dem Verstärkungswert
a der Stützstellenvergleichseinrichtung 26 auch
gleich die ermittelte Rauschleistungsgrenze übermittelt.
-
Nach
der Berechnung des Verstärkungswertes
sowie der Parametrisierung überprüft daraufhin
die Stützstellenvergleichseinrichtung 26 in
einem Schritt 66, ob sich die soeben berechnete Parametrisierung
um mehr als eine vorbe stimmte Schwelle von der aktuellen, zuletzt
an das parametrisierbare Prefilter weitergeleiteten Parametrisierung
unterscheidet. Ergibt die Überprüfung in
Schritt 66, daß sich
die soeben berechnete Parametrisierung um mehr als die vorbestimmte
Schwelle von der aktuellen unterscheidet, so werden die soeben berechneten
Filterkoeffizienten und der soeben berechnete Verstärkungswert
bzw. die Rauschleistungsgrenze in der Stützstellenvergleichseinrichtung 26 für eine noch
zu erörternde
Interpolation zwischengespeichert und die Stützstellenvergleichseinrichtung 26 übergibt
in einem Schritt 68 die soeben berechneten Filterkoeffizienten
und in einem Schritt 70 den soeben berechneten Verstärkungswert
an das Prefilter 30. Ist dies jedoch nicht der Fall, und
die soeben berechnete Parametrisierung unterscheidet sich nicht
um mehr als die vorbestimmte Schwelle von der aktuellen, übergibt
die Stützstellenvergleichseinrichtung
(26) an das Prefilter 30 in Schritt 72 an
Stelle der soeben berechneten Parametrisierung nur die aktuelle
Stützstellenparametrisierung,
d.h. diejenige Parametrisierung, die das letzte Mal im Schritt 66 zu
einem positiven Ergebnis führte,
sich also um mehr als eine vorbestimmte Schwelle von einer vorhergehenden
Stützstellen-Parametrisierung
unterschied. Nach den Schritten 70 und 72 kehrt
der Prozeß von 3 zur
Bearbeitung des nächsten
Audioblocks, d.h. zur Abfrage 60, zurück.
-
In
dem Fall, daß sich
die soeben berechnete Parametrisierung nicht von der aktuellen Stützstellen-Parametrisierung
unterschied, und demzufolge das Prefilter 30 in Schritt 72 wieder
die bereits zuvor für
zumindest den letzten Audioblock erhaltene Stützstellenparametrisierung erhält, wendet
das Prefilter 30 diese Stützstellenparametrisierung auf
alle Abtastwerte dieses sich in dem FIFO 32 befindlichen
Audioblocks an, wie es im folgenden noch näher beschrieben wird, wodurch
dieser aktuelle Block aus dem FIFO 32 entnommen wird und der
Quantisierer 28 einen sich ergebenden Audioblock von pregefilterten
Audiowerten erhält.
-
4 stellt
die Arbeitsweise des parametrisierbaren Prefilters 30 näher für den Fall
dar, daß dieselbe die
soeben berechnete Parametrisierung und den soeben berechneten Verstärkungswert
erhält,
weil dieselben sich von der aktuellen Stützstellenparametrisierung ausreichend
unterschieden. Wie es Bezug nehmend auf 3 beschrieben
worden ist, erfolgt also nicht zu jedem der aufeinanderfolgenden
Audioblöcke
eine Verarbeitung nach 4, sondern nur zu Audioblöcken, bei
denen sich die zugehörige
Parametrisierung ausreichend von der aktuellen Stützstellenparametrisierung
unterschied. Die anderen Audioblöcke
werden, wie soeben beschrieben, dadurch pregefiltert, daß die jeweils
aktuelle Stützstellenparametrisierung
und der zugehörige
jeweils aktuelle Verstärkungswert
auf alle Abtastwerte dieser Audioblöcke angewendet werden.
-
In
einem Schritt 80 überwacht
nun das parametrisierbare Prefilter 30, ob eine Übergabe
von soeben berechneten Filterkoeffizienten von der Stützstellenvergleichseinrichtung 26 stattgefunden
hat oder von älteren
Stützstellenparametrisierungen.
Das Prefilter 30 führt
die Überwachung 80 solange
durch, bis eine solche Übergabe
stattgefunden hat.
-
Sobald
eine solche Übergabe
stattgefunden hat, beginnt das parametrisierbare Prefilter 30 mit
der Bearbeitung des aktuellen Audioblocks von Audiowerten, der sich
gerade in dem Zwischenspeicher 32 befindet, also demjenigen,
zu dem die Parametrisierung gerade berechnet worden ist. In 5a ist
beispielsweise veranschaulicht worden, daß alle Audiowerte 56 vor
dem Audiowert mit der Nummer 0 bereits verarbeitet worden sind und
deshalb den Speicher 32 bereits passiert haben. Die Verarbeitung
des Blocks von Audiowerten vor dem Audiowert mit der Nummer 0 ist
damals ausgelöst
worden, weil die Parametrisierung, die für den Audioblock vor dem Block
0 berechnet worden ist, nämlich
x0(i), sich um mehr als die vorbestimmte
Schwelle von der zuvor zum Prefilter 30 weitergeleiteten
Stützstellen-Parametrisierung
unterschied. Die Parametrisierung x0(i)
ist also eine Stützstellenparametrisierung,
wie sie in der vorliegenden Erfindung bezeichnet wird. Die Verarbeitung
der Audiowerte in dem Audioblock vor dem Audiowert 0 wurde basierend
auf dem Parametersatz a0, x0(i)
durchgeführt.
-
In 5a wird
davon ausgegangen, daß die
Parametrisierung, die zu Block 0 mit den Audiowerten 0–127 berechnet
worden ist, sich um weniger als die vorbestimmte Schwelle von der
Parametrisierung x0(i) unterschied, die
sich auf den Block davor bezog. Dieser Block 0 wurde deshalb ebenfalls
bereits von dem Prefilter 30 aus dem FIFO 32 entnommen,
hinsichtlich all seiner Abtastwerte 0–127 mittels der in Schritt 72 zugeführten Parametrisierung
x0(i) gleichermaßen verarbeitet, wie es durch
den mit „direkte
Anwendung" beschriebenen
Pfeil 81 angedeutet ist, und dann an den Quantisierer 28 weitergegeben.
-
Die
zu dem sich immer noch in dem FIFO 32 befindlichen Block
1 berechnete Parametrisierung unterschied sich jedoch nach dem exemplarischen
Beispiel von 5a demgegenüber um mehr als die vorbestimmte
Schwelle von der Parametrisierung x0(i)
und wurde deshalb in Schritt 68 an das Prefilter 30 als
Parametrisierung x1(i) zusammen mit dem
Verstärkungswert
a1 (Schritt 70) und gegebenenfalls
der zugehörigen Rauschleistungsgrenze
weitergeleitet, wobei die Indizes von a und x in 5a ein
Index für
die Stützstellen sein
sollen, wie sie bei der später
zu erörternden
Interpolation verwendet werden, die bezüglich der Abtastwerte 128–255 im
Block 1 durchgeführt,
durch einen Pfeil 81 versinnbildlicht und durch die aus
Schritt 80 folgenden Schritte in 4 verwirklicht
wird. Mit Auftreten des Audioblocks mit Nummer 1 würde folglich
die Bearbeitung bei Schritt 80 beginnen.
-
Zur
Zeit der Weiterleitung des Parametersatzes a1,
x1 befinden sich im Speicher 32 folglich
(zumindest) nur noch die Audiowerte 128–255, d.h. der aktuelle Audioblock
nach dem zuletzt durch das Prefilter 30 verarbeiteten Audioblock
0.
-
Nachdem
nun die Übergabe
von Stützstellenparametern
x1(i) in Schritt 80 festgestellt
worden ist, ermittelt das Prefilter 30 in Schritt 84 die
zu dem Verstärkungswert
a1 korrespondierende Rauschleistungsgrenze q1. Dies kann dadurch geschehen, daß die Stützstellenvergleichseinrichtung 26 diesen
Wert an das Prefilter 30 weiterleitet, oder durch erneute
Berechnung dieses Wertes durch das Prefilter 30, wie es
im Vorhergehenden Bezug nehmend auf Schritt 64 beschrieben
worden ist.
-
Danach
wird in einem Schritt 86 ein Index j auf einen Abtastwert
initialisiert, um auf den ältesten
in dem FIFO-Speicher 32 verbliebenen
Abtastwert bzw. den ersten Abtastwert des aktuellen Audioblocks „Block
1" zu zeigen, d.h.
im vorliegenden Beispiel von 5a den
Abtastwert 128. In einem Schritt 88 führt das parametrisierbare Prefilter
eine Interpolation zwischen den Filterkoeffizienten x0 und
x1 durch, wobei dabei die Parametrisierung
x0 als Stützwert an der Stützstelle
mit Audiowertnummer 127 des vorhergehenden Blocks 0 und die Parametrisierung
x1 als Stützwert an der Stützstelle
mit Audiowertnummer 255 des aktuellen Blocks 1 gilt. Diese Audiowertpositionen
127 und 255 werden im folgenden auch als Stützstelle 0 und Stützstelle
1 bezeichnet, wobei in 5a die sich auf die Stützstellen
beziehenden Stützstellenparametrisierungen
durch die Pfeile 90 und 92 angedeutet sind.
-
Das
parametrisierbare Prefilter 30 führt in dem Schritt 88 die
Interpolation der Filterkoeffizienten x0,
x1 zwischen den beiden Stützstellen
in Form einer linearen Interpolation durch, um den interpolierten
Filterkoeffizienten an der Abtastposition j zu erhalten, d.h. x(tj)(i) mit i = 1...N.
-
Danach,
nämlich
in Schritt 90, führt
das parametrisierbare Prefilter 30 eine Interpolation zwischen
der Rauschleistungsgrenze q1 und q0 durch, um eine interpolierte Rauschleistungsgrenze
an der Abtastposition j zu erhalten, d.h. q(tj).
-
In
einem Schritt
92 berechnet daraufhin das parametrisierbare
Prefilter
30 den Verstärkungswert
für die
Abtastposition j auf der Basis der interpolierten Rauschleistungsgrenze
und der Quantisierungsrauschleistung sowie vorzugsweise auch den
interpolierten Filterkoeffizienten, nämlich beispielsweise abhängig von Wurzel
aus
wobei hierzu auf die Ausführungen
zu Schritt
64 von
3 verwiesen
wird.
-
In
einem Schritt 94 wendet daraufhin das parametrisierbare
Prefilter 30 den berechneten Verstärkungswert sowie die interpolierten
Filterkoeffizienten auf den Abtastwert an der Abtastposition j an,
um einen gefilterten Abtastwert für diese Abtastposition zu erhalten,
nämlich
s'(tj).
-
In
einem Schritt 96 überprüft das parametrisierbare
Prefilter 30 daraufhin, ob die Abtastposition j die aktuelle
Stützstelle,
d.h. Stützstelle
1, erreicht hat, in dem Fall von 5a die
Abtastposition 255, d.h. den Abtastwert, für den die
dem parametrisierbaren Prefilter 30 übermittelte Parametrisierung
plus Verstärkungswert unmittelbar,
d.h. ohne Interpolation, gelten soll. Ist dies nicht der Fall, so
erhöht
bzw, inkrementiert das parametrisierbare Prefilter 30 den
Index j um 1, wobei die Schritte 88–96 erneut wiederholt
werden. Fällt
die Überprüfung im
Schritt 96 jedoch positiv aus, so wendet in Schritt 100 das
parametrisierbare Prefilter den von der Stützstellenvergleichseinrichtung 26 zuletzt übermittelten
Verstärkungswert
und die von der Stützstellenvergleichseinrichtung 26 zuletzt übermittelten
Filterkoeffizienten unmittelbar ohne Interpolation auf den Abtastwert an
der neuen Stützstelle
an, woraufhin der aktuelle Block, d.h. in dem vorliegenden Fall
der Block 1, abgearbeitet ist, und der Prozeß von neuem bei Schritt 80 bezüglich des
nachfolgenden zu verarbeitenden Blocks durchgeführt wird, der je nach dem,
ob sich die Parametrisierung des nächsten Audioblocks Block 2
ausrei chend von der Parametrisierung x1(i)
unterscheidet, gegebenenfalls eben dieser nächste Audioblock Block 2 sein
kann oder aber ein späterer
Audioblock ist.
-
Bevor
Bezug nehmend auf 5a, 5b das
weitere Vorgehen bei der Verarbeitung der gefilterten Abtastwerte
s' beschrieben wird,
wird im folgenden Zweck und Hintergrund der Vorgehensweise nach
den 3 und 4 beschrieben. Sinn und Zweck
der Filterung besteht darin, das Audiosignal am Eingang 12 mit
einem adaptiven Filter zu filtern, dessen Übertragungsfunktion ständig möglichst
optimal an das Inverse der Mithörschwelle
angepaßt
ist, die sich ja ebenfalls in der Zeit ändert. Der Grund hierfür besteht
darin, daß decoderseitig
die Rückfilterung
durch ein adaptives Filter, dessen Übertragungsfunktion dementsprechend ständig an
die Mithörschwelle
angepaßt
ist, das durch eine Quantisierung des gefilterten Audiosignals eingeführte weiße Quantisierungsrauschen,
d.h. das in der Frequenz konstante Quantisierungsrauschen, formt, nämlich an
die Form der Mithörschwelle
anpaßt.
-
Die
Anwendung des Verstärkungswertes
in den Schritten 94 und 100 im Prefilter 30 besteht
in einer Multiplikation des Audiosignals bzw. des gefilterten Audiosignals,
d.h. der Abtastwerte s oder der gefilterten Abtastwerte s', mit dem Verstärkungsfaktor.
Der Sinn besteht darin, hierdurch das Quantisierungsrauschen, das
durch die anschließend
näher beschriebene
Quantisierung in das gefilterte Audiosignal eingefügt wird,
und das durch die Rückfilterung
decoderseitig an die Form der Mithörschwelle angepaßt wird,
möglichst
so hoch einzustellen, daß es
die Mithörschwelle
dennoch nicht überschreitet.
Veranschaulichend läßt sich
dies durch die Parseval'sche
Formel, nach welcher das Betragsquadrat einer Funktion gleich dem
Betragsquadrat der Fourier-Transformierten
ist. Wenn also decoderseitig die Multiplikation des Audiosignals
im Prefilter mit dem Verstärkungswert
wieder rückgängig gemacht
wird, indem das gefilterte Audiosignal mit dem Verstärkungswert dividiert
wird, redu ziert sich damit die Quantisierungsrauschleistung ebenfalls,
nämlich
um den Faktor a–2, wobei a der Verstärkungswert
ist. Folglich kann durch die Anwendung des Verstärkungswertes in dem Prefilter 30 die
Quantisierungsrauschleistung optimal hoch eingestellt werden, was
gleichbedeutend damit ist, daß die Quantisierungsschrittweite
erhöht
und damit die Anzahl der zu codierenden Quantisierungsstufen reduziert wird,
was wiederum die Kompression in dem anschließenden Redundanzreduktionsteil
erhöht.
-
Anders
ausgedrückt,
kann der Effekt des Prefilters als eine Normierung des Signals an
seine Maskierungsschwelle angesehen werden, so daß der Pegel
der Quantisierungsstörungen
bzw. des Quantisierungsrauschens sowohl in Zeit auch Frequenz konstant
gehalten werden kann. Da das Audiosignal im Zeitbereich vorliegt,
kann deshalb die Quantisierung mit einer gleichmäßigen konstanten Quantisierung
schrittweise durchgeführt
werden, wie es im folgenden noch beschrieben wird. Auf diese Weise
wird Idealerweise jegliche Irrelevanz aus dem Audiosignal entfernt,
und es kann ein verlustfreies Kompressionsschema verwendet werden,
um auch noch die verbleibende Redundanz in dem pregefilterten und
quantisierten Audiosignal zu entfernen, wie es im folgenden noch
beschrieben wird.
-
Anhand
von 5a soll ferner noch einmal deutlich hervorgehoben
werden, daß freilich
die verwendeten Filterkoeffizienten und Verstärkungswerte a0,
a1, x0, x1 selbstverständlich als Seiteninformationen
decoderseitig zur Verfügung
stehen müssen,
daß aber
der Übertragungsaufwand
hierzu dadurch verringert wird, daß neue Filterkoeffizienten
und neue Verstärkungswerte
nicht einfach für
jeden Block neu verwendet werden. Vielmehr findet eine Schwellwertüberprüfung 66 statt,
um nur bei ausreichender Parametrisierungsänderung die Parametrisierungen
als Seiteninformationen zu übertragen,
und ansonsten, quasi in den Übergangsstellen bzw. Übergangsaudioblöcken, wird
eine Interpolation durchgeführt.
Die Interpolation der Filterkoeffizienten findet auf die im Vorhergehenden
Bezug nehmend auf den Schritt 88 beschriebene Weise statt.
Die Interpolation im Hinblick auf die Verstärkung findet über einen
Umweg statt, nämlich über eine
lineare Interpolation 90 der Rauschleistungsgrenze q0, q1. Im Vergleich
zu einer unmittelbaren Interpolation über den Verstärkungswert führt die
lineare Interpolation bezüglich
der Rauschleistungsgrenze zu einem besseren Hörergebnis bzw. weniger hörbaren Artefakten.
-
Im
folgenden wird nun anhand von 6 die weitere
Verarbeitung des pre- bzw. vorgefilterten Signals beschrieben, welche
im wesentlichen eine Quantisierung und eine Redundanzreduktion umfaßt. Zunächst werden
die von dem parametrisierbaren Prefilter 30 ausgegebenen
gefilterten Abtastwerte oberhalb einer oberen Schranke in einem
Schritt 110 abgeschnitten und daraufhin in einem Schritt 112 quantisiert.
Die beiden Schritte 110 und 112 werden von dem
Quantisierer 28 ausgeführt.
Insbesondere werden die beiden Schritte 110 und 112 von
dem Quantisierer 28 bevorzugter Weise in einem Schritt
ausgeführt,
indem die gefilterten Audiowerte s' mit einer Quantisierungsstufenfunktion
quantisiert werden, die die beispielsweise in einer Fließkommadarstellung
vorliegenden gefilterten Abtastwerte s' auf eine Mehrzahl von ganzzahligen
Quantisierungsstufenwerten bzw. -indizes abbildet und ab einem gewissen
Schwellwert für
die gefilterten Abtastwerte flach verläuft, so daß gefilterte Abtastwerte, die
größer als
der Schwellwert sind, auf ein und dieselbe Quantisierungsstufe quantisiert
werden. Ein Beispiel für
eine solche Quantisierungsstufenfunktion ist in 7a dargestellt.
-
Die
quantisierten gefilterten Abtastwerte sind in 7a mit σ' bezeichnet. Die
Quantisierungsstufenfunktion ist vorzugsweise eine Quantisierungsstufenfunktion
mit unterhalb des Schwellwertes konstanter Schrittweite, d.h. der
Sprung auf die nächste
Quantisierungsstufe findet stets nach einem konstanten Intervall entlang
der Eingangswerte S' statt.
In der Implementierung wird die Schrittweite zum Schwellwert derart
eingestellt, daß die
Anzahl an Quantisierungsstufen vorzugsweise einer Potenz von 2 entspricht.
Im Vergleich zur Fließkommadarstellung
der eingehenden gefilterten Abtastwerte s' ist der Schwellwert kleiner, so daß ein Maximalwert
des darstellbaren Bereichs der Fließkommadarstellung den Schwellwert übertrifft.
-
Der
Grund für
den Schwellwert besteht darin, daß beobachtet worden ist, daß das gefilterte
Audiosignal, das von dem Prefilter 30 ausgegeben wird,
vereinzelt Audiowerte aufweist, die sich aufgrund einer ungünstigen
Akkumulation von Oberwellen zu sehr großen Werten aufsummieren. Ferner
ist beobachtet worden, daß ein
Abschneiden dieser Werte, wie es durch die in 7a gezeigte
Quantisierungsstufenfunktion erzielt wird, zu einer hohen Datenreduktion,
aber nur zu einer geringfügigen
Beeinträchtigung
der Audioqualität
führt.
Vielmehr entstehen diese vereinzelten Stellen im gefilterten Audiosignal
künstlich
durch die frequenzselektive Filterung im parametrisierbaren Filter 30,
so daß ein
Abschneiden derselben die Audioqualität nur geringfügig beeinträchtigt.
-
Ein
etwas konkreteres Beispiel für
die in 7a gezeigte Quantisierungsstufenfunktion
wäre eine
solche, die bis zum Schwellwert alle gefilterten Abtastwerte s' auf die nächstgelegene
Ganzzahl rundet, und von da an alle darüberliegenden gefilterten Abtastwerte
auf die höchste
Quantisierungsstufe quantisiert, wie z.B. 256. Dieser Fall ist in 7a dargestellt.
-
Ein
weiteres Beispiel für
eine mögliche
Quantisierungsstufenfunktion wäre
die in 7b gezeigte. Bis zum Schwellwert
entspricht die Quantisierungsstufenfunktion von 7b derjenigen
von 7a. Anstatt jedoch für Abtastwerte s' oberhalb des Schwellwertes
abrupt flach zu verlaufen, verläuft
die Quantisierungsstufenfunktion mit einer Steilheit weiter, die
kleiner ist als die Steilheit im Bereich unterhalb des Schwellwertes. Anders
ausgedrückt
ist ober halb des Schwellwertes die Quantisierungsschrittweite größer. Hierdurch
wird ein ähnlicher
Effekt erzielt wie mit der Quantisierungsfunktion von 7a,
jedoch mit einerseits mehr Aufwand aufgrund der verschiedenen Schrittweiten
der Quantisierungsstufenfunktion oberhalb und unterhalb des Schwellwertes
und andererseits einer besserten Audioqualität, da sehr hohe gefilterte
Audiowerte s' nicht
vollständig abgeschnitten
werden, sondern lediglich mit einer größeren Quantisierungsschrittweite
quantisiert werden.
-
Wie
es im Vorhergehenden schon beschrieben worden ist, müssen decoderseitig
nicht nur die quantisierten und gefilterten Audiowerte σ' zur Verfügung stehen,
sondern ferner auch die Eingangsparameter für das Prefilter 30,
die der Filterung dieser Werte zugrundegelegt worden sind, nämlich die
Stützstellenparametrisierung
inklusive eines Hinweises auf den zugehörigen Verstärkungswert. In einem Schritt 114 unternimmt deshalb
der Komprimierer 34 einen ersten Komprimierungsversuch
und komprimiert dabei Seiteninformationen beinhaltend die Verstärkungswerte
a0 und a1 an den
Stützstellen,
wie z.B. 127 und 255, sowie die Filterkoeffizienten x0 und
x1 an den Stützstellen und die quantisierten,
gefilterten Abtastwerte σ' in ein vorläufiges gefiltertes
Signal. Der Komprimierer 34 ist dabei ein verlustfrei arbeitender
Codierer, wie z.B. ein Huffman- oder arithmetischer Codierer mit
oder ohne Prädiktion
und/oder Adaption.
-
Der
Speicher 38, den die quantisierten, abgetasteten Audiowerte σ' durchlaufen, dient
als Zwischenspeicher für
eine geeignete Blockgröße, mit
welcher der Komprimierer 34 die von dem Quantisierer 28 ausgegebenen
quantisierten, gefilterten Audiowerte σ' verarbeitet. Die Blockgröße kann
sich von der Blockgröße der Audioblöcke, wie
sie von der Einrichtung 20 verwendet werdenunterscheiden.
-
Für den ersten
Komprimierungsversuch hat die Bitratensteuerung 36 den
Multiplizierer 40 mit einem Multiplikator von 1 angesteuert,
so daß die
quantisierten, gefilterten Audio werte von dem Quantisierer 28 unverändert zu
dem Komprimierer 34 gelangen. Der Komprimierer 34 überwacht
in einem Schritt 116, ob eine gewisse Kompressionsblockgröße, d.h.
eine gewisse Anzahl von quantisierten, abgetasteten Audiowerten,
in das vorläufige
codierte Signal codiert worden ist, oder ob weitere quantisierte,
gefilterte Audiowerte σ' in das aktuelle
vorläufige
codierte Signal zu codieren sind. Ist die Kompressionsblockgröße nicht
erreicht, führt
der Komprimierer 34 die aktuelle Kompression 114 weiter
durch. Ist die Kompressionsblockgröße jedoch erreicht, überprüft in einem
Schritt 118 die Bitratensteuerung 36, ob die für die Komprimierung
benötigte
Bitmenge größer als
eine von einer erwünschten
Bitrate vorgeschriebene Bitmenge ist. Ist dies nicht der Fall, überprüft die Bitratensteuerung 36 in
einem Schritt 120, ob die benötigte Bitmenge kleiner als
die durch die erwünschte
Bitrate vorgeschriebene Bitmenge ist. Ist dies der Fall, fügt die Bitratensteuerung 36 das
codierte Signal in Schritt 122 mit Füllbits auf, bis die durch die
erwünschte
Bitrate vorgeschriebene Bitmenge erreicht ist. Anschließend erfolgt
in Schritt 124 die Ausgabe des codierten Signals. Alternativ
zu Schritt 122 könnte
die Bitratensteuerung 36 den in dem Speicher 38 noch
gespeicherten, zuletzt der Kompression zugrundeliegenden Kompressionsblock
von quantisierten, gefilterten Audiowerten σ' in mit einem Multiplikator größer 1 durch
den Multiplizierer 40 multiplizierter Form an den Quantisierer 28 zum
erneuten Durchlaufen der Schritte 110–118 weiterleiten,
bis die durch die erwünschte
Bitrate vorgeschriebene Bitmenge erreicht ist, wie es durch einen
gestrichelten Schritt 125 angezeigt ist.
-
Ergibt
jedoch die Überprüfung in
Schritt 118, daß die
benötigte
Bitmenge größer als
die von der erwünschten
Bitrate vorgeschriebene ist, ändert
die Bitratensteuerung 36 den Multiplikator für den Multiplizierer 40 auf
einen Faktor zwischen 0 und 1 ausschließlich. Dies führt sie
in Schritt 126 durch. Nach dem Schritt 126 sorgt
die Bitratensteuerung 36 dafür, daß der Speicher 38 den
letzten der Kompression zugrundeliegenden Kompressionsblock von
quantisierten, gefilterten Audiowerten σ' erneut ausgibt, wobei dieselben daraufhin
mit dem in Schritt 126 eingestellten Faktor multipliziert
werden und erneut dem Quantisierer 28 zugeführt werden, woraufhin
die Schritte 110–118 erneut
durchgeführt
werden und das bisher vorläufig
kodierte Signal verworfen wird.
-
Es
wird darauf hingewiesen, daß bei
erneutem Durchführen
der Schritte 110–116 in
dem Schritt 114 freilich auch der in dem Schritt 126 (oder
dem Schritt 125) verwendete Faktor in das codierte Signal
eingebunden wird.
-
Der
Sinn der Vorgehensweise nach Schritt 126 besteht darin,
daß durch
den Faktor die effektive Schrittweite des Quantisierers 28 erhöht wird.
Dies bedeutet, daß das
resultierende Quantisierungsrauschen gleichmäßig oberhalb der Maskierungsschwelle
liegt, was zu hörbaren
Störungen
bzw. hörbarem
Rauschen führt,
aber dafür
eine reduzierte Bitrate ergibt. Wird nach erneutem Durchlaufen der
Schritte 110–116 in
Schritt 118 erneut festgestellt, daß die benötigte Bitmenge größer als
die von der gewünschten
Bitrate vorgeschriebene ist, wird der Faktor in Schritt 126 weiter
reduziert usw.
-
Wenn
die Daten schließlich
bei Schritt 124 als codiertes Signal ausgegeben werden,
wird der nächste Kompressionsblock
von den darauffolgenden quantisierten, gefilterten Audiowerten σ' durchgeführt.
-
5b veranschaulicht
noch einmal das sich ergebende codierte Signal, das allgemein mit 130 angezeigt
ist. Das codierte Signal umfaßt
Seiteninformationen und dazwischenliegende Hauptdaten. Die Seiteninformationen
umfassen, wie bereits erwähnt,
Informationen, aus denen für
spezielle Audioblöcke,
nämlich
Audioblöcke,
bei denen sich in der Folge von Audioblöcken eine signifikante Änderung
in den Filterkoeffizienten ergeben hat, der Wert des Verstärkungs wertes
und der Wert der Filterkoeffizienten hergeleitet werden kann. Gegebenenfalls
umfassen die Seiteninformationen ferner weitere Informationen, die
sich auf den für
die Bitsteuerung verwendeten Verstärkungswert beziehen. Aufgrund
der gegenseitigen Abhängigkeit
zwischen Verstärkungswert
und Rauschleistungsgrenze q können
die Seiteninformationen wahlweise neben dem Verstärkungswert
a# zu einer Stützstelle # auch die Rauschleistungsgrenze
q# umfassen, oder auch nur letztere. Innerhalb
des codierten Signals sind die Seiteninformationen vorzugsweise
derart angeordnet, daß die
Seiteninformationen zu Filterkoeffizienten und zugehörigem Verstärkungswert
bzw. zugehöriger
Rauschleistungsgrenze hinter den Hauptdaten zu dem Audioblock von
quantisierten, gefilterten Audiowerten σ' angeordnet sind, aus dem diese Filterkoeffizienten
mit zugehörigem
Verstärkungswert
bzw. zugehöriger
Rauschleistungsgrenze abgeleitet worden sind, also die Seiteinformationen
a0, x0(i) nach dem
Block –1
und die Seiteinformationen a1, x1 (i) nach dem Block 1. Anders ausgedrückt sind
die Hauptdaten, d.h. die quantisierten, gefilterten Audiowerte σ', ab exklusive einem
Audioblock der Art, bei der sich eine in der Folge von Audioblöcken signifikante Änderung
in den Filterkoeffizienten ergeben hat, bis zu einschießlich dem
nächsten
Audioblock dieser Art, in 5b beispielsweise
die Audiowerte σ'(t0)– σ'(t255),
immer zwischen dem Seiteninformationsblock 132 zu dem ersteren
dieser beiden Audioblöcke
(Block –1)
und dem weiteren Seiteninformationsblock 134 zu dem zweiten
dieser beiden Audioblöcke
(Block 1) angeordnet. Die Audiowerte σ'(t0)–σ'(t127)
sind wie im vorhergehenden bezugnehmend auf 5a erwähnt allein
mittels der Seiteninformationen 132 erhalten worden bzw. dekodierbar,
während
die Audiowerte σ'(t128)–σ'(t255)
durch Interpolation mittels der Seiteninformationen 132 als Stützwerte
an der Stützstelle
mit der Abtastwertnummer 127 und mittels der Seiteninformationen 134 als
Stützwerte
an der Stützstelle
mit der Abtastwertnummer 255 erhalten worden sind und somit nur
mitels beider Seiteninformationen dekodierbar sind.
-
Ferner
werden die Seiteninformationen betreffend den Verstärkungswert
bzw. die Rauschleistungsgrenze und die Filterkoeffizienten in jedem
Seiteninformationsblock 132 und 134 nicht immer
unabhängig
voneinander eingebunden. Vielmehr werden diese Seiteninformationen
in Differenzen zu dem vorhergehenden Seiteninformationsblock übertragen.
In 5b enthält
beispielsweise der Seiteninformationsblock 132 Verstärkungswert
a0 und Filterkoeffizienten x0 bezüglich der
Stützstelle
zum Zeitpunkt t–1. In dem Seiteninformationsblock 132 sind
diese Werte aus dem Block selbst herleitbar. Aus dem Seiteninformationsblock 134 sind
jedoch die Seiteninformationen betreffend die Stützstelle zum Zeitpunkt t255 nicht mehr aus diesem Block allein herleitbar.
Vielmehr umfaßt
der Seiteninformationsblock 134 lediglich Informationen über Differenzen
des Verstärkungswertes
a1 der Stützstelle zum Zeitpunkt t255 zu dem Verstärkungswert der Stützstelle
zum Zeitpunkt t0 und die Differenzen der
Filterkoeffizienten x1 zu den Filterkoeffizienten
x0. Der Seiteninformationsblock 134 enthält folglich
lediglich die Informationen zu a1–a0 und x1(i)–x0(i). Zu intermittierenden Zeitpunkten sollten
jedoch die Filterkoeffizienten und der Verstärkungswert bzw. die Rauschleistungsgrenze
voll und nicht nur als Differenz zur vorhergehenden Stützstelle übertragen
werden, wie z.B. jede Sekunde, um einem Empfänger bzw. Dekodierer das Einklinken
in einen laufenden Strom von Codierungsdaten zu ermöglichen,
wie es im folgenden noch erörtert
wird.
-
Diese
Art des Einbindens der Seiteninformationen in die Seiteninformationsblöcke 132 und 134 bietet den
Vorteil der Möglichkeit
einer höheren
Komprimierungsrate. Der Grund dafür besteht darin, daß, obwohl
die Seiteninformationen möglichst
nur dann übertragen
werden, wenn sich eine ausreichende Änderung der Filterkoeffizienten
zu den Filterkoeffizienten einer vorhergehenden Stützstelle
ergeben hat, sich der Aufwand der Differenzbildung codiererseitig
bzw. Summenbildung decodierseitig lohnt, da die sich ergebenden Differenzen trotz
der Abfrage in Schritt 66 klein sind, um somit Vorteile
bei der Entropiecodierung zu ermöglichen.
-
Nachdem
im Vorhergehenden ein Ausführungsbeispiel
für einen
Audiocodierer beschrieben worden ist, wird im folgenden ein Ausführungsbeispiel
für einen
Audiodecodierer beschrieben, der geeignet ist, das durch den Audiocodierer 10 von 1 erzeugte
codierte Signal in ein decodiertes, abspielbares bzw. weiterverarbeitbares
Audiosignal zu decodieren.
-
Der
Aufbau dieses Decodierers ist in 8 gezeigt.
Der Decodierer, der allgemein mit 210 angezeigt ist, umfaßt einen
Dekomprimierer 212, einen FIFO-Speicher 214, einen
Multiplizierer 216 und ein parametrisierbares Postfilter 218.
Dekomprimierer 212, FIFO-Speicher 214, Multiplizierer 216 und
parametrisierbares Postfilter 218 sind in dieser Reihenfolge
zwischen einen Dateneingang 220 und einen Datenausgang 222 des Decodierers 210 geschaltet,
wobei am Dateneingang 220 das codierte Signal erhalten
wird und am Datenausgang 222 das decodierte Audiosignal
ausgegeben wird, das sich lediglich durch das durch den Quantisierer 28 im
Audiocodierer 10 erzeugte Quantisierungsrauschen von dem
ursprünglichen
Audiosignal am Dateneingang 12 des Audiocodierers 10 unterscheidet.
Der Dekomprimierer 212 ist an einem weiteren Datenausgang mit
einem Steuereingang des Multiplizierers 216 verbunden,
um an denselben einen Multiplikator weiterzuleiten, und über einen
weiteren Datenausgang mit einem Parametrisierungseingang des parametrisierbaren Postfilters 218.
-
Wie
es in 9 gezeigt ist, dekomprimiert der Dekomprimierer 212 in
einem Schritt 224 zunächst
das am Dateneingang 220 anliegende komprimierte Signal,
um an die quantisierten, gefilterten Audiodaten, nämlich die
Abtastwerte σ', sowie die dazugehörigen Seiteninformationen
in den Seiteninformationsblöcken 132, 134 zu
gelangen, die ja die Filterkoeffizienten und Verstärkungswerte
oder, anstelle der Verstärkungswerte,
die Rauschleistungsgrenzen, an den Stützstellen anzeigen.
-
Wie
es in 10 gezeigt ist, überprüft der Dekomprimierer 212 in
einem Schritt 226 das dekomprimierte Signal in der Reihenfolge
seiner Ankunft, ob darin Seiteninformationen mit Filterkoeffizienten
enthalten sind, und zwar in in sich abgeschlossener Form ohne Differenzbezugnahme
auf einen vorhergehenden Seiteninformationsblock. Anders ausgedrückt, sucht
der Dekomprimierer 212 nach dem ersten Seiteninformationsblock 132.
Sobald der Dekomprimierer 212 fündig geworden ist, werden die
quantisierten, gefilterten Audiowerte σ' in einem Schritt 228 in dem
FIFO-Speicher 214 zwischengespeichert. Ist während des
Schrittes 228 ein vollständiger Audioblock von quantisierten,
gefilterten Audiowerte σ' eingespeichert worden,
ohne daß unmittelbar
ein Seiteninformationsblock folgt, so wird dieser innerhalb des
Schrittes 228 zunächst
mittels der in in dem Schritt 226 empfangenen Seiteninformationen
enthaltenen Informationen über
Parametrisierung und Verstärkungswert
in dem Postfilter postgefiltert und im Multiplizierer 216 verstärkt, wodurch
er dekodiert und damit der zugehörige
dekodierte Audioblock erhalten wird.
-
In
einem Schritt 230 überwacht
der Dekomprimierer 212 das dekomprimierte Signal auf das
Auftauchen eines irgendwie gearteten Seiteninformationsblocks, nämlich mit
reinen mit vollen Filterkoeffizienten oder Filterkoeffizienten-Differenzen zu einem
vorhergehenden Seiteninformationsblock hin. In dem Beispiel von 5b würde beispielsweise
der Dekomprimierer 212 auf die Erkennung des Seiteninformationsblocks 132 im
Schritt 226 in dem Schritt 230 das Auftauchen
des Seiteninformationsblocks 134 erkennen. Dabei wäre bereits
in Schritt 228 der Block von quantisierten, gefilterten
Audiowerten σ'(t0)–σ'(t127)
dekodiert worden, und zwar unter Verwendung der Seiteninformationen 132.
Solange der Seiteninformationsblock 134 im dekomprimierten
Signal also noch nicht auftritt, wird die Zwischenspeicherung und die
eventuelle Dekodierung von Blöcken
vermittels der Seiteninformationen aus Schritt 226, wie
es im vorhergehenden beschrieben wurde, im Schritt 228 fortgesetzt.
-
Sobald
der Seiteninformationsblock 134 auftritt, berechnet der
Dekomprimierer 212 im Schritt 232 durch Summieren
der Differenzwerte in dem Seiteninformationsblock 134 zu
den Parameterwerten in dem Seiteninformationsblock 132 die
Parameterwerte an der Stützstelle
1, d.h. a1, x1(i).
Freilich entfällt
der Schritt 232 falls der aktuelle Seiteninformationsblock
ein in sich abgeschlossener Seiteninformationsblock ohne Differenzen
ist, was, wie im vorhergehenden beschrieben beispielsweise alle
Sekunde der Fall sein kann. Damit die Wartezeit für den Decodierer 210 nicht
zu lange ist, werden Seiteninformationsblöcke 132, bei denen
die Parameterwerte absolut, d.h. ohne Relation zu einem anderen
Seiteninformationsblock, herleitbar sind, in genügend kleinen Abständen angeordnet,
so daß die
Einschaltzeit bzw. die Totzeit beim Einschalten des Audiocodierers 210 bei
beispielsweise einer Funkübertragung
oder Rundfunkübertragung
nicht zu groß ist.
Vorzugsweise sind auch die Anzahl der dazwischen angeordneten Seiteninformationsblöcke 134 mit
den Differenzwerten in einer festen vorbestimmten Anzahl zwischen
den Seiteninformationsblöcken 132 angeordnet,
so daß der Decodierer
weiß,
wann wieder ein Seiteninformationsblock der Art 132 in
dem codierten Signal zu erwarten ist. Alternativ werden die verschiedenen
Seiteninformationsblocktypen durch entsprechende Flags angezeigt.
-
Wie
es nun in 11 gezeigt ist, wird, nachdem
nun ein Seiteninformationsblock für eine neue Stützstelle
erreicht worden ist, und zwar insbesonder nach Schritt 226 oder 232,
zunächst
ein Abtastwertindex j auf 0 im Schritt 234 initialisiert.
Dieser Wert entspricht der Abtastposition des ersten Abtastwertes
in dem aktuell in dem FIFO 214 verbliebenen Audioblock,
auf den sich die aktuellen Seiteninformationen beziehen. Schritt 234 wird
von dem parametrisierbaren Postfilter 218 durchgeführt. Das
Postfilter 218 führt danach
in einem Schritt 236 eine Berechnung der Rauschleistungsgrenze
an der neuen Stützstelle
durch, wobei dieser Schritt dem Schritt 84 von 4 entspricht
und gegebenenfalls entfallen kann, wenn beispielsweise die Rauchleistungsgrenze
an den Stützstellen
zusätzlich
zu den Verstärkungswerten übertragen
wird. In nachfolgenden Schritten 238 und 240 führt daraufhin
das Postfilter 218 Interpolationen bezüglich der Filterkoeffizienten
und der Rauschleistungsgrenzen durch, die den Interpolationen 88 und 90 von 4 entsprechen.
Die nachfolgende Berechnung des Verstärkungswertes für die Abtastposition
j auf der Basis der interpolierten Rauschleistungsgrenze und den
interpolierten Filterkoeffizienten aus den Schritten 238 und 240 in
Schritt 242 entspricht dem Schritt 92 von 4.
In einem Schritt 244 wendet daraufhin das Postfilter 218 den
in Schritt 242 berechneten Verstärkungswert sowie die interpolierten
Filterkoeffizienten auf den Abtastwert an der Abtastposition j an.
Dieser Schritt unterscheidet sich von dem Schritt 94 von 4 dadurch,
daß die
interpolierten Filterkoeffizienten derart auf die quantisierten,
gefilterten Abtastwerte σ' angewendet werden,
daß die Übertragungsfunktion
des parametrisierbaren Postfilters nicht dem Inversen der Mithörschwelle,
sondern der Mithörschwelle selbst
entspricht. Ferner führt
das Postfilter nicht eine Multiplikation mit dem Verstärkungswert,
sondern eine Division durch den Verstärkungswert an dem quantisierten,
gefilterten Abtastwert σ' oder bereits zurückgefilterten,
quantisierten, gefilterten Abtastwert an der Position j durch.
-
Hat
das Postfilter 218 noch nicht die aktuelle Stützstelle
mit der Abtastposition j erreicht, was dasselbe in Schritt 246 überprüft, inkrementiert
es in Schritt 248 den Abtastpositionsindex j und beginnt
die Schritte 238–246 von
neuem. Erst wenn die Stützstelle
erreicht ist, wendet sie den Verstärkungswert und die Filterkoeffizienten
der neuen Stützstelle
auf den Abtastwert an der Stützstelle
an, nämlich
in Schritt 250. Wiederum umfaßt die Anwendung wie im Schritt 218 anstatt
einer Multiplikation eine Division mittels des Verstärkungswertes
und eine Filterung mit einer Übertragungsfunktion
gleich der Mithörschwelle
und nicht dem Inversen letztgenannter. Nach Schritt 250 ist
der aktuelle Audioblock durch Interpolation zwischen zwei Stützstellenparametrisierungen
dekodiert.
-
Wie
bereits erwähnt,
wird durch die Filterung und die Anwendung des Verstärkungswertes
in den Schritten 218 und 224 das durch die Quantisierung
bei der Codierung in Schritt 110 bzw. 112 eingefügte Rauschen
sowohl in Form als auch in Höhe
an die Mithörschwelle
angepaßt.
-
Es
wird noch darauf hingewiesen, daß in dem Fall, daß die quantisierten,
gefilterten Audiowerte aufgrund der Bitratensteuerung vor der Codierung
in das codierte Signal noch einer weiteren Multiplikation in Schritt 126 unterzogen
worden sind, dieser Faktor in den Schritten 218 und 224 ebenfalls
berücksichtigt
werden kann. Alternativ können
freilich die durch den Prozeß von 11 erhaltenen
Audiowerte einer weiteren Multiplikation unterzogen werden, um die
um einer niedrigern Bitrate willen geschwächten Audiowerte wieder entsprechend
zu verstärken.
-
Hinsichtlich
der 3, 4, 6 und 9–11 wird
darauf hingewiesen, daß dieselben
Flußdiagramme
zeigen, welche die Arbeitsweise des Codierers von 1 oder
des Decodierers von 8 veranschaulichen, und daß jeder
der in diesen Flußdiagrammen
durch einen Block dargestellten Schritte wie beschrieben in einer
entsprechenden Einrichtung implementiert ist, wie es im vorhergehenden
beschrieben wurde. Die Implementierung der einzelnen Schritte kann
dabei in Hardware, als ASIC-Schaltungsteil, oder in Software, als
Unterroutinen, realisiert sein. Insbesondere zeigen in diesen Figuren
die in den Blöcken
eingeschrieben Erläuterungen
grob an, auf welchen Vorgang sich der jeweilige Schritt bezieht,
der dem jeweiligen Block entspricht, während die Pfeile zwischen den
Blöcken
die Reihenfolge der Schritte bei Betrieb des Codierers bzw. Dekodierers
veranschaulichen.
-
Bezug
nehmend auf die vorhergehende Beschreibung wird noch darauf hingewiesen,
daß das
oben dargestellte Codierschema in verschiedener Hinsicht variiert
werden kann. Beispielsweise ist es nicht notwendig, daß eine Parametrisierung
und ein Verstärkungswert
oder eine Rauschleistungsgrenze, wie sie für einen bestimmten Audioblock
bestimmt worden sind, als für
einen bestimmten Audiowert unmittelbar gültig angesehen werden sollen,
wie in dem vorhergehenden Ausführungsbeispiel
der jeweils letzte Audiowert jedes Audioblocks, d.h. des 128sten
Werts in diesem Audioblock, so daß für diesen Audiowert die Interpolation
unterbleiben kann. Vielmehr ist es möglich, diese Stützstellenparameterwerte
auf eine Stützstelle
zu beziehen, die sich zeitlich zwischen den Abtastzeitpunkten tn mit n = 0, ..., 127 der Audiowerte dieses
Audioblocks befindet, so daß für jeden
Audiowert eine Interpolation notwendig wäre. Insbesondere kann die für einen
Audioblock bestimmte Parametrisierung bzw. der für diesen Audioblock bestimmte
Verstärkungswert
auch auf einen anderen Wert unmittelbar angewendet werden, wie z.B.
den Audiowert in der Mitte des Audioblocks, wie z.B. den 64sten
Audiowert in dem Fall der obigen Blockgröße von 128 Audiowerten.
-
Ferner
wird darauf hingewiesen, daß sich
obiges Ausführungsbeispiel
auf ein Audiocodierungsschema bezog, das darauf ausgelegt war, ein
codiertes Signal mit einer gesteuerten Bitrate zu erzeugen. Die
Steuerung der Bitrate ist aber nicht in jedem Anwendungsfall erforderlich.
Deshalb können
die entsprechenden Schritte 116–122 und 126 bzw. 125 auch
weggelassen werden.
-
Hinsichtlich
des Bezug nehmend auf den Schritt 114 erwähnten Komprimierungsschemas
wird der Vollständigkeit
halber auch auf das in der Beschreibungseinleitung beschriebene
Dokument von Schuller et. al. verwiesen, und insbesondere auf Gliederungspunkt
IV, dessen Inhalt bezüglich
der Redundanzreduktion mittels verlustloser Codierung hiermit unter
Bezugnahme aufgenommen wird.
-
Bezug
nehmend auf die vorhergehende Beschreibung wird ferner auf folgendes
hingewiesen. Obwohl im Vorhergehenden die vorliegende Erfindung
Bezug nehmend auf ein spezielles Audiocodierschema beschrieben worden
ist, das kurze Verzögerungszeiten
ermöglicht,
ist die vorliegenden Erfindung freilich auch bei anderen Audiocodierungen
anwendbar. So wäre
beispielsweise auch ein Audiocodierungsschema denkbar, bei dem das
codierte Signal aus den quantisierten, gefilterten Audiowerten an
sich besteht, ohne daß eine
Redundanzreduktion durchgeführt
wird. Demgemäß wäre es aber
auch denkbar, die frequenzselektive Filterung anders als die im
Vorhergehenden beschriebene Weise, nämlich codiererseitig mit einer Übertragungsfunktion gleich
dem Inversen der Mithörschwelle
und decoderseitig mit einer Übertragungsfunktion
gleich der Mithörschwelle,
durchzuführen.
-
Ferner
können
einzelne Aspekte obiger Ausführungsbeispiele
auch weggelassen werden. So ist es beispielsweise unter Verringerung
des Kompressionsverhältnisses
ebenfalls möglich,
die Seiteninformationen bezüglich
jeden Audioblocks zu übermitteln,
die Interpolation wegzulassen und/oder die Parameter in den Seiteninformationen
immer in in sich abgeschlossenen Seiteninformationsblöcken zu übertragen
und nicht als Differenzen, die sich auf vorhergehende Seiteninformationsblöcke beziehen.
-
Ferner
ist die vorliegende Erfindung nicht auf Audiosignale begrenzt. Sie
ist ferner auch bei anderen Informationssignalen anwendbar, nämlich beispielweise
bei Videosignalen bestehend aus einer Folge von Frames, d.h. einer
Folge von Pixelarrays.
-
Jedenfalls
liefert aber obiges Audiocodierungsschema eine Möglichkeit zur Begrenzung der
Bitrate bei einem Audioco dierer mit sehr geringer Verzögerungszeit.
Die bei der Codierung abhängig
vom Audiosignal entstehenden Bitraten-Spitzen werden dadurch vermieden, daß der Ausgangswertebereich
des Prefilters begrenzt wird. Wiewohl es folglich der Natur der
zu übertragenden
Audiosignale entspricht, daß sie
zu unterschiedlich hohen Bitraten für die Übertragung führen, nämlich komplexere
Audiosignale zu höheren
Bitraten und weniger komplexe zu geringern Bitraten, kann stets
eine Obergrenze für
die Bitrate der Übertragung
eingehalten werden, die oftmals beispielsweise bei drahtlosen Übertragungsmedien
existiert. Die Änderung
der Quantisierungsstufenfunktion oberhalb der Schwelle ist ein geeignetes
Mittel, um die Bitrate auf das zulässige Maximum zu begrenzen.
-
Bei
obigen Ausführungsbeispielen
bestand der Codierer aus einem Prefilter, das das Audiosignal geeignet
formt, einem Quantisierer mit einer Quantisiererungsstufenhöhe, gefolgt
von einem Entropiecodierer. Der Quantisierer erzeugte Werte, die
auch Indizes genannt werden. Im allgemeinen bedeuten höhere Indizes auch
eine höhere
damit verbundene Bitrate, die jedoch dadurch vermieden wurde, daß der Bereich
der Indizes begrenzt (7a) bzw. ausgedünnt (7b)
wurde, allerdings mit der Möglichkeit
der Verschlechterung der Audioqualität.
-
Ferner
wird Bezug nehmend auf das vorhergehende Ausführungsbeispiel noch auf folgendes
hingewiesen. Obwohl im Vorhergehenden beschrieben worden ist, daß der Schwellwert
bei der Quantisierung immer konstant bleibt bzw. auch die Quantisierungsstufenfunktion
immer konstant bleibt, d.h. stets die in dem gefilterten Audiosignal
erzeugten Artefakte mit gröberer
Quantisierung quantisiert bzw. abgeschnitten werden, wodurch die
Audioqualität
gegebenenfalls hörbar
verschlechtert werden könnte,
ist es ferner möglich,
diese Maßnahme
erst dann zu verwenden, wenn es die Komplexität des Audiosignals erfordert,
nämlich
dann, wenn die zur Codierung notwendige Bitrate eine erwünschte Bitrate überschreitet.
In diesem Fall könnte
zusätzlich zu
den in 7a und 7b gezeigten
Quantisierungsstufenfunktionen beispielsweise eine solche mit einer über den
ganzen möglichen
Wertebereich am Ausgang des Prefilters konstanten Quantisierungsschrittweite verwendet
werden und der Quantisierer würde
beispielsweise auf ein Signal ansprechen, um entweder die Quantisierungsstufenfunktion
mit stets konstanter Quantisierungsschrittweite oder eine der Quantisierungsstufenfunktionen
nach 7a oder 7b zu
verwenden, so daß durch
das Signal dem Quantisierer mitgeteilt werden könnte, bei geringfügiger Audioqualitätsverschlechterung
die Quantisierungsstufenverringerung oberhalb des Schwellwertes
bzw. das Abschneiden oberhalb des Schwellwertes durchzuführen. Alternativ
könnte auch
graduell der Schwellwert allmählich
verringert werden. In diesem Fall könnte die Schwellwertverringerung anstatt
der Faktorverringerung von Schritt 126 durchgeführt werden.
Nach einem ersten Komprimierungsversuch ohne Schritt 110 könnte also
das vorläufig
komprimierte Signal lediglich erst dann in einem modifizierten Schritt 126 einer
selektiven Schwellwertquantisierung unterzogen werden, wenn die
Bitrate immer noch zu hoch ist (118). In einem erneuten
Durchgang würden
dann die gefilterten Audiowerte mit der Quantisierungsstufenfunktion
quantisiert werden, die einen flacheren Verlauf oberhalb der Audioschwelle
aufweist. Weitere Bitratenreduktionen könnten in dem modifizierten
Schritt 126 noch durch Reduzieren des Schwellwertes und damit
einer weiteren Modifikation der Quantisierungsstufenfunktion durchgeführt werden.
-
Insbesondere
wird darauf hingewiesen, dass abhängig von den Gegebenheiten
das erfindungsgemäße Quantisierungsschema
auch in Software implementiert sein kann. Die Implementierung kann
auf einem digitalen Speichermedium, insbesondere einer Diskette
oder einer CD mit elektronisch auslesbaren Steuersignalen erfolgen,
die so mit einem programmierbaren Computersystem zusammenwirken
können,
daß das
entsprechende Verfahren ausgeführt
wird. Allgemein besteht die Erfindung somit auch in einem Computerprogrammprodukt
mit auf einem maschinenlesbaren Träger gespeicherten Programmcode
zur Durchführung
des erfindungsgemäßen Verfahrens,
wenn das Computerprogrammprodukt auf einem Rechner abläuft. In
anderen Worten ausgedrückt
kann die Erfindung somit als ein Computerprogramm mit einem Programmcode
zur Durchführung
des Verfahrens realisiert werden, wenn das Computerprogramm auf
einem Computer abläuft.
-
Insbesondere
können
obige Verfahrensschritte in den Blöcken der Flußdiagramme
einzeln oder zu mehreren in Unterprogrammroutinen implementiert
sein. Alternativ ist freilich auch eine Implementierung einer erfindungsgemäßen Vorrichtung
in Form einer Integrierten Schaltung möglich, bei der diese Blöcke beispielsweise
als einzelne Schaltungsteile einer ASIC implementiert sind.
-
Insbesondere
wird darauf hingewiesen, dass abhängig von den Gegebenheiten
das erfindungsgemäße Schema
auch in Software implementiert sein kann. Die Implementation kann
auf einem digitalen Speichermedium, insbesondere einer Diskette
oder einer CD mit elektronisch auslesbaren Steuersignalen erfolgen,
die so mit einem programmierbaren Computersystem zusammenwirken
können,
dass das entsprechende Verfahren ausgeführt wird. Allgemein besteht
die Erfindung somit auch in einem Computerprogrammprodukt mit auf einem
maschinenlesbaren Träger
gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens,
wenn das Computerprogrammprodukt auf einem Rechner abläuft. In
anderen Worten ausgedrückt kann
die Erfindung somit als ein Computerprogramm mit einem Programmcode
zur Durchführung
des Verfahrens realisiert werden, wenn das Computerprogramm auf
einem Computer abläuft.