Vivado HLS応用実験

C/C++ベースの音声信号処理に挑戦

ZYBO Z7-20には音声入出力用のジャックが備わっています.これを利用すると外部からの音声信号を取り込みFPGAで処理することができます.信号は,SSM2603というICでA/D変換されます.SSM2603とFPGAはI2Sで音声データをやりとりすることができます. 音声信号の送受信はHDLモジュールで記述したものを利用することとして,ここでは,音声信号処理のカーネルをC/C++で実装してみましょう.

たとえば,

  • 規定値より大きな値がきたときだけ音声を出力する,
  • 平滑化フィルタで音を滑らかにする,
  • 他の音源とまぜあわせる
  • 圧縮・伸長する

などが考えられます. pragmaをうまく活用してパイプライン化することで,音声信号をリアルタイムに処理することができます.

発展: C/C++ベースの画像処理に挑戦

準備

ZYBO Z7-20にはHDMIの入力と出力があります.この入出力を利用するアプリケーションを開発してみましょう.

画像処理の課題例

Xilinxからは,OpenCV関数相当の画像処理ルーチンxfOpenCVが提供されています.それらを使用することで比較的容易に複雑な画像処理をFPGA上に実装できます.それらを使用するか,あるいは,自分でC/C++で画像処理ルーチンを書いてFPGAでの画像処理に挑戦してみましょう.

たとえば,

  • 左右の反転.
  • アップコンバージョン/ダウンコンバージョン
  • 平滑化フィルタで画像を滑らかにする,
  • 圧縮・伸長する

などが考えられます.

音声信号処理同様,あるいは,音声信号処理以上に,pragmaをうまく活用してパイプライン化することでリアルタイムに処理できるハードウェアの設計がもとめられます.