2018年01月05日

グランツーリスモ6/PS3リプレイデータで実走行エミュレーション/FPDLinkV&CAN(2)

前回からの続きです。

BCG映像と走行データの作成
2台のPC間で転送するデータはPS3のグランツーリスモのリプレイデータを使用しました。
映像データと走行データは別々の方法でPS3からPCに取り出しています。
映像データはSVO-03U&Pを使用し、走行データはPS3の標準機能とフリーソフトを使用しました。
転送するデータの形式は映像がavi、走行データがcsvになりますので変換方法も説明します。
データの取り出しに使用したデバイス・アプリ構成等は下図の通りです。
使用したアプリ・デバイス
・PS3
・グランツーリスモ6 (PS3ソフト)
・USBメモリ
・MoTeC社のデータ解析用ソフトウェア「i2 Pro」
(フリーソフト・URL:http://www.motec.com/i2/i2downloads/)
・SVO-03U&P (弊社ボード)
・PC
・NVCap (弊社のUVCキャプチャソフト)

図4.jpg
図4:PS3から映像データを取り出すための構成

図5.jpg
図5:PS3から走行データを取り出すための構成とi2 Pro画面

○映像データの取り出し方
・あらかじめグランツーリスモ6でリプレイデータを作成・保存しておきます。
・弊社のSVO-03U&Pを使用してPCに映像データを送ります。※1
・PC側でNVCapを起動し、SVO-03U&P から送られてきたPS3の画面映像をavi形式で取り込みます。※2
これで映像データの取り出しは完了です。
※1:SVO-03U&PはHDMIの信号を取り込んでUSB3.0ポート、もしくはパラレルポートに出力するためのボードです。
今回は図4のようにPS3から出ているHDMI信号を取り込み、FPGA等で処理を行い信号変換し、PCへと送ります。(UVCモードにて使用します)
※2:NVCapは映像をavi形式でPCに録画する事ができます。弊社ボードとアプリの詳細は製品添付のマニュアルをご覧ください。
下図は走行データ取り出しで使用するアプリ「i2 Pro」の画面です。「i2 Pro」はグランツーリスモ6のオンラインマニュアル(https://www.gran-turismo.com/jp/gt6/manual/)にて走行データの解析用アプリとして紹介されています。
解析できる項目は速度やエンジンの回転数、操舵角等などのデータです。下図には表示されていませんがGPSデータなどもデータ化されています。本アプリを使用して走行データをcsv形式に変換します。

図6.jpg
図6:i2 Pro 画面

○走行データの取り出し方 ※3
・あらかじめグランツーリスモ6でリプレイデータを作成・保存しておき、PS3にUSBメモリを挿入します。
・「マイホーム」の「ギャラリー」を選んで決定します。
・画面左に表示される「リプレイ」の「ライブラリ」を選んで決定します。
・画面右側のリプレイのリストからデータ化したいリプレイを選んで決定します。
・リプレイ詳細画面が表示されたら、「MoTeC i2 ProデータをUSBメモリへ書き出し」を選んで決定します。
・データを保存したUSBメモリをPCに挿入し、i2 Proを起動し「Circuit Workspace」を選択します。
・左上のファイル>ログファイルを開く から先ほど保存したファイルを選択します。
・走行データが画面に表示されます(上図6の画面が表示されます)
・左上のファイル>データのエクスポートを開き、出力ファイルフォーマットをCSV Fileにしてエクスポートします。
・出力されたcsvファイルは先頭14行に不必要なデータがありますので削除します。

これで走行データの取り出しは完了です。
※3 USBメモリへデータを書きだすまでの項目はグランツーリスモ6のオンラインマニュアル内の「リプレイ」>「MoTec i2 Proデータの書き出し」 項目に同様の内容が記載されています。

■Vector社のデータ送受信用アプリ「CANape」について
データ送信用PCとデータ受信用PCでCANapeというアプリを使用します。
使用するアプリは同一ですが、プロジェクトファイルが送信側・受信側で分かれています。

○送信側
受信側にデータを転送するために映像データ(aviファイル)と走行データ(csvファイル)をCANapeに読み込ませます。
下図は送信側のCANape画面です。

図7.jpg
図7:CANape 送信側画面

図8.jpg
図8:CANape 送信側画面

グラフィックウィンドウ:csvデータ内にある速度やギアの状態などのデータをグラフ化しています。
書き込みウィンドウ:CANapeの動作履歴が確認できます。
トレースウィンドウ:送信しているCanデータを確認できます。
マルチメディアウィンドウ:送信している映像が表示されます。

○受信側
データ読み込みデバイスをSVM-03に指定し映像を受信します。
下図は受信側のCANape画面です。

図9.jpg
図9:CANape 受信側画面

マルチメディアウィンドウ:受信している映像が表示されます。
パネルウィンドウ:受信した走行データのうち、速度とエンジンの回転数を可視化しています。
書き込みウィンドウ:CANapeの動作履歴が確認できます。
グラフィックウィンドウ:受信した速度やギアの状態などのデータをグラフ化しています。
トレースウィンドウ:受信しているCanデータを確認できます。

○映像データと走行データの同期について
送信開始タイミングでaviとcsvの頭出しを行う事で同期しています。
今回のデモでは映像に合わせて速度メーターが動く事を確認できました。

今回のデモで実際に使用したボードなどの全体構成は下図の通りです。

図10.jpg
図10:全体構成図

本デモで、PS3で作成した走行映像・走行データをPCへ取り出し、PCからPCへと転送する事ができました。
受信側をECUに変える事で、CG映像と走行データを低コストでECUに入れる事が可能になると思います。

デモの内容についてご興味があれば下記までお問い合わせをお願いします。
sv-support@net-vision.co.jp

※本ブログに記載されている製品名はいずれも、それぞれの所有者の登録商標または商標です。
posted by デベマネ at 15:23| Comment(0) | SVシリーズ

グランツーリスモ6/PS3リプレイデータで実走行エミュレーション/FPDLinkV&CAN(1)

国際画像機器展2017で展示したデモのレポートを2回に分けて掲載します。
英語版レポートは以下よりご覧ください。(English version)
http://www.net-vision.co.jp/dl/CAN-Blog-Eng-20171227.pdf

展示会では、CG走行映像と走行データ(CAN信号)を、同期転送するデモを展示しました。

今回のデモの趣旨は、高価なCGツールを使用しないで、グランツーリスモ6/PS3を使用して簡易的な走行シミュレーションを実行することです。

Vector社CANapeと弊社SVO-03とSVM-03は、既にご使用になっているお客様は多いと思います。この環境があれば、安価な走行テスト環境が構築できます。

グランツーリスモで作成したCG動画と走行データを、CANapeとSVO-03を使用しFPDLinkV&CANデータとして送り出せます。データの受け側はECUですが、今回はCANapeとSVM-03で受け取っています。詳細は本文をご参照ください。

今回のデモの構成概略は下記の通りです。
図1.jpg
図1:デモ全体構成概略図

図中の@〜Bの構成概要は下記の通りです。
@映像データの転送:弊社のSVボードとVector社のアプリ(CANape)を使用しました。
A走行データの転送:Vector社のアプリ(CANape)とCAN転送用デバイスを使用しました。
BCG映像と走行データの作成:PS3のゲームソフトのリプレイデータを使用しました。
上記@〜B構成とVector社のアプリ「CANape」を説明します。

@映像データの転送構成
PC間の映像データ転送は弊社のSVボードを使用します。使用したデバイス構成等は下図
の通りです。
使用したデバイス
・SVO-03U&P (弊社ボード)
・NV021-A (弊社ボード)
・NV012-C (弊社ボード)
・SVM-03 (弊社ボード)
・PC (2台)
図2.jpg
図2:映像データ転送構成

表1.jpg
表1:デモで使用した各SVボードの入力/出力規格

・SVO-03U&P
HDMIの信号を取り込んでUSB3.0ポート、もしくはパラレルポートに出力するためのボードです。
パラレルポートに出力するモードで使用し、NV021-Aへデータを転送します。
・NV021-A
パラレル信号を取り込んでFPD-LinkV信号に変換するためのボードです。
・NV012-C
FPD-LinkV信号を取り込んでパラレル信号に変換するボードです。
・SVM-03
パラレル信号を取り込んでUSB3.0ポート、もしくはHDMIポートに出力するためのボードです。
USB3.0ポートに出力するモード(UVCモード)で使用し、PCへデータを転送します。

今回の構成ではSerDes変換(FPD-LinkV)を行っておりSVM-03側を仮想ECUとしています。

A走行データの転送構成
PC間の走行データ転送はVector社のデバイスを使用します。使用したデバイス構成等は下図の通りです。
使用したデバイス
・VN1610 CAN Interface (Vector社, 2個)
・Vector CANcable 1 (Vector社)
・PC (2台)

図3.jpg
図3:走行データ転送構成

・VN1610 CAN Interface
CAN高速トランシーバーです。USB2.0コネクタとD-SUB コネクタを有しており、今回のデモではUSB2.0側をPC、D-Subコネクタ側を Vector CANcable 1へと接続して走行データの転送を行いました。
・Vector CANcable 1
VN1610 CAN Interface同士を接続する場合に使用します。

※Vector社ホームページは以下になります。
https://jp.vector.com/vj_index_jp.html

次回に続く...
posted by デベマネ at 15:08| Comment(0) | SVシリーズ

2016年09月26日

セミナー開催!!

久しぶりの投稿となってすみません。
10月27日(木)〜10月28日(金)と幕張の高度ポリテクセンター様にて
弊社SVI-06を使用したUSB3.0セミナーを開催します。
詳細は下記リンクをご覧ください。ご興味ある方はご検討ください。
http://www.apc.jeed.or.jp/seminar/course/16semiE067.html
セミナー.png
タグ:USB3.0 FX3 SVI-06
posted by デベマネ at 12:18| Comment(0) | SVシリーズ

2016年07月15日

最新事例

いくつかの新製品と開発中の情報が以下のページに記載されています。
http://www.net-vision.co.jp/support/sv-example.html

新ボードとしては、SVM-03-2CHとSVI-09です。

SVM-03-2CH(時にはSVM-03Wとも呼ばれます)は、パラレルポートから
受信した画像を2つのUSB3.0ポートから同じものをホストへ出力します。
簡単に言うとUSB分配ですね。片方で現画像を表示し、片方で画処理した
ものを表示したりといろいろ使えそうです。

SVI-09はまだ開発中ですが、SVM-03ベースで、FPGAをArtix-7に
変更して、パラレルポートの他に高周波ポートも追加され、このボード
だけでMIPI、LVDSなどのシリアル画像データも受けれるようになります。

上記ページには掲載していませんが、SVM-03MIPIというボードも開発中です。
このボードは今までSVM-03ボード+SVI-MIPIボードの2枚構成取りこんでいた
MIPIシリアルデータを1枚ボードでできるようにしたものです。今ままでの
パラレルコネクタを外し、SVI-MIPIボードのシリアルコネクタに置き換えた
ものです。

既存のボードでも、新たなバリエーションが追加されています。

SVO-03U&P
SVO-03ボードのHDMIコネクタからHDMI画像信号を受信し、それをUSBとパラレルへ
出力します。USBとパラレルは排他となります。USBはUVCとして画像をホストへ
出力します。HDMIキャプチャ変換ボードとなります。

SVI-07
簡単に言うとSVI-06ボードの高速版です。SVI-06では画像入力が1Gbps位まで、
SVI-07では3Gbps位までとなっています。フルHDサイズですと30fpaと60fps
位の違いがあります。ボード自体は同じですが、ファームウェア、FPGA、アプリが
違います。高速化に伴い、SVI-06のように途中で画像サイズが変わったり、途中で
I2C通信を行うことができません。とにかくがんがん画像を受信してホストへ転送
します。

ご興味あれば下記まで、お問い合わせをお願いします。
sv-support@net-vision.co.jp

では、今後とも宜しくお願いいたします。
posted by デベマネ at 17:32| Comment(0) | SVシリーズ

2016年02月18日

CQ出版エレクトロニクス・セミナー開催!

CQ出版エレクトロニクス・セミナーのご案内
2月26日に弊社の工藤と山田が講師としてUSB画像転送に関するセミナーを開催します。
まだお席に余裕がございます。ご興味のある方はこちらのサイトからお申込みください。

http://seminar.cqpub.co.jp/ccm/ES15-0147

実習・USB3.0高速シリアル・インターフェース画像伝送
―― EZ-USB/FX3コントローラを使用したUSB3.0カメラの製作
【開催日】2016年2月26日(金) 10:00-17:00 1日コース
【セミナNo.】ES15-0147  【受講料】21,000円(税込)
【会場】東京・巣鴨 CQ出版社セミナ・ルーム

posted by デベマネ at 11:11| Comment(0) | TrackBack(0) | SVシリーズ

2015年05月15日

SVM-03にてステレオ・サイド・バイ・サイド表示ができました

以前にご紹介したOV5642における2chカメラ表示システムではソフトウェアを
用いてSide-by-Sideで表示させていました。

20150515-1.png

今回はFPGA内で前回作成したモジュールの出力の16bit画像の処理を行う
ことにより、SVM-03を用いて、Side-by-SideにHDMI出力させるようにしました。
これを3Dテレビに出力させれば3Dに見えるようになるとか。
今回は720pの画像を2画面映すことを目標にしています。しかしここで問題が。
720pの画像の横幅は1280pixelなので、2画面そのまま出力させると2560pixel
となり、SVM-03の機能で中央部の1920pixel分が表示されることになりますが、この時下図のように左右のカメラで異なる部分を出力させることになってしまいます。

20150515-2.png

そこで、次のようにデータを切り出すことで、左右のカメラで同じ部分を出力させることができます。

20150515-3.png

前の記事でモジュールを使用し、その後に次のような処理を行えばSide-by-Side
表示を実現させることができます。

こうして作ったモジュールを組み込みOV5642を2台使用してHDMI出力させると
次のように表示させることができます。

20150515-4.png

20150515-5.png

720pだけでなく1080pの15fpsなども表示させることができます。
今回はHDMIからの出力ということでSVM-03を用いましたが、SVI-06を用いれば、
画像の切り出しも行わずにSide-by-Sideに表示させるモジュールを作成することが
できるのではないかと思います。

この機能は6月開催の画像センシング展にてデモをご覧いただけます。
展示会では、他にHDMIソリューションとしてHDMI入力ボードSVO-03の展示、
USB3.0対応UVCカメラのLinux表示を展示いたします。
それでは会場でお待ちしております。
posted by デベマネ at 13:51| Comment(0) | TrackBack(0) | SVシリーズ

2015年01月06日

2ch表示システムできました

弊社には昨年10月よりハードウェア担当の新人が1名入社しておりまして、
その新人N君が初めて設計した2ch変換基板を使用した2ch表示システムをご紹介します。

DSC_0090.JPG

構成は上の写真のとおりです。カメラモジュールは日昇テクノロジー社から販売されていますOV5642カメラボードです。SVI-06ボードとカメラモジュールの間に新人N君が設計した2chカメラ接続用変換基板を使用します。
SVI-06ボードは2ch用にカスタマイズされております。2台のカメラからビデオ信号、画像信号をそれぞれ入力し、今話題のFPGAプラグインで2ch同期を行い、ホストへは16bitデータとして渡し、ホストアプリで16bitを8bit、8bitに分割し、Side-by-Sideで表示します。

OV5642カメラボードは最大5Mまで出力が可能で、最近いろいろな雑誌で取り上げられていますのでご存じの方も多いのではないかと思います。ただ、起動ファイルをI2C通信でカメラモジュールールへ送らないとカメラから画像が出力されないので、そこがちょっと面倒ですね。

2chカメラ接続用変換基板は、下図のような回路になってます。

blog-1.jpg

SVIボードからは同じシステムクロックをカメラモジュールへ供給します。記載していませんが、I2C信号も同じ信号を通していますので、SVIボードからのカメラモジュールへのI2Cコマンドは同じものが各カメラモジュールへ通達されます。同じシステムクロックで同じI2Cコマンドなので、ほぼ同時に画像信号が出てくることを前提としています。
Ch.1、Ch.2ともPixClk、VSync、HSync、画像データBit0からBit7までをSVIボードへ入力します。このデータを使用し2ch同期を行います。

DSC_0091.JPG

SVI-06ボードは2ch同期入力用にカスタマイズしたFPGAが実装されています。2chカメラ接続用変換基板から入力されたPixClk、VSync、HSyncを使用して2ch同期を行いホストへ16Bit画像として渡します。

ホストPCのアプリはSVIsamを2ch用に改造したものです。ホームページにアップされているものからは若干の追加がありますが、基本は変化ありません。

blog-2.jpg

2chカメラ接続用変換基板は、ch.1だけにカメラモジュールを接続しても標準の1ch用で動作しますのでOV5642とSVI-06ボードとこの変換基板のセットで簡単に画像入力が実現できます。

DSC_0092.JPG

今回使用させていただいた、日昇テクノロジー社のOV5642のページは以下となります。
http://www.csun.co.jp/SHOP/20120881201.html
弊社では、OV5642の他にOV7670も使用実績がありますので、お困りごとが
あればお気軽にお問い合わせください。

また、他社代理店様経由のOmniVision社のカメラモジュールも多数接続実績が
ありますので、こちらについてもお気軽にお問い合わせください。

ということで今回はここまで。次回はUSB3.0チップとFPGAを使用した小さいUSBカメラをご紹介したいと思っていますのでご期待を。




posted by デベマネ at 13:31| Comment(1) | SVシリーズ

1080P-60fps表示のためのホストPCノウハウ

あけましておめでとうございます、本年も当ブログをよろしくお願いいたします。

前回の記事で1080P、60fps、RAW10bitの画像をRAW現像IPを通して、フルレート表示することに成功しましたという内容を投稿させていただきました。

今回は、フルレート表示するためのノウハウを記事にさせていただきます。

構成は前回と同様で下図のとおりです。1080P、60fps、RAW10bit、FullHD画像をMIPI出力するイメージセンサーを弊社SVI-MIPIボードと接続し、SVI-MIPIボード内FPGAでMIPIシリアルから32bit幅パラレルに変換し、SVI-06ボードに入力させて、SVI-06ボード内FPGAのFPGAプラグイン機能でRAW現像を行い、FX3でホストPCへ転送し表示します。

20140829-1.png

フルレート表示するためには、やはりPC性能が大変重要です。弊社で最高速のPCのスペックを以下に列挙します。

CPU:Intel Core i7 4770 3.4GHz
メモリー:32GB
GPU:NVIDIA GeForceGTX650
OS:Windows7 64bit
PCタイプ:デスクトップ
メーカー:マウスコンピューターさん
USB3.0チップ:Intel

GPUについては現在もっと高スペックなものもありますが、一応上記スペックでフルレート表示できました。
CPUがクワッドコアで高周波数なものが一番です。他にグラフィックチップを別に搭載している方がCPUの負荷を減らし、表示を高速にできます。後、モニターも高周波数なものがおすすめです。ゲーム用のモニターなどは120Hzに対応していますので追従が素晴らしいです。

ノートPCの場合は、ゲーム用ノートPCがおすすめです。ノートPCゆえCPUが低電圧版でバッテリー長持ちとかありますが、高フレームレート表示のためには通常版でないとスペックがでません。Core i7でも低電圧版ですとスペックは出ないのを確認済みです。
CPUが高性能、GPUが外付けを選んでください。

フルレート保存するためには、高速なSSDが必要です。最近はM.2インターフェースに対応したSSDが販売されていますので、これに対応したSSDであれば最大転送速度が500MB/secを超えますので、かなり余裕があります。

USB3.0は高速なので、ホストPC環境も高速、高性能を必要になってきます。

ということで今回はここまで。次回は2ch構成による2ch表示を記事にしようかと思っていますのでご期待を。
posted by デベマネ at 10:19| Comment(0) | SVシリーズ

2014年08月29日

RAW現像IPで1080P-60fps表示

久し振りの投稿となりました、遊んでいたわけではありません。。。
最近開発ものが多くて手をつけられませんでした。やっぱり景気良くなっているのかな。

ということで、過去の記事でSVI-06の高速版を使用して380MBpsを達成したとかありましたが、その環境に最近開発したRAW現像IPを入れて実験してみました。
結果は記事タイトルのとおり1080P、60fps、RAW10bit、FullHD画像をフレート表示することに成功いたしました〜〜。
フルレート表示ができるということはフルレート保存もできるわけです、ハイッ!

構成は下図のとおりで、1080P、60fps、RAW10bit、FullHD画像をMIPI出力するイメージセンサーを弊社SVI-MIPIボードと接続し、SVI-MIPIボード内FPGAでMIPIシリアルから32bit幅パラレルに変換し、SVI-06ボードに入力させて、SVI-06ボード内FPGAのFPGAプラグイン機能でRAW現像を行い、FX3でホストPCへ転送し表示します。
説明が長くてすみません。。。

20140829-1.png

弊社では、今までPCのソフト(SVIsam)でRAW現像を実現していましたが、これだとソフトでデモザイク処理、ゲイン補正、ガンマ補正を行っているので、画像サイズやフレームレートによっては、フルレート表示ができないことがあります。よほど高速なパソコンを用意してもVGA-30fps位がいっぱいでした。

今回SVI-06のFPGAプラグイン機構を利用して、前処理ブロック部分にRAW現像IPとしてデモザイク処理、ゲイン補正、ガンマ補正を入れました。FPGAリソースとしてロジック部分10%、ブロックRAM部分で30%程度の使用で済んでいます。
入力するRAWデータはベイヤーRGBで色の順番も4種類から選択でき、ゲイン補正、ガンマ補正では、20、30段階の係数変更を行えます。
デモザイク処理は3ライン単位で変換しますで、3ライン分のブロックRAMを使用します。またガンマ補正用テーブルにもブロックRAMを使用しています。このテーブルへの値の代入はソフト起動時にPCより転送してもらっています。

下図はRAW現像IP組込み前処理ブロックの構成図ともう少し詳しい説明です。
前処理ブロックの枠組みでRAW現像IPとして"RAW to RGB Development Block"(RAW現像ブロック)を組み込んでいます。RAW現像ブロックでは、RAWベイヤー配列での1ピクセルを1クロック・サイクル毎に入力し、出力としてパラメータ指定により8bitの色深度でRGBの3色成分を含んだピクセルを1クロック・サイクル毎に出力します。

20140829-2.png

一方、高速版SVI-06では高速画像取込みに対応するため、イメージセンサーからのRAW10でのピクセル入力を32bitデータ幅に2ピクセルを割当てることで、1クロック・サイクルあたり2ピクセルでの転送レートで取込み、フレーム・メモリへ画像データを転送しています。このため、RAW現像ブロックに入力する際に、入力クロックの2倍のクロックを生成し、2[pixel/clock]から1[pixel/clock]に変換する必要があるので、"Pixel Clock x2 and 2pxl/clk to 1pxl/clk Conversion"で変換処理をしています。逆に、RAW現像ブロック後段での出力では、RAW10で2[pixel/clock]での転送レートと合うように、1[pixel/clock]から2[pixel/clock]へ変換し、出力クロック/データ・レートと入力クロック/データ・レートで等しいタイミングで出力されるように、"Pixel Clock /2 and 1pxl/clk to 2pxl/clk Conversion"で変換処理をして、RAW現像処理後の画像を出力しています。上図で示すように出力直前のセレクタにより、RAW現像処理をせずにバイパスして出力することで、RAW10での入力画像データをそのまま取り込んで、ホストPCなどで評価が可能な構成となっています。RAW現像処理後のピクセル・フォーマットとして、RGB565で出力することにより、32bitデータ幅で2[pixel/clock]での転送に適合させています。この構成により、RAW現像処理を行った場合と行わずにバイパスさせた場合とで、画像フレームのサイズ、転送レートは常に等しくなるようにしています。

RAW現像については一般的なアルゴリズムを使用していますが、FullHD-60fpsを実現するためのSVIに合ったいろいろなテクニックを使用しています。他にホワイトバランス、ノイズ除去など絵を奇麗にする手段はありますが、弊社ではある程度の色がついて、お客様である程度の色補正ができてることを目的にしていますので、この程度に留めています。
デジタルカメラ用のISPを作る場合はもっといろいろ処理をいれなきゃいけないので、それは専門の方にお願いしたいと思います。

ということで今回はここまで。次回はホストPC側の処理も記事にしようかと思っていますのでご期待を。
posted by デベマネ at 17:10| Comment(0) | SVシリーズ

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シリーズ

2014年05月07日

組込みシステム開発技術展(ESEC)出展のおしらせ

第17回組み込みシステム開発技術展に出展いたします。展示会の詳細は下記の通りです。
会期:2014/5/14(水)〜16(金) 10:00〜18:00(金曜日は17:00終了)
会場:東京ビックサイト
出展場所:西3-62(映像・画像処理ゾーン内)


ESEC出展場所.jpg

今回の展示ですが、ネットビジョンでは今までになかった試みとして、他社とのコラボレーションによる、弊社製品の活用事例を展示します。併せて車載カメラシステム開発やイメージセンサ開発などに活用できる弊社の最新ソリューションも展示いたします。

今回の展示概要です。
1. SVO-02×2を用いた車載カメラシステム開発向けソリューション提案
2. SVM-03を用いたカメラモジュール映像のHDMIモニターボードへのスルー表示
3.株式会社シンセシス製「適応的輝度補正IP」搭載事例~SVI-06のFPGA版プラグイン機能(動的再配置)の活用事例~
4.株式会社エーオーアール製広帯域I/Qアダプタでの活用~SVD-06を活用したUSB3.0データロガー~


株式会社シンセシス様と株式会社エーオーアール様のご協力をいただき、弊社製品の活用事例として展示をいたします。以前の展示会ではカメラモジュールの開発や検査向けがほとんどでしたが、それ以外の分野にも活用できるということを示す展示になると思います。

詳細は下記の説明をご覧いただき、当日ブースで実際にデモをご覧いただければ幸いです。


1.SVO-02×2を用いた車載カメラシステム開発向けソリューション提案

車載カメラシステム開発向けソリューション提案.jpg

(展示説明)
SVO-02を2台用いて2つの画像を出力し、その画像信号を1台のSVI-06にて受けます。SVO-02をカメラモジュールの代わりに映像データを出力させ、2台のSVO-02を使用することで、2チャネルカメラの映像取得と同じになります。
たとえば車載カメラは複数台のカメラ画像を用いて障害物検知や駐車アシスト映像の表示に活用されたりしておりますが、車載カメラの映像をSVO-02から出力すれば毎回同じ画像データを使ったテストが可能となります。このソリューションは開車載カメラシステム開発の助けになります。


2. SVM-03を用いたカメラモジュール映像のHDMIモニターボードへのスルー表示

SVM展示構成.jpg

(展示説明)
SVM-03にソニー社製カメラFCB-MA130を接続しその画像をHDMI経由にてモニターに直接出力します。イメージセンサからの映像をすばやく確認したい、既存の保存機器で保存したいなどの要望に応えることができます。

3.株式会社シンセシス製「適応的輝度補正IP」搭載事例~SVI-06のFPGA版プラグイン機能(動的再配置)の活用事例~

動的再配置展示構成.jpg

(展示説明)
株式会社シンセシスが以前よりもっていた「適応的輝度補正IP」をFPGA版プラグインに対応した事例のご紹介です。照明の変化が大きい、逆光が強いなどの状況で撮影された映像の明るさを適応的に補正できるIPとなっており、カメラ映像からダイレクトにIPを適用し、画面にその映像が表示されます。
IP開発時にはカメラ映像をリアルタイムに活用でき開発効率を向上できる、またIPを搭載して画像を確認することも簡単にできます。


4.株式会社エーオーアール製広帯域I/Qアダプタでの活用~SVD-06を活用したUSB3.0データロガー~

エーオーアール社展示構成.jpg

(展示説明)
株式会社エーオーアールの開発製品「AR-IQ3.0」に弊社SVD-06が活用された事例のご紹介です。AR-IQ3.0は最大25MHz帯域のアナログ信号をディジタルI/Qデータに変換しUSB3.0インターフェイスによりPCに保存する装置です。SVD-06は変換されたディジタルI/QデータをPCへ高速転送するためのモジュールとして使用されています。弊社製品を活用することにより開発期間短縮等が図れます。
タグ:展示会
posted by デベマネ at 12:09| Comment(0) | SVシリーズ

2014年05月01日

SVM-03をいろいろなモニターにつないでみた

5/14から東京ビックサイトで組込みシステム開発技術展が開催されます。弊社も西3−62で出展をいたします。
その展示品のひとつであるHDMIモニターボードSVM-03についていろいろなモニターにつないで画像が表示できるかどうか検証をしてみましたのでご紹介いたします。

HDMIモニターボードSVM-03はカメラモジュールからの映像をダイレクトにHDMI出力することができます。そのためHDMI端子を持つモニターにSVM-03をつなげればすぐにカメラ映像を確認することができます。また、HDMIだけでなくDVI変換ケーブルを使用すればDVIモニターでも表示することができます。

では実際にモニターに出力する前に、どのように撮影を行っているのか説明をします。
カメラモジュールはRosnes社製のカメラモジュールを使用しています。カメラは前にあるカラーチャートを撮影するようにしています。撮影時のカメラの設定は下記のようになっています。

<SVM-03に接続するカメラモジュール>
画サイズ:640×480
カラーフォーマット:UYVY
H/VSync:Low Active
カメラ入力クロックエッジ設定:↑;L→H(Positive Edge)
データ幅:8bit



SVM-03接続概要.jpg


それではいろいろなモニターで表示させてみましょう。
今回使用するモニターの大まかなスペックは次の通りです。


モニタースペック比較.jpg


まず初めは、PCのモニターからSVM-03経由の画像を見てみましょう。

EIZO fs2333


SVM-03_EIZO.jpg


HDMI端子経由によりカメラ映像がモニターに映し出されています。映像はセンター寄せになります。

iiyama ProLite XB2380HS


SVM-03_Prolite.jpg


HDMI端子につないでいます。変わりなく映像が映っています。


SVM-03_Prolite_DVI.jpg


DVI端子につないでいます。HDMIと同様に映っています。

Gechic On-Lapノート型モニター1302


SVM-03_ONLap.jpg


HDMI端子につないでいます。これも問題なく映像が出力されています。
まとめるとこのようになります。


モニタ接続まとめ.jpg


社内にあったいろいろなモニターにつないでみましたが、どのモニターも問題なく映像を映すことができました。当然、世の中のすべてのモニターで検証しておりませんのでうまく接続できないモニターもあるかもしれませんが、接続モニターは今後も検証を進めていきます。

カメラの初期設定はPCからコントロールソフトを使用してI2Cにて設定が可能です。
また、カメラ入力クロック・エッジ設定やH/Vsyncなどのカメラ入力設定もディップスイッチの切り替えにより対応可能になっています。

このようにカメラからの映像をすぐにモニターに映すことができるので、カメラモジュールの出力検査や映像を解析して処理するようなソフトウェア開発等幅広くご活用いただける製品ではないかと考えております。

このSVM-03は展示会に出展します。このほかにもいろいろな展示を企画中です。GW明けのブログにてご紹介をいたします。
タグ:SVM-03
posted by デベマネ at 10:42| Comment(0) | SVシリーズ

2014年04月28日

SVI-06用イメージセンサ接続ケーブルを作る

SVI-06とオムニビジョン社製カメラOV7670を接続基板を作成して接続を行う「OV7670とSVI-06をつなぐ中継基盤をつくろう」を掲載しました。
この記事では、カメラモジュールとSVI-06をつなぐ中継基盤を手はんだにより作成する内容でした。

今回は中継基盤を作成するのではなく、もう少しお手軽にフラットケーブルを使用してカメラモジュールとSVI-06をつなぐ方法をご紹介します。
※ご注意:全てのカメラモジュールと接続できる保証はありません。この内容をもとにケーブルを作成される場合にはカメラモジュール等の仕様も検討のうえご判断ください。


今回作成するケーブルの特徴は次のようなものになります。
・8ビットデータ出力のカメラモジュールを使用し、SVI-06ボード1枚に対して2つ接続可能
・カメラモジュールが1つでも使用可能
・カメラとの通信はI2Cにて行う
・カメラ電源は1電源および2電源タイプに対応


カメラ接続ケーブルを作るために準備するものはこちらです。
1.60芯フラットケーブル×1本(今回作成に使用したのは2mリンク先は参考)
2.圧着用コネクタ×1
3.QIコネクタ信号伝達コネクタ(黒)1×1 ×64個
4.QIコネクタ用信号伝達コネクタ用ピン メス×64個
5.ピンヘッダ
6.ラベルシール
7.配線図(2ch_to_1ch_配線図.xlsx


今回作成するケーブルのSVI-06につながる側については、SVI-06のピンヘッダにそのまま差し込めるように、2の圧着用コネクタを接続します。
圧着コネクタを取り付けると下記のようになります。


SVI側圧着コネクタ接続.jpg


次に、カメラ側に接続する方に4. QIコネクタ用信号伝達コネクタ用ピンを取り付けていきます。60芯ケーブルですが、1芯ずつはがしてピンを取り付けます。


圧着コネクタ取り付け時.jpg


取り付け終わるとこのような形になります。このコネクタは圧着ペンチ等の圧着専用の工具を使用して接続を行います。ちなみに今回使用した圧着工具は「大西 圧着工具コネクターピン用(ワイヤーストリッパー付)」です。

このコネクタの取り付けは慣れると2分くらいでできましたが、慣れるまでが大変で、圧着したと思い引っ張ったら、抜けてしまうという失敗を何回かしました。ですので、初めての方はいきなりコネクタに圧着せずに数本練習用のケーブルで試してから本番のコネクタの圧着にうつるほうがよいと思います。

コネクタピンをつけたら、この上に3. QIコネクタ信号伝達コネクタを取り付けます。


圧着コネクタに被せる.jpg


取り付けるとこのようになります。先ほどのコネクターピンの金属がすべて見えなくなります。

これを60芯すべてに適用してできたものがこちらです。


コネクタを取り付けたフラットケーブル.jpg


なかなかの力作です。この状態のケーブルを作るのに半日以上かかりました。

これで事前の準備が完了しました。
次からは配線図をもとにいくつかのケーブルをつなぎ合わせていきます。

まず、配線図を見てください。


配線図概要.jpg


詳細な配線図は(2ch_to_1ch_配線図.xlsx)をダウンロードしてみていただければと思いもますが、SVI-06のピンヘッダはCN4とCN5に分かれています。
CN4が50ピン、CN5が10ピンの計60ピンとなります。データ長が16ビットのカメラを1台接続するのであればCN4の50ピンの接続で対応できるのですが、今回はSVI-06ボード1枚に2つの8ビットデータ長のカメラを接続するのでCN5の10ピンも使用しています。(CN5は拡張ピンヘッダになっており必要がある場合にのみ付属しています。通常はCN5にピンヘッダは付属していません。)

※この配線図は2チャネルカメラを接続するための配線図になっています。SVI-06側のピン配置は変更ありませんが、対象となるカメラのピン配置が異なる場合にはカメラ側の配置を適宜修正してから配線をしてください。


2チャネルカメラで共通の配線になっている、VDDLVDDHSDASCLを分岐させます。
まず、分岐させる芯線を真ん中付近で切断します。そして、分岐させるためにもう一本フリーの芯線を接続してはんだ付けします。(はんだづけは素人です。上手にできていません。)

ケーブルはんだづけ1.jpg


はんだづけしたケーブルを、先ほど切断した残りの片側にはんだ付けします。


ケーブルはんだづけ2.jpg

最後に保護のために収縮チューブなどで覆って完了です。


ケーブルはんだづけ3.jpg


これを4本のケーブルすべてに行います。なお、今回は4つを分岐させましたが必要があればほかのケーブルも同様に分岐させます。

次に、配線図を見ながら芯線1本1本にラベルを張っていきます。ラベルを貼るのは人が見てわかりやすくするためだけですので、特に必要ない場合は行う必要はありません。
最後に4.QIコネクタ用信号伝達コネクタ用ピンの先端にピンヘッダを差し込んでおきます。
最後まで終了すると次のようになります。これで完成です。


ケーブルにラベル添付.jpg


さて、最後に作ったケーブルがちゃんと使えるかどうか、2つのカメラモジュールをつなげて
テストしています。
(今回はカメラにいきなり接続していますが、ケーブルの作成が終わったら念のため、テスターを使って導通チェックを行うとよいと思います。)

ケーブルとカメラ接続.jpg

SVI-06とカメラを繋げました。
つなげるときは配線図を見ながら1ピンずつピンヘッダに挿していきます。
くれぐれも間違えないようにしましょう。

では、つなぎ終わったらカメラからの映像をSVI-06に取り込んでPCの画像に映してみましょう。


接続テスト結果.jpg


2chカメラ接続なので、右と左のカメラで異なる対象物を映しています。その映像がSVI-06に取り込まれて、PC画面上にあるアプリケーションで表示されているのがわかるかと思います。
(※SVI-06は2チャンネルカメラ接続用のFPGAを使用しています。)

今回は、SVI-06ボードとカメラをつなぐケーブルを作成しました。
このようにカメラ側が1ピン1ピン接続可能な状態になっていれば、カメラが変わってもケーブルを作り直すことなく、ピンの配置を変更することで流用することが可能です。
カメラモジュールによってピン配置が異なりますので、いろいろなカメラモジュールを扱う場合には便利だと思います。
ただし、ケーブルにはノイズが乗りやすいのでご使用に際してはカメラ等の状況を確認の上ご判断ください。


ネットビジョンは、5/14〜16に東京ビックサイトで行われます組込みシステム開発技術展に出展します。このケーブルを使用した展示も展示予定です。展示会にお越しの際には是非弊社ブースへもお越しください。
【名 称】第17回組込みシステム開発技術展
【会 場】東京ビッグサイト西展示 
【ブース】西3-62
【会 期】2014年 5月14日(水)〜5月16日(金) 10:00〜18:00
posted by デベマネ at 14:03| Comment(0) | SVシリーズ

2014年04月24日

車載カメラ開発にイメージセンサ信号発生ボードSVO-02を!!

最近では、自動車にカメラを複数台搭載してバックの際に自動車後部の画像を映し出したり、ステレオカメラを用いて車の前方の障害物を監視して安全に走行を支援する、システムなどが開発されてきています。EyeSightエマージェンシーブレーキ等の名称で使用されています。
また、エアコンなどにもカメラを搭載し人のいるところだけに風を送るなどの仕組みにも利用されています。

カメラモジュール(イメージセンサ)といえば以前は携帯電話への搭載される以外の活用はほとんどありませんでしたが、最近ではいろいろなところで活用されて始めています。
それに応じてイメージセンサ信号発生ボードSVO-02も活用される場所が増えてきています。

そこで今回は車載カメラシステム開発に弊社製品であるSVO-02を活用する方法ついてご紹介します。


自動車にカメラを搭載して前方の障害物を監視する場合、障害物を監視するシステムを作るには、やはり実際の走行中のカメラ画像を使用して開発を行うのが一番有効だと思います。


車載カメラによる障害物検知概要.jpg

ただし、これを行うにはカメラを実際に自動車に搭載してリアルタイムでアルゴリズムを検証する必要があります。開発者の人も毎回自動車に乗っての試験を繰り返す必要が出てきます。それではさすがに効率が悪いですね!!

そこで、イメージセンサ信号発生ボードSVO-02の出番というわけです。

事前準備としてSVI-06を自動車に積み込み、実際の車載からの映像を撮影して保存します。SVI-06で撮影したデータを会社に持ち帰り、開発者の机上にあるSVO-02から出力します。これにより、車載カメラで撮影したのとまったく同じ映像信号を出力することができます。


SVO-02を活用した車載カメラシステム開発概要.jpg


この仕組みを活用すれば、検証のために毎回車に乗り込んでの検証を行う必要がなくなりアルゴリズム開発を効率的に進めることができるようになります。
また、SVO-02がカメラモジュールの代わりとなりますので、既存のシステムをそのまま使用することができます。

SVO-02を活用いただいている方からは、「カメラで撮影した映像を繰り返し使えるので、ひとつのロジックを何回も机上で検証することができて便利だ」という声も伺っています。

このように、開発のやり方を根本から変えることができるSVO-02ご興味ある方は是非弊社までお問い合わせください。
posted by デベマネ at 11:18| Comment(0) | SVシリーズ

2014年04月21日

FPGA動的再配置ってどんなもの?〜動的再配置の裏側〜

前回は動的再配置を使っての機能追加の方法について、カメラからのデータ信号の反転という例をもとに説明をしました。
動的再配置を活用すれば、SVI-06基本機能部分を開発しなくて済み、ボードのデバッグも不要なので大幅な作業工数の削減が行えます。とても簡単にユーザロジックを組み込むことができる動的再配置を使わない手はないですね。そこで今回は動的再配置の特徴などを説明します。

FPGAのプラグイン的な機構ともいえる動的再配置ですが、この機能を活用する最大のメリットは、SVI-06の基本機能である“ボード上のメモリへ画像を取り込み、その画像データをホストPCへ転送する処理”などの大がかりで煩雑な機能を、開発することなくそのまま活用することができる点にあります。
SVIシリーズは2004年から販売を開始し、イメージセンサを活用する国内外の多くの企業に導入されています。そのため、カメラモジュールやイメージセンサの信号への対応やPCへの画像転送など多くの実績を積み重ねてきております。
そのため、動的再配置を活用したユーザは、ユーザ固有の追加機能開発に集中することができ、短期間でかつ効率的な追加機能の設計、開発、検証、評価を行うことができます。
また、カメラのデータ信号をもとにユーザ固有の機能を自由に追加できますので、データ信号の形式が変更になった場合や、カメラモジュールに限定することなく、様々なデータ入力に対応することができます。


動的再配置利用イメージ.jpg


また、ユーザが作成したFPGAソースコードは弊社を含めて公開することなくSVI-06のFPGAに組み込むことが可能です。これにより、ソースコード共有による知的資産の流出も防ぐことができます。また、FPGAソースコードの自社開発が容易になり委託開発をせずに済むため、開発コストを低く抑えることができます。


動的再配置のメリット.jpg


動的再配置領域で複数のモジュールに対応すれば、SVI-06ボードの汎用性が高まるため新規のボードを開発することなく、SVI-06ボードを多くのモジュールで活用していただくことができます。
動的再配置領域でできることは次のようなものを想定しています。
・カメラI/F変換
・画像の拡大、縮小、圧縮
・色変換
・ホワイトバランス等の画質調整、補正
・画像の解析
・2ch入力(ステレオ・カメラ)
・カメラ以外のセンサやターゲットからのデータ取り込み
・その他カメラの付加機能



便利な機能ではあるものの、デメリットもあると考えています。こちらの仕様に則って追加機能の開発を行っていただくため、ある程度の仕様を把握していただく必要があります。この部分のラーニングコストが発生してしまいます。
また、現時点ではカメラからSVI-06Coreの間のPre-process(前処理)部分のみの追加開発しかできないという点です。実は、このデメリットについては、弊社にて機能開発を進めていけば解決することができます。具体的にはFrame Memoryを処理できる動的再配置領域(Intermediate Process(中間処理))とFrame MemoryとUSB3.0 I/Fに渡す間に動的再配置領域(Post-process(後処理))を追加することを行います。


動的再配置の全体構成.jpg


詳細につきましては弊社サイトの動的再配置ページをご確認ください。



3回に分けて動的再配置の説明を行ってきました。メリット・デメリットをご理解いただいた上でご活用を検討いただければ幸いです。またこの機構自体を自社の仕組みとして組み込みたいといった場合のコンサルティングも可能です。
弊社の製品紹介の色が濃い内容となってしまいましたが、このような技術開発にも取り組んでおります。
ぜひ、興味ありましたら弊社までお問い合わせください。
posted by デベマネ at 10:35| Comment(0) | SVシリーズ

2014年04月14日

FPGA動的再配置ってどんなもの? 〜実際に作ってみよう〜

前回はFPGAプラグイン的な機能である動的再配置の概念について説明をしました。今回は、実際どのようなことができるのか実例を挙げて説明していきます。

FPGAプラグイン的な機能ということからわかる通り、機能を追加するための場所や記述の方法があらかじめ決められています。
そこで今回は、イメージセンサからの入力を受けて、Video Capture Blockへ信号を渡す間の部分に、追加ロジックを記述したいと思います。イメージとしては下図のようになります。


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


追加するのは、イメージセンサから出力されるデータ信号を反転させて取り込むロジックです。
追加ロジックを組み込むための方法が決まっていると説明してきました。これはつまり具体的に言えば、追加ロジックを開発するために必要になる、ISE用プロジェクト一式を弊社から提供してことを意味しています。
この弊社から提供しているプロジェクトに追加したいロジックを追加記述していけば良いわけです。ただし、SVI-06Coreとの接続のためのインターフェイスの名称と役割が仕様として決まっておりますので、仕様を守りつつ追加ロジックを記述する必要があります。インターフェイス名称は下記の通りです。


SVI前処理ブロック名称.jpg


簡単にインターフェイスの説明をします。インターフェイスは大きく6個のポートグループから構成されています。ポートグループそれぞれの役割は次の表のとおりとなります。


ポートグループと機能概要.jpg


なお、ポートグループの詳細等につきましては弊社サイトにある「FPGA動的再配置/SVI-06 《FPGA動的再配置の検討・実装方法》」の説明をご覧ください。


では実際にHDL上で設定をしていきましょう。

1.弊社から提供するCDイメージの中に、動的再配置用のISEプロジェクトが格納されているので、ISEプロジェクト一式をPCのハードディスクにコピーします。

<コピー対象フォルダ>
SVI-source\FPGA\SVI06-TOP_DPRPRExxxxxxPub_Vvvv
(xxxxxx:リリース年月日6桁、vvv:リリースしたFPGAバージョン番号)

2. ISE Project Navigatorを起動。

3.File →Open Projectから、「SVI06_TOP.xise」を開きます。(「SVI06_TOP.xise」は1でコピーしたフォルダ直下に格納されています。)下記画面が表示されます。


ISE画面.jpg

4.開いたプロジェクトの中に、「MSviPreprocessBlock_06Stdvvv.v」(vvv:バージョン番号)がありますので、このファイルをこのプロジェクトから削除します。

5. SVI-source\FPGA\SVI06-TOP_DPRPRExxxxxxPub_Vvvv\src\dprpreフォルダ内に「MSviPreprocessBlock_06Empvvv.v」があるのでこれをプロジェクトに読み込みます。

4.5で読み込んだファイルを開きます。

5.ファイルの184行目の「wCamDtS」の前にチルダを追加して保存をおこないます。(反転ロジック追加部分)
修正前:rCamDtI <= wCamDtS;
修正後:rCamDtI <= ~wCamDtS;


反転ロジック追加の様子.jpg

6.DesignウィンドウのProcessツリーで「Synthesize-XST」をダブルクリックし論理合成を行います。

7.DesignウィンドウのProcessツリーで「Implement Design」をダブルクリックして、回路合成を開始します

8.DesignウィンドウのProcessツリーで「Generate Programming File」をダブルクリックすることで、ビットストリームファイルを作成します。

9.作成したビットストリームファイルを「m_s6dpfpgavvv.bat」フォルダにコピーしバッチファイルをダブルクリックします。

10.SVIUpdateアプリケーションを使用し、9で作成したファイルでSVI-06のFPGAの回路を更新します。


FPGAアップデート画面.jpg
このようにして、画像反転のロジックを組み込むことができました。最後にロジック組み込み前と組み込み後の違いをご覧ください。


反転ロジック追加前後の比較.jpg


このように、SVI-06が持っている機能をフル活用して、簡単にカメラからの信号を変換することができました。このFPGAのプラグイン的な機構ともいえる動的再配置を利用して多くの機能が開発されるといいなと思います。
動的再配置で開発したHDLは弊社に公開する必要はありませんし、自由に販売等されても問題ございません。この詳細につきましては弊社Webサイトにある動的再配置のページをご覧ください。
ぜひ、動的再配置の機構や活用の仕方に興味ありましたら弊社までご連絡ください。

次回はこの動的再配置を利用してどのようなことができるのか、どのようなメリット・デメリットなどご紹介いたします。
posted by デベマネ at 11:58| Comment(0) | SVシリーズ

2014年04月08日

FPGA動的再配置ってどんなもの?〜FPGAにもプラグイン機能を〜

イメージレコーダーSVI-06には、「FPGA動的再配置」という機能が搭載されています。実はすごい便利な仕組むなのですが、それを含めて今回から3回ほどこの機能について説明をしていければと思います。

この機能は誤解を恐れずに端的に言ってしまえば、“FPGA版プラグイン機能”といえます。
プラグインとしてわかりやすい例を挙げるとすれば、Webブラウザである、FirefoxやGoogle Chromeに搭載されています。現時点でこれらのプラグインは無数に存在し様々な機能を提供しています。プラグイン作成のための仕様が公開されており、仕様に準拠した形でプラグイン製作者は自由に開発を行うことができます。

FPGA動的再配置もWebブラウザのプラグインの概念をイメージしていただけるとわかりやすいと思います。イメージレコーダーSVI-06は、FPGAにおいてイメージセンサ信号の解釈や、PCへのデータ転送等のロジック(回路機能)を提供しています。この回路機能群をここでは便宜上、「SVI-06Core」と呼びます。SVI-06のユーザはSVI-06ボードを使用することでこの基本機能であるSVI-06Coreを活用し他カメラ開発を行うことができます。

今回のFPGA動的再配置とは、このSVI-06Coreを活用しつつユーザー独自の追加ロジックをプラグインを開発するかの如く開発をすることができるようになります。


動的再配置イメージ .jpg


FPGA動的再配置とは、「FPGAにプラグイン的な機構を導入することにより、ユーザ独自の機能拡張が行いやすくなる機能」といえます。つまり、FPGAのプログラマブルな部分をさらに柔軟に運用できるようになります。この技術は東京農工大学関根研究室の研究を発展させたネットビジョン独自の技術となります。

この技術を使用することのメリットとしては次の2点があります
1.ユーザはSVI-06Core機能がそのまま活用できるため、基本機能開発が不要
2.ユーザが独自に開発したロジック部分のFPGAソースコードを公開しなくてよい

まさに、Webブラウザのプラグインのごとく使用することができるのです。

とはいえ、本当にそんなことができるのかと思われる方も多いと思いますので次回では、動的再配置を使った簡単なサンプルを例として手順をご紹介していきます。
posted by デベマネ at 10:22| Comment(0) | SVシリーズ

2014年03月31日

SVIMonプラグイン機能の紹介

開発部ブログでは、過去にオムニビジョン社のOV7670を接続したりFX3の高速化についての記事を掲載したりと、弊社の主力製品であるSVI-06ボードを使用していろいろな検証をしてきました。これまでは主にハードウェアが中心の内容となっていました。
そこで今回は、SVI-06に標準で付属しています画像を表示するためのソフトウェアとそのソフトウェアの便利機能であるプラグイン機能について書いてみたいと思います。

SVI-06ボードでキャプチャーしたイメージセンサ等のデータは、USB3.0経由により、PC上のSVI-06専用ソフトウェアである「SVIMon」により画像データとしてリアルタイムに確認することができます。この、「SVIMon」はSVI-06ボードを購入いただくと標準で付属しています。


SVIMonImage.jpg

「SVIMon」の機能としては、
・画像データの表示・保存
・入力画像のYUVやRGB等のカラーフォーマット対応
・Sync Mode/Data Input Timingの変更設定
・プラグイン機構の搭載と便利プラグインの提供

といった機能があります。画像データ表示や保存などの機能は基本機能としてご活用いただいておりますが、弊社として便利なのに一番活用されていないと感じているのがプラグイン機能です。
そこで今回はこのプラグイン機能について説明をします。

プラグインとは、「アプリケーションソフトウェアの機能を拡張するために追加するプログラムの一種」(Wikipedia調べ)です。SVIMonにはプラグインを動作させることができる機構が搭載されており、その仕組みを利用すれば、拡張プログラムをだれでも簡単に作ることができます。

SVIMonにも弊社で作成したプラグインがいくつか付属しています。主なプラグインとして下記のようなものを提供しています。


<Easy Logic Analyzer(簡易ロジックアナライザ)>
Easy-Logic-Analyzer.jpg
datファイル(弊社独自形式ファイル)のデータをLogicAnalyzerのような波形として簡易的な表示をすることが可能です。


<Vector Scope(ベクタースコープ)>
Vector-Scope_Image.jpg
画面上にCb、Crをベクトル化して描画します


<Waveform(波形モニター)>
Waveform_Image.jpg
画像の指定した1ライン(HまたはV)を取得して、YUV・RGBの各値を表示します。



これらのプラグインは多くのお客様にご使用いただいております。それぞれのプラグインの機能の詳細については、ソフトウェアに付属の説明書をお読みください。

この機構を利用してお客様ご自身でもプラグインを開発することができます。初めて開発する場合でも、Visual Studio2008で作成したサンプルプロジェクトを提供しておりますので、必要な部分のみ追加することで簡易に開発を行うことができます。
また、アクセスできるデータもSVI-06ボードから取得したデータにそのままアクセスすることができますので、カメラの画サイズやカメラフレームレート、また画像データを使用したプラグインを作成することができます。

SVI-06ボードからの画像データを表示するアプリケーション「SVIMon」とプラグインについて説明をしました。ご興味ありましたら弊社までお問い合わせください。

ソフトウェアではプラグインは一般的な機能になりつつあると思いますが、ハードウェアにもこのような、ハードウェアの機能を拡張するプログラムを追加できたらいいなと思いませんか? 

実は、それができる仕組みがSVI-06にはあります。
そこで次回から、FPGA版プラグイン機能ともいえるFPGA動的再配置についてブログを書いていきたいと思います。
posted by デベマネ at 14:06| Comment(0) | SVシリーズ