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

NikosD
4th January 2013, 13:24
Of course he has a "Desktop" CPU but this doesn't change anything.

If he had a Server CPU, he could use QuickSync on Windows Server ?

And I wasn't referring to ralle_h that's why I wrote the opposite.

If Intel didn't want Server CPUs to use QuickSync, then why bothered to include working QuickSync ASIC inside them ?
To use Server CPUs QuickSync on Desktop Windows ?

nevcairiel
4th January 2013, 13:30
There is only a rather short list of Xeons with the GPU, and all are single-processors Xeons, which might as well be used in a Workstation system, which doesn't typically run a Server OS.
In fact, all of these Xeons have a version with and without GPU (otherwise identical), so you can decide if you need/want it (Server or Workstation)

All the DP/MP Xeons do not have a GPU.

Also note that the Xeon GPUs use a special driver, which are certified for professional applications (similar to Quadro or FirePro drivers), which may as well support the Server OS.

NikosD
4th January 2013, 13:37
@Nev

OK we are saying the same thing with different words. The decision made by Intel is clear.

Windows Server means no QuickSync acceleration.

Are you happy with that decision ? Do you agree ?

nevcairiel
4th January 2013, 13:44
That much was obvious. Intel does not want Server to use QuickSync (or they just didn't care to test and enable it) - at least on Desktop CPUs. I don't know if it would work on a Xeon, driver behaving differently and all.

egur
4th January 2013, 13:58
Server support for QS only makes sense for media servers like YouTube have. This niche server type is rather new and I'd bet they'll get QS support.
Personally, I'd like to see resources (engineers) diverted making the Media SDK better (features, power/performance, robustness) and spend less time on niche use cases. In the end, there's a finite amount of man power...

Can't make everyone happy.

For people who want special/non-standard systems, they can use hacks and workarounds.

If software vendors or OEMs that use servers with QS, want it bad enough, they can request this feature enabled.

NikosD
4th January 2013, 14:09
Generally I agree.

The priority should go in Drivers team in general, not only in Media SDK.
A lot of bugs, incompatibilities, low support of games, optimizations.

Drivers team has a long road ahead to approach ATI and Nvidia in drivers quality, although it has done steps forward after the SandyBridge/iGPU launch.

I'm still waiting for 4K decoding support with SandyBridge...

wanezhiling
4th January 2013, 14:16
:p AMD had simply removed 4K decoding.
http://forum.doom9.org/showthread.php?p=1602338#post1602338

NikosD
4th January 2013, 14:36
Nice!

I didn't know.
I'm stuck with 12.8.

At least they admit they were defeated by 4K :p

nevcairiel
4th January 2013, 14:43
I'm still waiting for 4K decoding support with SandyBridge...

Will never happen, you can stop waiting. :p

They should rather focus on all the bugs, especially the one i reported!

NikosD
4th January 2013, 15:01
Will never happen, you can stop waiting. :p


I'll never give up :D

ATI lost the battle and gave up.
It's time for Intel to do the same :p

nevcairiel
4th January 2013, 16:04
Intel never claimed they would support this, so .. they never started the battle? Can't give up a fight you didn't enter. It works flawlessly on Ivy. :)

NikosD
4th January 2013, 16:07
For Intel it is the opposite than ATI.

They will give up in the end, supporting it, because I know that SandyBridge QuickSync is able to do it ;)

wanezhiling
4th January 2013, 16:42
What I feel is: http://i.imgur.com/WLJjO.gif

NikosD
4th January 2013, 16:52
What do you mean ?
Anything that Intel can help ?

It's for QuickSync decoding here...

