-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf Audiocodierung und -decodierung
und insbesondere auf ein skalierbares Audiocodier- und Audiodecodierverfahren
mittels arithmetischer Bitscheibencodierung und eine Vorrichtung
dazu. Die vorliegende Erfindung wird als ISO/IEC JTC1/SC29/WG11
N1903 (ISO/IEC Komitee Entwurf 14496-3 Unterteil 4) übernommen.
-
2. Beschreibung des Standes
der Technik
-
Die
MPEG-Rudiostandards oder AC-2/AC-3-Verfahren gewährleisten fast die gleiche
Audioqualität wie
eine Compakt Disk, bei einer Bitrate von 64–384 kbps, die 1/6 bis 1/8
von der von herkömmlicher
Digitalcodierung ist. Aus diesem Grund spielen MPEG-Audiostandards
eine wichtige Rolle beim Speichern und Übertragen von Audiosignalen,
wie bei Digital Audio Broadcasting (DAB), Internettelefonie oder
Audio On Demand (AOD).
-
Forschung über Verfahren,
bei denen klare Audioqualität
beim ursprünglichen
Klang zu einer geringeren Bitrate wiederhergestellt werden kann,
läuft bereits.
Ein Verfahren ist ein MPEG-2 Advanced Audio Coding (AAC), das als
neuer internationaler Standard eingesetzt wurde. Das MPEG-2 AAC,
das zu 64 kbps die klare Audioqualität zum ursprünglichen Klang gewährleistet,
wurde von der Expertengruppe empfohlen.
-
Bei
herkömmlichen
Techniken wird in einer Codiereinrichtung eine feste Bitrate vorgegeben,
und der für
die gegebene Bitrate geeignete optimale Zustand wird gesucht, um
dann Quantisierung und Codierung durchzuführen, wodurch sich eine beträchtlich
bessere Effizienz zeigt. Durch das Aufkommen der Multimediatechnologie
besteht jedoch ein steigender Bedarf an Codierungs-/Decodierungs-Einrichtungen
(Codec) mit Anpassungsfähigkeit
an eine geringe Bitrate. Ein solcher Bedarf besteht an einem skalierbaren
Audio-Codec. Der
skalierbare Audio-Codec kann aus bei einer hohen Bitrate codierten
Bitstreams Bitstreams niedriger Bitrate machen, um dann nur einige
von ihnen wiederherzustellen. Indem das getan wird, können Signale
mit nur einigen der Bitstreams mit einer vernünftigen Effizienz wiederhergestellt
werden, was eine geringe Beeinträchtigung
in der Leistungsfähigkeit
aufgrund von verringerten Bitraten mit sich bringt, wenn das System überlastet ist
oder die Leistungsfähigkeit
einer Decodiereinrichtung gering ist oder durch die Anfrage eines
Benutzers.
-
Gemäß allgemeinen
Audiocodiertechniken wie den MPEG-2-AAC-Standards wird einer Codiervorrichtung
eine feste Bitrate vorgegeben, der optimale Zustand einem skalierbaren
Audio-Codec. Der skalierbare Audio-Codec kann aus bei einer hohen
Bitrate codierten Bitstreams Bitstreams niedriger Bitrate machen,
um dann nur einige von ihnen wiederherzustellen. Indem das getan
wird, können
Signale mit nur einigen der Bitstreams mit einer vernünftigen
Effizienz wiederhergestellt werden, was eine geringe Beeinträchtigung
in der Leistungsfähigkeit
aufgrund von verringerten Bitraten mit sich bringt, wenn das System überlastet
ist oder die Leistungsfähigkeit
einer Decodiereinrichtung gering ist oder durch die Anfrage eines
Benutzers.
-
Gemäß allgemeinen
Audiocodiertechniken wie den MPEG-2-AAC-Standards wird einer Codiervorrichtung
eine feste Bitrate vorgegeben, der optimale Zustand für die vorgegebene
Bitrate wird gesucht, um dann Quantisierung und Codierung durchzuführen, wodurch
Bitstreams in Übereinstimmung
mit der Bitrate gebildet werden. Ein Bitstream enthält Informationen
für eine
Bitrate. In anderen Worten sind Bitrateninformationen im Kopf eines
Bitstreams enthalten, und eine feste Bitrate wird verwendet. Daher
kann ein Verfahren verwendet werden, das die beste Effizienz zu
einer spezifischen Bitrate zeigt. Wenn zum Beispiel ein Bitstream
von einer Codierungseinrichtung zu einer Bitrate von 64 kbps gebildet
wird, kann der Klang bester Qualität von einer Decodiereinrichtung
wiederhergestellt werden, die einer Codiereinrichtung mit einer
Bitrate von 64 kbps entspricht.
-
Gemäß solchen
Verfahren werden Bitstreams gebildet, ohne andere Bitraten in Betracht
zu ziehen, allerdings werden Bitstreams mit einer geeigneten Größe für eine vorgegebene
Bitrate, anstelle der Ordnung der Bitstreams, gebildet. Wenn die
so gebildeten Bitstreams tatsächlich über ein
Kommunikationsnetzwerk übertragen
werden, werden die Bitstreams in einige Slots geschnitten, die dann übertragen
werden sollen. Wenn ein Übertragungskanal überlastet
wird oder nur einige der von einem Übertragungsende gesendeten Slots
aufgrund einer engen Bandbreite des Übertragungskanals an einem
Empfangsende empfangen werden, können
die Daten nicht richtig wiederhergestellt werden. Da die Bitstreams
nicht gemäß ihrer
Signifikanz gebildet werden, wenn nur einige der Bitstreams wiederhergestellt
werden, wird auch die Qualität
schwer beeinträchtigt.
Aufgrund der wiederhergestellten Audiodaten wird der Klang im Ohr
als störend
wahrgenommen.
-
Im
Falle eines skalierbaren Audio-Codecs zum Lösen der oben beschriebenen
Probleme wird die Codierung für
eine Basisschicht durchgeführt
und dann in der nächsten
Verstärkungsschicht
ein Differenzsignal zwischen dem ursprünglichen Signal und dem codierten
Signal codiert (K. Brandenburg. Et al., "First Ideas on Scalable Audio Coding", 97. AES-Conventional,
Preprint 3924, San Francisco, 1994) und (K. Brandenburg, et al., "A Two- or Three-Stage
Bit Rate Scalable Audio Coding System", 99. AES-Convention, Preprint 4132,
New York, 1995). Je mehr Schichten es daher gibt, desto geringer
ist die Leistungsfähigkeit
bei einer hohen Bitrate. Im Falle der Verwendung einer skalierbaren
Codiervorrichtung wird zunächst
ein Signal mit einer guten Audioqualität wiederhergestellt. Wenn sich
jedoch der Zustand der Kommunikationskanäle verschlechtert oder die dem
Decoder eines Empfangsterminals auferlegte Belastung erhöht wird,
wird Klang mit geringer Bitratenqualität wiederhergestellt. Daher
ist das zuvor erwähnte
Codierverfahren in der Praxis nicht zum Erreichen von Skalierbarkeit
geeignet.
-
S.
H. Park et al. diskutieren einen skalierbaren Audio-Codec in "Multi-Layer Bit-Sliced
Bit-Rate Scalable Audio Coding",
103. AES Convention: Audio Engineering Society Preprint.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Um
die obigen Probleme zu lösen,
ist es eine Aufgabe der vorliegenden Erfindung, ein skalierbares Codierverfahren
für digitale
Audiodaten, eine Vorrichtung dazu und ein Speichermedium zum Speichern
des Codierverfahrens zur Verfügung
zu stel len, wobei diese eine arithmetische Bitscheibencodiertechnik
(BSAC) anstelle eines verlustlosen Codiermoduls verwenden, wobei
alle anderen Module des herkömmlichen
Codierers unverändert
bleiben.
-
Es
ist eine weitere Aufgabe der vorliegenden Erfindung, ein skalierbares
Decodierverfahren für
digitale Audiodaten, eine Vorrichtung dazu und ein Speichermedium
zum Speichern des Decodierverfahrens zur Verfügung zu stellen, wobei diese
eine arithmetische Bitscheibencodiertechnik (BSAC) anstelle eines
verlustlosen Codiermoduls verwenden, wobei alle anderen Module des
herkömmlichen
Audiodecoders unverändert
bleiben.
-
Um
das erste Ziel der vorliegenden Erfindung zu erreichen, wird ein
skalierbares Audiocodierverfahren zum Codieren von Audiosignalen
in einen geschichteten Datenstrom mit einer Basisschicht und Verstärkungsschichten
einer vorgegebenen Anzahl zur Verfügung gestellt, welches die
folgenden Schritte umfasst: Signalverarbeitung von Eingabeaudiosignalen
und Quantisierung derselben für
jedes vorgegebene Codierband, sowie Packung der quantisierten Daten,
um Bitstreams zu erzeugen, wobei das Erzeugen von Bitstreams umfasst:
Codieren der der Basisschicht entsprechenden quantisierten Daten,
Codieren der der nächsten
Verstärkungsschicht
von der codierten Basisschicht entsprechenden quantisierten Daten,
Codieren der übrigen
quantisierten Daten, die aufgrund einer Schichtgrößengrenze
uncodiert sind und zur codierten Schicht gehören, sowie Ausführen der
Schichtcodierschritte der Reihe nach für alle Verstärkungsschichten,
um Bitstreams zu bilden, wobei das Codieren der Basisschicht, das
Codieren der Verstärkungsschicht
und das Codieren der Reihe nach so ausgeführt werden, dass einer zu codierenden
Schicht entsprechende Seiteninformationen und quantisierte Daten
durch Ziffern einer übereinstimmenden
vorgegebenen Anzahl repräsentiert
und in der Reihenfolge von den MSB-Folgen zu den LSB-Folgen codiert
werden, wobei das Verfahren durch die folgenden Schritte gekennzeichnet
ist: a rithmetisches Codieren der Nebeninformationen und quantisierten
Daten mittels eines vorgegebenen Wahrscheinlichkeitsmodells, wobei
die Nebeninformationen Skalierungsfaktoren und Wahrscheinlichkeitsmodelle
enthalten, die beim arithmetischen Codieren verwendet werden sollen.
-
Das
Codieren der Skalierungsfaktoren umfasst die folgenden Schritte:
Erhalten des maximalen Skalierungsfaktors und Erhalten von Differenzen
zwischen dem maximalen Skalierungsfaktor und den jeweiligen Skalierungsfaktoren
sowie arithmetisches Codieren der Differenzen.
-
Wenn
sich die quantisierten Daten aus Vorzeichendaten und Größendaten
zusammensetzen, umfasst das Codieren die folgenden Schritte: mittels
eines vorgegebenen Codierverfahrens Codieren der signifikantesten
Bitfolgen, die sich aus den signifikantesten Bits der Größendaten
der durch dieselbe Anzahl von Bits repräsentierten quantisierten Daten
zusammensetzen; Codieren von Vorzeichendaten, die den nicht-verschwindenden
Daten unter den codierten signifikantesten Bitfolgen entsprechen;
Codieren der signifikantesten Bitfolgen unter den uncodierten Größendaten
der digitalen Daten mittels eines vorgegebenen Codierverfahrens; Codieren
von uncodierten Vorzeichendaten unter den Vorzeichendaten, die den
nicht-verschwindenden Größendaten unter den Bitfolgen entsprechen, sowie
Ausführen
des Codierens der Größendaten
und des Codierens der Vorzeichendaten bei den jeweiligen Bits der
digitalen Daten.
-
Die
Codierschritte werden ausgeführt,
indem Bits, die die jeweiligen Bitfolgen für die Größendaten und Vorzeichendaten
bilden, zu Einheiten von Bits einer vorgegebenen Anzahl verbunden
werden.
-
Ein
zu Biteinheiten verbundener vierdimensionaler Vektor wird in zwei
Subvektoren entsprechend seiner Vorzustände beim Codieren der entsprechenden
Samples aufgeteilt.
-
Die
Bitrate der Basisschicht beträgt
16 kbps und die Zwischenschichtenbitrate beträgt 8 kbps.
-
Um
das zweite Ziel der vorliegenden Erfindung zu erreichen, wird eine
skalierbare Audiocodiervorrichtung zur Verfügung gestellt, die umfasst:
einen Quantisierungsabschnitt 230 zur Signalverarbeitung
von Eingabeaudiosignalen und zum Quantisieren derselben für jedes
Codierband sowie einen Bitpackungsabschnitt 240 zum Erzeugen
von Bitstreams durch Bandbegrenzung für eine Basisschicht, um Skalierbarkeit
zu erreichen, zum Codieren von der Basisschicht entsprechenden Nebeninformationen,
zum Codieren der quantisierten Informationen der Reihe nach von
der signifikantesten Bitfolge zur am wenigsten signifikanten Bitfolge
und von Komponenten niedrigerer Frequenz zu Komponenten höherer Frequenz
sowie zum Codieren von der nächsten
Verstärkungsschicht
von der Basisschicht entsprechenden Nebeninformationen und den quantisierten
Daten, um Codierung auf allen Schichten durchzuführen, wobei die Vorrichtung
dadurch gekennzeichnet ist, dass die Nebeninformationen und die
quantisierten Informationen mittels eines vorgegebenen Wahrscheinlichkeitsmodells
arithmetisch codiert werden und dass die Nebeninformationen Skalierungsfaktoren
und Wahrscheinlichkeitsmodelle enthalten, die beim arithmetischen
Codieren verwendet werden sollen.
-
Der
Quantisierungsabschnitt umfasst: einen Zeit-/Frequenz-Abbildungsabschnitt
zum Umwandeln der Eingabeaudiosignale eines Zeitbereichs in Signale
eines Frequenzbereichs, einen psychoakustischen Abschnitt zum Verbinden
der umgewandelten Signale mit Signalen vorgegebener Unterbänder durch
Zeit-/Frequenz-Abbildung
und Berechnen eines Maskenschwellenwerts zu jedem Unterband mittels
eines Maskenphänomens,
das durch das Zusammenspiel der jeweiligen Signale erzeugt wird,
sowie einen Quantisierungsabschnitt zum Quantisieren der Signale
für jedes
vorgegebene Codierband, während
das Quantisierungsrau schen jedes Bandes mit dem Maskenschwellenwert
verglichen wird.
-
Um
das dritte Ziel der vorliegenden Erfindung zu erreichen, wird ein
skalierbares Audiodecodierverfahren zum Decodieren von Audiodaten,
die so codiert sind, dass sie geschichtete Bitraten aufweisen, zur
Verfügung
gestellt, welches die folgenden Schritte umfasst: Decodieren von
Nebeninformationen in der Reihenfolge der Erzeugung der Schichten
in Datenströmen
mit geschichteten Bitraten; Wiedergewinnen der decodierten Skalierungsfaktoren
und quantisierten Daten in Signale mit den ursprünglichen Größen sowie Umwandeln invers
quantisierter Signale in Signale eines Zeitbereichs, wobei das Verfahren
dadurch gekennzeichnet ist, dass die Nebeninformationen zumindest
Skalierungsfaktoren und Informationen über Wahrscheinlichkeitsmodelle
enthalten, die jedem zu verwendenden Band zugeteilt sind, wenn Nebeninformationen
und quantisierte Daten decodiert werden, wobei die Nebeninformationen
und quantisierten Daten mittels eines vorgegebenen Wahrscheinlichkeitsmodells
arithmetisch codiert wurden, wobei die Decodierung durch das Analysieren
der Signifikanz der die Datenströme
bildenden Bits, von den signifikanteren Bits zu den weniger signifikanten
Bits, mittels der den quantisierten Daten entsprechenden arithmetischen
Codiermodellen durchgeführt
wird.
-
Die
Decodierung der Skalierungsfaktoren wird durch die folgenden Schritte
ausgeführt:
Decodieren des maximalen Skalierungsfaktors im Bitstream, arithmetisches
Decodieren von Differenzen zwischen dem maximalen Skalierungsfaktor
und den jeweiligen Skalierungsfaktoren sowie Subtrahieren der Differenzen
vom maximalen Skalierungsfaktor.
-
Ebenfalls
wird eine skalierbare Audiodecodiervorrichtung zur Verfügung gestellt,
die umfasst: einen Analyseabschnitt 400 für Bitstreams
zum Decodieren von Nebeninformationen und quantisierten Daten, in
der Reihenfolge der Erzeugung der Schich ten in den geschichteten
Bitstreams, einen inversen Quantisierungsabschnitt 410 zum
Wiedergewinnen der decodierten Skalierungsfaktoren und der quantisierten
Daten in Signale mit den ursprünglichen
Größen sowie
einen Zeit-/Frequenz-Abbildungsabschnitt 420 zum Umwandeln
von invers quantisierten Signalen eines Frequenzbereichs in Signale
eines Zeitbereichs, wobei die Vorrichtung dadurch gekennzeichnet
ist, dass die Nebeninformationen zumindest Skalierungsfaktoren und
Wahrscheinlichkeitsmodelle enthalten, die beim Decodieren der Nebeninformationen
und quantisierten Daten verwendet werden sollen, wobei die Nebeninformationen
und quantisierten Daten mittels eines vorgegebenen Wahrscheinlichkeitsmodells
arithmetisch codiert wurden.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Die
obigen Ziele und Vorteile der vorliegenden Erfindung werden durch
die detaillierte Beschreibung eines bevorzugten Ausführungsbeispiels
davon unter Bezugnahme auf die beigefügten Zeichnungen ersichtlicher,
in denen:
-
1 ein
Blockdiagramm einer einfachen skalierbaren Codier-/ Decodier-Vorrichtung
(Codec) ist;
-
2 ein
Blockdiagramm einer Codiervorrichtung gemäß der vorliegenden Erfindung
ist;
-
3 die
Struktur eines Bitstreams gemäß der vorliegenden
Erfindung zeigt;
-
4 ein
Blockdiagramm einer Decodiervorrichtung gemäß der vorliegenden Erfindung
ist;
-
5 die
Anordnung von Frequenzkomponenten für einen langen Block (Fenstergröße = 2048)
darstellt; und
-
6 die
Anordnung von Frequenzkomponenten für einen kurzen Block (Fenstergröße = 2048)
darstellt.
-
BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
-
Hier
werden bevorzugte Ausführungsbeispiele
der vorliegenden Erfindung detailliert unter Bezugnahme auf die
begleitenden Zeichnungen beschrieben.
-
Bei
der vorliegenden Erfindung gebildete Bitstreams setzen sich nicht
aus einer einzelnen Bitrate sondern aus verschiedenen auf einer
Basisschicht basierenden Verstärkungsschichten
zusammen. Die vorliegende Erfindung weist eine gute Codierungseffizienz
auf, das heißt,
dass wie bei den herkömmlichen
Codierungstechniken die größte Leistungsfähigkeit
bei einer festen Bitrate zu Tage tritt, und sie bezieht sich auf
ein Codier-/Decodier-Verfahren und eine Vorrichtung dazu, bei denen
die für
das Aufkommen der Multimediatechnologie geeignete codierte Bitrate
wiederhergestellt wird.
-
2 ist
ein Blockdiagramm einer skalierbaren Audiocodiervorrichtung gemäß der vorliegenden
Erfindung, die vor allem einen Quantisierungsprozessor 230 und
einen Bitpackungsabschnitt 240 enthält.
-
Der
Quantisierungsprozessor 230 für die Signalverarbeitung von
Eingabeaudiosignalen und für
die Quantisierung derselben für
ein vorgegebenes Codierband enthält
einen Zeit-/Frequenz-Abbildungsabschnitt 200,
einen psychoakustischen Abschnitt 210 und einen Quantisierungsabschnitt 220.
Der Zeit-/Frequenz-Abbildungsabschnitt 200 wandelt
die Eingabeaudiosignale eines Zeitbereichs in Signale eines Frequenzbereichs um.
Eine vom menschlichen Ohr wahrgenommene Differenz zwischen Signalcharakteristiken
ist zeitlich nicht sehr groß.
Allerdings tritt gemäß den menschlichen
psychoakustischen Modellen eine große Differenz für jedes Band
auf. Daher kann die Kompressionseffizienz verstärkt werden, indem in Abhängigkeit
von Frequenzbändern
verschiedene Quantisierungsbits zugeteilt werden.
-
Der
psychoakustische Abschnitt 210 verbindet die umgewandelten
Signale mit Signalen von vorgegebenen Subbändern mittels des Zeit-/Frequenz-Abbildungsabschnitts 200 und
berechnet einen Maskenschwellenwert zu jedem Subband mittels eines
durch das Zusammenspiel mit den jeweiligen Signalen erzeugten Maskenphänomens.
Das Maskenphänomen
ist ein Phänomen,
bei dem ein Audiosignal (Klang) aufgrund eines anderen Signals nicht
hörbar
ist. Wenn zum Beispiel ein Zug durch einen Bahnhof fährt, kann
eine Person aufgrund des durch den Zug verursachten Geräusches während einer
leisen Unterhaltung die Stimme seines oder ihres Partners nicht
hören.
-
Der
Quantisierungsabschnitt 220 quantisiert die Signale für jedes
vorgegebene Codierband, sodass das Quantisierungsrauschen jedes
Bandes kleiner wird als der Maskenschwellenwert. In anderen Worten
werden die Frequenzsignale jedes Bandes skalarer Quantisierung unterworfen,
sodass die Größe des Quantisierungsrauschens
jedes Bandes kleiner ist als der Maskenschwellenwert, um dadurch
nicht wahrnehmbar zu sein. Die Quantisierung wird so ausgeführt, dass
der NMR-Wert (Noise-to-Mask Ratio), der das Verhältnis des durch den psychoakustischen
Abschnitts 210 berechneten Maskenschwellenwerts zu dem
für jedes
Band erzeugten Rauschen ist, kleiner oder gleich 0 dB ist. Ein NMR-Wert
kleiner oder gleich 0 dB bedeutet, dass der Maskenschwellenwert
größer als
das Quantisierungsrauschen ist. In anderen Worten ist das Quantisierungsrauschen
nicht hörbar.
-
Der
Bitpackungsabschnitt 240 codiert Nebeninformationen und
die quantisierten Daten, die einer Basisschicht mit der geringsten
Bitrate entsprechen, codiert sukzessive Nebeninformationen und die
quantisierten Daten, die der nächsten
Verstärkungsschicht
zur Basisschicht entsprechen, und führt diese Prozedur für alle Schichten
aus, um Bitstreams zu erzeugen. Hier enthalten die Nebeninformationen
Skalierungsfaktoren und Wahrscheinlichkeitsmodellinformationen,
die beim arithmetischen Codieren verwendet werden sollen. Das Codieren
der quan tisierten Daten der jeweiligen Schichten wird durch das
Schneiden aller quantisierten Daten in Einheiten von Bits durch
die Repräsentation
der quantisierten Daten als aus Bits einer vorgegebenen gleichen
Anzahl zusammengesetzte binäre
Daten sowie durch das Codieren der bitgeschnittenen Daten mittels
eines vorgegebenen Wahrscheinlichkeitsmodells der Reihe nach von
der signifikantesten Bitfolge zur am wenigsten signifikanten Bitfolge
ausgeführt.
Wenn sich die digitalen Daten aus Vorzeichendaten und Größendaten
zusammensetzen, sammelt der Bitpackungsabschnitt 240 alle
Größendaten
für die
Bits mit derselben Signifikanzstufe unter den bitgeschnittenen Daten,
codiert die Größendaten
und codiert dann die uncodierten Vorzeichendaten unter den Vorzeichendaten,
die den nichtverschwindenden Größendaten
unter den codierten Größendaten
entsprechen. Die Codierungsprozedur für die Vorzeichendaten und die
Größendaten
wird hier der Reihe nach von den MSBs zu den unteren signifikanten
Bits ausgeführt.
-
Die
durch die Codiervorrichtung mit dem zuvor erwähnten Aufbau gebildeten Bitstreams
weisen eine geschichtete Struktur auf, bei der die Bitstreams von
Schichten niedrigerer Bitrate in denen von Schichten höherer Bitrate
wie in 3 gezeigt enthalten sind. Herkömmlicherweise werden Nebeninformationen
zuerst codiert, und dann werden die übrigen Informationen codiert,
um Bitstreams zu bilden. Bei der vorliegenden Erfindung werden jedoch
wie in 3 gezeigt die Nebeninformationen für jede Verstärkungsschicht
getrennt codiert. Außerdem
werden bei der vorliegenden Erfindung, obwohl alle quantisierten
Daten der Reihe nach in herkömmlicher
Weise in Einheiten von Samples codiert werden, quantisierte Daten
durch binäre
Daten dargestellt und von der MSB-Folge der binären Daten an codiert, um Bitstreams
innerhalb der zugewiesenen Bits zu bilden.
-
Nun
wird die Arbeitsweise der Codiervorrichtung beschrieben. Eingabeaudiosignale
werden codiert und als Bitstreams erzeugt. Zu diesem Zweck werden
die Eingabesignale in Signale eines Frequenzbereichs über die
MDCT (modifizierte diskrete Cosinus-Transformation) im Zeit-/Frequenz-Abbildungsabschnitt 200 umgewandelt.
Der psychoakustische Abschnitt 210 verbindet die Frequenzsignale
mit geeigneten Subbändern,
um einen Maskenschwellenwert zu erhalten.
-
Der
Quantisierungsabschnitt 220 führt skalare Quantisierung aus,
sodass die Größe des Quantisierungsrauschens
von jedem Skalierungsfaktorband kleiner ist als der Maskenschwellenwert,
der hörbar,
aber innerhalb der zugewiesenen Bits nicht wahrnehmbar ist. Wenn
eine solche Bedingungen erfüllende
Quantisierung ausgeführt
wird, werden Skalierungsfaktoren für die jeweiligen Skalierungsfaktorbänder und
quantisierte Frequenzwerte erzeugt.
-
Im
Allgemeinen können
einander nahe Frequenzkomponenten in Anbetracht der menschlichen
Psychoakustik leicht bei einer niedrigeren Frequenz wahrgenommen
werden. Wenn die Frequenz jedoch steigt, wird das Intervall wahrnehmbarer
Frequenzen weiter. Die Bandbreiten der Skalierungsfaktorbänder steigen, wenn
die Frequenzbänder
höher werden.
Um jedoch Codieren zu ermöglichen,
werden Skalierungsfaktorbänder,
deren Bandbreite nicht konstant ist, nicht zum Codieren verwendet,
sondern Codierungsbänder,
deren Bandbreite konstant ist, werden stattdessen verwendet. Die
Codierungsbänder
enthalten 32 quantisierte Frequenzkoeffizientenwerte.
-
1. Codieren
von Skalierungsfaktoren
-
Zum
Codieren von Skalierungsfaktoren wird ein arithmetisches Codierungsverfahren
verwendet. Zu diesem Zweck wird zuerst der maximale Skalierungsfaktor
(max scalefactor) erhalten. Dann werden die Differenzen zwischen
den jeweiligen Skalierungsfaktoren und dem maximalen Skalierungsfaktor
erhalten und dann arithmetisch codiert. Vier Modelle werden beim
arithmetischen Codieren der Differenzen zwischen Skalierungsfaktoren
verwendet. Die vier Modelle werden in den Tabellen 5.1 bis 5.4 ge zeigt.
Die Informationen für die
Modelle werden in scalefactor model gespeichert. [Tabelle
5.1] Arithmetisches Modell 1 für
Differenzenskalierungsfaktoren
[Tabelle
5.2] Arithmetisches Modell 2 für
Differenzenskalierungsfaktoren
[Tabelle
5.3] Arithmetisches Modell 3 für
Differenzenskalierungsfaktoren
[Tabelle
5.4] Arithmetisches Modell 4 für
Differenzenskalierungsfaktoren
-
2. Codieren des Indexes
des arithmetischen Codierungsmodells
-
Jedes
Codierungsband enthält
32 Frequenzkomponenten. Die 32 quantisierten Frequenzkoeffizienten werden
arithmetisch codiert. Dann wird ein Modell, das für das arithmetische
Codieren verwendet werden soll, für jedes Codierungsband bestimmt,
und die Informationen werden in dem Index des arithmetischen Codierungsmodells
(ArModell) gespeichert. Um das ArModell zu komprimieren, wird ein
arithmetisches Codierverfahren verwendet. Zu diesem Zweck wird zuerst
der minimale ArModell-Index (min ArModel) erhalten. Darauf werden
die Differenzen zwischen den jeweiligen ArModell-Indizes und dem
minimalen ArModell-Index
erhalten, und dann werden die Differenzen arithmetisch codiert.
Vier Modelle werden hier für
das arithmetische Codieren der Differenzen verwendet. Die vier Modelle
werden in Tabellen 5.5 bis 5.8 demonstriert. Die Informationen für das beim
arithmetischen Codieren verwendete Modell werden in ArModel model
gespeichert. [Tabelle
5.5] Arithmetisches Modell 1 für
ArModell-Differenzen

