DE19747119C2 - Verfahren und Vorrichtungen zum Codieren bzw. Decodieren eines Audiosignals bzw. eines Bitstroms - Google Patents
Verfahren und Vorrichtungen zum Codieren bzw. Decodieren eines Audiosignals bzw. eines BitstromsInfo
- Publication number
- DE19747119C2 DE19747119C2 DE19747119A DE19747119A DE19747119C2 DE 19747119 C2 DE19747119 C2 DE 19747119C2 DE 19747119 A DE19747119 A DE 19747119A DE 19747119 A DE19747119 A DE 19747119A DE 19747119 C2 DE19747119 C2 DE 19747119C2
- Authority
- DE
- Germany
- Prior art keywords
- spectral
- code
- spectral values
- grid
- bit stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/66—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission for reducing bandwidth of signals; for improving efficiency of transmission
- H04B1/662—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission for reducing bandwidth of signals; for improving efficiency of transmission using a time/frequency relationship, e.g. time compression or expansion
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
Die vorliegende Erfindung bezieht sich auf Verfahren und
Vorrichtungen zum Codieren bzw. Decodieren eines Audio
signals bzw. eines Bitstroms und insbesondere auf Verfahren
und Vorrichtungen zum Codieren bzw. Decodieren eines Audio
signals bzw. eines Bitstroms, die eine fehlerrobuste Entro
piecodierung bzw. -decodierung und insbesondere eine fehler
robuste Huffman-Codierung bzw. -Decodierung ausführen kön
nen.
Moderne Audiocodierverfahren bzw. -decodierverfahren, die
beispielsweise nach dem Standard MPEG-Layer 3 arbeiten, sind
in der Lage, die Datenrate von Audiosignalen beispielsweise
um einen Faktor 12 zu komprimieren, ohne die Qualität der
selben merkbar zu verschlechtern. Um eine derartig hohe
Datenratenreduktion zu erreichen, wird ein Audiosignal ab
getastet, wodurch eine Folge von zeitdiskreten Abtastwerten
erhalten wird. Wie es in der Technik bekannt ist, wird diese
Folge von zeitdiskreten Abtastwerten mittels geeigneter
Fensterfunktionen gefenstert, um gefensterte Blöcke von
zeitlichen Abtastwerten zu erhalten. Ein Block zeitlich
gefensterter Abtastwerte wird dann mittels einer Filterbank,
einer modifizierten diskreten Cosinustransformation (MDCT)
oder einer anderen geeigneten Einrichtung in den Frequenzbe
reich transformiert, um Spektralwerte zu erhalten, die
insgesamt das Audiosignal, d. h. den zeitlichen Ausschnitt,
der durch den Block von zeitdiskreten Abtastwerten gegeben
ist, im Frequenzbereich darstellen. Üblicherweise werden
sich zu 50% überlappende zeitliche Blöcke erzeugt und
mittels einer MDCT in den Frequenzbereich transformiert, wo
durch aufgrund der speziellen Eigenschaften der MDCT immer
beispielsweise 1024 zeitdiskrete Abtastwerte zu 1024
Spektralwerten führen.
Es ist bekannt, daß die Aufnahmefähigkeit des menschlichen
Ohrs vom Augenblicksspektrum des Audiosignals selbst ab
hängt. Diese Abhängigkeit ist in dem sog. psychoakustischen
Modell erfaßt, mittels dem es seit längerem möglich ist,
abhängig vom augenblicklichen Spektrum Maskierungsschwellen
zu berechnen. Maskierung bedeutet, daß ein bestimmter Ton
bzw. Spektralanteil verdeckt wird, wenn beispielsweise ein
benachbarter Spektralbereich eine relativ hohe Energie be
sitzt. Diese Tatsache der Maskierung wird ausgenutzt, um die
nach der Transformation vorhandenen Spektralwerte möglichst
grob zu quantisieren. Es wird daher angestrebt, einerseits
hörbare Störungen im wieder decodierten Audiosignal zu ver
meiden und andererseits möglichst wenig Bits zu verwenden,
um das Audiosignal zu codieren bzw. hier zu quantisieren.
Die durch die Quantisierung eingeführten Störungen, d. h.
das Quantisierungsrauschen, soll unter der Maskierungs
schwelle liegen und somit unhörbar sein. Gemäß bekannter
Verfahren wird daher eine Einteilung der Spektralwerte in
sog. Skalenfaktorbänder durchgeführt, die den Frequenz
gruppen des menschlichen Ohrs entsprechen sollten. Spektral
werte in einer Skalenfaktorgruppe werden mit einem Skalen
faktor multipliziert, um Spektralwerte eines Skalenfaktor
bandes insgesamt zu skalieren. Die durch den Skalenfaktor
skalierten Skalenfaktorbänder werden anschließend quanti
siert, woraufhin quantisierte Spektralwerte entstehen.
Selbstverständlich ist eine Gruppierung in Skalenfaktorbän
der nicht entscheidend. Sie wird jedoch bei den Standards
MPEG-Layer 3 bzw. bei dem Standard MPEG-2 AAC (AAC = Ad
vanced Audio Coding) verwendet.
Ein sehr wesentlicher Aspekt der Datenreduzierung besteht in
der nach dem Quantisieren folgenden Entropie-Codierung der
quantisierten Spektralwerte. Für die Entropiecodierung wird
üblicherweise eine Huffman-Codierung verwendet. Unter einer
Huffman-Codierung versteht man eine Codierung mit variabler
Länge, d. h. die Länge des Codeworts für einen zu codieren
den Wert ist abhängig von dessen Auftrittswahrscheinlichkeit.
Logischerweise ordnet man dem wahrscheinlichsten
Zeichen den kürzesten Code, d. h. das kürzeste Codewort, zu,
so daß mit der Huffman-Codierung eine sehr gute Redundanz
reduktion erreicht werden kann. Ein Beispiel für eine all
seits bekannte Codierung mit allgemeiner Länge ist das
Morse-Alphabet.
In der Audiocodierung werden Huffman-Codes zur Codierung der
quantisierten Spektralwerte benutzt. Ein moderner Audio-
Coder, der beispielsweise nach dem Standard MPEG-2 AAC
arbeitet, verwendet zur Codierung der quantisierten Spek
tralwerte verschiedene Huffman-Codetabellen, die dem Spek
trum nach bestimmten Kriterien abschnittsweise zugeordnet
werden. Dabei werden immer 2 oder 4 Spektralwerte in einem
Codewort gemeinsam codiert.
Ein Unterschied des Verfahrens nach MPEG-2 AAC gegenüber dem
Verfahren MPEG-Layer 3 besteht nun darin, daß verschiedene
Skalenfaktorbänder, d. h. verschiedene Spektralwerte, zu
beliebig vielen Spektralabschnitten oder "Sections" grup
piert werden. Bei AAC umfaßt ein Spektralabschnitt oder eine
"Section" zumindest vier Spektralwerte aber
vorzugsweise mehr als vier Spektralwerte. Der gesamte
Frequenzbereich der Spektralwerte wird daher in benachbarte
Sections aufgeteilt, wobei eine Section ein Frequenzband
darstellt, derart, daß alle Sections zusammen den gesamten
Frequenzbereich, der durch die Spektralwerte nach der Trans
formation derselben überdeckt wird, umfassen.
Einem Abschnitt wird nun ebenso wie beim MPEG-Layer-3-
Verfahren zum Erreichen einer maximalen Redundanzreduktion
eine sog. Huffman Tabelle aus einer Mehrzahl derartiger
Tabellen zugeordnet. Im Bitstrom des AAG-Verfahrens, welches
üblicherweise 1024 Spektralwerte aufweist, befinden sich nun
die Huffman-Codewörter für die Spektralwerte in aufsteigen
der Frequenzreihenfolge. Die Information über die in jedem
Frequenzabschnitt verwendete Tabelle wird in den Seitenin
formationen übertragen. Diese Situation ist in Fig. 2 dargestellt.
Fig. 2 stellt den beispielhaften Fall dar, bei dem der
Bitstrom 10 Huffman-Codeworte umfaßt. Wenn immer aus einem
Spektralwert ein Codewort gebildet wird, so können hier 10
Spektralwerte codiert sein. Üblicherweise werden jedoch
immer 2 oder 4 Spektralwerte durch ein Codewort gemeinsam
codiert, weshalb Fig. 2 einen Teil des codierten Bitstroms
darstellt, der 20 bzw. 40 Spektralwerte umfaßt. In dem Fall,
in dem jedes Huffman-Codewort 2 Spektralwerte umfaßt, stellt
das mit der Nr. 1 bezeichnete Codewort die ersten 2 Spek
tralwerte dar, wobei die Länge des Codeworts Nr. 1 relativ
klein ist, was bedeutet, daß die Werte der beiden ersten
Spektralwerte, d. h. der beiden niedrigsten Frequenzkoeffi
zienten, relativ häufig auftreten. Das Codewort mit der Nr.
2 hingegen besitzt eine relativ große Länge, was bedeutet,
daß die Beträge des 3. und 4. Spektralkoeffizienten im
codierten Audiosignal relativ selten sind, weshalb dieselben
mit einer relativ großen Bitmenge codiert werden. Aus Fig. 2
ist ferner ersichtlich, daß die Codewörter mit den Nr. 3, 4
und 5, die die Spektralkoeffizienten 5 und 6, bzw. 7 und 8
bzw. 9 und 10 darstellen, ebenfalls relativ häufig auftre
ten, da die Länge der einzelnen Codewörter relativ gering
ist. Ähnliches gilt für die Codewörter mit den Nr. 6-10.
Wie es bereits erwähnt wurde, ist es aus Fig. 2 deutlich
ersichtlich, daß die Huffman-Codewörter für die codierten
Spektralwerte bezüglich der Frequenz linear ansteigend im
Bitstrom angeordnet sind, wenn ein Bitstrom betrachtet wird,
der durch eine bekannte Codierungsvorrichtung erzeugt wird.
Ein großer Nachteil von Huffman-Codes im Falle fehlerbehaf
teter Kanäle ist die Fehlerfortplanzung. Es sei beispiels
weise angenommen, daß das Codewort Nr. 2 in Fig. 2 gestört
ist. Mit einer gewissen nicht niedrigen Wahrscheinlichkeit
ist dann auch die Länge dieses falschen Codeworts Nr. 2
verändert. Dieselbe unterscheidet sich somit von der rich
tigen Länge. Wenn im Beispiel von Fig. 2 das Codewort Nr. 2
bezüglich seiner Länge durch eine Störung verändert worden
ist, ist es für einen Codierer nicht mehr möglich, die An
fänge der Codewörter 3-10, d. h. fast des gesamten dar
gestellten Audiosignals, zu bestimmen. Es können also auch
alle anderen Codewörter nach dem gestörten Codewort nicht
mehr richtig decodiert werden, da nicht bekannt ist, wo
diese Codewörter beginnen, und da ein falscher Startpunkt
aufgrund des Fehlers gewählt wurde.
Das europäische Patent Nr. 0612156 schlägt als Lösung für
das Problem der Fehlerfortpflanzung vor, einen Teil der
Codewörter variabler Länge in einem Raster anzuordnen, und
die restlichen Codewörter in die verbleibenden Lücken zu
verteilen, so daß ohne vollständige Decodierung oder bei
fehlerhafter Übertragung der Anfang eines Codeworts leichter
gefunden werden kann.
Das bekannte Verfahren schafft für die Fehlerfortpflanzung
zwar eine teilweise Abhilfe durch Umsortierung der Code
wörter. Für manche Codewörter wird ein fester Platz im
Bitstrom vereinbart, während für die restlichen Codewörter
die verbleibenden Zwischenräume zur Verfügung stehen. Dies
kostet keine zusätzlichen Bits, verhindert aber im Fehler
fall die Fehlerfortpflanzung unter den umsortierten Code
wörtern.
Entscheidender Parameter für die Effizienz des bekannten
Verfahrens ist jedoch, wie das Raster in der praktischen
Anwendung bestimmt wird, d. h. wie viele Rasterpunkte
verwendet werden müssen, welchen Rasterabstand die Raster
punkte haben, usw. Das europäische Patent 0612156 liefert
jedoch neben dem allgemeinen Hinweis, ein Raster zur
Eindämmung der Fehlerfortpflanzung zu verwenden, keine
näheren Hinweise darauf, wie das Raster effizient gestaltet
werden soll, um einerseits eine fehlerrobuste Codierung und
andererseits auch eine effiziente Codierung zu ermöglichen.
Die Aufgabe der vorliegenden Erfindung besteht darin, Verfahren
und Vorrichtungen zum fehlerrobusten und dennoch ef
fizienten Entropiecodieren zu schaffen.
Diese Aufgabe wird durch ein Verfahren zum Codieren eines
Audiosignals gemäß Anspruch 1 oder 4 sowie durch eine Vor
richtung zum Codieren eines Audiosignals gemäß Anspruch 13
oder 14 gelöst.
Eine weitere Aufgabe der vorliegenden Erfindung besteht da
rin, Verfahren und Vorrichtungen zum fehlerrobusten und den
noch effizienten Entropiedecodieren zu schaffen.
Diese Aufgabe wird durch ein Verfahren zum Decodieren eines
Bitstroms gemäß Anspruch 15 oder 16 sowie durch eine Vor
richtung zum Decodieren eines Bitstroms gemäß Anspruch 17
oder 18 gelöst.
Der vorliegenden Erfindung liegt die Erkenntnis zugrunde,
daß das bereits vorgeschlagene Raster in bestimmter Weise
ausgestaltet bzw. belegt werden muß, um neben einer fehler
robusten Codierung bzw. Decodierung auch eine effiziente
Codierung bzw. Decodierung zu erreichen. Wesentlich dabei
ist, daß die Codeworte, die durch eine Entropiecodierung in
Form einer Huffman-Codierung erhalten werden, inhärent eine
unterschiedliche Länge haben, da der größte Codierungsgewinn
erreicht wird, wenn einem zu codierenden Wert, der am häu
figsten auftritt, ein möglichst kurzes Codewort zugewiesen
wird. Dagegen führt ein zu codierender Wert, der relativ
selten auftritt, trotz eines relativ langen Codeworts, das
demselben zugewiesen wird, zu einer statistisch gesehen op
timalen Datenmenge. Codeworte, die durch eine Huffman-Codie
rung erhalten werden, weisen also an sich unterschiedliche
Längen auf.
Gemäß einem ersten Aspekt der vorliegenden Erfindung werden
an den Rasterpunkten sog. Prioritätscodewörter plaziert,
derart, daß trotz eines möglichen Fehlers im Bitstrom auf
grund des Rasters immer der Anfang der Prioritätscodewörter
von einem Decodierer sicher festgestellt werden kann. Unter
Prioritätscodewörtern sind Codewörter zu verstehen, die
psychoakustisch bedeutsam sind. Dies bedeutet, daß die Spek
tralwerte, die durch sog. Prioritätscodewörter codiert sind,
wesentlich zum Höreindruck eines decodierten Audiosignals
beitragen. Wenn das Audiosignal beispielsweise einen großen
Anteil an Sprache aufweist, so könnten die Prioritätscode
wörter die Codewörter sein, die eher niedrigere Spektral
werte darstellen, da die wesentlichen Spektralinformationen
in diesem Falle im niedrigen Spektralbereich auftreten. Wenn
an ein Audiosignal gedacht wird, das eine Gruppe von Tönen
im mittleren Frequenzbereich aufweist, so könnten die Prio
ritätscodewörter die Codewörter sein, die den Spektralwerten
in dem entsprechenden mittleren Frequenzbereich zugeordnet
sind, da dieselben dann die psychoakustisch bedeutsamen
Spektralwerte sind. Psychoakustisch bedeutsame Spektralwerte
könnten auch Spektralwerte sein, die im Vergleich zu anderen
Spektralwerten im Spektrum einen großen Betrag, d. h. eine
große Signalenergie, umfassen. Psychoakustisch weniger be
deutsame Codewörter, die auch als Nicht-Prioritätscodewörter
bezeichnet werden, füllen dagegen das Raster auf. Sie werden
also nicht mit Rasterpunkten ausgerichtet, sondern in den
noch freien Plätzen nach dem Positionieren der Prioritäts
codewörter auf die Rasterpunkte "einsortiert".
Gemäß dem ersten Aspekt der vorliegenden Erfindung werden
somit die Prioritätscodewörter, die Spektralwerten zugeord
net sind, welche psychoakustisch bedeutsam sind, in einem
Raster derart angeordnet, daß der Anfang der Prioritätscode
wörter mit den Rasterpunkten zusammenfällt.
Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird
eine Gruppierung der Spektralwerte in Spektralabschnitte
durchgeführt, wobei jedem Spektralabschnitt eine andere
Codetabelle zugeordnet wird. Die Zuordnung einer Codetabelle
zu einem Spektralabschnitt beruht auf signalstatistischen
Aspekten, d. h. welche Codetabelle optimal zur Codierung
eines Spektralabschnitts geeignet ist, wobei die Zuordnung
einer Codetabelle zu einem Spektralabschnitt in der Technik
bereits bekannt ist.
Erfindungsgemäß wird nun ein Raster verwendet, welches
mehrere Gruppen von in sich äquidistanten Rasterpunkten
aufweist, derart, daß der Abstand der Rasterpunkte einer
Gruppe von Rasterpunkten von der Codetabelle abhängt, die
zur Codierung eines Spektralabschnitts verwendet wird. In
einem anderen Spektralabschnitt wird eine andere Codetabelle
verwendet, um eine optimale Datenreduktion zu erreichen. Der
anderen Codetabelle ist wiederum eine andere äquidistante
Gruppe von Rasterpunkten zugeordnet, wobei der Abstand
zwischen zwei Rasterpunkten dieser anderen Gruppen von
Rasterpunkten von der entsprechenden weiteren Codetabelle
abhängt. Die Abhängigkeit des Abstands zweier Rasterpunkte
in den verschiedenen Gruppen von Rasterpunkten kann zumin
dest auf drei verschiedene Arten und Weisen bestimmt werden.
Zum einen wird die maximale Länge eines Codeworts einer
Codetabelle ermittelt. Der Abstand zweier Rasterpunkte in
der Rasterpunktgruppe, die dieser Codetabelle zugeordnet
ist, kann nun gleich oder größer als die maximale Codewort
länge in der Codetabelle gewählt werden, derart, daß auch
das längste Codewort dieser Codetabelle in dem Raster Platz
hat. Analog dazu wird der Abstand zweier Rasterpunkte einer
anderen Gruppe von Rasterpunkten, die wiederum einer anderen
Codetabelle entspricht, gemäß der maximalen Codewortlänge
dieser anderen Codetabelle bestimmt.
Die zweite Alternative, die nachfolgend beschrieben ist,
kann ebenfalls zu einer Erhöhung der Anzahl der Rasterpunkte
beitragen. Aufgrund der inhärenten Eigenschaften des Huff
man-Codes sind seltener auftretende Codewörter eher länger
als häufiger auftretende Codewörter. Wenn daher der Raster
punktabstand gleich oder größer als die Länge des Codeworts
mit maximaler Länge einer Tabelle gewählt wird, so werden
meistens Codewörter ins Raster eingefügt, die kürzer als der
Rasterpunktabstand sind. Erfindungsgemäß kann der Rasterpunktabstand
daher auch kleiner als die Länge des längsten
Codeworts einer Tabelle gewählt werden. Falls dann beim
Codieren ein Codewort auftritt, das nicht ins Raster paßt,
so wird der nicht ins Raster passende Rest an einer anderen
geeigneten Stelle nicht mit dem Raster ausgerichtet in den
Bitstrom eingetragen. Dies führt dazu, daß dieses "zers
tückelte" Codewort nicht mehr wirksam vor einer Fehlerfort
pflanzung geschützt ist. Da dasselbe jedoch sehr selten
auftritt, kann dies im Interesse einer Erhöhung der Anzahl
der Rasterpunkte in Kauf genommen werden.
Die dritte Möglichkeit zum Bestimmen der unterschiedlichen
Rasterpunktabstände besteht darin, nicht die maximale Code
wortlänge einer Tabelle zu berücksichtigen, sondern die
Länge des längsten tatsächlich auftretenden Codeworts im
Bitstrom in einem codierten Spektralabschnitt zu verwenden.
Gemäß einem dritten Aspekt der vorliegenden Erfindung kann
anstelle einer im wesentlichen linear mit der Frequenz an
steigenden Anordnung der Codewörter im Bitstrom ein fre
quenzmäßig verteiltes Anordnen der Codeworte verwendet wer
den, wobei dieses Verfahren auch als "Scramblen" bezeichnet
wird. Dies hat den Vorteil, daß sog. "Burst"-Fehler nicht zu
einer fehlerhaften Decodierung eines kompletten Frequenzban
des führt, sondern nur kleine Störungen in mehreren ver
schiedenen Frequenzbereichen erzeugen.
Gemäß einem vierten Aspekt der vorliegenden Erfindung kann
ferner anstelle einer linear mit der Frequenz ansteigenden
Anordnung der Codewörter auch eine Anordnung verwendet wer
den, bei der z. B. nur jedes n-te Codewort (z. B. jedes 2.
oder jedes 3. oder jedes 4., . . .) im Raster angeordnet wird.
Dadurch wird es möglich, durch Prioritätscodewörter einen
möglichst großen Spektralbereich zu überdecken, d. h. gegen
eine Fehlerfortpflanzung zu schützen, wenn die Anzahl der
möglichen Rasterpunkte kleiner als die Anzahl der Priori
tätscodewörter ist.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung
werden nachfolgend bezugnehmend auf die beiliegenden Zeich
nungen detaillierter erörtert. Es zeigen:
Fig. 1 ein Beispiel für eine erfindungsgemäße Rasterung
eines codierten Bitstroms, der Codewörter enthält,
anhand des zweiten Aspekts der vorliegenden Erfin
dung; und
Fig. 2 eine linear mit der Frequenz ansteigende Anordnung
von Codewörtern gemäß dem Stand der Technik.
Zur Erläuterung der vorliegenden Erfindung sind in Fig. 2,
die eine bekannte linear mit der Frequenz ansteigende Anord
nung von Codewörtern unterschiedlicher Länge darstellt,
Prioritätscodewörter schraffiert dargestellt. In Fig. 2 sind
Prioritätscodewörter die Codewörter Nr. 1 - Nr. 5. Wie es
bereits oben erwähnt wurde, sind die Codewörter, welche
frequenzmäßig niedrigen Spektralwerten zugeordnet sind, dann
Prioritätscodewörter, wenn das Audiosignal beispielsweise
einen hohen Sprachanteil enthält, oder relativ viele Töne,
welche niederfrequent sind. Die Codewörter Nr. 6-10 in
Fig. 2 beziehen sich auf höherfrequentere Spektralwerte,
welche zwar zum Gesamteindruck des decodierten Audiosignals
sehr wohl beitragen, welche jedoch keine wesentlichen Aus
wirkungen auf den Höreindruck haben und somit psychoaku
stisch weniger bedeutsam sind.
Fig. 1 zeigt nun einen erfindungsgemäßen Bitstrom, der eine
Anzahl von Rasterpunkten 10-18 aufweist, wobei der Abstand
zwischen dem Rasterpunkt 10 und dem Rasterpunkt 12 als D1
bezeichnet ist, während der Abstand zwischen dem Rasterpunkt
14 und dem Rasterpunkt 16 18 als D2 bezeichnet wird.
Bezüglich der Darstellung des ersten Aspekts der vorliegen
den Erfindung sei lediglich der Teil des Bitstroms betrach
tet, der sich vom Rasterpunkt 10 bis zum Rasterpunkt 14 er
streckt. Erfindungsgemäß werden nun die Prioritätscodeworte
1 und 2 im Raster ausgerichtet, damit sichergestellt ist,
daß die wesentlichen Spektralanteile, die sich bei dem in
Fig. 2 dargestellten Beispielsignal im unteren Frequenz
bereich befinden, bei einer Codierung keiner Fehlerfort
pflanzung unterworfen werden. Nicht-Prioritätscodewörter,
welche in den Figur nicht schraffiert sind, werden nach den
Prioritätscodewörtern angeordnet, um das Raster auszufüllen.
Es ist nicht erforderlich, daß die Nicht-Prioritätscodewör
ter am Stück in das Raster passen, da sich die Länge eines
Huffman-Codeworts aus sich selbst ergibt. Ein Decodierer
weiß also, ob er nur den Teil eines Codeworts eingelesen
hat. In diesem Falle wird er automatisch eine bestimmte
Anzahl von Bits nach dem Prioritätscodewort hinter dem
nächsten Rasterpunkt dem ersten Codewortstück hinzufügen. Es
ist somit möglich, einen ersten Teil eines Nicht-Prioritäts
codeworts in einer ersten noch freien Position im Raster
einzufügen, und den restlichen Teil desselben an einer ande
ren Stelle, wie es beispielsweise durch die Nicht-Priori
tätscodewörter 7, 8 und 9 dargestellt ist, welche im Bit
strom jeweils zweigeteilt worden sind, d. h. 7a, 7b bzw. 8a,
8b bzw. 9a, 9b.
Wie bereits dargestellt wurde, bezieht sich der 2. Teil des
Bitstroms von Fig. 1 bereits auf den zweiten Aspekt der
vorliegenden Erfindung. Würde der Rasterabstand D1 nicht zu
einem kleineren Rasterabstand D2 verändert werden, so würde
ein Raster mit dem Abstand D1, in dem alle Prioritätscode
wörter 1 bis 5 angeordnet werden sollen, zu einem derart
langen Bitstrom führen, daß sozusagen nicht genug Nicht-
Prioritätscodewörter vorhanden sind, um alle im Raster
verbleibenden Lücken aufzufüllen. Erfindungsgemäß werden
daher aus einem Audiosignal nur so viel Prioritätscodewörter
extrahiert, wie im Bitstrom eingesetzt werden können, damit
im wesentlichen keine freien Stellen zurückbleiben, d. h.
damit der Bitstrom nicht unnötig verlängert wird.
Anschließend wird bezugnehmend auf Fig. 1 auf den zweiten
Aspekt der vorliegenden Erfindung detailliert eingegangen.
Im Falle des Codierverfahrens nach dem Standard MPEG-2 AAC
können 11 verschiedene Huffman-Codetabellen zur Codierung
verwendet werden. Für die meisten dieser Tabellen beträgt
die maximal mögliche Codewortlänge zwischen 10 und 20 Bit.
Eine spezielle Tabelle, die sog. "Escape"-Tabelle, umfaßt
jedoch eine Länge von maximal 49 Bit. Würde man hier als
Rasterabstand D die Länge des längsten Codeworts aller
Tabellen verwenden, so erhielte man einen Rasterabstand von
49 Bit, was zu einem Raster mit sehr großer Breite führt und
daher für fast alle Tabellen ineffizient ist, da der Bit
strom viel zu lang werden würde, wenn alle Prioritätscode
wörter mit einem Rasterpunkt ausgerichtet werden sollen.
Erfindungsgemäß wird daher die Breite des Rasters in Ab
hängigkeit der benutzten Codetabelle eingestellt. Wie
bereits eingangs erwähnt wurde, können Spektralwerte in
Spektralabschnitte gruppiert werden, wobei dann unter
Berücksichtigung signalstatistischer Aspekte jedem
Spektralabschnitt eine für denselben optimale Codetabelle
zugeordnet wird. Die maximale Codewortlänge in einer Code
tabelle unterscheidet sich jedoch zumeist von der maximalen
Codewortlänge einer anderen Tabelle.
So sei angenommen, daß die Spektralwerte, die durch die
Codewörter 1 und 2 dargestellt werden, zu einem ersten Spek
tralabschnitt gehören, während die Spektralwerte, die durch
die Codeworte 3-10 dargestellt sind, zu einem zweiten
Spektralabschnitt gehören. Der Bitstrom wird nun gerastert,
indem 2 Gruppen von Rasterpunkten verwendet werden, wobei
die 1. Gruppe von Rasterpunkten die Rasterpunkte 10, 12 und
14 aufweist, während die 2. Gruppe von Rasterpunkten die
Rasterpunkte 14, 16 und 18 aufweist. Ferner sei angenommen,
daß dem Spektralabschnitt 0 die Huffman-Codetabelle n zuge
wiesen wurde, während dem Spektralabschnitt 1 die Huffman-
Codetabelle m zugeordnet wurde. Außerdem sei angenommen, daß
das Codewort 2 das längste Codewort der Tabelle n ist, die
dem Spektralabschnitt 0 zugeordnet wurde. Der Rasterabstand
der 1. Gruppe von Rasterpunkten wird gemäß der vorliegenden
Erfindung größer oder vorzugsweise gleich der maximalen Länge
des Codeworts der Tabelle n, im Beispiel also des Code
worts Nr. 2, eingestellt.
Der Abschnitt des Bitstroms zwischen dem Rasterpunkt 14 und
dem Ende des Bitstroms am Codewort Nr. 10 zeigt dagegen, daß
in diesem gewählten Beispiel das Codewort mit der maximalen
Länge der Codetabelle m im Bitstrom nicht auftritt. In dem
Bitstromraster, das durch die Gruppe 2 bezeichnet ist,
existiert also kein Codewort, das eine Länge D2 aufweist.
Gemäß dem zweiten Aspekt der vorliegenden Erfindung wird die
Breite des Rasters also abhängig von der benutzten Codeta
belle eingestellt. Es sei darauf hingewiesen, daß in diesem
Fall jedoch die verwendete Tabelle im Decodierer zur Deco
dierung bereits bekannt sein muß. Dies ist jedoch der Fall,
da als Seiteninformationen ohnehin für jeden Spektralab
schnitt eine Codetabellennummer übertragen wird, mittels der
ein Decodierer die verwendete Codetabelle aus einem vorge
gebenen Satz von in diesem Beispiel 11 verschiedenen Huff
man-Tabellen identifizieren kann.
Wie es bereits angesprochen wurde, ist bei einer Abhängig
keit des Rasterabstands von der verwendeten Codetabelle
besonders wenn an die Escape-Tabelle, deren Länge 49 Bit
beträgt, gedacht wird, noch immer keine optimale Datenreduk
tion zu erreichen, da im Falle einer Escape-Tabelle die
Rasterbreite auf 49 Bit eingestellt wird, um maximal große
Spektralwerte zu codieren. Escape-Tabellen werden einge
setzt, um zum einen relativ kurze Codetabellen zu haben, um
jedoch zum anderen relativ große Werte mittels der kurzen
Codetabellen in Verbindung mit einer Escape-Tabelle codieren
zu können. Im Falle eines Werts, der den Wertebereich einer
Codetabelle übersteigt, nimmt das Codewort für diesen Spek
tralwert einen vorbestimmten Wert an, der dem Decodierer
signalisiert, daß zusätzlich eine Escape-Tabelle im Codierer
verwendet worden ist. Umfaßt eine Codetabelle beispielsweise
die Werte von 0-2, so würde ein Wert von 3 in der Code
tabelle dem Decodierer signalisieren, daß auf eine Escape-
Tabelle zurückgegriffen wird. Dem Codewort mit dem Wert 3
der "Grund"-Codetabelle wird gleichzeitig ein Wert der
Escape-Tabelle zugeordnet, welcher zusammen mit dem maxi
malen Wert der Grund-Codetabelle den entsprechenden Spek
tralwert ergibt.
Gemäß einer weiteren Ausgestaltung des zweiten Aspekts der
vorliegenden Erfindung wird der Abstand der Rasterpunkte
einer Gruppe (beispielsweise der Gruppe 1 oder der Gruppe 2)
nicht mehr gleich der Länge des längsten Codeworts einer
Codetabelle eingestellt, sondern gleich der Länge des läng
sten tatsächlich auftretenden Codeworts in einem Bitstrom,
der zu einer Codetabelle gehört. Dies stellt eine weitere
Verbesserung gegenüber der ersten Ausgestaltung des zweiten
Aspekts der vorliegenden Erfindung dar, da auch trotz dieses
Verfahrens die Codiereffizienz bei der Escape-Tabelle immer
noch nicht optimal ist. Aus codiertechnischen Gründen ist
die Maximallänge des Codes dieser Tabelle (innerhalb eines
Spektrums) meist wesentlich geringer. Das längste Codewort
in der Escape-Tabelle ist beispielsweise 49 Bit lang. Das
längste bei üblichen Audiosignalen tatsächlich auftretende
Codewort der Escape-Tabelle ist typischerweise etwa 20 Bit
lang. Es ist daher möglich, die Zahl der Rasterpunkte und
damit die Zahl der Prioritätscodewörter, die mit den Raster
punkten ausgerichtet werden können, weiter zu erhöhen, indem
zusätzlich die Länge des längsten Codeworts übertragen wird.
Die Rasterlänge ergibt sich dann aus dem Minimum aus der
tatsächlich auftretenden maximalen Codewortlänge und der
theoretisch maximalen Codewortlänge der gerade verwendeten
Tabelle. Für die Bestimmung des Minimums ist es möglich, das
tatsächlich auftretende Codewort jeder Codetabelle in einem
Audioframe oder lediglich das tatsächlich längste Codewort
aller Codetabellen in einem Audioframe zu verwenden. Diese
Option arbeitet auch für Nicht-Escape-Tabellen, also für
"Grund"-Huffman-Tabellen, jedoch bei weitem nicht so effi
zient wie für die Escape-Tabellen.
Die Übertragung der Maximallänge eines Codeworts in einem
Spektralabschnitt hat einen weiteren günstigen Nebeneffekt.
Der Decodierer kann nämlich aufgrund der maximalen tatsäch
lich aufgetretenen Länge erkennen, ob in einem unter Umstän
den gestörten Bitstrom ein längeres Codewort vorhanden ist.
Lange Codeworte bedeuten üblicherweise eine hohe Energie der
Spektralwerte. Wenn durch einen Übertragungsfehler ein sehr
langes Codewort zustande kommt, können außerordentlich hör
bare Störungen entstehen. Die Übertragung der Maximallänge
ermöglicht somit in den meisten Fällen eine Detektion eines
solchen Fehlers und somit Gegenmaßnahmen, welche beispiels
weise einfach ein Ausblenden dieses zu langen Codeworts
sind, oder eine kompliziertere Verschleierungsmaßnahme.
An dieser Stelle sei angemerkt, daß für eine möglichst
fehlerrobuste und dennoch effiziente Codierung möglichst
viele Rasterpunkte erwünscht sind. Die Anzahl der Raster
punkte nach oben ist jedoch durch die insgesamte Länge des
Bitstroms begrenzt. Diese sollte natürlich durch die Raste
rung nicht vergrößert werden, da dann unbenutzte Stellen im
Bitstrom vorhanden sein würden, welche der Philosophie der
gesamten Datenkompression widersprechen würden. Dennoch sei
darauf hingewiesen, daß zugunsten einer hohen Fehlerrobust
heit in bestimmten Anwendungsfällen sehr wohl eine Verlän
gerung des Bitstroms in Kauf genommen werden kann. Anderer
seits ist es wünschenswert, ein Raster derart anzuordnen,
daß möglichst viele Codeworte an Rasterpunkten beginnen. Die
vorliegende Erfindung erlaubt somit wirksam im Gegensatz zum
Stand der Technik eine Flexibilisierung des Rasterpunktab
standes. Die Flexibilisierung würde im absolut idealen Fall
dazu führen, im wesentlichen jedem Codewort einen Raster
punkt zuzuordnen, was selbstverständlich nur mit erheblichem
Aufwand möglich ist. Die Anordnung der Rasterpunkte, d. h.
die Bestimmung der Rasterpunktabstände in Abhängigkeit von
den Codetabellen für jeden Spektralabschnitt erlaubt jedoch
eine sehr effiziente Annäherung an den Optimalzustand, zumal
bei weitem nicht alle Codeworte psychoakustisch bedeutsam
sind, und zumal auch alle psychoakustisch weniger bedeutsa
men Codeworte ebenfalls in den Bitstrom zwischen die rastermäßig
angeordneten psychoakustisch bedeutsamen Codeworte so
zusagen einsortiert werden sollten, damit keine unbenutzten
Stellen im Bitstrom erhalten werden.
Gemäß einem dritten Aspekt der vorliegenden Erfindung wird
von der linear mit der Frequenz steigenden Anordnung im Bit
strom weggegangen, und die Codeworte für verschiedene Spek
tralwerte werden "gescramblet". Wenn Fig. 1 betrachtet wird,
so ist eine gewissermaßen verschachtelte lineare Anordnung
der Codeworte mit der Frequenz zu sehen, da die schraffier
ten Prioritätscodewörter in aufsteigender Frequenzrichtung
angeordnet sind, und da die Nicht-Prioritätscodewörter, die
nicht schraffiert sind, ebenfalls in aufsteigender Frequenz
reihenfolge im Bitstrom einsortiert sind. Würde nun bei dem
in Fig. 1 dargestellten Bitstrom ein sog. "Burst"-Fehler
auftreten, d. h. eine Störung, die zur Beschädigung mehrerer
aufeinanderfolgender Codewörter führt, so würden bei
spielsweise die Codewörter 6, 7a, 2, 3 und 7b gleichzeitig
zerstört werden.
In dem entsprechenden decodierten Audiosignal würde in dem
durch die Prioritätscodewörter 2 und 3 dargestellten Spek
tralband eine spektralmäßig gesehen relativ breite Störung
und damit eher deutlicher hörbare Störung auftreten. Das
Problem der Burst-Fehler ist aus dem sehr einfachen Beispiel
in Fig. 1 nicht besonders deutlich zu sehen. In der Praxis
ist jedoch davon auszugehen, daß viel mehr als fünf Raster
punkte vorhanden sein werden, wobei sich Burst-Fehler oft
über mehrere Rasterpunkte hinweg erstrecken, was zu einem
Verlust an Daten für ein relativ breites Frequenzband führen
kann. Daher werden gemäß dem dritten Aspekt der vorliegenden
Erfindung vorzugsweise die Prioritätscodewörter und optional
dazu auch die Nicht-Prioritätscodewörter für die Spektral
werte nicht mehr in aufsteigender Frequenzreihenfolge
sondern "gemischt" angeordnet, derart, daß dieselben eine
zufällige oder pseudozufällige frequenzmäßige Anordnung
haben. Bei einer pseudozufälligen Anordnung müssen keine
Informationen bezüglich der Verteilung als Seiteninformationen
übertragen werden, da diese Verteilung im Decodierer a
priori fest eingestellt werden kann. Dies würde dann dazu
führen, daß ein Verlust von im Bitstrom benachbarten Code
wörtern nicht zu einem Verlust eines vollständigen Fre
quenzbands führt, sondern nur zu einem sehr kleinen Verlust
in mehreren Frequenzbändern. Diese Störung dürfte kaum
hörbar sein und könnte auch effizienter verschleiert werden
als ein Verlust eines gesamten Frequenzbands.
Gemäß einem vierten Aspekt der vorliegenden Erfindung ist
statt einer linear mit der Frequenz ansteigenden Anordnung
der Prioritätscodewörter bzw. der Nicht-Prioritätscodewörter
eine Anordnung möglich, die nur z. B. jedes n-te Codewort im
Raster anordnet und die restlichen Codewörter dazwischen
einsortiert. Wie es bereits erwähnt wurde, ist die Anzahl
der Rasterpunkte für einen Bitstrom durch die insgesamte
Länge und den gewählten Rasterpunktabstand begrenzt. Wenn
beispielsweise an eine Abtastung mit niedriger Bandbreite
gedacht wird, so kann der Fall auftreten, daß von den Code
wörtern die allermeisten psychoakustisch bedeutsame Code
wörter sind, da das gesamte Signal eine theoretisch mögliche
Nutzbandbreite von 8 kHz hat, wenn eine Abtastrate von 16 kHz
verwendet wird. Erfahrungsgemäß können nur 30% der Code
wörter an Rasterpunkten angeordnet werden, wobei die rest
lichen 70% verwendet werden müssen, um das Raster vollends
aufzufüllen. Dies würde jedoch bedeuten, daß nicht der ge
samte richtige Frequenzbereich bei Sprachsignalen beispiels
weise der Bereich von 0-4 kHz mit Prioritätscodewörtern,
die an Rasterpunkten angeordnet sind, abgedeckt bzw. "ge
schützt" werden kann. Um dennoch für den wichtigen Frequenz
bereich einen ausreichenden Schutz vor Fehlerfortpflanzungen
zu erreichen, wird daher nicht mehr jedes Prioritätscodewort
sondern lediglich jedes 2., 3. oder 4. usw. mit einem Ra
sterpunkt ausgerichtet, während die dazwischenliegenden
Prioritätscodewörter nicht mit Rasterpunkten ausgerichtet
werden, sondern das Raster auffüllen. Wenn beispielsweise im
niedrigen Frequenzbereich jeder 2. Spektralwert bzw. jeder
3. usw. bekannt ist, so können die dazwischenliegenden Codewörter,
wenn sie bei einer Übertragung beschädigt werden, im
Decodierer unter Umständen durch Fehlerverschleierungstech
niken, wie z. B. eine Prädiktion o. ä., wiederhergestellt
werden.
Die Verfahren bzw. Vorrichtungen zum Decodieren eines Bit
stroms arbeiten im wesentlichen spiegelbildlich zu der be
schriebenen Codierung.
Bei einem allgemeinen Verfahren zum Decodieren eines Bit
stroms, der ein codiertes Audiosignal darstellt, wobei der
codierte Bitstrom Codewörter mit unterschiedlicher Länge aus
einer Codetabelle und ein Raster mit äquidistanten Raster
punkten (10, 12, 14) aufweist, wobei die Codewörter Priori
tätscodewörter aufweisen, die bestimmte Spektralwerte dar
stellen, die im Vergleich zu anderen Spektralwerten psycho
akustisch bedeutsam sind, und wobei Prioritätscodewörter mit
Rasterpunkten ausgerichtet sind, wird (a) der Abstand D1
zwischen zwei benachbarten Rasterpunkten erfaßt. Wenn der
Abstand zwischen zwei Rasterpunkten bekannt ist, können (b)
die mit den Rasterpunkten ausgerichteten Prioritätscode
wörter in dem codierten Bitstrom umsortiert werden, derart,
daß eine frequenzmäßig lineare Anordnung derselben erhalten
wird, wobei der Beginn eines Prioritätscodeworts mit einem
Rasterpunkt zusammenfällt. Nun liegen die Prioritätscode
worte wieder in der in Fig. 2 gezeigten allgemein frequenz
linearen Anordnung vor, womit (c) die Prioritätscodewörter
mit einer Codetabelle, der dieselben angehören, wieder de
codiert werden können, um decodierte Spektralwerte zu
erhalten. Nach einer (d) Rücktransformation der decodierten
Spektralwerte in den Zeitbereich liegt ein decodiertes
Audiosignal vor, das auf bekannte Art und Weise verarbeitet
werden kann, um beispielsweise einem Lautsprecher zugeführt
zu werden.
Ist der Bitstrom mit nur einer einzigen Codetabelle codiert,
so kann der Abstand der Rasterpunkte einfach erfaßt werden,
indem den Seiteninformationen des Bitstroms entnommen wird,
mit welcher Codetabelle codiert wurde. Je nach beschriebener
Codierung ist der Abstand dann beispielsweise die Länge des
längsten Codeworts dieser Tabelle, die im Codierer fest
eingestellt sein könnte. Ist der Abstand die Länge des
tatsächlich auftretenden längsten Codeworts in einem Teil
des Bitstroms, dem eine Codetabelle zugeordnet ist, so wird
derselbe mittels der Seiteninformationen, die dem Bitstrom
zugeordnet sind, dem Decodierer mitgeteilt, usw.
Der Decodierer führt eine Umsortierung der Prioritäts
codewörter und auch der Nicht-Prioritätscodewörter durch,
indem er z. B. einen Zeiger auf den codierten Bitstrom
anwendet. Ist dem Decodierer der Rasterabstand bekannt, so
kann derselbe bei frequenzmäßig linearer Anordnung der
Prioritätscodewörter zu einem Rasterpunkt springen und das
dort beginnende Codewort einlesen. Ist das Einlesen eines
Codeworts beendet, so springt der Zeiger zu dem nächsten
Rasterpunkt und wiederholt den beschriebenen Vorgang. Sind
alle Prioritätscodewörter eingelesen, so befinden sich im
Bitstrom noch die Nicht-Prioritätscodewörter. Wurde eine
jeweils lineare Anordnung der Prioritätscodewörter bzw. der
Nicht-Prioritätscodewörter im Bitstrom gewählt, so sind die
Nicht-Prioritätscodewörter für sich bereits linear mit der
Frequenz angeordnet und können ohne weitere Umsortierung
wieder decodiert und rücktransformiert werden.
Wurde einer Codierung nach dem dritten bzw. vierten Aspekt
der vorliegenden Erfindung gewählt, so können Scramble-In
formationen entweder als Seiteninformationen übertragen
werden, oder die Scrambleverteilung ist a priori festgelegt
und damit auch dem Decodierer von vorneherein bekannt.
Bezüglich des vierten Aspekts gelten dieselben Dinge. Es
besteht immer die Möglichkeit, eine Verteilung fest zu
vereinbaren oder variabel zu gestalten und dann dem Deco
dierer über Seiteninformationen mitzuteilen.
Claims (18)
1. Verfahren zum Codieren eines Audiosignals, um einen co
dierten Bitstrom zu erhalten, mit folgenden Schritten:
- a) Transformieren von zeitdiskreten Abtastwerten des Audiosignals in den Frequenzbereich, um Spektral werte zu erhalten, die das Audiosignal darstellen;
- b) Codieren der Spektralwerte mit einer Codetabelle, die eine begrenzte Anzahl von Codewörtern unter schiedlicher Länge aufweist, um durch Codeworte co dierte Spektralwerte zu erhalten, wobei die Länge eines einem Spektralwert zugeordneten Codeworts im allgemeinen um so kürzer ist, je höher die Auf trittswahrscheinlichkeit des Spektralwerts ist;
- c) Festlegen eines Rasters für den codierten Bitstrom, wobei das Raster äquidistante Rasterpunkte (10, 12, 14) aufweist, und wobei der Abstand (D1) der Raster punkte von der Codetabelle abhängt; und
- d) Positionieren von Prioritätscodewörtern, die be stimmte Spektralwerte darstellen, die im Vergleich zu anderen Spektralwerten psychoakustisch bedeutsam sind, im Raster, derart, daß der Beginn jedes Prio ritätscodeworts mit einem Rasterpunkt zusammenfällt.
2. Verfahren nach Anspruch 1, bei dem Prioritätscodewörter
Codewörter sind, die Spektralwerte mit niedriger Fre
quenz und/oder hoher Energie codieren.
3. Verfahren nach Anspruch 1 oder 2, bei dem der Abstand
der Rasterpunkte etwas kleiner, gleich oder größer als
das längste Codewort der Codetabelle oder gleich oder
größer als das längste tatsächlich auftretende Codewort
im Bitstrom ist.
4. Verfahren zum Codieren eines Audiosignals, um einen co
dierten Bitstrom zu erhalten, mit folgenden Schritten:
- a) Transformieren von zeitdiskreten Abtastwerten des Audiosignals in den Frequenzbereich, um Spektral werte zu erhalten, die das Audiosignal darstellen;
- b) Gruppieren der Spektralwerte in aneinandergrenzende Spektralabschnitte, wobei jeder Spektralabschnitt wenigstens einen Spektralwert umfaßt;
- c) Zuweisen von zumindest zwei unterschiedlichen Code tabellen aus einer vorgegebenen Anzahl von Codeta bellen zu zwei unterschiedlichen Spektralabschnit ten, wobei einem Spektralabschnitt die Codetabelle zugewiesen wird, die für die Codierung der Spektral werte in dem Spektralabschnitt am günstigsten ist;
- d) Codieren der Spektralwerte aus den Spektralabschnit ten mit der Codetabelle, die dem entsprechenden Spektralabschnitt zugewiesen ist, wobei die Länge eines einem Spektralwert zugeordneten Codeworts im allgemeinen um so kürzer ist, je höher die Auf trittswahrscheinlichkeit des Spektralwerts ist;
- e) Festlegen eines Rasters für den codierten Bitstrom, wobei das Raster zumindest zwei Gruppen von Raster punkten (10, 12, 14 bzw. 14, 16, 18) aufweist, wobei die Rasterpunkte jeder Gruppe in sich äquidistant angeordnet sind, und wobei der Rasterpunktabstand (D1 bzw. D2) jeder Gruppe von einer entsprechenden der zumindest zwei unterschiedlichen Codetabellen abhängt; und
- f) Positionieren von Prioritätscodewörtern, die be stimmte Spektralwerte darstellen, die im Vergleich zu anderen Spektralwerten psychoakustisch bedeutsam sind, im Raster, derart, daß der Beginn jedes Prioritätscodeworts jeder Codetabelle mit einem Raster punkt (10, 12, 14 bzw. 14, 16, 18) in der entspre chenden Gruppe von Rasterpunkten zusammenfällt.
5. Verfahren nach Anspruch 4, bei dem der Rasterpunktab
stand (D1, D2) jeder Gruppe von Rasterpunkten kleiner,
gleich oder größer als die Länge des längsten Codeworts
der entsprechenden Codetabelle ist.
6. Verfahren nach Anspruch 4, bei dem der Rasterpunktab
stand (D1, D2) jeder Gruppe von Rasterpunkten gleich der
Länge des tatsächlich längsten Codeworts für einen Spek
tralwert in dem entsprechenden Spektralabschnitt ist;
und
bei dem die Länge des tatsächlichen längsten Codeworts
eines Spektralabschnitts als Seiteninformationen zum
Bitstrom übertragen wird.
7. Verfahren nach Anspruch 4, bei dem der Rasterpunktabstand ei
ner Gruppe von Rasterpunkten derart bestimmt wird, daß
derselbe gleich dem Minimum aus dem tasächlich längsten
Codewort aller gruppierten Spektralabschnitte und dem
längsten Codewort der Codetabelle dieser Gruppe ist, wo
bei das tatsächlich längste Codewort als Seiteninforma
tionen zu einem Decodierer übertragen wird.
8. Verfahren nach einem der vorhergehenden Ansprüche, bei
dem bezüglich der Prioritätscodewörter und der Nicht-
Prioritätscodewörter im Raster des Bitstroms jeweils
eine frequenzmäßig im wesentlichen lineare Anordnung der
Codewörter eingehalten wird.
9. Verfahren nach einem der Ansprüche 1-7, bei dem die
Codewörter, die codierte Spektralwerte darstellen, im
Raster des Bitstroms unabhängig von der Frequenz der
entsprechenden Spektralwerte angeordnet werden.
10. Verfahren nach Anspruch 9, bei dem Informationen
bezüglich der Zuordnung zwischen der Frequenz und dem
Codewort als Seiteninformationen in den Bitstrom ein
gebracht werden, wenn die von der Frequenz unabhängige
Verteilung nicht vorbestimmt ist.
11. Verfahren nach einem der vorhergehenden Ansprüche, bei
dem lediglich jedes n-te Codewort der Prioritätscode
wörter im Raster des Bitstroms angeordnet wird, während
die restlichen Prioritätscodewörter und Nicht-Priori
tätscodewörter nicht an Rasterpunkten ausgerichtet wer
den.
12. Verfahren nach einem der vorhergehenden Ansprüche, bei
dem die Spektralwerte vor dem Codieren unter Berück
sichtigung des psychoakustischen Modells quantisiert
werden.
13. Vorrichtung zum Codieren eines Audiosignals, um einen
codierten Bitstrom zu erhalten, mit folgenden Merkmalen:
- a) einer Einrichtung zum Transformieren von zeitdis kreten Abtastwerten des Audiosignals in den Fre quenzbereich, um Spektralwerte zu erhalten, die das Audiosignal darstellen;
- b) einer Einrichtung zum Codieren der Spektralwerte mit einer Codetabelle, die eine begrenzte Anzahl von Codewörtern unterschiedlicher Länge aufweist, um durch Codeworte codierte Spektralwerte zu erhalten, wobei die Länge eines einem Spektralwert zugeordne ten Codeworts im allgemeinen um so kürzer ist, je höher die Auftrittswahrscheinlichkeit des Spektral werts ist;
- c) einer Einrichtung zum Festlegen eines Rasters für den codierten Bitstrom, wobei das Raster äquidi stante Rasterpunkte (10, 12, 14) aufweist, und wobei der Abstand (D1) der Rasterpunkte von der Codetabel le abhängt; und
- d) einer Einrichtung zum Positionieren von Prioritäts codewörtern, die bestimmte Spektralwerte darstellen, die im Vergleich zu anderen Spektralwerten psycho akustisch bedeutsam sind, im Raster, derart, daß der Beginn jedes Prioritätscodeworts mit einem Raster punkt zusammenfällt.
14. Vorrichtung zum Codieren eines Audiosignals, um einen
codierten Bitstrom zu erhalten, mit folgenden Merkmalen:
- a) einer Einrichtung zum Transformieren von zeitdiskre ten Abtastwerten des Audiosignals in den Frequenzbe reich, um Spektralwerte zu erhalten, die das Audio signal darstellen;
- b) einer Einrichtung zum Gruppieren der Spektralwerte in aneinandergrenzende Spektralabschnitte, wobei jeder Spektralabschnitt wenigstens einen Spektral wert umfaßt;
- c) einer Einrichtung zum Zuweisen von zumindest zwei unterschiedlichen Codetabellen aus einer vorgege benen Anzahl von Codetabellen zu zwei unterschied lichen Spektralabschnitten, wobei einem Spektralab schnitt die Codetabelle zugewiesen wird, die für die Codierung der Spektralwerte in dem Spektralabschnitt am günstigsten ist;
- d) einer Einrichtung zum Codieren der Spektralwerte aus den Spektralabschnitten mit der Codetabelle, die dem entsprechenden Spektralabschnitt zugewiesen ist, wo bei die Länge eines einem Spektralwert zugeordneten Codeworts im allgemeinen um so kürzer ist, je höher die Auftrittswahrscheinlichkeit des Spektralwerts ist;
- e) einer Einrichtung zum Festlegen eines Rasters für den codierten Bitstrom, wobei das Raster zumindest zwei Gruppen von Rasterpunkten (10, 12, 14 bzw. 14, 16, 18) aufweist, wobei die Rasterpunkte jeder Grup pe in sich äquidistant angeordnet sind, und wobei der Rasterpunktabstand (D1 bzw. D2) jeder Gruppe von einer entsprechenden der zumindest zwei unterschied lichen Codetabellen abhängt; und
- f) einer Einrichtung zum Positionieren von Prioritäts codewörtern, die bestimmte Spektralwerte darstellen, die im Vergleich zu anderen Spektralwerten psycho akustisch bedeutsam sind, im Raster, derart, daß der Beginn jedes Prioritätscodeworts jeder Codetabelle mit einem Rasterpunkt (10, 12, 14 bzw. 14, 16, 18) in der entsprechenden Gruppe von Rasterpunkten zusammenfällt.
15. Verfahren zum Decodieren eines Bitstroms, der ein co
diertes Audiosignal darstellt, wobei der codierte Bit
strom Codewörter mit unterschiedlicher Länge aus einer
Codetabelle und ein Raster mit äquidistanten Raster
punkten (10, 12, 14) aufweist, wobei der Abstand der
Rasterpunkte von der Codetabelle abhängt, wobei die
Codewörter Prioritätscodewörter aufweisen, die bestimmte
Spektralwerte darstellen, die im Vergleich zu anderen
Spektralwerten psychoakustisch bedeutsam sind, und wobei
Prioritätscodewörter mit Rasterpunkten ausgerichtet
sind, mit folgenden Schritten:
- a) Erfassen des Abstands (D1) zwischen zwei benachbar ten Rasterpunkten;
- b) Umsortieren der mit den Rasterpunkten ausgerichteten Prioritätscodewörter in dem codierten Bitstrom, der art, daß eine frequenzmäßig lineare Anordnung der selben erhalten wird, wobei der Beginn eines Prioritätscodeworts mit einem Rasterpunkt zusammenfällt;
- c) Decodieren der Prioritätscodewörter mit einer Code tabelle, der dieselben angehören, um decodierte Spektralwerte zu erhalten; und
- d) Rücktransformieren der decodierten Spektralwerte in den Zeitbereich, um ein decodiertes Audiosignal zu erhalten.
16. Verfahren zum Decodieren eines Bitstroms, der ein co
diertes Audiosignal darstellt, wobei der codierte Bit
strom Codewörter mit unterschiedlicher Länge aus zumin
dest zwei Codetabellen und ein Raster mit zumindest zwei
Gruppen von äquidistanten Rasterpunkten (10, 12, 14 bzw.
14, 16, 18) aufweist, wobei der Abstand der Rasterpunkte
jeder Gruppe von einer entsprechenden der zumindest zwei
unterschiedlichen Codetabellen abhängt, wobei die Code
wörter Prioritätscodewörter aufweisen, die bestimmte
Spektralwerte darstellen, die im Vergleich zu anderen
Spektralwerten psychoakustisch bedeutsam sind, und wobei
Prioritätscodewörter mit Rasterpunkten ausgerichtet
sind, mit folgenden Schritten:
- a) Erfassen des Abstands (D1, D2) zwischen zwei benach barten Rasterpunkten;
- b) Umsortieren der mit den Rasterpunkten ausgerichteten Prioritätscodewörter in dem codierten Bitstrom, der art, daß eine frequenzmäßig lineare Anordnung der selben erhalten wird, wobei der Beginn eines Priori tätscodeworts mit einem Rasterpunkt zusammenfällt;
- c) Ermitteln der einem Spektralabschnitt zugeordneten Codetabelle
- d) Decodieren der Prioritätscodewörter eines Spektral abschnitts mit der entsprechenden Codetabelle, der dieselben angehören, um decodierte Spektralwerte zu erhalten; und
- e) Rücktransformieren der decodierten Spektralwerte in den Zeitbereich, um ein decodiertes Audiosignal zu erhalten.
17. Vorrichtung zum Decodieren eines Bitstroms, der ein co
diertes Audiosignal darstellt, wobei der codierte Bit
strom Codewörter mit unterschiedlicher Länge aus einer
Codetabelle und ein Raster mit äquidistanten Rasterpunk
ten (10, 12, 14) aufweist, wobei der Abstand der Raster
punkte von der Codetabelle abhängt, wobei die Codewörter
Prioritätscodewörter aufweisen, die bestimmte Spektral
werte darstellen, die im Vergleich zu anderen Spektral
werten psychoakustisch bedeutsam sind, und wobei Priori
tätscodewörter mit Rasterpunkten ausgerichtet sind, mit
folgenden Merkmalen:
- a) einer Einrichtung zum Erfassen des Abstands (D1) zwischen zwei benachbarten Rasterpunkten;
- b) einer Einrichtung zum Umsortieren der mit den Ra sterpunkten ausgerichteten Prioritätscodewörter in dem codierten Bitstrom, derart, daß eine frequenz mäßig lineare Anordnung derselben erhalten wird, wo bei der Beginn eines Prioritätscodeworts mit einem Rasterpunkt zusammenfällt;
- c) einer Einrichtung zum Decodieren der Prioritätscode wörter mit einer Codetabelle, der dieselben ange hören, um decodierte Spektralwerte zu erhalten; und
- d) einer Einrichtung zum Rücktransformieren der deco dierten Spektralwerte in den Zeitbereich, um ein de codiertes Audiosignal zu erhalten.
18. Vorrichtung zum Decodieren eines Bitstroms, der ein codiertes
Audiosignal darstellt, wobei der codierte Bit
strom Codewörter mit unterschiedlicher Länge aus zumin
dest zwei Codetabellen und ein Raster mit zumindest zwei
Gruppen von äquidistanten Rasterpunkten (10, 12, 14 bzw.
14, 16, 18) aufweist, wobei der Abstand der Rasterpunkte
jeder Gruppe von einer entsprechenden der zumindest zwei
unterschiedlichen Codetabellen abhängt, wobei die Code
wörter Prioritätscodewörter aufweisen, die bestimmte
Spektralwerte darstellen, die im Vergleich zu anderen
Spektralwerten psychoakustisch bedeutsam sind, und wobei
Prioritätscodewörter mit Rasterpunkten ausgerichtet
sind, mit folgenden Merkmalen:
- a) einer Einrichtung zum Erfassen des Abstands (D1, D2) zwischen zwei benachbarten Rasterpunkten;
- b) einer Einrichtung zum Umsortieren der mit den Ra sterpunkten ausgerichteten Prioritätscodewörter in dem codierten Bitstrom, derart, daß eine frequenz mäßig lineare Anordnung derselben erhalten wird, wo bei der Beginn eines Prioritätscodeworts mit einem Rasterpunkt zusammenfällt;
- c) einer Einrichtung zum Ermitteln der einem Spektral abschnitt zugeordneten Codetabelle;
- d) einer Einrichtung zum Decodieren der Prioritätscode wörter eines Spektralabschnitts mit der entsprechen den Codetabelle, der dieselben angehören, um deco dierte Spektralwerte zu erhalten; und
- e) einer Einrichtung zum Rücktransformieren der deco dierten Spektralwerte in den Zeitbereich, um ein de codiertes Audiosignal zu erhalten.
Priority Applications (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19747119A DE19747119C2 (de) | 1997-10-24 | 1997-10-24 | Verfahren und Vorrichtungen zum Codieren bzw. Decodieren eines Audiosignals bzw. eines Bitstroms |
DE19840853A DE19840853B4 (de) | 1997-10-24 | 1998-09-07 | Verfahren und Vorrichtungen zum Codieren eines Audiosignals |
EP04014504A EP1458103B1 (de) | 1997-10-24 | 1998-10-12 | Verfahren und Vorrichtungen zum Codieren bzw. Decodieren eines Audiosignals bzw. eines Bitstroms |
AT98119235T ATE271727T1 (de) | 1997-10-24 | 1998-10-12 | Verfahren und vorrichtung zum codieren bzw. decodieren eines audiosignals |
PT04014504T PT1458103E (pt) | 1997-10-24 | 1998-10-12 | Métodos e dispositivos para codificar/descodificar um sinal de áudio |
ES04014504T ES2329466T3 (es) | 1997-10-24 | 1998-10-12 | Procedimientos y dispositivos para codificar o decodificar una señal de audio o un flujo de bits. |
DE59814374T DE59814374D1 (de) | 1997-10-24 | 1998-10-12 | Verfahren und Vorrichtungen zum Codieren bzw. Decodieren eines Audiosignals bzw. eines Bitstroms |
DE59811685T DE59811685D1 (de) | 1997-10-24 | 1998-10-12 | Verfahren und Vorrichtung zum Codieren bzw. Decodieren eines Audiosignals |
EP98119235A EP0911981B1 (de) | 1997-10-24 | 1998-10-12 | Verfahren und Vorrichtung zum Codieren bzw. Decodieren eines Audiosignals |
PCT/EP1998/008475 WO2000039933A1 (de) | 1997-10-24 | 1998-12-28 | Verfahren und vorrichtungen zum codieren bzw. decodieren eines audiosignals bzw. eines bitstroms |
JP2004099419A JP3978194B2 (ja) | 1997-10-24 | 2004-03-30 | オーディオ信号又はビットストリームの復号化のための装置及び方法 |
JP2004099418A JP3902642B2 (ja) | 1997-10-24 | 2004-03-30 | オーディオ信号又はビットストリームの符号化又は復号化のための方法及び装置 |
JP2004099417A JP4168000B2 (ja) | 1997-10-24 | 2004-03-30 | オーディオ信号又はビットストリームの符号化又は復号化のための方法及び装置 |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19747119A DE19747119C2 (de) | 1997-10-24 | 1997-10-24 | Verfahren und Vorrichtungen zum Codieren bzw. Decodieren eines Audiosignals bzw. eines Bitstroms |
DE19840853A DE19840853B4 (de) | 1997-10-24 | 1998-09-07 | Verfahren und Vorrichtungen zum Codieren eines Audiosignals |
PCT/EP1998/008475 WO2000039933A1 (de) | 1997-10-24 | 1998-12-28 | Verfahren und vorrichtungen zum codieren bzw. decodieren eines audiosignals bzw. eines bitstroms |
JP2004099417A JP4168000B2 (ja) | 1997-10-24 | 2004-03-30 | オーディオ信号又はビットストリームの符号化又は復号化のための方法及び装置 |
JP2004099419A JP3978194B2 (ja) | 1997-10-24 | 2004-03-30 | オーディオ信号又はビットストリームの復号化のための装置及び方法 |
JP2004099418A JP3902642B2 (ja) | 1997-10-24 | 2004-03-30 | オーディオ信号又はビットストリームの符号化又は復号化のための方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19747119A1 DE19747119A1 (de) | 1999-04-29 |
DE19747119C2 true DE19747119C2 (de) | 2003-01-16 |
Family
ID=36972705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19747119A Expired - Lifetime DE19747119C2 (de) | 1997-10-24 | 1997-10-24 | Verfahren und Vorrichtungen zum Codieren bzw. Decodieren eines Audiosignals bzw. eines Bitstroms |
Country Status (3)
Country | Link |
---|---|
JP (3) | JP4168000B2 (de) |
DE (1) | DE19747119C2 (de) |
WO (1) | WO2000039933A1 (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19907729C2 (de) | 1999-02-23 | 2001-02-22 | Fraunhofer Ges Forschung | Verfahren und Vorrichtung zum Erzeugen eines Datenstroms aus Codeworten variabler Länge und Verfahren und Vorrichtung zum Lesen eines Datenstroms aus Codeworten variabler Länge |
DE19907728C2 (de) * | 1999-02-23 | 2001-03-01 | Fraunhofer Ges Forschung | Vorrichtung und Verfahren zum Erzeugen eines Datenstroms und Vorrichtung und Verfahren zum Lesen eines Datenstroms |
US7610195B2 (en) | 2006-06-01 | 2009-10-27 | Nokia Corporation | Decoding of predictively coded data using buffer adaptation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0492537A1 (de) * | 1990-12-21 | 1992-07-01 | Matsushita Electric Industrial Co., Ltd. | Informationsaufzeichnungsgerät |
EP0612156A2 (de) * | 1989-04-17 | 1994-08-24 | Fraunhofer-Gesellschaft Zur Förderung Der Angewandten Forschung E.V. | Digitales Codierverfahren |
-
1997
- 1997-10-24 DE DE19747119A patent/DE19747119C2/de not_active Expired - Lifetime
-
1998
- 1998-12-28 WO PCT/EP1998/008475 patent/WO2000039933A1/de active IP Right Grant
-
2004
- 2004-03-30 JP JP2004099417A patent/JP4168000B2/ja not_active Expired - Lifetime
- 2004-03-30 JP JP2004099419A patent/JP3978194B2/ja not_active Expired - Lifetime
- 2004-03-30 JP JP2004099418A patent/JP3902642B2/ja not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0612156A2 (de) * | 1989-04-17 | 1994-08-24 | Fraunhofer-Gesellschaft Zur Förderung Der Angewandten Forschung E.V. | Digitales Codierverfahren |
EP0717503A2 (de) * | 1989-04-17 | 1996-06-19 | Fraunhofer-Gesellschaft Zur Förderung Der Angewandten Forschung E.V. | Digitales Codier- und Decodierverfahren |
EP0492537A1 (de) * | 1990-12-21 | 1992-07-01 | Matsushita Electric Industrial Co., Ltd. | Informationsaufzeichnungsgerät |
Also Published As
Publication number | Publication date |
---|---|
JP3902642B2 (ja) | 2007-04-11 |
JP4168000B2 (ja) | 2008-10-22 |
JP2004234021A (ja) | 2004-08-19 |
WO2000039933A1 (de) | 2000-07-06 |
DE19747119A1 (de) | 1999-04-29 |
JP2004264860A (ja) | 2004-09-24 |
JP3978194B2 (ja) | 2007-09-19 |
JP2004234020A (ja) | 2004-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0910927B1 (de) | Verfahren zum codieren und decodieren von stereoaudiospektralwerten | |
DE2818052C2 (de) | Quantisierung eines Signals mit einem sich über ein gegebenes Frequenzband erstreckendem Spetkrum | |
DE19840835C2 (de) | Vorrichtung und Verfahren zum Entropiecodieren von Informationswörtern und Vorrichtung und Verfahren zum Decodieren von Entropie-codierten Informationswörtern | |
DE3639753C2 (de) | ||
EP0609300B1 (de) | Verfahren zum übertragen oder speichern eines aus einer folge von informationsblöcken bestehenden digitalisierten, encodierten tonsignals über störbehaftete kanäle | |
EP0393526B2 (de) | Digitales Codierverfahren | |
DE69726661T2 (de) | Verfahren und vorrichtung zur kodierung eines digitalen informationssignales | |
DE60015448T2 (de) | Teilband-Audiokodiersystem | |
EP0494918B1 (de) | Verfahren zur übertragung eines signals | |
DE60022837T2 (de) | Vorrichtung zur Teilbandcodierung | |
DE19907728C2 (de) | Vorrichtung und Verfahren zum Erzeugen eines Datenstroms und Vorrichtung und Verfahren zum Lesen eines Datenstroms | |
DE19747119C2 (de) | Verfahren und Vorrichtungen zum Codieren bzw. Decodieren eines Audiosignals bzw. eines Bitstroms | |
DE19742201C1 (de) | Verfahren und Vorrichtung zum Codieren von Audiosignalen | |
DE19840853B4 (de) | Verfahren und Vorrichtungen zum Codieren eines Audiosignals | |
DE69803457T2 (de) | Audiokodierer | |
DE19907729C2 (de) | Verfahren und Vorrichtung zum Erzeugen eines Datenstroms aus Codeworten variabler Länge und Verfahren und Vorrichtung zum Lesen eines Datenstroms aus Codeworten variabler Länge | |
DE3733786A1 (de) | Digitales adaptives transformationscodierverfahren | |
WO2004021577A1 (de) | Skalierbare codierung von bildinformation, insbesondere videobildinformation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
AG | Has addition no. |
Ref document number: 19840853 Country of ref document: DE |
|
AG | Has addition no. |
Ref document number: 19840853 Country of ref document: DE |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
R071 | Expiry of right |