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. |
23rd January 2014, 16:22 | #21581 | Link | |
Registered User
Join Date: Oct 2011
Posts: 204
|
Quote:
I don't know where you get the audio bitdepth idea from, but higher audio bitdepth after e.g. a volume change would be similar to increased video bitdepth after e.g. debanding... |
|
23rd January 2014, 16:23 | #21582 | Link | |
Registered User
Join Date: Sep 2004
Posts: 146
|
Quote:
Actually I don't use it by myself and don't care too. Someone told me the problem. So I just tried it and found a same problem. Enabling demo mode makes it figure out easily. |
|
23rd January 2014, 16:54 | #21583 | Link |
Registered Developer
Join Date: Sep 2006
Posts: 9,140
|
Using the demo mode (I used split screen) to check whether DXVA scaling is active is actually good idea, thanks. I've now tried to reproduce the problem on my PC. I have here also Windows 8.1 and an AMD 7770. DXVA scaling works just fine here in both windowed and fullscreen exclusive modes. Are you sure that in fullscreen exclusive mode zooming/scaling was actually active/needed? madVR only uses DXVA scaling if it's necessary. If you play 1080p content on a 1080p display, madVR does not apply scaling, so in that case also demo mode can't work, because DXVA is not used at all. And the demo mode can only work if the video runs through DXVA, because otherwise the AMD drivers have no influence on what madVR is doing. So try forcing scaling to become active, by zooming into the image a bit.
|
23rd January 2014, 18:02 | #21584 | Link | |
Registered User
Join Date: Sep 2004
Posts: 146
|
Quote:
However, can you make an option to force to enable DxVA2 scaler in such case if possible? I'm not really a fan of post-processing of AMD graphic processor but there are several people eager to use it, not because of the dxva2 scaler but because of the video processing provided by the graphic vendor. Or is there any way to independently use it while using madVR's scalers? |
|
23rd January 2014, 18:15 | #21586 | Link | ||
Registered Developer
Join Date: Sep 2006
Posts: 9,140
|
Quote:
In the long run madVR may give you alternative algorithms to what those AMD algorithms do, probably with higher quality (but slower performance). Quote:
Please read the "madVR\license.txt" carefully to see what is allowed and what is not allowed. Especially the paragraph "3RD PARTY SOFTWARE RESTRICTIONS" may be of interest to you. |
||
23rd January 2014, 18:16 | #21587 | Link |
Registered Developer
Join Date: Sep 2006
Posts: 9,140
|
madVR v0.87.0 released
http://madshi.net/madVR.zip Code:
* added debanding algorithm, based on improved version of "flash3kyuu_deband" * added file name tag "deband=off|low|medium|high" * added automatic detection for fades from/to black or white (for debanding) * added support for using OpenCL with NVidia, AMD and Intel GPUs * added DXVA surface splitting via OpenCL (only AMD and Intel GPUs) * added error diffusion algorithm (requires OpenCL) * added NNEDI3 chroma upsampling (requires OpenCL) * added NNEDI3 image doubling/quadrupling (requires OpenCL) * added flexible settings profile functionality * added file name tag "profile='profile name'" * added IMadVRSettings2 interface to enumerate settings and manage profiles * settings can now be edited without madVR running (only on local PC) * madNvLevelsTweaker -> madLevelsTweaker now also works for Intel GPUs * madVR doesn't dither, anymore, when a pixel doesn't need dithering * added Intel driver bug workaround for "use separate device for presentation" * added madHcNet64.dll to allow madTPG automation from 64bit calibration tools * added API for asking madVR about the output levels (TV, PC, custom) * fixed: full backbuffer queue slowed rendering down * fixed: madTPG sometimes didn't update to newly requested test pattern color * fixed: madTPG dithering produced blocking artifacts * fixed: when upscaling exactly 2x, AR filter wasn't active for blue channel * fixed: ArgyllCMS/HCFR disabling the 3dlut didn't work * fixed: LAV Video Decoder sending v210 produced corrupted image * improved frame cropping support * improved windowproc hook stability * a couple of very small pixel shader performance improvements * optimized madVR default settings * improved madVR tray icon menu looks on newer OSs * tags now require "tag=value" or "tag:value"; "tag value" no longer accepted * disabled automatic DCI-P3 detection through 2048 video width (1) I've released this version "early", meaning there are still 2 features missing I was planning to add into v0.87.0. One of them is convergence correction for front projection. I will probably add those features in the next days/weeks and release them as v0.87.something. Also I've ignored most of the bugs you guys reported because I wanted to finally finish the new features. I'll go do bug fixing after I've finished all the planned v0.87.0 features, so bear with me until then... (2) The debanding feature is nearly unchanged compared to the last test build. There's just one added "trade quality for performance" option now which allows you to disable the going back to re-render old frames, when a fade in/out is detected. Practically this "trade" option results in the stronger debanding setting being used for the whole fade in/out except for the first 5 frames, which will still use the default debanding strength. (3) The latest AMD drivers *FINALLY* added OpenCL <-> D3D9 interop. I had been waiting for this for a looong time. So finally I can now use OpenCL in madVR with Intel, NVidia and AMD GPUs. You will need the latest AMD drivers, though. It won't work with older drivers. (4) For best OpenCL performance, currently AMD seems to be the way to go. (5) Thanks to OpenCL I can now process DXVA2 NV12 data coming from native DXVA decoders, or coming from DXVA2 deinterlacing, losslessly and directly on the GPU. Sadly, this only works for Intel and AMD GPUs. So with NVidia I still have to use copyback, or alternatively live with a small chroma resolution loss. FWIW, I've found that using OpenCL to process DXVA2 NV12 surfaces seems to increase rendering times on Intel GPUs in windowed mode, while it seems to decrease rendering times on Intel GPUs in FSE mode. So I'm not fully sure whether it's a performance improvement or not. Maybe you guys could test that and report back. (6) The OpenCL error diffusion algorithm can be used instead of the default random dithering (see "trade quality for performance"). Error diffusion should produce similar smoothness as random dithering, but error diffusion should have a lower noise floor. I had to do some minor compromises to implement this on a GPU with decent performance, so quality might be ever so slightly lower than when doing error diffusion sequentially via CPU, but I think it's not too bad. Unfortunately performance is not too great, so make your own decision on whether you like it and whether the performance cost is worth it for you. (7) NNEDI3 is a somewhat complicated topic, so I'll reserve an extra post for that. (8) The new profiling support is very flexible. By default the settings look exactly the same way you're used to. But you can now select any settings page (for which it makes sense) and activate profiles for it. You can also group multiple settings pages into one profile group, if you prefer. Each profile group can have an infinite number of profiles. And there's a complicated profile rule set (simplified script language) which lets you decide which profile gets auto selected in which situation. E.g. you can have one profile auto selected for SD content, one for HD content, one for MPEG2 sources, one for h264 sources etc etc. The possilibities are almost endless. Have fun playing with this! (9) Intel users can now use the latest drivers with the "use a separate device for presentation", but you have to activate a custom border color for this to work. A black border color makes the bug appear. A gray border color will make it go away. Since many media players don't allow you to specify a custom border color, you can force a border color by creating the following registry key: HKEY_CURRENT_USER\Software\madshi\madVR\BorderColor DWORD 1 You can set this value to any RGB color you want. I'd suggest value 1, which is almost black (Red=0, Green=0, Blue=1). With this border color the Intel driver bug does not occur, anymore. Last edited by madshi; 24th January 2014 at 13:03. |
23rd January 2014, 18:17 | #21588 | Link |
Registered Developer
Join Date: Sep 2006
Posts: 9,140
|
So let's discuss NNEDI3:
(1) NNEDI3 is a resolution doubler. It can double resolution in either X or Y direction. Of course you can run it multiple times, so you can double both X and Y resolution, once, twice, thrice, whatever. Of course you can also double X twice and not double Y at all. Whatever you like. NNEDI3 cannot do anything else except exact 2x resolution doubling. (2) NNEDI3 has a number of very nice advantages: It is quite sharp, has very low aliasing levels, produces almost no ringing or similar artifacts and has a very clean look to it. Due to the lack of artifacts you can also apply it multiple times to e.g. quadruple image resolution without any problems, or you can followup NNEDI3 upscaling with a different up- or downscaling algorithm. (3) NNEDI3 unfortunately also has disadvantages: It is relatively slow. It can't do anything other than 2x resolution doubling. It shifts the image by half a pixel (compared to other upscaling algorithms). And it can sometimes introduce weird artifacts that are unknown from linear resamplers like Lanczos or Jinc. Let's look at a first test image (Monsters Inc. Blu-Ray, run time 0:13:45), upscaled from 1080p to UHD: Looking at this image, NNEDI3 seems to combine the positive attributes of Lanczos and Jinc upscaling: It's even sharper than Lanczos, has even lower aliasing levels than Jinc and has the lowest levels of artifacts. With this image I'd say it beats the hell out of Lanczos and Jinc. However, it's not perfect. There are a couple image areas which are still aliased. But I guess with this specific source (which is quite heavily aliased to start with) that's really the max we can possibly expect. But now let's look at a different test image: First let's look at the positive aspects of the NNEDI3 upscaling here: (1) NNEDI3 renders all 3 roofs cleaner and sharper than Lanczos does. The handrail on the lighthouse top outer floor makes this especially obvious. (2) The whole NNEDI3 image has a clean and sharp look to it. It almost doesn't look like it's upscaled. In contrast to that the Lanczos image has a lot of aliasing, ringing and overall a somewhat coarse look to it. It's pretty obvious that the Lanczos image was upscaled. But this test image also brutally showcases some of the NNEDI3 weaknesses: (1) Look at the fence pickets directly at the bottom right of the lighthouse. Lanczos manages to keep the picket sizes nicely equal. NNEDI3 reproduces the pickets at unequal sizes, similar to what Bilinear does. This is one case where the natural ringing in the Lanczos algorithm is actually beneficial. Yes, ringing can sometimes help reproducing images better. (2) Look at the grass at the bottom part 1/4 of the image. It looks quite weird in the NNEDI3 image, almost like a fractal. This is what bothers me most about NNEDI3. But it seems that all "intelligent" algorithms have this kind of artifact. With grass/trees/nature they often see lines/geometrical figures to connect which don't belong together. No such problem with Lanczos/Jinc. So there you have, all the good and bad things about NNEDI3. Pick your own poison! At least you have all the options now. If you like NNEDI3, you can also say "thanks" to SEt for providing the OpenCL kernel in this thread: http://forum.doom9.org/showthread.php?t=169766 Now let's talk performance a bit: Since NNEDI3 is a rather slow algorithm, I've added the option to convert the image to YUV and to only upscale the Y channel with NNEDI3, while using a different algorithm for the chroma channels. Using NNEDI3 on the chroma channels is IMHO slightly wasted. The benefit for the Luma channel is much bigger. Of course you can use NNEDI3 for the chroma channels, too, if you have the GPU juice for that. You can even use it for chroma upsampling, if you prefer. My recommendation is to use NNEDI3 only for the Luma channel and to use a cheap algorithm in the "image upscaling" section, which will then be used to upscale the chroma channels, e.g. Lanczos3 AR or even Bicubic AR. NNEDI3 doesn't have "taps", instead it has "neurons". The lowest quality level of 16 neurons performs a little bit slower than Jinc3 AR on my PC, when using it only on the Luma channel and when doing an exact 2x size improvement. Every higher quality step almost doubles rendering times. So 32 neurons almost cut performance in half. Using 64 neurons in quarter etc. For Luma upscaling I recommend to use at least 32 neurons. The lowest quality setting of 16 neurons leaves a bit too many artifacts in the image, IMHO. It could still be useful for chroma upscaling, though, if you insist on using NNEDI3 for chroma. Last edited by madshi; 23rd January 2014 at 18:54. |
23rd January 2014, 18:24 | #21589 | Link |
Registered User
Join Date: Sep 2013
Posts: 919
|
InstallFilter.exe crashes when clicking install.bat
It actually finishes installing (MadVR.ax Registered Successfully) but when existing InstallFilter.exe it crashes "(InstallFilter.exe Has Stopped Working" appears. MPC-HC crashes on playback. Its asking for mini-dump, when I click NO, "MPC-HC.exe Has Stopped Working" window appears. Same thing, perfectly fine with 0.86.11
__________________
System: i7 3770K, GTX660, Win7 64bit, Panasonic ST60, Dell U2410. Last edited by James Freeman; 23rd January 2014 at 18:51. |
23rd January 2014, 18:33 | #21591 | Link | |
Registered User
Join Date: Sep 2004
Posts: 146
|
Quote:
Actually I didn't know there was an option for DxVA2 Scaler and failed to explain the purpose of the option. Why did you add it? The post-processing by the graphic card seems to be done via shader as it always works in EVR or EVR C/P regardless of DxVA decoding. madVR is already using shaders. What's the difference between EVR and madVR in such case? And thank you for the new release. You are the one of the hidden treasures we have. |
|
23rd January 2014, 18:35 | #21592 | Link | |
Registered User
Join Date: Jul 2013
Posts: 90
|
Quote:
Currently I am using vmr9 but in the mvrInterfaces.h I didn't see any interfaces that matches with the vmr9 renderer. I didn't even saw where I can connect window handle with this renderer. Another problem is when I am trying to use your interfaces I get compiling error that says I can not use this interface (I am not writing from my computer now so I don't remember the exactly error right now). Regards |
|
23rd January 2014, 18:43 | #21593 | Link |
Broadband Junkie
Join Date: Oct 2005
Posts: 1,859
|
Black screen on my GTX 770 | 332.21 driver | Win7 SP1 x64 when enabling any of the new OpenCL features (NNEDI & Error Diffusion Dither).
Also occurs when enabling OpenCL features after resetting to default settings. May also be noteworthy that your 2013-12-31 version of the OpenCL code for that Avisynth plugin produces a "Failed to allocate OpenCL Resources" error, while SEt's original OpenCL code runs fine. Last edited by cyberbeing; 23rd January 2014 at 19:07. |
23rd January 2014, 18:45 | #21594 | Link |
Registered User
Join Date: Jan 2007
Posts: 530
|
argh. Win7 Ult/HD6570, MPC-HC and jRiver MC, latest CCC
just copied the new files on top of the others, left settings alone completely. Everything is slide show, 8bit, 10bit, film, video, interlaced, progressive.... Back to the last deband "test" version, all is good. Perhaps something OpenCL is being turned on even though I haven't explicitly done so? Should I start with a complete settings reset? BTW, tremendous release. Edit: Looks like it starts with the upload queue, which never goes beyond "1-2". Decoder queue is always at max.... Last edited by noee; 23rd January 2014 at 18:57. |
23rd January 2014, 18:51 | #21595 | Link |
Registered User
Join Date: Jan 2010
Posts: 265
|
madVR is a DirectShow filter. At a high level load and connect it just like any other filter renderer, then use IVideoWindow to configure it. There are other interfaces for settings and OSD, the interfaces are included in the zip.
|
23rd January 2014, 18:53 | #21597 | Link | |
Registered User
Join Date: Dec 2008
Posts: 496
|
Thanks a lot for 0.87.0 madshi! Perfect timing, as I have the whole evening to test.
Quote:
A more detailed explanation: Didn´t change any defaults, just enabled NNEDI3 under the image upscaling option triggers the black screen every time. |
|
23rd January 2014, 18:55 | #21598 | Link | |
Registered User
Join Date: Sep 2013
Posts: 919
|
Quote:
Default everything, MPC crashes. GTX660, with v331.82
__________________
System: i7 3770K, GTX660, Win7 64bit, Panasonic ST60, Dell U2410. |
|
23rd January 2014, 19:01 | #21599 | Link | |
Registered User
Join Date: Mar 2007
Posts: 934
|
Quote:
Can't test this on my work laptop (which these days can't do anything right, even when playing SD MPEG2 using EVR with no scaling it stutters all the time) but should have some time to test things on my desktop later. I fully expect NNEDI3 to be useless on my GTS250!
__________________
TV Setup: LG OLED55B7V; Onkyo TX-NR515; ODroid N2+; CoreElec 9.2.7 |
|
23rd January 2014, 19:12 | #21600 | Link | ||||||||||
Registered Developer
Join Date: Sep 2006
Posts: 9,140
|
Quote:
Quote:
Does anything OpenCL work on your PC? Although, OpenCL should really not be used by default on your PC, so I don't understand what's going on there. Ok, OpenCL is initialized even if you don't use it, but it's only *initialized*, not actually used... Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Doesn't happen here. Smooth motion works fine here on Win 8.1 x64 HD 7770... |
||||||||||
Tags |
direct compute, dithering, error diffusion, madvr, ngu, nnedi3, quality, renderer, scaling, uhd upscaling, upsampling |
|
|