[Tabelle
5.6] Arithmetisches Modell 2 für
ArModell-Differenzen
[Tabelle
5.7] Arithmetisches Modell 3 für
ArModell-Differenzen
[Tabelle
5.8] Arithmetisches Modell 4 für
ArModell-Differenzen
-
1.3 Bitgeschnittenes Codieren
quantisierter Frequenzkomponenten
-
Im
Allgemeinen ist die Signifikanz des MSB (most significant bit) bei
weitem größer als
die des LSB (least significant bit). Gemäß dem herkömmlichen Verfahren wird das
Codieren jedoch ohne Beachtung der Signifikanz ausgeführt. Daher
sind, wenn nur einige Bitstreams der unter allen Bitstreams führenden
Bitstreams verwendet werden sollen, die Informationen, die weniger
wichtig als die in den unbenutzten verzögerten Bitstreams enthaltenen
Informationen sind, in beträchtlichem
Umfang in den führenden
Bitstreams enthalten.
-
Aus
dem vorhergehenden Grund werden bei der vorliegenden Erfindung quantisierte
Signale der jeweiligen Bänder
der Reihe nach von den MSBs zu den LSBs codiert. In anderen Worten
werden die jeweiligen quantisierten Signale in Binärnotation
repräsentiert,
und die quantisierten Werte der jeweiligen Frequenzkomponenten werden
der Reihenfolge nach in Biteinheiten verarbeitet, von Komponenten
niedriger Frequenz zu Komponenten höherer Frequenz. Zuerst werden
die MSBs der jeweiligen Frequenzkomponenten erhalten, und dann werden
die nächsthöheren signifikanten
Bits der Reihe nach bitweise bis zu den LSBs codiert. Auf diese
Weise werden wichtigere Informationen zuerst codiert, sodass Bitstreams
von Anfang an erzeugt werden.
-
Die
Vorzeichenwerte der quantisierten Werte werden getrennt gespeichert,
und ihre absoluten Werte werden genommen, um als positive Werte
repräsentierte
Daten zu erhalten. Die quantisierten Frequenzdaten werden in Biteinheiten
geschnitten und dann der Reihe nach vom MSB zum LSB angeordnet.
Die bitgeschnittenen Daten werden durch vierdimensionale Vektoren
rekonstruiert. Nun wird angenommen, dass 8 quantisierte Werte, die
jeweils 4 Bits aufweisen, wie folgt in Binärnotation dargestellt werden:
-
Herkömmlicherweise
wird 1001 der Komponente niedrigster Frequenz zuerst codiert und
dann werden 1000, 0101, 0010 der Reihe nach codiert (das heißt, horizontal
für jede
Frequenzkomponente). Gemäß der vorliegenden
Erfindung werden jedoch 1, die aus den MSB der Komponente niedrigster
Frequenz zusammengesetzten MSB-Folgen, sowie 0, 1, 0, 0, ..., die
MSBs der anderen Frequenzkomponenten, erhalten und dann der Reihe
nach verarbeitet, indem sie mit einigen Bits verbunden werden. Im
Falle der Codierung in Einheiten von 4 Bits werden zum Beispiel
1010 und dann 0000 codiert. Wenn die Codierung der MSBs beendet
ist, werden die nächsthöheren signifikanten
Bitfolgen erhalten, um dann in der Reihenfolge von 0001, 000, ....,
bis zu den LSBs codiert zu werden.
-
Die
in Einheiten von vier Bits verbundenen jeweiligen vierdimensionalen
Vektoren werden in zwei Subvektoren entsprechend ihrem Zustand unterteilt.
Die zwei Subvektoren werden durch eine effektiv verlustlose Codierung
wie arithmetische Codierung codiert. Zu diesem Zweck wird das für jedes
Codierband beim arithmetischen Codieren zu verwendende Modell bestimmt.
Diese Informationen werden im ArModell gespeichert. Die jeweiligen
Modelle der arithmetischen Codierung setzen sich aus mehreren Modellen
niedriger Ordnung zusammen. Die Subvektoren werden mittels eines
der Modelle niedriger Ordnung codiert. Die Modelle niedriger Ordnung
werden entsprechend der Dimensionen des zu codierenden Subvektors,
der Signifikanz eines Vektors oder der Codierungszustände der
jeweiligen Samples klassifiziert. Die Signifikanz eines Vektors
wird über
die Bitposition des zu codierenden Vektors bestimmt. In anderen
Worten variiert die Signifikanz eines Vektors je nachdem, ob die
bitgeschnittenen Informationen das MSB, das nächste MSB oder das LSB betreffen. Das
MSB hat die höchste
Signifikanz und das LSB die niedrigste. Die Codierungszustandswerte
der jeweiligen Samples werden erneuert, während die Vektorcodierung vom
MSB zum LSB fortschreitet. Zuerst wird der Codierungszustandswert als
Null initialisiert. Wenn ein nicht-verschwindender Bitwert angetroffen
wird, wird der Codierungszustandswert dann 1.
-
1.4 Codieren von Vorzeichenbits
-
Grundsätzlich wird
die Codierung eines Vorzeichenbits der Reihe nach von der MSB-Folge
zur LSB-Folge durchgeführt,
wobei die Codierung der Frequenzkomponentendaten, deren Vorzeichenbit
codiert ist, zurückgehalten
wird und die Codierung der Daten, deren Vorzeichenbit nicht codiert
ist, zuerst durchgeführt wird.
Nachdem auf diese Weise die Vorzeichenbits aller Frequenzkomponenten
codiert worden sind, wird die Codierung der zurückgehaltenen Frequenzkomponentendaten
der Reihe nach von den oberen signifikanten Bitfolgen durchgeführt.
-
Dies
wird detaillierter beschrieben werden. Unter Bezug auf das obige
Beispiel werden die MSB-Folgen '1010,
0000' beide codiert,
da ihre Vorzeichenbits zuvor nicht codiert wurden, das heißt, die
Codierung braucht nicht zurückgehalten
werden. Dann werden die nächsthöheren signifikanten
Bitfolgen '0001,
0000' codiert. Hier
werden für
0001 die erste 0 und die dritte 0 nicht codiert, da die Vorzeichenbits
schon in den MSBs codiert wurden, und dann werden das zweite und
das vierte Bit 0 und 1 codiert. Da hier keine 1 unter den oberen
Bits ist, wird das Vorzeichenbit für die Frequenzkomponente des
vierten Bits 1 codiert. Da es für
0000 keine codierten Vorzeichenbits unter den oberen Bits gibt,
werden alle diese vier Bits codiert. Auf diese Weise werden die
Vorzeichenbits bis zu den LSBs codiert, und dann werden die übrigen uncodierten
Informationen der Reihe nach von den oberen signifikanten Bits codiert.
-
1.5 Bilden skalierbarer
Bitstreams
-
Nun
wird die Struktur der bei der vorliegenden Erfindung gebildeten
Bitstreams beschrieben. Wenn die jeweiligen Frequenzkomponentenwerte
mit Binärziffern
dargestellt werden, werden die MSBs zuerst in der Basisschicht codiert,
die nächsthöheren signifikanten
Bits dann in der Verstärkungsschicht
und schließlich
die LSBs in der obersten Schicht. In anderen Worten wird in der
Basisschicht lediglich die Kontur aller Frequenzkomponenten codiert.
Wenn dann die Bitrate ansteigt, können detailliertere Informationen
ausgegeben werden. Da Datenwerte detaillierterer Informationen gemäß steigender
Bitraten, d. h. der Verstärkung
von Schichten, codiert werden, kann die Audioqualität verbessert
werden.
-
Nun
wird das Verfahren zum Bilden skalierbarer Bitstreams mittels auf
diese Weise repräsentierter
Daten beschrieben. Zunächst
werden die Bitstreams der Basisschicht gebildet. Dann werden die
für die
Basisschicht verwendeten Nebeninformationen codiert. Die Nebeninformationen
enthalten Skalierungsfaktorinformationen für Skalierungsfaktorbänder und
die arithmetischen Codierungsmodellindizes für jedes Codierungsband. Wenn
die Codierung der Nebeninformationen abgeschlossen ist, werden die
Informationen für
die quantisierten Werte der Reihe nach von den MSBs zu den LSBs
und von den niedrigen Frequenzkomponenten zu hohen Frequenzkomponenten
codiert. Wenn zugeteilte Bits eines bestimmten Bandes weniger sind
als die des zur Zeit codierten Bandes, wird die Codierung nicht
ausgeführt.
Wenn die zugeteilten Bits des Bandes denen des zur Zeit codierten
Bandes gleichen, wird die Codierung ausgeführt. In anderen Worten wird
die Codierung innerhalb einer vorgegebenen Bandbegrenzung ausgeführt.
-
Der
Grund für
die Bandbegrenzung wird nun beschrieben. Wenn es keine Bandbegrenzung
beim Codieren der Signale der jeweiligen Verstärkungsschichten gibt, wird
die Codierung von den MSB unbeachtlich der Bänder ausgeführt. Dann kann Klang erzeugt
werden, der vom Ohr als störend
wahrgenommen wird, da Signale an und aus sind, wenn die Signale
der Schichten mit geringen Bitraten wiederhergestellt werden. Daher
ist es zu empfehlen, die Bänder
gemäß der Bitraten
geeignet abzugrenzen. Da die Bänder
für die
jeweiligen Verstärkungsschichten
abgegrenzt werden, wird auch die Decoderkomplexität für die jeweiligen
Verstärkungsschichten
verringert. Deshalb wird sowohl die Qualitätsskalierbarkeit als auch die
Komplexitätsskalierbarkeit
unterstützt.
Nachdem die Basisschicht codiert wurde, werden die Nebeninformationen
und die quantisierten Werte der Audiodaten für die nächste Verstärkungsschicht codiert. Auf
diese Weise werden die Daten aller Schichten codiert. Die so codierten
Informationen werden zusammengesammelt, um Bitstreams zu bilden.
-
4 ist
ein Blockdiagramm der Decodiervorrichtung, die einen Bitstreamanalyseabschnitt 400,
einen inversen Quantisierungsabschnitt 410 sowie einen
Frequenz-/Zeit-Abbildungsabschnitt 420 enthält.
-
Der
Bitstreamanalyseabschnitt 400 decodiert Nebeninformationen
mit zumindest Skalierungsfaktoren und arithmetischen Codierungsmodellen
sowie bitgeschnittene quantisierte Daten in der Reihenfolge der
Erzeugung der Bitstreams mit einer geschichteten Struktur. Die decodierten
Daten werden als ein Signal eines zeitlichen Bereichs von einem
Verarbeitungsmodul wie einem herkömmlichen Audioalgorithmus wie
den AAC-Standards wiederhergestellt. Zunächst stellt der inverse Quantisierungsabschnitt 410 die
decodierten Skalierungsfaktoren und quantisierten Daten in Signale
mit den ursprünglichen
Größen wieder
her. Der Frequenz-/Zeit-Abbildungsabschnitt 420 wandelt
die invers quantisierten Signale in Signale eines zeitlichen Bereichs
um, sodass sie wiedererzeugt sind.
-
Als
Nächstes
wird die Arbeitsweise der Decodiervorrichtung beschrieben. Die Reihenfolge
des Decodierens der durch die Decodiervorrichtung erzeugten Bitstreams
ist genau umgekehrt zur Codierreihenfolge. Zuerst werden die Informationen
für die
Basisschicht decodiert. Der Decodiervorgang wird kurz beschrieben. Zunächst werden
die im vordersten Bitstream gespeicherten Informationen, die gemeinsam
für alle
Schichten verwendet werden, d. h. die Header-Informationen, decodiert.
-
Die
in der Basisschicht verwendeten Nebeninformationen enthalten Skalierungsfaktoren
und arithmetische Modellindizes für die der Basisschicht zugeteilten
Bänder.
Daher werden die Skalierungsfaktoren und arithmetischen Modellindizes
decodiert. Die jedem Codierungsband zugeteilten Bits ergeben sich
aus den decodierten arithmetischen Modellindizes. Aus den zugeteilten
Bits wird der Maximalwert erhalten. Die quantisierten Werte in den
Bitstreams werden der Reihe nach von den MSBs zu den LSBs und von
niedrigen Frequenzkomponenten zu hohen Frequenzkomponenten, wie
beim Codierungsvorgang, decodiert. Wenn das zugeteilte Bit eines
bestimmten Bandes kleiner ist als das zur Zeit decodierte, wird
das Decodieren nicht ausgeführt.
Wenn das zugeteilte Bit eines bestimmten Bandes gleich dem zur Zeit
decodierten wird, wird das Decodieren begonnen.
-
Nachdem
das Decodieren der einer Basisschicht zugeteilten Bitstreams abgeschlossen
ist, werden Nebeninformationen und quantisierte Werte von Audiodaten
für die
nächste
Verstärkungsschicht
decodiert. Auf diese Weise können
Daten aller Schichten decodiert werden.
-
Die über den
Decodiervorgang quantisierten Daten werden durch den inversen Quantisierungsabschnitt 410 und
den Frequenz-/Zeit-Abbildungsabschnitt 420,
gezeigt in 4, in der zum Codieren umgekehrten
Reihenfolge als ursprüngliche
Signale wiederhergestellt.
-
Nun
wird ein bevorzugtes Ausführungsbeispiel
der vorliegenden Erfindung beschrieben. Die vorliegende Erfindung
ist auf die Basisstruktur der AAC-Standards anwendbar und implementiert
eine skalierbare digitale Audiodatencodiereinrichtung. In anderen
Worten wird bei der vorliegenden Erfindung lediglich das verlustlose
Codierungsmodul durch das bitgeschnittene Codierverfahren ersetzt,
während
die beim Codieren/Decodieren im AAC-Standard verwendeten Basismodule
verwendet werden. Daher unterscheiden sich die in der Codiereinrichtung
gemäß der vor liegenden
Erfindung gebildeten Bitstreams von denen bei der AAC-Technik gebildeten.
Bei der vorliegenden Erfindung werden Informationen für nur eine
Bitrate nicht innerhalb eines Bitstreams codiert, sondern Informationen
für die
Bitraten verschiedener Verstärkungsschichten
werden innerhalb eines Bitstreams mit einer in 3 gezeigten
geschichteten Struktur in der von den wichtigeren Signalkomponenten
zu weniger wichtigen Signalkomponenten verlaufenden Reihenfolge
codiert.
-
Mittels
der so gebildeten Bitstreams können
Bitstreams mit einer geringen Bitrate auf Anfrage eines Benutzers
oder entsprechend dem Zustand der Übertragungskanäle gebildet
werden, indem einfach die im höchsten
Bitstream enthaltenen Bitstreams geringerer Bitrate neu angeordnet
werden. In anderen Worten können
durch eine Codiervorrichtung in Echtzeitbasis gebildete Bitstreams
oder in einem Medium gespeicherte Bitstreams auf Anfrage eines Benutzers
neu angeordnet werden, um für
eine gewünschte
Bitrate geeignet zu sein, um dann übertragen zu werden. Außerdem können, wenn
die Hardwareleistungsfähigkeit
des Benutzers gering ist oder der Benutzer die Komplexität eines
Decoders zu verringern wünscht,
sogar mit geeigneten Bitstreams nur einige Bitstreams wiederhergestellt
werden, wodurch die Komplexität
gesteuert wird.
-
Zum
Beispiel beträgt
die Bitrate einer Basisschicht beim Bilden eines skalierbaren Bitstreams
16 kbps, die einer obersten Schicht ist 64 kbps und die jeweiligen
Verstärkungsschichten
weisen ein Bitratenintervall von 8 kbps auf, das heißt, der
Bitstream hat 7 Schichten von 16, 24, 32, 40, 48, 56 und 64 kbps.
Die jeweiligen Verstärkungsschichten
werden wie in Tabelle 2.1 gezeigt definiert. Da der durch die Codiervorrichtung
gebildete Bitstream, wie in
3 gezeigt,
eine geschichtete Struktur hat, enthält der Bitstream der obersten
Schicht von 64 kbps die Bitstreams der jeweiligen Verstärkungsschichten
(16, 24, 32, 40, 48, 56 und 64 kbps). Wenn ein Benutzer nach Daten
für die
oberste Schicht fragt, wird der Bitstream für die oberste Schicht ohne
irgendeine Verarbeitung dafür übertragen.
Auch wenn ein anderer Benutzer nach Daten für die Basisschicht (den 16 kbps
entsprechend) fragt, werden einfach nur die führenden Bitstreams übertragen. [Tabelle
2.1] Bitrate für
jede Schicht (Intervall von 8 kbps)
[Tabelle
2.2] Bandbegrenzung in jeder Schicht für kleine Fenster (Intervall
von 8 kbps)
[Tabelle
2.3] Bandbegrenzung in jeder Schicht für lange Fenster (Intervall
von 8 kbps)
[Tabelle
2.4] Verfügbare
Bits für
jeden Kanal in jeder Schicht (Intervall von 8 kbps)
[Tabelle
2.5] Minimales Skalierungsfaktorband, das jeder Schicht für kurze
Fenster hinzugefügt
wird (Intervall von 8 kbps)
[Tabelle
2.6] Minimales Skalierungsfaktorband, das jeder Schicht für lange
Fenster hinzugefügt
wird (Intervall von 8 kbps)
-
Alternativ
können
die Verstärkungsschichten
in Intervallen aufgebaut sein. Die Bitrate einer Basisschicht beträgt 16 kbps,
die einer obersten Schicht 64 kbps und jede Verstärkungsschicht
weist ein Bitratenintervall von 1 kbps auf. Die jeweiligen Verstärkungsschichten
werden wie in Tabelle 3.1 gezeigt aufgebaut. Deshalb kann eine feinkörnige Skalierbarkeit
implementiert werden, das heißt,
skalierbare Bitstreams werden in einem Bitratenintervall von 1 kbps
von 16 kbps bis 64 kbps gebildet. [Tabelle
3.1] Bitrate für
jede Schicht (Intervall von 1 kbps)
[Tabelle
3.2] Bandbegrenzung bei jeder Schicht für kurze Fenster (Intervall
von 1 kbps)
[Tabelle
3.3] Bandbegrenzung in jeder Schicht für lange Fenster (Intervall
von 1 kbps)
[Tabelle
3.4] Verfügbare
Bits pro Kanal in jeder Schicht (Intervall von 1 kbps)
[Tabelle
3.5] Niedrigstes Skalierungsfaktorband, das jeder Schicht für kurze
Fenster neu hinzugefügt
wird (Intervall von 1 kbps)
[Tabelle
3.6] Niedrigstes Skalierungsfaktorband, das jeder Schicht für lange
Fenster neu hinzuzufügen
ist (Intervall von 1 kbps)
-
Die
jeweiligen Schichten haben den Bitraten entsprechende begrenzte
Bandbreiten. Wenn Skalierbarkeit für Intervalle von 8 kbps beabsichtigt
ist, werden die Bandbreiten wie in Tabellen 2.2 und 2.3 gezeigt
begrenzt. Im Falle von Intervallen von 1 kbps werden die Bandbreiten
wie in Tabellen 3.2 und 3.3 gezeigt begrenzt.
-
Eingabedaten
sind bei 48 kHz abgetastete PCM-Daten und die Größe eines Frames ist 1024. Die
Anzahl der Bits, die für
einen Frame für
eine Bitrate von 64 kbps verwendbar sind, ist 1365,3333 (= 64000 Bits/sec*(1024/48000))
im Durchschnitt. Auf ähnliche
Weise kann die Größe der verfügbaren Bits
für einen
Frame entsprechend den jeweiligen Bitraten berechnet werden. Die
berechneten Anzahlen verfügbarer
Bits für einen
Frame werden in Tabelle 2.4 im Falle von 8 kbps und in Tabelle 3.4
im Falle von 1 kbps gezeigt.
-
2.1 Codierungsprozedur
-
Die
gesamte Codierungsprozedur ist die gleiche wie die in den Internationalen
MPEG-2-ACC-Standards, und die bitgeschnittene Codierung, die bei
der vorliegenden Erfindung vorgeschlagen wird, wird auf das verlustlose
Codieren angewendet.
-
2.1.1 Psychoakustischer
Abschnitt
-
Vor
der Quantisierung werden mittels eines psychoakustischen Modells
zunächst
der Blocktyp eines zur Zeit verarbeiteten Frames (lang, Anfang,
kurz oder Stopp), die SMR-Werte der jeweiligen Verarbeitungsbänder, Gruppeninformationen
eines kurzen Blocks sowie zeitlich verzögerte PCM-Daten für Zeit-/Frequenz-Synchronisierung
mit dem psychoakustischen Modell aus Eingabedaten erzeugt und an
einen Zeit-/Frequenz-Abbildungsabschnitt übertragen.
Das ISO/IEC 11172-3-Modell 2 wird zum Berechnen des psychoakustischen
Modells eingesetzt [MPEG-Komitee ISO/IEC/JTC1/SC29/WG11, Information
technology-Coding
of moving pictures and associated audio for data storage media to
about 1.5 Mbit/s-Part 3: Audio, ISO/OEC IS 11172-3, 1993].
-
2.1.2 Zeit-/Frequenz-Abbildungsabschnitt
-
Das
in den Internationalen MPEG-2-AAC-Standards definierte Zeit-/Frequenz-Abbilden
wird verwendet. Der Zeit-/Frequenz-Abbildungsabschnitt wandelt Daten eines
zeitlichen Bereichs in Daten eines Frequenzbereichs mittels MDCT
entsprechend der Blocktypausgabe mittels des psychoakustischen Modells
um.
-
Diesmal
sind die Blockgrößen jeweils
2048 und 256 im Falle von Lang-/Start-/Stopp-Blöcken und im Falle eines kurzen
Blocks, und MDCT wird 8-mal ausgeführt [MPEG-Komitee ISO/IEC/JTC1/SC29/WG11, ISO/IEC
MPEG-2 AAC IS 13818-7, 1997]. Hierfür wurde dieselbe Prozedur wie
die beim herkömmlichen MPEG-2-AAC
verwendet. [MPEG-Komitee SO/IEC/JTC1/SC29/WG11, ISO/IEC MPEG-2 AAC
IS 13818-7, 1997].
-
2.1.3 Quantisierungsabschnitt
-
Die
in solche eines Frequenzbereichs umgewandelten Daten werden mit
steigenden Skalierungsfaktoren quantisiert, sodass der SNR-Wert
des Skalierungsfaktorbands, wie in Tabellen 1.1 und 1.2 gezeigt,
kleiner ist als der SMR als Ausgabewert des psychoakustischen Modells.
Hier wird skalare Quantisierung ausgeführt, und das Basisskalierungsfaktorintervall
ist 2
1/4. Die Quantisierung wird ausgeführt, sodass
das wahrnehmbare Rauschen minimiert wird. Die genaue Quantisierungsprozedur
wird im MPEG-2 AAC beschrieben. Hier sind die erhaltenen Ausgaben
quantisierte Daten und Skalierungsfaktoren für die jeweiligen Skalierungsfaktorbänder. [Tabelle
1.1] Skalierungsfaktorband für
lange Blöcke
[Tabelle
1.2] Skalierungsfaktorband für
kurze Blöcke
-
2.1.4 Anordnung von Frequenzkomponenten
-
Für das bequeme
Codieren werden die Frequenzkomponenten neu angeordnet. Die Neuanordnungsreihenfolge
ist verschieden und hängt
von den Blocktypen ab. In dem Fall, dass ein langes Fenster beim
Blocktyp verwendet wird, werden die Frequenzkomponenten in der Reihenfolge
der Skalierungsfaktorbänder,
wie in 5 gezeigt, angeordnet. In 5 bedeutet
sfb Skalierungsfaktorband. In dem Fall, dass ein kurzes Fenster im
Blocktyp verwendet wird, werden alle vier Frequenzkomponenten von
8 Blöcken
wiederholt in aufsteigender Reihenfolge, wie in 6 gezeigt,
angeordnet. In 6 bedeutet B 8 Blöcke, und
die darunter aufgeführten Ziffern
zeigen Frequenzkomponenten in jedem Block an.
-
2.1.5 Bitpackungsabschnitt
mittels bitgeschnittener arithmetischer Codierung (BSAC)
-
Die
neu angeordneten quantisierten Daten und Skalierungsfaktoren werden
als geschichtete Bitstreams gebildet.
-
Die
Bitstreams werden durch die in den Tabellen 7.1 bis 7.10 demonstrierte
Syntax gebildet. [Tabelle
7.1] Syntax von raw_data_stream ()
[Tabelle
7.2] Syntax von raw_data_block ()
[Tabelle
7.3] Syntax von single_channel_element ()
[Tabelle
7.4] Syntax von ics_info ()
[Tabelle
7.5] Syntax von bsac_channel_stream ()
[Tabelle
7.6] Syntax von bsac_data ()
-
[Tabelle 7.7]
-
[Tabelle
7.8] Syntax von bsac_stream ()
-
[Tabelle
7.9] Syntax von bsac_side_info ()
-
-
[Tabelle
7.10] Syntax von bsac_spectral_data ()
-
-
Die
führenden
Elemente eines Bitstreams sind Elemente, die gemeinsam beim herkömmlichen
AAC verwendet werden können,
und die bei der vorliegenden Erfindung neu vorgeschlagenen Elemente
werden spezifisch erklärt.
Die Hauptstruktur ist jedoch ähnlich
der der AAC-Standards. Als Nächstes
werden die Elemente eines bei der vorliegenden Erfindung neu vorgeschlagenen
Bitstreams beschrieben.
-
Tabelle
7.5 zeigt die Syntax zum Codieren von bsac_channel_stream, bei dem 'max_scalefactor' die maximalen Skalierungsfaktoren
darstellt, die eine ganze Zahl sind, d. h. 8 Bits.
-
Tabelle
7.6 zeigt die Syntax zum Codieren von bsac data, wobei 'frame_length' die Größe aller
Bitstreams für
einen Frame darstellt, die in Einheiten von Bytes ausgedrückt wird.
Außerdem
stellt 'encoded_layer' das Codieren für die im
Bitstream codierte oberste Schicht dar, die jeweils 3 Bits im Falle
eines Intervalls von 8 kbps und 6 Bits im Falle eines Intervalls
von 1 kbps beträgt,
dar. Die Informationen für
die Verstärkungsschichten
werden in Tabellen 2.1 und 3.1 gezeigt. Außerdem stellt 'scalefactor_model' die Informationen
dar, die Modelle betreffen, die beim arithmetischen Codieren von
Differenzen in Skalierungsfaktoren verwendet werden. Diese Modelle
werden in Tabelle 4.1 gezeigt. 'min_ArModel' stellt den Minimalwert
der arithmetischen Codierungsmodellindizes dar. 'ArModel_model' stellt Informationen dar, die Modelle
betreffen, die beim arithmetischen Codieren eines Differenzensignals
zwischen dem ArModell und min_ArModel verwendet werden. Diese Informationen
werden in Tabelle 4.2 gezeigt. [Tabelle
4.1] Arithmetisches Modell von differenziellen Skalierungsfaktoren

