AI/ML画像処理にEfinix FPGAを使う理由と方法第2部:画像キャプチャと処理

著者 Adam Taylor

DigiKeyのヨーロッパ担当編集者の提供

編集者注:FPGAアーキテクチャの新しいアプローチは、機械学習(ML)や人工知能(AI)のニーズに対応するため、よりきめ細かい制御と高い柔軟性をもたらします。2部で構成される本シリーズの第1部では、Efinixが提供するそのようなアーキテクチャの1つと、開発ボードを使用した開発の始め方を紹介しています。この第2部では、カメラなどの外部デバイスや周辺機器と開発ボードとのインターフェース接続、画像処理のボトルネックを解消するためのFPGAの活用方法について解説します。

FPGAは、産業制御、安全、ロボティクス、航空宇宙、自動車など、多くのアプリケーションで重要な役割を担っています。プログラマブル論理コアの柔軟な性質と幅広いインターフェース接続機能によって拡大しているFPGAのユースケースの1つに画像処理があり、機械学習(ML)を展開できます。FPGAは、並列論理構造により、複数の高速カメラインターフェースを持つソリューションの実装に最適です。また、FPGAでは論理内で専用の処理パイプラインを使用できるため、CPUやGPUベースのソリューションに関連する共有リソースのボトルネックを解消することも可能です。

EfinixのTitanium FPGAに関するこの2回目の説明では、FPGAのTi180 M484開発ボードに付属しているリファレンス画像処理アプリケーションを検証します。目的は、設計の構成部分を理解し、FPGA技術によるボトルネックの解消や開発者が利点を得られる部分を特定することです。

Ti180 M484ベースのリファレンス設計

概念的には、リファレンス設計(図1)は、複数のモバイル産業プロセッサインターフェース(MIPI)カメラから画像を受信し、LPDDR4xでフレームバッファリングを行い、高解像度マルチメディアインターフェース(HDMI)ディスプレイに画像を出力します。FPGAメザニンカード(FMC)1枚とボード上の4つのSamtec QSEインターフェースが、カメラ入力とHDMI出力に使用されます。

Efinix Ti180 M484のリファレンス設計の画像図1:概念的には、Ti180 M484リファレンス設計は、複数のMIPIカメラから画像を受信し、LPDDR4xでフレームバッファリングを行い、HDMIディスプレイに画像を出力します。>(画像提供:Efinix)

FMC-QSE拡張カードは、HDMIドーターカードと組み合わせて出力ビデオパスを提供し、3つのQSEコネクタはDFRobot SEN0494 MIPIカメラとのインターフェースとして使用されます。複数のMIPIカメラを使用できない場合は、1台のカメラチャンネルをループバックして使用することで、追加のカメラをシミュレートすることができます。

このアプリケーションは、一見すると簡単そうに見えるかもしれません。しかし、複数の高解像度(HD)MIPIストリームを高フレームレートで受信することは困難です。そこで、複数のMIPIストリームを並行して利用することができるFPGA技術が有効です。

リファレンス設計のアーキテクチャは、FPGAによる並列処理と逐次処理の両方の構造を活用しています。並列構造は画像処理パイプラインの実装に使用され、RISC-VプロセッサはFPGAのルックアップテーブル(LUT)に使用される逐次処理を提供します。

多くのFPGAベースの画像処理システムでは、画像処理パイプラインは入力ストリームと出力ストリームの2つの要素に分けることができます。入力ストリームはカメラ/センサインターフェースに接続され、センサの出力に処理機能が適用されます。ベイヤ変換、オートホワイトバランスなどの機能拡張が可能です。出力ストリームでは、画像を表示するための準備が行われます。これには、色空間の変更(例:RGBからYUV)や、HDMIなどの必要な出力フォーマットへの後処理が含まれます。

多くの場合、入力画像処理チェーンはセンサのピクセルクロックレートで動作します。これは出力チェーンとはタイミングが異なり、出力ディスプレイの周波数で処理されます。

入力と出力の処理パイプラインをつなぐフレームバッファは、LPDDR4xなどの外部高性能メモリに格納されることが多いです。このフレームバッファは、入力パイプラインと出力パイプラインの間を切り離し、適切なクロック周波数でダイレクトメモリアクセスによりフレームバッファにアクセスできるようにします。

Ti180リファレンス設計は、上記で説明した概念と同様のアプローチを採用しています。入力画像処理パイプラインは、Titanium FPGAのMIPI物理層(MIPI D-PHY)対応入出力(I/O)を基盤として構築されたMIPIカメラシリアルインターフェース2(CSI-2)レシーバ知的財産(IP)コアを実装しています。MIPIは、低速通信と高速通信に加え、同じ差動ペアでシングルエンド信号と差動信号の両方を使用するため、簡単ではないインターフェースです。MIPI D-PHYをFPGAのI/Oに統合することで、回路カード設計の複雑さを軽減するとともに、部品表(BOM)を削減することができます。

