or Connect
AVS › AVS Forum › Video Components › Home Theater Computers › Intel QuickSync Decoder - HW accelerated FFDShow decoder with video processing
New Posts  All Forums:Forum Nav:

Intel QuickSync Decoder - HW accelerated FFDShow decoder with video processing

post #1 of 288
Thread Starter 
Updated Jone 22nd 2013
Hi,
My name is Eric Gur and I've taken upon myself a side project at my Intel position to make the Intel SandyBridge (or newer) hardware accelerated video decoding technology freely accessible to everyone.
The project name is [B]Intel QuickSync Decoder[/B].
 
To do so, I decided to embed the Intel QuickSync technology introduced in SandyBridge into the widely popular FFDShow video decoder filter.
Nowadays, the Intel QuickSync Decoder is officially integrated in FFDShow, LAV Video Decoder and PotPlayer.
 
Main features
* HW decode using Intel's high performance QuickSync engine.
* Decodes H264, MPEG2, VC-1, WMV9. DVD playback not supported.
* HW deinterlacing -auto or forced, with half or full (50/60p) output rate
* HW denoise and detail filters
* Soft 3:2 pulldown on marked streams.
 
* Support variable frame rate streams.
* Support headless iGPU (Intel GPU disconnected from display) on Windows 8 and newer.
 
If your system meets the requirements, I'd appreciate stability feedback with assorted quality and sources of video content.
To report a bug report or feature request, please post in this thread.
 
If something is broken, please provide me with a detailed report including [B](after reading the known issues section below)[/B] :
1. Hardware (CPU, GPUs)
2. Software (OS, driver version, player, splitter, etc.)
3. Access to the offending content. Share via your favorite file share sites. Limit content to <100MB.
 
Requirements:
1. SandyBridge (2nd Generation Core i3/i5/i7/celeron/pentium) or newer. [B]Older platforms will not work and no plans to support them[/B].
2. Latest Intel graphic drivers. Intel GPU must either be the primary GPU, extended display or use Lucid Virtu.
3. Windows 7 (32/64) or newer OS. Should work in Vista but I can't test this.
 
Known Issues:
* Jumpy playback or heavy corruption on many clips are the result of drivers obtained from Windows Update. Download drivers from your OEM website or directly from [URL="http://downloadcenter.intel.com/"]Intel's download center[/URL]. Some versions of Lucid Virtu will cause video playback in 64 bit player to display frames out of order.
* Frame rate is wrong or incorrect aspect ratio: Haali Media Splitter is sending corrupt time stamps or aspect ratio. LAV splitter is recommended.
* After a seek in a TS file, a corruption is seen for a few frames. LAV splitter known issue.
* Resolutions greater than 1080p aren't supported in SandyBridge.
 
Installation:
1. An ffdshow installer is supplied.
2. Open FFDShow configuration dialog and select 'Intel Quicksync' from the codec page for the desired formats (H264/VC1/MPEG2).
 
Version 0.44 is out with the following changes:
* Improved D3D11 compatibility with 15.31 Intel drivers.
* H264 playback now properly supports fragmented packets (some live TV splitters), better error handling. Code was rewritten and now it's BSD licensed all the rest of IQSD code. 
* FFDShow: r4519
 
Downloads
* For the latest cutting edge FFDShow builds, download my builds  from Intel QuickSync Decoder SourceForge home page

Edited by ericgur - 6/22/13 at 7:13pm
post #2 of 288
pretty cool stuff
post #3 of 288
Eric,
Sounds fantastic. I assume the G620 will not nun this? I ask because the Intel spec sheet shows that the G620 does not support QuickSync, yet if I am not mistaken, the first drivers showed that it was supported.
post #4 of 288
Does it really require the latest graphics drivers? I'm not sure what version I'm running right now, but I'm pretty sure it's not the latest. I've got everything working well right now. I've read to many horror stories about problems with the later video drivers so I haven't bothered to upgrade. I'd like to try this out, but I don't want to mess up a working system.
post #5 of 288
Thread Starter 
Quote:
Originally Posted by winterescape View Post

Eric,
I assume the G620 will not nun this? .

