Log in

View Full Version : Media Player Classic - Home Cinema (MPC-HC) - v1.7.13


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [29] 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70

nuhkka
14th July 2014, 22:52
Right click on the video when it's playing and pick Video Frame, Touch Window From Outside.

that's not it, that just seems to crop the video, not the black bars

on the top is what the previous version did automatically for most videos too big to fit on the screen, on the bottom the black bars aren't cropped anymore :(:

http://a.pomf.se/wtbxns.png

feelingblue
19th July 2014, 10:30
Good mornig

A little question:

If I upgrade to windows 8.1 and AMD Radeon Rx 200 serie GPU (with UVD 4.2, WDDM 1.3 and directx 11.2 driver), can i have some PQ improvments with the use of MPC HC EVR render and dxva?
I mean banding, Chroma upsampling, scaler, 16-235 color space support, 23.976 rock solid fps and so on.

huhn
19th July 2014, 10:56
mpc-hc can do chroma upsampling with shader.
23p/24p is buggy on windows 8 and a good clock has a lot to do with luck.
16-235 is not a colorspace but EVR can be changed to output limited or full range.
the hole DXVA driver "enhancement" destroy more than they help.
there is a better free renderer out for mpc-hc.

feelingblue
19th July 2014, 13:22
Thank you and excuse but i am not english and i don't use "words" very well.

The use of shader to perform Chroma is to avoid CUE, mainly.

1)Chroma Upsampling in dxva mode and EVR render is not good?
It is a simply nearest neighbor or bicubic or is someting better?

2) "16-235" is properly manteined in the chain or it suffers some distructive enlargment (for the well know problem of RGB 0-255 desktop menagment)?

3) With the desktop fps setting to 23 (23.976) there are frame lost or it is solid?

4) DXVA driver enanchments are poor, i know.

The question is: with mpchc in windows 8.1, directx 11.2 and UVD 4.2 there are some real improvment compared to before?

I Know that best config is software decoder + ffdshow raw filter with avisynth script + Madvr.
But onestly is very very similar with ffdshow in RGB32 in HQ, instead of MADVR.

huhn
19th July 2014, 17:51
1. i don't know what is used. most likey nothing special so i guess bilinear.
2. a well done 16-235 -> 0-255 is not destructive at all. not sure how good EVR is at this.

3. there are frames repeated or dropped can be all 10 sec or never depands all 20 min is pretty normal. and 23p is buggy under windows 8 windows 8 has huge problems with 23/24 it can't switch between them.

But onestly is very very similar with ffdshow in RGB32 in HQ, instead of MADVR.

it's not like madVR is limited to this.

i don't know why a avisynth script is needed for "optimal" playback but i'm pretty sure there is not a must have.

feelingblue
19th July 2014, 19:30
1. i don't know what is used. most likey nothing special so i guess bilinear.
2. a well done 16-235 -> 0-255 is not destructive at all. not sure how good EVR is at this.

3. there are frames repeated or dropped can be all 10 sec or never depands all 20 min is pretty normal. and 23p is buggy under windows 8 windows 8 has huge problems with 23/24 it can't switch between them.



it's not like madVR is limited to this.

i don't know why a avisynth script is needed for "optimal" playback but i'm pretty sure there is not a must have.

1) OK i was hoping that with new driver and UVD they used something better, then Chroma shader is the one to use with EVR.

2) 16-235 to 0-255 is always destructive. You can deceive your eyes with the use of dithering. In the new driver @10bit with EVR 10bit input forced and output... the banding is quite limited.
But dithering introduces some noise (dithering is a form of noise).
The dithering problem are certainly very very subtle.
I was hoping that with new UVD driver EVR could exit with untouched 16-235.
it would be an achievement.

3) Strange because with my windows 8.1 and my previous generation of AMD card i have not this "bug".
If you can't change the frame rate using the AMD driver control panel try to use directly windows 8 monitor panel manager.
The problem is that 23.976 dont' match perfectly.
Intel Haswell are very good in this.

Avisynth scripts for the BD@1080p on 1080 screen is the best you can use.
The problem is that are very CPU demanding.

Madvr is fantastic for 3d lut support and perhaps the best as a scaler.
But on an image that is 1080p on 1080p screen the differences with ffdshow (or potplayer) set to RBG32 HQ are very very subtle.

The impressive differences are the script, they change the image better than a lumagen radiance.

I tell you why i have done side by side comparison.

My goal is understand if with last version of MPCHC and windows 8.1 it make sense to buy AMD Kaveri or an new AMD videocard.

huhn
19th July 2014, 20:49
2) 16-235 to 0-255 is always destructive. You can deceive your eyes with the use of dithering. In the new driver @10bit with EVR 10bit input forced and output... the banding is quite limited.
But dithering introduces some noise (dithering is a form of noise).
The dithering problem are certainly very very subtle.
I was hoping that with new UVD driver EVR could exit with untouched 16-235.
it would be an achievement.

you need to dither YCbCr -> RGB all ready so whats your point in this? you have to dither at one point you can't do this step without doing dithering or rounding.

your display will do math on it to and most likely do a 16-235 -> 0-255 at the end too.

if you output 16-235 with your PC the hole input image is turned it into 16-235 from 0-255.
of cause you can lie and output 0-255 and set the renderer to 16-235. i know the tricks.

