Original


Enhanced with Clean, 2x Resolution, Sharpen, and Auto Contrast

Behold my keyboard in all of its grody glory! Thankfully, the 320×240 video masks how dirty it really is, and not even vReveal can restore that. The improved contrast is the most noticeable enhancement to this video, but Clean, Sharpen, and 2x Resolution also make hard edges appear more defined. The bottom edge of the space bar (going from black to silver) looks noticeably better, as does the line below it where the wrist rest meets the keyboard. vReveal wasn’t able to restore some of the smaller symbols, although the larger lettering looks slightly clearer.

Our final clip is not one I shot myself. It’s a short 640×480 video of a dog chewing on a bone while lounging on the couch. What a life.


Original


Enhanced with Clean, Sharpen, Auto Contrast, Stabilize, and Fill Light 50%

Because of this original video’s resolution, we were unable to use the 2x Resolution algorithm. That’s all right, though, because this clip’s real problem is the dim lighting. There’s a large amount of noise in the picture, and the entire image is underexposed. Clean and Sharpen cleared up a lot of the artifacts, but the image was still too dark, even after Auto Contrast did its thing. To help, we turned to the Fill Light feature, which did a good job of bringing out detail in the foreground without completely blowing out the brighter background.

The final image has noticeably more detail than the original, though vReveal isn’t able to do anything about the extremely dark areas near the dog’s body—the source video just doesn’t have enough information. You might notice some slight cropping in the enhanced image, and that’s due to the Stabilize feature we used for this video. The resulting clip didn’t have subtle camera shakes anymore, although that came at the cost of some of the picture near the edges. That’s certainly a worthwhile sacrifice, though.

Once again, we’re left with a video that’s been improved just about as far it can be with software. To improve the scene any further, the video would probably need to be shot again with better lighting.

Performance considerations
Of course, one of the standout features of vReveal is its ability to leverage the power of Nvidia GPUs to improve performance. With that in mind, the question becomes: how does GPU-accelerated rendering affect performance?
vReveal provides an easily accessibly toggle for GPU acceleration, so benchmarking was surprisingly easy. We simply rendered our clips out to Windows Media Video format using the previously noted enhancements, and we measured encoding times with both GPU assistance and software rendering only. vReveal reported the final encoding time after each job, so there was no reason to break out the stopwatch.
Something to keep in mind is that these clips were all very short. The keyboard clip was only seven seconds, the comics video was nine seconds, and the billiards one was the longest at 10 seconds. Meanwhile, the clip of the dog lounging on the couch was the shortest of all at only five seconds long, but it had double the resolution and a higher frame rate. You’ll see shortly how that affected performance. The first three clips all used identical enhancement settings, so they provide an interesting look at how well CUDA can accelerate the same features across different clips. Let’s take a look at the MacBook test system first:

Color me surprised—whatever color that may be (maybe lilac). For the first three videos, GPU-assisted encoding increased performance by an average of roughly 33%. Moving on to the dog-on-the-couch video, we also see some interesting results. Despite being the shortest clip of the bunch, it takes around twice as long to render, likely due to the higher frame rate. Also, if you remember, the couch dog clip couldn’t use the 2x Resolution enhancement, and we had Stabilize and Fill Light enabled. Even with different settings and a higher-quality source video, our integrated GPU managed to provide an 18% boost over software rendering. That’s pretty impressive for a graphics chip with only 16 stream processors, especially when you consider the GeForce GTX 280 and 285 have 240 of those.

Now let’s see what sort of performance boost an inexpensive GeForce 8800 GT with 112 SPs provides over the 9400M:

Aplikasi Fixmymovie

Perhaps the first observation to get out of the way is that our two test systems’ CPUs performed almost identically. The real star of the graph, however, is the GeForce 8800 GT, which managed to decrease encoding times by around 75% across the board. Seven times the stream processors doesn’t net seven times the performance, and diminishing returns have to kick in somewhere. Nevertheless, it’s impressive to see how well CUDA scales from an integrated graphics solution to a fairly modest discrete graphics card.

I’m also relieved that users can reap noticeable performance gains in CUDA applications without having to break the bank. (A GeForce 9800 GT, which is essentially the same as the old 8800 GT, can be had for as little as $100 at Newegg.)

