<?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=FRebuild</id>
		<title>FRebuild - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://avisynth.nl/index.php?action=history&amp;feed=atom&amp;title=FRebuild"/>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php?title=FRebuild&amp;action=history"/>
		<updated>2026-04-08T01:18:01Z</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=FRebuild&amp;diff=7114&amp;oldid=prev</id>
		<title>Raffriff42: link fix</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php?title=FRebuild&amp;diff=7114&amp;oldid=prev"/>
				<updated>2015-11-12T07:02:56Z</updated>
		
		<summary type="html">&lt;p&gt;link fix&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 07:02, 12 November 2015&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&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;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;== Requires Filters ==&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;== Requires Filters ==&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;*[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;GRunt&lt;/del&gt;]]&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;GRunT&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;*[[MaskTools2]]&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;*[[MaskTools2]]&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;*[[Zoom]]&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;*[[Zoom &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(Filter)&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;/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;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;==Parameters==&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;==Parameters==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Raffriff42</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php?title=FRebuild&amp;diff=257&amp;oldid=prev</id>
		<title>Admin: 1 revision</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php?title=FRebuild&amp;diff=257&amp;oldid=prev"/>
				<updated>2013-05-09T15:02:02Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:02, 9 May 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php?title=FRebuild&amp;diff=256&amp;oldid=prev</id>
		<title>Wilbert at 20:29, 3 September 2012</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php?title=FRebuild&amp;diff=256&amp;oldid=prev"/>
				<updated>2012-09-03T20:29:57Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{FilterCat|External_filters|Restoration_filters|Temporal_Sharpening}}&lt;br /&gt;
{{Filter|martin53|1.0e|[[Media:frebuild.avsi|frebuild.avsi]]|Temporal_Sharpeners|&lt;br /&gt;
|}}&lt;br /&gt;
{{Template:FuncDef|        FRebuild(clip source, int ''mode'', float ''thresholdCF'', float ''thresholdI'') }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
[[FRebuild]] is mainly intended for amateur video clips. These clips may show short loss of detail during 'shaky' camera movement. FRebuild restores these frames by neighbor frames. Three motion compensation methods are implemented and are automatically chosen. Runtime environment is used heavily. The filter is also useful against  compression artifacts during high motion for overly compressed clips.&lt;br /&gt;
However, since no 3D modeling is used, the replacement may be visible in pan scenes with different fore- and background. Also, partial movements, e.g. a waving person, are not or not perfectly restored.&lt;br /&gt;
&lt;br /&gt;
You may cascade calls of the internal functions and add new modes. See the end of the function source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Important notes: Expect not more than a few FPS. FRebuild defines two runtime functions as global string variables. Avoid reuse of these global names.&lt;br /&gt;
&lt;br /&gt;
== Requires Filters ==&lt;br /&gt;
*[[GRunt]]&lt;br /&gt;
*[[MaskTools2]]&lt;br /&gt;
*[[Zoom]]&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
{{Par|mode|int|optional}}&lt;br /&gt;
Chooses the restoration mode.&lt;br /&gt;
: 1 - 1 pass    FreezeFrame.&lt;br /&gt;
: 2 - 2 pass    1st pass FreezeFrame, 2nd pass MCompensate with a maximum distance of 2 and FreezeFrame for frames MCompensate could not fix (default, compromise between quality and speed)&lt;br /&gt;
: 3 - 3 pass    1st pass FreezeFrame, 2nd pass MCompensate/FreezeFrame with distance 2, 3rd pass MCompensate/FreezeFrame with distance 3. (Useful for very bad sources)&lt;br /&gt;
: 4 - 1 pass    MFlowInter motion compensation from two frames, one before and the other after the bad frame.&lt;br /&gt;
&lt;br /&gt;
A FreezeFrame call can restore to a maximum distance of +/- 1 frame. Otherwise, the monotonic sequence of frames would not be guaranteed. So, if a shaky sequence is 6 frames long, one FreezeFrame call will not show a complete repair.&lt;br /&gt;
&lt;br /&gt;
A MCompensate call can restore to a maximum distance of +/- 4 frames. However, this limit is not used to full extent in mode 2. Usually, frames with that distance are already so diferent, that only a small part of the bad frame can be recovered. In that case, it is better to cascade several passes and thus restore detail toward the center of the sequence.&lt;br /&gt;
&lt;br /&gt;
A MFlowInter call can restore to a maximum distance of +4/-3 frames. I found that, in contrast to the expectations, MFlowInter dos not frequently recover frames. So it is here for completeness.&lt;br /&gt;
&lt;br /&gt;
{{Par|thresholdCF|float|optional, default 1.05}}&lt;br /&gt;
 This is the minimum detail gain to replace an original frame with MCompensate/FreezeFrame. If the replacement frame is not better, then the original frame is not replaced.&lt;br /&gt;
&lt;br /&gt;
{{Par|thresholdI|float|optional}}&lt;br /&gt;
 This is the minimum detail gain to replace an original frame with MFlowInter. If the replacement frame is not better, then the original frame is not replaced.&lt;br /&gt;
&lt;br /&gt;
== Examples== &lt;br /&gt;
&lt;br /&gt;
source with short shakes/blurs&lt;br /&gt;
 FRebuild()&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*[http://forum.doom9.org/ Discussion thread] at [http://forum.doom9.org/ Doom9's Forum]&lt;/div&gt;</summary>
		<author><name>Wilbert</name></author>	</entry>

	</feed>