MITの開発した、画像処理用プログラミング言語「Halide」【サイエンスニュース】




パソコンを始めとして、様々な電子機器で、高度な画像処理が求められるようになってきている。

スマートフォンのアプリやデジカメでも、本格的なフォトレタッチ機能が搭載されており、これらを利用している人も多いだろう。
こうした画像処理プログラムの開発でキーとなるのが「並列化」だ。画像を処理する場合、大量のデータに対して同じ変換処理を行っていくことが多い。こうした処理を行う際、画像を細かな単位に分割して、同時に処理を行うことができれば実行時間を短くできる。今ではスマートフォンにも搭載されているGPUは、処理を同時並列的に、実行するために設計された画像処理用のプロセッサだ。しかし、並列処理に最適化されたプログラムコードを書くのは、非常に手間がかかる。プログラマーは、どのようなアルゴリズム(計算方法)で画像処理を行うかということに加え、それをどう並列化するかということまで考えないといけないからだ。

MITはこうした問題を解決するために、画像処理専用のプログラミング言語「Halide」をスタンフォード大学やアドビと開発し、オープンソースとして公開した。

Halideの特徴は、画像処理のアルゴリズム部分と、並列化の実行手順部分を分離したことにある。プログラマーは画像をどう処理するかを考えることに専念できるので、プログラムコードの作成効率が上がる。また、開発者本人以外にもとっても理解しやすいコードになるためメンテナンスもしやすくなる。加えて、実行効率がよいことも大きなアドバンテージだ。MITの論文によれば、画像処理として広く使われているC++(汎用プログラミング言語の一つ)とHalideを比較したところ、C++のプログラムコードは262行で、実行時間は335ミリ秒。これに対してHalideのコードは62行で、実行時間は158ミリ秒だった。その他の処理についても、Halideは半分程度のコード分量、実行時間もC++の数分の1になるケースが多い。

Halideは、パソコンやサーバーで標準的に使われているインテルのx86プロセッサのほか、スマートフォンやタブレットで主流になっているARMプロセッサに対応している。アプリなどの生産効率、性能の向上が期待できそうだ。

写真:同じ処理をC++とHalideで記述して、コード分量と実行時間を比較する。Photo Credit: Jonathan Ragan-Kelley, Andrew Adams, Sylvain Paris, Marc Levoy, SamanAmarasinghe, Fredo Durand.

共有する

関連記事

【気になるトレンド用語】Winnyは″エロ画像″から″機密情報″までなぜ流出させるのか?

コンピューターウイルスやスパムなど、セキュリティが声高に叫ばれる世の中ですが、それにもかかわらず一向に減らないのが個人情報の流出です。セキュリティ関連のニュースを見ると、毎日のように個人や企業などの機密情報流出事件が報…

【気になるPC】最小・最軽量モデルにCore 2 Duoプロセッサ採用 Let′s note R6レビュー

松下電器産業は、Let's noteシリーズの最小・最軽量モデルR6(CF-R6AW1BJR)を発売開始した。実売価格は210,000円前後。約940gの超軽量コンパクトボディにCore 2 Duoプロセッサを搭載。OSには、Windows Vista Businessを採用している。■…

【知っ得!虎の巻】パソコンの画面を画像に残したい

パソコンの画面を画像として残したいと思ったことはないだろうか?表計算ソフトのグラフやネットの画面を画像として保存しておくと、会議や打ち合わせの資料を作成するとき、またはサイトでパソコンの使い方を説明したいときなどに役に…

【カオス通信】ブログ炎上の火種となった「コードギアス祭」をプレイバック

現在放映中のテレビアニメ『コードギアス 反逆のルルーシュR2』は、アニメファンの間では好評なのですが、視聴率的には苦戦を強いられています(日曜の17時というリアルタイムでは見づらい時間帯の影響もある模様)。この状況に制作サ…

処理の馬力が違う!「インテル Core i7 プロセッサー 祭り!」レポート

インテルは2008年12月13日(土)〜14日(日)の2日間、都内 カフェソラーレ リナックスカフェ秋葉原店において同社のプロセッサー「Core i7」をアピールするイベント「Intel in Akiba 2008 Winter 〜 インテル Core i7 プロセッサー 祭…