<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://avisynth.nl/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://avisynth.nl/index.php?action=history&amp;feed=atom&amp;title=Neo_f3kdb</id>
		<title>Neo f3kdb - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://avisynth.nl/index.php?action=history&amp;feed=atom&amp;title=Neo_f3kdb"/>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php?title=Neo_f3kdb&amp;action=history"/>
		<updated>2026-04-07T16:24:40Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.24</generator>

	<entry>
		<id>http://avisynth.nl/index.php?title=Neo_f3kdb&amp;diff=11885&amp;oldid=prev</id>
		<title>Reel.Deal: add Deep_color_tools category</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php?title=Neo_f3kdb&amp;diff=11885&amp;oldid=prev"/>
				<updated>2020-06-25T20:22:05Z</updated>
		
		<summary type="html">&lt;p&gt;add Deep_color_tools category&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:22, 25 June 2020&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;FilterCat5&lt;/del&gt;|External_filters|Plugins|Plugins_x64|Restoration_filters|Debanding}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;FilterCat6&lt;/ins&gt;|External_filters|Plugins|Plugins_x64|Restoration_filters|Debanding&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|Deep_color_tools&lt;/ins&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Filter3&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Filter3&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;| [https://github.com/SAPikachu SAPikachu], [https://github.com/msg7086 MeteorRain]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;| [https://github.com/SAPikachu SAPikachu], [https://github.com/msg7086 MeteorRain]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 26:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 26:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Requirements ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Requirements ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* AviSynth+ (x86/x64)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* AviSynth+ (x86/x64)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Supported color formats: [[Y8]], [[YV12]], [[YV16]], [[YV24]], [all planar Y/YUV formats (8/10/12/14/16bit) are supported]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Supported color formats: [[Y8]], [[YV12]], [[YV16]], [[YV24]], [all &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/ins&gt;planar&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;Y/YUV formats (8/10/12/14/16bit) are supported]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Reel.Deal</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php?title=Neo_f3kdb&amp;diff=11551&amp;oldid=prev</id>
		<title>Reel.Deal: neo_f3kdb: add documentation (wip - mostly done)</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php?title=Neo_f3kdb&amp;diff=11551&amp;oldid=prev"/>
				<updated>2020-05-27T05:03:42Z</updated>
		
		<summary type="html">&lt;p&gt;neo_f3kdb: add documentation (wip - mostly done)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{FilterCat5|External_filters|Plugins|Plugins_x64|Restoration_filters|Debanding}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
| [https://github.com/SAPikachu SAPikachu], [https://github.com/msg7086 MeteorRain]&lt;br /&gt;
| r5v2&lt;br /&gt;
|[https://github.com/HomeOfAviSynthPlusEvolution/neo_f3kdb/releases neo-f3kdb_r5v2.zip] &lt;br /&gt;
| Debanding &lt;br /&gt;
| [https://www.gnu.org/licenses/gpl-2.0.txt GPLv2]&lt;br /&gt;
| 6=[https://forum.doom9.org/showthread.php?t=176553 Doom9 Thread]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
Neo_f3kdb is a deband filter. It was originally written for AviUtl by [https://twitter.com/bunyuchan bunyuchan] and later ported to AviSynth by SAPikachu.&lt;br /&gt;
&lt;br /&gt;
It works by replacing banded pixels with average value of referenced pixels, and optionally add grain (random dithering) to them. See Wikipedia: [https://en.wikipedia.org/wiki/Color_banding Color Banding]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Neo f3kdb changes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
* Legacy format support was removed and a few options that are no longer useful were also removed. &lt;br /&gt;
* Due to API change, the project has been renamed from f3kdb to Neo_f3kdb to avoid confusion. &lt;br /&gt;
* Native high bit depth support in AviSynth+.&lt;br /&gt;
* Dual interface plugin, supports both AviSynth+ and VapourSynth.&lt;br /&gt;
* Add sample_mode 3 and 4.&lt;br /&gt;
* SSE4.1 is now required to run optimized routine. SSE4.1 is supported since Intel Penryn (2007) and AMD bulldozer (2011). AVX routine didn't show much performance benefit and is not included.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth+ (x86/x64)&lt;br /&gt;
* Supported color formats: [[Y8]], [[YV12]], [[YV16]], [[YV24]], [all planar Y/YUV formats (8/10/12/14/16bit) are supported]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|neo_f3kdb (clip, int &amp;quot;range&amp;quot;, int &amp;quot;Y&amp;quot;, int &amp;quot;Cb&amp;quot;, int &amp;quot;Cr&amp;quot;, int &amp;quot;grainY&amp;quot;, int &amp;quot;grainC&amp;quot;, int &amp;quot;sample_mode&amp;quot;, int &amp;quot;seed&amp;quot;, bool &amp;quot;blur_first&amp;quot;, bool &amp;quot;dynamic_grain&amp;quot;, int &amp;quot;opt&amp;quot;, bool &amp;quot;mt&amp;quot;, int &amp;quot;dither_algo&amp;quot;, bool &amp;quot;keep_tv_range&amp;quot;, int &amp;quot;output_depth&amp;quot;, int &amp;quot;random_algo_ref&amp;quot;, int &amp;quot;random_algo_grain&amp;quot;, float &amp;quot;random_param_ref&amp;quot;, float &amp;quot;random_param_grain&amp;quot;, string &amp;quot;preset&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2| |clip| }}&lt;br /&gt;
:::Input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|range|int|15}}&lt;br /&gt;
:::Banding detection range.&lt;br /&gt;
:::*Default: 15&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|Y|int|64}}&lt;br /&gt;
::{{Par2|Cb|int|64}}&lt;br /&gt;
::{{Par2|Cr|int|64}}&lt;br /&gt;
:::Banding detection threshold for respective plane. If difference between current pixel and reference pixel is less than threshold, it will be considered as banded.&lt;br /&gt;
:::*Default: 64&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|grainY|int|64}}&lt;br /&gt;
::{{Par2|grainC|int|64}}&lt;br /&gt;
:::Specifies amount of grains added in the last debanding stage.&lt;br /&gt;
:::*Default: 64&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|sample_mode|int|2}}&lt;br /&gt;
:::Valid modes are:&lt;br /&gt;
:::* 1: Take 2 pixels as reference pixel. Reference pixels are in the same column of current pixel. Add grain after processing.&lt;br /&gt;
:::* 2: Take 4 pixels as reference pixel. Reference pixels are in the square around current pixel. Add grain after processing.&lt;br /&gt;
:::* 3: Row references.&lt;br /&gt;
:::* 4: Average of sample mode 1 and 3. &lt;br /&gt;
:::* Default: 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|seed|int|}}&lt;br /&gt;
:::Seed for random number generation.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|blur_first|bool|true}}&lt;br /&gt;
:::*true: Current pixel is compared with average value of all pixels.&lt;br /&gt;
:::*false: Current pixel is compared with all pixels. The pixel is considered as banded pixel only if all differences are less than threshold.&lt;br /&gt;
:::*Default: true&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|dynamic_grain|bool|false}}&lt;br /&gt;
:::Use different grain pattern for each frame.&lt;br /&gt;
:::*Default: false&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|opt|int|-1}}&lt;br /&gt;
:::Specifies optimization mode.&lt;br /&gt;
:::*-1: Use highest optimization mode that is supported by host CPU&lt;br /&gt;
:::*0: No optimization (Intended for testing only)&lt;br /&gt;
:::*1: SSE2 (Pentium 4, AMD K8)&lt;br /&gt;
:::*2: SSSE3 (Core 2)&lt;br /&gt;
:::*3: SSE4.1 (Core 2 45nm)&lt;br /&gt;
:::*Default: -1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|dither_algo|int|}}&lt;br /&gt;
:::*1: No dithering, LSB is truncated&lt;br /&gt;
:::*2: Ordered dithering&lt;br /&gt;
:::*3: Floyd-Steinberg dithering&lt;br /&gt;
&lt;br /&gt;
::::Notes:&lt;br /&gt;
::::Visual quality of mode 3 is the best, but the debanded pixels may easily be destroyed by x264, you need to carefully tweak the settings to get better result.&lt;br /&gt;
&lt;br /&gt;
::::Mode 1 and mode 2 don’t look the best, but if you are encoding at low bitrate, they may be better choice since the debanded pixels is easier to survive encoding, mode 3 may look worse than 1/2 after encoding in this situation.&lt;br /&gt;
&lt;br /&gt;
::::This parameter is ignored if output_depth = 16.&lt;br /&gt;
&lt;br /&gt;
:::Default: 3&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|keep_tv_range|bool|false}}&lt;br /&gt;
:::If set to true, all processed pixels will be clamped to TV range (luma: 16 ~ 235, chroma: 16 ~ 240).&lt;br /&gt;
&lt;br /&gt;
::::*It is recommended to set this to true for TV-range videos, since pixel values may overflow/underflow after dithering.&lt;br /&gt;
::::*DON’T set this to true for full-range videos, as all out-of-range pixels will be clamped to TV range.&lt;br /&gt;
&lt;br /&gt;
:::*Default: false&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|output_depth|int|}}&lt;br /&gt;
:::Specify output bit-depth.&lt;br /&gt;
:::If output_depth = 16, dither algorithm specified by dither_algo won’t be applied.&lt;br /&gt;
:::Range: 8 ~ 16&lt;br /&gt;
:::*Default: 8 (output_mode = 0 or not specified) / 16 (output_mode = 1 or 2)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|random_algo_ref|int|1}}&lt;br /&gt;
::{{Par2|random_algo_grain|int|1}}&lt;br /&gt;
:::Choose random number algorithm for reference positions / grains.&lt;br /&gt;
:::*0: Algorithm in old versions&lt;br /&gt;
:::*1: Uniform distribution&lt;br /&gt;
:::*2: Gaussian distribution&lt;br /&gt;
:::**(StdDev (sigma) is settable through random_param_ref / random_param_grain, Only values in [-1.0, 1.0] is used for multiplication, numbers outside this range are simply ignored)&lt;br /&gt;
:::Default: 1 / 1&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|random_param_ref|float|1.0}}&lt;br /&gt;
::{{Par2|random_param_grain|float|1.0}}&lt;br /&gt;
:::Parameter for the respective random number generator. Currently only have effect for the Gaussian generator.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|preset|string|}}&lt;br /&gt;
:::Use preset parameters. Preset will be applied before other parameters so that you can easily override individual parameter.&lt;br /&gt;
::::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;; width=&amp;quot;400px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!!width=&amp;quot;200px&amp;quot;| Name&lt;br /&gt;
!!width=&amp;quot;200px&amp;quot;| Parameters&lt;br /&gt;
|-&lt;br /&gt;
|depth&lt;br /&gt;
|y=0/cb=0/cr=0/grainy=0/grainc=0&lt;br /&gt;
|-&lt;br /&gt;
|low&lt;br /&gt;
|y=32/cb=32/cr=32/grainy=32/grainc=32&lt;br /&gt;
|-&lt;br /&gt;
|medium&lt;br /&gt;
|y=48/cb=48/cr=48/grainy=48/grainc=48&lt;br /&gt;
|-&lt;br /&gt;
|high&lt;br /&gt;
|y=64/cb=64/cr=64/grainy=64/grainc=64&lt;br /&gt;
|-&lt;br /&gt;
|veryhigh&lt;br /&gt;
|y=80/cb=80/cr=80/grainy=80/grainc=80&lt;br /&gt;
|-&lt;br /&gt;
|nograin&lt;br /&gt;
|grainy=0/grainc=0&lt;br /&gt;
|-&lt;br /&gt;
|luma&lt;br /&gt;
|cb=0/cr=0/grainc=0&lt;br /&gt;
|-&lt;br /&gt;
|chroma&lt;br /&gt;
|y=0/grainy=0&lt;br /&gt;
|}&lt;br /&gt;
:::Presets can also be combined together, for example “medium/nograin” is the same as y=48/cb=48/cr=48/grainy=0/grainc=0 .&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples == &lt;br /&gt;
neo_f3kdb with default settings:&lt;br /&gt;
 [[AviSource]](&amp;quot;blah.avi&amp;quot;)&lt;br /&gt;
 neo_f3kdb()&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
 Version      Date            Changes&amp;lt;br&amp;gt;&lt;br /&gt;
 r5v2         2020/04/13      - Latest release          &lt;br /&gt;
 r2           2019/09/20      - Add sample_mode 3 and 4.&amp;lt;br&amp;gt;&lt;br /&gt;
 r1           2019/09/03      - Added AviSynth+ native high bit depth, based on 2.0 branch.&lt;br /&gt;
                              - Supporting YUV4xxP8/P10/P12/P14/P16 and I420.&lt;br /&gt;
                              - Dropped support for legacy AviSynth versions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== External Links ==&lt;br /&gt;
*[https://github.com/HomeOfAviSynthPlusEvolution/neo_f3kdb GitHub] - Source code repository.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[External_filters#Debanding|External Filters]] &amp;amp;larr;'''&lt;br /&gt;
-----------------------------------------------&lt;/div&gt;</summary>
		<author><name>Reel.Deal</name></author>	</entry>

	</feed>