Log in

View Full Version : Intel QuickSync Decoder - HW accelerated FFDShow decoder with video processing


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

egur
30th May 2012, 17:21
Version 0.34 beta is out with the following changes:
* Bugfixes.
* FFDShow rev4460 with improved QuickSync config

Note that official ffdshow builds from now will contain the QS config dialog.

Downloads
* For the latest cutting edge FFDShow builds download my builds Intel QuickSync Decoder SourceForge home page (http://sourceforge.net/projects/qsdecoder/)
* FFDShow-tryout site (http://ffdshow-tryout.sourceforge.net/download.php)
* LAV Splitter builds (http://forum.doom9.org/showthread.php?t=156191)

egur
30th May 2012, 17:30
Video processing is relatively a big feature so please expect many updates (and hopefully not many bugs). Testing its many config combinations is hard...
As always, please use the latest version before posting issues/bugs.

aufkrawall
30th May 2012, 17:52
Turning on deinterlacing won't turn it on for progressive content anymore?

egur
30th May 2012, 18:21
Turning on deinterlacing won't turn it on for progressive content anymore?

The behavior hasn't changed:
* Deinterlacing (auto): will deinterlace all interlaced content.
* Force deinterlacing: deinterlace all frames whether they are interlaced or progressive. The progressive frames will be deinterlaced using the "filed order" combo box. Auto use the stream's interlaced flags for the progressive frames (may not always work, default to TFF if none are found at the start). Top field first and Bottom field first will determine the flags for the progressive frames only.
* Force field order - override the interlacing flags in the video stream (should be used only for transcoding) "Auto" (field order combo box) is off. BFF/TFF are used to completely override the interlacing flags.

aufkrawall
30th May 2012, 18:46
Alright, thanks. :)
I was unsure because for the first beta you said deinterlacing would always be on.

I'd like to test deinterlacer with another DVD, but somehow ffdshow isn't used in MPC HC although DVD decoding is checked both in the ffdshow decoder and QS config dialogs.

egur
30th May 2012, 21:33
Alright, thanks. :)
I was unsure because for the first beta you said deinterlacing would always be on.

I'd like to test deinterlacer with another DVD, but somehow ffdshow isn't used in MPC HC although DVD decoding is checked both in the ffdshow decoder and QS config dialogs.

QS decoder can't play DVDs, it's a limitation that might be removed in the future. I don't want to get into all the details, but basically the menus are not displayed right. You can play the VOB files with ffdshow.

RainyDog
31st May 2012, 18:58
right. intel driver v2696 caused that problem.
downgraded to v2618. video play fine.
testing with v2598, also fine. so i stick with v2618.

Cybersans, where did you find driver version 2618? I'm also having issues with the video speeding up and going out of sync with the audio, random blocking artifacts etc. when using 2696 on Win7 x64.

Cheers.

egur
31st May 2012, 20:36
Driver 2656 is available on the Intel web site. 2618 is very old, try 2656 instead. I personally didn't suffer these issues with 2696.

cybersans
1st June 2012, 01:43
Cybersans, where did you find driver version 2618? I'm also having issues with the video speeding up and going out of sync with the audio, random blocking artifacts etc. when using 2696 on Win7 x64.
Cheers.
i search from the internet. there are some guys discussing about it and from there i got the link to download. my manufacturer's website which is asus only provide v2598 as a latest driver

Driver 2656 is available on the Intel web site. 2618 is very old, try 2656 instead. I personally didn't suffer these issues with 2696.
like i said before, i get "DCOM Surrogate" crash when viewing picture using windows photo viewer using v2656 driver. when using v2696, certain movie file has video speeding up and out of sync.

egur
1st June 2012, 14:01
Any suggestions on the new ffdshow QS config dialog?

cybersans
3rd June 2012, 03:31
Version 0.34 beta is out with the following changes:
* Bugfixes.
* FFDShow rev4460 with improved QuickSync config

Note that official ffdshow builds from now will contain the QS config dialog.

i still experienced stuttering with some of H.264 mkv video. is that because of intel driver i used right now? :confused:

egur
3rd June 2012, 07:14
i still experienced stuttering with some of H.264 mkv video. is that because of intel driver i used right now? :confused:

The difference I see between you and the rest is the windows version which implies a driver problem (most likely) or another setup problem.
I hope that a new driver will be released soon so you can check.

CharlieCL
3rd June 2012, 16:52
I installed Windows 8 Release Preview but looks like hardware QS not enabled in LAV filter. So I installed the old Intel® HD Graphics Beta Driver 2729 for Windows 8* 32 on Intel site but it got worse with bugs.

So far no hardware QS enabled in Win 8 driver beta?

egur
3rd June 2012, 18:45
I installed Windows 8 Release Preview but looks like hardware QS not enabled in LAV filter. So I installed the old Intel® HD Graphics Beta Driver 2729 for Windows 8* 32 on Intel site but it got worse with bugs.

So far no hardware QS enabled in Win 8 driver beta?

"Naked" drivers from Microsoft do not contain the Media SDK DLL needed for QS to work.
The Win 8 driver is still in beta and has many known issues according to its release notes.
FYI, I don't have a 32bit win8 system, I only have access to a 64 bit version. I managed to play video with QS using the 2729 driver.

cybersans
4th June 2012, 02:55
The difference I see between you and the rest is the windows version which implies a driver problem (most likely) or another setup problem.
I hope that a new driver will be released soon so you can check.
sorry because of a false alarm. the stuttering happened with my h.264 mkv because of the movie itself not properly ripped. my assumption, the movie already stuttered while in ripping progress. the new one plays fine :)

