Resize8
From Avisynth wiki
		
		
		
| Abstract | |
|---|---|
| Author | mawen1250 | 
| Version | v1.2 | 
| Download | Resize8_v1.2.avsi | 
| Category | Resize | 
| License | |
| Discussion | NMM-HD [Chinese] | 
| Contents | 
Description
Resize8() works just like AviSynth's internal resizers but with some extra features:
- Chroma placement is correctly handled by it, while AviSynth resizers doesn't.
- Scaling kernel for luma and chroma can be adjusted separately
- Optional adaptive anti-ringing algorithm.
It also includes Resize8_Separate(), this function processes each plane's source position separately, mainly designed for fixing center shift caused by nnedi3, eedi3, eedi2, etc. Note that it doesn't correct chroma placement, so usually the result should be resized back to the original size, such as what many anti aliasing functions do. Adaptive anti-ringing algorithm is supported
Requirements
Required Plugins
Latest version of the following plugins are recommended unless stated otherwise.
Syntax and Parameters
- Resize8 (clip input, int "target_width", int "target_height", float "src_left", float "src_top", float "src_width", float "src_height", string "kernel", string "kernel_c", float "a1", float "a2", float "a1_c", float "a2_c", val "noring", val "noring_c", string "cplace", bool "Y", bool "U", bool "V", bool "Alpha")
- clip    =   
 - Input clip
 
 
- clip    =   
- int  target_width = input.Width() 
 
- int  target_height = input.Height() 
 - Target width and height.
 
 
- int  target_width = input.Width() 
- float  src_left = 0.0 
 
- float  src_top = 0.0 
 
- float  src_width = input.Width() 
 
- float  src_height = input.Height() 
 - Optional crop syntax, works the same as AviSynth's internal resizers.
 
 
- float  src_left = 0.0 
- string  kernel =   
 
- string  kernel_C =   
 - "kernel" sets resizing kernel for luma, "kernel_c" sets resizing kernel for chroma.
- Supported kernels: 
- Bicubic, Catmull-Rom, Hermite, Mitchell-Netravali, Robidoux, SoftCubic, SoftCubicXX (XX represents softness:[50-100])
- Point, Bilinear, Gauss/Gaussian, Sinc
- Blankman, Blankman2, Blankman3, Blankman4
- Lanczos, Lanczos2, Lanczos3, Lanczos4
- Spline16, Spline36, Spline64
 
- By default, "Lanczos4" is set for luma upscaling, "Lanczos" is set for chroma upscaling, "Spline36" is set for luma/chroma downscaling.
 
 
- string  kernel =   
- float  a1 =   
 
- float  a2 =   
 
- float  a1_c =   
 
- float  a2_c =   
 
 
- float  a1 =   
- "a1", "a2", sets parameters for resizer used in luma "a1_c", "a2_c" sets parameters for resizer used in chroma "a1" represents "b" and "a2" represents "c" for kernel "Bicubic" (default: b = 1/3., c = 1/3.) "a1" represents "taps" and "a2" do nothing for kernel "Blackman" (default: taps=4, 1<=taps<=100) "a1" represents "taps" and "a2" do nothing for kernel "Lanczos" (default: taps=3, 1<=taps<=100) "a1" represents "taps" and "a2" do nothing for kernel "Sinc" (default: taps=4, 1<=taps<= 20) "a1" represents "p" and "a2" do nothing for kernel "Gauss" (default: p=30, 1<= p <=100) "a1" represents "soft" and "a2" do nothing for kernel "SoftCubic" (default: soft=75, 50<=soft<=100) for kernel "SoftCubicXX", "XX" represents "soft" and "a1"/"a2" do nothing "a1" do nothing and "a2" do nothing for the rest kernels supported by Resize8: "Catmull-Rom", "Hermite", "Mitchell-Netravali", "Robidoux", "Bilinear", "Point", "Spline16", "Spline36", "Spline64"
- val  noring =   
 
- val  noring_c =   
 - "noring" & "noring_c" can be Bool or Float
- By default, we don't use anti-ringing algorithm for kernels "Point","Bilinear","Gauss"/"Gaussian","Hermite","SoftCubic".
- When "noring" or "noring_c" is True, adaptive anti-ringing is enabled, when no upscaling is applied, anti-ringing is also automatically disabled.
- For the default kernel of upscaling, kernel="Lanczos4"+noring=True is applied for luma, kernel_c="Lanczos"+noring_c=True is applied for chroma.
- For the default kernel of downscaling, kernel="Spline36"+noring=True is applied for luma/chroma, but the adaptive anti-ringing will turn off anti-ringing.
 
 
- val  noring =   
- Use repair to remove ringing introduced from resizer
- noring >= 1 : completely use non-ringing repaired clip
- 0 < noring < 1 : noring is the weight of non-ringing repaired clip for merging with normally upscaled clip
- noring <= 0 or False : do not use non-ringing repaired clip
- noring == True : adapt the weight of non-ringing repaired clip according to input and output resolution
 
 
- string  cplace = "MPEG2" 
 -  Placement of the chroma subsamples. Can be one of these strings:
- "MPEG1": 4:2:0 subsampling used in MPEG-1. Chroma samples are located on the center of each group of 4 pixels.
- "MPEG2": Subsampling used in MPEG-2 4:2:x. Chroma samples are located on the left pixel column of the group.
 
 
-  Placement of the chroma subsamples. Can be one of these strings:
 
- string  cplace = "MPEG2" 
- bool  Y = true 
 
- bool  U = true 
 
- bool  V = true 
 
- bool  Alpha = true 
 - Control whether to process Y/U/V plane(or R/G/B/A plane for RGB24/RGB32 input).
 
 
- bool  Y = true 
Examples
Correctly scale a YV12 source with MPEG2 chroma placement:
AviSource("Blah.avi") Resize8(target_width=1280, target_height=720, cplace="MPEG2") # Identical to Resize8(1280,720)
Upscale using adaptive anti-ringing:
Resize8(target_width=1280, target_height=720, noring=true)
Changelog
Version Date Changes
v1.2 02/24/2015 - add Resize8_Separate() function v1.1 xx/xx/xxxx - fix RGB24 problem v1.0 11/15/2013 - Initial release
External Links
Back to External Filters ←
