### BicubicResize / BilinearResize / LanczosResize / PointResize

`BicubicResize(`clip, int "target_width", int "target_height", float "b", float "c"`)`
`BilinearResize(`clip, int "target_width", int "target_height"`)`
`LanczosResize(`clip, int "target_width", int "target_height"`)`
`PointResize(`clip, int "target_width", int "target_height"`)`
Bei allen diesen Filtern zur Größenänderung kann eine erweiterte Syntax verwendet werden, die vor dem Verkleinern bzw. Vergrößern das Bild abschneidet. Die gleiche Operation wird durch `Crop()` vor dem Resize erreicht.

`Crop(10,10,200,300).BilinearResize(100,150)` ist das gleiche wie `BilinearResize(100,150,10,10,200,300)`

`BicubicResize(`clip, int "target_width", int "target_height", float "b", float "c", float "src_left", float "src_top", float "src_width", float "src_height"`)`
`BilinearResize(`clip, int "target_width", int "target_height", float "src_left", float "src_top", float "src_width", float "src_height"`)`
`LanczosResize(`clip, int "target_width", int "target_height", float "src_left", float "src_top", float "src_width", float "src_height"`)`
`PointResize(`clip, int "target_width", int "target_height", float "src_left", float "src_top", float "src_width", float "src_height"`)`
Wichtig: AviSynth hat (intern) völlig getrennte vertikale und horizontale Filter zur Größenänderung. Wenn in einer Richtung keine Änderung notwendig ist, wird dieser Teil übersprungen.
Es wird zuerst die Richtung mit dem kleineren Verhältnis bearbeitet, damit die bestmögliche Qualität erhalten wird und der Filter für die zweite Richtung ein möglichst gutes Eingangsbild bekommt.

Der `BilinearResize` Filter skaliert die eingehenden Frames in eine beliebig andere Auflösung. Wenn man die optionalen source Argumente angibt, ist das Ergebnis das gleiche, als wenn man zuvor `Crop` angewendet hätte mit diesen Argumenten. Allerdings wäre dies nicht so schnell.
`BilinearResize` verwendet einen Standard-Bilinear-Filter, der fast identisch mit dem VirtualDub-Filter "precise bilinear" ist. Nur "fast" deshalb, da VirtualDub hier einen winzigen Skalierungsfehler macht, bei dem die oberste und unterste Zeile abgeschnitten oder verdoppelt werden, was aber nur bei bei einer Vergrößerung um 2 oder mehr auffällt.

Beispiele: # eine Video-Datei laden und die Größe auf 240x180 ändern (egal wie groß die Auflösung vorher war): `AVISource("Dateiname.avi").BilinearResize(240,180)` # ein 720x480 (CCIR601)-Video laden und die Größe auf 352x240 (VCD-NTSC) ändern, # wobei das korrekte Seitenverhältnis beibehalten wird: `AVISource("Dateiname.avi").BilinearResize(352,240,8,0,704,480)` # das rechte obere Quadrat eines 320x240 Videos rausschneiden und auf den ganzen Frame vergrößern: `BilinearResize(320,240,160,0,160,120)`

`BicubicResize` ist ähnlich wie `BilinearResize`, es wird aber eine zweifach kubische Mitchell-Netravali-Filter-Funktion eingesetzt.
Mit den Parametern b und c kann die Eigenschaft dieser Funktion eingestellt werden, die Parameter werden auch manchmal als "blurring" (verwischen) und "ringing" (Ringe zeichnen) bezeichnet.
Mit b = 0 und c = 0.75 ist der Filter genau gleich wie der VirtualDub-Filter "precise bicubic" (bis auf das genannte Skalierungsproblem). Der Standardwert ist b = 1/3 und c = 1/3, das sind die von Mitchell und Netravali empfohlenen Werte, die das subjektiv schönste Bild ergeben. Mit größeren Werten von b und c können interessante Effekte entstehen, z.B. mit b = 0 und c = -5.
Beim Vergrößern eines Videos erhält man mit `BicubicResize` wesentlich bessere Ergebniss als mit`BilinearResize`. Beim Verkleinern kann `BilinearResize` gleich gut oder sogar besser sein. Ein bikubischer Filter erzeugt Bilder, die schöner aussehen, allerdings deswegen, da eine leichte Schärfung stattfindet und nicht wegen einer exakteren Abtastung. Scharfe Bilder schauen gut aus, solange man sie nicht komprimiert, dann können sie leicht hässlich werden. Besonders beim Encoden mit niedriger (knapper) Bitrate gibt `BilinearResize` meist bessere Ergebnisse.
Man muss
b + 2 * c = 1
setzen um einen numerisch genauen Filter zu erhalten.
Daher kann für b = 0 ein maximales c = 0.5 verwendet werden, das ist dann ein Catmull-Rom-Spline und ein guter Wert für maximale Schärfe.
Mit Werten c>0.6 fängt der Filter an, Ring-Artefakte zu produzieren. Es entsteht hier keine echte Schärfe mehr, vielmehr eine Kantenkorrektur wie beim Fernseher.
Für b dürfen keine negativen Werte verwendet werden. b muss mindestens 0 sein.

`LanczosResize` ist eine Alternative für`BicubicResize` mit hohen Werten von c von 0.6 ... 0.75 und erzeugt relativ starke Schärfung.
Es bietet normalerweise eine höhere Qualität (weniger Artefakte) und gleichzeitig ein scharfes Bild.

`PointResize` ist die denkbar einfachste Methode, die einen Punkt-Sampler oder einen Nächster-Nachbar-Algorithmus verwendet, was ein sehr geblocktes Bild erzeugt. Dieser Filter sollte daher nur verwendet werden, wenn man absichtlich eine "schlechte" Bildqualität erzeugen möchte oder klare Pixel-Zeichnungen möchte.
Weiter kann es auch zum probeweisen Vergrößern verwendet werden.