-
Allgemeiner Stand der
Technik
-
1. Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft das Gebiet der Toncodierung und -decodierung
und insbesondere ein skalierbares Stereotoncodierungs- und -decodierungsverfahren
und eine Vorrichtung dafür,
die eine arithmetische Bitslicing-Codierung verwenden.
-
2. Beschreibung
des Standes der Technik
-
Bei
einer herkömmlichen
skalierbaren Toncodierungs- und -decodierungsvorrichtung wurde die
Skalierbarkeit eines 1-Kanal-Monosignals
in Betracht gezogen [K. Brandenburg und Mitarbeiter, "First Ideas on Scalable
Audio Coding", 97.
AES-Tagung, Vorabdruck 3924, San Francisco, 1994] und [K. Brandenburg
und Mitarbeiter, "A
two- or Three-Stage Bit Rate Scalable Audio Coding System", 99. AES-Tagung,
Vorabdruck 4132, New York, 1995]. Des Weiteren offenbaren S. H.
Part und Mitarbeiter "Multi-layer
Bit-sliced Bit Rate Scalable Audio Coding", 103. AES-Tagung, Vorabdruck, 1997.
Jedoch stellen MPEG-Tonstandards [MPEG Committee ISO/IEC/JTCI/SC29/WG11,
Information technology – Coding
of moving pictures and associated Audio for data storage media to
about 1.5 Mbit/s – Teil
3: Audio, ISO/IEC IS 11172-3, 1998] oder AC-2/AC-3-Verfahren [Dolby, "Dolby AC-3 Multi-Channel Audio Coding – Submission
to the Grand Alliance Audio Specialist Group", Dolby Lab., August, 1993] eine Technologie
zum Verarbeiten von Stereo- und Mehrkanalsignalen sowie Monosignalen
bereit. In der Praxis bestehen die meisten Musiksignale aus Stereosignalen.
Es ist darum notwendig, skalierbare Audio-Codecs zu verwenden, die
auf Signale angewendet werden können,
die aus Zwei- oder Mehrkanal-Bitströmen bestehen, wie im Internet
oder einem Kommunikationsnetz.
-
Musiksignale
sind im Allgemeinen Stereosignale. Die Stereosignale werden über eine
Compact-Disk (CD), ein Kommunikationsnetz oder ein Rundfunknetz
bereitgestellt und werden künftig
im Rahmen von Multimedia-Umgebungen bereitgestellt. Jedoch haben
die vorhandenen skalierbaren Audio-Codecs bisher zumeist Monosignale
gehandhabt und haben noch keine Stereosignale verarbeitet. Um Stereosignale
zu verarbeiten, muss die Signalübertragung
so erfolgen, dass alle Signale für
einen einzelnen Kanal übertragen
werden und dann die Signale für
einen anderen Kanal übertragen
werden. Weil aber die Mengen an Bits, die in zwei Kanälen erzeugt
werden, nicht immer die gleichen sind, ist in diesem Fall die Leistung
des skalierbaren Audio-Codecs bei einer kleineren Bitrate für die Stereosignale
deutlich geringer.
-
Kurzdarstellung
der Erfindung
-
Um
die oben beschriebenen Probleme zu lösen, ist es eine Aufgabe der
vorliegenden Erfindung, ein skalierbares Verfahren und eine entsprechende
Vorrichtung zum Codieren digitaler Stereotondaten und ein Aufzeichnungsmedium
zum Aufzeichnen des Codierungsverfahrens bereitzustellen. Die Codierung
erfolgt durch das Erzeugen von Bitströmen, die aus mehreren Erweiterungsschichten,
die auf einer Basisschicht basieren, bestehen, unter Verwendung
einer Technik der arithmetischen Bitslicing-Codierung (Bit-sliced
Arithmetic Coding – BSAC).
-
Um
die Aufgabe der vorliegenden Erfindung zu erfüllen, wird ein skalierbares
Stereotoncodierungsverfahren zum Codieren von Tonsignalen in einen
geschichteten Datenstrom mit einer Basisschicht und wenigstens zwei
Erweiterungsschichten bereitgestellt, umfassend folgende Schritte:
Signalverarbeitung von Eingangs-Tonsignalen und Quantisieren der
Eingangs-Tonsignale für
jedes vorgegebene Codierungsband; wobei das Verfahren des Weiteren
folgende Schritte umfasst: Codieren der quantisierten Daten entsprechend
der Basis schicht unter den quantisierten Daten; Codieren der quantisierten
Daten entsprechend der nächsten
Erweiterungsschicht der codierten Basisschicht und der übrigen quantisierten
Daten, die aufgrund einer Schichtgrößenbegrenzung uncodiert sind
und zu der codierten Schicht gehören;
und sequenzielles Ausführen
der Schichtcodierungsschritte für
alle Erweiterungsschichten, um Bitströme zu bilden, wobei der Schritt
der Basisschichtcodierung, der Schritt der Erweiterungsschichtcodierung
und der Schritt der sequenziellen Codierung so ausgeführt werden,
dass die Nebeninformationen und quantisierten Daten, die einer zu
codierenden Schicht entsprechen, durch Ziffern der gleichen vorgegebenen
Anzahl dargestellt werden und dann unter Verwendung eines vorgegebenen
Wahrscheinlichkeitsmodells in der Reihenfolge, die von den MSB-Sequenzen zu
den LSB-Sequenzen reicht, arithmetisch codiert werden; wobei das
Verfahren dadurch gekennzeichnet ist, dass die einem Bitslicing
unterzogenen Daten des linken Kanals und des rechten Kanals miteinander
verschachtelt werden und wechselweise in Einheiten vorgegebener
Vektoren codiert werden.
-
Die
Nebeninformationen enthalten wenigstens Skalierungsfaktoren sowie
Informationen über
ein zur arithmetischen Codierung zu verwendendes Wahrscheinlichkeitsmodell.
Bei den vorgegebenen Vektoren handelt es sich um vierdimensionale
Vektoren, die durch Koppeln der einem Bitslicing unterzogenen vier
Tonkanaldaten zu einem einzigen Vektor erzeugt werden. Die vierdimensionalen
Vektoren werden in zwei Teilvektoren entsprechend Vorzuständen aufgeteilt,
die anzeigen, ob einem Bitslicing unterzogene Frequenzkomponenten,
die ungleich Null sind, codiert sind oder nicht, um die dann zu
codieren.
-
Der
Schritt des Codierens der Skalierungsfaktoren enthält des Weiteren
folgende Schritte: Erhalten des maximalen Skalierungsfaktors; Erhalten
der Differenz zwischen dem maximalen Skalierungsfaktor und den ersten
Skalierungsfak toren und arithmetisches Codieren der Differenz; und
Erhalten von Differenzen zwischen dem unmittelbar vorangegangenen
arithmetisch codierten Skalierungsfaktor und den jeweiligen Skalierungsfaktoren,
die auf den ersten Skalierungsfaktor folgen, Abbilden der Differenzen
in einen vorgegebenen Wert und arithmetisches Codieren der abgebildeten
Werte.
-
Der
Schritt des Codierens der Skalierungsfaktoren enthält folgende
Schritte: Erhalten des maximalen Skalierungsfaktors; und Erhalten
von Differenzen zwischen dem maximalen Skalierungsfaktor und den
jeweiligen Skalierungsfaktoren und arithmetisches Codieren der Differenzen.
-
Die
Kopfinformationen, die gemeinsam für alle Bänder verwendet werden, werden
codiert, und die Nebeninformationen und die quantisierten Frequenzen,
die für
die jeweilige Schicht erforderlich sind, werden durch einem Bitslicing
unterzogene Informationen gebildet, die dann zu codieren sind, um
eine Schichtstruktur zu erhalten.
-
Die
Quantisierung wird durch folgende Schritte ausgeführt: Konvertieren
der Eingangs-Tonsignale eines Zeitbereichs in Signale eines Frequenzbereichs;
Koppeln der konvertierten Signale als Signale vorgegebener Skalierungsfaktorbänder mittels
Zeit-Frequenz-Abbildung und Berechnen einer Maskierungsschwelle auf
jedem Skalierungsfaktorband; Ausführen einer zeitlichen Rauschformung
zum Steuern der zeitlichen Form des Quantisierungsrauschens innerhalb
jedes Konvertierungsfensters; Ausführen einer Intensitätsstereoverarbeitung,
dergestalt, dass nur die quantisierten Informationen eines Skalierungsfaktorbandes
für einen
von zwei Kanälen
codiert werden, wobei nur der Skalierungsfaktor für den anderen
Kanal übermittelt
wird; Vorhersagen von Frequenzkoeffizienten des augenblicklichen
Rahmens; Durchführen
einer Mitte-/Seite(M/S)-Stereoverarbeitung zum Konvertieren eines
Signals des linken Kanals und eines Signals des rechten Kanals in
ein additives Signal aus zwei Signalen und ein subtraktives Signal
davon; und Quantisieren der Signale für jedes vorgegebene Codierungsband,
dergestalt, dass Quantisierungsrauschen jedes Bandes kleiner ist
als die Maskierungsschwelle.
-
Wenn
die quantisierten Daten aus Vorzeichendaten und Größenordnungsdaten
zusammengesetzt sind, so enthalten die Schritte des Codierens der
Basisschicht und der Erweiterungsschichten und des Bildens von Bitströmen die
folgenden Schritte: arithmetisches Codieren der signifikantesten
Ziffernfolgen, die aus signifikantesten Ziffern der Größenordnungsdaten
zusammengesetzt sind; Codieren von Vorzeichendaten, die Daten ungleich
Null unter den codierten signifikantesten Ziffernfolgen entsprechen;
Codieren der signifikantesten Ziffernfolgen unter uncodierten Größenordnungsdaten
der digitalen Daten; Codieren uncodierter Vorzeichendaten unter
den Vorzeichendaten, die Größenordnungsdaten
ungleich Null unter codierten Ziffernfolgen entsprechen; und Ausführen des
Größenordnungscodierungsschrittes
und des Vorzeichencodierungsschrittes an den entsprechenden Ziffern
der digitalen Daten, wobei die jeweiligen Schritte wechselweise
an den Daten des linken Kanals und den Daten des rechten Kanals
in Einheiten vorgegebener Vektoren ausgeführt werden.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung wird eine skalierbaren
Stereotoncodierungsvorrichtung bereitgestellt, die Folgendes umfasst:
einen Quantisierungsabschnitt 160 zur Signalverarbeitung
von Eingangs-Tonsignalen und zum Quantisieren der Eingangs-Tonsignale
für jedes
Codierungsband; einen Abschnitt 170 zum arithmetischen
Bitslicing-Codieren für
das Codieren von Bitströmen
für alle
Schichten, so dass eine Schichtstruktur entsteht, durch Bandbegrenzung
für eine
Basisschicht, so dass sie skalierbar ist, zum Codieren von Nebeninformationen,
die der Basisschicht entsprechen, zum Codieren der quantisier ten
Informationen sequenziell von der signifikantesten Bitsequenz zu
der geringst-signifikanten Bitsequenz und von Komponenten mit niedrigerer
Frequenz zu Komponenten mit höherer
Frequenz, und zum Codieren von Nebeninformationen, die der nächsten Erweiterungsschicht
der Basisschicht und den quantisierten Daten entsprechen; und einen
Bitstrombildungsabschnitt 180 zum Erfassen von Daten, die
in dem Quantisierungsabschnitt und in dem Abschnitt zum arithmetischen
Bitslicing-Codieren gebildet wurden, und zum Erzeugen von Bitströmen; wobei
die Codierungsvorrichtung dadurch gekennzeichnet ist, dass der Abschnitt 170 zum
arithmetischen Bitslicing-Codieren dafür konfiguriert ist, verschachtelte
Daten des linken Kanals und Daten des rechten Kanals wechselweise
in Einheiten vorgegebener Vektoren zu codieren.
-
Der
Quantisierungsabschnitt enthält
Folgendes: einen Zeit-Frequenz-Abbildungsabschnitt
zum Konvertieren der Eingangs-Tonsignale
eines Zeitbereichs in Signale eines Frequenzbereichs; einen psychoakustischen
Abschnitt zum Koppeln der konvertierten Signale durch Signale vorgegebener
Skalierungsfaktorbänder
mittels Zeit-Frequenz-Abbildung und Berechnen einer Maskierungsschwelle
auf jedem Skalierungsfaktorband unter Verwendung eines Maskierungsphänomens,
das durch Interaktion der jeweiligen Signale erzeugt wird; und einen
Quantisierungsabschnitt zum Quantisieren der Signale für jedes
vorgegebene Codierungsband, während
das Quantisierungsrauschen jedes Bandes mit der Maskierungsschwelle
verglichen wird.
-
Des
Weiteren enthält
die Vorrichtung Folgendes: einen Abschnitt für zeitliche Rauschformung (ZRF) zum
Ausführen
einer zeitlichen Rauschformung zum Steuern der zeitlichen Form des
Quantisierungsrauschens innerhalb jedes Konvertierungsfensters;
einen Intensitätsstereoverarbeitungsabschnitt
zum Ausführen einer
Intensitätsstereoverarbeitung,
dergestalt, dass nur die quantisierten Informationen eines Skalierungsfaktorbandes
für einen
von zwei Kanälen
codiert werden, wobei nur der Skalierungsfaktor für den anderen
Kanal übermittelt
wird; einen Vorhersageabschnitt zum Vorhersagen von Frequenzkoeffizienten
des augenblicklichen Rahmens; und einen M/S-Stereoverarbeitungsabschnitt
zum Durchführen
einer M/S-Stereoverarbeitung zum Konvertieren eines Signals des
linken Kanals und eines Signals des rechten Kanals in ein additives
Signal aus zwei Signalen und ein subtraktives Signal davon.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung wird ein skalierbares
Stereotondecodierungsverfahren zum Decodieren von Tonsignalen bereitgestellt,
die so codiert sind, dass sie geschichtete Bitraten aufweisen, wobei
das Verfahren folgende Schritte umfasst: Analysieren von Daten,
die für
die jeweiligen Module in den Bitströmen mit einer Schichtstruktur
benötigt
werden; Decodieren wenigstens von Skalierungsfaktoren und Indizes
von Modellen für
arithmetisches Codieren und quantisierten Daten in der Reihenfolge
der Erzeugung der Schichten in Bitströmen mit einer Schichtstruktur,
wobei die quantisierten Daten durch Analysieren der Signifikanz
von Bits, aus denen die Bitströme
bestehen, von höher-signifikanten
Bits zu weniger-signifikanten Bits decodiert werden; Wiederherstellen
der decodierten Skalierungsfaktoren und quantisierten Daten in Signale
mit den ursprünglichen
Größenordnungen;
und Konvertieren von umgekehrt quantisierten Daten in Signale eines
Zeitbereichs; wobei das Verfahren dadurch gekennzeichnet ist, dass
die quantisierten Daten aus codierten verschachtelten linken und
rechten Kanälen
dergestalt decodiert werden, dass die quantisierten Daten wechselweise
für die
jeweiligen Kanäle
decodiert werden.
-
Das
skalierbare Stereotondecodierungsverfahren enthält des Weiteren folgende Schritte:
Durchführen einer
M/S-Stereoverarbeitung, um zu prüfen,
ob in dem Bitstromcodierungsverfahren eine M/S-Stereoverarbeitung
durchgeführt
wurde oder nicht, und Konvertieren eines Signals des linken Kanals
und eines Signals des rechten Kanals in ein additives Signal aus
zwei Signalen und ein subtraktives Signal davon, wenn die M/S-Stereoverarbeitung
durchgeführt
wurde; Prüfen,
ob in dem Bitstromcodierungsverfahren ein Vorhersageschritt durchgeführt wurde
oder nicht, und Vorhersagen von Frequenzkoeffizienten des augenblicklichen
Rahmens, wenn der Prüfschritt
ausgeführt
wurde; Prüfen,
ob in dem Bitstromcodierungsverfahren ein Intensitätsstereoverarbeitungsschritt
durchgeführt
wurde oder nicht, und, wenn die Intensitätsstereoverarbeitung durchgeführt wurde,
dann – weil
nur die quantisierten Informationen des Skalierungsfaktorbandes
für einen
einzelnen Kanal (den linken Kanal) von zwei Kanälen codiert sind – Durchführen der
Intensitätsstereoverarbeitung zum
Wiederherstellen der quantisierten Informationen des anderen Kanals
(des rechten Kanals) in einen Wert des linken Kanals; und Prüfen, ob
in dem Bitstromcodierungsverfahren ein Schritt der zeitlichen Rauschformung
(ZRF) durchgeführt
wurde oder nicht, und wenn der ZRF-Schritt durchgeführt wurde,
Ausführen
einer zeitlichen Rauschformung zum Steuern der zeitlichen Form des
Quantisierungsrauschens innerhalb jedes Konvertierungsfensters.
-
Wenn
die quantisierten Daten aus Vorzeichendaten und Größenordnungsdaten
bestehen, so wird eine Wiederherstellung von quantisierten Frequenzkomponenten
durch sequenzielles Decodieren der Größenordnungsdaten von Vorzeichenbits
quantisierter Frequenzkomponenten und ein Koppeln der Größenordnungsdaten
und der Vorzeichenbits vorgenommen.
-
Der
Decodierungsschritt wird von den signifikantesten Bits zu den geringst-signifikanten
Bits ausgeführt,
und der Wiederherstellungsschritt wird durch Koppeln der decodierten,
einem Bitslicing unterzogenen Daten und Wiederherstellen der gekoppelten
Daten in Daten quantisierter Frequenzkomponenten ausgeführt.
-
Die
Daten werden in dem Decodierungsschritt dergestalt decodiert, dass
einem Bitslicing unterzogene Informationen von vier Abtastungen
in Einheiten vierdimensionaler Vektoren decodiert werden.
-
Das
Decodieren des vierdimensionalen Vektors erfolgt dergestalt, dass
zwei Teilvektoren, die gemäß Vorzuständen codiert
wurden, die anzeigen, ob einem Bitslicing unterzogene Frequenzkomponenten
ungleich Null codiert sind oder nicht, arithmetisch codiert werden
und die zwei Teilvektoren, die gemäß den Codierungszuständen der
jeweiligen Abtastungen decodiert wurden, in vierdimensionale Vektoren
wiederhergestellt werden.
-
Des
Weiteren wird, während
die einem Bitslicing unterzogenen Daten der jeweiligen Frequenzkomponenten
aus den MSBs decodiert werden, das Decodieren übersprungen, wenn die einem
Bitslicing unterzogenen Daten "0" sind, und Vorzeichendaten
werden arithmetisch decodiert, wenn die einem Bitslicing unterzogenen
Daten "1" zum ersten Mal erscheinen.
Die Decodierung der Skalierungsfaktoren wird durch Decodieren des
maximalen Skalierungsfaktors in dem Bitstrom, arithmetisches Decodieren
von Differenzen zwischen dem maximalen Skalierungsfaktor und den
jeweiligen Skalierungsfaktoren und Subtrahieren der Differenzen
von dem maximalen Skalierungsfaktor ausgeführt. Des Weiteren enthält der Schritt
des Decodierens der Skalierungsfaktoren folgende Schritte: Decodieren
des maximalen Skalierungsfaktors aus den Bitströmen; Erhalten von Differenzen
zwischen dem maximalen Skalierungsfaktor und zu decodierenden Skalierungsfaktoren
durch Abbilden und arithmetisches Decodieren der Differenzen und
umgekehrtes Abbilden der Differenzen aus den abgebildeten Werten;
und Erhalten des ersten Skalierungsfaktors durch Subtrahieren der
Differenzen von dem maximalen Skalierungsfaktor und Erhalten der
Skalie rungsfaktoren für
die übrigen
Bänder
durch Subtrahieren der Differenzen von den vorherigen Skalierungsfaktoren.
-
Das
Decodieren der Indizes für
arithmetisch codierte Modelle wird durch folgende Schritte ausgeführt: Decodieren
des kleinsten Index' eines
arithmetischen Modells in dem Bitstrom, Decodieren von Differenzen zwischen
dem kleinsten Index und den jeweiligen Indizes in den Nebeninformationen
der jeweiligen Schichten und Addieren des kleinsten Index' und der Differenzen.
-
Alternativ
wird gemäß der vorliegenden
Erfindung eine skalierbare Stereotondecodierungsvorrichtung zum
Decodieren von Tondaten bereitgestellt, die so codiert sind, dass
sie geschichtete Bitraten aufweisen, wobei die Vorrichtung Folgendes
umfasst: einen Bitstromanalyseabschnitt 300 zum Analysieren
von Daten, die für
die jeweiligen Module in den Bitströmen mit einer Schichtstruktur
benötigt
werden; einen Decodierungsabschnitt 310 zum Decodieren
wenigstens von Skalierungsfaktoren und Indizes von Modellen für arithmetisches Codieren
und quantisierten Daten in der Reihenfolge der Erzeugung der Schichten
in Bitströmen
mit einer Schichtstruktur, wobei die quantisierten Daten durch Analysieren
der Signifikanz von Bits, aus denen die Bitströme bestehen, von höher-signifikanten
Bits zu weniger-signifikanten Bits decodiert werden; einen Wiederherstellungsabschnitt 320 zum
Wiederherstellen der decodierten Skalierungsfaktoren und quantisierten
Daten in Signale mit den ursprünglichen
Größenordnungen;
und einen Frequenz-Zeit-Abbildungsabschnitt 370 zum Konvertieren
von umgekehrt quantisierten Signalen in Signale eines Zeitbereichs;
wobei die Decodierungsvorrichtung dadurch gekennzeichnet ist, dass
die quantisierten Daten aus codierten verschachtelten linken und rechten
Kanälen
dergestalt decodiert werden, dass die quantisierten Daten wechselweise
für die
jeweiligen Kanäle
decodiert werden.
-
Die
Vorrichtung enthält
des Weiteren Folgendes: einen M/S-Stereoverarbeitungsabschnitt zum Durchführen einer
M/S-Stereoverarbeitung,
um zu prüfen,
ob in dem Bitstromcodierungsverfahren eine M/S-Stereoverarbeitung
durchgeführt
wurde oder nicht, und Konvertieren eines Signals des linken Kanals
und eines Signals des rechten Kanals in ein additives Signal aus
zwei Signalen und ein subtraktives Signal davon, wenn die M/S-Stereoverarbeitung
durchgeführt
wurde; einen Vorhersageabschnitt zum Prüfen, ob in dem Bitstromcodierungsverfahren
ein Vorhersageschritt durchgeführt
wurde oder nicht, und Vorhersagen von Frequenzkoeffizienten des
augenblicklichen Rahmens, wenn der Prüfschritt ausgeführt wurde;
einen Intensitätsstereoverarbeitungsabschnitt
zum Prüfen,
ob in dem Bitstromcodierungsverfahren eine Intensitätsstereoverarbeitung durchgeführt wurde
oder nicht, und, wenn die Intensitätsstereoverarbeitung durchgeführt wurde,
dann – weil nur
die quantisierten Informationen des Skalierungsfaktorbandes für einen
einzelnen Kanal (den linken Kanal) von zwei Kanälen codiert sind – Durchführen der
Intensitätsstereoverarbeitung
zum Wiederherstellen der quantisierten Informationen des anderen
Kanals (des rechten Kanals) in einen Wert des linken Kanals; und einen
Abschnitt zur zeitlichen Rauschformung zum Prüfen, ob in dem Bitstromcodierungsverfahren
ein Schritt der zeitlichen Rauschformung (ZRF) durchgeführt wurde
oder nicht, und wenn der ZRF-Schritt durchgeführt wurde, Ausführen einer
zeitlichen Rauschformung zum Steuern der zeitlichen Form des Quantisierungsrauschens
innerhalb jedes Konvertierungsfensters.
-
Kurze Beschreibung
der Zeichnungen
-
Die
oben genannten Aufgaben und Vorteile der vorliegenden Erfindung
werden verständlicher,
wenn wir uns einer eingehenden Beschreibung einer bevorzugten Ausführungsform
zuwenden und dabei auf die begleitenden Zeichnungen Bezug nehmen.
-
1 ist
ein Blockschaubild einer Codierungsvorrichtung gemäß der vorliegenden
Erfindung.
-
2 zeigt
den Aufbau eines Bitstromes gemäß der vorliegenden
Erfindung.
-
3 ist
ein Blockschaubild einer Decodierungsvorrichtung gemäß der vorliegenden
Erfindung.
-
4 veranschaulicht
die Anordnung von Frequenzkomponenten für einen langen Block (Fenstergröße = 2048).
-
5 veranschaulicht
die Anordnung von Frequenzkomponenten für einen kurzen Block (Fenstergröße = 2048).
-
Beschreibung
der bevorzugten Ausführungsformen
-
Im
Weiteren werden bevorzugte Ausführungsformen
der vorliegenden Erfindung eingehender anhand der begleitenden Zeichnungen
beschrieben.
-
Die
vorliegende Erfindung dient dem Codieren und Decodieren skalierbarer
digitaler Stereotondaten unter Verwendung einer Technik der arithmetischen
Bitslicing-Codierung (Bit-sliced
Arithmetic Coding – BSAC).
Oder anders ausgedrückt:
Bei der vorliegenden Erfindung wird nur ein verlustfreies Codierungsmodul durch
die BSAC-Technik ersetzt, wobei alle anderen Module des herkömmlichen
Codierers unverändert
bleiben. Die vorliegende Erfindung erweitert die Anwendbarkeit des
in dieser Weise aufgebauten skalierbaren Codierers/Decodierers.
Das heißt,
die vorliegende Erfindung kann auf ein Stereosignal angewendet werden.
-
1 ist
ein Blockschaubild einer skalierbaren Toncodierungsvorrichtung gemäß der vorliegenden
Erfindung. Die skalierbare Toncodierungsvorrichtung enthält einen
Zeit- Frequenz-Abbildungsabschnitt 100,
einen psychoakustischen Abschnitt 110, einen Abschnitt
für zeitliche
Rauschformung 120, einen Intensitätsstereoverarbeitungsabschnitt 130,
einen Vorhersageabschnitt 140, einen Mitte-/Seite(M/S)-Stereoverarbeitungsabschnitt 150,
einen Quantisierungsabschnitt 160, einen Abschnitt 170 für arithmetische
Bitslicing-Codierung und einen Bitstrombildungsabschnitt 180.
-
Die
wichtigsten auf den Menschen bezogenen akustischen Eigenschaften
bei der Codierung eines digitalen Tonsignals sind ein Maskierungseffekt
und ein Frequenzgruppenmerkmal. Der Maskierungseffekt meint ein
Phänomen,
bei dem ein Tonsignal (ein Ton) aufgrund eines anderen Signals nicht
hörbar
ist. Wenn zum Beispiel ein Zug durch einen Bahnhof fährt, so
kann eine Person während
eines leisen Gesprächs
wegen des durch den Zug verursachten Lärms nicht die Stimme ihres
Gesprächspartners
hören.
Tonsignale werden für jedes
Band innerhalb des vom Menschen hörbaren Frequenzbereichs unterschiedlich
wahrgenommen. Des Weiteren werden im Hinblick auf die Frequenzgruppenmerkmale
Geräusche
mit der gleichen Amplitude unterschiedlich wahrgenommen, wenn das
Geräuschsignal
in einer Frequenzgruppe liegt oder wenn das Geräuschsignal außerhalb
einer Frequenzgruppe liegt. In diesem Fall wird, wenn das Geräuschsignal
die Frequenzgruppe übersteigt,
das Geräusch
deutlicher wahrgenommen.
-
Bei
der Codierung human-akustischer Eigenschaften werden im Grunde diese
zwei Eigenschaften dergestalt benutzt, dass der Geräuschbereich,
der in einer Frequenzgruppe zugeordnet werden kann, berechnet wird,
woraufhin Quantisierungsrauschen erzeugt wird, das dem berechneten
Bereich entspricht, um den Informationsverlust infolge der Codierung
zu minimieren.
-
Der
Zeit-Frequenz-Abbildungsabschnitt 100 wandelt Eingangs-Tonsignale eines
Zeitbereichs in Tonsignale eines Frequenzbereichs um.
-
Der
psychoakustische Abschnitt 110 koppelt die durch den Zeit-Frequenz-Abbildungsabschnitt 100 konvertierten
Signale mit Signalen vorgegebener Skalierungsfaktorbänder und
berechnet eine Maskierungsschwelle auf jedem Skalierungsfaktorband
unter Verwendung eines Maskierungsphänomens, das durch Interaktion
mit den jeweiligen Signalen erzeugt wird.
-
Der
Zeitbereichs-Rauschformungsabschnitt 120 steuert die zeitliche
Form des Quantisierungsrauschens innerhalb jedes Konvertierungsfensters.
Das Rauschen kann durch das Filtern von Frequenzdaten zeitlich geformt
werden. Dieses Modul wird optional in dem Codierer benutzt.
-
Der
Intensitätsstereoverarbeitungsabschnitt 130 ist
ein Modul, das für
eine effizientere Verarbeitung eines Stereosignals verwendet wird,
und codiert nur die quantisierten Informationen für das Skalierungsfaktorband
eines von zwei Kanälen
mit dem Skalierungsfaktorband der anderen gesendeten Kanals. Dieses
Modul wird nicht unbedingt in dem Codierer benutzt, aber es werden
verschiedene Dinge für
jedes Skalierungsfaktorband berücksichtigt,
um zu bestimmen, ob es verwendet werden soll oder nicht.
-
Der
Vorhersageabschnitt 140 schätzt Frequenzkoeffizienten des
augenblicklichen Rahmens. Die Differenz zwischen dem vorhergesagten
Wert und der tatsächlichen
Frequenzkomponente wird quantisiert und codiert, wodurch die Menge
der erzeugten verwendbaren Bits verringert wird. Der Vorhersageabschnitt 140 wird
optional in Rahmen-Einheiten verwendet. Oder anders ausgedrückt: Weil
die Verwendung des Vorhersageabschnitts 140 die Komplexität beim Vorhersagen
des nachfolgenden Frequenzkoeffizienten vergrößert, kann der Vorhersageabschnitt 140 auch
weggelassen werden. Gele gentlich kann die Menge der tatsächlich erzeugten
Bits durch Schätzung
größer sein
als die durch Nicht-Schätzung.
In diesem Moment wird der Vorhersageabschnitt 140 nicht
verwendet.
-
Der
M/S-Stereoverarbeitungsabschnitt 150 zum effizienteren
Verarbeiten von Stereosignalen wandelt ein Signal des linken Kanals
und ein Signal des rechten Kanals in additive und subtraktive Signale
aus jeweils zwei Signalen um, um sie dann zu verarbeiten. Dieses
Modul wird nicht unbedingt in dem Codierer benutzt, aber es werden
verschiedene Dinge für
jedes Skalierungsfaktorband berücksichtigt,
um zu bestimmen, ob es verwendet werden soll oder nicht.
-
Der
Quantisierungsabschnitt 160 skalarquantisiert die Frequenzsignale
jedes Bandes so, dass die Größenordnung
des Quantisierungsrauschens jedes Bandes kleiner ist als die Maskierungsschwelle,
so dass sie nicht mehr wahrnehmbar ist. Die Quantisierung erfolgt
so, dass der RMV(Rauschen-zu-Maske-Verhältnis)-Wert,
bei dem es sich um ein Verhältnis
der Maskierungsschwelle, die durch den psychoakustischen Abschnitt 210 berechnet
wurde, zu dem Rauschen, das auf jedem Band erzeugt wird, handelt,
maximal 0 dB beträgt.
Ein RMV-Wert von maximal 0 dB bedeutet, dass die Maskierungsschwelle
höher ist
als das Quantisierungsrauschen. Oder anders ausgedrückt: Das
Quantisierungsrauschen ist nicht hörbar.
-
Der
Abschnitt 170 für
arithmetische Bitslicing-Codierung, ein Kernmodul der vorliegenden
Erfindung, kann als eine Alternative zu einem verlustfreien Codierungsabschnitt
der AAC-Technik verwendet werden, weil der vorhandene Audio-Codec, wie beispielsweise
MPEG-2-AAC, keine Skalierbarkeit bieten kann. Um den skalierbaren
Audio-Codec zu implementieren, werden die durch den Quantisierungsabschnitt 160 quantisierten
Frequenzdaten durch Kombinieren der Nebeninformationen des entsprechenden
Bandes mit den Quantisie rungsinformationen der Tondaten codiert.
Des Weiteren können
zusätzlich
zur Skalierbarkeit Leistungen ähnlich
denen beim AAC in einer obersten Schicht erreicht werden. Die Funktionen
des Abschnitts 170 für arithmetische
Bitslicing-Codierung werden eingehender beschrieben. Das Band ist
auf eines beschränkt,
das der Basisschicht entspricht, damit es skalierbar ist, und die
Nebeninformationen für
die Basisschicht werden codiert. Die Informationen für quantisierte
Werte werden nacheinander in der Reihenfolge, die von den MSB-Sequenzen
zu den LSB-Sequenzen und von den niederfrequenten Komponenten zu
den höherfrequenten
Komponenten reicht, codiert. Des Weiteren werden linke Kanäle und rechte
Kanäle
im Wechsel in Einheiten vorgegebener Vektoren codiert, um die Codierung
der Basisschicht auszuführen.
Nach Beendigung der Codierung der Basisschicht werden die Nebeninformationen
für die
nächste
Erweiterungsschicht und die quantisierten Werte von Tondaten codiert,
so dass die auf diese Weise gebildeten Bitströme einen geschichteten Aufbau
haben.
-
Der
Bitstrombildungsabschnitt 180 erzeugt Bitströme gemäß einer
vorgegebenen Syntax, die für
den skalierbaren Codec geeignet ist, durch Zusammentragen von Informationen,
die in den jeweiligen Modulen der Codierungsvorrichtung gebildet
wurden.
-
2 zeigt
den Aufbau eines Bitstromes gemäß der vorliegenden
Erfindung. Wie in 2 gezeigt, haben die Bitströme einen
geschichteten Aufbau, in dem die Bitströme von Schichten mit geringerer
Bitrate in den Bitströmen
von Schichten mit höherer
Bitrate entsprechend den Bitraten enthalten sind. Herkömmlicherweise
werden Nebeninformationen zuerst codiert, und dann werden die übrigen Informationen
codiert, um Bitströme
zu bilden. Jedoch werden bei der vorliegenden Erfindung, wie in 2 gezeigt,
die Nebeninformationen für
jede Erweiterungsschicht separat codiert. Des Weiteren werden, obgleich
alle quantisierten Daten herkömmlicherweise
nacheinander in Abtast-Einheiten codiert werden, bei der vorliegenden
Erfindung quantisierte Daten durch binäre Daten dargestellt und werden
aus der MSB-Sequenz
der binären
Daten codiert, um Bitströme
innerhalb der zugewiesenen Bits zu bilden.
-
3 ist
ein Blockschaubild einer Decodierungsvorrichtung gemäß der vorliegenden
Erfindung, die einen Bitstromanalyseabschnitt 300, einen
Abschnitt 310 für
arithmetische Bitslicing-Decodierung, einen Umkehrquantisierungsabschnitt 320,
einen M/S-Stereoverarbeitungsabschnitt 330, einen Vorhersageabschnitt 340,
einen Intensitätsstereoverarbeitungsabschnitt 350,
einen Zeitbereichs-Rauschformungsabschnitt 360 und einen
Frequenz-Zeit-Abbildungsabschnitt 370 enthält.
-
Der
Bitstromanalyseabschnitt 300 trennt Kopfinformationen und
codierte Daten in der Reihenfolge der Erzeugung der Eingangs-Bitströme und sendet
diese an die jeweiligen Module.
-
Der
Abschnitt 310 für
arithmetische Bitslicing-Decodierung decodiert Nebeninformationen
und einem Bitslicing unterzogene quantisierte Daten in der Reihenfolge
der Erzeugung der Eingangs-Bitströme, die zu dem Umkehrquantisierungsabschnitt 320 zu übertragen
sind.
-
Der
M/S-Stereoverarbeitungsabschnitt 330, der nur an die Stereosignale
angepasst ist, verarbeitet das Skalierungsfaktorband entsprechend
der M/S-Stereoverarbeitung, die in der Codierungsvorrichtung vorgenommen
wurde.
-
In
dem Fall, wo eine Schätzung
in der Codierungsvorrichtung vorgenommen wird, sucht der Vorhersageabschnitt 340 dieselben
Werte wie die decodierten Daten in dem vorherigen Rahmen durch Schätzung in der
gleichen Weise wie die Codierungsvorrichtung. Das vorhergesagte
Signal wird einem Differenzsignal hinzugefügt, das durch den Bitstromanalyseabschnitt 300 decodiert
wurde, wodurch die ursprünglichen
Frequenzkomponenten wiederhergestellt werden.
-
Der
Intensitätsstereoverarbeitungsabschnitt 350,
der nur an die Stereosignale angepasst ist, verarbeitet das Skalierungsfaktorband
entsprechend der Intensitätsstereoverarbeitung,
die in der Codierungsvorrichtung vorgenommen wurde.
-
Der
Zeitbereichs-Rauschformungsabschnitt 360, der zur Steuerung
der zeitlichen Form des Quantisierungsrauschens innerhalb jedes
Konvertierungsfensters dient, nimmt eine entsprechende Verarbeitung
vor.
-
Die
decodierten Daten werden durch ein solches Verarbeitungsmodul wie
ein herkömmlicher
Audioalgorithmus, wie beispielsweise die AAC-Standards, als ein
Signal einer zeitlichen Region wiederhergestellt. Zuerst stellt
der Umkehrquantisierungsabschnitt 320 den decodierten Skalierungsfaktor
und die quantisierten Daten in Signale mit den ursprünglichen
Größenordnungen
wieder her. Der Frequenz-Zeit-Abbildungsabschnitt 370 wandelt
umkehrquantisierte Signale in Signale eines Zeitbereichs um, so
dass sie reproduziert sind.
-
Es
wird nun der Betrieb der Codierungsvorrichtung beschrieben.
-
Eingangs-Tonsignale
werden in dem Zeit-Frequenz-Abbildungsabschnitt 100 mittels
MDCT (Modified Discrete Cosine Transform = Modifizierte Diskrete
Kosinustransformation) in Signale eines Frequenzbereichs konvertiert.
Der psychoakustischen Abschnitt 110 koppelt die Frequenzsignale
durch entsprechende Skalierungsfaktorbänder, um eine Maskierungsschwelle
zu erhalten. Des Weiteren passieren die Tonsignale, die in Signale
eines Frequenzbereichs konvertiert wurden, durch Module zum Verbessern
der Codierungseffi zienz, das heißt, den ZRF-Abschnitt 120,
den Intensitätsstereoverarbeitungsabschnitt 130,
den Vorhersageabschnitt 140 und den M/S-Stereoverarbeitungsabschnitt 150,
um dadurch effizienter komprimierte Signale zu werden.
-
Der
Quantisierungsabschnitt 160 führt eine skalare Quantisierung
aus, so dass die Größenordnung des
Quantisierungsrauschens jedes Skalierungsfaktorbandes kleiner ist
als die Maskierungsschwelle, die hörbar, aber innerhalb der zugewiesenen
Bits nicht wahrnehmbar ist. Wenn eine Quantisierung, die diese Bedingungen
erfüllt,
ausgeführt
wird, so werden Skalierungsfaktoren für die jeweiligen Skalierungsfaktorbänder und quantisierten
Frequenzwerte erzeugt.
-
Allgemein
können
im Hinblick auf die menschliche Psychoakustik nahe beieinanderliegende
Frequenzkomponenten bei einer niedrigeren Frequenz leichter wahrgenommen
werden. Bei zunehmender Frequenz jedoch wird das Intervall der wahrnehmbaren
Frequenzen breiter. Die Bandbreiten der Skalierungsfaktorbänder nehmen
mit höher
werdenden Frequenzbändern
zu. Allerdings werden zur Vereinfachung der Codierung die Skalierungsfaktorbänder, deren
Bandbreite nicht konstant ist, nicht zum Codieren verwendet, sondern
statt dessen werden Codierungsbänder,
deren Bandbreite konstant ist, verwendet. Die Codierungsbänder enthalten
32 quantisierte Frequenzkoeffizientenwerte.
-
Die
herkömmliche
Codierungs-/Decodierungsvorrichtung, bei der nur die Codierungseffizienz
berücksichtigt
wird, wie beispielsweise AAC, codiert bei der Verarbeitung von Stereosignalen
zuerst die Informationen, die üblicherweise
in dem linken und dem rechten Kanal verwendet werden, an einer Stelle
im Kopf. Erst werden die Daten des linken Kanals codiert, und dann
werden die Daten des rechten Kanals codiert. Das heißt, die
Codierung schreitet in der Reihenfolge "Kopf", "linker Kanal" und "rechter Kanal" voran.
-
Wenn
die Informationen für
den linken und den rechten Kanal unabhängig von der Signifikanz auf
diese Weise angeordnet und übertragen
werden, nachdem der Kopf verarbeitet wurde, so verschwinden, wenn die
Bitrate gesenkt wird, die Signale für den rechten Kanal, die am
hinteren Ende angeordnet sind, zuerst. Das wahrnehmbare Absinken
der Leistung wird somit schwerwiegend.
-
Die
Stereotoncodierungsvorrichtung gemäß der vorliegenden Erfindung
codiert hingegen Nebeninformationen für jeden Kanal. Oder anders
ausgedrückt:
Die Nebeninformationen für
jeden Kanal werden durch den Abschnitt 170 für arithmetische
Bitslicing-Codierung im Wechsel in der Reihenfolge des linken Kanals
und des rechten Kanals codiert. Das Codierungsverfahren der Skalierungsfaktoren
wird geringfügig
modifiziert, um eine effizientere Komprimierung zu erreichen.
-
Zuerst
wird Codierung der Skalierungsfaktoren beschrieben. Die Stereotoncodierungsvorrichtung
gemäß der vorliegenden
Erfindung codiert Skalierungsfaktoren unter Verwendung zweier Verfahren,
die weiter unten beschrieben werden, für den Zweck der Verbesserung
der Codierungseffizienz. Die Codierungsvorrichtung wählt ein
Verfahren aus, das eine bessere Leistung aufweist, und übermittelt
das ausgewählte
Verfahren an die Decodierungsvorrichtung.
-
Um
Skalierungsfaktoren zu komprimieren, ermittelt man zuerst den maximalen
Skalierungsfaktor (max_scalefactor) aus den Skalierungsfaktoren.
Dann werden Differenzen zwischen den jeweiligen Skalierungsfaktoren
und dem maximalen Skalierungsfaktor ermittelt, woraufhin die Differenzen
arithmetisch codiert werden. Bei der arithmetischen Codierung der
Differenzen zwischen Skalierungsfaktoren kommen vier Modelle zum
Einsatz. Die vier Modelle sind in den Tabellen 5.5 bis 5.8 gezeigt.
Die Informationen für
die Modelle sind in einem scalefactor_model gespeichert.
-
[Tabelle
5.5] Arithmetisches Skalierungsfaktor-Differentialmodell 1
-
[Tabelle
5.6] Arithmetisches Skalierungsfaktor-Differentialmodell 2
-
[Tabelle
5.7] Arithmetisches Skalierungsfaktor-Differentialmodell 3
-
[Tabelle
5.8] Arithmetisches Skalierungsfaktor-Differentialmodell 4
-
Als
zweites wird, um Skalierungsfaktoren zu komprimieren, der maximale
Skalierungsfaktor (max_scalefactor) aus den Skalierungsfaktoren
ermittelt, wie in dem ersten Verfahren. Dann wird die Differenz zwischen
den ersten Skalierungsfaktoren und dem maximalen Skalierungsfaktor
ermittelt, woraufhin die Differenz arithmetisch codiert wird. Dann
werden die Differenzen zwischen den übrigen Skalierungsfaktoren
und den vorherigen Skalierungsfaktoren ermittelt, und die Differenzen
werden arithmetisch codiert. In diesem Fall ist, weil die Modelle
vorgeschrieben sind, der scalefactor_model-Wert ohne Bedeutung.
-
Als
nächstes
wird die Codierung von quantisierten Frequenzkomponenten für ein Stereosignal
beschrieben. Die quantisierten Daten für jeden Kanal werden einem
Bitslicing unterzogen. Wenn ein Monokanalsignal verarbeitet wird,
so werden einem Bitslicing unterzogene Daten durch vierdimensionale
Vektoren gekoppelt, und die vierdimensionalen Vektoren werden als
eine Basiseinheit verwendet. Dies gilt auch für die Codierung eines Stereokanalsignals.
Oder anders ausgedrückt:
Die Codierung beginnt am MSB. Die vierdimensionalen Vektoren der
einem Bitslicing unterzogenen Daten werden arithmetisch vom linken
Kanal aus codiert. Als nächstes
werden die vierdimensionalen Vektoren für den rechten Kanal auf der
gleichen Frequenz arithmetisch codiert. Auf diese Weise werden der
linke Kanal und der rechte Kanal verschachtelt, um codiert zu werden.
-
Im
Fall eines einzelnen Kanals erfolgt die Codierung von den MSB zu
den LSB hin. Die einem Bitslicing unterzogenen Daten mit der gleichen
Signifikanz werden von den niederfrequenten Komponenten zu den höherfrequenten
Komponenten hin codiert. Zu diesem Zeitpunkt ist es, wenn die den
jeweiligen Vektoren zugewiesenen Bits signifikanter sind als jene,
die augenblicklich codiert werden, nicht erforderlich, den betreffenden Vektor
zu codieren, und seine Codierung wird übersprungen.
XQ0, XQ1,
XQ2, ..., XQk, ...
wobei Xqk einem Bitslicing unterzogene Daten
der quantisierten Frequenzkomponenten von 4·k bis 4·k + 3 sind.
-
Im
Fall von zwei Kanälen
erfolgt die Codierung von den MSB zu den LSB, wie im Fall eines
einzelnen Kanals. Analog werden die einem Bitslicing unterzogenen
Daten mit der gleichen Signifikanz von den niederfrequenten Komponenten
zu den höherfrequenten
Komponenten hin codiert. Jedoch wird unter Beachtung der Tatsache,
dass es zwei Kanäle
gibt, über
die Codierungsreihenfolge entschieden. Es wird davon ausgegangen,
dass die quantisierten Frequenzkomponenten im linken und im rechten
Kanal folgende sind:
Linker Kanal: XQL0, XQL1, XQL2, XQL3,
XQL4, XQL5, ..., XQLk, ...
Rechter Kanal: XQR0, XQR1, XQR2,
XQL3, XQL4, XQL5, ..., XQRk, ...
wobei XQLk und XQLRk einem
Bitslicing unterzogene Daten der quantisierten Frequenzkomponenten
von 4·k bis
(4·k
+ 3) sind.
-
Auf
diese Weise erfolgt im Fall von zwei Kanälen die Codierung von den niederfrequenten
Komponenten hin zu den höherfrequenten
Komponenten in einer ähnlichen
Reihenfolge wie im Fall von einem einzelnen Kanal. Es wird jedoch
eine Verschachtelung zwischen Kanalkomponenten vorgenommen, um signifikante Komponenten
zuerst zu codieren. Oder anders ausgedrückt: Die jeweiligen Vektoren
werden im Wechsel zwischen zwei Kanälen wie folgt codiert:
XQL1,
XQR1, XQL2, XQR2, ...
-
Da
die auf diese Weise gebildeten Informationen nacheinander in der
Reihenfolge der Signifikanz in beiden Kanälen codiert werden, wird trotz
einer Verringerung der Bitrate bei einem skalierbaren Audio-Codec die
Leistung nicht wesentlich beeinträchtigt.
-
Es
wird nun eine bevorzugte Ausführungsform
der vorliegenden Erfindung beschrieben. Die vorliegende Erfindung
kann auf die Grundstruktur der AAC-Standards angewendet werden,
einschließlich
aller Module, wie beispielsweise zusätzlicher Module zum Verbessern
der Codierungseffizienz, und implementiert einen skalierbaren digitalen
Tondatencodierer. Oder anders ausgedrückt: Obgleich bei der vorliegenden
Erfindung die Basismodule benutzt werden, die bei der Codierung/Decodierung
gemäß dem AAC-Standard
verwendet werden, werden nur die verlustfreien Codierungsmodule
durch das Bitslicing-Codierungsverfahren ersetzt, um eine skalierbare
Codierungsvorrichtung zu erhalten. Bei der vorliegenden Erfindung
werden Informationen für nur
eine einzige Bitrate nicht innerhalb eines einzelnen Bitstromes
codiert, sondern es werden Informationen für die Bitraten verschiedener
Erweiterungsschichten innerhalb eines Bitstromes mit einem geschichteten
Aufbau, wie in 2 gezeigt, in der Reihenfolge,
die von den wichtigeren Signalkomponenten zu den weniger wichtigen
Signalkomponenten reicht, codiert.
-
Gemäß der Ausführungsform
der vorliegenden Erfindung werden die gleichen Module wie bei den AAC-Standards
bis zu dem Moment verwendet, wo die verlustfreie Codierung des skalierbaren
BSAC-Codecs beginnt. Wenn also die quantisierten Frequenzdaten durch
Decodierung der AAC-Bitströme
gebildet werden, so können
die decodierten Daten zu den skalierbaren BSAC-Bitströmen wiederhergestellt
werden. Das bedeutet, dass eine verlustfreie Transcodierung zwischen
den AAC-Bitströmen
und den skalierbaren BSAC-Bitströmen
möglich
ist. Schließlich
wird je nach den Umgebungen oder Umständen eine gegenseitige Umwandlung in
ein entsprechendes Bitstromfor mat gestattet. Somit kann sowohl die
Forderung nach Codierungseffizienz als auch nach Skalierbarkeit
erfüllt
werden, und beides ist komplementär zueinander, was den Unterschied
zu anderen skalierbaren Codecs ausmacht.
-
Unter
Verwendung der auf diese Weise gebildeten Bitströme können Bitströme mit einer geringen Bitrate
gebildet werden, indem einfach die Bitströme mit geringer Bitrate, die
im höchsten
Bitstrom enthalten sind, durch Benutzeranforderung oder entsprechend
dem Status der Übertragungskanäle umgeordnet
werden. Oder anders ausgedrückt:
Bitströme,
die durch eine Codierungsvorrichtung in Echtzeit gebildet wurden,
oder Bitströme,
die auf einem Medium gespeichert sind, können durch Benutzeranforderung
so umgeordnet werden, dass sie für
eine gewünschte
Bitrate geeignet sind, um dann gesendet zu werden. Wenn die Leistung
der Hardware des Benutzers gering ist oder wenn der Benutzer die
Komplexität
des Decodierers verringern will, so brauchen überdies selbst bei geeigneten
Bitströmen
nur einige Bitströme
wiederhergestellt zu werden, wodurch die Komplexität unter
Kontrolle gehalten wird.
-
Zum
Beispiel beträgt
beim Bilden eines skalierbaren Bitstromes die Bitrate einer Basisschicht
16 Kbps, die einer obersten Schicht beträgt 64 Kbps, und die jeweiligen
Erweiterungsschichten haben ein Bitratenintervall von 8 Kbps, das
heißt,
der Bitstrom hat 7 Schichten mit 16, 24, 32, 40, 48, 56 und 64 Kbps.
Die jeweiligen Erweiterungsschichten sind so definiert, wie es in
Tabelle 2.1 gezeigt ist. Da der durch die Codierungsvorrichtung
gebildete Bitstrom einen geschichteten Aufbau hat, wie in 3 gezeigt,
enthält
der Bitstrom der obersten Schicht mit 64 Kbps die Bitströme der jeweiligen
Erweiterungsschichten (16, 24, 32, 40, 48, 56 und 64 Kbps). Wenn
ein Benutzer Daten für
die oberste Schicht anfordert, so wird der Bitstrom für die oberste
Schicht ohne jegliche Verarbeitung gesendet. Des Weiteren wird,
wenn ein anderer Benutzer Daten für die Basisschicht anfordert
(was 16 Kbps entspricht), so werden einfach nur die Anfangs-Bitströme gesendet.
-
[Tabelle
2.1] Bitrate für
jede Schicht (8 kbps-Intervall)
-
Alternativ
können
die Erweiterungsschichten auch in kleineren Intervallen aufgebaut
sein. Die Bitrate einer Basisschicht ist 16 Kbps, die einer obersten
Schicht ist 64 Kbps, und jede Erweiterungsschicht hat ein Bitraten-Intervall
von 1 Kbps. Die jeweiligen Erweiterungsschichten sind so aufgebaut,
wie in Tabelle 3.1 gezeigt. Dadurch kann eine Skalierbarkeit mit
hoher Auflösung
implementiert werden, das heißt,
es werden skalierbare Bitströme
mit einem Bitraten-Intervall von 1 kbps von 16 kbps bis 64 kbps
gebildet.
-
[Tabelle
3.1] Bitrate für
jede Schicht (1-kbps-Intervall)
-
-
Die
jeweiligen Schichten haben begrenzte Bandbreiten entsprechend den
Bitraten. Wenn eine Skalierbarkeit mit 8 kbps-Intervallen beabsichtigt
ist, so sind die Bandbreiten so begrenzt, wie es in den Tabellen 2.2
und 2.3 gezeigt ist. Im Fall eines 1-kbps-Intervalls sind die Bandbreiten
so begrenzt, wie es in den Tabellen 3.2 und 3.3 gezeigt ist.
-
[Tabelle
2.2] Bandgrenze in jeder Schicht für kurze Fenster (8-kbps-Intervall)
-
[Tabelle
2.3] Bandgrenze in jeder Schicht für lange Fenster (8-kbps-Intervall)
-
[Tabelle
3.2] Bandgrenze in jeder Schicht für kurze Fenster (1-kbps-Intervall)
-
[Tabelle
3.3] Bandgrenze in jeder Schicht für lange Fenster (1-kbps-Intervall)
-
-
Die
Eingangsdaten sind PCM-Daten mit einer Abtastrate von 48 KHz, und
die Größenordnung
eines einzelnen Rahmens ist 1024. Die Anzahl der Bits, die für einen
einzelnen Rahmen für
eine Bitrate von 64 Kbps verwendet werden kann, beträgt im Durchschnitt
1365,3333 (= 64000 Bits/s·(1024/48000)).
Gleichermaßen kann
die Größe der verfügbaren Bits
für einen
einzelnen Rahmen entsprechend den jeweiligen Bitraten berechnet
werden. Die berechneten Anzahlen der verfügbaren Bits für einen
einzelnen Rahmen sind in Tabelle 2.4 im Fall von 8 kbps gezeigt.
-
[Tabelle
2.4] Verfügbare
Bits für
jeden Kanal in jeder Schicht (8-kbps-Intervall)
-
Es
wird nun das Stereotonsignalcodierungs- und -decodierungsverfahren
gemäß der vorliegenden
Erfindung näher
beschrieben.
-
1. Codierungsverfahren
-
Das
gesamte Codierungsverfahren ist das gleiche wie das, das in den
internationalen MPEG-2-AAC-Standards beschrieben ist, und die Bitslicing-Codierung,
die in der vorliegenden Erfindung vorgeschlagen wird, wird als eine
verlustfreie Codierung angewendet.
-
1.1. Psychoakustischer
Abschnitt
-
Unter
Verwendung eines psychoakustischen Modells werden zuerst der Blocktyp
eines Rahmens, der momentan verarbeitet wird (lang, Start, kurz
oder Stopp), die SMR-Werte der jeweiligen Verarbeitungsbänder, Gruppeninformationen
eines kurzen Blocks und zeitlich verzögerte PCM-Daten für eine Zeit-Frequenzsynchronisation
mit dem psychoakustischen Modell aus Eingangsdaten erzeugt und an
einen Zeit-Frequenz-Abbildungsabschnitt übermittelt. Es wird das ISO/IEC
11172-3-Modell 2 zur Berechnung des psychoakustischen Modells verwendet
[MPEG Committee ISO/IEC/JTC1/SC29/WG11, Information Technology,
Coding of moving pictures and associated Audio for data storage
media to about 1.5 Mbit/s, Teil 3: Audio, ISO/OEC IS 11172-3, 1993].
Dieses Modul muss unbedingt in dieser Ausführungsform verwendet werden,
aber es können
entsprechend den Benutzern verschiedene Modelle verwendet werden.
-
1.2. Zeit-Frequenz-Abbildungsabschnitt
-
Es
kommt eine Zeit-Frequenz-Abbildung zum Einsatz, wie sie in den internationalen MPEG-2-AAC-Standards
definiert ist. Der Zeit-Frequenz-Abbildungsabschnitt konvertiert
Daten eines Zeitbereichs in Daten eines Frequenzbereichs unter Verwendung
von MDCT entsprechend dem Blocktyp-Ausgangssignal unter Verwendung
des psychoakustischen Modells. Zu diesem Zeitpunkt betragen die
Blockgrößen 2048
und 256 im Fall von langen/Start-/Stopp-Blöcken bzw. im Fall eines kurzen
Blocks, und MDCT wird 8 Mal ausgeführt. Dann werden die Fenstertyp-
und Fenstergruppierungsinformationen an den Bitstrombildungsabschnitt 180 übertragen.
Bisher wurde das gleiche Verfahren verwendet wie das, das beim herkömmlichen MPEG-2-AAC
verwendet wird [MPEG Committee ISO/IEC/JTC1/SC29/WG11, ISO/IEC MPEG-2
AAC IS 13818-7, 1997].
-
1.3. Abschnitt für zeitliche
Rauschformung (ZRF)
-
Es
wird ein Abschnitt für
zeitliche Rauschformung verwendet, wie er in den internationalen MPEG-2-AAC-Standards
definiert ist. Der ZRF 120 ist eine optionales Modul und
steuert die zeitliche Form des Quantisierungsrauschens innerhalb
jedes Konvertierungsfensters. Die zeitliche Rauschformung kann durch das
Filtern von Frequenzdaten erfolgen. Der ZRF 120 sendet
die ZRF-Informationen an den Bitstrombildungsabschnitt 180.
-
1.4. Intensitätsstereoverarbeitungsabschnitt
-
Es
wird ein Intensitätsstereoverarbeitungsabschnitt
verwendet, wie er in den internationalen MPEG-2-AAC-Standards definiert
ist. Der Intensitätsstereoverarbeitungsabschnitt 130 ist
eines der Verfahren zum effizienteren Verarbeiten von Stereosignalen.
Die Intensitätsstereoverarbeitung
erfolgt so, dass nur die quantisierten Informationen eines Skalierungsfaktorbandes
für einen
von zwei Kanälen
codiert werden und nur der Skalierungsfaktor für den anderen Kanal übertragen
wird. Dieses Modul ist ein optionales Modul, und es wird unter Beachtung
verschiedener Umstände
festgelegt, ob dieses Modul für
jedes Skalierungsfaktorband verwendet wird oder nicht. Das Intensitätsstereoverarbeitungsmodul 130 sendet
Intensitätsstereomarkierungswerte
an den Bitstrombildungsabschnitt 180.
-
1.5. Vorhersageabschnitt
-
Es
wird ein Vorhersageabschnitt verwendet, wie er in den internationalen
MPEG-2-AAC-Standards definiert ist. Der Vorhersageabschnitt 140 ist
ein optionales Modul und sagt Frequenzkoeffizienten des momentanen
Rahmens vorher. Des Weiteren sendet der Vorhersageabschnitt 140 die
Parameter, die mit Vorhersagen zusammenhängen, an den Bitstrombildungsabschnitt 180.
-
1.6. Mitte-/Seite(M/S)-Stereoverarbeitungsabschnitt
-
Es
wird ein M/S-Stereoverarbeitungsabschnitt verwendet, wie er in den
internationalen MPEG-2-AAC-Standards definiert ist. Der M/S-Stereoverarbeitungsabschnitt 150 ist
ein optionales Modul und ist eines der Verfahren zum effizienteren
Verarbeiten von Stereosignalen. Die M/S-Stereoverarbeitung erfolgt zum
Konvertieren eines Signals des linken Kanals und eines Signals des
rechten Kanals in ein additives Signal aus zwei Signalen und eines
subtraktiven Signals davon.
-
1.7. Quantisierungsabschnitt
-
Die
Daten, die zu denen eines Frequenzbereichs konvertiert wurden, werden
mit zunehmenden Skalierungsfaktoren so quantisiert, dass der SNR-Wert
des Skalierungsfaktorbandes, der in den Tabellen 1.1 und 1.2 gezeigt
ist, kleiner ist als der SMR des Ausgangswertes des psychoakustischen
Modells. Hier wird eine skalare Quantisierung vorgenommen, und das
Basisskalierungsfaktorintervall ist 21/4.
Die Quantisierung erfolgt so, dass das wahrnehmbar Rauschen minimiert
wird. Das genaue Quantisierungsverfahren ist im MPEG-2-AAC beschrieben.
Hier besteht das erhaltene Ausgangssignal aus quantisierten 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
-
1.8. Bitverdichtung unter
Verwendung arithmetischer Bitslicing-Codierung
-
Die
Bitverdichtung erfolgt durch den Abschnitt 170 für arithmetische
Bitslicing-Codierung und den Bitstrombildungsabschnitt 180.
Für eine
zweckmäßige Codierung
werden Frequenzkomponenten umgeordnet. Die Umordnungsreihenfolge
ist je nach Blocktypen unterschiedlich. Wenn ein langes Fenster
in dem Blocktyp verwendet wird, so werden die Frequenzkomponenten
in der Reihenfolge der Skalierungsfaktorbänder umgeordnet, wie in 4 gezeigt.
Wenn ein kurzes Fenster in dem Blocktyp verwendet wird, so werden
jeweils vier Frequenzkomponenten aus acht Blöcken wiederholt in ansteigender
Reihenfolge umgeordnet, wie in 5 gezeigt.
-
Die
umgeordneten quantisierten Daten und Skalierungsfaktoren werden
als geschichtete Bitströme gebildet.
Die Bitströme
werden durch Syntaxen gebildet, wie in den Tabellen 7.1 bis 7.13
gezeigt. Die Anfangselemente eines Bitstromes sind Elemente, die üblicherweise
beim herkömmlichen
AAC verwendet werden können,
und die Elemente, die durch die vorliegende Erfindung neu vorgeschlagen
werden, werden speziell erläutert.
Der prinzipielle Aufbau ähnelt
jedoch dem der AAC-Standards.
-
[Tabelle
7.1] Syntax des bsac_1step_data_block ()
-
[Tabelle
7.2] Syntax des bsac_lstep_stream ()
-
-
[Tabelle
7.3] Syntax des bsac_raw_data_block ()
-
[Tabelle
7.4] Syntax des bsac_main_stream ()
-
-
[Tabelle
7.5] Syntax des bsac_single_main_stream ()
-
[Tabelle
7.6] Syntax des bsac_pair_main_stream ()
-
[Tabelle
7.7] Syntax des bsac_layer_stream ()
-
-
[Tabelle
7.8] Syntax des bsac_channel_stream ()
-
[Tabelle
7.9] Syntax des bsac_general_info ()
-
[Tabelle
7.10] Syntax des bsac_side_info ()
-
-
[Tabelle
7.11] Syntax der bsac_spectral_data ()
-
Die
Elemente, die durch die vorliegende Erfindung neu vorgeschlagen
werden, werden speziell erläutert.
-
1.8.1. Codierung des bsac_channel_stream
-
"common_window" stellt dar, ob zwei
Kanäle
den gleichen Formatblock verwenden. "ax_scalefactor[ch]" stellt den maximalen Wert der Skalierungsfaktoren
dar, bei dem es sich um eine ganze Zahl handelt, zum Beispiel 8
Bits. Des Weiteren stellt "tns_data_present[ch]" dar, ob ZRF in der
Codierungsvorrichtung verwendet wird oder nicht. "gain_control_data_present[ch]" stellt eine Markierung
dar, die anzeigt, dass das Zeit-Frequenz-Abbildungsverfahren verwendet
wird, um eine skalierbare Abtastrate (Scalable Sampling Rate – SSR) im
AAC zu unterstützen.
Des Weiteren stellt "stereo_mode" eine 2-Bit-Markierung
dar, die ein Stereosignalverarbeitungsverfahren anzeigt, in dem "00" unabhängig bedeutet, "01" bedeutet, dass alle ms_used
Einsen sind, "10" bedeutet, dass sich
die 1 Bit-Maske von max_sfb-Bändern
von ms_used im Nebeninformations-Teil der Schicht befindet, "11" bedeutet, dass sich
die 2-Bit-Maske von max_sfb-Bändern
von stereo_info im Nebeninformations-Teil der Schicht befindet.
-
1.8.2. Codierung von bsac_data
-
"frame_length" stellt die Größe aller
Bitströme
für einen
einzelnen Rahmen dar, die in Einheiten von Bytes ausgedrückt wird,
zum Beispiel 9 Bits im Fall eines Monosignals (MS) und 10 Bits im
Fall eines Stereosignals. Des Weiteren stellt "encoded_layer" die Codierung für die in dem Bitstrom codierte
oberste Schicht dar, die im Fall eines 8-kbps-Intervalls 3 Bits ist und im Fall
eines 1-kbps-Intervalls 6 Bits ist. Die Informationen für die Erweiterungsschichten
sind in den Tabellen 2.1 und 3.1 gezeigt. Des Weiteren stellt "scalefactor-model [ch]" Informationen bezüglich Modellen
dar, die zur arithmetischen Codierung von Differenzen in Skalierungsfaktoren
zu verwenden sind. Diese Modelle sind in Tabelle 4.2 gezeigt.
-
[Tabelle
4.2] Arithmetisches Model des Differentialskalierungsfaktors
-
"min_ArModel" stellt den kleinsten
Wert der Indizes von Modellen zur arithmetischen Codierung dar. "ArModel_model" stellt Informationen
bezüglich
der Modelle dar, die zur arithmetischen Codierung des Differenzsignals
zwischen ArModel und min_ArModel verwendet werden. Dieses Informationen
sind in Tabelle 4.3 gezeigt.
-
[Tabelle
4.3] Arithmetisches Model des Differential-ArModel
-
1.8.3. Codierung von bsac_side_info
-
Zuerst
werden die Informationen codiert, die für alle Schichten verwendet
werden können,
und dann werden die Nebeninformationen codiert, die üblicherweise
für die
jeweiligen Erweiterungsschichten werden. "acode_ms_used [g][sfb]" stellt ein Codewort
dar, das durch arithmetische Codierung von ms_used erhalten wurde,
d. h. eine 1-Bit-Markierung,
die anzeigt, ob in der Fenstergruppe g und dem Skalierungsfaktorband
scf eine M/S-Codierung erfolgt oder nicht, wobei ms_used folgendermaßen definiert
ist:
0: Independent
1: ms_used.
-
"acode_ms_used [g][sfb]" stellt ein Codewort
dar, das durch arithmetische Codierung von ms_used erhalten wurde,
d. h. eine 1-Bit-Markierung, die anzeigt, ob in der Fenstergruppe
g und dem Skalierungsfaktorband scf eine M/S-Codierung verwendet wird oder nicht,
wobei ms_used folgendermaßen
definiert ist:
0: Independent; und
1: ms_used.
-
"acode_stereo_info
[g][sfb]" stellt
ein Codewort dar, das durch arithmetische Codierung von ms_used erhalten
wurde, d. h. eine 2-Bit-Markierung, die anzeigt, ob eine Intensitätsstereocodierung
in der Fenstergruppe g und dem Skalierungsfaktorband scf verwendet
wird oder nicht, wobei stereo_info folgendermaßen definiert ist:
00:
Independent;
01: ms_used;
10: Intensity_in_phase; und
11:
Intensity_out_of_phase.
-
"Acode_scf" stellt ein Codewort
dar, das durch arithmetische Codierung des Skalierungsfaktors erhalten
wurde, und "acode_ArModel" stellt ein Codewort
dar, das durch arithmetische Codierung des ArModel erhalten wurde.
Bei ArModel handelt es sich um Informationen, auf deren Grundlage
eine Auswahl unter den Modellen, die in Tabelle 4.3 angeführt sind,
getroffen wird.
-
1.8.4. Codierung von bsac_spectral_data
-
Die
Nebeninformationen, die üblicherweise
für die
jeweiligen Erweiterungsschichten verwendet werden, und die quantisierten
Frequenzkomponenten werden unter Verwendung der BSAC-Technik einem
Bitslicing unterzogen und dann arithmetisch codiert. "acode_vec0" stellt ein Codewort
dar, das durch arithmetische Codierung des ersten Teilvektors (Teilvektor
0) unter Verwendung des arithmetischen Modells, das als der ArModel-Wert
definiert ist, erhalten wird. "acode_vec1" stellt ein Codewort
dar, das durch arithmetische Codierung des zweiten Teilvektors (Teilvektor
1) unter Verwendung des arithmetischen Modells, das als der ArModel-Wert definiert ist,
erhalten wird. "acode_sign" stellt ein Codewort
dar, das durch arithmetische Codierung des Vorzeichen-Bit unter
Verwendung des arithmetischen Modell, das in Tabelle 5.15 definiert
ist, erhalten wird.
-
[Tabelle
5.15] Arithmetisches Modell des Vorzeichens
-
Während die
Anzahl der Bits, die zum Codieren der jeweiligen Teilvektoren verwendet
werden, berechnet und mit der Anzahl der verfügbaren Bits für die jeweiligen
Erweiterungsschichten verglichen wird, wird – wenn die Zahl der verwendeten
Bits mindestens so groß ist
wie die Zahl der verfügbaren
Bits – die
Codierung der nächsten
Erweiterungsschicht neu begonnen.
-
Im
Fall eines langen Blocks ist die Bandbreite der Basisschicht bis
zum 21. Skalierungsfaktorband begrenzt. Dann werden die Skalierungsfaktoren
bis zum 21. Skalierungsfak torband und die Modelle für arithmetische
Codierung der entsprechenden Codierungsbänder codiert. Die Bitzuweisungsinformationen
werden anhand der Modelle für
arithmetische Codierung ermittelt. Der maximale Wert der zugewiesenen
Bits wird anhand der Bitinformationen ermittelt, die jedem Codierungsband
zugewiesen sind, und die Codierung erfolgt anhand des maximalen
Quantisierungsbitwertes mittels des oben erwähnten Codierungsverfahrens.
Dann werden die nächsten
quantisierten Bits nacheinander codiert. Wenn zugewiesene Bits eines
bestimmten Band weniger sind als die des momentan codierten Bandes,
so erfolgt keine Codierung. Wenn zugewiesene Bits eines bestimmten
Bandes die gleichen sind wie die des momentan codierten Bandes,
so wird das Band zum ersten Mal codiert. Da die Bitrate der Basisschicht
16 Kbps beträgt,
beträgt
die Gesamtbitzulässigkeit
336 Bits. Somit wird die Menge der insgesamt verwendeten Bits kontinuierlich
berechnet, und die Codierung wird in dem Moment beendet, wo die
Bit-Menge 336 übersteigt.
-
Nachdem
alle Bitströme
für die
Basisschicht (16 Kbps) gebildet wurden, werden die Bitströme für die nächste Erweiterungsschicht
gebildet. Da die begrenzten Bandbreiten für die höheren Schichten erweitert werden,
erfolgt die Codierung von Skalierungsfaktoren und Modellen zur arithmetischen
Codierung nur für
die neu hinzugefügten
Bänder
zu den begrenzten Bändern
für die
Basisschicht. In der Basisschicht werden einem Bitslicing unterzogene
uncodierte Daten für
jedes Band und die einem Bitslicing unterzogenen Daten eines neu hinzugefügten Bandes
aus den MSBs in der gleichen Weise wie in der Basisschicht codiert.
Wenn die Menge der insgesamt verwendeten Bits größer ist als die verfügbare Bit-Menge,
so wird die Codierung beendet, und es wird mit der Vorbereitung
zum Bilden der nächsten
Erweiterungsschicht-Bitströme
begonnen. Auf diese Weise können
Bitströme
für die übrigen Schichten
mit 32, 40, 48, 56 und 64 Kbps erzeugt werden.
-
2. Decodierungsverfahren
-
2.1. Analyse und Decodierung
von Bitströmen
-
2.1.1. Decodierung des
bsac_channel_stream
-
Die
Decodierung des bsac_channel_stream geschieht in der folgenden Reihenfolge:
Zuerst wird der max_scalefactor ermittelt. Dann wird ics_info ()
ermittelt. Wenn ZRF-Daten vorliegen, werden ZRF-Daten ermittelt.
Wenn es zwei Kanäle
gibt, wird stereo_mode ermittelt, und dann werden BSAC-Daten ermittelt.
-
2.1.2. Decodierung von
bsac_data
-
Die
Nebeninformationen, die zur Decodierung von frame_length, encoded_layer,
Skalierungsfaktormodellen und arithmetischen Modellen benötigt werden,
werden in dem Bitstrom decodiert.
-
2.1.3. Decodierung des
bsac_stream
-
Die
BSAC-Ströme
haben einen geschichteten Aufbau. Zuerst werden die Nebeninformationen
für die Basisschicht
von dem Bitstrom getrennt und dann arithmetisch decodiert. Dann
werden die einem Bitslicing unterzogenen Informationen für die quantisierten
Frequenzkomponenten von dem Bitstrom getrennt und dann arithmetisch
decodiert. Dann werden die Nebeninformationen für die nächste Erweiterungsschicht decodiert, und
die einem Bitslicing unterzogenen Informationen für die quantisierten
Frequenzkomponenten werden arithmetisch decodiert.
-
Die
Decodierung von Nebeninformationen für die jeweiligen Erweiterungsschichten
und die Decodierung von einem Bitslicing unterzogenen Daten werden
wiederholt ausgeführt,
bis die Erweiterungsschicht größer ist
als die codierte Schicht.
-
2.1.4. Decodierung von
stereo_info oder ms_used
-
Die
Decodierung von stereo_info oder ms_used wird durch stereo_mode,
das eine Stereo-Maske darstellt, beeinflusst. Wenn der stereo_mode
0 oder 1 ist, so ist die Decodierung von stereo_info oder ms_used nicht
erforderlich.
-
Wenn
der stereo_mode 1 ist, so sind alle ms_used gleich 1. Die Informationen
für die
ms_used werden zu dem M/S-Stereoverarbeitungsabschnitt übertragen,
so dass eine M/S-Stereoverarbeitung erfolgt. Wenn der stereo_mode
2 ist, so wird der Wert der ms_used unter Verwendung des in Tabelle
5.13 gezeigten Modells arithmetisch decodiert. Des Weiteren werden
die Informationen für
die ms_used zu dem M/S-Stereoverarbeitungsabschnitt übertragen,
so dass eine M/S-Stereoverarbeitung erfolgt.
-
[Tabelle
5.13] ms_used-Modell
-
Wenn
der stereo_mode 3 ist, so werden die stereo_info unter Verwendung
des in Tabelle 5.14 gezeigten Modells arithmetisch decodiert. Die
decodierten Daten werden zu dem M/S-Stereoverarbeitungsabschnitt oder den
Intensitätsstereoverarbeitungsabschnitt übertragen,
so dass eine M/S-Stereoverarbeitung oder eine Intensitätsstereoverarbeitung
in Einheiten von Skalierungsfaktorbändern erfolgt, wie im AAC beschrieben.
-
[Tabelle
5.14] stereo_info-Modell
-
-
2.1.5. Decodierung der
bsac_side_info
-
Die
skalierbaren Bitströme,
die in dem oben Dargelegten gebildet wurden, haben einen geschichteten Aufbau.
Zuerst werden die Nebeninformationen für die Basisschicht von dem
Bitstrom getrennt und dann decodiert. Dann werden die einem Bitslicing
unterzogenen Informationen für
die quantisierten Frequenzkomponenten, die in dem Bitstrom der Basisschicht
enthalten sind, von dem Bitstrom getrennt und dann decodiert. Das
gleiche Decodierungsverfahren wie das für die Basisschicht wird auch
auf die anderen Erweiterungsschichten angewendet.
-
2.1.5.1. Decodierung von
Skalierungsfaktoren
-
Die
Frequenzkomponenten werden in Skalierungsfaktorbänder mit Frequenzkoeffizienten,
die Vielfache von 4 sind, unterteilt. Jedes Skalierungsfaktorband
hat einen Skalierungsfaktor. Es gibt zwei Verfahren zur Decodierung
von Skalierungsfaktoren. Das zu verwendende Verfahren ist aus dem
scf_coding-Wert zu erkennen.
-
Zuerst
wird der max_scalefactor zu einer ganzen 8-Bit-Zahl ohne Vorzeichen
decodiert. Allgemein werden während
der Codierung Werte, die durch das Abbilden von Differenzen erhalten
werden, codiert. Somit werden für
die jeweiligen Skalierungsfaktorbänder die abgebildeten Werte
unter Verwendung von Modellen, die in Tabelle 5.2 gezeigt sind,
arithmetisch decodiert. Zu diesem Zeitpunkt wird – wenn der
arithmetisch decodierte Wert 54 beträgt, was bedeutet, dass der
abgebildete Wert mindestens 54 beträgt, da die Differenz zwischen
54 und dem abgebildeten Wert erneut codiert wird – die codierte
Differenz erneut decodiert, um zu einem Wert von mindestens 54 wiederhergestellt
zu werden. Wenn die Decodierung der abgebildeten Werte vollendet
ist, so werden die abgebildeten Werte durch ein Differenzsignal
invers abgebildet. Das Abbilden und das inverse Abbilden erfolgen
unter Verwendung von Abbildungstabellen, wie sie in den Tabellen
5.1 und 5.2 zu sehen sind. Der erste Skalierungsfaktor kann unter
Verwendung des Differenzsignals zwischen max_scalefactor und sich
selbst ermittelt werden.
-
[Tabelle
5.1] Differentialskalierungsfaktor-zu-Index-Übergangstabelle
-
[Tabelle
5.2] Index-zu-Differentialskalierungsfaktor-Übergangstabelle
-
-
Als
zweites wird der max_scalefactor zu einer ganzen 8-Bit-Zahl ohne Vorzeichen
decodiert. Für
alle Skalierungsfaktoren werden die Differenzen zwischen einem Verschiebungswert,
d. h. dem max_scalefactor und alle Skalierungsfaktoren, arithmetisch
decodiert. Die Skalierungsfaktoren können durch Subtrahieren der Differenzsignale
vom max_scalefactor ermittelt werden. Die arithmetischen Modelle,
die zum Decodieren der Differenzen verwendet werden, sind eines
der Elemente, welche die Bitströme
bilden, und werden von den Bitströmen getrennt, die bereits decodiert
wurden.
-
Der
folgenden Pseudocode beschreibt das Decodierungsverfahren für die Skalierungsfaktoren
in der Basisschicht und die anderen Erweiterungsschichten.
-
-
-
Hier
ist layer_sfb[layer] ein Startskalierungsfaktorband zum Decodieren
von Skalierungsfaktoren in den jeweiligen Erweiterungsschichten,
und layer_sfb[layer+1] ist ein Endskalierungsfaktorband.
-
2.1.5.2. Decodierung des
Index' des arithmetischen
Modells
-
Die
Frequenzkomponenten werden in Codierungsbänder mit 32 Frequenzkoeffizienten
unterteilt, um verlustfrei codiert zu werden. Das Codierungsband
ist eine Basiseinheit, die bei der verlustfreien Codierung verwendet
wird.
-
Bei
dem Index von Modellen zur arithmetischen Codierung handelt es sich
um Informationen zu den Modellen, die zum arithmetischen Codieren
und Decodieren der einem Bitslicing unterzogenen Daten jedes Codierungsbandes
verwendet werden und die anzeigen, welches von den in Tabelle 4.4
gezeigten Modellen in den arithmetischen Codierungs- und Decodierungsverfahren
verwendet werden.
-
[Tabelle
4.4] Parameter des arithmetischen BSAC-Modells
-
Es
werden Differenzen zwischen einem Verschiebungswert und allen Indizes
von Modellen zur arithmetischen Codierung berechnet, und dann werden
Differenzsignale unter Verwendung der in Tabelle 4.3 gezeigten Modelle
arithmetisch codiert. Hier ist unter vier in Tabelle 4.3 gezeigten
Modellen das zu verwendende Modell durch den Wert von ArModel_model
angegeben und wird in dem Bitstrom als 2 Bits gespeichert. Der Verschiebungswert
ist ein 5-Bit-min_ArModel-Wert,
der in dem Bitstrom gespeichert ist. Die Differenzsignale werden
in der umgekehrten Reihenfolge des Codierungsverfahrens decodiert,
und dann werden die Differenzsignale dem Verschiebungswert hinzugefügt, um die
Indizes von Modellen zur arithmetischen Codierung wiederherzustellen.
-
Der
folgende Pseudocode beschreibt das Decodierungsverfahren für die Indizes
von Modellen zur arithmetischen Codierung und ArModel[cband] in
den jeweiligen Erweiterungsschichten.
-
-
Hier
ist layer_sfb[layer] ein Startskalierungsfaktorband zum Decodieren
von Indizes von Modellen zur arithmetischen Codierung in den jeweiligen
Erweiterungsschichten, und layer_sfb[layer+1] ist ein Endskalierungsfaktorband.
decode_cband[ch][g][cband] ist eine Markierung, die anzeigt, ob
ein arithmetisches Codierungsmodell decodiert wurde (1) oder nicht
decodiert (0) wurde.
-
2.1.6. Decodierung von
einem Bitslicing unterzogenen Daten
-
Die
quantisierten Sequenzen werden als einem Bitslicing unterzogene
Sequenzen gebildet. Die jeweiligen vierdimensionalen Vektoren werden
entsprechend ihrem Status in zwei Teilvektoren unterteilt. Für eine effektive
Komprimierung werden die zwei Teilvektoren als eine verlustfreies
Codierung arithmetisch codiert. Es wird über das Modell entschieden,
das zur arithmetischen Codierung für jedes Codie rungsband verwendet werden
soll. Diese Informationen werden im ArModel gespeichert.
-
Wie
in den Tabellen 6.1 bis 6.31 gezeigt, setzen sich die jeweiligen
arithmetischen Codierungsmodelle aus mehreren Modellen niederer
Ordnung zusammen. Die Teilvektoren werden unter Verwendung eines
der Modelle niederer Ordnung codiert. Die Modelle niederer Ordnung
werden entsprechend der Dimension des zu codierenden Teilvektors,
der Signifikanz eines Vektors oder den Codierungszuständen der
jeweiligen Abtastungen klassifiziert. Die Signifikanz eines Vektors
wird anhand der Bitposition des zu codierenden Vektors entschieden.
Oder anders ausgedrückt:
Je nachdem, ob die einem Bitslicing unterzogenen Informationen für das MSB,
das nächste
MSB oder das LSB gelten, unterscheidet sich die Signifikanz eines
Vektor. Das MSB hat die höchste
Signifikanz, und das LSB hat die geringste Signifikanz. Die Codierungsstatuswerte
der jeweiligen Abtastungen werden in dem Maße erneuert, wie die Vektorcodierung
vom MSB zum LSB voranschreitet. Zunächst wird der Codierungsstatuswert
als Null initialisiert. Wenn dann ein Bit-Wert ungleich Null angetroffen wird,
so ändert
sich der Codierungsstatuswert zu 1.
-
[Tabelle 6.1] Arithmetisches
BSAC-Modell 0
-
- Zugewiesenes Bit = 0
- Arithmetisches BSAC-Modell 1
- Nicht verwendet
-
[Tabelle
6.2] Arithmetisches BSAC-Modell 2 Zugewiesenes
Bit = 1
-
[Tabelle
6.3] Arithmetisches BSAC-Modell 3 Zugewiesenes
Bit = 1
-
[Tabelle
6.4] Arithmetisches BSAC-Modell 4 Zugewiesene
Bits = 2
-
[Tabelle
6.5] Arithmetisches BSAC-Modell 5 Zugewiesene
Bits = 2
-
-
[Tabelle
6.6] Arithmetisches BSAC-Modell 6 Zugewiesene
Bits = 3
-
-
[Tabelle
6.7] Arithmetisches BSAC-Modell 7 Zugewiesene
Bits = 3
-
-
[Tabelle
6.8] Arithmetisches BSAC-Modell 8 Zugewiesene
Bits = 4
-
-
-
[Tabelle
6.9] Arithmetisches BSAC-Modell 9 Zugewiesene
Bits = 4
-
-
[Tabelle
6.10] Arithmetisches BSAC-Modell 10 Zugewiesene
Bits (Abit) = 5
-
-
-
[Tabelle
6.11] Arithmetisches BSAC-Modell 11 Zugewiesene
Bits (Abit) = 5
-
-
-
[Tabelle 6.12] Arithmetisches
BSAC-Modell 12
-
- Wie das arithmetische BSAC-Modell 10, aber Zugewiesene Bits
= 6
-
[Tabelle 6.13] Arithmetisches
BSAC-Modell 13
-
- Wie das arithmetische BSAC-Modell 11, aber Zugewiesene Bits
= 6
-
[Tabelle 6.14] Arithmetisches
BSAC-Modell 14
-
- Wie das arithmetische BSAC-Modell 10, aber Zugewiesene Bits
= 7
-
[Tabelle 6.15] Arithmetisches
BSAC-Modell 15
-
- Wie das arithmetische BSAC-Modell 11, aber Zugewiesene Bits
= 7
-
[Tabelle 6.16] Arithmetisches
BSAC-Modell 16
-
- Wie das arithmetische BSAC-Modell 10, aber Zugewiesene Bits
= 8
-
[Tabelle 6.17] Arithmetisches
BSAC-Modell 17
-
- Wie das arithmetische BSAC-Modell 11, aber Zugewiesene Bits
= 8
-
[Tabelle 6.18] Arithmetisches
BSAC-Modell 18
-
- Wie das arithmetische BSAC-Modell 10, aber Zugewiesene Bits
= 9
-
[Tabelle 6.19] Arithmetisches
BSAC-Modell 19
-
- Wie das arithmetische BSAC-Modell 11, aber Zugewiesene Bits
= 9
-
[Tabelle 6.20] Arithmetisches
BSAC-Modell 20
-
- Wie das arithmetische BSAC-Modell 10, aber Zugewiesene Bits
= 10
-
[Tabelle 6.21] Arithmetisches
BSAC-Modell 21
-
- Wie das arithmetische BSAC-Modell 11, aber Zugewiesene Bits
= 10
-
[Tabelle 6.22] Arithmetisches
BSAC-Modell 22
-
- Wie das arithmetische BSAC-Modell 10, aber Zugewiesene Bits
= 11
-
[Tabelle 6.23] Arithmetisches
BSAC-Modell 23
-
- Wie das arithmetische BSAC-Modell 11, aber Zugewiesene Bits
= 11
-
[Tabelle 6.24] Arithmetisches
BSAC-Modell 24
-
- Wie das arithmetische BSAC-Modell 10, aber Zugewiesene Bits
= 12
-
[Tabelle 6.25] Arithmetisches
BSAC-Modell 25
-
- Wie das arithmetische BSAC-Modell 11, aber Zugewiesene Bits
= 12
-
[Tabelle 6.26] Arithmetisches
BSAC-Modell 26
-
- Wie das arithmetische BSAC-Modell 10, aber Zugewiesene Bits
= 13
-
[Tabelle 6.27] Arithmetisches
BSAC-Modell 27
-
- Wie das arithmetische BSAC-Modell 11, aber Zugewiesene Bits
= 13
-
[Tabelle 6.28] Arithmetisches
BSAC-Modell 28
-
- Wie das arithmetische BSAC-Modell 10, aber Zugewiesene Bits
= 14
-
[Tabelle 6.29] Arithmetisches
BSAC-Modell 29
-
- Wie das arithmetische BSAC-Modell 11, aber Zugewiesene Bits
= 14
-
[Tabelle 6.30] Arithmetisches
BSAC-Modell 30
-
- Wie das arithmetische BSAC-Modell 10, aber Zugewiesene Bits
= 15
-
[Tabelle 6.31] Arithmetisches
BSAC-Modell 31
-
- Wie das arithmetische BSAC-Modell 11, aber Zugewiesene Bits
= 15
-
Die
zwei Teilvektoren sind ein- bis vierdimensionale Vektoren. Die Teilvektoren
werden von den MSB zu den LSB und von den niederfrequenten Komponenten
zu den höherfrequenten
Komponenten arithmetisch codiert. Die Indizes von Modellen zur arithmetischen
Codierung, die bei der arithmetischen Codierung verwendet werden,
werden zuvor in dem Bitstrom in den Reihenfolge von niedrigen Frequenzen
zu hohen Frequenzen gespeichert, bevor die einem Bitslicing unterzogenen
Daten zu jedem Codierungsband in Einheiten von Codierungsbändern übermittelt
werden.
-
Die
jeweiligen einem Bitslicing unterzogenen Daten werden arithmetisch
codiert, um die Codewort-Indizes zu erhalten.
-
Diese
Indizes werden zu den ursprünglichen
quantisierten Daten durch Bitkopplung unter Verwendung des folgenden
Pseudocodes wiederhergestellt.
-
"pre_state[]" ist ein Status,
der anzeigt, ob der augenblicklich decodierte Wert 0 ist oder nicht. "snf" ist die Signifikanz
eines decodierten Vektors. "Idx0" ist ein Codewortindex,
dessen vorheriger Status 0 ist. "idx1" ist ein Codewortindex,
dessen vorheriger Status 1 ist. "dec_sample[]" sind decodierte
Daten. "start_i" ist eine Startfrequenzlinie
aus decodierten Vektoren.
-
-
Während die
einem Bitslicing unterzogenen Daten von quantisierten Frequenzkomponenten
von den MSB zu den LSB codiert werden, werden die Vorzeichen-Bits
von Frequenzkoeffizienten ungleich Null arithmetisch codiert. Ein
Bit mit negativem (–)
Vorzeichen wird durch eine 1 dargestellt, und ein Bit mit positivem (+)
Vorzeichen wird durch eine 0 dargestellt.
-
Wenn
die einem Bitslicing unterzogenen Daten in einem Decodierer arithmetisch
decodiert werden und zuerst ein arithmetisch decodierter Bit-Wert
ungleich Null angetroffen wird, folgen deshalb die Informationen
des Vorzeichens in dem Bitstrom, d. h. acode_sign. Das sign_bit
wird unter Verwendung dieser Informationen mit den in Tabelle 5.9
gezeigten Modellen arithmetisch decodiert. Wenn das sign_bit 1 ist,
so werden die Vorzeichen-Informationen an die quantisierten Daten
(y) übergeben,
die durch Koppeln der getrennten Daten gebildet werden, und zwar
wie folgt:
-
-
2.2. M/S-Stereoverarbeitungsabschnitt
(optionales Modul)
-
Anhand
der Markierung, die im Bitstrom enthalten ist, und ms_used[] ist
zu erkennen, ob ein M/S-Stereoverarbeitungsmodul für jedes
Skalierungsfaktorband verwendet wird oder nicht. Wenn eins verwendet
wird, so wird die M/S-Stereoverarbeitung unter Verwendung des gleichen
Verfahrens ausgeführt,
wie es in den AAC gezeigt ist.
-
2.3. Vorhersageabschnitt
(Optionales Modul)
-
Anhand
der Markierung, die im Bitstrom enthalten ist, und prediction_present
ist zu erkennen, ob ein Vorhersagemodul für jedes Skalierungsfaktorband
verwendet wird oder nicht. Wenn eins verwendet wird, so wird die
Vorhersage unter Verwendung des gleichen Verfahrens ausgeführt, wie
es in den AAC gezeigt ist.
-
2.4. Intensitätsstereoverarbeitungsabschnitt
(optionales Modul)
-
Anhand
der Markierung, die im Bitstrom enthalten ist, und stereo_info ist
zu erkennen, ob ein Intensitätsstereoverarbeitungsmodul
für jedes
Skalierungsfaktorband verwendet wird oder nicht. Wenn eins verwendet
wird, so wird die Intensitätsstereoverarbeitung
unter Verwendung des gleichen Verfahrens ausgeführt, wie es in den AAC gezeigt
ist.
-
2.5. ZRF-Abschnitt (optionales
Modul)
-
Anhand
der Markierung, die im Bitstrom enthalten ist, und tns_present ist
zu erkennen, ob ein ZRF-Modul verwendet wird oder nicht. Wenn eins
verwendet wird, so wird die ZRF unter Verwendung des Verfahrens ausgeführt, wie
es in den AAC gezeigt ist.
-
2.6. Umkehrquantisierung
-
Der
Umkehrquantisierungsabschnitt stellt die decodierten Skalierungsfaktoren
und quantisierten Daten zu Signalen mit den ursprünglichen
Größenordnungen
wieder her. Das Umkehrquantisierungsverfahren ist in den AAC-Standards
beschrieben.
-
2.7. Frequenz-Zeit-Abbildung
-
Der
Frequenz-Zeit-Abbildungsabschnitt führt eine Umkehrkonvertierung
von Tonsignalen eines Frequenzbereichs in Signale eines Zeitbereichs
durch, so dass sie durch einen Benutzer reproduziert werden. Die Formel
für das
Abbilden des Frequenzbereichssignals in das Zeitbereichssignal ist
in den AAC-Standards definiert. Des Weiteren sind noch verschiedene
Punkte, wie beispielsweise ein abbildungsbezogenes Fenster, in den
AAC-Standards beschrieben.
-
Ausführungsformen
der vorliegenden Erfindung ermöglichen
ein ähnliche
Leistung wie die eines herkömmlichen
Codierers, bei dem nur die Komprimierung berücksichtigt wird, bei einer
höheren
Bitrate, so dass sowohl Monosignale als auch Stereosignale so verarbeitet
werden, dass verschiedene Benutzervorgaben erfüllt werden, während flexible
Bitströme
gebildet werden. Oder anders ausgedrückt: Per Benutzervor gabe werden
die Informationen für
die Bitraten verschiedener Schichten ohne Überlappung mit einem einzigen
Bitstrom kombiniert, wodurch Bitströme mit guter Tonqualität entstehen.
Des Weiteren wird zwischen einem Sende-Endgerät und einem Empfangs-Endgerät kein Umsetzer
benötigt.
Außerdem
können
jeder beliebige Status von Sendekanälen und verschiedene Benutzervorgaben
berücksichtigt
werden.
-
Des
Weiteren findet die Skalierbarkeit sowohl auf Stereosignalen als
auch auf Monosignale Anwendung.
-
Ausführungsformen
der vorliegenden Erfindung können
in herkömmlichen
Toncodierungs- und -decodierungsvorrichtungen Anwendung finden,
die über
Module zur Verbesserung der Codierungs-/Decodierungseffizienz verfügen, wodurch
die Leistung bei verschiedenen Bitraten verbessert wird.
-
Obgleich
bei Ausführungsformen
der vorliegenden Erfindung die Basismodule, die bei einer Codierung oder
Decodierung gemäß den AAC-Standards
verwendet werden, wie beispielsweise Zeit-Frequenz-Abbildung oder
Quantisierung, benutzt werden, wird nur das verlustfreie Codierungsmodul
durch das Bitslicing-Codierungsverfahren ersetzt, um Skalierbarkeit
zu ermöglichen.
-
Da
die Bitströme
skalierbar sind, kann ein einzelner Bitstrom mehrere Bitströme mit verschiedenen
Bitraten enthalten. Im Gegensatz zu herkömmlichen Codierern hat der
skalierbare Codierer gemäß Ausführungsformen
der vorliegenden Erfindung feiner abgestufte Erweiterungsschichten,
so dass der Anwendungsbereich erweitert wird.
-
Des
Weiteren wird im Gegensatz zu anderen skalierbaren Audio-Codecs
eine gute Tonqualität
bei einer höheren
Bitrate angeboten.
-
Wenn
Ausführungsformen
der vorliegenden Erfindung mit den AAC-Standards kombiniert werden,
so kann fast die gleiche Tonqualität bei der Bitrate der obersten
Schicht erreicht werden.
-
Obgleich
bei Ausführungsformen
der vorliegenden Erfindung der herkömmliche Audioalgorithmus, wie beispielsweise
die MPEG-2-AAC-Standards, verwendet wird, unterscheidet sich nur
der verlustfreie Codierungsabschnitt von dem herkömmlichen.
Somit werden die quantisierten Signale eines Frequenzbereichs in dem
AAC-Bitstrom decodiert, und die skalierbaren BSAC-Bitströme können auf
der Grundlage der decodierten Signale gebildet werden. Oder anders
ausgedrückt:
Es ist eine verlustfreie Transcodierung möglich. Des Weiteren können AAC-Bitströme aus skalierbaren
BSAC-Bitströmen in umgekehrter
Reihenfolge gebildet werden. Dank dieser Funktionen werden verschiedene
AAC-Bitströme,
die nur zum Verbessern der Codierungseffizienz gebildet werden,
entsprechend ihrer Umgebung konvertierbar verwendet. Somit ist,
um Skalierbarkeit zu ermöglichen,
eine zweifache oder dreifache Arbeit zum Bilden von Bitströmen zum
Erreichen von Skalierbarkeit durch eine separate Codierungsvorrichtung
nicht erforderlich.
-
Des
Weiteren haben Ausführungsformen
der vorliegenden Erfindung eine gute Codierungseffizienz, das heißt, die
beste Leistung wird bei einer festen Bitrate wie bei den herkömmlichen
Codierungstechniken erreicht, und betrifft ein Codierungs-/Decodierungsverfahren
und eine entsprechende Vorrichtung, womit die Bitrate, die in geeigneter
Weise für
die bevorstehende Multimedia-Technologie codiert ist, wiederhergestellt wird.
Des Weiteren können
gemäß Ausführungsformen
der vorliegenden Erfindung Daten für Bitraten für verschiedene
Erweiterungsschichten innerhalb eines einzelnen Bitstromes dargestellt
werden. Somit können
entsprechend der Leistung der Decodierer und der Bandbreite oder
der Besetztzustände
von Sendekanälen
von Benutzern oder durch Benutzervorgabe die Größen der Bitraten oder deren
Komplexität
gesteuert werden.