<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.avisynth.nl/index.php?action=history&amp;feed=atom&amp;title=MaskTools%2FChangelog</id>
	<title>MaskTools/Changelog - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://www.avisynth.nl/index.php?action=history&amp;feed=atom&amp;title=MaskTools%2FChangelog"/>
	<link rel="alternate" type="text/html" href="http://www.avisynth.nl/index.php?title=MaskTools/Changelog&amp;action=history"/>
	<updated>2026-09-12T09:55:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>http://www.avisynth.nl/index.php?title=MaskTools/Changelog&amp;diff=7877&amp;oldid=prev</id>
		<title>Reel.Deal: typos</title>
		<link rel="alternate" type="text/html" href="http://www.avisynth.nl/index.php?title=MaskTools/Changelog&amp;diff=7877&amp;oldid=prev"/>
		<updated>2015-12-15T12:49:48Z</updated>

		<summary type="html">&lt;p&gt;typos&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:49, 15 December 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l24&quot;&gt;Line 24:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 24:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1.5.1&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1.5.1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Complete &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rewritting &lt;/del&gt;of the documentation (a huge thanks to Wilbert).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Complete &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rewriting &lt;/ins&gt;of the documentation (a huge thanks to Wilbert).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* DEdgeMask now supports a float divisor. However, if the divisor is integer, it &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039; be faster.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* DEdgeMask now supports a float divisor. However, if the divisor is integer, it &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039; be faster.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* DEdgeMask now has back its parameter &amp;quot;setdivisor&amp;quot;, but it&amp;#039;s only for backward compatibility with some scripts.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* DEdgeMask now has back its parameter &amp;quot;setdivisor&amp;quot;, but it&amp;#039;s only for backward compatibility with some scripts.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* YV12LUTxy : it&#039;s a new filter, implementing the idea presented by &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Didee &lt;/del&gt;on the previous post. The &quot;y&quot; symbol has the value of the collocated pixel in the second clip.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* YV12LUTxy : it&#039;s a new filter, implementing the idea presented by &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Didée &lt;/ins&gt;on the previous post. The &quot;y&quot; symbol has the value of the collocated pixel in the second clip.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1.4.16&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1.4.16&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l34&quot;&gt;Line 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1.4.15.3&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1.4.15.3&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* RGBLUT added : works the same as YV12LUT ( except R, G and B replace Y, U and V ). In addition, you can specify an AMP file (arbitrary color mapping file format from &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;photoshop&lt;/del&gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* RGBLUT added : works the same as YV12LUT ( except R, G and B replace Y, U and V ). In addition, you can specify an AMP file (arbitrary color mapping file format from &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Photoshop&lt;/ins&gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1.4.15.2&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1.4.15.2&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Bug finally solved on YV12LUT. Silly programming bug, as always...&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Bug finally solved on YV12LUT. Silly programming bug, as always...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* In YV12LUT, logical and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;relationnal &lt;/del&gt;operators added ( &amp;lt;, &amp;lt;=, &amp;gt;, &amp;gt;=, ==, !=, &amp;amp;, !&amp;amp;, |, ° ( xor ) )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* In YV12LUT, logical and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;relational &lt;/ins&gt;operators added ( &amp;lt;, &amp;lt;=, &amp;gt;, &amp;gt;=, ==, !=, &amp;amp;, !&amp;amp;, |, ° ( xor ) )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* In YV12LUT, a ternary operator added : ? ( works as in C )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* In YV12LUT, a ternary operator added : ? ( works as in C )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l59&quot;&gt;Line 59:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 59:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Bugfix : In YV12Layer, a useless test could prevent the filter to work. The test has been removed&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Bugfix : In YV12Layer, a useless test could prevent the filter to work. The test has been removed&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Bugfix : In DEdgeMask, threshold weren&amp;#039;t taken into account. They are now&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Bugfix : In DEdgeMask, threshold weren&amp;#039;t taken into account. They are now&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Bugfix : Logic filter is now fully &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;functionnal&lt;/del&gt;, in C and MMX&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Bugfix : Logic filter is now fully &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;functional&lt;/ins&gt;, in C and MMX&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Added : documentation to Logic filter&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Added : documentation to Logic filter&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Added : two modes for Logic : &amp;quot;Min&amp;quot; and &amp;quot;Max&amp;quot; ( C, MMX, iSSE )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Added : two modes for Logic : &amp;quot;Min&amp;quot; and &amp;quot;Max&amp;quot; ( C, MMX, iSSE )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l74&quot;&gt;Line 74:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 74:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Behavior modifications : MotionMask and EdgeMask now also computes pixels on the borders mainly by extending the mask to these pixels.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Behavior modifications : MotionMask and EdgeMask now also computes pixels on the borders mainly by extending the mask to these pixels.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Bugfix : Inflate / Inpand / Expand / Deflate, when using negative parameters for y,u and v,  some weird problems could occur.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Bugfix : Inflate / Inpand / Expand / Deflate, when using negative parameters for y,u and v,  some weird problems could occur.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Added &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;functionnality &lt;/del&gt;: In YV12LUT, the function abs is now defined.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Added &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;functionality &lt;/ins&gt;: In YV12LUT, the function abs is now defined.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1.4.11&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1.4.11&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l100&quot;&gt;Line 100:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 100:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1.4.6&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1.4.6&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Made the scenechange detection in MotionDetection iSSE optimized ( meaning you need an Athlon XP / Pentium IV ). It works with an Athlon XP, it is not tested with an Pentium IV, it is possible to disable it by using usemmx = false in the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;paremeters &lt;/del&gt;of the filter.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Made the scenechange detection in MotionDetection iSSE optimized ( meaning you need an Athlon XP / Pentium IV ). It works with an Athlon XP, it is not tested with an Pentium IV, it is possible to disable it by using usemmx = false in the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;parameters &lt;/ins&gt;of the filter.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Optimized the calculation of the motion, without using MMX ( just by avoiding to do 3 times the same calculations... ). So the filter should be more or less three times faster.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Optimized the calculation of the motion, without using MMX ( just by avoiding to do 3 times the same calculations... ). So the filter should be more or less three times faster.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l139&quot;&gt;Line 139:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 139:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1.0.2 (last version - public project dropped):&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 1.0.2 (last version - public project dropped):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Fix the shift for edgemask using &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sobel &lt;/del&gt;and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;roberts &lt;/del&gt;(misplaced MMX instruction)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* Fix the shift for edgemask using &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Sobel &lt;/ins&gt;and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Roberts &lt;/ins&gt;(misplaced MMX instruction)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* MaskMerge now works (mask cleared before being used... check with MaskMerge(clip3,clip3) for instance)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:* MaskMerge now works (mask cleared before being used... check with MaskMerge(clip3,clip3) for instance)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Reel.Deal</name></author>
	</entry>
	<entry>
		<id>http://www.avisynth.nl/index.php?title=MaskTools/Changelog&amp;diff=197&amp;oldid=prev</id>
		<title>Admin: 1 revision</title>
		<link rel="alternate" type="text/html" href="http://www.avisynth.nl/index.php?title=MaskTools/Changelog&amp;diff=197&amp;oldid=prev"/>
		<updated>2013-05-09T15:02:00Z</updated>

		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{FilterCat|External_filters|Other_filters|Support_filters}}&lt;br /&gt;
