Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > New and alternative video codecs

Reply
 
Thread Tools Search this Thread Display Modes
Old 24th September 2013, 23:40   #1  |  Link
GCRaistlin
Registered User
 
GCRaistlin's Avatar
 
Join Date: Jun 2006
Posts: 353
ffdshow Resize & aspect filter: hardware requirements

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.
  1. Does Resize & aspect filter use only CPU?
  2. Is my configuration really too weak for enabling Resize filter?
  3. For madVR scaling instead of ffdshow's Resize, what filters do you recommend to use - same (Spline/Bicubic - which one?) or others (Lanczos)?
Attached Images
  
__________________
Windows 8.1 x64

Magically yours
Raistlin
GCRaistlin is online now   Reply With Quote
Old 27th September 2013, 18:39   #2  |  Link
vood007
Registered User
 
Join Date: Jan 2011
Posts: 84
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.
vood007 is offline   Reply With Quote
Old 27th September 2013, 20:32   #3  |  Link
GCRaistlin
Registered User
 
GCRaistlin's Avatar
 
Join Date: Jun 2006
Posts: 353
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:
Quote:
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.
  1. In case of resizing with ffdshow, should I make any changes to my current madVR scaling settings:
  2. What you think about the following Resize & aspect settings for 1280x1024 resolution:

    Will they replace my current Blur & NR settings (enabled for all kinds of video except 720p and 1080p):

    ?
__________________
Windows 8.1 x64

Magically yours
Raistlin
GCRaistlin is online now   Reply With Quote
Old 27th September 2013, 21:43   #4  |  Link
clsid
*****
 
Join Date: Feb 2005
Posts: 5,646
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.
__________________
MPC-HC 2.2.1
clsid is offline   Reply With Quote
Old 27th September 2013, 22:10   #5  |  Link
GCRaistlin
Registered User
 
GCRaistlin's Avatar
 
Join Date: Jun 2006
Posts: 353
Quote:
Originally Posted by clsid View Post
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:


Quote:
Originally Posted by clsid View Post
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!).

Quote:
Originally Posted by clsid View Post
while other prefer keeping detail and don't mind a little blocking.
I'm one of these "others".

Quote:
Originally Posted by clsid View Post
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...
__________________
Windows 8.1 x64

Magically yours
Raistlin
GCRaistlin is online now   Reply With Quote
Old 27th September 2013, 22:39   #6  |  Link
vood007
Registered User
 
Join Date: Jan 2011
Posts: 84
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

Last edited by vood007; 27th September 2013 at 22:43.
vood007 is offline   Reply With Quote
Old 27th September 2013, 22:45   #7  |  Link
detmek
Registered User
 
Join Date: Aug 2009
Posts: 463
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.

Last edited by detmek; 27th September 2013 at 22:45. Reason: too slow
detmek is offline   Reply With Quote
Old 27th September 2013, 23:07   #8  |  Link
GCRaistlin
Registered User
 
GCRaistlin's Avatar
 
Join Date: Jun 2006
Posts: 353
I'd prefer the renderer that uses GPU instead of CPU for scaling. Is madVR the one?

Quote:
Originally Posted by detmek View Post
- deinterlace only if video is interlaced.
I thought that there's a flag that controls it automatically. Should I enable deinterlacing only manually?

Quote:
Originally Posted by detmek View Post
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?

Quote:
Originally Posted by detmek View Post
- 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?

Quote:
Originally Posted by detmek View Post
- you said you like details but you use Blur and NR (Noise Reduction) which kills details
Yeah, let's disable it .

Quote:
Originally Posted by detmek View Post
You can use Shaders like Sharpen Complex (v2) or LumaSharpen (custom shader).
Where can I find it?
__________________
Windows 8.1 x64

Magically yours
Raistlin
GCRaistlin is online now   Reply With Quote
Old 27th September 2013, 23:31   #9  |  Link
GCRaistlin
Registered User
 
GCRaistlin's Avatar
 
Join Date: Jun 2006
Posts: 353
Should I disable Sharpen ffdshow filter if I use madVR scaling? Are any changes of madVR settings needed?
__________________
Windows 8.1 x64

Magically yours
Raistlin
GCRaistlin is online now   Reply With Quote
Old 28th September 2013, 05:04   #10  |  Link
vood007
Registered User
 
