-
Die
vorliegende Erfindung bezieht sich auf den Schutz von A/V-Daten
vor Übertragungs-/Speicherfehlern,
insbesondere für
Streaming von A/V-Daten.
-
Verteilung
von A/V-Daten (Audio- und/oder Videodaten) über ein Speicher- oder Übertragungsmedium ist
sehr wichtig geworden. So hat beispielsweise der Erfolg von Internet
zu der Übertragung
von vielen MP3 codierten Audio-Titeln geführt. Statt einer Herunterladung
einer Datei wird erwartet, dass Streaming mit Echtzeit-Verbrauch
der empfangenen Daten zunehmen wird, insbesondere in Kombination
mit drahtloser Übertragung.
Die Bandbreitenanforderungen für
Streaming von codierten Audio- oder Videosignalen mit einer relativ hohen
Qualität
sind wesentlich, was es wichtig macht, dass die bei der Übertragung
anfallenden Gesamtkosten gesteuert werden. Da die Zuverlässigkeit
des Übertragungsmediums,
insbesondere eines drahtlosen Übertragungsmediums,
relativ gering sein kann, soll auf die Detektion von Übertragungsfehlern
besonders geachtet werden und soll gegen detektierte Fehler eingeschritten
werden. So kann beispielsweise ein Fehler, der in einer kurzen Periode
des übertragenen
A/V-Signals auftritt, durch Interpolation zwischen zwei benachbarten Signalperioden
oder durch Anwendung anderer geeigneter Maßnahmen verschleiert werden.
-
Die
Abschnitte 6.2 und 8.1 der ISO/IEC Advanced Audio Coding (AAC) Norm
13818-7 (MPEG2-AAC) und Abschnitt A 2.2 des Subteils 1 der ISO/IEC
Norm 14496-3 (MPEG4-Audio) beschreiben ein Format zur Übertragung
codierter Audioströme,
das sog. "audio
data transport stream" (ADTS)
Frame. Ein Audio-Stream besteht in diesem Fall aus einer Sequenz
von ADTS-Frames. Das ADTS-Frame, wie in 1 dargestellt,
umfasst einen Headerblock 10 und ein Nutzlastfeld 20.
Der Headerblock 10 umfasst einen festen Header 12 und einen
variablen Header 14. Der feste Header 12 enthält Information,
die für
alle Frames in der Sequenz die gleiche ist, wie eine Abtastfrequenz
des Audios. Diese Information wird in jedem Frame übertragen,
um einen beliebigen Zugriff auf den Bitstrom zu ermöglichen.
Der feste Header enthält
ebenfalls ein Synchronisationswort. Der variable Header enthält Headerinformation,
die von Frame zu Frame sich ändern
kann. Eines der Elemente des variablen Headers ist die Framelänge, welche
die Länge
L des Frames enthält.
Das Nutzlastfeld 20 kann bis zu 4 Subblöcke (22, 24, 26, 28)
unverarbeiteter Au diodaten enthalten, wobei jeder Subblock eine feste
Anzahl Audioabtastwerte je Kanal enthält (beispielsweise 1024 in
MPEG2-AAC).
-
Während der Übertragung
des codierten Bitstroms können
Bitfehler auftreten, die durch ungünstige Übertragungsumstände verursacht
werden können.
Derartige Fehler können
einen Bitstrom ungültig
machen, was zu einem stark gestörten
Ausgang des Decoders führt.
Um derartige Probleme zu überwinden
haben die Standards spezifiziert, dass der Headerblock und das wirklich
codierte Audio in dem Subblock ggf. unter Anwendung eines Fehlerschutzcodes 30 geschützt werden
kann, wobei dieser Code auch in das Frame eingefügt werden kann. Als Fehlerschutzcode
wird eine zyklische Redundanzprüfung
("Cyclic Redundancy
Check", CRC) angewandt.
Die CRC kann zum Korrigieren von Übertragungsfehlern angewandt
werden. Für
stark gestörte Übertragungskanäle kann
es sein, dass die CRC nicht ausreicht zum Korrigieren von Fehle,
kann aber dennoch angewandt werden um ein ungültiges Segment der Daten zu
markieren. In dem Fall kann der Decoder geeignete Fehlerverschleierungsmaßnahmen
für dieses
betreffende Datensegment treffen. Es dürfte einleuchten, dass es für A/V-Streaming,
wobei normal empfangene Daten in Echtzeit aufbereitet werden, meistens
keine Zeit gibt, eine Neuübertragung
von Daten durchzuführen,
wenn ein Fehler detektiert worden ist.
-
Zur
Zeit wird das MPEG-AAC-ADTS-Frameformat angewandt zum Übertragen
codierten Audios unter Verwendung nur eines Subblocks je Frame.
Typischerweise wird der etwaige Fehlerschutz, bei dem CRC angewandt
wird, durchgeführt.
Wie in 1A dargestellt, wird im Falle
eines einzigen Subblocks je Frame, der CRC-Code 30 über den
festen Header 12, den variablen Header 14 und
den Subblock 22 berechnet. Der Header (der aus dem festen
und dem variablen Header besteht) des Frames hat eine feste Länge, was
die Decodierung vereinfacht. Zum Reduzieren der Gesamtkosten der Übertragung
ist es erwünscht,
die von den Standards gelieferte Option zu benutzen um mehr als
nur einen Subblock in das ADTS-Frame einzuschließen. Aber die Standards liefern
nicht eine deutliche Beschreibung über Schutz von Daten in dam
Fall von mehreren Subblöcken
in einem ADTS-Frame. Der Rahmen des Schutzes der einen spezifizierten
CRC kann sich über alle
Subblöcke
in dem Frame erstrecken, wie in 1b dargestellt.
Wenn man dies tut, würde
das bedeuten, dass ein einziger Bitfehler irgendwo in dem Header
oder in den Subblöcken
alle Subblöcke
unbrauchbar macht. Dies macht die Verschleierung von Fehlern schwierig,
wenn nicht unmöglich.
-
EP-A-827
312 beschreibt ein System mit einem Sender und einem Empfänger zum Übertragen
eines Signals in Form eines Streams mit Frames. Jedes Frame umfasst
einen Headerblock und eine Anzahl Subblöcke. Die Subblöcke können eine
variable Länge
haben. Der Headerblock und jeder der Subblöcke umfassen betreffende assoziierte
Fehlerschutzcodes zum Schützen
der betreffenden Blöcke.
-
Es
ist nun u. a. eine Aufgabe der vorliegenden Erfindung ein Frameformat
zu schaffen, dass für
Streaming codierter A/V-Daten geeignet ist, wobei das Frame eine
Anzahl Datensubblöcke
aufweist, während
der Einfluss der Übertragung
von Fehlern begrenzt wird.
-
Diese
Aufgabe der vorliegenden Erfindung wird erfüllt durch ein System nach Anspruch
1. Durch separaten Schutz jedes der Subblöcke können Korrekturmaßnahmen
für jeden
einzelnen Subblock getroffen werden. Dadurch, dass auch ein einzelner
Schutz des Headers angewandt wird, der im vergleich zu dem Subblock
meistens relativ kurz ist, können
Fehler in dem header einzeln detektiert werden. Ein Fehler in dem ersten
Subblock wird den Headerblock nicht unbrauchbar machen und an sich
kann Headerinformation dennoch zum verarbeiten der anderen Subblöcke verwendet
werden. Die Fehlerschutzcodes ermöglichen vorzugsweise eine zuverlässige Detektion
mehrerer Bitfehler. Vorzugsweise wird den Headern dadurch mehr Schutz
gegeben, dass denselben ein stärkerer
Kanalcode gegeben wird. Nach der vorliegenden Erfindung unterstützt das
Frame die Übertragung
von Subblöcken
mit einer variablen Länge.
Um es zu ermöglichen,
nur diejenigen Subblöcke
zu überspringen,
die fehlerhaft sind, ist Ortungsinformation vorhanden um die einwandfreien
Blöcke
orten zu können.
Die Ortungsinformation wird in den Headerblock eingefügt und wird
durch den Headerfehlerschutzcode geschützt. Die Ortungsinformation
kann jede geeignete Form annehmen, wie ein Offset vom Anfang des
Frames. Auch Längen
der Subblöcke
können
spezifiziert werden, wobei die Ausgangslage eines Subblocks von
einer Ausgangslage eines vorhergehenden Subblocks und der Länge dieses
Subblocks hergeleitet wird.
-
Die
Länge des
Headerblocks ist dem Empfänger
bekannt (oder im Allgemeinen: die gesamte Länge aller Frame-Elemente, die
den Subblöcken
vorhergehen, ist bekannt). Um aus dieser Information Nutzen zu ziehen
braucht die Ortungsinformation nicht die Lage des ersten Subblocks
nach dem Header zu enthalten. Auch die gesamte Län ge des Frames ist für ein Frame
bekannt, wodurch es ermöglicht
wird, die Lage des nächsten
Frames zu orten.
-
Nach
einer Maßnahme
des Unteranspruchs 2 werden die Fehlerschutzcodes unmittelbar neben
und vorzugsweise unmittelbar hinter dem Block vorgesehen, den sie
schützen.
Dies ermöglicht
eine einfache Verarbeitung ohne Verzögerungen.
-
Nach
einer Maßnahme
des Unteranspruchs 3 hat der Headerblock eine feste Größe. Folglich
ist die Lage des ersten Blocks unbedingt bekannt und es erübrigt sich
zusätzliche
Information. Wenn der Headerblock nicht eine feste Größe hätte, wird
vorzugsweise Information über
die Länge
des Headers in den Headerblock selber eingefügt (vorzugsweise an einer vorbestimmten
Stelle).
-
Das
Frame wird vorzugsweise für
drahtlose Übertragung
und drahtlosen Empfang und für
Streaming (Übertragung
und Empfang) von codierten A/V-Signalen verwendet. Das Frame ist
insbesondere sehr nützlich für ausgesendetes
Audio und Fernsehen sowie für
Internetradio. Das Frame kann auch zum Speichern codierter A/V-Signale
verwendet werden, insbesondere wenn ein beliebiger Zugriff auf e
Frames erforderlich ist.
-
Ausführungsbeispiele
der Erfindung sind in der Zeichnung dargestellt und werden im Folgenden
näher beschrieben.
Es zeigen:
-
1 die bekannte Framestruktur,
-
2 die
Framestruktur nach der vorliegenden Erfindung,
-
3 ein Übertragungssystem
nach der vorliegenden Erfindung, und
-
4 eine
Decoderanordnung mit einem Aufzeichnungsträger, auf dem die Framestruktur
aufgezeichnet wird.
-
1A zeigt
die bekannte Framestruktur für
ein Frame mit einem Subblock 22. 1B zeigt
die Framestruktur, die aus dem Syntax in denn MPEG AAC Standards
für das
Beispiel mit vier Subblöcken 22, 24, 26 und 28 in
dem Nutzlastfeld des Frames folgt. In dem vorliegenden Fall deckt
die CRC des Feldes 30 des Frames den Headerblock 10 (mit
dem festen Header 12 und dem variablen Header 14)
und alle Subblöcke
in dem Frame. Da die Subblöcke
meistens ziemlich lang sind und im Wesentlichen länger als
der Header, ist die Wahrscheinlichkeit groß, dass ein detektierter Fehler
in einem der Subblöcke
auftritt. Da es aber nicht bekannt ist, wo der Fehler ist, ist der
Header nicht zuverlässig,
was die Verarbeitung des ganzen Frames unmöglich macht.
-
2 zeigt
die Framestruktur nach der vorliegenden Erfindung. 2-I
zeigt die bekannte Situation für
einen einzigen Subblock. Wegen eines Vergleichs mit bestehenden
Implementierungen wird bevorzugt, dass diese Framestruktur für ein Frame
mit einem einzigen Subblock eingehalten wird. Die 2-II
bis IV zeigen die Framestruktur für Frames mit 2, 3 bzw. 4 Subblöcken (im
Allgemeinen: N Subblöcken,
wobei N > 1 ist). In 2-IV
umfasst das Nutzlastfeld des Frames vier Subblöcke 22, 24, 26 und 28.
Nach der vorliegenden Erfindung wird der Headerblock 10 durch
einen separaten Fehlerschutzcode 31 geschützt, der
in dem Frame vorgesehen ist, statt durch die bekannte CRC 30 in 1. Wegen des Vergleichs und der Einfachheit
halber kann die gleiche CRC verwendet werden, wie von den MPEG AAC
Standards vorgeschrieben. Da ein nicht wiederherstellbarer Fehler
in dem Headerblock das Verarbeiten des ganzen Frames unmöglich macht,
wird vorzugsweise einstärkerer
Kanalcode verwendet. Wie auch dargestellt, geht mit jedem Subblock
ein assoziierter Fehlerschutzcode einher, der diesen Subblock deckt.
Diese Codes sind such in das Frame eingeschlossen. In dem Beispiel
nach 2-IV wird der Subblock 22 durch den Code 32 geschützt, der
Block 24 wird durch den Code 34 geschützt, der
Block 26 durch den Code 36 und der Block 28 durch
den Code 38. Vorzugsweise wird die von den MPEG AAC Standards
spezifizierte CRC als ein Fehlerschutzcode für die Subblöcke verwendet. Andere Codes
können
ebenfalls verwendet werden.
-
Bei
einer bevorzugten Ausführungsform
grenzen die Fehlerschutzcodes an dem von dem Code geschützten Block
und folgen vorzugsweise demselben unmittelbar. Dies macht die Prüfung des
Codes möglich, und
zwar ohne unnötige
Verzögerung.
-
Nach
der vorliegenden Erfindung können
die Subblöcke
eine variable Länge
haben. Es dürfte
einleuchten, dass für
eine bestimmte Applikation auch Subblöcke mit einer festen Länge übertragen
werden können,
während
zu einem anderen Zeitpunkt für
eine andere Applikation Subblöcke
einer anderen Größe übertragen
werden. Innerhalb einer einzigen Applikation kann auch die Länge der
Subblöcke
von Natur aus in der Zeit variieren. Die Variation in der Länge kann
in dem Kompressionspegel liegen. Für die bevorzugte Verwendung
des Frames für
MPEG AAC stellt ein Subblock beispielsweise 1024 Audioabtastwerte
dar. Für
Codierung mit einer hohen Bitrate (für Streaming über Kanäle mit einer
hohen bandbreite), kann die Bitrate beispielsweise 128000 Bits/Sekunde
sein bei einer Abtastfrequenz von 48000 Hz. Die mittlere Länge eines
Subblocks ist dann 1024·128000/48000
= 2730,666 Bits, oder (etwa) 342 Bytes, aber variiert je Subblock.
Für Co dierung
mit einer niedrigen Bitrate (für
Streaming über
Kanäle
mit einer niedrigen Bandbreite), kann die Bitrate beispielsweise 32000
Bits/Sekunde sein bei einer Abtastfrequenz von 32000 Hz. Die mittlere
Länge eines
Subblocks ist dann 1024·32000/32000
= 1024 Bits, oder 128 Bytes, aber variiert auch hier wieder je Subblock.
Für MPEG
AAC ist die Länge
des Headerblocks (mit dem festen und variablen Header) immer 7 Bytes.
Sogar für
eine niedrige Bitrate ist der Header vorzugsweise im Wesentlichen
kleiner als der Subblock (zum Reduzieren der Gesamtkosten, verursacht
durch den Headerblock). Vorzugsweise ist die Länge des Headerblocks wenigstens
um das Zehnfache kleiner a die Länge
eines mittleren Subblocks. Durch Verwendung relativ großer Subblöcke im Vergleich
zu dem Header, wird ein Fehler in dem Frame höchstwahrscheinlich in einem
der Subblöcke
liegen. Dadurch, dass der Headerblock separat geschützt wird,
wird mit einer hohen Wahrscheinlichkeit der Headerblock denn och
verwendbar sein, wenn Fehler in dem Frame detektiert werden. Mit
Hilfe der Subblockfehlerschutzcodes und der Ortungsinformation können die
gültigen
Subblöcke
geortet und weiter verarbeitet werden, während der (die) ungültige(n)
Subblock (Subblöcke)
abgelegt werden.
-
Nach
der vorliegenden Erfindung umfasst das Frame Positionsinformation 40,
die es ermöglicht,
dass die Position der Subblöcke
mit variabler Länge
geortet wird. Für
Frames, wie MPEG AAC, wobei die Länge aller Elemente, die den
Subblöcken
vorhergehen, bekannt ist, (im Falle von MPEG-AAC wird die Länge vorbestimmt;
als eine Alternative könnte
die Längeninformation
auch in das Frame eingefügt
oder mit demselben mitgesendet werden), ist es nicht notwendig,
die Position des ersten Subblocks zu spezifizieren. In einem derartigen
Fall wird Information über
die Stelle der Subblöcke
II durch N in einem Frame hinzugefügt, vorzugsweise in Form eines
Offsets in Bytes gegenüber
dem Start des Subblocks I. Die Position des Subblocks I ist implizit (unmittelbar
hinter den Headern). Die Stelleninformation ermöglicht eine Decodierung von
Subblöcken
in dem Fall, dass es sich herausstellt, dass vorhergehende Subblöcke ungültig sind.
-
Die
Stelleninformation wird in den Headerblock eingefügt und wird
von dem Fehlerschutzcode geschützt.
Damit die Stelleninformation optimal zu den bestehenden Implementierungen
des MPEG AAC Frameformats mit einem einzigen Subblock passt, wird
sie an der letzten Stelle des variablen Headers eingeschlossen.
Die bestehende CRC 30 wird an derselben Stelle festgehalten,
schützt
aber nun nur den festen Header, den variablen Header und die Stelleninformation,
aber nicht länger
den ersten Subblock.
-
Die
Syntaxbeschreibung einer bevorzugten Framestruktur ist nun wie folgt
(wobei die Syntaxschreibweise von MPEG AAC verwendet wird):
-
Definitionen:
-
- * raw_data_block_position(i): Startposition
des raw_data_block(i) gemessen als Offset in Bytes von der Startposition
von raw_data_block(0) an.
- * adts_error_check(): entsprechend der Definition in ISO/IEC
13818-7.
- * adts_header_error_check(): CRC Fehlerdetektionsdaten, erzeugt
wie beschrieben in ISO/IEC 11172-3, Subklausel 2.4.3.1 (Tabelle
6,7). Die nachfolgenden Bits werden geschützt und in in der Reihenfolge
ihres Erscheinens den CRC Algorithmus eingespeist:
- * alle Bits des adts_fixed_header()
- * all bits des adts_variable_header()
all bits der raw_data_block_position
Felder.
- * adts_raw_data_block_error_check(i): CRC Fehlerdetektionsdaten,
erzeugt, wie beschrieben in ISO/IEC 11172-3, Subklausel 2.4.3.1
(Tabelle 6,7). Die nachfolgenden Bits des raw_data_block(i) werden
geschützt und
in in der Reihenfolge ihres Erscheinens den CRC Algorithmus eingespeist:
- * die ersten 192 Bits des single_channel_element (SCE), channel_pair_element
(CPE), coupling_channel_element (CCE), low frequency enhancement
channel (LFE)
- * die ersten 128 Bits des zweiten individual_channel_stream
(ICS) in dem channel_pair_element müssen geschützt werden.
- * Alle Informationen in einem program_configuration_element
(PCE) oder data_stream_element (DSE) müssen geschützt werden.
-
Für jedes
Element, bei dem die spezifizierte Länge von 128 oder 192 Bits die
wirkliche Länge übersteigt,
wird das Element für
CRC Berechnungen Null gepolstert zu der spezifizierten Länge.
-
Die
id_syn_ele bits sollen vom CRC Schutz ausgeschlossen werden. Wenn
die Länge
eines CPE kleiner ist als 192 Bits, werden Null Daten angehängt um die
Länge von
192 Bits zu erhalten.
-
Weiterhin
wird, wenn die ersten ICS des CPE bei dem N. Bit (N < 192) endet, werden
die ersten (192-N) Bits des zweiten ICS zweimal geschützt. Wenn
beispielsweise das zweite ICS bei dem 190. Bit des CPE startet,
werden die ersten 3 Bits des zweiten ICS zweimal geschützt. Zum
Schluss, wenn die Länge
des zweiten ICS kleiner ist als 128 Bits, werden zum Erreichen der
Länge von
128 Bits Null Daten angehängt.
-
3 zeigt
ein Übertragungssystem 300 nach
der vorliegenden Erfindung. Das A/V-Signal wird einem Codierer 330 zugeführt. Der
Codierer 330 umfasst einen Eingang zum Empfangen einer
Anzahl digital codierter Audio/Video Datensubblöcke, wobei jeder Subblock vorbestimmten
aufeinander folgenden Periode des A/V-Signals entspricht. Wie oben
beschrieben, haben die Subblöcke
im Allgemeinen eine variable Länge.
Die Subblöcke
werden typischerweise in einem im Wesentlichen kontinuierlichen
Strom aufeinander folgender Blöcke
empfangen. Der Codierer 330 ist wirksam zum Erzeugen des
Headerblocks. Der Headerblock enthält Information über die
zu codierenden A/V Datenblöcke
(beispielsweise Abtastrate). Einige dieser Informationen können separat
dem Codierer zugeführt
werden. Die Information umfasst Stelleninformation über die
Stelle der Subblöcke,
die in das Frame eingeschlossen werden sollen. Der Codierer ermittelt
vorzugsweise diese Information aus der Längeninformation des einzelnen,
dem Eingang zugeführten
Subblocks. Eine derartige Längeninformation
kann separat zugeführt
werden oder sie kann in anderer Information drin sein. Der Codierer 330 berechnet
für den
Headerblock einen assoziierten Headerfehlerschutzcode zum Schützen des
Headerblocks während
der Übertragung
und/oder Speicherung. Der Codierer 330 berechnet ebenfalls
für jeden
der betreffenden A/V Datensubblöcke
einen betreffenden assoziierten Subblockfehlerschutzcode zum Schützen des
assoziierten Subblocks während
der Übertragung
und/oder Speicherung. Eine herkömmliche
Software-Routine oder eine Hardware-Schaltungsanordnung kann zum
Berechnen des Fehlerschutzcodes verwendet werden. Die Codierer baut
in einem Speicher die ganze Framestruktur nach der vorliegenden
Erfindung und führt
diese Weiter zu einem Sender 310. Meistens wird ein einziger
integrierter Codierer zum Erzeugen der Subblöcke und zum Anhängen der
Header und der Fehlerschutzcodes verwendet. Typischerweise wird
der Codierer in Software implementiert, und zwar unter Verwendung
eines DSPs oder eines Mikroprozessors eines ähnlichen Typs. Die Software
kann in den Codierer eingebettet sein. Ein Fachmann wird imstande
sein, eine geeignete Hardware-Implementierung des Codierers zu bauen.
Der Sender kann jedes gewünschte
Kommunikationsprotokoll implementieren um das Frame über ein
Kommunikationsmedium 350 zu einem Endempfänger 320 zu übertragen
(beispielsweise über
das Internet). Der Empfänger 320 liefert
die empfangene Information einem Decoder 340.
-
Der
Decoder 340 umfasst einen Eingang zum Empfangen des Frames
mit dem Headerblock, dem assoziierten Headerfehlerschutzcode, und
einer Anzahl Datensubblöcke
und einer Anzahl betreffender assoziierter Subblockschutzcodes.
Der Headerblock umfasst Information über die Datensubblöcke in dem
Frame, u. a. die Stelleninformation über die Stelle wenigstens eines
der Datensubblöcke
in dem Frame. Der Decoder 340 prüft, ob der Headerfehlerschutzcode
dem Headerblock entspricht. Dies kann durch Berechnung des Fehlerschutzcodes
für den
empfangenen Headerblock und durch einen Vergleich dieses Codes mit
dem empfangenen Headerfehlerschutzcode geschehen. Wenn ein Fehler
detektiert wird, beendet der Decoder 340 die Verarbeitung
des Frames. Der Decoder 340 ortet die Datensubblöcke wenigstens
teilweise unter Ansteuerung der Stelleninformation in dem Headerblock,
wie oben beschrieben. Der Decoder prüft für jeden der betreffenden Datensubblöcke, ob
der betreffende assoziierte Subblockschutzcode dem Datensubblock
entspricht (beispielsweise durch Berechnung des Codes und durch
einen Vergleich dieses Codes mit dem empfangenen Code). Fehlerhafte
Subblöcke
werden abgelegt und die einwandfreien Subblöcke werden durch Extraktion
eines codierten A/V Signals aus jedem Subblock, bei dem kein Fehler
detektiert wurde, beibehalten. Das codierte A/V Signal wird weiterhin
auf eine Art und Weise decodiert, die für die spezifische Form der
Codierung (beispielsweise MPEG 2 Codierung) geeignet ist.
Diese weitere Decodierung kann von dem Decoder 340 oder
von einem externen Decoder durchgeführt werden. Typischerweise
wird der Decoder auch in Software auf einer geeigneten Verarbeitungsplattform
implementiert.
-
Vorzugsweise
werden fehlerhafte Frames oder Subblöcke nicht einfach abgelegt,
sondern es werden Maßnahmen
getroffen, derartige Fehler zu verschleiern, und zwar durch Ersatz
des fehlerhaften Frames oder des Subblocks durch ein geschätztes Frame
oder einen geschätzten
Subblock. Jedes beliebige bekannte Verschleierungsverfahren (beispielsweise
Interpolation) kann dazu angewandt werden.
-
4 zeigt
eine Decoderanordnung 400 mit einem Speichermedium 410,
auf dem die Framestruktur aufgezeichnet ist. Jedes beliebige Speichermedium
(einschließlich
Aufzeichnungsträger)
können
verwendet werden, beispielsweise optische, magnetische, magneto/optische,
Halbleiterspeicher usw. Der Leser 420 liest ein oder mehrere
Frames aus dem Speicher 410 und liefert diese dem Decoder 430.
Der Decoder 430 kann der selbe sein, wie für den Decoder 340 in 3 beschrieben.
Der Leser 420 passt zu dem Speichermedium. Das Speichermedium 410 kann
fest in der Decoderanordnung 400 vorgesehen sein. Auch
können
entfernbare Speichermedien verwendet werden (beispielsweise optische
Platten, Flash-Speicherkarten) welche die Frames nach der vorliegenden
Erfindung tragen.
-
Text in der
Zeichnung
-
1A
- 12
- fester
Header
- 14
- variabler
Header
- 22
- Subblock
-
1B
- 12
- fester
Header
- 14
- variabler
Header
- 22
- Subblock
-
2
-
- Fester
Header
-
- Variabler
Header
-
- Subblock
-
- Positionsinformation
der Subblöcke