<?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/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Meru</id>
		<title>Avisynth wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://avisynth.nl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Meru"/>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/Special:Contributions/Meru"/>
		<updated>2026-06-10T09:27:49Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.24</generator>

	<entry>
		<id>http://avisynth.nl/index.php/DGDecode/MPEG2Source</id>
		<title>DGDecode/MPEG2Source</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/DGDecode/MPEG2Source"/>
				<updated>2015-06-15T20:11:21Z</updated>
		
		<summary type="html">&lt;p&gt;Meru: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat|External_filters|Plugin_functions|Source_filters}}&lt;br /&gt;
&lt;br /&gt;
'''Back to [[DGDecode]] &amp;amp;larr;'''&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
Frame accurate MPEG1/2 decoder. Official documentation: http://rationalqm.us/dgmpgdec/DGDecodeManual.html &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|MPEG2Source (''string d2v'', ''int'' &amp;quot;idct&amp;quot;, ''int'' &amp;quot;cpu&amp;quot;, ''bool'' &amp;quot;iPP&amp;quot;, ''int'' &amp;quot;moderate_h&amp;quot;, ''int'' &amp;quot;moderate_v&amp;quot;, ''string'' &amp;quot;cpu2&amp;quot;, ''int'' &amp;quot;upConv&amp;quot;, ''bool'' &amp;quot;iCC&amp;quot;, ''bool'' &amp;quot;i420&amp;quot;, ''int'' &amp;quot;info&amp;quot;, ''bool'' &amp;quot;showQ&amp;quot;, ''bool'' &amp;quot;fastMC&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|d2v|string| &amp;quot; &amp;quot;}}&lt;br /&gt;
:::DGIndex Project File [Required]&lt;br /&gt;
:::'''Note:''' PATH can be ignored if &amp;quot;project.d2v&amp;quot; is in the same directory as your AviSynth (*.avs) script.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|idct|int|0}}&lt;br /&gt;
:::iDCT Algorithm.&lt;br /&gt;
:::For more infomation on iDCTs please see iDCT Algorithm Notes. Please see SIMD Instructions for supported CPUs.&lt;br /&gt;
::::*0 : Use value specified by DGIndex&lt;br /&gt;
::::*1 : 32-bit [[MMX]]&lt;br /&gt;
::::*2 : 32-bit [[SSE]][[MMX]]&lt;br /&gt;
::::*3 : 32-bit [[SSE2]][[MMX]]&lt;br /&gt;
::::*4 : 64-bit Floating Point&lt;br /&gt;
::::*5 : 64-bit IEEE-1180 Reference&lt;br /&gt;
::::*6 : 32-bit SSEMMX (Skal)&lt;br /&gt;
::::*7 : 32-bit Simple MMX (XviD)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|cpu|int|0}}&lt;br /&gt;
:::Post-Processing Quickset Options.&lt;br /&gt;
:::(Y=luma, C=chroma, H=horizontal, V=vertical)&lt;br /&gt;
::::*0 : DISABLE POST-PROCESSING&lt;br /&gt;
::::*1 : DEBLOCK_Y_H&lt;br /&gt;
::::*2 : DEBLOCK_Y_H, DEBLOCK_Y_V&lt;br /&gt;
::::*3 : DEBLOCK_Y_H, DEBLOCK_Y_V, DEBLOCK_C_H&lt;br /&gt;
::::*4 : DEBLOCK_Y_H, DEBLOCK_Y_V, DEBLOCK_C_H, DEBLOCK_C_V&lt;br /&gt;
::::*5 : DEBLOCK_Y_H, DEBLOCK_Y_V, DEBLOCK_C_H, DEBLOCK_C_V, DERING_Y&lt;br /&gt;
::::*6 : DEBLOCK_Y_H, DEBLOCK_Y_V, DEBLOCK_C_H, DEBLOCK_C_V, DERING_Y, DERING_C&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|iPP|bool|auto}}&lt;br /&gt;
:::Post-Processing Mode.&lt;br /&gt;
:::DGDecode automatically uses the PROGRESSIVE_FRAME flag to switch between field/frame based post-processing on a per-frame-basis.&lt;br /&gt;
:::You should only specify the iPP parameter if you want to force DGDecode to use a particular post-processing mode.&lt;br /&gt;
::::*[unspecified] : follow the PROGRESSIVE_FRAME flag&lt;br /&gt;
::::*true : force field-based (interlaced) post-processing&lt;br /&gt;
::::*false : force frame-based (progressive) post-processing&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|moderate_h|int|20}}&lt;br /&gt;
::{{Par2|moderate_v|int|40}}&lt;br /&gt;
:::Horizontal and Vertical Block Detection Sensitivity. Smaller values are stronger, use with care.&lt;br /&gt;
:::Range: 0 to 255&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|cpu2|string| &amp;quot; &amp;quot;}}&lt;br /&gt;
:::Post-Processing Custom Options.&lt;br /&gt;
:::Specify a six character string of x's and o's according to list below. (case-insensitive)&lt;br /&gt;
:::Each &amp;quot;x&amp;quot; enables the corresponding post-processing feature.&lt;br /&gt;
:::Each &amp;quot;o&amp;quot; disables the corresponding post-processing feature.&lt;br /&gt;
::::*character 1 : luma horizontal deblocking&lt;br /&gt;
::::*character 2 : luma vertical deblocking&lt;br /&gt;
::::*character 3 : chroma horizontal deblocking&lt;br /&gt;
::::*character 4 : chroma vertical deblocking&lt;br /&gt;
::::*character 5 : luma deringing&lt;br /&gt;
::::*character 6 : chroma deringing&lt;br /&gt;
:::For example, to enable chroma-only post-processing use:&lt;br /&gt;
:::&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, cpu2=&amp;quot;ooxxox&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|upConv|int|0}}&lt;br /&gt;
:::Upsample from 4:2:0 to YUY2 (4:2:2) or RGB24.&lt;br /&gt;
::::*0 : Do not upsample&lt;br /&gt;
::::*1 : Upsample to [[YUY2]] (ignored if input is already 4:2:2)&lt;br /&gt;
::::*2 : Upsample to [[RGB24]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|iCC|bool|auto}}&lt;br /&gt;
:::Upsampling Mode.&lt;br /&gt;
:::DGDecode automatically uses the PROGRESSIVE_FRAME flag to switch between field/frame based upsampling on a per-frame-basis.&lt;br /&gt;
:::You should '''''only''''' specify the iCC parameter if you want to force DGDecode to use a particular upsampling mode.&lt;br /&gt;
::::*[unspecified] : follow the PROGRESSIVE_FRAME flag&lt;br /&gt;
::::*true : force field-based (interlaced) upsampling&lt;br /&gt;
::::*false : force frame-based (progressive) upsampling&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|i420|bool|false}}&lt;br /&gt;
:::Output I420 Colorspace. Possibly required by some legacy applications.&lt;br /&gt;
:::Ignored if the input is not YV12 (4:2:0), or if upsampling with '''upConv'''=1 or 2.&lt;br /&gt;
::::*true : output [[I420]]&lt;br /&gt;
::::*false : output [[YV12]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|info|int|0}}&lt;br /&gt;
:::Debug Information&lt;br /&gt;
::::*0 : Do not generate debug information&lt;br /&gt;
::::*1 : Overlay debug information on the video&lt;br /&gt;
::::*2 : Output debug information via OutputDebugString()&lt;br /&gt;
::::*3 : Output hints in the video (as defined in utilities.cpp/utilities.h)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|showQ|bool|false}}&lt;br /&gt;
:::Show Macroblock Quantizers.&lt;br /&gt;
::::*true : Show quantizers&lt;br /&gt;
::::*false : Do not show quantizers&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|fastMC|bool|false}}&lt;br /&gt;
:::Vlad's Fast Motion Compensation. Very small speedup, but with degraded accuracy.&lt;br /&gt;
:::For testing purposes, and may be removed in a future version. Requires [[SSE]] or 3DNow!, please see iDCT Algorithm Notes for supported CPUs.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Examples==&lt;br /&gt;
MPEG2Source() should be used only with MPEG-1 and MPEG-2 video sources.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*To do plain YV12 decoding:&lt;br /&gt;
:&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, cpu=0)&amp;lt;/pre&amp;gt;&lt;br /&gt;
:Note: PATH can be ignored if &amp;quot;project.d2v&amp;quot; is in the same directory as your AviSynth (*.avs) script.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*To do deblocking only:&lt;br /&gt;
:&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, cpu=4, iPP=true, moderate_v=20)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*To do deblocking on an interlaced source with increased vertical sensitivity:&lt;br /&gt;
:&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, cpu=4, iPP=true, moderate_v=20)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*To do deringing only:&lt;br /&gt;
:&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, cpu2=&amp;quot;ooooxx&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*To select the optimized 32-bit SSE2 iDCT and also output I420 colorspace:&lt;br /&gt;
:&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, idct=5, i420=true)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*To convert to YUY2 based on the PROGRESSIVE_FRAME flag:&lt;br /&gt;
:&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, upConv=1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*To do display onscreen information about the video:&lt;br /&gt;
:&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, info=1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==iDCT Algorithm Notes==&lt;br /&gt;
The FlasKMPEG readme file contains an excellent technical description of iDCTs. It states:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:''&amp;quot;The video information inside MPEG files is stored in the frequency domain rather than in the spatial domain (the images we see). That way, the information gets compacted and that compaction can be used to compress (reduce) the amount of information you have to send over the transmission channel. MPEG uses the DCT (Discrete Cosine Transform) to translate spatial information into frequency information. To bring back the spatial information from the MPEG stream you have to apply the iDCT, that is, the Inverse Discrete Cosine Transform, that undoes the DCT that was used during encoding.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
:''&amp;quot;Although MPEG is almost deterministic (given a MPEG stream the output should be identical in all decoders), the standard has a degree of freedom when choosing the iDCT to use. That way, the decoder can be more easily implemented depending on the hardware below it. What the standard requires from the decoder is that the iDCT meets IEEE-1180 specs, or in plain words, that the error from the iDCT doesn't go beyond that the ones pointed out in the IEEE-1180.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
Which iDCT you should use depends primarily on what CPU you have and to a lesser degree, on how accurate an iDCT you desire. Most people will not be able to tell the difference in quality between these algorithms but they can be easily observed by combining the AviSynth filters [[Subtract]]() and [[Levels]](). All of the available options are IEEE-1180 compliant, except for '''[[SSE]]/[[MMX]] (Skal)'''.&lt;br /&gt;
&lt;br /&gt;
*Qualitywise: '''IEEE-1180 Reference''' &amp;gt; '''64-bit Floating Point''' &amp;gt; '''Simple MMX (XviD)''' &amp;gt; Remaining iDCTs.&lt;br /&gt;
*Speedwise: '''SSE2/MMX''' and '''SSE/MMX (Skal)''' are usually the fastest. The '''IEEE-1180 Reference''' is easily the slowest.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[DGDecode]] &amp;amp;larr;'''&lt;br /&gt;
-----------------------------------------------&lt;/div&gt;</summary>
		<author><name>Meru</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/DGDecode/MPEG2Source</id>
		<title>DGDecode/MPEG2Source</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/DGDecode/MPEG2Source"/>
				<updated>2015-06-15T20:10:29Z</updated>
		
		<summary type="html">&lt;p&gt;Meru: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat|External_filters|Plugin_functions|Source_filters}}&lt;br /&gt;
&lt;br /&gt;
'''Back to [[DGDecode]] &amp;amp;larr;'''&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
Frame accurate MPEG1/2 decoder. Official documentation: http://rationalqm.us/dgmpgdec/DGDecodeManual.html &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|MPEG2Source (''string d2v'', ''int'' &amp;quot;idct&amp;quot;, ''int'' &amp;quot;cpu&amp;quot;, ''bool'' &amp;quot;iPP&amp;quot;, ''int'' &amp;quot;moderate_h&amp;quot;, ''int'' &amp;quot;moderate_v&amp;quot;, ''string'' &amp;quot;cpu2&amp;quot;, ''int'' &amp;quot;upConv&amp;quot;, ''bool'' &amp;quot;iCC&amp;quot;, ''bool'' &amp;quot;i420&amp;quot;, ''int'' &amp;quot;info&amp;quot;, ''bool'' &amp;quot;showQ&amp;quot;, ''bool'' &amp;quot;fastMC&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|d2v|string| &amp;quot; &amp;quot;}}&lt;br /&gt;
:::DGIndex Project File [Required]&lt;br /&gt;
:::'''Note:''' PATH can be ignored if &amp;quot;project.d2v&amp;quot; is in the same directory as your AviSynth (*.avs) script.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|idct|int|0}}&lt;br /&gt;
:::iDCT Algorithm.&lt;br /&gt;
:::For more infomation on iDCTs please see iDCT Algorithm Notes. Please see SIMD Instructions for supported CPUs.&lt;br /&gt;
::::*0 : Use value specified by DGIndex&lt;br /&gt;
::::*1 : 32-bit [[MMX]]&lt;br /&gt;
::::*2 : 32-bit [[SSE]][[MMX]]&lt;br /&gt;
::::*3 : 32-bit [[SSE2]][[MMX]]&lt;br /&gt;
::::*4 : 64-bit Floating Point&lt;br /&gt;
::::*5 : 64-bit IEEE-1180 Reference&lt;br /&gt;
::::*6 : 32-bit SSEMMX (Skal)&lt;br /&gt;
::::*7 : 32-bit Simple MMX (XviD)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|cpu|int|0}}&lt;br /&gt;
:::Post-Processing Quickset Options.&lt;br /&gt;
:::(Y=luma, C=chroma, H=horizontal, V=vertical)&lt;br /&gt;
::::*0 : DISABLE POST-PROCESSING&lt;br /&gt;
::::*1 : DEBLOCK_Y_H&lt;br /&gt;
::::*2 : DEBLOCK_Y_H, DEBLOCK_Y_V&lt;br /&gt;
::::*3 : DEBLOCK_Y_H, DEBLOCK_Y_V, DEBLOCK_C_H&lt;br /&gt;
::::*4 : DEBLOCK_Y_H, DEBLOCK_Y_V, DEBLOCK_C_H, DEBLOCK_C_V&lt;br /&gt;
::::*5 : DEBLOCK_Y_H, DEBLOCK_Y_V, DEBLOCK_C_H, DEBLOCK_C_V, DERING_Y&lt;br /&gt;
::::*6 : DEBLOCK_Y_H, DEBLOCK_Y_V, DEBLOCK_C_H, DEBLOCK_C_V, DERING_Y, DERING_C&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|iPP|bool|auto}}&lt;br /&gt;
:::Post-Processing Mode.&lt;br /&gt;
:::DGDecode automatically uses the PROGRESSIVE_FRAME flag to switch between field/frame based post-processing on a per-frame-basis.&lt;br /&gt;
:::You should only specify the iPP parameter if you want to force DGDecode to use a particular post-processing mode.&lt;br /&gt;
::::*[unspecified] : follow the PROGRESSIVE_FRAME flag&lt;br /&gt;
::::*true : force field-based (interlaced) post-processing&lt;br /&gt;
::::*false : force frame-based (progressive) post-processing&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|moderate_h|int|20}}&lt;br /&gt;
::{{Par2|moderate_v|int|40}}&lt;br /&gt;
:::Horizontal and Vertical Block Detection Sensitivity. Smaller values are stronger, use with care.&lt;br /&gt;
:::Range: 0 to 255&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|cpu2|string| &amp;quot; &amp;quot;}}&lt;br /&gt;
:::Post-Processing Custom Options.&lt;br /&gt;
:::Specify a six character string of x's and o's according to list below. (case-insensitive)&lt;br /&gt;
:::Each &amp;quot;x&amp;quot; enables the corresponding post-processing feature.&lt;br /&gt;
:::Each &amp;quot;o&amp;quot; disables the corresponding post-processing feature.&lt;br /&gt;
::::*character 1 : luma horizontal deblocking&lt;br /&gt;
::::*character 2 : luma vertical deblocking&lt;br /&gt;
::::*character 3 : chroma horizontal deblocking&lt;br /&gt;
::::*character 4 : chroma vertical deblocking&lt;br /&gt;
::::*character 5 : luma deringing&lt;br /&gt;
::::*character 6 : chroma deringing&lt;br /&gt;
:::For example, to enable chroma-only post-processing use:&lt;br /&gt;
:::&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, cpu2=&amp;quot;ooxxox&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|upConv|int|0}}&lt;br /&gt;
:::Upsample from 4:2:0 to YUY2 (4:2:2) or RGB24.&lt;br /&gt;
::::*0 : Do not upsample&lt;br /&gt;
::::*1 : Upsample to [[YUY2]] (ignored if input is already 4:2:2)&lt;br /&gt;
::::*2 : Upsample to [[RGB24]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|iCC|bool|auto}}&lt;br /&gt;
:::Upsampling Mode.&lt;br /&gt;
:::DGDecode automatically uses the PROGRESSIVE_FRAME flag to switch between field/frame based upsampling on a per-frame-basis.&lt;br /&gt;
:::You should '''''only''''' specify the iCC parameter if you want to force DGDecode to use a particular upsampling mode.&lt;br /&gt;
::::*[unspecified] : follow the PROGRESSIVE_FRAME flag&lt;br /&gt;
::::*true : force field-based (interlaced) upsampling&lt;br /&gt;
::::*false : force frame-based (progressive) upsampling&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|i420|bool|false}}&lt;br /&gt;
:::Output I420 Colorspace. Possibly required by some legacy applications.&lt;br /&gt;
:::Ignored if the input is not YV12 (4:2:0), or if upsampling with '''upConv'''=1 or 2.&lt;br /&gt;
::::*true : output [[I420]]&lt;br /&gt;
::::*false : output [[YV12]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|info|int|0}}&lt;br /&gt;
:::Debug Information&lt;br /&gt;
::::*0 : Do not generate debug information&lt;br /&gt;
::::*1 : Overlay debug information on the video&lt;br /&gt;
::::*2 : Output debug information via OutputDebugString()&lt;br /&gt;
::::*3 : Output hints in the video (as defined in utilities.cpp/utilities.h)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|showQ|bool|false}}&lt;br /&gt;
:::Show Macroblock Quantizers.&lt;br /&gt;
::::*true : Show quantizers&lt;br /&gt;
::::*false : Do not show quantizers&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|fastMC|bool|false}}&lt;br /&gt;
:::Vlad's Fast Motion Compensation. Very small speedup, but with degraded accuracy.&lt;br /&gt;
:::For testing purposes, and may be removed in a future version. Requires [[SSE]] or 3DNow!, please see iDCT Algorithm Notes for supported CPUs.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Examples==&lt;br /&gt;
MPEG2Source() should be used only with MPEG-1 and MPEG-2 video sources.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*To do plain YV12 decoding:&lt;br /&gt;
:&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, cpu=0)&amp;lt;/pre&amp;gt;&lt;br /&gt;
:Note: PATH can be ignored if &amp;quot;project.d2v&amp;quot; is in the same directory as your AviSynth (*.avs) script.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*To do deblocking only:&lt;br /&gt;
:&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, cpu=4, iPP=true, moderate_v=20)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*To do deblocking on an interlaced source with increased vertical sensitivity:&lt;br /&gt;
:&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, cpu=4, iPP=true, moderate_v=20)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*To do deringing only:&lt;br /&gt;
:&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, cpu2=&amp;quot;ooooxx&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*To select the optimized 32-bit SSE2 iDCT and also output I420 colorspace:&lt;br /&gt;
:&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, idct=5, i420=true)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*To convert to YUY2 based on the PROGRESSIVE_FRAME flag:&lt;br /&gt;
:&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, upConv=1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*To do display onscreen information about the video:&lt;br /&gt;
:&amp;lt;pre&amp;gt;MPEG2Source(&amp;quot;project.d2v&amp;quot;, info=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==iDCT Algorithm Notes==&lt;br /&gt;
The FlasKMPEG readme file contains an excellent technical description of iDCTs. It states:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:''&amp;quot;The video information inside MPEG files is stored in the frequency domain rather than in the spatial domain (the images we see). That way, the information gets compacted and that compaction can be used to compress (reduce) the amount of information you have to send over the transmission channel. MPEG uses the DCT (Discrete Cosine Transform) to translate spatial information into frequency information. To bring back the spatial information from the MPEG stream you have to apply the iDCT, that is, the Inverse Discrete Cosine Transform, that undoes the DCT that was used during encoding.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
:''&amp;quot;Although MPEG is almost deterministic (given a MPEG stream the output should be identical in all decoders), the standard has a degree of freedom when choosing the iDCT to use. That way, the decoder can be more easily implemented depending on the hardware below it. What the standard requires from the decoder is that the iDCT meets IEEE-1180 specs, or in plain words, that the error from the iDCT doesn't go beyond that the ones pointed out in the IEEE-1180.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
Which iDCT you should use depends primarily on what CPU you have and to a lesser degree, on how accurate an iDCT you desire. Most people will not be able to tell the difference in quality between these algorithms but they can be easily observed by combining the AviSynth filters [[Subtract]]() and [[Levels]](). All of the available options are IEEE-1180 compliant, except for '''[[SSE]]/[[MMX]] (Skal)'''.&lt;br /&gt;
&lt;br /&gt;
*Qualitywise: '''IEEE-1180 Reference''' &amp;gt; '''64-bit Floating Point''' &amp;gt; '''Simple MMX (XviD)''' &amp;gt; Remaining iDCTs.&lt;br /&gt;
*Speedwise: '''SSE2/MMX''' and '''SSE/MMX (Skal)''' are usually the fastest. The '''IEEE-1180 Reference''' is easily the slowest.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
'''Back to [[DGDecode]] &amp;amp;larr;'''&lt;br /&gt;
-----------------------------------------------&lt;/div&gt;</summary>
		<author><name>Meru</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/EdgeCleaner</id>
		<title>EdgeCleaner</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/EdgeCleaner"/>
				<updated>2015-06-15T19:49:36Z</updated>
		
		<summary type="html">&lt;p&gt;Meru: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FilterCat4|External_filters|Scripts|Restoration_filters|Deringing &amp;amp; Mosquito Noise}}&lt;br /&gt;
{{Filter3&lt;br /&gt;
|canuckerfan&lt;br /&gt;
|1.04&lt;br /&gt;
|3=[http://forum.doom9.org/showpost.php?p=1568521&amp;amp;postcount=13 EdgeCleaner script]&lt;br /&gt;
|4=Deringing &amp;amp; Mosquito Noise&lt;br /&gt;
|5=&lt;br /&gt;
|6=[http://forum.doom9.org/showthread.php?t=164592 Doom9 Thread]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
A simple edge cleaning and weak dehaloing function.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* AviSynth 2.5.8 or later&lt;br /&gt;
* [[FAQ_different_types_content#How_do_I_recognize_progressive.2C_interlaced.2C_telecined.2C_hybrid_and_blended_content.3F|Progressive]] input only &lt;br /&gt;
* Supported color formats: [[YV12]]&lt;br /&gt;
&lt;br /&gt;
==== Required Plugins ====&lt;br /&gt;
Latest versions of the following filters are recommended unless stated otherwise.&amp;lt;br&amp;gt;&lt;br /&gt;
*[[aWarpSharp2]]&lt;br /&gt;
*[[MaskTools2]]&lt;br /&gt;
*&amp;lt;strike&amp;gt;RemoveGrain and Repair - part of the [[RemoveGrain v1.0b]] package.&amp;lt;/strike&amp;gt;&lt;br /&gt;
*[[RgTools]] - recommended drop-in replacement for RemoveGrain &amp;amp; Repair!&lt;br /&gt;
'''Optional plugins:'''&lt;br /&gt;
*[[Deen]] - only required if &amp;lt;tt&amp;gt;smode&amp;lt;/tt&amp;gt; is specifically set to use Deen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Script variables|Syntax and Parameters]] ==&lt;br /&gt;
:{{Template:FuncDef|EdgeCleaner (clip c, int &amp;quot;strength&amp;quot;, bool &amp;quot;rep&amp;quot;, int &amp;quot;rmode&amp;quot;, int &amp;quot;smode&amp;quot;, bool &amp;quot;hot&amp;quot;)}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|c|clip| }}&lt;br /&gt;
:::Input clip.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|strength|int|10}}&lt;br /&gt;
:::specifies edge denoising strength.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rep|bool|true}}&lt;br /&gt;
:::Activates Repair for the aWarpSharped clip (true; requires Repair)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|rmode|int|17}}&lt;br /&gt;
:::Specifies the Repair mode:&lt;br /&gt;
::::*Mode 1 is very mild and good for halos.&lt;br /&gt;
::::*Mode 16 and 18 are good to preserve edge structure on strong settings but keep more halos and edge noise, &lt;br /&gt;
::::*Mode 17 is similar to 16 but keeps much less haloing, other modes are not recommended (17; requires Repair).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|smode|int|0}}&lt;br /&gt;
:::Specifies what method will be used for finding small particles, ie stars:&lt;br /&gt;
::::* 0 : disabled&lt;br /&gt;
::::* 1 : use RemoveGrain&lt;br /&gt;
::::* 2 : use Deen&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
::{{Par2|hot|bool|false}}&lt;br /&gt;
:::Specifies whether removal of hot pixels should take place.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
EdgeCleaner with default settings:&lt;br /&gt;
 [[AviSource]](&amp;quot;Blah.avi&amp;quot;)&lt;br /&gt;
 EdgeCleaner(strength=10, rep=true, rmode=17, smode=0, hot=false)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changelog ==&lt;br /&gt;
  03/04/2012  [http://forum.doom9.org/showpost.php?p=1568521&amp;amp;postcount=13 v1.04]&lt;br /&gt;
      - adapted the code to work with SEt's updated [[aWarpSharp2]]&lt;br /&gt;
      - removed the redundant fix parameter&lt;br /&gt;
      - increased default strength to 10&amp;lt;br&amp;gt;&lt;br /&gt;
  06/08/2008  [http://forum.doom9.org/showpost.php?p=1167937&amp;amp;postcount=6 v1.03]&lt;br /&gt;
      - improved mask that leaves less warping and more original line structure, therefore higher strengths are now safe to use&lt;br /&gt;
      - improved StarMask()&lt;br /&gt;
      - removed super mode&lt;br /&gt;
      - removed srep, sshiqloc, some smodes and VD_SmartSmoothHiQ() due to StarMask() changes&amp;lt;br&amp;gt;&lt;br /&gt;
  01/06/2008  v1.02&lt;br /&gt;
      - added srep parameter&lt;br /&gt;
      - improved particle masking&amp;lt;br&amp;gt;&lt;br /&gt;
  01/06/2008  v1.01&lt;br /&gt;
      - added masking for particles with two parameters; smode and sshiqloc&amp;lt;br&amp;gt;&lt;br /&gt;
  12/05/2008  v1.00&lt;br /&gt;
      - removed line darkening, mode 2 mask, RemoveGrain&lt;br /&gt;
      - assert changed to colorspace conversion to yv12&lt;br /&gt;
      - fixed some logic problems&lt;br /&gt;
      - &amp;quot;fixed&amp;quot; the aWarpSharp black pixel bug&lt;br /&gt;
      - added Repair&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External Links ==&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?t=164592 Doom9 Forum] - EdgeCleaner discussion.&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#Deringing_.26_Mosquito_Noise|External Filters]] &amp;amp;larr;'''&lt;/div&gt;</summary>
		<author><name>Meru</name></author>	</entry>

	<entry>
		<id>http://avisynth.nl/index.php/TIVTC</id>
		<title>TIVTC</title>
		<link rel="alternate" type="text/html" href="http://avisynth.nl/index.php/TIVTC"/>
				<updated>2014-09-20T03:36:20Z</updated>
		
		<summary type="html">&lt;p&gt;Meru: Corrected link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Filter|[http://bengal.missouri.edu/~kes25c/ tritical]|1.0.5|[http://bengal.missouri.edu/~kes25c/TIVTCv105.zip TIVTCv105.zip]|IVTC &amp;amp; Decimation| |}}&lt;br /&gt;
{{FilterCat|Plugins|External_filters|IVTC|Decimation}}&lt;br /&gt;
==Description==&lt;br /&gt;
'''TIVTC''' is a plugin package containing 7 different filters and 3 conditional functions. The seven filters included are '''[[TIVTC/TFM|TFM]], [[TIVTC/TDecimate|TDecimate]], [[TIVTC/MergeHints|MergeHints]], [[TIVTC/FrameDiff|FrameDiff]], [[TIVTC/FieldDiff|FieldDiff]], [[TIVTC/ShowCombedTIVTC|ShowCombedTIVTC]],''' and '''[[TIVTC/RequestLinear|RequestLinear]]'''. &lt;br /&gt;
*'''TFM''' is a field matching filter that will recreate the original progressive frames in a telecined source, and '''TDecimate''' is a decimation filter that removes duplicates. These filters can be used together to achieve an [http://en.wikipedia.org/wiki/Ivtc ivtc] or separately to accomplish other tasks. &lt;br /&gt;
*'''TDecimate''' also provides special options for handling hybrid material which include vfr via matroska (using a timecodes file) and blend decimation/upconversion for cfr solutions. &lt;br /&gt;
*'''Mergehints, RequestLinear, FrameDiff, FieldDiff,''' and '''ShowCombedTIVTC''' are special utility filters included to help perform specific functions. The conditional functions are '''IsCombedTIVTC, CFieldDiff,''' and '''CFrameDiff''' which can be used via Avisynth's conditional filtering environment to test if frames are combed, determine how well two fields fit together, or calculate the difference between frames.&lt;br /&gt;
&lt;br /&gt;
==Usage Examples==&lt;br /&gt;
&lt;br /&gt;
'''NTSC cases''':&lt;br /&gt;
&lt;br /&gt;
   1.) NTSC Film, normal source (not anime or cartoon).  One pass.&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tdecimate()&lt;br /&gt;
&lt;br /&gt;
   2.) NTSC Film, anime or cartoon source.  One pass.&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tdecimate(mode=1)&lt;br /&gt;
