Tuesday, September 23, 2014
Search
  
Submit your own News for
inclusion in our Site.
Click here...
Breaking News
PlayStation TV Coming October 14th
Samsung Galaxy Alpha And LG G3 Vigor Coming from AT&T
EMC In Merger Talks With Other Companies: reports
HTC To Make Next Google Nexus tablet: report
MediaTek Unveils LinkIt Platform to Support Wearable and IoT Device Creation
Apple iPhone Sales Top 10 Million
VESA Puts DisplayPort Into New USB Type-C Connector
Corsair Unleashes Gaming RGB Keyboards, RGB Mice, and Headsets
Active Discussions
Yamaha CRW-F1UX
help questions structure DVDR
Made video, won't play back easily
Questions durability monitor LCD
Questions fungus CD/DVD Media, Some expert engineer in optical media can help me?
CD, DVD and Blu-ray burning for Android in development
IBM supercharges Power servers with graphics chips
Werner Vogels: four cloud computing trends for 2014
 Home > News > General Computing > Researc...
Last 7 Days News : SU MO TU WE TH FR SA All News

Friday, August 03, 2012
Researchers Streamline Coding For Image Processing


Writing graphics software gets much easier with a new new programming language for image-processing developed by MIT researhers.

Image-processing software is a hot commodity (Instagram,) while it is also going mobile, as more and more people are sending cellphone photos directly to the Web, without transferring them to a computer first.

At the same time, digital-photo files are getting so big that, without a lot of clever software engineering, processing them would take a painfully long time on a desktop computer, let alone a cellphone.

Researchers at MIT's Computer Science and Artificial Intelligence Laboratory (CSAIL) developed a new programming language called Halide. Not only are Halide programs easier to read, write and revise than image-processing programs written in a conventional language, but because Halide automates code-optimization procedures that would ordinarily take hours to perform by hand, they?re also significantly faster.

In tests, the MIT researchers used Halide to rewrite several common image-processing algorithms whose performance had already been optimized by seasoned programmers. The Halide versions were typically about one-third as long but offered significant performance gains - two-, three-, or even six-fold speedups. In one instance, the Halide program was actually longer than the original ? but the speedup was 70-fold.

One reason that image processing is so computationally intensive is that it generally requires a succession of discrete operations. After light strikes the sensor in a cellphone camera, the phone combs through the image data for values that indicate malfunctioning sensor pixels and corrects them. Then it correlates the readings from pixels sensitive to different colors to deduce the actual colors of image regions. Then it does some color correction, and then some contrast adjustment, to make the image colors better correspond to what the human eye sees. At this point, the phone has done so much processing that it takes another pass through the data to clean it up.

And that's just to display the image on the phone screen. Software that does anything more complicated, like removing red eye, or softening shadows, or boosting color saturation ? or making the image look like an old Polaroid photo - introduces still more layers of processing. Moreover, high-level modifications often require the software to go back and recompute prior stages in the pipeline.

In today's multicore chips, distributing different segments of the image to cores working in parallel can make image processing more efficient. But the way parallel processing is usually done, after each step in the image-processing pipeline, the cores would send the results of their computations back to main memory. Because data transfer is much slower than computation, this can eat up all the performance gains offered by parallelization.

So software engineers try to keep the individual cores busy for as long as possible before they have to ship their results to memory. That means that the cores have to execute several steps in the processing pipeline on their separate chunks of data without aggregating their results. Keeping track of all the dependencies between pixels being processed on separate cores is what makes the code for efficient image processors so complicated. Moreover, the trade-offs between the number of cores, the processing power of the cores, the amount of local memory available to each core, and the time it takes to move data off-core varies from machine to machine, so a program optimized for one device may offer no speed advantages on a different one.

Halide doesn't spare the programmer from thinking about how to parallelize efficiently on particular machines, but it splits that problem off from the description of the image-processing algorithms. A Halide program has two sections: one for the algorithms, and one for the processing "schedule." The schedule can specify the size and shape of the image chunks that each core needs to process at each step in the pipeline, and it can specify data dependencies ? for instance, that steps being executed on particular cores will need access to the results of previous steps on different cores. Once the schedule is drawn up, however, Halide handles all the accounting automatically.

A programmer who wants to export a program to a different machine just changes the schedule, not the algorithm description. A programmer who wants to add a new processing step to the pipeline just plugs in a description of the new procedure, without having to modify the existing ones. (A new step in the pipeline will require a corresponding specification in the schedule, however.)

Although Halide programs are simpler to write and to read than ordinary image-processing programs, because the scheduling is handled automatically, they still frequently offer performance gains over even the most carefully hand-engineered code. Moreover, Halide code is so easy to modify that programmers could simply experiment with half-baked ideas to see if they improve performance.

The researchers plan to discuss Halide at the Association for Computing Machinery's Special Interest Group on Computer Graphics and Interactive Techniques (Siggraph) conference next week in Los Angeles.


Previous
Next
SAP To Pay Oracle $306 Million To Avoid Trial        All News        ASUS Launches the Ultrabook S Series
SAP To Pay Oracle $306 Million To Avoid Trial     General Computing News      Nagoya University and Fujitsu Launch Field Trials of Technology to Detect Phone Scams

Get RSS feed Easy Print E-Mail this Message

Most Popular News
 
Home | News | All News | Reviews | Articles | Guides | Download | Expert Area | Forum | Site Info
Site best viewed at 1024x768+ - CDRINFO.COM 1998-2014 - All rights reserved -
Privacy policy - Contact Us .