ralle_h
4th January 2013, 20:43
Here is the latest version: 15.28.12.64.2932 (http://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=22375)
Its the official version you find when you go to Intels download center and ask it for Graphics drivers.


Thanks for the link!

Really hard to find the right links on the intel site at times.


You can make it install by changing the installer script Setup.if2:
MSDK=IsGroupSel(GFX) AND NOT IsWinN AND NOT IsOS(WIN2008,WIN2008_MAXSP) AND NOT IsOS(WIN2008_R2,WIN2008_R2_MAXSP)


To
MSDK=IsGroupSel(GFX)

If this still doesn't install the Media SDK DLLs, search for MSDK in the same script and change the conditions.

You should understand that this is a hack without warranties...
I don't have such a server, so I can't test this.

:thanks:

I would love to try this, but what do I do when the installer is an .exe file (like in the link above)? How do I find the Setup.if2 file to modify it?



If you have already installed and configured the add-ons to make Server edition to "look like" a Desktop edition (find a quide from google how to "convert" a server edition to Desktop like) then you can't do anything else from your side.
?

Yeah, I did.


Right click the executable of installer and select properties.
Then go to compatibility mode and check "Run this program in compatibility mode for:"
Select a previous version of Windows, like Windows 7.


Didn't work :mad:


Download and run this program http://bluesky23.yu-nagi.com/dxvac/DXVAChecker32_2.9.1.zip

Take a screenshot by pressing Ctrl+s and post the screenshot here.


http://www.abload.de/thumb/dxva_checker_1hvu2p.png (http://www.abload.de/image.php?img=dxva_checker_1hvu2p.png) http://www.abload.de/thumb/dxva_checker_2u2ult.png (http://www.abload.de/image.php?img=dxva_checker_2u2ult.png) http://www.abload.de/thumb/dxva_checker_3djuf3.png (http://www.abload.de/image.php?img=dxva_checker_3djuf3.png) http://www.abload.de/thumb/dxva_checker_4w3u8w.png (http://www.abload.de/image.php?img=dxva_checker_4w3u8w.png)

P.S: Since I'm already talking to people with huuuge knowledge about such things, I have to use my chance and give it a shot :D... Any intel about whether the 24p bug is going to be fixed with haswell/lynx point yet? ^^

rtabrah
5th January 2013, 00:55
@ ralle_h or anyone else on the thread-

Re: Any intel about whether the 24p bug is going to be fixed with haswell/lynx point yet? ^

Can you send me direct link to this bug and details? Has this been submitted on the Intel forums?

Thanks - we'll be at CES all next week and we will be launching Media SDK 2013 on Tuesday and at the free CES DevU on Thursday. Ping me if anyone would like to chat about Media SDK, Quick Sync, or CODECS.

Thanks,
Ryan

ralle_h
5th January 2013, 03:11
Hey,

thanks for the offer, would be really nice if you could take a look at this problem!

I'm not too much into the technical backgrounds, so I'm not sure if I can explain it 100% correctly, however I can explain how you can reproduce the problem and draw your own conclusions/start investigations.

Testsetup
- A TV with 23Hz/24p Mode
- A 23.976 fps video source (24fps, 25fps and other sources are totally fine)
- Put the TV on 23 or 24hz (preferably 23 hz) mode in windows
- Run the 23.975 fps video source

The result is:
- On Cougar Point Mainboards you are going to see a framedrop every 42s
- On Panther Point Chipset Mainboards every ~4 minutes 4 seconds
- If you are using a SandyBridge or Ivybridge iGPU doesn't matter
- Frame drops are not visible to all viewers, some are too "blind" to notice it, also mostly you only notice it if there is a fast scene in the movie when the frame drops

If you use MPC-BE/MPC-HC + LAV Splitter & Decoders and EVR Custom Renderer (or madVR) you can see the stats by using the Hotkey Strg + J and see the framedrops there as well (EVR has a nice graph, too) though.

What is causing this bug?

Most people speculate that this is a hardware (chipset) bug/problem, related to the clock generator working not 100% in sync with the video output (as I mentioned, my technical knowledge is limited there, so I can't say much about it). Instead of the desired 23,9760000000Hz, you get 23,97236Hz for example - which is a 0,002 difference and causing the frame drops.

-

@egur:

I managed to get my hands on an older GFX driver in .zip format and applied the workaround to the Setup.if2 file.

The desired files were installed, the reg key has a different number in the end, though: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Intel\MediaSDK\Dispatch\0102 (instead of 0126)

However, it WORKED and QuickSync is available in the LAV Video Decoder now :cool:

Thanks a lot!

Is there any chance to get the latest driver in a .zip instead of an .exe file, so the workaround can be applied there as well? I don't like running old drivers too much :(

http://www.abload.de/img/unbenanntfooc2.jpg

wanezhiling
5th January 2013, 03:37
Edit:
It seems the download is broken right now, oh well.

15.28.12.2932 (http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=22374&lang=eng&OSVersion=Windows%208%2C%2032-bit*&DownloadType=Drivers)

15.28.12.64.2932 (http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=22376&lang=eng)

rtabrah
5th January 2013, 05:51
@ralle_h - thanks - that gives me something to go on. Due to CES happening next week, it might be longer than normal to hunt this down. Will keep you posted.

Toku
5th January 2013, 10:36
How impressive is the power savings in using the Intel Graphics to decode the video compared to a discrete Gpu? I bought an I5 3570k and I'm trying to weigh up my options, Using my discrete Gpu (Gtx260+) I can fully utilize MadVRs Scaling algorithms but using my Integrated Graphics (intel HD Graphics 4000, I have to keep Everything on default unless I get major frame drops/delays. Is the power savings worth it? My motherboard came with Virtu Mvp, so I've been messing around with that.

nevcairiel
5th January 2013, 10:39
Instead of the desired 23,9760000000Hz

A common misconception, the desired frequency is 24/1.001, which results in 23.976023976023976... and not 23.97600000.


Is there any chance to get the latest driver in a .zip instead of an .exe file, so the workaround can be applied there as well?

All drivers are usually available as both .exe and .zip
See here for latest zips: http://forum.doom9.org/showthread.php?p=1609041#post1609041

egur
5th January 2013, 12:43
How impressive is the power savings in using the Intel Graphics to decode the video compared to a discrete Gpu? I bought an I5 3570k and I'm trying to weigh up my options, Using my discrete Gpu (Gtx260+) I can fully utilize MadVRs Scaling algorithms but using my Integrated Graphics (intel HD Graphics 4000, I have to keep Everything on default unless I get major frame drops/delays. Is the power savings worth it? My motherboard came with Virtu Mvp, so I've been messing around with that.

The savings depend on the SW used as well as the bitrate of the video.
High bitrate clips show the biggest savings.
As for SW, using DXVA native is the most eco friendly method but it's quite problematic under certain circumstances.
Using the QS decoder under LAV/ffdshow will add some overhead but your processor could operate at very low frequency (LFM) while decoding and save a lot of power.
MadVR has recently added a DXVA scaling mode which uses the GPU's video scaler. This mode is very power friendly on IvyBridge and produces very good quality too.
HW video scaling algorithms change from model to model so you'll get different results from IvyBridge and Nvidia.
The SandyBridge/IvyBridge scaling algorithm is almost identical (result wise) to MadVR's Lanczos4+AR (anti-ringing), this was evident by Madshi's & my own tests.
I use the latter mode in my own HTPC (i7-2600k, no dGPU).

Not having a dGPU in the first place saves a lot of watts (and sometimes noise).

As for how much is saved, on low bitrate clips - nothing. On high bitrate clips 10s of watts. On very high (>100mbps) could be the difference of not being able to play the clip (SW) or smooth playback (HW).

ralle_h
5th January 2013, 13:20
A common misconception, the desired frequency is 24/1.001, which results in 23.976023976023976... and not 23.97600000.

Oh, didn't know. Thanks for clearing that up!


15.28.12.64.2932 (http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=22376&lang=eng)

Thanks for the link.

Another question regarding the included vBIOS files: They are installed together with the driver, right? No need to boot manually via USB/DOS and flash the ROMs (which in this case aren't even roms, they are .dat and .bsf)?

egur
5th January 2013, 17:52
No need to install the VBIOS files manually.

ralle_h
5th January 2013, 18:42
Awesome, then it's all solved I guess :)

Thanks a lot for your time to everyone that helped me, especially egur and nevcairiel <3

egur
10th January 2013, 17:11
I'm going on a vacation next week 12-19 January (skiing in St. Anton, Austria) so response time will be longer.

CiNcH
11th January 2013, 08:47
I'm going on a vacation next week 12-19 January (skiing in St. Anton, Austria) so response time will be longer.
Cool, so you can visit me. Living in Vorarlberg :) . Have fun!

egur
11th January 2013, 20:38
Cool, so you can visit me. Living in Vorarlberg :) . Have fun!

Thanks!

CharlieCL
18th January 2013, 17:13
Finally I can apply quick sync decoder in LAV and FFDShow. The FPS does not improve much but CPU usage is at least 20% off vs software decoder.

Two bugs in Windows 8 Intel Core i7:

1. LAV 0.55 with QS in H.264 video will be terminated automatically after several minutes of running task manger.
2. FFDShow with QS in H.264 video does not display in true fullscreen mode. In normal window mode it works fine.

egur
20th January 2013, 22:05
1. LAV 0.55 with QS in H.264 video will be terminated automatically after several minutes of running task manger.

Specific clip? Please share. Also plz specify your player setup (splitter, renderer) and driver version(s).
2. FFDShow with QS in H.264 video does not display in true fullscreen mode. In normal window mode it works fine.
Which player/renderer?
Do you get a black screen? Does audio play? Plz add some details.

CharlieCL
21st January 2013, 17:48
Specific clip? Please share. Also plz specify your player setup (splitter, renderer) and driver version(s).

Which player/renderer?
Do you get a black screen? Does audio play? Plz add some details.

The driver is Windows 8 pro RTM driver.

For FFDShow it is the latest version of QS with FFDShow. There is audio playback. The problem may be in timestamp. In some cases, the video was waited for a while to be displayed in true fullscreen.

kwlee
23rd January 2013, 07:01
Hi egur,

there is an avi file from fisheye camera, it has special resolution
that ffdshow with IQS get trouble.

http://www.mediafire.com/?dkj5vzqi1u99pnp

wanezhiling
23rd January 2013, 07:40
SNB GPUs only support 1920x1080, while IVBs support upto 4096x4096.

kwlee
23rd January 2013, 08:05
Hi egur,

there is an avi file from fisheye camera, it has special resolution
that ffdshow with IQS get trouble.

http://www.mediafire.com/?dkj5vzqi1u99pnp

My testing PC is Intel Core i7-3770 CPU

egur
23rd January 2013, 08:45
I'll take a look.

wanezhiling
30th January 2013, 10:11
Hi egur, the 2nd/3rd Generation graphics (Sandy Bridge/Ivy Bridge) are named as "Processor Graphics", how about the 1st ones (Clarkdale,Arrandale)?:)

