FC2カウンター FPGAの部屋 Vivado HLS でRGB2HSV IPを作る2(Cシミュレーション)

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Vivado HLS でRGB2HSV IPを作る2(Cシミュレーション)

Vivado HLS でRGB2HSV IPを作る1(UNROLL指示子による性能向上)”の続き。

前回はUNROLL指示子による性能向上が図れることを示したが、C ソースコードが間違っていた。現在は修正済みだ。
今回は、テストベンチを作成し、C シミュレーションを行った。

どんなテストベンチかというと、BMP画像を読み込んで、RGB2HSV 変換を行い、Hだけの強度の画像としてBMP画像にする。S と V も同様に強度のBMP画像を生成する。

ちなみに、H は色相(Hue)、S は彩度(Saturation)、V は明度(Value)だそうだ。(”RGBとHSV・HSBの相互変換ツールと変換計算式”参照)

rgb2hsv のVivado HLS プロジェクトを示す。
rgb2hsv_5_161014.png

C シミュレーションのレポートを示す。
rgb2hsv_6_161014.png

最初に下図の原画像を用いてRGB2HSV のC シミュレーションを行った。
rgb2hsv_7_161014.png

なお、固定小数点のハードウェア化関数とソフトウェアの浮動小数点数演算との2乗誤差を計測している。現在は 4 より大きいとエラーになるように設定されている。固定小数点の小数点のビット数は現在は 8 に設定されている。

それでは、H(色相)の画像を示す。左の画像が固定小数点のハードウェア化関数の画像で、右の画像がソフトウェアの浮動小数点数演算での画像だ。なお、H は 360 までの値だが、それを 255 までにスケールを変えて表示している。
rgb2hsv_8_161014.png

次に、S(彩度)の画像を示す。
rgb2hsv_9_161014.png

V(明度)の画像を示す。
rgb2hsv_10_161014.png

良さそうだ。

次に道路の写真 road_1.bmp をRGB2HSV 変換した結果を示す。

最初に原画像を示す。
rgb2hsv_11_161014.jpg

H(色相)の画像を示す。左の画像が固定小数点のハードウェア化関数の画像で、右の画像がソフトウェアの浮動小数点数演算での画像だ。
rgb2hsv_12_161014.jpg

次に、S(彩度)の画像を示す。
rgb2hsv_13_161014.jpg

V(明度)の画像を示す。
rgb2hsv_14_161014.jpg
  1. 2016年10月14日 04:59 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3601-3f4c15b8
この記事にトラックバックする(FC2ブログユーザー)