CPU usage

The Intel Core 2 Duo is no slouch in terms of rendering performance, so it’s impressive to see even a lowly integrated graphics chipset improve performance by such a noticeable margin. But what sort of impact does GPU-assisted video encoding have on CPU usage and multitasking in general?


Software rendering with 2GHz Core 2 Duo P7350

Software rendering with 2.13GHz Core 2 Duo E6400

With GPU assistance disabled, vReveal managed to max out both cores during video rendering, just as it should. Getting anything else done while encoding was a pain, and even web browsing was noticeably affected. Unless you go into the Task Manager and change vReveal’s priority (which can only help so much), it’s a safe bet you won’t be using your computer while it’s rendering movies.


GPU-assisted rendering with GeForce 9400M


GPU-assisted rendering with GeForce 8800 GTWith the GPU switch in vReveal flipped, the CPU usage graph turns out to be somewhat surprising. While GPU-assisted rendering helps complete the task faster, vReveal leaves plenty of CPU cycles unused, letting the user multitask with relative ease. There’s a spike when the file creation process begins, before CPU usage settles down to around 65-70% for the majority of the job.

You might notice differences in the load balance between Windows XP and Vista, with the XP machine more evenly distributing the work, while Vista places the brunt of the load on one core and uses the secondary core more sparingly. This is likely due to Vista’s new thread scheduler, rather than anything vReveal is doing, and it could result in a better multitasking environment.
Evidently, vReveal is using the GPU to do some of the CPU’s work instead of loading up both chips fully. Plenty of users will no doubt appreciate the ability to use their computer while it’s rendering, but I would love to see a high-performance mode that would not only use the GPU for encoding, but also maximize CPU cycles, as well. That assumes, of course, that fully utilizing both the CPU and GPU at the same time could substantially improve rendering times.
Conclusions
MotionDSP has definitely brought an interesting product to market in vReveal. Current mobile video devices certainly produce low-quality content, and by offering a stripped-down version of its enterprise tools, MotionDSP gives users access to video enhancement technology that would otherwise be out of their price range. MotionDSP also managed to package vReveal into a simple, straightforward user interface. And there’s no question that the technology works—videos captured from low-quality sources look better after being run through the app.
The software’s limitations are a bit disappointing, though. The resolution cap on the product’s most compelling feature—the 2x Resolution filter—is a major handicap that could prevent many users from getting the results they desire. Old camcorder videos in standard-def format cry out for this sort of enhancement, but that wedding video probably won’t benefit from vReveal’s best filter—unless it was shot on a camera phone, which raises all sorts of other personal issues. Beyond that, the restriction of vReveal’s remaining image enhancement features to SD video really limits its relevance to the short term. Even camera phones are moving to resolutions of 640×480 and beyond, while YouTube (vReveal’s primary video sharing destination) already supports high-definition content. And most of those other filters are already available in mainstream video editing suites.
Bottom line, vReveal’s two biggest virtues are its almost-magic 2x Resolution filter and its speedy GPU-based video rendering. Those features, along with its batch-processing capabilities, could make it a decent addition to a video editing toolbox that already includes a full-featured program like Premiere Elements or iMovie. In light of its limited role and the resolution caps involved, though, the $49 price of entry seems a little high to me. MotionDSP already has plans for an enhanced version of vReveal with higher-resolution video support, but as one might expect, that will come at an added cost. The higher price tag could put vReveal into direct competition with all-purpose video editing suites, which again seems a little steep for a limited-use consumer application.
As for Nvidia’s CUDA, there’s no question GPU optimization can yield performance gains in the right applications. Of course, since this is image processing, it’s not very far afield from the GPU’s original mission. Perhaps the biggest surprise for us was the extent to which an integrated graphics chipset like the GeForce 9400M can improve performance over a dual-core CPU alone. This reality could open the door to CUDA (and, in the future, OpenCL) applications on a variety of entry-level computers. And a mid-range card like the GeForce 8800 GT or 9800 GT can provide an even more substantial boost in CUDA applications. We’d like to see more of this sort of thing soon, please. For now, though, we’ll have to get by with the handful of apps like this one that demonstrate GPU computing’s potential.