MIT beschleunigt Bildverarbeitung

Verfasst von Georg Pichler/pte am 03.08.2012 - 00:12

Informatiker am Massachusetts Institute of Technology (MIT) haben mit Halide eine neue Programmiersprache entwickelt, die effizientere Bildverarbeitungs-Software in Aussicht stellt. Die Programme sollen damit nicht nur einfacheren, übersichtlicheren Code bekommen, sondern auch deutlich schneller werden.

Bei Tests mit gängigen Bildverarbeitungs-Algorithmen konnte im Extremfall eine Beschleunigung um den Faktor 70 erreicht werden. Hintergrund der Entwicklung ist die Tatsache, dass digitale Bilddateien immer grösser werden, teilweise aber mit begrenzter Rechenleistung viele Verarbeitungsschritte ausgeführt werden müssen. Das trifft gerade im Smartphone-Segment zu: Multi-Megapixel-Sensoren liefern Foto-Rohdaten, die eine ganze Reihe von Verarbeitungsschritten durchlaufen müssen, bevor überhaupt die Aufnahme auf dem Display erscheint - ehe sie dann womöglich gleich noch in webtauglicher Version mit Programmen wie Instagram ins Internet hochgeladen werden soll.

Zu den Verarbeitungsschritten, die ein Smartphone-Foto zwischen Aufnahme und Anzeige auf dem Display durchläuft, zählen unter anderem Korrekturen für defekte Pixel am Bildsensor, Farbanpassungen und -korrekturen sowie Kontrastjustierungen - nur, damit das Bild einmal weitgehend dem entspricht, was das menschliche Auge sieht. Hinzu kommen meist noch Verarbeitungsschritte wie Rote-Augen-Korrektur oder gar Spezialeffekte, für die die Software frühere Verarbeitungsschritte neu berechnen muss.

Das Hauptproblem ist, dass sich Bildverarbeitungsalgorithmen genau überlegen müssen, wie sie Teile des Bildes und Rechenaufgaben auf die Kerne eines Prozessors verteilen, damit dieser möglichst effizient ausgenutzt wird. Da Berechnungen oft auch Informationen aus früheren Verarbeitungsschritten anderer Bildteile erfordern, bringt aber ein Programm, das für eine bestimmte Hardware optimiert ist, auf anderen Geräten oft keine nennenswerten Vorteile. Die MIT-Programmiersprache teilt die Bildverarbeitung in die eigentlichen Verarbeitungsalgorithmen und einen Scheduler ein, der sich automatisch um die Verteilung von Bildteilen auf die Rechenkerne kümmert.

Halide bietet laut dem MIT viele Vorteile. Es werde leichter, ein Bildverarbeitungsprogramm für verschiedene Geräte effizient umzusetzen, da dazu nur der Scheduler entsprechend optimiert werden muss. Zudem seien Programme mit der neuen Sprache einfacher zu schreiben und der Code leichter zu verstehen. Er fällt außerdem in der Regel deutlich kürzer aus. Bei Tests mit gängigen, von erfahrenen Programmierern optimierten Bildverarbeitungs-Algorithmen war die Halide-Umsetzung im Schnitt um zwei Drittel kompakter. Dazu kommen beachtliche Performance-Steigerungen.

Dem MIT zufolge gab es bei den Tests oft Beschleunigungen um einen Faktor zwei, drei oder gar sechs. In einem Extremfall war das Halide-Programm sogar 70 Mal schneller als das Original, obwohl der Code in der neuen Programmiersprache in diesem Fall sogar länger war. Ein Paper mit Details zur Arbeit an Halide wird das Informatiker-Team kommende Woche im Rahmen der Computergrafik-Konferenz Siggraph präsentieren.