www.wikidata.de-de.nina.az
Cross interleaved Reed Solomon Codes CIRC dienen der Fehlererkennung und Fehlerkorrektur bei CDs Inhaltsverzeichnis 1 Anforderungen 2 Verwendete Codes 3 Cross Interleaving 4 Decoder 4 1 C1 A Decoder 4 2 C2 A Decoder 4 3 C1 B Decoder bessere Strategie 4 4 C2 B Decoder bessere Strategie 5 Beispiel Decodieren 6 Siehe auch 7 EinzelnachweiseAnforderungen BearbeitenDie Anforderungen an CIRC kann man folgendermassen zusammenfassen Es besteht eine hohe Einzelfehlerkorrekturrate oder Zufallsfehlerkorrekturrate die durch unsauber abgebildete Bits oder Produktionsfehler ausgelost werden Des Weiteren gibt es eine hohe Flachenfehlerkorrekturrate die durch Staubkorner oder Kratzer auf der CD Oberflache ausgelost werden Diese sind fur diese Art von Fehler verantwortlich Ausserdem wird eine einfache Dekodierer Strategie benotigt Zu guter Letzt ist noch anzufuhren dass ein weiteres Kriterium geringe Redundanzen sind Fehler auf der CD sind Kombinationen von Zufallsfehlern und Flachenfehlern Um dies zu bewaltigen kommt ein Produktcode mit zusatzlich mehrfachem Interleaving zum Einsatz Verwendete Codes BearbeitenAuf der CD werden zwei Codes C 1 displaystyle C 1 nbsp 32 28 5 und C 2 28 24 5 displaystyle C 2 28 24 5 nbsp verwendet die aus einem 255 251 5 RS Code durch Verkurzung um 227 bzw 218 Stellen entstehen Cross Interleaving Bearbeiten 1 Der CIRC bearbeitet Blocke von 24 Byte die in weiterer Folge als Frame 1 F1 bezeichnet werden Im ersten Schritt wird ein Block mit Hilfe des sogenannten C 2 displaystyle C 2 nbsp Scramblers folgendermassen verzogert Der F1 Block wird in zwei mal 12 Byte unterteilt und die einzelnen A B Paare um jeweils 2 Blocke verzogert Die vier freibleibenden Blocke werden im nachsten Schritt durch den C 2 displaystyle C 2 nbsp Encoder mit Q Paritatssymbolen Q1 Q2 Q3 Q4 belegt Durch das Ablegen der Paritatssymbole in der Mitte des Blocks vergrossert sich der Abstand zwischen ursprunglich aufeinander folgenden Bytes weiter Dieses Zwischenergebnis wird oft F2 Frame genannt Diese erste Interleavingstufe dient im spateren Dekodieren der Korrektur von Zufallsfehlern und der Markierung von Flachenfehlern Die Unterscheidung zwischen A und B Blocken soll zeigen dass es sich jeweils um Werte der beiden Audiokanale linksund rechts handelt nbsp Der C 1 displaystyle C 1 nbsp Scrambler empfangt ein 28 Byte F2 Wort wobei jedes einzelne Byte um einen ganzzahligen Wert von 4 verzogert wird Das ursprungliche 28 Byte Wort wird also uber 109 Byte zu einem F3a Wort verteilt nbsp Sollte beim Dekodieren zum Beispiel ein Flachenfehler der Lange 4 in einem F3a Wort erkannt werden wird dieser durch den C 1 displaystyle C 1 nbsp Unscrambler auf vier F2 Frames verteilt Dadurch kann in weiterer Folge der ursprungliche Flachenfehler als vier Einzelfehler behandelt werden nbsp Der C 1 displaystyle C 1 nbsp Encoder empfangt ein 28 Byte Wort welches aus 28 verschiedenen F2 Frames gebildet wird und erzeugt weitere 4 Bytes mit P Paritat Eine letzte Verzogerungsstufe verarbeitet zwei F3a Frames indem die ungeraden Bytes um einen Betrag von einem Byte verzogert werden Dadurch konnen Einzelfehler nicht mehr als ein Symbol pro Wort beeintrachtigen auch wenn zwei aufeinander folgende Symbole eines Blocks fehlerhaft sind Aus zwei F3a Frames entstehen somit zwei F3 Frames Dieses letzte Interleaving ermoglicht es relativ kleine Flachenfehler besser korrigieren zu konnen Durch diese Verzogerungsstufe entsteht der Nachteil dass in Kombination mit Taktschwierigkeiten beim Auslesen ein Null Wort entstehen kann Um dies zu verhindern werden die P und Q Paritatssymbole invertiert Decoder BearbeitenDa CIRC Decoder nicht standardisiert sind gibt es mehrere Moglichkeiten einen Decoder zu implementieren f displaystyle f nbsp bezeichnet in weiterer Folge die Anzahl der Ausloschungsflags die als Input ubergeben werden C1 A Decoder Bearbeiten IF Syndrom fur ein oder null Fehler THEN bearbeite ein oder kein Symbol entsprechend ELSE setze Ausloschungsflags fur das gesamte empfangene Wort ENDIF C2 A Decoder Bearbeiten IF Syndrom fur ein oder null Fehler THEN bearbeite ein oder kein Symbol entsprechend ELSE IF f gt 2 THEN kopiere C2 Ausloschungsflags von den C1 Ausloschungsflags ELSE IF f 2 THEN versuche 2 Ausloschungen zu korrigieren ELSE IF f lt 2 OR 2 Ausloschungen korrigieren scheitert THEN setze Ausloschungsflags fur das gesamte empfangene Wort ENDIF C1 B Decoder bessere Strategie Bearbeiten IF Syndrom fur ein oder null Fehler THEN bearbeite ein oder kein Symbol entsprechend ELSE IF Syndrom fur 2 Fehler THEN bearbeite 2 Symbole entsprechend setze Ausloschungsflags fur das gesamte empfangene Wort ELSE setze Ausloschungsflags fur das gesamte empfangene Wort ENDIF C2 B Decoder bessere Strategie Bearbeiten IF Syndrom fur ein oder null Fehler THEN bearbeite ein oder kein Symbol entsprechend ELSE IF f lt 4 THEN IF Syndrom fur 2 Fehler AND v 2 THEN bearbeite 2 Symbole entsprechend ELSE IF Syndrom fur 1 Fehler AND f lt 2 THEN bearbeite 3 Symbole entsprechend ELSE IF Syndrom fur 2 Fehler AND v 1 AND f lt 3 OR v 0 AND f lt 2 OR f lt 2 AND NOT Syndrom fur 2 Fehler THEN setze Ausloschungsflags fur das gesamte empfangene Wort ELSE kopiere C2 Ausloschungsflags von C1 Ausloschungsflags ENDIF ELSE kopiere C2 Ausloschungsflags von C1 Ausloschungsflags ENDIFBeispiel Decodieren Bearbeiten nbsp Beispiel Teil 1Angenommen die Matrix enthalt 18 Spalten mit je einem Fehler eine Spalte mit zwei Fehlern eine weitere Spalte mit vier Fehlern und 11 korrekte Spalten Ausserdem wurde bereits eine komplette Spalte mit Ausloschungsflags versehen da die Hardware diesen Teil nicht erkennen konnte Die Spalten wurden mit einem 28 24 5 Code codiert das heisst er kann alle 1 fach und 2 fach Fehler korrigieren Der C1 A Decoder nutzt im Gegensatz zum C1 B Decoder diese Moglichkeit nicht optimal Verwendet man den C1 B Decoder werden die 18 1 displaystyle 18 1 nbsp Spalten mit Einfach und Zweifachfehlern korrigiert Die Spalte mit dem Zweifachfehler wird zusatzlich mit Ausloschungsflags versehen Bei der Spalte mit vier Fehlern konnen zwei Falle auftreten Zum einen kann dies erkannt werden und es werden Ausloschungsflags gesetzt oder es wird falsch korrigiert und ein weiterer Fehler kommt dazu nbsp Beispiel Teil 2Die Zeilen wurden mit einem 32 28 5 Code codiert Sollte der C1 B Decoder die Spalte mit vier Fehlern falsch korrigieren stosst der C2 B Decoder auf funf falsche Zeilen mit je einem Fehler und zwei Ausloschungen Sollten die vier Fehler erkannt werden muss der C2 B Decoder vier falsche Zeilen mit je drei Ausloschungen korrigieren In beiden Fallen kann der C2 B Decoder die Fehler beziehungsweise die Ausloschungen richtig korrigieren Der C2 A Decoder konnte diese Fehler nicht korrigieren A priori kann der Code C 1 C 2 displaystyle C 1 times C 2 nbsp als Linearcode mit d 25 displaystyle d 25 nbsp alle 12 fach Fehler oder 24 Ausloschungen korrigieren Durch das Zusammenspiel von Zeilen und Spaltenkorrektur werden in diesem Beispiel 24 Fehler und 28 Ausloschungen korrigiert Die Korrekturkapazitat wird also mehr als verdreifacht Siehe auch BearbeitenFehlerkorrekturverfahren Compact Disc CD Einzelnachweise Bearbeiten K Pohlmann Compact Disc Handbuch IWT 1 edition 1994 ISBN 3 88322 500 2 Abgerufen von https de wikipedia org w index php title Cross interleaved Reed Solomon Code amp oldid 170428649