I installed Windows 8 Release Preview but looks like hardware QS not enabled in LAV filter. So I installed the old Intel® HD Graphics Beta Driver 2729 for Windows 8* 32 on Intel site but it got worse with bugs.

So far no hardware QS enabled in Win 8 driver beta?
check your program files\common files\intel\ there should be a folder named media sdk and a content. if nothing there means mediasdk is not installed because of some variable inside Setup.if2 caused the media sdk not installed (if you are downloading the driver from intel website)

ionutm80
4th June 2012, 10:28
Hello Egur,

First of all I think you have done a fantastic job. I have struggled with pure dxva and all possible players and I never got read of severe macroblocking on some mkv (including XBMC). I'm currently using Win 7 MCE, x64, Intel Pentium G620,Intel Driver 2696, Shark007 Codec Pack with latest edition of FFDShow 4461 and Intel QS as main decoder for h264.
Everything is fine (CPU load 3-5%, excellent quality image and I don't have a problem with 24p :)) except for one annoying thing: whenever I pause and resume an mkv 1080p or I skip to another moment in movie during playback I'm getting a/v out of sync (video goes ahead of audio). The strange thing is that if I leave the movie to play from the beginning w/o interfering (pause, resume, skip fwd) the a/v is perfectly syncronized until the end of the movie. Is it something that I do not set properly in FFDShow Audio / Video when I'm using QS or is it a bug related to Intel drivers? All my movies are on an external hdd connected through usb to my htpc computer (I'm not using network drives).
Another strange thing is that if I'm using QS from LAV codec I don't have these problems anymore but I do stumble into others: there is no image in full screen MCE only if I decrease the size a little from the top right square window icon and I cannot have external subtitles to work.

Thnaks in advance for your suggestions,

IM

egur
4th June 2012, 11:46
...
Everything is fine (CPU load 3-5%, excellent quality image and I don't have a problem with 24p :)) except for one annoying thing: whenever I pause and resume an mkv 1080p or I skip to another moment in movie during playback I'm getting a/v out of sync (video goes ahead of audio). The strange thing is that if I leave the movie to play from the beginning w/o interfering (pause, resume, skip fwd) the a/v is perfectly syncronized until the end of the movie. Is it something that I do not set properly in FFDShow Audio / Video when I'm using QS or is it a bug related to Intel drivers? All my movies are on an external hdd connected through usb to my htpc computer (I'm not using network drives).
Another strange thing is that if I'm using QS from LAV codec I don't have these problems anymore but I do stumble into others: there is no image in full screen MCE only if I decrease the size a little from the top right square window icon and I cannot have external subtitles to work.

Thnaks in advance for your suggestions,

IM

