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.

Domains: forum.doom9.org / forum.doom9.net / forum.doom9.se

 

Go Back   Doom9's Forum > Hardware & Software > Software players

Reply
 
Thread Tools Display Modes
Old 10th November 2014, 13:23   #381  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
Quote:
Originally Posted by Dazog View Post
Can I request a few more features?

A "On Top while playing only" setting.

File type associations in options.

Also in the minimalist mode, no way to tell how far we are into a video if we have to close it and come back and resume from that point.
I guess if you're not playing, then perhaps just minimize the MPDN window?

File associations is on my todo list, haven't had time to get to that.

Can you elaborate a little on what exactly you mean with the last one? If you move your mouse over the seek bar, doesn't that show you how far into the video?

Quote:
Originally Posted by kostik View Post
Is there gonna be pan and scan? I like your player so far but can't get along with it without having a way to zoom video
thanks
I have plans to do pan and scan that allows you to fill screen (i.e. no letterboxing) only. Or do you want something more than that?
Zachs is offline   Reply With Quote
Old 10th November 2014, 13:37   #382  |  Link
kostik
Registered User
 
Join Date: Jul 2007
Posts: 161
Quote:
Originally Posted by Zachs View Post
I guess if you're not playing, then perhaps just minimize the MPDN window?

File associations is on my todo list, haven't had time to get to that.

Can you elaborate a little on what exactly you mean with the last one? If you move your mouse over the seek bar, doesn't that show you how far into the video?



I have plans to do pan and scan that allows you to fill screen (i.e. no letterboxing) only. Or do you want something more than that?
yeap to fill the screen is great. Thanks
kostik is offline   Reply With Quote
Old 10th November 2014, 19:31   #383  |  Link
Anima123
Registered User
 
Join Date: Jun 2005
Posts: 513
FineSharp has the following steps
Code:
ToYUV
RemoveGrain11
RemoveGrain4
FineSharpA
FineSharpB
FineSharpC
ToRGB
I wonder if the first and last step are obsolete when used within MPDN's script chain?
Anima123 is offline   Reply With Quote
Old 10th November 2014, 21:20   #384  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
No. If it is applicable to mpchc it's applicable to mpdn.
When you place a pre resize image processor and a post resize one in the chain, mpdn converts YUV to RGB before invoking the scripts. MPDN then expects the result of the render chain to be also in RGB.
Zachs is offline   Reply With Quote
Old 11th November 2014, 04:47   #385  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
RenderScript improvements now available

I've updated GitHub with a bunch of changes we (Shiandow and I) have made to improve the render scripts.

Feel free to head over to grab the updated version.

Cheers.

EDIT: Added linear light scaling support via ImageProcessor with the following render script chain:
ImageProcessor - When downscaling video: ConvertToLinearLight.hlsl
ImageProcessor - (Your Pre-scaled Shaders - swap with above if you want shaders to work in gamma light)
Resizer - Resize to: 100% of target size
ImageProcessor - (Your Post-scaled Shaders - swap with below if you want shaders to work in gamma light)
ImageProcessor - When downscaling video: ConvertToGammaLight.hlsl

Last edited by Zachs; 11th November 2014 at 06:43.
Zachs is offline   Reply With Quote
Old 11th November 2014, 08:00   #386  |  Link
Anima123
Registered User
 
Join Date: Jun 2005
Posts: 513
You guys are awesome!

Now I am encounter a new problem when playing a 720p file with full HD screen. Namely with NEDI and linear light, when play it in windows mode (target size is the same as original size), MPDN used to avoid NEDI in that case, now it's in full chain mode, which means every script in the chain is active.

Any thoughts to avoid unnecessary calculation power consumption in that case?

BTW my script chain is like the following:
Code:
NEDI
ImageProcessor - When downscaling video: ConvertToLinearLight.hlsl
esizer - Resize to: 100% of target size
ImageProcessor - When downscaling video: ConvertToGammaLight.hlsl
Edit: So is with 1080p file played in full HD screen resolution. Or I just has the wrong settings with NEDI?

Edit2: The other issue I noticed is that when use linear light without NEDI, playing 1080p file in windows mode, in which case it's downscaling after Resize, which triggers ConvertToGammaLight.hlsl, yet not trigger the ConvertToLinearLight.hlsl in first step, causes the color in windows mode like washed out.

Last edited by Anima123; 11th November 2014 at 08:11.
Anima123 is offline   Reply With Quote
Old 11th November 2014, 09:18   #387  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
I think there's a bug that I've fixed in the best version of mpdn that is causing that.

