2014年06月03日

FPGAプラグイン機能を実際につかってみた〜シンセシス編〜

この開発部ブログにてSVI-06の機能のひとつとして「FPGA動的再配置ってどんなもの?〜FPGAにもプラグイン機能を〜」を紹介しました。SVI-06のFPGAにプラグインのようにお客様の開発した機能を実装することができるものでした。

そこで今回はこのプラグイン機能の実践編として、株式会社シンセシス様に実際に使用していただき、適応的輝度補正IPを実装していただきましたのでその時の感想などを中心に報告します。

簡単にFPGA版プラグイン機能とはどのようなものか説明します。
SVI-06に搭載された機能のひとつで、SVI-06が持つコア機能にプラスしてお客様のロジックを追加・開発ができるFPGA版プラグイン機構を備えています。実際には、FPGA内にある「動的再配置領域」というところにプラグインの機能を実装することができます。


ロジック追加イメージ.jpg


協力をいただきましたシンセシス様は大阪にあり、産学共同研究によるIP開発などを強みとしています。デジタルテレビ関連IPや、マルチメディア系のIPなど多くのIPを開発しています。
今回は、すでにある適応的輝度補正IPをプラグインとして入れ込んでいただいたきましたが、この適応的輝度補正IPには次のような特徴があります。
・人間の目の網膜と皮質のモデル(Retinex理論)にもとづいた、輝度補正アルゴリズムを採用
・ゲート規模換算で5万ゲートくらいのもの
・低遅延でフルHD(1080p 60fps)、4K動画像のリアルタイム処理に対応
・少ない内部メモリで動作(解像度1280×1024で約80Kbit、1920×1080で約120Kbit)

この輝度補正IPを弊社でも実際に使用してみましたが、明るいところはそれほど明るくせずに、暗いところを明るくするという適応的な動作をしていました。たとえば下記の図(シンセシス様のサイトから転載)のように暗いところにあるぬいぐるみが、補正をかけるとよく見えるようになったりします。また、明るさ補正の強さが設定できるので微調整をしながらの補正も可能でした。


適応的輝度補正IPの効果.jpg


シンセシス様にSVI-06のプラグインとして適応的輝度補正IPを組み込んでいただいたのですが、実際に作業をされた方は次のような経験を持っています。
・FPGA開発は10年くらい行っている。
・得意なFPGAはアルテラ社製。ただし、ザイリンクス社製のFPGAも使用する(SVI-06のFPGAはザイリンクス社製です。)
・SVI-06のプラグインを作ることは今回が初めて

SVI-06のプラグインとして、適応的輝度補正IPを入れ込んでいただきましたが、「FPGA版プラグイン機能としてすんなり入れることができた」との感想をいただきました。その時の具体的な作業工程としては下記のものです。

・作業時間は3〜4日程度(1週間はかかっていない)
△FPGAプラグイン環境の理解(サンプルのコンパイル〜動作):1日
△カメラの設定:0.5日
△適応的輝度補正IPの入れ込み:1.5〜2.5日

とのことで、それほどつまずくこともなく、説明のドキュメントを中心に作業をしていただけました。FPGA開発の中級者以上であれば作業を行っていただけると思います。また、組み込んでいただいたものは、ビックサイトで行われた組込みシステム開発技術展(ESEC)にて展示を行っています。


ESEC展示の様子.jpg


展示会でもいろいろな方に見ていただきましたが、適応的輝度補正IPをかけていても遅延が気になることはありませんでした。また、見ていただいた方からも遅延を気にするコメントはなく、「確かに違和感なく明るさ補正されていますね」といった評価をいただきました。

最後に、今回実際に作業していただいて次のようなコメントをいただくことができましたので紹介します。

「評価ボードを購入して、このような作業を行うとすると、まず初めにI2Cなどのインターフェイスを作りこむ必要がありますが、SVI-06は必要なインターフェイスがすでにそろっているので簡単に適応的輝度補正IPを組み込むことができました。」

FPGA版プラグイン機能を活用していただければ、カメラからの映像に対してアルゴリズムを作りこむ場合の評価ボードとしても活用していただけると考えています。
ぜひ、興味ありましたらお気軽に弊社までお問い合わせください。
posted by デベマネ at 18:08| Comment(0) | SVシリーズ