DE10102154A1 - Verfahren und Vorrichtung zum Erzeugen eines skalierbaren Datenstroms und Verfahren und Vorrichtung zum Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkassenfunktion - Google Patents

Verfahren und Vorrichtung zum Erzeugen eines skalierbaren Datenstroms und Verfahren und Vorrichtung zum Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkassenfunktion

Info

Publication number
DE10102154A1
DE10102154A1 DE10102154A DE10102154A DE10102154A1 DE 10102154 A1 DE10102154 A1 DE 10102154A1 DE 10102154 A DE10102154 A DE 10102154A DE 10102154 A DE10102154 A DE 10102154A DE 10102154 A1 DE10102154 A1 DE 10102154A1
Authority
DE
Germany
Prior art keywords
encoder
output data
input signal
blocks
data
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.)
Granted
Application number
DE10102154A
Other languages
English (en)
Other versions
DE10102154C2 (de
Inventor
Ralph Sperschneider
Bodo Teichmann
Manfred Lutzky
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority to DE10102154A priority Critical patent/DE10102154C2/de
Application filed by Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority to CA002434783A priority patent/CA2434783C/en
Priority to AT02708282T priority patent/ATE272884T1/de
Priority to US10/466,866 priority patent/US7496517B2/en
Priority to JP2002558258A priority patent/JP3890298B2/ja
Priority to EP02708282A priority patent/EP1354314B1/de
Priority to PCT/EP2002/000295 priority patent/WO2002058051A2/de
Priority to DE50200750T priority patent/DE50200750D1/de
Priority to AU2002242667A priority patent/AU2002242667B2/en
Priority to KR10-2003-7009508A priority patent/KR100516985B1/ko
Publication of DE10102154A1 publication Critical patent/DE10102154A1/de
Application granted granted Critical
Publication of DE10102154C2 publication Critical patent/DE10102154C2/de
Priority to HK03109020A priority patent/HK1056790A1/xx
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Abstract

In einem Verfahren zum Erzeugen eines skalierbaren Datenstroms aus einem oder mehreren Blöcken von Ausgangsdaten eines ersten Codierers und aus einem oder mehreren Blöcken von Ausgangsdaten eines zweiten Codierers, wird ein Bestimmungsdatenblock für einen aktuellen Abschnitt eines Eingangssignals geschrieben. Darüber hinaus werden Ausgangsdaten des zweiten Codierers, die einen vorhergehenden Abschnitt des Eingangssignals darstellen, in Übertragungsrichtung von einem Codierer zu einem Decodierer hinter den Bestimmungsdatenblock geschrieben. Wenn die Ausgangsdaten des zweiten Codierers für einen vorhergehenden Abschnitt des Eingangssignals geschrieben sind, werden die Ausgangsdaten des zweiten Codierers, die den aktuellen Abschnitt des Eingangssignals darstellen, geschrieben. Um zu signalisieren, wo die Ausgangsdaten des zweiten Codierers für den vorhergehenden Abschnitt enden und die Ausgangsdaten des zweiten Codierers für den aktuellen Abschnitt beginnen, werden Pufferinformationen in den skalierbaren Datenstrom geschrieben. Dadurch, daß Ausgangsdaten eines vorhergehenden Abschnitts einem Bestimungsdatenblock für den aktuellen Abschnitt folgen, kann eine Bitsparkassenfunktion im skalierbaren Codierer implementiert und im Bitstrom einfach signalisiert werden.

Description

Die vorliegende Erfindung bezieht sich auf skalierbare Co­ dierer und Decodierer und insbesondere auf das Erzeugen von skalierbaren Datenströmen, durch die eine Bitsparkasse si­ gnalisiert werden kann.
Skalierbare Codierer sind in der EP 0 846 375 B1 gezeigt. Allgemein versteht man unter der Skalierbarkeit die Möglich­ keit, einen Teilsatz eines Bitstroms, der ein codiertes Datensignal, wie z. B. ein Audiosignal oder ein Videosignal, darstellt, in ein nutzbares Signal zu decodieren. Diese Ei­ genschaft ist insbesondere dann gewünscht, wenn z. B. ein Datenübertragungskanal nicht die nötige vollständige Band­ breite zur Übertragung eines vollständigen Bitstroms zur Verfügung stellt. Andererseits ist eine unvollständige De­ codierung auf einem Decodierer mit niedrigerer Komplexität möglich. Allgemein werden in der Praxis verschiedene diskre­ te Skalierbarkeitsschichten definiert.
Ein Beispiel für einen skalierbaren Codierer, wie er im Sub­ part 4 (General Audio) des Parts 3 (Audio) des MPEG-4 Standards (ISO/IEC 14496-3: 1999 Subpart 4) definiert ist, ist in Fig. 1 gezeigt. Ein zu codierendes Audiosignal s(t) wird eingangsseitig in den skalierbaren Codierer einge­ speist. Der in Fig. 1 gezeigte skalierbare Codierer enthält einen ersten Codierer 12, der ein MPEG-Celp-Codierer ist. Der zweite Codierer 14 ist ein AAC-Codierer, der eine hoch­ qualitative Audiocodierung liefert und im Standard MPEG-2 AAC (ISO/IEC 13818) definiert ist. Der Celp-Codierer 12 lie­ fert über eine Ausgangsleitung 16 eine erste Skalierungs­ schicht, während der AAC-Codierer 14 über eine zweite Ausgangsleitung 18 eine zweite Skalierungsschicht zu einem Bit­ strom-Multiplexer (BitMux) 20 liefert. Ausgangsseitig gibt der Bitstrom-Multiplexer dann einen MPEG-4-LATM-Bitstrom 22 aus (LATM = Low-Overhead MPEG-4 Audio Transport Multiplex). Das LATM-Format ist im Abschnitt 6.5 des Parts 3 (Audio) der ersten Ergänzung zum MPEG-4 Standard (ISO/IEC 14496-3: 1999/AMD1: 2000) beschrieben.
Der skalierbare Audiocodierer umfaßt ferner einige weitere Elemente. Zunächst existiert eine Verzögerungsstufe 24 im AAC-Zweig und eine Verzögerungsstufe 26 im Celp-Zweig. Durch beide Verzögerungsstufen kann eine optionale Verzögerung für den jeweiligen Zweig eingestellt werden. Der Verzögerungs­ stufe 26 des Celp-Zweigs ist eine Downsampling-Stufe 28 nachgeschaltet, um die Abtastrate des Eingangssignals s(t) an die von dem Celp-Codierer geforderte Abtastrate anzupas­ sen. Dem Celp-Codierer 12 nachgeschaltet ist ein inverser Celp-Decodierer 30, wobei das Celp-codierte/decodierte Signal einer Upsampling-Stufe 32 zugeführt wird. Das upge­ sampelte Signal wird dann einer weiteren Verzögerungsstufe 34, die im MPEG-4-Standard mit "Core Coder Delay" bezeichnet ist, zugeführt.
Die Stufe CoreDoderDelay 34 hat folgende Funktion. Ist die Verzögerung auf Null eingestellt, so verarbeiten der erste Codierer 14 und der zweite Codierer 16 in einem sogenannten Superframe exakt dieselben Abtastwerte des Audioeingangs­ signals. Ein Superframe kann beispielsweise aus drei AAC- Frames bestehen, die zusammen eine gewisse Anzahl von Ab­ tastwerten Nr. x bis Nr. y des Audiosignals darstellen. Der Superframe umfaßt ferner z. B. 8 CELP-Blöcke, die im Falle von CoreCoderDelay = 0 dieselbe Anzahl von Abtastwerten und auch dieselben Abtastwerte Nr. x bis Nr. y darstellen.
Ist dagegen ein CoreCoderDelay D als Zeitgröße ungleich Null eingestellt, so stellen die drei Blöcke von AAC Frames den­ noch die gleichen Abtastwerte Nr. x bis Nr. y dar. Die acht Blöcke von CELP-Frames stellen dagegen Abtastwerte Nr. x- Fs D bis Nr. y-Fs D dar, wobei Fs die Abtastfrequenz des Eingangssignals ist.
Die aktuellen Zeitabschnitte des Eingangssignals in einem Superframe für die AAC-Blöcke und die CELP-Blöcke können somit entweder identisch sein, wenn CoreCoderDelay D = 0 ist, oder aber im Falle von D ungleich Null um CoreCoderDelay zueinander verschoben sein. Für die nachfol­ genden Ausführungen wird jedoch aus Einfachheitsgründen ohne Einschränkung der Allgemeinheit ein CoreCoderDelay = 0 angenommen, so daß der aktuelle Zeitabschnitt des Eingangs­ signals für den ersten Coder und der aktuelle Zeitabschnitt für den zweiten Coder identisch sind. Allgemein besteht für einen Superframe jedoch lediglich die Anforderung, daß der/die AAC-Block/Blöcke und der/die CELP-Blöcke in einem Superframe dieselbe Anzahl von Abtastwerten darstellen, wobei die Abtastwerte an sich nicht unbedingt die identi­ schen sein müssen, sondern auch um CoreCoderDelay zueinander verschoben sein können.
Es sei angemerkt, daß der Celp-Codierer einen Abschnitt des Eingangssignals s(t) je nach Konfiguration schneller ver­ arbeitet als der AAC-Codierer 14. In dem AAC-Zweig ist der Optionalverzögerungsstufe 24 eine Blockentscheidungsstufe 26 nachgeschaltet, die u. a. feststellt, ob zum Fenstern des Eingangssignals s(t) kurze oder lange Fenster zu verwenden sind, wobei für stark transiente Signale kurze Fenster zu wählen sind, während für weniger transiente Signale lange Fenster vorgezogen werden, da bei ihnen das Verhältnis zwi­ schen Nutzdatenmenge und Seiteninformationen besser als bei kurzen Fenstern ist.
Durch die Blockentscheidungsstufe 26 wird im vorliegenden Beispiel eine feste Verzögerung um z. B. das 5/8-fache eines Blocks durchführt. Dies wird in der Technik als Look-Ahead- Funktion bezeichnet. Die Blockentscheidungsstufe muß bereits um eine gewisse Zeit vorausschauen, um überhaupt feststellen zu können, ob in der Zukunft transiente Signale sind, die mit kurzen Fenstern codiert werden müssen. Hierauf wird so­ wohl das entsprechende Signal im Celp-Zweig als auch das Signal im AAC-Zweig einer Einrichtung zum Umsetzen der zeit­ lichen Darstellung in eine spektrale Darstellung zugeführt, welche in Fig. 1 mit MDCT 36 bzw. 38 bezeichnet ist (MDCT = Modified Discrete Cosine Transform = Modifizierte Diskrete Cosinus-Transformation). Die Ausgangssignale der MDCT-Blöcke 36, 38 werden dann einem Subtrahierer 40 zugeführt.
An dieser Stelle müssen zeitlich zusammengehörige Abtastwer­ te vorliegen, d. h. das Delay muß in beiden Zweigen iden­ tisch sein.
Der darauffolgende Block 44 stellt fest, ob es günstiger ist, das Eingangssignal an sich dem AAC-Codierer 14 zuzu­ führen. Dies wird über den Umgehungszweig 42 ermöglicht. Wenn jedoch festgestellt wird, daß das Differenzsignal am Ausgang des Subtrahierers 40 z. B. energiemäßig kleiner ist als das von dem MDCT-Block 38 ausgegebene Signal, so wird nicht das ursprüngliche Signal, sondern das Differenzsignal genommen, um durch den AAC-Codierer 14 codiert zu werden, um schließlich die zweite Skalierungsschicht 18 zu bilden. Dieser Vergleich kann bandweise durchgeführt werden, was durch eine frequenzselektive Schalteinrichtung (FSS) 44 angedeutet ist. Die näheren Funktionen der einzelnen Ele­ mente sind in der Technik bekannt und beispielsweise im MPEG-4-Standard sowie in weiteren MPEG-Standards beschrie­ ben.
Ein wesentliches Merkmal beim MPEG-4-Standard bzw. auch bei anderen Codierer-Standards ist, daß die Übertragung des kom­ primierten Datensignals über einen Kanal mit konstanter Bit­ rate erfolgen soll. Alle High-Quality-Audiocodecs arbeiten blockbasiert, d. h. sie verarbeiten Blöcke von Audiodaten (Größenordnung 480-1024 Samples) zu Stücken eines kompri­ mierten Bitstroms, welche auch als Frames bezeichnet werden. Das Bitstromformat muß dabei so aufgebaut sein, daß ein De­ codierer ohne A-Priori-Informationen, wo ein Frame beginnt, in der Lage ist, den Anfang eines Frames zu erkennen um mit einer möglichst geringen Verzögerung die Ausgabe der deco­ dierten Audiosignaldaten zu beginnen. Daher beginnt jeder Header oder Bestimmungsdatenblock eines Frames mit einem be­ stimmten Synchronisationswort, nach dem in einem kontinu­ ierlichen Bitstrom gesucht werden kann. Weitere übliche Be­ standteile im Datenstrom neben dem Bestimmungsdatenblock sind die Hauptdaten oder "Payload Data" der einzelnen Layer, in denen die eigentlichen komprimierten Audiodaten enthalten sind.
Fig. 4 zeigt ein Bitstromformat mit fester Framelänge. In diesem Bitstromformat werden die Header oder Bestimmungs­ datenblöcke äquidistant in den Bitstrom eingefügt. Die zu diesem Header zugehörigen Seiteninformationen ("Side Infor­ mation") und Hauptdaten (Main Data) folgen unmittelbar da­ hinter. Die Länge, d. h. Bitanzahl, für die Hauptdaten ist in jedem Frame gleich. Ein solches Bitstromformat, wie es in Fig. 4 gezeigt wird, wird beispielsweise bei MPEG-Layer 2 oder MPEG-CELP verwendet.
Fig. 5 zeigt ein anderes Bitstromformat mit einer festen Framelänge und einem Backpointer oder Rückwärtszeiger. Bei diesem Bitstromformat sind der Header und die Seiteninfor­ mationen wie bei dem Format, das in Fig. 4 gezeigt ist, äquidistant angeordnet. Der Beginn der zugehörigen Haupt­ daten erfolgt allerdings nur im Ausnahmefall unmittelbar im Anschluß an einen Header. In den meisten Fällen ist der Beginn in einem der vorherigen Frames. Die Anzahl an Bits, um die der Beginn der Hauptdaten im Bitstrom verschoben ist, wird durch die Seiteninformations-Variable Backpointer übertragen. Das Ende dieser Hauptdaten kann in diesem Frame liegen oder in einem vorherigen Frame. Die Länge der Hauptdaten ist damit nicht mehr konstant. Somit kann die Anzahl der Bits, mit denen ein Block codiert wird, an die Eigenschaften des Signals angepaßt werden. Gleichzeitig kann jedoch eine konstante Bitrate erreicht werden. Diese Technik wird "Bitsparkasse" genannt und vergrößert das theoretische Delay in der Übertragungskette. Ein solches Bitstromformat wird beispielsweise bei MPEG Layer 3 (MP3) eingesetzt. Die Technik der Bitsparkasse ist ebenfalls in dem Standard MPEG Layer 3 beschrieben.
Allgemein gesagt stellt die Bitsparkasse einen Buffer von Bits dar, die eingesetzt werden können, um zum Codieren eines Blocks von zeitlichen Abtastwerten mehr Bits zur Ver­ fügung zu stellen, als eigentlich durch die konstante Aus­ gangsdatenrate erlaubt sind. Die Technik der Bitsparkasse trägt der Tatsache Rechnung, daß manche Blöcke von Audioab­ tastwerten mit weniger Bits als durch die konstante Über­ tragungsrate vorgegeben codiert werden können, so daß sich durch diese Blöcke die Bitsparkasse füllt, während wieder andere Blöcke von Audioabtastwerten psychoakustische Eigen­ schaften haben, die keine so große Kompression erlauben, so daß für diese Blöcke zum störungsarmen bzw. störungsfreien Codieren die zur Verfügung stehenden Bits eigentlich nicht ausreichen würden. Die benötigten überzähligen Bits werden aus der Bitsparkasse genommen, so daß sich die Bitsparkasse bei solchen Blöcken leert.
Ein solches Audiosignal könnte jedoch auch, wie es in Fig. 6 gezeigt ist, durch ein Format mit variabler Framelänge über­ tragen werden. Bei dem Bitstromformat "Variable Framelänge", wie es in Fig. 6 dargestellt ist, wird die feste Reihenfolge der Bitstromelemente Header, Seiteninformationen und Haupt­ daten wie bei der 'Festen Framelänge" eingehalten. Da die, Länge der Hauptdaten nicht konstant ist, kann auch hier die Bitsparkassentechnik eingesetzt werden, es werden jedoch keine Backpointer wie in Fig. 5 benötigt. Ein Beispiel für ein Bitstromformat, wie es in Fig. 6 dargestellt ist, ist das Transportformat ADTS (Audio Data Transport Stream), wie es im Standard MPEG 2 AAC definiert ist.
Es sei darauf hingewiesen, daß die vorher genannten Codierer alle keine skalierbaren Codierer sind, sondern lediglich ei­ nen einzigen Audiocodierer umfassen.
In MPEG 4 ist die Kombination verschiedener Codierer/Deco­ dierer zu einem skalierbaren Codierer/Decodierer vorgesehen. So ist es möglich und sinnvoll, einen Celp-Sprachcodierer als ersten Codierer mit einem AAC-Codierer für die weitere bzw. die weiteren Skalierungsschichten zu kombinieren und in einem Bitstrom zu verpacken. Der Sinn dieser Kombination be­ steht darin, daß die Möglichkeit offen steht, entweder alle Skalierungsschichten oder Layer zu decodieren und damit eine bestmögliche Audioqualität zu erreichen, oder auch Teile davon, unter Umständen auch nur die erste Skalierungsschicht mit der entsprechenden eingeschränkten Audioqualität. Gründe für die alleinige Decodierung der untersten Skalierungs­ schicht können sein, daß wegen zu kleiner Bandbreite des Übertragungskanals der Decodierer nur die erste Skalierungs­ schicht des Bitstroms erhalten hat. Deswegen werden bei der Übertragung die Anteile der ersten Skalierungsschicht im Bitstrom gegenüber der zweiten und den weiteren Skalierungs­ schichten bevorrechtigt, wodurch bei Kapazitätsengpässen im Übertragungsnetz die Übertragung der ersten Skalierungs­ schicht sichergestellt wird, während die zweite Skalierungs­ schicht eventuell ganz oder teilweise verloren geht.
Ein weiterer Grund kann darin liegen, daß ein Decodierer ein möglichst geringes Codec-Delay erreichen möchte und deswegen nur die erste Skalierungsschicht decodiert. Es sei darauf hingewiesen, daß das Codec-Delay eine Celp-Codecs im allge­ meinen signifikant kleiner als das Delay des AAC-Codecs ist.
In MPEG 4 Version 2 ist das Transportformat LATM standardi­ siert, welches unter anderem auch skalierbare Datenströme übertragen kann.
Im nachfolgenden wird auf Fig. 2a Bezug genommen. Fig. 2a ist eine schematische Darstellung der Abtastwerte des Ein­ gangssignals s(t). Das Eingangssignal kann in verschiedene aufeinanderfolgende Abschnitte 0, 1, 2, 3 eingeteilt werden, wobei jeder Abschnitt eine bestimmte feste Anzahl von zeitlichen Abtastwerten hat. Üblicherweise verarbeitet der AAC-Codierer 14 (Fig. 1) einen gesamten Abschnitt 0, 1, 2 oder 3, um für diesen Abschnitt ein codiertes Datensignal zu liefern. Der Celp-Codierer 12 (Fig. 1) verarbeitet jedoch üblicherweise eine geringere Menge an zeitlichen Abtast­ werten pro Codierungsschritt. So ist in Fig. 2b beispielhaft gezeigt, daß der Celp-Codierer bzw. allgemein gesagt der erste Codierer oder Coder 1 eine Blocklänge hat, die ein Viertel der Blocklänge des zweiten Codierers beträgt. Es sei darauf hingewiesen, daß diese Aufteilung völlig willkürlich ist. Die Blocklänge des ersten Codierers könnte auch halb so groß sein, könnte jedoch auch ein Elftel der Blocklänge des zweiten Codierers betragen. Somit wird der erste Codierer aus dem Abschnitt des Eingangssignals vier Blöcke erzeugen (11, 12, 13, 14), aus denen der zweite Codierer einen Block von Daten liefert. In Fig. 2c ist ein übliches LATM-Bit­ stromformat gezeigt.
Ein Superframe kann verschiedene Verhältnisse von Anzahl von AAC-Frames zu Anzahl von CELP-Frames haben, wie es in MPEG 4 tabellarisch dargelegt ist. So kann ein Superframe z. B. einen AAC Block und 1 bis 12 CELP-Blöcke, 3 AAC-Blöcke und 8 CELP-Blöcke aber auch z. B. mehr AAC-Blöcke als CELP-Blöcke je nach Konfiguration aufweisen. Ein LATM-Frame, der einen LATM-Bestimmungsdatenblock hat, umfaßt einen Superframe oder auch mehrere Superframes.
Es wird beispielhaft die Erzeugung des durch den Header 1 eröffneten LATM-Frames beschrieben. Zunächst werden die Ausgangsdatenblöcke 11, 12, 13, 14 des Celp-Codierers 12 (Fig. 1) erzeugt und zwischengespeichert. Parallel dazu wird der Ausgangsdatenblock des AAC-Codierers, der in Fig. 2c mit "1" bezeichnet ist, erzeugt. Dann, wenn der Ausgangsdaten­ block des AAC-Codierers erzeugt ist, wird erst der Bestim­ mungsdatenblock (Header 1) geschrieben. Je nach Konvention kann dann unmittelbar hinter den Header 1 der als erstes erzeugte Ausgangsdatenblock des ersten Codierers, der in Fig. 2c mit 11 bezeichnet ist, geschrieben, d. h. übertragen, werden. Es wird üblicherweise (in Anbetracht geringer erforderlicher Signalisierungsinformationen) zum weiteren Schreiben bzw. Übertragen des Bitstroms ein äquidistanter Abstand der Ausgangsdatenblöcke des ersten Codierers gewählt, wie es in Fig. 2c dargestellt ist. Dies bedeutet, daß nach dem Schreiben bzw. Übertragen des Blocks 11 der zweite Ausgangsdatenblock 12 des ersten Codierers, dann der dritte Ausgangsdatenblock 13 des ersten Codierers und dann der vierte Ausgangsdatenblock 14 des ersten Codie­ rers in äquidistanten Abständen geschrieben bzw. übertragen werden. Der Ausgangsdatenblock 1 des zweiten Codierers wird während der Übertragung in die verbleibenden Lücken einge­ füllt. Dann ist ein LATM-Frame fertig geschrieben, d. h. fertig übertragen.
Nachteilig an den in den Fig. 4 bis 6 dargestellten be­ kannten Bitstromformaten ist die Tatsache, daß dieselben nicht für skalierbare Datenströme geeignet sind.
Ein weiterer Nachteil der bekannten Bitstromformate besteht darin, daß kein Bitstromformat für einen skalierbaren Daten­ strom existiert, so daß die Bitsparkassenfunktion für ska­ lierbare Datenströme mit Ausgangsdaten von Codierern mit un­ terschiedlicher Zeitbasis, insbesondere für die Kombination AAC-Codierer und CELP-Codierer einer skalierbaren Codier­ vorrichtung derzeit nicht nutzbar gemacht werden kann. Da jedoch eine konstante Übertragungsrate gefordert wird, der AAC-Codierer jedoch Blöcke unterschiedlicher Länge abhängig von den Eigenschaften des codierten Signals ausgibt, kann durchaus der Fall auftreten, daß der AAC-Codierer zur Codierung eines Abschnitts des Zeitsignals mehr Bits als durch die Übertragungsrate vorgegeben, benötigt, während er für einen anderen Abschnitt wieder weniger Bits als durch die Ausgangsdatenrate vorgegeben fordert. Damit werden im letzteren Fall dem AAC-Codierer der skalierbaren Codiervorrichtung die Bits ausgehen, während der AAC-Codierer der skalierbaren Codiervorrichtung im ersteren Fall, um die konstante Ausgangsdatenrate einzuhalten, nicht umhin kommt, hörbare Störungen in das codierte und wieder decodierte Signal einzuführen.
Die Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren und eine Vorrichtung zum Erzeugen eines skalierba­ ren Datenstroms zu schaffen, das dazu geeignet ist, daß eine Bitsparkassenfunktion für eine Skalierungsschicht eingesetzt werden kann.
Diese Aufgabe wird durch ein Verfahren nach Patentanspruch 1 oder durch eine Vorrichtung nach Patentanspruch 9 gelöst.
Eine weitere Aufgabe der vorliegenden Erfindung besteht dar­ in, ein Verfahren zum Decodieren eines skalierbaren Daten­ stroms zu schaffen.
Diese Aufgabe wird durch ein Verfahren nach Patentanspruch 10 oder durch eine Vorrichtung nach Patentanspruch 11 ge­ löst.
Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, daß von dem bekannten, in Fig. 2c dargelegten Konzept wegge­ gangen werden muß, das darin besteht, daß sämtliche Daten eines Ausgangsdatenblocks des zweiten Codierers zwischen zwei aufeinanderfolgenden LATM-Headern angeordnet sind. Statt dessen wird es zugelassen, daß auch Ausgangsdaten des zweiten Codierers, die einen vorausgehenden Zeitabschnitt des Eingangssignals darstellen, nach einem Bestimmungsdaten­ block für den aktuellen Zeitabschnitt geschrieben werden, wobei diese Tatsache bzw. wieviel Daten noch in Übertra­ gungsrichtung hinter dem Bestimmungsdatenblock geschrieben werden, durch spezielle ebenfalls zu übertragende Pufferin­ formationen einem Decodierer signalisiert werden.
Der Decodierer kann dann ohne weiteres, ausgehend von einem Bestimmungsdatenblock und unter Verwendung der Pufferinfor­ mationen feststellen, wo die Ausgangsdaten des zweiten Co­ dierers enden, und wo dann die Ausgangsdaten des zweiten Codierers für den aktuellen Zeitabschnitt beginnen, so daß der Decodierer in der Lage ist, die korrespondierenden Aus­ gangsdatenblöcke des ersten Codierers mit korrespondierenden Ausgangsdatenblöcken des zweiten Codierers in Verbindung zu bringen, um das Signal in allen Schichten wieder zu deco­ dieren, wobei sich der Ausdruck "korrespondierend" darauf bezieht, daß die entsprechenden Daten des ersten und des zweiten Codierers auf den selben Abschnitt des Eingangssi­ gnals im Falle von CoreCoderDelay gleich Null (siehe Fig. 1) oder auf um Core Coder Delay verschobenen aktuelle Abschnit­ te für den ersten und den zweiten Codierer bezogen sind.
Bei einem erfindungsgemäßen Verfahren zum Erzeugen eines skalierbaren Datenstroms aus einem oder mehreren Blöcken von Ausgangsdaten eines ersten Codierers und aus einem oder meh­ reren Blöcken von Ausgangsdaten eines zweiten Codierers wird daher ein Bestimmungsdatenblock für einen aktuellen Ab­ schnitt des Eingangssignals geschrieben. Darüber hinaus wer­ den die Ausgangsdaten des zweiten Codierers, die einen vor­ hergehenden Abschnitt des Eingangssignals darstellen, in Übertragungsrichtung von einem Codierer zu einem Decodierer hinter den Bestimmungsdatenblock geschrieben. Die Ausgangs­ daten des zweiten Codierers, die sich auf den aktuellen Abschnitt des Eingangssignals beziehen, also die zu dem Bestimmungsdatenblock eigentlich gehören, können dann geschrieben werden, wenn die Ausgangsdaten des zweiten Codierers für den vorhergehenden Abschnitt vollständig geschrieben sind. Darüber hinaus werden Pufferinformationen in den skalierbaren Datenstrom geschrieben, wobei die Puf­ ferinformationen anzeigen, wie weit sich die Ausgangsdaten des zweiten Codierer für den vorausgehenden Abschnitt hinter dem Bestimmungsdatenblock für den aktuellen Abschnitt er­ strecken. Die Ausgangsdaten des ersten Codierers können entweder äquidistant oder nicht in den skalierbaren Daten­ strom geschrieben werden, wobei es jedoch, aus Delaygründen, um eine verzögerungsarme Decodierung der ersten Skalierungs­ schicht alleine, also lediglich der Ausgangsdatenblöcke des ersten Codierers zu ermöglichen, wünschenswert ist, diese Datenblöcke äquidistant und delayoptimiert zu schreiben.
Üblicherweise wird eine Bitsparkasse u. a. durch die maxi­ male Größe der Bitsparkasse definiert, wobei dieser Wert in Fig. 3 mit "Max Bufferfullness" bezeichnet wird. Dieser Wert ist fest und dem Decodierer bekannt. Darüber hinaus wird im Datenstrom der aktuelle Wert der Belegung der Bitsparkasse, der mit "Bufferfullness" bezeichnet wird, übertragen. Die Differenz aus der Variablen Max Bufferfullness und Buffer­ fullness liefert dann, wenn die vorliegende Erfindung auf einen MPEG 4-Codierer angewendet wird, die Pufferinformatio­ nen, wobei, wie es später dargelegt werden wird, in diesem Fall zu berücksichtigen ist, daß unter Umständen in den AAC-Blöcken eingestreute Celp-Blöcke oder Daten anderer Ska­ lierungsschichten nicht berücksichtigt werden dürfen, um den genauen Wert des Beginns der Ausgangsdaten des zweiten Da­ tenblocks hinter dem LATM-Bestimmungsdatenblock zu finden.
Unabhängig von der Funktionalität der Bitsparkasse ermög­ licht es das erfindungsgemäße Format jedoch auch, in einem äquidistanten Raster von Bestimmungsdatenblöcken, Ausgangs­ datenblöcke variierender Länge des zweiten Codierers zu übertragen. So kann es sinnvoll sein, das Raster für die Be­ stimmungsdatenblöcke und das Raster für die Ausgangsdaten­ blöcke des ersten Codierers äquidistant zu wählen, und ins­ besondere so zu wählen, daß einem Bestimmungsdatenblock im­ mer ein Ausgangsdatenblock des ersten Codierers folgt. Der Ausgangsdatenblock des zweiten Codierers wird dann in die verbleibenden Lücken geschrieben, wobei durch die Pufferin­ formationen signalisiert wird, wieviel Daten des zweiten Co­ dierers hinter einem Bestimmungsdatenblock zu dem Zeitab­ schnitt, auf den der Bestimmungsdatenblock hinweist, gehö­ ren, oder noch zu dem vorausgehenden zeitlichen Abschnitt des Eingangssignals zu zählen sind, damit der Decodierer eindeutig und zweifelsfrei eine Zuordnung zwischen Ausgangs­ datenblöcken des ersten Codierers und einem Ausgangsdaten­ block des zweiten Codierers für einen Zeitabschnitt des Ein­ gangssignals schaffen kann.
Ein Vorteil der vorliegenden Erfindung besteht ferner darin, daß das Signalisieren des Ausgangsdatenblocks hinter dem Be­ stimmungsdatenblock ohne weiteres mit einem Signalisieren von Ausgangsdatenblöcken des ersten Codierers vor dem Be­ stimmungsdatenblock für den aktuellen Zeitabschnitt kombi­ niert werden kann, um eine verzögerungsarme Decodierung le­ diglich der ersten Skalierungsschicht zu ermöglichen.
Der erfindungsgemäße skalierbare Datenstrom ist besonders für Echtzeitanwendungen von Nutzen, kann jedoch genauso auch für Nicht-Echtzeitanwendungen eingesetzt werden.
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Zeich­ nungen detailliert erläutert. Es zeigen:
Fig. 1 einen skalierbaren Codierer gemäß MPEG 4;
Fig. 2a eine schematische Darstellung eines Eingangs­ signals, das in aufeinanderfolgende Zeitabschnitte eingeteilt ist;
Fig. 2b eine schematische Darstellung eines Eingangssig­ nals, das in aufeinanderfolgende Zeitabschnitte eingeteilt ist, wobei das Verhältnis der Blocklänge des ersten Codierers zu der Blocklänge des zweiten Codierers dargestellt ist;
Fig. 2c eine schematische Darstellung eines skalierbaren Datenstroms mit hoher Verzögerung bei der Decodie­ rung der ersten Skalierungsschicht;
Fig. 2d eine schematische Darstellung eines skalierbaren Datenstroms mit niedriger Verzögerung bei der Decodierung der ersten Skalierungsschicht;
Fig. 2e ein Bitstromformat gemäß der vorliegenden Erfindung, in dem hinter dem Bestimmungsdatenblock für einen aktuellen Abschnitt noch Ausgangsdaten des zweiten Codierers aus einem vorhergehenden Zeitab­ schnitt angeordnet sind;
Fig. 3 eine detaillierte Darstellung des erfindungsgemäßen skalierbaren Datenstromes am Beispiel eines Celp- Codierers als erster Codierer und eines AAC-Codie­ rers als zweiter Codierer mit Bitsparkassenfunk­ tion.
Fig. 4 ein Beispiel für ein Bitstromformat mit fester Framelänge;
Fig. 5 ein Beispiel für ein Bitstromformat mit fester Framelänge und Back-Pointer; und
Fig. 6 ein Beispiel eines Bitstromformats mit variabler Framelänge.
Im nachfolgenden wird auf Fig. 2d im Vergleich zu Fig. 2c eingegangen, um einen Bitstrom mit niedriger Verzögerung für die erste Skalierungsschicht zu erläutern. Genauso wie in Fig. 2c enthält der skalierbare Datenstrom aufeinanderfol­ gende Bestimmungsdatenblöcke, die als Header 1 und Header 2 bezeichnet sind. Bei MPEG 4 sind die Bestimmungsdatenblöcke LATM-Header. In Übertragungsrichtung von einem Encoder zu einem Decodierer, die in Fig. 2d mit einem Pfeil 202 dar­ gestellt ist, findet sich hinter dem LATM-Header 200 die von links oben nach rechts unten schraffierten Teile des Aus­ gangsdatenblocks des AAC-Codierers, die in verbleibende Lücken zwischen Ausgangsdatenblöcken des ersten Codierers eingetragen sind.
Ferner finden sich im Unterschied zu Fig. 2c nun jedoch in dem durch den LATM-Header 200 begonnenen Frame nicht mehr nur Ausgangsdatenblöcke des ersten Codierers, die in diesen Frame gehören, wie z. B. die Ausgangsdatenblöcke 13 und 14, sondern auch die Ausgangsdatenblöcke 21 und 22 des nachfol­ genden Abschnitts von Eingangsdaten. Anders ausgedrückt sind bei dem in Fig. 2d gezeigten Beispiel die beiden Ausgangsda­ tenblöcke des ersten Codierers, die mit 11 und 12 bezeichnet sind, in Übertragungsrichtung (Pfeil 202) vor dem LATM-Hea­ der 200 im Bitstrom vorhanden. Bei dem in Fig. 2d gezeigten Beispiel deuten die Offset-Informationen 204 auf einen Off­ set der Ausgangsdatenblöcke des ersten Codierers von zwei Ausgangsdatenblöcken hin. Wenn Fig. 2d mit Fig. 2c vergli­ chen wird, so ist zu erkennen, daß der Decodierer bereits die unterste Skalierungsschicht genau um eine diesem Offset entsprechende Zeit früher decodieren kann als im Fall von Fig. 2c, wenn der Decodierer lediglich an der ersten Skalie­ rungsschicht interessiert ist. Die Offset-Informationen, die z. B. in Form eines "Core Frame Offset" signalisiert werden können, dienen dazu, die Position des ersten Ausgangsdaten­ blocks 11 im Bitstrom zu bestimmen.
Für den Fall von Core Frame Offset = Null ergibt sich der in Fig. 2c bezeichnete Bitstrom. Ist jedoch Core Frame Offset < Null, so wird der entsprechende Ausgangsdatenblock des er­ sten Codierers 11 um die Anzahl Core Frame Offset an Aus­ gangsdatenblöcken des ersten Codierers früher übertragen. Anders ausgedrückt ergibt sich das Delay zwischen dem ersten Ausgangsdatenblock des ersten Codierers nach dem LATM-Header und dem ersten AAC-Frame aus Core Coder Delay (Fig. 1) + Core Frame Offset × Core-Blocklänge (Blocklänge des Coders 1 in Fig. 2b). Wie aus dem Vergleich von Fig. 2c und 2d deutlich wird, werden für Core Frame Offset = Null (Fig. 2c) nach dem LATM-Header 200 die Ausgangsdatenblöcke 11 und 12 des ersten Codierers übertragen. Durch die Übertragung von Core Frame Offset = 2 können die Ausgangsdatenblöcke 13 und 14 nach dem LATM-Header 200 folgen, wodurch die Verzögerung bei reiner Celp-Decodierung, also Decodierung der ersten Skalierungsschicht, um zwei Celp-Blocklängen verringert wird. Optimal wäre im Beispiel ein Offset von drei Blöcken. Ein Offset von einem oder zwei Blöcken bringt jedoch ebenfalls bereits einen Delayvorteil.
Durch diesen Bitstromaufbau ist es möglich, daß der Celp- Codierer den erzeugten Celp-Block unmittelbar nach dem Co­ dieren übertragen kann. In diesem Fall wird dem Celp-Codie­ rer kein zusätzliches Delay durch den Bitstrommultiplexer (20) zugefügt. Somit wird für diesen Fall zu dem Celp-Delay kein zusätzliches Delay durch die skalierbare Kombination hinzugefügt, so daß das Delay minimal wird.
Es wird darauf hingewiesen, daß der in Fig. 2d gezeigte Fall lediglich beispielhaft ist. So sind verschiedene Verhält­ nisse der Blocklänge des ersten Codierers zu der Blocklänge des zweiten Codierers möglich, die z. B. von 1 : 2 bis zu 1 : 12 variieren können oder aber auch andere Verhältnisse einneh­ men können, wobei Verhältnisse größer oder kleiner Eins auftreten können.
Dies heißt im Extremfall (1 : 12 für MPEG 4 CELP/AAC), daß für denselben Zeitabschnitt des Eingangssignals, für den der AAC-Codierer einen Ausgangsdatenblock erzeugt, der Celp-Co­ dierer zwölf Ausgangsdatenblöcke erzeugt. Der Verzögerungs- Vorteil durch den Datenstrom, der in Fig. 2d gezeigt ist, gegenüber dem Datenstrom, der in Fig. 2c gezeigt ist, kann in diesem Fall durchaus in Größenordnungen von einer viertel bis zu einer halben Sekunde kommen. Dieser Vorteil wird sich um so mehr erhöhen, je größer das Verhältnis zwischen Block­ länge des zweiten Codierers und Blocklänge des ersten Codie­ rers wird, wobei im Falle des AAC-Codierers als zweiter Co­ dierer eine möglichst große Blocklänge aufgrund des dann günstigeren Verhältnisses zwischen Nutzinformationen zu Seiteninformationen angestrebt wird, wenn es das zu codie­ rende Signal zuläßt.
Im nachfolgenden wird auf Fig. 2e Bezug genommen. Im Un­ terschied zu Fig. 2d, in der bereits die Offset-Funktion, also die Verschiebung der Ausgangsdatenblöcke des ersten Co­ dierers bezüglich eines Bestimmungsdatenblocks dargestellt sind, wird in Fig. 2e die erfindungsgemäße Verschiebung der Ausgangsdatenblöcke des zweiten Codierers bezüglich des durch die Bestimmungsdatenblöcke gegebenen Rasters darge­ stellt. Die Anordnung der Ausgangsdatenblöcke des ersten Co­ dierers, die mit 11, 12, 13, 14, 21, 22, 23, 24, 31 in Fig. 2e bezeichnet sind, ist gegenüber Fig. 2d unverändert. Wäh­ rend in Fig. 2d keine Bitsparkassenfunktion möglich ist, bzw., wenn die Bestimmungsdatenblöcke in einem festen Raster sein sollen, keine Ausgangsdatenblöcke veränderlicher Länge für den zweiten Codierer eingesetzt werden können, ist dies bei Fig. 2e nunmehr gemäß der vorliegenden Erfindung mög­ lich.
Hierzu werden die Daten des Ausgangsdatenblocks des zweiten Codierers des vorausgehenden Abschnitts, der mit "0" in den Fig. 2a bis 2e bezeichnet ist, in Übertragungsrichtung von einem Codierer zu einem Decodierer hinter den LATM- Header 200 geschrieben, bis der skalierbare Codierer sämtliche Daten des vorausgehenden Abschnitts in den Bit­ strom geschrieben hat. Erst dann wird an einer Übergangs­ grenze 220 damit begonnen, die Ausgangsdaten des zweiten Co­ dierers für den aktuellen Abschnitt des Eingangssignals in den Bitstrom zu schreiben. So kann die Übergangsgrenze 220 mit einer Grenze eines Celp-Datenblocks zusammenfallen oder auch nicht. Je nach Signalisierung kann entweder der Abstand vom Ende des Bestimmungsdatenblocks bis zur Übergangsgrenze 220 oder der Abstand vom Anfang des Bestimmungsdatenblocks bis zur Übergangsgrenze 220 oder aber der Abstand von der hinteren Grenze des Celp-Blocks 13 bis zur Übergangsgrenze 220 mit oder ohne Länge der Celp-Blöcke 13, 14 und/oder der Länge des Bestimmungsdatenblocks als Pufferinformationen signalisiert werden. Die letztere Variante wird bezugnehmend auf Fig. 3 noch näher dargestellt.
Erfindungsgemäß wird es im Fall der Anwendung auf einen ska­ lierbaren Codierer bevorzugt, keine eigenen Seiteninfor­ mationen zur Signalisierung der Pufferinformationen vorzuse­ hen, sondern hierzu den bereits ohnehin im Bitstrom übertra­ genen Wert Bufferfullness zu verwenden, wobei die Länge des mit "Pufferinformationen" in Fig. 2e bezeichneten Zeigers, der in Fig. 3 mit dem Bezugszeichen 314 gekennzeichnet ist, genau gleich der Differenz zwischen Max Bufferfullness und Bufferfullness ist, wenn die Länge der Bestimmungsdaten­ blöcke und die Länge eventuell vorhandener Celp-Blöcke sowie evtl. vorhandener weiterer Skalierungsschichten unberück­ sichtigt bleiben, wie es bezugnehmend auf Fig. 3 durch den unterbrochen gezeichneten Pfeil dargestellt ist.
Im nachfolgenden wird auf Fig. 3 eingegangen, welche zu Fig. 2 ähnlich ist, jedoch die besondere Implementierung am Bei­ spiel von MPEG 4 darstellt. In der ersten Zeile ist wieder ein aktueller Zeitabschnitt schraffiert gezeigt. In der zweiten Zeile ist die Fensterung, die beim AAC-Codierer verwendet wird, schematisch dargestellt. Wie es bekannt ist, wird ein Overlap-And-Add von 50% verwendet, so daß ein Fenster üblicherweise die doppelte Länge von zeitlichen Abtastwerten hat wie der aktuelle Zeitabschnitt, der in der obersten Zeile von Fig. 3 schraffiert dargestellt ist. In Fig. 3 ist ferner die Verzögerung tdip eingezeichnet, die dem Block 26 von Fig. 1 entspricht und die im gewählten Beispiel eine Größe von 5/8 der Blocklänge hat. Typischer­ weise wird eine Blocklänge des aktuellen Zeitabschnitts von 960 Abtastwerten verwendet, so daß die Verzögerung tdip von 5/8 der Blocklänge 600 Abtastwerte beträgt. Beispielsweise liefert der AAC-Codierer einen Bitstrom von 24 kBit/s, wäh­ rend der darunter schematisch dargestellte Celp-Codierer einen Bitstrom mit einer Rate von 8 kBit/s liefert. Dies resultiert in einer Gesamtbitrate von 32 kBit/s.
Wie es aus Fig. 3 ersichtlich ist, entsprechen die Ausgangs­ datenblöcke Null und Eins des Celp-Codierers dem aktuellen Zeitabschnitt des ersten Codierers. Der Ausgangsdatenblock mit der Nummer 2 des Celp-Codierers entspricht bereits dem nächsten Zeitabschnitt. Dasselbe trifft für den Celp-Block mit der Nummer 3 zu. In Fig. 3 ist ferner die Verzögerung der Downsampling-Stufe 28 und des Celp-Codierers 12 durch einen Pfeil eingezeichnet, der mit dem Bezugszeichen 302 dargestellt ist. Daraus ergibt sich als die Verzögerung, die durch die Stufe 34 eingestellt werden muß, damit an der Subtrahierstelle 40 von Fig. 1 gleiche Verhältnisse vorliegen, die Verzögerung, die durch Core Coder Delay bezeichnet ist und mit einem Pfeil 304 in Fig. 3 veranschaulicht ist. Diese Verzögerung kann alternativ auch durch Block 26 erzeugt werden. So gilt beispielsweise:
Core Coder Delay = - tdip - Celp Encoder Delay - Downsampling Delay = - 600 - 120 - 117 = 363 Abtastwerte.
Für den Fall ohne Bitsparkassenfunktion bzw. für den Fall, daß die Bitsparkasse (Bit Mux Outputbuffer) voll ist, was durch die Variable Bufferfullness = Max angezeigt ist, er­ gibt sich der in Fig. 2d gezeichnete Fall. Im Unterschied zu Fig. 2d, bei der vier Ausgangsdatenblöcke des ersten Codie­ rers entsprechend einem Ausgangsdatenblock des zweiten Co­ dierers erzeugt werden, wird bei Fig. 3 für einen Ausgangs­ datenblock des zweiten Codierers, welcher in den beiden letzten Zeilen von Fig. 3 schwarz gezeichnet ist, zwei Aus­ gangsdatenblöcke des Celp-Codierers, die mit "0" und "1" be­ zeichnet sind, erzeugt. Erfindungsgemäß wird nun jedoch hin­ ter einen ersten LATM-Header 306 nicht mehr der Ausgangs­ datenblock des Celp-Codierers mit der Nummer "0" geschrie­ ben, sondern der Ausgangsdatenblock des Celp-Codierers mit der Nummer "Eins", zumal der Ausgangsdatenblock mit der Num­ mer "Null" bereits zum Decodierer übertragen worden ist. In dem für die Celp-Datenblöcke vorgesehenen äquidistanten Rasterabstand folgt dann dem Celp-Block 1 der Celp-Block 2 für den nächsten Zeitabschnitt, wobei dann zur Fertigstel­ lung eines Frames der Rest der Daten des Ausgangsdatenblocks des AAC-Codierers in den Datenstrom geschrieben wird, bis wieder ein nächster LATM-Header 308 für den nächsten Zeitab­ schnitt folgt.
Die vorliegende Erfindung kann, wie es in der letzten Zeile von Fig. 3 dargestellt ist, einfach mit der Bitsparkassen­ funktion kombiniert werden. Für den Fall, daß die Variable "Bufferfullness", die die Füllung der Bitsparkasse anzeigt, kleiner als der maximale Wert ist, bedeutet dies, daß der AAC-Frame für den unmittelbar vorhergehenden Zeitabschnitt mehr Bits als eigentlich zulässig benötigt hat. Dies be­ deutet, daß hinter dem LATM-Header 306 die Celp-Frames wie vorher geschrieben werden, daß jedoch zunächst der Ausgangs­ datenblock oder die Ausgangsdatenblöcke des AAC-Codierers aus vorhergehenden Zeitabschnitten in den Bitstrom geschrie­ ben werden müssen, bevor mit dem Schreiben des Ausgangsda­ tenblocks des AAC-Codierers für den aktuellen Zeitabschnitt begonnen werden kann. Aus dem Vergleich der beiden letzten Zeilen von Fig. 3, die mit "1" und "2" gekennzeichnet sind, ist zu sehen, daß die Bitsparkassenfunktion unmittelbar auch zu einer Verzögerung im Codierer für den AAC-Frame führt. So sind die Daten für den AAC-Frame des aktuellen Zeitabschnitts, die in Fig. 3 mit 310 bezeichnet sind, zwar genau zum gleichen Zeitpunkt wie im Fall "1" vorhanden, können jedoch erst dann in den Bitstrom geschrieben werden, nachdem die AAC-Daten 312 für den unmittelbar vorhergehenden Zeitabschnitt in den Bitstrom geschrieben worden sind. In Abhängigkeit von dem Bitsparkassenstand des AAC-Codierers verschiebt sich somit die Anfangsposition des AAC-Frames.
Der Bitsparkassenstand wird gemäß MPEG 4 im Element StreamMuxConfig durch die Variable "Bufferfullness" übertra­ gen. Die Variable Bufferfullness berechnet sich aus der Variablen Bitreservoir geteilt durch das 32fache der gerade vorhandenen Kanalanzahl der Audiokanäle.
Es sei darauf hingewiesen, daß es sich bei dem Zeiger, der in Fig. 3 mit dem Bezugszeichen 314 gekennzeichnet ist, und dessen Länge = max Bufferfullness - Bufferfullness ist, um einen Vorwärtszeiger handelt, der gewissermaßen in die Zukunft zeigt, während es sich bei dem in Fig. 5 gezeich­ neten Zeiger um einen Rückwärtszeiger handelt, der gewissermaßen in die Vergangenheit zeigt. Dies liegt daran, daß gemäß vorliegendem Ausführungsbeispiel der LATM-Header immer dann in den Bitstrom geschrieben wird, nachdem der aktuelle Zeitabschnitt durch den AAC-Codierer verarbeitet worden ist, obgleich ggf. noch AAC-Daten aus vorherigen Zeitabschnitten in den Bitstrom zu schreiben sind.
Es sei ferner darauf hingewiesen, daß der Zeiger 314 ab­ sichtlich unterhalb des Celp-Blocks 2 unterbrochen gezeich­ net ist, da er die Länge des Celp-Blocks 2 genauso wie die Länge des Celp-Blocks 1 nicht berücksichtigt, da diese Daten selbstverständlich nichts mit der Bitsparkasse des AAC-Co­ dierers zu tun haben. Ferner werden keinerlei Header-Daten und Bits von gegebenenfalls vorhandenen weiteren Layern berücksichtigt.
Im Decodierer wird zunächst aus dem Bitstrom eine Extraktion der Celp-Frames vorgenommen, was ohne weiteres möglich ist, da dieselben beispielsweise äquidistant angeordnet sind und eine feste Länge haben.
Im LATM-Header können jedoch ohnehin Länge und Abstand aller CELP-Blöcke signalisiert werden, so daß in jedem Fall eine unmittelbare Decodierung möglich ist.
Damit werden die gewissermaßen durch den Celp-Block 2 ge­ trennten Teile der Ausgangsdaten des AAC-Codierers des un­ mittelbar vorhergehenden Zeitabschnitts wieder aneinander­ gefügt, und der LATM-Header 306 rückt gewissermaßen an den Beginn des Zeigers 314, so daß der Decodierer unter Kenntnis der Länge des Zeigers 314 weiß, wann nunmehr die Daten des unmittelbar vorhergehenden Zeitabschnitts zu Ende sind, um dann, wenn diese Daten vollständig eingelesen sind, den un­ mittelbar vorhergehenden Zeitabschnitt zusammen mit den für denselben vorhandenen Celp-Datenblöcken mit voller Audio­ qualität decodieren zu können.
Im Gegensatz zu dem in Fig. 2c gezeigten Fall, bei dem einem LATM-Header sowohl die Ausgangsdatenblöcke des ersten Codie­ rers als auch der Ausgangsdatenblock des zweiten Codierers folgt, kann nun einerseits durch die Variable Core Frame Offset eine Verschiebung von Ausgangsdatenblöcken des ersten Codierers nach vorne im Bitstrom erfolgen, während durch den Pfeil 314 (max Bufferfullness - Bufferfullness) eine Ver­ schiebung des Ausgangsdatenblocks des zweiten Codierers nach hinten im skalierbaren Datenstrom erreicht werden kann, so daß die Bitsparkassenfunktion auch im skalierbaren Daten­ strom auf einfache und sichere Art und Weise implementiert werden kann, während das Grundraster des Bitstroms durch die aufeinanderfolgende LATM-Bestimmungsdatenblöcke beibehalten wird, die immer dann geschrieben werden, wenn der AAC-Co­ dierer einen Zeitabschnitt codiert hat, und die daher als Bezugspunkt dienen können, auch wenn, wie es in Fig. 3 in der letzten Zeile gezeigt ist, ein Großteil der Daten in dem durch einen LATM-Header bezeichneten Frame einerseits vom nächsten Zeitabschnitt stammen (hinsichtlich der Celp- Frames) oder aber von unmittelbar vorhergehenden Zeitab­ schnitten stammen (hinsichtlich des AAC-Frames), wobei die jeweiligen Verschiebungen jedoch durch die zwei im Bitstrom zusätzlich zu übertragenden Variablen einem Decodierer mit­ geteilt werden.

Claims (11)

1. Verfahren zum Erzeugen eines skalierbaren Datenstroms aus einem oder mehreren Blöcken von Ausgangsdaten eines er­ sten Codierers (12) und aus einem oder mehreren Blöcken von Ausgangsdaten eines zweiten Codierers (14), wobei der eine oder die mehreren Blöcke von Ausgangsdaten des er­ sten Codierers (12) zusammen eine Anzahl von Abtastwerten des Eingangssignals für den ersten Codierer darstellen, die einen aktuellen Abschnitt des Eingangssignals für den ersten Codierer bilden, und wobei der eine Block oder die mehreren Blöcke von Ausgangsdaten des zweiten Codierers (14) zusammen eine Anzahl von Abtastwerten des Eingangs­ signals für den zweiten Codierer darstellen, wobei die Anzahl von Abtastwerten für den zweiten Codierer einen aktuellen Abschnitt des Eingangssignals für den zweiten Codierer bildet, wobei die Anzahl von Abtastwerten für den ersten Codierer und die Anzahl von Abtastwerten für den zweiten Codierer gleich sind, und wobei die aktuellen Abschnitte für den ersten und den zweiten Codierer identisch sind oder um eine Zeitdauer (34) zueinander verschoben sind, mit folgenden Schritten:
Schreiben eines Bestimmungsdatenblocks (306) für den ak­ tuellen Abschnitt des Eingangssignals für den ersten oder den zweiten Codierer;
Schreiben von Ausgangsdaten (312) des zweiten Codierers, die einen vorhergehenden Abschnitt des Eingangssignals für den zweiten Codierer darstellen, in Übertragungsrich­ tung von einem Codierer zu einem Decodierer hinter den Bestimmungsdatenblock (306);
Schreiben von Ausgangsdaten (310) des zweiten Codierers, die den aktuellen Abschnitt des Eingangssignals für den zweiten Codierer darstellen, wenn die Ausgangsdaten des zweiten Codierers für den vorhergehenden Abschnitt des Eingangssignals geschrieben sind;
Schreiben von Pufferinformationen (314) in den skalierba­ ren Datenstrom, wobei die Pufferinformationen anzeigen, wie weit sich die Ausgangsdaten des zweiten Codierers für den vorausgehenden Abschnitt für den zweiten Codierer hinter den Bestimmungsdatenblock erstrecken; und
Schreiben des einen oder der mehreren Blöcke der Aus­ gangsdaten des ersten Codierers (12) in den skalierbaren Datenstrom.
2. Verfahren nach Anspruch 1,
bei dem die Längen der Blöcke von Ausgangsdaten des zwei­ ten Codierers für gleichlange Abschnitte des Eingangssi­ gnals unterschiedlich sind, wobei die Längen der Blöcke von Ausgangsdaten von Signaleigenschaften des Eingangs­ signals abhängen,
bei dem der eine oder die mehreren Blöcke der Ausgangs­ daten des ersten Codierers für gleichlange Abschnitte des Eingangssignals gleich lang sind, und
bei dem die Übertragungsrate des Bitstroms konstant ist.
3. Verfahren nach Anspruch 1 oder 2,
bei dem der zweite Codierer (14) eine Bitsparkassenfunk­ tion aufweist, wobei die maximale Größe der Bitsparkasse durch Maximal-Puffergrößeninformationen gegeben ist, und wobei der aktuelle Stand der Bitsparkasse durch Aktuell- Pufferinformationen gegeben ist,
bei dem die Pufferinformationen (314) die Aktuell-Puffer­ informationen sind, und
bei dem die Größe, wie weit sich die Ausgangsdaten des zweiten Codierers für den vorhergehenden Zeitabschnitt hinter den Bestimmungsdatenblock (306) erstrecken, aus der Differenz zwischen den Maximal-Puffergrößeninforma­ tionen und den Aktuell-Pufferinformationen ableitbar ist.
4. Verfahren nach einem der vorhergehenden Ansprüche,
bei dem das Schreiben von Ausgangsdaten des ersten Codie­ rers so durchgeführt wird, daß ein Block von Ausgangsda­ ten des ersten Codierers unmittelbar hinter einem Bestim­ mungsdatenblock (306) angeordnet ist, und
bei dem die Länge dieses Bestimmungsdatenblocks (306) sowie die Länge von vorhandenen Ausgangsdatenblöcken des ersten Codierers sowie gegebenenfalls vorhandene Daten weiterer Skalierungsschichten bei der Bestimmung der Größe, wie weit sich die Ausgangsdaten des zweiten Codie­ rers hinter den Bestimmungsdatenblock erstrecken, unter Verwendung der Aktuell-Pufferinformationen und der Maxi­ mal-Puffergrößeninformationen ignoriert werden.
5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Einrichtung (20) zum Schreiben des einen oder der mehreren Blöcke von Ausgangsdaten des ersten Codie­ rers ausgebildet ist, um die Blöcke von Ausgangsdaten des ersten Codierers äquidistant in den skalierbaren Daten­ strom zu schreiben.
6. Verfahren nach einem der vorhergehenden Ansprüche,
bei dem der erste Codierer (12) ein Celp-Codierer ist,
bei dem der zweite Codierer (14) ein AAC-Codierer ist, und
bei dem der Bestimmungsdatenblock ein LATM-Header gemäß MPEG 4 ist.
7. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der zumindest eine Block von Ausgangsdaten des zwei­ ten Codierers (14) und der zumindest einen Block von Aus­ gangsdaten des ersten Codierers (12) Nutzdaten in einem Superframe sind, der neben den Nutzdaten genau einen Be­ stimmungsdatenblock aufweist.
8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem im Schritt des Schreibens der Blöcke von Aus­ gangsdaten des ersten Codierers zumindest ein Block von Ausgangsdaten des ersten Codierers für den aktuellen Abschnitt des Eingangssignals für den ersten Codierer in Übertragungsrichtung vor dem Bestimmungsdatenblock für den aktuellen Zeitabschnitt geschrieben wird.
9. Vorrichtung zum Erzeugen eines skalierbaren Datenstroms aus einem oder mehreren Blöcken von Ausgangsdaten eines ersten Codierers (12) und aus einem oder mehreren Blöcken von Ausgangsdaten eines zweiten Codierers (14), wobei der eine oder die mehreren Blöcke von Ausgangsdaten des er­ sten Codierers (12) zusammen eine Anzahl von Abtastwerten des Eingangssignals für den ersten Codierer darstellen, die einen aktuellen Abschnitt des Eingangssignals für den ersten Codierer bilden, und wobei der eine Block oder die mehreren Blöcke von Ausgangsdaten des zweiten Codierers (14) zusammen eine Anzahl von Abtastwerten des Eingangs­ signals für den zweiten Codierer darstellen, wobei die Anzahl von Abtastwerten für den zweiten Codierer einen aktuellen Abschnitt des Eingangssignals für den zweiten Codierer bildet, wobei die Anzahl von Abtastwerten für den ersten Codierer und die Anzahl von Abtastwerten für den zweiten Codierer gleich sind, und wobei die aktuellen Abschnitte für den ersten und den zweiten Codierer iden­ tisch sind oder um eine Zeitdauer (34) zueinander ver­ schoben sind, mit folgenden Merkmalen:
einer Einrichtung zum Schreiben eines Bestimmungsdaten­ blocks (306) für den aktuellen Abschnitt des Eingangssi­ gnals für den ersten oder den zweiten Codierer;
einer Einrichtung zum Schreiben von Ausgangsdaten (312) des zweiten Codierers, die einen vorhergehenden Abschnitt des Eingangssignals für den zweiten Codierer darstellen, in Übertragungsrichtung von einem Codierer zu einem Deco­ dierer hinter den Bestimmungsdatenblock (306);
einer Einrichtung zum Schreiben von Ausgangsdaten (310) des zweiten Codierers, die den aktuellen Abschnitt des Eingangssignals für den zweiten Codierer darstellen, wenn die Ausgangsdaten des zweiten Codierers für den vorherge­ henden Abschnitt des Eingangssignals geschrieben sind;
einer Einrichtung zum Schreiben von Pufferinformationen (314) in den skalierbaren Datenstrom, wobei die Pufferin­ formationen anzeigen, wie weit sich die Ausgangsdaten des zweiten Codierers für den vorausgehenden Abschnitt für den zweiten Codierer hinter den Bestimmungsdatenblock erstrecken; und
einer Einrichtung zum Schreiben des einen oder der meh­ reren Blöcke der Ausgangsdaten des ersten Codierers (12) in den skalierbaren Datenstrom.
10. Verfahren zum Decodieren eines skalierbaren Datenstroms aus einem oder mehreren Blöcken von Ausgangsdaten eines ersten Codierers (12) und aus einem oder mehreren Blöcken von Ausgangsdaten eines zweiten Codierers (14), wobei der eine oder die mehreren Blöcke von Ausgangs­ daten des ersten Codierers (12) zusammen eine Anzahl von Abtastwerten des Eingangssignals für den ersten Codierer darstellen, die einen aktuellen Abschnitt des Eingangs­ signals für den ersten Codierer bilden, und wobei der eine Block oder die mehreren Blöcke von Ausgangsdaten des zweiten Codierers (14) zusammen eine Anzahl von Abtastwerten des Eingangssignals für den zweiten Codierer darstellen, wobei die Anzahl von Abtastwerten für den zweiten Codierer einen aktuellen Abschnitt des Eingangs­ signals für den zweiten Codierer bildet, wobei die An­ zahl von Abtastwerten für den ersten Codierer und die Anzahl von Abtastwerten für den zweiten Codierer gleich sind, und wobei die aktuellen Abschnitte für den ersten und den zweiten Codierer identisch sind oder um eine Zeitdauer (34) zueinander verschoben sind, wobei der skalierbare Datenstrom einen Bestimmungsdatenblock für den aktuellen Abschnitt für den ersten oder zweiten Codierer, Ausgangsdaten des zweiten Codierers für einen vorhergehenden Abschnitt des Eingangssignals in Übertra­ gungsrichtung hinter dem Bestimmungsdatenblock und Puf­ ferinformationen aufweist, die anzeigen, wie weit sich die Ausgangsdaten des zweiten Codierers für den voraus­ gehenden Abschnitt hinter den Bestimmungsdatenblock er­ strecken, mit folgenden Schritten:
Lesen des Bestimmungsdatenblocks (306) für den aktuellen Abschnitt des Eingangssignals für den ersten oder zwei­ ten Codierer;
Lesen der Ausgangsdaten des ersten Codierers für den ak­ tuellen Abschnitt des ersten Codierers (12);
Lesen der Pufferinformationen (314);
Lesen der Ausgangsdaten (310) des zweiten Codierers für den aktuellen Abschnitt ausgehend von einer durch die Pufferinformationen (314) angezeigten Stelle im skalier­ baren Datenstrom; und
Decodieren der Ausgangsdaten (310) des zweiten Codierers und der Ausgangsdaten des ersten Codierers, um ein deco­ diertes Signal zu erhalten.
11. Vorrichtung zum Decodieren eines skalierbaren Datenstroms aus einem oder mehreren Blöcken von Ausgangsdaten eines ersten Codierers (12) und aus einem oder mehreren Blöcken von Ausgangsdaten eines zweiten Codierers (14), wobei der eine oder die mehreren Blöcke von Ausgangsda­ ten des ersten Codierers (12) zusammen eine Anzahl von Abtastwerten des Eingangssignals für den ersten Codierer darstellen, die einen aktuellen Abschnitt des Eingangs­ signals für den ersten Codierer bilden, und wobei der eine Block oder die mehreren Blöcke von Ausgangsdaten des zweiten Codierers (14) zusammen eine Anzahl von Ab­ tastwerten des Eingangssignals für den zweiten Codierer darstellen, wobei die Anzahl von Abtastwerten für den zweiten Codierer einen aktuellen Abschnitt des Eingangs­ signals für den zweiten Codierer bildet, wobei die An­ zahl von Abtastwerten für den ersten Codierer und die Anzahl von Abtastwerten für den zweiten Codierer gleich sind, und wobei die aktuellen Abschnitte für den ersten und den zweiten Codierer identisch sind oder um eine Zeitdauer (34) zueinander verschoben sind, wobei der skalierbare Datenstrom einen Bestimmungsdatenblock für den aktuellen Abschnitt für den ersten oder zweiten Codierer, Ausgangsdaten des zweiten Codierers für einen vorhergehenden Abschnitt des Eingangssignals in Übertra­ gungsrichtung hinter dem Bestimmungsdatenblock und Puf­ ferinformationen aufweist, die anzeigen, wie weit sich die Ausgangsdaten des zweiten Codierers für den voraus­ gehenden Abschnitt hinter den Bestimmungsdatenblock er­ strecken, mit folgenden Merkmalen:
einem Bitstromdemultiplexer, der ausgebildet ist, um folgende Schritte durchführen zu können:
Lesen des Bestimmungsdatenblocks (306) für den ak­ tuellen Abschnitt des Eingangssignals für den ersten oder zweiten Codierer;
Lesen der Ausgangsdaten des ersten Codierers für den aktuellen Abschnitt des ersten Codierers (12);
Lesen der Pufferinformationen (314);
Lesen der Ausgangsdaten (310) des zweiten Codierers für den aktuellen Abschnitt ausgehend von einer durch die Pufferinformationen (314) angezeigten Stelle im skalierbaren Datenstrom; und
einer Einrichtung zum Decodieren der Ausgangsdaten (310) des zweiten Codierers und der Ausgangsdaten des ersten Codierers, um ein decodiertes Signal zu erhalten.
DE10102154A 2001-01-18 2001-01-18 Verfahren und Vorrichtung zum Erzeugen eines skalierbaren Datenstroms und Verfahren und Vorrichtung zum Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkassenfunktion Expired - Lifetime DE10102154C2 (de)

Priority Applications (11)

Application Number Priority Date Filing Date Title
DE10102154A DE10102154C2 (de) 2001-01-18 2001-01-18 Verfahren und Vorrichtung zum Erzeugen eines skalierbaren Datenstroms und Verfahren und Vorrichtung zum Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkassenfunktion
AU2002242667A AU2002242667B2 (en) 2001-01-18 2002-01-14 Method and device for producing a scalable data stream, and method and device for decoding a scalable data stream while taking a bit bank function into account
US10/466,866 US7496517B2 (en) 2001-01-18 2002-01-14 Method and device for generating a scalable data stream and method and device for decoding a scalable data stream with provision for a bit saving bank function
JP2002558258A JP3890298B2 (ja) 2001-01-18 2002-01-14 スケーラブルデータストリームを生成する方法と装置およびスケーラブルデータストリームを復号化する方法と装置
EP02708282A EP1354314B1 (de) 2001-01-18 2002-01-14 Verfahren und vorrichtung zum erzeugen eines skalierbaren datenstroms und verfahren und vorrichtung zum decodieren eines skalierbaren datenstroms unter berücksichtigung einer bitsparkassenfunktion
PCT/EP2002/000295 WO2002058051A2 (de) 2001-01-18 2002-01-14 Verfahren und vorrichtung zum erzeugen eines skalierbaren datenstroms und verfahren und vorrichtung zum decodieren eines skalierbaren datenstroms unter berücksichtigung einer bitsparkassenfunktion
CA002434783A CA2434783C (en) 2001-01-18 2002-01-14 Method and device for generating a scalable data stream and method and device for decoding a scalable data stream with provision for a bit savings bank function
AT02708282T ATE272884T1 (de) 2001-01-18 2002-01-14 Verfahren und vorrichtung zum erzeugen eines skalierbaren datenstroms und verfahren und vorrichtung zum decodieren eines skalierbaren datenstroms unter berücksichtigung einer bitsparkassenfunktion
KR10-2003-7009508A KR100516985B1 (ko) 2001-01-18 2002-01-14 비트 세이빙 뱅크 기능을 제공하여 스케일러블 데이터스트림을 생성하는 방법 및 장치와 스케일러블 데이터스트림을 디코딩하는 방법 및 장치
DE50200750T DE50200750D1 (de) 2001-01-18 2002-01-14 Verfahren und vorrichtung zum erzeugen eines skalierbaren datenstroms und verfahren und vorrichtung zum decodieren eines skalierbaren datenstroms unter berücksichtigung einer bitsparkassenfunktion
HK03109020A HK1056790A1 (en) 2001-01-18 2003-12-11 Method and device for producing a scalable data stream, and method and device for decoding a scalable data stream while taking a bit bank function into account.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10102154A DE10102154C2 (de) 2001-01-18 2001-01-18 Verfahren und Vorrichtung zum Erzeugen eines skalierbaren Datenstroms und Verfahren und Vorrichtung zum Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkassenfunktion

Publications (2)

Publication Number Publication Date
DE10102154A1 true DE10102154A1 (de) 2002-08-08
DE10102154C2 DE10102154C2 (de) 2003-02-13

Family

ID=7670983

Family Applications (2)

Application Number Title Priority Date Filing Date
DE10102154A Expired - Lifetime DE10102154C2 (de) 2001-01-18 2001-01-18 Verfahren und Vorrichtung zum Erzeugen eines skalierbaren Datenstroms und Verfahren und Vorrichtung zum Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkassenfunktion
DE50200750T Expired - Lifetime DE50200750D1 (de) 2001-01-18 2002-01-14 Verfahren und vorrichtung zum erzeugen eines skalierbaren datenstroms und verfahren und vorrichtung zum decodieren eines skalierbaren datenstroms unter berücksichtigung einer bitsparkassenfunktion

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE50200750T Expired - Lifetime DE50200750D1 (de) 2001-01-18 2002-01-14 Verfahren und vorrichtung zum erzeugen eines skalierbaren datenstroms und verfahren und vorrichtung zum decodieren eines skalierbaren datenstroms unter berücksichtigung einer bitsparkassenfunktion

Country Status (10)

Country Link
US (1) US7496517B2 (de)
EP (1) EP1354314B1 (de)
JP (1) JP3890298B2 (de)
KR (1) KR100516985B1 (de)
AT (1) ATE272884T1 (de)
AU (1) AU2002242667B2 (de)
CA (1) CA2434783C (de)
DE (2) DE10102154C2 (de)
HK (1) HK1056790A1 (de)
WO (1) WO2002058051A2 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844727B2 (en) * 2003-04-24 2010-11-30 Nokia Corporation Method and device for proactive rate adaptation signaling
KR100647336B1 (ko) * 2005-11-08 2006-11-23 삼성전자주식회사 적응적 시간/주파수 기반 오디오 부호화/복호화 장치 및방법
EP1841072B1 (de) * 2006-03-30 2016-06-01 Unify GmbH & Co. KG Verfahren und Einrichtung zum Dekodieren von schichtkodierten Daten
FR2911228A1 (fr) * 2007-01-05 2008-07-11 France Telecom Codage par transformee, utilisant des fenetres de ponderation et a faible retard.

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3912605A1 (de) * 1989-04-17 1990-10-25 Fraunhofer Ges Forschung Digitales codierverfahren
WO1997014229A1 (de) * 1995-10-06 1997-04-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren und vorrichtung zur skalierbaren codierung von audiosignalen
EP0884850A2 (de) * 1997-04-02 1998-12-16 Samsung Electronics Co., Ltd. Komprimierende Audio-Kodier- und Dekodier-Methode und dafür geeignetes Gerät
WO1999033274A1 (en) * 1997-12-19 1999-07-01 Kenneth Rose Scalable predictive coding method and apparatus
US6092041A (en) * 1996-08-22 2000-07-18 Motorola, Inc. System and method of encoding and decoding a layered bitstream by re-applying psychoacoustic analysis in the decoder

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5365552A (en) * 1992-11-16 1994-11-15 Intel Corporation Buffer fullness indicator
US5758092A (en) * 1995-11-14 1998-05-26 Intel Corporation Interleaved bitrate control for heterogeneous data streams
KR100261254B1 (ko) * 1997-04-02 2000-07-01 윤종용 비트율 조절이 가능한 오디오 데이터 부호화/복호화방법 및 장치
KR100335609B1 (ko) * 1997-11-20 2002-10-04 삼성전자 주식회사 비트율조절이가능한오디오부호화/복호화방법및장치
KR100354531B1 (ko) * 1998-05-06 2005-12-21 삼성전자 주식회사 실시간 복호화를 위한 무손실 부호화 및 복호화 시스템
US6182031B1 (en) * 1998-09-15 2001-01-30 Intel Corp. Scalable audio coding system
US6904089B1 (en) * 1998-12-28 2005-06-07 Matsushita Electric Industrial Co., Ltd. Encoding device and decoding device
JP2000307661A (ja) * 1999-04-22 2000-11-02 Matsushita Electric Ind Co Ltd 符号化装置および復号化装置
US6446037B1 (en) * 1999-08-09 2002-09-03 Dolby Laboratories Licensing Corporation Scalable coding method for high quality audio
DE60204039T2 (de) * 2001-11-02 2006-03-02 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zur kodierung und dekodierung von audiosignalen

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3912605A1 (de) * 1989-04-17 1990-10-25 Fraunhofer Ges Forschung Digitales codierverfahren
WO1997014229A1 (de) * 1995-10-06 1997-04-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren und vorrichtung zur skalierbaren codierung von audiosignalen
US6092041A (en) * 1996-08-22 2000-07-18 Motorola, Inc. System and method of encoding and decoding a layered bitstream by re-applying psychoacoustic analysis in the decoder
EP0884850A2 (de) * 1997-04-02 1998-12-16 Samsung Electronics Co., Ltd. Komprimierende Audio-Kodier- und Dekodier-Methode und dafür geeignetes Gerät
WO1999033274A1 (en) * 1997-12-19 1999-07-01 Kenneth Rose Scalable predictive coding method and apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BALAKRISHNAN, M.: Buffer Constraints in a variable-rate packetized video system. In: ISBN 0-7803-3122-2, Proceedings: International conference on image processing, IEEE Comput.Soc. Press, 1995, p. 29-32, Vol. 1 *

Also Published As

Publication number Publication date
KR100516985B1 (ko) 2005-09-26
CA2434783C (en) 2008-04-15
KR20030076614A (ko) 2003-09-26
WO2002058051A3 (de) 2002-09-19
DE10102154C2 (de) 2003-02-13
US20040107289A1 (en) 2004-06-03
CA2434783A1 (en) 2002-07-25
JP3890298B2 (ja) 2007-03-07
HK1056790A1 (en) 2004-02-27
DE50200750D1 (de) 2004-09-09
EP1354314B1 (de) 2004-08-04
US7496517B2 (en) 2009-02-24
WO2002058051A2 (de) 2002-07-25
ATE272884T1 (de) 2004-08-15
AU2002242667B2 (en) 2004-11-25
JP2004520739A (ja) 2004-07-08
EP1354314A2 (de) 2003-10-22

Similar Documents

Publication Publication Date Title
DE10102159C2 (de) Verfahren und Vorrichtung zum Erzeugen bzw. Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkasse, Codierer und skalierbarer Codierer
DE19628292B4 (de) Verfahren zum Codieren und Decodieren von Stereoaudiospektralwerten
DE19549621B4 (de) Vorrichtung zum Codieren von Audiosignalen
DE60121592T2 (de) Kodierung und dekodierung eines digitalen signals
DE60012860T2 (de) Verfahren zur Verarbeitung mehrerer digitaler Audiodatenströme
DE69833834T2 (de) Skalierbares Audiokodier-und Dekodierverfahren und Gerät
EP1647010B1 (de) Audiodateiformatumwandlung
DE69932958T2 (de) Verlustfreies Dekodierungsverfahren
DE602004005197T2 (de) Vorrichtung und verfahren zum kodieren eines audiosignals und vorrichtung und verfahren zum dekodieren eines kodierten audiosignals
DE19742655C2 (de) Verfahren und Vorrichtung zum Codieren eines zeitdiskreten Stereosignals
DE10102155C2 (de) Verfahren und Vorrichtung zum Erzeugen eines skalierbaren Datenstroms und Verfahren und Vorrichtung zum Decodieren eines skalierbaren Datenstroms
WO2002103695A2 (de) Vorrichtung und verfahren zum einbetten eines wasserzeichens in ein audiosignal
DE19811039A1 (de) Verfahren und Vorrichtungen zum Codieren und Decodieren von Audiosignalen
DE19730129A1 (de) Verfahren zum Signalisieren einer Rauschsubstitution beim Codieren eines Audiosignals
DE19730130A1 (de) Verfahren zum Codieren eines Audiosignals
DE10200653A1 (de) Skalierbarer Codierer und Decodierer für einen skalierten Datenstrom
EP1023777B1 (de) Verfahren und vorrichtung zur erzeugung eines bitratenskalierbaren audio-datenstroms
DE60022837T2 (de) Vorrichtung zur Teilbandcodierung
DE60217612T2 (de) Verfahren und Vorrichtung zur Kodierung und Dekodierung von Sprachsignalen
DE10102154C2 (de) Verfahren und Vorrichtung zum Erzeugen eines skalierbaren Datenstroms und Verfahren und Vorrichtung zum Decodieren eines skalierbaren Datenstroms unter Berücksichtigung einer Bitsparkassenfunktion
EP1277346B1 (de) Vorrichtung und Verfahren zum Analysieren der spektralen Darstellung eines decodierten Zeitsignales
DE2303497C2 (de) Verfahren zur Übertragung von Sprachsignalen
DE10339498B4 (de) Audiodateiformatumwandlung
DE102008009720A1 (de) Verfahren und Mittel zur Dekodierung von Hintergrundrauschinformationen
EP0905918A2 (de) Verfahren und Vorrichtung zum Kodieren von Audiosignalen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8181 Inventor (new situation)

Inventor name: LUTZKY, MANFRED, 90427 NUERNBERG, DE

Inventor name: TEICHMANN, BODO, 90427 NUERNBERG, DE

Free format text: SPERSCHNEIDER, RALPH, 91056 ERLANGEN, DE TEICHMANN, BODO, 90427 NUERNBERG, DE LUTZKY, MANFRED, 90427 NUERNBERG, DE GRILL, BERNHARD, 91207 LAUF, DE

Inventor name: GRILL, BERNHARD, 91207 LAUF, DE

Inventor name: SPERSCHNEIDER, RALPH, 91056 ERLANGEN, DE

8304 Grant after examination procedure
8364 No opposition during term of opposition
R071 Expiry of right