egur
30th January 2013, 10:16
My testing PC is Intel Core i7-3770 CPU
There seems to be a problem with the decoder (IvyBridge), it doesn't manage to decompress a single frame.
I've just found this, I'll report if there's a solution.

Hi egur, the 2nd/3rd Generation graphics (Sandy Bridge/Ivy Bridge) are named as "Processor Graphics", how about the 1st ones (Clarkdale,Arrandale)?:)
Obviously not processor graphics - they were no on-die graphics. They were "on package" graphics :)

wanezhiling
30th January 2013, 11:11
Obviously not processor graphics - they were no on-die graphics. They were "on package" graphics :)
Thanks.

btw Haswell GT3 series (HD Graphics 5200/5100/5000) are only available on laptop?

ryrynz
30th January 2013, 13:14
Thanks.

btw Haswell GT3 series (HD Graphics 5200/5100/5000) are only available on laptop?

From everything I've seen, yes. Damn shame that.

egur
30th January 2013, 17:57
@kwlee
The Media SDK team have found the problem, a broken H264 in this file.
I've made some changes in my code that can now catch such (rare) cases and fix them silently (SVN R78).
I'll probably add one more thing and release soon.

nevcairiel
30th January 2013, 19:43
Note that the enum in the H264Nalu.h is not complete, and using it as a validity check might not be the best idea in its current form. The latest spec i have has values up to 20, the enum only goes to 12.

