Nachfolgend
wird der bekannte Codierer dargestellt. An einem Eingang 1000 wird
ein zu codierendes Audiosignal eingespeist. Dieses wird zunächst einer
Skalierungsstufe 1002 zugeführt, in der eine sogenannte
AAC-Verstärkungssteuerung
durchgeführt
wird, um den Pegel des Audiosignals festzulegen. Seiteninformationen
aus der Skalierung werden einem Bitstromformatierer 1004 zugeführt, wie es
durch den Pfeil zwischen dem Block 1002 und dem Block 1004 dargestellt
ist. Das skalierte Audiosignal wird hierauf einer MDCT-Filterbank 1006 zugeführt. Beim
AAC-Codierer implementiert die Filterbank eine modifizierte diskrete
Cosinustransformation mit 50 % überlappenden
Fenstern, wobei die Fensterlänge
durch einen Block 1008 bestimmt wird.
Allgemein
gesagt ist der Block 1008 dazu vorhanden, dass transiente
Signale mit kürzeren Fenstern
gefenstert werden, und dass eher stationäre Signale mit längeren Fenstern
gefenstert werden. Dies dient dazu, dass aufgrund der kürzeren Fenster für transiente
Signale eine höhere
Zeitauflösung
(auf Kosten der Frequenzauflösung)
erreicht wird, während
für eher
stationäre
Signale eine höhere
Frequenzauflösung
(auf Kosten der Zeitauflösung)
durch längere
Fenster erreicht wird, wobei tendenziell längere Fenster bevorzugt werden,
da sie einen größeren Codiergewinn
versprechen. Am Ausgang der Filterbank 1006 liegen zeitlich
betrachtet aufeinanderfolgende Blöcke von Spektralwerten vor,
die je nach Ausführungsform
der Filterbank MDCT-Koeffizienten, Fourier-Koeffizienten oder auch Subbandsignale sein
können,
wobei jedes Subbandsignal eine bestimmte begrenzte Bandbreite hat,
die durch den entsprechenden Subbandkanal in der Filterbank 1006 festgelegt
wird, und wobei jedes Subbandsignal eine bestimmte Anzahl von Subband-Abtastwerten
aufweist.
Nachfolgend
wird beispielhaft der Fall dargestellt, bei dem die Filterbank zeitlich
betrachtet aufeinanderfolgende Blöcke von MDCT-Spektralkoeffizienten
ausgibt, die allgemein gesagt, aufeinanderfolgende Kurzzeitspektren
des zu codierenden Audiosignals am Eingang 1000 darstellen.
Ein Block von MDCT-Spektralwerten wird dann in einen TNS-Verarbeitungsblock 1010 eingespeist,
in dem eine zeitliche Rauschformung stattfindet (TNS = temporal
noise shaping). Die TNS-Technik wird dazu verwendet, um die zeitliche
Form des Quantisierungsrauschens innerhalb jedes Fensters der Transformation
zu formen. Dies wird dadurch erreicht, dass ein Filterprozess auf
Teile der Spektraldaten jedes Kanals angewendet wird. Die Codierung
wird auf einer Fensterbasis durchgeführt. Insbesondere werden die
folgenden Schritte ausgeführt,
um das TNS-Tool auf ein Fenster spektraler Daten, also auf einen
Block von Spektralwerten anzuwenden.
Zunächst wird
ein Frequenzbereich für
das TNS-Tool ausgewählt.
Eine geeignete Auswahl besteht darin, einen Frequenzbereich von
1,5 kHz bis zum höchsten
möglichen
Skalenfaktorband mit einem Filter abzudecken. Es sei darauf hingewiesen, dass
dieser Frequenzbereich von der Abtastrate abhängt, wie es im AAC-Standard
(ISO/IEC 14496-3: 2001 (E)) spezifiziert ist.
Anschließend wird
eine LPC-Berechnung (LPC = linear predictive coding = lineare prädiktive Codierung)
ausgeführt,
und zwar mit den spektralen MDCT-Koeffizienten, die in dem ausgewählten Zielfrequenzbereich
liegen. Für
eine erhöhte
Stabilität werden
Koeffizienten, die Frequenzen unter 2,5 kHz entsprechen, aus diesem
Prozess ausgeschlossen. Übliche
LPC-Prozeduren, wie sie aus der Sprachverarbeitung bekannt sind,
können
für die
LPC-Berechnung verwendet werden, beispielsweise der bekannte Levinson-Durbin-Algorithmus.
Die Berechnung wird für
die maximal zulässige
Ordnung des Rauschformungsfilters ausgeführt.
Als
Ergebnis der LPC-Berechnung wird der erwartete Prädiktionsgewinn
PG erhalten. Ferner werden die Reflexionskoeffizienten oder Parcor-Koeffizienten
erhalten.
Wenn
der Prädiktionsgewinn
eine bestimmte Schwelle nicht überschreitet,
wird das TNS-Tool nicht angewendet. In diesem Fall wird eine Steuerinformation
in den Bitstrom geschrieben, damit ein Decodierer weiß, dass
keine TNS-Verarbeitung
ausgeführt worden
ist.
Wenn
der Prädiktionsgewinn
jedoch eine Schwelle überschreitet,
wird die TNS-Verarbeitung angewendet.
In
einem nächsten
Schritt werden die Reflexionskoeffizienten quantisiert. Die Ordnung
des verwendeten Rauschformungsfilters wird durch Entfernen aller
Reflexionskoeffizienten mit einem Absolutwert kleiner als eine Schwelle
von dem „Schwanz" des Reflexionskoeffizienten-Arrays
bestimmt.
Die
Anzahl der verbleibenden Reflexionskoeffizienten liegt in der Größenordnung
des Rauschformungsfilters. Eine geeignete Schwelle liegt bei 0,1.
Die
verbleibenden Reflexionskoeffizienten werden typischerweise in lineare
Prädiktionskoeffizienten
umgewandelt, wobei diese Technik auch als "Step-Up"-Prozedur bekannt ist.
Die
berechneten LPC-Koeffizienten werden dann als Codierer-Rauschformungsfilterkoeffizienten,
also als Prädiktionsfilterkoeffizienten
verwendet. Dieses FIR-Filter wird über den spezifizierten Zielfrequenzbereich
geführt.
Bei der Decodierung wird ein autoregressives Filter verwendet, während bei
der Codierung ein sogenanntes Moving-Average-Filter verwendet wird.
Schließlich
werden noch die Seiteninformationen für das TNS-Tool dem Bitstromformatierer
zugeführt,
wie es durch den Pfeil dargestellt ist, der zwischen dem Block TNS-Verarbeitung 1010 und dem
Bitstromformatierer 1004 in 3 gezeigt
ist.
Hierauf
werden mehrere in 3 nicht
gezeigte optionale Tools durchlaufen, wie beispielsweise ein Langzeitprädiktions-Tool,
ein Intensity/Kopplungs-Tool, ein Prädiktions-Tool, ein Rauschsubstitutions-Tool,
bis schließlich
zu einem Mitte/Seite-Codierer 1012 gelangt wird. Der Mitte/Seite-Codierer 1012 ist
dann aktiv, wenn das zu codierende Audiosignal ein Multikanalsignal
ist, also ein Stereosignal mit einem linken Kanal und einem rechten
Kanal. Bisher, also in der Verarbeitungsrichtung vor dem Block 1012 in 3 wurden der linke und der
rechte Stereokanal getrennt voneinander verarbeitet, also skaliert,
durch die Filterbank transformiert, der TNS-Verarbeitung unterzogen
oder nicht etc.
Im
Mitte/Seite-Codierer wird dann zunächst überprüft, ob eine Mitte/Seite-Codierung
sinnvoll ist, also überhaupt
einen Codiergewinn bringt. Eine Mitte/Seite-Codierung wird dann
einen Codiergewinn bringen, wenn der linke und der rechte Kanal
eher ähnlich
sind, da dann der Mitte-Kanal, also die Summe aus dem linken und
dem rechten Kanal nahezu gleich dem linken oder dem rechten Kanal
ist, abgesehen von der Skalierung durch den Faktor 1/2, während der
Seite-Kanal nur
sehr kleine Werte hat, da er gleich der Differenz zwischen dem linken
und dem rechten Kanal ist. Damit ist zu sehen, dass dann, wenn der
linke und der rechte Kanal annähernd gleich
sind, die Differenz annähernd
Null ist bzw. nur ganz kleine Werte umfasst, die – so ist
die Hoffnung – in
einem nachfolgenden Quantisierer 1014 zu Null quantisiert
werden und somit sehr effizient übertragen
werden können,
da dem Quantisierer 1014 ein Entropie-Codierer 1016 nachgeschaltet
ist.
Dem
Quantisierer 1014 wird von einem psycho-akustischen Modell 1020 eine
erlaubte Störung pro
Skalenfaktorband zugeführt.
Der Quantisierer arbeitet iterativ, d. h. es wird zunächst eine äußere Iterationsschleife
aufgerufen, die dann eine innere Iterationsschleife aufruft. Allgemein
gesagt wird zunächst,
ausgehend von Quantisiererschrittweiten-Startwerten, eine Quantisierung
eines Blocks von Werten am Eingang des Quantisierers 1014 vorgenommen.
Insbesondere quantisiert die innere Schleife die MDCT-Koeffizienten,
wobei eine bestimmte Anzahl von Bits verbraucht wird. Die äußere Schleife berechnet
die Verzerrung und modifizierte Energie der Koeffizienten unter
Verwendung des Skalenfaktors, um wieder eine innere Schleife aufzurufen.
Dieser Prozess wird iteriert, bis ein bestimmter Bedingungssatz erfüllt ist.
Für jede
Iteration in der äußeren Iterationsschleife
wird dabei das Signal rekonstruiert, um die durch die Quantisierung
eingeführte
Störung zu
berechnen und mit der von dem psycho-akustischen Modell 1020 gelieferten
erlaubten Störung
zu vergleichen. Ferner werden die Skalenfaktoren von Iteration zu
Iteration um eine Stufe vergrößert, und zwar
für jede
Iteration der äußeren Iterationsschleife.
Dann,
wenn eine Situation erreicht ist, bei der die durch die Quantisierung
eingeführte
Quantisierungsstörung
unterhalb der durch das psycho-akustische Modell bestimmten erlaubten
Störung
ist, und wenn gleichzeitig Bitanforderungen erfüllt sind, nämlich, dass eine Maximalbitrate
nicht überschritten
wird, wird die Iteration, also das Analyse-Durch-Synthese-Verfahren beendet, und es werden
die erhaltenen Skalenfaktoren codiert, wie es in dem Block 1014 ausgeführt ist
und in codierter Form dem Bitstromformatierer 1004 zugeführt, wie
es durch den Pfeil gekennzeichnet ist, der zwischen dem Block 1014 und
dem Block 1004 gezeichnet ist. Die quantisierten Werte
werden dann dem Entropie-Codierer 1016 zugeführt, der
typischerweise unter Verwendung mehrerer Huffman-Code-Tabellen für verschiedene
Skalenfaktorbänder
eine Entropie-Codierung durchführt,
um die quantisierten Werte in ein binäres Format zu übertragen.
Wie es bekannt ist, wird bei der Entropie-Codierung in Form der
Huffman-Codierung auf Code-Tabellen zurückgegriffen, die aufgrund einer
erwarteten Signalstatistik erstellt werden, und bei denen häufig auftretende
Werte kürzere
Code-Wörter
bekommen als seltener auftretende Werte. Die entropiecodierten Werte
werden dann ebenfalls als eigentliche Hauptinformationen dem Bitstromformatierer 1004 zugeführt, der
dann gemäß einer
bestimmten Bitstromsyntax ausgangsseitig das codierte Audiosignal
ausgibt.
Die
Datenreduktion von Audiosignalen ist mittlerweile eine bekannte
Technik, die Gegenstand einer Reihe von Internationalen Standards
ist (z.B. ISO/MPEG-1, MPEG-2 AAC, MPEG-4).
Gemeinsam
ist den oben genannten Verfahren, dass das Eingangssignal mittels
eines sogenannten Encoders unter Ausnutzung wahrnehmungsbezogener
Effekte (Psychoakustik, Psychooptik) in eine kompakte, datenreduzierte
Darstellung gebracht wird. Hierzu wird üblicherweise eine Spektralanalyse
des Signals vorgenommen und die entsprechende Signalkomponenten
werden unter Berücksichtigung
eines Wahrnehmungsmodells quantisiert und anschließend in
möglichst
kompakter Weise als sogenannter Bitstrom codiert.
Um
vor der eigentlichen Quantisierung abzuschätzen, wie viele Bits ein bestimmter
zu codierender Abschnitt des Signals benötigen wird, kann die sogenannte
Perceptual Entropy (PE) herangezogen werden. Die PE liefert auch
ein Maß dafür, wie schwierig
es für
den Encoder ist, ein bestimmtes Signal oder Teile davon zu codieren.
Entscheidend
für die
Qualität
der Abschätzung
ist die Abweichung der PE von der Anzahl tatsächlich benötigter Bits.
Ferner
kann die Perceptual Entropy bzw. jeder Schätzwert für einen Bedarf von Informationseinheiten
zum Codieren eines Signals dafür
herangezogen werden, abzuschätzen,
ob das Signal transient oder stationär ist, da transiente Signale
ebenfalls mehr Bits zum Codieren benötigen als eher stationäre Signale.
Die Abschätzung
einer transienten Eigenschaft eines Signal wird beispielsweise dazu
verwendet, um eine Fensterlängenentscheidung,
wie sie um Block 1008 in 3 angedeutet
ist, durchzuführen.
In 6 ist die Perceptual Entropy
berechnet nach ISO/IEC IS 13818-7 (MPEG-2 advanced audio coding
(AAC)) dargestellt. Zu Berechnung dieser Perceptual Entropy, also
einer bandweisen Perceptual Entropy wird die in 6 dargestellte Gleichung verwendet. In
dieser Gleichung steht der Parameter pe für die Perceptual Entropy. Ferner
steht width(b) für
die Anzahl der Spektralkoeffizienten im jeweiligen Band b. Ferner
ist e(b) die Energie des Signals in diesem Band. Schließlich ist
nb(b) die dazu passende Maskierungsschwelle bzw. allgemeiner ausgedrückt, die
erlaubte Störung,
die in das Signal eingebracht werden kann, beispielsweise durch
eine Quantisierung, damit ein menschlicher Hörer dennoch keine oder nur
eine verschwindend geringe Störung
hört.
Die
Bänder
können
von der Bandeinteilung des psychoakustischen Modells (Block 1020 in 3) stammen, oder es handelt
sich um die bei der Quantisierung verwendeten sogenannten Skalenfaktorbänder (scfb).
Die psychoakustische Maskierungsschwelle ist der Energiewert, den
der Quantisierungsfehler nicht überschreiten
sollte.
Die
in 6 gezeigte Abbildung
zeigt somit, wie gut eine so bestimmte Perceptual Entropy ab Abschätzung für die Anzahl
der zur Codierung benötigten
Bits funktioniert. Hierzu wurde am Beispiel eines AAC-Codierers
bei unterschiedlichen Bitraten für
jeden einzelnen Block die jeweilige Perceptual Entropy in Abhängigkeit
von den verbrauchten Bits aufgetra gen. Das verwendete Teststück beinhaltet
eine typische Mischung aus Musik, Sprache und Einzelinstrumenten.
Idealerweise
würden
sich die Punkte entlang einer Geraden durch den Nullpunkt versammeln.
Die Ausdehnung der Punktfolge mit den Abweichungen von der idealen
Linie verdeutlicht die ungenaue Abschätzung.
Nachteilig
an dem in 6 gezeigten
Konzept ist also die Abweichung, die sich dahin gehend äußert, dass
sich z.B. ein zu großer
Wert für
die Perceptual Entropy ergibt, was wiederum bedeutet, dass dem Quantisierer
signalisiert wird, dass mehr Bits als eigentlich erforderlich, benötigt werden.
Dies führt dazu,
dass der Quantisierer zu fein quantisiert, dass er also nicht das
Maß an
erlaubter Störung
ausschöpft,
was in einem reduzierten Codiergewinn resultiert. Andererseits,
wenn der Wert für
die Perceptual Entropy zu klein ermittelt wird, so wird dem Quantisierer
signalisiert, dass weniger Bits als eigentlich erforderlich, zur
Codierung des Signals benötigt
werden. Dies wiederum hat zur Folge, dass der Quantisierer zu grob
quantisiert, was unmittelbar zu einer hörbaren Störung im Signal führen würde, sofern
nicht Gegenmaßnahmen
ergriffen werden. Die Gegenmaßnahmen
können
darin bestehen, dass der Quantisierer noch eine oder mehrere weitere
Iterationsschleifen benötigt,
was die Rechenzeit des Codierers ansteigen lässt.
Zur
Verbesserung der Berechnung der Perceptual Entropy könnte man,
wie es in 7 gezeigt ist,
einen konstanten Term, wie beispielsweise 1,5, in den Logarithmus-Ausdruck
einführen.
Dann ergibt sich bereits ein besseres Ergebnis, also eine geringere
Abweichung nach oben bzw. unten, obgleich dennoch zu sehen ist,
dass bei der Berücksichtigung eines
konstanten Terms im Logarithmus-Ausdruck zwar der Fall reduziert
ist, dass die Perceptual Entropy einen zu optimistischen Bedarf
an Bits signalisiert. Andererseits ist aus 7 jedoch deutlich zu erkennen, dass signifikant
eine zu hohe Anzahl an Bits signalisiert wird, was dazu führt, dass
der Quantisierer immer zu fein quantisieren wird, dass also der
Bitbedarf größer angenommen
wird, als er eigentlich ist, was wiederum in einem reduzierten Codiergewinn
resultiert. Die Konstante in dem Logarithmus-Ausdruck ist eine grobe Abschätzung der
für die
Seiteninformationen benötigten
Bits.
So
liefert das Einfügen
eines Terms in den Logarithmus-Ausdruck
zwar eine Verbesserung der bandweisen Perceptual Entropy, wie es
in 6 dargestellt ist,
da die Bänder
mit sehr geringem Abstand zwischen Energie und Maskierungsschwelle
eher berücksichtigt
werden, da auch für
die Übertragung
von zu Null quantisierten Spektralkoeffizienten eine gewisse Anzahl
von Bits nötig
ist.
Eine
weitere, jedoch sehr Rechenzeit-aufwendige Berechnung der Perceptual
Entropy ist in 8 dargestellt.
In 8 ist der Fall gezeigt,
bei dem die Perceptual Entropy linienweise berechnet wird. Der Nachteil
liegt jedoch in dem höheren
Rechenaufwand der linienweisen Berechnung. Hier werden anstelle
der Energie Spektralkoeffizienten X(k) eingesetzt, wobei kOffset
(b) den ersten Index von Band b bezeichnet. Wenn 8 mit 7 verglichen
wird, so ist deutlich im Bereich zwischen 2000 und 3000 Bit eine
Reduzierung der „Ausschläge" nach oben zu erkennen.
Die PE-Schätzung wird
daher genauer sein, also nicht zu pessimistisch schätzen, sondern
eher am Optimum liegen, so dass der Codiergewinn im Vergleich zu
den in 6 und 7 gezeigten Berechnungsverfahren
ansteigen kann, bzw. die Anzahl der Iterationen im Quantisierer
wird reduziert.
Nachteilig
an der linienweise Berechnung der Perceptual Entropy ist jedoch
die Rechenzeit, die benötigt
wird, um die in 8 gezeigte
Gleichung auszuwerten.
So
spielen solche Rechenzeitennachteile zwar nicht unbedingt eine Rolle,
wenn der Codierer auf einem leistungsstarken PC oder einer leistungsstarken
Workstation läuft.
Ganz anders ist sieht es dagegen aus, wenn der Codierer in einem
tragbaren Gerät,
wie beispielsweise einem UMTS-Handy untergebracht ist, das einerseits
klein und billig sein muss, das andererseits einen niedrigen Strombedarf
haben muss, und das zusätzlich
schnell arbeiten muss, um die Codierung eines über die UMTS-Verbindung übertragenen
Audiosignals oder Videosignals zu ermöglichen.
Die
Fachveröffentlichung „Estimation
of Perceptual Entropy Using Noise Masking Criteria", James D. Johnston,
IEEE 1998, CH 2561-9/88/0000 – 2524,
Seiten 2524 bis 2527, offenbart einen Algorithmus zur Abschätzung der
Perceptual Entropy, bei dem ein Signal gefenstert und in den Frequenzbereich
transformiert wird. Dann wird eine Maskierungsschwelle berechnet,
wonach basierend auf der Maskierungsschwelle die Perceptual Entropy
berechnet wird. Zur Berechnung der Maskierungsschwelle wird zunächst eine
Kritische-Band-Analyse durchgeführt, wobei
das Amplitudenspektrum in ein Leistungsspektrum überführt wird. Dann wird eine bandweise
Summation des Leistungsspektrum durchgeführt, um ein Bark-Spektrum zu
erhalten, das dann in ein gespreiztes Bark-Spektrum überführt wird.
Zur Berechnung der Maskierungsschwelle wird unter Berücksichtigung
der unterschiedlichen Eigenschaften von Tone-Masking-Noise und Noise-Masking-Tone
ein Tonalitätsmaß α des gesamten
Spektrums berechnet, um hieraus einen Offset pro kritischem Band
zu berechnen, der von dem gespreizten Bark-Spektrum subtrahiert
wird, um schließlich
die erlaubte Störung pro
kritischem Band zu erhalten.
Die
Aufgabe der vorliegenden Erfindung besteht darin, ein effizientes
und dennoch genaues Konzept zum Ermitteln eines Schätzwerts
für einen Bedarf
von Informationseinheiten zum Codieren eines Signals zu schaffen.
Diese
Aufgabe wird durch eine Vorrichtung gemäß Patentanspruch 1, ein Verfahren
gemäß Patentanspruch
12 oder ein Computerprogramm nach Patentanspruch 13 gelöst.
Der
vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass an einer
frequenzbandweisen Berechnung des Schätzwerts für einen Bedarf an Informationseinheiten
aus Rechenzeitgründen
festgehalten werden muss, dass jedoch, um eine genaue Ermittlung
des Schätzwerts
zu erhalten, die Verteilung der Energie in dem Frequenzband, das
bandweise zu berechnen ist, berücksichtigt
werden muss.
Damit
wird gewissermaßen
implizit der dem Quantisierer nachfolgende Entropie-Codierer in
die Ermittlung des Schätzwerts
für den
Bedarf von Informationseinheiten „hineingezogen". Die Entropy-Codierung
ermöglicht
es nämlich,
dass zur Übertragung von
kleineren Spektralwerten eine geringere Anzahl an Bits benötigt wird
als zur Übertragung
von größeren Spektralwerten.
Besonders effizient ist der Entropie-Codierer dann, wenn zu-Null-quantisierte
Spektralwerte übertragen
werden können.
Da diese typischerweise am häufigsten
auftreten werden, ist das Codewort zum Übertragen einer zu-Null-quantisierten
Spektrallinie das kürzeste
Codewort, und ist das Codewort zum Übertragen einer immer größeren quantisierten
Spektrallinie immer länger.
Darüber
hinaus kann für
ein besonders effizientes Konzept zum Übertragen einer Folge von zu-Null-quantisierten Spektralwerten
sogar auf eine Lauflängencodierung zurückgegriffen
werden, was zur Folge hat, dass im Falle eines Laufs von Nullen
pro zu-Null-quantisiertem Spektralwert durchschnittlich betrachtet
nicht einmal ein einziges Bit benötigt wird.
Es
wurde herausgefunden, dass die im Stand der Technik verwendete bandweise
Perceptual-Entropy-Berechnung zur Ermittlung des Schätzwerts
für den
Bedarf von Informationseinheiten die Wirkungsweise des nachgeschalteten
Entropie-Codierers
völlig
ignoriert, wenn die Verteilung der Energie in dem Frequenzband von
einer vollständig gleichmäßigen Verteilung
abweicht.
Erfindungsgemäß wird somit
zur Reduktion der Ungenauigkeiten der bandweisen Berechnung berücksichtigt,
wie die Energie innerhalb eines Bandes verteilt ist.
Je
nach Implementierung kann das Maß für die Verteilung der Energie
in dem Frequenzband auf der Basis der tatsächlichen Amplituden ermittelt
werden, oder durch eine Schätzung
der Frequenzlinien, die durch den Quantisierer nicht zu null quantisiert werden.
Dieses Maß,
das auch als „nl" bezeichnet wird,
wobei nl für „number
of active lines",
also für
die Anzahl von aktiven Linien, steht, wird aus Rechenzeit-Effizienzgründen bevorzugt.
Es kann jedoch auch die Anzahl der zu null quantisierten Spektrallinien
oder eine feinere Unterteilung berücksichtigt werden, wobei diese
Schätzung
immer genauer wird, je mehr Informationen des nachgeschalteten Entropie-Codierers
berücksichtigt
werden. Ist der Entropie-Codierer auf der Basis von Huffman-Codetabellen
aufgebaut, so können
Eigenschaften dieser Codetabellen besonders gut integriert werden,
da die Codetabellen nicht aufgrund der Signalstatistik gewissermaßen on-line
berechnet werden, sondern da die Codetabellen unabhängig von
dem tatsächlichen Signal
ohnehin feststehen.
Je
nach Rechenzeit-Einschränkungen
wird jedoch im Falle einer besonders effizienten Berechnung das
Maß für die Verteilung
der Energie in dem Frequenzband durch die Ermittlung der nach der Quantisierung
noch überlebenden
Linien, also der Anzahl von aktiven Linien, durchgeführt.
Die
vorliegende Erfindung ist dahingehend vorteilhaft, dass ein Schätzwert für einen
Bedarf an Informationsinhalten ermittelt wird, der zum einen genauer
und zum anderen effizienter als im Stand der Technik ist.
Darüber hinaus
ist die vorliegende Erfindung für
verschiedene Anwendungen skalierbar, da je nach erwünschter
Genauigkeit des Schätzwerts
immer mehr Eigenschaften des Entropie-Codierers, jedoch zum Preis
einer erhöhten
Rechenzeit, in die Schätzung
des Bitbedarfs mit hereingenommen werden können.
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die
beiliegenden Zeiten detailliert erläutert. Es zeigen:
1 ein
Blockschaltbild der erfindungsgemäßen Vorrichtung zum Ermitteln
eines Schätzwerts;
2a eine
bevorzugte Ausführungsform der
Einrichtung zum Berechnen eines Maßes für die Verteilung der Energie
in dem Frequenzband;
2b eine
bevorzugte Ausführungsform der
Einrichtung zum Berechnen des Schätzwerts für den Bedarf an Bits;
3 ein
Blockschaltbild eines bekannten Audio-Codierers;
4 eine Prinzipdarstellunq zur Erläuterung
des Einflusses der Energieverteilung innerhalb eines Bandes auf
die Ermittlung des Schätzwerts;
5 ein
Diagramm zur Schätzwertberechnung
gemäß der vorliegenden
Erfindung;
6 ein
Diagramm zur Schätzwertberechnung
gemäß ISO/IEC
IS 13818-7(AAC);
7 ein
Diagramm zur Schätzwertberechnung
mit konstantem Term;
8 ein
Diagramm zur linienweisen Schätzwertberechnung
mit konstantem Term.
Nachfolgend
wird bezugnehmend auf 1 die erfindungsgemäße Vorrichtung
zum Ermitteln eines Schätzwerts
für einen
Bedarf von Informationseinheiten zum Codieren eines Signals dargestellt. Das
Signal, das ein Audio- und/oder ein Videosignal sein kann, wird über einen
Eingang 100 eingespeist. Vorzugsweise liegt das Signal
bereits als spektrale Darstellung mit Spektralwerten vor. Dies ist
jedoch nicht unbedingt erforderlich, da durch entsprechende z.B.
Bandpass-Filterung
auch einige Berechnungen mit einem Zeitsignal durchgeführt werden
können.
Das
Signal wird einer Einrichtung 102 zum Liefern eines Maßes für eine erlaubte
Störung
für ein Frequenzband
des Signals zugeführt.
Die erlaubte Störung
kann beispielsweise mittels eines psycho-akustischen Modells, wie
es anhand von 3 (Block 1020) erläutert worden
ist, ermittelt werden. Die Einrichtung 102 ist ferner wirksam,
um auch ein Maß für die Energie
des Signals in dem Frequenzband zu liefern. Voraussetzung für eine bandweise Berechnung
ist, dass ein Frequenzband, für
das eine erlaubte Störung
oder eine Signalenergie angegeben wird, wenigstens zwei oder mehrere
Spektrallinien der spektralen Darstellung des Signals enthält. Bei typischen
standardisierten Audio-Codierern wird das Frequenzband vorzugsweise
ein Skalenfaktorband sein, da die Bitbedarfsschätzung unmittelbar vom Quantisierer
benötigt
wird, um festzustellen, ob eine erfolgte Quantisierung ein Bitkriterium
erfüllt
oder nicht.
Die
Einrichtung 102 ist ausgebildet, um sowohl die erlaubte
Störung
nb(b), als auch die Signalenergie e(b) des Signals in dem Band einer
Einrichtung 104 zum Berechnen des Schätzwerts für den Bedarf an Bits zuzuführen.
Erfindungsgemäß ist die
Einrichtung 104 zum Berechnen des Schätzwerts für den Bedarf von Bits ausgebildet,
um neben der erlaubten Störung und
der Signalenergie ein Maß nl(b)
für eine
Verteilung der Energie in dem Frequenzband zu berücksichtigten,
wobei die Verteilung der Energie in dem Frequenzband von einer vollständig gleichmäßigen Verteilung
abweicht. Das Maß für die Verteilung
der Energie wird in einer Einrichtung 106 berechnet, wobei
die Einrichtung 106 zumindest ein Band, nämlich das
betrachtete Frequenzband des Audio- oder Videosignals entweder als
Bandpass-Signal oder direkt als Folge von Spektrallinien benötigt, um
z.B. eine spektrale Analyse des Bandes durchführen zu können, um das Maß für die Verteilung
der Energien im Frequenzband zu erhalten.
Selbstverständlich kann
das Audio- oder Videosignal der Einrichtung 106 als Zeitsignal
zugeführt
werden, wobei die Einrichtung 106 dann eine Bandfilterung
sowie eine Analyse in dem Band durchführt. Alternativ kann das Audio-
oder Videosignal, das der Einrichtung 106 zugeführt wird,
bereits im Frequenzbereich vorliegen, wie z.B. als MDCT-Koeffizienten, oder
aber auch als Bandpass-Signal in der Filterbank mit einer im Vergleich
zu einer MDCT-Filterbank kleineren Anzahl an Bandpass-Filtern.
Bei
einem bevorzugten Ausführungsbeispiel ist
die Einrichtung 106 zum Berechnen ausgebildet, um zur Berechnung
des Schätzwerts
aktuelle Beträge
von Spektralwerten in dem Frequenzband zu berücksichtigen.
Ferner
kann die Einrichtung zum Berechnen des Maßes für die Verteilung der Energie
ausgebildet sein, um als Maß für die Verteilung
der Energie eine Anzahl von Spektralwerten zu ermitteln, deren Betrag
größer oder
gleich einer vorbestimmten Betragsschwelle sind, oder deren Betrag
kleiner oder gleich der Betragsschwelle ist, wobei die Betragsschwelle vorzugsweise
eine geschätzte
Quantisiererstufe ist, die in einem Quantisierer bewirkt, dass Werte
kleiner oder gleich der Quantisiererstufe zu null quantisiert werden.
In diesem Fall ist das Maß für die Energie
die Anzahl von aktiven Linien, also die Anzahl der Linien, die nach
der Quantisierung überleben.
2a zeigt
ein bevorzugtes Ausführungsbeispiel
für die
Einrichtung 106 zum Berechnen des Maßes für die Verteilung der Energie
in dem Frequenzband. Das Maß für die Verteilung
der Energie in dem Frequenzband ist in 2a mit
l(b) bezeichnet. Der Formfaktor ffac(b) ist bereits ein Maß für die Verteilung
der Energie in dem Frequenzband. Wie es aus Block 106 ersichtlich
ist, wird das Maß für die spektrale
Verteilung nl aus dem Formfaktor ffac(b) durch Gewichtung mit der
4. Wurzel aus der Signalenergie e(b) geteilt durch die Bandbreite
b ermittelt.
Der
Formfaktor ffac(b) errechnet sich durch Betragsbildung einer Spektrallinie
und anschließender
Wurzelbildung dieser Spektrallinie und anschließender Aufsummierung der „gewurzelten" Beträge der Spektrallinien
in dem Band.
2b zeigt
eine bevorzugte Ausführungsform
der Einrichtung 104 zum Berechnen des Schätzwerts
pe, wobei in 2b noch eine Fallunterscheidung
eingeführt
ist, nämlich
dann, wenn der Logarithmus zur Basis 2 des Verhältnisses
aus der Energie zur erlaubten Störung
größer als
ein konstanter Faktor c1 oder gleich dem konstanten Faktor ist.
In diesem Fall wird die in dem Block 104 oben stehende Alternative
genommen, also das Maß für die spektrale
Verteilung nl wird mit dem Logarithmusausdruck multipliziert.
Wird
dagegen festgestellt, dass der Logarithmus zur Basis 2 aus
dem Verhältnis
der Signalenergie zur erlaubten Störung kleiner als der Wert c1
ist, so wird die untere Alternative im Block 104 von 2b verwendet,
die zusätzlich
noch eine additive Konstante c2 sowie eine multiplikative Konstante
c3 aufweist, die sich aus den Konstanten c2 und c1 berechnet.
Nachfolgend
wird anhand von 4a und 4b das
erfindungsgemäße Konzept
dargestellt. So zeigt 4a ein Band, in dem vier Spektrallinien vorhanden
sind, die alle gleich groß sind.
Die Energie in diesem Band ist somit gleichmäßig über das Band verteilt. Dagegen
zeigt 4b eine Situation, bei der die
Energie in dem Band in einer Spektrallinie residiert, während die
anderen drei Spektrallinien gleich null sind. Das in 4b gezeigte
Band könnte
beispielsweise vor der Quantisierung vorliegen, oder könnte nach
der Quantisierung erhalten werden, wenn die in 4b zu
null gesetzten Spektrallinien vor der Quantisierung kleiner als die
erste Quantisiererstufe sind und somit durch den Quantisierer zu null
gesetzt werden, also nicht „überleben".
Die
Anzahl von aktiven Linien in 4b ist somit
gleich 1, wobei der Parameter nl in 4b zu der
Quadratwurzel von 2 berechnet wird. Dagegen wird der Wert nl, also
das Maß für die spektrale
Verteilung der Energie in 4a zu
4 berechnet. Dies bedeutet, dass die spektrale Verteilung der Energie gleichmäßiger ist,
wenn das Maß für die Verteilung der
spektralen Energie größer ist.
Es
sei darauf hingewiesen, dass die bandweise Berechnung der Perceptual
Entropy gemäß dem Stand
der Technik keinen Unterschied zwischen den beiden Fällen feststellt.
Insbesondere wird kein Unterschied festgestellt, wenn in den beiden
Bändern,
die in 4a und 4b gezeigt
sind, dieselbe Energie vorhanden ist.
Offensichtlich
ist jedoch der in 4b gezeigte Fall mit nur einer
relevanten Linie mit weniger Bits codierbar, da die drei zu null
gesetzten Spektrallinien sehr effizient übertragen werden können. Allgemein
gesagt beruht die einfachere Quantisierbarkeit des in 4b gezeigten
Falls auf der Tatsache, dass nach der Quantisierung und verlustlosen
Codierung kleinere Werte und insbesondere zu null quantisierte Werte
weniger Bits zur Übertragung
benötigen.
Erfindungsgemäß wird somit
berücksichtigt, wie
die Energie innerhalb des Bands verteilt ist. Dies erfolgt, wie
es ausgeführt
worden ist, durch Ersetzen der Anzahl der Linien pro Band in der
bekannten Gleichung (6) durch eine Abschätzung der
Anzahl der Linien, die nach der Quantisierung ungleich null sind.
Diese Abschätzung
ist in 2a gezeigt.
Ferner
sei darauf hingewiesen, dass der in 2a gezeigte
Formfaktor auch an anderer Stelle im Codierer benötigt wird,
beispielsweise innerhalb des Quantisierungsblocks 1014 zur
Bestimmung der Quantisierungs-Schrittweite. Dann, wenn der Formfaktor
bereits an anderer Stelle berechnet wird, muß er zur Bit-Abschätzung nicht
erneut berechnet werden, so dass das erfindungsgemäße Konzept
zur verbesserten Abschätzung
des Maßes
für die
benötigten
Bits mit einem Minimum an zusätzlichem
Rechenaufwand auskommt.
Wie
es bereits ausgeführt
worden ist, handelt es sich bei X(k) um den später zu quantisierenden Spektralkoeffizienten,
während
die Variable kOffset(b) den ersten Index im Band b bezeichnet.
Wie
es aus 4a und 4b ersichtlich
ist, ergibt das Spektrum in 4a einen
Wert nl=4, während
das Spektrum in 4b einen Wert von 1,41 ergibt.
Mit Hilfe des Formfaktors steht somit ein Maß für die Charakterisierung der
spektralen Feldstruktur innerhalb des Bandes zur Verfügung.
Die
neue Formel zur Berechnung einer verbesserten bandweisen Perceptual
Entropie basiert somit auf der Multiplikation des Maßes für die spektrale
Verteilung der Energie und des Logarithmus-Ausdrucks, indem die
Signalenergie e(b) im Zähler
und die erlaubte Störung
im Nenner auftreten, wobei je nach Bedarf ein Term innerhalb des
Logarithmus eingesetzt werden kann, wie es bereits in 7 dargestellt
ist. Diese Term kann beispielsweise ebenfalls 1,5 sein, kann jedoch
auch gleich null sein, wie in dem in 2b gezeigten
Fall, wobei dies z. B. empirisch bestimmt werden kann.
An
dieser Stelle sei nochmals auf 5 hingewiesen,
aus der die erfindungsgemäß berechnete Perceptual
Entropie ersichtlich ist, und zwar aufgetragen über den benötigten Bits. Eine höhere Genauigkeit
der Abschätzung
gegenüber
den Vergleichsbeispielen in den 6, 7 und 8 ist
deutlich zu erkennen. Auch gegenüber
der linienweisen Berechnung schneidet die erfindungsgemäße modifizierte
bandweise Berechnung zumindest gleichwertig ab.
Abhängig von
der Gegebenheit, kann das erfindungsgemäße Verfahren in Hardware oder
in Software implementiert werden. Die Implementierung kann auf einem
digitalen Speichermedium, insbesondere einer Diskette oder CD mit
elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem
programmierbaren Computersystem zusammenwirken können, dass das Verfahren ausgeführt wird.
Allgemein besteht die Erfindung somit auch in einem Computer-Programm-Produkt
mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode
zur Durchführung
des erfindungsgemäßen Verfahrens,
wenn das Computer-Programm-Produkt auf einem Rechner abläuft. In
anderen Worten ausgedrückt,
kann die Erfindung somit als ein Computer-Programm mit einem Programmcode
zur Durchführung
des Verfahrens realisiert werden, wenn das Computer-Programm auf
einem Computer abläuft.