ConvertBits
From Avisynth wiki
Revision as of 06:36, 7 June 2017 by Raffriff42 (Talk | contribs)
AVS+ |
---|
This feature is specific to AviSynthPlus. It is not supported in other AviSynth versions. |
ConvertBits
Changes bit depth while keeping color format the same, if possible.
If the conversion is not possible – for example, converting RGB32 to 16bit – an error is raised.
ConvertBits(clip, int bits [, bool truerange, int dither, float scale, int dither_bits, bool fulls, bool fulld ] )
(older bit-depth conversion filters – deprecated)
ConvertToFloat(clip, int bits [, bool truerange, int dither, float scale, int dither_bits, bool fulls, bool fulld ] )
ConvertTo16bit(clip, int bits [, bool truerange, int dither, float scale, int dither_bits, bool fulls, bool fulld ] )
ConvertTo8bit(clip, int bits [, bool truerange, int dither, float scale, int dither_bits, bool fulls, bool fulld ] )
- clip = (required)
- Source clip.
- bits = (required)
- Bit depth of output clip. Valid values: 8, 10, 12, 14, 16 (integer) or 32 (floating point).
- bool truerange = true
- (TODO if false, seems to either do nothing or corrupt output)
- Only allowed with Planar color formats.
- If true (default), convert 10-16 bit formats without re-scaling underlying pixel data. For example,
-
clip10bit.ConvertBits(16, truerange=false)
- will leave pixel data in the 0..1023 range, but will change the color format from YUVxxxP10 to YUVxxxP16.
- Current recommendation: do not specify a truerange argument – use the default value.
- int dither = -1
- If 0, add ordered dither; if -1 (default), do not add dither.
- Currently works only for 10-16bit → 8bit conversions.
- float scale = 1.0
- (TODO no apparent change in output)
- Only allowed for 32bit → 32bit.
- Current recommendation: do not specify a scale argument – use the default value.
- int dither_bits = bits
- Dither to a lower color depth than selected bits (default = bits)
- No effect if dither=-1 (off).
- Must be an even number between 2 to bits, inclusive.
- In addition, dither_bits must be >= (clip.BitsPerComponent-8)
Examples Conversion Allowed Values 16 → 12bit 8, 10, 12 16 → 10bit 8, 10 16 → 8bit 8 14 → 10bit 6, 8, 10 14 → 8bit 6, 8 12 → 10bit 4, 6, 8, 10 12 → 8bit 4, 6, 8 10 → 8bit 2, 4, 6, 8
- bool fulls = (auto)
- If true (rgb default), scale by multiplication: 0-255 → 0-65535;
- if false (yuv default), scale by bit-shifting.
- Use case: override greyscale conversion to fullscale instead of bit-shifts
- Notes:
- Conversion from and to float is always full-scale
- Alpha plane is always treated as full scale
- At the moment, fulld must equal fulls.
- Current recommendation: do not specify a fulls argument – use the default value.
- bool fulld = fulls
- Current recommendation: do not specify a fulld argument – use the default value.
Changes
20170310 r2440 | parameter dither_bits |
20170202 r2420 | parameters fulls, fulld |