To see if it is that bug, once you have set up the chain can you restart mpdn before testing?
Zachs is offline   Reply With Quote
Old 11th November 2014, 10:44   #388  |  Link
Shiandow
Registered User
 
Join Date: Dec 2013
Posts: 753
I think I've managed to replicate this bug, it seems to occur when you add the shaders during playback, without resizing. I'll have a quick look to see if I can find what causes it.

Edit: Found it, apparently we forgot to allocate textures when Image Processor updated the filter, again. Let's try a more general fix this time.

Last edited by Shiandow; 11th November 2014 at 10:59.
Shiandow is offline   Reply With Quote
Old 11th November 2014, 10:47   #389  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
This should be fixed in the version where mpdn triggers output size changed event when apply button is pressed.

Haven't got time right now to release that version yet. But will do ASAP.

Last edited by Zachs; 11th November 2014 at 10:51.
Zachs is offline   Reply With Quote
Old 11th November 2014, 11:03   #390  |  Link
Shiandow
Registered User
 
Join Date: Dec 2013
Posts: 753
I actually prefer the method I just proposed on git, maybe have a look?
Shiandow is offline   Reply With Quote
Old 11th November 2014, 11:40   #391  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
I'll take a look.
But MPDN calls output size changed internally anyway to activate its settings
Anyway I'll take a look at git.

EDIT: I've merged your changes to master.

Last edited by Zachs; 11th November 2014 at 21:57.
Zachs is offline   Reply With Quote
Old 11th November 2014, 22:06   #392  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
Quote:
Originally Posted by Anima123 View Post
Now I am encounter a new problem when playing a 720p file with full HD screen. Namely with NEDI and linear light, when play it in windows mode (target size is the same as original size), MPDN used to avoid NEDI in that case, now it's in full chain mode, which means every script in the chain is active.

Any thoughts to avoid unnecessary calculation power consumption in that case?

BTW my script chain is like the following:
Code:
NEDI
ImageProcessor - When downscaling video: ConvertToLinearLight.hlsl
esizer - Resize to: 100% of target size
ImageProcessor - When downscaling video: ConvertToGammaLight.hlsl
Edit: So is with 1080p file played in full HD screen resolution. Or I just has the wrong settings with NEDI?

Edit2: The other issue I noticed is that when use linear light without NEDI, playing 1080p file in windows mode, in which case it's downscaling after Resize, which triggers ConvertToGammaLight.hlsl, yet not trigger the ConvertToLinearLight.hlsl in first step, causes the color in windows mode like washed out.
Your last issue is fixed with latest render script / MPDN version.

With regards to the first issue, ImageProcessor isn't compatible to be used in that manner yet - When downscaling 'video' means comparing video size with target size, while NEDI doubles the video size before feeding it into ImageProcessor. What is supported at the moment is to have NEDI come after ImageProcessor. EDIT: Scratch that, your usage should be fine. Don't know what I was thinking. If video is being downscaled then NEDI shouldn't be active. In which case, there shouldn't be any problem with using video size vs target size to find out if we're downscaling.

EDIT2: There's still a bug that causes NEDI to be always active when used in that way. I'll fix that.

EDIT3: Fixed in git.

Last edited by Zachs; 11th November 2014 at 22:26.
Zachs is offline   Reply With Quote
Old 11th November 2014, 22:25   #393  |  Link
Anima123
Registered User
 
Join Date: Jun 2005
Posts: 513
Shiandow, is there any quality-wise problem with NEDI handled after being converted in linear light, as Zachs suggested right now?
Anima123 is offline   Reply With Quote
Old 11th November 2014, 22:31   #394  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
Quote:
Originally Posted by Anima123 View Post
Shiandow, is there any quality-wise problem with NEDI handled after being converted in linear light, as Zachs suggested right now?
NEDI will be disabled if you don't force enable it in downscaling cases. It won't make a difference.
Zachs is offline   Reply With Quote
Old 11th November 2014, 23:08   #395  |  Link
Shiandow
Registered User
 
Join Date: Dec 2013
Posts: 753
Quote:
Originally Posted by Anima123 View Post
Shiandow, is there any quality-wise problem with NEDI handled after being converted in linear light, as Zachs suggested right now?
Well, as Zachs said there's no problem with the chain you posted since NEDI and linear light conversion won't be on at the same time.

That said I wouldn't recommend performing NEDI in linear light, it tends to make the artefacts more noticeable. And as far as I know there's not much benefit in doing NEDI in linear light. However I could be mistaken so you should probably at least give it a try if you want to be sure.
Shiandow is offline   Reply With Quote
Old 12th November 2014, 05:44   #396  |  Link
Anima123
Registered User
 
Join Date: Jun 2005
Posts: 513
I tried the latest version of the player and the script, it's behavior is still not ideal to me.