[Tabelle
4.2] Arithmetisches Modell vom differenziellen ArModell
-
Tabelle
7.9 zeigt die Syntax zum Codieren von bsac_side_info. Die Informationen,
die für
alle Schichten verwendet werden können, werden zuerst codiert,
und dann werden die für
die jeweiligen Verstärkungsschichten
gemeinsam verwendeten Nebeninformationen codiert. 'acode_scf' stellt ein beim
arithmetischen Codieren der Skalierungsfaktoren erhaltenes Codewort
dar. 'acode_ArModel' stellt ein beim
arithmetischen Codieren des ArModells erhaltenes Codewort dar. Das
ArModell besteht aus Informationen, die aus den in Tabelle 4.3 aufgeführten Modellen
ausgewählt
werden. [Tabelle
4.3] Parameter des arithmetischen BSAC-Modells
-
[Tabelle 6.1] Arithmetisches
BSAC-Modell 0
-
- Zugeteiltes Bit = 0
- Arithmetisches BSAC-Modell 1
- Nicht verwendet
-
[Tabelle 6.2] Arithmetisches
BSAC-Modell 2
-
-
-
[Tabelle 6.3] Arithmetisches
BSAC-Modell 3
-
-
-
[Tabelle 6.4] Arithmetisches
BSAC-Modell 4
-
-
-
-
[Tabelle 6.5] Arithmetisches
BSAC-Modell 5
-
-
-
[Tabelle 6.6] Arithmetisches
BSAC-Modell 6
-
-
-
-
[Tabelle 6.7] Arithmetisches
BSAC-Modell 7
-
-
-
-
[Tabelle 6.8] Arithmetisches
BSAC-Modell 8
-
-
-
-
[Tabelle 6.9] Arithmetisches
BSAC-Modell 9
-
-
-
-
-
[Tabelle 6.10] Arithmetisches
BSAC-Modell 10
-
- Zugeteilte Bits (Abit) = 5
-
-
-
[Tabelle 6.11] Arithmetisches
BSAC-Modell 11
-
- Zugeteilte Bits (Abit) = 5
-
-
-
[Tabelle 6.12] Arithmetisches
ASAC-Modell 12
-
- Das Gleiche wie arithmetisches BSAC-Modell 10, aber zugeteilte
Bits = 6.
-
[Tabelle 6.13] Arithmetisches
ASAC-Modell 13
-
- Das Gleiche wie arithmetisches BSAC-Modell 11, aber zugeteilte
Bits = 6.
-
[Tabelle 6.14] Arithmetisches
ASAC-Modell 14
-
- Das Gleiche wie arithmetisches BSAC-Modell 10, aber zugeteilte
Bits = 7.
-
[Tabelle 6.15] Arithmetisches
ASAC-Modell 15
-
- Das Gleiche wie arithmetisches BSAC-Modell 11, aber zugeteilte
Bits = 7.
-
[Tabelle 6.16] Arithmetisches
ASAC-Modell 16
-
- Das Gleiche wie arithmetisches BSAC-Modell 10, aber zugeteilte
Bits = 8.
-
[Tabelle 6.17] Arithmetisches
ASAC-Modell 17
-
- Das Gleiche wie arithmetisches BSAC-Modell 11, aber zugeteilte
Bits = 8.
-
[Tabelle 6.18] Arithmetisches
ASAC-Modell 18
-
- Das Gleiche wie arithmetisches BSAC-Modell 10, aber zugeteilte
Bits = 9.
-
[Tabelle 6.19] Arithmetisches
ASAC-Modell 19
-
- Das Gleiche wie arithmetisches BSAC-Modell 11, aber zugeteilte
Bits = 9.
-
[Tabelle 6.20] Arithmetisches
ASAC-Modell 20
-
- Das Gleiche wie arithmetisches BSAC-Modell 10, aber zugeteilte
Bits = 10.
-
[Tabelle 6.21] Arithmetisches
ASAC-Modell 21
-
- Das Gleiche wie arithmetisches BSAC-Modell 11, aber zugeteilte
Bits = 10.
-
[Tabelle 6.22] Arithmetisches
ASAC-Modell 22
-
- Das Gleiche wie arithmetisches BSAC-Modell 10, aber zugeteilte
Bits = 11.
-
[Tabelle 6.23] Arithmetisches
ASAC-Modell 23
-
- Das Gleiche wie arithmetisches BSAC-Modell 11, aber zugeteilte
Bits = 11.
-
[Tabelle 6.24] Arithmetisches
ASAC-Modell 24
-
- Das Gleiche wie arithmetisches BSAC-Modell 10, aber zugeteilte
Bits = 12.
-
[Tabelle 6.25] Arithmetisches
ASAC-Modell 25
-
- Das Gleiche wie arithmetisches BSAC-Modell 11, aber zugeteilte
Bits = 12.
-
[Tabelle 6.26] Arithmetisches
ASAC-Modell 26
-
- Das Gleiche wie arithmetisches BSAC-Modell 10, aber zugeteilte
Bits = 13.
-
[Tabelle 6.27] Arithmetisches
ASAC-Modell 27
-
- Das Gleiche wie arithmetisches BSAC-Modell 11, aber zugeteilte
Bits = 13.
-
[Tabelle 6.28] Arithmetisches
ASAC-Modell 28
-
- Das Gleiche wie arithmetisches BSAC-Modell 10, aber zugeteilte
Bits = 14.
-
[Tabelle 6.29] Arithmetisches
ASAC-Modell 29
-
- Das Gleiche wie arithmetisches BSAC-Modell 11, aber zugeteilte
Bits = 14.
-
[Tabelle 6.30] Arithmetisches
ASAC-Modell 30
-
- Das Gleiche wie arithmetisches BSAC-Modell 10, aber zugeteilte
Bits = 15.
-
[Tabelle 6.31] Arithmetisches
ASAC-Modell 31
-
- Das Gleiche wie arithmetisches BSAC-Modell 11, aber zugeteilte
Bits = 15.
-
Tabelle
7.10 zeigt die Syntax zum Codieren von bsac_spectral_data. Die gemeinsam
für die
jeweiligen Verstärkungsschichten
verwendeten Nebeninformationen, die quantisier ten Frequenzkomponenten
werden mittels der BSAC-Technik bitgeschnitten und dann arithmetisch
codiert. 'acode_vec0' stellt ein Codewort
dar, das beim arithmetischen Codieren des ersten Subvektors (Subvektor
0) mittels des als ArModell-Wert definierten arithmetischen Modells
erhalten wurde. 'acode_vecl' stellt ein Codewort
dar, das beim arithmetischen Codieren des zweiten Subvektors (Subvektor
1) mittels des als ArModell-Wert definierten arithmetischen Modells erhalten
wurde. 'acode_sign' stellt ein Codewort
dar, das beim arithmetischen Codieren des Vorzeichenbits mittels
des in Tabelle 5.9 definierten arithmetischen Modells erhalten wurde.
-
[Tabelle
5.9] Arithmetisches Vorzeichenmodell
-
Während die
Anzahl der beim Codieren der jeweiligen Subvektoren verwendeten
Bits berechnet wird und mit der Anzahl verfügbarer Bits für die jeweiligen
Verstärkungsschichten
verglichen wird, wird das Codieren der nächsten Verstärkungsschicht
von neuem gestartet, wenn die verwendeten Bits gleich viele oder
mehr als die verfügbaren
Bits sind.
-
Im
Falle eines langen Blocks ist die Bandbreite der Basisschicht bis
zum 21. Skalierungsfaktorband begrenzt. Dann werden die Skalierungsfaktoren
bis zum 21. Skalierungsfaktorband und die arithmetischen Codierungsmodelle
der entsprechenden Codierungsbänder
codiert. Die Bitzuteilungsinformationen werden aus den arithmetischen
Codierungsmodellen erhalten. Der Maximalwert der zugeteilten Bits
wird aus den jedem Codierungsband zugeordneten Bitinformationen
erhalten, und die Codierung wird vom maximalen Quantisierungsbitwert
an durch das zuvor erwähnte
Codierverfahren ausgeführt.
Dann werden die nächsten
quantisierten Bits der Reihe nach codiert. Wenn zuge teilte Bits
eines bestimmten Bandes weniger als die des zur Zeit codierten Bandes
sind, wird die Codierung nicht ausgeführt. Wenn zugeteilte Bits eines
bestimmten Bandes gleich viele wie die des zur Zeit codierten sind,
wird das Band zum ersten Mal codiert. Da die Bitrate der Basisschicht
16 kbps beträgt,
ist die gesamte Bitzuteilung 336 Bits. Daher wird die gesamte verwendete
Bitmenge fortlaufend berechnet, und die Codierung wird in dem Moment,
in dem die Bitmenge 336 übersteigt,
beendet.
-
Nachdem
alle Bitstreams für
die Basisschicht (16 kbps), gebildet sind, werden die Bitstreams
für die nächste Verstärkungsschicht
gebildet. Da die begrenzten Bandbreiten für die höheren Schichten erhöht werden,
wird die Codierung von Skalierungsfaktoren und arithmetischen Codierungsmodellen
nur für
die zu den begrenzten Bändern
der Basisschicht neu hinzugefügten
Bänder
ausgeführt.
In der Basisschicht werden uncodierte bitgeschnittene Daten für jedes
Band und die bitgeschnittenen Daten eines neu hinzugefügten Bands von
den MSBs in der gleichen Weise wie in der Basisschicht codiert.
Wenn die gesamte verwendete Bitmenge größer ist als die verfügbare Bitmenge,
wird die Codierung beendet und die Vorbereitungen für das Bilden
der Bitstreams der nächsten
Verstärkungsschicht
werden begonnen. Auf diese Weise können Bitstreams für die übrigen Schichten
von 32, 40, 48, 56 und 64 kbps erzeugt werden.
-
Nun
wird die Decodierungsprozedur beschrieben.
-
3.1 Analyse und Decodierung
von Bitstreams
-
3.1.1 Decodierung von
bsac_channel_stream
-
Die
Decodierung von bsac channel stream wird in der Reihenfolge von
Get max_scale factor zu Get ics info () und zu Get BSAC data, wie
in Table 7.5 gezeigt, durchgeführt.
-
3.1.2 Decodierung von
bsac_data
-
Die
für die
Decodierung von frame_length, encoded_layer, von den Skalierungsfaktormodellen
und den arithmetischen Modellen notwendigen Nebeninformationen werden
im Bitstream wie in Tabelle 7.6 gezeigt, decodiert.
-
3.1.3 Decodierung von
bsac_side_info
-
Die
oben gebildeten skalierbaren Bitstreams weisen eine geschichtete
Struktur auf. Zunächst
werden die Nebeninformationen für
die Basisschicht vom Bitstream getrennt und dann decodiert. Dann
werden die bitgeschnittenen Informationen für die im Bitstream der Basisschicht
enthaltenen quantisierten Frequenzkomponenten vom Bitstream getrennt
und dann decodiert. Die gleiche Decodierungsprozedur wie die für die Basisschicht
wird auf die anderen Verstärkungsschichten
angewendet.
-
1) Decodierung der Skalierungsfaktoren
-
Die
Frequenzkomponenten werden in Skalierungsfaktorbänder mit Frequenzkoeffizienten,
die Mehrfache von 4 sind, aufgeteilt. Jedes Skalierungsfaktorband
hat einen Skalierungsfaktor. Der max_scalefactor wird in eine 8-Bit-ganze
Zahl ohne Vorzeichen decodiert. Für alle Skalierungsfaktoren
werden die Differenzen zwischen ihnen und dem max_scalefactor erhalten
und dann arithmetisch codiert. Die beim Decodieren der Differenzen
verwendeten arithmetischen Modelle sind solche für die die Bitstreams bildenden
Bestandteile und werden von den Bitstreams, die schon decodiert
wurden, getrennt. Die ursprünglichen
Skalierungsfaktoren können
in der zur Codierungsprozedur umgekehrten Reihenfolge wiederhergestellt
werden.
-
Der
folgende Pseudocode beschreibt das Decodierungsverfahren für die Skalierungsfaktoren
in der Basisschicht und den anderen Verstärkungsschichten.
-
-
Hier
ist layer_sfb[layer] ein Anfangsskalierungsfaktorband zum Decodieren
der Skalierungsfaktoren in den jeweiligen Verstärkungsschichten, und layer_sfb[layer+1]
ist ein Endskalierungsfaktorband.
-
2) Decodierung des arithmetischen
Modellindex
-
Die
Frequenzkomponenten werden in Codierungsbänder mit 32 Frequenzkoeffizienten
aufgeteilt, um verlustlos codiert zu werden. Das Codierungsband
ist eine Basiseinheit, die beim verlustlosen Codieren verwendet
wird. Der arithmetische Codierungsmodellindex stellt Informationen über die
beim arithmetischen Codieren/Decodieren der bitgeschnittenen Daten
jedes Codierungsbandes verwendeten Modelldaten dar und zeigt an,
welches Modell der in Tabelle 4.3 aufgeführten Modelle bei den arithmetischen
Codier-/Decodier-Prozeduren verwendet wird.
-
Differenzen
zwischen einem Offset-Wert und allen arithmetischen Codierungsmodellindizes
werden berechnet, und dann werden die Differenzsignale mittels der
in Tabelle 4.2 aufgeführten
Modelle codiert. Hier wird ein zu verwendendes Modell aus den vier
in Tabelle 4.2 aufgeführten
Modellen durch den Wert von ArModel_model angezeigt und dann im
Bitstream als 2 Bits gespeichert. Der Offset-Wert ist der im Bitstream gespeicherte
5-Bit-min_ArModel-Wert. Die Differenzensignale werden in der zur
Codierungsprozedur umgekehrten Reihenfolge decodiert, und dann werden
die Differenzensignale zum Offset-Wert hinzugefügt, um die arithmetischen Codierungsmodellindizes
wiederherzustellen.
-
Der
folgende Pseudocode beschreibt das Decodierungsverfahren für die arithmetischen
Codierungsmodellindizes und ArModel[cband] in den jeweiligen Verstärkungsschichten.
-
-
Hier
ist layer_sfb[layer] ein Anfangsskalierungsfaktorband zum Decodieren
der arithmetischen Codierungsmodellindizes in den jeweiligen Verstärkungsschichten,
und layer_sfb[layer+1] ist ein Endskalierungsfaktorband. decode_cband[ch][g][cband]
ist ein Merker, der anzeigt, ob ein arithmetisches Codierungsmodell
decodiert (1) oder nicht decodiert (0) wurde.
-
3.1.4 Decodierung bitgeschnittener
Daten
-
Die
quantisierten Folgen werden als bitgeschnittene Sequenzen gebildet.
Die jeweiligen vierdimensionalen Vektoren werden in zwei Subvektoren
entsprechend ihres Zustands unterteilt. Zur wirksamen Kompression
werden die zwei Subvektoren mittels verlustloser Codierung arithmetisch
codiert. Das beim arithmetischen Codieren für jedes Codierungsband zu verwendende
Modell wird bestimmt. Diese Informationen werden im ArModell gespeichert.
-
Wie
in Tabellen 6.1 bis 6.31 gezeigt setzen sich die jeweiligen arithmetischen
Codierungsmodelle aus mehreren Modellen niedriger Ordnung zusammen.
Die Subvektoren werden mittels ei nes der Modelle niedriger Ordnung
codiert. Die Modelle niedriger Ordnung werden entsprechend der Dimension
des zu codierenden Subvektors, der Signifikanz eines Vektors oder
der Codierungszustände
der jeweiligen Samples klassifiziert. Die Signifikanz eines Vektors
wird durch die Bitposition des zu codierenden Vektors bestimmt.
In anderen Worten unterscheidet sich die Signifikanz eines Vektors
je nachdem, ob die bitgeschnittenen Informationen für das MSB,
das nächste
MSB oder das LSB sind. Das MSB hat die höchste Signifikanz und das LSB
hat die niedrigste Signifikanz. Die Codierungszustandswerte der
jeweiligen Samples werden erneuert, während die Vektorcodierung von
den MSB zu den LSB fortschreitet. Zuerst wird der Codierungszustandswert
als Null initialisiert. Dann, wenn ein nicht-verschwindender Bitwert angetroffen
wird, wird der Codierungszustandswert 1.
-
Die
zwei Subvektoren sind ein- bis vierdimensionale Vektoren. Die Subvektoren
werden vom MSB zum LSB, von den niedrigeren Frequenzkomponenten
zu den höheren
Frequenzkomponenten arithmetisch codiert. Die beim arithmetischen
Codieren verwendeten arithmetischen Codierungsmodellindizes werden
zuvor im Bitstream in der Reihenfolge von niedriger zu hoher Frequenz
gespeichert, bevor die bitgeschnittenen Daten zu jedem Codierungsband
in Einheiten von Codierungsbändern übertragen
werden.
-
Die
jeweiligen bitgeschnittenen Daten werden arithmetisch codiert, um
die Codewort-Indizes zu erhalten. Diese Indizes werden in die ursprünglichen
quantisierten Daten wiederhergestellt, indem sie mittels des folgenden
Pseudocodes bitverbunden werden.
-
'pre_state[]' ist ein Zustand,
der angibt, ob der zur Zeit decodierte Wert 0 beträgt oder
nicht. 'snf' ist die Signifikanz
eines decodierten Vektors. 'idx0' ist ein Codewort-Index,
dessen vorheriger Zustand 0 ist. 'idx1' ist ein
Codewort-Index, dessen vorheriger Zustand 1 beträgt. 'dec_sample[]' bezeichnet decodierte Daten. 'start_i' ist eine Startfrequenzzeile
decodierter Vektoren.
-
-
Während die
bitgeschnittenen Daten der quantisierten Frequenzkomponenten vom
MSB zum LSB codiert werden, werden die Vorzeichenbits der nicht-verschwindenden
Frequenzkoeffizienten arithmetisch codiert. Ein negatives (–) Vorzeichenbit
wird durch eine 1 repräsentiert
und ein positives (+) Vorzeichenbit wird durch eine 0 repräsentiert.
-
Wenn
die bitgeschnittenen Daten in einem Decoder arithmetisch decodiert
werden und ein nicht-verschwindender arithmetisch decodierter Bitwert
zuerst gefunden wird, folgt die Information des Vorzeichens im Bitstream,
d. h. acode_sign. Das sign_bit wird mittels dieser Information mit
den in Tabelle 5.9 aufgeführten Modellen
arithmetisch decodiert. Wenn das sign_bit 1 ist, wird die Vorzeicheninformation
den durch das Verbinden der getrennten Daten gebildeten quantisierten
Daten (y) wie folgt zugegeben.
-
-
3.2 Inverse Quantisierung
-
Der
inverse Quantisierungsabschnitt stellt die decodierten Skalierungsfaktoren
und quantisierten Daten in Signale mit den ursprünglichen Größen wieder her. Die inverse
Quantisierungsprozedur wird in den AAC-Standards beschrieben.
-
3.3 Frequenz-/Zeit-Abbildung
-
Der
Frequenz-/Zeit-Abbildungsabschnitt wandelt Audiosignale eines Frequenzbereichs
in Signale eines Zeitbereichs invers um, damit diese so von einem
Benutzer wiederhergestellt werden. Die Formel zum Abbilden des Frequenzbereichssignals
in das Zeitbereichssignal wird in den AAC-Standards definiert. Ebenso werden
verschiedene Gegenstände
wie ein mit der Abbildung verbundenes Fenster in den AAC-Standards
beschrieben.
-
Das
zuvor erwähnte
Ausführungsbeispiel
der vorliegenden Erfindung kann als ein auf einem Computer ausführbares
Programm gebildet werden. Das Programm kann in einem Speichermedium
wie einer CD-ROM, einer Hard-Disk, einer Floppy-Disk, oder einem
Speicher gespeichert werden. Das Speichermedium ist im Handel erhältlich.
Das Speichermedium gehört
offensichtlich zum Gegenstand der vorliegenden Erfindung.
-
Die
vorliegende Erfindung kann in einem digitalen Allzweck-Computer ausgeführt sein,
der ein Programm von einem Computerverwendbaren Medium ausführt, welches
Speichermedien wie magnetische Speichermedien (d. h. ROMs, Floppy-Disks,
Hard-Disks, usw.), optisch lesbare Medien (d. h. CD-ROMs, DVDs, usw.)
und Trägerwellen
(d. h. Übertragungen über das
Internet) enthält,
aber nicht darauf beschränkt
ist. Daher kann die vorliegende Erfindung als ein computer-verwendbares
Medium ausgeführt
sein, welches darin ausgeführte
Mittel für
computer-lesbaren Programmcode zum Codieren einer Folge digitaler
Daten einer vorgegebenen Anzahl aufweist, wobei das Mittel für computerlesbaren
Programmcode im computer-verwendbaren Medium Mittel für computer-lesbaren
Programmcode, die einen Computer Signalverarbeitung von Eingabeaudiosignalen
und Quantisierung derselben für
jedes vorgegebene Codierungsband bewirken lassen, sowie Mittel für computer-lesbaren
Programmcode, die einen Computer das Packen der quantisierten Daten
zur Erzeugung von Bitstreams bewirken lassen, umfassen, wobei das
Erzeugen von Bitstreams das Codieren der zur Basisschicht gehörenden quantisierten
Daten, das Codieren der zur nächsten
Verstärkungsschicht
der codierten Basisschicht gehörenden
quantisierten Daten und der übrigen
aufgrund einer Schichtgrößenbegrenzung uncodierten
und zur codierten Schicht gehörenden
quantisierten Daten sowie das Ausführen der Schichtencodierungsschritte
für alle
Verstärkungsschichten
umfasst, um Bitstreams zu bilden, wobei das Basisschichtcodieren,
das Verstärkungsschichtcodieren
und das Codieren der Reihe nach so ausgeführt werden, dass die Nebeninformationen
und quantisierten Daten, die zu einer zu codierenden Schicht gehören, durch
Ziffern einer gleichen vorgegebenen Anzahl dargestellt werden und
dann mittels eines vorgegebenen Wahrscheinlichkeitsmodells in der
von den MSB-Folgen
zu den LSB-Folgen verlaufenden Reihenfolge arithmetisch codiert
werden, wobei die Nebeninformationen Skalierungsfaktoren und Wahrscheinlichkeitsmodelle,
die beim arithmetischen Codieren zu verwenden sind, enthalten. Ein
funktionales Programm, Code sowie Codesegmente, die zur Implementierung
der vorliegenden Erfindung verwendet werden, können von einem erfahrenen Computerprogrammierer
aus der hierin enthaltenen Beschreibung der Erfindung abgeleitet
werden.
-
Gemäß der vorliegenden
Erfindung wird lediglich der verlustlose Codierabschnitt modifiziert,
um Skalierbarkeit zu erlauben, während
der herkömmliche
Audioalgorithmus wie die MPEG-2-AAC-Standards verwendet werden.
-
Da
der herkömmliche
Audioalgorithmus verwendet wird, wird auch die für die Implementierung der vorliegenden
Erfindung notwendige Arbeitsweise vereinfacht.
-
Da
die Bitstreams skalierbar sind, kann ein Bitstream verschiedene
Bitstreams mit mehreren Bitraten enthalten. Wenn die vorliegende
Erfindung mit den AAC-Standards kombiniert wird, kann fast die gleiche
Audioqualität
zur Bitrate der obersten Schicht erhalten werden.
-
Da
die Codierung gemäß der Signifikanz
der Quantisierungsbits ausgeführt
wird, anstatt dass die Codierung nach der Verarbeitung der Differenz
zwischen quantisierten Signalen der vorherigen Schicht und dem ursprünglichen
Signal ausgeführt
wird, wird für
jede Schicht die Komplexität
der Codiervorrichtung verringert.
-
Da
ein Bitstream mehrere Bitstreams enthält, können die Bitstreams für verschiedene
Schichten einfach erzeugt werden und die Komplexität eines
Transcoders verringert werden.
-
Wenn
die Bitrate aufgrund begrenzter Bänder verringert wird, wird
die Komplexität
eines Filters, die eine Hauptquelle des komplexen Codierens und
Decodierens ist, beträchtlich
vereinfacht. Demgemäß wird die Komplexität einer
Codierungs- und Decodierungsvorrichtung verringert.
-
Entsprechend
der Leistungsfähigkeit
der Decoder eines Benutzers und der Bandbreite/Stauung von Übertragungskanälen oder
auf Anfrage des Benutzers können
die Bitraten oder die Komplexität
gesteuert werden.
-
Um
verschiedene Benutzerwünsche
zu befriedigen, werden flexible Bitstreams gebildet. In anderen Worten
werden auf Anfrage des Benutzers die Informationen für die Bitraten
verschiedener Schichten mit einem Bitstream ohne Überlappung
kombiniert, wodurch Bitstreams mit guter Audioqualität erstellt
werden. Zwischen einem Übertragungsterminal
und einem Empfangsterminal ist weiterhin kein Umwandler notwendig. Ferner
kann jedem beliebigen Zustand der Übertragungskanäle und verschiedenen
Benutzerwünschen
Rechnung getragen werden.