&lt;br /&gt;
   3.) NTSC Hybrid, using blend decimation on video sections (not anime or cartoon).  One pass.&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tdecimate(hybrid=1)&lt;br /&gt;
&lt;br /&gt;
   4.) NTSC Hybrid, using blend decimation on video sections, anime or cartoon source.  One pass.&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tdecimate(mode=1,hybrid=1)&lt;br /&gt;
&lt;br /&gt;
   5.) NTSC Hybrid, using vfr via mkv (not anime or cartoon).  One pass.&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tdecimate(mode=3,hybrid=2,vfrDec=0,mkvOut=&amp;quot;mkv-timecodesfile.txt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
   6.) NTSC Hybrid, using vfr via mkv, anime or cartoon source.  One pass.&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tdecimate(mode=3,hybrid=2,vfrDec=1,mkvOut=&amp;quot;mkv-timecodesfile.txt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
   7.) NTSC, two pass (enables use of conCycleTP parameter) mkv vfr for hybrid source.&lt;br /&gt;
         First pass:&lt;br /&gt;
             mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
             tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;,output=&amp;quot;matches.txt&amp;quot;)&lt;br /&gt;
             tdecimate(mode=4,output=&amp;quot;metrics.txt&amp;quot;)&lt;br /&gt;
         Second pass (not anime or cartoon):&lt;br /&gt;
             mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
             tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;,input=&amp;quot;matches.txt&amp;quot;)&lt;br /&gt;
             tdecimate(mode=5,hybrid=2,vfrDec=0,input=&amp;quot;metrics.txt&amp;quot;,tfmIn=&amp;quot;matches.txt&amp;quot;,mkvOut=&amp;quot;mkv-timecodesfile.txt&amp;quot;)&lt;br /&gt;
         Second pass (anime or cartoon):&lt;br /&gt;
             mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
             tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;,input=&amp;quot;matches.txt&amp;quot;)&lt;br /&gt;
             tdecimate(mode=5,hybrid=2,vfrDec=1,input=&amp;quot;metrics.txt&amp;quot;,tfmIn=&amp;quot;matches.txt&amp;quot;,mkvOut=&amp;quot;mkv-timecodesfile.txt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''PAL Cases''':&lt;br /&gt;
&lt;br /&gt;
   1.) PAL, no decimation (just field matching)&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
   2.) PAL, decimate 1 in 25 (most similar)&lt;br /&gt;
          mpeg2source(&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tfm(d2v=&amp;quot;c:\oursource.d2v&amp;quot;)&lt;br /&gt;
          tdecimate(cycle=25)&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*[http://forum.doom9.org/showthread.php?t=82264  Discussion thread] at [http://forum.doom9.org/ Doom9's Forum]&lt;br /&gt;
*[http://bengal.missouri.edu/~kes25c/ tritical's Avisynth Filters]&lt;br /&gt;
*[http://avisynth.nl/index.php/External_filters External filters list]&lt;/div&gt;</summary>
		<author><name>Meru</name></author>	</entry>

	</feed>