Decoding the Truth About Hi-Def Video Production
—A Hewlett-Packard HP 8710P notebook with a 2.2 GHz Core 2 Duo processor running Windows Vista and using Internet Explorer with the Flash Player 9.0.124.0 and Silverlight Player 2.0.30226.2. This was the newest computer of the bunch, as I acquired it in November 2007.
—A Dell Precision 390 with a 2.9 GHz Core 2 Duo running Windows XP and using Internet Explorer with Flash Player 9.0.124.0 and Silverlight Player 2.0.30226.2. This workstation sported the fastest available version of the Core 2 Duo processor when first released by Intel back in November 2006.
I’m fortunate to have a number of more powerful computers in my studio, but the Precision 390 has more than enough power to play any stream thrown at it (as did the HP 8710P), so testing with a more powerful computer made little sense.
After discussions with Towes and Waggoner, I used the following procedures for all tests: First, after navigating to the webpage, I stopped playback until the progressively delivered file was fully downloaded, then started playback, which eliminated the processor power required to retrieve and store the file from the remote site. This was necessary to normalize the results over all computers, which were connected to the internet using a variety of connections.
Before starting playback, I resized the browser so that the player was fully presented with no other windows above any portion of the browser. On the Windows systems, I played the file, then recorded the total CPU utilization every second for the duration of the file (about 93 seconds). If the utilization figure didn’t change from second to second, I recorded it separately each second (you’ll see what I mean if you try this). Then, I divided this by the number of samples to produce the average CPU utilization.
On the Macs, I set Activity Monitor to report once every 2 seconds, then captured and reported the average CPU utilization for just the browser. In addition to processor utilization, I also recorded whether the player dropped frames and/or audio during playback and made a rough estimation of actual frames per second.
On the Windows platform, H.264 always required less CPU horsepower to decode than VP6-S. On the Mac, the situation was reversed, and the VP6-S codec was the only option that played acceptably well on all computers at the 2Mbps, 720p configuration.
H.264 never required a higher CPU percentage than Silverlight, though the difference never mattered, since both codecs played at full frame rate on all Windows computers and delivered an unacceptable experience on the two Macs. That said, clearly the truism that H.264 requires greater CPU power to decode simply isn’t true.
Beyond this issue the disappointing Macintosh playback results were concerning, particularly on a relatively new Core 2 Duo-based computer. This shifted my focus to how to encode a file or produce a player that played smoothly on this platform, a question that I pursued on a codec-by-codec basis. Let’s start with H.264.
Optimizing H.264 High-Definition Video Files
As mentioned above, I produced all H.264 files using the High Profile, so my first thought was to try a file encoded using the Baseline Profile at the same 2Mbps rate. This worked well on the PowerMac, which increased the display rate from 6–7 fps to 25-plus fps, but had no impact on the iMac, which still lost synch. On the 8710P, the Baseline Profile actually increased the required CPU horsepower, which makes no sense, but there it is.
Companies and Suppliers Mentioned