Join Date: Jan 2011
Posts: 84
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.
vood007 is offline   Reply With Quote
Old 28th September 2013, 09:53   #11  |  Link
GCRaistlin
Registered User
 
GCRaistlin's Avatar
 
Join Date: Jun 2006
Posts: 353
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?

Quote:
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 .
__________________
Windows 8.1 x64

Magically yours
Raistlin

Last edited by GCRaistlin; 28th September 2013 at 18:55.
GCRaistlin is online now   Reply With Quote
Old 28th September 2013, 10:18   #12  |  Link
detmek
Registered User
 
Join Date: Aug 2009
Posts: 463
Quote:
Originally Posted by GCRaistlin View Post
I'd prefer the renderer that uses GPU instead of CPU for scaling. Is madVR the one?
Yes, madVR uses GPU for its work.

Quote:
Originally Posted by GCRaistlin View Post
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.

Quote:
Originally Posted by GCRaistlin View Post
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.

Quote:
Originally Posted by GCRaistlin View Post
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

Quote:
Originally Posted by GCRaistlin View Post
Yeah, let's disable it .
Good.

Quote:
Originally Posted by GCRaistlin View Post
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.
Code:
/*
   _____________________
     
     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;

}
Quote:
Originally Posted by GCRaistlin View Post
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.
Quote:
Originally Posted by vood007 View Post
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.
detmek is offline   Reply With Quote
Old 28th September 2013, 19:38   #13  |  Link
GCRaistlin
Registered User
 
GCRaistlin's Avatar
 
Join Date: Jun 2006
Posts: 353
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.
__________________
Windows 8.1 x64

Magically yours
Raistlin
GCRaistlin is online now   Reply With Quote
Old 28th September 2013, 22:00   #14  |  Link
detmek
Registered User
 
Join Date: Aug 2009
Posts: 463
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.
detmek is offline   Reply With Quote
Old 28th September 2013, 22:05   #15  |  Link
GCRaistlin
Registered User
 
GCRaistlin's Avatar
 
Join Date: Jun 2006
Posts: 353
Is LumaSharpen intended to be used together with (after) Sharpen Complex 2?
__________________
Windows 8.1 x64

Magically yours
Raistlin
GCRaistlin is online now   Reply With Quote
Old 28th September 2013, 23:43   #16  |  Link
detmek
Registered User
 
Join Date: Aug 2009
Posts: 463
No, LumaSharpen should be used if you think that Sharpen Complex has too strong effect.
detmek is offline   Reply With Quote
Old 1st October 2013, 22:50   #17  |  Link
GCRaistlin
Registered User
 
GCRaistlin's Avatar
 
Join Date: Jun 2006
Posts: 353
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:

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?)
  • Postprocessing filter. Only for videos of the following FOURCC codes:
    Code:
    3IV1;3IV2;3IVD;3VID;DIV3;DIV4;DIVX;DX50;FVFW;M4CC;M4S2;MP42;MP43;MP4V;MPG4;NDIG;PVMM;RMP4;SEDG;XVID
  • Deband filter (threshold 1.02 for 1080p, 1.05 for 720p, 1.2 for others)
Output and RGB conversion settings are the same for all video formats:


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:

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:

50p/60p:

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.
__________________
Windows 8.1 x64

Magically yours
Raistlin

Last edited by GCRaistlin; 2nd October 2013 at 11:21. Reason: Postprocessing filter for DivX
GCRaistlin is online now   Reply With Quote
Old 3rd October 2013, 05:48   #18  |  Link
Asmodian
Registered User
 
Join Date: Feb 2002
Location: San Jose, California
Posts: 4,407
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.
Asmodian is offline   Reply With Quote
Old 5th October 2013, 00:05   #19  |  Link
GCRaistlin
Registered User
 
GCRaistlin's Avatar
 
Join Date: Jun 2006
Posts: 353
Quote:
Originally Posted by Asmodian View Post
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):

I'm not sure if it is a bug or madVR works as expected.
__________________
Windows 8.1 x64

Magically yours
Raistlin
GCRaistlin is online now   Reply With Quote
Old 5th October 2013, 08:20   #20  |  Link
detmek
Registered User
 
Join Date: Aug 2009
Posts: 463
Are you sure that your video is not telecined? In that case IVTC is better that deinterlace.
detmek is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 11:26.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.