ブログ

A840+QtでUSBカメラの画像を表示するサンプルをNEONで高速化する

at_takuya.sasaki
2015年5月10日 14時07分

Armadillo-840にUSBカメラを接続し、LCDにUSBカメラの画像をQtで描画するサンプルは、以前以下のフォーラムでサンプルコードが提供されています。

[ QtでUVCカメラを表示させる ]
https://users.atmark-techno.com/forum/armadillo/1343

このサンプルでは yuyv_to_rgb.h というソースコード内で、USBカメラからのYUYVの画像データを、LCDに表示するために RBG形式に変換しています。 この変換処理は、ARM Cortex-A9のNEONを使うことで高速化することが可能で、すでに実装もされています。
(#ifdef __ARM_NEON__で囲まれた箇所です)

[NEONについて]
http://www.arm.com/ja/products/processors/technologies/neon.php

ただし、サンプルをビルドしただけでは、NEONによる高速化が有効化されていません。 有効化するには、以下の手順を実施してみてください。

1) Qt Creator上で、animatedtiles.proを開いて末尾に以下の行を追加してください。

QMAKE_CXXFLAGS+=-march=armv7-a
QMAKE_CXXFLAGS+=-mtune=cortex-a9
QMAKE_CXXFLAGS+=-mfpu=neon

2) Qt Creatorの[ビルド] - [qmake実行]を実行します。

3) その後、アプリケーションをリビルドすることで、NEONによる高速化したバイナリファイルが生成されます。

以上