SoftDVD and the Savage3D


Purpose

The Savage3D was probably one of the more promising yet underrated agp graphics chips for its time. The ATI Rage Pro AGP, SiS6326, and Chromatic MPACT2 delivered quality DVD-acceleration, but mediocre 3D-acceleration. The Savage3D was the only chip of 1998 to combine quality 3D-graphics and hardware DVD-acceleration.

Savage3D overview-

Since S3 has done a good job writing up some white papers on the Savage3D's feature set, I won't repeat them here. Go read them over at S3's site. Here are the Savage3D's really cool unadvertised features:

About the only feature missing is a planar-YUV (YV12) surface mode. Why S3 left this out is beyond me, but hardware motion-compensation is more important anyway, and supported, for software DVD-playback.
The 720x480 and 720x576 video modes are ideal for DVD video. Playing a DVD at these resolutions can eliminated the final scaling (resizing) step of DVD-video playback. Unfortunately, the current S3 Win95/98 reference drivers don't support TV-out in either 720 mode.
Most of today's video chips offer the user some kind of color-control. The Savage3D offers the standard gamma adjustment, and a YUV color-control just for video playback! The YUV-control only works on overlay surfaces, so it won't work under all circumstances.
The "back-end scaler" refers to some hardware I'll discuss in the future. For now, just think of it as a secondary rendering method for video applications. If the overlay fails for whatever reason, an application can fall-back on the BITBLT engine to perform color-space conversion and scaling. Only a few video-chips support both overlay surfaces and BITBLT/YUV - ATI Rage family, Cirrus GD-5465AGP, Matrox G200, and S3 Savage3D support both for sure!
As for video scaling (resizing the playback window), some cards got and it and some cards don't. The ATI Rage Pro, Matrox G200, and S3 Savage3D all have "seamless" scaling. You can stretch the playback size from 1.0X to any arbitrary zoom factor, and the scaling is nearly continuous from 1.0X to that factor. There are no alternating "fat pixel/skinny pixel" patterns; these are signatures of poorly implemented scaling. With the Savage3D, the only "artifact" is an unavoidable reduction of sharpness (due to the blending filter.) The Intel i740, RivaTNT both have "below-average" scaling qualities. The i740 has no Y-interpolation whatsoever, whereas the TNT's scaling algorithm seems to suffer from the "fat pixel/skinny pixel" artifact.
(*I have not seen a RivaTNT firsthand; I am merely citing user reports from usenet.)


Savage3D motion compensation and softDVD

  1. What does hardware motion compensation do for DVD playback?
The term 'motion compensation' refers to a specific step, actually one of the last ones, in MPEG-video decoding. MPEG-encoding predicts motion from frame to frame, encoding its predictions in the form "motion vectors." The decoder performs the reverse operation, using the vectors to reconstruct the present to-be-displayed frame from previously decoded frames. Although it’s a relatively straightforward operation, it’s very time consuming: VGA adapters with hardware motion-compensation are supposed to save 30-40% CPU processing bandwidth, just from accelerating the motion-compensation process.
Hardware motion compensation makes softDVD playback possible on P2-266 systems. Here's a little digression: Some VGA chips are even more ambitious in their DVD-acceleration, offering IDCT (inverse discrete cosine transform) hardware. These chips are often distinguished from simpler motion-comp VGA chips by the label "MPEG-decoding." A VGA chip with "MPEG decoding" offers hardware motion compensation & IDCT at a minimum.

2) How does hardware motion compensation help DVD playback?

In MPEG2 video decoding, hardware motion-compensation saves 30-40% CPU time.
I've also noticed many softDVD decoders using reduced-precision video-decoding. *All * softDVD decoders sacrifice a little precision (compared to dedicated MPEG hardware) to gain the extra speed; but some softDVD programs hide the lost precision better than others. XingDVD's software engine does a horrible job with motion-compensation. MPEG sequences played with Xing suffer a lot of "macroblock jitter"- incorrect placement of macroblocks within a frame. Try comparing an MPEG-1 file using Mediamatics DVD Express and XingDVD. The playback through XingDVD looks much subjectively worse. Since dedicated hardware for motion compensation replaces software motion-compensation, video quality can be tangibly improved. XingDVD's jitter disappears when run on a Savage3D system.

Brief reviews of softDVD players which *support* the Savage3D:


XingDVD 2.03 (with PAL patch)

