This is the final installment in my series debunking Peter Gutmann's widely read and undeservedly cited paper on Vista content protection. (If you missed Part 1 and Part 2, go read them before you dive into this conclusion.)
Today, I want to deal head-on with one of the most common objections I get from commenters who can't believe that this widely quoted piece is so utterly and completely wrong about so many things. "He's just analyzing Microsoft documents," they say. "These are all Microsoft's words, and he's just pointing out their own flaws."
That's what Gutmann himself wants you to believe, but he's wrong, as I'll show in today's examples.
- Those Microsoft documents are mostly old. The "Sources" section at the end of the paper includes a Word document and three PowerPoint presentations, all authored around the time of the Windows Hardware Engineering Conference in early 2005, more than 18 months before Windows Vista was released to manufacturing. When Gutmann first published his paper to the Web in December of 2006, Vista had already been available as a free public beta for the better part of a year and was available to corporate customers in its RTM form. He added nearly 20,000 more words between December and June of this year. Yet there is no sign that Gutmann even tried to look at the actual product he was writing about.
- The quoting of Microsoft documents is selective to the point of dishonesty. In Part 2, I noted the distortions in Gutmann's discussion of the Windows Logo requirements for graphics cards. On the next page, I'll show you where he chopped out a sentence from the Microsoft documentation that completely contradicts his own argument. He's obviously counting on his readers not checking his sources.
- The Gutmann paper is not based solely or even primarily on Microsoft documents. In fact, example after example after example in Gutmann's paper are taken from secondhand sources and random reports of the "some guy with a web site says..." variety.
The biggest weakness of the paper is the complete absence of any attempt to try to reproduce these issues using the software and hardware he's writing about. Would you buy a travel guide to San Francisco written by someone who had never visited the city but instead had studied preliminary plans for some of its infrastructure and checked in on a few newsgroups to see what random people were saying about the Golden Gate Bridge? Me neither.
Anyway, with that as prelude, please allow me to introduce a stunningly audacious example of how to distort the truth by selectively quoting material.
If you believe that Gutmann is only using Microsoft's own words to damn Windows Vista, this item is for you. This is one of the most flagrant examples of outright dishonesty in Gutmann's entire paper. Allow me to set it up for you. Under the heading "Elimination of Unified Drivers," Gutmann writes:
To the system, HDMI audio looks like S/PDIF, a deliberate design decision to make handling of drivers easier. In order to provide the ability to disable output, it's necessary to make HDMI codecs deliberately incompatible with S/PDIF codecs, despite the fact that they were specifically designed to appear identical in order to ease driver support and reduce development costs. In fact the Windows Vista logo requirements explicitly state that “HDMI output cannot be shared with an S/PDIF output under any circumstances. All digital outputs must be independent”
Sorry for the interruption, but I need to point out that this is the full extent of the quote Gutmann chooses from the Microsoft document containing the relevant specs (complete with missing period). I've snipped out a couple of his sentences that go off on a tangent, but it's important to note here that he didn't quote the entire paragraph from the linked Microsoft document. We'll get to the part he left out shortly. Now back to Gutmann's paper:
But wait, there's more! In order to provide the audio channel for HDMI, some manufacturers redirect the not-OK S/PDIF into the OK HDMI. [the underlined text links to a page at Asrock.com that is no longer available] So even if you go out of your way to get premium content-capable hardware, Vista can still disable it even though it's supposed to be approved for premium-content playback.
Are we all on the same page? Gutmann says you can't redirect the S/PDIF output (it's "not OK") into the HDMI output (it's "OK") because evil Microsoft prohibits it as part of their plan for world domination through DRM. Although the link he provides is now dead, a little sleuthing at Asrock's site suggests that this June 2006 page, which contains descriptions of three motherboards containing "HDMI_SPDIF connectors," is the one he was referring to.
So now let's look at the part of the Microsoft spec he left out. I've used a yellow highlighter to call out the missing sentence in this screen shot of the original document; that same snippet is highlighted in bold in the quoted block below:
HDMI output cannot be shared with an S/PDIF output under any circumstances. All digital outputs must be independent. It is acceptable to use the S/PDIF output to feed an HDMI capable graphics adapter however the pin widget must be exposed as an HDMI Audio output (using the correct pin configuration values) and cannot at the same time function as an S/PDIF output.
In other words, Microsoft's specs directly contradict what Gutmann wrote. So what's really going on? Once again, Gutmann is confused. The references to S/PDIF in Microsoft's specs are about the physical output connectors on a PC. As the Wikipedia definition of S/PDIF notes, this nomenclature can refer to either of two specific types of connectors, coaxial and optical (TOSLink):
S/PDIF was developed from a standard used in the professional audio field, known as AES/EBU which is commonly used to interconnect professional audio equipment. S/PDIF remained identical at the protocol level, but changed the physical connectors from XLR to either electrical coaxial cable (with RCA jacks) or optical fiber (TOSLINK, i.e., EIAJ Optical), both of which cost less and are easier to use.
The audio subsystem in Windows Vista was completely rewritten, moving it out of the kernel and into user space. That made it possible for cool new features like independent control of sound sources. It also led to a design decision to allow sound to go to a single physical output. Here's a screen capture of the Sound Control Panel on my Windows Vista system:
See how HDMI and SPDIF Out are listed as separate outputs? That's because they're separate physical connectors. The green check mark means I currently have stereo speakers plugged into the analog output jack. As an alternative, I could connect a TOSLink cable to the optical output. Or, if my receiver or TV supported audio through HDMI, I could connect the SPDIF connector to the HDMI connector, choose HDMI as the playback device, and my sound card output would then travel over the same physical HDMI cable as the video output. The point is that I get to choose one and only one of those outputs at a time. Here's how Microsoft's Larry Osterman explains it:
Before Vista, audio devices were enumerated (more or less) by the KSCATEGORY_AUDIO PnP devinterface that exposed a Wave filter.
The big problem with this is that it doesn't even come close to representing how users think about their audio solution (audio adapter, USB audio device, motherboard audio chipset connected to output speaker and microphone jacks). I'm willing to bet that 90% of the people reading this post have no idea what a "KSCATEGORY_AUDIO PnP devinterface that exposed a Wave filter" is. But every single one of you knows what a speaker is. [...]
For Vista, what we've done is to define a new concept called an "audio endpoint". An "audio endpoint" represents the ultimate destination for audio rendering. It might be the speakers on your local workstation, it might be speakers on the workstation of a remote machine running an RDP client, it might be the speakers connected to the receiver of your home stereo, it might be the microphone or headset connected to your laptop, it might be something we've not yet figured out.
The key thing about an audio endpoint is that it represents a piece of plastic, and NOT a PnP thingamajig. The concept of endpoints goes directly to the 3rd set of problems - troubleshooting audio is simply too hard, because the objects that the pre-Vista audio subsystem referenced dealt with the physical audio hardware, and NOT with the things to which users relate.
This is a big switch from the Windows XP audio model. It caused big headaches for anyone trying to design audio devices and rewrite drivers to make them work with Windows Vista (many of those headaches have been resolved with updated drivers, but some remain). It also confuses people who don't have any hands-on experience with Vista's new audio subsystem and are trying to force-fit what they read in the specs into the older XP way of making sounds work. But when you actually get your hands on a system containing all the hardware pieces, it makes perfect sense.
Next -->ERROR #10: CAN A WINDOWS PC DELIVER 1080P? YES!
When you write a technically inaccurate sentence that confuses the capabilities of digital output connectors, no one gets hurt. But it's a completely different matter when you make definitive and provably wrong statements about the capabilities of a company's entire product line, with reckless disregard for the truth. That sort of statement gets close to defamation, and it's especially unfortunate for readers who make buying decisions based on faulty information. And yet that's exactly what Gutmann does in this passage about Nvidia's entire line of video cards:
Only in mid-2007 have the first properly HDMI/HDCP-capable video cards finally started to appear, but even then no-one has been able to identify any Windows system that will actually play HD content in HD quality, in all cases any attempt to do this produced either no output or a message that it was blocked by content protection. Even nVidia's latest and greatest GPU, the G80, can't output 1080p HD video, because once you enable HDCP (which is required by Vista for HD-DVD or BluRay playback), you're limited to 720p resolution. nVidia's older G7x line also has this problem, as does ATI's R5xx. In fact the only GPU that appears to support full-resolution HD playback, requiring dual-link HDMI, is ATI's only-sort-of-released R600. While it's not possible to prove a negative in this manner, it's certainly an indication that potential buyers could be in for a shock when they try and play full HD-quality premium content on their shiny new Vista PC. [emphasis added]
In fact, almost nothing in this paragraph is correct, and the one statement that is technically true has nothing to do with HD content. That's what happens when you base your entire argument on two (incorrect) blurbs from The Inquirer.
No one has been able to identify a Windows system that will play HD content in HD quality? Countless reviews of PC hardware over the past year say otherwise. In November 2006, PC Magazine praised the Toshiba Qosmio for its "exquisite" playback of HD DVD discs at 1080p using an Nvidia GeForce Go 7600. (PC Pro UK offers similar praise of the "fantastic" 1920x1200 [1080p] picture in a more recent review of the this year's Qosmio, equipped with Windows Vista Ultimate.) This CNET review published in February 2007 described "outstanding Blu-ray video quality" at 1080p on a Velocity Micro PC running Vista Home Premium. Laptop Magazine's July review of a high-end Sony Vaio (also equipped with an Nvidia Go 7600 GPU) praises its "1080p eye candy," which the reviewers watched on a 32-inch TV over an HDMI connection. I've been watching Blu-ray and HD DVD discs at 1080i resolution (maximum available on my set) on a Dell XPS 410 that I purchased last December. With the right hardware, you can get world-class HD performance out of a computer running Windows Vista.
Nvidia cards are limited to 720p resolution? That's absurd. You can see for yourself with a quick peek at the Nvidia Control Panel, which reflects the capabilities of the display to which it's connected. On a 1280 x 1024 monitor, I get 720p as my only HD option. But when you connect an Nvidia card to a large-screen TV with a maximum resolution of 1080p, you get the following:
And just to make sure, I sent an e-mail to Patrick Beaulieu, Nvidia's Product Marketing Manager, PureVideo Technology. He followed the link to Gutmann's paper and confirmed for me that the information is incorrect. He confirmed that older 7-series cards like the 7600GS and the newer 8400/8500/8600 cards can all deliver 1080p output to an HD display. As for Gutmann's specific criticism of the G80 GPU, he told me:
NVIDIA GeForce 8800 (G80) series graphics cards support 1080p with HDCP. Only higher resolution displays capable of 2560x1600 like the Dell 3007wfp require dual-link DVI connections. Newer cards, like the NVIDIA GeForce 8600 GTS support HDCP over dual-link DVI.
ATI cards aren't stuck at 720p, either. You can get full-strength HD output with a Radeon X1600 Pro or better.
And the dual-link DVI connection is a side trip into irrelevance. The only monitors that currently require dual-link DVI connections are expensive and rare 30-inch models like those made by Dell and Apple. Dual-link connections are required to drive these monitors at their high resolution for use with PC applications. But for HDTV, a single-link connection will do.
It will be interesting to see how long it takes for this error to be corrected.
Next -->ERROR #11: WHY ISN'T D-CINEMA SUPPORTED ON YOUR PC?
With the exception of entry-level designs sold with very cheap PCs, the vast majority (sorry, couldn't resist) of current video card designs support hardware decompression of some or all of the following HD codecs: H.264, MPEG-2, and VC-1. Every commercial Blu-ray or HD DVD disc available today uses one of these codecs, as do most downloadable HD files and most cable and satellite systems. That's not good enough for Peter Gutmann, who writes:
The inability to perform decoding in software also means that any premium-content compression scheme not supported by the graphics hardware can't be implemented. [...] This is particularly troubling for the high-quality digital cinema (D-Cinema) specification, which uses Motion JPEG2000 (MJ2K) because standard MPEG and equivalents don't provide sufficient image quality. Since JPEG2000 uses wavelet-based compression rather than MPEG's DCT-based compression, and wavelet-based compression isn't on the hardware codec list, it's not possible to play back D-Cinema premium content [...] Because all D-Cinema content will (presumably) be premium content, the result is no playback at all until the hardware support appears in PCs at some indeterminate point in the future.
Those bastards! You mean I won't be able to put a D-Cinema disc in my PC and play it back? How dare they?
Ahem. Before we all storm Redmond with pitchforks and torches, it might be useful to take a closer look at the Digital Cinema Initiatives (DCI) specification. Movies that are compressed using this codec are designed for playback in theaters. Not home theaters, but the actual kind where you buy a ticket and sit down in a chair with a cup holder. The cost of this cinema-grade playback equipment starts at $35,000 per screen, according to recent estimates I've seen, and annual maintenance costs add at least another 10 grand to that cost. It's not intended for use in PCs. It's not designed for use in your living room or your office or your den. And its inclusion in this paper is yet another indication that Gutmann has no clue about many of the technologies he's trying to talk about.
ERROR #12: THE EMBARRASSING PRODUCT RECOMMENDATION
I saved this item for last because it illustrates with stunning clarity the single biggest problem in Gutmann's analysis. Instead of relying on hands-on experience, he reads white papers and spec sheets and then writes definitive conclusions as if his words were being etched on stone tablets. Like this one:
Compare [a Media Center PC] to something like the MediaGate 350, a Korean-made player that's small, silent, fits in with current A/V gear, and plays back HD video at full 1080p resolution over a DVI connector, with no DRM encumbrance anywhere in sight. This player, just one example of many currently available, is everything that a Media Center PC isn't: Inexpensive, silent, small, fits into the living room, and non-crippled.
He positively gushes over this little device. His description was so compelling that I was tempted to go out and buy one just to see how it works. And if you're willing to buy based purely on specs, then be my guest. But first, maybe you want to do what I did and read this lengthy review (published three months before Gutmann wrote his paper) by someone who used the product extensively and called it "multi-talented but multi-buggy." Look in particular at the test results.
- "System froze (multiple tries)" trying to play 1080i MPEG file
- "UI did not recognize [QuickTime HD 720P-1080P] file"
- "Player freezes up" with M4A Apple Lossless music files
When the reviewer tried to play back a DivX-HD disk at 720p over a wired network, the videos were "choppy and unwatchable." An HD MPEG2 file was similarly "slightly choppy and not comfortable to watch." The reviewer concludes:
[A]nybody looking to use this device as a day-to-day media player will most likely be disappointed in it. The wait times alone would frustrate even the most patient of people. [...] Setting the MG-350HD up was not difficult enough to require a degree in "geek", but it was definitely beyond the skill level of a novice user. The manual will not help the novice much either. Its instructions assume that the user has a basic knowledge regarding networking, computers and electronics. People who are intimidated by programming their VCR will likely be completely baffled by the setup instructions.
The moral of the story: Never, ever recommend a product based solely on its specs. There's no substitute for hands-on experience. Come to think of it, that's also good advice for someone who wants to write a paper about the workings of content protection in an operating system designed for use with sophisticated consumer electronics gear. Your arguments and your evidence will be a lot more valid if you actually try them out in the real world.
I'm just sayin'.
That concludes the three-part series focusing specifically on the errors in the Gutmann paper. I've got one more piece left to write, however: a detailed explanation, in Q&A format, of the real story about Windows Vista content protection. Stay tuned.