Da die FAQ's so steinalt sind, versuche ich mal ein paar knappe Ergänzungen:
Wie gesagt, die Zeilenvergleiche erfolgen mittels kleinster quadratischer Abweichung. Die Zeilen werden also in eine von 355 möglichen relativen Positionen zueinander geschoben und pixelweise verglichen. Die Helligkeitsdifferenzen werden dann quadriert und über die Zeile aufsummiert. Dazu wird normalerweise MMX eingesetzt, um 4-8 Pixel parallel zu verarbeiten. Die kleinste Abweichung tritt dann hoffentlich bei der richtigen Position auf.
Insgesamt wären so bei 360x288 mindestens 355x355x288x25 = 907 Millionen Pixel pro Sekunde zu vergleichen. Viel zu viel. Durch diverse Tricks kann dieser Wert drastisch gesenkt werden. Bei hVCPlus werden zB. schlimmstenfalls noch 57 Millionen Pixel verglichen, oft weniger.
Das Problem dieses Verfahrens ist, dass schräge Linien im Bild vom Dekoder als versetzte Zeilen erkannt werden. Durch das falsche Anordnen der Zeilen werden solche Linien fälschlich gerade gerückt. Ein weiteres Problem sind horizontale Linien, wie zB. Schränke, Türen usw. An diesem Übergang ähneln sich die Zeilen kaum noch, wodurch es zwangsweise zu Fehlern kommt. Gelegentlich tritt noch ein Phänomen auf: Im Bild sind zwei Konturen nebeneinander vorhanden, die sich so ähneln, dass der Dekoder sie verwechselt und das Bild falsch zusammensetzt: Die beiden Teile werden exakt vertauscht.
Die neueren Dekoder benutzen noch eine weitere Informationsquelle: Die Farbe.
Echte Dekoder dekodieren das Signal, bevor es vom Fernseher in Farb und Helligkeitsinformationen getrennt wird. Bei Software-Dekodern ist diese Reihenfolge vertauscht, wodurch die Farbinformation verfälscht wird: Je weiter die Bildinformation von ihrer ursprünglichen Position verschoben gesendet wird, desto stärker werden die Farben im U-V-Raum 'gedreht'.
Die richtige Dekodierung erkennt man also auch daran, dass die Farben der Zeilen gut passen. Da diese Drehung pro Schnittpunkt 228 Grad beträgt, wirken schon kleine Fehler sehr stark. Andererseits ergeben sich zB. bei 8 Schnittpunkten 'Entfernung' nur 24 Grad Fehler (8x228 = 1824 Grad), was kaum zu unterscheiden ist. Daher werden die Farben nur genutzt, um die Fehler der normalen Dekodierung zu erkennen und zu beseitigen.
-------------
Wohlgemerkt, das ist nur ein grober Überblick über die derzeitige Dekodierung. Zum funktionierenden Farb-Dekoder fehlen noch einige wesentliche Details, aber das würde diesen Text sprengen....
Weiteres findet man in den (frei erhältlichen) Quelltexten der Programme, wie zB. Multidec, hVCPlus und xawdecode (Linux).
no_operation