egur
30th January 2013, 21:10
thanks, I'll give it a higher number. 40 sounds good?

Out of curiosity, where did you see that?
The H264 reference code holds till 12.

nevcairiel
30th January 2013, 22:44
The field is only 5 bit, so it can only go to 31, 40 is too much :p
Considering the field can only go to 31, what invalid values did it even read there?

According to the spec i'm looking at, 0 is unspecified, 16-18 are reserved, 21-23 are reserved, and 24-31 are "unspecified", everything in between are valid values now.
I got this from the official H.264 spec, version 06/2011

I guess the things above 12 are for extensions not present in the original spec.

egur
31st January 2013, 10:43
@Nev
Thanks!
Then I'll keep the existing code as is. No point in supporting extensions which do not exist yet and the decoder can't handle.
You can this check to LAV splitter BTW since you already do stream processing. The overhead is zero.
BTW I did this check only for the H264 header, not for every NALU. I'll change the code to filter all invalid NALUs.

nevcairiel
31st January 2013, 11:12
The splitter will never discard any data, because you dont know if the decoder understands it or not.

egur
31st January 2013, 21:22
Version 0.41 is out with the following changes:
* Fixed handling of special case of broken H264 header. H264 streams a re scanned for illegal segments (NALUs).
* Avoid crash (but not failure) when switching display resolutions during HW init.
* Added IQuickSyncDecoder::GetCodecName() - returns name of decoder + active codec.
* Added IQuickSyncDecoder::IsHwAccelerated() - returns true/false when HW is used.
* Updated MSDK headers and dispatch library to Intel Media SDK 2013.
* Sync shared code from Media SDK 2013 (allocators, etc).
* FFDShow - added nicer print of codec name in the Info dialog
* FFDShow bugfix - TestMediaType was called with QS defaults instead of using ffdshow settings
* FFDShow: r4501

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)