I wasn't aware of this "pause" a/v sync issue, I'll take a look.
Regarding LAV+QS:
MCE is special player with respect that it's the only player that works in Direct3D full screen exclusive mode. This special mode (usually found in games) do not allow creation of DXVA/D3D HW devices unless very specific conditions occur. When LAV decoder queries the QS decoder if it can play the movie, QS will return that it can't (can't create a HW device). FFDShow ignores this check (my ugly patch so MCE would work). Actual HW device is created after the renderer is connected, later on in the initialization flow.

As for subtitles for LAV, this is the wrong thread. Sorry.

Please give feedback on ffdshow's QS config dialog (under decoder options). Is everything clear?

ionutm80
4th June 2012, 11:58
Thanks for quick reply Egur.
Regarding Lav + mce if I understand it right from you, will not work in mce full screen and I can only use ffdshow, is it correct?

In qs settings i have left everything untouched except that i have checked to allow deinterlacing (all my personal movies are 1080 50i m2ts originated from sony full hd camera and only work with qs enabled, with pure dxva are jittering, the only external player that was able to play them using hw decoding was powerdvd).

Rgarding my annoying issue, I forgot to mention that i have tested this with both haali and lav splitters and is the same story.

Regards and thanks again.

IM

egur
4th June 2012, 12:14
Thanks for quick reply Egur.
Regarding Lav + mce if I understand it right from you, will not work in mce full screen and I can only use ffdshow, is it correct?

In qs settings i have left everything untouched except that i have checked to allow deinterlacing (all my personal movies are 1080 50i m2ts originated from sony full hd camera and only work with qs enabled, with pure dxva are jittering, the only external player that was able to play them using hw decoding was powerdvd).

Rgarding my annoying issue, I forgot to mention that i have tested this with both haali and lav splitters and is the same story.

Regards and thanks again.

IM

Regarding MCE+LAV - correct. I'll ask the LAV developer to support QS in MCE, but he might have other things on his mind. It may require substantial code changes...

Personally, I think LAV splitter is a more robust splitter. It can also fix broken time stamps found in many transport streams. That's what I use.

Does the A/V sync happen always or specific files? Can you share a sample (20-30 seconds)?
Is it limited to H264 or other formats also give trouble?

ionutm80
4th June 2012, 12:57
Only with h264 and yes with all files (tested with 10). I will try to post some samples today.
Thanks.

CharlieCL
4th June 2012, 13:37
I remembered that QS is better for video encoding. How can I encode a video stream by QS from an output of GPU in video frame buffer?

CharlieCL
4th June 2012, 13:44
"Naked" drivers from Microsoft do not contain the Media SDK DLL needed for QS to work.
The Win 8 driver is still in beta and has many known issues according to its release notes.
FYI, I don't have a 32bit win8 system, I only have access to a 64 bit version. I managed to play video with QS using the 2729 driver.

HW acceleration worked for Win8 64-bit in 2729. The video quality is great. One bug of QS is exclusive full screen in Win8. No this problem in Win7.

egur
4th June 2012, 13:49
I remembered that QS is better for video encoding. How can I encode a video stream by QS from an output of GPU in video frame buffer?

You'd have to write this solution using the Intel Media SDK. It's the only way to interface with the HW encoder.

RBG
4th June 2012, 16:41
Please give feedback on ffdshow's QS config dialog (under decoder options). Is everything clear?

It will be better to split video post processing section and deinterlacing section, now it looks somewhat confusing. By the way, are you going to add scalling option in the near future?

ionutm80
4th June 2012, 17:20
Hello Egur,

Until i figure it out how to upload 40mb files samples I will post the mediainfo ande the graph studio generated for them.

I have also noticed something strange: if I play the file in MPC-HC all the problems disapears with EVR Custom but my studio graf file (see attached) shows that VMR is used instead in MCE. could this be the source of problems?

Kind Regards,

IM

egur
4th June 2012, 17:52
Hello Egur,

Until i figure it out how to upload 40mb files samples I will post the mediainfo ande the graph studio generated for them.

I have also noticed something strange: if I play the file in MPC-HC all the problems disapears with EVR Custom but my studio graf file (see attached) shows that VMR is used instead in MCE. could this be the source of problems?

Kind Regards,

IM

As far as I know WMC always uses EVR since the Vista days.
You can post media files in MediaFire or MultiUpload.

egur
4th June 2012, 17:58
It will be better to split video post processing section and deinterlacing section, now it looks somewhat confusing. By the way, are you going to add scalling option in the near future?

DI is a classic post processing action, why would you like it separated?
Also other video processing features are dependent on DI - can't run denoise or detail on interlaced source - same goes for scaling.

I do plan to add scaling, note that this feature will be static - players will not be able to change the output image size on the fly. If you think ffdshow's features are OK with respect to scaling, I'll add something similar.

I also plan to add procamp (Contrast, Brightness, Hue, Saturation).

ionutm80
4th June 2012, 18:02
Egur do you then any idea why the graf studio is showing vmr for me instead of evr or l'm saying something stupid?:helpful:

egur
4th June 2012, 18:17
Egur do you then any idea why the graf studio is showing vmr for me instead of evr or l'm saying something stupid?:helpful:

By "MCE", you mean Windows Media Center (WMC), right?

A player can dictate which renderer is used and most players do.
GraphStudio renders a file and let DirectShow build the graph automatically. My PC behaves the same - VMR is chosen over EVR because it has higher merit (priority).

ionutm80
4th June 2012, 18:27
Hello again Egur,

Yes for me mce is vmc :)
Is it possible to force vmc to accept evr or as you said to set its merit to high or is it a lost battle here? Because in mpc-hc with evr and ffdshow set to use qs everything is perfect.