カメラからの画像ストリームを受信したリファレンス設計は、MIPI CSI-2 RXの出力をAdvanced eXtensible Interface(AXI)Streamに変換します。AXI Streamは、マスターからスレーブへのデータストリームを提供する一方向の高速インターフェースです。マスターとスレーブ間の転送のためのハンドシェイク信号(tvalid、tready)をサイドバンド信号とともに提供します。これらのサイドバンド信号は、フレームの開始やラインの終了などの画像タイミング情報を伝えるために使用することができます。

AXI Streamは画像処理アプリケーションに最適です。これにより、Efinixは、アプリケーションの要求に応じて処理チェーンに簡単に統合できるさまざまな画像処理IPを提供できます。

受信後、MIPI CSI-2画像データとタイミング信号はAXI Streamに変換され、LPDDR4xに画像フレームを書き込み、フレームバッファとして機能するダイレクトメモリアクセス(DMA)モジュールに入力されます。

このDMAモジュールは、Sapphireシステムオンチップ(SoC)内のFPGAのRISC-Vコアの制御下で動作します。このSoCは、LPDDR4xに画像データを正しく書き込むために必要な情報をDMA書き込みチャンネルに提供するだけでなく、DMA書き込みの停止や開始などの制御も行います。これには、メモリ位置の情報と、バイト単位で定義された画像の幅と高さの情報が含まれます。

リファレンス設計の出力チャンネルは、RISC-V SoCの制御の下、LPDDR4xフレームバッファから画像情報を読み出します。データはDMA IPからAXI Streamとして出力され、センサが提供したRAWフォーマットからRGBフォーマット(図2)に変換され、搭載されたAnalog DevicesADV7511 HDMIトランスミッタで出力できるように準備されます。

リファレンス設計から出力されるサンプル画像の画像図2:リファレンス設計から出力されるサンプル画像。(画像提供:アダム・テイラー氏)

また、DMAの使用により、Sapphire SoC RISC-Vからフレームバッファ内に保存された画像や、抽象的な統計情報、画像情報にもアクセスすることができます。また、Sapphire SoCは、オーバーレイをLPDDR4xに書き込んで、出力ビデオストリームと合成することもできます。

最近のCMOSイメージセンサ(CIS)は、いくつかの動作モードを持ち、オンチップ処理、いくつかの異なる出力フォーマットやクロック方式を提供するように構成することができます。この構成は、通常、I²Cインターフェースで提供されます。Efinixのリファレンス設計では、このMIPIカメラへのI²C通信は、Sapphire SoC RISC-Vプロセッサが提供しています。

RISC-VプロセッサをTitanium FPGAに統合することで、設計リスクを高める複雑なFPGAのステートマシンと、BOMに追加する外部プロセッサの両方を実装する必要がなくなり、最終ソリューションの全体サイズを縮小することができます。

また、プロセッサを搭載することで、MicroSDカードと通信するためのIPを追加して対応することも可能です。そのため、後で解析するために画像を保存しておく必要があるといった実用的な用途にも対応できます。

全体として、Ti180リファレンス設計のアーキテクチャは、小型で低コストでありながら高性能なソリューションを実現するように最適化されており、開発者はシステム統合によってBOMコストを削減することができます。

リファレンス設計の主な利点のひとつは、カスタムハードウェアでのアプリケーション開発の始点として利用できることです。開発者は、設計の重要な要素を取り入れ、必要なカスタマイズを加えて構築することができます。これには、EfinixのTinyMLフローを使用して、FPGA上で動作するビジョンベースのTinyMLアプリケーションを実装する機能が含まれます。これにより、FPGA論理の並列性と、RISC-Vプロセッサにカスタム命令を簡単に追加できる機能の両方を活用し、FPGA論理内でアクセラレータを作成することができます。

実装

第1部で述べたように、Efinixのアーキテクチャは、eXchangeable Logic and Routing(XLR)セルを使用して、ルーティングと論理の両方の機能を提供するという点で固有のものです。リファレンス設計のようなビデオシステムは、画像処理機能を実装するために広範な論理が必要であり、必要な周波数でIPセルを接続するために広範なルーティングが必要であるという、論理とルーティングの両方が重い混合型システムです。

リファレンス設計では、デバイス内のXLRセルの約42%を使用しており、エッジMLのようなカスタムアプリケーションなどの追加に十分な余地を残しています。

ブロックRAMとデジタル信号処理(DSP)ブロックの使用も非常に効率的で、640個のDSPブロックのうち4個、メモリブロックの40%しか使用していません(図3)。

コアリソース
入力 1264/3706
出力 1725/4655
XLR 73587/172800
メモリブロック 508/1280
DSPブロック 4/640