tezila
9th February 2013, 07:00
How can I get in Adobe Premiere?

hajj_3
10th February 2013, 15:40
How can I get in Adobe Premiere?

adobe.com

wanezhiling
20th February 2013, 04:33
http://www.necacom.net/index.php?option=com_content&view=article&id=6773:intel-hd-graphics-40002500-drivers-version-153113006-whql&catid=68:intel&Itemid=86
Haswell HD Graphics Driver is coming.:D

"Intel Haswell HD Graphics"
"Intel Haswell HD Graphics - GT1ULT"
"Intel Haswell HD Graphics - GT2ULT"
"Intel Haswell HD Graphics - GT3ULT"
"Intel Haswell HD Graphics - GT1CW"
"Intel Haswell HD Graphics - GT2CW"
"Intel Haswell HD Graphics - GT3CW"
"Intel Haswell HD Graphics - GT2CWDT"
"Intel Haswell HD Graphics - GT3CWDT"
"Intel Haswell HD Graphics - SVR-GT1"
"Intel Haswell HD Graphics - SVR-GT2"

LilScrappy
25th February 2013, 10:28
Please for help, i use ffdshow + Intel QuickSync and potplayer i want use only Intel QuickSync when play x264 8bit video no problem:
Input: CCV1 (Intel@ QuickSync) but problem is when start 10bit x264 codec use (libavcodec h264)
please some one to tell me how to fix this problem and when watch 10bit video to use as well Intel@ QuickSync
Thanks