Software engine
In its current release (2.03), XingDVD supports just one DVD-accelerated video card: the S3 Savage3D AGP. There is no control to disable the built-in MCS3 routines, but disabling the board's AGP functions (from the Drectx6 control panel applet) effectively disabled MCS3. As expected, XingDVD drops quite a few frames. (This is on my AMD K6/2 @ 350MHz, FIC VA-503+, 80MB EDO.),
Even without close observation, the video-quality is obviously flawed. Ever since the early days of XingMPEG, Xing software-decoders have exhibited some motion-jitter. To my surprise, XingDVD still has not fixed this annoyance, and DVD-playback suffers from the same jitter (not to be confused with interlace-jitter) that plagued XingMPEG. I suspect the jitter is a trade-off between video quality and decoding speed. The jitter can best be described as misplacement of picture blocks from frame to frame. For example, a stationary camera shot should not exhibit any background motion (the background elements do not move from one frame to the next.) Playing the sequence through XingMPEG/XingDVD reveals some background elements to "wander" +/- 1 pixel.
For interlaced MPEG2 content, XingDVD's BOB deinterlacing looks incorrect. When BOB is active, the playback appears to be cut into half-vertical resolution. No big deal, since all the rest of the players (except Cinemaster) mess up BOB the same way.
On the plus side, XingDVD seems to be the only software-player which correctly alpha-blends subpictures. Subpictures are found in navigation menus, subtitles, and other parts of the movie where the player overlays digital-text/graphics over DVD-video.
S3-accelerated engine (Savage3D AGP)
XingDVD 2.03 supports the Savage3D's motion-compensation and supicture alpha-blending. When using S3-acceleration, video performance and quality are improved. Still, the S3-acceleration isn't fast enough, because every movie I tried exhibited what I'll call "video pumping." This artifact is best described as an inconsistent frame-rate. Instead of the playback frame-rate uniformly dropping frames on a periodic basis, the engine seemed to speed-up, then slow-down, oscillating between smooth and jerky playback. It's as if the rate-control was broken. This pumping was not present in Xing's software-engine; there the frame rate was slow but consistent.
The pumping only happens with DVD-movies, and is probably related to my slow test PC (K6/2.) XingDVD has no trouble with unprotected VOB files; playback from hard-drive is flawless. I suspect the CSS decryption algorithm steals a lot of processor time. (Mediamatics DVD Express does not have this pumping artifact.)
Furthermore, XingDVD's video decoder offer settings to control deinterlacing. The user can enable or disable hardware deinterlacing, which is a must for video-sourced (30fps) content. On movie content that is not progressive-scan (24fps), deinterlacing eliminates weave-artifacts.
Though not the first to support S3's motion compensation, XingDVD is the first to offer S3-acceleration through extends the Directshow render filters. You can actually play mpeg2 and vob files from Windows Media Player, with S3-acceleration! The version of DVD Express I evaluated did not offer S3-acceleration through Directshow.
The only flaw, if it can be called one, is that MPEG1/VideoCD playback still uses the software-engine
Minor glitches
In 720x480 mode, zooming to full-screen still left a window frame around the border of the screen. Restoring and re-zooming to full-screen sometimes fixes this problem.
The subpicture alpha blending needs some work. On some movie discs, menu highlights simply disappear. On other titles the highlights are incorrect (not blended.) I'm using my Creative DXR2 decoder card as the reference standard.


Mediamatics DVD Express (Build 4.00.010 region-selectable)

Mediamatics does not sell DVD Express to end-users, so you can only acquire the software if its bundled with your video card (Hercules Terminator Beast, Acer PA-70.)
Unlike XingDVD, Mediamatics's Directshow filter does not support S3's specific features. So if you want to play VOB files through Windows Media Player or the Win98 DVDPlayer, you'll need to pick a different player. But under Win95, the application installs MCI drivers for Media Player, which do support the Savage3D. I could only play mpg, VideoCD (dat), and vob files with Mediamatic's drivers. None of the MPEG-2 streams would play through DVD Express (either through Media Player or the navigator.)
The interface is rather stripped down.
Software-only decoding
My eyes may have been playing tricks, but I swear DVD-Express's output exhibits a small amount of jitter. The software-decoder seems to misplace macroblocks, but not nearly as much or often as XingDVD's software decoder. Playing extremely high bit-rate, motion-intensive scenes causes video-decoding to completely break-down : portions of the screen flash different solid colors. The player does use triple-buffering when possible.
There are no user-controls for deinterlacing. Mediamatics automatically decides the "best" deinterlacing mode. BOB-mode deinterlacing does not work properly: the deinterlaced video is half-vertical resolution. XingDVD and PowerDVD do no better, however.
S3 accelerated engine (Savage3D AGP)
Performance wise, DVD Express outperformed Xing 2.03. DVD Express showed none of the occasional pauses that plagued Xing2.03. Unfortunately, DVD Express insists on resizing the playback window to their "proper aspect ratio." This is indeed annoying since I generally switch to 720x480 or 720x576 prior to launching my DVD programs. I can disable DVD Express's aspect-ratio lock, but opening a new disc causes DVD Express to reinit the playback window, resizing it during the process. I can of course manually resize the window, but I have to "guess" the dimensions, since unlike Xing, DVD Express offers the user no easy way to restore the window's default size.
The software-decoder still handles VideoCD/MPEG1 playback. DVD-Express also supports the ATI adapters, which I could not test.
Minor glitches
As with XingDVD, DVD Express doesn't implement subpicture alpha blending correctly. On some movie discs, menu highlights simply disappear. On other titles the highlights are incorrect (not blended.) I'm using my Creative DXR2 decoder card as the reference standard. Interestingly, some menus display properly on DVD Express, but not XingDVD, and vice versa.
DVD-express installation script sets the software-decoder for quarter-resolution (352x240.) Why the h*ll would Mediamatics do that?!? Accelerated playback (ATI, S3) is always full-resolution. I edited the installation script file to restore full-resolution decoding, and re-enable YV12 overlay support. I have no clue why these items would not be the default settings.