Thanks again and sory for bothering you with stupid questions.

egur
4th June 2012, 18:33
Hello again Egur,

Yes for me mce is vmc :)
Is it possible to force vmc to accept evr or as you said to set its merit to high or is it a lost battle here? Because in mpc-hc with evr and ffdshow set to use qs everything is perfect.

Thanks again and sory for bothering you with stupid questions.

WMC (not vmc :) ) always uses EVR and it's not possible to change that.

I just managed to reproduce the a/v sync so your system is fine. I'll post again when I have a root cause or fix.

Update: a/v sync occurs in 64 bit MPC-HC, 32 bit is fine.

RBG
4th June 2012, 19:11
DI is a classic post processing action, why would you like it separated?


It's a matter of terminology, DI is indeed a post processing, but from the user's point of view, postproc is an image enhancement process like "Sharpen" or "Noise reduction", and deinterlacing is a process of restoration of the original frame. Also ATI Catalyst has a separate section for deinterlacing options, well at least the version I am using now. Anyway, I've got a better idea, why wouldn't you call one section "Deinterlacing" and another "Image Enhancement".


Also other video processing features are dependent on DI - can't run denoise or detail on interlaced source - same goes for scaling.

You have already written that in the note. ;)

egur
4th June 2012, 20:12
...
Anyway, I've got a better idea, why wouldn't you call one section "Deinterlacing" and another "Image Enhancement".

Sounds good.

egur
4th June 2012, 21:04
Found the bug - caused major corruptions in 64bit after seeks as well as occasional a/v sync issues.
I'll fix the ffdshow GUI and release.

ionutm80
4th June 2012, 21:48
Thanks a lot, much appreciated.

egur
4th June 2012, 21:49
Version 0.35 beta is out with the following changes:
* Bugfixes - mostly in 64bit playback.
* FFDShow rev4462 with improved QuickSync config

Downloads
* For the latest cutting edge FFDShow builds download my builds Intel QuickSync Decoder SourceForge home page (http://sourceforge.net/projects/qsdecoder/)
* FFDShow-tryout site (http://ffdshow-tryout.sourceforge.net/download.php)
* LAV Splitter builds (http://forum.doom9.org/showthread.php?t=156191)

RainyDog
4th June 2012, 23:05
Just tried 0.35 beta and it now works perfectly with my Ivy Bridge 64 bit set-up and 2696 driver. No more blocking artifacts and losing A/V sync on chapter skips and seeking.

Spot on Eric, thanks.

ionutm80
5th June 2012, 08:58
Hello Egur,

Thanks again for the quick fix. I will test it when Shark will issue an updated codec pack with FFDShow and post feedback.

KR,

IM

egur
5th June 2012, 11:42
Hello Egur,

Thanks again for the quick fix. I will test it when Shark will issue an updated codec pack with FFDShow and post feedback.

KR,

IM

you can install the build i've made in the meantime. it's built using the same tools and code as the official builds.

rumblpak
5th June 2012, 15:26
Hey egur,

I can't seem to get quicksync to show up in any of the decoder config pages in ffdshow (32 or 64bit). I'm quite confused as it shows up fine on my laptop. I was wondering if it was a misconfiguration of Virtu MVP or something on my end.

Intel 3770k running 2696 driver
GTX 680 main GPU

I would like to point my current configuration works fine if I disable ffdshow and let LAV take over but I was curious as to why ffdshow doesn't work.

thanks for all the great work

egur
5th June 2012, 17:32
Hey egur,

I can't seem to get quicksync to show up in any of the decoder config pages in ffdshow (32 or 64bit). I'm quite confused as it shows up fine on my laptop. I was wondering if it was a misconfiguration of Virtu MVP or something on my end.

Intel 3770k running 2696 driver
GTX 680 main GPU

I would like to point my current configuration works fine if I disable ffdshow and let LAV take over but I was curious as to why ffdshow doesn't work.

thanks for all the great work
If you don't see the config dialog than you have an old version of ffdshow (latest is 4462). The large link from my website was pointing to an older version.
FYI, the config dialog will show for all platforms - it has no indication if QS is enabled or not (yet).

rumblpak
5th June 2012, 18:39
If you don't see the config dialog than you have an old version of ffdshow (latest is 4462). The large link from my website was pointing to an older version.
FYI, the config dialog will show for all platforms - it has no indication if QS is enabled or not (yet).

I think I may have worded it badly, I have the quicksync config panel BUT where I used to enable it on the codec page it is unavailable as an option. I only see disabled or libavcodec as available options, whereas on my laptop and I believe the correct options are supposed to be disabled, libavcodec, and Intel QuickSync. I.e. the pic below:

http://imgbin.org/images/8324.png

egur
5th June 2012, 18:52
I think I may have worded it badly, I have the quicksync config panel BUT where I used to enable it on the codec page it is unavailable as an option. I only see disabled or libavcodec as available options, whereas on my laptop and I believe the correct options are supposed to be disabled, libavcodec, and Intel QuickSync.

If you don't have the QS option for H264, most likely a driver problem.
1) If you have a driver from Windows Update - it will not work. Install driver from Intel download center or from your OEM.
2) Make sure the display is connected to the Intel GPU.
3) Reinstall ffdshow.

