If you are interested in using madVR with Celeron G500 Series/Pentium G600/G800 Series + Intel HD Graphics or Core i3-2100/2120/2130/Core i5-2300-2500 + Intel HD Graphics 2000, here is a successful configuration.
- Processor: Any SNB processor with Intel HD Graphics (every Celeron/Pentium SNB) except for G440 single core, or Intel HD Graphics 2000 (Core i3-2100/2120/2130/Core i5-2300-2500). In the test below I used Celeron G530 2C/2T 2.4GHz, the lowest-end dual-core SNB processor.
- Memory: DDR3-2133 2 x 2GB @2133MHz. For example, G.SKILL F3-17000CL9D-4GBXL, $55.
- Z68 chipset mb. For example, ASRock Z68M/USB3, $95. H61/H67 is no good because it supports only up to DDR3-1333 SDRAM.
- Intel HD Graphics @1350MHz. The default clock is 1100MHz. GPU of every SNB processor should be able to run at this clock without problem.
- Player: Any that supports madVR. I used MPC HomeCinema.
- Video decoder: Intel QuickSync. Right now this is part of ffdshow. If you use Pentium G800 Series or higher, you can also use libavcodec.
- Deinterlacer: yadif (frame doubling) in ffdshow for interlaced contents. In future Intel QuickSync may support GPU's hardware deinterlacer.
- Video renderer: madVR, medium quality (Bilinear/Bicubic 50/Bicubic 50), in full screen exclusive mode. For high quality settings, you will need Intel HD Graphics 3000 such as Core i3-2105/2125.
I used the following 2 minute video clips:
- SD film: Ratatouille (2007) (480i60, MPEG-2, AC3)
- SD video: Die Zauberflote (2003) (480i60, MPEG-2, AC3)
- HD film: Iron Man (2008) (1080p24, AVC, TrueHD/AC3)
- HD i video: La Traviata (2010) (1080i60, AVC, DTS-HD MA)
- HD p video: La Traviata (2010), created from the above by deinterlacing with yadif (1080p60, AVC, DTS-HD MA)
The following two are HD i video in VC-1 format, that is rare and sometimes hard to play back (even 4shared.com can't create thumbnails/previews
):
- HD i video (VC-1): Life - Plants (2010) (1080i60, VC-1, DTS-HD HRA
- HD i video (VC-1): Nature's Journey (2007) (1080i60, VC-1, DTS-HD MA)
To be clear,
Â
| Â |
Origin |
Format |
Output to renderer |
Frame interval |
| SD film |
film |
480i60 |
480p24 |
41.708 ms |
| SD video |
video |
480i60 |
480p60 |
16.683 ms |
| HD film |
film |
1080p24/1080i60(broadcast) |
1080p24 |
41.708 ms |
| HD i(nteralced) video |
video |
1080i60 |
1080p60 |
16.683 ms |
| HD p(rogressive) video |
video |
1080p60 |
1080p60 |
16.683 ms |
Â
These five are the major video formats found in NTSC countries (well, except for 720p60 in broadcast, which is much easier to play back than 1080p60).
Results (with Celeron G530)
Â
| Â |
SD film |
SD video |
HD film |
HD i video |
HD p video |
| Dropped frames |
0 |
0 |
0 |
0 |
0 |
| CPU usage (average) |
11% |
21% |
23% |
74% |
55% |
| GPU usage (average) |
54% |
88% |
25% |
60% |
59% |
| Rendering time (average) |
20.93 ms |
13.90 ms |
8.87 ms |
8.88 ms |
8.90 ms |
Â
Why Intel QuickSync video decoder for Celeron G500 Series and Pentium G600 Series processors?
With libavcodec (ffdshow's default decoder), I got:
| Â |
SD film |
SD video |
HD film |
HD i video |
HD p video |
| Dropped frames |
0 |
0 |
0 |
4017 |
3715 |
| CPU usage (average) |
11% |
18% |
50% |
93% |
97% |
| GPU usage (average) |
55% |
88% |
25% |
30% |
31% |
| Rendering time (average) |
20.88 ms |
13.89 ms |
8.61 ms |
9.46 ms |
13.56 ms |
Â
There are lots of dropped frames at HD i/p video playback. The bottleneck is the weak CPU that can't handle AVC decode (libavcodec) and deinterlacing (yadif) simultaneously. Intel QuickSync supports hardware AVC/VC-1/MPEG-2 decode under madVR, hence offloads CPU. If you use Pentium G840 or higher, there should be no such problem with libavcodec.
Why overclock GPU?
With the default GPU clock 1100MHz, I got:
Â
| Â |
SD film |
SD video |
HD film |
HD i video |
HD p video |
| Dropped frames |
0 |
687 |
0 |
0 |
0 |
| CPU usage (average) |
13% |
21% |
25% |
70% |
54% |
| GPU usage (average) |
54% |
96% |
25% |
60% |
59% |
| Rendering time (average) |
20.85 ms |
17.40 ms |
9.13 ms |
8.96 ms |
8.89 ms |
Â
GPU struggles with upsampling SD at the rate of 60 fps. To reduce 17.40 ms to, say, 14.00 ms, safely below the threshold value of 16.68 ms, it needs to be overclocked by the factor of 17.40/14.00 = 1.24, resulting in 1367 MHz. Every SNB processor's GPU should be able to run @1350MHz with no problem. (Note that 1350MHz is the default GPU clock of Core i7-2600K, the highest SNB processor.)
Why DDR3-2133?
With DDR3-1066, all the other settings remaining the same as the first one, I got:
Â
| Â |
SD film |
SD video |
HD film |
HD i video |
HD p video |
| Dropped frames |
0 |
627 |
0 |
2004 |
0 |
| CPU usage (average) |
14% |
25% |
29% |
91% |
76% |
| GPU usage (average) |
59% |
95% |
27% |
59% |
65% |
| Rendering time (average) |
21.74 ms |
16.41 ms |
9.98 ms |
12.17 ms |
10.13 ms |
Â
With DDR3-1600 (supported only by Z68 chipset), all the other settings remaining the same as the first one, I got:
Â
| Â |
SD film |
SD video |
HD film |
HD i video |
HD p video |
| Dropped frames |
0 |
162 |
0 |
0 |
0 |
| CPU usage (average) |
12% |
23% |
28% |
77% |
61% |
| GPU usage (average) |
55% |
94% |
26% |
64% |
62% |
| Rendering time (average) |
21.17 ms |
15.52 ms |
9.57 ms |
9.71 ms |
9.66 ms |
Â
Without enough memory bandwidth, CPU struggles with deinterlacing and/or GPU struggles with upsampling SD at the rate of 60 fps.
Edited by renethx - 6/26/12 at 11:04pm