• 1
  • 2
  • 3
  • 4(current)
  • 5
  • 6
  • 7
Video scaling in Eden
#46
(2013-04-16, 22:09)rainking430 Wrote: @StinDaWg: Not sure, maybe you're right? I only started using madVR recently and just followed a guide online to set it up in conjunction with my GPU, so I'm by no means an expert. I know some aspect of madVR hits my GPU pretty hard, because you can hear it's fan ramp up quick when I play a file. When set to use lanczos/spline/even softcubic it looked much better to me than what XBMC could do, but the annoying thing is that you have to use an external player to access madVR, and MPC-HC is just really limited both GUI wise and in what you can do during playback. Because this patch now makes lanczos/spline accessible within XBMC via DXVA, for me this has narrowed the visual gap enough that I have shelved madVR for the time being in favor of XBMC playback. Also, if I'm not mistaken, XBMC's built-in reclock option is similar to madVR's smooth motion feature. There are still a couple other things missing in XBMC vs madVR, but that's ok for now.

Update: So in researching this post, I think I need some clarification myself if anyone knows. I looked in madVR's options and find that lanczos/spline, etc. are only under Pixel Shader options. So what's the diff between DXVA and Pixel Shaders in XBMC? Does one give better PQ than the other? Do they both use the GPU? Can Pixel Shaders be used with lanczos in XBMC?

I'm using MadVR only when I watch media files on my notebook & I'm using Potplayer instead of MPC-HC anyway. I also don't think it's PQ is worth enough to make me use external player for HDTV viewing and lose my other XBMC features. I usually use XBMC DSPlayer with LAVFilters & FFDShow post processing to do upscale task. I tried a11599 build to see if how's it going.
Reply
#47
(2013-04-16, 17:40)oldpoem Wrote:
(2013-04-16, 11:59)StinDaWg Wrote: @oldpoem, can your 6450 do both Lanczos/Spline and 1080i DXVA Best deinterlacing without stuttering? On my 5450 I can do everything but this combo. I only get about 38 fps. I'm considering upgrading my graphics card but don't want to go higher than needed because I don't game.

I tested with 1080 ts music video file. GT210 can't do it. Has to be DXVA Best + DXVA/Auto Scaling to output 60fps.

I will test with 6450 later.

Edited: Tested the same files with 6450, all except one play fine with DXVA Best + Spline. The one that failed seems to be problematic file anyway, after I remuxed from TS to mp4 it played fine.

But then result from scaling 1080i to 1080p display with different method shouldn't be indifferent? I'm not sure about this though. But the results seem indifferent to my eyes except Spline + Deinterlace DXVA Best on GT210 can't output 60fps. I will try the same set of files with another system with GTX285 to see if it's just problem with Nvidia Drivers.

You're corrent, there should be no visual difference when scaling from 1080i to 1080p, but like a11599 said earlier your graphics card still uses pixel shaders even though it's not really scaling anything. Because of this my mid to low end card doesn't have enough shader power to do vector adaptive deinterlacing and Spline/Lanczos at the same time. All I need to do to enable smooth playback is change scaling to DXVA, but it is annoying to have to do this every time I play a 1080i video, and it kills the WAF factor because other people in the house will have no idea why it's stuttering and how to fix it.
Reply
#48
Ok, so let me see if I understand this, if your graphics card can handle pixel shaders, that's the setting to choose for best PQ? Next in line would be this patch with DXVA + Lanczos or Spline?
Reply
#49
(2013-04-17, 00:17)StinDaWg Wrote: You're corrent, there should be no visual difference when scaling from 1080i to 1080p, but like a11599 said earlier your graphics card still uses pixel shaders even though it's not really scaling anything. Because of this my mid to low end card doesn't have enough shader power to do vector adaptive deinterlacing and Spline/Lanczos at the same time. All I need to do to enable smooth playback is change scaling to DXVA, but it is annoying to have to do this every time I play a 1080i video, and it kills the WAF factor because other people in the house will have no idea why it's stuttering and how to fix it.

I don't have much 1080i content so it's compromised solution that I just change scaling method to DXVA for all file I know would have problem. It is per file settings & saved in sql database so if anyone else want to watch it they don't have to change anything even they watch it from other xbmc device.

I think 6450 is fine for the solution but then AMD Drivers is not guarantee to problems free. I've better time with Nvidia card though.

(2013-04-17, 00:45)rainking430 Wrote: Ok, so let me see if I understand this, if your graphics card can handle pixel shaders, that's the setting to choose for best PQ? Next in line would be this patch with DXVA + Lanczos or Spline?

I'm not sure about quality of deinterlacing by DXVA Best compared to other non-DXVA method XBMC provided. But if your CPU & graphic card can handle the load why you want DXVA enabled? Spline / Lanczos can be use in normal XBMC just that it was not available when DXVA is turned on.

You also got better chance to has artifact from DXVA turned on. So I'd say if your system can handle MadVR , you don't need DXVA at all since your madVR settings doesn't use it anyway.
Reply
#50
(2013-04-17, 00:45)oldpoem Wrote: But if your CPU & graphic card can handle the load why you want DXVA enabled? Spline / Lanczos can be use in normal XBMC just that it was not available when DXVA is turned on.