rumblpak
5th June 2012, 19:04
If you don't have the QS option for H264, most likely a driver problem.
1) If you have a driver from Windows Update - it will not work. Install driver from Intel download center or from your OEM.
2) Make sure the display is connected to the Intel GPU.
3) Reinstall ffdshow.

As I said before, I use my GTX680 as my main card so I use Lucid MVP to get quicksync to work. My driver is from intel download center. Lastly, I just uninstalled and reinstalled the newest quicksync which includes the only installed version of ffdshow that I have. Is it because the display is connected to my gtx680?

egur
6th June 2012, 07:38
Looking at the ffdshow installer scripts - I see that it checks for QS being enabled during install. The check tries to create a HW device and fails, so QS is not installed.

Quick solution for you - connect the screen to the iGPU and reinstall ffdshow. Check that QS decoder is installed and connect the screen back to the dGPU (Nvidia).

I'll fix the installer script, probably tomorrow.

BTW, my own setup is different (no need for Virtu).
I extended the desktop so the main screen is on my dGPU and the iGPU is disconnected. This is called a multi GPU setup. The decoder works on the iGPU and the renderer is on the dGPU (MadVR can work at best quality).
This setup doesn't work on all boards, but give it a try. See here (http://forum.doom9.org/showthread.php?p=1532786#post1532786)

After this trick is used, all QS enabled SW will work without Virtu.
It has some drawbacks, users reported that when the system resumes from sleep, the disconnected screen becomes the active one...

RBG
6th June 2012, 10:17
egur
I've got a question regarding QS performance, is it normal that QS consumes about 60 percent more CPU resources than CUVID? And not only CPU resources...
http://img844.imageshack.us/img844/1787/20120606125413.png
During this test I used absolutely the same video sample and filter chain, just changed decoder options in LAV. My graphics configuration is a hybrid setup with vga dummy.

egur
6th June 2012, 11:15
Very low CPU usage for both, at low bitrates libavcodec can be faster...

What's probably happens is that the frames from QS are copied twice and from CUVID only once - Nev can answer that.
After the video processing feature looks stable enough, I'll go and implement the next big feature - expose DXVA surfaces instead of plain buffers, this will speed things up.
For full DXVA connectivity some more changes are needed, I'll need to close the details with Nev.

RBG
6th June 2012, 11:31
After the video processing feature looks stable enough, I'll go and implement the next big feature - expose DXVA surfaces instead of plain buffers, this will speed things up.
For full DXVA connectivity some more changes are needed, I'll need to close the details with Nev.

Correct me if I am wrong but doesn't that mean that hybrid setups like mine will not be supported?

egur
6th June 2012, 11:56
Correct me if I am wrong but doesn't that mean that hybrid setups like mine will not be supported?

Don't worry, this will be an option.
The new behavior will be:
1) Normal - QS sends system memory buffers.
2) Copy back mode - QS exposes DXVA surfaces, LAV/ffdshow copy the frame directly to the output buffer. Most likely LAV is better suited for this as no post processing is needed.
3) DXVA native - DS decoder negotiates allocator with QS and renderer. QS outputs DXVA media samples that EVR understands. No intermediate filters.
4) DXVA++ - same as DXVA native but QS outputs copies of the decoder output (still in GPU memory). These copies can be overwritten with subtitles, OSD, etc. by the DS decoder or even a video post processing filter.

This is all ideas being thrown around, I'm not 100% closed on the details or limitations.

nevcairiel
6th June 2012, 13:26
LAV always copys the HW buffers twice, first from the HW to system memory, then sends it through the decoder itself, and then performs the final pixel format conversion into the media sample.
There is no "optimized" shortcut to only perform one copy, its currently not supported by the architecture of my decoders.