3) Strange because with my windows 8.1 and my previous generation of AMD card i have not this "bug".
If you can't change the frame rate using the AMD driver control panel try to use directly windows 8 monitor panel manager.
The problem is that 23.976 dont' match perfectly.
Intel Haswell are very good in this.
it's not reliable. my haswell isn't good and my r9 270 isn't good too. never tried my 760 gtx at a Tv.
i get a frame repeat every 20 sec with a true 60 fps source at 60 hz...
and this is not a solo problem from the GPU there is more into this.

this is my last answer to this topic in this thread this has nothing to do with MPC-HC

feelingblue
19th July 2014, 21:45
you need to dither YCbCr -> RGB all ready so whats your point in this? you have to dither at one point you can't do this step without doing dithering or rounding.

your display will do math on it to and most likely do a 16-235 -> 0-255 at the end too.

if you output 16-235 with your PC the hole input image is turned it into 16-235 from 0-255.
of cause you can lie and output 0-255 and set the renderer to 16-235. i know the tricks.


But i don't want to discuss about dithering. I have done hundred of test for this.
For me the problem is very simply.
If a player exit with 16-235 there is no banding and gradient are perfect (without dithering).

Dithernig is useful only if you expand 16 to 0 and 235 to 255 to avoid banding.
Ati card at a certain chain point uses always RGB 0-255 and for this problem dithering in the PC world is necessary.

My question is related to last version of the MPCHC (the thread player) in combination with EVR as output render, Windows 8.1, new ATI card and new drivers.

There is a way to output, for example in fullscreen mode, am untouched 16-235 at the output of HDMI port?
But generally, there are some kind of improvments or is all the same as before?


P.S.
In europe the frame rate are 23.976 and 25. There is no 60fps video.
ATI with MPC HC is semi perfect.
Haswell with MPC HC and EVR is perfect
This is a little part of Anandtech review that test Intel as a HTPC:

Refresh Rate Handling:
"One of the most important fixes in Haswell for HTPC users was increased display refresh rate accuracy.
We have already seen 23.976 Hz working perfectly in our custom Haswell HTPC build"
they uses Windows 8 Professional

JanWillem32
20th July 2014, 02:55
Dithernig is useful only if you expand 16 to 0 and 235 to 255 to avoid banding.That is certainly untrue. The conversions that an image renderer have to make are floating-point-based.
For a common example, when rendering a (weave-interleaved/) progressive NTSC DVD on a 1080p monitor you have to;
-Convert Y'CbCr 4:2:0 from the raw video source to 4:4:4. This is an operation in the spatial domain, so floating-point rules apply.
-Convert BT.601-type Y'CbCr to BT.601-type NTSC R'G'B' (in this step the conversion to full range generally is applied, so that the renderer actually has proper material to work with). This is a matrix multiplication, internally defined with floating-point values.
-Convert R'G'B' to RGB. This is an exponential function with a fractional exponent, so floating-point rules apply.
-Convert to a reference color model, and optionally do some analysis with a CAM (color appearance model). These all start with a floating-point matrix multiply and have some onward transforms as well.
-Resize the image. This is again an operation in the spatial domain, so floating-point rules apply.
-Convert colors in the reference color model to the display's native form of R'G'B'. (This may take a conversion step to RGB first.) This can be done nicely with a lookup table or just by a combination of first an exponential function and then a matrix multiplication. This step requires either (gamma-corrected) interpolation when using the lookup table or just floating-point arithmethic, so floating-point rules apply.
-As the native DVI, HDMI and DP outputs of modern video cards do not support much quantization in their output signals (merely 10- or 8-bit at the moment), the renderer has to apply dithering before writing to the presentation buffers. This just adds noise to mask some of the banding of the low output quantization. For quality dithering the additional precision from the output color from the step before this one is used to distribute the dithering patterns. At this point all precision above the 10- or 8-bit integer point is lost on a per-pixel basis.

Conversion to legacy limited-range formats (they are different for BT.601 NTSC, BT.601 PAL/SECAM and BT.709) can really only be handled by emulation in the second-last step. (The renderer needs uniform color internally. Skipping the expansion to full range or even not do chroma up-sampling is a no-go. Many have already proposed these options before, and it simply doesn't work that way in a quality rendering chain.) Even then you will need dithering, because none of the rendering stages (including these particular matrix multiplications for handling limited-range formats) except for the last rendering stage will output intgers.

My advice to you is to not get your hopes up for whatever magical filters the video adapter driver makers come up this time and mostly judge video adapters by their gaming performance (actually with a bit more attention on the memory bandwidth as video and subtitles demand this relatively more than games typically). In the AMD driver the filter chain for EVR is set up to use the shader core for about 90% of all filters anyway (excluding the DXVA decoding fixed-function parts of course). Leaving the filtering to the custom renderers is certainly not a great loss, especially given that for any quality consumer-grade video rendering I don't see any competition at the moment for madVR and the quality rendering path I've written.
The filtering chain for EVR implemented by the nVidia driver relies similarly on the shader core, by the way. The Intel driver however uses many fixed-function parts of the video adapter for the EVR filtering chain.In europe the frame rate are 23.976 and 25. There is no 60fps video.For European television systems the options are generally 24, 25, 48 and 50 fps. The 24/1.001, 30/1.001, 30, 48/1.001, 60/1.001 and 60 fps options are a lot more rare. Blu-ray and various other storage systems go by other rules. Note that there are various pull down options that are often applied to handle frame-rate conversions in various media (to my great annoyance in many cases).

feelingblue
20th July 2014, 09:27
thank you for the explanation, i don't understand all you wrote because iam not english, sorry
But i think i am talking about other things.

1) My interest is only about color depth and 16-235 question.
With all my player that output untouched 16-235 8bit with all possible dithering options disable the gray ramp test on pattern disc are absolutely perfect (reference).
This on my VPR on very large screen, also if i go very very close.
I know that internally there are floating point operation, certailny.
Every time i set VPR to PC LEVEL there is always banding.
Every dithering option that i use , smooth gradient but result is always worse then 16-235 8bit.