図3:Efinixアーキテクチャのリソース割り当てでは、XLRセルの42%しか使用されておらず、追加プロセスのための十分な余地が残されています。(画像提供:アダム・テイラー氏)

デバイスIOでは、LPDDR4xのDDRインターフェースを使用して、Sapphire SoCのアプリケーションメモリと画像フレームバッファが提供されます。デバイス専用のMIPIリソースはすべて利用され、フェーズロックループも50%利用されています(図4)。

周辺リソース
DDR 1/1
GPIO 22/27
HSIO 20.0/59
JTAG User TAP 1/4
MIPI RX 4/4
MIPI TX 4/4
発振器 0/1
PLL 4/8

図4:使用するインターフェースとI/Oリソースのスナップショット。(画像提供:アダム・テイラー氏)

汎用I/O(GPIO)は、NOR FLASH、USB UART、SDカードなど、Sapphire SoCに接続されたいくつかのインターフェースとともに、I²C通信を行うために使用されます。HSIOは、ADC7511 HDMIトランスミッタに高速ビデオ出力を提供するために使用されます。

FPGAで設計する際に重要な要素の1つは、FPGA内で設計を実装してフィットさせるだけでなく、FPGA内に論理設計を配置し、ルーティング時に必要なタイミング性能を達成できるようにすることです。

シングルクロックドメインのFPGA設計の時代はとっくに終わっています。Ti180リファレンス設計では、いくつかの異なるクロックがあり、すべて高い周波数で動作しています。最終的なタイミングテーブルには、システム内のクロックで達成された最大周波数が示されています。ここで、要求されるタイミング性能が制約(図5)でも確認できます。HDMI出力クロックの最大クロック周波数が148.5メガヘルツ(MHz)です。

リファレンス設計におけるクロック制約の画像図5:リファレンス設計のクロック制約。(画像提供:アダム・テイラー氏)

制約に対するタイミングの実装で、Titanium FPGA XLR構造の可能性が示されています。ルーティング遅延の可能性を低減することで設計性能が向上します(図6)。

タイミング
ワーストネガティブスラック(WNS) 0.182ns
ワーストホールドスラック(WHS) 0.026ns
i_pixel_clk 211.909MHz
tx_escclk 261.370MHz
i_pixel_clk_tx 210.881MHz
i_sys_clk 755.858MHz
i_axi0_mem_clk 130.429MHz
i_sys_clk_25mhz 234.577MHz
i_soc_clk 187.231MHz
i_hdmi_clk 233.918MHz
mipi_dphy_rx_inst1_WORD_CLKOUT_HS 273.973MHz
mipi_dphy_rx_inst2_WORD_CLKOUT_HS 262.881MHz
mipi_dphy_rx_inst3_WORD_CLKOUT_HS 204.290MHz
mipi_dphy_rx_inst4_WORD_CLKOUT_HS 207.598MHz
mipi_dphy_tx_inst1_SLOWCLK 201.979MHz
mipi_dphy_tx_inst2_SLOWCLK 191.865MHz
mipi_dphy_tx_inst3_SLOWCLK 165.235MHz
mipi_dphy_tx_inst4_SLOWCLK 160.823MHz
jtag_inst1_TCK 180.505MHz

図6:制約に対するタイミング実装では、Titanium FPGA XLR構造がルーティング遅延を低減し、設計性能を向上させる可能性が示されています。(画像提供:アダム・テイラー氏)

まとめ

Ti180 M484リファレンス設計は、Efinix FPGAと特にTi180の性能を明確に示しています。この設計では、いくつかの固有のI/O構造を活用して、複数の受信MIPIストリームをサポートする複雑な画像処理パスを実装しています。この画像処理システムは、アプリケーションに必要な逐次処理要素を実装したソフトコアSapphire SoCの制御下で動作します。

DigiKey logo

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。

著者について

Image of Adam Taylor

Adam Taylor

Adam Taylor is a world-recognized expert in the design and development of embedded systems and FPGAs for several end applications. Throughout his career, Adam has used FPGAs to implement a wide variety of solutions, from RADAR to safety critical control systems (SIL4) and satellite systems. He also had interesting stops in image processing and cryptography along the way.

Adam is a Chartered Engineer, Senior Member of the IEEE, Fellow of the Institute of Engineering and Technology, Arm Innovator, and Edge Impulse Ambassador. He is also the owner of the engineering and consultancy company Adiuvo Engineering and Training which develops embedded solutions for high-reliability, mission-critical, and space applications. Current projects include ESA Plato, Lunar Gateway, Generic Space Imager, UKSA TreeView, and several other clients across the world.

FPGAs are Adam’s first love: he is the author of numerous articles and papers on electronic design and FPGA design, including over 440 blogs and 30 million plus views on how to use the Zynq and Zynq MPSoC for Xilinx.

出版者について

DigiKeyのヨーロッパ担当編集者