View Full Version : ffdshow Resize & aspect filter: hardware requirements
GCRaistlin
24th September 2013, 23:40
C2D E6400 OC @ 3.33 MHz, 8800GT 512 MB, 1280x1024.
MPC-HC, ffdshow, LAV (CUDA is in use), madVR, ReClock.
If I enable ffdshow's Resize & aspect filter (see attach) then while playing DVDs CPU load is about 100% and playing issues arise: dropped frames, sluttering sound. GPU-Z, though, shows that just about 20% of GPU resources used.
Does Resize & aspect filter use only CPU?
Is my configuration really too weak for enabling Resize filter?
For madVR scaling instead of ffdshow's Resize, what filters do you recommend to use - same (Spline/Bicubic - which one?) or others (Lanczos)?
vood007
27th September 2013, 18:39
Resize does not use alot of CPU, its filters does not use any GPU. Some Filters are a bit buggy in FFDShow. In "Borders" make sure you set it to "Outside" and Pixels, not percent (even when using 0 borders).
Another advice; Deband after resizing because it adds dithering (you dont want to upscale noise). Instead of Blur & NR you can use Resize too, set Luma gaussian blur to 0.50 and Luma sharpen to 2.00. You can use Bilinear for Chorma. You should set the exact size you want, not "Multiply by" or your content will get scaled twice, by FFDShow and the renderer.
GCRaistlin
27th September 2013, 20:32
vood007, thanks for advices. I've been guided by http://www.ezoden.com/684/tutorial-htpc/4. This guide tells to use "Multiply by" with value 1.5 for all kinds of videos except 1080p, and yes, video will be scaled twice - first with ffdshow and then with madVR. The guide's author considers the possibility to perform scaling only with madVR but:
madVR is very good for scaling the video but the problem in doing that is that sharpen will be applied to the original resolution of the video which results in a lower quality
I don't know if it's true though. The guide contains some inaccuracies and at least one mistake clsid has pointed me to (http://forum.doom9.org/showthread.php?p=1622427#post1622427).
In case of resizing with ffdshow, should I make any changes to my current madVR scaling settings:
http://i57.fastpic.ru/thumb/2013/0927/e4/624a826f1a002f12dec0643bebaddde4.jpeg (http://fastpic.ru/view/57/2013/0927/624a826f1a002f12dec0643bebaddde4.png.html) http://i57.fastpic.ru/thumb/2013/0927/81/86eb6ef6e734dc2082faf679b4e84281.jpeg (http://fastpic.ru/view/57/2013/0927/86eb6ef6e734dc2082faf679b4e84281.png.html) http://i57.fastpic.ru/thumb/2013/0927/95/562ca35340747fd4e5547e90201bef95.jpeg (http://fastpic.ru/view/57/2013/0927/562ca35340747fd4e5547e90201bef95.png.html)
What you think about the following Resize & aspect settings for 1280x1024 resolution:
http://i58.fastpic.ru/thumb/2013/0927/60/daa8c817cc2cb4ae284097c264414a60.jpeg (http://fastpic.ru/view/58/2013/0927/daa8c817cc2cb4ae284097c264414a60.png.html) http://i58.fastpic.ru/thumb/2013/0927/c8/3e1fe5572b9698c038bc995d2cb925c8.jpeg (http://fastpic.ru/view/58/2013/0927/3e1fe5572b9698c038bc995d2cb925c8.png.html) http://i58.fastpic.ru/thumb/2013/0927/9c/bd990a9e6a86d71ae31611687fc81d9c.jpeg (http://fastpic.ru/view/58/2013/0927/bd990a9e6a86d71ae31611687fc81d9c.png.html)
Will they replace my current Blur & NR settings (enabled for all kinds of video except 720p and 1080p):
http://i57.fastpic.ru/thumb/2013/0927/c2/aad58e48c96b5d0b792032fcc33f7fc2.jpeg (http://fastpic.ru/view/57/2013/0927/aad58e48c96b5d0b792032fcc33f7fc2.png.html)
?
clsid
27th September 2013, 21:43
Scaling twice is just plain stupid. Either scale to screen resolution with ffdshow, or let the video renderer take care of scaling.
You should not blindly follow these kind of guides because:
a) they are often full of nonsense
b) perception of video quality is highly subjective. Some prefer blurring/smoothing block at cost of loosing lots of detail, while other prefer keeping detail and don't mind a little blocking.
You can use a guide as an example, but for each setting you should test:
a) whether you actually notice any difference
b) whether it makes the quality better or worse
Otherwise you are just wasting precious CPU/GPU cycles.
You should select "keep aspect ratio", otherwise videos will look wrong after scaling.
GCRaistlin
27th September 2013, 22:10
Scaling twice is just plain stupid. Either scale to screen resolution with ffdshow, or let the video renderer take care of scaling.
What to prefer? Maybe AviSynth? The guide optionally recommends to use it for resizing:
http://i60.fastpic.ru/thumb/2013/0928/41/46a0a372d22367ae76345be8c1585741.jpeg (http://fastpic.ru/view/60/2013/0928/46a0a372d22367ae76345be8c1585741.png.html)
You should not blindly follow these kind of guides
I understand it clearly, but, as you may notice, I know a very little about codec customizing and so on, and I should have started from something (but with help of yours and other members of this forum I finally started - thanks a lot!).
while other prefer keeping detail and don't mind a little blocking.
I'm one of these "others".
You can use a guide as an example, but for each setting you should test:
a) whether you actually notice any difference
b) whether it makes the quality better or worse
Otherwise you are just wasting precious CPU/GPU cycles.
I see, but the fact is that most of settings are not explained. It's written there: "do this this way", but "why this way" - remains unknown. To look for any differences in quality you should know what to look...
vood007
27th September 2013, 22:39
What clsid said plus...
When you use FFDShow for scaling you do not really need MadVR anymore. Simply use EVR Custom Presenter as renderer and the Sharpen Complex 2 Shader of MPC for sharpening. HQD3D is CPU heavy too, just try using the Luma Blur and Sharpen from FFDShow resize. For very bad encoded/lowres content you better use PostProcessing/SPP deblocking.
edit: avisynth in realtime with your CPU is over the top.. Just keep it simple, you dont want your fans at 100% while watching movies ;)
detmek
27th September 2013, 22:45
Just use madVR for scaling. And if guide does not explain why some option is used, do not follow instructions from that guide.
Besides, you should:
- deinterlace only if video is interlaced. If it is telecined you should IVTC (inverce telecine). Render can do that (madVR or EVR-CP). But, you might need to force madVR to Film mode for telecined video.
- deband only if picture shows banding artifacts.
- you said you like details but you use Blur and NR (Noise Reduction) which kills details
- do not resize twice.
- you do not need Avisynth for sharpening. You can use Shaders like Sharpen Complex (v2) or LumaSharpen (custom shader). LSF is way too slow and demanding.
It is recommended to start with default settings and change those only if you experience some problems or you are not satisfied with picture quality. Do not blindly follow random guides on internet. Just because something looks complicated it doesn't mean it is better.
GCRaistlin
27th September 2013, 23:07
I'd prefer the renderer that uses GPU instead of CPU for scaling. Is madVR the one?
- deinterlace only if video is interlaced.
I thought that there's a flag that controls it automatically. Should I enable deinterlacing only manually?
If it is telecined you should IVTC (inverce telecine). Render can do that (madVR or EVR-CP). But, you might need to force madVR to Film mode for telecined video.
How do I know I need to?
- deband only if picture shows banding artifacts.
So should I enable Deband manually? Can you please explain what is banding artifacts or give a link to an example screenshot?
- you said you like details but you use Blur and NR (Noise Reduction) which kills details
Yeah, let's disable it :) .
You can use Shaders like Sharpen Complex (v2) or LumaSharpen (custom shader).
Where can I find it?
GCRaistlin
27th September 2013, 23:31
Should I disable Sharpen ffdshow filter if I use madVR scaling? Are any changes of madVR settings needed?
vood007
28th September 2013, 05:04
When you use FFDShow for scaling to your Monitor Res MadVR scaling will do nothing. Thats the reason why i wrote you can use EVR instead and the MPC Sharpen Complex 2 shader. Shaders do not work with MadVR. Shaders can be found under "Play" in MPC Menu. Shaders run on the GPU so you save a bit CPU too.
Summary: FFDShow: Deinterlace, Upscale (Spline) w Denoising thru Luma Blur and Sharpen, Deband -> EVR Custom Presenter (BiCubic) -> MPC Sharpen Complex 2 shader.
Thats IMHO the simpliest and most effective base for everyday playback. Skip the rest (Reclock, MadVR) until you understad what they do and when you need it. Nearly every information you need to understand things can be found here on the forum.
GCRaistlin
28th September 2013, 09:53
vood007, the fact is that I already use madVR so I'm not sure if I have to go back to a MPC-HC renderer. madVR isn't worser than EVR, is it? The only problem I runned into is that screenshots taken with madVR contains garbage. Well, I know, I should try both renderers myself.
What remains unclear for me is what to do with Sharpen filter when using madVR for scaling. Sharpen generates noise, as you wrote above, but in case of scaling with madVR we cannot apply Sharpen filter after resizing, right? So what's better - to Sharpen before scaling or not to Sharpen at all?
Skip the rest (Reclock, MadVR) until you understad what they do and when you need it.
Thanks to ReClock documentation, I understand what it does clearly enough. Besides that, you know, either you customize it all at once or you'll probably never do it :) .
detmek
28th September 2013, 10:18
I'd prefer the renderer that uses GPU instead of CPU for scaling. Is madVR the one?
Yes, madVR uses GPU for its work.
I thought that there's a flag that controls it automatically. Should I enable deinterlacing only manually?
There is but it might be wrong so you get blured/ghosted picture.
How do I know I need to?
NTSC DVDs are usually telecined.
PAL DVDs are progressive.
Home made recordings are usually interlaced but can be progressive. That is easy to know if you shoot those.
Blu-Rays are almost always progressive.
So should I enable Deband manually? Can you please explain what is banding artifacts or give a link to an example screenshot?
http://en.wikipedia.org/wiki/Colour_banding
Yeah, let's disable it :) .
Good.
Where can I find it?
Sharpen Complex shader is part of MPC-HC or MPC-BE, and maybe some other players but I wouldn't know as I only use those two.
LumaSharpen is custom shader that can be compiled inside those two players.
/*
_____________________
LumaSharpen 1.3.10
_____________________
by Christian Cann Schuldt Jensen ~ CeeJay.dk
It blurs the original pixel with the surrounding pixels and then subtracts this blur to sharpen the image.
It does this in luma to avoid color artifacts and allows limiting the maximum sharpning to avoid or lessen halo artifacts.
This is similar to using Unsharp Mask in Photoshop.
Compiles with 3.0
*/
// .----------------------------------------------------._User settings_.---------------------------------------------------.
// -- Sharpening --
#define sharp_strength 1.0 // Strength of the sharpening - You should probably use something between 0.2 and 2.0 - default is 1.0
#define sharp_clamp 0.050 // Limits maximum amount of sharpening a pixel recieves - Default is 0.050
// -- Advanced sharpening settings --
#define pattern 2 // Choose a sample pattern ( 1, 2, 3 or 4 ) - I suggest 2
#define offset_bias 1.0 // Offset bias adjusts the radius of the sampling pattern.
// I designed the pattern for offset_bias 1.0, but feel free to experiment.
// .----------------------------------------------------._Debug settings_.--------------------------------------------------.
#define splitscreen 0 // Enables the before-and-after splitscreen comparison mode. Left side is before.
#define show_sharpen 0 // Visualize the strength of the sharpen (multiplied by 4 to see it better)
// .--------------------------------------------------._Developer settings_.------------------------------------------------.
#define CoefLuma float4(0.2126, 0.7152, 0.0722,0) // BT.709 & sRBG luma coefficient (Monitors and HD Television)
//#define CoefLuma float4(0.299, 0.587, 0.114,0) // BT.601 luma coefficient (SD Television)
//#define CoefLuma float4(1.0/3.0, 1.0/3.0, 1.0/3.0,0) // Equal weight coefficient
#define sharp_strength_luma (CoefLuma * sharp_strength)
// .--------------------------------------------------._Defining constants_.------------------------------------------------.
#ifndef s0
sampler s0 : register(s0);
#define s1 s0
//sampler s1 : register(s1);
//float4 p0 : register(c0);
float4 p1 : register(c1);
// #define width (p0[0])
// #define height (p0[1])
// #define counter (p0[2])
// #define clock (p0[3])
// #define px (p1[0]) //one_over_width
// #define py (p1[1]) //one_over_height
#define px (p1.x) //one_over_width
#define py (p1.y) //one_over_height
//#define pxy float2(p1.xy)
//#define PI acos(-1)
#define target 1
#endif
// .------------------------------------------------------._Main code_.-----------------------------------------------------.
#if target == 1
float4 main( float2 tex : TEXCOORD0 ) : COLOR // Use with Shaderanalyzer and MPC-HC
#else
float4 LumaSharpenPass( float2 tex )
#endif
{
// -- Get the original pixel --
float4 ori = tex2D(s1, tex); // ori = original pixel
// .--------------------------------------------------._Sampling patterns_.-------------------------------------------------.
// [ NW, , NE ] Each texture lookup (except ori)
// [ ,ori, ] samples 4 pixels
// [ SW, , SE ]
// -- Pattern 1 -- A (fast) 7 tap gaussian using only 2+1 texture fetches.
#if pattern == 1
// -- Gaussian filter --
// [ 1/9, 2/9, ] [ 1 , 2 , ]
// [ 2/9, 8/9, 2/9] = [ 2 , 8 , 2 ]
// [ , 2/9, 1/9] [ , 2 , 1 ]
float4 blur_ori = tex2D(s0, tex + (float2(px,py) / 3) * offset_bias); // North West
blur_ori += tex2D(s0, tex + (float2(-px,-py) / 3) * offset_bias); // South East
//blur_ori += tex2D(s0, tex + float2(px,py) / 3 * offset_bias); // North East
//blur_ori += tex2D(s0, tex + float2(-px,-py) / 3 * offset_bias); // South West
blur_ori /= 2; //Divide by the number of texture fetches
sharp_strength_luma *= 1.5; // Adjust strength to aproximate the strength of pattern 2
#endif
// -- Pattern 2 -- A 9 tap gaussian using 4+1 texture fetches.
#if pattern == 2
// -- Gaussian filter --
// [ .25, .50, .25] [ 1 , 2 , 1 ]
// [ .50, 1, .50] = [ 2 , 4 , 2 ]
// [ .25, .50, .25] [ 1 , 2 , 1 ]
float4 blur_ori = tex2D(s0, tex + float2(px,-py) * 0.5 * offset_bias); // South East
blur_ori += tex2D(s0, tex + float2(-px,-py) * 0.5 * offset_bias); // South West
blur_ori += tex2D(s0, tex + float2(px,py) * 0.5 * offset_bias); // North East
blur_ori += tex2D(s0, tex + float2(-px,py) * 0.5 * offset_bias); // North West
blur_ori *= 0.25; // ( /= 4) Divide by the number of texture fetches
#endif
// -- Pattern 3 -- An experimental 17 tap gaussian using 4+1 texture fetches.
#if pattern == 3
// -- Gaussian filter --
// [ , 4 , 6 , , ]
// [ ,16 ,24 ,16 , 4 ]
// [ 6 ,24 , ,24 , 6 ]
// [ 4 ,16 ,24 ,16 , ]
// [ , , 6 , 4 , ]
float4 blur_ori = tex2D(s0, tex + float2(0.4*px,-1.2*py)* offset_bias); // South South East
blur_ori += tex2D(s0, tex + float2(-1.2*px,-0.4*py) * offset_bias); // West South West
blur_ori += tex2D(s0, tex + float2(1.2*px,0.4*py) * offset_bias); // East North East
blur_ori += tex2D(s0, tex + float2(-0.4*px,1.2*py) * offset_bias); // North North West
blur_ori *= 0.25; // ( /= 4) Divide by the number of texture fetches
sharp_strength_luma *= 0.51;
#endif
// -- Pattern 4 -- A 9 tap high pass (pyramid filter) using 4+1 texture fetches.
#if pattern == 4
// -- Gaussian filter --
// [ .50, .50, .50] [ 1 , 1 , 1 ]
// [ .50, , .50] = [ 1 , , 1 ]
// [ .50, .50, .50] [ 1 , 1 , 1 ]
half4 blur_ori = tex2D(s0, tex + float2(0.5 * px,-py * offset_bias)); // South South East
blur_ori += tex2D(s0, tex + float2(offset_bias * -px,0.5 * -py)); // West South West
blur_ori += tex2D(s0, tex + float2(offset_bias * px,0.5 * py)); // East North East
blur_ori += tex2D(s0, tex + float2(0.5 * -px,py * offset_bias)); // North North West
//blur_ori += (2 * ori); // Probably not needed. Only serves to lessen the effect.
blur_ori /= 4; //Divide by the number of texture fetches
sharp_strength_luma *= 0.666; // Adjust strength to aproximate the strength of pattern 2
#endif
// -- Pattern 8 -- A (slow) 9 tap gaussian using 9 texture fetches.
#if pattern == 8
// -- Gaussian filter --
// [ 1 , 1 , 1 ]
// [ 1 , 1 , 1 ]
// [ 1 , 1 , 1 ]
half4 blur_ori = tex2D(s0, tex + float2(-px,py) * offset_bias); // North West
blur_ori += tex2D(s0, tex + float2(px,-py) * offset_bias); // South East
blur_ori += tex2D(s0, tex + float2(-px,-py) * offset_bias); // South West
blur_ori += tex2D(s0, tex + float2(px,py) * offset_bias); // North East
half4 blur_ori2 = tex2D(s0, tex + float2(0,py) * offset_bias); // North
blur_ori2 += tex2D(s0, tex + float2(0,-py) * offset_bias); // South
blur_ori2 += tex2D(s0, tex + float2(-px,0) * offset_bias); // West
blur_ori2 += tex2D(s0, tex + float2(px,0) * offset_bias); // East
blur_ori2 *= 2;
blur_ori += blur_ori2;
blur_ori += (ori * 4); // Probably not needed. Only serves to lessen the effect.
// dot()s with gaussian strengths here?
blur_ori /= 16; //Divide by the number of texture fetches
//sharp_strength_luma *= 0.75; // Adjust strength to aproximate the strength of pattern 2
#endif
// -- Pattern 9 -- A (slow) 9 tap high pass using 9 texture fetches.
#if pattern == 9
// -- Gaussian filter --
// [ 1 , 1 , 1 ]
// [ 1 , 1 , 1 ]
// [ 1 , 1 , 1 ]
half4 blur_ori = tex2D(s0, tex + float2(-px,py) * offset_bias); // North West
blur_ori += tex2D(s0, tex + float2(px,-py) * offset_bias); // South East
blur_ori += tex2D(s0, tex + float2(-px,-py) * offset_bias); // South West
blur_ori += tex2D(s0, tex + float2(px,py) * offset_bias); // North East
blur_ori += ori; // Probably not needed. Only serves to lessen the effect.
blur_ori += tex2D(s0, tex + float2(0,py) * offset_bias); // North
blur_ori += tex2D(s0, tex + float2(0,-py) * offset_bias); // South
blur_ori += tex2D(s0, tex + float2(-px,0) * offset_bias); // West
blur_ori += tex2D(s0, tex + float2(px,0) * offset_bias); // East
blur_ori /= 9; //Divide by the number of texture fetches
//sharp_strength_luma *= (8.0/9.0); // Adjust strength to aproximate the strength of pattern 2
#endif
// .-----------------------------------------------._Sharpen_.-------------------------------------------------------.
// -- Calculate the sharpening --
float4 sharp = ori - blur_ori; //Subtracting the blurred image from the original image
// -- Adjust strength of the sharpening --
float sharp_luma = dot(sharp, sharp_strength_luma); //Calculate the luma and adjust the strength
// -- Clamping the maximum amount of sharpening to prevent halo artifacts --
sharp_luma = clamp(sharp_luma, -sharp_clamp, sharp_clamp); //TODO Try a curve function instead of a clamp
// -- Combining the values to get the final sharpened pixel --
float4 done = ori + sharp_luma; // Add the sharpening to the original.
// .------------------------------------------._Returning the output_.-----------------------------------------------.
#if show_sharpen == 1
//float3 chroma = ori - luma;
//done = abs(sharp * 4).rrr;
done = saturate(0.5 + (sharp_luma * 4)).rrrr;
#endif
#if splitscreen == 1
if (tex.x < 0.5)
done = ori;
#endif
return done;
}
Should I disable Sharpen ffdshow filter if I use madVR scaling? Are any changes of madVR settings needed?
If you use shaders for sharpening - yes, disable it. Otherwise, if you like sharper picture and don't want to use shaders - no. You can use FFDShow shapren filter.
BTW, FFDShow uses CPU, shaders use GPU.
When you use FFDShow for scaling to your Monitor Res MadVR scaling will do nothing. Thats the reason why i wrote you can use EVR instead and the MPC Sharpen Complex 2 shader. Shaders do not work with MadVR. Shaders can be found under "Play" in MPC Menu. Shaders run on the GPU so you save a bit CPU too.
Summary: FFDShow: Deinterlace, Upscale (Spline) w Denoising thru Luma Blur and Sharpen, Deband -> EVR Custom Presenter (BiCubic) -> MPC Sharpen Complex 2 shader.
Thats IMHO the simpliest and most effective base for everyday playback. Skip the rest (Reclock, MadVR) until you understad what they do and when you need it. Nearly every information you need to understand things can be found here on the forum.
Actually, madVR will still upscale chroma unless FFDShow is set to output RGB. Also, shaders do work with madVR.
The simplest way would be to use MPC-HC/BE, EVR-CP and FFDShow with enabled debanding with default values as those do not hurt picture quality and built-in shaders (Sharpen Complex or Sharpen Complex v2). And deinterlace/IVTC should automatically be performed by render/GPU drivers.
madVR is easy to setup as default settings should be good for most people. The only thing I don't know is how madVR does IVTC, ie. should it be set manually or it does that automatically. I leave in PAL area so I have never had to deal with telecined video. But, there should be info in madVR thread.
GCRaistlin
28th September 2013, 19:38
I tried sharpen complex 2 - yes, it works with madVR. Should I add it to post-resize pixel shaders list?
I'm not sure about LumaSharping. I have selected Play - Shaders - Edit shaders..., then pasted the code to the lower field, typed the name "LumaSharpen" in the upper left field. "ps_2_0" value has appeared in the upper right field automatically. Now LumaSharpen is present in Shaders list, but enabling it has no effect.
detmek
28th September 2013, 22:00
Sharpen Complex is better to use as post-resize shader. LumaSharpen has much smaller effect that Sharpen Complex 2 and is harder to notice difference.
GCRaistlin
28th September 2013, 22:05
Is LumaSharpen intended to be used together with (after) Sharpen Complex 2?
detmek
28th September 2013, 23:43
No, LumaSharpen should be used if you think that Sharpen Complex has too strong effect.
GCRaistlin
1st October 2013, 22:50
Please take a look to my final audio/video filters configuration. Video and audio are being handled with (now built-in to MPC-HC) LAV filters when possible:
http://i59.fastpic.ru/thumb/2013/1002/90/84cd8aff92212d8cf94e9c3f21b15890.jpeg (http://fastpic.ru/view/59/2013/1002/84cd8aff92212d8cf94e9c3f21b15890.png.html) http://i59.fastpic.ru/thumb/2013/1002/d0/8a9b0f6d1494b315a935e02663c31dd0.jpeg (http://fastpic.ru/view/59/2013/1002/8a9b0f6d1494b315a935e02663c31dd0.png.html) http://i59.fastpic.ru/thumb/2013/1002/98/070b92cfc58a6d47047609a93d9dbf98.jpeg (http://fastpic.ru/view/59/2013/1002/070b92cfc58a6d47047609a93d9dbf98.png.html) http://i59.fastpic.ru/thumb/2013/1002/8b/38ed89b6e765ee96ecc458dbece00e8b.jpeg (http://fastpic.ru/view/59/2013/1002/38ed89b6e765ee96ecc458dbece00e8b.png.html)
For some video formats supported by ffdshow I'm not sure if they are supported by LAV so I'm forced not to disable their support in ffdshow video filter for the time being:
FFDS
MP41,MP42,MP43
VP3,VP5,VP6,VP6F
QTRPZA
CamStudio
CorePNG
MSZH
Indeo 2
Truemotion 1,2
So video stream is decoded with LAV or ffdshow video, then being passed to ffdshow raw video filter and postprocessed by (in order of applying):
Deinterlacing filter (same settings for all formats, but I believe it actually works only for those that not supported by LAV 'cause deinterlacing is performed by LAV; maybe better disable it for others?)
http://i59.fastpic.ru/thumb/2013/1002/1c/c9a94acfd4e9e67a5e7320878a5a6f1c.jpeg (http://fastpic.ru/view/59/2013/1002/c9a94acfd4e9e67a5e7320878a5a6f1c.png.html)
Postprocessing filter. Only for videos of the following FOURCC codes:
3IV1;3IV2;3IVD;3VID;DIV3;DIV4;DIVX;DX50;FVFW;M4CC;M4S2;MP42;MP43;MP4V;MPG4;NDIG;PVMM;RMP4;SEDG;XVID
http://i59.fastpic.ru/thumb/2013/1002/f8/b8cc5d767143e731e82db86e2d8b43f8.jpeg (http://fastpic.ru/view/59/2013/1002/b8cc5d767143e731e82db86e2d8b43f8.png.html)
Deband filter (threshold 1.02 for 1080p, 1.05 for 720p, 1.2 for others)
http://i60.fastpic.ru/thumb/2013/1002/f7/82d2ec46a8719678c7c727e8ae7a2cf7.jpeg (http://fastpic.ru/view/60/2013/1002/82d2ec46a8719678c7c727e8ae7a2cf7.png.html)
Output and RGB conversion settings are the same for all video formats:
http://i60.fastpic.ru/thumb/2013/1002/28/67f2f7c7b15f8ce2267d4f6074061728.jpeg (http://fastpic.ru/view/60/2013/1002/67f2f7c7b15f8ce2267d4f6074061728.png.html) http://i60.fastpic.ru/thumb/2013/1002/3d/8bd34d75e2509d3b50ec2c7b1aba743d.jpeg (http://fastpic.ru/view/60/2013/1002/8bd34d75e2509d3b50ec2c7b1aba743d.png.html)
I'm not sure what is better - to mix decoded audio stream to stereo with LAV or to enable raw audio processing in ffdshow audio and mix there:
http://i59.fastpic.ru/thumb/2013/1002/cc/2ab430cd39fa8a2a6a42902f667cb7cc.jpeg (http://fastpic.ru/view/59/2013/1002/2ab430cd39fa8a2a6a42902f667cb7cc.png.html)
Also, I'm not sure that these ffdshow mix settings and default LAV Audio mix settings (see above) give the same result.
Another things that I'm not sure of is deinterlacing options.
25p/30p:
http://i58.fastpic.ru/thumb/2013/1002/3b/fded488d456580561b08f92ae735ff3b.jpeg (http://fastpic.ru/view/58/2013/1002/fded488d456580561b08f92ae735ff3b.png.html) http://i58.fastpic.ru/thumb/2013/1002/90/9ce5768605a57bda32009a1dededa990.jpeg (http://fastpic.ru/view/58/2013/1002/9ce5768605a57bda32009a1dededa990.png.html) http://i58.fastpic.ru/thumb/2013/1002/b1/35edd1e372e7d097ad3c21521a9824b1.jpeg (http://fastpic.ru/view/58/2013/1002/35edd1e372e7d097ad3c21521a9824b1.png.html) http://i58.fastpic.ru/thumb/2013/1002/67/3323ceac0684445f0c4e30155bece267.jpeg (http://fastpic.ru/view/58/2013/1002/3323ceac0684445f0c4e30155bece267.png.html)
50p/60p:
http://i60.fastpic.ru/thumb/2013/1002/dd/c955c11e1df4ef54194d3850c3005cdd.jpeg (http://fastpic.ru/view/60/2013/1002/c955c11e1df4ef54194d3850c3005cdd.png.html) http://i60.fastpic.ru/thumb/2013/1002/8c/01a49969a0a0a3b5cd55894e9271128c.jpeg (http://fastpic.ru/view/60/2013/1002/01a49969a0a0a3b5cd55894e9271128c.png.html) http://i60.fastpic.ru/thumb/2013/1002/3d/4c5a090173f4f99560c828373154d83d.jpeg (http://fastpic.ru/view/60/2013/1002/4c5a090173f4f99560c828373154d83d.png.html) http://i60.fastpic.ru/thumb/2013/1002/c5/176f3a8cce5c4d800a825b51b52e12c5.jpeg (http://fastpic.ru/view/60/2013/1002/176f3a8cce5c4d800a825b51b52e12c5.png.html) http://i60.fastpic.ru/thumb/2013/1002/32/5beb8207b03154616789816e01e35d32.jpeg (http://fastpic.ru/view/60/2013/1002/5beb8207b03154616789816e01e35d32.png.html) http://i60.fastpic.ru/thumb/2013/1002/07/bae72e1fb7211caefdb8746f9a9cdb07.jpeg (http://fastpic.ru/view/60/2013/1002/bae72e1fb7211caefdb8746f9a9cdb07.png.html)
As you may see, 50p/60p gives better picture, but also 6 frames instead of 4 with 25p/30p. I don't know if it's good or bad.
Asmodian
3rd October 2013, 05:48
For deinterlacing I like 50p/60p better as it keeps all the motion information but it does take more cpu/gpu power because of the doubled frame rate.
GCRaistlin
5th October 2013, 00:05
For deinterlacing I like 50p/60p better as it keeps all the motion information but it does take more cpu/gpu power because of the doubled frame rate.
50p/60p seems to be incompatible with madVR for some videos. I tried it with A Hard Day's Night BluRay and got black screen (ReClock properties for 25p/30p is on the left, for 50p/60p is on the right):
http://i58.fastpic.ru/thumb/2013/1005/85/67b1b0a72f7532fba397b67d350ec085.jpeg (http://fastpic.ru/view/58/2013/1005/67b1b0a72f7532fba397b67d350ec085.png.html) http://i58.fastpic.ru/thumb/2013/1005/9a/4a4c5fc2b7d1ad22b4533543f5b3de9a.jpeg (http://fastpic.ru/view/58/2013/1005/4a4c5fc2b7d1ad22b4533543f5b3de9a.png.html)
I'm not sure if it is a bug or madVR works as expected.
detmek
5th October 2013, 08:20
Are you sure that your video is not telecined? In that case IVTC is better that deinterlace.
GCRaistlin
5th October 2013, 11:55
Are you sure that your video is not telecined?
It's 1920x1080i, MPEG-4 AVC, 29.97 fps. So I believe it is telecined, as well as any other NTSC video, right?
In that case IVTC is better that deinterlace.
Isn't IVTC a kind of deinterlacing? Wikipedia insists (https://en.wikipedia.org/wiki/Deinterlacing) that it is. So doesn't LAV do IVTC having [x] Enable Adaptive HW Deinterlacing? If no, do I have to enable deinterlacing option in madVR settings to perform IVTC with madVR? Do I have to manualy enable/disable deinterlacing in LAV Video in this case?
Nintendo Maniac 64
5th October 2013, 19:07
I like the Windows 98 color scheme you have there. :P I'm assuming that the OS is actually XP though?
In a related question to hardware requirements, I've been wondering - are CPU thread amounts greater than 2 used at all? In particular, if you have 4 cores, would the video decode on 1/2 of the cores, the deinterlacing would run on a 3rd core, and the video resizer run on a 4th core?
detmek
5th October 2013, 21:47
It's 1920x1080i, MPEG-4 AVC, 29.97 fps. So I believe it is telecined, as well as any other NTSC video, right?
Isn't IVTC a kind of deinterlacing? Wikipedia insists (https://en.wikipedia.org/wiki/Deinterlacing) that it is. So doesn't LAV do IVTC having [x] Enable Adaptive HW Deinterlacing? If no, do I have to enable deinterlacing option in madVR settings to perform IVTC with madVR? Do I have to manualy enable/disable deinterlacing in LAV Video in this case?
No, telecine is not the same as interlace. You can losslessly recover progressive video from telecined. You can not do that if video is interlaced.
Try to force madVR in film mode. Disable deinterlacing in LAV Video and try Video or Film mode in madVR, shortcut Ctrl+Alt+Shift+T.
GCRaistlin
6th October 2013, 14:09
I have played with madVR deinterlacing settings, but on Ctrl-Alt-Shift-T always got "deinterlacing off".
detmek
6th October 2013, 16:08
You have to press it a few times. It switches betweed "deinterlacing off", "Video mode" and "Film mode". "Film mode" should do IVTC, if I am not wrong.
GCRaistlin
13th October 2013, 19:36
The problem is that when I press it quickly enough, without a 1-2 sec pause, MPC-HC (or madVR) hangs or something similar happens - black screen, can't switch to other apps, mouse cursor moves with delay and so on. If I press it with a few sec delay it either always shows "deinterlacing off" or at first shows "deinterlacing off" and then "video mode". I can't switch to Film mode this way.
It's only with that BluRay, I can change between modes while playing a DVD.
GCRaistlin
9th April 2014, 00:00
I'd like to investigate deinterlacing vs IVTC question further. As far as I understand, deinterlacing could be performed (in order of video processing steps) with LAV (by GPU), with ffdshow (by CPU) or with madVR (by GPU). madVR can, besides that, do IVTC. So madVR seems to be the best choice. But unfortunately my system isn't fast enough for playing some videos with madVR so I'd prefer not to disable deinterlacing in LAV. But in case of IVTC video, won't LAV's deinterlacing "spoil" the video?
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.