I don't know, I don't have such a system.

Quote:
Originally Posted by duff99 View Post

Does it really require the latest graphics drivers?

Not a must, older drivers should work. I'm using a driver from April 2011. Hopefully newer drivers will deliver a better decoder. Currently there're few (rare) decoding issues that lead to image corruption (no crashes reported yet)but I haven't root caused them to the driver, might be solved in SW (either my code and/or the Intel Media SDK).
post #6 of 288
Any chance of an x64 version?
post #7 of 288
Thread Starter 
Quote:
Originally Posted by jskube84 View Post

Any chance of an x64 version?

Can be done. My code is quite simple with 64 bit in mind. It all depends how quickly I manage to get FFDshow compiled and running...
post #8 of 288
Eric - Thank you so much for taking this on.

I'd love to be able to transcode my windows media center tv recordings (mpeg 2, dolby digital WTV) into x264, and retain dolby digitial using intel quicksync. No change in resolution / aspect ratio / audio track. Just want to transcode the underlying video stream mpeg2-->x264

I have :

HD Homerun Prime 3 tuners (tv tuner)
Win 7 x64
Intel core i5-2500k
Latest intel video drivers

You should cross post on doom9.
post #9 of 288
Looks awesome. Once you have a 64bit version let me know. I have 2 HTPCs that meet your criteria.

Edit: I will run the 32bit in my 64bit OS for now.
post #10 of 288
Thread Starter 
Quote:
Originally Posted by ymarker View Post

Eric - Thank you so much for taking this on.

I'd love to be able to transcode my windows media center tv recordings (mpeg 2, dolby digital WTV) into x264, and retain dolby digitial using intel quicksync. No change in resolution / aspect ratio / audio track. Just want to transcode the underlying video stream mpeg2-->x264

...

You should cross post on doom9.

