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


Pages : 1 [2] 3

egur
17th March 2012, 23:48
The new dll doesn't fix the issue. :(
Movements are still jittering/stuttering.
Seems to happen only with MPEG2, VC-1 und H.264 are fine.
It occurs with every renderer.

I can't reproduce the jitter, using EVR within ZoomPlayer or MPC-HC produce zero jitter (according to EVR anyway).
It might be an ffdshow issue, try installing the latest ffdshow build (I'm currently synced with ffdshow r4379) and overwrite the QS dll.
Turn off all processing within ffdshow and output only NV12 - and see if that helps (basically factory default).

Edit:
I could only play this file when LAV splitter was used. Haali and MPC splitters failed to connect.

nevcairiel
18th March 2012, 00:00
The MPEG-2 thing might be a driver problem, and maybe egur is still running some newer driver where this is fixed. An Intel engineer apparently working on the Linux VAAPI interface submitted a patch to ffmpeg just last week to fix decoding of such samples, if the Media SDK part needed the same fix it may not be in our "older" versions yet. 2622 clearly shows the problem though.

Here are some more streams that illustrate the issue:
http://samples.ffmpeg.org/MPEG-VOB/mpeg2dec-streams/hhi/hhi_burst_long/stream
http://samples.ffmpeg.org/MPEG-VOB/mpeg2dec-streams/sony/sony-ct1/stream

I believe its the same problem.

Both are decoding with a lot of image jitter, if you compare that with a software decoder, the software decoder is just much smoother.

Pat357
18th March 2012, 00:12
Ok guys, thanks a lot for your answers, I dont want to go too offtopic on this here. Maybee some good information for someone else in my position.

So I have two problems:

- Luzid Virtu is not licenced by ASUS (nice they even dont have a clear customer-support, I dont know where to contact them without needing serial of Mainboard, can`t get it right now)

- Luzid Virtu needs an executable which I cant offer in combination with lav, avisynth. I specialy need avisynth for filtering and I didnt found a way to get it implemented in Graphstudio. Even batching could be problematic with Graphstudio.


So it was a disaster with Intel:
- Problems with my H67 board and 3 destroyed Harddrives
- No sin in offering a P67-Deluxe-Board, because it cant switch between onbard and additional graphic-card, and even there are problems in cooperation with LUZID VIRTU. And at all: You can only use VIRTU if you have an executable ... which I dont have here for decoding ...

So a warning to all, dont buy this Board, its useless ... :mad::mad::mad:

But your Z68 board is OK now ? :p

CruNcher
18th March 2012, 10:24
Unfortunately this is a DirectX limitation. Lucid have overcome this by creating what seems like a driver that intercepts DirectX calls.



There was a problem with the HW device, a problem not seen before :(
I didn't notice any jitter, the clip just froze after 4-5 seconds.
I don't know your setup but you should not EVR-CP, only EVR, VMR9 or MadVR.
I've patched my code and hopefully this will solve the issue.
Here's a test dll (http://www.mediafire.com/?090beu9nr48cpqz), just replace the original.

I'm going on a business trip for a week, so if this patch works for you, I'll release a new build.


Fixes the Freeze and correctly changes the AR with ffdshow quicksync
Lav Video Quicksync still freezes @ the AR change


The MPEG-2 thing might be a driver problem, and maybe egur is still running some newer driver where this is fixed. An Intel engineer apparently working on the Linux VAAPI interface submitted a patch to ffmpeg just last week to fix decoding of such samples, if the Media SDK part needed the same fix it may not be in our "older" versions yet. 2622 clearly shows the problem though.

Here are some more streams that illustrate the issue:
http://samples.ffmpeg.org/MPEG-VOB/mpeg2dec-streams/hhi/hhi_burst_long/stream
http://samples.ffmpeg.org/MPEG-VOB/mpeg2dec-streams/sony/sony-ct1/stream

I believe its the same problem.

Both are decoding with a lot of image jitter, if you compare that with a software decoder, the software decoder is just much smoother.



I don't see any issues with 2639 (Win7/Vista 64) and the supplied libmfxhw32.dll at least on the Sony stream so it might work if you replace it for testing just in the lav video and ffdshow directories but be careful it could brake i know to less about the driver ;) with Nvidia it brakes most of the times when CUDA changes majorly :D
Dunno how it is with Intel i guess we gonna find that out now http://www.mediafire.com/?5hwcv2ztgpcck0h ;)

PS:
Actually their is a Problem very visible with Lav Video Quicksync especially on the Sony bitstream it seems to detect the interlacing wrong (you have to treat it as progressive to avoid intels Deinterlacer distort it) but ffdshow quicksync doesn't show any problems with that though it also shows the zoom jitter problems on the HHI bitstream like Lav Video Quicksync though it doesn't trigger deinterlacing flags for the Sony stream like Lav Video Quicksync does and so no real issues on that bitstream visible.

So the Sony Bitstream might never had a problem actually or was fixed though the HHI stream has a real issue that can't be fixed treating the stream as progressive and indeed causes jitter on the zoom @ the boats @ playback.

Though i could swear i remember this issue on the renderer it looks the same as @ the thread start the evil trees.ts problem that wasn't visible with Software Decoding (Lav Video on EVR) :) but failed with Quicksync the same strange FPS difference and caused microstuttering Quicksync plays the HHI stream @ 50 fps and Lav Video @ 48.xx

egur
18th March 2012, 11:45
The MPEG-2 thing might be a driver problem, and maybe egur is still running some newer driver where this is fixed. An Intel engineer apparently working on the Linux VAAPI interface submitted a patch to ffmpeg just last week to fix decoding of such samples, if the Media SDK part needed the same fix it may not be in our "older" versions yet. 2622 clearly shows the problem though.

Here are some more streams that illustrate the issue:
http://samples.ffmpeg.org/MPEG-VOB/mpeg2dec-streams/hhi/hhi_burst_long/stream
http://samples.ffmpeg.org/MPEG-VOB/mpeg2dec-streams/sony/sony-ct1/stream

I believe its the same problem.

Both are decoding with a lot of image jitter, if you compare that with a software decoder, the software decoder is just much smoother.
I reinstalled the driver to v2622 and it still plays fine (cut.mpg). With LAV video (0.49) the clip will not end well - would not stop or rewind after it reaches the end. I didn't see any jitter visually or via EVR's property page.
The clips you posted look fine too in ffdshow (renamed them to .ts).
LAV 0.49 shows jitter on the 2 clips but ffdshow doesn't. Must be a time stamp issue. Could also be wrong DI flags like Cruncher said.

nevcairiel
18th March 2012, 11:58
So the Sony Bitstream might never had a problem actually

That interlacing problem is the problem that it has. It is missing some fields, and because of that the deinterlacing screws up the video.
I had the same problem with DXVA2 in LAV, then i applied a fix, and everything is fine now.

PS:
I'm not talking about any "jitter" that EVR stats claim to have, thats a completely different concept. Look at the image, if its broken, you'll notice that its not smooth.

CruNcher
18th March 2012, 12:01
yep but that is no real deep problem the HHI stream looks more interesting (the boat zoom) :)

nevcairiel
18th March 2012, 12:02
Its the same problem. Its missing some fields.

Like i said earlier, an Intel Engineer (Gwenole Beauchesne) actually submitted a fix for this exact issue to ffmpegs HW Accel component, and i can see the exact same problem when using QuickSync.
Just with this information alone, its safe to conclude that the MSDK still needs this fix, and probably will get it in an upcoming driver.

CruNcher
18th March 2012, 12:06
but treat as progressive doesn't help like it does with the Sony stream ?

and yes i know which jitter you mean i call it most of the times microstutter ;) and the Sony Dance scene when treat as progressive shows non though the HHI zoom does very obviously no matter if played with ffdshow quicksync or lav video quicksync (treat as progressive)

and the difference on the renderer EVR basic @ playback is clear 50.xx fps for Lav Video and for ffdshow quicksync (microstutter) and 48.92 fps for Lav Video avcodec (smooth zoom) (Aero V-sync refresh rate 75 Hz, MPC-HC tester 4151 Windowed/Fullscreen)

nevcairiel
18th March 2012, 12:17
The odd thing is, I have 2622 installed, and Windows Update is offering me a new driver now. But on the Intel website, i cannot even find 2622 anymore. I wonder if i should try installing it =p

Edit:
It was 2653, but didn't update the MSDK files. Maybe the Windows Update driver doesn't have them, and i couldn't find a stand-alone installer o.o
Really hate this part about the Intel drivers. Just put them all in a central place already.

CruNcher
18th March 2012, 12:29
Intel seems to like drivers vanish out of the user minds (believe us it never existed) though normally they have a nice history for drivers @ their download page but for the GFX driver it seems very different ;)

I keep a history of them so in case something stops working ;)

On the intel page moving over the Products->Desktop Boards->Intel® 6 Series Chipset Boards->Chose any = 8.15.10.2559

and when you move over to Products->Processor Graphics->2nd Generation Intel® Core™ Processors with Intel® HD Graphics 3000/2000 = 15.22.50.64.2509

and if you go to Products->Processors->Desktop->Chose your Ix then = 15.22.54.64.2622

This is so lovely ;)

PS: 8.15.10.2656 eg 15.26.5.64.2656 appeared "leaked" http://www.youtube.com/watch?v=yUoxQHqBnCI ;)



* February 22, 2012
*
*
* NOTE: This document refers to systems containing the
* following Intel chipsets/processors:
*
*
* 3rd generation Intel(R) Core(TM) processors (codename Ivy Bridge)
* 2nd generation Intel(R) Core(TM) i3 processor
* 2nd generation Intel(R) Core(TM) i5 processor
* 2nd generation Intel(R) Core(TM) i5 vPro(TM) processor
* 2nd generation Intel(R) Core(TM) i7 processor
* 2nd generation Intel(R) Core(TM) i7 vPro(TM) processor


Libmfxhw32-s1.dll (API 1.3)

2639 = 3.12.1.62/3.0.357.38898
2656 = 3.12.2.8/3.0.361.39233

Doesn't need to be modded installs directly :)

No decoding improvements on the last reports (decodinerror.ts,WMV3) though it's also only 1 week older then the last (the Decoder part)
and still 720p.mpg crashes with Lav Video DXVA2 Native ;)

Also all of these issues are still the case with Lav DXVA2 Native
https://forum.doom9.org/showpost.php?p=1564452&postcount=9794

CharlieCL
18th March 2012, 15:39
Quick Sync codec can not work in Exclusive Full Screen mode of DirectX in LAV. It was Freeze. In windows it worked fine.

egur
21st March 2012, 03:14
Quick Sync codec can not work in Exclusive Full Screen mode of DirectX in LAV. It was Freeze. In windows it worked fine.

This is something Nev should fix in his code:
Pass the ID3DDeviceanager obtained from EVR.
Call the check() and IQuickSyncDecoder::TestMediaType functions afterwards. These functions will fail otherwise as they try to create a DXVA device. A DXVA device can't be created on its own in full screen exclusive mode (DXVA limitation).
This is what was done in ffdshow although I'm not sure it still works. I'll check it when I return from my trip.

CruNcher
22nd March 2012, 07:12
The WMV3 Bug is in the Quicksync API DXVA VLD works no Decoding issues ;)

http://img513.imageshack.us/img513/2522/intelwmv3fulldxva.png

nevcairiel
22nd March 2012, 07:37
This is something Nev should fix in his code:


If it freezes, thats a bug in your code. :D
It should just fail.

egur
22nd March 2012, 18:35
If it freezes, thats a bug in your code. :D
It should just fail.

It does fail. It can't work in FSE without the receiving the d3d9 device manager. Maybe the return codes are not always checked.

clsid
22nd March 2012, 18:44
@eric
Haruhiko and I are planning to push a new release of ffdshow very soon. Do you have any plans for changes/fixes for which the release should be postponed?

egur
22nd March 2012, 22:07
@eric
Haruhiko and I are planning to push a new release of ffdshow very soon. Do you have any plans for changes/fixes for which the release should be postponed?

I would like to revisit the initialization (TestMediaType) that occurs during full screen exclusive mode (WMC).
My code needs to receive the d3d device manager from EVR prior to any media type checks. In ffdshow these events occur at different times and I need to think about how to solve this so it works OK with IvyBridge's enhanced capabilities.
So current code may not work well in FSE. It should fallback to SW (e.g. libavcodec) and never use HW in FSE.
I'm currently on a business trip and can't test anything. Soonest I can check is on Monday.

BTW, by "release" you mean a new beta or a major release?

CharlieCL
23rd March 2012, 01:18
It does fail. It can't work in FSE without the receiving the d3d9 device manager. Maybe the return codes are not always checked.

Tested the Quick Sync in FFDShow under Exclusive Fullscreen, it only displayed green screen in H.264, sometimes displayed mess pictures for other type of media file.

clsid
23rd March 2012, 18:36
It will be a new major release (v1.2.xxxx). We are no longer going to use the beta tag.

Please let me know when you have fixed the FSE issue and think QS is ready for the release.

egur
26th March 2012, 11:40
Tested the Quick Sync in FFDShow under Exclusive Fullscreen, it only displayed green screen in H.264, sometimes displayed mess pictures for other type of media file.
It very hard to debug FSE since I can only use debugger prints (I don't have 2 monitors) so please help.
Since there are several setups available, please tell me what's yours:
* Screen is connected to iGPU or dGPU?
* Single or multi screen desktop?
* If you select libavcodec for h264 in ffdshow, does it work?
* Do you know which splitter is used?

CharlieCL
26th March 2012, 13:56
It very hard to debug FSE since I can only use debugger prints (I don't have 2 monitors) so please help.
Since there are several setups available, please tell me what's yours:

* Screen is connected to iGPU or dGPU?

Screen is connected to HDMI port in Sandy Bridge i5 2405.
The GPU used is inside the i5.

* Single or multi screen desktop?

Only single screen.

* If you select libavcodec for h264 in ffdshow, does it work?

yes. it worked. In software codec there is no problem. When used FFDShow with Quick Sync in windows the time stamp may be not correct. The motion picture was displayed in pause.

* Do you know which splitter is used?

LAV Splitter.

egur
26th March 2012, 14:13
OK, I'll work on this today.

CruNcher
26th March 2012, 20:33
btw the new driver seems stable as it was before also the 3d performance is ok on the GT1 :) see http://blip.tv/file/get/Cr4bl3r-intelhdrecordingtestx264tuned349.mp4

egur
27th March 2012, 10:34
Version 0.30 beta is out with the following changes:
* Fixed playback under WMC full screen. Unfortunately plays in SW unsupported profiles (only under WMC).
* Fixed a rare freeze.
* FFDShow rev4407

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)

CharlieCL
27th March 2012, 22:12
0.30 version still not worked fine in true full screen. But FFDShow worked fine in windows mode now.

egur
28th March 2012, 08:33
0.30 version still not worked fine in true full screen. But FFDShow worked fine in windows mode now.

I have the exact same setup and it worked. I had issues with VC1 in ts files but they didn't work with libavcodec/wmv3 too. Received bad media sample from LAV splitter (only under WMC).
Note that I didn't test LAV decoder only ffdshow.
The sort of corruptions you report should come from a different decoder. I can't reproduce this. Even in the previous ffdshow builds, QS would fail very early and ffdshow would switch to libavcodec smoothly.

BTW, I use the 2622 driver but any >2509 should be OK. Which one do you use?

CruNcher
28th March 2012, 10:59
@ Egur
it seems either hard or impossible to use Quicksync for Recording the GPU data (3D Game Engine,Direct3D 9) efficiently without impacting the Framerate (of the GT1) more heavily then x264 does on the multiple CPU cores (even @ fast speed and low latency the impact seems higher, and to reach the same quality @ lower overhead seems impossible that way not to speak of better Performance, same situation for anything it seems that needs high EU resources "Video with lot of PP or heavy HTML5 accelerated via Direct2D")
I guess the fact that Motion Estimation is done on the EUs @ the same time (as the heavy (Direct3D 9, Direct2D) GPU utilization, lot of resources are free on the CPU side in most scenarios enough for CABAC even) and obviously x264s heavy optimization plays heavily into this (even with the Paths being shorter the overhead seems to kill its usability for it) :(

I wonder if Ivy Bridge still uses the EUs (Hybrid Design) for ME (i guess not much will have changed ?) and how Nvidia is handling it on their new ASIC Encoder ? :)

egur
28th March 2012, 12:35
QS uses lots of memory bandwidth, so does D3D, so encoding in HW (or SW) affects 3D performance as both CPU and GPU share the same memory controller(s).

I don't think the EUs perform ME. I think all the low level stuff is in ASIC.
I didn't get a chance to read a review on the new Nvidia encoder.
Since most platforms today are mobile, it makes sense to implement video acceleration in ASIC due to its high efficiency (battery life) compared to programmable solutions (CUDA/shaders/OpenCL/etc.)

CruNcher
28th March 2012, 13:56
That it uses the EUs for the ME part was stated in this Article i think it was under Motion Estimation track :) http://software.intel.com/en-us/articles/using-intel-graphics-performance-analyzer-gpa-to-analyze-intel-media-software-development-kit-enabled-applications/

Motion Estimation Track
The Motion Estimation Track is actually the kernel software which runs on the Execution Units (EUs) of the graphics unit. This kernel is executed while adaptively invoking the motion estimation acceleration hardware. The actual behavior depends on the TargetUsage set by the application. Here we can see 4 stages inside the Motion Estimation Track with MFX_TARGETUSAGE_BALANCED mode. The performance of this track depends on the usage parameter, but it is also affected by whether graphics Intel Turbo Boost Technology is on or off.

According to this it's "adaptively invoking the Hardware ME part" not sure what the criteria for this invoking are but execution seems to take place on the EUs never the less the same where the 3D Engine is putting almost full load on (same if you have Aero especially with Glas Shader on dwm puting load to them thus encoding gets slower).
But indeed i see the second GPU Node becoming active when recording which isn't the same node as the D3D rendering takes place on but the same Node where you would also see Decoding utilization so indeed could be ME going on on that Node and the bottleneck is the Bandwith but the Nodes aren't Physically separate units only the Node View (Process Explorer,Process Hacker, Vista,7) shows them as such ?.
I guess i will have to run some experiments also with overclocking the GFX part to see if i @ least reach the Performance of x264 with CABAC.
Trying MFX_TARGETUSAGE_FAST and low latency makes it somewhat less frame dropping on the Game part but also quality of Recording is heavily reduced compared with --subme 2 --dia and crf 23 of x264 Multithreaded on the 4 Cores, though this is still @ sane bitrates i guess the picture would change big time when bitrate and so CABAC utilization is getting higher :)

This is really crazy :) are these High Performance Timers ? http://software.intel.com/en-us/videos/channel/visual-computing/intel-gpa-2012-demo-at-gdc-2012/1532811356001

Im gonna analyze the situation more carefully especially with intels excellent tools and try to find optimization ways, egur do you know something comparable for Windows http://pcitop.berlios.de ? :)

PS: Some to look @ result of mixing things http://forum.doom9.org/showthread.php?t=164555 could even play in the Video Window, also note i didn't used the CQP mode yet which could come closer to CRF ;)

Sorry for the Oftop

CharlieCL
29th March 2012, 00:16
I have the exact same setup and it worked. I had issues with VC1 in ts files but they didn't work with libavcodec/wmv3 too. Received bad media sample from LAV splitter (only under WMC).
Note that I didn't test LAV decoder only ffdshow.
The sort of corruptions you report should come from a different decoder. I can't reproduce this. Even in the previous ffdshow builds, QS would fail very early and ffdshow would switch to libavcodec smoothly.

BTW, I use the 2622 driver but any >2509 should be OK. Which one do you use?

My old driver on Windows 7 64-bit is 2622. Now I installed Windows 8 Consumer Preview. The driver is MS preinstalled original Intel's driver. I heard that Intel's Media driver has not finished so it does not hardware acceleration. On Win8 the new version 0.30 still freeze in Exclusive Fullscreen under FFDShow. In Win8 a picture was displayed and then freeze.

egur
29th March 2012, 08:39
My old driver on Windows 7 64-bit is 2622. Now I installed Windows 8 Consumer Preview. The driver is MS preinstalled original Intel's driver. I heard that Intel's Media driver has not finished so it does not hardware acceleration. On Win8 the new version 0.30 still freeze in Exclusive Fullscreen under FFDShow. In Win8 a picture was displayed and then freeze.

If I understood you correctly, it worked on Win7 but doesn't work on Win8?

@CruNcher
I've asked around for a PCIe measurement tool, I'll get back to you.

CruNcher
29th March 2012, 10:02
@egur
thx :) this is also handy http://software.intel.com/en-us/articles/intel-performance-counter-monitor/ all the tools that are introduced actually from every part of the SB architecture are impressive :)
Just great egur i already analyzed some stuff the ability to see power output (in the analyzer HUD) and other counters in almost Realtime is just great and it's so damn responsive updating you don't even need to guess anymore which frame is causing the bottleneck you have immediate response i love it also the overhead seems really acceptable, and especially seeing it as a Graph + Numbers is much much better then most 3rd party tools do it with just numbers much better temporal tracking of whats going on this way, the same way as in MPC-HCs own Graph debuging it helps so often to find issues either in streams itself or the Player just the resolution needs to be high enough and background noise eliminated Intel GPA does that efficiently in the way Microsoft set it up back with Vista,7 and WPA and in 8 with WPA&WPR adding Intels tools for even more targeted analyzing is a great addition :)

CharlieCL
29th March 2012, 16:26
I removed Windows 7 and installed Windows 8 before 0.30 released. I only tested on Windows 8 now.

GZZ
30th March 2012, 20:46
Maybe a dumb question, I have installed the FFDshow package (0.30) and enabled Intel Quick Sync. So now if I encode a movie using x264 and let it use FFMS (no avisynth or anything, just loading the h264 mkv file). Will it then use intel quick sync to decode the h264 stream and if it does, how do I know if its using intel quick sync ? :)

nevcairiel
31st March 2012, 06:01
I don't think it was mentioned here before, but the 2656 driver is now officially available on the Intel website and does include a new Media SDK library. Quick Tests show that it fixes some VC-1i corruptions.
The same driver from Windows Update did NOT include the new Media SDK library.

32-bit: http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&ProdId=3319&DwnldID=21030&ProductFamily=Graphics&ProductLine=Processor+graphics&ProductProduct=2nd+Generation+Intel%c2%ae+Core%e2%84%a2+Processors+with+Intel%c2%ae+HD+Graphics+3000%2f2000&DownloadType=Drivers&lang=eng
64-bit: http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&ProdId=3319&DwnldID=21033&ProductFamily=Graphics&ProductLine=Processor+graphics&ProductProduct=2nd+Generation+Intel%c2%ae+Core%e2%84%a2+Processors+with+Intel%c2%ae+HD+Graphics+3000%2f2000&DownloadType=Drivers&lang=eng

WMV3 Hardware acceleration is also active with these drivers, however it does occasionally still show minor corruption.
Still, a step forward.

wanezhiling
31st March 2012, 07:24
nev did you test 2669?

nevcairiel
31st March 2012, 07:51
No.

I also found a 2696 driver on the Intel website, but the driver zip is password protected, apparently available only under NDA for testing on IVB.

egur
31st March 2012, 13:19
2656 fixes mc.ts clip. Some VC1 corruptions exist in other clips.
2669 fixes all the wmv3 corruptions in my (small) test suite. H264 occasional corruptions still exist. Not sure about VC1 corruptions. No quality regression.
2696 - No VC1 corruptions in my test suite. H264 corruptions (rare) still in place. No quality regression.

CruNcher
31st March 2012, 15:06
I don't think it was mentioned here before, but the 2656 driver is now officially available on the Intel website and does include a new Media SDK library. Quick Tests show that it fixes some VC-1i corruptions.
The same driver from Windows Update did NOT include the new Media SDK library.

32-bit: http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&ProdId=3319&DwnldID=21030&ProductFamily=Graphics&ProductLine=Processor+graphics&ProductProduct=2nd+Generation+Intel%c2%ae+Core%e2%84%a2+Processors+with+Intel%c2%ae+HD+Graphics+3000%2f2000&DownloadType=Drivers&lang=eng
64-bit: http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&ProdId=3319&DwnldID=21033&ProductFamily=Graphics&ProductLine=Processor+graphics&ProductProduct=2nd+Generation+Intel%c2%ae+Core%e2%84%a2+Processors+with+Intel%c2%ae+HD+Graphics+3000%2f2000&DownloadType=Drivers&lang=eng

WMV3 Hardware acceleration is also active with these drivers, however it does occasionally still show minor corruption.
Still, a step forward.

It only shows corruption in WMV3 for the Quicksync API though it works fine with some 3rd Party DXVA VLD implementations such as Cyberlinks, every bitstream i have tested that showed issues before works perfectly and cpu utilization is super low for anything now VC-1,WMV3,H.264 and MPEG-2 (prefering Nevs DXVA 2.0 implementation for playback of Mpeg-2, though it crashes on 1 bitstream H.264 has still to much stability issues especially no workaround yet for the to much reference frames problem like other implementations have those fixed, i would have a idea for a fix switching to Quicksync from the DXVA Decoder would be a relative simple workaround not sure if the 3rd parties might even do that ;) )

2669 seems to fix all the WMV3 issues for the Quicksync API then as well :)


NOTICE: This download requires a program password to unzip. Contact your Intel salesperson if you received a sample board that requires this driver.


2696 is indeed password protected lol

egur
31st March 2012, 20:18
The password thing is new. OEMs and ISVs usually download drivers and other SW/firmware from the SW support site.

CruNcher
1st April 2012, 11:47
Made a current compare with 2669 on the WMV3 state with the 50 fps Keynote Video, any yup it fixed all Quicksync API Decoding issues :)

Cyberlink DXVA = 1.30%
Media SDK = 2.50%
Lav Video Quicksync = 6.50%
Lav Video (avcodec) = 7.00%
ffdshow Quicksync = 7.50%
WMV Decoder = 7.50%

this includes all overheads (Lav Splitter(except for Media SDK doesn't support Lav Splitter using WMV ASF Reader here),Renderer(EVR basic),Audio(WMAudio),MPC-HC GUI Rendering + Copy Back for Lav Quicksync and ffdshow Quicksync)

This is only CPU utilization was not interested for this part in Memory and GPU ;)

egur
1st April 2012, 18:17
What's the average CPU frequency for these tests?

Omel
1st April 2012, 18:21
Hi t

new drivers as 2669 and 2696 where can i find them. I have tried at downloadcenter.intel.com but can't find them
??

regards

Omel

Superb
1st April 2012, 20:06
Hi t

new drivers as 2669 and 2696 where can i find them. I have tried at downloadcenter.intel.com but can't find them
??

regards

OmelGeez man... read the freakin' comments.

Omel
2nd April 2012, 10:00
Geez man... read the freakin' comments.


Whaoooo.. what a friendly answer thx man

egur
2nd April 2012, 10:18
Hi t

new drivers as 2669 and 2696 where can i find them. I have tried at downloadcenter.intel.com but can't find them
??

regards

Omel

They are not available to the general public yet.
IvyBridge will be out very soon and along with it the new generation of drivers will be publicly available.
Current driver generation (Win7): 15.22.xx.xx
Next driver generation (Win7): 15.26.xx.xx

2622 belongs to the 15.22 family.
2639, 2656, 2669, 2696, 27xx all belong to the 15.26 family.

Since drivers are shared between desktop and mobile systems, they need especially long validation and are not released to the public regularly.
The released/leaked 15.26 drivers were aimed at OEMs and ISVs for validation purposes. End users should that use these versions do this at their own risk.
My personal HTPC uses 2622. It's very stable and has very good performance. I use the newer drivers for testing my code and logging the driver progress (also report issues if I find any).

egur
2nd April 2012, 14:50
@CruNcher
Can you share (or reshare :) ) the clip you tested on (wmv3)?

CruNcher
2nd April 2012, 16:35
Here are pretty accurate measurements 1 minute sure here you can find it http://video.ch9.ms/build/2011/key01/BUILD2011KeynoteDay1_2MB_ch9.wmv :)

High performance Profile

Idle State:

http://img851.imageshack.us/img851/6505/pcidlehighperformance.png

Cyberlink VLD DXVA:

http://img851.imageshack.us/img851/7923/cyberlinkwmv3dxva.png


Intel MSDK:

http://img267.imageshack.us/img267/5195/msdkwmv3nocpb.png

ffdshow-quicksync:

http://img405.imageshack.us/img405/313/ffdshowquicksyncwmv3.png

Lav Video Quicksync:

http://img808.imageshack.us/img808/259/lavvideoquicksyncwmv3.png

Lav Video avcodec:

http://img842.imageshack.us/img842/8941/lavvideowmv3avcodec.png

WMVideo Decoder:

http://img822.imageshack.us/img822/743/microsoftwmvvideo.png

PS: Memory Utilization is not as accurate as everything else, it takes some time to get back to the old memory state so don't compare memory utilization here as i didn't had the time to wait every x minutes to compare exactly with the old state ;)
Also this is awkward it worked out well though it was meant for overclockers and it's not really good from a screen estate state also it's consuming some overhead itself and probably is responsible for a lot of the frequency changes in idle state and some peaks @ measuring as well :P but hey it has a graph yeah :D
Getting High resolution noiseless near realtime measuring results (not pre recorded) directly on the system is always a adventure :)
Perfmon maybe could have done the job as well but i would have had to import the performance counter first for the TDPs Graphic Frequency and then i wonder if Rivatuner wouldn't be actually more efficient as a host for them ;)

nevcairiel
2nd April 2012, 17:21
Something is wrong with your setup, Idle should be much lower CPU frequency.
Even my Overclocked i7 goes down to 1600 Mhz on idle.

Power-Usage numbers are meaningless if you don't allow the CPU to clock down.

CruNcher
2nd April 2012, 17:23
Im using High Performance Profile not balanced for testing i like to see it the other way and keep the system from fluctuating to much when running measurements and use balanced when testing responsiveness (latency) (Frequency adaption impacts) ;)
Though SB and NT 6 are very efficient in those regards but i keep with this way of testing :)

The Frequency goes down look @ the Cyberlink DXVA and MSDK no copy back result and the difference from 5W to 8W = +3W and 1W to 4W = +3W why should they be meaningless ? :)

DXVA = +3W
MSDK = +4W + 1W
Avcodec = +6W
WMvideo Decoder = +6W + 1W
ffdshow-quicksync = +7W + 1W
Lav Video Quicksync +7W + 1W

what should be wrong here (also keep in mind this is complete overhead of the playback including Client,Splitter,Decoder(Video,Audio) and Renderer) ?

CruNcher
2nd April 2012, 18:26
VLC almost got it right (guess most of the VLC Linux guys hate DXVA by now ;))

http://forum.doom9.org/showpost.php?p=1568136&postcount=19182

Omel
2nd April 2012, 19:14
They are not available to the general public yet.
IvyBridge will be out very soon and along with it the new generation of drivers will be publicly available.
Current driver generation (Win7): 15.22.xx.xx
Next driver generation (Win7): 15.26.xx.xx

2622 belongs to the 15.22 family.
2639, 2656, 2669, 2696, 27xx all belong to the 15.26 family.

Since drivers are shared between desktop and mobile systems, they need especially long validation and are not released to the public regularly.
The released/leaked 15.26 drivers were aimed at OEMs and ISVs for validation purposes. End users should that use these versions do this at their own risk.
My personal HTPC uses 2622. It's very stable and has very good performance. I use the newer drivers for testing my code and logging the driver progress (also report issues if I find any).

Thanks Egur that was the information i was looking for.

that explain a lot for me

best regards

Omel

Omel
2nd April 2012, 19:23
@Egur

Hi

I am a little confused, under downloadcenter.intel.com I find one driver under Graphics/processor and another under my Mainboard DH67GD which one wil be the correct to use?

my processor is a I3 -2100T?

Best regards

Omel

egur
2nd April 2012, 22:37
@Egur

Hi

I am a little confused, under downloadcenter.intel.com I find one driver under Graphics/processor and another under my Mainboard DH67GD which one wil be the correct to use?

my processor is a I3 -2100T?

Best regards

Omel

For desktops use the newest you can find.

egur
3rd April 2012, 11:34
Im using High Performance Profile not balanced for testing i like to see it the other way and keep the system from fluctuating to much when running measurements and use balanced when testing responsiveness (latency) (Frequency adaption impacts) ;)
Though SB and NT 6 are very efficient in those regards but i keep with this way of testing :)

The Frequency goes down look @ the Cyberlink DXVA and MSDK no copy back result and the difference from 5W to 8W = +3W and 1W to 4W = +3W why should they be meaningless ? :)

DXVA = +3W
MSDK = +4W + 1W
Avcodec = +6W
WMvideo Decoder = +6W + 1W
ffdshow-quicksync = +7W + 1W
Lav Video Quicksync +7W + 1W

what should be wrong here (also keep in mind this is complete overhead of the playback including Client,Splitter,Decoder(Video,Audio) and Renderer) ?

I'm getting 3-5% CPU usage (i7-2600) for the player's executable (ZoomPlayer) when playing this clip using ffdshow+qs+EVR. The CPU frequency is 1600MHz (LFM).

Summary (wmv9, 60fps, 6mbps, progressive, NV12 output, no post procesing):
ffdshow+QS: 3-5% @1600MHz
ffdshow+wmv9: 6-7% @3600MHz
ffdshow+libavcodec: 4% @2000MHz - fluctuates a lot

Omel
3rd April 2012, 12:05
For desktops use the newest you can find.


I use it as a mediaplayer (mediaportal) with TV and Movies and use LAV filters the latest ?

Will the latest intel driver be the optimal driver ? or should I use the 2622 driver as you said previously ?

kind regards

Omel

egur
3rd April 2012, 12:07
I use it as a mediaplayer (mediaportal) with TV and Movies and use LAV filters the latest ?

Will the latest intel driver be the optimal driver ? or should I use the 2622 driver as you said previously ?

kind regards

Omel

Always use latest LAV and/or ffdshow.
With drivers, the performance differences are small and should not concern you. Just use the latest.

CruNcher
6th April 2012, 06:58
@Egur

http://forum.doom9.org/showpost.php?p=1568698&postcount=10281

Am i right and Microsofts DTV Decoder acts as a Quicksync API Wrapper ?

This would make major sense as you would have full control on a higher level off every Application output that makes use of it, i guess virtually all GPU Vendors will handle it this way and take control over it with their Native ways :)

egur
6th April 2012, 12:14
@Egur

http://forum.doom9.org/showpost.php?p=1568698&postcount=10281

Am i right and Microsofts DTV Decoder acts as a Quicksync API Wrapper ?

This would make major sense as you would have full control on a higher level off every Application output that makes use of it, i guess virtually all GPU Vendors will handle it this way and take control over it with their Native ways :)

Microsoft DTV Decoder most likely uses DXVA2.
It might use low level DDI calls but that would make very little sense.
The DTV decoder probably initializes the DXVA device differently somehow. It may also parse SPS/PPS headers for errors and try to recover them.

Part of the QuickSync feature set is exposed via the DXVA2 API (decode, vpp), the rest (encode) is done via DDI calls as DXVA2 doesn't support encode.

There's no official QuickSync API. The APIs used under Windows are Media SDK, DXVA2, DDI.

CruNcher
6th April 2012, 15:43
thx egur indeed i wonder if the DTV Decoder can be used as a supplier for encoding with quicksync fast as Lav Video DXVA Native can't and Copy back shows lower performance then intels own Decoder connected to it :) (faster encoding speed with it)
Though the DTV Decoder must as you said use a different initialization it handles bitstreams that even Cyberlink fails on partly even Arcsoft and i saw that yet only either that Quicksync (MSDK API) Decoder handling (ffdshow-quicksync, lav-quicksync) or Intels Native MSDK Decoder.
Though that Microsoft can't have thought into the future made me wonder what mode it calls that seems to give a perfect result on Intel Hardware or Intel takes over the calls it does (hooks somehow into it) and directs it to MSDK via the Driver that would make the most sense to me, and explain the same decoding issues.
I don't take this with the Recovery because you don't need recovery to handle MBAFF streams correctly and those fail neither the same as bitstreams with to much references (which seems to be a explicit MSDK fix) with the DTV Decoder nor any MSDK based one but practically currently with most other DXVA implementation @ Least Lav DXVA (Laurents DXVA2 implementation from VLC) shows problems MPC-HCs DXVA does it more correct (though it has disturbed frame issues @ seek currently for practically every bitstream) i guess a compare of how both handling it would shed some light whats going on :)

This also made me believe a good idea for Lav DXVA would be to skip Laurents DXVA2 for Intel and connect to the DTV Decoder like being done with the DMO Decoder for VC-1 and use AVcodec as the fallback for non DXVA, this should also fix the 720p.mpg crash without big effort :)
Every Decoding issue though most probably needs to be directly fixed by Intel then and seeing that their is no progress with decodinerror.ts and MSDK makes me wonder how problematic this issue must be also seeing Laurents DXVA2 in Lav DXVA falling apart on it completely but MPC-HC DXVA handling it without problems melts my brain ;).

nevcairiel
6th April 2012, 16:44
You cannot access Microsofts DXVA decoder directly.
The DMOs are directly designed to allow that, the DTV-DVD Decoder is not a DMO, its a pure DirectShow/MF Filter.

You can use the Microsoft DirectShow decoder directly though, no reason to wrap it into something else.
For Encoding its probably not helpful, because it only supports "native" DXVA and not a copy-back mode, as required for encoding.

Anyway, if you look hard enough you'll find a stream that fails with every decoder sooner or later.
I don't care for Intel support in my DXVA implementation. Intel does not support 100% vanilla DXVA, and they don't document their differences properly (or they don't make those documents publicly available). So, why bother? Can always use the MSDK based Decoder, it works better with every driver release.
As long as my DXVA works fine with AMD and NVIDIA, all is fine. And your broken streams are usually fine on those.

So, you can stop posting streams that are broken only on Intel DXVA2, i don't care anymore (actually, i never cared). Use MSDK.
At some point in time, i'm sure we can also produce a "native" mode decoder with MSDK, without copy-back i mean, but its really low priority.

CruNcher
6th April 2012, 16:57
The problem is the DTV Decoder has no fallback, it accepts everything so there is only the way over the splitter or the Host Application to handle this :(

wanezhiling
6th April 2012, 17:09
CruNcher, where can I find MSDK based Decoder? thx

nevcairiel
6th April 2012, 17:10
LAV and ffdshows QuickSync decoders are based on the MSDK.
There is also a demo decoder which comes with the MSDK itself.

CruNcher
6th April 2012, 17:10
As i said you can use the DTV Decoder results are practically the same or use Intels SDK Decoder in MSDK it is a Native (non copy back) Quicksync Decoder (it gives the best performance with the encoder though) but it has it's quirks too.
Mpeg-2 wise i find Lav DXVA2 native decoder gives the best performance though it produces this crash with 720p.mpg in ntdll which it shares with many other implementations.

wanezhiling
6th April 2012, 17:34
The Intels SDK decoder in MSDK is a mft decoder? How can i use it in mpc-hc or potplayer .etc

CruNcher
6th April 2012, 17:56
2 decoder samples are included 1 mft 1 dshow

wanezhiling
6th April 2012, 18:03
:)I see. thx

hajj_3
6th April 2012, 18:07
ivy bridge motherboards went on sale today, does that mean we will be getting new stable graphics drivers soon egur?

nevcairiel
6th April 2012, 18:09
The driver is really more for the CPU then the board, and that will be a few more weeks.
Anyway, boards have been available here throughout the past week, and i already have one sitting here.

On that note, the 2712 driver appeared on the Intel website (again passworded), but the driver on the CD that came with the board is only 2598.

hajj_3
6th April 2012, 18:23
if the driver is in a .zip file i can try and crack it with password cracking software.

CruNcher
6th April 2012, 18:43
Intel wont be so dumb and use anything under AES or a easy word, so unless you working @ the NSA good luck so better wait till it's released officially (or unofficially) saves you energy and doesn't pollutes our environment for nothing ;)

PS: Though who knows if it was prepared by the PR guys everything seems possible, but for that case you have company standards ;)


2696 leaked


Driver Revision: 15.26.8.64.2696

March 23, 2012

************************************************************
*
* NOTE: This document refers to systems containing the
* following Intel chipsets/processors:
*
*
* 3rd generation Intel(R) Core(TM) processors
* 2nd generation Intel(R) Core(TM) i3 processor
* 2nd generation Intel(R) Core(TM) i5 processor
* 2nd generation Intel(R) Core(TM) i5 vPro(TM) processor
* 2nd generation Intel(R) Core(TM) i7 processor
* 2nd generation Intel(R) Core(TM) i7 vPro(TM) processor


The Denoiser PP can now be selected to be applied either on Luma only or on Luma + Chroma :)

no decoding changes

No immediate crash for Potplayers DXVA anymore :)

http://forum.doom9.org/showpost.php?p=1568833&postcount=2381

egur
7th April 2012, 15:58
ivy bridge motherboards went on sale today, does that mean we will be getting new stable graphics drivers soon egur?

Yes, driver 2656 (15.26) is now available from the download center (graphics->processor graphics). This version fixes some of the decode problems but if I remember correctly HW WMV3 is not perfect.
I can assume that the 15.26 driver family will stay with us for the next year.

2712 didn't make or break anything in my video test suite (decode) compared to 2669 or 2696.
The separation of luma/chroma noise reduction is new.

egur
7th April 2012, 16:04
thx egur indeed i wonder if the DTV Decoder can be used as a supplier for encoding with quicksync fast as Lav Video DXVA Native can't and Copy back shows lower performance then intels own Decoder connected to it :) (faster encoding speed with it)
.

Technically yes. You can write a DS filter that behave like EVR and accepts DXVA surfaces from the decoder. The encoder can copy-back the frames and send them to the encoder.

It sounds like a lot of work with very little in return.

Surfn
8th April 2012, 09:33
The driver is really more for the CPU then the board, and that will be a few more weeks.
Anyway, boards have been available here throughout the past week, and i already have one sitting here.

On that note, the 2712 driver appeared on the Intel website (again passworded), but the driver on the CD that came with the board is only 2598.

abit of topic but would it be ok to ask which z77 board you went for nev

nevcairiel
8th April 2012, 09:41
I got the P8Z77-M PRO from ASUS.

CruNcher
8th April 2012, 16:55
Hmm was it the same Again Asus and Intel boards first available, my main Bord decission for SB back then was initialy MSI but as said it was non available @ that early days ?
Welcome in the M PRO club i guess not much will have changed in that Board series and it will come with Protect 3 ? ;)
Though nobody really ever made a test to my known about Protect 3 and if it really does what it's advertised for ;) but if they make a special board of this series for enterprises with that same guarantee i guess it can't be that bad ;)
Though the first tests of their EPU Chip didn't looked that good back then and even Intel boards beat it in Power Consumption (Reference boards).


PS: 2696 are released now http://downloadmirror.intel.com/21159/eng/ReleaseNotes_GFX.htm

endiz
12th April 2012, 20:02
Hi Eric, is there any chance you will backport this for ffmpeg?

egur
12th April 2012, 20:53
Hi Eric, is there any chance you will backport this for ffmpeg?

No, I don't have the bandwidth for it.

Schrade
12th April 2012, 21:38
PS: 2696 are released now http://downloadmirror.intel.com/21159/eng/ReleaseNotes_GFX.htm

Proper links to download the drivers:

http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21159&lang=eng (32-bit)
http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21160&lang=eng (64-bit)

endiz
13th April 2012, 00:26
No, I don't have the bandwidth for it.

I understand. Thanks for the quick response!

CruNcher
13th April 2012, 11:37
2712 also leaked (was released through OEM) without IVB support http://www.station-drivers.com/forum/viewtopic.php?t=3741&p=13815

you need again to add the subsys id of your vendor to make it work, works fine so far no issues yet though also doesn't fix decodinerror.ts yet.

pulbitz
14th April 2012, 13:07
I've reproduced/confirmed the issue on another player. Still root causing it.

Bump.
Maybe You forget it?

P.S. LAV QuickSync, PotPlayer QuickSync is OK. Only ffdshow QuickSync has a trouble.

egur
15th April 2012, 07:47
Bump.
Maybe You forget it?

P.S. LAV QuickSync, PotPlayer QuickSync is OK. Only ffdshow QuickSync has a trouble.

I've patched my code a while back when the post was new. This clip is part of my test suite.
I'll check again with the latest ffdshow using LAV and Haali splitters and report back.

CruNcher
16th April 2012, 21:07
Hey i just read that


Khenglish confirms 295.xx beta desktop driver drives the internal LCD in additional to providing the x1 pci-e compression making it unnecessary to use the modded Verde driver below.


It seems Nvidia is preparing Synergy (Optimus for Desktops, Lucid Virtu counterpart) into the Main Driver Stack (Framebuffer exchange) , so it cant be much long anymore before time to market is coming (i wonder if currently anyone is testing it under NDA by now already) :)

Maybe they wait for Ivy Bridge Release ;) would make sense, though not nice to think about that SB users might not profit then again from it if it gets marketed Ivy Bridge exclusive hopefully not again MB exclusive though Nvidias plans where not todo that but still it needs a key in the Bios like Virtu (how i hate such things).

Many things Nvidia added now into the driver stack make it to some kind of enhanced Virtu like Lucidlogix is gonna market with the Universal and MVP series, so this will be really interesting how this here turns out it could also very well explain why Lucidlogix is preparing to sell their Virtu soon to anyone MB license independent ;)

Btw lucid released something new from their Labs of Framebuffer Manipulation ideas ;) http://eshop.lucidlogix.com/?q=dynamix1
these Israeli Researcher have implemented some similar thing to Intels Dynamic Resolution http://software.intel.com/en-us/articles/dynamic-resolution-rendering-article/ as a addon for Skyrim to show the Performance improvements that can gained from a Engine (Creation Engine,Modified Gamebryo Engine) not supporting it :D


The solution aims to enable a playable performance (fps) by dynamically transforming texture resolution mapped on objects in real time, considering object visibility and motion.
All informative elements , such as HUDs, texts, menus and maps remain unchanged and presented in full resolution.
The solution maintains the maximum possible visual experience while increasing game frame rate, bringing it to a playable performance level.

Though the License Process is awkward for something they call free they want you entire Data, and it's bound to a activation server as well geez :P

Though Game Developer have to implement it directly not some 3rd party via a addon interfering into the rendering, also the use for older Games and 3D Engines is near 0, guess this idea of them commercializing this will die fast, i guess next out of their Labs will be some 3D stuff ideas as addon from them stay tuned :P

egur
17th April 2012, 20:39
Bump.
Maybe You forget it?

P.S. LAV QuickSync, PotPlayer QuickSync is OK. Only ffdshow QuickSync has a trouble.

I don't see any issue using LAV splitter - 32 bit playback.

pulbitz
18th April 2012, 12:00
I don't see any issue using LAV splitter - 32 bit playback.

strange...

I test MPC-HC, KMPlayer and PotPlayer with LAV splitter 32bit.

Only ffdshow QuickSync like yadif output mode 25p/30p.
Other(LAV QuickSync, PotPlayer QuickSync, DXVA and libavcodec) like yadif output mode 50p/60p.

P.S. another sample file http://www.sendspace.com/file/whr0pa

egur
18th April 2012, 12:18
strange...

I test MPC-HC, KMPlayer and PotPlayer with LAV splitter 32bit.

Only ffdshow QuickSync like yadif output mode 25p/30p.
Other(LAV QuickSync, PotPlayer QuickSync, DXVA and libavcodec) like yadif output mode 50p/60p.

P.S. another sample file http://www.sendspace.com/file/whr0pa

Which renderer is used in MPC-HC?
Does it work with standard EVR?
FYI, EVR-CP is known to have issues which I can't solve.
Does anyone else have issues with this clip?

pulbitz
18th April 2012, 14:55
Which renderer is used in MPC-HC?
Does it work with standard EVR?
FYI, EVR-CP is known to have issues which I can't solve.
Does anyone else have issues with this clip?

I tested with standard EVR. (I don't use EVR-CP.)

CPU/GPU: i5-2500 with HD Graphics 2000
OS: Windows 7 Ultimate x64 SP1
Driver: 2696

egur
18th April 2012, 15:00
I tested with standard EVR. (I don't use EVR-CP.)

I'll test it with MPC-HC+EVR and report back.

Update
Works fine in the above configuration. Can't reproduce.
Second clip plays fine too.

tomos
18th April 2012, 22:06
hi,

just tried this today on my new laptop (win7x64 ult / 2670qm i7) in mpc and it worked like a charm. no probs at all on a few different samples.

thanks :)

pulbitz
19th April 2012, 15:02
I'll test it with MPC-HC+EVR and report back.

Update
Works fine in the above configuration. Can't reproduce.
Second clip plays fine too.

It is very wired.
Then problem cannot be resolved in the future. :scared:
I'll just have to wait.

JohnPeterson
20th April 2012, 11:46
What about QSV encoding through ff_vfw.dll?

The availability of an open QSV encoder would encourage QSV encoding implementation in popular encoding software such as VLC. It would make sense to have a #transcode{venc=qsv) option in VLC.

ajp_anton
22nd April 2012, 01:45
I get glitches when decoding this with QuickSync. Software decoding works fine.

http://www.multiupload.nl/9YC1XS9JNY

egur
22nd April 2012, 09:47
I get glitches when decoding this with QuickSync. Software decoding works fine.

http://www.multiupload.nl/9YC1XS9JNY

I'll check it out but please provide more details (player/renderer/splitter)

ajp_anton
22nd April 2012, 14:20
I use MPC-HC, LAV splitter and madVR/EVR, but it looks very much like a decoder-only problem.

pulbitz
22nd April 2012, 16:18
I get glitches when decoding this with QuickSync. Software decoding works fine.

http://www.multiupload.nl/9YC1XS9JNY

I test with 2696 driver.

libavcodec is OK.

H/W decoders get glitch.
(MS DTV-DVD DXVA, PotPlayer DXVA/QS, ffdshow QS)

CruNcher
22nd April 2012, 16:32
yup same here every DXVA implementation fails too, very strange artficating could be custom matrix caused

http://img9.imageshack.us/img9/2373/quicksynccmfail.png

vivan
22nd April 2012, 16:45
CUVID also has artefacts (http://3.firepic.org/3/images/2012-04/22/ks0g0rjgioqo.png) (much smaller, though)...

CruNcher
22nd April 2012, 17:04
ehh wait 1920x792 :D
though mod8 should be no problem, not 2.40:1 so someone wanted to save every pixel here i guess ;)

egur
22nd April 2012, 21:25
I use MPC-HC, LAV splitter and madVR/EVR, but it looks very much like a decoder-only problem.

Glitch confirmed. I'll try newer drivers and if all else fails, I'll report this clip.

Update
Newest driver doesn't solve this. I'll report this clip.

ajp_anton
22nd April 2012, 22:14
Well it's a very old encode (edit: 5 years), so it's not a big deal. IIRC CoreAVC also had this problem with some x264 encodes back then.
I could just re-encode it to fix the problem, but thought I'd see if it could also be fixed on the decoder side.

egur
23rd April 2012, 07:04
Well it's a very old encode (edit: 5 years), so it's not a big deal. IIRC CoreAVC also had this problem with some x264 encodes back then.
I could just re-encode it to fix the problem, but thought I'd see if it could also be fixed on the decoder side.

Broken clips such as this one will help produce a better HW decoder/driver. Keep 'em coming. Thanks.

NikosD
24th April 2012, 08:20
Eric,

is it possible to give us a direct QS1(sandy) vs QS2(ivy) comparison on H.264 dxva benchmarks of my collection ?

I think both native DXVA and MSDK modes would be useful (maybe together with DXVA-CP)

What about 4K H.264 decoding playback utilization of GPU and some benchmark performance ?

Can Ivy decode complex 4K H.264 clips of today like the Crowd Run- 3840x2160@50fpsRef4-275Mbps ?

Some figures would be useful.

If you have a clue - that you can share in public - about HDMI limitation of motherboards, it would be very welcomed to share it with us.

Is the lack of 4K output something that will be fixed in the future by M/B manufacturers, or we must forget about 4K output in current generation of Ivy processors ?

I was thinking of upgrading to Ivy platform but I think I'll wait for:

1) Drivers to include OpenCL functionality (and check out the performance)

2) Motherboards to include Thunderbolt

3) Motherboards to include 4K HDMI output ? (or DisplayPort ?)

4) Prices to drop ?

egur
24th April 2012, 12:39
Eric,
is it possible to give us a direct QS1(sandy) vs QS2(ivy) comparison on H.264 dxva benchmarks of my collection ?

I don't have comparable systems to check. I can run tests on a reference board but I'm too busy lately and the setup is not quick.

What about 4K H.264 decoding playback utilization of GPU and some benchmark performance ?
IVB is about 50% faster. I'm saying "about" because some clips will stress the memory subsystem so IVB might get less than 50%. Low bitrate clips will do that.

Can Ivy decode complex 4K H.264 clips of today like the Crowd Run- 3840x2160@50fpsRef4-275Mbps ?
Yes. As long as they are H264 high profile (or lower).

If you have a clue - that you can share in public - about HDMI limitation of motherboards, it would be very welcomed to share it with us.

Is the lack of 4K output something that will be fixed in the future by M/B manufacturers, or we must forget about 4K output in current generation of Ivy processors ?
I don't know the details. Some connectors (screens) are driven through the PCH, this might be one problem. Maybe it's an HDMI limitation.
HDMI 1.4 supports up to 4K (4096x2160) but only at 24fps.
Unless you have money to burn, you should wait for two things to happen:
1) Screens become mainstream ($$$).
2) Real content (movies/tv) becomes available.
IVB will be old by then :(

I was thinking of upgrading to Ivy platform but I think I'll wait for:

1) Drivers to include OpenCL functionality (and check out the performance)
Do you really care? What OCL apps do you use?

2) Motherboards to include Thunderbolt
Nice to have but mostly relevant to laptops. It's a nice way to connect multiple high speed devices through a single cable.
More and more products are launching that use Thunderbolt but their price might be high.

3) Motherboards to include 4K HDMI output ? (or DisplayPort ?)
You'll need to wait for DisplayPort 1.2 capable mother boards or GPUs. IVB is DP 1.1.
The Radeon HD 7000 series support 4K displays.

4) Prices to drop ?
Prices are always dropping and products are getting better. The longer you wait the better deal you'll get but in the meanwhile you're stuck with an aging platform...

NikosD
24th April 2012, 15:02
Yes. As long as they are H264 high profile (or lower).


A good sample is this also:

http://xhmikosr.1f0.de/samples/2160p/OldTownCross/OldTownCross_2160p50.x264.CRF24.mkv

If someone can try to play it in DXVA mode with Ivy and report GPU utilization during normal playback.

Also it would be useful to benchmark Ivy with that 4K sample.


Unless you have money to burn, you should wait for two things to happen:
1) Screens become mainstream ($$$).
2) Real content (movies/tv) becomes available.
IVB will be old by then :(


No I'm OK with 4K decoding and downscale to 1080p.
I don't really care - right now - for 4K output.


I was thinking of upgrading to Ivy platform but I think I'll wait for:


Do you really care? What OCL apps do you use?


Mostly password auditing :) ...and some others too.

My final decision of buying Ivy will be 4K decoding performance and Thunderbolt.
I would like to see OpenCL performance too.

I think I have to wait for a few months for Thunderbolt and OpenCL and I hope normal H.264 and 4K H.264 benchmark results to come sooner than the first two.

@Jakmal

Maybe Jakmal could help with benchmark results of 4K H.264 decoding and direct comparison of QS1 (Sandy) and QS2 (Ivy) on 1080p H.264 clips.

I have a nice collection of 4K clips I could share for benchmark reasons.

hajj_3
24th April 2012, 17:28
thunderbolt support will be built into Intel Haswell.

egur
24th April 2012, 19:16
Just to clear things up:
IvyBridge can decode 4K H264 video in HW easily.
IvyBridge has nothing to do with Thunderbolt (it's a separate chip). Thunderbolt existence is up to the board manufacturer.

andyvt
24th April 2012, 19:19
Just to clear things up:
IvyBridge can decode 4K H264 video in HW easily.


Do you know why your QS decoder refuses to do this? I took a brief look at it after finding the section in LAV Video which disabled DXVA2 for > 1080p, but didn't see anything obvious.

egur
24th April 2012, 19:25
Do you know why your QS decoder refuses to do this? I took a brief look at it after finding the section in LAV Video which disabled DXVA2 for > 1080p, but didn't see anything obvious.

I think nev mentioned he disabled QS when the resolution is greater than 1080p - it's a legacy workaround. One user reported he changed the restriction and got it working.
He should fix his code.

egur
24th April 2012, 19:35
Some users wanted the compiled Media SDK Direct show filter. Here (http://www.multiupload.nl/RZ2OWTLJCL) they are.

andyvt
24th April 2012, 19:44
I think nev mentioned he disabled QS when the resolution is greater than 1080p - it's a legacy workaround. One user reported he changed the restriction and got it working.
He should fix his code.

I just took another look with the latest LAV and QS loads (not sure why it wasn't before), but the CPU utilization is much higher than DXVA2 (3-4x). Obviously not a huge issue since 4K doesn't matter yet :)

egur
24th April 2012, 21:19
I just took another look with the latest LAV and QS loads (not sure why it wasn't before), but the CPU utilization is much higher than DXVA2 (3-4x). Obviously not a huge issue since 4K doesn't matter yet :)

CPU utilization will always be higher than DXVA since I copy the frames back to system memory. This simplifies the SW stack and removes several DXVA limitations. Video can then be easily processed by SW and using a subtitles filter is possible.
LAV video decoder have an DXVA option and so does ffdshow.

andyvt
24th April 2012, 21:22
CPU utilization will always be higher than DXVA since I copy the frames back to system memory. This simplifies the SW stack and removes several DXVA limitations. Video can then be easily processed by SW and using a subtitles filter is possible.
LAV video decoder have an DXVA option and so does ffdshow.

I understand that, but it shouldn't be 3-4x (the difference b/w 3-4% and 12-15% on a i7-3770K) higher, right?

egur
24th April 2012, 21:26
I understand that, but it shouldn't be 3-4x (the difference b/w 3-4% and 12-15% on a i7-3770K) higher, right?

12-15% seems a little high.
Do you mean the player's process CPU utilization not the entire system?
Which clip did you use (bitrate, codec, resolution)?
RAM type?
OS?
32 bit?

andyvt
24th April 2012, 21:45
12-15% seems a little high.
Do you mean the player's process CPU utilization not the entire system?
Which clip did you use (bitrate, codec, resolution)?
RAM type?
OS?
32 bit?

Yes
Timescapes 4K
DDR3 1333
W7 x64
GSN 32-bit.

http://babgvant.com/images/qs4k.jpg

nevcairiel
24th April 2012, 22:25
I think nev mentioned he disabled QS when the resolution is greater than 1080p - it's a legacy workaround. One user reported he changed the restriction and got it working.
He should fix his code.

That limit has been removed for ages, ever since you added the option to disable software fallback.
There is only a resolution limit for DXVA2 Native (not even CB), because auto-detection of 4K support is not working yet.

I also did a (very quick) test with QuickSync and 4K decoding, and it does not activate itself for me.
Might be a driver thing, i dunno. Need sleep, more testing when i have time.

CruNcher
25th April 2012, 04:31
That limit has been removed for ages, ever since you added the option to disable software fallback.
There is only a resolution limit for DXVA2 Native (not even CB), because auto-detection of 4K support is not working yet.

I also did a (very quick) test with QuickSync and 4K decoding, and it does not activate itself for me.
Might be a driver thing, i dunno. Need sleep, more testing when i have time.

Nev still no idea why 720p.mpg is crashing with Lav Video DXVA2 on Intel it seems definitely to be a implementation issue as every player seems to crash that seems to implement laurents DXVA 2 code somehow ?

Potplayer seems to be the only ones that avoid this crash now

egur
25th April 2012, 13:19
Nev still no idea why 720p.mpg is crashing with Lav Video DXVA2 on Intel it seems definitely to be a implementation issue as every player seems to crash that seems to implement laurents DXVA 2 code somehow ?

Potplayer seems to be the only ones that avoid this crash now

I didn't see a link for this anywhere. Can you share it?

CruNcher
25th April 2012, 14:12
http://www.mediafire.com/?y2dbekgemoeo28m <- sure here it is Mpeg-2

but now the really crazy thing comes this one http://www.mediafire.com/?xr7ynkl2fg59g1c is a cuda transcode (Nvidia H.264) of it and it also crashes with Intel and Laurents DXVA 2 implementation but also with Potplayers DXVA, (though the Potplayer guys doesn't know of this yet the Mpeg-2 crash they fixed but it's still not perfect playing back ;)

i really want to know how this is connected or just a coincidence (transcode crashing the same way) ;)

both clips play absolutely fine with Quicksync and some other 3rd Party DXVA Decoder (Arcsoft,Cyberlink) though all based on Laurent Aimars DXVA 2 implementation (VLC) crash with those both on Intel Hardware :)

The crash happens in ntdll and igdumd most probably a buffer overflow ;)

egur
25th April 2012, 16:19
http://www.mediafire.com/?y2dbekgemoeo28m <- sure here it is Mpeg-2

but now the really crazy thing comes this one http://www.mediafire.com/?xr7ynkl2fg59g1c is a cuda transcode (Nvidia H.264) of it and it also crashes with Intel and Laurents DXVA 2 implementation but also with Potplayers DXVA, (though the Potplayer guys doesn't know of this yet the Mpeg-2 crash they fixed but it's still not perfect playing back ;)

i really want to know how this is connected or just a coincidence (transcode crashing the same way) ;)

both clips play absolutely fine with Quicksync and some other 3rd Party DXVA Decoder (Arcsoft,Cyberlink) though all based on Laurent Aimars DXVA 2 implementation (VLC) crash with those both on Intel Hardware :)

The crash happens in ntdll and igdumd most probably a buffer overflow ;)

They work fine using QS like you said.
BTW, the 2nd clip (cuda) is H264 not mpeg2 (avc1 fourcc).

nevcairiel
25th April 2012, 17:19
However, as always, when a piece of software crashes on corrupt input, its still the software's fault. The driver should not crash if its fed data it doesn't like. In fact, it should never crash.

Anyway, crashes somewhere deep inside the intel driver are basically impossible to debug, so no clue where to start.
Especially hard because it seems to cause some kind of heap corruption, that isn't always easy to find even when the code is fully available!

pankov
25th April 2012, 21:30
Some users wanted the compiled Media SDK Direct show filter. Here (http://www.multiupload.nl/RZ2OWTLJCL) they are.
a while ago there was talk in LAV filters thread that Intel have some examples which could allow 3D playback. Then I asked Eric if he can provide compiled versions of these sample filters and yesterday that he did so I decided to give them a try.
Sadly there are some problems:
1. When I try to register the custom_evr_presenter.dll with regsvr32.exe it looks like it succeeds but I can't find it in the filter list in GraphStudio/GraphStudioNext or Zoom Player. I do see it in the registry in Wow6432Node\CLSID\{29FAB022-F7CC-4819-B2B8-D9B6BCFB6698} as "Intel® Media SDK Custom EVR Presenter" but it's not present. What did I do wrong? Do you see it in these applications or am I supposed to use it in a different way?
2. After I registered the mvc_dec_filter.dll with regsvr32 it appeared nicely in GraphStudioNext as "Intel® Media SDK MVC Decoder" but I'm not able to insert it as a filter in any graph. Again, do you have any idea what I do wrong?

Can someone else try them and share his/her experience?

I really hope these filters will be the first steps to fulfilling my dreams for open source 3D playback. (preferably in Zoom Player)

Currently I've tried both NVIDIA's and Intel's 3D HDMI output using TMT5 and I find the one from Intel a bit more hustle free and easy to use so I have high hope that this is the right way to go.

egur
26th April 2012, 10:19
However, as always, when a piece of software crashes on corrupt input, its still the software's fault. The driver should not crash if its fed data it doesn't like. In fact, it should never crash.
I agree. Driver crashes are taken seriously.
Please provide me the simplest way to reproduce (I already have the samples).

a while ago there was talk in LAV filters thread that Intel have some examples which could allow 3D playback. Then I asked Eric if he can provide compiled versions of these sample filters and yesterday that he did so I decided to give them a try.
Sadly there are some problems:
1. When I try to register the custom_evr_presenter.dll with regsvr32.exe it looks like it succeeds but I can't find it in the filter list in GraphStudio/GraphStudioNext or Zoom Player. I do see it in the registry in Wow6432Node\CLSID\{29FAB022-F7CC-4819-B2B8-D9B6BCFB6698} as "Intel® Media SDK Custom EVR Presenter" but it's not present. What did I do wrong? Do you see it in these applications or am I supposed to use it in a different way?
2. After I registered the mvc_dec_filter.dll with regsvr32 it appeared nicely in GraphStudioNext as "Intel® Media SDK MVC Decoder" but I'm not able to insert it as a filter in any graph. Again, do you have any idea what I do wrong?

Can someone else try them and share his/her experience?

I really hope these filters will be the first steps to fulfilling my dreams for open source 3D playback. (preferably in Zoom Player)

Currently I've tried both NVIDIA's and Intel's 3D HDMI output using TMT5 and I find the one from Intel a bit more hustle free and easy to use so I have high hope that this is the right way to go.

I looked at the setup:
EVR custom presenter is not a DS filter, it's an MFT filter. That's why GraphEdit doesn't show it. I'll ask the Media SDK team if they can produce a DS version. This is outside my bandwidth...

The MVC decoder only accepts H264 fourcc. Most content is AVC1 fourcc. Maybe this is the problem. This is something I can patch myself.
Please share 3D media files for testing purposes.

pankov
26th April 2012, 10:42
Eric,
the problem with the MVC decoder is not with connecting it - it's not possible to add it to the graph at all.

About the samples - every 3D blu-ray can be used - you just have to use Haali's or the patched MPC MPEG Splitter as I've mentioned here
http://forum.doom9.org/showthread.php?p=1567409#post1567409
If you don't have such 3D blurays I can try to find a short sample ... or try to cut one for you tonight because I'm at work now.

egur
26th April 2012, 10:52
Eric,
the problem with the MVC decoder is not with connecting it - it's not possible to add it to the graph at all.

About the samples - every 3D blu-ray can be used - you just have to use Haali's or the patched MPC MPEG Splitter as I've mentioned here
http://forum.doom9.org/showthread.php?p=1567409#post1567409
If you don't have such 3D blurays I can try to find a short sample ... or try to cut one for you tonight because I'm at work now.

I managed to add it to an empty graph (in GraphStudioNext 32 bit).
Also managed to build a complete and working graph for an H264 file (that has H264 fourcc), connect the decoder to EVR and play.
I also checked its dependency on other DLLs - it only depends on standard Windows DLLs (no VS2010 dependencies) .

nevcairiel
26th April 2012, 11:06
An EVR Custom Presenter is not something you can ever manually add to a graph. You need to define a custom frontend that tells EVR which presenter to use.

EVR is a Media Foundation technology, thats why the Custom Presenter acts like a MF object, but it can be used by a DirectShow EVR as well. You just cannot use it in GraphStudio without writing a wrapper around it.

PS:
What makes you think the Intel MVC decoder uses the same way of receiving the 3D data as CoreCodecs decoder? (which Haali was designed to deliver data for)
Its a rather wild assumption, tbh. :) There is no official standard that defines how this should be done. Heck, CoreCodecs decoder isn't even available!

nevcairiel
26th April 2012, 11:15
I agree. Driver crashes are taken seriously.
Please provide me the simplest way to reproduce (I already have the samples).

Just play it with LAV Video in DXVA2 Native mode with EVR, it'll crash immediately.

pankov
26th April 2012, 11:31
I managed to add it to an empty graph (in GraphStudioNext 32 bit).
Also managed to build a complete and working graph for an H264 file (that has H264 fourcc), connect the decoder to EVR and play.
I also checked its dependency on other DLLs - it only depends on standard Windows DLLs (no VS2010 dependencies) .
:(
I did exactly the same.
Any ideas what could have I done wrong? I simply used "regsvr32 mvc_dec_filter.dll" to register it and that's all.
And I tried both GraphStudio and GraphStudioNext (both 32bit) and I do see the filter but when I try to add it to a graph nothing happens.

...
PS:
What makes you think the Intel MVC decoder uses the same way of receiving the 3D data as CoreCodecs decoder? (which Haali was designed to deliver data for)
Its a rather wild assumption, tbh. :) There is no official standard that defines how this should be done.
I was simply hoping something will work.
Sadly I don't know any other MVC decoder.
In Stereoscopic Player I see CoreMVC filter but it's not available as DS filter. On the other hand the modified MPC MPEG splitter is available at their site and I think/hope it can be used to check how it sends the data to the CoreCodec decoder. On the other hand the source for the Intel decoder is available ... if I'm not wrong ... so it can be changed / adapted to accept this input ... or simply add a "translation" filter.

Guys,
this is way out of my league so if I'm talking nonsense please ignore me.

pankov
26th April 2012, 11:44
I found some time and managed to upload a small SIFF file for testing
http://www.mediafire.com/?hwvxscmms4mkbhp

NikosD
26th April 2012, 12:02
http://www.mediafire.com/?y2dbekgemoeo28m <- sure here it is Mpeg-2

but now the really crazy thing comes this one http://www.mediafire.com/?xr7ynkl2fg59g1c is a cuda transcode (Nvidia H.264) of it and it also crashes with Intel and Laurents DXVA 2 implementation but also with Potplayers DXVA, (though the Potplayer guys doesn't know of this yet the Mpeg-2 crash they fixed but it's still not perfect playing back ;)


Using PotPlayer latest version and ATi hardware in DXVA mode I couldn't play both of them at the signature system.

Playback of the MPEG-2 clip is awful - I can't see even one frame correct.

Playback of the H.264 file is better - the only problem is a green horizontal stripe at the top of the film.

BTW, WMP12 plays both clips perfect in DXVA mode.

wanezhiling
26th April 2012, 14:46
Using PotPlayer latest version and ATi hardware in DXVA mode I couldn't play both of them at the signature system.

Playback of the MPEG-2 clip is awful - I can't see even one frame correct.

Playback of the H.264 file is better - the only problem is a green horizontal stripe at the top of the film.

BTW, WMP12 plays both clips perfect in DXVA mode.

I can reproduce on my uvd2.2 card too.

For the H.264 file, MPC-HC DXVA has same playback (http://forum.doom9.org/showpost.php?p=1571889&postcount=19414).

For the MPEG-2 clip, NVIDIA is still ok, dunno how about uvd3.0 which support MPEG-2_VLD.
Edit:I tested HD6850, it's ok though also has a green horizontal stripe at the top like the h264 file.

NikosD
26th April 2012, 21:37
Eric,

it's not your field or responsibility but I'm really frustrated with Intel's policy about Ivy.

I look at the models and none of them is suitable for me.

3700K is the fastest and overclockable, but misses every other feature.

3700 is a little slower, with all features on but it's not overclockable.

I wanted to invest on a big expandable tower with an optional water cooling system (for the future), to experiment in overclocking with Ivy, but at the same time I need VT-d because I run also server systems with Hyper-V.

So I want maximum speed and overclocking capability, along with features like VT-d and security in HW.

It should exist a fully featured CPU, for someone who wants everything, shouldn't it ?

egur
27th April 2012, 07:49
Eric,

it's not your field or responsibility but I'm really frustrated with Intel's policy about Ivy.

I look at the models and none of them is suitable for me.

3700K is the fastest and overclockable, but misses every other feature.

3700 is a little slower, with all features on but it's not overclockable.

I wanted to invest on a big expandable tower with an optional water cooling system (for the future), to experiment in overclocking with Ivy, but at the same time I need VT-d because I run also server systems with Hyper-V.

So I want maximum speed and overclocking capability, along with features like VT-d and security in HW.

It should exist a fully featured CPU, for someone who wants everything, shouldn't it ?

What features are missing from the 3700K family that you need?
The K's don't have vPro, TXT and VT-d. These features are aimed at the enterprise segment and have no use in consumer systems.
Most of them require a different chipset (e.g. for vPro) like the B or Q series. These chipsets are not common outside the enterprise market segment.

NikosD
27th April 2012, 08:02
As I wrote above, mainly VT-d.

I need to use Hyper-V, the Virtualization technology of Microsoft OS server editions and soon Microsoft will put Hyper-V even in Windows 8 client editions, too

nevcairiel
27th April 2012, 08:16
As Eric mentioned, VT-d does only work if you also have a chipset which supports it. Those chipsets also don't support overclocking, so putting VT-d into a "K" CPU does not make sense, as you wouldn't be able to use both at the same time anyway, because of the Chipset requirements.

For that matter, VT-d is not required to use Hyper-V. VT-x is the important part, and that is present in all CPUs and all Chipsets. VT-d is only for I/O MMU virtualization, which is only required for enterprise-level virtualization, where you have truely dedicated hardware for every VM. The VM in Windows 8 "client" will not support VT-d either.

PS:
I also found some interesting quote on the web:
Currently (as of Windows Server 2008 R2 SP1), Hyper-V doesn't use the Intel VT-d hardware features (more information is available on this Intel site). The official guidance is to disable Intel VT-d in the BIOS.

NikosD
27th April 2012, 08:32
I/O Virtualization (VT-d) allows native-speed access to dedicated hardware from a guest operating system, including DMA-capable hardware.

True, I/O Virtualization is not performed by the CPU, but instead by the chipset.

So the question I put at my first post alters to this:

It should exist a combination of CPU+chipset (platform) that includes everything (overclockability, all features).

So 3770K and Z77 (the top processor and top chipset) should be a complete platform, I think.

nevcairiel
27th April 2012, 08:35
Z77 is a consumer chipset, it does not contain Enterprise features.

As mentioned before, Hyper-V does not even use VT-d.

NikosD
27th April 2012, 08:58
I change my system usually every three years and I'm sure that in the next few months we'll have:

1) M/Bs with Thunderbolt

2) OpenGL 4.x drivers

3) Hyper-V supporting VT-d.

I don't know for sure if I'll wait for Ivy or for Haswell.

I'm good enough with Core2Duo right now.

egur
27th April 2012, 09:36
I change my system usually every three years and I'm sure that in the next few months we'll have:

1) M/Bs with Thunderbolt

2) OpenGL 4.x drivers

3) Hyper-V supporting VT-d.

I don't know for sure if I'll wait for Ivy or for Haswell.

I'm good enough with Core2Duo right now.
What do you plan to do with this system? What's your budget?

NikosD
27th April 2012, 10:04
I started to plan my next system as a "no-limits" machine, with only logical restrictions, but even without discrete graphics card the total cost went to 1100€ !

I don't want something less, but I was a little disappointed when I saw that clock for clock Ivy is about 5% faster on average than Sandy in CPU only.

GPU graphics is theoritically faster in synthetic benchmarks 2x, but in games is about 50% (from 20% to 80%)

QuickSync 2.0 seems to be 50% faster in transcoding than QS 1.0.

I'm still waiting for H.264 benchmarks in decoding only, from you or Hendrik.

I don't have that money right now, so most probably I'll wait for Haswell which I will buy next year in drachmas or U.S dollars :D

pulbitz
28th April 2012, 10:47
APPCRASH, IntelQuickSyncDecoder.dll

sample file http://www.sendspace.com/file/k68n9h
(I don't use editing tool. Just a 5MB split.)

I tested with ffdshow QS, PotPlayer QS. (libav, DXVA is OK.)

egur
28th April 2012, 13:21
APPCRASH, IntelQuickSyncDecoder.dll

sample file http://www.sendspace.com/file/k68n9h
(I don't use editing tool. Just a 5MB split.)

I tested with ffdshow QS, PotPlayer QS. (libav, DXVA is OK.)

Confirmed. It has a broken H264 header. I'm working on it.
Update
Actually a fourcc mismatch - it's AVC1 when it should be H264.

Update 2
Fixed - will be part of next release - after some more testing.

egur
28th April 2012, 17:53
Version 0.31 beta is out with the following changes:
* Fixed AVC1 streams with AnnexB format.
* Fixed rare case where H264 was corrupt and reported a huge frame rate along with horribly bad time stamps (previous commit)
* Changed behavior with corrupted frames - they get discarded at the start of a stream.
* Updated H264 NALU parsing code from LAV filters.
* FFDShow rev4438

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)

edwrap
29th April 2012, 21:40
w.r.t. the sandy bridge video scaler improvements detailed earlier in this thread, are these dependent on specific settings in the driver options? I'd only just returned to using Windows 7 on an HD 3000 last night, and was somewhat horrified to see almost every video "enhancement" option ticked by default, having been trained for years to disable them. Some like adaptive contrast are instantly noticeable, but others like skin tone are much more subtle. Are there agreed upon best settings?

Apologies if this has been asked before, search was unhelpful.

andyvt
30th April 2012, 01:35
w.r.t. the sandy bridge video scaler improvements detailed earlier in this thread, are these dependent on specific settings in the driver options? I'd only just returned to using Windows 7 on an HD 3000 last night, and was somewhat horrified to see almost every video "enhancement" option ticked by default, having been trained for years to disable them. Some like adaptive contrast are instantly noticeable, but others like skin tone are much more subtle. Are there agreed upon best settings?

Apologies if this has been asked before, search was unhelpful.

Personally, I don't like skin tone correction (tends to make people's faces look pasty or wearing an overly heavy amount of makeup and often detail is lost) or contrast enhancement so I disable those, but I've found the default values for NR and sharpness to be pretty good because they aren't that aggressive, but since the "best" results are based on individual preference it's hard to choose a one-size-fits-all set.

Changes are made in real time, so it's easy to play with it and find something that you like.

egur
30th April 2012, 11:08
Video processing algorithms settings are subjective and should be tested by each user.
The only option exposed with respect to the scaler is how display 4:3 content on a 9:16 screen (Non Linear Adaptive Scaling). The more advanced scaler is used for video sources automatically (used mostly by EVR and probably custom renderers from CyberLink and Arcsoft).

My settings:
Some noise reduction and sharpness.
Auto contrast is off. If you're watching a movie on a poor display (e.g. laptop) you should consider switching this on as it will display dark scenes better. If you have good watching conditions, leave it off.
Standard color correction - defaults (do nothing).
Total color control - mild enhancements to RGB, even smaller enhancements to CMY. This is not a simple procamp (standard color correction) filter it will not over-saturate colors.
Skin tone enhancement - off. Recommend testing with mild settings.

The latter is very cultural based (hue and saturation of desired skin). So some users will love it and others will hate it.
Hollywood film makers hate it - it changes the directors artistic intentions (e.g. green tint in the Matrix movies). Movie makers in many cases modify the colors so the movie will not appear too real. This causes the viewers to immerse in the film and not feel that they are watching a play.

egur
3rd May 2012, 12:35
I did some testing on IvyBridge today.
System:
* CPU: i7 class engineering sample (E0) @ 2.6GHz.
* DDR3@1333 sodimm.
* Window 7
* 2712 graphics driver
* ZoomPlayer
* CoreTemp
* LAV splitter
* Decoders: LAV 0.50.2 and my own latest ffdshow build.

Good news:
* Managed CrowdedRun (4K@50fps, ~122mbps) with 30% CPU@3.2GHz using both ffdshow and LAV. libavcodec (ffdshow) took 85% CPU@2600 (jumps to 2700).
* This clip is the worst case scenario - very high bitrate, high resolution, high frame rate - stresses all the subsytems (memory, decoder, CPU). Most 4K clips have 1/4 of the bitrate and half the frame rate.
* Other clips played fine no surprises so far.
* A transposed 720p clip (720x1280) played very well. SandyBridge's QS can't play it since the line count is >1080.

The bad news:
* The reference board used didn't have proper cooling and the CPU hit 103C (SW or QS). At these temperatures it activates throttling to cool itself down. This might explain the high CPU usage. I need to rig it with a better fan and test again.

Even with these far-from-optimal conditions the video playback was smooth.

Also, started working on adding HW video processing. Some stuff already works but some issues are too severe for a proper release :(
I'll commit to SVN my changes soon so Nev can start playing with it.
Added:
* Deinterlacing (half/full rate output)
* Detail filter
* Denoise filter

Not working:
* 50i sources
* Telecined sources

Didn't add procamp (Hue, Saturation, Brightness, Contrast) yet, I'll add it too (very simple to do but not so useful).

Update
Fixed the cooling solution and QS behaves the same. libavcodec now raises CPU frequency to 3.2GHz and uses all cores at 82%.

CruNcher
3rd May 2012, 15:20
I did some testing on IvyBridge today.
System:
* CPU: i7 class engineering sample (E0) @ 2.6GHz.
* DDR3@1333 sodimm.
* Window 7
* 2712 graphics driver
* ZoomPlayer
* CoreTemp
* LAV splitter
* Decoders: LAV 0.50.2 and my own latest ffdshow build.

Good news:
* Managed CrowdedRun (4K@50fps, ~122mbps) with 30% CPU@3.2GHz using both ffdshow and LAV. libavcodec (ffdshow) took 85% CPU@2600 (jumps to 2700).
* This clip is the worst case scenario - very high bitrate, high resolution, high frame rate - stresses all the subsytems (memory, decoder, CPU). Most 4K clips have 1/4 of the bitrate and half the frame rate.
* Other clips played fine no surprises so far.
* A transposed 720p clip (720x1280) played very well. SandyBridge's QS can't play it since the line count is >1080.

The bad news:
* The reference board used didn't have proper cooling and the CPU hit 103C (SW or QS). At these temperatures it activates throttling to cool itself down. This might explain the high CPU usage. I need to rig it with a better fan and test again.

Even with these far-from-optimal conditions the video playback was smooth.

Also, started working on adding HW video processing. Some stuff already works but some issues are too severe for a proper release :(
I'll commit to SVN my changes soon so Nev can start playing with it.
Added:
* Deinterlacing (half/full rate output)
* Detail filter
* Denoise filter

Not working:
* 50i sources
* Telecined sources

Didn't add procamp (Hue, Saturation, Brightness, Contrast) yet, I'll add it too (very simple to do but not so useful).

Update
Fixed the cooling solution and QS behaves the same. libavcodec now raises CPU frequency to 3.2GHz and uses all cores at 82%.

How long will it survive 103C :D and how much can it cool down with throttling, is it unbreakable whatever load you put on it the throttling will always keep it safe or will it still @ least switch off ;), for a long time no one did the typical test anymore in the media just removing the cooler while the system is running under full load i would really like to know if this can be survived by todays Intel systems (SB,Ivy Bridge) unlimited when it's throttling down from like 103C i guess everyone remembers this http://www.youtube.com/watch?v=y39D4529FM4 http://www.youtube.com/watch?v=cAqlA9EJ4ME http://www.youtube.com/watch?v=5umDJhIfrt0 ;) of course testing with a Game these days is not really adequate full x264 Encoding load on all cores would be the kicks ;)

Trib
3rd May 2012, 15:24
Is the 2712 driver still password protected?

egur
3rd May 2012, 15:25
How long will it survive 103C :D and how much can it cool down with throttling ?

Not sure how long, at 105C it would shut off so it wouldn't burn so this was close.
Throttling is lowering frequency for a certain amount of time, this happens above 100C if I remember correctly.

Octo-puss
4th May 2012, 07:04
Eric, do you indirectly confirm that stock Intel coolers are useless and crappy then? :)
103° under 85% load is pretty damn bad. Or don't tell me it was under 30%, that would be too bad.

NikosD
4th May 2012, 07:12
Good news:
* Managed CrowdedRun (4K@50fps, ~122mbps) with 30% CPU@3.2GHz using both ffdshow and LAV. libavcodec (ffdshow) took 85% CPU@2600 (jumps to 2700).
* This clip is the worst case scenario - very high bitrate, high resolution, high frame rate - stresses all the subsytems (memory, decoder, CPU). Most 4K clips have 1/4 of the bitrate and half the frame rate.



Eric,

the clip you mention is a "medium" one.
Not at all worst case scenario.

Please try:
http://xhmikosr.1f0.de/samples/2160p/OldTownCross/OldTownCross_2160p50.x264.CRF24.mkv

It has twice the bit rate of the sample you tested at the same frame rate and resolution.

Of course there are some even worst case scenarios :)

Also it could be useful to test native DXVA LAV quicksync decoder, removing the restriction of 1080p

Thanks

wanezhiling
4th May 2012, 07:19
http://xhmikosr.1f0.de/samples/2160p/DucksTakeOff/DucksTakeOff_2160p50.x264.CRF24.mkv
This clip is the worst case scenario.:)

egur
4th May 2012, 09:33
Eric, do you indirectly confirm that stock Intel coolers are useless and crappy then? :)
103° under 85% load is pretty damn bad. Or don't tell me it was under 30%, that would be too bad.

It was a rather expensive TEC cooler - this is lab equipment not consumer stuff. The fan had a poor contact with the CPU because of old thermal paste and polymer surface.

I actually like the Intel coolers - they are very quiet and cost nothing.

Octo-puss
4th May 2012, 15:49
The good stuff must be only on new CPUs then. Im sure my wife's Core i3 BOX cooler is worse than anything on this planet :P
I'd be interested in temperature with fixed cooling. Can you possibly try again when you have some extra time?

egur
4th May 2012, 16:34
The good stuff must be only on new CPUs then. Im sure my wife's Core i3 BOX cooler is worse than anything on this planet :P
I'd be interested in temperature with fixed cooling. Can you possibly try again when you have some extra time?

I'll try the other clips on Sunday.

CharlieCL
4th May 2012, 19:39
Good News. I finally be able to test the exclusive Full Screen with QS, LAV splitter, and LAV 0.50.2 on Windows 7 64-bit, it worked fine now.

wanezhiling
5th May 2012, 03:20
http://software.intel.com/en-us/articles/vcsource-tools-media-sdk/

http://registrationcenter-download.intel.com/akdlm/irc_nas/2597/w_MSDK-2012_pu_3.0.015_R2.zip

:)

CruNcher
5th May 2012, 07:34
No release notes for R2 nothing i guess it's just the IVY update to 1.3 API, like it was floating around in the beta driver :)

egur
5th May 2012, 08:08
No release notes for R2 nothing i guess it's just the IVY update to 1.3 API, like it was floating around in the beta driver :)

There's a release notes document with the MSDK download.
Changes from the 2012 gold version are:
* Three new H.264 profiles and 6 (all defined in standard) constrained flags were defined. This change should simplify Media SDK usage by providing direct access to constrained flag configuration.
MFX_PROFILE_AVC_CONSTRAINT_SET0/1/2/3/4/5
MFX_PROFILE_AVC_CONSTRAINED_BASELINE
MFX_PROFILE_AVC_CONSTRAINED_HIGH
MFX_PROFILE_AVC_PROGRESSIVE_HIGH
* View output mode was added for MVC encoder mfxExtCodingOption::ViewOutput. This flag instructs encoder to output each view in separate bitstream buffer and format them according to Blu-ray* and AVCHD* Format requirements.
* MVC encode now supports interlace coding mode.

nevcairiel
5th May 2012, 19:53
Hey Eric,

i found a sample with quite an odd behaviour today.

http://files.1f0.de/samples/h264-qs-timestamp-issue.mkv

When i play this file with LAV in QS mode, it plays too fast (should be 24p, plays at 30p), running out of sync.
I checked the timestamps of the file, and they are fine. Plays fine with software or other hardware codecs too.

For some reason, the QS decoder insists on changing the timestamps, even though i turn off the timestamp mangling flag that you expose.

I'm running driver 2696, happens both on my Ivy and Sandy systems.
I just tried 2656, and the problem does not occur anymore.

The driver dependency makes me believe its the MediaSDK itself causing this, and not your code directly.
Can you maybe check if its something you can turn off, or maybe if the problem is just gone in a newer driver which i don't have yet? :)

Edit:
2712 is also showing the problem.
Either its a bug in the newer MediaSDK libraries which you should forward, or its a feature thats on by accident?

egur
5th May 2012, 21:31
Hey Eric,

i found a sample with quite an odd behaviour today.

http://files.1f0.de/samples/h264-qs-timestamp-issue.mkv

When i play this file with LAV in QS mode, it plays too fast (should be 24p, plays at 30p), running out of sync.
I checked the timestamps of the file, and they are fine. Plays fine with software or other hardware codecs too.

For some reason, the QS decoder insists on changing the timestamps, even though I turn off the timestamp mangling flag that you expose.

I'm running driver 2696, happens both on my Ivy and Sandy systems.
I just tried 2656, and the problem does not occur anymore.

The driver dependency makes me believe its the MediaSDK itself causing this, and not your code directly.
Can you maybe check if its something you can turn off, or maybe if the problem is just gone in a newer driver which i don't have yet? :)

Edit:
2712 is also showing the problem.
Either its a bug in the newer MediaSDK libraries which you should forward, or its a feature thats on by accident?

Odd behavior - managed to reproduce. Still no root cause. I'll update when I have a fix.

I've root caused the problem:
* H264 SPS header doesn't contain a frame rate (num_units_in_tick = time_scale = 0).
* If I manually set the frame rate for the MSDK to 23.976 it will behave correctly.
* This happens even when VPP is off and no time stamp calculation/manipulation.

Nev, make sure the version of the MSDK HW DLL is 368 (from 2696) not 369 (from 2712).

I've committed a patch that also fixes some DI issues along with a workaround for the above issue (r51).

Here's my commit log:

Experimental build - not stable enough for production SW.
* Update to MSDK 2012 R2.
* Workaround for MSDK bug - zero frame rate in H264 SPS header would cause a wrong frame rate.
* Deinterlacing now works on frames stored as progressive but marked as interlaced content (many PAL TV broadcasts).
* Telecined content not supported by DI (yet).

NikosD
6th May 2012, 07:26
I'll try the other clips on Sunday.

Eric,

if you try the 4K clips posted by Wanezhiling and me, you can use PotPlayer's internal built-in codecs, because it has an option to "force" HW decoding above 1080p.

The tab key shows CPU utilization of PotPlayer process alone and overall CPU utilization at the same time, separated by a "/".

This is in case you want to check playback performance, not benchmarks of course.

PotPlayer has an extra advantage:
It has direct/ native internal DXVA playback and your QS decoder as an option, too.

So you can check both (direct DXVA and QS decoder) in an easy way, until Nevcariel fixes LAV filters playing 4K in direct mode.

egur
6th May 2012, 09:36
Tested 5 4K clips using LAV and ffdshow.
LAV and ffdshow showed very similar results so I just wrote LAV-QS score.
The CPU% is how much the player's process took, not the entire system. All clips maxed out turbo at 3.4GHz. Performance wasn't constant during playback as the clips varied in bitrate - OldTownCross ran at 280mbps, peaking at 500 (!) mbps which is outside H264 spec.

CrowdedRun 29% (up to 34%)-3.4GHz
DucksTakeOff 36% (up to 42%) -3.4GHz
InToTree 32% (up to 36%) -3.4GHz
OldTownCross 36% (up to 42%) -3.4GHz
ParkJoy 29% (up to 31%) -3.4GHz

LAV DXVA-CB – half the CPU% of QS but drops a lot of frames (visually, EVR reports everything is OK). Clips are not playable.
LAV DXVA-native – not working – uses libavcodec, maxes out CPU.

nevcairiel
6th May 2012, 09:51
LAV DXVA-native – not working – uses libavcodec, maxes out CPU.

Native DXVA is limited to 1080p right now, because there are quite some issues with DXVA of 4K on AMD and NVIDIA.
Need to re-visit this in a while when everything has new drivers. Its not like 4K content is important right now.

I probably should improve the logic to allow Intel, but will do that in one go when i check it again.

egur
6th May 2012, 09:56
Native DXVA is limited to 1080p right now, because there are quite some issues with DXVA of 4K on AMD and NVIDIA.
Need to re-visit this in a while when everything has new drivers. Its not like 4K content is important right now.

I probably should improve the logic to allow Intel, but will do that in one go when i check it again.

I'm considering 4K video a preview to a new technology - give us and the HW makers time to clean up the act before it becomes mainstream.

hajj_3
6th May 2012, 11:09
4k video will probably be using HEVC codec though, i'm not sure if we'll see much 4k video in h.264. I'm hoping that Intel adds dedicated hardware in Haswell for HEVC hardware decoding.

nevcairiel
6th May 2012, 11:14
4k video will probably be using HEVC codec though, i'm not sure if we'll see much 4k video in h.264. I'm hoping that Intel adds dedicated hardware in Haswell for HEVC hardware decoding.

Doubtful that it'll be in Haswell already.
The HEVC standard isn't even finalized yet, and content providers will take years to adopt it anyway.

hajj_3
6th May 2012, 12:03
there is already an ARM chip that has HEVC support and that chip was released a while back. The final draft spec is out in july and ratified in january. Chip makers already have chips that can do HEVC hardware decoding such as qualcomm snapdragon and ziilabs: http://www.youtube.com/watch?v=vZfsULKG2Zo http://www.eetimes.com/electronics-news/4236490/ZiiLabs-samples-stem-cell-Android-SoC

So i'm pretty sure that intel could have support in haswell if they wanted to.

Yes it will take a while for software support for HEVC but if they have hardware that can support it then your pc will be future proofed (video-wise) with a haswell cpu.

egur
6th May 2012, 12:37
Doubtful that it'll be in Haswell already.
The HEVC standard isn't even finalized yet, and content providers will take years to adopt it anyway.

Let me correct that, not doubtful - impossible. Spec closes in 2013 about the same time Haswell hits the market...
Intel would need a time machine to pull this off :)

there is already an ARM chip that has HEVC support and that chip was released a while back. The final draft spec is out in july and ratified in january. Chip makers already have chips that can do HEVC hardware decoding such as qualcomm snapdragon and ziilabs: http://www.youtube.com/watch?v=vZfsULKG2Zo http://www.eetimes.com/electronics-news/4236490/ZiiLabs-samples-stem-cell-Android-SoC

So i'm pretty sure that intel could have support in haswell if they wanted to.

Yes it will take a while for software support for HEVC but if they have hardware that can support it then your pc will be future proofed (video-wise) with a haswell cpu.

This ARM SoC has a DSP processor to do the decoding. DSPs are programmable so it's not an ASIC solution. This is not far from CUVID in concept. They can always rewrite the DSP code. It will suck a battery dry in no time...

NikosD
6th May 2012, 14:38
New intel beta drivers for Windows 8, for both Sandy and Ivy.
They work also for Win 7 (I tried 32bit version with Core i5 and Win 7 SP1 x86)

They include OpenGL 4 drivers for Ivy.

You can download the HD Graphics driver v2927 (15.28.0.64.2729 (9.17.10.2729)) from this page

64bit:
http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21180&lang=eng

32bit:
http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21235&lang=eng

CharlieCL
6th May 2012, 15:24
Some GPUs of Ivy Bridge Core i5 are HD3000, can it play 4K?

nevcairiel
6th May 2012, 15:25
Some GPUs of Ivy Bridge Core i5 are HD3000, can it play 4K?

Ivy Bridge is either 2500 or 4000, none are 3000.
Both 2500 or 4000 should be able to play 4K.

CruNcher
6th May 2012, 16:14
does it also fit performance wise 2000(GT1),2500(GT1),3000(GT2),4000(GT2?) ;) ?

i doesn't looked @ a compare of 2500 (Ivy,GT1) vs 3000 (SB,GT2) yet

though actually Ivy bridge has been renamed back to GT1 in that line so i guess it doesn't fit to continue the GT naming indeed as we talking about 6 (2500) vs 12 EUs (3000) ;) and getting the same performance with half the EUs i doubt that (on the 3D part).

And the speculation about Haswell also sound a little crazy 40 Eus with the Performance of what ;) 80 or even 160 of the current EUs ;)


New intel beta drivers for Windows 8, for both Sandy and Ivy.
They work also for Win 7 (I tried 32bit version with Core i5 and Win 7 SP1 x86)

They include OpenGL 4 drivers for Ivy.

You can download the HD Graphics driver v2927 (15.28.0.64.2729 (9.17.10.2729)) from this page

64bit:
http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21180&lang=eng

32bit:
http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21235&lang=eng


Outch
Normally i don't give much about Benchmarks but Microsofts Performance Index Shows a Performance Decrease of 1.1 Points on my HD 2000 for the Game Graphics Value before it was 5.8 (Aero Performance result stayed the same @ 5.2) that's a heavy drop before this drop it was constantly going up per driver release climaxing @ 5.8 with 2719 with 2729 now it dropped down to 4.7 (and becomes the final system result now compared to 5.2 before).

This might indicates some big change here (maybe IQ wise ?)

Have todo some real Engine tests to see if there is something realizable outside of Benchmarks

I could swear Aero feels even snappier (this also constantly improved over driver releases) though (lower latency) even showing no real Benchmark improvement in the Performance Index.

Yep definitely a good latency test is the Aero to Windows Basic change it's much much faster then it was in every previous driver (the mode change is almost fluid now, though Win 8 will be totally fluid WDDM 1.2 ) :)

@egur

Both Lav Video Quicksync as well as FFdshow Quicksync stopped working (DXVA works)

egur
7th May 2012, 08:31
Windows 8 drivers have either broken MSDK DLLs or they are missing altogether. The Win8 drivers are beta and not fully functional.

diizzy
7th May 2012, 08:54
Hi,

I might be completely off in this matter but I can't enable QS on my i7-3770 (non K) and I can't find out why, LAV Filters lists it as "Not available" and it doesn't show up in ffdshow at all.

Motherboard: MSI Z77A-GD65
OS: Windows 7 Pro 64-bit SP1
Driver: 8.15.10.2712 (link: http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21135&ProdId=3442&lang=eng&OSVersion=Windows%207%20%2864-bit%29*&DownloadType=Drivers )
ffdshow: ffdshow_rev4441_20120430_xhmikosr_icl12.exe (I can give your build a go if you want to)
LAV Filters: 0.50.2

Does it require lucid or something?

//Danne

wanezhiling
7th May 2012, 10:58
Using PotPlayer latest version and ATi hardware in DXVA mode I couldn't play both of them at the signature system.

Playback of the MPEG-2 clip is awful - I can't see even one frame correct.

Playback of the H.264 file is better - the only problem is a green horizontal stripe at the top of the film.

BTW, WMP12 plays both clips perfect in DXVA mode.

PotPlayer 1.5.33425 should have fixed both.:)

egur
7th May 2012, 19:08
Hi,

I might be completely off in this matter but I can't enable QS on my i7-3770 (non K) and I can't find out why, LAV Filters lists it as "Not available" and it doesn't show up in ffdshow at all.

Motherboard: MSI Z77A-GD65
OS: Windows 7 Pro 64-bit SP1
Driver: 8.15.10.2712 (link: http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21135&ProdId=3442&lang=eng&OSVersion=Windows%207%20%2864-bit%29*&DownloadType=Drivers )
ffdshow: ffdshow_rev4441_20120430_xhmikosr_icl12.exe (I can give your build a go if you want to)
LAV Filters: 0.50.2

Does it require lucid or something?

//Danne

You need Lucid if you don't have a display connected to Intel GPU. Direct3D/DXVA requires a display for GPUs to be enumerated. You can also try faking a connected display. See a previous post (http://forum.doom9.org/showthread.php?p=1532786#post1532786)

diizzy
8th May 2012, 11:39
I see, the thing is though that I'm only using the IGP. Is QS detection perhaps based on driver version?
//Danne

egur
8th May 2012, 11:42
I see, the thing is though that I'm only using the IGP. Is QS detection perhaps based on driver version?
//Danne

If it's not detected, it's a driver problem. try installing a newer driver (Intel download center or from OEM). IvyBridge drivers are also fine (same driver installation). FYI, don't install drivers from windows update.
You may need to reinstall ffdshow as it checks for compatibility during installation.

NikosD
8th May 2012, 13:42
PotPlayer 1.5.33425 should have fixed both.:)

Indeed, it did.

CruNcher
8th May 2012, 14:54
NikosD and wanzehiling could you check if MPC-HC have fixed them before Potplayer did, or is MPC-HC still showing the same issues on your ATI Cards ?
MPC-HC actually showed these changes for me i think before Potplayer was updated (or did i miss that Potplayers guys contribute back now ????).
If both show the same results now im pretty sure Potplayer guys just updated and you should thx aleksoid i guess ;)

Atak_Snajpera
8th May 2012, 15:03
@cruncher
when was the last time you used periods in sentence? ;)

CruNcher
8th May 2012, 15:08
ehmm look again ;D

Windows 8 drivers have either broken MSDK DLLs or they are missing altogether. The Win8 drivers are beta and not fully functional.

they're there C:\Program Files\Common Files\Intel\Media SDK\s1\2.0\libmfxhw32(64)-s1.dll is there and updated 3.12.3.30/3.5.28112.40659 (Trunk MS MVC for HSW) Package Contents: Intel® Media SDK for IVB Win8, though i guess then they're broken will try to place them per application (maybe only the dispatching is broken, or needs a different API call 104 ?) and with older ones and see what happens or installing the R2 makes them magically work ;)


i wonder why they package the trunk SNB ones in the Installer if they don't work though maybe they work with 2712, strange encoding works with the updated (libmfxhw32-s1.dll) on the "Win8 Driver" only Decoding seems to make problems (though also only Quicksync, DXVA works fine with these Drivers), the Driver as mentioned works on Win7 and shows WDDM 1.1 as Driver Model (except the Qicksync API Decoding broken @ least no Quicksync API using Application works, Mirillis Splash Player,Lav Video Quicksync, FFDshow-Quicksync, Potplayer-Quicksync, Arcsoft), and the lower Windows Performance Index Game Benchmark Value it seems to work pretty normal) ;)

So it seems the only thing that's broken is Quicksync API Decoding for SNB (@ least you get a black screen from applications that use it @ playback and no loaded libmfxhw32-s1.dll) though the Quicksync API Encoding works normal (via libmfxhw32-s1.dll).

This way you can also find out which ISV is using indeed Quicksync API for Decoding in Native mode directly or DXVA if you aren't sure and dunno how to analyze this ;)
Mirillis and Arcsoft are both using the Native Quicksync Decoder API (no DXVA for Intel, H.264).

1 good news the 2 DXVA crashes in the Driver seem history in 2729 (gonna check the same with the updated libmfxhw32-s1.dll on 2712) :)

wanezhiling
8th May 2012, 16:38
NikosD and wanzehiling could you check if MPC-HC have fixed them before Potplayer did, or is MPC-HC still showing the same issues on your ATI Cards ?
MPC-HC actually showed these changes for me i think before Potplayer was updated (or did i miss that Potplayers guys contribute back now ????).
If both show the same results now im pretty sure Potplayer guys just updated and you should thx aleksoid i guess ;)

http://i.imgur.com/KjoUG.png
MPC-HC 4643

Actually PotPlayer 1.5.33227(27.04.2012) had fixed the H264 DXVA issue.:)


PotPlayer 1.5.33425(07.05.2012) just fixed another MPEG-2 clip.:)

I can't test the MPEG-2 clip on MPC-HC now because you know 4650M doesn't support MPEG2_VLD. Yesterday I'll test on HD6850 again.
Edit: MPC-HC 4644 on HD6850 http://i.imgur.com/Fn0DZ.jpg



And you need not doubt that, PotPlayers Codec just updated from MPC-HC, they always have the same DXVA issue.:)
http://forum.doom9.org/showpost.php?p=1564276&postcount=19047
http://forum.doom9.org/showpost.php?p=1568536&postcount=19212

Besides, http://forum.doom9.org/showpost.php?p=1570072&postcount=19283
http://forum.doom9.org/showpost.php?p=1572770&postcount=19456
http://forum.doom9.org/showpost.php?p=1572156&postcount=19427

But PotPlayer devs fixed these issues first before I posted in MPC-HC thread.:)

CruNcher
8th May 2012, 18:45
Thx wanezhilling

btw i get more Video Rendering problems now with the 2729 driver on Win7 the more i test different things the more issues show up ;) (currently Adobe Flash Player 11.3 fails rendering some strange things together ;) )so yeah Beta seems to mean Beta here i go back to 2712 and try my luck with the new Decoder there ;)

Though maybe i got the driver to much under pressure with the Quicksync Rendering test that he now only shows Garbage, though i have a funny idea lets see what happens when... ;)

ahh btw if you remove or rename the hardware dll from the dispatcher dir you can provocate that Lav Video Quicksync and FFdshow Quicksync fallback to libmfxsw (though questionable why anyone would want that instead off avcodec ;) )

egur
9th May 2012, 20:36
CruNcher,
If I understand correctly, you couldn't get the 15.28.0.2729 driver to work (with QS) under windows 8 at all? If not, can you give me a full system description.

I should get a Win8 system soon so I can start testing it myself.

nevcairiel
9th May 2012, 20:46
He tried the Win8 driver on Win7, and then complained it wasnt working. :p

nevcairiel
10th May 2012, 20:11
I've root caused the problem:
* H264 SPS header doesn't contain a frame rate (num_units_in_tick = time_scale = 0).
* If I manually set the frame rate for the MSDK to 23.976 it will behave correctly.
* This happens even when VPP is off and no time stamp calculation/manipulation.

[...]

I've committed a patch that also fixes some DI issues along with a workaround for the above issue (r51).


Hi Eric,

i finally managed to test, and it does work indeed.
However, the Media SDK is still modifying the timestamps, which it really shouldn't be doing. (MKV timestamps are 41ms/42ms aparts because of missing precision, MSDK outputs timestamps 41.711/41.700 apart)
Because we feed it the proper fps now, there is no wrong behaviour anymore, however its still bad that it touches the times at all. The H264 SPS header value does not have to match the actual video timestamping.

Did you raise this issue with the MSDK developers? I would really love to go back to previous behaviour and get the same timestamps out that i put in.

egur
10th May 2012, 21:16
Hi Eric,

i finally managed to test, and it does work indeed.
However, the Media SDK is still modifying the timestamps, which it really shouldn't be doing. (MKV timestamps are 41ms/42ms aparts because of missing precision, MSDK outputs timestamps 41.711/41.700 apart)
Because we feed it the proper fps now, there is no wrong behaviour anymore, however its still bad that it touches the times at all. The H264 SPS header value does not have to match the actual video timestamping.

Did you raise this issue with the MSDK developers? I would really love to go back to previous behaviour and get the same timestamps out that i put in.

Hi Hendrik,
I raised the issue but I don't know yet when it will be fixed (yet).

Does it change the time stamps on other clips or just the problematic one?

There are other issues:
Had to remove progressive flags from frames to force the DI to work - happens a lot in PAL TV broadcasts.
Telecined content is not handled well. This something I can probably fix (given I had some time).
It also seems that 2:2 pulldown isn't working. 2:2 content (50i) will output 50fps after the DI deinterlaces it - regardless if the source was progressive.

What about the HDMI RGB levels issue (from your thread), anything to add?

nevcairiel
10th May 2012, 21:27
Does it change the time stamps on other clips or just the problematic one?

I don't think so. The only other things i see are probably inaccuracy from the timebase conversion. Like, sometimes it changes from a duration of 420000 to 419888, and from 410000 to 410112 on the next frame, balancing each other out, which i'll just blame on the conversion onto a different time base.

Only for those files where i gave you a sample earlier, it seems to completely rewrite the timestamps.



What about the HDMI RGB levels issue (from your thread), anything to add?
I just know that the HDMI setting will not "stick" for me, anytime i reboot or even the resolution is changed, it resets. Apparently its a known issue already.
Another thing was that changing it did not change the image at all for me, but i'm not sure why that was, might be some unrelated factor. I'm now using a dGPU again, anyway.

egur
10th May 2012, 21:31
I just know that the HDMI setting will not "stick" for me, anytime i reboot or even the resolution is changed, it resets. Apparently its a known issue already.
Another thing was that changing it did not change the image at all for me, but i'm not sure why that was, might be some unrelated factor. I'm now using a dGPU again, anyway.

OK, but why change it in the first place, does it actually output a limited RGB range? Because like I reported, the levels were fine.

nevcairiel
10th May 2012, 21:34
OK, but why change it in the first place, does it actually output a limited RGB range? Because like I reported, the levels were fine.

Mine outputs limited range, which seems to be the default when it detects a TV.
Movies are fine (once player settings were adjusted accordingly), however the desktop looks weird in that mode, which is why i want full range, and my TV is also calibrated to that end.

egur
11th May 2012, 10:24
Mine outputs limited range, which seems to be the default when it detects a TV.
Movies are fine (once player settings were adjusted accordingly), however the desktop looks weird in that mode, which is why i want full range, and my TV is also calibrated to that end.

No calibration is needed for the TV if you use HDMI. The levels calibration (contrast/brightness) was meant for analog connections.

If your TV has such settings, set HDMI input levels full and disable 16:9 overscan.

Set brightness to zero and contrast to 100% which is 1x gain (or lower if it's too bright for you). For proper TVs 100% means that white goes to the brightest white the display can output. Bad TV might do over-contrast - light grays will become white, effectively losing detail in the light areas.

Saturation should be at default (1x gain) and there's no reason to touch Hue/Tint.
If your TV allows you to modify Gamma curves (RGB tables), leave them at default.
The desktop should look perfect at this point. This is your starting position.

If you've done this, does the desktop still look bad in the default driver settings?

nevcairiel
11th May 2012, 10:39
If you've done this, does the desktop still look bad in the default driver settings?

No matter what i configure, the desktop is supposed to be full range, and if the HDMI connection is run at limited range, the desktop will have crushed blacks and whites.

egur
11th May 2012, 13:10
No matter what i configure, the desktop is supposed to be full range, and if the HDMI connection is run at limited range, the desktop will have crushed blacks and whites.

That's incorrect. The control panel entry for full/limited control the display pipeline which is not part of the video pipeline. The display pipeline basically outputs the desktop (always RGB), apply color corrections (ICC LUTs), optionally compress levels (to output 16-235) and optionally color space conversions (e.g. for digital YCbCR output or S-VHS/composite).
If your system's desktop looks bad, 99% that your TV is set up wrong.

If by "crushed" you mean that dark grays become black and light grays become white (over contrast) it means that your TV is expecting a limited RGB range and it receives a full range.

If by "crushed" its the other way around: black becomes gray and white becomes light gray, this means that the PC is outputting a limited range and the TV is expecting a full range.

All these check must be done when the TV contrast/brightness is at defaults.

If you can't make the desktop look OK, this is very serious quality issue. It means you'll get excessive color banding due to quantization. It will also strengthen noise.

Nev, I really like to help, but I need to know the exact conditions before I file a report. Especially since I can see proper levels on my own system (but levels are reversed and setup doesn't stick).
Also, please remember that I'm not a native English speaker and a clear detailed explanation will help (words like crushed can have multiple meanings).

nevcairiel
11th May 2012, 13:16
That's incorrect. The control panel entry for full/limited control the display pipeline which is not part of the video pipeline. The display pipeline basically outputs the desktop (always RGB), apply color corrections (ICC LUTs), optionally compress levels (to output 16-235) and optionally color space conversions (e.g. for digital YCbCR output or S-VHS/composite).
If your system's desktop looks bad, 99% that your TV is set up wrong.

I just run apps on the desktop that just look bad when they are compressed into limited range.
I simply want full range. I can get full range with NVIDIA and AMD, but Intel fails, because it resets to Limited all the time. Hence, a bug on Intels side. My motivation is irrelevant. I just want Intel to give me what i had all those years before as well. End of discussion.
Not that i care, i use a dedicated GPU anyway now because Intels drivers still suck, in my opinion they haven't really changed much since SNB release.

The bug is defined very clearly, the levels dropdown is reseting all the time, and apparently for some people even reversed.

Note that i calibrated my TV for the previous GPU with a colormeter, but since i couldn't even get the blacklevels right i didn't bother to do that for the Intel GPU.
I just got a new TV this week, too, need to calibrate the new TV with the new GPU this weekend.

aufkrawall
11th May 2012, 21:26
Is there a chance that there will be WMV3 decoding somewhen? :)

nevcairiel
11th May 2012, 21:58
Is there a chance that there will be WMV3 decoding somewhen? :)

Already supported.
Needs a recent enough driver to work properly though, 2696 seems fine.

aufkrawall
12th May 2012, 07:46
Already supported.
Needs a recent enough driver to work properly though, 2696 seems fine.
Is it active if VC-1 is checked for QS in LAV?
May I ask why there is no extra checkbox for it? :)

nevcairiel
12th May 2012, 07:49
VC-1 is WMV3 Advanced Profile, and WMV3 is VC-1 Simple/Main Profile. Its the same codec, just different profiles of it. Doesn't make sense to add an option for that.
Also, there is little space. :p

aufkrawall
12th May 2012, 07:56
Alright, thanks. Will check it out.

pankov
12th May 2012, 08:20
I just got a new TV this week, too, need to calibrate the new TV with the new GPU this weekend.
Just out of curiosity is it 3D capable? Would you mind sharing size and model?

nevcairiel
12th May 2012, 08:23
Just out of curiosity is it 3D capable? Would you mind sharing size and model?

I got a Sony KDL-55HX755.
It is 3D capable, and i briefly tried the 3D, and quickly hated it. Was more fun in the cinema.

Other then that, i'm pretty happy with it.

aufkrawall
12th May 2012, 08:23
egur, there's still something wrong with MPEG2 interlaced.
With EVR CP of MPC HC it still jitters but it's deinterlaced.
With madVR it doesn't jitter but the stream doesn't seem to be marked as interlaced so madVR doesn't deinterlace it.

pankov
12th May 2012, 08:51
I got a Sony KDL-55HX755.
It is 3D capable, and i briefly tried the 3D, and quickly hated it. Was more fun in the cinema.

Other then that, i'm pretty happy with it.
Nice one, have fun with it.
It's normal to not like the 3D on size this small ... and on LCD TV. You should try it on a 100+ inch screen at a 1x width distance and of course with a bright projector not like most cinemas.
but I won't hijack the thread with this any more.

aufkrawall
12th May 2012, 09:54
Question to the IVB owners:
How does it work with 4k?
Maybe even with 60fps?

egur
12th May 2012, 12:53
egur, there's still something wrong with MPEG2 interlaced.
With EVR CP of MPC HC it still jitters but it's deinterlaced.
With madVR it doesn't jitter but the stream doesn't seem to be marked as interlaced so madVR doesn't deinterlace it.

FFDShow or LAV?
Could be that the iGPU isn't strong enough for this setup. I had many performance issues with EVR-CP.
My favorite setup is EVR + vobsub (v2.0 or newer) for subs.

Question to the IVB owners:
How does it work with 4k?
Maybe even with 60fps?
I tested it with the toughest clips - works very well.
The hardest clip was 4K@50fps with ultra bitrates (>200mbps).
The test machine was a laptop class i7 and 1333MHz ram.
4K really stretches the memory subsystem and implies that I need to export DXVA surfaces to avoid copying.
This will be the next big feature after deinterlacing is fully functional. I need to work out the details with Nev so this will go smoothly. DXVA implies some changes on how a DirectShow decoder works.

Also on the TODO list are (random ordered):
* Support MVC (H264 stereo and MVC profiles).
* Support MJPEG - MSDK 2012 added this support, usually an indication for future HW or driver support.
* Support scaling - may provide a significant performance boost for 4K clips for users with a smaller resolution display (currently 99.999% of users).

aufkrawall
12th May 2012, 13:24
FFDShow or LAV?
Could be that the iGPU isn't strong enough for this setup. I had many performance issues with EVR-CP.
My favorite setup is EVR + vobsub (v2.0 or newer) for subs.

I use a dedicated graphics card and QS via the multi monitor trick.
Since VC-1 interlaced works, I suppose it's just related to MPEG2.
Not a drama, every phone can play 1080p MPEG2 in software (even that old ones with a turntable :D ).
But it's a bug and why not fix it. :)
I use LAV but afair it happened with ffdshow too.


I tested it with the toughest clips - works very well.
The hardest clip was 4K@50fps with ultra bitrates (>200mbps).
The test machine was a laptop class i7 and 1333MHz ram.
4K really stretches the memory subsystem and implies that I need to export DXVA surfaces to avoid copying.
This will be the next big feature after deinterlacing is fully functional. I need to work out the details with Nev so this will go smoothly. DXVA implies some changes on how a DirectShow decoder works.

Nice to hear. So, if I'd play a 4k 60fps H.264 movie, it should simply work with QS via LAV?


Also on the TODO list are (random ordered):
* Support MVC (H264 stereo and MVC profiles).
* Support MJPEG - MSDK 2012 added this support, usually an indication for future HW or driver support.
* Support scaling - may provide a significant performance boost for 4K clips for users with a smaller resolution display (currently 99.999% of users).
That is a nice todo list.
Although I'd let madVR do the scaling with a Radeon HD 7770 if I created a HTPC.

Hopefully with Haswell a dedicated graphics card will be completely superfluous for HTPC.

NikosD
12th May 2012, 20:09
I tested it with the toughest clips - works very well.
The hardest clip was 4K@50fps with ultra bitrates (>200mbps).
The test machine was a laptop class i7 and 1333MHz ram.
4K really stretches the memory subsystem and implies that I need to export DXVA surfaces to avoid copying.
This will be the next big feature after deinterlacing is fully functional. I need to work out the details with Nev so this will go smoothly. DXVA implies some changes on how a DirectShow decoder works.


Eric,

could you please test two more "special" 4K clips ?

1) http://p.gokuai.com/index.php?m=Index&a=file&file=B05Yj637KS6yyu75

This is a 4096 x 3072 H.264 clip at 117,586 fps and very low bitrate 6.6Mbps.

The "special" thing about this clip is the ultra high resolution and frame rate.

2) http://115.com/file/clozg3pv#
Girls.Generation.Oh.4in1.201002.HDTV.x264.2160p.120fps.DTSES.6.1ch.part1.rar

http://115.com/file/aqajzuuw#
Girls.Generation.Oh.4in1.201002.HDTV.x264.2160p.120fps.DTSES.6.1ch.part2.rar

http://115.com/file/aqaj7hys#
Girls.Generation.Oh.4in1.201002.HDTV.x264.2160p.120fps.DTSES.6.1ch.part3.rar

The way to download them (http://we.pcinlife.com/data/attachment/forum/201201/06/012533pk55ajryualyb2z5.png)

That is a huge clip:
Girls Generation Oh 4in1- 3840x2160@120fps-Ref16-100Mbps

It has a resolution of 3840x2160 at 119,880 fps and 100Mbps bitrate.

Both were indicated by wanezhiling.

Good luck!

egur
12th May 2012, 20:22
The bitrate is not a problem for QuickSync. Clips with 300-500mbps played fine.
120fps? I don't know. Should be in DXVA territory. I'll give them a try when I'm in the lab.

wanezhiling
13th May 2012, 10:18
2) http://115.com/file/clozg3pv#
Girls.Generation.Oh.4in1.201002.HDTV.x264.2160p.120fps.DTSES.6.1ch.part1.rar

http://115.com/file/aqajzuuw#
Girls.Generation.Oh.4in1.201002.HDTV.x264.2160p.120fps.DTSES.6.1ch.part2.rar

http://115.com/file/aqaj7hys#
Girls.Generation.Oh.4in1.201002.HDTV.x264.2160p.120fps.DTSES.6.1ch.part3.rar

The way to download them (http://we.pcinlife.com/data/attachment/forum/201201/06/012533pk55ajryualyb2z5.png)

That is a huge clip:
Girls Generation Oh 4in1- 3840x2160@120fps-Ref16-100Mbps

It has a resolution of 3840x2160 at 119,880 fps and 100Mbps bitrate.

Those download pages are not available for unregistered users any more.:)

CruNcher
13th May 2012, 12:19
Those download pages are not available for unregistered users any more.:)

Though this isn't a real 4k source right but upsampled ? i mean which consumer satellite these days transmits 4k 120 fps Progressive yet, anyway this will be one of the common big problems 2x times the resolution but we hardly gained 50% reduction and the bandwith will be enourmous just for normal nice playback without 120 fps ;) ?

@egur

as nev said i tested under win7 and it was also ok according to the readme todo so as the driver was also for win7 despite the way it was categorized in the downloadcenter. The problems for now are mostly Video Related QS not working and Adobes Flash Player makes problems (shows some strange black stripes over the video surface renders sometime very weird Video results), if those are really known Win 8 optimized caused issues the driver shouldn't be allowed to install under Win 7 ;) :)
D3D 9 seems stable and slightly improved (especially latency feeling on Aero) but D3D 10 seems to suffer from Render issues http://img14.imageshack.us/img14/1372/2729renderissuewin7sb.png (could explain the much lower Game Graphic Benchmark Value in the Windows Performance Index with this Driver, compared to 2719 which doesn't show these D3D 10 Render issues i encountered, though it's hard to categorize these as they are random happening also how they look, sometimes i get flickering black stripes)

So yeah on SB Win 7 it's not overall stable, but it shows some nice improvements that i would like to see in the new Win 7 driver also (Aero subjective Performance improvement, faster mode switching times) :)

egur
13th May 2012, 13:18
The Win8 drivers are still in Beta and have an issues list a mile long (according to the release notes)...
I might be able to get hold of a Windows 8 system and start testing, but it will not be soon. I'm too busy with another project. At home I can try this driver family (15.28), but I'll wait for another release or two.

Phil_L
13th May 2012, 15:54
Hi

Hi,

I might be completely off in this matter but I can't enable QS on my i7-3770 (non K) and I can't find out why, LAV Filters lists it as "Not available" and it doesn't show up in ffdshow at all.

Motherboard: MSI Z77A-GD65
OS: Windows 7 Pro 64-bit SP1
Driver: 8.15.10.2712 (link: http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21135&ProdId=3442&lang=eng&OSVersion=Windows%207%20%2864-bit%29*&DownloadType=Drivers )
ffdshow: ffdshow_rev4441_20120430_xhmikosr_icl12.exe (I can give your build a go if you want to)
LAV Filters: 0.50.2

Does it require lucid or something?

//Danne

I've been doing a search on just this issue as have the same problem. QuickSync isn't being shown as available to any software. This is an i7 3770 (not K), Intel DZ77BH-55K motherboard and the latest 8.15.10.2712 drivers on Windows 64bit, no other graphics card.

Did you find a solution?

Edit: Solution, there is a bug with the driver installer, see here for a fix: http://communities.intel.com/message/156486#156486

Regards

Phil

egur
13th May 2012, 18:28
Hi



I've been doing a search on just this issue as have the same problem. QuickSync isn't being shown as available to any software. This is an i7 3770 (not K), Intel DZ77BH-55K motherboard and the latest 8.15.10.2712 drivers on Windows 64bit, no other graphics card.

Did you find a solution?

Edit: Solution, there is a bug with the driver installer, see here for a fix: http://communities.intel.com/message/156486#156486

Regards

Phil

I tried running the installer and didn't get any warnings or errors (SandyBridge, Win7 SP1 64 bit). Used the installer from the link you posted (Intel Download center).

Maybe the installer was updated. Can you download again and compare the files.

The config.ini file you refer to doesn't contain paths. All the files are located relative to setup.exe so it doesn't matter were you extract the files to.

Please try again, and if you get errors, let me know.

nevcairiel
13th May 2012, 19:00
Must be a bug in the 2712 installer, never had any such problems with 2696 or any previous drivers.

Phil_L
13th May 2012, 19:55
Hi

I tried running the installer and didn't get any warnings or errors (SandyBridge, Win7 SP1 64 bit). Used the installer from the link you posted (Intel Download center).

Maybe the installer was updated. Can you download again and compare the files.

The config.ini file you refer to doesn't contain paths. All the files are located relative to setup.exe so it doesn't matter were you extract the files to.

Please try again, and if you get errors, let me know.

Have a look in the route of c:\Intel there are some Log files, it is in there it mentions a problem finding the SDK, however....

I suspect if you already installed an older driver that worked you will have the SDK files already (albeit perhaps older ones), and these might be left in the correct location and are found by this installer, so as you update QuickSync still works based on previous installations of the SDK.

For me it fixed the issue, and I'd already tried several un-installs/re-installs. This was a clean install of Windows 7 on the Ivy Bridge and I'd only ever installed the most recent graphic drivers.

I'll download the one there now and check the Hash's and see if they have changed it since I had got it.

Edit: The current file for download is identical to the one I downloaded and had issues with.

Regards

Phil

diizzy
14th May 2012, 00:26
Doing a rollback to 2696 and upgrading to 2712 works, installing 2712 fresh doesn't for some reason...
//Danne

nevcairiel
14th May 2012, 06:33
You probably keep the 2696 Media SDK files then, because the 2712 installer doesn't seem to install them.
I tried it last night, and experienced the same problem with 2712, it wouldn't update the media sdk libs.

egur
14th May 2012, 09:19
I'll report the issues with the 2712 installer.

NikosD
14th May 2012, 11:39
I cut the first 30 sec of the 2160@120fps-100Mbps file and I uploaded the clip to 4 parts to rapidshare.

I tried the links and they are working OK.

I did the split with 7z

1) https://rapidshare.com/files/468168666/11.Girls_Generation_Oh_4in1-_3840x2160_120fps-Ref16-100Mbps-30sec.zip.001

2) https://rapidshare.com/files/4175403015/11.Girls_Generation_Oh_4in1-_3840x2160_120fps-Ref16-100Mbps-30sec.zip.002

3) https://rapidshare.com/files/865526583/11.Girls_Generation_Oh_4in1-_3840x2160_120fps-Ref16-100Mbps-30sec.zip.003

4) https://rapidshare.com/files/43419924/11.Girls_Generation_Oh_4in1-_3840x2160_120fps-Ref16-100Mbps-30sec.zip.004

egur
14th May 2012, 12:10
I cut the first 30 sec of the 2160@120fps-100Mbps file and I uploaded the clip to 4 parts to rapidshare.

I tried the links and they are working OK.

I did the split with 7z

1) https://rapidshare.com/files/468168666/11.Girls_Generation_Oh_4in1-_3840x2160_120fps-Ref16-100Mbps-30sec.zip.001

2) https://rapidshare.com/files/4175403015/11.Girls_Generation_Oh_4in1-_3840x2160_120fps-Ref16-100Mbps-30sec.zip.002

3) https://rapidshare.com/files/865526583/11.Girls_Generation_Oh_4in1-_3840x2160_120fps-Ref16-100Mbps-30sec.zip.003

4) https://rapidshare.com/files/43419924/11.Girls_Generation_Oh_4in1-_3840x2160_120fps-Ref16-100Mbps-30sec.zip.004

10x but the original links worked for me :) - pressed the green button.

CruNcher
14th May 2012, 17:34
back to 2712 to much issues with 2729 for now on win 7 @ least, though reverting back was not painless the 2712 installer failed to revert back only deinstalling the driver from the system (and also that caused some trouble @ the first mode change before restart Win 7 changed into some mini mirrored tiles with only 1 dialog button rendering) after restart the vga adapter installed though properly and from there 2712 installer worked normal also :)
Flash Player 11.3 is back to normal operation and the WPI also changed back to the 5.8 @ Game Graphics Result (from the 4.2 of 2729) Direct 10 rendering is back to normal as well, i wonder if it shows the same Problems on Win 8 as well and SB ;) ?

romulo
17th May 2012, 21:26
I'm Romulo, i sent a few e-mails to Eric about my tests.
I have a LG Notebook with Intel i3 2310m, 4GB, Windows 7 Home Premium x64. OS, drivers, codecs, all updated.
Actually i installed the last K-Lite Codec Pack and the last ffdshow from Eric.

DXVA for me works fine with mkv 1080p videoclips and movies. but my problem is when i run a BluRay.

When i activate the Media Player Classic internal DXVA codec, or activate ffdshow DXVA, i get this:
http://img337.imageshack.us/img337/2056/bluraycomdxva.png

When i play without activating QuickSync or anything about DXVA (via software and), using default ffdshow config:
http://img267.imageshack.us/img267/7065/bluraysemdxva.png
And with this, i get audio delay.

When i play using QuickSync options, i get this:
http://img600.imageshack.us/img600/8018/bluraycomdxvaok.png

So i noted that using the "default" DXVA option, the CPU usage is much smaller then other options. All tests are made playing the entire 0:00 -> 1:26min to see general CPU usage. BUT i get this green artifacts. Using QuickSync get less use of CPU compared with "software" playback. But a lot of compared with "default" DXVA.

I use MediaInfo to get the infos about the BluRay:
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Format settings, GOP : M=3, N=24
Codec ID : 27
Duration : 1h 24mn
Bit rate mode : Variable
Bit rate : 25.1 Mbps
Maximum bit rate : 35.0 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 29.970 fps
Standard : NTSC
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Interlaced
Scan order : Top Field First
Bits/(Pixel*Frame) : 0.404
Stream size : 14.9 GiB (82%)
Color primaries : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
Transfer characteristics : BT.709-5, BT.1361
Matrix coefficients : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177
Source : 00002.m2ts

I have a desktop with Intel E2200, intel G31 chipset and a Nvidia 7600GT (don't have DXVA hardware), and the E2200 can't play this BluRay, the two cores get 100% of usage all the time.

Hope that this can help someone, and if anyone needs some tests or infos, please tell me.

Sorry for bad english, it's not my native language.

egur
18th May 2012, 09:50
@romulo
I don't support ffdshow DXVA, issues with ffdshow DXVA should be posted on the ffdshow thread (http://forum.doom9.org/showthread.php?t=120465).
My decoder take more CPU cycles compared to pure DXVA solutions, but it allows other things to work like subtitles.
You can try LAV video decoder (http://forum.doom9.org/showthread.php?t=156191), it has all the options (SW, QS, DXVA native, DXVA copy back), it's also maintained better than ffdshow these days.
Future versions of the Intel QuickSync decoder will include DXVA output which will be integrated into LAV video decoder and probably ffdshow or ffdshow-DXVA.
The current "major" feature of my decoder is handling deinterlacing and other post processing features in HW.

Your system is on the low end spectrum of the SandyBridge product line (2 cores, 2.1GHz, 3M cache, probably slow RAM) and I only saw SYSTEM CPU utilization in your screen shots. You should report MPC-HC's utlization when EVR (not EVR-CP) is used. EVR-CP has its overhead.

romulo
18th May 2012, 14:31
@romulo
I don't support ffdshow DXVA, issues with ffdshow DXVA should be posted on the ffdshow thread (http://forum.doom9.org/showthread.php?t=120465).
My decoder take more CPU cycles compared to pure DXVA solutions, but it allows other things to work like subtitles.
You can try LAV video decoder (http://forum.doom9.org/showthread.php?t=156191), it has all the options (SW, QS, DXVA native, DXVA copy back), it's also maintained better than ffdshow these days.
Future versions of the Intel QuickSync decoder will include DXVA output which will be integrated into LAV video decoder and probably ffdshow or ffdshow-DXVA.
The current "major" feature of my decoder is handling deinterlacing and other post processing features in HW.

Your system is on the low end spectrum of the SandyBridge product line (2 cores, 2.1GHz, 3M cache, probably slow RAM) and I only saw SYSTEM CPU utilization in your screen shots. You should report MPC-HC's utlization when EVR (not EVR-CP) is used. EVR-CP has its overhead.

Hi again,

Thanks for the post. For me, isn't a big issue the fact of using a lot of CPU, because it's not commom to me to see BluRay disks. And my desktop, that i use as media center, can't play bluray (Intel Dual Core E2200). I usually play mkv on my notebook, and isn't a problem at all.

So the green screen it's because of ffdshow? I will post about it there, to see if i can help with something.

About Quicksync, for me it's good, because works with 100% of the video files i play, don't have any artifacts, neither audio delay.

I really don't know it is some config that i have to do, or is something with my notebook. My desktop is plugged on the TV with a DVI -> HDMI cable. I made some tests, putting the notebook on the same HDMI that i used with desktop, and put the same videoclip (an 1080p mkv). When i play on desktop, with MPC-HC, plays well. When i play on notebook, with MPC-HC, the movie plays like is pixeled, like a lot of "squares" on the display.

So i downloaded the latest VLC (zipped), and put the same version downloaded on both computers, and did the test again. The same movie play perfect on both computers. So i think is some codec on my notebook, or something with the hardware decoding.. do you know something about it?


Other thing that occurs to me, is when i updated the driver to 2696. The Windows Update shows me an update to video (last month. the same 2696). I installed, and it crashed with my 3D. The Directx didn't recognize the VGA, Aero stopped working, and no one D3d game works, saying that i didn't have an 3D card. I tried everything, uninstalled, installed again, installed the driver downloaded from Intel site, installed the previous driver from Intel, nothing works. This went for 3 weeks. Last week, i simply take the SAME downloaded last driver from intel (2696) that i take last month, installed it again, and it just works! Do you know some case like this? I tried to find something on google, but didn't find anything.

egur
18th May 2012, 14:48
DXVA (and to some extent QuickSync) will behave differently on different machine and different drivers. This expected as behind the scenes there's different SW (driver, DirectShow decoder, player).

Regarding Windows update - this is a known issue. The drivers there are missing key parts for video playback. I don't know whose to blame for this (Microsoft or Intel). I have reported the WU driver issues within Intel.
Since WU almost always have a slimmed down version of a driver (any driver from any company), i can only repeat my warning:
DO NOT EVER INSTALL DRIVERS OF ANY KIND from Windows update.
Desktop users can safely install drivers from Intel. Laptop users may (sometimes) need to install drivers from their laptop manufacturer.

Pat357
18th May 2012, 16:40
Eric,

could you please test two more "special" 4K clips ?

That is a huge clip:
Girls Generation Oh 4in1- 3840x2160@120fps-Ref16-100Mbps

It has a resolution of 3840x2160 at 119,880 fps and 100Mbps bitrate.
Both were indicated by wanezhiling.
Good luck!

Downloading is extremely slow : about 75 kB/s :eek: :o
Any chance to use Mediafire ?

RBG
18th May 2012, 17:09
DO NOT EVER INSTALL DRIVERS OF ANY KIND from Windows update.


I can't agree here, several times I installed drivers on an old PCs from Windows Update, and it helped me great, because there was no need for me to search them manually and clean system's autorun from their crappy control panels, also I've got ethernet controller driver installed from WU on my current system, and it works great. ;)

cengizhan
18th May 2012, 20:38
I can't agree here, several times I installed drivers on an old PCs from Windows Update, and it helped me great, because there was no need for me to search them manually and clean system's autorun from their crappy control panels, also I've got ethernet controller driver installed from WU on my current system, and it works great. ;)

I dont recommend Installing audio and graphics drivers from windows update. You will miss lots of features that are available in manufecturers official drivers. Also for some devices you may get drivers which are older than that available from manifacturer.

egur
18th May 2012, 21:48
I can't agree here, several times I installed drivers on an old PCs from Windows Update, and it helped me great, because there was no need for me to search them manually and clean system's autorun from their crappy control panels, also I've got ethernet controller driver installed from WU on my current system, and it works great. ;)

I installed a LAN network driver and the NIC stopped working at 1gb. Took a lot of work to fix this as installing another driver wasn't working...
It's not always bad to install from WU but why take the chance?

RBG
18th May 2012, 22:55
I dont recommend Installing audio and graphics drivers from windows update. You will miss lots of features that are available in manufecturers official drivers. Also for some devices you may get drivers which are older than that available from manifacturer.

I am not trying to say that you have to go and install everything from WU, it always depends on the device, from time to time it may be useful, that' all.


I installed a LAN network driver and the NIC stopped working at 1gb.

That's what I call a bad luck, something like this can happen with official driver too. For example, a year ago I installed wifi and wimax driver from intel site, turned off wimax connection and after that every time I rebooted the system I got a hang up lasting for a long period of time. During this hang up windows was trying to find my wifi ap. Also it's not like these drivers were written by Microsoft, they received it from manufacturer.

egur
19th May 2012, 23:07
Finally got HW deinterlacing working well.
I'll release a build (ffdshow) soon with auto-deinterlacing enabled - for testing purposes.
Afterwards I need to add a dialog (config) for ffdshow to enable/disable settings.

aufkrawall
20th May 2012, 11:25
I'm curious if this fixes my problems with MPEG2 interlaced. :)

romulo
21st May 2012, 01:51
DXVA (and to some extent QuickSync) will behave differently on different machine and different drivers. This expected as behind the scenes there's different SW (driver, DirectShow decoder, player).

Regarding Windows update - this is a known issue. The drivers there are missing key parts for video playback. I don't know whose to blame for this (Microsoft or Intel). I have reported the WU driver issues within Intel.
Since WU almost always have a slimmed down version of a driver (any driver from any company), i can only repeat my warning:
DO NOT EVER INSTALL DRIVERS OF ANY KIND from Windows update.
Desktop users can safely install drivers from Intel. Laptop users may (sometimes) need to install drivers from their laptop manufacturer.

One more time, thanks a lot.
I learned this by the (bad) own experience... If WU tell me that have a new driver update, i will take this only as a tip to go to the manufacturer site and download it from there.


About "behave differently on different machine and different drivers", my desktop has a 7600GT and the note the Intel HD3000, do you have any idea to what i have to do, to check what's happening within my notebook and the TV? Why using MPC-HC with the last K-Lite Mega Codec Pack + Quiqksync, outputing to a Full HD turn to big pixels on a 1080p mkv?
And using the VLC is allright?

About the EVR, how i can get the reports using it?

One more thing, i see that all here have i5 and/or i7, and a few, the news Ivy Bridge processors. If you want me to test on my SB i3, to see how this works on a "low end system".

mecedo
21st May 2012, 09:49
Hi.
Can you check this samples:
https://hotfile.com/dl/156438253/7b9b15e/Planet_Earth_From_Pole_to_Pole_1080p_sample.mkv.html
https://hotfile.com/dl/156439669/9964b03/Samsung_demo_oceanic_life.(30fps).mkv.html
If QuickSync is selected then picture freezes at the begining of the movie but sound plays ok.

egur
21st May 2012, 16:47
Hi.
Can you check this samples:
https://hotfile.com/dl/156438253/7b9b15e/Planet_Earth_From_Pole_to_Pole_1080p_sample.mkv.html
https://hotfile.com/dl/156439669/9964b03/Samsung_demo_oceanic_life.(30fps).mkv.html
If QuickSync is selected then picture freezes at the begining of the movie but sound plays ok.

These clips are part of my regression. You have a setup problem. Please specify your setup as detailed as possible so I can help.
Also try installing a new driver (2696) from Intel's web site.

cybersans
24th May 2012, 15:58
seems like my quicksync is disabled or not available with latest intel hd graphic driver. is that because of the driver? or ffdshow still not support ivy bridge processor yet? ffdshow won't decode using quicksync, just libavcodec only :(
fyi, i am using ivy bridge 3770k.
when i was using sandy bridge 2600k with older graphic driver, ffdshow can play h.264 using quicksync. after upgrading driver, it can't select QuickSync anymore.

RainyDog
24th May 2012, 19:45
seems like my quicksync is disabled or not available with latest intel hd graphic driver. is that because of the driver? or ffdshow still not support ivy bridge processor yet? ffdshow won't decode using quicksync, just libavcodec only :(
fyi, i am using ivy bridge 3770k.
when i was using sandy bridge 2600k with older graphic driver, ffdshow can play h.264 using quicksync. after upgrading driver, it can't select QuickSync anymore.

Cybersans, I'm experiencing exactly the same thing.

My set-up is a 3770k plus Asus Z77 motherboard, latest Intel HD4000/2500 GPU driver, Windows 7 x64 and MPC-HC x64. No x64 splitter, no other codecs installed except Haali and ffdshow 32bit versions for x264 encoding, and Eric's latest version of QS ffdshow x64 for decoding/playback.

But the only options I've got in configuration/codecs in ffdshow for AVC/h264, VC1 and MPEG2 are libavcodec or disabled, no Quick Sync option... DXVA works using MPC's own filters or ffdshow's own DXVA, however.

Hoping Eric might have an idea?

cybersans
25th May 2012, 01:31
i think the ffdshow with quicksync decoder only works with hd graphic inside sandy bridge. it can't access the hardware on ivy bridge. lets hope that developer can work on it. thanks. :)

nevcairiel
25th May 2012, 07:23
QuickSync works just fine with Ivy Bridge.

As always, make sure to install the latest driver from Intel directly, NOT through Windows Update.
Additionally, the 2712 driver had an issue with its installer and was since pulled from the download page, i recommend getting 2696, thats the one i use and it works just fine both on my SNB system as well as on my IVB system.

This one:
http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&ProdId=3498&DwnldID=21230&lang=enu

RainyDog
25th May 2012, 07:42
QuickSync works just fine with Ivy Bridge.

As always, make sure to install the latest driver from Intel directly, NOT through Windows Update.
Additionally, the 2712 driver had an issue with its installer and was since pulled from the download page, i recommend getting 2696, thats the one i use and it works just fine both on my SNB system as well as on my IVB system.

This one:
http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&ProdId=3498&DwnldID=21230&lang=enu

I am using 2696, but it is from Windows Update so that could be the issue. That said, it was exactly the same size download as the one from Intel's own site and has the fully featured Intel control panel. So I'm not sure it'll make any difference, but I'll try replacing with the driver direct from Intel anyway and see if that solves.

Would you recommend uninstalling the WU driver first?

egur
25th May 2012, 07:55
Users with either SandyBridge or IvyBridge:
Please use driver 2696 from Intel's website or your OEM web site.
2712, as previously reported, is broken.
Windows Update drivers are broken too.

mecedo
25th May 2012, 09:32
My setup:
- Asus P8H61-M PRO R3.0 + Pentium G630T
- Windows 7 SP1 32bit
- Intel HDGraphics 8.15.10.2696
- Realtek Audio Driver V6.0.1.6526 WHQL
- Intel Chipset Driver V9.3.0.1019 WHQL
- LAVFilters 0.50.2
- Haali Media Splitter 1.11.288.0
- Reclock 1.8.7.9
- PotPlayer 1.5.33425 beta
- MadVR 0.82.5

I've used this tutorial to config PotPlayer:
http://imouto.my/configuring-potplayer-for-gpu-accelerated-video-playback-with-dxva-or-cuda-and-also-high-performance-software-decoding
But problem exists on MediaPlayer Classic Home Cinema too. I've tried MadVR and EVR Custom pres. FFDShowAudio and Lav Audio. Lav splitter and Haali splitter. With ReClock or without.
I can't fix playing these movies. I found that if I try randomly to fast-forward/rewind movie a few times then suddenly movie starts play.

cybersans
25th May 2012, 10:31
Users with either SandyBridge or IvyBridge:
Please use driver 2696 from Intel's website or your OEM web site.
2712, as previously reported, is broken.
Windows Update drivers are broken too.
egur: i am using 2696 right now. try previous version too. ffdshow still not detect quicksync, only disabled & libavcodec are available.

egur
25th May 2012, 11:33
My setup:
- Asus P8H61-M PRO R3.0 + Pentium G630T
- Windows 7 SP1 32bit
- Intel HDGraphics 8.15.10.2696
- Realtek Audio Driver V6.0.1.6526 WHQL
- Intel Chipset Driver V9.3.0.1019 WHQL
- LAVFilters 0.50.2
- Haali Media Splitter 1.11.288.0
- Reclock 1.8.7.9
- PotPlayer 1.5.33425 beta
- MadVR 0.82.5

I've used this tutorial to config PotPlayer:
http://imouto.my/configuring-potplayer-for-gpu-accelerated-video-playback-with-dxva-or-cuda-and-also-high-performance-software-decoding
But problem exists on MediaPlayer Classic Home Cinema too. I've tried MadVR and EVR Custom pres. FFDShowAudio and Lav Audio. Lav splitter and Haali splitter. With ReClock or without.
I can't fix playing these movies. I found that if I try randomly to fast-forward/rewind movie a few times then suddenly movie starts play.

Maybe a splitter issue, try using "LAV Splitter Source" in MPC-HC. If that fixes things, I'll try looking at the clips with "Async File Source" as source.

rumblpak
25th May 2012, 11:35
seems like my quicksync is disabled or not available with latest intel hd graphic driver. is that because of the driver? or ffdshow still not support ivy bridge processor yet? ffdshow won't decode using quicksync, just libavcodec only :(
fyi, i am using ivy bridge 3770k.
when i was using sandy bridge 2600k with older graphic driver, ffdshow can play h.264 using quicksync. after upgrading driver, it can't select QuickSync anymore.

I'm having a similar problem but mine I know is due to the fact that virtu mvp is broken on 600 series nvidia chipsets which is required for quicksync. If you set mvp to run both mpc-hc and rundll32 (for LAV) in i-mode it'll work just fine. I just wish MVP would get updated.

Thanks for all the great work guys.

nevcairiel
25th May 2012, 11:57
Maybe a splitter issue, try using "LAV Splitter Source" in MPC-HC. If that fixes things, I'll try looking at the clips with "Async File Source" as source.

The splitter should make zero difference, at least when using LAV decoder.

egur
25th May 2012, 13:16
Version 0.32 beta is out with the following changes:
* Added HW deinterlacing - can't be disabled in this build. Works on content marked as interlaced. If this version give you problems, please report and revert to the previous version.
* Added support for HW Detail and Denoise filters. Disabled in this build. Need ffdshow GUI for these features.
* FFDShow rev4453

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)

nevcairiel
25th May 2012, 15:17
I assume with "can't be disabled" you mean in ffdshow, but with the API i can disable it?
I didn't look at the config API you provided yet, but how about forcing deinterlacing of all frames, is it possible, or if not yet, planned?

egur
25th May 2012, 16:18
I assume with "can't be disabled" you mean in ffdshow, but with the API i can disable it?
I didn't look at the config API you provided yet, but how about forcing deinterlacing of all frames, is it possible, or if not yet, planned?

Correct, can't be disabled in ffdshow (default settings of QS decoder), you can disable in LAV via config.
I didn't implement forced DI. Simple feature, I'll add it soon.
Current mode of operation for DI:
Interlaced segments - apply DI.
Telecined (3:2) segments - apply soft telecine. Time stamps are changed only if config.bTimeStampCorrection = true. Frame rate will dynamically change to 23.976.
A video clip can have several segments, some interlaced, some 3:2, the DI will work just on the purely interlaced sources.
Couldn't apply DI to 3:2 frames, maybe an MSDK limitation. WIP.
Some things like 2:2 film mode detection do not work as planned, deinterlacer works instead.
If all VPP features are disabled or unused the VPP pipeline is disabled and not used so progressive clips do not suffer any performance hit (in theory anyway :) ).

cybersans
25th May 2012, 16:18
dear guys.

my problem has been solved. intel hd graphics driver installer is not installing mediasdk because some string inside its Setup.if2
just remove some string and viola! ffdshow can decode h.264 using QuickSync \O/

RainyDog
25th May 2012, 16:55
dear guys.

my problem has been solved. intel hd graphics driver installer is not installing mediasdk because some string inside its Setup.if2
just remove some string and viola! ffdshow can decode h.264 using QuickSync \O/

Cybersans, glad you've sorted it.

Please can you confirm which string you have to remove in the Setup.if2 file?

Cheers.

cybersans
25th May 2012, 17:17
i am using windows server 2008 r2. according to their readme.txt the driver will install on server os. unfortunately there are some string inside setup.if2 that caused mediasdk won't install:

AND NOT IsWinN
AND NOT IsOS(WIN2008,WIN2008_MAXSP)
AND NOT IsOS(WIN2008_R2,WIN2008_R2_MAXSP)

just remove that string, or put ; in front of it. then mediasdk will be install in program files\common files.
problem solved. :sly:

egur
25th May 2012, 19:17
i am using windows server 2008 r2. according to their readme.txt the driver will install on server os. unfortunately there are some string inside setup.if2 that caused mediasdk won't install:

AND NOT IsWinN
AND NOT IsOS(WIN2008,WIN2008_MAXSP)
AND NOT IsOS(WIN2008_R2,WIN2008_R2_MAXSP)

just remove that string, or put ; in front of it. then mediasdk will be install in program files\common files.
problem solved. :sly:

You didn't report that it was Win 2008. I'm not sure everything is validated for this OS, hence the setup check.
Let me know if QS is working for you.
BTW, which driver and where did you get it?

RainyDog
25th May 2012, 22:03
Can confirm I've got Quick Sync working on my set-up now as well.

I didn't touch the setup.if2 file as cybersans method obviously wasn't relevant to my OS which is Windows 7 x64.

Basically, all I did was uninstall the windows update driver then install the same numbered driver but direct from Intel's site.

Quick Sync option was there as soon as I installed Eric's latest ffdshow.

So, yeah... I should've just listened to Eric all along about windows update drivers :)

mecedo
25th May 2012, 23:02
Maybe a splitter issue, try using "LAV Splitter Source" in MPC-HC. If that fixes things, I'll try looking at the clips with "Async File Source" as source.

I've tried different splitters but it didn't help.
But after installing rev4453_20120521 movies play successfully:)

cybersans
26th May 2012, 03:27
rainydog: right. never use windowsupdate driver installation. they just use basic driver without any custom settings and add-ons ;)

egur: i forgot about that.
QS works well for all mp4, mkv movie i just play, accept 1 mkv files seems like the video is fast than sound. when i check the movie fps @ ffdshow video vonfiguration/info & cpu, it says 59.99 :eek:
i think that might be a problem with that video and not decoder itself since others video just fine.
the funny things is, if i change to libavcodec for h.264, the video become slower/stutter than audio :confused: movie fps seems like around 29.99, drop to 12, and then 15, back to 29 and so on.

pulbitz
26th May 2012, 04:44
strange...

I test MPC-HC, KMPlayer and PotPlayer with LAV splitter 32bit.

Only ffdshow QuickSync like yadif output mode 25p/30p.
Other(LAV QuickSync, PotPlayer QuickSync, DXVA and libavcodec) like yadif output mode 50p/60p.


I tested new 0.32 beta.
movies fps is double frame rate.
but motion is 25p/30p. (not doubling frame rate)

moviefps.png:http://imageupload.org/thumb/thumb_226569.png (http://imageupload.org/en/file/226569/moviefps.png.html)

sample files
20090725.Music_Core.IU.You_know.MPEG2.ts
http://www.sendspace.com/file/qg251f
premiere-paff.AVC.ts
http://www.sendspace.com/file/pvw8xb

egur
26th May 2012, 12:52
...
QS works well for all mp4, mkv movie i just play, accept 1 mkv files seems like the video is fast than sound. when i check the movie fps @ ffdshow video vonfiguration/info & cpu, it says 59.99 :eek:
i think that might be a problem with that video and not decoder itself since others video just fine.
the funny things is, if i change to libavcodec for h.264, the video become slower/stutter than audio :confused: movie fps seems like around 29.99, drop to 12, and then 15, back to 29 and so on.
Please share your faulty clip or part of it.

I tested new 0.32 beta.
movies fps is double frame rate.
but motion is 25p/30p. (not doubling frame rate)

moviefps.png:http://imageupload.org/thumb/thumb_226569.png (http://imageupload.org/en/file/226569/moviefps.png.html)

sample files
20090725.Music_Core.IU.You_know.MPEG2.ts
http://www.sendspace.com/file/qg251f
premiere-paff.AVC.ts
http://www.sendspace.com/file/pvw8xb
I made sure that the output is truly 60p on true 60i content - each of the 60 frames is different. I'll check your clips and report back.

Update
The problem is my limited testing. The new frames do have time stamps. This is fine with EVR (on these clips too) but EVR-CP doesn't use those frames and displays 30p.
I'll add time stamps to the missing frames. I hope this doesn't complicate LAV's time stamp correction...
I'll also add a chicken bit to disable the time stamp interpolation.

egur
26th May 2012, 14:31
I'm wondering what's the "forced DI" behavior should be:
* On progressive source -> mark as tff/bff according to config and send to DI. Output normal/double rate according to config.
* On interlaced source - do not override tff/bff flags. Normal DI operation.
* On 3:2 content - perform soft telecine.Output 23.976p.

Anyone has suggestions/comments on this behavior?
I'm not using this feature myself so I'm not aware of the use cases...

Update:
By mistake, the detail filter is working at 50% in the last ffdshow build (only the 0.32 build).

nevcairiel
26th May 2012, 15:07
Soft Telecine should also be DI'ed when force is on, although only single rate.

cybersans
26th May 2012, 15:37
EDITED: the video has been uploaded at my latest posts.

egur
26th May 2012, 16:20
Soft Telecine should also be DI'ed when force is on, although only single rate.

Do you mean output 29.97fps for 3:2 content?
How is that possible when there are only ~24 frames per second?
Why not repeat behavior for double rate?
What's he use case? Where does this happen?

cybersans
26th May 2012, 16:53
guys,

here is the mkv video i told you about:
https://rapidshare.com/files/1911724036/Metallica_-_Rock.in.Rio.2011_00h18m34s-00h19m38s_.mkv

using latest ffdshow, decode using quicksync video become faster than sound.
decode using libavcodec its stutter.

nevcairiel
26th May 2012, 17:10
Do you mean output 29.97fps for 3:2 content?


Why would the number of frames increase just because i deinterlace them? Just send the 24 frames through the deinterlacer, so that a wrong encoded movie will get its interlacing artifacts removed.
The fps or any other attributes should be irrelevant. If you deinterlace, you either produce one frame per field (double rate), or one frame per two fields (single rate), either doubling the fps, or well, not. Which FPS that is, is irrelevant.

egur
26th May 2012, 17:26
guys,

here is the mkv video i told you about:
https://rapidshare.com/files/1911724036/Metallica_-_Rock.in.Rio.2011_00h18m34s-00h19m38s_.mkv

using latest ffdshow, decode using quicksync video become faster than sound.
decode using libavcodec its stutter.
I'll take a look.

Why would the number of frames increase just because i deinterlace them? Just send the 24 frames through the deinterlacer, so that a wrong encoded movie will get its interlacing artifacts removed.
The fps or any other attributes should be irrelevant. If you deinterlace, you either produce one frame per field (double rate), or one frame per two fields (single rate), either doubling the fps, or well, not. Which FPS that is, is irrelevant.

No problem, just wanted to get his right.

egur
26th May 2012, 22:24
@cybersans,
This clip uses an H264 feature which I didn't encounter yet - frame doubling.
ffdshow's telecine manager (with libavcodec as decoder) thinks it's 3:2 so it performs soft inverse telecine (to 23.976fps) wrongly.
My decoder improperly treats this flag causing the DI to fail and output 29.97fps. I didn't see any playback problem or sync issues when using EVR as render under ZoomPlayer.
The flags that come out out my decoder mark this clip as interlaced and left to the mercy of the renderer's deinterlacer.

The clip itself is marked as 59.94fps with real 29.97fps and every frame doubled.
I'll have a fix in a few days.

cybersans
27th May 2012, 02:05
egur: thank you for your response. i think like that too, because previous version ffdshow can play that clip flawlessly.
will wait for your latest release.

nevcairiel
27th May 2012, 08:47
No problem, just wanted to get his right.

Looks good so far.
One option i'm still missing right now is an option to override the field order for all content, not just when "force" is on. Sometimes the flags in the files are wrong, and an option to override that is a quick fix.

Oh, and for the forced mode i would prefer it to only overwrite the tff/bff flags if none was deteremined from the bitstream, so that i can activate force on interlaced material without the flags being overwritten.

Aaand another problem. It seems to crash when i try to play an interlaced file with DI (and all other VPP) turned off. Progressive seems fine.

egur
27th May 2012, 12:56
Looks good so far.
One option i'm still missing right now is an option to override the field order for all content, not just when "force" is on. Sometimes the flags in the files are wrong, and an option to override that is a quick fix.

Oh, and for the forced mode i would prefer it to only overwrite the tff/bff flags if none was deteremined from the bitstream, so that i can activate force on interlaced material without the flags being overwritten.

Aaand another problem. It seems to crash when i try to play an interlaced file with DI (and all other VPP) turned off. Progressive seems fine.
I can implement the features.
I can't reproduce a crash, please detail the setup used.

nevcairiel
27th May 2012, 14:43
I can't reproduce a crash, please detail the setup used.

Debug build of LAV here:
http://files.1f0.de/lavf/LAVFilters-QSDI-debug.zip

Options are tied into the QS settings, if i set deinterlacing to none/weave, it just crashes.

Sample used:
http://files.1f0.de/samples/Test_clip_avc.1080i59.94.ac3.5.1.mkv

It only crash if:
- bEnableVideoProcessing is 1
- bVppEnableDeinterlacing is 0
- Detail/Noise options are 0

If i set bEnableVideoProcessing to 0, or activate one of the processor options, it works.

egur
28th May 2012, 12:10
Debug build of LAV here:
http://files.1f0.de/lavf/LAVFilters-QSDI-debug.zip

Options are tied into the QS settings, if i set deinterlacing to none/weave, it just crashes.

Sample used:
http://files.1f0.de/samples/Test_clip_avc.1080i59.94.ac3.5.1.mkv

It only crash if:
- bEnableVideoProcessing is 1
- bVppEnableDeinterlacing is 0
- Detail/Noise options are 0

If i set bEnableVideoProcessing to 0, or activate one of the processor options, it works.

I'll take a look tonight.

Regarding overriding TFF/BFF flags, it's strange that you don't want to override them in forced mode if they exist - they may be wrong - isn't this the purpose of this feature?
I can do this either way (always override and override when missing), your call.

nevcairiel
28th May 2012, 12:17
Regarding overriding TFF/BFF flags, it's strange that you don't want to override them in forced mode if they exist - they may be wrong - isn't this the purpose of this feature?
I can do this either way (always override and override when missing), your call.

"Force" mode is mostly to send progressive frames through DI, in case someone encoded interlaced frames as progressive (it happens).
On the other hand i don't want to influence the deinterlacing of an interlaced file even when "Force" is active.

I just want those two options to be separate, so they can be used independently. Force DI, and Force a specific field order.
A user might activate "Force", but still leave field order at "Auto". He may then play a normal interlaced file, and he would not want the field order flags overriden. Especially in broadcasts, it also happens that half of the frames are marked progressive, the other half interlaced, yet all need to be deinterlaced. In this situation, i would want to obey the flags from the interlaced frames, and only set the fallback flag for the progressive frames that don't have any.

So to conclude, you really need 3 options:

- Force DI
- Field Order
- Force Field Order

Field Order would then only be used when its not available otherwise (ie. on progressive frames), or when force field order is true.

egur
28th May 2012, 12:38
"Force" mode is mostly to send progressive frames through DI, in case someone encoded interlaced frames as progressive (it happens).
On the other hand i don't want to influence the deinterlacing of an interlaced file even when "Force" is active.

I just want those two options to be separate, so they can be used independently. Force DI, and Force a specific field order.
A user might activate "Force", but still leave field order at "Auto". He may then play a normal interlaced file, and he would not want the field order flags overriden. Especially in broadcasts, it also happens that half of the frames are marked progressive, the other half interlaced, yet all need to be deinterlaced. In this situation, i would want to obey the flags from the interlaced frames, and only set the fallback flag for the progressive frames that don't have any.

So to conclude, you really need 3 options:

- Force DI
- Field Order
- Force Field Order

Field Order would then only be used when its not available otherwise (ie. on progressive frames), or when force field order is true.

OK.
BTW, aren't the DI options in LAV mutually exclusive: Force DI/Aggressive DI/force progressive?

nevcairiel
28th May 2012, 12:56
BTW, aren't the DI options in LAV mutually exclusive: Force DI/Aggressive DI/force progressive?

Yes they are, but that says nothing about field order :)

All these options need to be able to be on all the time (especially aggressive is active for quite some people), without breaking decoding of properly flagged interlaced material, which is why i want "Forced DI" to be separate from the "Force Field Order" flag.

egur
29th May 2012, 08:09
Committed r57 to SVN:
* Fixed several issues/bugs with deinterlacing - also checked with LAV debug posted earlier.
* Added support for H264 frame doubling/tripling flags.
* Added support for forcing a field order (bForceFieldOrder) - independent of actual deinterlacing. Options are auto (do nothing), bff, tff via new config parameter (eFieldOrder).
* Forced DI behavior - convert progressive and 3:2 frames to interlaced using either the first frame's interlaced flag (if not progressive) or the eFieldOrder config parameter. Setting eFieldOrder to auto will cause forced DI to use TFF.

Note - field order is only visible in true interlaced content (e.g. a frame consists of 2 field from different times) and the output is full rate (50p, 60p).

DI full rate operation is capped at 60i.
Forcing DI on 24p will result in 48p. There's no check for input frame rate other than it's equal or smaller than 30fps.

Performed limited testing, if all goes well I'll build a new test version (0.33).

egur
29th May 2012, 09:15
Version 0.33 beta is out with the following changes:
* Support for H264 frame doubling/tripling flags.
* Added forced DI mode - currently disabled.
* Added forced filter order - currently disabled.
* FFDShow rev4455

I'm working on adding GUI to ffdshow and then all new features will be enabled.

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)

aufkrawall
29th May 2012, 12:35
Could you please also compile an x32 build? :)

egur
29th May 2012, 13:13
Could you please also compile an x32 build? :)

Forgot to upload, it's there now

cybersans
29th May 2012, 15:29
egur: download and install ffdshow_rev4455_20120529_egur.exe
my mkv video (like the sample i just gave before) still playing fast than audio when using intel quicksync decoder

but it works, no delay like previous version when change decoder to libavcodec.

maybe intel mediasdk caused that? because last time when i was using sandy bridge hd 3000 with old graphic driver (v2476), i can watch that video flawlessly.
with ivy bridge and driver v2696, it happen like that :eek:

egur
29th May 2012, 16:31
egur: download and install ffdshow_rev4455_20120529_egur.exe
my mkv video (like the sample i just gave before) still playing fast than audio when using intel quicksync decoder

but it works, no delay like previous version when change decoder to libavcodec.

maybe intel mediasdk caused that? because last time when i was using sandy bridge hd 3000 with old graphic driver (v2476), i can watch that video flawlessly.
with ivy bridge and driver v2696, it happen like that :eek:

The Metallica clips plays fine on my SandyBridge system, I'll check on an IvyBridge in a few days, my test system is under installation. It could be a driver problem which was fixed since I use a newer driver.

cybersans
29th May 2012, 17:23
The Metallica clips plays fine on my SandyBridge system, I'll check on an IvyBridge in a few days, my test system is under installation. It could be a driver problem which was fixed since I use a newer driver.

like i said before, it was play fine in my previous sandy bridge too.
i'll try to downgrade my driver to 2618 or 2598 to see any changes.

cybersans
29th May 2012, 18:08
right. intel driver v2696 caused that problem.
downgraded to v2618. video play fine.
testing with v2598, also fine. so i stick with v2618.

egur
29th May 2012, 18:31
@cybersans
Can you summarize your system setup including rendere, player, OS, drivers, use of external GPU, Lucid Virtu so I can try to reproduce.
Please don't skip any details.
Also 2618 is quite old, try 2656.

nevcairiel
29th May 2012, 19:28
2696 seems to cause quite some regressions with timings.
My problem with timestamps that get modified for no reason also only started happening in 2696 (i want them untouched, not modified at all) (only when fps in the bitstream is zero, eric might remember the report that we worked around now)

egur
29th May 2012, 21:10
Version 0.33.1 beta is out with the following changes:
* Support for H264 frame doubling/tripling flags.
* Added forced DI mode.
* Added forced filter order
* FFDShow rev4457 with new QuickSync config!

This version has the same QS decoder with upgraded ffdshow.
Control most QS decoder options, including video post processing via a new ffdshow configuration dialog. Look for a new entry just below "decoder options".
Visit the configuration once for your new settings to stick.

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)

aufkrawall
29th May 2012, 21:10
Forgot to upload, it's there now
Thanks. I don't want to really test without madVR, who knows if it's not a renderer bug.

Sorry for being OT now that deinterlacing is the topic, but do you think there could be acceleration for 4:2:2 or even 4:4:4 in future?

egur
29th May 2012, 21:22
Thanks. I don't want to really test without madVR, who knows if it's not a renderer bug.

Sorry for being OT now that deinterlacing is the topic, but do you think there could be acceleration for 4:2:2 or even 4:4:4 in future?

MadVR uses the GPU and might be too much for it. Try EVR and see if the stutters improve. Disable QS DI for this clip.
I'm not aware of plans to support 4:2:2 or 4:4:4 - I just don't know. Luckily these are rare.

aufkrawall
29th May 2012, 21:28
MadVR uses the GPU and might be too much for it. Try EVR and see if the stutters improve. Disable QS DI for this clip.

I use dedicated GPU for madVR.


I'm not aware of plans to support 4:2:2 or 4:4:4 - I just don't know. Luckily these are rare.
I'd say unfortunately, not luckily. :(

egur
29th May 2012, 22:31
I'd say unfortunately, not luckily. :(
I mean luckily.
The human eye is less sensitive to chroma changes than it is to luma changes.
Given an arbitrary bitrate, it would be better spent on higher resolution and/or more bits compressing the 4:2:0 frames than compressing 2-4 times more chroma data.

4:2:2 is usually used as an intermediate almost lossless fashion for video editing using ultra high bitrates. Keeping this much video data is problematic and has very little benefits.
It might make sense for DVDs as their resolution is small, but for HD it makes little sense.
Better quality can be achieved (better) by:
* Higher resolution - up to a point
* More bits/pixel - look better on high brightness/contrast displays, less banding.
* Wide gamut (xvYCC) - more accurate colors, not suitable for Windows based systems as all pixels are converted to RGB and the extra colors are gone.
* No interlacing
* High frame rate (60p).

aufkrawall
29th May 2012, 23:03
I have to disagree, at least partially. ;)
4:4:4 can have huge image quality advantages over CSS, here I made a comparison:
http://forum.doom9.org/showpost.php?p=1560156&postcount=7
The picture with CSS looks partially totally unsharp, many details are killed.

Real world films may not be affected that much, especially since it seems to be modern to wash out the colors with stupid filters.
Who really likes this?
It's not like it was behind the Iron Curtain, where color was too expensive *lol*. :scared:
But especially red tones seem to be degraded by CSS.

Furthermore, with 10bit x264, 1080p60 I444 can be achieved with pretty common bitrates.
35mbit may be enough, I'll try it out. :)

cybersans
30th May 2012, 02:12
@cybersans
Can you summarize your system setup including rendere, player, OS, drivers, use of external GPU, Lucid Virtu so I can try to reproduce.
Please don't skip any details.
Also 2618 is quite old, try 2656.

1. intel core i7-3770k using IGP HD 4000 + v2618 driver.
fyi, 2656 caused "COM Surrogate has stopped working" when you viewing image (jpg/bmp/png etc) with windows image viewer. you can do a search using a keyword "com surrogate intel driver 2656" and many people experienced the same problem too :D
so v2618 is the previous version which i found stable with my system

2. windows media player 12
3. windows server 2008 r2 converted to "workstation look alike"
4. your latest ffdshow build.
5. just IGP as primary GPU, lucid virtu disabled and no pci-e GPU.

egur
30th May 2012, 13:23
Nev,
The time stamp problem doesn't appear in driver 2761 anymore.

Also found some small issues, so I'll release another version very soon.

nevcairiel
30th May 2012, 13:35
Nev,
The time stamp problem doesn't appear in driver 2761 anymore.


Great.
You wouldn't happen to know when that one will be available to the public? (or at least to me :D)

hajj_3
30th May 2012, 14:16
will there be any new drivers soon for core i5 1st gen laptop processor as the latest is v2622.

egur
30th May 2012, 14:57
I don't know driver release dates, I'm not part of the graphics group. Sorry.
I've recently asked internally to share the production drivers that are available to OEMs and several ISVs, I'll update if there's any news in front.

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.

RBG
6th June 2012, 13:45
egur
Thanks for the clarification.

nevcairiel
O.K. so in both cases frames are copied twice, then why there is so much difference in resource consumption between QS and CUVID? This question bugs me for a very long period of time, can you explain it in detail.

Superb
6th June 2012, 14:14
I find it funny that people wonder "where those 10-20MB of RAM went?" when today's computers come w/ 4GB+ ram...
You guys do realize w/ are talking about two completely different pieces of code, yeah? Even if they are meant to produce the exact same output in some cases.

ionutm80
6th June 2012, 14:48
I find it funny that people wonder "where those 10-20MB of RAM went?" when today's computers come w/ 4GB+ ram...
You guys do realize w/ are talking about two completely different pieces of code, yeah? Even if they are meant to produce the exact same output in some cases.

100% agree with you, I think already the simple fact that we can properly use QS to decode with little CPU load is a big achievement vs. usage of pure DXVA!!!

egur
6th June 2012, 15:29
Sometimes more memory is used to enhance performance (caching), I probably use more threads and more D3D surfaces.

RBG
6th June 2012, 16:12
Superb
If you have nothing useful to say, say nothing... First of all, my question was about cpu load, second, it's not like I am complaining about it, I just want to know all cons and pros of both technologies, and find out if this kind of behavior is normal for hybrid setup.

egur
Personally I don't care much about memory usage, I've got 16 Gb of ram on my PC and soon I'll extend it to 32 Gb, but the difference in CPU load looks weird to me.
For example below are screnshots of CPU(i7-2600) load playing back a 60 fps clip, left one is QS, right one is CUVID. As you can see QS eats about twice as much CPU resources as CUVID.
http://img844.imageshack.us/img844/10/57974153.pnghttp://img827.imageshack.us/img827/6470/cuvid.png

egur
6th June 2012, 16:23
What about CPU frequency in both cases (CoreTemp or CPU-Z)?
Try using ffdshow and disable Multithreading (from ffdshow config), does that help?
CUVID usually takes much more power which is important for laptop owners. I don't know how much their new GPUs take.
CUVID also introduces less traffic on the memory controllers - decoder is a PCIe device, so all decoder traffic is on Nvidia's vRAM.

RBG
6th June 2012, 17:30
What about CPU frequency in both cases (CoreTemp or CPU-Z)?

I have already checked it, multiplier is 16 for both cases resulting in 1596.4 Mhz.

Try using ffdshow and disable Multithreading (from ffdshow config), does that help?

FFdshow x86 with disabled multithreading showed slightly worse results than LAV x86, with multithreading enabled cpu load was about 6.22%. FFdshow x64 with multithreading disabled showed the best result - about 4.2%, LAV x64 cpu load is the same as LAV x86.

markanini
7th June 2012, 14:48
Anyone have a clue how to keep the HD3000 core clock 1150 MHz and not scale down to 850 MHz?

egur
7th June 2012, 15:30
Anyone have a clue how to keep the HD3000 core clock 1150 MHz and not scale down to 850 MHz?

No, and its not a smart thing to do. A constantly high GPU clock will lower the power budget of the CPU, resulting in performance degradation for CPU intensive tasks.

markanini
7th June 2012, 18:16
No, and its not a smart thing to do. A constantly high GPU clock will lower the power budget of the CPU, resulting in performance degradation for CPU intensive tasks.
Couldnt I just raise power limits in BIOS?
Just wanted to try it out and see if reduces stuttering on video playback.

ipanema
7th June 2012, 19:47
Eric, I'm not familiar with the architecture of ffdshow, but am I right in assuming that qsdecoder is written to work specifically in ffdshow (not as a general DirectShow filter)?

In the first post of this thread you say that qsdecoder was based on the DirectShow decoder samples in the Intel SDK, and you fixed some bugs that were present. Have you fed these fixes back into the DirectShow decoder filters that ship with the SDK?

egur
7th June 2012, 21:16
Couldnt I just raise power limits in BIOS?
Just wanted to try it out and see if reduces stuttering on video playback.

Where do you get stuttering?

markanini
7th June 2012, 23:59
Where do you get stuttering?

Flash video, even in fullscreen mode motion jerks every 5-10 secs, GPU-Z reports 850 MHz in these situations.

rack04
8th June 2012, 01:45
My work laptop was recently downgraded from Window 7 to Windows XP due to a compatibility problem with a program we run. The laptop is a Dell Latitude E6420 with Intel HD Graphics 2000. I was able to use LAV Filters with Qsync using drivers 15.26.8.64.2696 which is the latest on Intel website. Now that I have Windows XP the latest drivers on Intel website is 14.51.4.5407 and I can't get LAV Filters to recognize Qsync in the video tab. Is this due to the driver being old or is there something else that I'm missing?

wanezhiling
8th June 2012, 02:26
http://forum.doom9.org/showpost.php?p=1523738&postcount=1

Requirements:
3. Windows 7 (32/64) or newer OS. Should work in Vista but I can't test this.

Nezaara
8th June 2012, 03:39
The quicksync decoder doesn't work on my setup. I'm using the latest LAV filters in the latest Media Player Classic on Windows 7 Home Premium X64. Both the filters and MPC are running the X64 versions. I don't have any graphics cards installed. When I select quicksync, the video won't play. This doesn't cause the player to crash or anything dramatic like that, it just sits at playing 00:00 forever. For some reason, DXVA works, though on high-intensity X264 content it pixilates badly on my display. I've upgraded to the latest drivers from Intel (or I did a couple of weeks ago--I can't now because intel.com tells me access is denied, for reasons that escape me.) My setup is as follows:

Processor: Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz
Motherboard Model: Intel DZ68DB__
Intel(R) HD Graphics
Total available graphics memory 1696 MB
Dedicated graphics memory 64 MB
Dedicated system memory 0 MB
Shared system memory 1632 MB
Display adapter driver version 8.15.10.2712
DirectX version DirectX 10

I've got 4GBB of DDR3 RAM, if that makes any difference. I'm streaming video through the HDMI port to a VSX-521K home theater receiver that then sends the signal to a digital display in the living room. I show the videos in fullscreen using direct 3D accelleration and the EVR custom pre. I'm assuming I'm doing something wrong and that it isn't a bug, as the last version of LAV I tried didn't work either. Any advice would be very much appreciated as I'm doing a presentation on this stuff tomorrow and it'd be kind of embarrassing to talk about how great quicksync is, then watch it break in front of everybody.

egur
8th June 2012, 07:14
The quicksync decoder doesn't work on my setup. I'm using the latest LAV filters in the latest Media Player Classic on Windows 7 Home Premium X64. Both the filters and MPC are running the X64 versions. I don't have any graphics cards installed. When I select quicksync, the video won't play. This doesn't cause the player to crash or anything dramatic like that, it just sits at playing 00:00 forever. For some reason, DXVA works, though on high-intensity X264 content it pixilates badly on my display. I've upgraded to the latest drivers from Intel (or I did a couple of weeks ago--I can't now because intel.com tells me access is denied, for reasons that escape me.) My setup is as follows:

Processor: Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz
Motherboard Model: Intel DZ68DB__
Intel(R) HD Graphics
Total available graphics memory 1696 MB
Dedicated graphics memory 64 MB
Dedicated system memory 0 MB
Shared system memory 1632 MB
Display adapter driver version 8.15.10.2712
DirectX version DirectX 10

I've got 4GBB of DDR3 RAM, if that makes any difference. I'm streaming video through the HDMI port to a VSX-521K home theater receiver that then sends the signal to a digital display in the living room. I show the videos in fullscreen using direct 3D accelleration and the EVR custom pre. I'm assuming I'm doing something wrong and that it isn't a bug, as the last version of LAV I tried didn't work either. Any advice would be very much appreciated as I'm doing a presentation on this stuff tomorrow and it'd be kind of embarrassing to talk about how great quicksync is, then watch it break in front of everybody.

The 2712 driver installer had a bug, it didn't install a library used by my decoder (Intel Media SDK DLL). This driver was recalled as a result and the newest is 2696. The 2712 also had other issues with respect to video, even if the installer was fixed so install 2696 (or newest if one is available) from Intel's download center and tell me if this solved your issues.

ionutm80
8th June 2012, 07:39
Hello Egur,

I've finally manged to test 0.35 beta and I can confirm that it does work with some minor glitches:
1. The bug disappeared only with LAV splitter enabled for mkvs, with Haali is still visible (not as bad as before but still there) however I've seen on the 1st page that you also recomend LAV.
2. In MPC-HC x64 everything is perfect now.
3. In WMC 7 only one of the videos has a very slight delay (a ripped copy of one of my Blu-Rays: Avatar) but nothing to bother me as it did before.

Out of the record: does it happen for you to know why the volume of mkvs is so low in WMC 7 (I send audio through HDMI to a Sony TV amd I'm using FFDShow Audio)? In MPC-HC the volume is ok.

Thanks again!

IM

egur
8th June 2012, 10:31
Hello Egur,

I've finally manged to test 0.35 beta and I can confirm that it does work with some minor glitches:
1. The bug disappeared only with LAV splitter enabled for mkvs, with Haali is still visible (not as bad as before but still there) however I've seen on the 1st page that you also recomend LAV.
2. In MPC-HC x64 everything is perfect now.
3. In WMC 7 only one of the videos has a very slight delay (a ripped copy of one of my Blu-Rays: Avatar) but nothing to bother me as it did before.

Out of the record: does it happen for you to know why the volume of mkvs is so low in WMC 7 (I send audio through HDMI to a Sony TV amd I'm using FFDShow Audio)? In MPC-HC the volume is ok.

Thanks again!

IM

Haali sends a lot of garbage time stamps. Sometimes there's order to the garbage and my decoder finds a wrong frame rate. LAV splitter behaves much better in this sense, that why I recommend it (it all has several other benefits).
Analyzing time stamps solves many issues and it's mandatory for proper soft inverse telecine.
It's also mandatory for clips with DTS type time stamps. FFDSHow doesn't correct these time stamps So I need to do them manually. LAV decoder (with QS) disables my time stamp correction and uses its own so Haali should work better with LAV video decoder.

Volume issues are off topic, but I have the same issue. I just set the ffdshow mixer to stereo and raise the volume by 10-12db. In my living room, I have a TV (no amp or surround) + headphones.
In many cases 5.1 recordings offer very low volume for most of the video with very high volume in action/dramatic scenes.

ionutm80
8th June 2012, 11:24
Hello Egur,

I don't want to be annoying but out of curiosity which one is better:
QS own time stamp correction + FFDShow or

QS w/o time stamp correction + LAV decoder own stamp time correction?

Anyway I had to stick to ffdshow since as you stated before QS in LAV does not work in full screen with WMC.

Also thanks for the tip with sound!

KR,

IM

egur
8th June 2012, 11:39
QS+LAV: more robust.
QS+ffdshow: works in WMC, HW deinterlacing, HW post processing.

Nezaara
8th June 2012, 12:01
Just tried that, but the problem still persists. I went into display -> advanced -> adaptor -> properties -> drivers and into system information to confirm and I am running build number 2696, but no dice I'm afraid.

ionutm80
8th June 2012, 12:53
QS+LAV: more robust.
QS+ffdshow: works in WMC, HW deinterlacing, HW post processing.

Thanks, then I'll be waiting for nevcairiel to fix LAV+QS usage in WMC7 and stick to ffdshow until then.

egur
8th June 2012, 15:10
Just tried that, but the problem still persists. I went into display -> advanced -> adaptor -> properties -> drivers and into system information to confirm and I am running build number 2696, but no dice I'm afraid.

No video at all in all videos mean a driver problem. Your system seems pretty standard. Win7, I'm assuming.
I recommend uninstalling and reinstalling the driver.

Nezaara
8th June 2012, 21:23
Just tried a driver reinstall, but nothing's changed. In playing around I did notice a couple of things: the problem only effects content that would use the quicksync decoder. IE FLAC, AC3, DTS, or xvid video clips all play just fine. The interesting thing is that mpeg2 clips do appear to play, though they take an extra 5 seconds or so at the start before they will. Once that happens, though, there's no problem; it's only h.264 and VC-1 that are failing.

markanini
8th June 2012, 22:28
egur, any clues regarding Flash stuttering?

egur
9th June 2012, 13:19
egur, any clues regarding Flash stuttering?

Please post a sample and describe your setup as much as possible to help me reproduce:
* OS
* driver version
* Display connected to Intel GPU?
* Virtu SW installed?
* Player/renderer/splitter used (32/64 bit).

wanezhiling
10th June 2012, 06:17
15.28.2747 For Win7-32/Win8-32 (http://file2.mydrivers.com/display/intel_graphics_15.28.0.2747-w7-8_32.zip)

15.28.64.2747 For Win7-64/Win8-64 (http://file2.mydrivers.com/display/intel_graphics_15.28.0.2747-w7-8_64.zip)

cybersans
10th June 2012, 10:48
some audio codec (i just found the ac3) that caused stuttering sound. i need to disable the ac3 decoder and it plays with uncompressed PCM so that the sound will not stuttering again.

aufkrawall
10th June 2012, 16:54
15.28.2747 For Win7-32/Win8-32 (http://file2.mydrivers.com/display/intel_graphics_15.28.0.2747-w7-8_32.zip)

15.28.64.2747 For Win7-64/Win8-64 (http://file2.mydrivers.com/display/intel_graphics_15.28.0.2747-w7-8_64.zip)
bsod with my SNB, just like with the previous beta driver.
Intel should really bolster their graphics driver team with more money and better personnel.

RBG
10th June 2012, 17:39
egur
I know that here it will be offtopic, but can you answer my question regarding QS transcoding. What conditions should be met in order to make QS encoder work? I am asking because no matter what I try I can't make it work in MediaCoder, it always returns error 14. Have you ever tried to QS transcoding in MediaCoder on a hybrid setup with fake vga display?

egur
10th June 2012, 18:34
egur
I know that here it will be offtopic, but can you answer my question regarding QS transcoding. What conditions should be met in order to make QS encoder work? I am asking because no matter what I try I can't make it work in MediaCoder, it always returns error 14. Have you ever tried to QS transcoding in MediaCoder on a hybrid setup with fake vga display?

I'm not familiar with MediaCoder.
QS transcoding (HW decoder + encoder) needs an i3 class CPU at a minimum. Fake VGA trick should work.
Which part returns -14, my code? Which function?

BTW, -14 from my code means a bad setup for the decoder or VPP (MFX_ERR_INCOMPATIBLE_VIDEO_PARAM), probably my bug, please specify your setup so I can reproduce.

RBG
10th June 2012, 19:12
egur

Which part returns -14, my code? Which function?
BTW, -14 from my code means a bad setup for the decoder or VPP (MFX_ERR_INCOMPATIBLE_VIDEO_PARAM), probably my bug, please specify your setup so I can reproduce.

It's an internal MediaCoder error code (http://blog.mediacoderhq.com/docs/error-codes/#014), sorry if confused you. My current setup is i7 2600, h67 chipset, 8.15.10.2696 driver from intel's site, Windows 7 x64, fake vga display. Can you please try MediaCoder (http://www.mediacoderhq.com/dlfull.htm) QS transcoding on your system, I just want to understand what I am doing wrong, or maybe there is something wrong in Mediacoder itself.

aufkrawall
10th June 2012, 19:58
Maybe it's a MediaCoder/that OS QS encoder bug.
It doesn't work for me with multimonitor trick either but TMPGEnc and DVDfab do.

egur
10th June 2012, 20:58
MediaCoder works fine when the iGPU is connected to main screen but fails otherwise.
This is a bug in the encoder initialization code. A bug that's very easy to fix BTW.

If someone knows the author I can help fix this in 5 minutes.

aufkrawall
10th June 2012, 21:30
Maybe he can be contacted at the MediaCoder forums?
http://forum.mediacoderhq.com/

RBG
10th June 2012, 21:39
If someone knows the author I can help fix this in 5 minutes.
It would be great if you could help with a fix for this bug. :) I don't know mediacoder' s developer in person, either I don't know his email, but I found some info about him, his name is Stanley Huang, his twitter (http://twitter.com/#!/stanleyhuangyc) account, mediacoder bug report forum (http://forum.mediacoderhq.com/viewforum.php?f=28&sid=97fe5082f618c355bdfc37e8164c4489).

egur
11th June 2012, 08:29
Does anyone have an account in MediaCodec's forum? I already monitor too many forums as it is...

AnonCrow
11th June 2012, 11:19
Does anyone have an account in MediaCodec's forum? I already monitor too many forums as it is...

PMd him in the mediacoder forums pointing to post #1385 here.
(he does have an account here on doom9 as well, but hasn't logged in since Jan 2011)

(( wonder if http://forum.mediacoderhq.com/viewtopic.php?f=25&t=11994#p35686 had been reading this thread or not ))

aufkrawall
11th June 2012, 11:25
I got an account there. :)

RBG
11th June 2012, 11:28
Does anyone have an account in MediaCodec's forum? I already monitor too many forums as it is...

O.K., I have registered an account on MediaCoder's forum. I can post a bug report there and send you a reply here, but I don't know what exactly to write.

egur
11th June 2012, 12:41
O.K., I have registered an account on MediaCoder's forum. I can post a bug report there and send you a reply here, but I don't know what exactly to write.

The initialization problem, which I also had BTW, is solved by initializing the MSDK session using MFX_IMPL_AUTO_ANY. It seems like a documentation or implementation bug.

Change:
sts = m_mfxSession.Init(MFX_IMPL_HARDWARE_ANY, &version);
To:
sts = m_mfxSession.Init(MFX_IMPL_AUTO_ANY, &version);
if (sts == MFX_ERR_NONE) // success
{
m_mfxSession.QueryIMPL(&m_mfxImpl); // any value other than MFX_IMPL_SOFTWARE means HW accleration
m_mfxSession.QueryVersion(&m_ApiVersion);
m_bHwAcceleration = m_mfxImpl != MFX_IMPL_SOFTWARE; // can check if SW is acceptable or not
sts = (MFX_IMPL_SOFTWARE != m_mfxImpl) ? MFX_ERR_NONE : MFX_ERR_UNSUPPORTED;
}

return sts;

Note that Virtu might not abstract the driver interface for the encoder (this is not DXVA). If this is the case, the code will fail later on and not in the initialization.

This is assuming that MediaCodec used the sample encoder as is.

Edit
If the MediaCodec author or another user wants to continue this discussion, please open a new thread and send me the link.

RBG
11th June 2012, 18:27
egur
I posted a bug report (http://forum.mediacoderhq.com/viewtopic.php?f=28&t=12039&e=0) on MediaCoder forum. MediaCoder QS implementation discussion (http://forum.doom9.org/showthread.php?p=1577928#post1577928)

Please check for MediaCoder's developer reply (http://forum.mediacoderhq.com/viewtopic.php?f=28&t=12039#p35694).

mecedo
12th June 2012, 07:28
I have two samples which makes problem during playback: http://netload.in/dateiRtEF2R4qzi/Interlaced samples.zip.htm. Framerate indicator shows 2x bigger framerate then real framerate and there's horrible stuttering during playback. I have to disable deinterlacing on QuickSync and use software deinterlacing from FFDShow, then movies play perfectly.

egur
13th June 2012, 09:08
I have two samples which makes problem during playback: http://netload.in/dateiRtEF2R4qzi/Interlaced samples.zip.htm. Framerate indicator shows 2x bigger framerate then real framerate and there's horrible stuttering during playback. I have to disable deinterlacing on QuickSync and use software deinterlacing from FFDShow, then movies play perfectly.

I can't download the file, after waiting forever it says "not found". please post it elsewhere.

wanezhiling
13th June 2012, 09:26
The title of the thread "Intel SandyBridge hardware accelerated FFDShow decoder (H264/VC1/MPEG2)" should be changed to Intel SNB & IVB hw ffdshow decoder.;)

egur
13th June 2012, 09:35
The title of the thread "Intel SandyBridge hardware accelerated FFDShow decoder (H264/VC1/MPEG2)" should be changed to Intel SNB & IVB hw ffdshow decoder.;)

Only to be changed later to: Intel SNB, IVB and HSW hw ffdshow decoder.;)
I'd change the name but I don't think that's possible...

Atak_Snajpera
13th June 2012, 09:47
I'd change the name but I don't think that's possible...
just double click next to your title from here (http://forum.doom9.org/forumdisplay.php?f=54)

egur
13th June 2012, 10:20
just double click next to your title from here (http://forum.doom9.org/forumdisplay.php?f=54)

done, thanks!

mecedo
13th June 2012, 11:02
I can't download the file, after waiting forever it says "not found". please post it elsewhere.

http://www.sendspace.com/file/whgabs

egur
13th June 2012, 11:40
I have two samples which makes problem during playback: http://netload.in/dateiRtEF2R4qzi/Interlaced samples.zip.htm. Framerate indicator shows 2x bigger framerate then real framerate and there's horrible stuttering during playback. I have to disable deinterlacing on QuickSync and use software deinterlacing from FFDShow, then movies play perfectly.

OK, got the files, I'll investigate the issue later.
By stuttering, do you mean audio, video or both?
BTW, frame rate can double if the clip is marked as interlaced and full rate is selected.

mecedo
13th June 2012, 14:47
OK, got the files, I'll investigate the issue later.
By stuttering, do you mean audio, video or both?
BTW, frame rate can double if the clip is marked as interlaced and full rate is selected.

MadVR reports many dropped video frames.

egur
13th June 2012, 15:15
MadVR reports many dropped video frames.

MadVR will probably choke for this high frame rate. The iGPU resources are also drained by the fact that it has to do deinterlacing.
This might be not be a bug - it looks like the iGPU is stressed too much.
Does this happen with EVR?
Try lowering the MadVR algorithm quality (e.g. to bi-linear), does this help?

BTW, if you want the full potential of MadVR, you'll need a mainstream discreet GPU.

andyvt
13th June 2012, 15:20
BTW, if you want the full potential of MadVR, you'll need a mainstream discreet GPU.

Ignoring the flexibility to select the VPP algorithm, do you think madVR offers a benefit over the VPP provided by IVB?

egur
13th June 2012, 15:40
Ignoring the flexibility to select the VPP algorithm, do you think madVR offers a benefit over the VPP provided by IVB?

VPP is more than scaling. In some use cases MadVR alone will do a better job.

The benefits of doing DI within the decoder is to enable various post processing functions to work including adding subtitles.

MadVR, if operating on another GPU can give the best quality by utilizing his special features (exclusive full screen, sharp luma scaler combined with a soft chroma scaler).

We're not at the point where the iGPU can run MadVR at its full capabilities.

andyvt
13th June 2012, 15:52
VPP is more than scaling. In some use cases MadVR alone will do a better job.


Recent versions of madVR do more than scale. I don't think it offers the same capabilities as MSDK, but without getting into too much detail I thought "VPP" was the best term :)


The benefits of doing DI within the decoder is to enable various post processing functions to work including adding subtitles.


This is only a benefit when the renderer doesn't provide proper* support right?

* or more specifically the application doesn't allow for enough flexibility in its support for subtitles/cc when it orchestrates playback via DirectShow


MadVR, if operating on another GPU can give the best quality by utilizing his special features (exclusive full screen, sharp luma scaler combined with a soft chroma scaler).

We're not at the point where the iGPU can run MadVR at its full capabilities.

So "under the right conditions" to the original question?

egur
13th June 2012, 16:11
Under the right conditions, MadVR can provide better quality than MSDK VPP.
Under different conditions, it might stall.
If you care about subtitles or you're unhappy (for any reason) from the way MadVR handles DI, then MSDK VPP is a good option.

Given the low power budget the iGPU have together with the fact that it costs nothing (to the user), you can't seriously expect it to beat a 150W GPU on every turf...
Future iGPUs will be stronger and stronger, at some point MadVR will be able to run smoothly using it's (today's) highest settings. When will this happen? Don't know.

andyvt
13th June 2012, 16:19
Given the low power budget the iGPU have together with the fact that it costs nothing (to the user), you can't seriously expect it to beat a 150W GPU on every turf...


TBC, I don't expect it to. My interest is around defining the decision points which could lead someone to select a dGPU over IVB in a HTPC.

egur
13th June 2012, 18:45
TBC, I don't expect it to. My interest is around defining the decision points which could lead someone to select a dGPU over IVB in a HTPC.

My opinion for decision points should be:
dGPU:
+ Use MadVR - may not work well in 4K@60fps even if screen resolution is smaller.
+ Proper HDMI output levels
- $$$
- More power
- More noise unless a fanless model is used.
- DXVA not 100% stable on all models.
- hybrid GPU setup not always work.
- Fan will make a lot of noise after a year or two.
- Large form factor due to dGPU height/length
- Poor HW DI quality (may improve). Little progress on this front in the last 5 years (AMD and Nvidia).

iGPU (IvyBridge):
+ It's free :)
+ Quiet
+ very little power -> especially with mobile or ULV parts.
+ Small form factor possible. Wife not angry about PC in the living room :)
* Use EVR (4K) or EVR-CP (1080p)
* Requires fast memory (1600MHz or better) - not so bad - good for CPU too. Not expensive.
* Can always buy dGPU later if not satisfied (unless case is too small).
- In combination with some TVs, incorrect HDMI output levels are used. Long standing driver bug.
- Should opt for GT2 models - stronger iGPU (16 EUs vs. 6 EUs for GT1), can raise the price.
- Driver availability/updates policy is not clear once HW becomes "old" (2 years).
- No HW deblocking/deringing for older formats.

For those who want the absolute best quality and do not care for DI, they should buy a silent dGPU, an i7 processor and do everything in SW.

My personal setup is an i7-2600K, no dGPU.

nevcairiel
14th June 2012, 07:04
I don't agree with some of your points there.

- HW DI on NVIDIA and AMD cards is good, i don't think Intel is any better. In fact, i think you're the first to ever claim that.
- DXVA/MediaSDK is equally unstable on Intel, very much depending on driver version and whatnot. Heck Intel doesn't even bother supporting the "standard" DXVA, limiting you to applications that have special support for Intels differences (Media SDK or otherwise). From my experience, NVIDIA has had the most stable experience, if you ignore the recent MPEG4-ASP breakage (a format not available on Intel)
- NVIDIA and AMD support actual 4k Output (future proofing)

Me personally, i have a AMD 7750 passive card now, and use it in a hybrid setup with the ivy bridge CPU/GPU, and it works just beautifully.

------------
On another note, i got a report about some issues with QS DI, maybe you can have a look:
http://forum.doom9.org/showthread.php?p=1578205#post1578205

vivan
14th June 2012, 08:57
Heck Intel doesn't even bother supporting the "standard" DXVA, limiting you to applications that have special support for Intels differences (Media SDK or otherwise).And Flash is not such application, so with h/w video decoding it produces artifacts on files with big number of reference frames. Also EVR on intel GPU's have some issues with chroma upsampling (Nearest Neighbor interpolation). You can use madVR... but not in Flash player.

egur
14th June 2012, 14:25
And Flash is not such application, so with h/w video decoding it produces artifacts on files with big number of reference frames. Also EVR on intel GPU's have some issues with chroma upsampling (Nearest Neighbor interpolation). You can use madVR... but not in Flash player.

If you provide a flash sample (or link) that shows artifacts, that would be nice.

As for chroma upsampling, are you sure this happens on SandyBridge/IvyBridge?

Nev, as for DI, on my DI test suite, AMD fails miserably. I don't have an Nvidia for a while , but the last one I had was a 9800GTX and it too wasn't very good.

My AMD card, a Radeon HD7950, seems to throw away every other frame (output 30p), at least when the fields are very different. The result image is less sharp (and less details) in AMD than in Intel.

nevcairiel
14th June 2012, 15:11
My AMD card, a Radeon HD7950, seems to throw away every other frame (output 30p), at least when the fields are very different. The result image is less sharp (and less details) in AMD than in Intel.

Sounds like some misconfiguration or something else broken, it can produce fluid 60p image from interlaced videos.
Its a common thing to be tested in HTPC-focused reviews, including the typical (artificial) Cheese Slice test as well as HQV 2.0, and AMD usually always scored slightly above NVIDIA (mostly because of better cadence detection), and both above Intel.

egur
14th June 2012, 15:19
Sounds like some misconfiguration or something else broken, it can produce fluid 60p image from interlaced videos.
Its a common thing to be tested in HTPC-focused reviews, including the typical (artificial) Cheese Slice test as well as HQV 2.0, and AMD usually always scored slightly above NVIDIA (mostly because of better cadence detection), and both above Intel.

Ask any video processing expert and you'll get the same answer - HQV is a not a serious test.
It was meant to prove the superiority of HQV video processors. That's why it puts a high score on those rare cadences and doesn't stress deinterlacing too much. Also scaling is partially checked but given very low score (<10% of overall score).
Digital noise reduction (deblock/dering/mosquito) isn't scored either.

andyvt
14th June 2012, 15:26
Ask any video processing expert and you'll get the same answer - HQV is a not a serious test.
It was meant to prove the superiority of HQV video processors. That's why it puts a high score on those rare cadences and doesn't stress deinterlacing too much.

It's also quite likely that the video sequence used for cadence detection contains embedded moiré and the scoring guide specifically calls for scoring based on the presence of moiré in the stands:


No moiré pattern observed in stands within less than 1/2 second 5
No moiré pattern observed in stands within less than 1 second 3
Moiré pattern observed in stands intermittently or constantly through the clip 0


Which raises some questions about the suitability/quality control around the samples in the test.

mecedo
14th June 2012, 17:22
Does this happen with EVR?
Try lowering the MadVR algorithm quality (e.g. to bi-linear), does this help?

Yes. Renderer has no impact.

egur
14th June 2012, 21:07
I've found a few issues with the DI, but a fix is not clear ATM, I suggest that people stop using it until a fix is ready.

nevcairiel
14th June 2012, 21:16
Ask any video processing expert and you'll get the same answer - HQV is a not a serious test.
You missed the whole point of my post.
I didn't say HQV is a good test, just that reviews use it and such catastrophic DI results would've been noticed. That's all.

andyvt
14th June 2012, 21:34
You missed the whole point of my post.
I didn't say HQV is a good test, just that reviews use it and such catastrophic DI results would've been noticed. That's all.

The thing is that HQV doesn't really test the quality of DI, just that the VP is able to do it.

Most reviewers just look at the bars in the middle (i.e. is the cadence detected), and not at the stands; so I don't think that claim (that they would have noticed) is well founded. If you look at the stands, there's no way (or at least not with any of the GPUs or CE devices I've tested) that any device could get more than 0.

nevcairiel
14th June 2012, 21:38
Most reviewers also use the cheese slice test when trying to determine the DI quality, and any good reviews also use other interlaced material. HQV was just an example, vent your hate for that test somewhere else, jeez. :P

andyvt
14th June 2012, 21:42
HQV was just an example, vent your hate for that test somewhere else, jeez. :P

I don't hate it, I just don't think it's valid in the context that most people place it.

egur
14th June 2012, 22:03
You missed the whole point of my post.
I didn't say HQV is a good test, just that reviews use it and such catastrophic DI results would've been noticed. That's all.

I used test DVDs from several TV manufacturers as well as other video processors, unfortunately I can't share this material.

The problem is that HQV is used so much by the press that it forces video processors to optimize for it, at the expense of real world clips...

vivan
14th June 2012, 22:23
If you provide a flash sample (or link) that shows artifacts, that would be nice.http://uppod.ru/vfvqawryip

As for chroma upsampling, are you sure this happens on SandyBridge/IvyBridge?Yes (http://2.firepic.org/2/images/2012-06/14/0qa1al7hpd7b.png). You can check this video (http://amvnews.ru/index.php?lang=english&go=Files&in=view&id=1656) (you can switch lang to english), or youtube (http://www.youtube.com/watch?v=hPZjKjwuaAs)/vimeo (http://vimeo.com/15327875).

egur
14th June 2012, 22:48
http://uppod.ru/vfvqawryip

I see what you mean. How can I download the file?


Yes (http://2.firepic.org/2/images/2012-06/14/0qa1al7hpd7b.png). You can check this video (http://amvnews.ru/index.php?lang=english&go=Files&in=view&id=1656) (you can switch lang to english), or youtube (http://www.youtube.com/watch?v=hPZjKjwuaAs)/vimeo (http://vimeo.com/15327875).

Downloaded the clip, played (with EVR) at 100% size and did a print screen. Definitely not nearest neighbor (SandyBridge).
The capture image (your link) does show NN interpolation, how was it made? Which GPU?

vivan
15th June 2012, 00:24
http://amvnews.ru/index.php?go=Files&file=down&id=2656

EVR-CP in MPC-HC. GPU is Intel® HD Graphics 3000 integrated into i5-2410M. With discrete GPU (nVidia GT540M) I don't have such issue (however it's impossible to use QS Decoder with rendering on dGPU =/).
Also happens in flash, I'll post screenshots tomorrow (it's 3 am here :D).

UPD:
http://2.firepic.org/2/images/2012-06/14/3vp6bof90eyr.png
http://2.firepic.org/2/images/2012-06/14/7nrqt4bwpga3.png
http://2.firepic.org/2/images/2012-06/14/8q3xpyohj5dl.png
Latest stable MPC-HC (from sc) & intel HD drivers (2696)

Another one video with artifacts: http://akross.ru/index.cgi?act=video;id=2810;l=e ("Preview (Low-Q)" is streaming through player).
Yes, it has 15 reference frames... But 270p resolution.

egur
15th June 2012, 11:37
http://amvnews.ru/index.php?go=Files&file=down&id=2656
Link doesn't work.
EVR-CP in MPC-HC. GPU is Intel® HD Graphics 3000 integrated into i5-2410M. With discrete GPU (nVidia GT540M) I don't have such issue (however it's impossible to use QS Decoder with rendering on dGPU =/).
Also happens in flash, I'll post screenshots tomorrow (it's 3 am here :D).

UPD:
http://2.firepic.org/2/images/2012-06/14/3vp6bof90eyr.png
http://2.firepic.org/2/images/2012-06/14/7nrqt4bwpga3.png
http://2.firepic.org/2/images/2012-06/14/8q3xpyohj5dl.png
Latest stable MPC-HC (from sc) & intel HD drivers (2696)

Strange. I have newer drivers, so maybe this was fixed, but I don't ever recall this being an issue.
What's the scaler settings EVR-CP?

Another one video with artifacts: http://akross.ru/index.cgi?act=video;id=2810;l=e ("Preview (Low-Q)" is streaming through player).
Yes, it has 15 reference frames... But 270p resolution.
This clip makes me dizzy...
Playing the file in ZoomPlayer looks fine (1st minute).
It seems to have cut scenes that are garbage (white noise) on intention. Tell me where there's a problem.

ipanema
15th June 2012, 12:46
The notes on the qsdecoder project page say "Started as an internal decoder within FFDShow. Can be easily ported to other DirectShow decoders."

Has anyone actually implemented a standalone DirectShow filter based on qsdecoder?

It might be something I'd look at, but I'm not familiar with ffdshow internals or how qsdecoder interfaces into ffdshow. Presumably I'd need to convert the ffdshow input and output mechanism to the DirectShow base classes way of working. Is there any documentation that summaries how ffdshow passes samples/frames to (in this case) qsdecoder, and maybe how it handles IQualityControl::Notify quality control messages?

egur
15th June 2012, 12:52
UPD:
[url]http://2.firepic.org/2/images/2012-06/14/3vp6bof90eyr.png
http://2.firepic.org/2/images/2012-06/14/7nrqt4bwpga3.png
http://2.firepic.org/2/images/2012-06/14/8q3xpyohj5dl.png
Latest stable MPC-HC (from sc) & intel HD drivers (2696)

Digging a little deeper revealed that ZoomPlayer has a small aspect ratio error resulting in the scaler being used.
When the scaler is used, the effect is significantly smaller. That's why I didn't pick this up yet. In full screen viewing this is hardly noticeable (not an excuse - don't get me wrong).
I know that the HW is designed to do something much better...

Anyway, I'll ask around.

egur
15th June 2012, 13:35
The notes on the qsdecoder project page say "Started as an internal decoder within FFDShow. Can be easily ported to other DirectShow decoders."

Has anyone actually implemented a standalone DirectShow filter based on qsdecoder?

It might be something I'd look at, but I'm not familiar with ffdshow internals or how qsdecoder interfaces into ffdshow. Presumably I'd need to convert the ffdshow input and output mechanism to the DirectShow base classes way of working. Is there any documentation that summaries how ffdshow passes samples/frames to (in this case) qsdecoder, and maybe how it handles IQualityControl::Notify quality control messages?

Yes, LAV video decoder integrated QS decoder a while back. nevcairiel (LAV filters author) reported a 2 day effort.
Potplayer also integrated it, without any support from me.
If you're looking at FFDshow's code, find all references to the TvideoCodecQuickSync class (under codecs). That's the proxy class for the QS decoder. It's very simple.
If you want to go further, drop me a PM.

egur
15th June 2012, 15:26
Version 0.36 beta is out with the following changes:
* Bugfixes - DI was stalling or crashing.
* FFDShow rev4464

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)

vivan
15th June 2012, 15:35
Link doesn't work.
Strange, it should redirect to http://46.4.15.147:8080/Video/Full003/02656.Cenit-Jagdmeister.HD.60fps.amvnews.ru.mp4 (link, that I used in that player).
Or http://amvnews.ru/index.php?go=Files&in=view&id=2656 - link under the player (that is 147.51 Mb 1280x720@59.94fps)

Strange. I have newer drivers, so maybe this was fixed, but I don't ever recall this being an issue.I have such problem from the beginning (~1 year).
What's the scaler settings EVR-CP?Bicubic A=-1.00 (PS 2.0)

This clip makes me dizzy...
Playing the file in ZoomPlayer looks fine (1st minute).
It seems to have cut scenes that are garbage (white noise) on intention. Tell me where there's a problem.That's how it looks in web player: http://dl.dropbox.com/u/16254258/Desktop%2015-06-2012%2018-16-16.mp4
Same in MPC-HC with LAV DXVA-copyback decoder (or Native DXVA + EVR-CP).

egur
15th June 2012, 15:57
@vivan
I also noticed the bad chroma upsampling - look up a few posts.
Downloaded the file. I'll take a look.
It plays fine offline (ffdshow-quicksync), online via flash player is pretty bad like you said.
The previous sample behaves the same, offline is great, online is bad.

I'll see if I can find out who supports Adobe.

vivan
15th June 2012, 16:27
With your decoder anything is fine ;)
Issue is with applications that use DXVA (like flash player).

When playing offline you can use any player you want with any renderer, so I use QS decoder + madVR - and it's perfect. But when it comes to online - you don't have any choice... So issues with chroma upsampling with EVR (on most videos it hardly visible, due to scaling and poor quality) and heavy video (through it affects only couple of sites, that allow to stream uploaded video without any reencoding - even 1080p@60fps and Hi10p...) with DXVA appears.

egur
15th June 2012, 21:58
With your decoder anything is fine ;)
Issue is with applications that use DXVA (like flash player).

When playing offline you can use any player you want with any renderer, so I use QS decoder + madVR - and it's perfect. But when it comes to online - you don't have any choice... So issues with chroma upsampling with EVR (on most videos it hardly visible, due to scaling and poor quality) and heavy video (through it affects only couple of sites, that allow to stream uploaded video without any reencoding - even 1080p@60fps and Hi10p...) with DXVA appears.

Good to know I have a happy customer :)
As for flash player - usually the best approach is to find a way to notify Adobe on this issue. It could either be their bug or they can ask for support directly from Intel (in this example) and they'll get it.

It's a little like having car-engine troubles, you don't contact the engine manufacturer, you contact the car dealership. I know it's not the same, but gets the job done.

CruNcher
16th June 2012, 08:53
@Egur
Decodinerror.ts is fixed (the 1 frame coruption) in combination with Quicksync via current Lav Video with Driver 2761, though it still fails with Microsofts DTV Decoder.

Ahh wait i see Lav Video fallsback to avcodec on that Video hehe, i wonder what the reason in the end is now for that decision (detection reason for the fallback) ;)

I see ffdshow quicksync also fallsback now to libavcodec so egur what is the reason for that what can't be fixed here on the Quicksync DSP (Driver) side anymore (or are you still working on a Media SDK fix) ? :)


Im now on a Dual Card config and can switch between Nvidia (640 GTX) and Intel (HD 2000) results, though i still do this manually by changing inputs but it works nicely without Virtu (just had to get used to the Black Screen on Boot @ first, when on IGD and the discrete card first being initialized on the NT 6 layer)

Whats very interesting is the Kernel Driver Latency difference between Intel and Nvidia i wonder how much the path plays a role in Nvidias driver and how much the manipulation layer in terms of the overall latency. I guess Intels Driver is also perfect to compare being so much younger (not so bloated yet) :)

Also i wonder what is gonna happen if i call the Nvidia Cuda layer + Renderer on the Discrete Card let the video playback and then switch (same for other applications using the DSP or GPU or both before the switch) ;)

In those regards im preparing a big compare of my multitasking test http://forum.doom9.org/showthread.php?t=164555 for Win 7 and Win 8 Intel and Nvidia WDDM 1.1 and 1.2 :) im thinking of adding Ray Tracing additionally as overhead (OpenCL,CUDA,Native CPU) which should really push down the response most probably WDDM 1.1 (getting to its scheduling boarders) will collapse here 1.2 should be able to cope with it (full supported Hardware even better) :)

The Winner of it is then gonna go vs http://haiku-os.org/ though with some different (more evened fair,non GPU accellerated) setup which im still working on http://blip.tv/linuxconfau/haiku-4747185 .

wanezhiling
16th June 2012, 11:24
NEW FEATURES IN THIS DRIVER VERSION 2761

SUPPORT ADDED FOR OPENGL VERSION 3.3 ON INTEL HD GRAPHICS 4000 / 2500
RECENT GAME RELEASES ENABLED IN DRIVER VERSION 2761



ISSUES FIXED IN DRIVER VERSION 2761

VIDEO PLAYBACK
• Sound can now be heard from the external monitor after selecting the monitor as the playback device in the Windows Sound control panel.
• Resolved issue where sound may not be heard after waking the computer from Sleep state.
• Resolved issue where flickering and noise may be seen in video transcoded to MP4 format.

DISPLAY
• When using three displays with the Intel HD Graphics 4000/2500, resolved an issue where sometimes the external monitor may not be detected after pressing the Ctrl+Alt+F11 keys several times to turn panel scaling on/off.
• When using three displays with the Intel HD Graphics 4000/2500, resolved issue where flickering and noise may be seen after closing and re-opening the laptop’s lid.
• When using three displays with the Intel HD Graphics 4000/2500, resolved issue where the refresh rates listed in Windows and in the Intel Graphics and Media Control Panel may not match.
• Resolved an issue in the Intel Graphics and Media Control Panel where the rotation setting’s picture did not change after selecting a different rotation setting.
• Resolved issue where the DisplayPort display cannot be used in Extended Desktop or Clone configuration after a fresh installation of Windows.
• Resolved issue where after connection to the computer, an analog monitor could not be used in Extended Desktop or Clone configuration.
• When using three displays with the Intel HD Graphics 4000/2500, resolved a flickering issue and STOP error with code 0x116 that may be seen after waking the computer from Sleep state.
• Resolved an issue where the laptop’s display may be pale after connecting the power cable and waking the laptop from Sleep state.

egur
16th June 2012, 13:21
I was asked to share evil trees (http://www.mediafire.com/?vap13dtvlcbb4nh), a clip originally shared by CruNcher (link's dead now).
This clip is an MPEG2 NTSC HDTV clip which alternates very violently between soft and hard telecine.

CruNcher, welcome back.
The decodingerror clip (Lady Gaga) indeed fails to pass the initial checks, I'm on it.
Update:
Good catch CruNcher :)
Seems to be a regression that occurred in driver 2752 and continues through 2778 (in MSDK DLL). It refuses to decode the H264 header. H264 header seems fine according to ffdshow's H264 SPS parser.
I'll report this bug.

cybersans
16th June 2012, 13:52
some audio codec (i just found the ac3) that caused stuttering sound. i need to disable the ac3 decoder and it plays with uncompressed PCM so that the sound will not stuttering again.

guys.
per my previous posts, i still experienced stuttering with many avi/mp4/mkv video which has AC3 as input audio and buzzer sound when drag the seeking bar. i need to convert all ac3 audio to aac or other format and remuxed the video back so that i can watch it without stuttering sound. or disabled the ac3 decoder and play with pcm uncompressed input. using either libavcodec or liba52 does not make any change.

CruNcher
16th June 2012, 15:56
Current Intel Driver Win 7 Aero DPC Latency Result 2761 (had to optimize a bit on the Realtek Adapter Network config, ASUS Mainboard)
This is with a full On Demand Security Stack (including several Kernel security layer) ;):

http://www.ld-host.de/uploads/images/3eb00df37561d7ed406060644f77ee2a.jpg


Fully accelerated:

http://www.ld-host.de/uploads/images/3ca5b2cafae5027dd9fcb3bf8c3988e2.jpg

ipanema
16th June 2012, 16:06
Yes, LAV video decoder integrated QS decoder a while back. nevcairiel (LAV filters author) reported a 2 day effort.
Potplayer also integrated it, without any support from me.
If you're looking at FFDshow's code, find all references to the TvideoCodecQuickSync class (under codecs). That's the proxy class for the QS decoder. It's very simple.
If you want to go further, drop me a PM.

Thanks Eric. I'll take a look at LAV project aswell.

CharlieCL
16th June 2012, 19:12
I suppose 64-bit should speed up a lot vs 32-bit for codecs because of double bus-width. However there are no or very little improvement. The launch time may be a little bit faster. Are the current 64-bit codecs optimized for 64-bit?

egur
16th June 2012, 19:38
I suppose 64-bit should speed up a lot vs 32-bit for codecs because of double bus-width. However there are no or very little improvement. The launch time may be a little bit faster. Are the current 64-bit codecs optimized for 64-bit?

You do understand that QS is a HW solution...
The bulk of CPU cycles is spent copying the frames from GPU memory to system memory. I use SSE4.1 instructions for that and the extra 8 xmm registers do not contribute anything so it's the same code for 32/64. The rest of the code is usually ~1% of the CPU cycles I use.
Other parts may behave differently though (ffdshow, splitter, etc).

64 bit codec is only useful for Windows Media Center on Win7 64. Otherwise, there's no real reason to use it.

CruNcher
16th June 2012, 20:11
Almost perfect only Firefox Windowed Plugin and Javascript Threading and Performance here is still not where it could be to much frame drops way to much :(

http://www.ld-host.de/uploads/images/6ece3524b5a1f1567518c255bc5205ec.jpg


Though Intel Drivers handle it perfect :)



Nvidia 301.42 WHQL result:

http://www.ld-host.de/uploads/images/660c78aa5bfeb794712bcdbfbd93db90.jpg

http://www.ld-host.de/uploads/images/a58b463bd79e18f74dc86f108d907607.jpg


Not that bad :)

Only Firefox is still a big downer here in it's overall Directx Performance and stability thus people should be aware all the crazy state changes when you use Firefox are due to it's still not optimal D2D implementation and not Nvidias fault in General and the Firefox Team is working heavily on improving it :(
With Chrome/Chromium you wouldn't have seen any Frame Drops (on both) :(


The Workflow i used above for doing the switching is a little awkward but it works nicely on NT 6 no interferences i made sure to disable the Secondized Card and it's driver stack after the switch to get as clean measurements as possible as well :)

CharlieCL
17th June 2012, 17:26
You do understand that QS is a HW solution...
The bulk of CPU cycles is spent copying the frames from GPU memory to system memory. I use SSE4.1 instructions for that and the extra 8 xmm registers do not contribute anything so it's the same code for 32/64. The rest of the code is usually ~1% of the CPU cycles I use.
Other parts may behave differently though (ffdshow, splitter, etc).

64 bit codec is only useful for Windows Media Center on Win7 64. Otherwise, there's no real reason to use it.

Interesting. When you feed motion picture data to QS hardware accelerator, the 64-bit should be double faster than 32-bit. Can SSE4 be used? I guess 4K video may show big difference. In that case CPU usage may be 30%. May be need to use 4-channel Ivy Bridge-E to show pros of 64-bit.

egur
17th June 2012, 18:29
Interesting. When you feed motion picture data to QS hardware accelerator, the 64-bit should be double faster than 32-bit. Can SSE4 be used? I guess 4K video may show big difference. In that case CPU usage may be 30%. May be need to use 4-channel Ivy Bridge-E to show pros of 64-bit.

QuickSync is an ASIC (Application Specific Integrated Circuit - fixed HW) as opposed to a programmable HW (CPU or shader core).
ASIC is much faster and uses much less power than programmable alternatives but such a circuit can do a single function (QS is a collection of such circuits).
That circuit doesn't even belong to the CPU (it's part of the GPU), it doesn't know any x86/x64 instructions so it's performance has nothing to do with the CPU's mode of operation.
ASIC is useful for very high performance together with little power on a known algorithm that doesn't change (like H264 decoding). The downside is that it can't adapt to new algorithms - like H265.
That's how a modest GPU could give performance of 5x compared to a 200W high end GPU.
Tablets and smart phone have similar HW in concept.

nevcairiel
17th June 2012, 18:58
FWIW, even in a software decoder, 64-bit doesn't mean double speed. Very, very few algorithms can take that much advantage of more and bigger registers, if there is even one. You can maybe get 20-30% performance increases on highly optimized algorithms (thats about the number x264 gets faster during encoding, iirc), but most of the time in decoding, it will be about the same speed because all the important code path is already running in optimized SIMD code, which is the same in 32 or 64-bit.

Heck, if you think 64-bit is twice as fast as 32-bit, you don't understand the whole concept. :p
The main difference is that you get 64-bit registers and more registers in general. This can make your algorithm much faster, but thats assuming you actually deal with 64-bit numbers, and alot of them at the same time.

egur
17th June 2012, 19:49
Like Nev said, x64 gives you 16 general purpose registers and 16 SSE/AVX registers. The compiler has more headroom to play with the registers and doesn't need to store them back in memory/stack so quickly.
Function calls are also faster since the first 4 arguments are passed via registers and not the stack (but have a place in the stack).
Legacy floating point (x87) is out and SSE scalar floating point is used instead which is much faster in most cases.
Large arguments are passed by reference.
Memory allocations are 16 byte aligned to help performance.
So all this enhancements can accumulate to performance.

CruNcher
18th June 2012, 17:26
Yup especially if you work with massive amount of Data to crunch on no matter binary or ascii being Audio ,Pictures, Video or Databases though expecting only because of the 32bit 64bit 2x more performance is funny and i wonder where that comes from i never heard such advertisement or marketing saying it brings double the performance when the move was initiated by Intel/AMD ;)

CharlieCL
19th June 2012, 04:00
Like Nev said, x64 gives you 16 general purpose registers and 16 SSE/AVX registers. The compiler has more headroom to play with the registers and doesn't need to store them back in memory/stack so quickly.
Function calls are also faster since the first 4 arguments are passed via registers and not the stack (but have a place in the stack).
Legacy floating point (x87) is out and SSE scalar floating point is used instead which is much faster in most cases.
Large arguments are passed by reference.
Memory allocations are 16 byte aligned to help performance.
So all this enhancements can accumulate to performance.

One program like YV12toYUV2 conversion and YV12toRGB
may be faster by using 64-bit. Since we can get Y, U, V value from 3 addresses in 64-bit (2x 32-bit), that may reduce lots of cache missing.

CharlieCL
19th June 2012, 04:13
FWIW, even in a software decoder, 64-bit doesn't mean double speed. Very, very few algorithms can take that much advantage of more and bigger registers, if there is even one. You can maybe get 20-30% performance increases on highly optimized algorithms (thats about the number x264 gets faster during encoding, iirc), but most of the time in decoding, it will be about the same speed because all the important code path is already running in optimized SIMD code, which is the same in 32 or 64-bit.

Heck, if you think 64-bit is twice as fast as 32-bit, you don't understand the whole concept. :p
The main difference is that you get 64-bit registers and more registers in general. This can make your algorithm much faster, but thats assuming you actually deal with 64-bit numbers, and alot of them at the same time.

In case of 12G blu-ray video, 64-bit Windows with 16GB DRAM, 128GB SSD, by using memory-mapping file access, the 64-bit source/decoder can be better (50%??). Many 32-bit algorithms are based on small memory, there may have limitation.

ajp_anton
19th June 2012, 07:07
I've heard 64-bit decoding can actually be slower because of the larger addresses, but I won't pretend like I know much about this, maybe it's just badly coded.

I'm a bit confused about nev's explanation. It implies x264 does not use "optimized SIMD code" (because doing so, 32 and 64-bit "will be about the same speed"), which to me sounds like a bad thing...

egur
19th June 2012, 07:16
I've heard 64-bit decoding can actually be slower because of the larger addresses, but I won't pretend like I know much about this, maybe it's just badly coded.

I'm a bit confused about nev's explanation. It implies x264 does not use "optimized SIMD code" (because doing so, 32 and 64-bit "will be about the same speed"), which to me sounds like a bad thing...

x264 uses a lot of "optimized SIMD code" -> SSE (maybe even AVX, not sure).

When one uses SSE/AVX instructions it matters very little if the code is 32 or 64. The SSE (xmm) registers are 128 bit. The AVX registers are 256 bit. 64 bit mode adds 8 of more these, allowing the writer and compiler more freedom to optimize their code. Note that it's not always beneficial to use all the registers.

So if a function is heavily optimized with SSE or AVX instructions it will not work (much) with the 32 or 64 bit general purpose registers (EAX/RAX, ECX/RCX, etc).

nevcairiel
19th June 2012, 09:08
x264 is very complex, and it does benefit from the additional registers much more then for example decoding would, which allows it to benefit much more from 64-bit - both from more general purpose registers as well as from more SSE registers. AFAIK, x264 has special implementation of some algorithms to take advantage of the additional registers and provide the performance boost.

egur
19th June 2012, 12:01
I also read the PhotoShop x64 is more than 2x faster that its 32bit version.
32 bit will go the way of the 16 bit apps. Microsoft will not keep producing 32bit OSes forever. They published that windows 8 will be the last 32 version. Once the OS and all the tools are 64 bit, it's natural that 32 bit compatibility mode will be deprecated as well.

nevcairiel
19th June 2012, 12:03
My guess is that Photoshop mostly benefits from the additional RAM it can use. :)

CruNcher
19th June 2012, 17:13
x264 is very complex, and it does benefit from the additional registers much more then for example decoding would, which allows it to benefit much more from 64-bit - both from more general purpose registers as well as from more SSE registers. AFAIK, x264 has special implementation of some algorithms to take advantage of the additional registers and provide the performance boost.

I guess the current improvement was somewhere @ the 15% and yeah 2x faster in which scenario in Photoshop for sure Crunching some over 4 GB raw data so as you said very Workflow dependent and most applications that are very well optimized surely wont get speedup of 2x x264 is the perfect case study for that ;)

Sure is if you combine Workflows and get 15% improvements step each in that chain of applications its nothing to look over :)

As Egur said 32bit will vanish we are already @ the edge see 4GB GFX Cards these days but 640K are enough as we all know ;)

egur
22nd June 2012, 23:34
Photoshop would run much faster than 2x if the 32 bits version was starved for memory. The 2x improvement is due to x64 architecture only. But that's very rare. I read this on Anandtech or Tom's Hardware a few years ago. I didn't actually run the 2 versions myself.

rtabrah
26th June 2012, 21:34
First time post, long time follower of this thread and forum. Since you are all passionate about QuickSync and Intel's Media SDK - we just found 2 Core i7 2600k processors and are giving them away this week. If you want a chance to win - you need to follow or retweet us on twitter @IntelMediaSDK by 6/28. U.S. residents only for now.

I'll be creating another thread in case you have any overall questions about the Intel Media SDK.

-Ryan Tabrah
Intel Media SDK Product Manager

andyvt
26th June 2012, 21:41
First time post, long time follower of this thread and forum. Since you are all passionate about QuickSync and Intel's Media SDK - we just found 2 Core i7 2600k processors and are giving them away this week. If you want a chance to win - you need to follow or retweet us on twitter @IntelMediaSDK by 6/28. U.S. residents only for now.

I'll be creating another thread in case you have any overall questions about the Intel Media SDK.

-Ryan Tabrah
Intel Media SDK Product Manager

Welcome.

JustinChase
27th June 2012, 17:54
First, thanks for all your hard work.

I just got a new i5 IvyBridge with the HD4000 GPU.

I installed everything fine, installed windows 7x64, then installed the VGA driver from the manufacturer, then installed the latest version from Intel's download center on top of that. (QuickSync Win7_64_15.26.12.64.2761)

Everything is basically fine, and windows displays fine. however, I'm sending to a DLP TV, which has overscan, so I can't see the taskbar, or start button, nor the minimize/maximize boxes in the upper right of maximized windows. TV offers no way to compensate, so it must be done at the PC.

So, I did some poking around and see that custom resolutions lets you use a slider to get reduced resolutions.

It took some 'trickery' to get it to finally let me use the custom resolution (1812 x 1020), but once I got it enabled, the desktop displayed fine.
When I opened Windows Media Center to a window, all was still fine. However, when I set it to maximize/full screen, I could still hear sound, but only got a black screen. I hit ctl-f4 to close the program, but the desktop did not return, just the black screen.

I turned off the AVR, and the desktop came back, but at a different resolution (1680 x 1050). My custom resolution wasn't available any more from the list of resolutions. When I turned the AVR on again, the resolution went back to my custom resolution.

I tried going back to the full 1920 x 1080 resolution, and everything works.

I uninstalled that driver, and installed the previous one (15.26.8.64.2696), and nothing changed. All behavior was the same.

I tried JRiver Media Center, and going into their fullscreen display also resulted in a black screen with the custom resolution.

I'm not sure this is even the right place to post this, but hopefully someone has some suggestions on how to resolve.

karl_lillevold
27th June 2012, 18:04
@JustinChase: I have learned to live my overscan on my DLP TV. I have expanded the taskbar to double height. Most of the time I manage fine... but it is annoying still. My biggest problem with the Intel HD Graphics on my DLP is that I can not get it to work with Full RGB, resulting in gray blacks. There is no way to resolve the problem except use a discrete graphics card. Intel support has no answer either. http://communities.intel.com/thread/29420 I was curious if you can get Full RGB to work with your TV?

andyvt
27th June 2012, 18:14
My biggest problem with the Intel HD Graphics on my DLP is that I can not get it to work with Full RGB, resulting in gray blacks. There is no way to resolve the problem except use a discrete graphics card. Intel support has no answer either. http://communities.intel.com/thread/29420 I was curious if you can get Full RGB to work with your TV?

Have you tried using a DVI connection?

egur
27th June 2012, 18:39
...
I'll be creating another thread in case you have any overall questions about the Intel Media SDK.

-Ryan Tabrah
Intel Media SDK Product Manager
Welcome!
Please post the link in this thread.

First, thanks for all your hard work.

I just got a new i5 IvyBridge with the HD4000 GPU.

I installed everything fine, installed windows 7x64, then installed the VGA driver from the manufacturer, then installed the latest version from Intel's download center on top of that. (QuickSync Win7_64_15.26.12.64.2761)

Everything is basically fine, and windows displays fine. however, I'm sending to a DLP TV, which has overscan, so I can't see the taskbar, or start button, nor the minimize/maximize boxes in the upper right of maximized windows. TV offers no way to compensate, so it must be done at the PC.
...

This is not related to this thread but I'll try to help.

I haven't seen a TV (or projector) that doesn't allow to view the full 1080p resolution. Maybe you should look again (usually under "setup" and not where image image properties are set).
WMC and maybe JRiver switch to full screen mode which may be different than the driver settings for desktop. The TV might not like the different resolution.
FYI resolution is made from width, height, refresh rate and timing (blanking properties).

You didn't write if the output is analog or digital.
The TV might think that an analog connection is not a PC.
In this case you're out of luck.

I'd stick with the newer driver. It fixes a few issues.

BTW, what's AVR?

andyvt
27th June 2012, 18:42
Welcome!
what's AVR?

Audio Video Receiver

JustinChase
27th June 2012, 19:10
@JustinChase: I have learned to live my overscan on my DLP TV...I was curious if you can get Full RGB to work with your TV?

I haven't gotten that far yet; still just trying to get video to play when set at a custom resolution. It seems like this should work, but doesn't. i think I'll have to learn to live with the overscan also. I guess a projector is next.

Welcome!
I haven't seen a TV (or projector) that doesn't allow to view the full 1080p resolution.

I can use 1920 x 1080 fine, it's just that my TV/monitor overscans that image and only shows me about 1812 x 1020 of the full image. This means the edges of the screen are all not visible, so it's hard to see the controls of windows, which are all on the edges of the screen, so get cut off from my view.

In my efforts to compensate for this, I created the custom resolution (1812 x 1020), so that after the edges get cut off by my TV, I see the complete desktop. However, when either program goes to full screen, it doesn't display video. This just seems buggy behavior. I realize it's probably not the QS decoder doing this, but figured some people with experience with Intel graphics might have some feedback if I'm just 'doing it wrong'.

It sounds like I'll have to live with the issues from the overscan, and just keep everything at 1920 x 1080. hopefully someday Intel can get this working correctly.

WMC and maybe JRiver switch to full screen mode which may be different than the driver settings for desktop. The TV might not like the different resolution.
FYI resolution is made from width, height, refresh rate and timing (blanking properties).

You didn't write if the output is analog or digital.
The TV might think that an analog connection is not a PC.
In this case you're out of luck.

I'd stick with the newer driver. It fixes a few issues.

BTW, what's AVR?

Maybe I'll play around and see if some combination of refresh rate and timing works with the resolution I need. The Intel software keeps selecting 59Hz instead of 60, so maybe I just need to leave it at that, but my TV claims to handle 23, 24, 29,30, 59,60Hz, so who knows.

I'll reinstall the latest driver again.

As babgvant said Audio Video Receiver.

Sorry, I forgot your native languauge isn't English, and that acronym might be unknown to you.

Thanks again.

karl_lillevold
27th June 2012, 19:17
Have you tried using a DVI connection?
Motherboard has HDMI only. Besides, I need this to bitstream HD audio formats to my AVR (Audio/Video Receiver...) anyway.

egur
27th June 2012, 19:17
Just had a long day, I know what an AVR is (and own one too).
By default, many AVRs will underscan the image for 1080p input.
My own projector (720p) is connected to an Onkio 608 AVR. The AVR defaulted to underscan.

andyvt
27th June 2012, 19:25
Motherboard has HDMI only. Besides, I need this to bitstream HD audio formats to my AVR (Audio/Video Receiver...) anyway.

Two cables usually works fine, so it might be worth a shot to see if you see the problem going direct into the TV.

karl_lillevold
27th June 2012, 19:31
Two cables usually works fine, so it might be worth a shot to see if you see the problem going direct into the TV.
Yes, I have tried this too. Doesn't help. Tried a different TV as well (Vizio LCD) - same problem.

andyvt
27th June 2012, 19:35
Yes, I have tried this too. Doesn't help. Tried a different TV as well (Vizio LCD) - same problem.


AFAIK, the levels are determined from the preferred values set in the EDID. So it's not strange that it doesn't use full (you can select it in the settings dialogs, just doesn't stay that way) over HDMI, but it's weird that your TV expects it to (or am I just assuming this part?).

karl_lillevold
27th June 2012, 20:05
AFAIK, the levels are determined from the preferred values set in the EDID. So it's not strange that it doesn't use full (you can select it in the settings dialogs, just doesn't stay that way) over HDMI, but it's weird that your TV expects it to (or am I just assuming this part?).
I don't know what's common. All I know is my Samsung DLP TV requires Full range RGB. I can see a big difference when switching between Limited and Full with all the ATI cards I have owned. Intel looks gray and flat - no matter the setting, and exactly like Limited RGB with the ATI cards.
Similarly, I have to set my PS3, Xbox 360, and Apple TV all to Full range to avoid gray blacks. All use HDMI.

andyvt
27th June 2012, 21:16
I don't know what's common. All I know is my Samsung DLP TV requires Full range RGB. I can see a big difference when switching between Limited and Full with all the ATI cards I have owned. Intel looks gray and flat - no matter the setting, and exactly like Limited RGB with the ATI cards.
Similarly, I have to set my PS3, Xbox 360, and Apple TV all to Full range to avoid gray blacks. All use HDMI.

I used to have a Samsung DLP which expected RGB full, but it was DVI and the driver detected the correct colorspace.

You can use a tool like moninfo (http://entechtaiwan.com/util/moninfo.shtm) to examine the EDID, maybe you could figure out a way to override it on the PC. If not, an HDMI Detective can do that (obviously the right solution is for Intel to make the driver more flexible here).

nevcairiel
27th June 2012, 21:18
Its a known bug in the Intel driver, in some HDMI configurations it just refuses to output full range, i have the same problem (or had, use a dedicated GPU now). Even temporarily changing the setting didn't do anything, nevermind the issue that the setting didn't stick.

andyvt
27th June 2012, 21:21
Its a known bug in the Intel driver, in some HDMI configurations it just refuses to output full range, i have the same problem (or had, use a dedicated GPU now)

Agreed, but since [AFAIK] the behavior is EDID based there are potential workarounds available.

Obviously the best solution is for Intel to 1) fix the problem 2) provide a workable way for end-users to override the default behavior if they don't like it.

JustinChase
28th June 2012, 00:06
Maybe I'll play around and see if some combination of refresh rate and timing works with the resolution I need.

I'll reinstall the latest driver again.


I kept playing around, and discovered a solution. I had been setting the corrected resolution (1812 x 1020) using the underscan slider, then selecting "center" as the scaling choice. this actually changes the resolution, and was killing the full screen players.

I changed the scaling choice from "Center" to "Customize aspect ratio", which let me keep the resolution at 1920 x 1080, then I moved the sliders to 55%, hit apply, and my desktop appears correct, but everything sees it as 1080. I've tried both players, with several videos and some music, and so far so good. I've tried starting with the AVR off, then turning it on, and turning it off while playing, etc. i've restarted, and so far, I get my desktop all visible, and everything else seems to be working good.

rtabrah
28th June 2012, 08:41
Welcome!
Please post the link in this thread.


Thanks Eric. Thread is here: http://forum.doom9.org/showthread.php?t=165249

egur
28th June 2012, 09:03
@JustinChase
Does your AVR perform scaling or just sends the video 'as is'?
Mine performs scaling so I can set a single output resolution for all sources.
What happens if you send 1680x1050, Does it still crop the image?
If things looks good, it might be the best quality option for your setup. 1080p media will look almost the same as there's a high quality algorithm for downscaling.
Also does the TV (bypass AVR) accept 1680x1050?

iSeries
28th June 2012, 15:34
@JustinChase: I have learned to live my overscan on my DLP TV. I have expanded the taskbar to double height. Most of the time I manage fine... but it is annoying still. My biggest problem with the Intel HD Graphics on my DLP is that I can not get it to work with Full RGB, resulting in gray blacks. There is no way to resolve the problem except use a discrete graphics card. Intel support has no answer either. http://communities.intel.com/thread/29420 I was curious if you can get Full RGB to work with your TV?

Full RGB works and sticks if you create custom resolutions.

CiNcH
10th July 2012, 14:53
There's very little programmable code that runs in the Intel GPU, most of the decoding/emcoding/VPP is done by ASIC (fixed function HW). That's why its so fast even when compared to a 250W GPU.
AnandTech did a performance test with Ivy Bridge (http://www.anandtech.com/show/5773/intels-ivy-bridge-an-htpc-perspective/6). My feeling is that the EU usage is quite high for a DXVA2 native decoder without VPP in shaders. 1080i60 and 1080p60 seem to consume about the amount of GPU time. So deinterlacing is performed by an ASIC? But what is causing the almost 50% usage?

nevcairiel
10th July 2012, 15:03
But what is causing the almost 50% usage?

The combination of decoding, converting to RGB, and displaying, i guess. It also doesn't explicitly say that all post-processing was off now that i read it again, or which EVR-CP settings were used (should've maybe used plain EVR for better comparison). EVR-CP does all its scaling (including 4:2:0 to 4:4:4 to RGB) in shaders, so even if you run 1080p it got something for the shaders to do, while plain EVR would've avoided that and let the GPUs hardware scaler do that.

Well, too bad they didnt do a plain EVR comparison.

egur
10th July 2012, 15:16
Yes, both MadVR and EVR-CP are EU hogs because they do scaling using shader language...
Too bad DXVA is very limited with respect to scaling...

The deinterlacing itself (and other HW/ASIC video processing) need very little EU work, mostly move data around.

CiNcH
10th July 2012, 20:40
Too bad DXVA is very limited with respect to scaling...
DXVA scaling is applied, when I pass a texture and a rectangle to the EVR mixer that is not the same size as the source, right? What type of scaling is applied?

EVR-CP in MPC-HC does not necessarily use the shaders to scale the image. It can also take advantage of the bilinear D3D scaler. Dunno where this is being calculated though. I thought that EVR-CP with the bilinear D3D scaler being set does not use any more GPU than the standard EVR...

egur
10th July 2012, 20:52
DXVA scaling is applied, when I pass a texture and a rectangle to the EVR mixer that is not the same size as the source, right? What type of scaling is applied?

EVR-CP in MPC-HC does not necessarily use the shaders to scale the image. It can also take advantage of the bilinear D3D scaler. Dunno where this is being calculated though. I thought that EVR-CP with the bilinear D3D scaler being set does not use any more GPU than the standard EVR...

EVR will use the best scaler available (driver decides what algorithm). In SandyBridge/IvyBridge it's a context adaptive 8 tap scaler (similar to Lanczos4 but less ringing artifacts and same sharpness).
D3D can scale images using bi-linear - one of the worst quality scaling algorithms.
Scaling quality is very clear when scale is factor is large and the original image is sharp. A blurred image will scale to blurred image in all algorithms :)

JohnPeterson
13th July 2012, 01:53
For example post 302 (http://forum.doom9.org/showthread.php?p=1546599#post1546599) gives instructions about Virtu settings. What is not mentioned is if the media player (mpc-hc.exe in my test) should "Work in D-mode" or "Work in I-mode" in Virtu MVP. I'm guessing I-mode to present the iGPU to the application when it asks for a GPU?

The Virtu MVP Installation Guide (http://download.asrock.com/manual/virtu/Z77%20Pro3/English.pdf) is ambiguous about this setting, "Select “Work in D-mode” or “Work in I-mode” according to your needs." The apparent ambiguity may be because the answer is simple, "Work in D-mode" presents the dGPU to the application and "Work in I-mode" present the iGPU to the application. (It's less ambiguous about which DVI slot to use, "We recommend using d-Mode [connect display to dGPU] for better 3D performance", and that is what I do.)

Both "Work in D-mode" and "Work in I-mode" display the Virtu MVP logo in the rendering window. The earlier option gives the ffdshow.ax Info "Decoder: libavcodec h264" and the later option "Decoder: Intel® QuickSync" which is expected if the setting does what I've written above that I guess it does.

The CPU/GPU usage for mpc-hc.exe (from ProcessHacker.exe) is 5%/6% in both cases. Why is the CPU usage not closer to 0 when decoding through QSV? When decoding through msmpeg2vdec.dll and dxva2.dll through iGPU/dGPU the CPU usage is around 1.00%/0.75% and GPU usage around 5%/3%. The sample is 1080p x264.

Thanks!

Virtu MVP 2.1.114.22585
AMD Catalyst 12.6
Intel HD Graphics driver 8.15.10.2696 2012-03-19
MPC-HC 1.6.1.4087
ffdshow 4466 2012-07-02
Process Hacker 2.27-4965 (GPU usage from Node 0 of 0-9)
Windows 6.1.7601 x64
Asus P8Z77-M Pro
Intel i7-3770K
AMD Radeon 6870

Keiyakusha
13th July 2012, 04:04
Maybe I'm wrong but to me its pretty clear and require no explanation. D mode = work on Discrete GPU, I mode = work on Intel. So you need "I" because quicksync is under it.
Not sure about CPU load but today decoding doesn't load cpu much anyway so using such things like Virtu only for that is an overkill imho. Also Virtu is a whole another framework, maybe it eats your CPU cycles. + drivers for both graphics are functioning + QS expected to eat more resources if compared to DXVA (classic, not copyback)

BTW dont know about ATI but with Nvidia it is not worth to use Virtu not only because it doesn't saves CPU cycles more than simpler methods, but it doesn't saves power too because it turns Discrete GPU in 2nd or 3rd power state (dont remember ) even if you don't use it. And it makes seeking slower.
Using DXVA only (classic or CB) turns Nvidia in 2nd power state but never 3rd + no load on CPU and nice seeking, no additional complication levels no anything. Works perfect - this is what I use.
Alternative would be connect display to Intel and use QS, and run your games and whatever under Virtu, but its buggy, you can google reviews.

JohnPeterson
13th July 2012, 04:19
Can you suggest a command line benchmark for decoding performance? For example VLC (or another program) commands that plays a video and present benchmark results. Playback at maximum framerate presenting the fps as benchmark result, or playback at fixed fps presenting the CPU/GPU usage as result.

(I prefer a command line benchmark tool to be able to copy and paste the command and output to make the test and results as unambiguous as possible.)

I would be interested to compare the decoding cases:
dGPU ffmpeg.dll libavcodec
iGPU ffmpeg.dll libavcodec
dGPU msmpeg2vdec.dll/dxva2.dll
iGPU msmpeg2vdec.dll/dxva2.dll
iGPU IntelQuickSyncDecoder.dll
The iGPU tests with Virtu MVP I-mode and without Virtu (display connected directly to iGPU). The dGPU tests both without Virtu MVP and in Virtu MVP D-mode. This will show the amount of Virtu overhead.

Keiyakusha
13th July 2012, 04:28
If you ask me - no sorry, i don't know commandline tools for this task.

Btw I think one of us is confused a bit. What this means?
dGPU ffmpeg.dll libavcodec
iGPU ffmpeg.dll libavcodec

these are software decoders they will run on CPU. You shouldn't see any difference whatever you select dGPU or iGPU
And if you just want to compare different hardware decoders, there is big thread about it on this forum. Not sure if virtu involved though

JohnPeterson
13th July 2012, 04:30
It tests if Virtu has overhead. And they could be three tests, dGPU without Virtu, dGPU with Virtu D-mode, iGPU with Virtu I-mode.

Keiyakusha
13th July 2012, 04:34
I still not quite understand. lets say you open file.mkv with your measure_cmd_tool.exe that will use ffmpeg. you will set some mode whatever I or D for this tool in virtu. But they will never request any GPU-related stuff so virtu won't do anything...

JohnPeterson
13th July 2012, 04:40
It's expected to do practically nothing. But it doesn't do literally nothing as Virtu MVP displays the In-Game Icon, showing that it intercepts the EVR.

Keiyakusha
13th July 2012, 04:48
But you see, if you run player under virtu, not measure tool -that's different and complicated matter. Player have renderer which works with GPU. Someone with better understanding of how virtu works internally maybe can point some way to test overheads and stuff but I expect quite an overhead. If you set player in I mode you make it run on another GPU but in the same time you want to see video on main GPU (the one which is connected to display), so some process should transfer data so in can be put on the screen. Also this is may be the cause of slow seeking.
You probably can just connect display to Intel, measure QS performance, then connect display to DiscreteGPU, measure QS performance with Virtu. And you can use GraphStudio to measure it (or maybe just run in player? depends on what you actually want) just make sure you select some and same renderer in both cases. That won't do what you want?

JohnPeterson
13th July 2012, 04:53
You probably can just connect display to Intel, measure QS performance, then connect display to DiscreteGPU, measure QS performance with Virtu.?That's also interesting. I find all tests that you have mentioned interesting.

JohnPeterson
13th July 2012, 05:04
Not sure about CPU load but today decoding doesn't load cpu much anyway so using such things like Virtu only for that is an overkill imho.I agree and I would like to ask again for a comment on the question "What about QSV encoding through ff_vfw.dll?" in post 1094 (http://forum.doom9.org/showthread.php?p=1570894#post1570894). Encoding h264 is five times as demanding as decoding h264 and that makes QSV interesting. Currently there is a lack of availability of QSV encoding libraries with the result that popular encoding software such as VLC and XSplit is lacking a QSV encoding option.

nevcairiel
13th July 2012, 06:58
I think Eric has already commented that he has no time/plans for encode support at this time.

egur
13th July 2012, 10:33
For example post 302 (http://forum.doom9.org/showthread.php?p=1546599#post1546599) gives instructions about Virtu settings. What is not mentioned is if the media player (mpc-hc.exe in my test) should "Work in D-mode" or "Work in I-mode" in Virtu MVP. I'm guessing I-mode to present the iGPU to the application when it asks for a GPU?

The Virtu MVP Installation Guide (http://download.asrock.com/manual/virtu/Z77%20Pro3/English.pdf) is ambiguous about this setting, "Select “Work in D-mode” or “Work in I-mode” according to your needs." The apparent ambiguity may be because the answer is simple, "Work in D-mode" presents the dGPU to the application and "Work in I-mode" present the iGPU to the application. (It's less ambiguous about which DVI slot to use, "We recommend using d-Mode [connect display to dGPU] for better 3D performance", and that is what I do.)

Both "Work in D-mode" and "Work in I-mode" display the Virtu MVP logo in the rendering window. The earlier option gives the ffdshow.ax Info "Decoder: libavcodec h264" and the later option "Decoder: Intel® QuickSync" which is expected if the setting does what I've written above that I guess it does.

The CPU/GPU usage for mpc-hc.exe (from ProcessHacker.exe) is 5%/6% in both cases. Why is the CPU usage not closer to 0 when decoding through QSV? When decoding through msmpeg2vdec.dll and dxva2.dll through iGPU/dGPU the CPU usage is around 1.00%/0.75% and GPU usage around 5%/3%. The sample is 1080p x264.

Thanks!

Virtu MVP 2.1.114.22585
AMD Catalyst 12.6
Intel HD Graphics driver 8.15.10.2696 2012-03-19
MPC-HC 1.6.1.4087
ffdshow 4466 2012-07-02
Process Hacker 2.27-4965 (GPU usage from Node 0 of 0-9)
Windows 6.1.7601 x64
Asus P8Z77-M Pro
Intel i7-3770K
AMD Radeon 6870

QuickSync will work if it sees an Intel GPU.
With Virtu you have 2 options:
D-mode - screen connected to dGPU (Nvidia/AMD). Must add player/application to Virtu's application list so QS will see the active GPU as Intel.
I-mode - screen connected to motherboard (iGPU). Must NOT add player to Virtu's application list as the iGPU is the active GPU.

Regarding performance. Lower bitrate clips will be faster in SW due to lower memory traffic. Should check CPU utilization of player and not the entire system. Other running apps (e.g. browsers) can lower performance a little (will not make viewing unwatchable).
Power aware users should also know that the dGPU can take a lot more power than the CPU or the iGPU, so looking at the CPU utilization alone is not a good way to measure power usage.

For the record, I have no plans to support encoding in the near future.

Keiyakusha
13th July 2012, 15:33
D-mode - screen connected to dGPU (Nvidia/AMD). Must add player/application to Virtu's application list so QS will see the active GPU as Intel.
I-mode - screen connected to motherboard (iGPU). Must NOT add player to Virtu's application list as the iGPU is the active GPU.

I think this is not what he asks. If you have display connected to Nvidia/AMD, you have to add player to Virtu and select I-mode (http://i.imgur.com/Uj0VI.png).
You can apply either mode regardless of how display is connected. If we select D-mode instead, QS won't be available because this mode just assigns selected application to be processed by selected GPU.

While we at it, am I right that "H" stands for HyperFormance? Any benefits/drawbacks of using it? (I can't make that column wider to see what this "H" actually is :D). What about Virtual Vsync?

JohnPeterson
13th July 2012, 18:54
I think this is not what he asks. If you have display connected to Nvidia/AMD, you have to add player to Virtu and select I-mode (http://i.imgur.com/Uj0VI.png).Thank you for pointing that out. To avoid confusion it might be better to say "connect display to iGPU/dGPU" instead of "using i-Mode/d-Mode" if there's a chance that it's confused with the Virtu MVP setting.
While we at it, am I right that "H" stands for HyperFormance?Yes.
(I can't make that column wider to see what this "H" actually is :D).Me neither, the column widths are locked in Virtu MVP -> Applications.
Any benefits/drawbacks of using it?No benefit for video playback, so it's best to disable it to avoid unintended effects.
What about Virtual Vsync?No benefit over regular vsync for video playback.
Regarding what HyperFormance and Virtual Vsync does in detail I've made a post (http://forums.anandtech.com/showthread.php?p=33675891#post33675891) about that that I believe is helpful.

egur
14th July 2012, 09:16
Sorry, I didn't test with Virtu MVP. My reports so far were relevant to Lucid Virtu (not MVP).
With MVP you should assign the players to I-mode.
I'll try to get a copy soon and test myself if things are working well.
Note that with Virtu it's either working with the iGPU or the dGPU. No hybrid solutions - can't have the decoder use QS and the renderer use the dGPU (e.g. for best MadVR experience).
Maybe Virtu should add a mode were both cards are enumerated in D3D9 to allow this flow. I'll try to contact them.

CruNcher
15th July 2012, 14:05
Sorry, I didn't test with Virtu MVP. My reports so far were relevant to Lucid Virtu (not MVP).
With MVP you should assign the players to I-mode.
I'll try to get a copy soon and test myself if things are working well.
Note that with Virtu it's either working with the iGPU or the dGPU. No hybrid solutions - can't have the decoder use QS and the renderer use the dGPU (e.g. for best MadVR experience).
Maybe Virtu should add a mode were both cards are enumerated in D3D9 to allow this flow. I'll try to contact them.

That would be awesome though in the case above i would wonder who would prefer MadVR above your Scaling (Performance/Quality/Power) ;)

egur
15th July 2012, 14:08
That would be awesome though in the case above i would wonder who would prefer MadVR above your Scaling (Performance/Quality/Power) ;)

The best would be MadVR with SNB/IVB scaler and not rely on EVR. I assume that EVR stayed the same in Win8.

nevcairiel
15th July 2012, 14:15
The problem with the GPU scaling is that its pretty limited to which pixel formats it can scale, which limits its usability in madVR. madshi once told me when asking about this that the GPU can only really be relied upon scaling NV12 properly, they usually fallback to other (cheaper) algorithms on other content.

Also, i personally prefer a tad bit softer scaling then Lanczos4. On HD content you don't notice the difference, but on SD content it helps hiding some of the source artifacts.
There is no one scaling algorithm that is good for everyone (at least none that is fast enough for real-time processing)

CruNcher
15th July 2012, 14:31
Yep Madshi integrating your scaler via MediaSDK would rock, though being in that Multi GPU enviroment on NT 6 myself now it feels odd also alot of Devs seem to have issues handling it right already found several issues in applications where ENcoding for example stops working even if the encoder is correctly selected (though using a cmdline encoder works) and then the whole trouble with what is the Primary Device and the Primary Driver and what the secondary really funny it gets with apps that are hooking into WDM ;)
I hope Win 8 will ease that a little :D

Having control of all inputs in that easy user way is powerful though, but i still wonder why intel is limiting the encoder MediaSDK to a physical output what is the reason for that ? :)

I hope Virtu soon gets replaced by Nvidias Synergy looking @ Optimus and how advanced it is in the Driver by now would be much better have everything from 1 hand which is working on that low level all the time and can better optimize @ the Driver stack then just manipulating on LucidLogix End.

On the other side the Idle Power factor is slowly vanishing seeing where AMD headed to the whole time and Finally Nvidia is heading to too, Kepler was way about time and they did nice work imitating AMD/Intel ;)

And Intel is driving the other direction gaining more Performance, everything perfect for end consumers lot of choice with acceptable compromises so everyone can survive :)
Now if we get the interaction layers between all those better tweaked it would be gigantic and in those terms i have to say LucidLogix has it's place ;)

So yeah of course HyperPerformance is a dream combining all different Vendor Hardware for 1 result, though in easy to manage end user ways i would say for D3D @ least we aren't that far away anymore from it and LucidLogix does a very good job here ;)

egur
15th July 2012, 19:13
HW scaling doesn't have to go through Media SDK - EVR doesn't use it. Media SDK has a few limitions to be properly used in a renderer, better use the D3D/DXVA API for that.

The MSDK encoder is an example - people can integrate the relevant parts (sources are open) to their application. The output of the encoder API is to memory not disk.

malmsteen81
15th July 2012, 19:43
hi guys, if i buy a z68's motherboard whit i7 2600k can i use quicksync for decoding video with ffdshow and use a nvidia gts 450 for the svp interpolation and madvr? i know that quicksyng is disable with p67.

thanks

egur
15th July 2012, 20:22
hi guys, if i buy a z68's motherboard whit i7 2600k can i use quicksync for decoding video with ffdshow and use a nvidia gts 450 for the svp interpolation and madvr? i know that quicksyng is disable with p67.

thanks

Yes you can do that, but you'll need to enable the Intel GPU by extending the desktop to it. See here (http://forum.doom9.org/showthread.php?p=1532786#post1532786)

malmsteen81
16th July 2012, 07:55
ok thanks, other question, is the sharpness filter a normal edge enhancement or detail enhancement?

egur
16th July 2012, 08:07
ok thanks, other question, is the sharpness filter a normal edge enhancement or detail enhancement?

No, it's much more sophisticated than a simple filter. Best quality is gained by setting the strength around 50%. Don't use max settings.

CiNcH
16th July 2012, 21:19
egur, how many 1080i streams is the media sampler fixed function unit able to deinterlace and scale? There is always the talk about how many 1080p H.264 streams the fixed function decoder can handle. But no talks about 1080i at all. Do you have a clue?

egur
17th July 2012, 09:02
egur, how many 1080i streams is the media sampler fixed function unit able to deinterlace and scale? There is always the talk about how many 1080p H.264 streams the fixed function decoder can handle. But no talks about 1080i at all. Do you have a clue?

I didn't benchmark deinterlacing yet.
Actual performance is affected by memory speed, bitrate (decoder performance) and what the renderer does amongst other things. iGPU clock speed is also relevant - may not work at turbo clocks when CPU is very busy.
Also matters if you output 60p or 30p from the deinterlacer.

CiNcH
17th July 2012, 09:56
What I am talking about is PiP for live broadcasts, so H.264 1080i (MBAFF) at bitrates of about 15mbps. And of course I want to have highest quality deinterlacing with frame-doubling (50p for Europe). Let's assume we use standard EVR, memory is a standard DDR3-1600 and everything runs at stock speed. Let's also assume an otherwise idle CPU and GPU. Do you think that both, HD2500 and HD4000, can handle 2 such streams in parallel for PiP? Just your feeling... I have no feeling about that at all.

egur
17th July 2012, 10:30
On the system you specified, if DI is performed in EVR, it should work for 2 streams maybe even more.
I just tested this on an IvyBridge laptop (HD 4000) with 1600MHz ram.
Used a 12bmps mbaff stream 1080i (60i).
Was borderline working with 5 streams. 4 streams were perfect.
Used LAV decoder as ffdshow doesn't like appear more than once in the graph.
Used GraphStudioNext with:
* LAV splitter source
* LAV video decoder (QuickSync)
* EVR

CiNcH
17th July 2012, 10:37
Thanks for your test!

Used a 12bmps mbaff stream 1080i (60i).
Was borderline working with 5 streams. 4 streams were perfect.
And all of them went through the FF deinterlacer with 60p output, right?

I just tested this on an IvyBridge laptop (HD 4000) with 1600MHz ram.
Do you think that the throughput is significantly lower with a HD2500? How much were the EU's occupied? Guess the FF blocks are the same for HD2500 and HD4000 based IVB processors?

On the system you specified, if DI is performed in EVR, it should work for 2 streams maybe even more.
Doesn't EVR also trigger the FF deinterlacer in DXVA mode? Is it so much different from the result with the Quick Sync API then?

egur
17th July 2012, 11:38
And all of them went through the FF deinterlacer with 60p output, right?
yes, output was 60p on all concurrent streams - this is the default for EVR.

Do you think that the throughput is significantly lower with a HD2500? How much were the EU's occupied? Guess the FF blocks are the same for HD2500 and HD4000 based IVB processors?

Shouldn't be much lower, most of the work is done in FF which is identical between HD 2500 and 4000.

Doesn't EVR also trigger the FF deinterlacer in DXVA mode? Is it so much different from the result with the Quick Sync API then?
Same HW is used by both.
Note that I used EVR to deinterlace the streams. Using ffdshow's deinterlacing uses more system resources (and ffdshow usually doesn't work in multiple instances in a graph)
I also forgot to mention that the laptop was a dual core (4 threads) i5 IvyBridge CPU.

CiNcH
17th July 2012, 11:43
Pretty cool results! Thanks!

egur
17th July 2012, 11:51
It was better than I expected.
Probably a quad core could do better since the dual core (35W, 2.4GHz when stressed) hit 100% utilization with 5 streams.

CiNcH
17th July 2012, 12:02
Probably a quad core could do better since the dual core (35W, 2.4GHz when stressed) hit 100% utilization with 5 streams.
Do you have a clue what is causing this much CPU utilization?

egur
17th July 2012, 12:07
Do you have a clue what is causing this much CPU utilization?
Memory copy from GPU ram to system RAM (and system RAM to system RAM as well). this wasn't a DXVA test. DXVA will behave much better.

CiNcH
17th July 2012, 12:13
Ah, I see. Didn't know that Quick Sync always "copies-back".

egur
17th July 2012, 12:20
Ah, I see. Didn't know that Quick Sync always "copies-back".

Now it's the only option and one of it's main features - allows existing SW flows to work easily.
Pure DXVA is the most efficient but has many limitations. DXVA output is my next feature, no ETA when it will be delivered and probably only LAV will support this. LAV's developer (nevcairiel) must agree to do it before I even start designing this feature...
In ffdshow it will be extremely complex due to it's internal video processing pipeline which will not work with DXVA surfaces. ffdshow has a DXVA mode which is not very stable.

nevcairiel
17th July 2012, 13:20
I could support DXVA Output, the question is how the interface would look like.
I don't know if you have read up on the subject yet, but i need to be able to provide a Sample Allocator that associates outgoing media samples with DXVA surfaces. For the "normal" DXVA codec this is done by allocating the surfaces inside this allocator, and then telling the codec to decode onto those surfaces, and thus always having a fixed link between the samples and the surfaces. Its important to know that the renderer may buffer a few of these surfaces, so they can only be re-used when the renderer released them.
Only you can tell me if you have such fine-grained control over the decoding process.

An "easy" solution would be to keep a number of delivery surfaces internally (say 4), and copy the video frame from the decoders surface onto one delivery surface. I'm not sure how much of a performance hit that would be, but it would also allow blending subtitles on the surface without the typical corruption ffdshow creates when doing that (because it does it on the decoders surfaces, which are still used as reference frames). In any case it should be significantly faster then copying to the system RAM.
In this model, your QS decoder would just tell me about the decoders surface, and i would copy onto my delivery surface and send it to the renderer. All communication with the renderer is handled by me, and you only have to output the surfaces - and you can let the MSDK manage the surfaces in any way it wants.

egur
17th July 2012, 13:57
What you're saying is already known to me (no surprises :) ).
Having 2 sets of surfaces (1 in QS and 1 in LAV) is an interesting option.
I thought that I should provide an option to output already copied D3D surfaces so subs could be placed.
The decoder allocator should be created by me. I need to make a small change to the exiting D3D allocator to create DXVA compliant media samples. I have sample code for that in the media SDK.
The output struct used today will be changed to add the DXVA media sample + flags that specify its properties (original/copy, D3D/system ram, etc).
Probably forgot a few things, I'll start working on it soon.

nevcairiel
17th July 2012, 14:04
Well if you want to handle the allocator, thats fine by me, i just need a function i can call to get the allocator (my DXVA Decoder exposes InitAllocator(IMemAllocator **ppAlloc)), and i also need to be able to detect without a doubt if we're in "DXVA Native" mode, or in CopyBack mode, you cannot switch between those at runtime, i need to tell the renderer this directly after connection.

While we're on the topic, it would be great to have a function that completely re-inits the decoder without it losing its D3D interfaces, so that the re-init can be done during exclusive mode without much trouble (for example in madVR exclusive mode, where all the interfaces are obtained before playback, exclusive mode is entered, and when we re-init now the interfaces won't be available anymore)
Last i tested, just calling InitDecoder(..) alone wasn't enough to say switch between input formats, i had to re-create the whole thing. I should probably try that again before making wild claims, though, its been a while. ;)

egur
17th July 2012, 15:54
initDecoder can only be called once ATM. I can change this behavior but I need a good incentive.
The decoder gets a hard reset on every seek, so that's one option.
If the new stream belongs to the same fourcc but have different properties my decoder will recover from this, it might need to reallocate all the surfaces.

Reverting to a new codec or different fourcc (impacts stream processing) is currently not supported.

I may not understand the use case you're referring to.

For full screen exclusive mode, I need the D3D device manager from the renderer. This functionality exists via the SetD3DDeviceManager method.

nevcairiel
17th July 2012, 17:01
Playback starts outside of exclusive mode with madVR and everything is fine, madVR goes into exclusive mode during playback, and the the video format changes (maybe because the user changed the tv channel or something like that), and a re-init of the QS decoder is required.
Because madVR is in exclusive mode, and the QS decoder discards all D3D interfaces, you cannot re-init, and playback just fails (or falls back to software).

I guess i can always create my own D3D Device Manager (before entering exclusive mode) and supply that to the QS decoder, if nothing else helps.

egur
17th July 2012, 20:32
Playback starts outside of exclusive mode with madVR and everything is fine, madVR goes into exclusive mode during playback, and the the video format changes (maybe because the user changed the tv channel or something like that), and a re-init of the QS decoder is required.
Because madVR is in exclusive mode, and the QS decoder discards all D3D interfaces, you cannot re-init, and playback just fails (or falls back to software).

I guess i can always create my own D3D Device Manager (before entering exclusive mode) and supply that to the QS decoder, if nothing else helps.

To be on the safe side, you should destroy QS and launch a new one, performance-wise it would be almost the same. You should query the renderer as soon as you connect to it and retrieve his IDirect3DDeviceManager9 interface.
Here's the code from the ffdshow proxy class:


void TvideoCodecQuickSync::setOutputPin(IPin *pPin)
{
if (!ok) { return; }

if (NULL == pPin) {
m_QuickSync->SetD3DDeviceManager(NULL);
}

IDirect3DDeviceManager9 *pDeviceManager = NULL;
IMFGetService *pGetService = NULL;
HRESULT hr = pPin->QueryInterface(__uuidof(IMFGetService), (void**)&pGetService);
if (SUCCEEDED(hr)) {
hr = pGetService->GetService(MR_VIDEO_ACCELERATION_SERVICE, IID_IDirect3DDeviceManager9, (void**)&pDeviceManager);
}

m_QuickSync->SetD3DDeviceManager((SUCCEEDED(hr)) ? pDeviceManager : NULL);

if (pDeviceManager) { pDeviceManager->Release(); }
if (pGetService) { pGetService->Release(); }
}


You should cache the IDirect3DDeviceManager9 for future use in case you need to reinit QS (or your DXVA decoder).

BTW to support QS under FSE in Windows Media center, after connecting to the renderer, getting the IDirect3DDeviceManager9 interface and sending it to QS decoder, it will not fail in the TestMediaType function because it now it can create the HW acceleration devices.

Don't create your own IDirect3DDeviceManager9 - it's meaningless. I try to create one if not given one, but it will fail under FSE.

andyvt
17th July 2012, 20:38
BTW to support QS under FSE in Windows Media center, after connecting to the renderer, getting the IDirect3DDeviceManager9 interface and sending it to QS decoder, it will not fail in the TestMediaType function because it now it can create the HW acceleration devices.



Will this also provide support in other FSE players?

nevcairiel
17th July 2012, 20:45
Don't create your own IDirect3DDeviceManager9 - it's meaningless. I try to create one if not given one, but it will fail under FSE.

Like i explained above, this was only for renderes that are not EVR and thus do not supply their IDirect3DDeviceManager9.
And of course it only works if you start outside of FSE, so you can create it and keep it for later.

Anyway, to support this flow i still need to re-work some of the decoders internals, right now i assume it has everything it needs during connection of the input pin. I'll do it at some point.


Will this also provide support in other FSE players?
If they use EVR, then yes.

egur
17th July 2012, 20:55
OK, I see your point. I only tested FSE with EVR as MadVR didn't cause any issues. Your use case is new to me.
I'll change initDecoder so it would work multiple times while retaining the IDirect3DDeviceManager9 interface from the last instance.

Can you recommend a way to test this under real world conditions?

nevcairiel
17th July 2012, 21:00
If its alot of effort don't bother with it. Testing in real-world is also not easy, don't think i have a setup off-hand that would need that.
I was testing something when i ran into the problem a while ago, where i modified LAV to re-init the decoder on live tv channel changes (in between the same codec, different codec causes a full graph rebuild), and it froze under madvr, but i reworked the code.

If it ever becomes a real problem for me, i can always provide it with a device manager.

egur
17th July 2012, 22:03
The effort may not be large but unable to properly test things usually leads to delays. When I get some free time I'll give it a shot.

egur
18th July 2012, 12:48
Will this also provide support in other FSE players?

Most FSE enabled players turn to FSE after the movie is loaded. So far the exception is Windows Media Center which is always in FSE.
If the renderer is EVR, it can provide the mentioned interface so HW acceleration devices can be created under FSE.
I guess when Microsoft designed FSE they didn't have DXVA in mind as the above inconvenient flow looks like an ugly patch.

andyvt
18th July 2012, 13:28
Most FSE enabled players turn to FSE after the movie is loaded. So far the exception is Windows Media Center which is always in FSE.


SageTV is another exception (or at least it can be).

nevcairiel
18th July 2012, 13:37
I guess when Microsoft designed FSE they didn't have DXVA in mind as the above inconvenient flow looks like an ugly patch.

The generic concept of DXVA always asks the renderer for the Interfaces to perform decoding, you never want to create your own.

Its only those render-independent DXVA things that causes such issues, the "copy back" solutions. ;)
Luckily NVIDIA was smarter and lets you access the HW decoder without a D3D device. Even works without a screen connected at all. Intel should totally do that ;)

STaRGaZeR
18th July 2012, 17:05
intel should totally do that ;)

;) ;)

egur
18th July 2012, 21:59
Yes, it's in my wish list - in the top 3.

wanezhiling
21st July 2012, 10:22
win7 x64
I3 2330M
HD3000
Driver 2761


http://pan.baidu.com/netdisk/singlepublic?fid=686481_1035451090
Corrupt image, tested with latest ffdshow QS x86, latest LAV QS x86, latest PotPlayer QS x86

PS: Native DXVA and DXVA CB are fine.

egur
21st July 2012, 15:13
win7 x64
I3 2330M
HD3000
Driver 2761


http://pan.baidu.com/netdisk/singlepublic?fid=686481_1035451090
Corrupt image, tested with latest ffdshow QS x86, latest LAV QS x86, latest PotPlayer QS x86

PS: Native DXVA and DXVA CB are fine.

I'll take a look later on. Thanks.

Edit
I didn't see any corruption but I'm using a newer driver, using LAV splitter and Haali. It's also a long clip so where (time) did you see the corruption?
Which splitter was used?

wanezhiling
22nd July 2012, 14:02
I didn't see any corruption but I'm using a newer driver, using LAV splitter and Haali. It's also a long clip so where (time) did you see the corruption?
Which splitter was used?
http://i.imgur.com/Gr6vl.jpg
ffdshow rev4475 icl12
LAV 0.51.3


http://i.imgur.com/IH3gY.jpg

http://i.imgur.com/k4M5H.jpg

egur
22nd July 2012, 17:20
http://i.imgur.com/Gr6vl.jpg
ffdshow rev4475 icl12
LAV 0.51.3


http://i.imgur.com/IH3gY.jpg

http://i.imgur.com/k4M5H.jpg

This sort of corruption is caused from a bad Media SDK DLL installation.
Install the driver from Intel's download center.

NikosD
22nd July 2012, 20:14
Latest LAV (0.51.3) with latest Intel drivers (2792) broke H.264 HW acceleration for QS, it falls back to software for every H.264 file I tried.

HW acceleration for MPEG2, VC-1, WMV3 works good, as always.

egur
22nd July 2012, 20:39
Latest LAV (0.51.3) with latest Intel drivers (2792) broke H.264 HW acceleration for QS, it falls back to software for every H.264 file I tried.

HW acceleration for MPEG2, VC-1, WMV3 works good, as always.

These are Window 8 drivers, I don't think they work well in Win7.
Latest Win7 driver is 15.26.12.64.2761.
The 2792 belong to the 15.28 line (still in beta!) which is targeted for Window 8.
I'll give it a try on Window 7 and see if there's a fix.

Update:
Everything works with the exception of several H264 clips in my test suite. I'll try to fix this within the next few days.

Update 2:
The Win8 2792 driver is not in a good shape for everyday use. Please use 2761 or newer drivers from the 15.26.xx.xx family for both IvyBridge and SandyBridge.
I'll report the issues I've found and hopefully by Win8 launch time (Oct. 26), the driver will be in good shape.

For the sharp eyed testers out there, the 2792 driver seems to play transposed 720p (720x1280) clips on SandyBridge which no other driver managed to do. But 4K doesn't work.

wanezhiling
23rd July 2012, 10:15
This sort of corruption is caused from a bad Media SDK DLL installation.
Install the driver from Intel's download center.

Thanks, I knew where the problem was, now everything is fine.

NikosD
23rd July 2012, 10:30
For the sharp eyed testers out there, the 2792 driver seems to play transposed 720p (720x1280) clips on SandyBridge which no other driver managed to do. But 4K doesn't work.

Your last phrase gives me hope that there are Intel engineers trying to make QS of SandyBridge to work with 4K resolutions :)

This is very good!

CharlieCL
25th July 2012, 03:41
The generic concept of DXVA always asks the renderer for the Interfaces to perform decoding, you never want to create your own.

Its only those render-independent DXVA things that causes such issues, the "copy back" solutions. ;)
Luckily NVIDIA was smarter and lets you access the HW decoder without a D3D device. Even works without a screen connected at all. Intel should totally do that ;)

MS's solution is bind DXVA and EVR together. That is very limited. An ideal solution is that HW decoder can be applied for any renderers. HW decoder is not related to GPU. It is just a HW function or it is running by a special DSP. HW decoder is not a D3D device.

nevcairiel
25th July 2012, 07:07
HW decoder is not related to GPU.

Of course it is, its the GPU doing the HW decoding.

The fact of the matter is that DXVA is the only generic interface on Windows available to us, so you can complain all you want, its all we have.

However, its not all that dark as you paint it. DXVA2 is not tied to EVR (in contrast to DXVA1), in fact any renderer could implement it, its well documented on the MSDN. Heck you can even use it without any renderer at all.
The only problem you have to overcome is when the system is in D3D exclusive mode, because you can't open the required D3D interfaces, and thats where Microsoft made the link to EVR to provide these interfaces - but its again nothing thats only available to EVR, another renderer could also implement this.

egur
25th July 2012, 07:08
MS's solution is bind DXVA and EVR together. That is very limited. An ideal solution is that HW decoder can be applied for any renderers. HW decoder is not related to GPU. It is just a HW function or it is running by a special DSP. HW decoder is not a D3D device.

The interface that Microsoft defined for HW decoders is DXVA/D3D. So it is a D3D device.
There are other ways to communicate with the HW codec but they differ from between manufacturers and within models and these interfaces may not be public.
QuickSync encoder is used this way as DXVA doesn't support encoding.

Adding to Nev's DXVA limitation:
Can't create a D3D device on a headless (disconnected) GPU. Very serious limitation.

CharlieCL
25th July 2012, 18:40
DXVA2 is not tied to EVR (in contrast to DXVA1), in fact any renderer could implement it, its well documented on the MSDN.

But for a non-DXVA2 renderer the HW acceleration is disabled in decoder. The software decoder will work. The decoder will notify the video renderer that the decoder is using DXVA decoding. If a renderer does not support DXVA2, this renderer will be replaced by a default renderer. That is the problem.

I can only find the DXVA2 for decoder sample code but no DXVA2 for renderer sample code. The only available sample is EVR-CP.

nevcairiel
25th July 2012, 19:00
Your setup must be weird. When i use LAV Video in DXVA2 mode and a renderer is not capable to handle DXVA2, then LAV falls to software mode, and not the renderer is changed.

wanezhiling
25th July 2012, 19:07
If a renderer does not support DXVA2, this renderer will be replaced by a default renderer. That is the problem.
Update your LAV.

CharlieCL
25th July 2012, 20:52
Your setup must be weird. When i use LAV Video in DXVA2 mode and a renderer is not capable to handle DXVA2, then LAV falls to software mode, and not the renderer is changed.

When some media types was setup to play by MS codecs this happened. In LAV it worked in software mode.

However what I expected is to run in hardware acceleration whether the renderer is DXVA2 or not.

Why CreateD3DDeviceManager() can not be done in decoder?
And access the buffer inside the decoder from any renderer?

nevcairiel
25th July 2012, 21:03
The renderer just needs to know that its getting a D3D surface instead of just a memory buffer, thats nothing you can hide from the renderer. So it needs support for this. Nothing else makes any sense.
You can of course use LAV in DXVA2 Copy-Back mode, that way it works with every renderer, but its also slower, because you don't have direct GPU to GPU transfer anymore.

egur
25th July 2012, 21:48
However what I expected is to run in hardware acceleration whether the renderer is DXVA2 or not.

DXVA2 implies a different connection protocol than the default.
The idea is to avoid any copying between decoder and renderer.
There's no in-between solution with the exception of copy-back decoders like my decoder or LAV's DXVA copy-back mode.

Why CreateD3DDeviceManager() can not be done in decoder?
And access the buffer inside the decoder from any renderer?
It can be done - that's what I do if I don't get one from the renderer.
Note that when the renderer exist in full screen exclusive (FSE) before the decoder is created (e.g. Windows Media Player), DirectX will not allow creating any HW device, forcing the decoder to get the device manager as well as the DirectX object from the renderer.
FSE was originally made for games, too bad it was extended to video, it really complicates things.

CharlieCL
26th July 2012, 00:43
It can be done - that's what I do if I don't get one from the renderer.

Note that when the renderer exist in full screen exclusive (FSE) before the decoder is created (e.g. Windows Media Player), DirectX will not allow creating any HW device, forcing the decoder to get the device manager as well as the DirectX object from the renderer.
FSE was originally made for games, too bad it was extended to video, it really complicates things.

Good. I also tested QS in LAV under Windows 8 CP 64-bit. I believe that the HW acceleration still not worked for my renderer cause the CPU usage is still 30 ~ 40%. I unchecked the NV12 in LAV. Maybe in this case a new filter will be created to convert NV12 to RGB. When I enabled NV12 I can only capture Y plane, there is only black/white picture, the UV plane are zero.

I can switch from Windows mode to FSE. That was set by DirectX.

BTW Is QS HW decoder a thread-safe? I know it is task-safe. I can run multi-tasking player with HW enabled.

nevcairiel
26th July 2012, 06:44
The latest driver for Windows8 does not work properly with QS.
Also, if you get no colors from NV12, you must be doing something wrong, seems to work fine for every other renderer.

Regarding thread-safety, i don't know what you had in mind there. The way DirectShow works, there usually is one thread that processes one stream, so one thread for each stream. LAV and QS fully support decoding multiple streams at once, so it can run in parallel in multiple threads, if thats what you mean. Tests show that up to 4 streams work OK with the hardware, anything above makes it choke.

egur
26th July 2012, 07:40
Good. I also tested QS in LAV under Windows 8 CP 64-bit. I believe that the HW acceleration still not worked for my renderer cause the CPU usage is still 30 ~ 40%. I unchecked the NV12 in LAV. Maybe in this case a new filter will be created to convert NV12 to RGB. When I enabled NV12 I can only capture Y plane, there is only black/white picture, the UV plane are zero.

I can switch from Windows mode to FSE. That was set by DirectX.

BTW Is QS HW decoder a thread-safe? I know it is task-safe. I can run multi-tasking player with HW enabled.
Adding to Nev's response, the beta Win8 driver is not so healthy with video.
I've made some changes to my code to account for some of the failures but sadly not all of them :(

Personally, I'm too old to install a beta OS on my own machines... I'll might wait a for a few months after Win8 launch so everything is more stable.
I'll provide an ugly patch for the 15.28 drivers that allows QS to work fine with some performance penalty (limited multithreading).

nevcairiel
26th July 2012, 09:52
Just wait until Win8 release until you worry about supporting it, if the driver hasn't improved by then.

Shark007
29th July 2012, 03:45
a suggestion: instead of releasing full ffdshow builds on sourceforge, how about just releasing the x86/x64 IntelQuickSyncDecoder.dll(s)?
It is not much trouble for a user to place it into the appropriate ffdshow or LAV filters directory themselves.

If releasing the dll on sourceforge isnt a good idea, could you consider releasing the dll in the 1st post of this thread?

nevcairiel
29th July 2012, 07:07
For the record, i will not offer any support for someone that replaced the DLL in his LAV install. I release a version thats tested with LAV, and should usually also be somewhat up to date.

egur
29th July 2012, 07:16
a suggestion: instead of releasing full ffdshow builds on sourceforge, how about just releasing the x86/x64 IntelQuickSyncDecoder.dll(s)?
It is not much trouble for a user to place it into the appropriate ffdshow or LAV filters directory themselves.

If releasing the dll on sourceforge isnt a good idea, could you consider releasing the dll in the 1st post of this thread?

As QS decoder versions move forward, the ffdshow code may change as well (use new options or handle changed parameters) or at just need to recompile.
Replacing the QS DLL is not recommended and will increase my support effort needlessly.
Usually new versions of QS decoder are quickly merged into the ffdshow trunk.

Shark007
29th July 2012, 07:32
Thanks, both of you. Your response is appreciated.
perfect reasoning / explanation.

egur
30th July 2012, 19:53
Version 0.38 beta is out with the following changes:
* A fix for audio sync issues in broken streams.
* Bugfixes for broken Win8 drivers
* Better handling of incomplete sequence headers.
* Able to recover after multiple initializations. New stream must be from the same codec as the old stream. Calling InitDecoder or SetConfig will reset the decoder.
* FFDShow: Added fine grain multithreading support
* FFDShow: r4477

Note to Window 7/8 users with drivers 15.28.xx.xx:
Do not enable full multithreading support in FFDshow or player will abort playback at some point in many clips.

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)

NikosD
2nd August 2012, 07:45
Windows 8 reached final build RTM (Release To Manufacturing) yesterday and will be available on August 15th via MSDN and Technet.

The final build is 9200 (9200.16384.win8_rtm.120725-1247)

On October 26th will be available for retail customers and pre-loaded systems with Win 8.

egur
2nd August 2012, 08:08
Windows 8 reached final build RTM (Release To Manufacturing) yesterday and will be available on August 15th via MSDN and Technet.

The final build is 9200 (9200.16384.win8_rtm.120725-1247)

On October 26th will be available for retail customers and pre-loaded systems with Win 8.

Great. I'll wait a few months before even considering using it at home.

NikosD
2nd August 2012, 11:29
Judging by Metro UI, I would say to not consider it at all using Win 8 at home on a computer.

Metro UI was built for tablets and touch screens and probably I would skip that version of Windows completely, if "classic" Windows Explorer didn't exist at all.

On the other hand, we are more or less at the enthusiast community so I will definitely install Win 8 - as second system - no matter what, as soon as I get a copy in my hands - I have already seen Win 8 preview release on my older second system.

Esperado
6th August 2012, 08:06
It works ok with Lav Filter, but, when i try to use FFDSHOW, despite i have chosen intel QuickSync, FFdshow says it uses Libavcodeck on H264 (TNT HD).
FFDSHOW says it uses Intel on non hd channels (mpeg2), so i believe install is correct.
I had tried both 64 bits and 32bit version as i use DVBViewer which is in 32 bits to watch TNT TV.
What the hell ?

(My config: Seven 64 bits with a Sandy bridge GT2 i5-2500K @ 4.6Ghz (HD graphics 3000) on a Z68 chipset and 4GB of ram)

egur
6th August 2012, 19:57
What's the driver version? Splitter version?

Esperado
6th August 2012, 20:50
What's the driver version? Splitter version?FFdshow and Lav : Last ones. Downloaded yersterday.
Intel Driver : 8.15.10.2696

Not a big problem, as LAV works perfectly and i can use FFDSHOW raw for some additional post processing. it is just to let you know and to try to understand what happens as well.

egur
7th August 2012, 08:42
Unfortunately, I can't test live TV streams since I don't have such a source available.
You can try installing a newer driver (from the 15.26 family) although this driver worked fine as far as I remember.
Can you play H264 files?
If LAV works with QS decoder and ffdshow doesn't, it means that some checks within ffdshow fail.

Esperado
7th August 2012, 13:05
Unfortunately, I can't test live TV streams since I don't have such a source available.
You can try installing a newer driver (from the 15.26 family) although this driver worked fine as far as I remember.
The last one i found at Intel download center is win7_64-152612 Version is 8.15.10.2761
Despite Windows said i had the latest ;-(
Same behavior.

Can you play H264 files?Yes, you're right: ffdshow says "Intel @Quicksync" with recorded files from TNT. Strange.

If LAV works with QS decoder and ffdshow doesn't, it means that some checks within ffdshow fail.Unintelligent connect from Directshow ?

BTW, do-you have contact with this guy ? : http://doom10.org/index.php?topic=717.0

Esperado
7th August 2012, 13:24
Also, i experience some freezes after long playings of tv streams with Quicksync. Closing application then reload, changing channel or rebuild graph and it is good for an other run. No such a problem with software decoders.

egur
7th August 2012, 14:26
FFDShow may recieve an incompatible fourcc or something of the sort. I don't know and can't test this.

I don't know the guy in the post. Intel 100K employees...

Esperado
7th August 2012, 16:30
I don't know and can't test this.How can-i help ?

Thunderbolt8
22nd August 2012, 04:55
does the intelquicksync hardware accelerarion only work when having an i5 (or similar cpu) AND the intel HD graphic card both running at the same time?

in case of the avatar 60p demo, I get almost 400fps with the intel decoder, compared to only 120 with coreavc. but since I use madvr, the intel card with only 25gb/s bandwith seems to be rather weak here and I get dropped frames if I priorize it over the Radeon mobility 7670, no matter which decoder of coreavc, lav video or ffdshow I use in both cases. it seems like the huge decoding advantage gets lots by the intel HD 4000 graphics cards bad performance with madvr.

or am I doing something wrong?

egur
22nd August 2012, 07:37
How can-i help ?
Sorry for the late response, I was on vacation w/o internet.
You'll need a VS2010 and able to build ffdshow.
Another option is for me to provide a debug build that pops a lot of message boxes showing the status. Let me know which option is preferred.

does the intelquicksync hardware accelerarion only work when having an i5 (or similar cpu) AND the intel HD graphic card both running at the same time?

in case of the avatar 60p demo, I get almost 400fps with the intel decoder, compared to only 120 with coreavc. but since I use madvr, the intel card with only 25gb/s bandwith seems to be rather weak here and I get dropped frames if I priorize it over the Radeon mobility 7670, no matter which decoder of coreavc, lav video or ffdshow I use in both cases. it seems like the huge decoding advantage gets lots by the intel HD 4000 graphics cards bad performance with madvr.

or am I doing something wrong?

Unfortunately, the decoder will work only if the iGPU is active - connected to a screen. A Direct3D9 limitation.
There's an option to trick D3D9 by extending the desktop to a disconnected display. See here (http://forum.doom9.org/showthread.php?p=1532786#post1532786).

Esperado
22nd August 2012, 15:49
Another option is for me to provide a debug build that pops a lot of message boxes showing the status. Let me know which option is preferred.As i do not develop under Visual Studio since decade, this second solution seems more reasonable on my side. But blind and time consuming on your side ?

Pulp Catalyst
7th September 2012, 03:15
is there a way to utilize quicksync decoding function with MeGUI or avisynth like DGDecNV can use Nvidia GPU's

i'm looking for any feedback, or theory's. is this something that can be done, or will it be like AMD (radeon) where the decode information can't be gained easily

i know that GPU can help in some respects, yet i would of thought it would be even better than Nvidia GPU decoding as intel in on chip (no motherboard travelling kind of thing with information bottling the express lanes)

can i use the FFDShow to assist MeGUI (offloading H264 decoding to GPU) so MeGUI x264 wil be faster.... even 15% gain in speed would be great.


if not..... will this or could this be possible, or will quicksync be like AMD (radeon) system where the decoding information can't be got at for make use outside of directx (avisynth needs to be the one to have the info)

easyfab
7th September 2012, 10:46
is there a way to utilize quicksync decoding function with MeGUI or avisynth like DGDecNV can use Nvidia GPU's

i'm looking for any feedback, or theory's. is this something that can be done, or will it be like AMD (radeon) where the decode information can't be gained easily

i know that GPU can help in some respects, yet i would of thought it would be even better than Nvidia GPU decoding as intel in on chip (no motherboard travelling kind of thing with information bottling the express lanes)

can i use the FFDShow to assist MeGUI (offloading H264 decoding to GPU) so MeGUI x264 wil be faster.... even 15% gain in speed would be great.


if not..... will this or could this be possible, or will quicksync be like AMD (radeon) system where the decoding information can't be got at for make use outside of directx (avisynth needs to be the one to have the info)

Perhaps, you can try to create a .grf file (see here http://avisynth.org/mediawiki/Importing_media ) with ffdshow/lavfilter quicksync decoder and load it in avisynth with DirectShowSource().

egur
7th September 2012, 11:01
ffdshow/lavfilters can be used with QuickSync as long as a display is connected to the Intel GPU in some manner.
The performance gains are not as trivial as standard decoding because all HW decoders output NV12 and avisynth wants either YUY2 or YV12. The latter is preferred as the conversion is lossless and very fast. Video renderers on the other hands like to get NV12 so no conversion is needed.

As far as complex/smart transcoding flows where meta data from the decoder is used (e.g. motion vectors or quantization parameters), I'm afraid we're out of luck. The driver doesn't expose those which is a shame since this information is useful for denoising/deblocking as well.

Pulp Catalyst
7th September 2012, 14:26
i see, so partially closed than like AMD, nvidia seems to be the only one that has really opened this area up, it'a an awful shame that so many developers still don't take into account that Avisynth is where the power is (so much can be done with Avisynth), here's hoping that programs like DGDecNV can be created for intel quick-sync.... although it's worrying about the NV12 needing conversion...... Nvidia GPU architecture doesn't have this issue though... why? it's still a GPU (VP decoding chip)

nevcairiel
7th September 2012, 15:14
NVIDIA also outputs NV12 from its GPU decoder.

Pulp Catalyst
7th September 2012, 15:23
i see, well in that case NV12 for quicksync shouldn't be an issue than either regarding the conversion hit, heres hoping then that "neuron2" can pull it out the bag as he did with Nvidia, but hopefully as the GPU is actually on CPU.... quicksync this will be even more efficient than discrete GPU.

egur
8th September 2012, 07:33
QuickSync overhead is lower since the video memory resides on main memory. The QS HW is also much faster.
In transcoding the benefit are smaller since most of the work is done by the encoder.

GTPVHD
11th September 2012, 19:23
http://www.anandtech.com/show/6263/intel-haswell-architecture-disclosure-live-blog


Higher encode quality, faster Quick Sync with GT3

Introducing hardware based SVC codec, can encode once and playback multiple times

4Kx2K video acceleration is supported

Moved some video processing stuff off the EU array into a dedicated video quality engine

Hardware image stabilization is new in Haswell

Now there are three concurrent video engines: codec, imaging and scale/composition

In the past only had two concurrent engines: codec and imaging/scale/composite, now you can do more in parallel as long as there's enough bandwidth to sustain


Haswell looking pretty good at the moment for video decoding and post processing.

egur
11th September 2012, 21:39
Yes, the GTs are getting (much) larger every generation. It will force Nvidia/AMD to push their dGPUs to higher performance at lower prices.

Other interesting things mentioned are:
* TSX - a new way for reducing locking (mutexes). May speed up multithreaded code.
* AVX2 - completes the AVX instructions (256bit SIMD) to integer math + new instruction to copy memory from USWB memory (GPU RAM).
* S0ix power states and a bunch of other power management features - battery life

VS2012 supports (should support) AVX2, so I'll write a new gpu->cpu copy function using AVX2.

Blight
13th September 2012, 03:23
Cool :)

nussman
13th September 2012, 08:57
I cant see how Intel can push AMD/Nvidia without Full RGB 0-255 output (hdmi) and proper 24p handling. :p

Quicksync ist very nice. Good performance and processing!
What about this point?
http://forum.doom9.org/showthread.php?p=1583369#post1583369

Quicksync + madVR + AMD GPU would be perfect for HTPC.

egur
13th September 2012, 15:07
I cant see how Intel can push AMD/Nvidia without Full RGB 0-255 output (hdmi) and proper 24p handling. :p

Quicksync ist very nice. Good performance and processing!
What about this point?
http://forum.doom9.org/showthread.php?p=1583369#post1583369

Quicksync + madVR + AMD GPU would be perfect for HTPC.

MSDK and driver should support DX11 surfaces soon, maybe they do right now, not sure. DX11 should solve this problem - using HW w/o a screen. I'm not sure if it will solve the fullscreen exclusive problem.

nussman
13th September 2012, 20:12
Cool.

I tried this driver (15.28.0.2792): http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21235

Not possible with this one. I am looking forward to the next. :)

egur
13th September 2012, 21:22
What's not possible? What did you try to do?
I didn't implement DX11 so it will not work until I do.

nussman
13th September 2012, 21:42
"using HW w/o a screen" (= killer feature imho ;) )
I didnt know that you have to implement it first.

egur
13th September 2012, 22:26
Yes, currently I'm using the D3D9 API to allocate graphic surfaces and this can't be done because D3D9 will not enumerate a disconnected GPU so that's about it. This is even before the HW decoder is actually created.

dna108
16th September 2012, 09:28
http://www.mediafire.com/?digabe69wig5ktr

Hardware
i7 3770k
Intel HD4000
AMD HD6850

Software
Win7 x64
MPC-HC (32+64)
Lav splitter
Driver 8.15.10.2761

Playback is fine with libavcodec/coreavc.
QS shows corruption around 5s and 12s.
Clip taken from a larger ts file.

egur
16th September 2012, 13:02
http://www.mediafire.com/?digabe69wig5ktr

Hardware
i7 3770k
Intel HD4000
AMD HD6850

Software
Win7 x64
MPC-HC (32+64)
Lav splitter
Driver 8.15.10.2761

Playback is fine with libavcodec/coreavc.
QS shows corruption around 5s and 12s.
Clip taken from a larger ts file.

I managed to reproduce on newer drivers as well. I'll report this clip.

NikosD
19th September 2012, 16:27
Eric hi.

The new Ivy drivers for Win 7/8 expected to be released in October, will enable 4K x 2K resolution support for suitable monitor/ TV but most of the articles add as well as hardware accelerated 4K video decode.

I don't have an Ivy Bridge but I know that 4K accelerated decoding is already supported by the current drivers.

What exactly will be further supported regarding 4K decoding ?

Thanks!

egur
19th September 2012, 20:03
4K decoding is already supported - I already checked that months ago. The new driver will raise the display output resolution to 4K.

CiNcH
20th September 2012, 10:51
Hi Eric,

I am currently writing an EVR Custom Presenter. The target output resolution is set for the IMFMediaType (via attribute MF_MT_FRAME_SIZE) and passed to the EVR Mixer via 'SetOutputType'. IMFSamples with surfaces of the target output resolution are also created and passed to the EVR Mixer to get the video frame data. I guess that the EVR Mixer will then take the source frame from the decoder and trigger DXVA for scaling it into the surface of the IMFSample, right?

I also followed another approach where I request the source resolution from the EVR Mixer and then scale with the bilinear filter of D3D into the back buffer. Pretty bad quality of course, and also eating up GPU ressources for 4K video.

I then found a quote by you:
HW scaling doesn't have to go through Media SDK - EVR doesn't use it. Media SDK has a few limitions to be properly used in a renderer, better use the D3D/DXVA API for that.
I am wondering now how I can trigger those high quality video scalers without using EVR (Mixer) and Media SDK but using the mentioned D3D/DXVA method!? Do you have some references for me?

egur
20th September 2012, 11:07
You should use a DXVA2 video processor device. I think there's sample code in the DirectX SDK. EVR probably does the same.
BTW, I didn't say not to use EVR, I said that EVR doesn't use the Media SDK, it uses DXVA2.
I'll check if I can find some concrete useful references. I never tried doing this.

I've asked the MSDK support team and they confirmed my answer.
Here's the full answer (Thanks Tony):

Intel's video processing hardware is exposed by the driver's support of DXVA-VP (VideoProcessor) and DXVA-HD interfaces.

There are a variety of processing and rendering models that use these interfaces. For example, when using DirectShow model, Microsoft's "VMR" makes use of the capability.

Microsoft examples tend to be based on Media Foundation usage, but you can see how these DXVA interfaces work here:

http://msdn.microsoft.com/en-us/library/windows/desktop/bb970335(v=vs.85).aspx

and

http://msdn.microsoft.com/en-us/library/windows/desktop/ee663586(v=vs.85).aspx

vad74
2nd October 2012, 12:46
Hi Eric,
My config Core i3, HD3000, Win7. I use QS in MPC without problems, it work well. I setup XBMC_DSPlayer. In LAV setings I selected use QS for hardware accelerate. After when I started H.264 video, I opened LAV decoder. In LAV I see "active decoder : avdecoder" (software decoding), not QS! This problem rise when XBMC work in fullscreen mode (exclusive mode). How connected QS with XBMC(in fullscreen)? Note: DXVA work with XBMC in fullscreen.

egur
2nd October 2012, 13:01
In fullscreen exclusive, QS can't create a Direct3D9 HW device so it reports to LAV decoder that it can work in SW mode only. Only after the renderer is connected, QS can create a HW device providing the renderer passes a certain interface.
An identical issue occurs in Windows Media Center.
I've fixed this for ffdshow.
This is something LAV author can fix if he has the time.

vad74
3rd October 2012, 07:08
Thanks, I will try send your post to LAV autor. And hope that together will fix this.

NikosD
8th October 2012, 08:15
Eric hi.

I've noticed that it's been over two months of your latest software update.

Have you finished the pre/post processing features of QS software ?
I think that you have said before, about some driver problems regarding QS hardware features - not exposed in a suitable manner for you to use them or something like that.

What about the direct, native DXVA2 decoding approach - through Intel's MSDK of course - along with FFDShow and/or LAV filters ?

Is there any progress to that ?

TIA,
Nikos

egur
8th October 2012, 09:11
I'll release a small bugfix, probably today to handle the new driver (15.28.xx.xx) issues.
As for native DXVA, it requires cooperation from LAV filters and its not high on Nev's priority list. I can't do this for ffdshow - requires a significant change to ffdshow, if done properly and it would break ffdshow otherwise.

So I'll probably drop DXVA for now and focus on DX11 support or add MJPG which should be supported by Haswell as seen in Anandtech. DX11 is probably more important as it lifts many of the fullscreen and disconnected GPU issues.

Tacio
8th October 2012, 09:52
DX11 is probably more important as it lifts many of the fullscreen and disconnected GPU issues.
So, it's only for Ivy Bridge and later CPUs?

nevcairiel
8th October 2012, 10:10
As for native DXVA, it requires cooperation from LAV filters and its not high on Nev's priority list.

I just fail to see the big advantage it would offer. Sure, slightly lower CPU usage, but considering even the Ultrabook SNB/IVB CPUs can work with the current QuickSync implementation just fine (even in lowest power modes), i fail to see the need. Development time is limited, sadly, and the list of things to do is long.

If Eric wants to implement it, i'll probably find the time to expose this feature to the users (somehow), but i won't push for it.

wanezhiling
8th October 2012, 10:17
So, it's only for Ivy Bridge and later CPUs?

SNB dont support DX11..:o

nevcairiel
8th October 2012, 11:20
Technically, the DX11 API can also be used on hardware which does not support DX11, as long as the driver is OK with that. You just can't use any of the new hardware features that were added with DX11.

ajp_anton
8th October 2012, 16:26
I just fail to see the big advantage it would offer. Sure, slightly lower CPU usage, but considering even the Ultrabook SNB/IVB CPUs can work with the current QuickSync implementation just fine (even in lowest power modes), i fail to see the need. Development time is limited, sadly, and the list of things to do is long.

If Eric wants to implement it, i'll probably find the time to expose this feature to the users (somehow), but i won't push for it.How much would battery life improve for those long travel journies without power?

CiNcH
8th October 2012, 16:38
DX11 support
But this will still work together with a DX9 Renderer resp. Custom Presenter, right?

How much would battery life improve for those long travel journies without power?
I have measured a difference of 1-2W between 'QuickSync' and 'DXVA2 native' with 'Open Hardware Monitor' when playing back 1080i live streams (H.264 10-15mbps).

egur
8th October 2012, 20:26
I don't have any details on the DX11 usage by the Intel Media SDK, I need to look at the docs and sample code first and see if it actually solves any problems. I also don't know if SandyBridge will work or not. It might since DX11 hardware isn't used, only driver interface.

As for native DXVA output, this is only good for battery life.

I also want to do scaling (probably start with downscaling) so 4K video will take so many resources when the display has lower resolution.

ajp_anton
8th October 2012, 23:58
As for native DXVA output, this is only good for battery life.You make it sound like it's not a good thing =).

egur
9th October 2012, 08:17
You make it sound like it's not a good thing =).

It's a good thing, but maybe not the lowest hanging fruit. I'll definitely do it, but don't know when.

egur
9th October 2012, 20:52
Version 0.39 beta is out with the following changes:
* Workaround for various issues when drivers from the 15.28 or 15.31 (beta) family are used.
* Better handling of timestamp discontinuities - usually due to broken streams.
* Default multithreading option is now set to "Multithreaded copy".
* FFDShow: r4488

Note to Window 7/8 users with drivers 15.28.xx.xx or 15.31.xx.xx:
Do not enable full multithreading support in FFDshow or player will abort playback at some point in many clips.
Select "Multithreaded copy" for good performance and rock solid stability.
If/when the drivers get fixed, I'll post the working version number.

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)

whiplash000
11th October 2012, 03:34
Hi, I decided to try this thing out and I can't seem to get it to work.

Here's a test video: http://vimeo.com/27770499
Select download and choose the 1080p mov version.

I have a 2600k and an Asrock Z68 Extreme4 motherboard. I have two monitors, one hooked up to an AMD gpu (default monitor), and one to the internal graphics. I tried playing a video (1080p, 60fps H.264) and it plays fine on my main monitor, but when I drag the WMP window to the other monitor, WMP simply crashes. Soluto says it has something to do with the intel graphics driver. I don't really think the acceleration is being used anyway, because I tried fiddling with the sharpness and noise removal and the video didn't seem to be affected. I'm using libav's splitter.

I then tried putting wmplayer.exe on Lucid Virtu's list (forcing it to use internal graphics), and when I tried to play files then, I got an error: "Windows Media Player cannot play the file." Same on both monitors.

I'm running driver version 8.15.10.2827 on Windows 7 x64. Is that the newest available?

Also, is the 1080p limitation set in stone or can it be changed? Because I like to record video footage at 1920x1200.

ryrynz
11th October 2012, 06:20
I'm running driver version 8.15.10.2827 on Windows 7 x64. Is that the newest available?


9.17.10.2849 beta (http://drivers.softpedia.com/get/GRAPHICS-BOARD/INTEL/Intel-HD-Graphics-Test-Driver-15285642849-for-Windows-7-x64-Windows-8-x64.shtml) is the newest I've seen.

egur
11th October 2012, 08:41
The EVR renderer used by WMP does use HW acceleration, so moving a video window between GPUs may cause problems. Maybe you should report this to the graphics driver support forum. I can't help.

hajj_3
11th October 2012, 11:36
9.17.10.2849 beta (http://drivers.softpedia.com/get/GRAPHICS-BOARD/INTEL/Intel-HD-Graphics-Test-Driver-15285642849-for-Windows-7-x64-Windows-8-x64.shtml) is the newest I've seen.

v2857 is the latest beta: http://downloadmirror.intel.com/21840/a08/win64_15286t.zip

egur
11th October 2012, 13:04
Note that when using the 15.28 drivers, you must use the latest version (just released). LAV users can copy the QS DLL into the LAV installation directory.

nevcairiel
11th October 2012, 13:12
The latest test build i posted yesterday in the LAV thread also has the latest version of the QS decoder.
A final release will most likely be out within the next week or so.

whiplash000
11th October 2012, 18:55
Okay, so I got the v2857 drivers and installed them. Now, when I move the WMP window to my second monitor as it's playing, it doesn't crash anymore, but I see no video. The audio still plays, but the video is black save for a grey bar across the top of the video. I'm using the latest Oct. 10th build of the decoder.

Video still refuses to play if I force wmplayer.exe to use the integrated graphics with Lucid Virtu.

wanezhiling
13th October 2012, 10:42
http://forum.cyberlink.com/forum/posts/list/22488.page
• Supports hardware acceleration for playback of 4K video files on 3rd generation Intel Core i5 CPUs and above.

Hi Eric, ivb i3 family dont support 4k?

nevcairiel
13th October 2012, 10:54
Only in crappy PowerDVD. :p

egur
13th October 2012, 20:00
I don't remember seeing that i3 is SKUed differently with respect to QuickSync. The Pentium/Celeron SKUs don't have encoding but that about it.

RBG
15th October 2012, 09:33
Hello, Eric.

I can't make this sample (http://www.mediafire.com/?2g9inv0ph8s8zes) run with quick sync acceleration on ffdshow decoder, though hardware decoding works just fine on LAVQS and PotPlayerQS decoders.
FFdshow v4488.
Intel driver 8.15.10.2761.
Windows 7 x64
32 GB Ram( I've had to limit Intel's GPU memory to 256 MB in my BIOS to solve the compatibility problem. It seems that Intel HD Graphics haven't been properly tested on a large amounts of Ram, or it is just Gigabyte motherboards issue, but none the less when intel HD Graphics(i7 2600) is active(except cases whet it's memory is limited to 256 MB) with 32 GB of RAM operating system boot becomes awfully slow, about 7 minutes instead 1:30 with iGPU turned off, and overall OS behavior is somewhat sluggish...)

egur
15th October 2012, 10:44
I'll test this clip at home.
I've never heard of this sluggishness issue, I'll try to find out.
BTW, my main home PC is an i7-2600 with 8GB RAM + Intel SSD + Win7 x64 Ultimate and it boots in 15-20 seconds.
Do you have any special drivers installed? Hypervisor? Memory controller is not configured well in BIOS? Latest BIOS?

RBG
15th October 2012, 11:47
egur
My home system is really nothing special, no нypervisor, just an ordinary h67 chipset motherboard(Gigabyte h67a-ud3h-b3 latest bios) with a hybrid gpu setup, dGPU - GeForce 470(main) and iGPU - i7-2600 (only for Quick Sync support), and WD Black 2TB HDD as a system drive, 32 GB RAM(kingston 1333 9-9-9-24). When iGPU is disabled or is limited to 256 MB everything runs just fine, when it is enabled with other options I got the problems described above. I googled a little bit and found similar cases. Also I measured memory performance in AIDA64 with iGPU enabled and disabled on 32 GB(everything is fine on 16 GB) and there was significant memory bandwidth drop, about 30 % in memory copy operations, about 37% in memory write operations, and about 21% in memory read operations.

egur
15th October 2012, 12:17
Sent you a PM with details.

CiNcH
15th October 2012, 12:20
Hi Eric, ivb i3 family dont support 4k?
My i3 IVB decodes 4K H.264 just fine..

egur
15th October 2012, 19:16
Hello, Eric.

I can't make this sample (http://www.mediafire.com/?2g9inv0ph8s8zes) run with quick sync acceleration on ffdshow decoder, though hardware decoding works just fine on LAVQS and PotPlayerQS decoders.
FFdshow v4488.


Works fine here.
Before I try older drivers, which splitter was used?
I assume you used 32 bit.

RBG
15th October 2012, 19:44
egur
I used Haali splitter 1.11.288.0. Yes, x86 version of ffdshow.
And I guess I've found the culprit.

LAV Splitter Source
http://i3.imageban.ru/out/2012/10/15/28efb9bab7a38f65fdc806913a7d3682.png
Haali Splitter.
http://i2.imageban.ru/out/2012/10/15/8875cb10449b53c2734f2a2215271d65.png
Same sample, same ffdshow settings.

I wonder why ffdshow selects libavccodec instead of QS when chained with Haali?

whiplash000
15th October 2012, 20:29
Hey, just wanted to say I finally figured out my issues. First off, I'm running the latest beta drivers you guys linked to for my iGPU. Apparently, these drivers make Lucid crash, but since I already had monitor #2 hooked into my motherboard's output, it isn't really needed. Also, I failed to mention that I'm using Shark007's Windows 7 Codec pack, sorry. So anyway, I got rid of that, reinstalled the QS FFDshow filter, and installed the LAV splitter linked in the OP. Also, I had to run this tweaker (http://codecguide.com/windows7_preferred_filter_tweaker.htm) in order to actually get FFDshow to work with Windows Media Player. I had to go to "Tweaks" and disable everything Microsoft on my system. Once I did that, WMP was actually decoding my 60fps videos at 60fps. Wow. And the issue of moving my WMP window between two monitors was fixed, too!

Good work Eric!

egur
15th October 2012, 20:57
@whiplash000 - I'm glad you managed to fix things. Too bad video playback/setup is so complicated...

@RGB - Haali causes a lot of issues on many clips so I stopped using it. Different splitters supply different media samples to the decoder. I guess my compatibility check failed.
I'll check if Haali started using a new fourcc or something.
I'll report back when I know the problem.

whiplash000
15th October 2012, 21:00
If I had just one wish, it'd be that you would also do the encoder (at least H.264) at some point in the future. The gaming community would be forever indebted to you for unlocking a hardware encoder built into their CPU, since current solutions involve using at least some portion of the CPU for video encoding, which eats into in-game FPS.

...or maybe you could help me pull it off? I'm well-versed in C, familiar with C++, not so familiar with the inner workings of VFW or FFDshow.

egur
15th October 2012, 22:21
@whiplash000 - making the HW decoder work under full screen exclusive mode is probably very hard if not impossible since new HW devices can't be created.
If you're familiar with C++ than you can try using the Media SDK to run the HW encoder. I can help, but I don't have the time to start another project like this.

@RGB - I root caused the problem with your clip. Haali sends an incomplete media sample - the fields that denote the H264 profile and level are both zero which are not valid values. This is a Haali bug since the H264 sequence header (which ffdshow parses well) reports these values properly.
I didn't implement H264 sequence header parsing yet so my checker function fails on this clip.

My suggestion is to drop Haali and switch to LAV splitter. In fact the only benefit to Haali is faster and cleaner seeks in TS files. The downsides to Haali are bad support for aspect ratios, terrible time stamps (in TS files) which will cause my decoder to detect a wrong frame rate and cause libavcodec to produce jittered video.

RBG
16th October 2012, 09:59
egur
In fact the only benefit to Haali is faster and cleaner seeks in TS files.

Haali also has mkv segment linking support which is very important for me. Anyway, thanks.

dna108
16th October 2012, 22:52
http://www.mediafire.com/?xobl7pcuw8fbq27

Hardware
i7 3770k
Intel HD4000
AMD HD6850

Software
Win7 x64
MPC-HC (32+64)
Lav splitter
Driver 8.15.10.2761
QS ffdshow (2012-07-30)

Watch the concrete brick work on the floor with deinterlacing on, then with 'Full rate DI' on. Looks much better with full DI.
I don't think its a motion issue; probably more frames gives the algorithm more to work with.

egur
17th October 2012, 13:12
The DI works the same in either case, in the half rate case, half of the output frames are dropped. I'll take a look later today.

Edit
I watched the clip, the smoother 60fps looks indeed much better (smoother), strange.

dna108
19th October 2012, 01:08
The DI works the same in either case, in the half rate case, half of the output frames are dropped. I'll take a look later today.

Edit
I watched the clip, the smoother 60fps looks indeed much better (smoother), strange.

I ran it through Avisynth with SelectEven for original fps, and it still looked good.

Maybe it's just that clip, as i have not noticed it on anything else; but I don't really have any test (problem) clips.

kwlee
20th October 2012, 07:47
There is an idea about gpu_memcpy() in QuickSyncUtil.cpp
and it's no need to allocate extra 2K memory anymore,
we can use memcpy() for the area within 2K offset, after that,
use SSE4.1 copy..all actions will be done in gpu_memcpy()

egur
20th October 2012, 08:51
There is an idea about gpu_memcpy() in QuickSyncUtil.cpp
and it's no need to allocate extra 2K memory anymore,
we can use memcpy() for the area within 2K offset, after that,
use SSE4.1 copy..all actions will be done in gpu_memcpy()

I added 4K to the size of the output buffer so I can create an offset of 2K between source (GPU) and destination (system) addresses.
This trick ensures that address compares between source and destination are performed faster. Internally the CPU performs a check whether there's an overlap between source and destination. It doesn't compare the whole address at once (slow) it checks the 11 LSB of the address first.
No extra bytes are copied. The output buffer is slightly larger (4K). Note that the function itself doesn't use this extra size, it justs informs the reader about proper/fast usage.
The 2K address offset is optional, it's not required to work. If the 11LSB of both addresses are identical between source and destination, the copy will be slower.

Maybe it's time I should write a white paper on this (and add AVX2 implementation).

kwlee
20th October 2012, 09:46
Ya, mostly agree.
I just think it's possible the decoded buffer is from renderer, original method would need a temporary buffer, then copy back to render buffer.
with the idea I proposed, use the render buffer for decoder directly, that can save one copy time of frame data

egur
20th October 2012, 10:06
Copying directly to the render buffer will break ffdshow and probably LAV video decoder design. They might perform some kind of operation on the output buffer (color space conversion, image processing, etc).

crotecun
21st October 2012, 16:23
I read in an earlier post that Sandy Bridge has its own different approach to scaling video.

SandyBridge's adavnced video scaler has a different approach. A context adaptive scaler.
It will use a Lanczos4 scaler (8 taps) in order to create very sharp images. In order to avoid (most) of the artifacts, it will perform an analysis of the area and blend between the sharp scaler and a smooth scaler depending if the analysis thought the target pixel is prone to artifacts.

Context adaptive scaling is not a new idea but this implementation's quality and performance are probably one the best.
Some companies perform context adaptive scaling using a different paradigm - use a soft scaler like bi-cubic and perform post processing sharpness filter on edges that were very strong in the source image.

Does this also work on an Ivy Bridge laptop running a Linux distro? Around here Dell has Core i3 laptops with Ubuntu pre-installed, I'd like to know if such a setup would also benefit from the scaling technology described in the above quote.

egur
21st October 2012, 21:48
I don't know what Linux drivers do and what options they support.

aufkrawall
24th October 2012, 08:31
Hello egur,
may I ask if you're still working on DXVA frames output? :)

egur
24th October 2012, 11:18
Hello egur,
may I ask if you're still working on DXVA frames output? :)

I'm not working on it.

markanini
27th October 2012, 10:10
Chroma interpolation is still poor in Flash Player (2500k, v2761): http://i.imgur.com/l3abl.png
Look at the reporters left chin

egur
27th October 2012, 11:44
Not the right place to post flash playback issues. Nothing I can do about it. Sorry.

wanezhiling
27th October 2012, 13:01
http://downloadmirror.intel.com/22020/eng/releasenotes_gfx_2867-64.pdf
http://i.imgur.com/qp58t.png

Hi Eric, 2867 has supported 4K display? IVB i3 cant?


PS:LAV QS cant support 4096 x 2048 decoding.

egur
27th October 2012, 14:02
I can check that at my IVB at work tomorrow.

NikosD
27th October 2012, 14:31
I tried Win 7 32bit v2867 drivers to Core i5/ HD2000 hoping for 4K H.264 support but of course there isn't any there.

The 3 MFT transcoders "Intel Hardware H.264/MPEG-2/VC-1 Decoder MFT" are not working for decoding (playback), but I didn't remember them, were they always there Eric ?

egur
27th October 2012, 22:27
I think the MFT decoders were dropped and made a comeback. I don't know why (either way).
As for 3rd generation i3 (IVB) not being able to output 4Kx2K might be an incentive to buy a better processor.
I checked 4K decode a while back using a much older driver. I'll check again on Sunday.
Special note:
There are several known issues with this driver with respect to my decoder. Use only the latest ffdshow (4488) or LAV (0.52). Older versions might not decode H264 at all. All multihreading options (ffdshow) must be disabled (MT copy is fine) or playback will break on many clips.
In fact, I'm seriously considering dropping multithreaded decoding and video processing since there's no fix in sight. This will definitely simplify my design and validation efforts, allowing me to add new features much faster.
If I decide to drop MT, the next build will be a cleanup build that will be 100% (hopefully) compatible with current production drivers (15.28) and beta drivers (15.31).
It turns out that multithreading was a larger headache than I anticipated.

wanezhiling
28th October 2012, 05:13
Sorry Eric, I cant find any reason to use QS decoder because it is too reliant on the drivers...:o

NikosD
28th October 2012, 05:40
I think the MFT decoders were dropped and made a comeback. I don't know why (either way).


I think it's the first time they enumerate in DXVAChecker, but they are not working at least with version v2.9.1 of DXVAChecker. They output an error code. Will see if it is a bug of DXVAChecker or the MFT decoders (transcoders to be more exact) are not working.


As for 3rd generation i3 (IVB) not being able to output 4Kx2K might be an incentive to buy a better processor.
I checked 4K decode a while back using a much older driver. I'll check again on Sunday.


If Intel disabled 4K decoding even in IVB (core i3), I have to forget 4K decoding on SNB for sure.
But I wouldn't mind if they followed the same pattern and enable it on SNB Core i5/i7 only.


If I decide to drop MT, the next build will be a cleanup build that will be 100% (hopefully) compatible with current production drivers (15.28) and beta drivers (15.31).
It turns out that multithreading was a larger headache than I anticipated.

How much performance will QS decoder loose, if you drop multithreaded code ?

Could you tell me, if you don't mind, a simple way to enable and use HW video processing capabilities of QS decoder in PotPlayer or MPC-HC because my time with Core i5 system is always limited (it's not mine!)

egur
28th October 2012, 14:33
Sorry Eric, I cant find any reason to use QS decoder because it is too reliant on the drivers...:o
Using HW acceleration implies relying on drivers. The best anyone can do is mask out driver issues.

If Intel disabled 4K decoding even in IVB (core i3), I have to forget 4K decoding on SNB for sure.
But I wouldn't mind if they followed the same pattern and enable it on SNB Core i5/i7 only.

How much performance will QS decoder loose, if you drop multithreaded code ?

Could you tell me, if you don't mind, a simple way to enable and use HW video processing capabilities of QS decoder in PotPlayer or MPC-HC because my time with Core i5 system is always limited (it's not mine!)

I don't know the details on i3 but SandyBridge doesn't support 4K (HW limitation) as far as I know.

QS will loose some performance in benchmarks but will be more efficient in normal playback scenarios. I'll might have some sort of MT going on that's not affected by the driver.

For MPC-HC - just install LAV or ffdshow. ffdshow enable QuickSync in config->codecs page for H264, mpeg2, vc1. In LAV select QuickSync from the HW accelration tab.
ffdshow has an relatively new Intel QuickSync docoder config page of it's own (within ffdshow config).

HoP
28th October 2012, 16:13
@egur
this driver:
http://downloadcenter.intel.com/Detail_Desc.aspx?ProductID=3231&DwnldID=21776&lang=eng&iid=dc_rss

is compatible with this CPU:

http://upit.cc/i/82c35ac5.png

why i ask? cause i think after update,system is a little bit unstable.
[sorry for off-topic]

NikosD
28th October 2012, 17:04
For MPC-HC - just install LAV or ffdshow. ffdshow enable QuickSync in config->codecs page for H264, mpeg2, vc1. In LAV select QuickSync from the HW accelration tab.
ffdshow has an relatively new Intel QuickSync docoder config page of it's own (within ffdshow config).

I didn't mean exactly that.

I meant how do I choose - inside video players - the suitable options in order to be sure that for example Deinterlacing or Scaling or other HW post-processing procedures are executed by QuickSync hardware and not anything else.

Which are the options inside video players menu and if there is an indication that QS HW is in use for post-processing options (deinterlacing, scaling etc).

Thanks!

egur
28th October 2012, 17:23
@HoP
I'm sorry but I'm not using these CPUs. I don't have any means of reporting driver issues directly to the driver team. You can try the driver support page.

@NikosD
LAV doesn't use any HW video processing from y decoder. Only decoding. If QS is active while playing a clip, open up the LAV video decoder filter properties (changes from player to player). If you see "Available" it's not currently in use. "Active" mean it's in use.

EVR uses deinterlacing from the GPU connected to the active screen. If you use a multi monitor setup, the other GPU might do the work, same answer for scaling.

MadVR will use HW deinterlacing the same as EVR (think so anyway). MadVR will scale the image on its own. Questions to MadVR should be directed to it's thread.

Other renderers (e.g. EVR-CP) - I'm not sure what they do.

CiNcH
28th October 2012, 20:21
EVR uses deinterlacing from the GPU connected to the active screen.
It is also possible to use DXVA deinterlacing within XBMC. It does not work with Intel iGPU's however. You can chose between 'DXVA BOB' and 'DXVA Best'. BOB quality is quite bad of course, 'DXVA Best' just results in a still image. It works with nVIDIA and AMD GPU's though. Any clue?

NikosD
28th October 2012, 21:14
Well, I did some tests to the following system:

Win 7 SP1 x86 - Core i5 2400 (SNB) - Intel drivers v2867

I installed:

PotPlayer v1.5.34442, LAV 0.52, MPC-HC v1.6.5.6103 ICL12 by XhmikosR, FFDShow v4488 ICL12 by XhmikosR

and the following monitoring tools:

GPU-Z v0.6.6, Intel Media Checker 2.0.1.18, Intel GPA Monitor 2012 R4.

I did some tests mainly for Deinterlacing.
PotPlayer crashes all the time (closes before the end of almost any clip progressive and interlaced) in both modes (QS, DXVA).
It has an older QS .dll not 0.39
I added as an external filter the LAV Video codec but LAV doesn't support HW DI - I didn't catch any pre-processing functions with Intel Media checker.

But I saw that EVR-CP with interlaced content has in both internal modes (DXVA, QS) a lot more GPU load and less CPU than EVR.
The same goes for LAV Video too.

It seems that EVR uses a lot more CPU than GPU compared to EVR-CP which does the opposite.
Strange.

In general, I had a feeling of major incompatibility of PotPlayer with Intel Platform.

In MPC-HC I added FFDshow (LAV video didn't work for HW DI) with default options as an external filter and selected only one more option - DI - from the configuration menu.

FFDShow worked with interlaced content and Media Checker caught HW video pre-processing functions in both EVR and EVR-CP renderers.
But GPA Monitor didn't catch any. Only DECODE functions all the time for both EU and MFX. No VPP functions at all.
Strange.

GPU load was very high with EVR-CP (85%) and GPU clock went at top speed - 1100MHz.
The interlaced content was MPEG-2, H.264, VC-1 - 1080p.
The MFX load (DECODE) was below 15%.

On the other hand EVR had only 60% of GPU load at 850MHz consuming less than half power of EVR-CP (for GPU only) and pushed more CPU utilization for the same interlaced content.

The playback of clips was in window mode - not full screen - because I wanted to see various other windows (GPU-Z, Media Checker, GPA Monitor).

That's all folks!

egur
28th October 2012, 22:08
In ffdshow video decoder->config->Intel QuickSync you should enable the deinterlacer. The config page is self explanatory.
Make sure that the combo box with multithreading options is set to "Multithreaded copy".
Potplayer crashes with QS since it allows all MT options which are sadly not stable on the 15.28 drivers and there's nothing I can do about it (except decode in 1 thread). I didn'tchange the hard coded defaults in the latest release so replacing the DLL will not help. This is something Potplayer writers can easily fix.

NikosD
28th October 2012, 22:20
All the options you mention are default options except DI.
That was the only option I had to select.

Unfortunately PotPlayer crashes in DXVA too.

What about EVR-CR vs EVR, regarding GPU load ?

And GPA Monitor regarding VPP functions ?

egur
30th October 2012, 08:06
EVR-CP uses more GPU resources than EVR.
EVR is the most power friendly and performance friendly alternative in win7/8. One can always use VMR9 (DXVA1) but it's outdated and I don't recommend it.
Using DI (or any other VPP operation) within my decoder has these properties:
* Allows you to add subtitles, OSD afterwards via standard SW functions.
* DI can double the frame rate (via option). EVR will always double the frame rate. Both use the same DXVA2 video processor device. Doubling the frame rate in the decoder will hurt performance but current systems are more than strong enough to handle this.
* Detail/Denoise are used via the same video processing device in QS/EVR. These operations must work on progressive video, so DI is implicitly enabled, even if user disables it.
* Same goes for ProcAMP (contrast, brightness, etc) and scaling which I didn't implement.

Pulp Catalyst
30th October 2012, 16:53
I'll be lying if i said i understood half of what's being talked about here, so my question may of been answered already, but my understanding of this thread is.... sorry anyway

my question is, i use MeGUI, can the decoding of a H264/VC1 stream be shifted over to the QS decoder, than from there go through the normal path of Avisynth - filters - encoder - output

i use DGDecNV which shifts decoding over to the GPU and MeGUI happily supports DGDecNV, is there anyway that QS can be utilized in the same manner using any available techniques at present, or perhaps will this be possible in the future, having a GPU do the decoding has been very rewarding for me with DGDecNV, but QS is said to be far superior due to technical reasons, and i would love to take advantage of that fact, any feed back of this being donme now, or perhaps in the future would be great..... i know that the new ffdashow does have avisynth capabilities... can this be utilized somehow along with MeGUI ?

i have 3770k
9800GT
Virtu Universal MVP

vivan
30th October 2012, 17:25
Pulp Catalyst,
Just use directshowsource () for decoding video in avisynth. If you have ffdshow installed - than it will use it, thus using QS.

Pulp Catalyst
30th October 2012, 17:29
so inside a megui avisynth script, use directsource, ok, this will load up ffdshow, how do i tell ffdshow to use quicksync decoder or will it do this automatically if i use this one

http://sourceforge.net/projects/qsdecoder/

even so, surely it must be a bit more complicated than this, isn't the image coming back in, the wrong format kind of thing?

Directshowsource () doesn't the encoder need a certain kind of format.... or am i reading to much into this LOL

QS decoding is all well and god, but the information coming back along the pipe needs to be yv12, or what ever x264/xvid will want, will i need to do anything inside avisynth to make the decoded info compatible?

NikosD
31st October 2012, 18:25
I tried a new beta of DXVAChecker v2.9.2 which seems that not only enumerates Intel MFT decoders but can use them too for playback and benchmarking, but not for every format.

It can only enumerate Intel MFT decoders for H.264 (progressive & interlaced) and VC-1 progressive.
So, no MPEG-2, no WMV and no VC-1 interlaced for Intel MFT.

Regarding performance it's using for sure Intel MSDK (big surprise :eek:) and so it's not comparable with native DXVA HW codecs, it's comparable with your QS decoder (it seems that you have an internal competitor :p)

Your QS decoder in both implementations (FFDShow 4488, LAV 0.52) is generally faster than Intel MFT ~20%

LAV > FFDShow > Intel MFT

Only in very specific clips Intel MFT is a little faster.

If I have something new about future beta of DXVAChecker adding more codecs, I'll post again.

crotecun
1st November 2012, 03:57
I don't know what Linux drivers do and what options they support.

I see, I guess I'll pick up a Windows laptop to be sure I take advantage of Sandy/Ivy Bridge graphics technology.

Speaking of which, concerning this quote:

EVR-CP uses more GPU resources than EVR.
EVR is the most power friendly and performance friendly alternative in win7/8.

Are there any differences in video playback between Windows 7 and Windows 8? I was wondering if there is any benefit in moving to Microsoft's newest OS when it comes to watching videos.

egur
1st November 2012, 19:48
I tried a new beta of DXVAChecker v2.9.2 which seems that not only enumerates Intel MFT decoders but can use them too for playback and benchmarking, but not for every format.

It can only enumerate Intel MFT decoders for H.264 (progressive & interlaced) and VC-1 progressive.
So, no MPEG-2, no WMV and no VC-1 interlaced for Intel MFT.

Regarding performance it's using for sure Intel MSDK (big surprise :eek:) and so it's not comparable with native DXVA HW codecs, it's comparable with your QS decoder (it seems that you have an internal competitor :p)

Your QS decoder in both implementations (FFDShow 4488, LAV 0.52) is generally faster than Intel MFT ~20%

LAV > FFDShow > Intel MFT

Only in very specific clips Intel MFT is a little faster.

If I have something new about future beta of DXVAChecker adding more codecs, I'll post again.
Very odd, it should connect via DXVA2. If it doesn't, this means that it do a copy-back like I do. Strange that MPEG2 , WMV9 and VC-1 interlaced aren't supported.
I should generally be faster since my code is parallelized a little better probably. My copy function is also faster.

so inside a megui avisynth script, use directsource, ok, this will load up ffdshow, how do i tell ffdshow to use quicksync decoder or will it do this automatically if i use this one

http://sourceforge.net/projects/qsdecoder/

even so, surely it must be a bit more complicated than this, isn't the image coming back in, the wrong format kind of thing?

Directshowsource () doesn't the encoder need a certain kind of format.... or am i reading to much into this LOL

QS decoding is all well and god, but the information coming back along the pipe needs to be yv12, or what ever x264/xvid will want, will i need to do anything inside avisynth to make the decoded info compatible?
Use the newer between my download page or ffdshow-tryouts page. My build is made on the main source code.
Within ffdshow's configuration page (e.g. from Start Menu), go to the codecs tab and select H264,MPEG2, VC1, WMV9. This is a one time setup.

Are there any differences in video playback between Windows 7 and Windows 8?
There are some differences like DXVA over D3D11. I'm not sure who/what actually uses the new features.

NikosD
1st November 2012, 21:03
Very odd, it should connect via DXVA2. If it doesn't, this means that it do a copy-back like I do. Strange that MPEG2 , WMV9 and VC-1 interlaced aren't supported.


Looking at my benchmark numbers, DXVA CB is a lot slower (more than 20%) than QS decoder.

Also if it's using DXVA CB, how is it possible to play/benchmark VC-1 progressive content ?
VC-1 HW acceleration of Intel doesn't use proprietary DXVA mode.

It seems that MPEG-2 doesn't belong to MediaFoundation supported video formats.
But then again, why Intel released a MFT MPEG-2 decoder (transcoder) ?

Pulp Catalyst
2nd November 2012, 01:07
can someone help me getting this to work with MeGUI, i have looked around, there is no option in MeGUI to create a AVS script but use DirectShowSource instead of dgv,

i looked for some guides, but all i get is create a avs script in megui but use DirectShowSource, i have been on this for two days now.

can anyone help, give me some feedback other than "use DirectShowSource", appreciate it.

the following doesn't work,

# Set DAR in encoder to 4 : 3. The following line is for automatic signalling
global MeGUI_darx = 4
global MeGUI_dary = 3
SetMemoryMax(1024)
SetMTMode(5,2)
#LoadPlugin("D:\Program Files (x86)\MeGUI\tools\dgindex\DGDecode.dll")
DirectShowSource("H:\MEGUI\7\VTS_01_1.d2v", info=3)
LoadPlugin("D:\Program Files (x86)\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
ColorMatrix(hints=true, threads=0)
SetMTMode(2,2)
#deinterlace
crop(18, 10, -14, -6)
#resize
#denoise


so i messed around myself manually and did this
# Set DAR in encoder to 4 : 3. The following line is for automatic signalling
global MeGUI_darx = 4
global MeGUI_dary = 3
SetMemoryMax(1024)
SetMTMode(5,2)
#LoadPlugin("D:\Program Files (x86)\MeGUI\tools\dgindex\DGDecode.dll")
DirectShowSource("G:\DVD\03\VIDEO_TS\VTS_01_1.VOB")
LoadPlugin("D:\Program Files (x86)\MeGUI\tools\avisynth_plugin\ColorMatrix.dll")
#ColorMatrix(hints=true, threads=0)
SetMTMode(2,2)
#deinterlace
crop(18, 10, -14, -6)
#resize
#denoise


now this worked, but AVSMeter showed a decrease in speed by about 45% over libavcodec.....
also when used with QTGMC (which is really important for me hence why i'm trying to coax everybit of speed i can)

i get error in AVSMeter

unsupported colourspace, masktools only supports YUV colorspaces

YV12, YV16, YV24

EDIT

ConvertToYV12(interlaced=true)

EDIT 2

done some more testing, AVSMeter seems to be giving of false readings, if i drag over a avs file it says average 525, then i stop, drag it over again, goes down to 458..... each time it's different, gonna have to think about this one.... maybe will have to do actual time tests..... video time tests take so long to do LOL.

egur
2nd November 2012, 12:55
Looking at my benchmark numbers, DXVA CB is a lot slower (more than 20%) than QS decoder. There's more then one way to do things. I've put in the effort to do it as fast as possible.
Also if it's using DXVA CB, how is it possible to play/benchmark VC-1 progressive content ?
VC-1 HW acceleration of Intel doesn't use proprietary DXVA mode.
Intel code doesn't use proprietary DXVA anything. The Media SDK probably has some workarounds. This is just a guess. I dont really know.
It seems that MPEG-2 doesn't belong to MediaFoundation supported video formats.
But then again, why Intel released a MFT MPEG-2 decoder (transcoder) ?
No clue.

can someone help me getting this to work with MeGUI, i have looked around, there is no option in MeGUI to create a AVS script but use DirectShowSource instead of dgv,

....

Try limiting ffdshow's / LAV decoder to YV12 (better!) or YUY2, depending on the version of Avisynth you use.
Do this via the config page of either decoder. Make sure these decoders actually work, ffdshow shows a tray icon. You can see if LAV is working by by using Process explorer and looking at the DLLs used by the process.
FYI,
It's a known fact that for low resolution and/or low bitrate you will not get any benefit from HW acceleration:
1) Need to perform more memory copying relative to SW decoder.
2) Need to convert the output from NV12->YV12 or even worse to YUY2.

The big difference is with the high bitrate stuff - e.g. BluRay.
As for trancoding, the bulk of the work is done by the encoder so even if the decoder works in zero time, the difference will be small.

nevcairiel
4th November 2012, 12:00
Hey Eric,

i found a somehwat annoying behaviour in the QS Decoder.
I recently added support for using it with EVR in Fullscreen Exclusive mode, but now its broken in another use-case.
Because i cannot really detect if i'm in FSE mode, i always try to grab the interface from EVR if its present, and use it (ffdshow does the same).

The problem starts when i try to move the player from one screen to another. Playback simply freezes. You can reproduce this with ffdshow as well.
What EVR does is reconnect its Pin, and give me a new D3D Device Manager, because obviously the old one was for the other screen. After its done, the old device manager ceases to function.

At this point, the QS decoder also fails, because it doesn't seem to be able to change its D3D interface on the fly.
What i would hope it would do, is either try to re-create its D3D interfaces using the device manager. As an alternative, it could also just try to create the D3D interfaces directly, and only use the renderer supplied version if the direct way didn't work.

Thoughts?

Edit:
http://git.1f0.de/gitweb?p=qsdecoder.git;a=commitdiff;h=6fede91c290c1eece59357f220a62c65768a6433

This is my change implementing my alternative idea above, so far it seems to work just perfectly. The comment in the code also seems to think its done like this, the question is, any reason it wasn't?
I have been testing both FSE usage and normal usage, and everything seems perfect so far.

egur
4th November 2012, 17:27
I looks fine. It might cause a slightly slower initialization.
It will not solve this scenario:
* Start in FSE
* Player leaves FSE into windowed mode.
* Player/renderer moved to another monitor.

Not really strong use case but possible, I'll try to solve both.
I want to check another option, before committing.

nevcairiel
4th November 2012, 17:47
Yeah i don't consider the start in FSE and then go into windowed mode a strong use-case. :p

If you can fix it another way, its fine with me. I just don't want to break something that worked before i added FSE support (ie. moving screen with EVR).

egur
4th November 2012, 21:46
Did 2 small commits.
r70 fixes the above problem (hopefully).
r71 just chnages the default MT options - only MT copy is enabled by default. Doesn't matter to either LAV or ffdshow.

Pulp Catalyst
5th November 2012, 07:53
been going through the entire topic here, page by page....

i finally just came across this which explains everything why i'm getting such inferior results than i would expect Luckily NVIDIA was smarter and lets you access the HW decoder without a D3D device. Even works without a screen connected at all. Intel should totally do that

i realize now that QS decoder can't be used like the Nvidia one can (DGDecNV), so like AMD, QS can't be directly accessed either, which means having to go through the d3d surfaces is the only way, this now explains why i'm getting inferior results with my tests (there is an innate overhead performance lost going through this entire chain) where the Nvidia system allows direct communication whereby eliminating many of the overheads that the QS system has..... and only getting the decoder to process what's necessary!

so i am i right saying that QS for decoding streams directly will always be inferior to Nvidia's solution unless intel opens up the decoder for direct access.....

also will this, or is there any reason why this can't be done (AMD hasn't done this yet either, although haven't checked for a while)?

also is this a decision made by Intel not to open the decoder up, or is it because of technical issues (drivers need developing specifically for this)?

nevcairiel
5th November 2012, 08:09
The QS decoder doesn't have any higher actual overhead then the NVIDIA CUDA decoder. Sure, in theory there is the D3D in between, which requires a connected screen - but if you have the connected screen anyway, the actual CPU overhead is the same, both need to copy the frame from the GPU back to main system memory. Additionally, the QS decoder is quite a lot faster then NVIDIAs. So from a pure performance perspective, QS still wins.

It would still be great to have access to the QS engine without D3D, but i for one am doubtful that will ever happen. Not for performance reasons, but simply to be able to use it without trickery with virtual screens and whatnot when you have a dedicated GPU.

Pulp Catalyst
5th November 2012, 08:47
I have been doing tests now for several days, maybe it's the implementations, maybe there are other cogs in the chain causing lost of performance I don't know, what I do know is I have been doing many tests with megui encodes through ffdshow (quicksync decoding) and I am getting results that are the same if not worse than doing software decoding (the numbers seems to jump all over the place.... i also get huge mourse lag and stutter in windows.... memory usage in avisynth shoots up to 1gb (it's locked not to go over that).... fact is... ffdshow decoding at high-speed (for use with encoding) feels very unstable.

whereas DGDecNV (offloading the decoding too my 9800GT which has VP2 decoder engine) I get about a decrease in CPU usage for Highdef Blu-ray video around 6-12%, not much, but it does give x264 an extra boost in available processing power (I know this is in simple terms), however the end result can't be denied, my average fps of 22.3 fps can go to 24.3 fps (on a good day, but usually an extra 1.5 increase is about the norm although my 9800gt has an old decoding engine tech compared to ivy 3770k)

I'm thinking with the added elements of ffdshow (and how it works, having to use directshowsource in avisynth along with anything else that i can't see in the middle) maybe is what's causing the overall performance drop compared to having a direct link to the decoder itself like a tool similar to DGDecNV, only for QS instead.

finished reading this yesterday actually, which may or may not be relevant here....

http://software.intel.com/en-us/articles/performance-interactions-of-opencl-code-and-intel-quick-sync-video-on-intel-hd-graphics

egur
5th November 2012, 19:34
@Pulp Catalyst
Try specifying your MeGUI setup as much as possible.
I'll try to replicate your setup and maybe find a better one (performance, same quality).

Pulp Catalyst
5th November 2012, 22:31
thanks, but quite frankly there isn't one (i know bold statement), but when you think about it how could there be, what ever gains QS gives regarding the decoding, will be lost when taking into account the extra steps needed doing that process..... (which i feel strongly that's what i have been witnessing)

offloading the decoding process to hardware doesn't gain that much anyway as you well know, because of that fact it doesn't take much for the performance gains of hardware decoding to diminish..... with ffdshow having to do this at that end (i will not pretend to understand the technical stuff at this point) those small gains quickly diminish, by the time the decoded stream comes back to avisynth I'm lucky if i have broken even (but from what i can tell i usually have lost performance by this point NOT GAINED)


very kind of you to offer though, i think i will just invest in a new GPU (with vp5 decoder as this has a lot more performance boots (thanks nvidia))

http://en.wikipedia.org/wiki/Nvidia_PureVideo#The_Fifth_Generation_PureVideo_HD

along with the PCIe 3.0 ivy brings to the table with a vp5 decoder..... i reckon even more work will be offloaded to the GPU (with the faster express lane, hopefully less protocol overhead too)

also that link i posted in my previous post has got me very concerned in how the GPU in ivy works (if CPU and GPU are utilized at full at the same time, then a bottleneck is formed..... something like that if i understood it correctly because how turbo boost works or something...... worrying but can't be sure if relevant to my case)

your main focus has been decoding for a display device, perhaps in time when that is finalized you will focus on decoding for transcoding purposes but not QS encoding.... just decoding thanks LOL, but giving how busy you are already, decoding for encoding purposes is probably the last thing you need to start dealing with right now....


what would it take for intel to open there decoder up for direct access (couldn't help notice you didn't answer my previous questions on this matter)
and if they won't...... WHY?

if you don't know.... who would?

egur
6th November 2012, 07:59
@Pulp Catalyst
I want to clarify some technical details:
Both Nvidia and Intel do not give you direct access to the HW because that's the driver's job.
Both provide an API (user mode) that abstracts the hassles of dealing with HW.
Intel provides 2 APIs:
1) DXVA - decode and video processing.
2) Media SDK - decode, video processing & encoding.
The later is more abstract (much less code for developers) and allows encoding which is not available in DXVA (Microsoft didn't define an encoding API).
The Media SDK dependency on DXVA/D3D9 is not a real problem when the display is connected to iGPU.

All HW decoders output NV12. This surface type is the best optimized surface for HW implementation.
QS doesn't actually output frames in system memory, my implementation copies (as fast as possible) the D3D surfaces from the GPU memory space. GPU memory space is organized differently than the CPU memory space so the copy is ~half the speed of standard memory copy.
ffdshow copies the output yet again to the surface provided by the downstream filter (usually renderer). Instead of copying, it may perform surface type or colorspace conversion.

I'm interested in improving performance in all domains related to decoding and I think there's still things to be done.
BTW the HW encoder can be used freely by developers, including open source via the Media SDK. It's not too complicated but I don't have the bandwidth to add it to my code and integrate it into an encoder that will work under MeGUI.

I couldn't make Avisynth work at all with DirectShowSource - I'm having setup troubles :(

Pulp Catalyst
6th November 2012, 09:57
yeah i knew about the API, reading back what i wrote.... yeah should't use the word direct really - sorry, nothing is ever direct, there would be BSOD's all over the place LOL

what i meant is that ffdshow is doing a piggy in the middle kind of thing where as.....

the following is quite informative for DGDecNV development process, it's great that "neuron2" has shared this for others to see,

would be great if you could take the time to read, and comment on how that could relate to Intel's API, and if at all possible?
(there is a lot i don't understand, but i'm sure you will)

http://neuron2.net/dgdecnv/cuda/cuda.html

(it's a long read, you may need a couple of coffees if you decide to read it),

i will understand if you don't !!!

andybkma
6th November 2012, 10:16
Greets, I have a question about how QS is implemented differently in ffdshow vs LAV with my Ivy Bridge i7-3610QM . I have two AVC vids that play fine in Zoom Player using LAV Splitter + LAV Video QS. But when I use ffdshow as the QS decoder (with defaults) with same LAV Splitter those two vids play fast (above normal speed and out of sync). If I disable "Enable Time Stamp correction" in ffdshow then those two vids play a little better, seeking is still a tad off (plays fast but then reverts to what should be normal speed) and is in sync. But they still don't play nearly as nice as when I use LAV Video as the QS decoder. But if I then play other AVC vids I then get a different seeking problem if I leave "Enable Time Stamp Correction" off so that's not a viable solution.

So which leads me back to I am wondering why I am getting such different results when playing these two vids using two different QS decoders but with same LAV splitter. Probably a bug in ffdshow? Am using newest clsid, rev 4489.

egur, if you want, I can pm you the file download links to the two vids I am having probs with in ffdshow using your QS decoder...

Note: If anyone is wondering why I am reporting this problem with ffdshow and hoping it will get fixed is because ffdshow has that realtime avisynth plugin option (I use Limited Sharpen Faster) . If anyone can tell me how to use avisynth realtime plugin with LAV without ffdshow that would be great.

egur
6th November 2012, 19:31
@andybkma
The main difference between ffdshow and LAV in that respect is that LAV computes the time stamps based on heuristics derived from information which is not known to my decoder. This usually works best (not 100%). ffdshow doesn't do it, so I calculate the time stamps (and frame rate) from the stream itself which in some (rare) cases doesn't work, especially if the splitter is buggy (e.g. Haali). LAV splitter is the best choice.
I would appreciate a sample since all my test clips work fine.

BTW ffdshow can be used a post processor (e.g. raw video).

@Pulp Catalyst
I read part of the long post. Anything special you wanted me to notice?

Pulp Catalyst
6th November 2012, 22:53
didn't know whether any of it would help, as there is some overlap here with what your doing in a way, thought maybe you would get some ideas or something.... obviously not LOL

to me it seemed what neuron2 has already done seemed familiar in someway with what your doing now, (thought there could be some info on his post that maybe would explain why ffdshow decoding above REALTIME speed would be giving such poor results for me with Intel)

his system is a fremeserver (frames come back directly to avisynth for example), maybe is this difference in design that makes all the world of difference, because ffdshow is not a frameserver, the end design for ffdshow is to playback frames in real-time or better on a display device...... somewhere between these two worlds must be a difference which would explain the lack of performance that i'm getting from intel decoding of high def...... although your system and a frameserver shares many similar designs elements, there must be a branch difference somewhere near the end or something (clearly this is where i have no clue..... just shouting out some possible ideas)

feel free to shoot me down if i'm way of base....which i probably am...

andybkma
7th November 2012, 02:43
@andybkma

I would appreciate a sample since all my test clips work fine.



Thanks for your detailed explanation :-) PM sent with clip download link

egur
7th November 2012, 22:28
Version 0.40 is out with the following changes:
* Removed all MT code, cleaning up the design. MT copy is still here
* Wrote basic AVX2 copy function (unused and untested).
* Enabled DVD decode. Not enabled well in ffdshow. Used in LAV 0.53 and up.
* Out of beta!
* FFDShow: r4490

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)

MarkT
9th November 2012, 03:38
Hi,

I am using LAVFilters most recent 0.53 build from yesterday and am trying to decode H.264 Video (TV) with QuickSync. DXVA native works and QuickSync used to work, too, but since a couple of Intel video driver releases on my Intel Ivy Bridge HD 4000 CPU it falls back to avcodec for H.264. Most recent 9.17.10.2875 driver also makes it fall back. Is this supposed to be that way? :D

I imagine something with regard to the SDK was changed some weeks ago, but it is out of my league to determine what that might be.

Thanks,
Mark

egur
9th November 2012, 10:42
@Mark
What about playing files?

Anyone else had this issue?

MarkT
9th November 2012, 17:51
@egur

File works:

Filter : LAV Video Decoder - CLSID : {EE30215D-164F-4A92-A4EB-9D4C13390F9F}

- Connected to:

CLSID: {171252A0-8820-4AFE-9DF8-5C92B2D66B04}
Filter: LAV Splitter
Pin: Video

- Connection media type:

Video: MPEG4 Video (H264) 1920x816 23.976fps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {31435641-0000-0010-8000-00AA00389B71}
formattype: FORMAT_MPEG2_VIDEO {E06D80E3-DB46-11CF-B4D1-00805F6CBBEA}
bFixedSizeSamples: 0
bTemporalCompression: 1
lSampleSize: 1
cbFormat: 165

VIDEOINFOHEADER:
rcSource: (0,0)-(1920,816)
rcTarget: (0,0)-(1920,816)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 417084

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 40
dwPictAspectRatioY: 17
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

MPEG2VIDEOINFO:
dwStartTimeCode: 0
cbSequenceHeader: 33
dwProfile: 0x00000064
dwLevel: 0x00000029
dwFlags: 0x00000004

BITMAPINFOHEADER:
biSize: 40
biWidth: 1920
biHeight: 816
biPlanes: 1
biBitCount: 12
biCompression: AVC1
biSizeImage: 2350080
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

pbFormat:
0000: 00 00 00 00 00 00 00 00 80 07 00 00 30 03 00 00 ........€...0...
0010: 00 00 00 00 00 00 00 00 80 07 00 00 30 03 00 00 ........€...0...
0020: 00 00 00 00 00 00 00 00 3c 5d 06 00 00 00 00 00 ........<]......
0030: 00 00 00 00 00 00 00 00 28 00 00 00 11 00 00 00 ........(.......
0040: 00 00 00 00 00 00 00 00 28 00 00 00 80 07 00 00 ........(...€...
0050: 30 03 00 00 01 00 0c 00 41 56 43 31 00 dc 23 00 0.......AVC1.Ü#.
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070: 00 00 00 00 21 00 00 00 64 00 00 00 29 00 00 00 ....!...d...)...
0080: 04 00 00 00|00 18 67 64 00 29 ac 34 e5 01 e0 19 ......gd.)¬4å.à.
0090: e8 40 00 65 d3 c0 13 12 d0 23 c6 0c 65 80 00 05 è@.eÓÀ..Đ#Æ.e€..
00a0: 68 ee b2 c8 b0 hî²È°


I recorded a small segment in DVB-Viewer and playing it in MPC-HC it also uses QuickSync:

Filter : LAV Video Decoder - CLSID : {EE30215D-164F-4A92-A4EB-9D4C13390F9F}

- Connected to:

CLSID: {171252A0-8820-4AFE-9DF8-5C92B2D66B04}
Filter: LAV Splitter
Pin: Video

- Connection media type:

Video: MPEG4 Video (H264) 1280x720 50fps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {31435641-0000-0010-8000-00AA00389B71}
formattype: FORMAT_MPEG2_VIDEO {E06D80E3-DB46-11CF-B4D1-00805F6CBBEA}
bFixedSizeSamples: 0
bTemporalCompression: 1
lSampleSize: 1
cbFormat: 288

VIDEOINFOHEADER:
rcSource: (0,0)-(1280,720)
rcTarget: (0,0)-(1280,720)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 200000

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 16
dwPictAspectRatioY: 9
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

MPEG2VIDEOINFO:
dwStartTimeCode: 0
cbSequenceHeader: 156
dwProfile: 0x00000064
dwLevel: 0x00000028
dwFlags: 0x00000004

BITMAPINFOHEADER:
biSize: 40
biWidth: 1280
biHeight: 720
biPlanes: 1
biBitCount: 12
biCompression: AVC1
biSizeImage: 1382400
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

pbFormat:
0000: 00 00 00 00 00 00 00 00 00 05 00 00 d0 02 00 00 ............Đ...
0010: 00 00 00 00 00 00 00 00 00 05 00 00 d0 02 00 00 ............Đ...
0020: 00 00 00 00 00 00 00 00 40 0d 03 00 00 00 00 00 ........@.......
0030: 00 00 00 00 00 00 00 00 10 00 00 00 09 00 00 00 ................
0040: 00 00 00 00 00 00 00 00 28 00 00 00 00 05 00 00 ........(.......
0050: d0 02 00 00 01 00 0c 00 41 56 43 31 00 18 15 00 Đ.......AVC1....
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070: 00 00 00 00 9c 00 00 00 64 00 00 00 28 00 00 00 ....œ...d...(...
0080: 04 00 00 00|00 27 27 64 00 28 ac c8 60 14 01 6e .....''d.(¬È`..n
0090: c0 5a 80 80 80 f8 00 00 03 00 08 00 00 03 03 27 ÀZ€€€ø.........'
00a0: 44 00 05 7b c0 00 36 65 d7 bd c0 50 00 00 05 28 D..{À.6e×½ÀP...(
00b0: fa 43 cb 00 00 61 28 5e 90 f3 82 80 24 42 00 82 úCË..a(^ó‚€$B.‚
00c0: 10 84 61 00 c0 80 f7 06 1f ff e0 c3 ff fc 0b 01 .„a.À€÷..ÿàĂÿü..
00d0: 08 43 11 c2 02 04 84 21 88 30 ff ff 06 1f ff e0 .C.Â..„!ˆ0ÿÿ..ÿà
00e0: a0 18 43 01 90 c0 43 e0 80 22 10 ff c2 18 20 c1 *.C.ÀCà€".ÿÂ. Á
00f0: 0e 11 84 21 88 88 60 40 90 8c 48 80 b7 ff f0 2c ..„!ˆˆ`@ŒH€·ÿđ,
0100: 08 88 c4 71 1f f8 8f c4 7f 11 88 13 88 88 c4 88 .ˆÄq.øÄ.ˆ.ˆˆÄˆ
0110: f1 1c 21 88 88 c0 00 00 07 28 7e 90 f3 00 c0 00 ñ.!ˆˆÀ...(~ó.À.



I am guessing now its an interaction with the DVB source filter and LAV and not related to your QuickSync code. I have to experiment some more and probably talk to LAV author in the other thread. Thanks!

corporalgator
11th November 2012, 19:49
I'm having trouble with a particular file while using quicksync. I was on lav .52, so I updated to .53 and it didn't get any better. First question is, do I need to download the quicksync update separately or is it automatically included with lav .53?

So, when I play this file, a blu-ray remuxed into an mkv, every 5 minutes or so, a few of the frames become corrupted with several blocks of random solid colors. If I switch the lav video decoder to dxva, the problem goes away.

Here's the information on the file:


- Connected to:

CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Filter: LAV Splitter Source
Pin: Video

- Connection media type:

Video: WVC1 1920x1080 23.976fps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {31435657-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 0
bTemporalCompression: 1
lSampleSize: 1
cbFormat: 146

VIDEOINFOHEADER:
rcSource: (0,0)-(1920,1080)
rcTarget: (0,0)-(1920,1080)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 417083

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 16
dwPictAspectRatioY: 9
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

BITMAPINFOHEADER:
biSize: 74
biWidth: 1920
biHeight: 1080
biPlanes: 1
biBitCount: 12
biCompression: WVC1
biSizeImage: 3110400
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

pbFormat:
0000: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0010: 00 00 00 00 00 00 00 00 80 07 00 00 38 04 00 00 ........€...8...
0020: 00 00 00 00 00 00 00 00 3b 5d 06 00 00 00 00 00 ........;]......
0030: 00 00 00 00 00 00 00 00 10 00 00 00 09 00 00 00 ................
0040: 00 00 00 00 00 00 00 00 4a 00 00 00 80 07 00 00 ........J...€...
0050: 38 04 00 00 01 00 0c 00 57 56 43 31 00 76 2f 00 8.......WVC1.v/.
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070:|00 00 00 01 0f db 7e 3b f2 1b 8a 3b f8 86 f1 80 .....Û~;̣.Š;ø†ñ€
0080: 4a 02 02 03 09 af 27 07 27 04 00 00 01 0e 5a df J....¯'.'.....Zß
0090: f8 40 ø@





Is this a quicksync problem or lav problem, do I need to uplaod a clip?

egur
12th November 2012, 07:54
@MarkT
Nev, LAV author has created a fix for DVB source. According to the fix, it seems that DVB doesn't fill the initial media sample correctly, causing QS's stream compatibility check to fail.


Is this a quicksync problem or lav problem, do I need to uplaod a clip?
You need to upload the clip. Better yet, part of it containing the issue. It could be a Media SDK issue not the driver. MediaFire is a recommended file share for this purpose.

CiNcH
12th November 2012, 08:09
Nev, LAV author has created a fix for DVB source. According to the fix, it seems that DVB doesn't fill the initial media sample correctly, causing QS's stream compatibility check to fail.
It is possible to activate format pre-detection inside the DVBViewer, which will properly set profile and level. It is disabled by default, which means that the decoder has to parse the information from the bitstream all by itself. Leaving format pre-detection disabled works for most decoders and improves channel switching delay.

MarkT
12th November 2012, 13:22
@egur: Thanks for taking the time, fix works, Nev is the man. ;-)

corporalgator
12th November 2012, 15:46
You need to upload the clip. Better yet, part of it containing the issue. It could be a Media SDK issue not the driver. MediaFire is a recommended file share for this purpose.

Here's the link to the clip. It displays the pixelization twice right in the middle.

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

To be using the latest quick sync, do I just need to download the latest lav filters, or do I have to download quick sync separately?

I found others in my library that have the same problem, and they are all VC-1 encoded.

egur
12th November 2012, 16:56
Here's the link to the clip. It displays the pixelization twice right in the middle.

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

To be using the latest quick sync, do I just need to download the latest lav filters, or do I have to download quick sync separately?

I found others in my library that have the same problem, and they are all VC-1 encoded.

I've reproduced the issues. Looks like a driver bug. I'll report it and hopefully it will get fixed.
Please share more clips that show corruption if you can.

As for the Intel QuickSync Decoder, it's shipped with either ffdshow or LAV. The latest release of either has the latest version (usually). Don't copy the DLL around between ffdshow and LAV as the API might have changed. It will usually work but no guaranties.

As a rule of thumb, ffdshow is updated first because I have permission to update the ffdshow source code. LAV updates very quickly, so if the last LAV version is new, it's up to date.
Note that in the future, certain features will be available in LAV and not in ffdshow and vice versa.
Currently the differences are:
LAV: QS DVD playback.
ffdshow: HW deinterlacing, denoise, detail, time stamp correction, soft inverse telecine.

corporalgator
13th November 2012, 05:02
I've reproduced the issues. Looks like a driver bug. I'll report it and hopefully it will get fixed.
Please share more clips that show corruption if you can.

As for the Intel QuickSync Decoder, it's shipped with either ffdshow or LAV. The latest release of either has the latest version (usually). Don't copy the DLL around between ffdshow and LAV as the API might have changed. It will usually work but no guaranties.

As a rule of thumb, ffdshow is updated first because I have permission to update the ffdshow source code. LAV updates very quickly, so if the last LAV version is new, it's up to date.
Note that in the future, certain features will be available in LAV and not in ffdshow and vice versa.
Currently the differences are:
LAV: QS DVD playback.
ffdshow: HW deinterlacing, denoise, detail, time stamp correction, soft inverse telecine.

Thanks, I'll upload clips for the others Wednesday probably.

egur
14th November 2012, 21:24
Thanks, I'll upload clips for the others Wednesday probably.

I just got hold of the newest driver - 15.28.8.64.2875.
It fixes your clip, so next released driver will do the job. The driver was built before my report so I guess this was a known issue.

Please share more failing clips.
As a rule of thumb, if libavcodec/ffmpeg shows no issues and QuickSync does, this is a good clip to report.

corporalgator
15th November 2012, 06:03
I just got hold of the newest driver - 15.28.8.64.2875.
It fixes your clip, so next released driver will do the job. The driver was built before my report so I guess this was a known issue.

Please share more failing clips.
As a rule of thumb, if libavcodec/ffmpeg shows no issues and QuickSync does, this is a good clip to report.

Here's another doing the same thing. You'll be able to see which move it is, heh.

http://www.mediafire.com/?yzrmqsxy19g7m7b (http://www.mediafire.com/?yzrmqsxy19g7m7b)

So basically the next version of lav filters will have this fixed?

nevcairiel
15th November 2012, 07:32
No, the next Intel driver fixes this (a version higher then 2875 at least). You need to update the driver, not LAV. :)

egur
15th November 2012, 08:08
The problem was in the driver not LAV. The next driver version will have this fix. I'll check the new clip and report back.
Update:
Latest driver (15.28.9.64.2884) plays fine with the Bourne clip (last link). Just a matter of time till its released (don't know when).

NikosD
15th November 2012, 15:12
Latest drivers (v2875) have disabled H/W acceleration of MFT decoders (transcoders) (H.264, VC-1) - at least with DXVAChecker v2.9.1

corporalgator
16th November 2012, 02:25
The problem was in the driver not LAV. The next driver version will have this fix. I'll check the new clip and report back.
Update:
Latest driver (15.28.9.64.2884) plays fine with the Bourne clip (last link). Just a matter of time till its released (don't know when).

Do you want me to upload more? I think all I have left is Bourne Supremacy and Bourne Legacy. I think it's just beating a dead horse at this point since we know what the fix is.

egur
16th November 2012, 22:30
Do you want me to upload more? I think all I have left is Bourne Supremacy and Bourne Legacy. I think it's just beating a dead horse at this point since we know what the fix is.

Clips from the same source probably exhibit the same issues, so if you have clips from other sources, then yes, please share.
Edit:
The previous 64 bit driver (15.28.8.64.2875) is available from Intel here (http://downloadcenter.intel.com/Detail_Desc.aspx?DwnldId=22083).

ryrynz
17th November 2012, 07:09
I noticed FFDshow revision 4493 listed @ SourceForge but there's no link or update here.

egur
17th November 2012, 09:23
I noticed FFDshow revision 4493 listed @ SourceForge but there's no link or update here.
My last build was with ffdshow r4490 (QS v0.40).
Afterwards I've added AVX2 copy function (Haswell). The latter is not relevant to anyone yet and compiles under VS2012 (no AVX or AVX2 intrinsic functions in VS2010). Intel compiler v13 and probably 12.1 can do the job too.
I ran performance tests on Haswell to check whether AVX2 is faster than SSE4.1 (with respect to GPU memcpy). So far SSE4.1 is a little faster.

nn007
18th November 2012, 22:18
Windows Media Player (version 12.0.9200.16420) with Windows 8 cannot use ffdshow.

Anyone using Windows 8?

http://en.wikipedia.org/wiki/Ffdshow

After installation of ffdshow, compatible DirectShow or VFW media players such as Media Player Classic, Winamp, and Windows Media Player (not 12) will use the ffdshow decoder automatically, thus avoiding the need to install separate codecs for the various formats supported by ffdshow.

egur
19th November 2012, 08:23
I think Media player uses MFT codecs, not DirectShow.
There's a tweak tool that disables MFT for Media player and Windows Media Center. The tool was designed for Win7 but it should work with Win8.
Here's a link (http://codecguide.com/windows7_preferred_filter_tweaker.htm) to the tool i use.

You can disable MFT playback and assign your favorite DS filters instead. It applies to Windows Media Center too.

ryrynz
19th November 2012, 11:50
So far SSE4.1 is a little faster.

And you still don't have a production sample yet huh? Could be some improvements when that comes out, when you can disclose some info on it please do.

nn007
19th November 2012, 18:23
Decoding of which codec consumes most CPU cycles?

1. SMPTE VC-1
2. H.264 or MPEG 4 Part 10
3. H.262 or MPEG 2 Part 2

egur
19th November 2012, 19:13
Decoding of which codec consumes most CPU cycles?

1. SMPTE VC-1
2. H.264 or MPEG 4 Part 10
3. H.262 or MPEG 2 Part 2

In HW decoding, it's hard to tell - depending what the driver does.
In SW, VC-1 is the most CPU hungry for a given combination of resolution and bitrate.
MPEG2 is the simplest of all.

kwlee
20th November 2012, 12:09
Hi egur,
when I decode h264 file and when CQuickSync::Decode(IMediaSample* pSample) start,
I find sts of first 16 decoding loop will return MFX_ERR_MORE_DATA. After that,
the first decoded frame will be OK. Is it same thing as you discussed previously ?

http://forum.doom9.org/showthread.php?t=162442&page=86

egur
20th November 2012, 12:54
The Media SDK decoder decodes several frames before returning the first one. I also add some delay because I want to measure a few time stamps. Generally speaking the MSDK decoder caches the amount of frames that can be used for reference by that codec/profile. e.g. H264 high profile can use 16 frames so the delay is 16 frames.
This is far from optimal but that's the current state. The real impact is visible when there's a lot of seeks - this happens when certain players perform fast playback by seeking very quickly.

nn007
20th November 2012, 17:26
In HW decoding, it's hard to tell - depending what the driver does.
In SW, VC-1 is the most CPU hungry for a given combination of resolution and bitrate.
MPEG2 is the simplest of all.

Microsoft claims otherwise

http://www.microsoft.com/windows/windowsmedia/howto/articles/vc1techoverview.aspx

Because they are more sophisticated, VC-1 and H.264 are both more complex to decode than MPEG-2. Yet VC-1 is more than twice as efficient to decode as H.264. A study by 3GPP, a collaboration group that is setting 3G mobile phone standards, found that VC-1 Main Profile requires 25 percent fewer cycles than H.264 Baseline. It should be noted that H.264 Main Profile requires even more cycles than Baseline, because it includes highly complex arithmetic coding, also known as CABAC.

nevcairiel
20th November 2012, 17:38
The big problem in software decoders is that H.264 is usually very well optimized, but VC-1 decoders are not.
It also depends on the type of content, VC-1 Advanced Profile, especially field-interlaced content, is much more complex then VC-1 Main Profile.

Anyway, there is no argument that H.264 is the computationally most complex (it also compresses the best), but the implementation plays a big role.

egur
20th November 2012, 17:54
I agree with Nev and I'd like to add that VC-1 main profile is usually called WMV9 not VC1. VC1 content (WVC1 fourcc) is VC1 advanced profile.
Most H264 content is not baseline. The most common is high profile (all pirate copies of TV shows and movies).
BTW, H264 is the first format agreed by both MPEG and ITU-T, hence the double name: H264 and MPEG4 AVC (MPEG4 part 10).
VC1 ws introduced by Microsoft, not a standards video expert committee. It has many good features but most SW implementations are pretty bad.
Google has VP8 which is yet another advanced codec.

nevcairiel
20th November 2012, 18:06
VC-1 is also known as SMPTE 421M, it has some kind of standard attached to it. ;)

nn007
20th November 2012, 21:08
All three are Official Standards for Blu-Ray Video (Maximum Video Bit Rate is 40 Mbps):

1. SMPTE VC-1
2. H.264 or MPEG 4 Part 10
3. H.262 or MPEG 2 Part 2 (to maintain backward compatibility with DVD Video)

Hence, all three are supported by current version of Intel Quick Sync Video - Sandy Bridge Video Decoding:
http://www.tomshardware.com/gallery/decoder,0101-274956-0-2-3-1-jpg-.html

egur
20th November 2012, 21:59
I think BluRays can hit 54mbps but that's not a problem with QuickSync either on any SandyBridge or newer processor.

JeanMarc
21st November 2012, 05:41
I apologize if this has been addressed already, but I could'nt find the specific question. I am planning to build a new system with an Ivy Bridge processor (i5-3570K or i7-3770K) which can potentially use Quicksync acceleration, primarily for the purpose of encoding videos.

Is there a way to incorporate the quicksync decoder in ffmpeg, for example as part of libx264, or as a specific library, so that it would be possible to transcode to x264 without being forced to use Media Espresso or ArcSoft Media Converter?

Thank you for any help.

egur
21st November 2012, 08:23
I'm not aware of a way to use QuickSync in ffmpeg. FYI, using a HW decoder in transcoding will provide very limited benefits (if at all) due to the copying and frmae-format conversions.
Fixed typo - I'm not aware...

JeanMarc
22nd November 2012, 20:33
Thanks for the reply.

nn007
24th November 2012, 22:34
I am looking for a sample HD Video file encoded in H.264 or MPEG4/AVC at full HD resolution (1080p) and maximum frame rate (60 fps Progressive Scan)

1080p60 (1920 x 1080 at 60 fps Progressive)

Encoded in H.264 or MPEG4/AVC

I only find 24 fps or 30 fps HD content on the internet

egur
25th November 2012, 15:15
I am looking for a sample HD Video file encoded in H.264 or MPEG4/AVC at full HD resolution (1080p) and maximum frame rate (60 fps Progressive Scan)

1080p60 (1920 x 1080 at 60 fps Progressive)

Encoded in H.264 or MPEG4/AVC

I only find 24 fps or 30 fps HD content on the internet

Here's one of my test clips (http://www.mediafire.com/?bo70xnw2xl9n30d), H264 1080p@60p.
BTW, H264 and AVC are the same thing.

nn007
26th November 2012, 00:20
Here's one of my test clips (http://www.mediafire.com/?bo70xnw2xl9n30d), H264 1080p@60p.
BTW, H264 and AVC are the same thing.

Thanks for the link (the given clip is animated video)

Can you also provide links for

1. SMPTE 421M or VC1 - 1080p @ 60 fps
2. H.262 or MPEG2 - 1080p @ 60 fps

egur
26th November 2012, 08:46
I don't have ready made 60fps clips for mpeg2 and vc1. You can make clips yourself by creating an AVS script for an existing clips and manually setting the fps in the AVS script. You'll need to send it to both an MPEG2 encoder and a VC1 encoder (Microsoft).

hoborg
7th December 2012, 14:21
Hi.
I am not sure if this is good place to ask, but i didnt found answer anywhere.
Is Intel HD 2000 capable of FullHD deinterlacing on Win7? By some reason, it seems it is not working, at last for me. SD is working, but Full HD is not.
Or did i miss some settning?

http://hobring.esero.net/saf/intel/hd2000_deinterlacing.png

Tested on latest mpc-hc (EVR custom), Intel HD 2000 (512RAM set in BIOS), driver 9.17.10.2875, PDVD12/LAVF/FFDshow (QuickSync) decoders
Source video (h.264 recording): Test-CT-HD.zip (http://hobring.esero.net/saf/samples/Test-CT-HD.zip)

egur
7th December 2012, 18:44
I'll check it out.
Did you enable deinterlacing in ffdshow->Intel QuickSync or you relied on the renderer to do it?

hoborg
7th December 2012, 18:57
I'll check it out.
Did you enable deinterlacing in ffdshow->Intel QuickSync or you relied on the renderer to do it?

Renderer. As i wrote before, SD is deinterlacing just fine.

hoborg
7th December 2012, 19:10
Enabling deinteracing did the trick. But i have bad experience when using FFDshow as LiveTV decoder (i am on PDVD12 decoder right now), so renderer deinterlacing will be better in such situation.

egur
7th December 2012, 19:13
Very strange clip.
I also have an HD2000 BTW not that it matters anything.
If I turn on deinterlacing in my decoder it looks OK.
If I let EVR do it, it shows a lot of tearing. This is also true when I use My AMD radeon 6950 output.

The thing about this clip is that it fails both Intel's and AMD's film cadence detection (hard inverse telecine). That's what I think any.

In any case, your system is fine, this is just a hard clip.
Just to make it clear - HD2000 and HD3000 have the same deinterlacer and same driver. They only differ in core count

hoborg
7th December 2012, 19:26
Very strange clip.
I also have an HD2000 BTW not that it matters anything.
If I turn on deinterlacing in my decoder it looks OK.
If I let EVR do it, it shows a lot of tearing. This is also true when I use My AMD radeon 6950 output.

The thing about this clip is that it fails both Intel's and AMD's film cadence detection (hard inverse telecine). That's what I think any.

In any case, your system is fine, this is just a hard clip.
Just to make it clear - HD2000 and HD3000 have the same deinterlacer and same driver. They only differ in core count

Thanks for test.
Well, that is just cut of recording broadcasted here in Czech Rep. I have even worse h.264 recording from another multiplex, even the deinterlacing in ffdshow fail to do it correctly. On real TV, all is ok. I can cut a sample if you are interested.

hoborg
7th December 2012, 22:35
egur, i am not sure if this is known issue, but FFDshow "ffdshow_rev4490_20121107_egur.exe" does not remember this settings (it is possible to choose, but it is not saved):

"mpegAVI"=dword:00000013
"em2v"=dword:00000013

egur
8th December 2012, 09:37
You can download a newer version of ffdshow from the ffdshow tryout homepage. My builds allow users to enjoy the latest version of my decoder without waiting for an official ffdshow release. Once there's a newer official build, you'll get everything.

hoborg
9th December 2012, 21:24
Hi.
I just hit another issue.
FDshow will crash if playing 4:4:4 h.264 (i444compressed.mkv) with enabled Intel quicksync decoder for h.264 and enabled resize. Decoder will fall back to Libavcodec and crash.
Strange is that set h.264 to Libavcodec + resize play it just fine. Looks like QuickSync to Libavcodec fallback somehow cause it.

egur
10th December 2012, 09:52
Please share a failing clip and I'll look into it. I don't have a 4:4:4 clip.
Also specify the resize parameters.

hoborg
10th December 2012, 09:58
Please share a failing clip and I'll look into it. I don't have a 4:4:4 clip.
Also specify the resize parameters.

Hi.
I will upload it when i return home.
And resize - simply default settings, just enable it.

hoborg
10th December 2012, 16:44
Here is the 4:4:4 sample (http://hobring.esero.net/saf/samples/i444compressed.zip).

egur
10th December 2012, 18:59
Did you try the last version of ffdshow?
I couldn't reproduce using ffdshow latest source code. Tried both debug and release builds and everything looks fine.

I used LAV splitter (0.54.1) under ZoomPlayer (32 bit).
Please add more details on your setup so I can reproduce.

hoborg
10th December 2012, 19:48
Did you try the last version of ffdshow?
I couldn't reproduce using ffdshow latest source code. Tried both debug and release builds and everything looks fine.

I used LAV splitter (0.54.1) under ZoomPlayer (32 bit).
Please add more details on your setup so I can reproduce.

?
I have same LAVF splitter as you.
Tested on your ffdshow_rev4494_20121128_clsid.exe or ffdshow_rev4490_20121107_egur.exe.
Just install ffdshow (reset all settings durning install).
Then set intel quicksync decoder for h.264/avc and enable resize.
I am testing in graphstudio (EVR renderer) or MPC-HC.

Crash info:
Problem signature:
Problem Event Name: APPCRASH
Application Name: graphstudio.exe
Application Version: 0.5.0.1
Application Timestamp: 503fc06e
Fault Module Name: ffmpeg.dll
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 50b620dc
Exception Code: c0000005
Exception Offset: 002c5111
OS Version: 6.1.7601.2.1.0.768.3
Locale ID: 1029
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

egur
10th December 2012, 21:04
OK, managed to reproduce. Needed to check "resize to screen resolution".
Yes it crashes and I also found another problem. When the resize feature is enabled, and QS is the decoder, some clips lose their color.

BTW, it crashes when libavcodec is selected in the codec tab and QS doesn't load at all. This happens all the time for me.
This clip surface type is 444P10. Maybe libavcodec doesn't handle this format well when it need to output to NV12.

It's not new that ffmpeg doesn't like NV12 colorspace very much. I patched ffdshow a while back to stop crashing on NV12->NV12 copying.
QS always outputs NV12 like all HW decoders and EVR likes NV12 too since this is the native HW format.
ffmpeg decoders output YV12 instead and the video procesing features there are validated better then the NV12 flows.

I'll look into it but I'm doubtful there's any chance of fixing this in ffdshow.

edit
If limiting outputs to 10 or 12 bit surfaces, it also crashes even when QS is disabled. I didn't find a workaround. Should be reported to libavcodec/swscale dev team.

NikosD
12th December 2012, 14:02
This is funny...

How many times Intel is going to announce 4K support in Ivy drivers ?

The other thing about 4 displays, I don't know...

http://semiaccurate.com/2012/12/07/intel-to-update-ivy-gpu-drivers-for-quadhd

nevcairiel
12th December 2012, 14:17
I don't see any official Intel announcement, and SemiAccurate usually fails at linking to their sources. In general, its a rather terrible tech news site (biased and full of trolling articles)

NikosD
12th December 2012, 14:21
It's an interesting site called Semi Accurate - not fully accurate.

Most of the times it's one step in front of the others in the forthcoming news, with the risk of that step.

Let's see...

Ah, one more thing...Intel has already announced 2 or 3 times the 4k support of Ivy drivers...

nevcairiel
12th December 2012, 14:26
I don't think they actually released drivers with 4K output support yet, so until that happens, they might as well keep mentioning it.
Keep in mind that this is about actual 4K output, not about decoding (which has been working for a long time already)

andyvt
12th December 2012, 14:45
Ah, one more thing...Intel has already announced 2 or 3 times the 4k support of Ivy drivers...

IIRC, they demonstrated 4k output at IDF. They are probably making sure that they get full PR coverage. The target demographic for IDF isn't that broad.

odditory
15th December 2012, 07:15
@Eric or anyone else that's running QS in headless mode successfully, I cannot QS to work headlessly, followed Eric's instructions (http://software.intel.com/en-us/forums/topic/311872) to a tee but the only way any QS based codec or transcoding app will engage QS is if the physical display or headless display connected to the HD4000 is set for "Make this my main display". As soon as the display on the NVIDIA GPU is set as "Make this my main display" then QS is unreachable. At this point I'm assuming its just an anomaly with my particular dGPU and motherboard combo and have given up getting headless to work.

Searched this thread and then forum but couldn't find answer, if anyone has any insight I"d appreciate it.

My specs: i5-3570k, Asus Gene V Z77, NVIDIA GTX 680 w/ latest driver, Intel HD4000 latest driver 15.​28.​8.​64.​2875, Lucid VirtuMVP NOT installed, Windows 8 x64

wanezhiling
15th December 2012, 07:39
headless mode? Whats it?

odditory
15th December 2012, 08:06
Headless mode in the context of Quicksync enabled apps refers to utilizing the on-die Intel GPU without the need to physically connect a monitor to the motherboard display out ports, usually because you've got your display(s) instead attached a discrete GPU (PCIe card).

Or in my case, because I have no choice but use a discrete GPU with my 2560x1440 monitors, since the motherboard has no DVI out, and my monitor has no displayport or HDMI in, and I can't use displayport/HDMI to DVI converter cables since 1440p is a resolution requiring a dual link connection.

LucidVirtu has attempted to bridge this issue for discreteGPU users, but its very bleeding edge, hit and miss, still maturing.

egur
15th December 2012, 09:05
See how to do headless setup here (http://forum.doom9.org/showthread.php?p=1532786#post1532786).

odditory
15th December 2012, 11:30
Hey Eric thanks for the response. As I stated in my previous post the question wasn't about how to do headless, I already followed the instructions to a tee, spending many hours over several nights fights with it. The issue is Quicksync enabled apps will not engage the iGPU unless the iGPU-connected display is set as "Make this my main display". If the discrete GPU is set to handle the main display, apps cannot reach QS.

As a temporary workaround for some QS enabled apps I installed LucidVirtuMVP again, which was finally updated a few weeks ago and now works with a few apps - I got PotPlayer to work with QS as well as MediaEspresso, but MediaCoder and a few others are still unusable even if I manually specify them within LucidVirtu.

odditory
15th December 2012, 11:39
One more thought, after reading the Intel Media SDK Developer Guide (http://software.intel.com/sites/products/vcsource/files/43685/Intel_Media_Developers_Guide.pdf), section 4.18.1 Multiple-Monitor Configurations. Its basically describing my problem. It mentions that if an app simply queries the default adapter for QS, it will fail with a discrete GPU set as primary (obviously). And so instead developers should use the MFX_IMPL_AUTO_ANY "to allow all the capabilities of all the available graphics adapters to be examined, not just the ‘default’ adapter."

So it sounds like most developers of QS enabled apps aren't doing this, they're not using the MFX_IMPL_AUTO_ANY call? If so wouldn't it be better to change the Intel Media SDK such that any supported API call to scans adapter capability is interpreted by the SDK as a scan of ALL adapters? Any downside to this? Because short of that, we're relying on app devs to change their API call to the correct one, which may never happen.

nevcairiel
15th December 2012, 12:54
The API description is clear on what to do, if software is buggy its not Intels responsibility to fix it. For the record, the QuickSync decoder here works just fine with such a fake multi-screen setup, and thats really all this thread is about, egurs implementation of a QS decoder, not the Media SDK in general.

egur
15th December 2012, 13:42
One more thought, after reading the Intel Media SDK Developer Guide (http://software.intel.com/sites/products/vcsource/files/43685/Intel_Media_Developers_Guide.pdf), section 4.18.1 Multiple-Monitor Configurations. Its basically describing my problem. It mentions that if an app simply queries the default adapter for QS, it will fail with a discrete GPU set as primary (obviously). And so instead developers should use the MFX_IMPL_AUTO_ANY "to allow all the capabilities of all the available graphics adapters to be examined, not just the ‘default’ adapter."

So it sounds like most developers of QS enabled apps aren't doing this, they're not using the MFX_IMPL_AUTO_ANY call? If so wouldn't it be better to change the Intel Media SDK such that any supported API call to scans adapter capability is interpreted by the SDK as a scan of ALL adapters? Any downside to this? Because short of that, we're relying on app devs to change their API call to the correct one, which may never happen.

The documentation on how to initialize an MSDK session properly wasn't clear in the past, but it's better now. The MSDK sample code used MFX_IMPL_AUTO not MFX_IMPL_AUTO_ANY and that confused a lot of people, myself included as the name mislead developers to believe that it should work in all cases.
Some developers obviously didn't validate a multi-head setup and probably didn't read the manual in a while.
New versions of the MSDK start support for DX11 which lifts the limit of headless iGPUs (DX9 limitation).
I'll probably manage to support it sometime but I believe it will only work in Win8 + IvyBridge (or Haswell), a combination I don't have ATM. SandyBridge doesn't support DX11.

XinHong
26th December 2012, 21:17
Eric,
I have a lot of problems with D3D Fullscreen Exclusive mode. The last working drivers for this mode were 9.17.10.2817, I tried with the lastest official ones (9.17.10.2875) and 9.17.10.2897 but i have a black screen.

My config : Intel Sandy Bridge (Core i7, HD3000, 2nd Generation) with optimus (nVidia GT525M), MPC-HC 6373 x86, ffdshow tryouts rev4490 x86 with QuickSync, LAV 0.54.1 (lastest nightly) and Win 7 x64
Sample file : http://www.demo-world.eu/trailers/redirect-high-definition.php?file=hd_dts_living_world_of_audio_short_v2.rar&pic=hd_dts_living_world_of_audio_short_v2.jpg

Thanks

egur
26th December 2012, 23:54
Eric,
I have a lot of problems with D3D Fullscreen Exclusive mode. The last working drivers for this mode were 9.17.10.2817, I tried with the lastest official ones (9.17.10.2875) and 9.17.10.2897 but i have a black screen.

My config : Intel Sandy Bridge (Core i7, HD3000, 2nd Generation) with optimus (nVidia GT525M), MPC-HC 6373 x86, ffdshow tryouts rev4490 x86 with QuickSync, LAV 0.54.1 (lastest nightly) and Win 7 x64
Sample file : http://www.demo-world.eu/trailers/redirect-high-definition.php?file=hd_dts_living_world_of_audio_short_v2.rar&pic=hd_dts_living_world_of_audio_short_v2.jpg

Thanks

Sorry, can't reproduce. Tried playing this clip with Windows Media Center in full screen (exclusive) and it works fine.
I used ffdshow x64 (4490).
Also tried MPC-HC in EVR-CP+D3D fullscreen which should be identical to your setup.
I also tried connecting hte display to either iGPU and my AMD dGPU. Both worked.
Does playback in window mode works?

TEB
27th December 2012, 08:49
hi. I was wondering how Quicksync handles multiple paralell videofeeds concurrently? We have this CCTV video management app at work that scales bad with many streams. Example with 4x4 H264 streams concurrently on a ivybridge works bad...

Does quicksync scale up over multiple feeds? or just one ?

PS! I tried to get quicksync to work to no avail. Is :
Intel® Core™ i7-2620M Processor supported? (it says quicksync supported: yes)

br TEB

egur
27th December 2012, 10:07
hi. I was wondering how Quicksync handles multiple paralell videofeeds concurrently? We have this CCTV video management app at work that scales bad with many streams. Example with 4x4 H264 streams concurrently on a ivybridge works bad...

Does quicksync scale up over multiple feeds? or just one ?

PS! I tried to get quicksync to work to no avail. Is :
Intel® Core™ i7-2620M Processor supported? (it says quicksync supported: yes)

br TEB

I've managed to play 4 concurrent 1080p streams on SandyBridge i7 2600 but more streams are possible when optimizing the platform:
* Fast memory
* 64 bit OS and code to have a larger address space. an alternative is to run multiple 32 bit processes (64 bit OS).
* Low overhead renderer (EVR). don't use EVR-CP, MadVR, Haali, etc.

If you say QS is supported, what makes you think it's not working? I need more details.

CiNcH
27th December 2012, 13:15
EVR-CP
Depends on the implementation. MPC-HC uses lots of D3D resources to do stuff like scaling. Mine triggers the EVR mixer to take advantage of the DXVA scaler, just like standard EVR does. But since most EVR-CP have just been copied from MPC-HC, you may be right ;) .

Superb
27th December 2012, 13:23
Depends on the implementation. MPC-HC uses lots of D3D resources to do stuff like scaling. Mine triggers the EVR mixer to take advantage of the DXVA scaler, just like standard EVR does. But since most EVR-CP have just been copied from MPC-HC, you may be right ;) .What's "yours"? Is it available? Comes as part of a player? A standalone DirectShow renderer?

XinHong
27th December 2012, 19:43
Sorry, can't reproduce. Tried playing this clip with Windows Media Center in full screen (exclusive) and it works fine.
I used ffdshow x64 (4490).
Also tried MPC-HC in EVR-CP+D3D fullscreen which should be identical to your setup.
I also tried connecting hte display to either iGPU and my AMD dGPU. Both worked.
Does playback in window mode works?

I tried your config with full x64 softwares and it's playing now in Full Screen Exclusive. (I also set EVR Buffers to 5 instead of 20).
I tried again in x86 and the file played correctly with MPC-HC & LAV Filter so i don't know what i did to correct the problem.

Thanks for your support

Edit : I upgrade the LAV Filters with the lastest nightlies too

egur
28th December 2012, 00:10
I tried your config with full x64 softwares and it's playing now in Full Screen Exclusive. (I also set EVR Buffers to 5 instead of 20).
I tried again in x86 and the file played correctly with MPC-HC & LAV Filter so i don't know what i did to correct the problem.

Thanks for your support

Edit : I upgrade the LAV Filters with the lastest nightlies too

It's like taking your car to a garage, there it works great :)
FYI, nightly builds failures of any software should be reported to it's respected owner.

CiNcH
28th December 2012, 00:29
What's "yours"? Is it available? Comes as part of a player? A standalone DirectShow renderer?
It is basically a Delphi port of the MS EVR Custom code, with lots of enhancements though, like D3D OSD blending (which can be animated/transformed), VSync synchronization a.s.o. It is not in a product yet.

TEB
29th December 2012, 09:55
I've managed to play 4 concurrent 1080p streams on SandyBridge i7 2600 but more streams are possible when optimizing the platform:
* Fast memory
* 64 bit OS and code to have a larger address space. an alternative is to run multiple 32 bit processes (64 bit OS).
* Low overhead renderer (EVR). don't use EVR-CP, MadVR, Haali, etc.

If you say QS is supported, what makes you think it's not working? I need more details.

Hi. I was thinking around 16 concurrent 720p h264 HP streams. Is this possible ton a ivy bridge 4 core 3,6ghz cpu? (windows 7 x64) or do one need to use the video decoder asic on the gfx card to help out?

im investigating the ffdshow issues

br TE

egur
29th December 2012, 18:07
Hi. I was thinking around 16 concurrent 720p h264 HP streams. Is this possible ton a ivy bridge 4 core 3,6ghz cpu? (windows 7 x64) or do one need to use the video decoder asic on the gfx card to help out?

im investigating the ffdshow issues

br TE

My decoder uses the ASIC decoder via the Media SDK which in turn uses it via DXVA2.
You can use DXVA2 API yourself and eliminate some overhead. It's not an easy task.
My decoder can output video memory instead of system memory which can save a few frame copies. I may invest time in supporting DXVA output, but it's not very high on my list. My decoder can play any clip today with very good performance.

16 720p streams is ambitious but maybe possible. If the bitrate is low enough and the platform is strong (IvyBridge i7-3770k or a close relative of it), you also have fast ram (>1600MHz) and a 64 bit application/code, then you might be OK. I'd give it a 50-50 chance. Overclocking might be a good option.

Do you need this setup for a product?

hajj_3
29th December 2012, 19:12
When do you think we will get hardware decoding for HEVC in an intel chip? The final spec is due to be ratified next month i believe.

TEB
29th December 2012, 21:26
Well, todays main workstation we use for CCTV surveliance is the Dell Precision T5600 with 2x E5-2667.

The decoder www.milestonesystem.com is using aint using any HW offload abilities.. so i was hoping them could be persuaded to support a directshow filter path etc...
I can do 16x 720p30 @mp3.0 4mbit cbr streams today, tho its a bit choppy 12-18fps i would guess...I guess its just as much to do with the renderer /video blitting in addition to all the scaling and actual decode..

Our goal is to deliver a much closer "broadcast" experience for CCTV than the industry is used to today ;)

br TE

My decoder uses the ASIC decoder via the Media SDK which in turn uses it via DXVA2.
You can use DXVA2 API yourself and eliminate some overhead. It's not an easy task.
My decoder can output video memory instead of system memory which can save a few frame copies. I may invest time in supporting DXVA output, but it's not very high on my list. My decoder can play any clip today with very good performance.

16 720p streams is ambitious but maybe possible. If the bitrate is low enough and the platform is strong (IvyBridge i7-3770k or a close relative of it), you also have fast ram (>1600MHz) and a 64 bit application/code, then you might be OK. I'd give it a 50-50 chance. Overclocking might be a good option.

Do you need this setup for a product?

egur
29th December 2012, 22:48
When do you think we will get hardware decoding for HEVC in an intel chip? The final spec is due to be ratified next month i believe.
Sorry, can't comment on future features. I'm happy to discuss revealed/public features.

Well, todays main workstation we use for CCTV surveliance is the Dell Precision T5600 with 2x E5-2667.

The decoder www.milestonesystem.com is using aint using any HW offload abilities.. so i was hoping them could be persuaded to support a directshow filter path etc...
I can do 16x 720p30 @mp3.0 4mbit cbr streams today, tho its a bit choppy 12-18fps i would guess...I guess its just as much to do with the renderer /video blitting in addition to all the scaling and actual decode..

Our goal is to deliver a much closer "broadcast" experience for CCTV than the industry is used to today ;)

br TE

The Xeon E5/E7 don't have HW video acceleration since they don't a GPU. Same goes for the desktop Extreme Edition parts which are very similar to the E5 in terms of architecture.

I don't have an i7-3770K at hand, my only IvyBridge at the moment is a humble dual core laptop.

I managed to decode more than a 1000fps of 720p at 3-4mbps on my SandyBridge i7-2600k, but this is without a renderer (NULL Renderer used in GraphStudioNext benchmark).
The decoder has the horse power but with scaling, I'm not sure it can work.

I can run a test on my laptop on Monday tell you how it performs.

Haswell has even better video performance but I can't share details on that. Sorry. Even if I could, the drivers are not production yet (e.g. beta) so actual performance at launch may be (significantly?) better.

Update
Setup:
* IvyBridge Mobile, 2.3GHz (35W).
* Windows 7 64 bit. Latest Intel drivers.
* No dGPU.
* 1600MHz RAM (2x4GB).
* GraphStudioNext 64.

Graph:
* Single LAV splitter source
* Infinite tee splitter (16 outputs)
* 16 Microsoft DTV-DVD decoders (DXVA2)
* 16 EVRs

Results:
* Use Windows's "Show windows stacked" to to show all 16 renderer windows (4x4 grid).
* Playback didn't look 100% smooth.
* EVR statistics were perfect.

I tested a 720p H264 clip via GraphStudioNext 64 bit. The 32 bit version chokes very quickly.
The clip is ~1mbps.

TEB
31st December 2012, 13:06
hi!

"Playback didn't look 100% smooth.
* EVR statistics were perfect."

Same as ive seen on other decoders. The player shows 30fps in the debug info, but i can clearly see that its jerking and jumping alot. If i reduce from 4x4 to eg. 2x2 its alot better, and down to 2x1 = fine.

So obviously something is limiting alot of concurrent windows at the same time.. And im not convinced its the decode part of the pipeline alone..

br TEB

egur
31st December 2012, 13:53
TEB,
I've seen the same behavior with 8 windows. A custom renderer is needed for this to work fine.
The good news is that it seems that the decoder is functional. EVR can mix 16 streams (via code - not in GraphEdit) so it may work better if a single EVR is used to do the mixing. Not sure if EVR can handle multiple DXVA2 connections though... I'm not an expert on this.

I think that if the decoder is holding playback back, EVR will show this in its stats.

Anyway, it looks possible.
I'll try a higher bitrate clip later on.

nevcairiel
31st December 2012, 14:02
EVR is rather limited on what types it accepts for secondary video streams, i don't think NV12 is among them (or any other 4:2:0 type for that matter)

egur
31st December 2012, 14:12
Then I guess TEB will build his own renderer then...
Actually he needs a mixer, not a renderer which is a little simpler (but not so simple when DXVA is involved ;)).

Tested 2mbps clip - same performance as 1mbps.
Also tested on 6bmps clip (720p, 60fps). This caused the decoder to choke a little. EVR reported 24-30fps.

corporalgator
2nd January 2013, 01:33
Any word on when the newest drivers will be released by intel?

egur
2nd January 2013, 08:45
I'm out of the loop here, I work for a different division.
Currently the latest released drivers are: 15.28.10.64.2897 (http://downloadcenter.intel.com/Detail_Desc.aspx?DwnldId=22182)

There are slightly newer drivers which are used for OEM testing/validation but the differences are very small as far as I've seen.

corporalgator
2nd January 2013, 18:24
Thanks for the link. I couldn't get to them through intel's main site. going from 2875 to 2897 fixes the issues with vc-1 encoded blu-rays.

Superb
2nd January 2013, 23:25
Yeah, Intel's download center feels like a mess.

ralle_h
3rd January 2013, 01:54
Hey Eric,

as you suggested in the other thread I'm going to explain my problems (http://forum.doom9.org/showpost.php?p=1608470&postcount=13654) and analysis in here.

I tested Quicksync on 4 different computers today, all with similar player version + settings.

Intel iGPU drivers were mostly 9.17.10.2875 + 2897 (also I tried the older ones, if available, before I updated them). Furthermore I tried different Intel MEI drivers, OpenCL and even Virtu (MVP) drivers. Direct X9 June 2010 is installed properly as well.

Software:

The player I used was MPC-BE v1.0.3.1 (and v1.1.3.0 ), Lav Splitter + Decoder 0.54.1 + madVR 0.85.7 (and 0.85.1, also EVR Renderer).

Hardware:

#1 Desktop:
3570k @ 4,5 Ghz, Gigabyte GA-Z77X-UD5H, 8 GB Ram, Windows 7 Ultimate x64 SP1 -> Not available

#2 Home Server:
i3-2120, ASRock H77M-ITX, 8GB Ram, Windows Server 2008/R2 x64 SP1 -> Not available

#3 HTPC:
Celeron G530, ASUS P8H67-I DELUXE, 8GB Ram, Windows Server 2008/R2 x64 SP1 -> Not available

#4 Ultrabook (Dell XPS 12)
i5-3317U, 4GB Ram, Windows 8 Pro x64 -> Available

I tried around for hours and I'm really running out of ideas there and would appreciate any idea or suggestion.

Thanks in advance!

Best regards,

paradoxical
3rd January 2013, 03:14
The Celeron G530 (http://ark.intel.com/products/53414/Intel-Celeron-Processor-G530-2M-Cache-2_40-GHz) doesn't have QuickSync.

Graphics Specifications
Processor Graphics Intel® HD Graphics
Graphics Base Frequency 850 MHz
Graphics Max Dynamic Frequency 1 GHz
Intel® Quick Sync Video No
Intel® InTru™ 3D Technology No
Intel® Insider™ No
Intel® Wireless Display No
Intel® Flexible Display Interface (Intel® FDI) Yes
Intel® Clear Video HD Technology No
Dual Display Capable Yes
# of Displays Supported 2

corporalgator
3rd January 2013, 03:16
Hey Eric,

as you suggested in the other thread I'm going to explain my problems (http://forum.doom9.org/showpost.php?p=1608470&postcount=13654) and analysis in here.

I tested Quicksync on 4 different computers today, all with similar player version + settings.

Intel iGPU drivers were mostly 9.17.10.2875 + 2897 (also I tried the older ones, if available, before I updated them). Furthermore I tried different Intel MEI drivers, OpenCL and even Virtu (MVP) drivers. Direct X9 June 2010 is installed properly as well.

Software:

The player I used was MPC-BE v1.0.3.1 (and v1.1.3.0 ), Lav Splitter + Decoder 0.54.1 + madVR 0.85.7 (and 0.85.1, also EVR Renderer).

Hardware:

#1 Desktop:
3570k @ 4,5 Ghz, Gigabyte GA-Z77X-UD5H, 8 GB Ram, Windows 7 Ultimate x64 SP1 -> Not available

#2 Home Server:
i3-2120, ASRock H77M-ITX, 8GB Ram, Windows Server 2008/R2 x64 SP1 -> Not available

#3 HTPC:
Celeron G530, ASUS P8H67-I DELUXE, 8GB Ram, Windows Server 2008/R2 x64 SP1 -> Not available

#4 Ultrabook (Dell XPS 12)
i5-3317U, 4GB Ram, Windows 8 Pro x64 -> Available

I tried around for hours and I'm really running out of ideas there and would appreciate any idea or suggestion.

Thanks in advance!

Best regards,

Do you have video cards in the other three systems? If you do, then you need to create a virtual monitor and extend your desktop onto it before you can use quicksync. Otherwise, the on board graphics are never activated.

wanezhiling
3rd January 2013, 05:26
The Celeron G530 (http://ark.intel.com/products/53414/Intel-Celeron-Processor-G530-2M-Cache-2_40-GHz) doesn't have QuickSync.

Thats about encoding, the decoding is just fine.

Mixer73
3rd January 2013, 06:47
Given 3 desktops not working and Ultrabook working, you have to ask a) if the monitor is connected to the iGPU and also the driver revision installed on each...

egur
3rd January 2013, 08:13
ralle_h
The screen should be connected to the iGPU (motherboard).
All the listed driver versions are fine. I personally used them.

Drivers should be downloaded only from an OEM website (e.g. Gigabyte if you have a Gigabyte board) or from Intel. Drivers from Windows Update are very problematic.

No need for Lucid Virtu for single GPU systems (it will do nothing). If you have multiple GPUs and use Virtu, let me know.

All SandyBridge/IvyBridge models that have an active iGPU can use the decoder. Low end models like Pentium and Celeron do not have HW encoding enabled. Extreme edition and some server models (Xeon E5/E7) do not have an iGPU.

The driver install may have been interfered by an anti-virus product (never happened yet).

Make sure the Intel Media SDK DLL is installed in:
"c:\Program Files (x86)\Intel\Media SDK\libmfxhw32.dll"

look in the registry for the location of this DLL:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Intel\MediaSDK\Dispatch\0126
The Path value should match the above DLL path. This is for 32 bit, a similar operation can be done for 64 bit.

Let me know what you find.

ralle_h
3rd January 2013, 13:44
Thanks for all your replies!

Do you have video cards in the other three systems? If you do, then you need to create a virtual monitor and extend your desktop onto it before you can use quicksync. Otherwise, the on board graphics are never activated.

ralle_h
The screen should be connected to the iGPU (motherboard).
All the listed driver versions are fine. I personally used them

The only system that is using a dedicated video card is my "desktop" system, it has a GTX 670 in it and I'm using CUDA there anyway, I just tried it there as well for the sake of being complete.

The other systems (HTPC + Server) solely have an iGPU so the HDMI cable is plugged into the iGPU of course.


Drivers should be downloaded only from an OEM website (e.g. Gigabyte if you have a Gigabyte board) or from Intel. Drivers from Windows Update are very problematic.

Yeah, I don't use drivers from the windows update, made some bad experiences with them in the past.

However, I used the latest ones from Intel and not from the OEM/manufacturer's website (mostly because they only get updated once or twice per year).

I'm could try those drivers later tonight, when I'm back at home.


No need for Lucid Virtu for single GPU systems (it will do nothing). If you have multiple GPUs and use Virtu, let me know.

Good to know, so it's not that, thank you!


All SandyBridge/IvyBridge models that have an active iGPU can use the decoder. Low end models like Pentium and Celeron do not have HW encoding enabled. Extreme edition and some server models (Xeon E5/E7) do not have an iGPU.

So decoding does always work, that's also good to know.


The driver install may have been interfered by an anti-virus product (never happened yet).

Hm, I don't use any AV, but I think the Windows Server machines still have the Microsoft Security Essentials enabled. Going to disable it and try again


Make sure the Intel Media SDK DLL is installed in:
"c:\Program Files (x86)\Intel\Media SDK\libmfxhw32.dll"

On my Desktop yes, on the HTPC/Server not, even though I installed the same driver! That's weird.

What can I do? Simply copying them over? Is this download correct? http://software.intel.com/en-us/vcsource/tools/media-sdk

I need to install the x64 Version, right?


look in the registry for the location of this DLL:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Intel\MediaSDK\Dispatch\0126
The Path value should match the above DLL path. This is for 32 bit, a similar operation can be done for 64 bit.

Same issue. Desktop: Yes. HTPC/Server: Missing Registry Entries (Dir MediaSDK does not exist).

nevcairiel
3rd January 2013, 13:51
The Media SDK runtime comes with the driver, you dont need to install any separate package for it - it would only contain development tools.

ralle_h
3rd January 2013, 14:24
Okay, so it basically looks like this:

- On my Desktop Computer it doesn't work because I use a dedicated GPU and haven't plugged the cable into the iGPU.
- On my HTPC and Server the libmfxhw32.dll and the needed registry entries are missing

Is this a problem related to Windows Server 2008/R2? Because I used the same installers/drivers on all computers and the files are there on my desktop and ultra book - but not on the server and HTPC

egur
3rd January 2013, 16:12
If the mfx DLLs are missing you will not have QuickSync working. The driver must support Windows Server 2008 R2.
During installation the driver outputs a log to the screen, see if there's any issues.

The driver I linked to doesn't report supporting Windows Server. Only Win7/8. I'll get back to you on that.
Does your HTPC have Windows server installed?

You can use QuickSync on your desktop via a hybrid GPU setup (http://forum.doom9.org/showthread.php?p=1532786#post1532786).

ralle_h
3rd January 2013, 17:37
So I tried the OEM/manufacturers driver

-> No improvement

Funny to notice is:

Media SDK isn't installed, even though it's in the .zip file in a dir.


During installation the driver outputs a log to the screen, see if there's any issues.

There is no error, but it tells me "C:\Program Files (x86)\Intel\Media SDK\

etc. (about 10-15 entries) were uninstalled :(


The driver I linked to doesn't report supporting Windows Server. Only Win7/8. I'll get back to you on that.
Does your HTPC have Windows server installed?


Yes it does have Windows server installed

andyvt
3rd January 2013, 17:39
Yes it does have Windows server installed

You will need to install the desktop experience and DirectShow if you're running Windows Server for the MSDK dlls to install/register properly.

ralle_h
3rd January 2013, 20:49
You will need to install the desktop experience and DirectShow if you're running Windows Server for the MSDK dlls to install/register properly.

I do have the desktop mode/experience installed on Window Server.

However, I can't find any DirectShow Option in the same list.

Where/how did you install it?

andyvt
3rd January 2013, 20:53
I do have the desktop mode/experience installed on Window Server.

However, I can't find any DirectShow Option in the same list.

Where/how did you install it?

What version of Windows Server are you running?

ralle_h
3rd January 2013, 21:45
W2008r2

andyvt
3rd January 2013, 22:03
W2008r2

IIRC, Desktop Experience includes DS on 2008. On 2012 it's a separate feature.

You may need to turn on specific parts of DE to make it work though.

nevcairiel
3rd January 2013, 22:18
It wouldnt surprise me if Intel doesnt support MediaSDK on windows server. Its hardly a multimedia OS.

andyvt
3rd January 2013, 22:21
It wouldnt surprise me if Intel doesnt support MediaSDK on windows server. Its hardly a multimedia OS.

Oh, very much not supported. Doesn't mean you can't shoehorn it in though :).

egur
4th January 2013, 00:08
Official answer is that Windows Server is not supported nor validated.

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.

corporalgator
4th January 2013, 03:13
I'm out of the loop here, I work for a different division.
Currently the latest released drivers are: 15.28.10.64.2897 (http://downloadcenter.intel.com/Detail_Desc.aspx?DwnldId=22182)

There are slightly newer drivers which are used for OEM testing/validation but the differences are very small as far as I've seen.

Argh, I couldn't get to installing those right away and now the link is broken. Why do they put out a new driver but not give you any way to get to it?

nevcairiel
4th January 2013, 07:52
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.

Edit:
It seems the download is broken right now, oh well.

egur
4th January 2013, 10:04
These are the latest drivers. There seems to be a malfunction with the site, should be up soon.

Here's a simple tip on how to search for drivers. Production drivers (Windows) have 5 numbers:
15.28.12.64.2932
The first 2 (15.28) define a driver family. A new driver family adds features (OS, new iGPUs, codecs, etc).
The 3rd is the update number. 12 means that it's the 12th update to the original production driver from this family. If this number is zero, this is a beta driver.
Following that you have 64 for 64 bit OSes. 32 bit OSes only have 4 numbers not 5.
The last one is the build number. Drivers from different families will have different build numbers.

So Googling for intel 15.28.XX.64 will find the driver. Just replace XX with the update you want.

NikosD
4th January 2013, 11:42
@ralle_h

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.

It is obvious that the combination of Windows edition (server) and Intel installer is your problem.

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.

Follow Eric's guidelines (egur) to "force" Intel installer to install the whole package in order to use QuickSync.

If it doesn't work try the following:

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.

It should work, at least that is what I was doing with ATI drivers.

Intel should allow Windows Server editions to use QuickSync acceleration.
If not, what's the purpose of selling Xeons with QuickSync ?
To use QS in Server CPUs with Windows Desktop editions only ?

egur
4th January 2013, 13:00
He didn't have a server CPU, he had a desktop CPU with a server OS.
It all boils down to resources at the end, whether to allocate personnel to validate a rarely used OS (rare on desktop HW). Most server/workstation HW doesn't have an iGPU BTW.

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

egur
25th February 2013, 10:35
QuickSync doesn't decode 10 bit H264 (HW limitation). ffdshow will fallback to libavcodec.
So QuickSync will play what it can and libavcodec will do the rest.

Pulp Catalyst
27th February 2013, 04:52
have a small question about getting quicksync decoding working with LAV decoder using Directsource in MeGUI.

extended desktop doesn't work for me, it causes stutter with my mouse, and some other things.

now i have used virtu MVP, i have added MeGUI executable & added Xvid encraw, for x264 i have added the x264 executable along with avs2x264mod (or what ever that is)

now when i load up a project in megui, i access the source using direct, LAV decoder is reporting that Quicksync is working and available.... i'm concerned that this.... hack if you will shouldn't be used to get around quicksync not being available.

egur
27th February 2013, 09:32
Using Virtu MVP to get QS to work is not a hack. That's perfectly fine.
Virtu directs DX9/DXVA2 calls to the Intel GPU (iGPU) so QS decoder can enumarate the iGPU and create the relevant HW devices.

Pulp Catalyst
27th February 2013, 14:33
excellent, didn't even think it would work, but it has worked really well, i can finally dump the extended desktop.... causes so many issues for me, especially when playing games!

egur
27th February 2013, 14:35
Good for you.
Personally I don't have any issues with extended desktop. Never had.

Pulp Catalyst
2nd March 2013, 08:18
The mouse issue for me was a nightmare when using extended desktop, especially in Firefox, although done some looking,
http://www.eightforums.com/general-support/12526-insanely-annoying-mouse-lag-two-monitors-attached.html

http://superuser.com/questions/492685/cursor-lag-when-mouse-cursor-changes

These two links is what I found that does match the experience I had with extended desktop a few months ago, haven’t tried since.

although the above only shows the issues with the mouse, for example using Firefox (browser) really exaggerated the issue because the mouse pointer changes constantly when you float over links and such things (elements) inside a webpage, so the lagging was awful to see, it was like seeing huge CPU spiking behaviour, yet the cpu was fine. however like I said, a few games were misbehaving though as well because the top right corner wasn't working like it should within a game context, and having to keep turning extended desktop on/off although worked, was getting a little tedious.

Although, VirtuMVP technology is still quite early in its form, in time (assuming they can stay in the business), it will get better. Version 2.0 has just come out now, although it's not hardware based, which is quite.... well it's different.

although by attaching the executable that calls on the decoders seems to work OK for the example above, MeGUI, I have found that it also works attaching Media player classic, although there is a big problem with this, the image seems to have strange artefacts that are put on the screen, it's a bit like only having 16bit colours instead of the full 32bit (I'm not explaining that properly I know), but there definitely is an issue with the display, but it's hard to pin such things down due the complicated path (Intel, VirtuMVP drivers or the decoders themselves). Although some GUI's don't play nice, for example Handbrake definitely is not compatible (at present) as the GUI shows strange behaviour (GUI buttons highlight but they stay on even when mouse pointer is no longer floating over them), and in one instance I actually had a BSOD (I know, very bad.... definitely an issue that is driver related, but again which one), but in fairness VirtuMVP does warn you when your about to attach an unverified executable to it's system, downside to this however is that handbrake is going to introduce (officially) OpenCL in the next several months (assuming they can work out the bottlenecks they're having at the moment), I would very much like it to have access to the iGPU, but i'm getting way of topic here.

anyway I have waffled on I know, but I wrote this post to share my experience with VirtuMVP - Extended Desktop - alternative, in case anyone does a search for it, and for those who may also not want to use the extended desktop option and yet wishes to have the monitor connected to the discrete GPU but also want to open up the Intel HD2500/4000 for assistance in (de)encoding. Hopefully the posted links above can help those with the mouse lag effect with Extended desktop in use (although haven't verified they actually work, and only few seem to be experiencing that problem).

When using programs like MeGUI, Xvid4psp, fortunately the tools that need attaching to VirtuMVP can easily be found in there relevant directory somewhere, however programs like Hanbrake that are self-contained, things obviously now get tricky (hit and miss)

nevcairiel
2nd March 2013, 09:19
I reported the mouse cursor lag with extended Desktop to Intel a while ago: http://communities.intel.com/thread/33324
Just a few days ago an Intel rep commented in that thread saying it was fixed for an upcoming driver, so i can only hope that is true. As a workaround for me i stuck with the 2761 driver, any newer drivers started the issue.

Now more waiting until the new driver appears ;)

Pulp Catalyst
2nd March 2013, 09:44
how weird is that, i mean the timing....

the artifacts i was refering to i looked at more closely, they are actually already present in the image, however they are very difficult to see (dark scenes, compression artifacts i believe), but when going through quicksync decoding (LAV Video), the artifacts are brought out much more, to the point where they now become a focal point, turn off Quicksync (avcodec) and the artifacts become background (hard to see).

So correcting what i said above post, the artificats that are present in the image already, especially in dark scenes, seems to be emphasized "if you will" when using quicksync LAV Video decoder over the avcodec.

egur
3rd March 2013, 00:54
If a specific clip looks wrong, please share.
Also check your driver setting - turn off adaptive contrast. That could emphasize such artifacts.

Edit
Nev, nice catch on the mouse lag bug. How did you root cause it?

nevcairiel
3rd March 2013, 10:54
I just noticed that the problem started after updating the Intel driver, so i gave it a shot downgrading it, wasn't much magic involved to figure it out, considering it also only happens on my desktop with multiple GPUs.

NikosD
16th March 2013, 19:08
It's been very quite last months from Intel's driver team.

Latest driver is 2932 from December 2012.

Is there something big for the next release ?

No need for a new driver ? :confused:

egur
16th March 2013, 22:04
I'll be on family vacation till April 11th starting Marth 17th. Expect a slow response.
Happy Easter and Passover.

egur
17th March 2013, 10:56
It's been very quite last months from Intel's driver team.

Latest driver is 2932 from December 2012.

Is there something big for the next release ?

No need for a new driver ? :confused:

A new driver will probably be available soon from the 15.28 line (IVB/SNB).

When Haswell will launch, the 15.31 driver that comes with it is more Windows 8 oriented and has a few new features. When it's released, the features are listed in the release notes.
I don't think it will support SNB though.

GTPVHD
18th March 2013, 16:47
http://www.tomshardware.com/reviews/core-i7-4770k-haswell-performance,3461.html

http://i.imgur.com/nMUumxT.png

Hope AVX2 can be used to improve performance some more.

wanezhiling
18th March 2013, 16:59
I am a bit disappointed for Haswell...

Maybe its just AMDs fault (cant create an equal product)...

nevcairiel
18th March 2013, 17:05
Haswell seems to improve performance quite a bit. Compared to SNB, the GPU is almost twice as fast, and general CPU performance seems to increase more than the SNB->IVB upgrade did, and not to mention how AVX2 will greatly boost integer operations that are still using SSE2 today. :)

NikosD
18th March 2013, 17:35
Very slow progress from SNB -> IVB -> HAS due to AMD's bullshitdozer

Haswell is 7% to 13% faster than IvyBridge.
GT2 HD4600 (desktop fastest) is slower than AMD Trinity A10-5800.

No GT3 for the Desktop ? Not even in BGA form ? Why ?

ryrynz
19th March 2013, 03:12
'Cos they don't care about graphics performance for the desktop. It's all about mobile these days.

wanezhiling
19th March 2013, 03:47
Because Intel wanna the low-end Nvidia/AMD mobile cards to die forever.:p

andyvt
19th March 2013, 04:22
'Cos they don't care about graphics performance for the desktop. It's all about mobile these days.

My understanding is that it comes down to what the large PC OEMs ask for. There is very low demand for high-end IPG on the desktop, those users are going to buy dGPU anyway (and OEMs have incentives to push that direction as well). The niche of users who want more go from the GPU, but don't want a dGPU (i.e. us) is so small that there's not much point in building it.

ryrynz
19th March 2013, 06:42
My understanding is that it comes down to what the large PC OEMs ask for. There is very low demand for high-end IPG on the desktop, those users are going to buy dGPU anyway (and OEMs have incentives to push that direction as well). The niche of users who want more go from the GPU, but don't want a dGPU (i.e. us) is so small that there's not much point in building it.

Exactly, the mobile space is much more lucrative and there's a fair amount of systems I'm selling that have GT 630/635s or HD 7670s inside that Intel would be trying to target with the GT3.
Of course there's still the issue with drivers but thankfully they're not as bad as they used to be.

As much as I would love a desktop CPU with GT3 it looks like we'll just have to wait another year for that level of performance with the release of Broadwell which is set to give us a 40% increase over GT2. I'm definitely looking forward to that although the BGA only restriction may put some off but who upgrades just their CPU these days? We don't have a top to bottom range on a single socket any more.

Because Intel wanna the low-end Nvidia/AMD mobile cards to die forever.:p

That too and they're doing a fairly good job of it so far. I think we'll continue to see very strong performance increases in GPU performance every generation, AMD & Nvidia watch out, especially AMD.

NikosD
19th March 2013, 07:47
As an owner of a Samsung Galaxy Note II the last 4 months, I believe like you that the future of personal computing is consolidation in a single portable device; most likely a smartphone.

But that's completely different than putting GT3 inside Desktop or raising the performance bar between CPU generations.

Those kind of decisions are based on the fact that noone pushes Intel for anything.
No real competition means slow progress and business oriented decision s with mininum benefits for the users.

IBM is the only CPU competitor of Intel but in a different level - big systems.
Maybe IBM should come down to PCs or even better, should buy AMD.

Tapatalk &alpha;&pi;ό Galaxy Note II

hajj_3
21st March 2013, 08:35
haswell improvements:
cpu - 2-7%
gpu - 20%

Pretty poor to be honest :(

nevcairiel
21st March 2013, 10:54
All tests i've seen show a consistently higher CPU gain there, but until there are tests on actual retail chips on retail platforms, the tests may be of limited value.

NikosD
21st March 2013, 11:49
Besides specific instructions use like AVX2 and FMA3 which needs recompilation of existing software with Intel compiler, for every other general purpose use, Haswell will be faster than Ivy about 10% on average.

Let's hope that will not be slower on some tasks, like Tom's hardware silicon shows clearly.

huhn
24th March 2013, 13:42
i got an error with quicksync.

my mpc hc crashes when 4k content is played with lavfilter quicksync.

dxva works fine and dxva cp does not work with 4 k but it falls back to software decoding. so i'm pretty sure the problem is in the quicksync decoder.

i'm using a i7 3770k.

my aim is to run 4k vids throw quicksync on my display with is connected to my amd graphic card which can't handle 4k at all.

1080p works fine with quicksync.

i think i need the error log but is not in the mpc hc folder...

TEB
25th March 2013, 10:33
hi. Is there a list/table of cpu models that infact supports Quicksync? Im defining a new spec for large scale CCTV workstations wich is rackmounted and i only can seem to find Xeon E5-26xx series cpu's.. and i cant seem to figure out if they support quicksync.


br TE

wanezhiling
27th March 2013, 04:16
I reported the mouse cursor lag with extended Desktop to Intel a while ago: http://communities.intel.com/thread/33324
Just a few days ago an Intel rep commented in that thread saying it was fixed for an upcoming driver, so i can only hope that is true. As a workaround for me i stuck with the 2761 driver, any newer drivers started the issue.

Now more waiting until the new driver appears ;)

http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=22627&lang=eng&wapkw=15.28.15.64.3062

The driver seems only support snb o.O
http://downloadmirror.intel.com/22627/eng/releasenotes_gfx_3062_64.pdf

wanezhiling
27th March 2013, 04:18
http://file2.mydrivers.com/display/intel_Graphics_15.31.2-3055-w7-8-64.zip
a leaked haswell/ivb driver.

NikosD
27th March 2013, 07:29
It seems they have resolved a lot in this release..
No 4K of course in the horizon.

Sent from my Galaxy Note II

huhn
27th March 2013, 14:56
so 4k quicksync is a know issue?

nevcairiel
27th March 2013, 15:23
4K works just fine on Ivy Bridge, but its not supported on Sandy Bridge, and will never be.

Also, apparently the issue i had with the mouse pointer lag was not fixed in the new driver.

huhn
27th March 2013, 19:26
i got a 3770k and my mpc hc crashes with lavfilter quicksync


tested with these samples http://xhmikosr.1f0.de/samples/2160p/
no problem with dxva but with quicksync the player crash without crash log...

maybe quicksync can't handle 50 fps 4k?

foxyshadis
29th March 2013, 05:18
hi. Is there a list/table of cpu models that infact supports Quicksync? Im defining a new spec for large scale CCTV workstations wich is rackmounted and i only can seem to find Xeon E5-26xx series cpu's.. and i cant seem to figure out if they support quicksync.


br TE

Only CPUs with a GPU have quicksync. That pretty much rules out all of the E5 series, as far as I can tell.

GTPVHD
1st April 2013, 09:19
http://www.legitreviews.com/news/15333/

http://i.imgur.com/oy4tCHx.jpg

New major driver release for IVB this week.

ryrynz
1st April 2013, 10:12
Yet another reason to ditch my 2600K for the 4770S. Can't wait for these things to be released so I can grab one and benchmark it's media handling capabilities, check it's temp and listen to that sweet sweet silence.

NikosD
1st April 2013, 16:08
I've just seen at Xbitlabs.com an interesting comparison between Trinity and IvyBridge.

CPU of Ivy is a tad faster but GPU of Trinity is a lot faster.

The most interesting part of the review is that they claim they enabled DXVA HW accelerated 4K content with AMD Trinity APU.

And it's faster than Ivy Bridge 4K!

They say:

"For example, we used in our test a widescreen 4096x1744p@24fps clip encoded in H.264 format with a bitrate of about 34 Mbps. If played via DXVA with enabled hardware decoding, we have dropped frames"

Look here for benchmark results of 4K decoding:

http://www.xbitlabs.com/articles/cpu/display/trinity-vs-ivy-bridge_11.html#sect0

nevcairiel
1st April 2013, 16:22
No current ATI GPU supports 4K decoding properly, maybe they didn't notice and accidentally used CPU or some shit. They even claim the FPS is tied to the CPUs capability in their tests, which may enforce that point.
Never blindly trust some weird review site.

wanezhiling
1st April 2013, 16:27
They didn't give any proof that the dxva is active.

I am probably sure Trinity is in sw mode becasue mpc-hc only offers 4k dxva ability to vp5 and ivb.

PS: they used mpc-hc 1.6.5, funny, 1.6.5 didn't enable 4k dxva on all cards....

NikosD
1st April 2013, 16:44
Before I even write here, I had already asked them in the comments, how did they managed to even enable 4K decoding with drivers limited resolution to 1080p.

I believe the same. The decoding was pure software for both platforms because it is strange that QuickSync didn't manage to keep the frame rate.

By the way, is someone willing to provide some benchmark results of 4K decoding of Ivy QuickSync on let's say XhmikosR 4K samples with DXVA Checker ?

I would do that if I had an Ivy :D

Eric, Nev, Wanez ?

nevcairiel
1st April 2013, 17:18
DXVA Checker has stopped working for me since some version, i can't get it to do benchmarks anymore, crap software is crap.

NikosD
1st April 2013, 17:26
For me it's working, I don't remember having problems with that.
Latest version 2.9.1 is stable and accurate.

GraphStudio Next then. But is it possible to benchmark DXVA native with GraphStudio Next ?

Or any other benchmark app I don't know.

If you are planning to do so, use your decoder of course :D but in both versions if it's possible - DXVA native and Eric's QuickSync.

wanezhiling
1st April 2013, 17:31
DXVA Checker has stopped working for me since some version, i can't get it to do benchmarks anymore
Same here, no any normal clips can be tested in dxva checker, dont know why.

With lav dxva + evr-cp, that 50fps ducks cilp works fine, not like vp5 (vp5 only 30fps)

I have no interest in 4K benchmarks anymore, meaningless, at least in 2013.

huhn
2nd April 2013, 19:39
If you are planning to do so, use your decoder of course but in both versions if it's possible - DXVA native and Eric's QuickSync.
you are looking for things like that ? http://s3.imgimg.de/uploads/dxvaivy4kd7e22f1bpng.png this is the DucksTakeOff_2160p50.x264.CRF24 sample

i can't test this with quicksync only 1080p. 4k didn't work for me. sry i have to ask egur for help first.

i can do the check with the 1080p samples you got on your thread but i can't download them https://rapidshare.com/files/632074993/8.Birds_1080p24fpsRef4-112Mbps.mkv

cpu is an i7 3770k the igpu is at stock clock

NikosD
2nd April 2013, 20:27
you are looking for things like that ? http://s3.imgimg.de/uploads/dxvaivy4kd7e22f1bpng.png this is the DucksTakeOff_2160p50.x264.CRF24 sample


Nice! That is exactly what I was looking for.
Thanks.


i can do the check with the 1080p samples you got on your thread but i can't download them https://rapidshare.com/files/632074993/8.Birds_1080p24fpsRef4-112Mbps.mkv


You can find every 1080p sample at the ftp link below, along with many 2160p clips.

Try the most difficult of both resolutions, if it's possible.

ftp://helpedia.com/pub/multimedia/x264/testvideos/

huhn
3rd April 2013, 01:39
i post the results in your dxva post

ryrynz
3rd April 2013, 07:34
http://www.legitreviews.com/news/15333/

http://i.imgur.com/oy4tCHx.jpg

New major driver release for IVB this week.

Quick OT post regarding this.

The GUI has been Windows 8ified, which I'm okay with but you gotta do it right and some of the graphics and design choices are pretty bad. The right click menu has been expanded on the left more to fit Intel's logo which doesn't look good, also why keep the white background around the logo? The Tiles have images that are clearly stretched and well, don't get me started on those info ? circles...

I feel like the clock has been turned back couple of decades, the previous UI was a lot more visually appealing, also my WEI scores didn't go up! Disappointed. :P

huhn
3rd April 2013, 17:28
this fixed my 4k issue

nevcairiel
3rd April 2013, 17:31
From the above driver..

Support for features like Intel® Quick Sync Video and OpenCL* in systems with discrete graphics on Windows 8
o Now, one can use both Intel Quick Sync Video and OpenCL even when Intel® HD Graphics is not the primary display adapter
o This requires Intel Graphics driver to be installed and will work only on Windows 8 platforms.


Does this mean what i think it does? Using QuickSync even if the Intel GPU has no attached screen?
Anything else wouldn't make any sense, because it worked before, right?

Too bad its only Win8, i won't get to test that anytime soon.

fano
3rd April 2013, 20:13
A question guys this board or better the integrated processor supports QuickSync or not?

http://www.intel.com/content/www/us/en/motherboards/desktop-motherboards/desktop-board-dn2800mt.html

Or is only for Intel Core?

There's a list of processors that support it?

Thanks ;)

CiNcH
3rd April 2013, 20:16
It does NOT fix "DXVA Best" Deinterlacing with XBMC/ffmpeg. I am experiencing a still image when selecting this option. "DXVA BOB" works but nobody actually wants to use that nowadays...

foxyshadis
3rd April 2013, 22:43
Quick OT post regarding this.

The GUI has been Windows 8ified, which I'm okay with but you gotta do it right and some of the graphics and design choices are pretty bad. The right click menu has been expanded on the left more to fit Intel's logo which doesn't look good, also why keep the white background around the logo? The Tiles have images that are clearly stretched and well, don't get me started on those info ? circles...

I feel like the clock has been turned back couple of decades, the previous UI was a lot more visually appealing, also my WEI scores didn't go up! Disappointed. :P

Yikes, you weren't kidding.

https://photos-1.dropbox.com/t/0/AACyooqLXKPLf4umPVj35WcFZu5Tq-dHJkzZ3Dif-fUOMw/12/54412753/png/320x320/1/_/0/2/context.png/5y2Fu-zfqcu2B_Xdxznrihr9YUE7X4StDNSacsOcvgU (https://dl.dropbox.com/u/54412753/context.png)https://photos-3.dropbox.com/t/0/AAAoHFX7ZklhMnDWWQDsOeeGjZkQMrBJsX5grOQEzWLJfg/12/54412753/png/320x320/1/_/0/2/intelmain.png/F9zZrpD4vHK9PmvAzYFhng2M7htjwrB6Y59VQ6g1_T4 (https://dl.dropbox.com/u/54412753/intelmain.png)https://photos-6.dropbox.com/t/0/AADjxLDPzT-9T0sHrX_JHrIJOQKb2_jk1hvLnF_5T0mRmQ/12/54412753/png/320x320/1/_/0/2/intel.png/kBLkk8HtHu10BbRUNMtl5nTKDKwdaaeHQzh8CXDkjIY (https://dl.dropbox.com/u/54412753/intel.png)

Back to our regularly scheduled topic, sorry.

foxyshadis
3rd April 2013, 22:47
From the above driver..


Does this mean what i think it does? Using QuickSync even if the Intel GPU has no attached screen?
Anything else wouldn't make any sense, because it worked before, right?

Too bad its only Win8, i won't get to test that anytime soon.

No, that means QuickSync now works with Optimus. Before, you had to either disable Optimus, or at least disable it for specific applications, to get QuickSync working. I'm not sure if it automatically disables it when using quick sync, or if it just works even if the discrete GPU is running (awesome), either way it saves you the trouble.

andyvt
4th April 2013, 01:53
Does this mean what i think it does? Using QuickSync even if the Intel GPU has no attached screen?
Anything else wouldn't make any sense, because it worked before, right?


Yes, although it should already be possible if the transcoding app enables DX11. Maybe the new driver enables it without explicit action by the transcoding app?

egur
5th April 2013, 16:56
i got an error with quicksync.

my mpc hc crashes when 4k content is played with lavfilter quicksync.

dxva works fine and dxva cp does not work with 4 k but it falls back to software decoding. so i'm pretty sure the problem is in the quicksync decoder.

i'm using a i7 3770k.

my aim is to run 4k vids throw quicksync on my display with is connected to my amd graphic card which can't handle 4k at all.

1080p works fine with quicksync.

i think i need the error log but is not in the mpc hc folder...
Specify driver details and if it crashes on specific clip.

hi. Is there a list/table of cpu models that infact supports Quicksync? Im defining a new spec for large scale CCTV workstations wich is rackmounted and i only can seem to find Xeon E5-26xx series cpu's.. and i cant seem to figure out if they support quicksync.


br TE

The E5 CPUs do not have a GPU, so no Quicksync. All desktop, laptop and E3 Xeons have GPUs.

nevcairiel
5th April 2013, 17:00
E3 Xeons have GPUs.

Actually, not all E3 Xeons have GPUs, there are models with and without.

http://en.wikipedia.org/wiki/List_of_Intel_Xeon_microprocessors#.22Sandy_Bridge.22_.2832_nm.29

huhn
5th April 2013, 17:05
Specify driver details and if it crashes on specific clip.

the new ivy bridge driver fixed the issue
it happens with win64_152812 15.28.12.2932 and was fixed with Win64_15313 Intel 9.18.10.3071(15.31) from 3.04.2013

sample: http://xhmikosr.1f0.de/samples/2160p/DucksTakeOff/

huhn
5th April 2013, 17:08
Actually, not all E3 Xeons have GPUs, there are models with and without.

http://en.wikipedia.org/wiki/List_of_Intel_Xeon_microprocessors#.22Sandy_Bridge.22_.2832_nm.29

all "P" desktop cpu don't have a gpu and the 2550"K" too http://ark.intel.com/products/65647/

egur
5th April 2013, 17:24
Quicksync support when using dGPU is done via DirectX11 API. DX11 allows enumerating headless GPUs along with DXVA. I don't dig too deep into this yet.. This feature (parts of it) don't exist in Windows 7. I don't have a Win8 system to play with but this will change when I return from my vacation. Not having an IVB or HSW at home doesn't help either.

BTW, mobile CPUs are usually available in rPGA sockets but such boards are rare. LGA socket based Processors are cheaper and easier to manufacture.

The HTPC market is not important enough for board or pc makers, because mobile processors are the optimal solution for HTPCs. In my view anyway.

HeadlessCow
5th April 2013, 19:00
Quicksync support when using dGPU is done via DirectX11 API. DX11 allows enumerating headless GPUs along with DXVA. I don't dig too deep into this yet.. This feature (parts of it) don't exist in Windows 7.

Does enough of it exist in Win 7 that you think you'll be able to get it working?

I'm putting together a new system and using Quicksync to hardware decode while I use x264 to software encode will, presumably, give me a nice speed boost just like using DGIndexNV gives me now. I've got the choice of Win7 or Win8 and I was leaning towards Win7, but this (combined with Hyper-V) could be the feature that pushes me towards Win8 instead.

If you're not sure (or guess wrong now) it's not a huge deal, but I figured I might as well check to see if you had a decent guess :)

foxyshadis
6th April 2013, 01:47
This feature (parts of it) don't exist in Windows 7.

Does it work with the new Win7 platform update that brings partial D3D 11.1 to Win7?

egur
6th April 2013, 04:37
Does it work with the new Win7 platform update that brings partial D3D 11.1 to Win7?
I didn't get any info on the above update yet. Do you have link?

Does enough of it exist in Win 7 that you think you'll be able to get it working?


You can have headless support with dx9 today as shown in this thread multiple times. Search for "hybrid GPU" in this thread.
Win8 should allow headless support without any hacks. Win8 adds new DX API functions that allows this to work.

GTPVHD
6th April 2013, 06:48
http://blogs.msdn.com/b/chuckw/archive/2012/11/14/directx-11-1-and-windows-7.aspx

http://support.microsoft.com/kb/2670838

Unfortunately KB2670838 is known to be rather buggy and breaks a lot of other software. Still waiting for MS to release a newer KB2670838 V2 update with their bugs fixed.

TEB
7th April 2013, 18:41
Actually, not all E3 Xeons have GPUs, there are models with and without.

http://en.wikipedia.org/wiki/List_of_Intel_Xeon_microprocessors#.22Sandy_Bridge.22_.2832_nm.29

So in other words, theres no possibility to get a Dual CPU solution with Quicksync support?

nevcairiel
7th April 2013, 19:30
So in other words, theres no possibility to get a Dual CPU solution with Quicksync support?

Thats right.

NikosD
9th April 2013, 21:13
Well I did manage to overclock Core i5-2400 GPU from 1100 MHz to 1450 MHz - 32% raise.

Also I managed to overclock memory from 1333MHz to 1373MHz with an increase to CPU from 3.1GHz to 3.2GHz.
After all these I ran dxva benchmarks of clips 2, 3 and 8 of my collection.

I used latest drivers and DXVA Checker 2.9.1 along with LAV 0.55.3 Native

Clips 2 and 3 didn't go up to expected performance, although of course they had an increase.

I analyzed the benchmarking procedure with Intel GPA 2013 R1 to find out that those 2 clips didn't fully utilize the MFX engine.
Also the combination of latest drivers, dxva checker and LAV video was slower than the one of the original benchmarks of my first page of benchmarks.

But clip 8 was a different story.
The performance went from 118fps to 159fps. Big improvement.

Intel GPA said that utilization of MFX engine was 99% for clip 8.

Now Eric with my overclocked GPU, I'm ready for 4K :)

NikosD
12th April 2013, 20:01
Eric,

by changing media settings to application settings in latest Intel drivers, I got a huge improvement in benchmarks using DXVAChecker.
Is there a reason that Intel drivers have other default values that lower performance so much ?

Also without doing anything special, just playing with a BIOS setting which overclocks GPU without altering memory, multiplier, BLK, CPU clock, voltage and with standard air cooler, I managed to push GPU clock of Core i5-2400 from 1100MHz to 2100MHz!

The result was a huge benchmark boost for clip 8 from 118fps to 220fps !

I'm really curious for the explanation of Intel, why on earth did they put max clock so low - only 1100 MHz.

4K for SandyBridge will be more than easy with such GPU clocks.

There is no excuse for not delivering 4K drivers for Sandy ;)

nevcairiel
12th April 2013, 20:59
4k is not only about speed, you also need bigger buffers to store the frames.
But you can stop dreaming, it will never happen.

NikosD
12th April 2013, 21:42
Eric has never said that there are hardware limitations for 4K, not even performance.
Maybe you think you know more than him about Intel's hardware.
Are you already in payroll or are you close to it ?

egur
12th April 2013, 22:05
Eric,

by changing media settings to application settings in latest Intel drivers, I got a huge improvement in benchmarks using DXVAChecker.
Is there a reason that Intel drivers have other default values that lower performance so much ?
Any HW algorithm that involves reading/writing from/to memory will decrease performance. Setting various options to application settings will effectively turn them off if the application (or my decoder DLL) do not request them.


I'm really curious for the explanation of Intel, why on earth did they put max clock so low - only 1100 MHz.

Max clock is dependent on several factors:
* Quality of silicon - each silicon die from the same wafer will behave differently. You are lucky to get a very good one :). The variance is quite large.
* Motherboard quality is also important. A good board will deliver a cleaner clock and a stable power supply to the processor. Cheap boards do not. That's why OC boards are much more expensive.
* Silicon aging - as the transistors age, they'll need more voltage to operate. Using a high voltage (OC) will quicken their aging. Your GPU will not work at 2100MHz forever. It might become unstable within months.
* Guard bands - Intel has been very conservative with its guard bands. That's why these processors (almost) never die. When you OC, you remove those guard bands and risk instability.
* Heat - high voltage + high clock means more heat. The baseline cooling solutions may not be able to cool the processor. A hot processor will throttle it's clocks and turn into a 386 (performance wise). Heat also increase silicon aging.

The power budget for the processor is distributed between the CPU and GPU, giving too much to the GPU (via high clock) will cripple performance for most applications.
When you OC, you take some of the power decisions into your own hands (e.g. ignore TDP) and get better results for your specific apps.
BTW, actual voltage to the GPU is controlled by the processor HW, I'm sure a high voltage was used. Not all boards can supply this current in a stable fashion.


4K for SandyBridge will be more than easy with such GPU clocks.
There is no excuse for not delivering 4K drivers for Sandy ;)
This is a HW limitation that drivers can't fix. This is the official answer I got when I asked the same question.
FYI, SNB was designed long before 4K was discussed by anyone. Using large line buffers is expensive (many millions of $) and should be justified. 4K was not a relevant use case. IVB was late enough to fix this.

nevcairiel
12th April 2013, 22:13
Eric has never said that there are hardware limitations for 4K


This is a HW limitation that drivers can't fix. This is the official answer I got when I asked the same question.

While he said that before as well, happy now? :p

NikosD
13th April 2013, 07:46
Any HW algorithm that involves reading/writing from/to memory will decrease performance. Setting various options to application settings will effectively turn them off if the application (or my decoder DLL) do not request them.


As a matter of fact, last time I installed ATI drivers I think they turn on by default some video filters and settings I always turn off.
It seems that I have to do the same with Intel Media settings, too.


Max clock is dependent on several factors:
* Quality of silicon - each silicon die from the same wafer will behave differently. You are lucky to get a very good one :). The variance is quite large.
* Motherboard quality is also important. A good board will deliver a cleaner clock and a stable power supply to the processor. Cheap boards do not. That's why OC boards are much more expensive.
* Silicon aging - as the transistors age, they'll need more voltage to operate. Using a high voltage (OC) will quicken their aging. Your GPU will not work at 2100MHz forever. It might become unstable within months.
* Guard bands - Intel has been very conservative with its guard bands. That's why these processors (almost) never die. When you OC, you remove those guard bands and risk instability.
* Heat - high voltage + high clock means more heat. The baseline cooling solutions may not be able to cool the processor. A hot processor will throttle it's clocks and turn into a 386 (performance wise). Heat also increase silicon aging.


All of the above are very true and are the main reasons I don't overclock my CPUs and GPUs.
But I didn't say anything about overclocking.
I said about clocking.
If you put the clock too low, everything above it is overclocking :p

The default max value (1100MHz) seems a very low and conservative clock for such CPU/GPU quality.

That's why many SandyBridge implementations like Core i7 go up to 1350 MHz.

I don't think that putting SandyBridge GPU to 1500MHz will degrade transistor quality.
2100MHz is too high, but 1100MHz is too low.


The power budget for the processor is distributed between the CPU and GPU, giving too much to the GPU (via high clock) will cripple performance for most applications.
When you OC, you take some of the power decisions into your own hands (e.g. ignore TDP) and get better results for your specific apps.
BTW, actual voltage to the GPU is controlled by the processor HW, I'm sure a high voltage was used. Not all boards can supply this current in a stable fashion.


Nice info. I'll take a look to voltage and pure CPU and CPU/GPU performance with high GPU clocks.


This is a HW limitation that drivers can't fix. This is the official answer I got when I asked the same question.
FYI, SNB was designed long before 4K was discussed by anyone. Using large line buffers is expensive (many millions of $) and should be justified. 4K was not a relevant use case. IVB was late enough to fix this.

OK. It's the official answer.
Just one question.
Segmenting 4K to 1080 and pushing the smaller segments to line buffers of SNB, wouldn't do the job ?
Slower than native 4K, but doable.

egur
13th April 2013, 08:19
NikosD, you make claims about clocks with very little knowledge about the domain. This thread is not the place for a deep analysis on Intel's specs. The clock values are derived after a long period of testing.
I have nothing more to add on the matter.

As for 4K, to my understanding, your suggestion is not possible.

NikosD
13th April 2013, 08:36
Egur, I have never said I'm an expert on hardware like Intel engineers.
I only say what I see.

Respecting your position to Intel and this thread, I don't want to add anything more either.

pankov
13th April 2013, 09:21
nevcairiel, Eric,
is there any chance for implementing the hardware (QuickSync) deinterlacer that is available through the DLL in LAV Video Decoder the same way as it's done for NVidia (CUVID)?
I'm asking about this because I had to change my CPU recently to a non -K variant and I had to downgrade from HD4000 to HD2500 and now very tough to handle 1080i50/60 content with madVR even at minimal settings. I'm not sure this will make it possible but I've tried 1080p60 content and it works so I have my hopes up.
Btw
does anybody know if this hardware deinterlacing will be better (as in faster) that the DXVA one that is currently used in madVR?

nevcairiel
13th April 2013, 13:39
Its the same hardware deinterlacer, so speed should be the same.

I can put it on my list to test it again for the next major LAV version and re-enable it if it works properly.

pankov
13th April 2013, 13:43
Thanks,
I'll be glad if you do so

NikosD
14th April 2013, 21:25
* Heat - high voltage + high clock means more heat. The baseline cooling solutions may not be able to cool the processor. A hot processor will throttle it's clocks and turn into a 386 (performance wise). Heat also increase silicon aging.

The power budget for the processor is distributed between the CPU and GPU, giving too much to the GPU (via high clock) will cripple performance for most applications.
When you OC, you take some of the power decisions into your own hands (e.g. ignore TDP) and get better results for your specific apps.
BTW, actual voltage to the GPU is controlled by the processor HW, I'm sure a high voltage was used. Not all boards can supply this current in a stable fashion.


I did some tests with Girls clip which found out is the most power consuming probably because of duration and difficulty, I used LAV 0.56.1 native.

GPU@1100MHz max

Vcore 1,02V
VGPU 1,22V
Temp: 46 C
GPU power consumption: 7,8W
CPU+GPU power consumption: 24,2W
GPU Load: 84%



GPU@2000MHz max

Vcore 1,12V
VGPU 1,26V
Temp: 57 C
GPU power consumption: 13,8W
CPU+GPU power consumption: 39,1W
GPU Load: 72%

It seems that GPU Voltage is not affected, just a slight increase of 0,04V.
CPU Vcore goes higher 0,10V.
But the power consumption is almost double, just like performance and the temperature of course is higher.

GPU load drops, due to higher performance of EUs.

Doesn't look too bad to me.

Next time I'll try to find a benchmark or software that uses the 4 CPU cores and the GPU at the same time.

I don't play games, so it's not easy for me to find one.

If someone has a proposition, I would try it.

egur
15th April 2013, 08:37
Let me interpret your results.
The HW decoder/vpp (most likely) doesn't max out the GPU power budget. The EUs (GPU cores) do. At 2GHz they will consume a lot of power. Too much power and will cross the TDP mark.
Video playback, even if it uses 100% of the CPU doesn't activate enough CPU compute resources and doesn't reach TDP at 100% utilization.
Also, drawing conclusions from a single processor is quite meaningless, like I said, there's a large variance between units and you probably have a very good one.

While your findings are outside my scope, I find them interesting. They are useful for QuickSync based media servers & digital signage systems. A small niche, but a valid one non the less.

NikosD
15th April 2013, 08:58
Every video benchmark pushes EUs a lot, not 100%, along with HW decoder (MFX engine), because it's not a normal video playback which tries to keep realtime framerate, it's a benchmark that wants to go as fast as it can.

Moreover, most of the clips don't push even MFX engine to 100%, you need a high bandwidth clip like Birds (8th clip) to stress MFX engine to 100%.

I had the same thought like the one you mention above yesterday and I did a test with a GPU (EU only) benchmark, which had the GPU Load at 100% using EUs only (it's a D3D10 test) and had a little more power consumption and voltage, than video benchmark.

I didn't keep the results, because I was interested to video benchmarks only.
I'll do the D3D10 test again and see the results.

I prepare a CPU, CPU/GPU, CPU/VPU benchmark and monitoring session.

itsonlyjustincase
17th April 2013, 11:33
Hi,

Thanks to the new intel ivy gpu drivers, we can now on win8 take advantage of quick sync even if the dGPU is the primay in used. Are we going to have an update of Quick Sync Decoder and Lav Video to support this ?

I have a video program that is not compatible with intel GPU. On my laptop (asus ux32vd) i have to launch it forcing the gGPU but it think i would have better performance using QuickSync over Cuvid (nvidia geforce 620m). What do you think about it ?

egur
18th April 2013, 09:01
The feature you refer to requires Win8 + IvyBridge/Haswell. A combination I don't have at home. It requires some code changes (use D3D11 API instead of D3D9) and I'm not sure if it will work in full screen exclusive mode.

I didn't understand what you meant in your question.

NikosD
18th April 2013, 13:25
* Heat - high voltage + high clock means more heat. The baseline cooling solutions may not be able to cool the processor. A hot processor will throttle it's clocks and turn into a 386 (performance wise). Heat also increase silicon aging.

The power budget for the processor is distributed between the CPU and GPU, giving too much to the GPU (via high clock) will cripple performance for most applications.
When you OC, you take some of the power decisions into your own hands (e.g. ignore TDP) and get better results for your specific apps.
BTW, actual voltage to the GPU is controlled by the processor HW, I'm sure a high voltage was used. Not all boards can supply this current in a stable fashion.


I did some long tests with 2 different systems.
One with Core i5 (SNB) and one of my signature with a discrete CPU/ GPU combination.

I ran a CPU only application (a flops benchmark), a GPU (EU) only application (a DX10 benchmark with ~2% percent CPU usage) and a VPU only (QuickSync + EU) benchmark with ~3% CPU usage.
Of course I ran combinational benchmarks CPU/GPU and CPU/VPU.
For the SNB system, I ran them with normal GPU clock and overclocked clock (2000 MHz max)

Nothing unreasonable happened.

The CPU never throttled back to lower frequencies due to temperature or power limitations, even with the overclocked GPU to 2GHz during CPU/ GPU test, where the power consumption went more than 82W for the whole chip.

GPU Voltage never crossed 1,27V and GPU power consumption never crossed 16W, during the most rough tests.

The behavior of on-die CPU/ GPU and discrete CPU/ GPU was the same, regarding performance loss due to the combinations of CPU/GPU and CPU/VPU benchmarks.

Conclusion:

If you overclock or let's say clock higher the SNB GPU you will get reasonable results:

1) Higher performance (can go more than two times up for GPU)
2) Higher temperatures (only 3 degrees of Celsius - from 67 to 70)
3) Higher consumption of GPU (from 8W to 16W)

The CPU performance will not be affected at all, because of higher GPU clocking.

itsonlyjustincase
19th April 2013, 08:53
The feature you refer to requires Win8 + IvyBridge/Haswell. A combination I don't have at home. It requires some code changes (use D3D11 API instead of D3D9) and I'm not sure if it will work in full screen exclusive mode.

I didn't understand what you meant in your question.

Sorry it's because i'm french speaker.

I saw that recently intel upgraded the ivy drivers so that Quick sync can now can be used even if the intel GPU isn't used in the application. It is for systems with discrete GPU.

http://www.necacom.net/index.php?option=com_content&view=article&id=6961:intel-hd-graphics-drivers-153133071&catid=68:intel&Itemid=86

I'm asking that cause i'm a dj who uses a video mix program that is not compatible with intel GPU. So on my laptop (asus ux32vd) i have to set the nvidia Panel so that the nvidia GPU is used when i launch my video mix software (Serato Video). The thing is that, regarding what i've seen on the net, the intel quicksync of the HD 4000 is very powerful and perhaps more than the CUDA of my geforce 620m discrete GPU. So perhaps thanks to the new drivers of intel and a version of your decoder that support it, i could use the intel quicksync decoder even if i launched the Serato Video with the nvidia GPU

itsonlyjustincase
19th April 2013, 08:58
From the above driver..


Does this mean what i think it does? Using QuickSync even if the Intel GPU has no attached screen?
Anything else wouldn't make any sense, because it worked before, right?

Too bad its only Win8, i won't get to test that anytime soon.

Exactly !!

Too bad you can't test on win8 :(

egur
21st April 2013, 12:05
I've installed Win8 on my home PC and will start development this week for the headless decode/vpp feature. I'll also upgrade one of my dev platforms at work (more complicated).

The Media SDK support team said that SandyBridge supports this feature (Windows 8 + 15.28 driver or newer). I'll report progress as I advance.
No clue whether this will work in full screen exclusive or not.
If developers have any insight on DX11.1 video capabilities, please share.

Superb
21st April 2013, 13:47
That's great news! :)

itsonlyjustincase
21st April 2013, 20:29
Super news :) thank you

TEB
24th April 2013, 08:36
hei guys. Im a bit confused still over what cpu supports QuickSync..

So: on the Intel Denlow Server Platform "Haswell E3"
i can see that some of the cpu's have a "GT2" Gpu unit.
When i google this i get both "HD Graphics 4600" and "HD Graphics P3000" on the GT2 name.. Not sure which one is correct.. One CPU im considering is the : E31245 V3

Any idea which gpu is the correct one? And is the performance the same as the consumer versions of quicksync?


http://wccftech.com/intel-denlow-server-platform-2013-detailed-added-compatibility-broadwell-server-chips/

egur
24th April 2013, 08:45
Performance of the Xeon-E3 line should be about the same as the consumer models (of the same generation).
The E3's may be tweaked slightly differently from the consumer models but these changes have little impact on video HW acceleration.

TEB
24th April 2013, 08:59
hi. It seems when googling for v3, the Intel ARK for v1 comes up.. hence P3000.... In other words = wrong ;)

Haswell is definitive HD Graphics 4600 = gt2 for the Xeon family

egur
24th April 2013, 09:09
ark.intel.com is not updated with Haswell models yet. Haswell hasn't launched yet...

TEB
24th April 2013, 11:12
Hmm.. i see that my knowledge on Quick Sync is somewhat lacking.. Care to explain a few things for quick sync newbs like me ? ;)

1. is Quick Sync more designed for Encoding instead of Decoding? Or is it just different parts of the HW? Or is quick sync some general purpose DSP that can be used for more than video purposes like audio or crypto?
2. How does Quick sync deal with paralell requests, wheter it is encoding or decoding? Does it scale well with 2-4-8 threads that all call the "quick sync" functions? or is it a "one at a time" principle?

br TE

NikosD
24th April 2013, 11:38
QuickSync is an ASIC inside GPU and GPU is on the same die with CPU. GPU shares some resources to QuickSync (EUs)

It's not general purpose, it's for video transcoding, which means both decoding and encoding.

It can decode at the same time at least 4 different 1080p H.264 streams in realtime.

Eric can add more...

egur
24th April 2013, 13:47
QuickSync is the brand name of the HW accelerated decode, video post processing (VPP) and encode engine within the Intel GPU.
Most of it is implemented in ASIC (fixed function HW) that give it superior performance and power.

My decoder only uses the decode and video processing (optional) capabilities of QuickSync and works on platforms that are NOT QuickSync ready (Pentium and Celeron class processors).

QuickSync can be utilized via DXVA2 calls (no encode in DXVA2) or via the Intel Media SDK. The latter is used in this project since it simplifies the work.

Multiple stream can be decoded/encoded at the same time. They don't actually work in parallel, but the HW is fast enough to decode 4-8 streams in real time. Actual number depends on stream complexity as well as memory speed.
Overclocking the iGPU, as shown by NikosD along with very fast RAM can significantly improve performance.
It's also possible to have the display on a different GPU (AMD/Nvidia) freeing the iGPU so it has more resources to decode.

TEB
24th April 2013, 13:53
QuickSync is the brand name of the HW accelerated decode, video post processing (VPP) and encode engine within the Intel GPU.
Most of it is implemented in ASIC (fixed function HW) that give it superior performance and power.

My decoder only uses the decode and video processing (optional) capabilities of QuickSync and works on platforms that are NOT QuickSync ready (Pentium and Celeron class processors).

QuickSync can be utilized via DXVA2 calls (no encode in DXVA2) or via the Intel Media SDK. The latter is used in this project since it simplifies the work.

Multiple stream can be decoded/encoded at the same time. They don't actually work in parallel, but the HW is fast enough to decode 4-8 streams in real time. Actual number depends on stream complexity as well as memory speed.
Overclocking the iGPU, as shown by NikosD along with very fast RAM can significantly improve performance.
It's also possible to have the display on a different GPU (AMD/Nvidia) freeing the iGPU so it has more resources to decode.

But is there a quicksync asic PR core? or 1 for the whole die?

I was thinking about testing this on the new Dell T1700 with a e3-1245 v3 CPU + a nvidia gfx card.
Then i would have 4 CORES + 4 HT Cores + a Nvidia GPU.

Could it then do f.ex 12 HD low complexity HD streams in paralell (still CCTV ;))

br TE

egur
24th April 2013, 14:10
The amount of HW replication is a micro architectural detail which is not exposed.
I can't predict performance on such a system. Sorry. You need to make sure that your application runs on the iGPU not Nvidia's GPU.

TEB
24th April 2013, 14:39
The amount of HW replication is a micro architectural detail which is not exposed.
I can't predict performance on such a system. Sorry. You need to make sure that your application runs on the iGPU not Nvidia's GPU.

ok, i was mearly pointing at "It's also possible to have the display on a different GPU (AMD/Nvidia) freeing the iGPU so it has more resources to decode." for the nvidia gfx card.
I guess a standard GPU accelerated Video renderer is the best aproach..

Nice article on Quick sync quality vs other HW and SW assisted implementations of h264

http://www.hardware.fr/focus/67/encodage-h-264-retour-nvenc-quicksync.html

GTPVHD
24th April 2013, 17:16
http://www.scribd.com/doc/137419114/Introduction-to-AVX2-optimizations-in-x264

Eric, please add AVX2 optimizations to the decoder where applicable.

nevcairiel
24th April 2013, 17:18
Eric, please add AVX2 optimizations to the decoder where applicable.

The decoding is done in hardware, how would this be optimized? :p
The only thing would be the memory copy function, which i doubt would actually get much faster.

GTPVHD
24th April 2013, 17:22
I didn't know of any hardware decoder that can decode 10bit encodes. :p

nevcairiel
24th April 2013, 17:28
I didn't know of any hardware decoder that can decode 10bit encodes. :p

I suppose QuickSyncs software fallback can decode 10-bit, but its already butt-slow in comparison, and Eric didn't write it, its part of the driver.

I think you're really confused right now. :)

egur
24th April 2013, 18:41
I've implemented an AVX2 copy back function, the rest of my code takes almost zero CPU time.
AVX2 isn't any faster for this operation. In fact it was a little slower.

As for 10bit, I'm not aware that the SW Intel implementation can do it. I think it should imitate the HW capabilities.

andyvt
24th April 2013, 18:47
As for 10bit, I'm not aware that the SW Intel implementation can do it. I think it should imitate the HW capabilities.

Do you expect support for 10-bit anytime soon? Without demand for it, hardly seems like it would make the cut.

egur
25th April 2013, 12:36
Do you expect support for 10-bit anytime soon? Without demand for it, hardly seems like it would make the cut.

If any time soon mean Haswell, then no. Afterwards, I don't know. My guess is the same as yours, 10 bit is a niche profile. I assume that it requires massive HW changes (+die area) to support it and the added value is small (for most use cases).

nevcairiel
25th April 2013, 12:43
Doubtful H.264 10-bit will ever be supported.

For H.265, we may still hope. The initial spec includes a consumer 10-bit profile, so maybe..

itsonlyjustincase
25th April 2013, 19:22
Can't wait for the win8/directx11.1 version :). I have lots of hopes in it. Nevcairiel might hate me because of how i bothered people here with my Serato Video soft which is not compatible with intel GPU. Lauching the soft but using the quicksync to decode video would permit me to have 2 HD videos playing at the same time and fluid. Video mix software is different from players as the video and sound are processed in real time and optimised for rewind, fast forward, scratches (vinyl or cd emulation with those video mix software) etc...

GTPVHD
26th April 2013, 17:54
http://newsroom.intel.com/community/intel_newsroom/blog/2013/04/26/chip-shot-4th-generation-intel-core-coming-soon

nevcairiel
26th April 2013, 18:09
So they are just repeating that on June 4th Haswell will be shown, which happens to be the Computex which was announced as the release event before? :p

huhn
26th April 2013, 20:37
this time with a way to output/force pc level on hdmi and a good 23p clock ?

GTPVHD
2nd May 2013, 05:41
http://www.anandtech.com/show/6926/intel-iris-iris-pro-graphics-haswell-gt3gt3e-gets-a-brand

hajj_3
3rd May 2013, 09:34
http://www.anandtech.com/show/6926/intel-iris-iris-pro-graphics-haswell-gt3gt3e-gets-a-brand

It does look potentially rather good, i doubt they will reveal more info until the official unveil date though, maybe then egur will give us in-depth answers to questions we may have.

egur
3rd May 2013, 10:44
Most details about Haswell has already been answered. Don't ask me about performance (yet). I also don't have a GT3e unit yet. Hopefully I'll get those numbers after launch.
It's not clear to me whether GT3e enjoys better performance vs GT3 in video acceleration use cases.

BTW, the new drivers (15.31) which are the first Haswell drivers, they also support IvyBridge but not SandyBridge. SandyBridge owners (myself included) are limited to 15.28 drivers.

For users who consider buying a Haswell for HTPCs, I recommend buying fast RAM in order to get the max out of them (this is also true for previous architectures).

NikosD
3rd May 2013, 16:49
There are 6 versions of different GPUs.

GT1, GT2, 2 GT3 and 2 GT3e.

The 4 GT3 versions have all 40 shaders but different clocks and GT3e have 128 embedded RAM.

Fastest GPU is definitely 4770R (Iris pro desktop version).

But what is the difference and what is the performance difference between the 4 GT3 besides clocks and eRam in video, computing (OpenCL) and games ?

Sent by Note II using Tapatalk

egur
3rd May 2013, 20:54
GT1 and GT2 have less EUs (cores) than GT3.
GT1 < GT2 < GT3.

Edit
Frequencies (usually) depend a lot on TDP and less on the size of the GPU.
See Anandtech covering IDF on HSW's GPU (http://www.anandtech.com/show/6355/intels-haswell-architecture/12)

Edit2
The R models are listed as desktops but they are BGA parts. This means that they are soldered to the motherboard. Their main usage will be All In One (AIO) PCs (like iMac).

NikosD
4th May 2013, 06:35
Edit2
The R models are listed as desktops but they are BGA parts. This means that they are soldered to the motherboard. Their main usage will be All In One (AIO) PCs (like iMac).

So, you mean we can't actually buy a 4770R. It's not sold separately.

But can we buy a motherboard with an R model soldered to it ?

Because if we can't do that either, then the only option we have is to buy a brand name PC (All In One) or build ourselves a Haswell PC with GT1/GT2 option only.

ryrynz
4th May 2013, 09:05
I'm also wondering this, will anyone do a ATX BGA board with the 4770R.. whoever does is likely going to be winging in some cash.
I'd certainly think of buying one.

egur
4th May 2013, 14:05
My personal opinion is that for serious gamers, a discrete GPU is still a must. Killing a 200W dGPU with an iGPU that takes much less power is not practical (yet).
As Intel gives more and more attention (die area) to the GPU and keeps its superiority in silicon manufacturing, this might change.

Video enthusiasts who use MadVR's high end setups require a strong GPU, but this is a small niche (unfortunately).

I can't discuss which OEM is doing what platform, but an OEM will come to the conclusion that it makes sense, they'll build it. Going BGA makes things cheaper and since most users don't do upgrades, it might be a good HTPC solution.

The problem of course is when the motherboard dies, replacing a BGA part is not practical.
So if a good OEM does this, upgrading is not a real issue.

huhn
4th May 2013, 18:56
Video enthusiasts who use MadVR's high end setups require a strong GPU, but this is a small niche (unfortunately).

with the new igpu there shouldn't be any performance issue with madvr the hd 4000 works pretty well already. i used the hd4000 for some tie with madvr but...

the real htpc issue with intel is this http://communities.intel.com/thread/29420?start=0&tstart=0 there are a lot more thread like this. is know and most likely easy to fix.

if i get this right intel is working on a better why to detected the output color range. but this will never fix the problem because a lot of tv report limited and except only in pc mode unlimited so the edid is wrong.

Amd fixed this with an simple drop down menu where you can force the output color range.

Nvidia got the same problem like intel but there's a workarounds madshi has created one too. so this is still bad but better then nothing.

itsonlyjustincase
5th May 2013, 10:33
any donation needed to help in developement of quicksync support with intel quick sync decoder even when the sandy brigde igpu isn't in use ?

http://techreport.com/news/24604/performance-boosting-intel-igp-drivers-are-out

NikosD
5th May 2013, 12:29
As Intel gives more and more attention (die area) to the GPU and keeps its superiority in silicon manufacturing, this might change.


128MB of eDRAM is a huge amount of memory to be on-die.
I wonder what HW resources Intel had to remove to supply eRAM in GT3e.

UPDATE:
I think I found my answer
www.techpowerup.com/182841/intel-readies-haswell-variants-with-large-graphics-cores-and-edram-caches.html

egur
5th May 2013, 13:14
any donation needed to help in developement of quicksync support with intel quick sync decoder even when the sandy brigde igpu isn't in use ?

http://techreport.com/news/24604/performance-boosting-intel-igp-drivers-are-out
Code donations are always welcome. Money donations are not needed.

128MB of eDRAM is a huge amount of memory to be on-die.
I wonder what HW resources Intel had to remove to supply eRAM in GT3e.

eDRAM has a separate die (There are photos of this chip in Anandtech and other sites). It's a standard DRAM die. For reasons outside this thread, DRAM and Logic (e.g. Haswell) dies can't be made using the same process, hence GT3e parts are multi-chip packages (MCP).

When a DRAM is very close to the memory controller (millimeters instead of centimeters), it's possible to use very high frequencies and/or low voltage. The eDRAM is effectively a large cache. It's slower than the L3 cache but faster than main memory.

GTPVHD
6th May 2013, 18:56
http://www.anandtech.com/show/6936/intels-silvermont-architecture-revealed-getting-serious-about-mobile

Eric, does Silvermont have the same hardware decoder as Ivy Bridge? So Quicksync decoder just works on Silvermont?

nevcairiel
6th May 2013, 19:50
That is up to the drivers for those GPUs, if they support the Media SDK out of the box.
The copy-back architecture of the decoder may however not be the best course on a very power-conscious system like a phone or tablet.

egur
7th May 2013, 12:46
Nev's answer is correct.
It doesn't matter what GPU technology is used as long as the Intel graphics driver and Media SDK abstract it.

NikosD
7th May 2013, 13:10
This year hardware decoding on smartphones and tablets will be even more interesting because of Nvidia Tegra 4, Qualcomm Snapdragon 800 and Samsung Mali 450.

All of the above SoCs have one thing in common.
4K H.264 HW acceleration.

I haven't seen any performance numbers yet, but they claim they can do it.

So, they can do what no AMD card does even today, not even Nvidia VP4 or older or Intel SandyBridge or older.

It doesn't look feasible for Silvermont with 4 EUs only and very constrained power envelope to be able to include something like QuickSync or even worse 4K HW acceleration like Ivy's with 16 EUs and large TDP.

The priority for Silvermont is definitely CPU not GPU or VPU.

egur
7th May 2013, 14:25
i don't agree with your conclusions.
4 GEN7 EUs are in the same performance neighborhood as 6 GEN6 EUs (SandyBridge GT1). The latter I use for development and the performance is very good as you know.
Most of the decode work is done in fixed function (MFX engine) not the EUs.
If the playing field is similar (GPU clock, memory speed, memory latency, cache latency), I can speculate that performance will be around SNB GT1.
As for 4K, SandyBridge didn't have a performance problem, it had a HW limitation (to my knowledge).

The problem is that even if the driver ships with Media SDK, I have no way to test this. I don't have such a system.

NikosD
7th May 2013, 17:48
It's impossible the playing field to be similar because of power constraints.

The clocks of Silvermont GPU will be lower than GT1.

I take the risk to predict GPU performance of next generation SoCs

Tegra 4 > Snapdragon 800 > A6X (swift) > Silvermont

nevcairiel
7th May 2013, 18:19
Sandy Bridge HD2000 GPU performance on a phone? Thats insanely fast in comparison to todays mobile GPUs.
I think you'll be surprised. :p

itsonlyjustincase
7th May 2013, 18:25
Code donations are always welcome. Money donations are not needed.


eDRAM has a separate die (There are photos of this chip in Anandtech and other sites). It's a standard DRAM die. For reasons outside this thread, DRAM and Logic (e.g. Haswell) dies can't be made using the same process, hence GT3e parts are multi-chip packages (MCP).

When a DRAM is very close to the memory controller (millimeters instead of centimeters), it's possible to use very high frequencies and/or low voltage. The eDRAM is effectively a large cache. It's slower than the L3 cache but faster than main memory.

I wish i could do that but it's not in my skills :p

The intel quicksync is so powerful ! I record my video mix and games with a soft developed by Mirilis called Action!. I can mix or play games with my Nvidia GPU and record a hdmi plugged screen at the same time with the intel quicksync without any impact on the fps. I had tried many programs before like msi afterburner but all were affecting the fps. Can't wait for the ability to use quick sync even when the intel gpu isn't used with your next QS decoder

Yups
7th May 2013, 22:28
It doesn't look feasible for Silvermont with 4 EUs only and very constrained power envelope to be able to include something like QuickSync or even worse 4K HW acceleration like Ivy's with 16 EUs and large TDP.


Quicksync is confirmed for Intels next gen Atom tablets. Newest Media SDK support it. The fixed function unit is highly power efficient and fast.

jkauff
8th May 2013, 02:53
The problem is that even if the driver ships with Media SDK, I have no way to test this. I don't have such a system.
What? You mean you can't just put in a new hardware request at work? ;)

NikosD
8th May 2013, 09:32
Quicksync is confirmed for Intels next gen Atom tablets. Newest Media SDK support it. The fixed function unit is highly power efficient and fast.

Every smartphone and tablet nowdays has hardware decoding/encoding capabilities.

For example my Note II can hardware encode/decode H.264 up to 1080p@30 fps (Bluray compatible).

The GPU is Mali 400MP4 (4core)@533 MHz.

My benchmarks say that HW decoder is 100% faster than the optimized software decoder running multicore and using SIMD NEON instructions on a quadcore Cortex A9@1.6GHz (Exynos 4412)

So, Silvermont will definitely have a HW decoder.

But even if you or Intel call it QuickSync, what are the characteristics and performance compared to Ivy's QS which is more than capable of even 4K H.264 ?

Sent by Note II using Tapatalk

egur
8th May 2013, 09:53
I don't know the performance of the yet-unreleased Bay Trail. At this point in time it's not important (SW stack may not be optimized enough). Performance is relevant near launch. By then, they will be disclosed.

wanezhiling
10th May 2013, 11:01
15.31.7.3131 for ivb/has

win7/8 x86:http://file2.mydrivers.com/display/intel_graphics_15.31.7.3131-WIN32.exe
win7/8 x64:http://file2.mydrivers.com/display/intel_graphics_15.31.7.3131-WIN64.exe

NikosD
14th May 2013, 09:25
For people who know Chinese, first review of Haswell is here:

http://www.chinadiy.com.cn/html/24/n-9024-7.html

It's a 3770K vs 4770K comparison.

Even if you don't know Chinese (like me) you can read the numbers and the names of benchmark applications (they are in English).

egur
16th May 2013, 17:19
I worked out an initial version of QS that supports D3D11 HW video decoding (alternative to the limited D3D9).

Direct3D11 provides headless (disconnected iGPU) video acceleration. This hopefully solves multi-GPU setups. Media servers also enjoy this (no screen at all).

Minimum requirements:
- SandyBridge or newer (like before)
- 15.28 or 15.31 driver.
- Windows 8 (D3D11 and D3D9). Windows 7 (D3D9 only)
- 32 bit player
- LAV (32bit) and/or ffdshow (32bit) installed

Get the DLL from here (http://www.mediafire.com/?w78b4d4p4x71pnt). Rename the original IntelQuickSyncDecoder.dll file and use the new one instead.

This is an "alpha" SW, not well tested, etc. Please provide feedback.

My test system:
- Win8 Pro 64bit fully patched
- 2nd generation Core i7-2600 (SandyBridge)
- Radeon HD 6950 (connected to display), Catalyst 13.1.
- Intel HD 2000, latest 15.28 driver.

Update
The above DLL was updated (link updated too) and now it works on Win7. VC1 playback (D3D11) is operational too.

nussman
16th May 2013, 23:37
Hi,

thanks for this testbiuld. :thanks:
I did a quick test, but on my system it's not working yet.

Win732bit
LAV 56.2
Intel HD4000 15.31 driver
AMD HD6570 CCC 13.1
DVBViewer Pro

Quicksync is shown available, but avcodes is stilled used. Same problem with ffdshow (your latest build).
Anything else that have to be done instead of replacing the IntelQuickSyncDecoder.dll?

RBG
17th May 2013, 00:28
egur
That's great news. I've been anticipating headless support for a long time, and we have it now. Thank you.
Though, it is not working on my system. Whole setup below.

System: Windows 7 x64 SP1 with almost all updates including KB2670838.
Hardware: Intel HD Graphics 2000 + GeForce gtx 470.
Drivers: Intel 15.28.15.64.3062 (9.17.10.3062) + Nvidia 314.07
Software: Daum Potplayer x86 + LAV 56.2

Yups
17th May 2013, 00:32
For people who know Chinese, first review of Haswell is here:

http://www.chinadiy.com.cn/html/24/n-9024-7.html

It's a 3770K vs 4770K comparison.

Even if you don't know Chinese (like me) you can read the numbers and the names of benchmark applications (they are in English).


That is some inconsistent test. Turbo issues on Haswell, oddly high 3770k results and so on. Here is a better one: http://diy.pconline.com.cn/329/3297240.html

Pretty good GT2 results and convincing system power improvements.

nevcairiel
17th May 2013, 07:22
Though, it is not working on my system. Whole setup below.

Headless only works on Windows 8.
Windows 7 lacks the required D3D11 support.

egur
17th May 2013, 08:00
Correct. Headless works only on Windows 8 (d3d11).
Windows 7 users should check that what worked before still does.
My own Windows 7 HTPC works fine with the new DLL as far as I could tell.

Full Screen Exclusive (FSE) layers like Windows Media Center do not exist on Windows 8 as far as I know. Please correct me if I'm wrong. That's why I don't know if D3D11 works in FSE applications.

wanezhiling
17th May 2013, 08:23
Wow a good reason to convince myself to win8? :p

RBG
17th May 2013, 09:21
This is sad. I wonder if it is technically impossible to fully port D3D11 functionality or it is just the way Microsoft is doing business... Well at least I can buy Lucid MVP, cause there is no way I am going to buy Windows 8.

itsonlyjustincase
17th May 2013, 10:33
I worked out an initial version of QS that supports D3D11 HW video decoding (alternative to the limited D3D9).

Direct3D11 provides headless (disconnected iGPU) video acceleration. This hopefully solves multi-GPU setups. Media servers also enjoy this (no screen at all).

Minimum requirements:
- SandyBridge or newer (like before)
- 15.28 or 15.31 driver.
- Windows 8 (D3D11 and D3D9). Windows 7 (D3D9 only)
- 32 bit player
- LAV (32bit) and/or ffdshow (32bit) installed

Get the DLL from here (http://www.mediafire.com/?w78b4d4p4x71pnt). Rename the original IntelQuickSyncDecoder.dll file and use the new one instead.

This is an "alpha" SW, not well tested, etc. Please provide feedback.

My test system:
- Win8 Pro 64bit fully patched
- 2nd generation Core i7-2600 (SandyBridge)
- Radeon HD 6950 (connected to display), Catalyst 13.1.
- Intel HD 2000, latest 15.28 driver.

Update
The above DLL was updated (link updated too) and now it works on Win7. VC1 playback (D3D11) is operational too.

WOOOWWW great news ! Thank you guy !!! Can't wait to go home tonight to test it :)

itsonlyjustincase
17th May 2013, 10:34
This is sad. I wonder if it is technically impossible to fully port D3D11 functionality or it is just the way Microsoft is doing business... Well at least I can buy Lucid MVP, cause there is no way I am going to buy Windows 8.

Lucid MVP needs a GTX geforce model. I bought it before understanding that i needed a GTX. So if you want i can give it to you........the standard edition

nevcairiel
17th May 2013, 13:33
I wonder if it is technically impossible to fully port D3D11 functionality

Parts of these functions need the new driver model WDDM 1.2 which is not available for 7 either, so they would need to port this as well, and who knows what all else this contains and how deep it goes.

So one can understand why its not done, even if it makes us sad.

itsonlyjustincase
18th May 2013, 09:14
Unfortunatly doesn't work with my app. It uses avcodec when i select quicksync

WIN8 64 bits
Asus ux32vd

egur
18th May 2013, 09:20
Please specify your setup - what SW is used (must be 32 bit) what driver? Is the iGPU enabled?

itsonlyjustincase
18th May 2013, 10:16
win8 64bits
i7 3517u
intel hd 4000 + nvidia geforce 620m
intel hd 4000 enabled by default.
Geforce 620m forced to use my soft Serato Video 32 bits (www.serato.com) cause they disabled intel gpu compatibility so that you can't run the soft using the intel GPU as it gives you an error message saying your intel gpu isn't supported. That is why i wanted to be able to launch it with the Nvidia GPU but use quick sync to play video
Driver 9.18.10.3071