&lt;br /&gt;
Back to [[MaskTools]].&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* 1.5.8 - 8th August 2005&lt;br /&gt;
:* Added DEdgeMask2.&lt;br /&gt;
&lt;br /&gt;
* 1.5.7&lt;br /&gt;
:* Added YUY2LUT.&lt;br /&gt;
&lt;br /&gt;
* 1.5.6&lt;br /&gt;
:* Corrected chroma handling of YV12LUTxy.&lt;br /&gt;
&lt;br /&gt;
* v1.5.5 - 6 November 2004&lt;br /&gt;
:* Version with binarize working;&lt;br /&gt;
:* Pentium4 with HT enabled.&lt;br /&gt;
&lt;br /&gt;
* v1.5.4 - 14 October 2004&lt;br /&gt;
:* A lot of filters which were working in place aren&amp;#039;t anymore (because of an AviSynth strangeness which was causing slowdowns). Before, a filter such as YV12LUT, with U = V = 1, would have had it&amp;#039;s chroma left untouched. Now, if you want to preserve the chroma, you have to specify U = V = 2, as it is said in the documentation.&lt;br /&gt;
&lt;br /&gt;
* 1.5.2 - 1.5.3&lt;br /&gt;
:* ?&lt;br /&gt;
&lt;br /&gt;
* 1.5.1&lt;br /&gt;
:* Complete rewritting of the documentation (a huge thanks to Wilbert).&lt;br /&gt;
:* DEdgeMask now supports a float divisor. However, if the divisor is integer, it &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039; be faster.&lt;br /&gt;
:* DEdgeMask now has back its parameter &amp;quot;setdivisor&amp;quot;, but it&amp;#039;s only for backward compatibility with some scripts.&lt;br /&gt;
:* YV12LUTxy : it&amp;#039;s a new filter, implementing the idea presented by Didee on the previous post. The &amp;quot;y&amp;quot; symbol has the value of the collocated pixel in the second clip.&lt;br /&gt;
&lt;br /&gt;
* 1.4.16&lt;br /&gt;
:* Bugfixes : Logic &amp;quot;min&amp;quot; &amp;amp; &amp;quot;max&amp;quot; modes weren&amp;#039;t properly working, it&amp;#039;s corrected.&lt;br /&gt;
:* Bugfixes : Logic &amp;amp; Subtract weren&amp;#039;t using MMX &amp;amp; iSSE optimizations, due to a very silly bug. It&amp;#039;s corrected.&lt;br /&gt;
&lt;br /&gt;
* 1.4.15.3&lt;br /&gt;
:* RGBLUT added : works the same as YV12LUT ( except R, G and B replace Y, U and V ). In addition, you can specify an AMP file (arbitrary color mapping file format from photoshop).&lt;br /&gt;
&lt;br /&gt;
* 1.4.15.2&lt;br /&gt;
:* Bug finally solved on YV12LUT. Silly programming bug, as always...&lt;br /&gt;
:* In YV12LUT, logical and relationnal operators added ( &amp;lt;, &amp;lt;=, &amp;gt;, &amp;gt;=, ==, !=, &amp;amp;, !&amp;amp;, |, ° ( xor ) )&lt;br /&gt;
:* In YV12LUT, a ternary operator added : ? ( works as in C )&lt;br /&gt;
&lt;br /&gt;
* 1.4.15.1&lt;br /&gt;
:* In YV12LUT, another bug which was still preventing it from working fine. Hopefully, it should really work now.&lt;br /&gt;
&lt;br /&gt;
* 1.4.15&lt;br /&gt;
:* New Filter : HysteresyMask. It will allow you to build a new edge mask from two edge masks, one only having a few edges ( but we&amp;#039;re sure they indeed are edges ), the other having two much edges ( due to a too low thresholding for example ). Look in the documentation to have further explanations.&lt;br /&gt;
&lt;br /&gt;
* 1.4.14.2&lt;br /&gt;
:* Several bugfixes concerning the behavior of negative values for Y, U and V ( edgemask, dedgemask, motionmask, combmask, logic )&lt;br /&gt;
:* Several bugfixes concerning the use of offX / offY / w and h ( filters than can use it are : maskedmerge, binarize, expand, YV12subtract, yv12lut )&lt;br /&gt;
:* In YV12LUT, a bug prevented to use it with some filter. It should work now.&lt;br /&gt;
:* In YV12Convolution, float coefficients can be used now. If none is used, all the processing will take place with integer, so it will be faster than if you use a float. Moreover, if there is the possibility of overflow ( giving a result over 255 or under 0 ) during computation, a slower but safe function will be used to saturate computation to 0 and 255.&lt;br /&gt;
&lt;br /&gt;
* 1.4.14.1&lt;br /&gt;
:* Bugfix in YV12LUT to allow the use of negative numbers&lt;br /&gt;
&lt;br /&gt;
* 1.4.14&lt;br /&gt;
:* Bugfix : In YV12Layer, a useless test could prevent the filter to work. The test has been removed&lt;br /&gt;
:* Bugfix : In DEdgeMask, threshold weren&amp;#039;t taken into account. They are now&lt;br /&gt;
:* Bugfix : Logic filter is now fully functionnal, in C and MMX&lt;br /&gt;
:* Added : documentation to Logic filter&lt;br /&gt;
:* Added : two modes for Logic : &amp;quot;Min&amp;quot; and &amp;quot;Max&amp;quot; ( C, MMX, iSSE )&lt;br /&gt;
:* Added : In DEdgeMask, the possibility to set the normalization factor&lt;br /&gt;
:* Corrected : documentation.&lt;br /&gt;
&lt;br /&gt;
* 1.4.13&lt;br /&gt;
:* Bugfix : One more, in the MotionMask ( the last row was not correctly computed )&lt;br /&gt;
:* Optimizations : MaskedMerge gives now the same output in MMX and C, so MMX optimizations for it are back by default.&lt;br /&gt;
:* Added : In EdgeMask, you now can use the laplace kernel. See the documentation on that filter&lt;br /&gt;
:* Added : &amp;#039;New&amp;#039; filter, DEdgeMask, which allows you to choose your kernel ( at a cost :  speed )&lt;br /&gt;
&lt;br /&gt;
* 1.4.12&lt;br /&gt;
:* Behavior modifications : MotionMask and EdgeMask now also computes pixels on the borders mainly by extending the mask to these pixels.&lt;br /&gt;
:* Bugfix : Inflate / Inpand / Expand / Deflate, when using negative parameters for y,u and v,  some weird problems could occur.&lt;br /&gt;
:* Added functionnality : In YV12LUT, the function abs is now defined.&lt;br /&gt;
&lt;br /&gt;
* 1.4.11&lt;br /&gt;
:* Bugfix : EdgeMask, MMX optimizations give different results. They are disabled by default. To activate them, use usemmx = true. They&amp;#039;ll be used only with mod 16 resolution&lt;br /&gt;
:* Bugfix : EdgeMask : first and last lines weren&amp;#039;t always computed. &lt;br /&gt;
:* Bugfix : MaskedMerge : MMX optimizations darken slightly the picture. They are disabled by default. To activate them, use usemmx = true. They&amp;#039;ll be used only with mod 16 resolution.&lt;br /&gt;
&lt;br /&gt;
* 1.4.10&lt;br /&gt;
:* Bugfix : first and last lines were not correctly computed with inflate / deflate&lt;br /&gt;
:* Invert is no longer a filter of the Masktools, it has been moved inside AviSynth.&lt;br /&gt;
&lt;br /&gt;
* 1.4.9&lt;br /&gt;
:* New filter : CombMask. As usual, read further for more documentation&lt;br /&gt;
&lt;br /&gt;
1.4.8&lt;br /&gt;
:* YV12Convolution now supports negative coefficients in the matrix. It allows to use the filter has an edge detecter.&lt;br /&gt;
:* YV12Convolution has now a new parameter : bool saturate, which, if set to true,  or if there is a possibility of getting out of the range [0..255] during calculation, clips each pixel into that range ( which means it&amp;#039;s slightly slower )&lt;br /&gt;
:* A new filter : LUT. Read further for more information on how to use it.&lt;br /&gt;
&lt;br /&gt;
* 1.4.7&lt;br /&gt;
:* Rename MotionDetection to MotionMask. I know it&amp;#039;s kind of silly, but it&amp;#039;s a lot more logical that way.&lt;br /&gt;
:* Add the check of the width for the use MMX in MotionMask&lt;br /&gt;
:* Slightly modify MMX optimizations in Binarize.&lt;br /&gt;
:* Add a new filter : YV12Convolution. It allows you to convole the picture by a matrix of (almost) any size. Look further in the readme to learn how to use it&lt;br /&gt;
&lt;br /&gt;
* 1.4.6&lt;br /&gt;
:* Made the scenechange detection in MotionDetection iSSE optimized ( meaning you need an Athlon XP / Pentium IV ). It works with an Athlon XP, it is not tested with an Pentium IV, it is possible to disable it by using usemmx = false in the paremeters of the filter.&lt;br /&gt;
:* Optimized the calculation of the motion, without using MMX ( just by avoiding to do 3 times the same calculations... ). So the filter should be more or less three times faster.&lt;br /&gt;
&lt;br /&gt;
* 1.4.5&lt;br /&gt;
:* Added MotionDetection filter, no MMX / assembler optimizations for it yet. Look further in the Readme to learn how to use it. It takes the idea of Sansgrip&amp;#039;s filter (NoMoSmooth) and outputs the motion mask directly in the correct colorspace for the MaskTools.&lt;br /&gt;
&lt;br /&gt;
* 1.4.4&lt;br /&gt;
:* Reactivated MMX optimizations for MaskedMerge&lt;br /&gt;
:* Came back to Kurosu&amp;#039;s optimizations for Invert&lt;br /&gt;
&lt;br /&gt;
* 1.4.3&lt;br /&gt;
:* Made some MMX optimizations ( binarize, invert )&lt;br /&gt;
:* Corrected some MMX optimizations ( which means mostly &amp;#039;disabled some MMX optimizations&amp;#039; ). It should now work with P4.&lt;br /&gt;
&lt;br /&gt;
* 1.4.2&lt;br /&gt;
:* Fixed bugs concerning the inpand / expand / inflate / deflate functions&lt;br /&gt;
&lt;br /&gt;
* 1.4.1&lt;br /&gt;
:* Fixed the dreadly bug &amp;quot;multiple instances of a filter with different functions needed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* 1.4.0&lt;br /&gt;
:* Added an experimental LUT filter. Not tested, debug later.&lt;br /&gt;
&lt;br /&gt;
* 1.3.0 (private version)&lt;br /&gt;
:* Made usable the FitPlane function (still an overload of work when only one plane has to be resized) which was previously undocumented; therefore, added FastFitPlane functions (corresponding FitPlane ones should be useless now, except for the resizers settings)&lt;br /&gt;
:* Allowed the specification of a processing area for many filters; however, this should not produce any noticable speed increase.&lt;br /&gt;
:* Cleaned YV12Layer (in particular the unusable &amp;quot;Darken&amp;quot;/&amp;quot;Lighten&amp;quot; modes)&lt;br /&gt;
:* Added OverlayMask, a function that compares 2 clips, and outputs a mask of the parts that are identical (slow and far from perfect).&lt;br /&gt;
&lt;br /&gt;
* 1.2.0 (private version)&lt;br /&gt;
:* YV12Layer: no more useless RGB32 conversion! Approximately the same as Arithmetic (except a third clip is not used), so that one is gone...&lt;br /&gt;
:* YV12Substract: hey, why only a C version? Masks are really an underused feature of AviSynth |-[&lt;br /&gt;
&lt;br /&gt;
* 1.1.0 (private version)&lt;br /&gt;
:* Older inflate/deflate are renamed expand/inpand while newer functions replace them&lt;br /&gt;
:* Logic and Arithmetic functions added (shouldn&amp;#039;t produce the expected results because of no debugging)&lt;br /&gt;
:* Edgemask now takes 4 thresholds (2 for luma and 2 for chroma). They are used for: setting to 0 or leaving as is a value depending on first threshold,  setting to 255 or leaving as is a value depending on the second one.&lt;br /&gt;
&lt;br /&gt;
* 1.0.2 (last version - public project dropped):&lt;br /&gt;
:* Fix the shift for edgemask using sobel and roberts (misplaced MMX instruction)&lt;br /&gt;
:* MaskMerge now works (mask cleared before being used... check with MaskMerge(clip3,clip3) for instance)&lt;br /&gt;
&lt;br /&gt;
* 1.0.1&lt;br /&gt;
: Initial release &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Back to [[MaskTools]].&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>