### ConvertBackToYUY2 / ConvertToRGB / ConvertToRGB24 / ConvertToRGB32 / ConvertToYUY2 / ConvertToYV12

`ConvertBackToYUY2(`clip`)`
`ConvertToRGB(`clip`)`
`ConvertToRGB24(`clip`)`
`ConvertToRGB24(`clip, bool "interlaced"`)`
`ConvertToRGB32(`clip`)`
`ConvertToRGB32(`clip, bool "interlaced"`)`
`ConvertToYUY2(`clip`)`
`ConvertToYUY2(`clip, bool "interlaced"`)`
`ConvertToYV12(`clip`)`
`ConvertToYV12(`clip, bool "interlaced"`)`
Vor AviSynth v2.5 konnte AviSynth intern nur mit zwei Farbräumen umgehen, RGB und YUY2. Seit AviSynth v2.5 beherrscht AviSynth nun auch einen dritten Farbraum, YV12. Diese Filter konvertieren einen Farbraum in einen anderen. Wenn das Video bereits in dem angegebenen Format vorliegt, wird es unverändert durchgeschleift. (mit RGB ist in dieser Dokumentation RGBA gemeint) `ConvertToRGB` konvertiert zu RGB32, es sei denn, der Clip ist RGB24. Falls du unbedingt 24-Bit RGB brauchst, nutze explizit `ConvertToRGB24` und `ConvertToRGB32` für die Rücktransformation.
Seit AviSynth v2.51/v2.52 wurde ein optionaler interlaced Parameter hinzugefügt (Standard: interlaced=false). Wenn dieser auf false steht, bedeutet dies, dass der clip progressiv ist, wenn der Parameter auf true steht, bedeutet dies, dass der clip interlaced ist. Diese Option wurde hinzugefügt, weil z.B. (angenommen der Clip ist interlaced YV12):

`SeparateFields(clip) ConvertToYV12 Weave`

das Upsampling nicht korrekt ist. Stattdessen sollte man besser verwenden:

`ConvertToYV12(clip, interlaced=true)`

Alle VirtualDub-Filter (geladen mit `LoadVirtualdubPlugin`) arbeiten nur mit RGB32.
RGB24, RGB32: Die Farben werden als Werte von Rot, Grün und Blau gespeichert. In RGB32 gibt es noch zusätzlich einen Alpha Kanal für Transparenz. Die Bildauflösung kann beliebige Werte annehmen.
YUY2: Das Bild wird als ein Helligkeitswert (luma) Y und zwei Farbwerte (chroma) U und V gespeichert. Für zwei horizontal nebeneinander liegende Pixel gibt es nur ein Farbpaar und zwei Helligkeitswerte (zwei Y's, ein U, ein V). Daher muss die Breite ein Vielfaches von 2 sein.
YV12: Hier gilt das gleiche wie bei YUY2, allerdings gibt es nur noch ein Farbpaar für 4 Pixel (ein 2x2 Quadrat). Beide Bildabmessungen müssen daher ein Vielfaches von 2 sein. Falls das Video interlaced ist, muss die Höhe sogar ein Vielfaches von 4 sein, da man das 2x2 Quadrat aus einem Feld und nicht aus einem Frame nimmt.
Manche Funktionen überprüfen die Bestimmungen für die Bildabmessungen, manche runden die Parameter, und es gibt noch manche, wo es zu einer Bildverzerrung kommt oder ein Fehler ausgegeben wird.
Das Arbeiten in YUY2 ist schneller als in RGB. Und YV12 ist noch schneller und ist das offizielle MPEG Format, so dass man wenig Farbraumkonvertierungen braucht.
Umwandlungen zwischen den Formaten sind nicht ganz verlustfrei, daher sollte man so wenig Umwandlungen als möglich verwenden. Wenn mehrere Umwandlungen notwendig sind, sollte man `ConvertBackToYUY2()` verwenden, falls die Quelle schon in YUY2 vorlag. Dadurch wird ein Verwischen der Farben vermindert, es leidet aber immer noch die Genauigkeit.
In vielen Fällen ist der `ConvertToRGB` Filter nicht notwendig. Wenn AviSynth das Video im YUY2 Farbraum ausgibt und eine Anwendung RGB benötigt, wird das Betriebssystem den installierten YUY2 Codec für die Konvertierung nutzen. Wenn aber kein YUY2 Codec installiert ist oder wenn (wie bei ATI's und einigen anderen YUY2 Codecs) der Codec falsch von YUY2 nach RGB konvertiert, sollte man die AviSynth eigenen Filter zum Konvertieren nutzen.
`ConvertToRGB24` und `ConvertToRGB32` erzwingen ein bestimmtes RGB-Format. RGB24 ist meistens langsamer als RGB32. Falls also die Quelle RGB24 ist, sollte man nach RGB32 konvertieren, da dies schneller ist. Der einzige Grund, RGB24 zu verwenden, können Kompatibilitätsprobleme bei manchen Anwendungen (z.B. TMPGEnc) sein.
HuffYUV wird als YUY2-Codec verwendet, wenn kein anderer installiert ist. Falls du also HuffYUV installierst und alle anderen YUV2 Codecs deinstallierst, wirst du nie `ConvertToRGB` gebrauchen.

`Beispiele: # Es gibt eine leichte Bildverzerrung durch die Konvertierung zwischen YUV und RGB. # Mal gucken, ob du sie sehen kannst: control = ConvertToYUY2() test = ConvertToYUY2(ConvertToRGB(ConvertToYUY2(ConvertToRGB(control)))) test = ConvertToYUY2(ConvertToRGB(test)) return Subtract(test,control)`