Let's assume Video Size as the original size of the video, Doubled Video Size is doubled size via NEDI, Target Size is the screen resolution (full screen) mode or a smaller one (windows mode), the following is the ideal behavior in my mind:
Code:
if (Video Size >= Target Size) { //which means downscaler should be used
    disable NEDI;
    trigger linear light if downscaler is used for real;
}
else { // Video Size < Target Size, in which case upscaler should be in use
    enable NEDI;
    if (Doubled Video Size  > Target Size) // in which case the downscaler should be in use
        trigger linear light if configured;
}
Any idea if this can be down?

The current latest version does not act like the ideal case, hence there's potential bug to me.
Anima123 is offline   Reply With Quote
Old 12th November 2014, 06:05   #397  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
I have an idea that will do that but I'll discuss with Shiandow in PM first.
Zachs is offline   Reply With Quote
Old 12th November 2014, 12:19   #398  |  Link
feelingblue
Registered User
 
Join Date: Nov 2011
Posts: 48
I am very happy that after my suggestion to use the finesharp shader you have been considering to make it work better. thanks!!
For my setup is probably the best method of sharpness.

A little suggestion, is possible to implement various chroma resampling filters as Robidoux, blackman, Gaussian and Hermite?
Some of them are simlpy interpretation of bicubic style resize.
feelingblue is offline   Reply With Quote
Old 13th November 2014, 06:09   #399  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
Quote:
Originally Posted by feelingblue View Post
I am very happy that after my suggestion to use the finesharp shader you have been considering to make it work better. thanks!!
For my setup is probably the best method of sharpness.

A little suggestion, is possible to implement various chroma resampling filters as Robidoux, blackman, Gaussian and Hermite?
Some of them are simlpy interpretation of bicubic style resize.
MPDN's Softcubic and Bicubic covers a lot of the 'bicubic' style resize via the softness/sharpness parameter. Not sure about blackman but the last I tried gaussian, it's so similar to softcubic it's quite unnecessary.
Zachs is offline   Reply With Quote
Old 13th November 2014, 06:34   #400  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
Quote:
Originally Posted by Anima123 View Post
I tried the latest version of the player and the script, it's behavior is still not ideal to me.

Let's assume Video Size as the original size of the video, Doubled Video Size is doubled size via NEDI, Target Size is the screen resolution (full screen) mode or a smaller one (windows mode), the following is the ideal behavior in my mind:
Code:
if (Video Size >= Target Size) { //which means downscaler should be used
    disable NEDI;
    trigger linear light if downscaler is used for real;
}
else { // Video Size < Target Size, in which case upscaler should be in use
    enable NEDI;
    if (Doubled Video Size  > Target Size) // in which case the downscaler should be in use
        trigger linear light if configured;
}
Any idea if this can be down?

The current latest version does not act like the ideal case, hence there's potential bug to me.
The GUI script chain creator is always going to have limitations - it's just plain unintuitive to use for complicated situations.

As such, MPDN v2.9.3 allows you to write your own chain in a script, as an example:

PHP Code:
            protected override RenderScript[] GetScriptChain()
            {
                var 
result = new List<RenderScript>();

                
// Pre resize shaders, followed by NEDI image doubler
                
result.Add(PreProcess);

                var 
size Renderer.VideoSize;

                
// Use NEDI once only.
                // Note: To use NEDI as many times as required to get the image past target size,
                //       Change the following *if* to *while*
                
if (IsUpscalingFrom(size)) // See RenderScriptChain for other comparer methods
                
{
                    
result.Add(Nedi);
                    
size DoubleSize(size);
                }

                if (
IsDownscalingFrom(size))
                {
                    
// Use linear light for downscaling
                    
result.Add(ToLinear);
                    
result.Add(ResizeToTarget);
                    
result.Add(ToGamma);
                }
                else
                {
                    
// Otherwise, scale with gamma light
                    
result.Add(ResizeToTarget);
                }

                
// Post resize shaders
                
result.Add(PostProcess);

                return 
result.ToArray();
            } 
To activate it, choose the "Custom Render Script Chain" script. It must be the sole script in the chain, or its behaviour would be undefined.

Get the latest scripts from github. Example is shown in MyRenderScripts.cs.

You can customize it beyond what is shown by checking for VideoSize - for SD, do X, for super small video size, do Y, for HD, do Z.

Feel free to share your script in the forum!

Last edited by Zachs; 13th November 2014 at 08:26.
Zachs is offline   Reply With Quote
Reply

Tags
direct3d, mpdn, nnedi3, opencl, reclock

Thread Tools
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 07:01.


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