With the advent of the Apple iPhone and its big, clear screen, the idea of using the morning commute to catch up on missed episodes of Lost became a lot more attractive. But video chews through a handheld’s battery much faster than, say, playing MP3s does. In the most recent issue of the Association for Computing Machinery’s Transactions on Embedded Computing Systems, researchers at the University of Maryland describe a simple way for multimedia devices to save power. In simulations, the researchers applied their technique to several common digital-signal-processing chores and found that, on average, it would cut power consumption by about two-thirds.
The premise of the technique, says Gang Qu, one of its developers, is that in multimedia applications, “the end user can tolerate some execution failure.” Much digital video, for example, plays at a rate of 30 frames per second. But “in the old movie theaters, they played at 24 frames per second,” Qu says. “That’s about 80 percent. If you can get 80 percent of the frames consistently correct, human beings will not be able to tell you’ve made mistakes.”
Unlike the movies in the old theaters, a digital video isn’t stored on reels of wound plastic; it’s stored as a sequence of 1s and 0s. That sequence is decoded as the video plays, and the decoding time can vary from one frame to the next. So digital media systems are designed to work rapidly enough that even the hardest-to-decode frames will be ready to be displayed on time.
Qu thinks that’s a waste of processing power. If the viewer won’t miss the extra six frames of video per second, there’s no reason to decode them. Lower decoding standards would mean less work for the video player’s processor, and thus lower power consumption.
The straightforward way to ensure a decoding rate of 80 percent would be to decode, say, eight frames in a row and ignore the next two. That approach–which Qu calls the “naive approach”–did introduce power savings in the Maryland researchers’ simulations. The problem is that such a system doesn’t distinguish frames that are hard to decode from those that are easy: if frame five is the hardest, the decoder will still plow through it; if frame nine is the easiest, the decoder will still skip it.
Qu and his colleagues wrote an algorithm that imposes a series of time limits on the decoding process; if any of the limits is exceeded, the decoding is aborted. “You set certain milestones,” Qu says, “and you say, ‘Okay, after this time I still haven’t reached that first milestone, so it seems this is a hard task. Let me drop this one.’” Using statistics on the durations of particular tasks, the researchers can tune the algorithm to guarantee any desired completion rate.