With PC if i set up video driver to 10bit (forced or not), probably they internally rounded up to 10bit precision and the banding is a little limited.

My simple simple question is to know only if with last version of everithing, new ati, new windows, new driver, new MPCHC, there is an hope to exit from PC in 16-235 8bit.

I know that in europe there are that formats you talking about but for who use PC as an HTPC the formats are pratically only two:
23.976 for BD and 25 for PAL DVD.

Other formats are very rare.
For example i never ever seen a video at 48fps or 50/60.

feelingblue
20th July 2014, 12:54
This morning I went to a friend who has just bought A10-7850 kaveri
I have done some test and does not change anything.
In dxva with EVR the chroma is bad and banding is present.

windows out necessary in RGB FULL.

I think that i confused word dithering with banding in my post. I use an online transaltor to write here, sorry.

Best config remain MPCHC - softw.dec. - avisynt (denose + sharpness) - Madvr.

in any case Thank you for your explanations.

ryrynz
20th July 2014, 14:10
Don't use RGB output, use YV12 or NV12.

feelingblue
20th July 2014, 14:52
Don't use RGB output, use YV12 or NV12.

RGB FULL is the only less destructive possibility.

1) decoder output YV12
2) FDSHOW RAW as external filter take YV12, process image with avisynth script and then output NV12.
3) Madvr take NV12 and output RGB FULL.

The big problem is banding but with madvr debanding setting at full is close to my Oppo103 (that is perfect at Ycbcr with all PP deselected)

Changing various dithering setting, my eyes don't notice any kind of changes in the various patterns.

Any setting other than these, give worst result in my contest.

The awesome improvment is for example the finesharp script that give an image on VPR outstanding.

I have compared with a superexpnesive extrnale processor and result is better with HTPC.

Also the avisynth denoise scripts are perfects

if you have to suggest me a better video chain than my... Tell me that i try immediately.

JanWillem32
20th July 2014, 15:13
That does shed some light on some things. Plain EVR and EVR CP with default settings just use the same old rendering methods in consumer products as over a decade before. The fact that these use 8-bit intermediate storage in textures makes them very prone to producing banding.
Setting limited ranges of whatever type and delegating some filtering to the display device may cause it to apply dithering. This isn't really a good thing. Dithering is a renderer task. (At least in consumer-grade devices; professional systems don't have to dither) There should be only one renderer in the playback chain.

As you are experiencing banding problems, did you try the black and white point calibration pictures (in a normal image viewer, not in a video renderer)? Many consumer display devices are set up to expand some type of 16-235 to full range by default.

The 10-bit options in MPC-HC are a bit disorganized.
-The 10-bit input option is fake. My predecessors did not know what they were dealing with. Do not use. (When I started to edit the renderer this was pretty much the first 'feature' I got rid of.)
-The 10-bit output option is real. It requires decent quality rendering surfaces, Windows 7 or newer and D3D fullscreen exclusive mode. It currently works on the AMD/ATi display adapters with HDMI, DP and analog outputs, and on Nvidia workstation cards (although I only received few reports about this, though).
-The 10-bit rendering surfaces option is a poor choice compared to the other options. 32- and 16-bit floating point or 16-bit integer surfaces are better.

The AMD Catalyst Control Center features video 'enhancement' filters in the video section. By default some of them are enabled. The pulldown option and allowing DXVA are perfectly fine to enable, but I can certainly advise to test stuff first with the other filterng options disabled.

The mentioned playback chain of "MPCHC - softw.dec. - avisynt (denose + sharpness) - Madvr" isn't too bad. I just wonder why you don't delegate the denoise and sharpen steps to Madvr. The artifacts when using DXVA video decoding are caused by the filtering I already described earlier.

huhn
20th July 2014, 15:42
-The 10-bit output option is real. It requires decent quality rendering surfaces, Windows 7 or newer and D3D fullscreen exclusive mode. It currently works on the AMD/ATi display adapters with HDMI, DP and analog outputs, and on Nvidia workstation cards (although I only received few reports about this, though).
10 bit output should work with every decent nvidia card on the marked.

http://nvidia.custhelp.com/app/answers/detail/a_id/3011/related/1/session/L2F2LzEvdGltZS8xNDA1ODY3MDIwL3NpZC9WbzY0bE1abA%3D%3D

feelingblue
20th July 2014, 16:31
As you are experiencing banding problems, did you try the black and white point calibration pictures (in a normal image viewer, not in a video renderer)? Many consumer display devices are set up to expand some type of 16-235 to full range by default.

Yes and there is no banding problems.
Also with the oppo in Ycbcr there is no banding.
The problem is that Windows always expand video level to pc level.
But it is not a big problem now, because i definitively use Madvr now and is very very good (near perfect).


The mentioned playback chain of "MPCHC - softw.dec. - avisynt (denose + sharpness) - Madvr" isn't too bad. I just wonder why you don't delegate the denoise and sharpen steps to Madvr.

