Logotipo do Site Inovação Tecnológica





Informática

Programas gráficos mais fáceis com linguagem livre

Redação do Site Inovação Tecnológica - 06/08/2012

Linguagem de código aberto facilita escrever programas gráficos
O tratamento de imagens, mesmo em funções disponíveis com o apertar de um botão em uma câmera ou celular, requer um processamento pesado, que é difícil de programar.
[Imagem: Christine Daniloff]

Gráficos abertos

Engenheiros do MIT, nos Estados Unidos, criaram uma nova linguagem de programação otimizada para a criação de algoritmos para processamento de imagens.

O código resultante não apenas é mais claro, facilitando a manutenção e a reutilização, como também resulta em um executável mais rápido.

A nova linguagem, chamada Halide, tenta imitar ao máximo a linguagem convencional, para facilitar a programação, a revisão e a correção do código.

Isto significa que suas funções automatizam a otimização de código necessária quando o programa é feito em outras linguagens. Na média, essa otimização automatizada resulta em programas significativamente mais rápidos.

A maior vantagem, porém, é que a nova linguagem para programação gráfica não apenas é gratuita, como é de código aberto.

Otimização de código

O teste da nova linguagem não poderia ser feito de outra forma: os criadores da Halide reescreveram vários algoritmos de processamento de imagens que já foram extensivamente otimizados por programadores experientes.

O código escrito em Halide é cerca de 30% maior - em termos de linhas de código - mas apresentou ganhos em velocidade de processamento que variaram de duas a seis vezes em relação ao algoritmo original. Em um caso específico, o código em Halide gerou um executável 70 vezes mais rápido.

Uma das maiores vantagens da nova linguagem é que ela cuida automaticamente de paralelizar o processamento para cada plataforma - um processador multicore de um PC ou o processador de um smartphone, por exemplo.

Agenda de processamento

O programa em Halide tem duas seções: uma para os algoritmos, e outra para o "agendamento" do processamento.

Essa agenda pode especificar o tamanho e o formato dos blocos da imagem que cada núcleo precisa processar em cada etapa, além das dependências de dados - por exemplo, os passos executados em um determinado núcleo precisarão acessar os resultados do processamento realizado em outro núcleo.

Uma vez estabelecida a agenda, o compilador cuida do resto. Se for necessário exportar o programa para uma plataforma diferente, basta refazer a agenda, sem precisar mexer no algoritmo.

Jonathan Ragan-Kelley e Andrew Adams, os criadores do Halide, já disponibilizaram o código da nova linguagem no endereço http://halide-lang.org.

Seguir Site Inovação Tecnológica no Google Notícias





Outras notícias sobre:
  • Software Livre
  • Software e Programação
  • Imagens 3-D
  • Processadores

Mais tópicos