Researchers at MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL) have developed a new programming language called Halide which claimed to make writing image-processing algorithms easier.

A new programming language for image-processing algorithms helps in writing codes which are shorter and clearer as well as faster.

The new programmes written though Halide will be easier to read, write and revise than image-processing programmes written in a conventional language, the researchers said.

Halide automates code-optimisation procedures helping reduce time that would have taken longer time to perform by hand, making the process faster.

During the test, the researchers at MIT used Halide to rewrite some common image-processing algorithms whose performance had already been optimised by programmers.

The researchers found that the algorithms written through Halide are about one-third as long but offered significant performance as much as two-, three-, or even six times speedups.

Halide project was led by Jonathan Ragan-Kelley, a graduate student in the Department of Electrical Engineering and Computer Science, and Andrew Adams, a CSAIL post doctoral fellow.

The researchers co-wrote the programme with MIT computer science professors Saman Amarasinghe and Fredo Durand and with colleagues at Adobe and Stanford University and they are planning to present a payer on Halide at graphics conference, Siggraph later this month.

Halide will simplify image processing in mobile devices, as more and more people are sending cellphone photos directly to the Web, without transferring them to a computer first.

A Halide programme has two sections which include the algorithms, and 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.

Halide programmes are simpler to write and to read than ordinary image-processing programmes, because the scheduling is handled automatically.

The codes can be easily modified so that programmers could simply experiment with half-baked ideas to see if they improve performance.

It can also specify data dependencies including the steps being executed on particular cores that will need access to the results of previous steps on different cores.

Once the schedule is prepared, Halide handles all the accounting automatically.

MIT Department of Electrical Engineering and Computer Science student Jonathan Ragan-Kelley said, when the programmer has the idea that he might want to parallelise something a certain way or use stages a certain way, when writing that manually, it’s really hard to express that idea correctly.

"If you have a new optimization idea that you want to apply, chances are you’re going to spend three days debugging it because you’ve broken it in the process," Kelley said.

"With this, you change one line that expresses that idea, and it synthesizes the correct thing."