The denoise in avisynth or ffdshw produce to my eyes (very) better results.
They effectively remove grain without damage fine details on image.
My is an eyes valutation without instruments.
After fine setting i was able to perfectly clean a dirty dirty film as Die Hard 5 for example.
The problem is that the are difficult to use because the script are edited manually and have a lot of options.
And they are very CPU demanding.

What is the "sharpen step" in Madvr that you talking about?

If there is a sharpener better than "finesharp" tell me please that i try it immediatally.

hello_hello
21st July 2014, 17:08
If there is a sharpener better than "finesharp" tell me please that I try it immediatally.

I'm not one for sharpening as I don't like it, but have you tried SeeSaw (http://avisynth.nl/index.php/SeeSaw)? If I was going to sharpen, I'd probably use it. You can run SeeSaw with it's default denoising or use it in combination with your preferred denoiser.

But i don't want to discuss about dithering. I have done hundred of test for this.
For me the problem is very simply.
If a player exit with 16-235 there is no banding and gradient are perfect (without dithering).

Dithernig is useful only if you expand 16 to 0 and 235 to 255 to avoid banding.

I'd need to argue with that.
Just to make sure I'm not talking rubbish, I dug out a video which I know contains banding. I found a section where it's obvious and watched it with the PC expanding the levels to 0-255, then I switched to 16-235 and told the TV to expect TV levels. It didn't look any different. And thinking about it, if I was to save a frame as an image using MPC-HC, there'd be banding in the image. The TV to PC levels conversion might have the potential to cause some extra banding, but the problem doesn't disappear when you don't expand the levels. At least not for me.
The media player in one of the TVs here is used very regularly. I'd assume it's 16-235 from thumb drive to screen (or do TVs ultimately convert to full range?). Using the TVs built-in media player rather than a PC for playback doesn't make any banding disappear.

Noise removal can cause banding. I've seen it happen lots of times. Dithering can generally fix it or reduce it.

feelingblue
21st July 2014, 17:50
I'm not one for sharpening as I don't like it, but have you tried SeeSaw (http://avisynth.nl/index.php/SeeSaw)? If I was going to sharpen, I'd probably use it. You can run SeeSaw with it's default denoising or use it in combination with your preferred denoiser.


Thank you, yes i have tried it but i prefer finesharp.
I have tried also all pixelshader sharpening tipe but finesharp and also lsfmod are better.

Pixhelshader have to many visible ringing artefact and don't have the precision of sharpening done by avisinth script.

The best sharpening in MPCHC is lumasharp but you have to add manually.

Mangix
21st July 2014, 21:28
10 bit output should work with every decent nvidia card on the marked.

http://nvidia.custhelp.com/app/answers/detail/a_id/3011/related/1/session/L2F2LzEvdGltZS8xNDA1ODY3MDIwL3NpZC9WbzY0bE1abA%3D%3D

that's inaccurate, at least not over HDMI. My 750 Ti cannot do 10-bit output over HDMI.

nevcairiel
22nd July 2014, 05:31
that's inaccurate, at least not over HDMI. My 750 Ti cannot do 10-bit output over HDMI.

Maybe you just don't have any software that can make use of it properly?

EVR-CP 10bit mode doesn't work, thats true, but it's also quite a large hack job.

IIRC correctly it requires a higher DX version to work, DX9 as used by EVR doesn't support it yet.

Mangix
22nd July 2014, 05:56
even though you say that, AMD's 14.6 drivers which support 10-bit allow EVR-CP to output 10-bit to the display.

nevcairiel
22nd July 2014, 06:36
Well, or so it claims. Sadly its really hard to prove it conclusively what really arrives at the screen.

mhourousha
22nd July 2014, 07:27
even though you say that, AMD's 14.6 drivers which support 10-bit allow EVR-CP to output 10-bit to the display.
I did some tests about deepcolor output over HDMI several months ago
http://forum.doom9.org/showthread.php?p=1651747#post1651747

JanWillem32
22nd July 2014, 23:52
mhourousha, it's odd that nobody followed up on your message on why the 16-bit float back buffers have different colors; http://msdn.microsoft.com/en-us/library/windows/desktop/hh972627%28v=vs.85%29.aspx . It's annoying that such behavior can't be changed either. This kind of post-output filter should really be set in some type of device or swapchain state, and not like this. The 2.2 gamma value forced by the runtime isn't even configurable in this case. IDXGIOutput::SetGammaControl() is mentioned as a solution, but it's just not the same thing as simply disabling the extra filtering. SetGammaControl() operates on the hardware tables, not in software (and uses a segment model, instead of just plain gamma values). These are not very accurate at all and on top of that, the Nvidia driver doesn't enable the gamma tables in full screen mode.
Direct3D 9 behaves exactly the same if you set 16-bit float back buffers. Even though it's officially not supported, as Direct3D 9 gets implemented by semi-emulation since Vista (pretty much only the vertex formats are fundamentally different for the GPU hardware), setting 16-bit float back buffers will get accepted by the runtime if the device has a Direct3D 10.0 feature level or higher.
Other than that, nice to see that overview you made, especially since this is the first time I've seen the Intel driver using a deep color mode.

mhourousha
23rd July 2014, 03:21
mhourousha, it's odd that nobody followed up on your message on why the 16-bit float back buffers have different colors; http://msdn.microsoft.com/en-us/library/windows/desktop/hh972627%28v=vs.85%29.aspx . It's annoying that such behavior can't be changed either. This kind of post-output filter should really be set in some type of device or swapchain state, and not like this. The 2.2 gamma value forced by the runtime isn't even configurable in this case. IDXGIOutput::SetGammaControl() is mentioned as a solution, but it's just not the same thing as simply disabling the extra filtering. SetGammaControl() operates on the hardware tables, not in software (and uses a segment model, instead of just plain gamma values). These are not very accurate at all and on top of that, the Nvidia driver doesn't enable the gamma tables in full screen mode.
Direct3D 9 behaves exactly the same if you set 16-bit float back buffers. Even though it's officially not supported, as Direct3D 9 gets implemented by semi-emulation since Vista (pretty much only the vertex formats are fundamentally different for the GPU hardware), setting 16-bit float back buffers will get accepted by the runtime if the device has a Direct3D 10.0 feature level or higher.
Other than that, nice to see that overview you made, especially since this is the first time I've seen the Intel driver using a deep color mode.
I think the reason of different colors is different gamma exactly,the problem is that AMD card produce correct color in FP16 mode, if I add some color correction in shader to make intel and NV's card show correct color,the AMD card may produce wrong color then.
More annoying thing happens in R10G10B10_XR_BIAS_A2_UNORM format,because XR_BIAS is just a scan-out format,not a rendertarget format,so you have to render scenes to a R10G10B10_UNORM RT then cast it as XR_BIAS format,thus color scale and bias must be done in shader.it made me confuse that it show different color in different video-port(VGA,DVI etc)……

feelingblue
23rd July 2014, 07:50
The mentioned playback chain of "MPCHC - softw.dec. - avisynt (denose + sharpness) - Madvr" isn't too bad. I just wonder why you don't delegate the denoise and sharpen steps to Madvr. The artifacts when using DXVA video decoding are caused by the filtering I already described earlier.

I see that you are a highly experienced technician

Can you explain me how to delegate denoise and sharpness to madVR to achieve a higher quality video compared to avisynth scripts?

Mangix
24th July 2014, 02:15
madVR supports pixel shaders.

feelingblue
24th July 2014, 06:42
madVR supports pixel shaders.

I'm confused
madVR supports post processing by shaders internally?

I know that MPCHC support pixelshader, before and after resize.
I know that you con use them with MADVR as render (and EVR of course)

But my question about what JanWillem32 says remain.

You must consider that sharpen is (much) better with scripts than shaders, also if you sharpen video before render, because avisynth is much powerfull.
About denoise i don't know how is done by shaders...

JanWillem32
25th July 2014, 22:59
"madVR supports pixel shaders." isn't the best description for the feature to be able to set pre- and post-resize stage user-custom pixel shaders. DirectX renderers like madVR have plenty of pixel shaders of themselves to be able to do resizing and such.

There are two threads on this board where you can find pixel shader collections;
CeeJay.dk's: http://forum.doom9.org/showthread.php?p=1673781
mine: http://forum.doom9.org/showthread.php?p=1453334

There have been several sharpening shaders, and you're right that most user-custom pixel shaders are rather badly written. The standard 'denoise' is a great example of one that's badly written. (Not all of the shaders I've written were that great either. Some could certainly use some work or should just be deleted.)

Anyway, madVR has some internal filtering options internally, and indeed user-custom pixel shaders for handling various other effects. Both are plenty powerful to handle conceptually simple effects such as debanding, denoising and sharpening. Handling them on the GPU means that you're using a semi-specialized processor to handle the computations. Avisynth often isn't the most efficient engine to start with, nor can most CPUs match the throughput of even a mid-range GPU in regards to general graphical computations right now. Letting the video renderer actually render some effects isn't such a bad thing.

Apart from heavily modified implementations, Avisynth's intermediate and/or output rendering format(s) also don't hold decent quantization for images. The video renderer doesn't suffer from this problem, unless its programmer failed to implement somthing decent/had to support 8-bit Y'CbCr and R'G'B' rendering methods for low-end hardware performance reasons or supporting GPUs from the previous millenium.
For effects that are conceptually more complicated, such as rotating images by 90 or 270 degrees, Avisynth will indeed fare better than the implementation of user-custom pixel shaders. Having control over a video renderer's vertices and staging to handle such effects will void that argument, though.

If someone is still confused about post-processing, mixing stages, rendering stages, and such I can make it a lot simpler: they're all just filters. Both the CPU and the GPU can handle absolutely all of them. CPU example: the old video renderer (last seen as a valid renderer in the Windows Me era) that was basically using the CPU to run GDI-based deinterlacing, scaling and color conversions didn't draw any computational power from the GPU. GPU example: DXVA2 native decoding, mixing, rendering, and output to the display device doesn't use the CPU for anything else but moving the raw video stream to memory.

feelingblue
26th July 2014, 01:24
"madVR supports pixel shaders." isn't the best description for the feature to be able to set pre- and post-resize stage user-custom pixel shaders. DirectX renderers like madVR have plenty of pixel shaders of themselves to be able to do resizing and such.

There are two threads on this board where you can find pixel shader collections;
CeeJay.dk's: http://forum.doom9.org/showthread.php?p=1673781
mine: http://forum.doom9.org/showthread.php?p=1453334

There have been several sharpening shaders, and you're right that most user-custom pixel shaders are rather badly written. The standard 'denoise' is a great example of one that's badly written. (Not all of the shaders I've written were that great either. Some could certainly use some work or should just be deleted.)



Thank you for explanations.
In fact i have tried every shader (also changing internal values to obtain more quality) but when i have tried the avisynth scripts i have seen great improvments.


Handling them on the GPU means that you're using a semi-specialized processor to handle the computations. Avisynth often isn't the most efficient engine to start with, nor can most CPUs match the throughput of even a mid-range GPU in regards to general graphical computations right now.


I talk about myself. I have 8 core CPU and a powerfull videocard so my interst is not the efficiency..... but the quality.

I still do not understand why you said this:
"The mentioned playback chain of "MPCHC - softw.dec. - avisynt (denose + sharpness) - Madvr" isn't too bad. I just wonder why you don't delegate the denoise and sharpen steps to Madvr."

I think i have tried every combination of renders and postprocessings on a very large VPR screen (1080p film on 1080p screen)
The best denoise that i have found are avisynth denoise and ffdshow denoise done immediately after the decoder.
The best sharpness that i have found are finesharp, LimitedFastenSharper, LFSmod.... also done before render.

My question is very very simple:
If my chain "isn't too bad", what is a better chain?

JanWillem32
26th July 2014, 23:18
In fact i have tried every shader (also changing internal values to obtain more quality) but when i have tried the avisynth scripts i have seen great improvments.Given that my latest user-custom pixel shader intended for video playback filtering carries number 361 your fingers must be really hurting right now.:)

Anyway, I was mostly pointing out that you have a setup with two captains on one ship. No good can come out of using two video renderers at once.
What kind of denoise do you need? If it's source debanding, hard, random synthetic noise removal, VHS noise cleanup, old film noise removal or whatever other types, all require different methods.
Artificial sharpening is like artificial sweetening of a cookie. Neither dirt cheap nor expensive cookies benefit from that. I'm not a fan of it. Some sharpening factors to selectively counter-balance denoise/deband effects (because they blur everything by default) and mild, modulated sharpening factors in resizers are okay because they are not stand-alone effects. Most avisynth sharpeners also operate on Y'CbCr, which is not one of the most ideal color spaces to filter anything on a visual basis. I've written/edited several sharpening filters in the past. Some were worse than others, so I guess I can review them once again. But anyway, why do you think you would ever need to use a stand-alone sharpen effect when playing back videos?

feelingblue
27th July 2014, 01:05
Given that my latest user-custom pixel shader intended for video playback filtering carries number 361 your fingers must be really hurting right now.:)

Anyway, I was mostly pointing out that you have a setup with two captains on one ship. No good can come out of using two video renderers at once.
What kind of denoise do you need? If it's source debanding, hard, random synthetic noise removal, VHS noise cleanup, old film noise removal or whatever other types, all require different methods.
Artificial sharpening is like artificial sweetening of a cookie. Neither dirt cheap nor expensive cookies benefit from that. I'm not a fan of it. Some sharpening factors to selectively counter-balance denoise/deband effects (because they blur everything by default) and mild, modulated sharpening factors in resizers are okay because they are not stand-alone effects. Most avisynth sharpeners also operate on Y'CbCr, which is not one of the most ideal color spaces to filter anything on a visual basis. I've written/edited several sharpening filters in the past. Some were worse than others, so I guess I can review them once again. But anyway, why do you think you would ever need to use a stand-alone sharpen effect when playing back videos?

My only goal is to obtain best PQ without compromise and without going into to many technical concepts.

I setup my VPR with Spear and Munsil II and blue filters with a clean install of MPCHC and MADVR.
To pass all the test patterns i simply use MPCHC - Decoder by CPU - Madvr (default settings except debanding at strong values)
I obtain a very very good image, similar to my Oppo103, a reference BD player.

I have only two problems:
A) Some film are dirty and have noise (Die Hard 5 for example)
B) The image is not enough sharper (Due to VPR DLP and very large screen)

