”
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 プロジェクトを示す。

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

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

なお、固定小数点のハードウェア化関数とソフトウェアの浮動小数点数演算との2乗誤差を計測している。現在は 4 より大きいとエラーになるように設定されている。固定小数点の小数点のビット数は現在は 8 に設定されている。
それでは、H(色相)の画像を示す。左の画像が固定小数点のハードウェア化関数の画像で、右の画像がソフトウェアの浮動小数点数演算での画像だ。なお、H は 360 までの値だが、それを 255 までにスケールを変えて表示している。

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

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

良さそうだ。
次に道路の写真 road_1.bmp をRGB2HSV 変換した結果を示す。
最初に原画像を示す。

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

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

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