Broadcom Crystal HD: Not Such Crystal Clear Performance
Subpar multimedia playback is perhaps the biggest complaint netbook makers are hearing, specifically as it relates to Adobe Flash and high bitrate video files (HD content). This was a big problem with the Diamondville-based platform, though we see some moderate improvements on the current Pineview generation. For system vendors, there are alternative solutions with Nvidia's Ion or AMD graphics (like Acer's AO521). For those brands sticking with an Intel-based netbook, the short-term solution is Broadcom's Crystal HD, which is kind of interesting considering we see Broadcom video processors in many of Apple's CE devices.
In a nutshell, this is a miniPCIe card that takes the decoding burden off the CPU via a dedicated playback processor. Now, while it is possible to view semi-fluid HD H.264 content on a vanilla N450/N455 system, the software decoder needs to be highly efficient. The downside is that software decoding tends to be resource-intensive and takes system responsiveness down about three pegs. This has driven people to buy the Crystal HD card on sites like Ebay, just so they can get fluid playback of HD content with lower CPU and memory usage.
There are a couple of hiccups with this solution. In general, it is a great idea, but driver compatibility remains a problem. As Thomas has noted in his gaming notebook reviews, "each notebook customizes its graphics driver to fit the unique designs" of the implemented graphic solution.
Following Nvidia's example, AMD offers universal driver support for its mobile products. However, these are not always guaranteed to work. In some occasions, you can't install the universal mobile drivers unless you use a driver hack. Why? The main reason for custom drivers has to do with quality assurance. These drivers need to go through the pipeline to make sure they do not increase system instability, decrease performance, or overwhelm the form factor's thermal limitations. The primary reason is almost assuredly heat-related. System vendors often clock their graphic solutions short of what you may see on AMD or Nvidia's reference designs because their notebook design can't handle heat over a certain threshold. In a rare event beyond that line, you may get BSOD, burning plastic smells, high system instability, or damage to system components.
By adding universal drivers, the software itself may do something strange that would increase clock speed (to reference default) or provide enough of a performance gain in the software that it generates more heat. Hence, the reason the official party line at a company like Dell is "use our drivers." In fact, in our discussions with all of the manufactures, we were informed that tech support would instruct customers to use their supplied drivers for troubleshooting. They do not provide support for drivers not on their support page, even if they are new official versions at competing vendors or on the graphics vendor's Web site.
We bring up the issue of graphic drivers because it relates to the Broadcom Crystal HD situation. Two netbooks in our showcase use Crystal HD to improve playback: HP Mini 210 and Dell's Mini 10 (1012). This shouldn't come as a surprise, since both are marketed as "multimedia-friendly" netbooks. However, HP's newest driver (at the time of review) was 3.3.0 compared to Dell's 3.1.9. Yet, the newest available version on Broadcom's Web site is 3.5.0. This is made a little more complicated by the fact that HP uses an embedded version of the BCM970015. So, to be thorough, we tested both systems.
Because we are testing systems (versus a specific tech), I am personally inclined to test with vendor drivers. However, since I tested the AO521 with the newest Catalyst build, I felt that we should do due diligence to figure out the whole Broadcom fiasco. I say fiasco, because, depending on the driver, you can actually break playback support. With the seven netbooks in the lab, hours of testing, and discussions with Dell and some Adobe people, I am confident this is a driver issue.
Half the problem is detection and the other half whether decoding is actually done by the Crystal HD processor. Keep in mind that it is supposed to be an all-or-nothing event; any detected content should be decoded by the Crystal HD processor.
|SystemCrystal HD modelDriver||HP Mini 210BCM9700153.3.0||HP Mini 210BCM9700153.5.0||Dell Mini 10BCM9700153.1.9||Dell Mini 10BCM9700153.5.0|
Detection is given via the DTS_info utility. However, we decided to confirm this by looking at CPU usage under various scenarios to make sure there wasn't a disconnect somewhere. We tested with the newest version of Adobe Flash 10.1.85.3.
|SystemCrystal HD modelDriver||HP Mini 210BCM970015Disabled||HP Mini 210BCM9700153.3.0||HP Mini 210BCM9700153.5.0|
|WMP12 DX50||~24 FPSCPU Usage: 29%||~24 FPSCPU Usage: 24%||~24 FPSCPU Usage: 55%|
|YouTube 360p||19.5 FPSCPU Usage: 75%||19.2 FPSCPU Usage: 82%||19.6 FPSCPU Usage: 77%|
|YouTube 720p||10.9 FPSCPU Usage: 87%||10.5 FPSCPU Usage: 88%||14.6 FPSCPU Usage: 88%|
|YouTube 1080p||2.4 FPSCPU Usage: 94%||2.4 FPSCPU Usage: 95%||15.3 FPSCPU Usage: 86%|
|Hulu 360p||7.6 FPSCPU Usage: 90%||11.7 FPSCPU Usage: 80%||11.5 FPSCPU Usage: 90%|
|Hulu 480p||7.5 FPSCPU Usage: 83%||9.1 FPSCPU Usage: 83%||8.3 FPSCPU Usage: 94%|
|H.264 480p(~2.5 Mb/s)||~24 FPSCPU Usage: 36%||~24 FPSCPU Usage: 21%||~24 FPSCPU Usage: 20%|
|H.264 720p(~7 Mb/s)||<20 FPSCPU Usage: 81%||fluidCPU Usage: 27%||fluidCPU Usage: 34%|
|H.264 1080p(~11 Mb/s)||<10 FPSCPU Usage: 99%||fluidCPU Usage: 28%||fluidCPU Usage: 34%|
|SystemCrystal HD model Driver||Dell Mini 10BCM970015 Disabled||Dell Mini 10BCM970015 3.1.9||Dell Mini 10BCM970015 3.5.0|
|WMP12 DX50||~24 FPS CPU Usage: 72%||~24 FPS CPU Usage: 42%||~24 FPS CPU Usage: 57%|
|YouTube 360p||17.7 FPS CPU Usage: 83%||18.3 FPS CPU Usage: 84%||18.1 FPS CPU Usage: 83%|
|YouTube 720p||8.8 FPS CPU Usage: 89%||15.1 FPS CPU Usage: 74%||12.4 FPS CPU Usage: 96%|
|YouTube 1080p||2.3 FPS CPU Usage: 94%||15 FPS CPU Usage: 73%||12.4 FPS CPU Usage: 87%|
|Hulu 360p||7.5 FPS CPU Usage: 86%||9.8 FPS CPU Usage: 80%||13.5 FPS CPU Usage: 92%|
|Hulu 480p||6.2 FPS CPU Usage: 86%||7.7 FPS CPU Usage: 84%||8.7 FPS CPU Usage: 87%|
|H.264 480p(~2.5 Mb/s)||~24 FPS CPU Usage: 78%||~24 FPS CPU Usage: 72%||~24 FPS CPU Usage: 46%|
|H.264 720p (~7 Mb/s)||<20 FPS CPU Usage: 85%||fluid CPU Usage: 38%||fluid CPU Usage: 48%|
|H.264 1080p (~11Mb/s)||<10 FPS CPU Usage: 99%||fluid CPU Usage: 42%||fluid CPU Usage: 39%|
As you can see, there is one case detection occurred, but no acceleration was performed (BCM970015 w/3.3.0 drivers @ YouTube 720p). There are other scenarios where detection doesn't occur, but there seems to be some acceleration. WMP12 bobs the video, which makes it hard to acquire an accurate FPS count. Normally, we would just switch to another media player, but the Crystal HD has limited software support (no VLC as of v.1.1.4). For the moment, we are confident that a video file from our DivX movie library is fluid at 24 FPS across the board. Furthermore, we do see some improvement on the 3.5.0 drivers for both modules. The two different Atom processors here account for the some variance in the two disabled scenarios.
It is interesting to see that there isn't a linear scaling of performance in all scenarios. In fact, with the BCM970015 on the HP Mini 210 (N475), we only see obvious decrease in CPU usage in H.264. For Flash, we do get a noticeable improvement in 720p and 1080p, but there is little to no slack cut on the Atom's workload. Even stranger, we got higher CPU usage during generic DivX playback with the new drivers.
It is a similar scenario on the Dell Mini 10 (1012) HD. From disabled and unplugged, the use of Crystal HD does yield noticeable improvements on H.264. Hell, we even see performance gains in Flash with the older 3.1.9 drivers that we didn't see with 3.3.0 drivers. Yet, the performance gains are tempered. Again, we do not see the linear scale down in CPU utilization as we did with H.264.
More alarmingly, if you look at the new 3.5.0 drivers, they do not necessarily bring better performance. In some cases, you actually see the same (or possibly worse) with higher CPU utilization. This is all a driver issue on the Broadcom side. You will notice that Hulu 360p is detected, but YouTube 360p content is not. It turns out the decision for Crystal HD seems to be largely codec-dependent, which makes complete sense. When people talk about HD today, they spend so much time bickering about resolution. For those of us that actually create 2D/3D content, it's the bit rate and codec efficiency that matters, not how many pixels run across the screen. As a result, we're fairly confident that Adobe Flash has little to do with this. We even used the older (but fairly recent) 10.1.82.76 version of Flash, and we got the same results. It isn't a surprise that Dell and HP are reluctant to qualify drivers that bring worse performance, and the slow dev here doesn't really help the matter, considering this has been on the market for sometime now.
How sure are we this is codec-dependent? What about bit rates? Well, we went further to look at different Flash websites on the Dell Mini 10 with 3.5.0 drivers. Look at the breakdown.
|Web Site||Quality||Resolution||VideoBit rate (Kb/s)||Flash Codec||Detected|
|YouTube #1||720p||1280x544||1977Max: 4769||H.264||Y|
|YouTube #1||1080p||1920x816||3482Max: 8750||H.264||Y|
Crystal HD refuses all Flash encoded with H.263 (Spark) and On2 VP6; it must be H.264-encoded. This isn't a problem if you stick to the most popular sites. But some sites use VP6, in which case you are going to be sorely disappointed with Broadcom. If you look at Vimeo Sample #2, DailyMotion, and both YouTube samples, it seems that decoding could be bit rate-dependent. However, this is tricky because all of the H.264 videos we have seen have almost always have higher bit rates than the other two codecs. In fact, almost every streaming video Web site we tried to hunt down for samples used the Spark encoder for lower bit rate files. But once we added the Youku Flash videos into the mix, it became clear this was largely codec-dependent.
Granted, there are different resolutions and frame rates to take into account, which we did using bit per frame * pixel. In doing so, we found the discrepancy with the two YouTube 360p samples seems to be due to bit rates. These two samples used Main@L2.1 compared to High@L.3.1 and Main@L3.0 we were seeing in other files. This other format seems to undergo some bit rate discrimination, but in view of the other data (not all posted), the math seems a bit odd.
I put the additional emphases on function because there are some other noteworthy oddities. The Crystal HD is a single process and thread processor. For example, you can’t accelerate Flash and H.264 at the same time, which isn’t really a problem at face value. The first content detected is able to open a thread on the Crystal HD processor. The second, third, and so on are passed off to the CPU. Keep in mind this means you can't have a browser open on a Flash-based Web site and then open up a H.264 video and expect the latter to be accelerated by Crystal HD. We ruled out a bandwidth/processing load issue on the Crystal HD processor, because even if you pause the first content instance, the thread is still open, and so all subsequent content instances cannot utilize Broadcom’s multimedia processor (perhaps this is why Apple does the tabbing the way it does). The problem is in the way Broadcom’s driver detects and handles content. The thread needs to be closed correctly. This usually involves exiting the program or clicking on a non-Flash-detected page. However, if the browser or player closes incorrectly, the thread is halted, but Broadcom’s driver seems to believe it still exists and doesn’t allow for other instances to use the incorrectly-freed resource. Closing incorrectly also isn’t the problem. The issue is that there seem to be at least a couple of ways this can happen during everyday use. It is deceptive as well, since DTS_info reports all clear. But once you go onto your next piece of multimedia content, it isn’t detected. We need some error handling here, because the only current way to solve this problem is restarting.
As an aside, I really have to question the logic behind Crystal HD. And while I give kudos to Nvidia for an excellent Ion platform, that has more to do with nettops than it does for netbooks, where six out of seven of the latter don't come with HDMI. Relegated to VGA output at best, and a 10.1" at worst, I don't find it realistic to expect anyone to consistently use anything above 720p H.264. There is no practical reason to view 1080p on a netbook (except for a few exceptions, such as presentations). For a device that keeps you mobile, quick content delivery is what to you need, and the typical difference between 480p and 720p is minimal on screens this small. Even if we put aside battery life issues, we should also mention that the Broadcom chip gets hot (>110 degrees F) if you give it a good 10 minutes.
For those folks considering a self-mod, you need to ask yourself what you are trying to accomplish. Your ~$50 dollar investment (or possibly more, given the winning bids I’ve seen) into a card that may or may not void your warranty still won't give you fluid Flash 10.1 playback. In some cases, performance is going to be driver version dependent. At the moment, you can reasonably watch YouTube 720p and Hulu at 360p in windowed mode (we tested in fullscreen).
Now you are probably thinking, “if Crystal HD can do H.264 acceleration, I’ll just use HTML5.” Sorry to be the bearer of bad news, but this won’t work because Crystal HD doesn’t detect HTML5 video elements. Believe us--we tried just about every variation of Web site, browser (including beta builds), and driver imaginable. This may or may not be a simple implemation. Given the problems we have seen with Flash, we’re hopeful, but we aren’t holding our breaths. If you are looking for a powerhouse netbook, the Acer AO521/AO721 is a more tried and true approach (no weird software interaction to worry about), and has HDMI output for further justification.
Going forward, we should naturally expect to get fluid playback at high bit rates from even low-end systems as an eventuality, but we aren't at that point yet. When it comes as a free feature void of problems, we will be ready. For now, there is no reason to demand it or shell out extra dough for it. For those netbook owners holding hardware one generation back (Diamondville), based on our experiences with the current generation of hardware, I am a bit weary recommending this as a possible upgrade solution to solve choppy video playback.