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 Search this Thread Display Modes
Old 28th May 2015, 00:51   #2301  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
@AnimeViewer
BTW, the dump file is located in %localappdata%\MediaPlayerDotNet.exe.dump
Can you check if you have such a file please?
Zachs is offline   Reply With Quote
Old 28th May 2015, 00:53   #2302  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
Quote:
Originally Posted by Anime Viewer View Post
I paused a scene where there are a couple of different shades of red, but I'm not seeing a difference between it being enabled/disabled.
Does the video have to be running in Full Screen Exclusive Mode for the improvement to happen?
How about settings? Any particular ones that might make it stand out more, or where other effects might make it less noticeable? (For example: with or without render scripts running, with or without debanding, with or without dithering, with any particular Presentation API (D3D 11, 10.1, 9Ex), with any particular color settings (ex: PC Range BT 601, 709 or 2020, Full or Limited Output, 8,10,or 16 bit bit depth, using any particular up/down scalers?
Run it without render scripts. Bright fully saturated red is the easiest to see the changes.
EDIT: This is assuming the proper colorimetric has been used. If the encoder lied about it then that's a separate issue.

Last edited by Zachs; 28th May 2015 at 00:56.
Zachs is offline   Reply With Quote
Old 28th May 2015, 00:56   #2303  |  Link
Anime Viewer
Troubleshooter
 
Anime Viewer's Avatar
 
Join Date: Feb 2014
Posts: 339
Quote:
Originally Posted by Zachs View Post
@AnimeViewer
BTW, the dump file is located in %localappdata%\MediaPlayerDotNet.exe.dump
Can you check if you have such a file please?
Ah ha! I found it there. Here is the dump which I opened and copied from Notepad:

Code:
*** Thread 1 ***

Stack Trace:

Mpdn.VideoFrameServices.DxgiPresenter.DxgiPresentEx(IntPtr, Int32)
Mpdn.VideoFrameServices.DxgiPresenter.DxgiPresentEx(IntPtr, Int32)
DomainBoundILStubClass.IL_STUB_PInvoke(IntPtr, Int32)
Mpdn.D3D9VideoRenderer.FrameComposer.Dx11.FrameComposer.Present(Int64 ByRef)
Mpdn.D3D9VideoRenderer.VideoRenderer.PresentInternal(Int64 ByRef)
Mpdn.D3D9VideoRenderer.VideoRenderer.Present(Boolean, Boolean, SharpDX.Result ByRef, Int64 ByRef)
Mpdn.VideoPlayer.VideoPlayer.Present(Boolean, SharpDX.Result ByRef, Int64 ByRef)
Mpdn.VideoPlayer.VideoPlayer.WaitAndPresent(Int64, Int64, Boolean, Boolean, Int64 ByRef)
Mpdn.VideoPlayer.VideoPlayer.Present(Int64, Int64, Boolean, Int64 ByRef)
Mpdn.VideoPlayer.VideoPlayer.Present()
Mpdn.VideoPlayer.VideoPlayer.PresentSample(Mpdn.VideoPlayer.MediaSample)
Mpdn.VideoPlayer.VideoPlayer+<>c__DisplayClass2.<set_EnableFullScreen>b__0(Boolean)
Mpdn.VideoPlayer.VideoPlayer.SyncRendererInvoke(System.Action`1<Boolean>)
Mpdn.VideoPlayer.VideoPlayer.set_EnableFullScreen(Boolean)
MediaPlayerDotNet.MainForm.†††
††††()
MediaPlayerDotNet.MainForm.†††
††††›()
MediaPlayerDotNet.MainForm.†††
†††‡ˆŽ(System.Object, System.Windows.Forms.MouseEventArgs)
System.Windows.Forms.Control.WmMouseUp(System.Windows.Forms.Message ByRef, System.Windows.Forms.MouseButtons, Int32)
System.Windows.Forms.Control.WndProc(System.Windows.Forms.Message ByRef)
System.Windows.Forms.NativeWindow.Callback(IntPtr, Int32, IntPtr, IntPtr)
DomainBoundILStubClass.IL_STUB_ReversePInvoke(Int64, Int32, Int64, Int64)
System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG ByRef)
System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG ByRef)
DomainBoundILStubClass.IL_STUB_PInvoke(MSG ByRef)
System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr, Int32, Int32)
System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext)
System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext)
†††
†††‡•š.†††
†††‡•™.†††
†††‹•(System.Object)
†††
†††‡•š.†††
†††‡•™.†††
†††‡•›(System.Object)
<PrivateImplementationDetails>{B078818A-34A0-41B9-9995-5CD01146F517}.Main(System.String[])



-------------------------------------------------------------------------------------------


*** Thread 2 ***

Stack Trace:




-------------------------------------------------------------------------------------------


*** Thread 4 ***

Stack Trace:

System.Threading.WaitHandle.WaitOneNative(System.Runtime.InteropServices.SafeHandle, UInt32, Boolean, Boolean)
System.Threading.WaitHandle.InternalWaitOne(System.Runtime.InteropServices.SafeHandle, Int64, Boolean, Boolean)
Mpdn.Threading.TaskThread.DoWork()
System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
System.Threading.ThreadHelper.ThreadStart()




-------------------------------------------------------------------------------------------


*** Thread 10 ***

Stack Trace:

System.Windows.Forms.UnsafeNativeMethods.WaitMessage()
System.Windows.Forms.UnsafeNativeMethods.WaitMessage()
System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr, Int32, Int32)
System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext)
System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext)
System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
System.Threading.ThreadHelper.ThreadStart()




-------------------------------------------------------------------------------------------


*** Thread 13 ***

Stack Trace:

System.Threading.WaitHandle.WaitMultiple(System.Threading.WaitHandle[], Int32, Boolean, Boolean)
System.Threading.WaitHandle.WaitAny(System.Threading.WaitHandle[], Int32, Boolean)
Mpdn.VideoPlayer.DirectShowVideo.HandleEvents(Microsoft.Win32.SafeHandles.SafeWaitHandle, Microsoft.Win32.SafeHandles.SafeWaitHandle)
Mpdn.VideoPlayer.DirectShowVideo.HandleEvents(System.Object)
Mpdn.Threading.WorkerThread+<>c__DisplayClass6.<.ctor>b__4(System.Object)
System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
System.Threading.ThreadHelper.ThreadStart(System.Object)




-------------------------------------------------------------------------------------------


*** Thread 14 ***

Stack Trace:

System.Threading.WaitHandle.WaitMultiple(System.Threading.WaitHandle[], Int32, Boolean, Boolean)
System.Threading.WaitHandle.WaitAny(System.Threading.WaitHandle[], Int32, Boolean)
Mpdn.VideoPlayer.VideoPlayer.PresentLoop()
Mpdn.Threading.WorkerThread+<>c__DisplayClass2.<.ctor>b__0()
System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
System.Threading.ThreadHelper.ThreadStart()




-------------------------------------------------------------------------------------------


*** Thread 15 ***

Stack Trace:



System.Threading.Monitor.Enter(System.Object)
Mpdn.VideoPlayer.VideoPlayer.RenderLoop()
Mpdn.Threading.WorkerThread+<>c__DisplayClass2.<.ctor>b__0()
System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
System.Threading.ThreadHelper.ThreadStart()




-------------------------------------------------------------------------------------------


*** Thread 18 ***

Stack Trace:



System.Threading.Monitor.Enter(System.Object)
Mpdn.VideoPlayer.VideoPlayer.UpdateVideoFrame(Mpdn.VideoPlayer.MediaSample)
Mpdn.VideoPlayer.DirectShowVideo.Mpdn.VideoPlayer.ICallbackFilterCB.SampleCb(Int64, DirectShowLib.IMediaSample)
DomainBoundILStubClass.IL_STUB_COMtoCLR(Int64, IntPtr)



-------------------------------------------------------------------------------------------
__________________
System specs: Sager NP9150 SE with i7-3630QM 2.40GHz, 16 GB RAM, 64-bit Windows 10 Pro, NVidia GTX 680M/Intel 4000 HD optimus dual GPU system. Video viewed on LG notebook screen and LG 3D passive TV.
Anime Viewer is offline   Reply With Quote
Old 28th May 2015, 01:01   #2304  |  Link
ryrynz
Registered User
 
ryrynz's Avatar
 
Join Date: Mar 2009
Posts: 3,697
Quote:
Originally Posted by Anime Viewer View Post
I paused a scene where there are a couple of different shades of red, but I'm not seeing a difference between it being enabled/disabled.
I've just done a number of comparisons on fairly red scenes and the changes are made on edges mostly. I've found the changes on either brownish or whiteish edges/areas, but yeah the changes are very subtle.. most of the time you actually won't notice them.
ryrynz is offline   Reply With Quote
Old 28th May 2015, 01:06   #2305  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
Quote:
Originally Posted by Anime Viewer View Post
Ah ha! I found it there. Here is the dump which I opened and copied from Notepad:
Right. Just as I feared.
I'll continue this in PM with you since it looks like it's specific to your Optimus system only.
Zachs is offline   Reply With Quote
Old 28th May 2015, 01:29   #2306  |  Link
ryrynz
Registered User
 
ryrynz's Avatar
 
Join Date: Mar 2009
Posts: 3,697
Quote:
Originally Posted by ryrynz View Post
but yeah the changes are very subtle.. most of the time you actually won't notice them.
This is the best example of the changes chroma reconstruction makes I've seen so far. The changes are certainly more noticeable with sharper resizers (lanczos, NNEDI3) These were taken using Lanzcos 16 tap AR.
The whites really do lighten up here, probably one of the best examples I could have hoped to find as all other changes have been relatively minor.

http://screenshotcomparison.com/comparison/128955

Last edited by ryrynz; 28th May 2015 at 01:35.
ryrynz is offline   Reply With Quote
Old 28th May 2015, 01:38   #2307  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 8,623
so it tries to counter the tons of artifacts from lanczos 8/16?
huhn is offline   Reply With Quote
Old 28th May 2015, 01:45   #2308  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
No. It uses the information that would've otherwise been disposed off so it gives better quality.
Zachs is offline   Reply With Quote
Old 28th May 2015, 01:49   #2309  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 8,623
Quote:
Originally Posted by Zachs View Post
No. It uses the information that would've otherwise been disposed off so it gives better quality.
why is lanczos 16 is needed than to show something off there must be better examples.
huhn is offline   Reply With Quote
Old 28th May 2015, 01:57   #2310  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
Lanczos 16 causes more values to go out of range after scaling so the effect is more profound.
Zachs is offline   Reply With Quote
Old 28th May 2015, 02:07   #2311  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
Quote:
Originally Posted by Anime Viewer View Post
As long as I set the Video Input Colormetric to one of the PC Ranges it looks fine, but if my system mis-detects the video, and sets it to one of the TV Ranges (while set to automatic) then I get the results I previously posted.
Righto! I found a bug in MPDN's automatic colorimetric detection logic! Specifically if the 720p clip doesn't have actual a height of 720 pixels, it assumes it's not HD!

This has been fixed in the next release.

Many thanks to ryrynz for discovering this.
Zachs is offline   Reply With Quote
Old 28th May 2015, 02:10   #2312  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 8,623
does it work with RGB sources or 4.4:4 source?
huhn is offline   Reply With Quote
Old 28th May 2015, 02:22   #2313  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 8,623
here an extreme example:

http://screenshotcomparison.com/comparison/128957

i crippled a RGB source to 4:2:0 to make it work.

it turns some pixel totally black that shouldn't be black but i guess it gives an idea what it does.
huhn is offline   Reply With Quote
Old 28th May 2015, 02:23   #2314  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
Depending on how you're scaling your chroma. If you scale it to target size directly with something like lanczos 16 then it may have some effect. I suspect you won't be able to see any difference but I haven't tested this myself.
Zachs is offline   Reply With Quote
Old 28th May 2015, 02:25   #2315  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
Quote:
Originally Posted by huhn View Post
here an extreme example:

http://screenshotcomparison.com/comparison/128957

i crippled a RGB source to 4:2:0 to make it work.

it turns some pixel totally black that shouldn't be black but i guess it gives an idea what it does.
Is your RGB source closer to CR on or off?

EDIT: If you look closely at the disabled icons on the sidebar, you'll find CR on to do exactly what was intended to. There's no colour bleed at all and it shows a clear alternating pattern that I would image what the original looked like.

Last edited by Zachs; 28th May 2015 at 02:31.
Zachs is offline   Reply With Quote
Old 28th May 2015, 02:28   #2316  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 8,623
Quote:
Originally Posted by Zachs View Post
Is your RGB source closer to CR on or off?
yes and no.

the luma is closer the chroma is way off with CR on

EDIT: let me say it with other more correct words.

it removes chroma bleeding and under saturates chroma. most parts where chroma details shouldn't by they are not there anymore so the "luma" looks way more correct.

Last edited by huhn; 28th May 2015 at 02:33.
huhn is offline   Reply With Quote
Old 28th May 2015, 02:37   #2317  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
Well it's done its job then!
But can you post the RGB and crippled version of that clip somewhere so we could take a look at it to see if we could improve it?
Zachs is offline   Reply With Quote
Old 28th May 2015, 02:38   #2318  |  Link
ryrynz
Registered User
 
ryrynz's Avatar
 
Join Date: Mar 2009
Posts: 3,697
Hey Huhn can you link the 4:2:0 and the RGB source? I think that might be useful for tweaking chroma.

I guess ideally I'd really like to get my hands on a proper chroma test pattern to compare in that way to find accurate to the source chroma upscaler settings.
ryrynz is offline   Reply With Quote
Old 28th May 2015, 02:43   #2319  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 8,623
here is the RGB version.

http://www.file-upload.net/download-...0-001.mkv.html

i forced lavfilter to NV12 output to get a 4:2:0 video of this so i don't have an encode of it.

but not sure if a normal video should be judge on a pixel art video like this.
huhn is offline   Reply With Quote
Old 28th May 2015, 02:45   #2320  |  Link
Zachs
Suptitle, MediaPlayer.NET
 
Join Date: Nov 2001
Posts: 1,721
The same principal applies to normal video - chroma bleed is never desirable.
Zachs is offline   Reply With Quote
Reply

Tags
direct3d, mpdn, nnedi3, opencl, reclock

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 06:23.


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