大堀/論文/論文4
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[大堀/論文]]
//研究室限定
*[Configurable Hardware Architecture for Real-Time Window-Based Image Processing] [#h55bedfe]
のまとめ・メモなど。
*リアルタイム画像処理のための配置可能なハードウェアアーキテクチャ [#f9a7344a]
-特性
--シストリックアーキテクチャ
---特定の演算能力(ここでは、フィルタなどの処理)をもつアレイ列にリズミカルにデータを送り込み、並列演算を行うアーキテクチャのこと。
--パイプラインアーキテクチャ
-上記アーキテクチャは、多くの画像処理に使える。
*イントロ [#z5bc705b]
-Window-Basedな画像処理
--画像を解析、情報を補間するために、膨大な量のデータ上で、低いレベルの処理を多重に行う。
--局所的な比較、計算処理を多重に行う。
--入力:画像データ
--出力:特徴を意味する記号的な量、画像内における物体の位置。
--画像を処理する基礎算術と比較すると、window-based画像処理は複雑
--計算量:O(w^2*M*N) for M*N image with a w*w mask
--例:640x480 で 3x3のマスクを使うと、計算量は、O(9x640x480)となる。
--リアルタイム処理をしようとすると、複雑性が増す。
--640x480 pixelsの画像を処理するのには、50,000,000以上の命令が必要。
--リアルタイムで640x480 pixelsの画像を処理するためには、ギガ単位の命令を処理できる計算機が必要。
--画像処理には、コプロセッサが必要 → 画像処理用の計算回路を作る必要がある。
---コプロセッサ:386までは、浮動小数点演算を行うコプロセッサが存在した。
---486以降のCPUha浮動小数点ユニットやメモリ管理ユニットを内蔵しているので、コプロセッサは必要ない。
--高性能なパフォーマンスを得るには、並行、並列処理が必要。
*ハードウェアアーキテクチャについて [#n9346a1c]
-主な流れ
+入力画像データと、マスクデータが計算用回路に流れる。
--入力画像データは、行毎にスキャンされる。
--行毎にスキャンされたデータは、内部で配列として処理される。
+処理を行う。
+処理されたデータは、データ集積用の回路に送られ、一枚の画像データとしてまとめられる。
+出力画像データは、出力画像メモリに格納される。
-主な構成:詳しくはFig.1参照
--Control and Management Unit
--Address Generator
--Global Data Collector
--Array of Configurable Window Processor
**Control and Management Unit [#ib772052]
-データの流れを制御する。
-アーキテクチャに表れた異なる命令の同期をとる。
**Address Generator [#p05ccb60]
-画像データにアクセスするためのアドレスを作る。
-入力画像データと、マスクデータは行毎に読み込まれる。列毎も、やろうと思えば可能。
-上記より、入力画像データ、マスクデータはAddress Generatorを通さずに回路で使用することができる。
-処理後の画像データを出力画像メモリに格納するときに、アドレスを作り出す。
**Global Data Collector [#s964b6cc]
-配列全体の画像データを集める。
-画像データ全体は、出力画像メモリに格納される。
**Array of Configurable Window Processor [#d188ec6f]
-このアーキテクチャの計算のコア部分。
-2次元のシストリックアレイ 詳しくは、Fig.2
-CWP
--Configurable Window Processor
--シストリックアレイ
--マスクデータの伝送のために、遅延線Dに繋がる。
--構成要素
---ALU-like processor(AP):一つのCWPをまとめる。
---ACC
---z^(-1)
--処理は逐次進む。
--それぞれのCWPは、サイクル毎に、異なるマスクデータを受け取る。
--全CWPは、サイクル毎に、同じ入力画像データを受け取る。
--待ち時間後、結果の値がCWP列から流れてくる。
--一度、結果がdata collectorによって結果が生成されると、新しい計算処理を開始する準備が整う。
--このアーキテクチャは、画像の初めから終わりまで同じ処理を行う。
-D
--遅延線
--サイズ:並行に処理する列の数による。
--WxWCWPアレイ用の遅延線は、(W-1)個のレジスタからなる。
*実行結果、パフォーマンス [#fdbb6748]
|実行環境|VirtexE XCV200E-6 BGA560|
|使用言語|VHDL|
|画像サイズ|512x512|
**結果 [#g86446a7]
|Complete Architecture(7x7 CWPs)|2604slices|
|Single CWP|54slices|
|FPGA percentage|13%|
|Maximum frequency|40MHz|
|処理時間|12.6 milliseconds|
|枚数/秒| 80 images/sec(理論値?)|
**他の実行環境との比較 [#hdbae632]
|実行環境・構成|周波数|アーキテクチャ|Windowサイズ|時間|
|PDSP16488 |40MHz|ASIC|8x8|6.56ms|
|LSI Logic's L64240|20MHz|ASIC|8x8|13.11ms|
|DECchip 21064|200MHz|Multiprocessor|5x5|220ms|
|MAP1000|200MHz|VLIW|7x7|7.9ms|
|VirtexE XCV200E-6 BGA560|40MHz|FPGA-based|7x7|12.6ms|
*結論、今後 [#yc008020]
-膨大な量のCWPを実装して、並列に処理できる列の量を増やした。
--実行時間を0.1msまで下げることができた。
-試験済みアルゴリズム
--convolution
--correlation
--2-D filtering
--feature detection
--template matching
--gray level morphology
-今後用途
--motion estimation
--stereo disparity
-今後実装したら有効だと思われるアルゴリズム
--dynamic reconfiguration
終了行:
[[大堀/論文]]
//研究室限定
*[Configurable Hardware Architecture for Real-Time Window-Based Image Processing] [#h55bedfe]
のまとめ・メモなど。
*リアルタイム画像処理のための配置可能なハードウェアアーキテクチャ [#f9a7344a]
-特性
--シストリックアーキテクチャ
---特定の演算能力(ここでは、フィルタなどの処理)をもつアレイ列にリズミカルにデータを送り込み、並列演算を行うアーキテクチャのこと。
--パイプラインアーキテクチャ
-上記アーキテクチャは、多くの画像処理に使える。
*イントロ [#z5bc705b]
-Window-Basedな画像処理
--画像を解析、情報を補間するために、膨大な量のデータ上で、低いレベルの処理を多重に行う。
--局所的な比較、計算処理を多重に行う。
--入力:画像データ
--出力:特徴を意味する記号的な量、画像内における物体の位置。
--画像を処理する基礎算術と比較すると、window-based画像処理は複雑
--計算量:O(w^2*M*N) for M*N image with a w*w mask
--例:640x480 で 3x3のマスクを使うと、計算量は、O(9x640x480)となる。
--リアルタイム処理をしようとすると、複雑性が増す。
--640x480 pixelsの画像を処理するのには、50,000,000以上の命令が必要。
--リアルタイムで640x480 pixelsの画像を処理するためには、ギガ単位の命令を処理できる計算機が必要。
--画像処理には、コプロセッサが必要 → 画像処理用の計算回路を作る必要がある。
---コプロセッサ:386までは、浮動小数点演算を行うコプロセッサが存在した。
---486以降のCPUha浮動小数点ユニットやメモリ管理ユニットを内蔵しているので、コプロセッサは必要ない。
--高性能なパフォーマンスを得るには、並行、並列処理が必要。
*ハードウェアアーキテクチャについて [#n9346a1c]
-主な流れ
+入力画像データと、マスクデータが計算用回路に流れる。
--入力画像データは、行毎にスキャンされる。
--行毎にスキャンされたデータは、内部で配列として処理される。
+処理を行う。
+処理されたデータは、データ集積用の回路に送られ、一枚の画像データとしてまとめられる。
+出力画像データは、出力画像メモリに格納される。
-主な構成:詳しくはFig.1参照
--Control and Management Unit
--Address Generator
--Global Data Collector
--Array of Configurable Window Processor
**Control and Management Unit [#ib772052]
-データの流れを制御する。
-アーキテクチャに表れた異なる命令の同期をとる。
**Address Generator [#p05ccb60]
-画像データにアクセスするためのアドレスを作る。
-入力画像データと、マスクデータは行毎に読み込まれる。列毎も、やろうと思えば可能。
-上記より、入力画像データ、マスクデータはAddress Generatorを通さずに回路で使用することができる。
-処理後の画像データを出力画像メモリに格納するときに、アドレスを作り出す。
**Global Data Collector [#s964b6cc]
-配列全体の画像データを集める。
-画像データ全体は、出力画像メモリに格納される。
**Array of Configurable Window Processor [#d188ec6f]
-このアーキテクチャの計算のコア部分。
-2次元のシストリックアレイ 詳しくは、Fig.2
-CWP
--Configurable Window Processor
--シストリックアレイ
--マスクデータの伝送のために、遅延線Dに繋がる。
--構成要素
---ALU-like processor(AP):一つのCWPをまとめる。
---ACC
---z^(-1)
--処理は逐次進む。
--それぞれのCWPは、サイクル毎に、異なるマスクデータを受け取る。
--全CWPは、サイクル毎に、同じ入力画像データを受け取る。
--待ち時間後、結果の値がCWP列から流れてくる。
--一度、結果がdata collectorによって結果が生成されると、新しい計算処理を開始する準備が整う。
--このアーキテクチャは、画像の初めから終わりまで同じ処理を行う。
-D
--遅延線
--サイズ:並行に処理する列の数による。
--WxWCWPアレイ用の遅延線は、(W-1)個のレジスタからなる。
*実行結果、パフォーマンス [#fdbb6748]
|実行環境|VirtexE XCV200E-6 BGA560|
|使用言語|VHDL|
|画像サイズ|512x512|
**結果 [#g86446a7]
|Complete Architecture(7x7 CWPs)|2604slices|
|Single CWP|54slices|
|FPGA percentage|13%|
|Maximum frequency|40MHz|
|処理時間|12.6 milliseconds|
|枚数/秒| 80 images/sec(理論値?)|
**他の実行環境との比較 [#hdbae632]
|実行環境・構成|周波数|アーキテクチャ|Windowサイズ|時間|
|PDSP16488 |40MHz|ASIC|8x8|6.56ms|
|LSI Logic's L64240|20MHz|ASIC|8x8|13.11ms|
|DECchip 21064|200MHz|Multiprocessor|5x5|220ms|
|MAP1000|200MHz|VLIW|7x7|7.9ms|
|VirtexE XCV200E-6 BGA560|40MHz|FPGA-based|7x7|12.6ms|
*結論、今後 [#yc008020]
-膨大な量のCWPを実装して、並列に処理できる列の量を増やした。
--実行時間を0.1msまで下げることができた。
-試験済みアルゴリズム
--convolution
--correlation
--2-D filtering
--feature detection
--template matching
--gray level morphology
-今後用途
--motion estimation
--stereo disparity
-今後実装したら有効だと思われるアルゴリズム
--dynamic reconfiguration
ページ名: