FC2カウンター FPGAの部屋 2023年09月05日
fc2ブログ

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

FPGAの部屋

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

Vitis HLS 2023.1 で RGB の各色を n 倍する color_converter_RGB24 IP を作成する2

Vitis HLS 2023.1 で RGB の各色を n 倍する color_converter_RGB24 IP を作成する1”の続き。

Vitis HLS 2023.1 で RGB の各色を n 倍する color_converter_RGB24 IP を作成するということで、前回は、ソースコードとテストベンチ・コードを貼って、Vitis HLS 2023.1 で ZUBoard 1CG 用の color_converter_RGB24 プロジェクトを作成した。今回は、その color_converter_RGB24 プロジェクトで C シミュレーションを行った。

C シミュレーションを行った。結果を示す。
zub1cg_pynq_235_230905.png

color_converter_RGB24/solution1/csim/build ディレクトリを示す。
test2.jpg が元の画像ファイルで、color_conv.jpg が色を変換した画像だ。現在は、RGB 各色共に 2 倍にしてある。
org.jpg が元画像と同様の画像を出力したファイルとなる。
zub1cg_pynq_236_230905.png

org.jpg を示す。
zub1cg_pynq_237_230905.jpg

color_conv.jpg を示す。
明るくなっている。
zub1cg_pynq_238_230905.jpg

次に、RGB 各色共に 0.5 倍にしてみよう。
テストベンチ・コード color_converter_RGB24_tb.cpp の 118 行目と 119 行目を以下のように書き換えた。

    color_converter_RGB24(ins, outs, COLOR_CONVwAxiDma, img.rows, img.cols, 0.5, 0.5, 0.5); // ハードウェアのメディアンフィルタ
    color_converter_RGB24_soft(ins_soft, outs_soft, COLOR_CONVwAxiDma, img.rows, img.cols, 0.5, 0.5, 0.5);  // ソフトウェアのメディアンフィルタ


これで、C シミュレーションを行って、成功した。
color_converter_RGB24/solution1/csim/build/color_conv.jpg を見ると暗い画像となった。
zub1cg_pynq_239_230905.jpg

次に RGB の 1色だけ明るくしたり、暗くしたりしてみよう。

R だけ 32 倍にして、GB は 1 倍にした。
テストベンチ・コード color_converter_RGB24_tb.cpp の 118 行目と 119 行目を以下のように書き換えた。

    color_converter_RGB24(ins, outs, COLOR_CONVwAxiDma, img.rows, img.cols, 32.0, 1.0, 1.0); // ハードウェアのメディアンフィルタ
    color_converter_RGB24_soft(ins_soft, outs_soft, COLOR_CONVwAxiDma, img.rows, img.cols, 32.0, 1.0, 1.0);  // ソフトウェアのメディアンフィルタ


これで、C シミュレーションを行って、成功した。
color_converter_RGB24/solution1/csim/build/color_conv.jpg を見ると赤い画像となった。
zub1cg_pynq_240_230905.jpg

R だけ 1/32 (0.03125) 倍にして、GB は 1 倍にした。
テストベンチ・コード color_converter_RGB24_tb.cpp の 118 行目と 119 行目を以下のように書き換えた。

    color_converter_RGB24(ins, outs, COLOR_CONVwAxiDma, img.rows, img.cols, 0.03125, 1.0, 1.0); // ハードウェアのメディアンフィルタ
    color_converter_RGB24_soft(ins_soft, outs_soft, COLOR_CONVwAxiDma, img.rows, img.cols, 0.03125 1.0, 1.0);  // ソフトウェアのメディアンフィルタ


これで、C シミュレーションを行って、成功した。
color_converter_RGB24/solution1/csim/build/color_conv.jpg を見ると赤が抜けた画像となった。
color_conv.jpg

G だけ 32 倍にして、RB は 1 倍にした。
テストベンチ・コード color_converter_RGB24_tb.cpp の 118 行目と 119 行目を以下のように書き換えた。

    color_converter_RGB24(ins, outs, COLOR_CONVwAxiDma, img.rows, img.cols, 1.0, 32.0, 1.0); // ハードウェアのメディアンフィルタ
    color_converter_RGB24_soft(ins_soft, outs_soft, COLOR_CONVwAxiDma, img.rows, img.cols, 1.0, 32.0, 1.0);  // ソフトウェアのメディアンフィルタ


これで、C シミュレーションを行って、成功した。
color_converter_RGB24/solution1/csim/build/color_conv.jpg を見ると緑が強調された画像だった。
zub1cg_pynq_242_230905.jpg

B だけ 32 倍にして、RG は 1 倍にした。
テストベンチ・コード color_converter_RGB24_tb.cpp の 118 行目と 119 行目を以下のように書き換えた。

    color_converter_RGB24(ins, outs, COLOR_CONVwAxiDma, img.rows, img.cols, 1.0, 1.0, 32.0); // ハードウェアのメディアンフィルタ
    color_converter_RGB24_soft(ins_soft, outs_soft, COLOR_CONVwAxiDma, img.rows, img.cols, 1.0, 1.0, 32.0);  // ソフトウェアのメディアンフィルタ


これで、C シミュレーションを行って、成功した。
color_converter_RGB24/solution1/csim/build/color_conv.jpg を見ると青が強調された画像だった。
zub1cg_pynq_243_230905.jpg
  1. 2023年09月05日 04:46 |
  2. Vitis HLS
  3. | トラックバック:0
  4. | コメント:0