News & Views / November 1993

Intel's VDI Speeds Up Video, Miffs Microsoft

Tom R. Halfhill

Intel and Microsoft are at odds over a new way to dramatically accelerate Video for Windows. Although it's likely the two giants will resolve their differences before they cause problems for users, some of the smaller companies are scrambling to avoid getting trampled in the fray.

At issue is Intel's new Video Device Interface, a software extension to video drivers that roughly doubles the speed of software-only playback in VfW. A PC that plays VfW movies at a jerky 15 frames per second could attain true full-motion video at 30 fps at the same resolution without any additional hardware. Intel says VDI also improves overall picture quality and, once installed, is completely transparent to applications and users.

What's wrong with that? Plenty, says Microsoft. To achieve its magic, VDI bypasses the Windows GDI (Graphical Device Interface) and writes directly to the video controller's frame buffer. Although Microsoft acknowledges that direct access to the frame buffer is a legitimate way to accelerate software-only video playback, it argues that Intel's implementation is premature and overcomplicated. Microsoft says VDI conflicts with a similar mechanism it plans to introduce this year.

"The technique is not rocket science," says Carl Stork, Microsoft's director of Windows platform definition. "We could demonstrate our technology now, but we're not ready. We don't understand why Intel decided to announce the VDI specification [in late August]. They should have waited until we had the spec finalized and then made an announcement together."

According to Stork, codecs can't use VDI without understanding the frame buffer's internal structure, such as whether the buffer is arranged in banks and how large those banks are. Too complicated, he says: Codecs shouldn't have to know anything about the frame buffer but its starting address.

Likewise, the new VDI driver (which can be integrated with the video driver or installed as a separate DLL) can perform such functions as clipping and scaling. Redundant, says Stork: Those tasks are already handled by the GDI.

Intel contends that VDI is intended to complement the GDI, not replace it. The GDI is fine for regular graphics, says Intel, but it adds too much overhead to video playback and doesn't let codecs directly access the frame buffer in video's native format, YUV (luminance-chrominance).

Although Intel's announcement was joined by ATI Technologies, Brooktree, Matrox, Tseng Labs, Western Digital, and S3, a few vendors quietly avoided the press conference. A spokesman for one company that declined to participate told BYTE: "We don't want to be forced to choose sides between Intel and Microsoft. We're just a small company, and we can't afford to get stepped on by a pair of 800-pound gorillas."

Illustration: How Intel's Video Device Interface Works

1. Video for Windows sends the encoded data stream of compressed video to the video codec.

2. The codec queries the video driver to see if it supports VDI or checks to see if VDI is implemented as a separate driver. If there's no support for VDI, video is handled normally through VfW and the GDI. Otherwise, the codec queries the driver to see which VDI functions are supported (e.g., color-space conversion, color-keying, clipping, and scaling).

3. After determining which VDI functions are supported, the codec decompresses a video frame, opens a channel to the VDI/video driver, and hands off the appropriate tasks.

4. and 5. The VDI/video driver BitBlts the video frame onto the screen by directly addressing the video controller's frame buffer, bypassing the Windows GDI.

How Video for Windows Works Now

1. Video for Windows sends the encoded data stream of compressed video to the video codec.

2. The codec decompresses a video frame, converts YUV color to RGB, and sends it back to VfW.

3. VfW calls Windows GDI routines to handle such tasks as window management, clipping, and scaling.

4. The GDI sends the video frame to the video board's driver.5. The video driver transfers the BitBlts to the video controller's frame buffer to display the frame on-screen.


Copyright 1994-1997 BYTE

Return to Tom's BYTE index page