-
Die Erfindung bezieht sich auf ein Verfahren, eine Decoderschaltung und ein Computerprogrammprodukt zum Suchen eines Synchronisierwortes in einem komprimierten MPEG-Audiostrom mit mehreren MPEG-Audiodatenrahmen.
-
1 zeigt ein Audiodatenrahmenformat, auch kurz Audiorahmenformat oder Rahmen bezeichnet, wie es den Standards entspricht, die von der „Motion Picture Experts Croup” (MPEG) zur Audiodatenkompression und Dekompression erstellt worden sind. Die Bezeichnung „MPEG” wird im Folgenden auch für verschiedene Typen von Kompression und Dekompression benutzt. Beispielsweise sind MPEG1 und MPEG2 Formate, die von der „Motion Picture Experts Croup” etabliert worden sind.
-
Wie aus 1 ersichtlich, beinhaltet ein erstes Rahmenfeld ein Synchronisierwort, das dazu benutzt wird, den Beginn oder das Ende eines Audiorahmens zu identifizieren. Das Synchronisierwort hat einen Wert aus zwölf aufeinanderfolgenden Binärstellen oder Bits, die jeweils gleich „1” sind. Der Synchronisierwortwert kann auch durch den Hexadezimalwert 0xFFF (1111 1111 1111) dargestellt werden, wobei „0x” angibt, dass die folgenden Ziffern im Hexadezimalformat stehen, wie dem Fachmann geläufig ist.
-
Dem Synchronisierwort folgt ein Rahmenkopf, der ein Identifikationsfeld ID (1), ein Schichtfeld LAYER (2), ein Schutzbitfeld PROTECTION BIT (1), ein Bitratenindexfeld BITRATE INDEX (4), ein Abtastfrequenzfeld Fs (2), ein Füllbitfeld PADDING BIT (1), ein privates Bitfeld PRIVATE BIT (1), ein Modusfeld MODE (2), ein Moduserweiterungsfeld MODE EXTENSION (2), ein Copyrightfeld COPY RIGHT (1), ein Original/Kopie-Feld ORIGINAL/COPY (1) und ein Hauptgewichtsfeld EMPHASIS (2) umfasst. Die Zahl in Klammern bezeichnet jeweils die zugehörige Bitanzahl des Feldes. Derartige MPEG-Audiorahmenkopfteile werden z. B. auf der Internetseite „codeproject.com/audio/MPEGAudioInfo.asp.” erläutert und sind allgemein auf dem Fachgebiet bekannt, so dass nachfolgend nur auf die vorliegend relevanten Felder näher eingegangen werden braucht.
-
Das Abtastfrequenzfeld Fs besteht aus zwei Bit und repräsentiert eine Abtastfrequenz. Im Fall der MPEG-Schicht 3 liegen mögliche Abtastfrequenzen bei 44,1 kHz, 48 kHz und 32 kHz, die z. B. durch die Binärwerte 00, 01, 10 bzw. 11 des Abtastfrequenzfeldes reserviert werden können.
-
Das Füllbitfeld PADDING BIT umfasst ein Bit und repräsentiert, ob Fülldaten, d. h. Dummy-Daten, im Rahmen enthalten sind oder nicht. Wenn der Datenwert im Füllbitfeld, d. h. das Füllbit, gleich „0” ist, ist der Rahmen nicht mit Dummy-Daten aufgefüllt, während dies der Fall ist, wenn der Füllbitwert gleich „1” ist.
-
Im Betrieb empfängt ein herkömmlicher Decoder komprimierte Audiodaten, d. h. einen Bitstrom, in einer Serie von Audiodatenrahmen und decodiert selbige zur Erzeugung eines entsprechenden Audiosignals.
-
Demgemäß sucht der herkömmliche Decoder das Synchronisierwort, um Information vom komprimierten Audiobitstrom zu lesen. Der Synchronisierwortwert 0xFFF ist jedoch im komprimierten Audiobitstrom eventuell nicht eindeutig, da der komprimierte Audiobitstrom Daten enthalten kann, deren Wert gleich dem Wert des Synchronisierwortes, d. h. gleich 0xFFF, ist. Dadurch kann es beim herkömmlichen Decoder passieren, dass er fälschlich Daten als gültiges Synchronisierwort detektiert, was die Ausfallrate hinsichtlich der Synchronisierwortdetektion erhöhen kann. Um diesen Problemtyp anzugehen, kann sich ein herkömmlicher Decoder auf das Füllbit als Hilfestellung bei der Suche nach dem gültigen Synchronisierwort beziehen. Wenn jedoch das Füllbit nicht korrekt ist, z. B. weil es beschädigt oder nicht richtig berechnet worden ist, kann es sein, dass der herkömmliche Decoder Schwierigkeiten bei der Detektion des gültigen Synchronisierwortes hat.
-
Um dieser Schwierigkeit zu begegnen, offenbart die Offenlegungsschrift
EP 1 308 931 A1 eine Decoderschaltung und ein Decodierverfahren, bei denen eine Synchronisierwortsuche die Maßnahme beinhaltet, nach Auffinden eines ersten Datenwertes im Bitstrom, der gleich einem Synchronisierwortwert ist, um eine geschätzte Rahmenlänge fortzuschreiten und zu prüfen, ob bei dem anschließenden Rahmen das erwartete Synchronisierwort auftritt. Wenn dies der Fall ist, wird der nachfolgende Rahmen ohne Berücksichtigung einer Rahmenlängenvariationsinformation dekodiert. Wenn der erwartete Synchronisierwortwert für diesen anschließenden Rahmen hingegen nicht auftritt, wird die Decodierung dieses nachfolgenden Rahmens ohne Berücksichtigung der Rahmenlängenvariationsinformation um eine gewisse Untereinheits-Bitlänge später begonnen, d. h. es wird angenommen, dass der vorausgegangene Rahmen eine um die Untereinheits-Bitlänge größere Rahmenlänge als die geschätzte Rahmenlänge aufweist.
-
In ähnlicher Weise offenbart die Patentschrift
US 6.421.647 B1 eine Decoderschaltung und ein Decodierverfahren, bei denen nach Auffinden eines ersten Datenwertes im Bitstrom, der ein potentieller Synchronisierwortwert sein kann, um eine Datenrahmenlänge fortgeschritten und geprüft wird, ob nach dieser Rahmenlänge erneut ein potentieller Synchronisierwortwert auftritt. Dabei wird eine korrekte Header-Information und daher eine korrekte Rahmenlänge vorausgesetzt.
-
Der Erfindung liegt als technisches Problem die Bereitstellung eines Verfahrens und einer Decoderschaltung sowie eines Computerprogrammprodukts der eingangs genannten Art zugrunde, mit denen sich die oben genannten Schwierigkeiten des Standes der Technik wenigstens teilweise vermeiden lassen und die insbesondere eine vergleichsweise zuverlässige Synchronisierwortdetektion in einem komprimierten MPEG-Audiobitstrom ermöglichen.
-
Die Erfindung löst dieses Problem durch die Bereitstellen eines Verfahrens mit den Merkmalen des Anspruchs 1, einer Decoderschaltung mit den Merkmalen des Anspruchs 6 und eines Computerprogrammprodukts mit den Merkmalen des Anspruchs 7.
-
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
-
Vorteilhafte, nachfolgend beschriebene Ausführungsformen der Erfindung sowie der zu deren besserem Verständnis oben erläuterte, übliche Aufbau eines MPEG-Audiodatenrahmens sind in den Zeichnungen dargestellt. Hierbei zeigen:
-
1 ein schematisches Blockdiagramm eines üblichen Audiodatenrahmens im MPEG-Format,
-
2 ein Flussdiagramm eines nicht erfindungsgemäßen Synchronisierwortsuchverfahrens zur Durchführung mittels entsprechender MPEG-Decoder bzw. Computerprogrammprodukte,
-
3 ein Flussdiagramm eines erfindungsgemäßen Verfahrensbeispiels,
-
4A bis 4D schematische Blockdiagramme zur Veranschaulichung typischer Bitströme von erfindungsgemäßen MPEG-Decodern,
-
5 eine Tabelle von Datenrahmengrößen, die abhängig vom Wert des Bitratenindexfeldes und vom Wert des Abtastfrequenzfeldes bestimmt werden, gemäß der Erfindung und
-
6 ein schematisches Blockdiagramm einer erfindungsgemäßen Schaltungsanordnung mit MPEG-Decoder.
-
Die Erfindung, wie sie nachfolgend anhand exemplarischer Ausführungsbeispiele näher erläutert wird, kann je nach Bedarf und Anwendungsfall vollständig als Hardware oder vollständig als Software oder kombiniert in Hardware und Software realisiert werden. Dies umfasst die Bereitstellung eines entsprechenden Computerprogrammproduktes auf einem computernutzbaren Speichermedium mit darin enthaltenem, computernutzbarem Programmcode. Als computerlesbares Medium eignen sich z. B. Festplatten, CD-ROMs, optische Speicherbauelemente und magnetische Speicherbauelemente. Der Computerprogrammcode oder kurz „Code” zur Ausführung erfindungsgemäßer Abläufe kann z. B. in einer objektorientierten Programmiersprache, wie JAVA®, Smalltalk oder C++, JavaScript, Visual Basic, TSQL und Perl, oder in einer anderen Programmiersprache geschrieben sein. Erfindungsgemäße Softwarekomponenten hängen nicht von der Implementierung in einer bestimmten Programmiersprache ab. Teile des Codes können vollständig auf einem oder mehreren Systemen ablaufen, die von einem zwischenliegenden Server benutzt werden. Der Code kann vollständig auf einem oder mehreren Computersystemen ablaufen oder teilweise auf einem Server-Rechner und teilweise auf einem Client-Rechner innerhalb eines Client-Systems oder auf einem Proxy-Server an einem zwischenliegenden Punkt in einem Kommunikationsnetzwerk. Im letztgenannten Fall kann das Client-System mit einem Server über ein LAN oder WAN, z. B. ein Intranet, verbunden sein, oder die Verbindung kann über das Internet realisiert sein, z. B. über einen Internet-Dienstanbieter. Für die Realisierung der Erfindung können verschiedene Datenprotokolle für unterschiedliche Typen von Computernetzwerken verwendet werden.
-
Jeder Teil der gezeigten Blockdiagramme und Flussdiagramme und Kombinationen dieser Teile können durch entsprechende Computerprogramminstruktionen implementiert sein, die für eine Prozessorschaltung, einen Spezialzweckcomputer oder eine andere programmierbare Datenverarbeitungsvorrichtung vorgesehen werden, um eine Maschine bereitzustellen, so dass die Instruktionen, die über die Verarbeitungsschaltung oder die andere programmierbare Datenverarbeitungsvorrichtung ausgeführt werden, die in diesen Blockteilen der Blockdiagramme bzw. Flussdiagramme spezifizierten Funktionen implementieren. Die Computerprogramminstruktionen können in einem computerlesbaren Speicher abgelegt sein, der einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung veranlassen kann, in der gewünschten Weise zu arbeiten, so dass die im computerlesbaren Speicher abgelegten Instruktionen ein Produkt mit Instruktionen bereitstellen, das die in den betreffenden Teilen spezifizierten Funktionen implementiert. Die Computerprogramminstruktionen können in die Verarbeitungsschaltung oder andere programmierbare Datenverarbeitungsvorrichtung so geladen sein, dass sie eine Serie von Arbeitsschritten bewirken, die auf dem Computer oder der anderen programmierbaren Datenverarbeitungsvorrichtung auszuführen sind, um einen computerimplementierten Prozess derart zu erzeugen, dass die vom Computer oder der anderen programmierbaren Vorrichtung ausgeführten Instruktionen Schritte zur Implementierung der Funktionen darstellen, die in den betreffenden Teilen der Blockdiagramme bzw. Flussdiagramme spezifiziert sind.
-
Erfindungsgemäß kann ein MPEG-Audiorahmen ohne Bezugnahme auf ein in einem Kopf desselben enthaltenes Füllbit decodiert werden. Beispielsweise kann die MPEG-Audiorahmenlänge unter Verwendung einer Anzahl von Proben pro Rahmen, einer Bitrate für den Rahmen und einer Abtastrate für die Audiodaten, die in dem MPEG-Audiorahmenkopf enthalten sein kann, festgestellt werden. Im Unterschied zu einigen herkömmlichen MPEG-Decodern können erfindungsgemäße Decoder gültige Synchronisierworte innerhalb des MPEG-Audiorahmens ohne Bezugnahme auf das im MPEG-Audiorahmenkopf enthaltene Füllbit lokalisieren. Beispielsweise können erfindungsgemäße Decoder erste Daten, bei denen es sich um ein gültiges Synchronisierwort handeln kann, detektieren und daraufhin untersuchen, ob sie ein gültiges Synchronisierwort darstellen, indem eine Indexierung in den MPEG-Audiobitstrom um einen Betrag vorgenommen wird, der auf der Anzahl von Proben pro Rahmen, der Bitrate und der Abtastrate zum Abrufen zweiter Daten basiert, bei denen es sich um das nächste Synchronisierwort handeln kann. Wenn die zweiten Daten einen von einem Synchronisierwort unterschiedlichen Wert haben, werden die den zweiten Daten unmittelbar folgenden Daten untersucht, um festzustellen, ob sie einen Wert haben, der einem Synchronisierwort entspricht. Wenn dies der Fall ist, wird dies dahingehend gewertet, dass die ersten Daten ein gültiges Synchronisierwort darstellen, während andernfalls darauf geschlossen wird, dass die ersten Daten kein gültiges Synchronisierwort darstellen.
-
2 veranschaulicht im Flussdiagramm ein nicht erfindungsgemäßes Verfahren, wie es von Decoderschaltungen und Computerprogrammprodukten für MPEG-Decoder ausführbar ist. Wie in 2 dargestellt, wird zunächst ein erster Datenwert D0, der nachfolgend auch als mögliches Synchronisierwort bezeichnet wird, aus einem MPEG-Audiobitstrom gelesen (Block 205) und daraufhin untersucht, ob er einen Wert beinhaltet, der gleich demjenigen eines Synchronisierwortes ist (Block 210). Der Synchronisierwortwert kann beispielsweise gleich 0xFFF sein. Wenn festgestellt wurde, dass der Wert D0 nicht gleich dem Synchronisierwortwert ist, wird auf die nächsten Daten aus dem MPEG-Audiobitstrom zugegriffen, um sie auszuwerten (Block 205). Wenn hingegen festgestellt wurde, dass der Wert D0 gleich dem Synchronisierwortwert ist, wird im gezeigten Beispiel eine MPEG-Audiorahmenlänge aus folgender Beziehung ermittelt: (Proben pro Rahmen/8·Bitratenindex)/Abtastfrequenz.
-
Ersichtlich macht die obige Gleichung bei der Bestimmung der MPEG-Audiorahmenlänge (Block 215) keinen Gebrauch von dem im MPEG-Audiorahmenkopf enthaltenen Füllbit. In einer möglichen Realisierung der Erfindung wird die MPEG-Audiorahmenlänge basierend auf einer Tabelle bestimmt, in der verschiedene MPEG-Audiorahmenlängen abhängig vom Bitratenindex und der Abtastfrequenz Fs angegeben sind, wie beispielsweise die in 5 gezeigte Tabelle. Es versteht sich für den Fachmann, dass alternativ andere herkömmliche Techniken zur Ermittlung einer MPEG-Audiorahmenlänge verwendbar sind.
-
Eine Decoderschaltung kann die ermittelte MPEG-Audiorahmenlänge dazu verwenden, in den MPEG-Audiobitstrom zu indexieren, um auf einen zweiten Datenwert Dn+1 zuzugreifen und diesen daraufhin auszuwerten, ob er einem gültigen Synchronisierwort entspricht (Block 220). Mit anderen Worten kann die Decoderschaltung die ermittelte MPEG-Audiorahmenlänge dazu benutzen, auf Daten zuzugreifen, bei denen es sich innerhalb des MPEG-Audiorahmenbitstroms um ein nächstes gültiges Synchronisierwort handeln könnte, was davon abhängen kann, ob die im MPEG-Audiorahmen enthaltenen Daten mit Fülldaten aufgefüllt sind oder nicht. Es versteht sich, dass die für diesen Zweck geeignete Decoderschaltung irgendeine Prozessorschaltung für allgemeine Zwecke, eine applikationsspezifische integrierte Schaltung, eine Digitalsignalprozessorschaltung und/oder irgendein anderer Typ von Verarbeitungsschaltung sein kann, die in der Lage ist, gemäß einem MPEG-Audiorahmen formatierte Daten zu decodieren. 6 zeigt im Blockdiagramm eine mögliche Decoderschaltung 605, die mit einem Speicher 610 gekoppelt ist, der dazu benutzt werden kann, wenigstens Teile des Bitdatenstroms aus einem MPEG-Audiorahmen abzu-speichern.
-
In einem nächsten Verfahrensblock 225 von 2 wird geprüft, ob der zuvor im Verfahrensblock 220 als nächstes gelesene Datenwert Dn+1 gleich dem Synchronisierwortwert ist. Wenn dies der Fall ist, wird daraus geschlossen, dass es sich beim Datenwert D0 um ein gültiges Synchronisierwort handelt (Block 240). Andernfalls greift der Decoder auf das vorhergehende Byte Dn im MPEG-Audiobitstrom zu (Block 230). Dann wird abgefragt (Block 235), ob dieser Datenwert Dn gleich dem Synchronisierwortwert ist. Wenn dies der Fall ist, wird daraus geschlossen, dass es sich beim Datenwert D0 um ein gültiges Synchronisierwort handelt. Andernfalls wird mit der Verarbeitung vor den Verfahrensblock 205 zurückgekehrt.
-
3 veranschaulicht im Flussdiagramm ein erfindungsgemäßes Verfahrensbeispiel, das von entsprechenden erfindungsgemäßen Decodern und Computerprogrammprodukten für MPEG-Decoder ausführbar ist. Ein nicht gezeigter Decoder empfängt gemäß einem anfänglichen Verfahrensblock 303 einen Audio- oder Datenbitstrom bzw. komprimierte Audiodaten, die durch einen nicht gezeigten Codierer codiert wurden, und liest aus dem empfangenen Bitstrom einen bestimmten ersten Datenwert D0 aus. Der Decoder vergleicht bitweise den ersten Datenwert D0 mit dem Synchronisierwortwert, um festzustellen, ob die beiden Werte gleich sind oder nicht. Wenn sie nicht gleich sind, liest der Decoder benachbarte, d. h. nächste Daten aus dem Bitstrom. Wenn der erste Datenwert D0 hingegen gleich dem Synchronisierwortwert ist, entnimmt der Decoder einer Nachschlagetabelle, die beispielsweise in einem Speicher oder einem Dokument abgelegt ist, eine Rahmengröße und addiert diese zur momentanen Position des ersten Datenwerts D0 im Bitstrom (Block 307). Die Rahmengröße kann erfindungsgemäß beispielsweise durch eine Kombination aus dem Bitratenindexfeld und dem Abtastfrequenzfeld Fs ermittelt werden, die im MPEG-Audiorahmenkopf gemäß
-
1 enthalten sind.
-
Der Decoder liest dann einen nächsten, zweiten Datenwert D, der sich an einer Position im Bitstrom befindet, die von der momentanen Position um die ermittelte Rahmengröße entfernt ist (Block 309). Wenn der erste Datenwert D0 gleich dem Synchronisierwortwert ist, ist die Wahrscheinlichkeit relativ hoch, dass auch der zweite Datenwert Dn ein Synchronisierwort ist. Wenn folglich der Bitratenindexfeldwert und/oder der Abtastfrequenzfeldwert nicht korrekt, z. B. beschädigt, sind, sucht der Decoder auf dieser Basis möglicherweise noch nicht richtig nach dem Synchronisierwort, so dass ein den Decoder enthaltendes Wiedergabesystem aufhört zu arbeiten oder nicht normal arbeitet.
-
In einem Abfrageschritt 311 wird vom Decoder festgestellt, ob der zweite Datenwert Dn gleich dem Synchronisierwortwert ist oder nicht. Wenn die beiden Werte gleich sind, liest der Decoder einen dritten Datenwert Dn+1 (Block 313). Es versteht sich, dass der dritte Datenwert Dn+1 Daten umfasst, die zeitlich und/oder räumlich benachbart auf den zweiten Datenwert Dn folgen. Außerdem wird der dritte Datenwert Dn+1 hier dazu benutzt, festzustellen, ob der erste Datenwert D0 ein gültiges Synchronisierwort ist oder nicht.
-
Wenn der erste Datenwert D0 ein gültiges Synchronisierwort ist und der Audiorahmen, der den ersten Datenwert D0 enthält, aufgefüllt worden ist, ist es sehr wahrscheinlich, dass der zweite Datenwert Dn die zusätzlichen Daten zur Steuerung einer mittleren Bitrate für den Decoder beinhaltet und der dritte Datenwert Dn+1 ein gültiges Synchronisierwort ist. Mit anderen Worten ist es sehr wahrscheinlich, dass der Datenwert Dn, wenn die Datenwerte Dn+1 und D0 beide gültige Synchronisierworte sind, die Daten umfasst, die zum MPEG-Audiorahmen als Fülldaten hinzugefügt werden, um eine mittlere Bitrate zu erhalten, so dass der Decoder konsistenter arbeiten kann.
-
Der Decoder prüft in einem Abfrageschritt 315, ob der dritte Datenwert Dn+1 gleich dem Synchronisierwortwert ist. Wenn dies der Fall ist, bestimmt der Decoder, dass das Füllbit gleich ”1” ist (Block 317) und der erste Datenwert D0 ein gültiges Synchronisierwort ist (Block 319). Dementsprechend kann der Decoder normale Decodiervorgänge ausführen, ohne das im MPEG-Audiorahmenkopf enthaltene Füllbit zu benutzen. Wenn der dritte Datenwert Dn+1 nicht gleich dem Synchronisierwort ist, bestimmt der Decoder, dass das Füllbit gleich ”0” ist (Block 323) und der erste Datenwert D0 ein gültiges Synchronisierwort ist (Block 319). Dementsprechend kann der Decoder normale Decodiervorgänge ausführen, ohne das im MPEG-Audiorahmenkopf enthaltene Füllbit zu benutzen.
-
Wenn im Abfrageschritt 311 festgestellt wird, dass der zweite Datenwert Dn nicht gleich dem Synchronisierwort ist, liest der Decoder den dritten Datenwert Dn+1 aus dem Bitstrom (Block 325) und stellt dann fest, ob der dritte Datenwert Dn+1 gleich dem Synchronisierwort ist (Block 327). Wenn dies der Fall ist, bestimmt der Decoder, dass das Füllbit den Wert ”1” hat (Block 329) und der erste Datenwert D0 ein gültiges Synchronisierwort ist (Block 319). Wenn der dritte Datenwert Dn+1 nicht gleich dem Synchronisierwort ist, bestimmt der Decoder, dass der erste Datenwert D0 kein gültiger Synchronisierwortwert ist und setzt mit dem Block 303 fort, um dem ersten Datenwert D0 benachbarte Daten zu lesen.
-
Wie oben erläutert, kann aus den Ergebnissen der Verfahrensblöcke 315 und 327 abgeleitet werden, ob der den ersten Datenwert D0 enthaltende MPEG-Audiorahmen mit Daten aufgefüllt wurde. Wenn der dritte Datenwert Dn+1 dem Synchronisierwort entspricht, kann beispielsweise für den zweiten Datenwert Dn abgeleitet werden, dass er zusätzliche Daten, d. h. Fülldaten, enthält, so dass der Decoder mit einer konstant bleibenden Bitrate arbeiten kann (siehe Blöcke 317 und 329).
-
Die 4A veranschaulicht in Verbindung mit 3 ein Ausführungsbeispiel der Erfindung, bei dem ein Decoder ein Synchronisierwort in einem MPEG-Audiorahmen ohne Benutzung des Füllbits ermittelt. Der Decoder stellt im Verfahrensschritt 305 fest, ob der erste Datenwert D0 = 0xFFF1 gleich dem Synchronisierwortwert 0xFFF ist. Da der erste Datenwert D0 = 0xFFF1 dem Synchronisierwortwert 0xFFF entspricht, entnimmt der Decoder einer Nachschlagetabelle, wie derjenigen von 5, die Rahmengröße Nij basierend auf einer Kombination des Wertes des Bitratenindexfeldes und des Wertes des Abtastfrequenzfeldes. Speziell zeigt 5 eine Tabelle von Werten für die Rahmengröße Nij, die abhängig von einem zweidimensionalen Index des Wertes für das Bitratenindexfeld und des Wertes für das Abtastfrequenzfeld in der Tabelle bestimmt wird. Hierbei ist der Laufindex i größer als 1 und kleiner als 16, und der Laufindex j ist größer als 1 und kleiner als 4. Ein computerlesbares Medium, das ein Programm zum Ausführen des Verfahrens zum Suchen eines Synchronisierwortes in einem komprimierten Audiobitstrom mit einer Mehrzahl von Audiorahmen speichert, kann z. B. als Festwertspeicher (ROM) oder als ein anderer Typ eines nichtflüchtigen oder flüchtigen Speichers implementiert sein.
-
Der Decoder stellt fest, ob der zweite Datenwert Dn = 0xFFF2, der vom ersten Datenwert D0 um die Rahmengröße Nij entfernt ist, dem Synchronisierwort entspricht, siehe den Verfahrensschritt 311. Da der zweite Datenwert Dn = 0xFFF2 in diesem Beispiel gleich dem Synchronisierwort ist, prüft der Decoder als nächstes im Verfahrensschritt 315, ob der dritte Datenwert Dn+1 = 0xFFF3, der dem zweiten Datenwert Dn = 0xFFF2 benachbart ist, gleich dem Synchronisierwort ist.
-
Da in diesem Fall der dritte Datenwert Dn+1 = 0xFFF3 dem Synchronisierwort entspricht, schließt der Decoder daraus, dass der erste Datenwert D0 ein gültiges Synchronisierwort ist. Dementsprechend wird festgestellt, dass es sich beim zweiten Datenwert Dn = 0xFFF2 um zusätzliche Daten handelt, die zum Auffüllen des MPEG-Audiorahmens verwendet werden, um die für den Decoder bereitgestellte, mittlere Bitrate zu steuern. Folglich kann daraus geschlossen werden, dass das mit dem ersten Datenwert D0 verknüpfte Füllbit im MPEG-Audiorahmenkopf den Wert ”1” hat, siehe den Verfahrensschritt 317 von 3.
-
4B veranschaulicht in Verbindung mit 3 ein Beispiel, bei dem der Decoder die Rahmengröße Nij basierend auf einer Kombination des Wertes für das Bitratenindexfeld und des Wertes für das Abtastfrequenzfeld aus der Nachschlagetabelle in 5 ermittelt, wobei der erste Datenwert D0 = 0xFFF1 dem Synchronisierwort 0xFFF entspricht, und anschließend feststellt, ob der vom ersten Datenwert D0 um die Rahmengröße Nij entfernte, zweite Datenwert Dn = 0xFFF2 dem Synchronisierwort entspricht, siehe den Verfahrensblock 311 von 3. Gemäß dem Verfahrensschritt 315 stellt der Decoder fest, ob der dritte Datenwert Dn+1 = 0xFFD gleich dem Synchronisierwort ist, wenn der zweite Datenwert Dn = 0xFFF2 gleich dem Synchronisierwort ist. Da in diesem Fall der dritte Datenwert Dn+1 = 0xFFD nicht gleich dem Synchronisierwort ist, beurteilt der Decoder daraus, dass der erste Datenwert D0 ein gültiges Synchronisierwort ist, siehe den Verfahrensblock 319 in 3. Dementsprechend ist die Wahrscheinlichkeit relativ hoch, dass der zweite Datenwert Dn gleich dem Synchronisierwort ist.
-
4C veranschaulicht in Verbindung mit 3 ein Beispiel, bei dem der Decoder die Rahmengröße Nij gemäß einer Kombination des Wertes für das Bitratenindexfeld und des Wertes für das Abtastfrequenzfeld aus der Nachschlagetabelle von 5 ermittelt, wobei der erste Datenwert D0 = 0xFFF1 gleich dem Synchronisierwort 0xFFF ist, und anschließend feststellt, ob der zweite Datenwert Dn = 0xFFD gleich dem Synchronisierwort ist, siehe den Verfahrensschritt 311 von 3. Da in diesem Beispiel der zweite Datenwert Dn = 0xFFD nicht gleich dem Synchronisierwort ist, überprüft der Decoder im Verfahrensschritt 327 von 3, ob der dritte Datenwert Dn+1 = 0xFFF2 gleich dem Synchronisierwort ist. Da dies hier der Fall ist, stellt der Decoder fest, dass der erste Datenwert D0 ein gültiges Synchronisierwort ist. Dementsprechend ist die Wahrscheinlichkeit relativ hoch, dass es sich beim zweiten Datenwert Dn = 0xFFD um Fülldaten zur Steuerung der mittleren Bitrate für den Decoder handelt. In diesem Fall kann abgeleitet werden, dass das zugehörige Füllbit im MPEG-Audiorahmenkopf den Wert ”1” hat, siehe den Verfahrensschritt 329 von 3.
-
4D veranschaulicht in Verbindung mit 3 ein Ausführungsbeispiel, bei dem der Decoder die Rahmengröße Nij aus der Nachschlagetabelle von 5 entnimmt, wobei der erste Datenwert D0 = 0xFFF1 gleich dem Synchronisierwort 0xFFF ist, und dann im Verfahrensschritt 311 von 3 überprüft, ob der zweite Datenwert Dn = 0xFFD gleich dem Synchronisierwort ist. Da dies hier nicht der Fall ist, prüft der Decoder im Verfahrensschritt 327 von 3, ob der dritte Datenwert Dn+1 = 0xFFE gleich dem Synchronisierwort ist. Dies ist in diesem Beispiel nicht der Fall, so dass der Decoder daraus schließt, dass der erste Datenwert D0 = 0xFFF1 kein gültiges Synchronisierwort ist, sondern Daten mit dem gleichen Bitmuster umfasst, z. B. zwölf aufeinanderfolgende ”1”-Bits. Der Decoder führt dementsprechend dann wieder den Verfahrensschritt 303 von 3 für nächste Daten aus, die dem ersten Datenwert D0 = 0xFFF1 benachbart sind. Mit anderen Worten stellt der Decoder fest, dass der erste Datenwert D0 kein gültiges Synchronisierwort ist, da sowohl der Datenwert Dn als auch der Datenwert Dn+1 beide nicht gleich dem Synchronisierwort sind.
-
Wie aus der obigen Erläuterung vorteilhafter Ausführungsbeispiele deutlich wird, kann gemäß der Erfindung ein MPEG-Audiorahmen ohne Bezugnahme auf das in einem Kopfteil desselben enthaltende Füllbit decodiert werden. Die MPEG-Audiorahmenlänge kann unter Verwendung anderer, im MPEG-Audiorahmenkopf enthaltener Informationen ermittelt und dazu benutzt werden, auf nachfolgende Daten zwecks Vergleich mit einem Synchronisierwortwert zuzugreifen. Die Ergebnisse des Vergleichs eines nachfolgenden Bitstromdatenwertes können zur Bestimmung der tatsächlichen MPEG-Audiorahmenlänge herangezogen werden.
-
Im Gegensatz zu gewissen herkömmlichen MPEG-Decodern können erfindungsgemäße MPEG-Decoder gültige Synchronisierworte innerhalb des MPEG-Audiorahmens lokalisieren, ohne auf das im MPEG-Audiorahmenkopf enthaltene Füllbit Bezug zu nehmen. Beispielsweise können erfindungsgemäße Decoder einen ersten Datenwert, bei dem es sich um ein gültiges Synchronisierwort handeln kann, detektieren und ermitteln, ob es sich um ein gültiges Synchronisierwort handelt, indem in den MPEG-Audiobitstrom um einen Betrag indexiert wird, der auf dem Bitratenindex und der Abtastrate, wie sie im Rahmenkopfteil enthalten sind, basiert, um auf einen weiteren, zweiten Datenwert zuzugreifen, bei dem es sich um das nächste Synchronisierwort handeln kann. Wenn der zweite Datenwert nicht gleich dem Synchronisierwort ist, können die dem zweiten Datenwert unmittelbar folgenden Daten ausgewertet werden, um festzustellen, ob deren Wert gleich dem Synchronisierwortwert ist. Wenn dies der Fall ist, wird daraus geschlossen, dass es sich beim ersten Datenwert um ein gültiges Synchronisierwort handelt, während ansonsten darauf geschlossen wird, dass der erste Datenwert kein gültiges Synchronisierwort ist.
-
Wie oben erläutert, sind das Verfahren zum Suchen eines Synchronisierwortes in einem komprimierten Audiobitstrom und ein computerlesbares Medium zur Speicherung eines Programms für die Ausführung dieses Verfahrens gemäß der Erfindung in der Lage, ein Synchronisierwort korrekt und rasch aufzusuchen, ohne ein Füllbitfeld lesen zu müssen und von der Unversehrtheit desselben abhängig zu sein.