PowerDVD 1.30

Cyberlink's is a Taiwanese based PC-multimedia software company. Their products are well circulated in Asia, but not known here in the United States. PowerDVD is Cyberlink's softDVD player. Unlike most other software DVD players, PowerDVD works with any Directdraw compatible VGA card, even those without overlay support. Powerdvd 1.30 also supports the the SiS6326 and Savage3D; owners of either get hardware-assisted DVD playback.
Software engine (systems without SiS6326, Savage3D)
PowerDVD's software engine runs a bit slower than Cinemaster or XingDVD. Like I said earlier, PowerDVD works with more VGA cards than the its competitors, but the price paid is compromised performance. PowerDVD is the only player to render to not use double-buffering, leading to "video-tearing." PowerDVD's software decoder also mangles the bob deinterlacing mode. On my Savage3D and Trident AGP, interlaced-DVD content is deinterlaced improperly. Odd/even fields are always at the same vertical pixel offset, giving the video an apparent vertical resolution of 1/2.
And finally, PowerDVD 1.30 and earlier do not seem to downmix discrete-channel surround (AC3 5.1) into Dolby-compatible surround. The downmixed audio is plain 2-channel stereo.
S3-accelerated engine (Savage3D AGP)
As I'd expect, S3's motion-compensation (S3MC) substantially improves frame-rate. But in addition, playback quality is better in two ways: double-buffering (no video tearing), and hardware bob-deinterlacing. Overall , PowerDVD 1.3's MCS3 performance is slower than XingDVD or DVD Express. Though none of the three players would play perfectly smooth DVD-video, PowerDVD is the jerkiest. Video pumping is present here, and worse than XingDVD. The video will run smoothly for roughly 1/3 of a second, jerk, run smooth again, etc. The navigator-portion also needs work; it crashed when I tried to play Postman, Dances with Wolves, and Lost in Space. As with XingDVD and DVDExpress, hardware-acceleration only seems to work on MPEG2/DVD content. VideoCD and MPEG-1 content still play through PowerDVD's software-engine. The software-engine is the worst looking of the DVDplayers in this roundup, due to video-tearing artifacts.
Minor glitches
Creative DXR2 owners should take note! PowerDVD is incompatible with Creative's UDF device driver. If you bought the DXR2 kit, the PC-DVD player installs a dxr2udf.vxd driver. In order to use PowerDVD, you must remove dxr2udf.vxd from your /windows/iosubsys directory.


PowerDVD 1.5 (evaluation)

Cyberlink has really overhauled the old PowerDVD 1.x engine. 1.5 adds a host of new features including SIMD (3D-Now and IA), more hardware support for VGA adapters (ATI & S3 motion compensation), improved sound quality for AC3 5.1 audiotracks (Directsound3D virtualzation, A3D virtualization, Dolby surround downmix to stereo, and AC3 output via SPDIF), and a generally improved engine. Cyberlink has improved the performance of S3MC, though it is still not quite full 30fps on my K6-2/FIC setup.
Software engine (systems without SiS6326, Savage3D)
Unfortunately, PowerDVD 1.5 still adheres to a non-buffered drawing engine, causing a great deal of "video tearing" (try playing Quake2 with VSYNC turned off.) Every other software DVD player on the market uses some form of overlay buffering. (SoftDVD 1.x and WinDVD use double buffering, XingDVD uses triple-buffering, and Cinemaster uses 4/5-buffering.)
AC3 5.1 audiotracks are properly downmixed to Prologic-stereo. According to a SB-Live owner, the LFE (".1" channel) channel is not rendered, meaning deep-bass effects will not be heard from PowerDVD. Owners of the quad-channel soundcards (Creative SB-Live, Diamond MX300) will rejoice to PowerDVD's EAX/A3D audio support. I was not able to test these features.
S3-accelerated engine (Savage3D AGP)
PowerDVD 1.5's MCS3 code is a bit faster, but still not quite full-30fps. Actually, I was not able to determine the source of the speed-up. The smoother playback could very well be due to 1.5's 3D-Now! support. MPEG1 and VideoCD files still go through the software-engine.