To resolve problem A:
A very very good denoise (near perfect) is the denoise3D in HQ mode in ffdshow raw filter.
In the die hard 5, for example, i can clean the film without lose details.
but In other films i can use other denoise of ffdshow or avisynth.
With my chain, i always clean film perfectly (i talk always about my BD Backup)

To resolve problem B:
The best sharpness that give me an image with fine details without changing the cinematographic feeling and without give me artefacts is finesharp in avisynth.
To do another example: with the mini video near the sea in spears and munsil, I get an image that looks like a photo done by a reflex and i can read the small small letters into the signs.... all with zero artefacts!
All the sharpness done by shaders or external video processor (the last i have tried is the small new DVDO iscan mini)... are inferiors, a little or not.. but inferiors.

I have done side by side comparison by switching frames hundred of times, observing small particulars... there is nothing to do, i am sorry:
in my setup best chain is MPCHC - CPU decoder - ffdshow raw filter and MADVR.

But i am not the only one that is arrived to this conclusion
Other users with good PC uses this chain (many people who frequent forums in my language and my country for example)
All my friends that are HTPC fans have tried many settings and have come to my own conclusions.

There is a good guide:http://www.ezoden.com/684/tutorial-htpc
The autor of this guide, who is in search of best PQ without compromise is come to my own conclusion... and also all people who partecipate to that forum.