This should work with DirectShow based transcoders (this FFDSHow version will Encode using HW, it's a little out of my scope ATM). For super quick transcodes I personally use Media Espresso. For high quality stuff I take the time to demux the source stream transcode the video with x264 (ME GUI) and mux the streams to MKV.

My post at doom9 is:
http://forum.doom9.org/showthread.php?t=162442
post #11 of 288
Thread Starter 
New and improved version. Zip files contain documentation, please read.

Download version 0.12 alpha:
32 bit http://www.multiupload.com/5L5NL03997
64 bit http://www.multiupload.com/41UGJ3TQMI

Revision highlights:
v1.12:
* 64bit version is working.
* Optimized CPU usage (faster copying from GPU to CPU)
* More stable with LAV splitter. Previous version crashed on several MPEG2 transport with AVC1 (H264) video.
* Added time stamp stabilizing (transport stream issues).
* Added inverse telecine when stream has the right flags.
post #12 of 288
Thread Starter 
New and improved version. Zip files contain documentation, please read.

Download version 0.13 alpha:
32 bit http://www.multiupload.com/Z284JFR06X
64 bit http://www.multiupload.com/1YFGXD786C
Source Code http://www.multiupload.com/ZVMCN124A0

Revision highlights:
v1.13:
* Optimized memory copy even further. Memory copy has 2-6% overhead (out of process CPU usage).
* Fixed bug in memory copy when frame width wasn't mod128.
* VC1 playback is more stable. Still corruption on some clips.
* Fixed some small memory leaks.
* Compatibility with 2509 driver.
* Bug fixes & cleanup.
* Tested with driver versions 2509 and 2372.
post #13 of 288
Thread Starter 
New and improved version. Zip files contains installer documentation, please read.

Download version 0.14 alpha:
32 bit http://www.multiupload.com/LPX2JXB06S
64 bit http://www.multiupload.com/8H7ZPV5XKC
Source code http://www.multiupload.com/AXET69LL3P

Revision highlights:
v1.14:
* Created ffdshow installer. Installer will default to enabling the Intel QuickSync decoder on new installations.
* More speed optimizations. CPU is at its lowest frequency during playback with very low utilization. 2-3% on desktop and 5-6% on mobile. Mobile lowest frequency is half of desktop (800/1600).
* Fixed handling of interlaced content which is encoded as progressive frames.
* More robust and faster codec initialization
post #14 of 288
Thanx for the support Eric. Apparently Intel doesn't think the HTPC is dead either.
post #15 of 288
Any chance you might be doing a stand-alone decoder without all the rest of ffdshow's bloat?
post #16 of 288
Eric already commented on that before, and sadly he doesn't have the time to keep a full DirectShow decoder alive as well.

If you want something more light-weight, LAV Video will eventually integrate a Intel Media SDK decoder based on Erics work as well. There is however no ETA, but keep your eyes open.
post #17 of 288
Question: My HTPC meets the hardware requirements, and Im currently running Shark's pack. Would it benefit me to install this over shark's?
post #18 of 288
Quote:
Originally Posted by blackangst View Post

Question: My HTPC meets the hardware requirements, and Im currently running Shark's pack. Would it benefit me to install this over shark's?

If you have playback working properly already, Why would you chance breaking that?
Those who attempt to fix what is not broken, will eventually have something that is broken.
post #19 of 288
Correct me if I'm wrong but this would have its biggest benefit on laptops/tablets where you're trying to save battery, right?
post #20 of 288
Intel QuickSync video decoder also works with Celeron/Pentium SNB. At playback of 1080p24 AVC with Pentium G840,
  CPU usage System power
libavcodec+madVR 40% 55W
Intel QuickSync+madVR 20% 52W
Playing back 1080i60 AVC is more interesting. A weaker SNB processor can't handle decoding and deinterlacing simultaneously with libavcodec, but it can with Intel QuickSync.

- Celeron G530/Pentium G620/Pentium G840 SNB processor
- ASRock Z68 Pro3-M
- DDR3-2133 2 x 2GB (@2133MHz)
- Intel HD Graphics
- MPC HomeCinema, LAV Source/Splitter, ffdshow Video Decoder (libavcodec/Intel QuckSync, yadif on), madVR (softcubic 100); LAV Audio Decoder, ReClock (media adaptiation + WASAPI exclusive mode)
- La Traviata (2010) [2 min HD i video MKV].mkv (1080i60, AVC, DTS-HD MA)

libavcodec
  Celeron G530 2.4GHz Pentium G620 2.6GHz Pentium G840 2.8GHz
Dropped frames 4129 910 0
CPU usage (average) 90% 90% 87%
GPU usage (average) 44% 84% 84%
Rendering time (average) 16.37 ms 14.10 ms 13.62 ms
Intel QuickSync
  Celeron G530 2.4GHz Pentium G620 2.6GHz Pentium G840 2.8GHz
Dropped frames 2 0 0
CPU usage (average) 69% 61% 61%
GPU usage (average) 93% 86% 86%
Rendering time (average) 14.96 ms 13.81 ms 13.78 ms
Unfortunately, 6 EUs are not enough even for Bicubic 50 in luma upsampling (rendering time ~18ms for SD video-based contents [rendering time must be less than 1/59.94 s = 16.68ms]). Celeron G530/Pentium G620 HD Graphics (+ DDR3-2133) is good enough for every kind of contents with Intel QuickSync + madVR Low Quality (bilinear/bilinear/bilinear). I still prefer madVR LQ to EVR because of smoother playback.

Update

madVR in medium quality settings (Bilinear/Bicubic 50/Bicubic 50) is also possible by overclocking GPU slightly. I observed that the average rending time at various SD video-based contents playback with the default GPU clock 1100MHz is at most 18ms. To reduce it to 16.68ms, overclocking GPU to 18/16.68 x 1100MHz = 1187MHz should be enough. Details:

- Celeron G530 under madVR (medium quality)
post #21 of 288
I thought Quicksync is not supported in Celeron/Pentium SNB? I tried it and it failed: If I choose Quicksync in the FFDShow Codec Page for H264 or MPEG2, my player defaults back to another decoder, in my case Microsoft DTV. If I go back to libavcodec, FFDShow is used as decoder. What am I missing?
post #22 of 288
Quote:
Originally Posted by renethx View Post

Unfortunately, 6 EUs are not enough even for Bicubic 50 in luma upsampling (rendering time ~18ms for SD video-based contents [rendering time must be less than 1/59.94 s = 16.68ms]). Celeron G530/Pentium G620 HD Graphics (+ DDR3-2133) is good enough for every kind of contents with Intel QuickSync + madVR Low Quality (bilinear/bilinear/bilinear). I still prefer madVR LQ to EVR because of smoother playback.

Update

madVR in medium quality settings (Bilinear/Bicubic 50/Bicubic 50) is also possible by overclocking GPU slightly. I observed that the average rending time at various SD videos (not film) playback with the default GPU clock 1100MHz is at most 18ms. To reduce it to 16.68ms, overclocking GPU to 18/16.68 x 1100MHz = 1187MHz should be enough.

Interesting. This suggests that we 1080/50i viewers may be able to squeeze a slightly higher quality decode out of this set-up, as we have 20ms a frame to play with?
post #23 of 288
Quote:
Originally Posted by alfonxs View Post

I thought Quicksync is not supported in Celeron/Pentium SNB? I tried it and it failed: If I choose Quicksync in the FFDShow Codec Page for H264 or MPEG2, my player defaults back to another decoder, in my case Microsoft DTV. If I go back to libavcodec, FFDShow is used as decoder. What am I missing?

Try this: uninstall both ffdshow and Intel graphics driver. Then install driver, then ffdshow. (I saw the same problem as you with 2100, this fixed it. Somehow Intel QS worked immediately with Celeron and Pentium.)
post #24 of 288
Eric,

Thank you very much for taking the effort to make Intel GPUs more open source friendly. We covered your efforts recently in a small news piece [ http://www.anandtech.com/show/4895/i...ing-to-ffdshow ]. Hopefully, this gives you a wider audience for feedback purposes.

Personally, I can't wait to try out your filters in the next HTPC review using a SNB system!

We are very happy to note that Intel is considering the needs of the HTPC community with respect to both hardware and software support (as the recent healthy increase in the HQV scores show). May I also take this opportunity to request you to look into the quality of the deinterlacing algorithm used by the Intel drivers? Currently, ATI leads in deinterlacing quality followed by Nvidia and then, Intel. Ideally, we would like some sort of vector adaptive deinterlacing instead of the motion adaptive approach currently being adopted.
post #25 of 288
RE: QuickSync

Many of the reviews and articles on the SB Pentiums and Celerons mention the lack of QuickSync. However this thread suggests some QuickSync support.

Reading between the lines it appears that QuickSync includes both decoding and encoding acceleration.

Is it the case that the decoding is supported in all SB processors, and only the encoding (used for hardware transcoding acceleration) is not available on the lower end processors?
post #26 of 288
Thats right, even the low-end celeron Sandy Bridge supports hardware decoding.
post #27 of 288
Quote:
Originally Posted by Nevcairiel View Post

Thats right, even the low-end celeron Sandy Bridge supports hardware decoding.

Yep - sounds like this is an alternative route to DXVA to using the hardware decode acceleration that all the SB processors have?
post #28 of 288
Quote:
Originally Posted by sneals2000 View Post

Yep - sounds like this is an alternative route to DXVA to using the hardware decode acceleration that all the SB processors have?

Indeed. This opens up a lot of choices.
post #29 of 288
Quote:
Originally Posted by renethx View Post

Try this: uninstall both ffdshow and Intel graphics driver. Then install driver, then ffdshow. (I saw the same problem as you with 2100, this fixed it. Somehow Intel QS worked immediately with Celeron and Pentium.)

Thanks for the suggestion, but it didn't help. Same problem as before. Any other ideas will be welcome...
post #30 of 288
hrmm I am going to have to download the x64 version and see if it helps things. Right now I can not get my PS3 and 360 to stream Blue-ray (MKV) files from my HTPC to save my life. With the PS3 it glitches and with the 360 it glitches and I have no sound.


Judd

system:
i3-2100
ASUS P67 M-Evo board
8 gig DDR3 memory
New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: Home Theater Computers
AVS › AVS Forum › Video Components › Home Theater Computers › Intel QuickSync Decoder - HW accelerated FFDShow decoder with video processing