Other software DVD players

These DVD players don't specifically support the Savage3D, but they are all compatible with the Savage3D.

Quadrant International Software Cinemaster

Cinemaster98 - Works with Savage3D, but there is a minor but very annoying problem. Due to Cinemaster's non-standard way of using overlay surfaces, bilinear filtering is turned off for Cinemaster's video display. This makes scaling the playback window very, very ugly. Cinemaster allocates 5 overlay surfaces with the format YUY2. With the Yamaha OPL3Sax ISA sound card, playback is jerky at PC-quality or Full-quality. With the Aureal3D Vortex8820 PCI, playback at PC-quality is almost full-24fps, making Cinemaster the only pure-software decoder in this round-up to approach full-motion playback.
 ATIDVD 3.1 - Although ATI only provides ATIDVD 3.x to its customers, the software can be made to work with non-ATI hardware. Getting ATIDVD 3.x to run properly on the Savage3D requires two registry edits to ATIDVD's registry-keys : EnforceFlipSync and AlwaysNeedsColorKey. Both should be enabled (set to 00000001)
Since ATIDVD is just Cinemaster with a new front-end, Cinemaster's excellent performance is here as well. So far, ATIDVD 3.x is the only softDVD player to fully decode an AC3 5.1 audio stream, including the LFE channel. PowerDVD, WinDVD, and XingDVD ignore the LFE channel.

Cyberlink PowerDVD

PowerDVD 1.22A - PowerDVD1.22A came bundled with my Atrend AGP Savage3D. Atrend made a bad choice, as this version doesn't support Savage3D, and playback performance is horrible on anything less than a 450MHz PII/CeleronA. Those of you with "regular" VGA cards (i.e. those with no DVD acceleration) should avoid this player.

Intervideo WinDVD 1.0

Intervideo has just joined the softDVD fray with its WinDVD program. WinDVD 1.0 seems to be lacking in speed, but is loaded with features. The player has video controls for brightness, contrast, and even hue/saturation. The player's audio support looks promising, with 4/6-speaker support and SPDIF output. These don't seem to work in v1.0, but it's nice to see that softDVD vendors are finally paying attention to high-fidelity audio.
The software engine
According to Intervideo, WinDVD 1.0 is supposed to exploit motion-compensation on the Rage Pro AGP and Savage3D. I could not enable MCS3 support on my AGP Savage3D, and I was not able to test the MC12 (ATI) support. Thus, I was stuck with pure software decoding.
The quality of the decoded video is very high. Unlike most of the other players, the playback window remains at 720x480 until the user changes it to something else. This is nice for test-purposes (image sharpness), though of course anamorphic movies come out squished. In addition to the color/contrast controls, WinDVD offers "software scaling." The software-scaling is mainly for owners whose VGA-cards don't resize video very adeptly. When used, WinDVD's smooth-scaling resizes and filters the video in software.
Also of interest is WinDVD's "software-bob" deinterlacing mode. Since some DVD-content is sourced from interlaced video (30fps), the video must be deinterlaced prior to display on a PC monitor. WinDVD's software-bob algorithm merges two adjacent "fields" (half-frames), much like a crossfader would combine two slides in a slide projector. The perceptual result is a simulated motion-blur, and to me it's more pleasing than the standard WEAVE deinterlacing method (which produces horizontal hair-line artifacts.) However the additional processing costs CPU time, and it's not quite how interlaced video is supposed to be displayed. Of course you can turn it off.
Like Cinemaster, WinDVD refuses to use YV12 (YUV planar) overlays. This is no cause for concern, as all YV12 capable VGA cards also support additional YUV-packed modes (like YUY2.) However WinDVD's video-decoder operates at a slight performance penalty compared to XingDVD or PowerDVD, both of which prefer YV12. Finally, WinDVD always uses double-buffering, unlike XingDVD and Cinemaster, both of which utilize triple-buffering when possible.
Triple-buffering offers tear-free buffer-swaps of page-flipping without the performance-penalty of double-buffering.

Zoran SoftDVD 1.x

To be added…


News

03/25/99 Added WinDVD v1.0 overview
03/19/99 Shortened the ATIDVD overview
03/07/99 Added PowerDVD 1.30 (S3-accelerated) review. Updated DVD Express notes.
02/27/99 Started this section.


Random Savage3D links

© 1999 03/25/99 liaor@iname.com

1