and so on......

Is for this reasons that i don't understand why you say that my chain "is not bad".
I ask you one more time: what is a better chain? (with a pratical example?)

If you answer to this question... i thank you and i try it immediately!

feelingblue
27th July 2014, 01:09
Given that my latest user-custom pixel shader intended for video playback filtering carries number 361 your fingers must be really hurting right now.:)

Anyway, I was mostly pointing out that you have a setup with two captains on one ship. No good can come out of using two video renderers at once.



I don't use two video render at once.
I use Madvr.

ffdshow raw filter is only the key to use avisynth scripts and use denoises immediately after the decoder.

Raylan Givens
27th July 2014, 23:27
Anyone noticed kinda jerky playback when you play .avi files? I have D3DFullScreen enabled but every 4-5 secs MPC goes out of sync for a sec. When I use .mp4 everything is smooth.

LigH
28th July 2014, 07:51
You should not generalize about AVI files. On one hand, AVI is a container format which may contain thousands of combinations of video and audio formats, in contrast to MP4 which is limited to a clear subset. On the other hand, the AVI container can have different variations; and if the keyframe index is missing or incomplete, sync issues are no surprise.

Try to refresh the AVI with VirtualDubMod or with AviMux-GUI and test if these AVI files are choppy too. If yes, they simply may contain content which is not meant to be packed into an AVI container because the AVI container is too old to support the video stream's features, like AVC (H.264) video.