See, told you I was no expert! Big Grin Thanks for the help guys. I actually wasn't aware that XBMC supports those when pixel shaders is enabled, or even that pixel shaders still uses the GPU.
Reply
#51
Quote:I'm not sure about quality of deinterlacing by DXVA Best compared to other non-DXVA method XBMC provided.

DXVA Best is the highest quality deinterlacer you can get. It's better than any of the XBMC software deinterlacers. It uses your graphics card to do vector adaptive on AMD and whatever the Nvidia equivalent is.
Reply
#52
(2013-04-17, 01:30)rainking430 Wrote:
(2013-04-17, 00:45)oldpoem Wrote: But if your CPU & graphic card can handle the load why you want DXVA enabled? Spline / Lanczos can be use in normal XBMC just that it was not available when DXVA is turned on.

See, told you I was no expert! Big Grin Thanks for the help guys. I actually wasn't aware that XBMC supports those when pixel shaders is enabled, or even that pixel shaders still uses the GPU.

If you have a fast enough cpu (something like an i3) then you don't need DXVA to use Lanczos/Spline. I have an old Athlon X2 1.9 that chokes without DXVA, but with DXVA enabled it plays fine.
Reply
#53
Here is a quick very high level mockup on the windows video decoding / rendering process. I hope this helps to better understand what is happening under the hood.

[attachment=241]

Without the patch the process is the same but there is no 'HQ scaling' = Yes branch. In practice: when HQ scaling is selected, the patch invokes the DXVA video processor with destination dimension = source dimension and then does a second step to perform scaling of the video frame using pixel shaders.
Reply
#54
(2013-04-17, 01:34)StinDaWg Wrote: DXVA Best is the highest quality deinterlacer you can get. It's better than any of the XBMC software deinterlacers. It uses your graphics card to do vector adaptive on AMD and whatever the Nvidia equivalent is.

Good to know. I know these things are a bit subjective, but is that including pixel shaders?

@a11599: Thanks for that diagram. It does help me visualize things better. And even if my main XBMC PC is powerful enough to not need this patch, I'm sure my Atom/ION netbook I use on-the-go will benefit.
Reply
#55
XBMC does not use pixel shaders for deinterlacing. Only GL versions have GPU assisted deinterlacer, but that is just Bob.

However, both AMD and nV drivers use pixel shaders internally for deinterlacing with DXVA Best and both are very good quality for realtime playback. For reference, Yadif is considered an OK quality realtime SW deinterlacer and both AMD and nV solutions offer better quality (less artifacts and more stable image).
Reply
#56
@a11599 Thanks for informations. So I guess for the best we could get from x86 setup. It's DXVA Best for deinterlace and Pixel Shaders (Spline / Lanzcos3) for Scaling?

I'm curious if this can be done. For files that has no-dxva2 compliant like 10bit h264 , can we let CPU decode then disable sw deinterlace and send decoded frame to be rendered by DXVA for better deinterlace?
Reply
#57
If you set video renderer to DXVA then it is already possible (even by stock Eden/Frodo) to perform DXVA deinterlace on software decoded material. You need to explicitly make this change in Settings > Videos > Playback - Render method.
Reply
#58
From your diagram, Interlaced material get flagged and handled by sw deinterlaced before it been sent to DXVA to processed. Wouldn't it be double deinterlaced (deinterlaced once by sw then again by DXVA) or DXVA wouldn't deinterlace that video frame at all (got deinterlace once already).

If what we want is hw deinterlace, shouldn't render method selection flag be put after frame decoded by CPU instead of sw deinterlace? In case DXVA is select it would pass decoded frame straight to DXVA process without sw deinterlace.
Reply
#59
That is how it is handled in the code. The diagram is not a comprehensive flowchart of the actual code. Smile So if you use DXVA rendering, you have the option to choose between all SW and the two DXVA deinterlacers. Of course if you select DXVA Bob or DXVA Best the SW deinterlacing step is skipped and deinterlacing is performed by the DXVA video processor. That's why the decision point was named as 'Software deinterlace?' - DXVA deinterlace is considered HW deinterlacing from XBMC perspective. On the other hand if you select a SW deinterlacer, DXVA deinterlacing is skipped by the DXVA processor (the processor does only colorspace conversion and scaling when scaling method is DXVA).
Reply
#60
I guess my question is, why did it take so long to enable high quality scaling? Why wasn't this here from the beginning of DXVA support? Surely many (probably the majority) of users play back content with GPU acceleration turned on and thus want the best picture quality/scaling available. If one of the higher end scalers doesn't work smoothly for their card they can simply select another one like they currently do with software scaling. I'm no programmer but I'm just not understanding why the option wasn't there from the beginning. From reading your commit, some people are asking if this patch is even needed. Of course it's needed, I don't understand the viewpoint of it not being made available as an option?

By the way, I've been fooling around with the MPC-HC scaling options, and after enabling bicubic ps2.0 -1 in EVR CP the scaling looks very similar to Lanczos3/Spline36 in XBMC, which I found a bit odd. Shouldn't it be worse? I also noticed that when I enabled Lanczos with 3 taps and anti-ringing in madVR the picture looked way too over-sharpened. Why do the scaling methods vary so greatly between players? Do you know what XBMC is using to scale luma/chroma?
Reply
  • 1
  • 2
  • 3
  • 4(current)
  • 5
  • 6
  • 7

Logout Mark Read Team Forum Stats Members Help
Video scaling in Eden 0