Dion
28th July 2014, 11:07
Is it possible to add an option that automatically reloads subtitles when they change in an srt file? MPC-BE does this and it would be awesome for MPC-HC as well. Or maybe the option is there and i am missing it?

Raylan Givens
28th July 2014, 18:15
You should not generalize about AVI files.

Well, useful info, thank you! But forget about this. I just got one more SSD, neeeded to reinstall Windows and the problem gone. Maybe there was a problem 'cause before I switch to this new GPU I used the Intel's non-discrete one for a week and caused a mess in my system.

In short I went from AMD7950 to Intel 4400 and then Nvidia 770 without reinstalling the OS. Bad idea as it seems.

foxyshadis
29th July 2014, 05:29
Given that my latest user-custom pixel shader intended for video playback filtering carries number 361 your fingers must be really hurting right now.:)

Anyway, I was mostly pointing out that you have a setup with two captains on one ship. No good can come out of using two video renderers at once.
What kind of denoise do you need? If it's source debanding, hard, random synthetic noise removal, VHS noise cleanup, old film noise removal or whatever other types, all require different methods.
Artificial sharpening is like artificial sweetening of a cookie. Neither dirt cheap nor expensive cookies benefit from that. I'm not a fan of it. Some sharpening factors to selectively counter-balance denoise/deband effects (because they blur everything by default) and mild, modulated sharpening factors in resizers are okay because they are not stand-alone effects. Most avisynth sharpeners also operate on Y'CbCr, which is not one of the most ideal color spaces to filter anything on a visual basis. I've written/edited several sharpening filters in the past. Some were worse than others, so I guess I can review them once again. But anyway, why do you think you would ever need to use a stand-alone sharpen effect when playing back videos?

I liek <s>mudkips</s> artificial sharpening. I turn it off when the artifacts get unwatchable, but most of the time I find it more pleasant to watch movies with Sharpen Complex 2 (and used to use SeeSaw in ffdshow). I guess extra grittiness just appeals to me, I'm glad the option is available.

hello_hello
30th July 2014, 07:32
Anybody with any ideas as to the reason for this?

Window resizing behaviour not consistent. (https://trac.mpc-hc.org/ticket/4660)

jebediah
6th August 2014, 11:22
Hi guys.
Does anyone know how to use dtsdecoderdll.dll with LAVfilter?

I've copied the file to the LAVfilter installation, but MPC is still using the decoder.

sneaker_ger
6th August 2014, 11:27
1. You can only use it with the 32 bit version of LAV/MPC-HC
2. How did you check that it's not being used?

huhn
6th August 2014, 11:56
and you you use it with the internal MPC hc lavfilter version you need copy it to them.
if you install lavfilter MPC-HC will still use his build in version until you disable it or pref the external.

JanWillem32
17th August 2014, 04:11
Sorry for the late responses, I've been away for a while.I don't use two video render at once.
I use Madvr.

ffdshow raw filter is only the key to use avisynth scripts and use denoises immediately after the decoder.Any entity that hosts filters after the reference input stage, whether that is after the decoding-to-reference-image stage, after loading some raw bitmap from a file or after just applying plain vertex colors is a video renderer by definition. The Ffdshow and Avisynth filter stages are video renderers, just odd ones because they lack image presentation parts.

I don't really mind the existence of the various Avisynth filters and such, but most parts are just so fundamentally badly designed. (Note that plenty of pixel shaders, including mine are/were just as bad.)
Modern video renderers should have absolutely no need for some reference Y'CbCr, R'G'B' or RGB format. The display R'G'B' format is important to video renderers that present images, of course. When relating to display R'G'B' color management (and unfortunately dithering) should be used to change the rendered image into the presentable image. Of course, when dealing with the horrible quality of consumer-grade video sources, some denoising and debanding in Y'CbCr to get rid of purely digital artifacts (in the earliest stages of rendering) is useful.
Many filters are unfortunately using Y'CbCr as something that actually represents color, or worse, a linear light model (e.g. as required by resizing filters). It simply doesn't work that way, as anyone with decent knowledge of color theory will agree with.
What I find the worst about these filters is that decent quantization is lost at the end, and with most filters in between stages as well, with on top of that the common losses of the negative and positive overshoot of the common Y'CbCr format of {[16, 235], [16, 240], [16, 240]} in filtering and converting to R'G'B'. (A correct video-standard Y'CbCr to video-standard R'G'B' conversion leads to signals below 0% and above 100%. As video R'G'B' isn't display R'G'B' and both not even close to the complete-gamut color systems, these overshoots are useful.)

As I said, I don't mind the existence of these filters, but given the archaic rendering methods they employ, I'm certainly never going to endorse using them.I liek <s>mudkips</s> artificial sharpening. I turn it off when the artifacts get unwatchable, but most of the time I find it more pleasant to watch movies with Sharpen Complex 2 (and used to use SeeSaw in ffdshow). I guess extra grittiness just appeals to me, I'm glad the option is available.Sharpen Complex 2 is at least high-passed (not efficiently, though). It (usually) won't contribute to areas with banding and very light noise, but won't improve these flaws either. What I do mind about Sharpen Complex 2 is its default sharpening factor setting. It's even more brutal than the factors AMD and Intel set as a default for the EVR's "video enhancement" filters in their drivers.
I typically use this filter for an example why to stay away from all of such filters.:p

feelingblue
17th August 2014, 04:42
As I said, I don't mind the existence of these filters, but given the archaic rendering methods they employ, I'm certainly never going to endorse using them

Ok thank you for explanation.

But now what i must do?

I have to use a " archaic video chain" that give me an outstanding PQ or..... I have to use a "technically perfect chain" that give me a very good PQ?

What is the goal?
The use of the video chain and the theories..... or watching a film with best possible quality?

JanWillem32
17th August 2014, 05:17
My aim is to eliminate archaic rendering methods (while still keep a great repertoire of possible filtering options). Partially by writing filters myself, partially by educating, and maybe by finally convincing the consumer-grade image, audio and video standards committees that what they've been standardizing has not been sensible in any way compared to professional formats of the past multiple decades.
I wouldn't quite only say "archaic video chain" for this case, but rather one chain and yet another one after that (and the bottleneck in between them). A technically perfect chain (singular) would certainly help.
Oh well, as you might expect by now, I'm rather picky. I personally use some enhancements too, but there are even more filters that I won't use. Luckily I can simply write pretty much any filter for myself, as long as it's computationally not too expensive.

cyberbeing
17th August 2014, 08:18
Would it be possible to allow the Play/Pause hotkey to start playback on first open similar to the Play hotkey?

This has been something which has bothered me off and on for years now. For whatever reason only the single function Play hotkey can start playback on first open, while the Play/Pause hotkey can only start playback after it's been started and stopped once by other means. This never made much sense to me, and I've never been able to figure out a workaround to allow a single hotkey to start playback on first open without losing the pause dual functionality which I'd consider even more important then the former.

The behavior I desire:

Open MPC-HC
Drag items to Playlist
Press "Play/Pause hotkey" to start playback (Not currently possible, requires separate Play hotkey)
Press "Play/Pause hotkey" if desired to Pause -> Play playback
Exit MPC-HC
Open MPC-HC (Playlist saved from previous session)
Press "Play/Pause hotkey" to start playback (Not currently possible, requires separate Play hotkey)
Press "Play/Pause hotkey" if desired to Pause -> Play playback
Exit MPC-HC


While I would like to see this changed in a future official build, but for all I know this restriction on the Play/Pause hotkey was intentional for some reason? Either way, any help would be appreciated, even if it's only pointing out the related code/changes required so I could compile a personal build with the modified behavior I desire.

vBm
17th August 2014, 11:51
While I would like to see this changed in a future official MPC-HC build, for all I know this restriction on the Play/Pause hotkey was intentional for some reason? Either way, any help would be appreciated, even if it's only pointing out the related code/changes required so I could compile a personal build with the modified behavior I desire.

devs don't read d9 anymore, it's better that you open a ticket at our trac.

https://trac.mpc-hc.org/

kasper93
18th August 2014, 12:15
@cyberbeing: IIRC it has been designed this way. "play" command builds graph and all sort of jazz and "play/pause" just pause or start the graph. I guess we can change this behavior. I will look later at the code.

cyberbeing
18th August 2014, 13:47
Ah okay, well if this is impractical to change for whatever reason, it may make sense to at least more accurately rename the hotkey and menu entries from "Play/Pause" to "Pause/Resume". Though that wouldn't resolve my qualms with the current behavior, it would at least eliminate any confusion why that hotkey is incapable of actually starting playback (Play) of the video. Though another key point here, is from an accessibility standpoint, there should be a way to start playback by default via the keyboard alone, even if that means entering the menu (something like 'ALT+P + ENTER' if 'Play' was added to the first entry in that menu).

Thanks for the response kasper93, the context of the current behavior was exactly what I was looking for before I create a ticket. Once I collect my thoughts, I'll plan to do that tomorrow.

STaRGaZeR
24th August 2014, 03:23
Just updated to the last nightly from 1.7.6.82

Now when the player doesn't have any files opened (for example just after launching it) the logo is resized to the window size, so it looks horrible.

1.7.6.82: http://thumbnails112.imagebam.com/34698/371478346971484.jpg (http://www.imagebam.com/image/371478346971484)

1.7.6.164: http://thumbnails110.imagebam.com/34698/34e480346971483.jpg (http://www.imagebam.com/image/34e480346971483)

Any suggestions?