xfOpenCV ライブラリ API リファレンス

FPGA デバイス上のローカル メモリ割り当てを円滑にするため、xfOpenCV ライブラリ関数はコンパイル時パラメーターを持つテンプレートとして提供されています。データは cv::Mat から xf::Mat にコピーされ、できるだけ高いパフォーマンスを達成するため物理的に隣接したメモリに保存されます。処理後、xf::Mat の出力が cv::Mat にコピーされ、メモリに書き込まれます。

xf::Mat 画像コンテナー クラス

xf::Mat は、画像データとその属性を格納するコンテナーとして動作するテンプレート クラスです。

注記: xf::Mat 画像コンテナー クラスは OpenCV ライブラリの cv::Mat クラスと類似しています。

クラス定義

template<int T, int ROWS, int COLS, int NPC>
class Mat {

  public:
    unsigned char allocatedFlag;            // flag to mark memory allocation in this class
    int rows, cols, size;                   // actual image size

#ifdef __SDSVHLS__
    typedef XF_TNAME(T,NPC) DATATYPE;
#else                                       // When not being built for V-HLS
    typedef struct {
        XF_CTUNAME(T,NPC) chnl[XF_NPIXPERCYCLE(NPC)][XF_CHANNELS(T,NPC)];
    } __attribute__ ((packed)) DATATYPE;
#endif

//#if (defined  (__SDSCC__) ) || (defined (__SYNTHESIS__))
#if defined (__SYNTHESIS__) && !defined (__SDA_MEM_MAP__)
    DATATYPE *data __attribute((xcl_array_geometry((ROWS)*(COLS>> (XF_BITSHIFT(NPC))))));//data[ ROWS * ( COLS >> ( XF_BITSHIFT ( NPC ) ) ) ];
#else
    DATATYPE *data;
#endif


    Mat();                                  // default constructor
    Mat(Size _sz);
    Mat(int _rows, int _cols);
    Mat(int _size, int _rows, int _cols);
    Mat(int _rows, int _cols, void *_data);
    Mat(const Mat&);                        // copy constructor

    ~Mat();

    Mat& operator= (const Mat&);            // Assignment operator
//  XF_TNAME(T, XF_NPPC1) operator() (unsigned int r, unsigned int c);
//  XF_CTUNAME(T, NPC) operator() (unsigned int r, unsigned int c, unsigned int ch);
    XF_TNAME(T,NPC) read(int index);
    float read_float(int index);
    void write(int index, XF_TNAME(T,NPC) val);
    void write_float(int index, float val);

    void init (int _rows, int _cols, bool allocate=true);
    void copyTo (void* fromData);
    unsigned char* copyFrom ();

    const int type() const;
    const int depth() const;
    const int channels() const;

    template<int DST_T>
    void convertTo (Mat<DST_T, ROWS, COLS, NPC> &dst, int otype, double alpha=1, double beta=0);
};

パラメーターの説明

次の表に、xf::Mat クラスのパラメーターと説明を示します。

表 1. xf::Mat クラスのパラメーターと説明
パラメーター 説明
rows 画像内の行数または画像の高さ。
cols 画像内の列数または画像の幅。
size データ メンバーに格納されるワード数。値は rows*cols/(number of pixels packed per word) を使用して算出されます。
allocatedFlag メモリ割り当てのステータスを示すフラグ。
*data 画像のピクセルを格納するワードへのクラス パラメーターおよびポインター。

メンバー関数の説明

次の表に、メンバー関数とその説明を示します。

表 2. xf::Mat メンバー関数の説明
メンバー関数 説明
Mat() デフォルトのコンストラクター。ROWS および COLS テンプレート パラメーターを使用して Mat オブジェクトのサイズを初期化します。
Mat(int _rows, int _cols) _rows および _cols 引数を使用して Mat オブジェクトを初期化します。
Mat(const xf::Mat &_src) Mat オブジェクトを別の Mat オブジェクトにクローンするのに役立つコンストラクター。新しく作成されるコンストラクター用に、新しいメモリが割り当てられます。
Mat(int _rows, int _cols, void *_data) _rows、_cols、および _data.引数を使用して Mat オブジェクトを初期化します。このコンストラクターを使用すると、Mat オブジェクトの *data メンバーで _data 引数に割り当てられたメモリが指定されます。*data メンバー用に新しいメモリが割り当てられることはありません。
convertTo(Mat<DST_T,ROWS, COLS, NPC> &dst, int otype, double alpha=1, double beta=0) xf::convertToを参照
copyTo(* fromData) データ ポインターからのデータをコンストラクター内で割り当てられた物理的に隣接したメモリにコピーします。
copyFrom() ポインターを *data メンバーの最初の位置に戻します。
read(int index) 指定の場所から値を読み出し、複数ピクセル/クロックのパケット値として返します。
read_float(int index) 指定の場所から値を読み出し、浮動小数点値として返します。
write(int index, XF_TNAME(T,NPC) val) 複数ピクセル/クロックのパケット値を指定の場所に書き込みます。
write_float(int index, float val) 浮動小数点値を指定の場所に書き込みます。
type() 画像のデータ型を返します。
depth() 画像の深さを返します。
channels() 画像のチャネル数を返します。
~Mat() Mat オブジェクトのデフォルト デストラクターです。

テンプレートのパラメーターの説明

xf::Mat クラスのテンプレート パラメーターは、ピクセルの深さ、画像のチャネル数、各ワードにパックされるピクセル数、画像の行および列の最大数を設定するのに使用します。次の表に、テンプレート パラメーターとその説明を示します。

表 3. xf::Mat テンプレート パラメーターの説明
パラメーター 説明
TYPE ピクセルのデータ型。たとえば、XF_8UC1 は 8 ビットの符号なしの 1 チャネル ピクセルを意味します。その他のデータ型は include/common/xf_params.h を参照してください。
HEIGHT 画像の最大高さ。
WIDTH 画像の最大幅。
NPC 各ワードにパックされるピクセル数。たとえば、XF_NPPC1 は毎ワード 1 ピクセル、XF_NPPC8 は毎ワード 8 ピクセルを意味します。

ピクセル レベルの並列処理

xfOpenCV から関数にインプリメントされる並列処理の量は、設定可能なパラメーターです。ほとんどの関数では、2 つのデータ処理オプションがあります。

  • 1 ピクセル処理
  • 8 ピクセルの並列処理

次の表に、特定の関数で必要な並列処理のレベルを指定するオプションを示します。

表 4. 並列処理のレベルを指定するのに使用できるオプション
オプション 説明
XF_NPPC1 1 クロック サイクルごとに 1 ピクセルを処理
XF_NPPC2 1 クロック サイクルごとに 2 ピクセルを処理
XF_NPPC4 1 クロック サイクルごとに 4 ピクセルを処理
XF_NPPC8 1 クロック サイクルごとに 8 ピクセルを処理

並列処理に使用するマクロ

次の 2 つのマクロは、並列処理で使用できるよう定義されています。

  • XF_NPIXPERCYCLE(flags) マクロ: 1 サイクルごとに処理するピクセル数を返します。
    • XF_NPIXPERCYCLE(XF_NPPC1) は 1 を返します。
    • XF_NPIXPERCYCLE(XF_NPPC2) は 2 を返します。
    • XF_NPIXPERCYCLE(XF_NPPC4) は 4 を返します。
    • XF_NPIXPERCYCLE(XF_NPPC8) は 8 を返します。
  • XF_BITSHIFT(flags) マクロ: 並列処理で最終画像データ画像サイズを得るために画像サイズを右にシフトする回数を返します。
    • XF_BITSHIFT(XF_NPPC1) は 0 を返します。
    • XF_BITSHIFT(XF_NPPC2) は 1 を返します。
    • XF_BITSHIFT(XF_NPPC4) は 2 を返します。
    • XF_BITSHIFT(XF_NPPC8) は 3 を返します。

ピクセルのデータ型

パラメーターのデータ型は、画像内のピクセルの深さとチャネル数の組み合わせによって異なります。このパラメーターの一般的な命名方法は、次のとおりです。
XF_<Number of bits per pixel><signed (S) or unsigned (U) or float (F)>C<number of channels>

たとえば、8 ビット ピクセル、符号なし、1 チャネルのデータ型は XF_8UC1 です。

次の表に、xf::Mat クラスの使用可能なデータ型を示します。

表 5. xf::Mat クラス - 使用可能なデータ型
オプション 1 ピクセルごとのビット数 符号なし/符号付き/浮動小数点型 チャネル数
XF_8UC1 8 符号なし 1
XF_16UC1 16 符号なし 1
XF_16SC1 16 符号付き 1
XF_32UC1 32 符号なし 1
XF_32FC1 32 浮動小数点 1
XF_32SC1 32 符号付き 1
XF_8UC2 8 符号なし 2
XF_8UC4 8 符号なし 4
XF_8UC3 8 符号なし 3
XF_2UC1 2 符号なし 1

データ型の操作

1 クロック サイクルごとに処理するピクセル数と型パラメーターに基づき、異なるデータ型を使用できます。xfOpenCV ライブラリでは、これらのデータ型が内部処理および xf::Mat クラス内で使用されます。次に、サポートされるデータ型をいくつか示します。

  • XF_TNAME(TYPE,NPPC): xf::Mat オブジェクトのデータ メンバーのデータ型を返します。たとえば、XF_TNAME(XF_8UC1,XF_NPPC8)ap_uint<64> を返します。
  • Word width = pixel depth * number of channels * number of pixels to process per cycle (NPPC)
  • XF_DTUNAME(TYPE,NPPC): ピクセルのデータ型を返します。たとえば、XF_DTUNAME(XF_32FC1,XF_NPPC1)float を返します。
  • XF_PTSNAME(TYPE,NPPC): ピクセルの C データ型を返します。たとえば、XF_PTSNAME (XF_16UC1,XF_NPPC2)unsigned short を返します。
注記: ap_uint<>ap_int<>ap_fixed<>、および ap_ufixed<> 型は、高位合成 (HLS) ライブラリに含まれます。詳細は、『Vivado Design Suite ユーザー ガイド: 高位合成』 (UG902) を参照してください。

コード例

次のコードは、Zynq® UltraScale™ プラットフォーム用に SDSoC™ ツールを使用して、画像にガウシアン フィルターを構築するのに必要な設定を示しています。
注記: ビデオがストリーム入力されるリアルタイム アプリケーションの場合、フレーム バッファーの位置が xf::Mat でライブラリ関数を使用して処理されるようにしてください。結果の位置ポインターが渡されて IP が表示されるようになります。

xf_config_params.h

#define FILTER_SIZE_3 1
#define FILTER_SIZE_5 0
#define FILTER_SIZE_7 0
#define RO 0
#define NO 1

#if NO
#define NPC1 XF_NPPC1
#endif
#if RO
#define NPC1 XF_NPPC8
#endif

xf_gaussian_filter_tb.cpp

int main(int argc, char **argv) 
{
cv::Mat in_img, out_img, ocv_ref;
cv::Mat in_gray, in_gray1, diff;
in_img = cv::imread(argv[1], 1); // reading in the color image
		extractChannel(in_img, in_gray, 1);

xf::Mat<XF_8UC1, HEIGHT, WIDTH, NPC1> imgInput(in_img.rows,in_img.cols);
xf::Mat<XF_8UC1, HEIGHT, WIDTH, NPC1> imgOutput(in_img.rows,in_img.cols);

imgInput.copyTo(in_gray.data);

gaussian_filter_accel(imgInput,imgOutput,sigma);

// Write output image
xf::imwrite("hls_out.jpg",imgOutput);
}

xf_gaussian_filter_accel.cpp

#include "xf_gaussian_filter_config.h"

void gaussian_filter_accel(xf::Mat<XF_8UC1,HEIGHT,WIDTH,NPC1> &imgInput,xf::Mat<XF_8UC1,HEIGHT,WIDTH,NPC1>&imgOutput,float sigma)
{
	xf::GaussianBlur<FILTER_WIDTH, XF_BORDER_CONSTANT, XF_8UC1, HEIGHT, WIDTH, NPC1>(imgInput, imgOutput, sigma);
}

xf_gaussian_filter.hpp

#pragma SDS data data_mover("_src.data":AXIDMA_SIMPLE)
        #pragma SDS data data_mover("_dst.data":AXIDMA_SIMPLE)
        #pragma SDS data access_pattern("_src.data":SEQUENTIAL)
        #pragma SDS data copy("_src.data"[0:"_src.size"])
        #pragma SDS data access_pattern("_dst.data":SEQUENTIAL)
        #pragma SDS data copy("_dst.data"[0:"_dst.size"])
        
        template<int FILTER_SIZE, int BORDER_TYPE, int SRC_T, int ROWS, int COLS,int NPC = 1>
        void GaussianBlur(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst, float sigma)
        {
        //function body
        }

データが SDSoC データ ムーバーを使用して外部メモリからフェッチされて、設定モードによって 8 ビットまたは 64 ビット パケットの関数に転送されます。1 ピクセルごとに 8 ビットの場合、8 ピクセルを 64 ビットにパックできます。つまり、8 ピクセルを並列処理に使用できます。

xf_config_params.h ファイルで FILTER_SIZE_3NO マクロをイネーブルにします。 マクロでフィルター サイズが 3x3 に設定され、#define NO 1 マクロで 1 ピクセルの並列処理がイネーブルになります。

xf_gaussian_filter.hpp ファイルで SDSoC 特有のプラグマを指定します。

#pragma SDS data data_mover("_src.data":AXIDMA_SIMPLE)
#pragma SDS data data_mover("_dst.data":AXIDMA_SIMPLE)
#pragma SDS data access_pattern("_src.data":SEQUENTIAL)
#pragma SDS data copy("_src.data"[0:"_src.size"])
#pragma SDS data access_pattern("_dst.data":SEQUENTIAL)
#pragma SDS data copy("_dst.data"[0:"_dst.size"])
注記: SDSoC のハードウェア アクセラレータ関数で使用されるプラグマについては、SDSoC 環境ユーザー ガイド を参照してください。

xf::imread

関数 xf::imread は、指定のファイル パスから画像を読み込み、xf::Mat にコピーして戻します。画像を読み込むことができない場合は (ファイルがない、権限が不適切、サポートされていない無効なフォーマットなど)、関数は終了し、0 以外の戻りコードとエラー文が返されます。
注記: 協調シミュレーションなどの HLS スタンドアロン モードでは、xf::imread ではなく、cv::imread を使用してその後に copyTo 関数を使用します。

API 構文

template<int PTYPE, int ROWS, int COLS, int NPC>
xf::Mat<PTYPE, ROWS, COLS, NPC> imread (char *filename, int type)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 6. xf::imread 関数のパラメーターの説明
パラメーター 説明
PTYPE 入力ピクセルのデータ型。値は type 引数の値によります。
ROWS 読み込む画像の最大高さ
COLS 読み込む画像の最大幅
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
filename 読み込むファイルの名前
type 画像のタイプを示すフラグ。値は次のとおりです。
  • 0: グレー スケール
  • 1: カラー画像

xf::imwrite

関数 xf::imwrite は、画像を指定の xf::Mat からのファイルに保存します。画像のフォーマットは、ファイル名の拡張子に基づいて選択されます。この関数は内部で cv::imwrite を使用するので、cv::imwrite の制限がすべて xf::imwrite にも適用されます。

API 構文

template <int PTYPE, int ROWS, int COLS, int NPC>
void imwrite(const char *img_name, xf::Mat<PTYPE, ROWS, COLS, NPC> &img)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 7. xf::imwrite 関数のパラメーターの説明
パラメーター 説明
PTYPE 入力ピクセルのデータ型。XF_8UC1、XF_16UC1、XF_8UC4、および XF_16UC4 をサポート。
ROWS 読み込む画像の最大高さ
COLS 読み込む画像の最大幅
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
img_name 拡張子を含むファイルの名前
img 保存する xf::Mat 配列

xf::absDiff

関数 xf::absDiff は、xf::Mat と cv::Mat の各ピクセルの絶対差分を計算し、cv::Mat の差分値を返します。

API 構文

template <int PTYPE, int ROWS, int COLS, int NPC>
void absDiff(cv::Mat &cv_img, xf::Mat<PTYPE, ROWS, COLS, NPC>& xf_img, cv::Mat &diff_img )

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 8. xf::absDiff 関数のパラメーターの説明
パラメーター 説明
PTYPE 入力ピクセルのデータ型
ROWS 読み込む画像の最大高さ
COLS 読み込む画像の最大幅
NPC

1 サイクルごとに処理されるピクセル数。1 ピクセル動作の場合は XF_NPPC1、4 ピクセル動作の場合は XF_NPPC4、8 ピクセル動作の場合は XF_NPPC8。

cv_img 比較する cv::Mat 配列
xf_img 比較する xf::Mat 配列
diff_img 出力差分画像 (cv::Mat)

xf::convertTo

xf::convertTo 関数は、入力画像の各ピクセルに対してビット深さ変換を実行します。ソース ピクセル値を適切な型変換を使用してターゲット データ型に変換します。

dst(x,y)= cast<target-data-type>(α(src(x,y)+β))
注記: 出力 Mat と入力 Mat は異なっている必要があります。つまり、変換された画像を入力画像の Mat に格納することはできません。

API 構文

template<int DST_T> void convertTo(xf::Mat<DST_T,ROWS, COLS, NPC> &dst, int ctype, double alpha=1, double beta=0)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 9. xf::convertTo 関数のパラメーターの説明
パラメーター 説明
DST_T 出力ピクセルのデータ型。有効な値は XF_8UC1、XF_16UC1、XF_16SC1、および XF_32SC1 です。
ROWS 読み込む画像の最大高さ
COLS 読み込む画像の最大幅
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセル動作の場合は XF_NPPC1、4 ピクセル動作の場合は XF_NPPC4、8 ピクセル動作の場合は XF_NPPC8。XF_32SC1 と XF_NPPC8 の組み合わせはサポートされません。
dst 変換後の xF Mat
ctype 変換タイプ。有効な値は次のとおりです。

//Down-convert:

  • XF_CONVERT_16U_TO_8U

  • XF_CONVERT_16S_TO_8U

  • XF_CONVERT_32S_TO_8U

  • XF_CONVERT_32S_TO_16U

  • XF_CONVERT_32S_TO_16S

//Up-convert:

  • XF_CONVERT_8U_TO_16U

  • XF_CONVERT_8U_TO_16S

  • XF_CONVERT_8U_TO_32S

  • XF_CONVERT_16U_TO_32S

  • XF_CONVERT_16S_TO_32S

alpha オプションのスケール係数
beta スケール値に追加するデルタ (オプション)

xfOpenCV ライブラリ関数

xfOpenCV ライブラリは、Zynq-7000 および Zynq UltraScale+ MPSoC デバイス用に最適化された OpenCV 関数のセットです。次の表に、xfOpenCV ライブラリ関数を示します。

表 10. xfOpenCV ライブラリ関数
計算 入力処理 フィルター その他
絶対差分 (absdiff) ビット深度変換 (convertTo) バイラテラル フィルター (bilateralFilter) Canny 法によるエッジ検出 (Canny)
累積 (accumulate) チャネル結合 (merge) ボックス フィルター (boxFilter) FAST コーナー検出 (fast)
累積二乗 (accumulateSquare) チャネル抽出 (extractChannel) カスタムたたみ込み (filter2D) Harris コーナー検出 (cornerHarris)
累積重み (accumulateWeighted) 色変換 膨張 (dilate) ヒストグラム計算 (calcHist)
Atan2 ヒストグラム均一化 (equalizeHist) 収縮 (erode) 高密度ピラミッド型 LK オプティカル フロー (DensePyrOpticalFlow)
ビット単位 AND (bitwise_and)ビット単位 NOT (bitwise_not)ビット単位 OR (bitwise_or)ビット単位 XOR (bitwise_xor) ルックアップ テーブル (LUT) ガウシアン フィルター (GaussianBlur) 高密度非ピラミッド型 LK オプティカル フロー (DenseNonPyrLKOpticalFlow)
勾配の大きさ (magnitude) リマップ (remap) Sobel フィルター (Sobel) MinMax ロケーション (minMaxLoc)
勾配位相 (phase) 解像度変換/リサイズ (resize) メジアン フィルター (medianBlur) しきい値処理 (Threshold)
積分画像 (integral) convertScaleAbs Scharr フィルター (Scharr) SVM
インバース/逆数 (Inverse) モザイク処理 (demosaicing)   Otsu 法のしきい値処理 (OtsuThreshold)
ピクセル加算 (add) 切り抜き (crop)   平均値シフト追跡 (MeanShift)
ピクセル乗算 (multiply) Reduce   HOG (HOGDescriptor)
ピクセル減算 (subtract) 境界ボックス (BoundingBox)   ステレオ ローカル ブロック マッチング (StereoBM)
平方根 (Sqrt)     ワープ変換 (warpTransform)
平均および標準偏差 (meanStdDev)     ピラミッド アップ (pyrUp)
スカラー値との加算 (addS)比較 (compare)スカラー値との比較 (compareS)最大 (Max)MaxS最小 (Min)MinS設定 (set)subRSSubSzero     ピラミッド ダウン (pyrDown)
和 (sum)     遅延 (delayMat)
加重和 (addWeighted)     複製 (duplicateMat)
      色しきい値処理 (colorthresholding)
      BGR2HSV
      InitUndistortRectifyMapInverse
      ハフ変換に基づく線分の抽出 (Houghlines)
      ステレオ ローカル ブロック マッチング (StereoBM)
      paintmask
      inRange
      カルマン フィルター
  1. HoughLines および HOG (RB モード) を除き、関数でサポートされる最大解像度は 4K です。
注記: Zynq-7000 SoC ZC702 デバイスでは、1 サイクルごとに 8 ピクセル モードの解像度変換/リサイズ (resize)高密度ピラミッド型 LK オプティカル フロー (DensePyrOpticalFlow)高密度非ピラミッド型 LK オプティカル フロー (DenseNonPyrLKOpticalFlow) 関数はリソース使用量が多くなるためサポートされません。
注記: 1 クロックごとのピクセル数は、デバイスでサポート可能な最大バス幅によって異なります。

たとえば、Zynq-7000 SoC には 64 ビット インターフェイスがあるので、ピクセルのデータ型は 16UC1、1 クロックごとに最大 4 ピクセル (XF_NPPC4) が可能です。

絶対差分 (absdiff)

API 構文

absdiff 関数は、2 つの入力画像のビット単位の絶対差分を算出し、出力画像を返します。入力および出力画像は XF_8UC1 タイプである必要があります。



説明:
  • Iout(x, y): 出力画像の (x,y) 位置での強度。
  • Iin1(x, y): 最初の入力画像の (x,y) 位置での強度。
  • Iin2(x, y): 2 つ目の入力画像の (x,y) 位置での強度。
template<int SRC_T, int ROWS, int COLS, int NPC=1>
void absdiff(
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src1,
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src2,
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> dst )

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 11. absdiff 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力および出力のピクセルのデータ型。8 ビット、符号なし、1 および 3 チャネル (XF_8UC1、XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル動作の場合は 8 の倍数で指定。
NPC

1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。

src1 入力画像
src2 入力画像
dst 出力画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのリソース使用量を示します。

表 12. absdiff 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 62 67 17
8 ピクセル 150 0 0 67 234 39

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのパフォーマンス見積もりを示します。

表 13. absdiff 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.69

OpenCV との違い

absdiff 関数では 8 ビット ピクセルがサポートされることを除き、OpenCV と同じです。

累積 (accumulate)

accumulate 関数は、画像 (src1) をアキュムレータ画像 (src2) に追加し、累積結果 (dst) を生成します。

API 構文

template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1> 
void accumulate (
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src1, 
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src2, 
xf::Mat<int DST_T, int ROWS, int COLS, int NPC> dst )

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 14. accumulate 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 および 3 チャネル (XF_8UC1、XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。16 ビット、符号なし、1 および 3 チャネル (XF_16UC1、XF_16UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル動作の場合は 8 の倍数で指定することを推奨。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
src1 入力画像
src2 入力画像
dst 出力画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのリソース使用量を示します。

表 15. accumulate 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 62 55 12
8 ピクセル 150 0 0 389 285 61

次の表に、Xczu9eg-ffvb1156-1-i-es1 で 3 チャネルの 4K 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのリソース使用量を示します。

表 16. accumulate 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 1 207 72 32

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのパフォーマンス見積もりを示します。

表 17. accumulate 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.7

OpenCV との違い

OpenCV では、累積画像は 2 番目の入力画像に格納されます。src2 画像は、次に示すように入力および出力の両方として使用されます。

xfOpenCV インプリメンテーションでは、累積画像は次に示すように別に格納されます。



累積二乗 (accumulateSquare)

accumulateSquare 関数は、画像 (src1) をアキュムレータ画像 (src2) に追加し、累積結果 (dst) を生成します。



src2 を累積結果とするのではなく、別の引数が使用されます。このインプリメンテーションではストリームが使用されるので、双方向アキュムレータは使用できません。

API 構文

template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1> 
void accumulateSquare (
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src1, 
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src2, 
xf::Mat<int DST_T, int ROWS, int COLS, int NPC> dst)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 18. accumulateSquare 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 および 3 チャネル (XF_8UC1、XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。16 ビット、符号なし、1 および 3 チャネル (XF_16UC1、XF_16UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅 (8 ピクセル動作の場合は 8 の倍数で指定)
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
src1 入力画像
src2 入力画像
dst 出力画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのリソース使用量を示します。

表 19. accumulateSquare 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 1 71 52 14
8 ピクセル 150 0 8 401 247 48

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で 3 チャネルの 4K 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのリソース使用量を示します。

表 20. accumulateSquare 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 3 227 86 37

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのパフォーマンス見積もりを示します。

表 21. accumulateSquare 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.6

OpenCV との違い

OpenCV では、累積二乗画像は 2 番目の入力画像に格納されます。src2 画像は入力および出力の両方として使用されます。



xfOpenCV インプリメンテーションでは、累積二乗画像は別に格納されます。

累積重み (accumulateWeighted)

accumulateWeighted 関数は、入力画像 (src1) とアキュムレータ画像 (src2) の加重和を計算し、結果を dst に生成します。



src2 を累積結果とするのではなく、別の引数が使用されます。このインプリメンテーションではストリームが使用されるので、双方向アキュムレータは使用できません。

API 構文

template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1> 
void accumulateWeighted (
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src1, 
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src2, 
xf::Mat<int DST_T, int ROWS, int COLS, int NPC> dst, 
float alpha )

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 22. accumulateWeighted 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 および 3 チャネル (XF_8UC1、XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。16 ビット、符号なし、1 および 3 チャネル (XF_16UC1、XF_16UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル動作の場合は 8 の倍数で指定することを推奨。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
src1 入力画像
src2 入力画像
dst 出力画像
alpha 入力画像に適用される重み

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのリソース使用量を示します。

表 23. accumulateWeighted 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 5 295 255 52
8 ピクセル 150 0 19 556 476 88

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で 3 チャネルの 4K 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのリソース使用量を示します。

表 24. accumulateWeighted 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 9 457 387 95

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのパフォーマンス見積もりを示します。

表 25. accumulateWeighted 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.7

OpenCV との違い

OpenCV の結果の画像が 2 つ目の入力画像に格納されます。src2 画像は次に示すように入力および出力の両方として使用されます。

xfOpenCV でインプリメンテーションでは、累積重み画像は別に格納されます。

スカラー値との加算 (addS)

addS 関数は、入力画像 src のピクセルと指定のスカラー値 scl を加算し、結果を dst に保存します。

dst(x,y)= src(x,y) + scl

(x,y) はピクセルの空間座標です。

API 構文

template<int POLICY_TYPE, int SRC_T, int ROWS, int COLS, int NPC =1>
void addS(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1, unsigned char _scl[XF_CHANNELS(SRC_T,NPC)],xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 26. addS 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) をサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。N ピクセルの並列処理の場合、幅は N の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src1 1 つ目の入力画像
_scl 入力スカラー値。サイズはチャネル数。
_dst 出力画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA 用に Vivado HLS 2019.1 ツールを使用して生成された Resource Optimized (8 ピクセル) モードと Normal モードの AddS 関数のリソース使用量を示します。

表 27. addS 関数のリソース使用量のサマリ
名前 リソース使用量
1 クロックごとに 1 ピクセル動作 8 クロックごとに 1 ピクセル動作
300 MHz 150 MHz
BRAM_18K 0 0
DSP48E 0 0
FF 100 101
LUT 52 185
CLB 20 45

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのパフォーマンス見積もりを示します。

表 28. addS 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
動作周波数 (MHz) レイテンシ (ms)

1 ピクセル

300 6.9

8 ピクセル

150 1.7

加重和 (addWeighted)

addWeighted 関数は、2 つの入力画像 src1 と src2 の加重和を計算し、結果を dst に保存します。

dst(x,y)= src1(x,y)*alpha+src2(x,y)*beta+ gamma

API 構文

template< int SRC_T , int DST_T,   int ROWS, int COLS, int NPC=1>
void addWeighted(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1, float alpha, xf::Mat<SRC_T, ROWS, COLS, NPC> & _src2, float beta, float gamma, xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 29. addWeighted 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) をサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) をサポート。
ROWS 入力および出力画像の最大高さ
COLS 入力および出力画像の最大幅。N ピクセルの並列処理の場合、幅は N の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src1 1 つ目の入力画像
Alpha 1 つ目の入力画像に適用される重み
_src2 2 つ目の入力画像
ベータ 2 つ目の入力画像に適用される重み
gamma 各和に追加するスカラー値
_dst 出力画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で Vivado HLS 2019.1 バージョン ツールを使用して生成された、リソース最適化 (8 ピクセル) モードおよび通常モードにおける addWeighted 関数のリソース使用量を示します。

表 30. addWeighted 関数のリソース使用量のサマリ
名前 リソース使用量
1 クロックごとに 1 ピクセル動作 8 クロックごとに 1 ピクセル動作
300 MHz 150 MHz
BRAM_18K 0 0
DSP48E 11 25
FF 903 680
LUT 851 1077
CLB 187 229

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのパフォーマンス見積もりを示します。

表 31. addWeighted 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
動作周波数 (MHz) レイテンシ (ms)

1 ピクセル

300 6.9

8 ピクセル

150 1.7

バイラテラル フィルター (bilateralFilter)

通常、平滑化フィルターは画像のエッジに影響する画像を平滑化します。平滑化処理中にエッジを保持するには、バイラテラル フィルターを使用できます。バイラテラル フィルターでは、ガウシアン フィルターと同様に、近傍ピクセルが考慮され、各ピクセルには重みが設定されます。これらの重みには 2 つの要素があります。1 つ目の要素は、ガウシアン フィルターで使用される重みと同じです。2 つ目の要素では、近傍ピクセルと評価されるピクセルの強度の違いが考慮されます。
画像に適用されるバイラテラル フィルターは、次のとおりです。

ここで、

および は分散 のガウシアン フィルターです。
ガウシアン フィルターは、次の式で求められます。

API 構文

template<int FILTER_SIZE, int BORDER_TYPE, int TYPE, int ROWS, int COLS, int NPC=1> 
void bilateralFilter (
xf::Mat<int TYPE, int ROWS, int COLS, int NPC> src, 
xf::Mat<int TYPE, int ROWS, int COLS, int NPC> dst,
float sigma_space, float sigma_color )

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 32. bilateralFilter 関数のパラメーターの説明
パラメーター 説明
FILTER_SIZE フィルター サイズ。サポートされるフフィルター サイズは 3 (XF_FILTER_3X3)、5 (XF_FILTER_5X5)、および 7 (XF_FILTER_7X7)。
BORDER_TYPE サポートされる境界タイプは XF_BORDER_CONSTANT。
TYPE 入力および出力のピクセルのデータ型。8 ビット、符号なし、1 チャネルおよび 3 チャネル (XF_8UC1、XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅 (8 ピクセル動作の場合は 8 の倍数で指定)
NPC 1 サイクルごとに処理されるピクセル数。XF_NPPC1 および XF_NPPC8 をサポート。
src 入力画像
dst 出力画像
sigma_space 空間領域のフィルターの標準偏差
sigma_color 色空間で使用されるフィルターの標準偏差

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのリソース使用量を示します。

表 33. bilateralFilter 関数のリソース使用量のサマリ
動作モード フィルター サイズ

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 3x3 300 6 22 4934 4293
5x5 300 12 30 5481 4943
7x7 300 37 48 7084 6195

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で 3 チャネルの 4K 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのリソース使用量を示します。

表 34. bilateralFilter 関数のリソース使用量のサマリ
動作モード フィルター サイズ

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 3x3 300 12 32 8342 7442
5x5 300 27 57 10663 8857
7x7 300 49 107 12870 12181

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのパフォーマンス見積もりを示します。

表 35. bilateralFilter 関数のパフォーマンス見積もりのサマリ
動作モード フィルター サイズ レイテンシ見積もり
300 MHz
最大 (ms)
1 ピクセル 3x3 7.18
5x5 7.20
7x7 7.22

OpenCV との違い

OpenCV とは異なり、xfOpenCV ではフィルター サイズ 3、5、および 7 のみがサポートされます。

ビット深度変換 (convertTo)

convertTo 関数は、入力画像のビット深度を出力画像で必要なビット深度に変換します。

API 構文

template <int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void convertTo(xf::Mat<SRC_T, ROWS, COLS, NPC> &_src_mat, xf::Mat<DST_T, ROWS, COLS, NPC> &_dst_mat, ap_uint<4> _convert_type, int _shift)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 36. convertTo 関数のパラメーターの説明
パラメーター 説明
SRC_T

入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1)、

16 ビット、符号なし、1 チャネル (XF_16UC1)、

16 ビット、符号付き、1 チャネル (XF_16SC1)、

32 ビット、符号なし、1 チャネル (XF_32UC1)、

32 ビット、符号付き、1 チャネル (XF_32SC1) をサポート。

DST_T

出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1)、

16 ビット、符号なし、1 チャネル (XF_16UC1)、

16 ビット、符号付き、1 チャネル (XF_16SC1)、

32 ビット、符号なし、1 チャネル (XF_32UC1)、

32 ビット、符号付き、1 チャネル (XF_32SC1) をサポート。

ROWS 入力および出力画像の高さ。
COLS 入力および出力画像の幅。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。XF_NPPC8 は、32 ビット入力および出力のピクセルのデータ型ではサポートされません。
_src_mat 入力画像
_dst_mat 出力画像
_convert_type 必要な変換タイプを指定。有効な値は、xf_params.h ファイルの XF_convert_bit_depth_e 列挙型を参照。
_shift オプションのスケール係数

可能な変換

次の表に、サポートされる変換を示します。可能な入力画像ビット深度を行に、可能な出力画像ビット深度を列に示します (U = 符号なし、S = 符号付き)。

表 37. convertTo 関数でサポートされる変換
入力/出力 U8 U16 S16 U32 S32
U8 なし なし
U16 なし なし なし
S16 なし なし なし
U32 なし なし なし なし なし
S32 なし なし

リソース使用量

次の表に、ザイリンクス Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された convertTo 関数のリソース使用量を示します。
表 38. XF_CONVERT_8U_TO_16S 変換のための convertTo 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 8 581 523 119
8 ピクセル 150 0 8 963 1446 290
表 39. XF_CONVERT_16U_TO_8U 変換のための convertTo 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 8 591 541 124
8 ピクセル 150 0 8 915 1500 308

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのパフォーマンス見積もりを示します。

表 40. convertTo 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ
1 ピクセル動作 (300 MHz) 6.91 ms
8 ピクセル動作 (150 MHz) 1.69 ms

ビット単位 AND (bitwise_and)

bitwise_and 関数は、2 つの画像の各ピクセルに対してビット単位の AND 演算を実行し、出力画像を返します。
説明:
  • : 出力画像の (x, y) 位置での強度
  • : 1 つ目の入力画像の (x,y) 位置での強度
  • : 2 つ目の入力画像の (x,y) 位置での強度

API 構文

template<int SRC_T, int ROWS, int COLS, int NPC=1> 
void bitwise_and (
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src1, 
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src2, 
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> dst )

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 41. bitwise_and 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力および出力のピクセルのデータ型。1 チャネルおよび 3 チャネル (XF_8UC1、XF_8UC3) をサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅 (8 ピクセル モードの場合は 8 の倍数で指定)。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセル動作の場合は XF_NPPC1、8 ピクセル動作の場合は XF_NPPC8。
src1 入力画像
src2 入力画像
dst 出力画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのリソース使用量を示します。

表 42. bitwise_and 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 62 44 10
8 ピクセル 150 0 0 59 72 13

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で 3 チャネルの 4K 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのリソース使用量を示します。

表 43. bitwise_and 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 1 155 61 22

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのパフォーマンス見積もりを示します。

表 44. bitwise_and 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.7

ビット単位 NOT (bitwise_not)

bitwise_not 関数は、入力画像のピクセルに対してビット単位の NOT 演算を実行し、出力画像を返します。
説明:
  • : 出力画像の (x, y) 位置での強度
  • : 入力画像の (x,y) 位置での強度

API 構文

template<int SRC_T, int ROWS, int COLS, int NPC=1> 
void bitwise_not (
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src, 
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> dst )

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 45. bitwise_not 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力および出力のピクセルのデータ型。1 チャネルおよび 3 チャネル (XF_8UC1、XF_8UC3) をサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセル動作の場合は XF_NPPC1、8 ピクセル動作の場合は XF_NPPC8。
src 入力画像
dst 出力画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのリソース使用量を示します。

表 46. bitwise_not 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 97 78 20
8 ピクセル 150 0 0 88 97 21

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で 3 チャネルの 4K 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのリソース使用量を示します。

表 47. bitwise_not 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 1 155 61 22

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのパフォーマンス見積もりを示します。

表 48. bitwise_not 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.7

ビット単位 OR (bitwise_or)

bitwise_or 関数は、2 つの入力画像のビット単位の OR 演算を実行し、出力画像を返します。
説明:
  • : 出力画像の (x, y) 位置での強度
  • : 1 つ目の入力画像の (x,y) 位置での強度
  • : 2 つ目の入力画像の (x,y) 位置での強度

API 構文

template<int SRC_T, int ROWS, int COLS, int NPC=1> 
void bitwise_or (
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src1, 
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src2, 
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> dst )

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 49. bitwise_or 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力および出力のピクセルのデータ型。1 チャネルおよび 3 チャネル (XF_8UC1、XF_8UC3) をサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
src1 入力画像
src2 入力画像
dst 出力画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのリソース使用量を示します。

表 50. bitwise_or 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 62 44 10
8 ピクセル 150 0 0 59 72 13

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で 3 チャネルの 4K 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのリソース使用量を示します。

表 51. bitwise_or 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 1 155 61 22

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのパフォーマンス見積もりを示します。

表 52. bitwise_or 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.7

ビット単位 XOR (bitwise_xor)

bitwise_xor 関数は、2 つの入力画像のビット単位の XOR 演算を実行し、出力画像を返します。

説明:
  • : 出力画像の (x, y) 位置での強度
  • : 1 つ目の入力画像の (x,y) 位置での強度
  • : 2 つ目の入力画像の (x,y) 位置での強度

API 構文

template<int SRC_T, int ROWS, int COLS, int NPC=1> 
void bitwise_xor(
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src1, 
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> src2, 
xf::Mat<int SRC_T, int ROWS, int COLS, int NPC> dst )

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 53. bitwise_xor 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力および出力のピクセルのデータ型。1 チャネルおよび 3 チャネル (XF_8UC1、XF_8UC3) をサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
src1 入力画像
src2 入力画像
dst 出力画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのリソース使用量を示します。

表 54. bitwise_xor 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 62 44 10
8 ピクセル 150 0 0 59 72 13

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で 4K チャネル画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのリソース使用量を示します。

表 55. bitwise_xor 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 1 155 61 22

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのパフォーマンス見積もりを示します。

表 56. bitwise_xor 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.7

ボックス フィルター (boxFilter)

boxFilter 関数は、入力画像に対してボックス フィルター処理を実行します。ボックス フィルターローパス フィルターとして機能し、画像にぼかしを適用します。boxFilter 関数 (ボックスぼかし) は空間領域線形フィルターで、処理後の画像の各ピクセルは近傍ピクセルの平均値となります。

API 構文

template<int BORDER_TYPE,int FILTER_TYPE, int SRC_T, int ROWS, int COLS,int NPC=1,bool USE_URAM=false>
void boxFilter(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst_mat)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 57. boxFilter 関数のパラメーターの説明
パラメーター 説明
FILTER_SIZE

フィルター サイズ。サポートされるフィルター サイズは 3 (XF_FILTER_3X3)、5 (XF_FILTER_5X5)、および 7 (XF_FILTER_7X7)。

BORDER_TYPE サポートされる境界タイプは XF_BORDER_CONSTANT。
SRC_T 入力および出力のピクセルのデータ型。8 ビット、符号なし、16 ビット符号なし、および 16 ビット符号付き 1 チャネル (XF_8UC1) をサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅 (8 ピクセル動作の場合は 8 の倍数で指定)
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
USE_URAM ストレージ構造を UltraRAM にマップ
_src_mat 入力画像
_dst_mat 出力画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのリソース使用量を示します。

表 58. boxFilter 関数のリソース使用量のサマリ
動作モード フィルター サイズ

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 3x3 300 3 1 545 519 104
5x5 300 5 1 876 870 189
7x7 300 7 1 1539 1506 300
8 ピクセル 3x3 150 6 8 1002 1368 264
5x5 150 10 8 1576 3183 611
7x7 150 14 8 2414 5018 942

次の表に、xczu7ev-ffvc1156-2-e FPGA で UltraRAM をイネーブルにしてグレースケール 4K (3840x2160) 画像を処理するために、SDx™ 2019.1 ツールを使用して生成された異なる設定でのカーネルのリソース使用量を示します。

表 59. UltraRAM をイネーブルにした場合の boxfilter 関数のリソース使用量のサマリ
動作モード フィルター サイズ

動作周波数

(MHz)

使用量の見積もり
BRAM_18K URAM DSP_48E FF LUT
1 ピクセル 3x3 300 0 1 1 821 521
5x5 300 0 1 1 1204 855
7x7 300 0 1 1 2083 1431
8 ピクセル 3x3 150 0 3 8 1263 1480
5x5 150 0 5 8 1771 3154
7x7 150 0 7 8 2700 5411

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのカーネルのパフォーマンス見積もりを示します。

表 60. boxFilter 関数のパフォーマンス見積もりのサマリ
動作モード

動作周波数

(MHz)

フィルター サイズ レイテンシ見積もり
最大 (ms)
1 ピクセル 300 3x3 7.2
300 5x5 7.21
300 7x7 7.22
8 ピクセル 150 3x3 1.7
150 5x5 1.7
150 7x7 1.7

境界ボックス (BoundingBox)

boundingbox 関数は、入力画像の関心領域 (ROI) をハイライトします。

P(X,Y) ≤ P(xi, yi) ≤ P(X,Y’)
P(X’,Y) ≤ P(xi, yi) ≤ P(X’,Y’)
説明:
  • P(xi, yi): 現在のピクセル位置
  • P(X,Y): ROI の左上角
  • P(X,Y): ROI の右上角
  • P(X’,Y): ROI の左下角
  • P(X’,Y’): ROI の右下角

API 構文

template<int SRC_T, int ROWS, int COLS, int MAX_BOXES=1, int NPC=1>
void boundingbox(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat, xf::Rect_<int> *roi , xf::Scalar<4,unsigned char > *color, int num_box)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 61. boundingbox 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネルおよび 3 チャネル (XF_8UC1、XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。NPC の倍数で指定。
MAX_BOXES ボックスの最大数 (5 に固定)
NPC 1 サイクルごとに処理されるピクセル数。可能なオプションは XF_NPPC1 のみ。
_src_mat 入力画像
roi 矩形の左上角、高さ、および幅で構成される xf::Rect オブジェクト。
color 各ボックス (ROI) の色情報を含む xf::Scalar オブジェクト。
num_box 検出されたボックスの数。MAX_BOXES 以下である必要があります。

リソース使用量

次の表に、ザイリンクス Xczu9eg-ffvb1156-1-i-es1 FPGA 用に Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのリソース使用量を示します。

表 62. boundingbox 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 5 4 2521 1649 409

パフォーマンス見積もり

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA でグレースケール 4K (2160x3840) 画像で 3 つの境界 (480x640、100x200、300x300) をハイライトするために、Vivado HLS 2019.1 ツールを使用して生成された 1 ピクセル設定でのカーネルのパフォーマンス見積もりを示します。

表 63. boundingbox 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 0.15

xfOpenCV 基準

xf::boundingbox は、次の xfOpenCV 関数に準拠しています。
void rectangle(Mat& img, Rect rec, const Scalar& color, int thickness=1, int lineType=8, int shift=0 )

Canny 法によるエッジ検出 (Canny)

Canny 法によるエッジ検出では、画像またはビデオ フレームのエッジを検出します。エッジ検出で最もよく使用されるアルゴリズムの 1 つです。Canny アルゴリズムでは、次の 3 つの主な条件を満たすことが目的とされます。

  1. 低エラー レート: 既存のエッジのみを検出。
  2. 局所化: 検出されたエッジ ピクセルと実際のエッジ ピクセルとの距離を最小化。
  3. 最低限の応答: 各エッジに対して 1 つの検出器のみが応答。

このアルゴリズムでは、まずガウシアン マスクが適用されて画像のノイズが削減されます。ここで使用されるガウシアン マスクは、3x3 サイズの平均マスクです。その後、Sobel 勾配関数を使用して x および y 方向の勾配が計算されます。勾配は、ピクセルの大きさと位相を計算するために使用されます。位相は量子化され、それに応じてピクセルがビンに分類されます。ピクセルに NMS (Non-Maximal Suppression) が適用され、弱いエッジは除去されます。

残りのエッジにエッジ トレースが適用され、画像のエッジが描画されます。このアルゴリズムでは、Canny から NMS までは 1 つのカーネルに含まれ、エッジ リンキング モジュールは別のカーネルに含まれます。NMS の後、出力に各ピクセルが 2 ビットで表されます。

  • 00: 背景
  • 01: 弱いエッジ
  • 11: 強いエッジ

出力は、1 サイクルごとに 1 ピクセル動作では 8 ビット (4 つの 2 ビット ピクセル) としてパックされ、1 サイクルごとに 8 ピクセル動作では 16 ビット (8 つの 2 ビット ピクセル) としてパックされます。エッジ リンキング モジュールでは、入力は 64 ビットであり、32 個の 2 ビット ピクセルが 64 ビットにパックされます。ピクセルにエッジ トレースが適用され、画像のエッジが返されます。

API 構文

Canny の API 構文は次のとおりです。
template<int FILTER_TYPE,int NORM_TYPE,int SRC_T,int DST_T, int ROWS, int COLS,int NPC,int NPC1,bool USE_URAM=false>
void Canny(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,xf::Mat<DST_T, ROWS, COLS, NPC1> & _dst_mat,unsigned char _lowthreshold,unsigned char _highthreshold)
EdgeTracing の API 構文は次のとおりです。
template<int SRC_T, int DST_T, int ROWS, int COLS,int NPC_SRC,int NPC_DST,bool USE_URAM=false>
voidEdgeTracing(xf::Mat<SRC_T, ROWS, COLS, NPC_SRC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC_DST> & _dst)

パラメーターの説明

次の表に、xf::Canny のテンプレートと関数のパラメーターを説明します。

表 64. xf::Canny 関数のパラメーターの説明
パラメーター 説明
FILTER_TYPE フィルター ウィンドウの大きさ。有効な値は 3 および 5。
NORM_TYPE 使用するノルムのタイプ。有効なノルム タイプは L1NORM および L2NORM。
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
DST_T 出力ピクセルのデータ型。XF_2UC1 のみサポート。NPC=XF_NPPC1 の場合の出力は 8 ビットで、4 つの 2 ビット ピクセル値が 8 ビットにパックされます。NPC=XF_NPPC8 の場合の出力は 16 ビットで、8 つの 2 ビット ピクセル値が 16 ビットにパックされます。
ROWS 入力および出力画像の最大高さ
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。XF_NPPC の場合、出力画像ピクセルはパックされ、精度は XF_NPPC4 です。XF_NPPC8 の場合は出力ピクセルの精度は XF_NPPC4 です。
USE_URAM 一部のストレージ構造を UltraRAM にマップ
_src_mat 入力画像
_dst_mat 出力画像
_lowthreshold バイナリしきい値処理の下限しきい値。
_highthreshold バイナリしきい値処理の上限しきい値。

次の表に、EdgeTracing のテンプレートと関数のパラメーターを説明します。

表 65. EdgeTracing 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型
DST_T 出力ピクセルのデータ型
ROWS 入力および出力画像の最大高さ
COLS 入力および出力画像の最大幅 (32 の倍数で指定)
NPC_SRC 1 サイクルごとに処理されるピクセル数。XF_NPPC32 に固定。
NPC_DST デスティネーションに書き込まれたピクセル数。XF_NPPC8 に固定。
USE_URAM ストレージ構造を UltraRAM にマップ。
_src 入力画像
_dst 出力画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像をフィルター サイズ 3 で処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での xf::Canny および EdgeTracing のリソース使用量を示します。

表 66. xf::Canny および EdgeTracing 関数のリソース使用量のサマリ
名前 リソース使用量
1 ピクセル 1 ピクセル 8 ピクセル 8 ピクセル エッジ リンキング エッジ リンキング
L1NORM、FS:3 L2NORM、FS:3 L1NORM、FS:3 L2NORM、FS:3
300 MHz 300 MHz 150 MHz 150 MHz 300 MHz 150 MHz
BRAM_18K 22 18 36 32 84 84
DSP48E 2 4 16 32 3 3
FF 3027 3507 4899 6208 17600 14356
LUT 2626 3170 6518 9560 15764 14274
CLB 606 708 1264 1871 2955 3241

次の表に、xczu7ev-ffvc1156-2-e FPGA でグレースケール 4K 画像をフィルター サイズ 3 で処理するために、SDx 2019.1 ツールを使用して生成された異なる設定での xf::Canny および EdgeTracing のリソース使用量を示します。

表 67. UltraRAM をイネーブルにした場合の xf::Canny および EdgeTracing 関数のリソース使用量のサマリ
名前 リソース使用量
1 ピクセル 1 ピクセル 8 ピクセル 8 ピクセル エッジ リンキング エッジ リンキング
L1NORM、FS:3 L2NORM、FS:3 L1NORM、FS:3 L2NORM、FS:3
300 MHz 300 MHz 150 MHz 150 MHz 300 MHz 150 MHz
BRAM_18K 10 8 3 3 4 4
URAM 1 1 15 13 8 8
DSP48E 2 4 16 32 8 8
FF 3184 3749 5006 7174 5581 7054
LUT 2511 2950 6695 9906 4092 6380

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を L1NORM、フィルター サイズ 3、エッジ リンキング モジュールを使用して処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのパフォーマンス見積もりを示します。

表 68. xf::Canny および EdgeTracing 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり

動作周波数 (MHz)

レイテンシ (ms)
1 ピクセル 300 10.8
8 ピクセル 150 8.5

OpenCV との違い

OpenCV Canny 関数では、処理前の手順としてガウシアンぼかしは適用されません。

チャネル結合 (merge)

merge 関数では、シングルチャネル画像がマルチチャネル画像に統合されます。統合されるチャネル数は 4 です。

API 構文

template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void merge(xf::Mat<SRC_T, ROWS, COLS, NPC> &_src1, xf::Mat<SRC_T, ROWS, COLS, NPC> &_src2, xf::Mat<SRC_T, ROWS, COLS, NPC> &_src3, xf::Mat<SRC_T, ROWS, COLS, NPC> &_src4, xf::Mat<DST_T, ROWS, COLS, NPC> &_dst)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 69. merge 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1、2、および 3 チャネル (XF_8UC1) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、4 チャネル (XF_8UC4) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセル動作の場合、可能なオプションは XF_NPPC1。
_src1 入力シングルチャネル画像
_src2 入力シングルチャネル画像
_src3 入力シングルチャネル画像
_src4 入力シングルチャネル画像
_dst 出力マルチチャネル画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で 4 つのシングル チャネル HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された merge 関数のリソース使用量を示します。

表 70. merge 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 8 494 386 85

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 で 4 つのシングル チャネル HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのパフォーマンス見積もりを示します。

表 71. merge 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ
1 ピクセル動作 (300 MHz) 6.92 ms

チャネル抽出 (extractChannel)

extractChannel 関数は、マルチチャネル配列 (32 ビットのピクセルがインターリーブされたデータ) を複数シングルチャネル配列に分割し、シングル チャネルを返します。抽出されるチャネルは、チャネル引数を使用して指定します。

チャネル引数の値は、xf_channel_extract_e 列挙データ型で定義されたマクロにより指定します。次の表に、xf_channel_extract_e 列挙データ型に可能な値を示します。

表 72. xf_channel_extract_e 列挙データ型の値
チャネル 列挙型
不明 XF_EXTRACT_CH_0
不明 XF_EXTRACT_CH_1
不明 XF_EXTRACT_CH_2
不明 XF_EXTRACT_CH_3
RED XF_EXTRACT_CH_R
GREEN XF_EXTRACT_CH_G
BLUE XF_EXTRACT_CH_B
ALPHA XF_EXTRACT_CH_A
LUMA XF_EXTRACT_CH_Y
Cb/U XF_EXTRACT_CH_U
Cr/V/Value XF_EXTRACT_CH_V

API 構文

template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1> 
void extractChannel(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat, xf::Mat<DST_T, ROWS, COLS, NPC> & _dst_mat, uint16_t _channel)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 73. extractChannel 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、4 チャネル (XF_8UC4) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
ROWS 入力および出力画像の最大高さ
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセル動作の場合、可能なオプションは XF_NPPC1。
_src_mat 入力マルチチャネル画像
_dst_mat 出力シングルチャネル画像
_channel 抽出するチャネル (有効な値は、xf_params.h ファイルの xf_channel_extract_e 列挙型を参照)

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で 4 チャネル HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された extractChannel 関数のリソース使用量を示します。

表 74. extractChannel 関数のリソース使用量のサマリ
動作モード

動作周波数 (MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 8 508 354 96

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 で 4 チャネル HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定でのパフォーマンス見積もりを示します。

表 75. extractChannel 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.92

色変換

色変換関数は、ある画像フォーマットを別の画像フォーマットに変換します。次の表に、変換可能な画像フォーマットの組み合わせを示します。行が入力フォーマットで、列が出力フォーマットです。次のセクションで、サポートされる変換について説明します。

表 76. サポートされる色変換
入力/出力フォーマット RGBA NV12 NV21 IYUV UYVY YUYV YUV4 RGB BGR
RGBA なし

RGBA to NV12 (rgba2nv12) を参照

RGBA to NV21 (rgba2nv21) を参照

RGBA/RGB to IYUV (rgba2iyuv、rgb2iyuv) を参照

   

RGBA/RGB to YUV4 (rgba2yuv4、rgb2yuv4) を参照

   
NV12

NV12 to RGBA (nv122rgba) を参照

なし NV12 to NV21、NV21 to NV12 (nv122nv21、nv212nv12) を参照

NV12 to IYUV (nv122iyuv) を参照

NV12/NV21 to UYVY/YUYV (nv122uyvy、nv122yuyv、nv212uyvy、nv212yuyv) を参照 NV12/NV21 to UYVY/YUYV (nv122uyvy、nv122yuyv、nv212uyvy、nv212yuyv) を参照

NV12 to YUV4 (nv122yuv4) を参照

NV12/NV21 to RGB/BGR (nv122rgb、nv122bgr、nv212rgb、nv212bgr) を参照 NV12/NV21 to RGB/BGR (nv122rgb、nv122bgr、nv212rgb、nv212bgr) を参照
NV21

NV21 to RGBA (nv212rgba) を参照

NV12 to NV21、NV21 to NV12 (nv122nv21、nv212nv12) を参照 なし

NV21 to IYUV (nv212iyuv) を参照

NV12/NV21 to UYVY/YUYV (nv122uyvy、nv122yuyv、nv212uyvy、nv212yuyv) を参照 NV12/NV21 to UYVY/YUYV (nv122uyvy、nv122yuyv、nv212uyvy、nv212yuyv) を参照

NV21 to YUV4 (nv212yuv4) を参照

NV12/NV21 to RGB/BGR (nv122rgb、nv122bgr、nv212rgb、nv212bgr) を参照 NV12/NV21 to RGB/BGR (nv122rgb、nv122bgr、nv212rgb、nv212bgr) を参照
IYUV

IYUV to RGBA/RGB (iyuv2rgba、iyuv2rgb) を参照

IYUV to NV12 (iyuv2nv12) を参照

  なし    

IYUV to YUV4 (iyuv2yuv4) を参照

IYUV to RGBA/RGB (iyuv2rgba、iyuv2rgb) を参照  
UYVY

UYVY to RGBA (uyvy2rgba) を参照

UYVY to NV12 (uyvy2nv12) を参照

 

UYVY to IYUV (uyvy2iyuv) を参照

なし        
YUYV

YUYV to RGBA (yuyv2rgba) を参照

YUYV to NV12 (yuyv2nv12) を参照

 

YUYV to IYUV (yuyv2iyuv) を参照

  なし      
YUV4             なし    
RGB   RGB/BGR to NV12/NV21 (rgb2nv12、bgr2nv12、rgb2nv21、bgr2nv21) を参照 RGB/BGR to NV12/NV21 (rgb2nv12、bgr2nv12、rgb2nv21、bgr2nv21) を参照 RGBA/RGB to IYUV (rgba2iyuv、rgb2iyuv) を参照 RGB/BGR to UYVY/YUYV (rgb2uyvy、rgb2yuyv、bgr2uyvy、bgr2yuyv) を参照 RGB/BGR to UYVY/YUYV (rgb2uyvy、rgb2yuyv、bgr2uyvy、bgr2yuyv) を参照 RGBA/RGB to YUV4 (rgba2yuv4、rgb2yuv4) を参照   BGR to RGB、RGB to BGR (bgr2rgb、rgb2bgr) を参照
BGR   RGB/BGR to NV12/NV21 (rgb2nv12、bgr2nv12、rgb2nv21、bgr2nv21) を参照 RGB/BGR to NV12/NV21 (rgb2nv12、bgr2nv12、rgb2nv21、bgr2nv21) を参照   RGB/BGR to UYVY/YUYV (rgb2uyvy、rgb2yuyv、bgr2uyvy、bgr2yuyv) を参照 RGB/BGR to UYVY/YUYV (rgb2uyvy、rgb2yuyv、bgr2uyvy、bgr2yuyv) を参照   BGR to RGB、RGB to BGR (bgr2rgb、rgb2bgr) を参照  

その他の色変換

上記以外に、BGR/RGB <-> HSV、BGR/RGB <-> HLS、BGR/RGB <-> YCrCb、BGR/RGB <-> XYZ、および RGB <-> BGR 変換が追加されています。

RGB から YUV への変換行列

次に、RGB データから YUV データへの変換式を示します。

YUV から RGB への変換行列

次に、YUV データから RGB データへの変換式を示します。

参照: http://www.fourcc.org/fccyvrgb.php

RGBA/RGB to YUV4 (rgba2yuv4、rgb2yuv4)

rgba2yuv4 は 4 チャネルの RGBA 画像を YUV444 フォーマットに変換し、rgb2yuv4 は 3 チャネル RGB 画像を YUV444 フォーマットに変換します。出力は Y、U、および V ストリームです。

API 構文
template <int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void rgba2yuv4(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<DST_T, ROWS, COLS, NPC> & _y_image, xf::Mat<DST_T, ROWS, COLS, NPC> & _u_image, xf::Mat<DST_T, ROWS, COLS, NPC> & _v_image)
template <int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void rgb2yuv4(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<DST_T, ROWS, COLS, NPC> & _y_image, xf::Mat<DST_T, ROWS, COLS, NPC> & _u_image, xf::Mat<DST_T, ROWS, COLS, NPC> & _v_image)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 77. rgba2yuv4 および rgb2yuv4 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、4 (RGBA) および 3 (RGB) チャネル (XF_8UC4 および XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src サイズ (ROWS, COLS) の入力 Y プレーン。
_y_image サイズ (ROWS, COLS) の出力 Y 画像。
_u_image サイズ (ROWS, COLS) の出力 U 画像。
_v_image サイズ (ROWS, COLS) の出力 V 画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での RGBA/RGB to YUV4 のリソース使用量を示します。

表 78. rgba2yuv4 および rgb2yuv4 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 9 589 328 96
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での RGBA/RGB to YUV4 のパフォーマンス見積もりを示します。

表 79. rgba2yuv4 および rgb2yuv4 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 1.89

RGBA/RGB to IYUV (rgba2iyuv、rgb2iyuv)

rgba2iyuv 関数は 4 チャネルの RGBA 画像を IYUV (4:2:0) フォーマットに変換し、rgb2iyuv 関数は 3 チャネル RGB 画像を IYUV (4:2:0) フォーマットに変換します。出力は Y、U、および V プレーンです。IYUV にはサブサンプリングされたデータが格納されるので、Y は RGBA/RGB の 1 ピクセルごとにサンプリングされ、U と V は 2 行および 2 列 (2x2) のピクセルごとにサンプリングされます。U および V プレーンのサイズは (rows/2)*(columns/2) であり、連続する行を 1 つの行にカスケード接続することにより、プレーンのサイズが (rows/4)*columns になります。

API 構文
template <int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void rgba2iyuv(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<DST_T, ROWS, COLS, NPC> & _y_image, xf::Mat<DST_T, ROWS/4, COLS, NPC> & _u_image, xf::Mat<DST_T, ROWS/4, COLS, NPC> & _v_image)
template <int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void rgb2iyuv(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<DST_T, ROWS, COLS, NPC> & _y_image, xf::Mat<DST_T, ROWS/4, COLS, NPC> & _u_image, xf::Mat<DST_T, ROWS/4, COLS, NPC> & _v_image)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 80. rgba2iyuv および rgb2iyuv 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、4 (RGBA) および 3 (RGB) チャネル (XF_8UC4 および XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src サイズ (ROWS, COLS) の入力 Y プレーン。
_y_image サイズ (ROWS, COLS) の出力 Y 画像。
_u_image サイズ (ROWS/4, COLS) の出力 U 画像。
_v_image サイズ (ROWS/4, COLS) の出力 V 画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での RGBA/RGB to IYUV のリソース使用量を示します。

表 81. rgba2iyuv および rgb2iyuv 関数のリソース使用量のサマリ
動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 9 816 472 149
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での RGBA/RGB to IYUV のパフォーマンス見積もりを示します。

表 82. rgba2iyuv および rgb2iyuv 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 1.8

RGBA to NV12 (rgba2nv12)

rgba2nv12 関数は、4 チャネルの RGBA 画像を NV12 (4:2:0) フォーマットに変換します。出力は Y プレーンおよびインターリーブされた UV プレーンです。NV12 にはサブサンプリングされたデータが格納されるので、Y は RGBA の 1 ピクセルごとにサンプリングされ、U および V は 2 行と 2 列 (2x2) のピクセルごとにサンプリングされます。UV プレーンのサイズは (rows/2)*(columns/2) で、U と V の値がインターリーブされます。

API 構文
template <int SRC_T, int Y_T, int UV_T, int ROWS, int COLS, int NPC=1>
void rgba2nv12(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<Y_T, ROWS, COLS, NPC> & _y, xf::Mat<UV_T, ROWS/2, COLS/2, NPC> & _uv)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 83. rgba2nv12 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、4 チャネル (XF_8UC4) のみサポート。
Y_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
UV_T 出力ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src サイズ (ROWS, COLS) の入力 RGBA 画像。
_y サイズ (ROWS, COLS) の出力 Y 画像。
_uv サイズ (ROWS/2, COLS/2) の出力 UV 画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での RGBA to NV12 のリソース使用量を示します。

表 84. rgba2nv12 関数のリソース使用量のサマリ
動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 9 802 452 128
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での RGBA to NV12 のパフォーマンス見積もりを示します。

表 85. rgba2nv12 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 1.8

RGBA to NV21 (rgba2nv21)

rgba2nv21 関数は、4 チャネルの RGBA 画像を NV21 (4:2:0) フォーマットに変換します。出力は Y プレーンおよびインターリーブされた VU プレーンです。NV21 にはサブサンプリングされたデータが格納されるので、Y は RGBA ピクセルごとにサンプリングされ、U および V は 2 行と 2 列 (2x2) の RGBA ピクセルごとにサンプリングされます。UV プレーンのサイズは (rows/2)*(columns/2) で、V と U の値がインターリーブされます。

API 構文
template <int SRC_T, int Y_T, int UV_T, int ROWS, int COLS, int NPC=1>
void rgba2nv21(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<Y_T, ROWS, COLS, NPC> & _y, xf::Mat<UV_T, ROWS/2, COLS/2, NPC> & _uv)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 86. rgba2nv21 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、4 チャネル (XF_8UC4) のみサポート。
Y_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
UV_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC2) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src サイズ (ROWS, COLS) の入力 RGBA 画像。
_y サイズ (ROWS, COLS) の出力 Y 画像。
_uv サイズ (ROWS/2, COLS/2) の出力 UV 画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での RGBA to NV21 のリソース使用量を示します。

表 87. rgba2nv21 関数のリソース使用量のサマリ
動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 9 802 453 131
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での RGBA to NV21 のパフォーマンス見積もりを示します。

表 88. rgba2nv21 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 1.89

YUYV to RGBA (yuyv2rgba)

yuyv2rgba 関数は、1 チャネルの YUYV (YUV 4:2:2) 画像フォーマットを 4 チャネルの RGBA 画像に変換します。YUYV はサブサンプリング フォーマットで、RGBA が 2 つ得られます。YUYV は 16 ビット値、RGBA は 32 ビット値です。

API 構文
template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void yuyv2rgba(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 89. yuyv2rgba 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。16 ビット、符号なし、1 チャネル (XF_16UC1) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、4 チャネル (XF_8UC4) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src サイズ (ROWS, COLS) の入力画像。
_dst サイズ (ROWS, COLS) の出力画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での YUYV to RGBA のリソース使用量を示します。

表 90. yuyv2rgba 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 6 765 705 165
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での UYVY to RGBA のパフォーマンス見積もりを示します。

表 91. yuyv2rgba 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

YUYV to NV12 (yuyv2nv12)

yuyv2nv12 関数は、1 チャネルの YUYV (YUV 4:2:2) 画像フォーマットを NV12 (YUV 4:2:0) フォーマットに変換します。YUYV はサブサンプリング フォーマットで、YUYV 値の 1 セットから Y 値が 2 つと U 値および V 値が 1 つずつ得られます。

API 構文
template<int SRC_T,int Y_T,int UV_T,int ROWS,int COLS,int NPC=1,int NPC_UV=1>
void yuyv2nv12(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<Y_T, ROWS, COLS, NPC> & _y_image,xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & _uv_image)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 92. yuyv2nv12 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。16 ビット、符号なし、1 チャネル (XF_16UC1) のみサポート。
Y_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
UV_T 出力 UV 画像ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
NPC_UV 1 サイクルごとに処理される UV 画像ピクセル数。1 ピクセルの操作の場合は XF_NPPC1、8 ピクセルの操作の場合は XF_NPPC8。
_src サイズ (ROWS, COLS) の入力画像。
_y_image サイズ (ROWS, COLS) 出力 Y プレーン。
_uv_image サイズ (ROWS/2, COLS/2) の出力 U プレーン。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での YUYV to NV12 のリソース使用量を示します。

表 93. yuyv2nv12 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 831 491 149
8 ピクセル 150 0 0 1196 632 161
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での YUYV to NV12 のパフォーマンス見積もりを示します。

表 94. yuyv2nv12 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.7

YUYV to IYUV (yuyv2iyuv)

yuyv2iyuv は、1 チャネルの YUYV (YUV 4:2:2) 画像フォーマットを IYUV(4:2:0) フォーマットに変換します。関数の出力は、Y、U、V プレーンです。YUYV はサブサンプリング フォーマットで、YUYV 値の 1 セットから Y 値が 2 つと U 値および V 値が 1 つずつ得られます。U および V 値は IYUV(4:2:0) フォーマットで 2 行と 2 列 (2x2) ごとにサンプリングされるので、奇数行の U および V 値は破棄されます。

API 構文
template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void yuyv2iyuv(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<DST_T, ROWS, COLS, NPC> & _y_image, xf::Mat<DST_T, ROWS/4, COLS, NPC> & _u_image, xf::Mat<DST_T, ROWS/4, COLS, NPC> & _v_image)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 95. yuyv2iyuv 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。16 ビット、符号なし、1 チャネル (XF_16UC1) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src サイズ (ROWS, COLS) の入力画像。
_y_image サイズ (ROWS, COLS) 出力 Y プレーン。
_u_image サイズ (ROWS/4, COLS) の出力 U プレーン。
_v_image サイズ (ROWS/4, COLS) の出力 V プレーン。
リソース使用量

次の表に、ザイリンクス Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での YUYV to IYUV のリソース使用量を示します。

表 96. yuyv2iyuv 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 835 497 149
8 ピクセル 150 0 0 1428 735 210
パフォーマンス見積もり

次の表に、ザイリンクス Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での YUYV to IYUV のパフォーマンス見積もりを示します。

表 97. yuyv2iyuv 関数のパフォーマンス見積もり
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.7

UYVY to IYUV (uyvy2iyuv)

uyvy2iyuv 関数は、UYVY (YUV 4:2:2) の 1 チャネル画像を IYUV フォーマットに変換します。出力は Y、U、V プレーンです。UYVY はサブサンプリング フォーマットです。UYVY 値の 1 セットから Y 値が 2 つと U 値および V 値が 1 つずつ得られます。

API 構文
template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void uyvy2iyuv(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<DST_T, ROWS, COLS, NPC> & _y_image,xf::Mat<DST_T, ROWS/4, COLS, NPC> & _u_image, xf::Mat<DST_T, ROWS/4, COLS, NPC> & _v_image)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 98. uyvy2iyuv 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。16 ビット、符号なし、1 チャネル (XF_16UC1) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src サイズ (ROWS, COLS) の入力画像。
_y_image サイズ (ROWS, COLS) 出力 Y プレーン。
_u_image サイズ (ROWS/4, COLS) の出力 U プレーン。
_v_image サイズ (ROWS/4, COLS) の出力 V プレーン。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での UYVY to IYUV のリソース使用量を示します。

表 99. uyvy2iyuv 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 835 494 139
8 ピクセル 150 0 0 1428 740 209
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での UYVY to IYUV のパフォーマンス見積もりを示します。

表 100. uyvy2iyuv 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.7

UYVY to RGBA (uyvy2rgba)

uyvy2rgba 関数は、UYVY (YUV 4:2:2) の 1 チャネル画像を 4 チャネルの RGBA 画像に変換します。UYVY はサブサンプリング フォーマットで、UYVY 値の 1 セット値から 2 つの RGBA ピクセル値が得られます。UYVY は 16 ビット値、RGBA は 32 ビット値です。

API 構文
template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void uyvy2rgba(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 101. uyvy2rgba 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。16 ビット、符号なし、1 チャネル (XF_16UC1) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src サイズ (ROWS, COLS) の入力画像。
_dst サイズ (ROWS, COLS) の出力画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での UYVY to RGBA のリソース使用量を示します。

表 102. uyvy2rgba 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 6 773 704 160
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での UYVY to RGBA のパフォーマンス見積もりを示します。

表 103. uyvy2rgba 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.8

UYVY to NV12 (uyvy2nv12)

uyvy2nv12 関数は、UYVY (YUV 4:2:2) の 1 チャネル画像を NV12 フォーマットに変換します。出力は Y および UV プレーンです。UYVY はサブサンプリング フォーマットで、1 つの UYVY のセット値から Y 値が 2 つと U 値および V 値が 1 つずつ得られます。

API 構文
template<int SRC_T, int Y_T, int UV_T, int ROWS, int COLS, int NPC=1, int NPC_UV=1>
void uyvy2nv12(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<Y_T, ROWS, COLS, NPC> & _y_image,xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & _uv_image)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 104. uyvy2nv12 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。16 ビット、符号なし、1 チャネル (XF_16UC1) のみサポート。
Y_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
UV_T 出力 UV 画像ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
NPC_UV 1 サイクルごとに処理される UV 画像ピクセル数。1 ピクセルの操作の場合は XF_NPPC1、8 ピクセルの操作の場合は XF_NPPC4。
_src サイズ (ROWS, COLS) の入力画像。
_y_image サイズ (ROWS, COLS) 出力 Y プレーン。
_uv_image サイズ (ROWS/2, COLS/2) の出力 U プレーン。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での UYVY to NV12 のリソース使用量を示します。

表 105. uyvy2nv12 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 831 488 131
8 ピクセル 150 0 0 1235 677 168
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での UYVY to NV12 のパフォーマンス見積もりを示します。

表 106. uyvy2nv12 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.7

IYUV to RGBA/RGB (iyuv2rgba、iyuv2rgb)

iyuv2rgba 関数は、1 チャネルの IYUV (YUV 4:2:0) 画像を 4 チャネルの RGBA 画像に変換します。iyuv2rgb 関数は、1 チャネルの IYUV (YUV 4:2:0) 画像を 3 チャネルの RGB 画像に変換します。入力は Y、U、V プレーンです。IYUV はサブサンプリング フォーマットで、U および V 値は RGBA/RGB ピクセルの 2 行および 2 列に対して 1 回サンプリングされます。サイズ (columns/2) の連続行のデータを組み合わせることにより、サイズ (columns) の 1 行が形成されます。

API 構文
template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void iyuv2rgba(xf::Mat<SRC_T, ROWS, COLS, NPC> & src_y, xf::Mat<SRC_T, ROWS/4, COLS, NPC> & src_u,xf::Mat<SRC_T, ROWS/4, COLS, NPC> & src_v, xf::Mat<DST_T, ROWS, COLS, NPC> & _dst0)
template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void iyuv2rgb(xf::Mat<SRC_T, ROWS, COLS, NPC> & src_y, xf::Mat<SRC_T, ROWS/4, COLS, NPC> & src_u,xf::Mat<SRC_T, ROWS/4, COLS, NPC> & src_v, xf::Mat<DST_T, ROWS, COLS, NPC> & _dst0)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 107. iyuv2rgba および iyuv2rgb 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、4 (RGBA) および 3 (RGB) チャネル (XF_8UC4 および XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
src_y サイズ (ROWS, COLS) の入力 Y プレーン。
src_u サイズ (ROWS/4, COLS) の入力 U プレーン。
src_v サイズ (ROWS/4, COLS) の入力 V プレーン。
_dst0 サイズ (ROWS, COLS) の出力 RGBA 画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での IYUV to RGBA/RGB のリソース使用量を示します。

表 108. iyuv2rgba および iyuv2rgb 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 2 5 1208 728 196
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での IYUV to RGBA/RGB のパフォーマンス見積もりを示します。

表 109. iyuv2rgba および iyuv2rgb 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

IYUV to NV12 (iyuv2nv12)

iyuv2nv12 関数は、1 チャネル IYUV 画像を NV12 フォーマットに変換します。入力は U および V プレーンです。Y プレーンはどちらのフォーマットでも同じなので、Y プレーンを処理する必要はありません。U 値および V 値は、プレーン インターリーブからピクセル インターリーブに変換されます。

API 構文
template<int SRC_T, int UV_T, int ROWS, int COLS, int NPC =1, int NPC_UV=1>
void iyuv2nv12(xf::Mat<SRC_T, ROWS, COLS, NPC> & src_y, xf::Mat<SRC_T, ROWS/4, COLS, NPC> & src_u,xf::Mat<SRC_T, ROWS/4, COLS, NPC> & src_v,xf::Mat<SRC_T, ROWS, COLS, NPC> & _y_image, xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & _uv_image)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 110. iyuv2nv12 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
UV_T 出力ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
NPC_UV 1 サイクルごとに処理される UV ピクセル数。1 ピクセル動作の場合は XF_NPPC1、4 ピクセル動作の場合は XF_NPPC4。
src_y サイズ (ROWS, COLS) の入力 Y プレーン。
src_u サイズ (ROWS/4, COLS) の入力 U プレーン。
src_v サイズ (ROWS/4, COLS) の入力 V プレーン。
_y_image サイズ (ROWS, COLS) の出力 V プレーン。
_uv_image サイズ (ROWS/2, COLS/2) の出力 UV プレーン。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での IYUV to NV12 のリソース使用量を示します。

表 111. iyuv2nv12 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 12 907 677 158
8 ピクセル 150 0 12 1591 1022 235
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での IYUV to NV12 のパフォーマンス見積もりを示します。

表 112. iyuv2nv12 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.7

IYUV to YUV4 (iyuv2yuv4)

iyuv2yuv4 関数は、1 チャネル IYUV 画像を YUV444 フォーマットに変換します。Y プレーンはどちらのフォーマットでも同じです。入力は IYUV 画像の U および V プレーンで、出力は YUV4 画像の U および V プレーンです。IYUV には、サブサンプリングされた U および V 値が格納されます。YUV フォーマットには、各ピクセルの U および V 値が格納されます。同じ U および V 値が 2 行および 2 列 (2x2) のピクセルに複製され、YUV444 フォーマットに必要なデータが取得されます。

API 構文
template<int SRC_T, int ROWS, int COLS, int NPC=1>
void iyuv2yuv4(xf::Mat<SRC_T, ROWS, COLS, NPC> & src_y, xf::Mat<SRC_T, ROWS/4, COLS, NPC> & src_u,xf::Mat<SRC_T, ROWS/4, COLS, NPC> & src_v,xf::Mat<SRC_T, ROWS, COLS, NPC> & _y_image, xf::Mat<SRC_T, ROWS, COLS, NPC> & _u_image, xf::Mat<SRC_T, ROWS, COLS, NPC> & _v_image)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 113. iyuv2yuv4 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
src_y サイズ (ROWS, COLS) の入力 Y プレーン。
src_u サイズ (ROWS/4, COLS) の入力 U プレーン。
src_v サイズ (ROWS/4, COLS) の入力 V プレーン。
_y_image サイズ (ROWS, COLS) の出力 Y 画像。
_u_image サイズ (ROWS, COLS) の出力 U 画像。
_v_image サイズ (ROWS, COLS) の出力 V 画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での IYUV to YUV4 のリソース使用量を示します。

表 114. iyuv2yuv4 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 1398 870 232
8 ピクセル 150 0 0 2134 1214 304
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での IYUV to YUV4 のパフォーマンス見積もりを示します。

表 115. iyuv2yuv4 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 13.8
8 ピクセル動作 (150 MHz) 3.4

NV12 to IYUV (nv122iyuv)

nv122iyuv 関数は、NV12 フォーマットを IYUV フォーマットに変換します。入力はインターリーブされた UV プレーンのみであり、出力は U および V プレーンです。Y プレーンはどちらのフォーマットでも同じなので、Y プレーンを処理する必要はありません。U 値および V 値は、ピクセル インターリーブからプレーン インターリーブに変換されます。

API 構文
template<int SRC_T, int UV_T, int ROWS, int COLS, int NPC=1, int NPC_UV=1>
void nv122iyuv(xf::Mat<SRC_T, ROWS, COLS, NPC> & src_y, xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & src_uv,xf::Mat<SRC_T, ROWS, COLS, NPC> & _y_image,xf::Mat<SRC_T, ROWS/4, COLS, NPC> & _u_image,xf::Mat<SRC_T, ROWS/4, COLS, NPC> & _v_image)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 116. nv122iyuv 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
UV_T 入力ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅 (8 ピクセル モードの場合は 8 の倍数で指定)。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
NPC_UV 1 サイクルごとに処理される UV 画像ピクセル数。1 ピクセルの操作の場合は XF_NPPC1、4 ピクセルの操作の場合は XF_NPPC4。
src_y サイズ (ROWS, COLS) の入力 Y プレーン。
src_uv サイズ (ROWS/2, COLS/2) の入力 UV プレーン。
_y_image サイズ (ROWS, COLS) 出力 Y プレーン。
_u_image サイズ (ROWS/4, COLS) の出力 U プレーン。
_v_image サイズ (ROWS/4, COLS) の出力 V プレーン。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での NV12 to IYUV のリソース使用量を示します。

表 117. nv122iyuv 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 1 1344 717 208
8 ピクセル 150 0 1 1961 1000 263
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での NV12 to IYUV のパフォーマンス見積もりを示します。

表 118. nv122iyuv 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.7

NV12 to RGBA (nv122rgba)

nv122rgba 関数は、NV12 画像フォーマットを 4 チャネル RGBA 画像に変換します。入力は Y および UV プレーンです。NV12 にはサブサンプリングされたデータが格納されており、Y プレーンがユニット レートでサンプリングされ、2x2 の Y 値ごとに U 値と V 値が 1 つずつサンプリングされます。RGBA データを生成するため、各 U および V 値が 2x2 回複製されます。

API 構文
template<int SRC_T, int UV_T, int DST_T, int ROWS, int COLS, int NPC=1>
void nv122rgba(xf::Mat<SRC_T, ROWS, COLS, NPC> & src_y,xf::Mat<UV_T, ROWS/2, COLS/2, NPC> & src_uv,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst0)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 119. nv122rgba 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
UV_T 入力ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、4 チャネル (XF_8UC4) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
src_y サイズ (ROWS, COLS) の入力 Y プレーン。
src_uv サイズ (ROWS/2, COLS/2) の入力 UV プレーン。
_dst0 サイズ (ROWS, COLS) の出力 RGBA 画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での NV12 to RGBA のリソース使用量を示します。

表 120. nv122rgba 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 2 5 1191 708 195
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での NV12 to RGBA のパフォーマンス見積もりを示します。

表 121. nv122rgba 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

NV12 to YUV4 (nv122yuv4)

nv122yuv4 関数は、NV12 画像フォーマットを YUV444 フォーマットに変換します。出力は U および V プレーンです。Y プレーンはどちらの画像フォーマットでも同じです。UV プレーンは 2x2 回複製され、YUV444 画像フォーマットの 1 つの U プレーンと V プレーンを表します。

API 構文
template<int SRC_T,int UV_T, int ROWS, int COLS, int NPC=1, int NPC_UV=1>
void nv122yuv4(xf::Mat<SRC_T, ROWS, COLS, NPC> & src_y, xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & src_uv,xf::Mat<SRC_T, ROWS, COLS, NPC> & _y_image, xf::Mat<SRC_T, ROWS, COLS, NPC> & _u_image,xf::Mat<SRC_T, ROWS, COLS, NPC> & _v_image)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 122. nv122yuv4 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
UV_T 入力ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅 (8 ピクセル モードの場合は 8 の倍数で指定)。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
NPC_UV 1 サイクルごとに処理される UV 画像ピクセル数。1 ピクセルの操作の場合は XF_NPPC1、4 ピクセルの操作の場合は XF_NPPC4。
src_y サイズ (ROWS, COLS) の入力 Y プレーン。
src_uv サイズ (ROWS/2, COLS/2) の入力 UV プレーン。
_y_image サイズ (ROWS, COLS) 出力 Y プレーン。
_u_image サイズ (ROWS, COLS) の出力 U プレーン。
_v_image サイズ (ROWS, COLS) の出力 V プレーン。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での NV12 to YUV4 のリソース使用量を示します。

表 123. nv122yuv4 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 1383 832 230
8 ピクセル 150 0 0 1772 1034 259
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での NV12 to YUV4 のパフォーマンス見積もりを示します。

表 124. nv122yuv4 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 13.8
8 ピクセル動作 (150 MHz) 3.4

NV21 to IYUV (nv212iyuv)

nv212iyuv 関数は、NV21 画像フォーマットを IYUV 画像フォーマットに変換します。入力はインターリーブされた VU プレーンのみであり、出力は U および V プレーンです。Y プレーンはどちらのフォーマットでも同じなので、Y プレーンを処理する必要はありません。U 値および V 値は、ピクセル インターリーブからプレーン インターリーブに変換されます。

API 構文
template<int SRC_T, int UV_T, int ROWS, int COLS, int NPC=1,int NPC_UV=1>
void nv212iyuv(xf::Mat<SRC_T, ROWS, COLS, NPC> & src_y, xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & src_uv,xf::Mat<SRC_T, ROWS, COLS, NPC> & _y_image, xf::Mat<SRC_T, ROWS/4, COLS, NPC> & _u_image,xf::Mat<SRC_T, ROWS/4, COLS, NPC> & _v_image)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 125. nv212iyuv 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
UV_T 入力ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
NPC_UV 1 サイクルごとに処理される UV 画像ピクセル数。1 ピクセルの操作の場合は XF_NPPC1、4 ピクセルの操作の場合は XF_NPPC4。
src_y サイズ (ROWS, COLS) の入力 Y プレーン。
src_uv サイズ (ROWS/2, COLS/2) の入力 UV プレーン。
_y_image サイズ (ROWS, COLS) 出力 Y プレーン。
_u_image サイズ (ROWS/4, COLS) の出力 U プレーン。
_v_image サイズ (ROWS/4, COLS) の出力 V プレーン。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での NV21 to IYUV のリソース使用量を示します。

表 126. nv212iyuv 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 1 1377 730 219
8 ピクセル 150 0 1 1975 1012 279
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での NV21 to IYUV のパフォーマンス見積もりを示します。

表 127. nv212iyuv 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9
8 ピクセル動作 (150 MHz) 1.7

NV21 to RGBA (nv212rgba)

nv212rgba 関数は、NV21 画像フォーマットを 4 チャネル RGBA 画像に変換します。入力は Y および VU プレーンです。NV21 にはサブサンプリングされたデータが格納されており、Y プレーンがユニット レートでサンプリングされ、2x2 の Y 値ごとに U 値と V 値が 1 つずつサンプリングされます。RGBA データを生成するため、各 U および V 値が 2x2 回複製されます。

API 構文
template<int SRC_T, int UV_T, int DST_T, int ROWS, int COLS, int NPC=1>
void nv212rgba(xf::Mat<SRC_T, ROWS, COLS, NPC> & src_y, xf::Mat<UV_T, ROWS/2, COLS/2, NPC> & src_uv,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst0)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 128. nv212rgba 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
UV_T 入力ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、4 チャネル (XF_8UC4) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
src_y サイズ (ROWS, COLS) の入力 Y プレーン。
src_uv サイズ (ROWS/2, COLS/2) の入力 UV プレーン。
_dst0 サイズ (ROWS, COLS) の出力 RGBA 画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での NV21 to RGBA のリソース使用量を示します。

表 129. nv212rgba 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 2 5 1170 673 183
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での NV12 to RGBA のパフォーマンス見積もりを示します。

表 130. nv212rgba 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

NV21 to YUV4 (nv212yuv4)

nv212yuv4 関数は、NV12 画像フォーマットを YUV444 フォーマットに変換します。出力は U および V プレーンです。Y プレーンはどちらのフォーマットでも同じです。UV プレーンは 2x2 回複製され、YUV444 フォーマットの 1 つの U プレーンと V プレーンを表します。

API 構文
template<int SRC_T, int UV_T, int ROWS, int COLS, int NPC=1,int NPC_UV=1>
void nv212yuv4(xf::Mat<SRC_T, ROWS, COLS, NPC> & src_y, xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & src_uv, xf::Mat<SRC_T, ROWS, COLS, NPC> & _y_image, xf::Mat<SRC_T, ROWS, COLS, NPC> & _u_image, xf::Mat<SRC_T, ROWS, COLS, NPC> & _v_image)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 131. nv212yuv4 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
UV_T 入力ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅 (8 ピクセル モードの場合は 8 の倍数で指定)。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
NPC_UV 1 サイクルごとに処理される UV 画像ピクセル数。1 ピクセルの操作の場合は XF_NPPC1、4 ピクセルの操作の場合は XF_NPPC4。
src_y サイズ (ROWS, COLS) の入力 Y プレーン。
src_uv サイズ (ROWS/2, COLS/2) の入力 UV プレーン。
_y_image サイズ (ROWS, COLS) 出力 Y プレーン。
_u_image サイズ (ROWS, COLS) の出力 U プレーン。
_v_image サイズ (ROWS, COLS) の出力 V プレーン。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での NV21 to YUV4 のリソース使用量を示します。

表 132. nv212yuv4 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 1383 817 233
8 ピクセル 150 0 0 1887 1087 287
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での NV21 to YUV4 のパフォーマンス見積もりを示します。

表 133. nv212yuv4 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 13.8
8 ピクセル動作 (150 MHz) 3.5

RGB to GRAY (rgb2gray)

rgb2gray 関数は、3 チャネルの RGB 画像を GRAY フォーマットに変換します。

Y= 0.299*R+0.587*G+0.114*B
説明:
  • Y: グレー ピクセル
  • R: 赤チャネル
  • G: 緑チャネル
  • B: 青チャネル
API 構文
template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void rgb2gray(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 134. RGB2GRAY 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。
NPC 1 サイクルごとに処理されるピクセル数。
_src RGB 入力画像
_dst GRAY 出力画像
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での RGB to GRAY のリソース使用量を示します。

表 135. RGB2GRAY 関数のリソース使用量のサマリ
動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 300 0 3 439 280
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での RGB to GRAY のパフォーマンス見積もりを示します。

表 136. RGB2GRAY 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

BGR to GRAY (bgr2gray)

bgr2gray は、3 チャネルの BGR 画像を GRAY フォーマットに変換します。

Y= 0.299*R+0.587*G+0.114*B

説明:
  • Y: グレー ピクセル
  • R: 赤チャネル
  • G: 緑チャネル
  • B: 青チャネル
API 構文
template<int SRC_T, int DST_T, int ROWS, int COLS, int NPC=1>
void bgr2gray(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 137. bgr2gray 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
ROWS 入力および出力画像の最大高さ。8 の倍数で指定。
COLS 入力および出力画像の最大幅。8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。
_src BGR 入力画像
_dst GRAY 出力画像
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での BGR to GRAY のリソース使用量を示します。

表 138. bgr2gray 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 300 0 3 439 280
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での BGR to GRAY のパフォーマンス見積もりを示します。

表 139. bgr2gray 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

GRAY to RGB (gray2rgb)

gray2rgb は、グレー強度画像を RGB 色フォーマットに変換します。

R<-Y、G<-Y、B<-Y

  • Y: グレー ピクセル
  • R: 赤チャネル
  • G: 緑チャネル
  • B: 青チャネル
API 構文
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void gray2rgb(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 140. gray2rgb 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。8 の倍数で指定。
COLS 入力および出力画像の最大幅。8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。
_src グレー入力画像。
_dst RGB 出力画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での gray2rgb のリソース使用量を示します。

表 141. gray2rgb 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 300 0 0 156 184
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での gray2rgb のパフォーマンス見積もりを示します。

表 142. gray2rgb 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

GRAY to BGR (gray2bgr)

gray2bgr は、グレー強度画像を RGB 色フォーマットに変換します。

R<-Y、G<-Y、B<-Y

説明:
  • Y: グレー ピクセル
  • R: 赤チャネル
  • G: 緑チャネル
  • B: 青チャネル
API 構文
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>
void gray2bgr(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 143. gray2bgr 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。8 の倍数で指定。
COLS 入力および出力画像の最大幅。8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。
_src グレー入力画像。
_dst BGR 出力画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での gray2bgr のリソース使用量を示します。

表 144. gray2bgr 関数のリソース使用量のサマリ
動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 300 0 0 156 184
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での gray2bgr のパフォーマンス見積もりを示します。

表 145. gray2bgr 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

HLS to RGB/BGR (hls2rgb、hls2bgr)

hls2(rgb/bgr) 関数は、HLS 色空間を 3 チャネル RGB/BGR 画像に変換します。











API 構文
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void hls2rgb(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void hls2bgr(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 146. HLS2RGB/BGR 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。8 の倍数で指定。
COLS 入力および出力画像の最大幅。8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。
_src HLS 入力画像。
_dst RGB/BGR 出力画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での HLS2RGB/BGRR のリソース使用量を示します。

表 147. HLS2RGB/BGR 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 300 0 3 4366 3096
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での HLS2RGB/BGR のパフォーマンス見積もりを示します。

表 148. HLS2RGB/BGR 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

RGB to XYZ (rgb2xyz)

rgb2xyz 関数は、3 チャネルの RGB 画像を XYZ 色空間に変換します。

  • R: 赤チャネル
  • G: 緑チャネル
  • B: 青チャネル
API 構文
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void rgb2xyz(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 149. RGB2XYZ 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。8 の倍数で指定。
COLS 入力および出力画像の最大幅。8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。
_src RGB 入力画像。
_dst XYZ 出力画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での RGB to XYZ のリソース使用量を示します。

表 150. RGB2XYZ 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 300 0 8 644 380
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での RGB to XYZ のパフォーマンス見積もりを示します。

表 151. RGB2XYZ 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

BGR to XYZ (bgr2xyz)

bgr2xyz 関数は、3 チャネルの RGB 画像を XYZ 色空間に変換します。

  • R: 赤チャネル
  • G: 緑チャネル
  • B: 青チャネル
API 構文
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void bgr2xyz(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 152. RGB2XYZ 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。8 の倍数で指定。
COLS 入力および出力画像の最大幅。8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。
_src BGR 入力画像。
_dst XYZ 出力画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での BGR to XYZ のリソース使用量を示します。

表 153. BGR2XYZ 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 300 0 8 644 380
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での BGR to XYZ のパフォーマンス見積もりを示します。

表 154. BGR2XYZ 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

RGB/BGR to YCrCb (rgb2ycrcb、bgr2ycrcb)

(rgb/bgr)2ycrcb 関数は、3 チャネルの RGB 画像を YCrCb 色空間に変換します。
  • Y = 0.299*R + 0.587*G + 0.114*B
  • Cr= (R-Y)*0.713+delta
  • Cb= (B-Y)*0.564+delta


API 構文
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void rgb2ycrcb(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void bgr2ycrcb(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 155. RGB/BGR2YCrCb 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。8 の倍数で指定。
COLS 入力および出力画像の最大幅。8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数
_src RGB/RGB 入力画像
_dst YCrCb 出力画像
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での RGB/BGR2YCrCb のリソース使用量を示します。

表 156. RGB/BGR2YCrCb 関数のリソース使用量のサマリ
動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 300 0 5 660 500
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での RGB/BGR2YCrCb のパフォーマンス見積もりを示します。

表 157. RGB/BGR2YCrCb 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

RGB/BGR to HSV (rgb2hsv、bgr2hsv)

(rgb/bgr)2hsv 関数は、3 チャネルの RGB 画像を HSV 色空間に変換します。







API 構文
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void rgb2hsv(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1> void bgr2hsv(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 158. RGB/BGR2HSV 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。8 の倍数で指定。
COLS 入力および出力画像の最大幅。8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数
_src RGB/RGB 入力画像
_dst HSV 出力画像
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での RGB/BGR2HSV のリソース使用量を示します。

表 159. RGB/BGR2HSV 関数のリソース使用量のサマリ
動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 300 6 8 1582 1274
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での RGB/BGR2HSV のパフォーマンス見積もりを示します。

表 160. RGB/BGR2HSV 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

RGB/BGR to HLS (rgb2hls、bgr2hls)

(rgb/bgr)2hls 関数は、3 チャネルの RGB 画像を HLS 色空間に変換します。









API 構文
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void rgb2hls(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void bgr2hls(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 161. RGB/BGR2HLS 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。8 の倍数で指定。
COLS 入力および出力画像の最大幅。8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。
_src RGB/RGB 入力画像。
_dst HLS 出力画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での RGB/BGR2HLS のリソース使用量を示します。

表 162. RGB/BGR2HLS 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 300 0 3 4366 3096
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での RGB/BGR2HLS のパフォーマンス見積もりを示します。

表 163. RGB/BGR2HLS 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

YCrCb to RGB/BGR (ycrcb2rgb、ycrcb2bgr)

ycrcb2(rgb/bgr) 関数は、YCrCb 色空間を 3 チャネル RGB/BGR 画像に変換します。

説明:
  • R= Y+1.403*(Cr-delta)
  • G= Y-0.714*(Cr-delta)-0.344*(cb-delta)
  • B= Y+1.773+(Cb-delta)
API 構文
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void ycrcb2rgb(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void ycrcb2bgr(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 164. YCrCb2RGB/BGR 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。8 の倍数で指定。
COLS 入力および出力画像の最大幅。8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。
_src YCrCb 入力画像。
_dst RGB/BGR 出力画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での YCrCb2RGB/BGR のリソース使用量を示します。

表 165. YCrCb2RGB/BGR 関数のリソース使用量のサマリ
動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 300 0 4 538 575
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での YCrCb2RGB/BGR のパフォーマンス見積もりを示します。

表 166. YCrCb2RGB/BGR 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

HSV to RGB/BGR (hsv2rgb、hsv2bgr)

hsv2(rgb/bgr) 関数は、HSV 色空間を 3 チャネル RGB/BGR 画像に変換します。











API 構文
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void hsv2rgb(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void hsv2bgr(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 167. HSV2RGB/BGR 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。8 の倍数で指定。
COLS 入力および出力画像の最大幅。8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数
_src HSV 入力画像
_dst RGB/BGR 出力画像
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での HSV2RGB/BGRR のリソース使用量を示します。

表 168. HSV2RGB/BGR 関数のリソース使用量のサマリ
動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 300 0 8 1543 1006
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での HSV2RGB/BGR のパフォーマンス見積もりを示します。

表 169. HSV2RGB/BGR 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

NV12/NV21 to RGB/BGR (nv122rgb、nv122bgr、nv212rgb、nv212bgr)

nv122rgb/nv122bgr/nv212rgb/nv212bgr は、NV12 画像フォーマットを 3 チャネル RGB/BGR 画像に変換します。入力は Y および UV プレーンです。NV12 にはサブサンプリングされたデータが格納されており、Y プレーンがユニット レートでサンプリングされ、2x2 の Y 値ごとに U 値と V 値が 1 つずつサンプリングされます。RGB データを生成するため、各 U および V 値が 2x2 回複製されます。

API 構文
NV122RGB:
template<int SRC_T,int UV_T,int DST_T,int ROWS,int COLS,int NPC=1,int NPC_UV=1>void nv122rgb(xf::Mat<SRC_T, ROWS, COLS, NPC> & src_y,xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & src_uv,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst0)
NV122BGR:
template<int SRC_T,int UV_T,int DST_T,int ROWS,int COLS,int NPC=1,int NPC_UV=1>void nv122bgr(xf::Mat<SRC_T, ROWS, COLS, NPC> & src_y,xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & src_uv,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst0)
NV212RGB:
template<int SRC_T,int UV_T,int DST_T,int ROWS,int COLS,int NPC=1,int NPC_UV=1>void nv212rgb(xf::Mat<SRC_T, ROWS, COLS, NPC> & src_y,xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & src_uv,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst0)
NV212BGR:
template<int SRC_T,int UV_T,int DST_T,int ROWS,int COLS,int NPC=1,int NPC_UV=1>void nv212bgr(xf::Mat<SRC_T, ROWS, COLS, NPC> & src_y, xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & src_uv, xf::Mat<DST_T, ROWS, COLS, NPC> & _dst0)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 170. 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
UV_T 入力ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
ROWS 入力および出力画像の最大高さ
COLS 入力および出力画像の最大幅。N ピクセル モードの場合は NPC の倍数で指定。
NPC 1 サイクルごとに処理される Y ピクセル数。有効なオプションは XF_NPPC1、XF_NPPC2、XF_NPPC4、および XF_NPPC8。
NPC_UV 1 サイクルごとに処理される UV ピクセル数。有効なオプションは XF_NPPC1、XF_NPPC2、および XF_NPPC4。
src_y サイズ (ROWS, COLS) の Y 入力画像。
src_uv サイズ (ROWS/2, COLS/2) の UV 出力画像。
_dst0 サイズ (ROWS, COLS) の出力 UV 画像。
リソース使用量

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された通常モード (1 ピクセル) の NV12/NV21 to RGB/ BGR 関数のリソース使用量を示します。

動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 2 5 339 289 76
パフォーマンス見積もり

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2018.3 ツールを使用して生成された 1 ピクセル設定でのカーネルのパフォーマンス見積もりを示します。

表 171. パフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

NV12 to NV21、NV21 to NV12 (nv122nv21、nv212nv12)

nv122nv21/nv212nv12 関数は、NV12 (YUV4:2:0) を NV21 (YUV4:2:0) に変換、またはその逆変換を実行します。8 ビット Y プレーンの後に 2x2 サブサンプリングされたインターリーブ U/V プレーンが続きます。

API 構文
NV122NV21:
template<int SRC_Y,int SRC_UV,int ROWS,int COLS,int NPC=1,int NPC_UV=1>
void nv122nv21(xf::Mat<SRC_Y, ROWS, COLS, NPC> & _y,xf::Mat<SRC_UV, ROWS/2, COLS/2, NPC_UV> & _uv,xf::Mat<SRC_Y, ROWS, COLS, NPC> & out_y,xf::Mat<SRC_UV, ROWS/2, COLS/2, NPC_UV> & out_uv)
NV212NV12:
template<int SRC_Y, int SRC_UV, int ROWS, int COLS, int NPC=1,int NPC_UV=1>void nv212nv12(xf::Mat<SRC_Y, ROWS, COLS, NPC> & _y, xf::Mat<SRC_UV, ROWS/2, COLS/2, NPC_UV> & _uv, xf::Mat<SRC_Y, ROWS, COLS, NPC> & out_y, xf::Mat<SRC_UV, ROWS/2, COLS/2, NPC_UV> & out_uv)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 172. 関数のパラメーターの説明
パラメーター 説明
SRC_Y 入力 Y ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
SRC_UV 入力 UV ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
ROWS 入力および出力画像の最大高さ
COLS 入力および出力画像の最大幅。N の倍数で指定。
NPC_Y 1 サイクルごとに処理される Y ピクセル数。有効なオプションは XF_NPPC1、XF_NPPC2、XF_NPPC4、および XF_NPPC8。
NPC_UV 1 サイクルごとに処理される UV ピクセル数。有効なオプションは XF_NPPC1、XF_NPPC2、および XF_NPPC4。
_y Y 入力画像
_uv UV 入力画像
out_y Y 出力画像
out_uv UV 出力画像
リソース使用量

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された通常モード (1 ピクセル) の NV122NV21/NV212NV12 関数のリソース使用量を示します。

動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 258 161 61
パフォーマンス見積もり

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された 1 ピクセル設定でのカーネルのパフォーマンス見積もりを示します。

表 173. パフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

NV12/NV21 to UYVY/YUYV (nv122uyvy、nv122yuyv、nv212uyvy、nv212yuyv)

NV12/NV21 to UYVY/YUYV 関数は、NV12/NV21 (YUV4:2:0) 画像を 1 チャネル YUYV/UYVY (YUV 4:2:2) フォーマットに変換します。YUYV はサブサンプリング フォーマットです。YUYV/UYVY は 16 ビット値、BGR は 24 ビット値です。

API 構文
NV122UYVY:
template<int SRC_Y, int SRC_UV, int DST_T, int ROWS, int COLS, int NPC=1,int NPC_UV=1>void nv122uyvy(xf::Mat<SRC_Y, ROWS, COLS, NPC> & _y,xf::Mat<SRC_UV, ROWS/2, COLS/2, NPC_UV> & _uv,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
NV122YUYV:
template<int SRC_Y, int SRC_UV, int DST_T, int ROWS, int COLS, int NPC=1,int NPC_UV=1>void nv122yuyv(xf::Mat<SRC_Y, ROWS, COLS, NPC> & _y, xf::Mat<SRC_UV, ROWS/2, COLS/2, NPC_UV> & _uv, xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
NV212UYVY:
template<int SRC_Y, int SRC_UV, int DST_T, int ROWS, int COLS, int NPC=1,int NPC_UV=1>void nv212uyvy(xf::Mat<SRC_Y, ROWS, COLS, NPC> & _y, xf::Mat<SRC_UV, ROWS/2, COLS/2, NPC_UV> & _uv,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
NV212YUYV:
 template<int SRC_Y, int SRC_UV, int DST_T,int ROWS, int COLS, int NPC=1,int NPC_UV=1>void nv212yuyv(xf::Mat<SRC_Y, ROWS, COLS, NPC> & _y, xf::Mat<SRC_UV, ROWS/2, COLS/2, NPC_UV> & _uv, xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 174. 関数のパラメーターの説明
パラメーター 説明
SRC_Y 入力 Y 画像ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
SRC_UV 入力 UV 画像ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
DST_T 出力ピクセルのデータ型。16 ビット、符号なし、1 チャネル (XF_16UC1) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。NPC の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。有効なオプションは XF_NPPC1、XF_NPPC2、XF_NPPC4、および XF_NPPC8。
NPC_UV 1 サイクルごとに処理されるピクセル数。有効なオプションは XF_NPPC1、XF_NPPC2、および XF_NPPC4。
_y Y 入力画像
_uv UV 入力画像
_dst UYVY/YUYV 出力画像
リソース使用量

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された通常モード (1 ピクセル) の NV12/NV21 to UYVY/YUYV 関数のリソース使用量を示します。

動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 1 0 337 201 64
パフォーマンス見積もり

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された 1 ピクセル設定でのカーネルのパフォーマンス見積もりを示します。

表 175. パフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

UYVY/YUYV to RGB/BGR (yuyv2rgb、yuyv2bgr、uyvy2rgb、uyvy2bgr)

yuyv2rgb、yuyv2bgr、uyvy2rgb、uyvy2bgr 関数は、1 チャネルの YUYV/UYVY (YUV 4:2:2) 画像フォーマットを 3 チャネルの RGB/BGR 画像に変換します。YUYV/UYVY はサブサンプリング フォーマットで、YUYV/UYVY 値のセットにより 2 つの RGB 値が得られます。YUYV/UYVY は 16 ビット値、RGB/BGR は 24 ビット値です。

API 構文
YUYV2RGB:
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void yuyv2rgb(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
YUYV2BGR:
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void yuyv2bgr(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
UYVY2RGB
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void uyvy2rgb(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
UYVY2BGR:
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void uyvy2bgr(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 176. 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。16 ビット、符号なし、1 チャネル (XF_16UC1) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ
COLS 入力および出力画像の最大幅。N ピクセル モードの場合は NPC の倍数で指定。
NPC 1 サイクルごとに処理される Y ピクセル数。有効なオプションは XF_NPPC1、XF_NPPC2、XF_NPPC4、および XF_NPPC8。
_src サイズ (ROWS, COLS) の入力画像。
_dst サイズ (ROWS, COLS) の出力画像。
リソース使用量

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された通常モード (1 ピクセル) の UYVY/YUYV to RGB/BGR 関数のリソース使用量を示します。

動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 6 444 486 109
パフォーマンス見積もり

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された 1 ピクセル設定でのカーネルのパフォーマンス見積もりを示します。

表 177. パフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

UYVY to YUYV、YUYV to UYVY (yuyv2uyvy、uyvy2yuyv)

yuyv2uyvy/uyvy2yuyv 関数は、YUYV (YUV4:2:2) を UYVY (YUV4:2:2) に変換、またはその逆変換を実行します。8 ビット Y プレーンの後に 2x2 サブサンプリングされたインターリーブ U/V プレーンが続きます。

API 構文
UYVY2YUYV:
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void uyvy2yuyv(xf::Mat<SRC_T, ROWS, COLS, NPC> & uyvy,xf::Mat<DST_T, ROWS, COLS, NPC> & yuyv)
YUYV2UYVY:
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void yuyv2uyvy(xf::Mat<SRC_T, ROWS, COLS, NPC> & yuyv,xf::Mat<DST_T, ROWS, COLS, NPC> & uyvy)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 178. 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力 Y ピクセルのデータ型。16 ビット、符号なし、1 チャネル (XF_16UC1) のみサポート。
ROWS 入力および出力画像の最大高さ
COLS 入力および出力画像の最大幅。N の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。有効なオプションは XF_NPPC1、XF_NPPC2、XF_NPPC4、および XF_NPPC8。
yuyv 入力画像
uyvy 出力画像
リソース使用量

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA 用に、Vivado HLS 2019.1 ツールを使用して生成された通常モード (1 ピクセル) の UYVY to YUYV/ YUYV to UYVY 関数のリソース使用量を示します。

動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 1 368 176 109
パフォーマンス見積もり

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された 1 ピクセル設定でのカーネルのパフォーマンス見積もりを示します。

表 179. パフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

UYVY/YUYV to NV21 (uyvy2nv21、yuyv2nv21)

UYVY/YUYV2NV21 関数は、1 チャネルの YUYV/UYVY (YUV 4:2:2) 画像フォーマットを NV21 (YUV 4:2:0) フォーマットに変換します。YUYV/UYVY はサブサンプリング フォーマットで、YUYV/UYVY 値の 1 セットから Y 値が 2 つと U 値および V 値が 1 つずつ得られます。

API 構文
UYVY2NV21:
template<int SRC_T,int Y_T,int UV_T,int ROWS,int COLS,int NPC=1,int NPC_UV=1>void uyvy2nv21(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<Y_T, ROWS, COLS, NPC> & _y_image,xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & _uv_image)
YUYV2NV21:
template<int SRC_T,int Y_T,int UV_T,int ROWS,int COLS,int NPC=1,int NPC_UV=1>void yuyv2nv21(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<Y_T, ROWS, COLS, NPC> & _y_image,xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & _uv_image)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 180. 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。16 ビット、符号なし、1 チャネル (XF_16UC1) のみサポート。
Y_T 出力 Y 画像ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
UV_T 出力 UV 画像ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。NPC の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。可能なオプションは XF_NPPC1、XF_NPPC2、XF_NPPC4、および XF_NPPC8。
NPC_UV 1 サイクルごとに処理される U、V ピクセル数。可能なオプションは XF_NPPC1、XF_NPPC2、および XF_NPPC4。
_src 入力画像
_y_image Y 出力画像
_uv_image UV 出力画像
リソース使用量

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された通常モード (1 ピクセル) の UYVY/YUYV to NV21 関数のリソース使用量を示します。

動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 215 73 42
パフォーマンス見積もり

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された 1 ピクセル設定でのカーネルのパフォーマンス見積もりを示します。

表 181. パフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

RGB/BGR to NV12/NV21 (rgb2nv12、bgr2nv12、rgb2nv21、bgr2nv21)

rgb2nv12/bgr2nv12/rgb2nv21/bgr2nv21 は、3 チャネルの RGB/BGR 画像を NV12/NV21 (4:2:0) フォーマットに変換します。出力は Y プレーンおよびインターリーブされた UV/VU プレーンです。NV12/NV21 にはサブサンプリングされたデータが格納されるので、Y は RGB/BGR の 1 ピクセルごとにサンプリングされ、U および V は 2 行と 2 列 (2x2) のピクセルごとにサンプリングされます。UV/VU プレーンのサイズは (rows/2)*(columns/2) で、U と V の値がインターリーブされます。

API 構文
RGB2NV12
template <int SRC_T, int Y_T, int UV_T, int ROWS, int COLS, int NPC=1,int NPC_UV=1>void rgb2nv12(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<Y_T, ROWS, COLS, NPC> & _y, xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & _uv)
BGR2NV12
template <int SRC_T, int Y_T, int UV_T, int ROWS, int COLS, int NPC=1,int NPC_UV=1>void bgr2nv12(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<Y_T, ROWS, COLS, NPC> & _y, xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & _uv)
RGB2NV21
template <int SRC_T, int Y_T, int UV_T, int ROWS, int COLS, int NPC=1,int NPC_UV=1>void rgb2nv21(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<Y_T, ROWS, COLS, NPC> & _y, xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & _uv)
BGR2NV21
template <int SRC_T, int Y_T, int UV_T, int ROWS, int COLS, int NPC=1,int NPC_UV=1>void bgr2nv21(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<Y_T, ROWS, COLS, NPC> & _y, xf::Mat<UV_T, ROWS/2, COLS/2, NPC_UV> & _uv)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 182. 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
Y_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
UV_T 出力ピクセルのデータ型。8 ビット、符号なし、2 チャネル (XF_8UC2) のみサポート。
ROWS 入力および出力画像の最大高さ
COLS 入力および出力画像の最大幅。N ピクセル モードの場合は NPC の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。有効なオプションは XF_NPPC1、XF_NPPC2、XF_NPPC4、および XF_NPPC8。
NPC_UV 1 サイクルごとに処理されるピクセル数。有効なオプションは XF_NPPC1、XF_NPPC2、および XF_NPPC4。
_src サイズ (ROWS, COLS) の RGB 入力画像。
_y サイズ (ROWS, COLS) の出力 Y 画像。
_uv サイズ (ROWS/2, COLS/2) の出力 UV 画像。
リソース使用量

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された通常モード (1 ピクセル) の RGB/BGR to NV12/NV21 関数のリソース使用量を示します。

動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 9 413 279 66
パフォーマンス見積もり

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された 1 ピクセル設定でのカーネルのパフォーマンス見積もりを示します。

表 183. パフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

BGR to RGB、RGB to BGR (bgr2rgb、rgb2bgr)

bgr2rgb/rgb2bgr は、3 チャネルの BGR を RGB フォーマットに、または RGB を BGR フォーマットに変換します。

API 構文
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void bgr2rgb(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void rgb2bgr(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 184. 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。N の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。有効なオプションは XF_NPPC1、XF_NPPC2、XF_NPPC4、および XF_NPPC8。
_src BGR/RGB 入力画像
_dst RGB/BGR 出力画像
リソース使用量

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA 用に、Vivado HLS 2019.1 ツールを使用して生成された通常モード (1 ピクセル) の RGB to BGR/BGR to RGB 関数のリソース使用量を示します。

動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 0 317 118 98
パフォーマンス見積もり

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された 1 ピクセル設定でのカーネルのパフォーマンス見積もりを示します。

表 185. パフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

RGB/BGR to UYVY/YUYV (rgb2uyvy、rgb2yuyv、bgr2uyvy、bgr2yuyv)

RGB/BGR to UYVY/YUYV 関数は、3 チャネルの RGB/BGR 画像を 1 チャネル YUYV/UYVY (YUV 4:2:2) フォーマットに変換します。YUYV はサブサンプリング フォーマットで、2 つの RGB 値のセットにより YUYV/UYVY 値が得られます。YUYV/UYVY は 16 ビット値、BGR は 24 ビット値です。

API 構文

RGB to UYVY:

template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void rgb2uyvy(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
RGB to YUYV:
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void rgb2yuyv(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
BGR to UYVY:
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void bgr2uyvy(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
BGR to YUYV:
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void bgr2yuyv(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 186. 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。16 ビット、符号なし、1 チャネル (XF_16UC1) のみサポート。
ROWS 入力および出力画像の最大高さ
COLS 入力および出力画像の最大幅。NPC の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。有効なオプションは XF_NPPC1、XF_NPPC2、XF_NPPC4、および XF_NPPC8。
_src RGB/RGB 入力画像
_dst UYVY/YUYV 出力画像
リソース使用量

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA 用に、Vivado HLS 2019.1 ツールを使用して生成された通常モード (1 ピクセル) の RGB/BGR to UYVY/YUYV 関数のリソース使用量を示します。

動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 300 0 9 249 203 55
パフォーマンス見積もり

次の表に、ザイリンクス xczu9eg-ffvb1156-2-i-es2 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された 1 ピクセル設定でのカーネルのパフォーマンス見積もりを示します。

表 187. パフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

XYZ to RGB/BGR (xyz2rgb、xyz2bgr)

xyz2rgb 関数は、XYZ 色空間を 3 チャネル RGBA 画像に変換します。

API 構文
template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void xyz2rgb(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)template<int SRC_T,int DST_T,int ROWS,int COLS,int NPC=1>void xyz2bgr(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst)
パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 188. XYZ2RGB/BGR 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。8 の倍数で指定。
COLS 入力および出力画像の最大幅。8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。
_src XYZ 入力画像。
_dst RGB/BGR 出力画像。
リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での XYZ2RGB/BGR のリソース使用量を示します。

表 189. XYZ2RGB/BGR 関数のリソース使用量のサマリ
動作モード

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 300 0 8 639 401
パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 で HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールで生成された異なる設定での XYZ2RGB/BGR のパフォーマンス見積もりを示します。

表 190. XYZ2RGB/BGR 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 6.9

色しきい値処理 (colorthresholding)

colorthresholding 関数は、ソース画像の色空間値を低しきい値と高しきい値を使用して比較し、出力として 255 または 0 を返します。

API 構文

template<int SRC_T,int DST_T,int MAXCOLORS, int ROWS, int COLS,int NPC>
          void colorthresholding(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst_mat,unsigned char low_thresh[MAXCOLORS*3], unsigned char high_thresh[MAXCOLORS*3])

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、3 チャネル (XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
MAXCOLORS カラー値の最大数
ROWS 入力および出力画像の最大高さ
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。XF_NPPC1 のみサポート。
_src_mat 入力画像
_dst_mat しきい値画像
low_thresh 色の最小しきい値
high_thresh 色の最大しきい値

比較 (compare)

compare 関数は、2 のつ入力画像 src1 と src2 の各要素を比較し、結果を dst に保存します。

dst(x,y)=src1(x,y) CMP_OP src2(x,y)
CMP_OP: ピクセル間の関係を指定するフラグ。
  • XF_CMP_EQ: src1 と src2 は等価
  • XF_CMP_GT: src1 は src2 より大きい
  • XF_CMP_GE: src1 は src2 以上
  • XF_CMP_LT: src1 は src2 より小さい
  • XF_CMP_LE: src1 は src2 以下
  • XF_CMP_NE: src1 と src2 は不等価

比較結果が真の場合は dst の対応する要素が 255 になり、偽の場合は 0 になります。

API 構文

template<int CMP_OP,  int SRC_T , int ROWS, int COLS, int NPC=1>
void compare(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1, xf::Mat<SRC_T, ROWS, COLS, NPC> & _src2, xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 191. compare 関数のパラメーターの説明
パラメーター 説明
CMP_OP チェックする要素間の関係を指定するフラグ
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) をサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。N ピクセルの並列処理の場合、幅は N の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src1 1 つ目の入力画像
_src2 2 つ目の入力画像
_dst 出力画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で Vivado HLS 2019.1 バージョン ツールを使用して生成された、リソース最適化 (8 ピクセル) モードおよび通常モードにおける XF_CMP_NE 設定の Compare 関数のリソース使用量を示します。

表 192. compare 関数のリソース使用量のサマリ
名前 リソース使用量
1 クロックごとに 1 ピクセル動作 8 クロックごとに 1 ピクセル動作
300 MHz 150 MHz
BRAM_18K 0 0
DSP48E 0 0
FF 87 60
LUT 38 84
CLB 16 20

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのパフォーマンス見積もりを示します。

表 193. compare 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
動作周波数 (MHz) レイテンシ (ms)

1 ピクセル

300 6.9

8 ピクセル

150 1.7

スカラー値との比較 (compareS)

compareS 関数は、入力画像 (src1) のピクセルをスカラー値 scl と比較し、結果を dst に保存します。

dst(x,y)=src1(x,y) CMP_OP scalar
CMP_OP: ピクセルとスカラーの関係を指定するフラグ。
  • XF_CMP_EQ: src1 と scl は等価
  • XF_CMP_GT: src1 は scl より大きい
  • XF_CMP_GE: src1 は scl 以上
  • XF_CMP_LT: src1 は scl より小さい
  • XF_CMP_LE: src1 は scl 以下
  • XF_CMP_NE: src1 と scl は不等価

比較結果が真の場合は dst の対応する要素が 255 になり、偽の場合は 0 になります。

API 構文

template<int CMP_OP,  int SRC_T , int ROWS, int COLS, int NPC=1>
void compareS(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src1, unsigned char _scl[XF_CHANNELS(SRC_T,NPC)], xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 194. compareS 関数のパラメーターの説明
パラメーター 説明
CMP_OP チェックする要素とスカラーの関係を指定するフラグ
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) をサポート。
ROWS 入力および出力画像の最大高さ
COLS 入力および出力画像の最大幅。N ピクセルの並列処理の場合、幅は N の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセル動作の場合は XF_NPPC1、8 ピクセル動作の場合は XF_NPPC8。
_src1 1 つ目の入力画像
_scl 入力スカラー値。サイズはチャネル数にする必要があります。
_dst 出力画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で Vivado HLS 2019.1 バージョン ツールを使用して生成された、リソース最適化 (8 ピクセル) モードおよび通常モードにおける XF_CMP_NE 設定の CompareS 関数のリソース使用量を示します。

表 195. compareS 関数のリソース使用量のサマリ
名前 リソース使用量
1 クロックごとに 1 ピクセル動作 8 クロックごとに 1 ピクセル動作
300 MHz 150 MHz
BRAM_18K 0 0
DSP48E 0 0
FF 93 93
LUT 39 68
CLB 21 28

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのパフォーマンス見積もりを示します。

表 196. compareS 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
動作周波数 (MHz) レイテンシ (ms)

1 ピクセル

300 6.9

8 ピクセル

150 1.7

切り抜き (crop)

Crop 関数は、入力画像から関心領域 (ROI) を抽出します。

P(X,Y) ≤ P(xi, yi) ≤ P(X’,Y’)
  • P(X,Y): ROI の左上角
  • P(X’,Y’): ROI の右下角

図: crop 関数

API 構文

template<int SRC_T, int ROWS, int COLS,int ARCH_TYPE=0,int NPC=1>
void crop(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,xf::Mat<SRC_T, ROWS, COLS, NPC>  &_dst_mat,xf::Rect_<unsigned int> &roi)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 197. crop 関数のパラメーターの説明
パラメーター 説明
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 および 3 チャネル (XF_8UC1、XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅。8 ピクセル動作の場合は 8 の倍数で指定。
ARCH_TYPE アーキテクチャ タイプ。ストリーミング インプリメンテーションの場合は 0、メモリ マップド インプリメンテーションの場合は 1 を指定します。
NPC 1 サイクルごとに処理されるピクセル数。2 のべき数を指定する必要があります。
_src_mat 入力画像
_dst_mat 出力 ROI 画像
roi 矩形の左上角、高さ、および幅で構成される xf::Rect オブジェクト。

リソース使用量

次の表に、3 つの ROI (480x640、100x200、300x300) を処理するために xczu9eg-ffvb1156-2-i-es2 FPGA 用に Vivado HLS 2019.1 ツールを使用して生成された通常モードの crop 関数のリソース使用量を示します。

表 198. crop 関数のリソース使用量のサマリ
名前 リソース使用量
1 クロックごとに 1 ピクセル動作 8 クロックごとに 1 ピクセル動作
300 MHz 300 MHz
BRAM_18K 6 8
DSP48E 10 10
FF 17482 16995
LUT 16831 15305

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で 3 つの ROI (480x640、100x200、300x300) のグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのパフォーマンス見積もりを示します。

表 199. crop 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
動作周波数 (MHz) レイテンシ (ms)
1 ピクセル 300 1.7
8 ピクセル 300 0.6

複数 ROI 抽出

accel.cppxf::crop 関数を複数回呼び出すことができます。

複数 ROI 抽出の例

void crop_accel(xf::Mat<TYPE, HEIGHT, WIDTH, NPIX> &_src,xf::Mat<TYPE,HEIGHT, WIDTH, NPIX> _dst[NUM_ROI],xf::Rect_<unsigned int> roi[NUM_ROI])
 {xf::crop<TYPE, TYPE, HEIGHT, WIDTH, NPIX>(_src, _dst[0],roi[0]); xf::crop<TYPE, TYPE, HEIGHT, WIDTH, NPIX>(_src, _dst[1],roi[1]); xf::crop<TYPE, TYPE, HEIGHT, WIDTH, NPIX>(_src, _dst[2],roi[2]);}

カスタムたたみ込み (filter2D)

filter2D 関数は、ユーザー定義のカーネルを使用して画像に対してたたみ込みを実行します。

たたみ込みは、2 つの関数 f および g に対する数学演算で、3 つ目の関数を生成します。通常 3 つ目の関数は元の関数の 1 つを変更したバージョンと考慮され、元の関数の 1 つが変換された量までの 2 つの関数のエリア オーバーラップを示します。

フィルターには、ユニティ ゲイン フィルターまたは非ユニティ ゲイン フィルターを使用できます。フィルターは、XF_16SP 型である必要があります。係数が浮動小数点の場合は、Qm.n に変換して入力として供給し、シフト パラメーターを n 値に設定する必要があります。入力が浮動小数点でない場合は、フィルターは直接供給され、シフト パラメーターは 0 に設定されます。

API 構文

template<int BORDER_TYPE,int FILTER_WIDTH,int FILTER_HEIGHT, int SRC_T,int DST_T, int ROWS, int COLS,int NPC=1>
void filter2D(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst_mat,short int filter[FILTER_HEIGHT*FILTER_WIDTH],unsigned char _shift)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 200. filter2D 関数のパラメーターの説明
パラメーター 説明
BORDER_TYPE サポートされる境界タイプは XF_BORDER_CONSTANT。
FILTER_HEIGHT 入力フィルターの行数
FILTER_WIDTH 入力フィルターの列数
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 および 3 チャネル (XF_8UC1、XF_8UC3) のみサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、1 チャネルおよび 3 チャネル (XF_8UC1、XF_8UC3) および 16 ビット、符号付き、1 チャネルおよび 3 チャネル (XF_16SC1、XF_16SC3) をサポート。
ROWS 入力および出力画像の最大高さ
COLS 入力および出力画像の最大幅。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src_mat 入力画像
_dst_mat 出力画像
filter 任意のサイズ (奇数) の入力フィルター。フィルターの係数は 16 ビット値または 16 ビット固定小数点の等価値。
_shift

フィルターは、XF_16SP 型である必要があります。係数が浮動小数点の場合は、Qm.n に変換して入力として供給し、シフト パラメーターを n 値に設定する必要があります。入力が浮動小数点でない場合は、フィルターは直接供給され、シフト パラメーターは 0 に設定されます。

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのリソース使用量を示します。

表 201. filter2D 関数のリソース使用量のサマリ
動作モード フィルター サイズ

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 3x3 300 3 9 1701 1161 269
5x5 300 5 25 3115 2144 524
8 ピクセル 3x3 150 6 72 2783 2768 638
5x5 150 10 216 3020 4443 1007

次の表に、ザイリンクス Xczu9eg-ffvb1156-1-i-es1 FPGA で 3 チャネルの 4K 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのリソース使用量を示します。

表 202. filter2D 関数のリソース使用量のサマリ
動作モード フィルター サイズ

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 3x3 300 18 27 886 801
5x5 300 30 75 1793 1445

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのパフォーマンス見積もりを示します。

表 203. filter2D 関数のパフォーマンス見積もりのサマリ
動作モード

動作周波数

(MHz)

フィルター サイズ レイテンシ見積もり
最大 (ms)
1 ピクセル 300 3x3 7
300 5x5 7.1
8 ピクセル 150 3x3 1.86
150 5x5 1.86

遅延 (delayMat)

画像処理パイプラインでは、関数への入力が FIFO インターフェイスを使用して同期化されていない可能性があります。最初の入力の最初のデータ パケットが、2 番目の入力の最初のデータ パケットより数クロック サイクル後に到着することがあります。関数のインターフェイスに十分な深さの FIFO がないと、ハードウェアでデザイン全体が停止します。入力を同期化するため、早く到着する入力パケットを指定したクロック サイクル数遅延させるこの関数が提供されています。

API 構文

template<int MAXDELAY, int SRC_T, int ROWS, int COLS,int NPC=1 >
          void delayMat(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。
パラメーター 説明
SRC_T 入力および出力のピクセルのデータ型
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅 (8 ピクセル動作の場合は 8 の倍数で指定)
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
MAXDELAY 関数にインスタンシエートする最大遅延。
_src 入力画像
_dst 出力画像

モザイク処理 (demosaicing)

demosaicing 関数は、デジタル カメラ センサーからの 1 プレーン ベイヤー パターン出力をカラー画像に変換します。Malvar、He、および Cutler により提唱されたバイリニア補間手法を改善したものをインプリメントします。

図: カラー画像のベイヤー モザイク

上の図は、シングル CCD デジタル カメラのカラー画像キャプチャを示しています。

API 構文

template<int BFORMAT, int SRC_T, int DST_T, int ROWS, int COLS, int NPC,bool USE_URAM=false>
void demosaicing(xf::Mat<SRC_T, ROWS, COLS, NPC> &src_mat, xf::Mat<DST_T, ROWS, COLS, NPC> &dst_mat)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 204. demosaicing 関数のパラメーターの説明
パラメーター 説明
BFORMAT 入力ベイヤー パターン。サポートされる値は XF_BAYER_BG、XF_BAYER_GB、XF_BAYER_GR、および XF_BAYER_RG です。
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネルと 3 チャネル (XF_8UC1、XF_8UC3)、および 16 ビット、符号なし、1 チャネルと 3 チャネル (XF_16UC1、XF_16UC3) をサポート。
DST_T 出力ピクセルのデータ型。8 ビット、符号なし、4 チャネル (XF_8UC4)、および 16 ビット、符号なし、4 チャネル (XF_16UC4) をサポート。
ROWS 処理される画像の行数。
COLS 処理される画像の列数。8 ピクセル モードの場合は 8 の倍数で指定。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセル並列処理 (XF_NPPC1)、2 ピクセル並列処理 (XF_NPPC2)、および 4 ピクセル並列処理 (XF_NPPC4) をサポート。ピクセルのデータ型 XF_16UC1 では XF_NPPC4 はサポートされません。
USE_URAM ストレージ構造を UltraRAM にマップ。
_src_mat 入力画像
_dst_mat 出力画像

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で Vivado HLS 2019.1 バージョン ツールを使用して生成された demosaicing 関数のリソース使用量を示します。

表 205. demosaicing 関数のリソース使用量のサマリ
動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K DSP48E FF LUT CLB
1 ピクセル 300 8 0 1906 1915 412
2 ピクセル 300 8 0 2876 3209 627
4 ピクセル 300 8 0 2950 3222 660

次の表に、xczu7ev-ffvc1156-2-e FPGA で SDx 2019.1 バージョン ツールを使用して生成された demosaicing 関数のリソース使用量を示します。

表 206. UltraRAM をイネーブルにした場合の demosaicing 関数のリソース使用量のサマリ
動作モード 動作周波数 (MHz) 使用量の見積もり
BRAM_18K URAM DSP48E FF LUT CLB
1 ピクセル 300 0 1 0 1366 1339 412

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 で 4K (3840x2160) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのパフォーマンス見積もりを示します。

表 207. demosaicing 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 27.82
2 ピクセル動作 (300 MHz) 13.9
4 ピクセル動作 (300 MHz、8 ビット画像のみ) 6.95

膨張 (dilate)

膨張演算は、現在のピクセル強度をその近傍 nxn ピクセルで最大の強度値に置き換えます。



API 構文

template<int BORDER_TYPE, int TYPE, int ROWS, int COLS,int K_SHAPE,int K_ROWS,int K_COLS, int ITERATIONS, int NPC=1>
void dilate (xf::Mat<TYPE, ROWS, COLS, NPC> & _src, xf::Mat<TYPE, ROWS, COLS, NPC> & _dst,unsigned char _kernel[K_ROWS*K_COLS])

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 208. dilate 関数のパラメーターの説明
パラメーター 説明
BORDER_TYPE サポートされる境界タイプは XF_BORDER_CONSTANT。
TYPE 入力および出力のピクセルのデータ型。8 ビット、符号なし、1 および 3 チャネル (XF_8UC1、XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅 (8 ピクセル動作の場合は 8 の倍数で指定)
K_SHAPE カーネルの形状。サポートされるカーネルの形状は RECT、CROSS、および ELLIPSE です。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
K_ROWS カーネルの高さ。
K_COLS カーネルの幅。
ITERATIONS 膨張の適用回数。現在のところ、矩形 (RECT) のカーネル要素でのみサポートされます。
_src_mat 入力画像
_dst_mat 出力画像
_kernel サイズ K_ROWS * K_COLS の膨張カーネル。

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で HD 画像 (1080X1920) を処理するために、Vivado HLS 2019.1 バージョン ツールで矩形 (RECT) 構造要素を使用して生成された膨張関数のリソース使用量を示します。

表 209. dilate 関数のリソース使用量のサマリ
名前 リソース使用量
1 クロックごとに 1 ピクセル動作 8 クロックごとに 1 ピクセル動作
300 MHz 150 MHz
BRAM_18K 3 6
DSP48E 0 0
FF 411 657
LUT 392 1249
CLB 96 255

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で 3 チャネルの 4K 画像を処理するために、Vivado HLS 2019.1 バージョン ツールでの矩形 (RECT) 構造要素を使用して 1 ピクセル操作で生成された膨張関数のリソース使用量を示します。

表 210. dilate 関数のリソース使用量のサマリ
名前 リソース使用量
1 クロックごとに 1 ピクセル動作
300 MHz
BRAM_18K 18
DSP48E 0
FF 983
LUT 745
CLB 186

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で Vivado HLS 2019.1 ツールを使用して生成された、通常動作 (1 ピクセル) およびリソース最適化 (8 ピクセル) 設定での膨張関数のパフォーマンス見積もりを示します。

表 211. dilate 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最小 (ms) 最大 (ms)

1 ピクセル (300 MHz)

7.0 7.0

8 ピクセル (150 MHz)

1.87 1.87

複製 (duplicateMat)

パイプラインのさまざまな関数がプログラマブル ロジックでインプリメントされる場合、データフロー処理のため、2 つの関数の間に FIFO がインスタンシエートされます。1 つの関数からの出力がパイプラインの 2 つの関数で使用される場合、FIFO を複製する必要があります。この関数は、FIFO の複製プロセスを簡単に実行できるようにします。

API 構文

template<int SRC_T, int ROWS, int COLS,int NPC=1>
          void duplicateMat(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src, xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst1,xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst2)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。
パラメーター 説明
SRC_T 入力および出力のピクセルのデータ型
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅 (8 ピクセル動作の場合は 8 の倍数で指定)
NPC 1 サイクルごとに処理されるピクセル数。使用可能なオプションは、1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src 入力画像
_dst1 _src の複製出力
_dst2 _src の複製出力

収縮 (erode)

erode 関数は、ピクセルの近傍 NXN で最小のピクセル強度を見つけ、ピクセル強度をその最小値に置き換えます。



API 構文

template<int BORDER_TYPE, int TYPE, int ROWS, int COLS,int K_SHAPE,int K_ROWS,int K_COLS, int ITERATIONS, int NPC=1>
void erode (xf::Mat<TYPE, ROWS, COLS, NPC> & _src, xf::Mat<TYPE, ROWS, COLS, NPC> & _dst,unsigned char _kernel[K_ROWS*K_COLS]) 

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 212. erode 関数のパラメーターの説明
パラメーター 説明
BORDER_TYPE サポートされる境界タイプは XF_BORDER_CONSTANT。
TYPE 入力および出力のピクセルのデータ型。8 ビット、符号なし、1 および 3 チャネル (XF_8UC1、XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅 (8 ピクセル動作の場合は 8 の倍数で指定)
K_SHAPE カーネルの形状。サポートされるカーネルの形状は RECT、CROSS、および ELLIPSE です。
K_ROWS カーネルの高さ。
K_COLS カーネルの幅。
ITERATIONS 収縮の適用回数。現在のところ、矩形 (RECT) のカーネル要素でのみサポートされます。
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src_mat 入力画像
_dst_mat 出力画像
_kernel サイズ K_ROWS * K_COLS の収縮カーネル。

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でフル HD 画像 (1080x1920) を処理するために、Vivado HLS 2019.1 バージョン ツールで矩形 (RECT) 構造要素を使用して生成された収縮関数のリソース使用量を示します。

表 213. erode 関数のリソース使用量のサマリ
名前 リソース使用量
1 クロックごとに 1 ピクセル動作 8 クロックごとに 1 ピクセル動作
300 MHz 150 MHz
BRAM_18K 3 6
DSP48E 0 0
FF 411 657
LUT 392 1249
CLB 96 255

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で 3 チャネルの 4K 画像を処理するために、Vivado HLS 2019.1 バージョン ツールで矩形 (RECT) 構造要素を使用して生成された収縮関数のリソース使用量を示します。

表 214. erode 関数のリソース使用量のサマリ
名前 リソース使用量
1 クロックごとに 1 ピクセル動作
300 MHz
BRAM_18K 18
DSP48E 0
FF 983
LUT 3745
CLB 186

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で Vivado HLS 2019.1 ツールを使用して生成された、通常動作 (1 ピクセル) およびリソース最適化 (8 ピクセル) 設定での収縮関数のパフォーマンス見積もりを示します。

表 215. erode 関数のパフォーマンス見積もりのサマリ
動作モード レイテンシ見積もり
最小 (ms) 最大 (ms)

1 ピクセル (300 MHz)

7.0 7.0

8 ピクセル (150 MHz)

1.85 1.85

FAST コーナー検出 (fast)

FAST (Features from Accelerated Segment Test) は、ほかのほとんどの特徴検出より高速のコーナー検出アルゴリズムです。

fast 関数は、画像内のピクセルを 1 つ選び、Bresenham の円と呼ばれる円上の近傍ピクセル 16 個の強度を比較します。9 個の連続するピクセルの強度が候補のピクセルよりも指定のしきい値分大きいか小さい場合、ピクセルをコーナーとみなします。コーナーが検出されると NMS (Non-Maximal Suppression) が適用され、弱いコーナーが削除されます。

この関数は、静止画像およびビデオの両方に使用できます。コーナーは画像でマークされます。コーナーが特定の場所で検出された場合、その場所は 255 となり、それ以外の場所は 0 になります。

API 構文

template<int NMS,int SRC_T,int ROWS, int COLS,int NPC=1>
void fast(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_mat,xf::Mat<SRC_T, ROWS, COLS, NPC> & _dst_mat,unsigned char _threshold)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 216. fast 関数のパラメーターの説明
パラメーター 説明
NMS NMS == 1 の場合、検出されたコーナー (キーポイント) に NMS が適用されます。有効な値は 0 または 1 です。
SRC_T 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
ROWS 入力画像の最大高さ。
COLS 入力画像の最大幅 (8 ピクセル動作の場合は 8 の倍数で指定)
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src_mat 入力画像
_dst_mat 出力画像。コーナーは画像でマークされます。
_threshold 中央ピクセルと近傍ピクセルとの強度の差のしきい値。通常 20 前後の値が使用されます。

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を NMS を使用して処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのリソース使用量を示します。

表 217. fast 関数のリソース使用量のサマリ

名前

リソース使用量
1 ピクセル 8 ピクセル
300 MHz 150 MHz
BRAM_18K 10 20
DSP48E 0 0
FF 2695 7310
LUT 3792 20956
CLB 769 3519

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を NMS を使用して処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのパフォーマンス見積もりを示します。

表 218. fast 関数のパフォーマンス見積もりのサマリ
動作モード

動作周波数

(MHz)

フィルター サイズ レイテンシ見積もり
最大 (ms)
1 ピクセル 300 3x3 7
8 ピクセル 150 3x3 1.86

ガウシアン フィルター (GaussianBlur)

GaussianBlur 関数は、入力画像にガウシアンぼかしを適用します。ガウシアン フィルター処理は、入力画像の各点をガウシアン カーネルでたたみ込むことにより実行されます。



ここで、 および は平均値、 および はそれぞれ x 方向と y 方向の分散です。GaussianBlur 関数では、 および は 0、 および は等しいと考慮されます。

API 構文

template<int FILTER_SIZE, int BORDER_TYPE, int SRC_T, int ROWS, int COLS, int NPC =  1>
void GaussianBlur(xf::Mat<SRC_T, ROWS, COLS, NPC> & src, xf::Mat<SRC_T, ROWS, COLS, NPC> & dst, float sigma)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 219. GaussianBlur 関数のパラメーターの説明
パラメーター 説明
FILTER_SIZE フィルター サイズ。サポートされるフィルター サイズは 3 (XF_FILTER_3X3)、5 (XF_FILTER_5X5)、および 7 (XF_FILTER_7X7)。
BORDER_TYPE サポートされる境界タイプは XF_BORDER_CONSTANT。
SRC_T 入力および出力のピクセルのデータ型。8 ビット、符号なし、1 および 3 チャネル (XF_8UC1、XF_8UC3) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅 (8 ピクセル動作の場合は 8 の倍数で指定)
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
src 入力画像
dst 出力画像
sigma ガウシアン フィルターの標準偏差

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのガウシアン フィルターのリソース使用量を示します。

表 220. GaussianBlur 関数のリソース使用量のサマリ
動作モード フィルター サイズ

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT CLB
1 ピクセル 3x3 300 3 17 3641 2791 610
5x5 300 5 27 4461 3544 764
7x7 250 7 35 4770 4201 894
8 ピクセル 3x3 150 6 52 3939 3784 814
5x5 150 10 111 5688 5639 1133
7x7 150 14 175 7594 7278 1518

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA で 3 チャネルの 4K 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのガウシアン フィルターのリソース使用量を示します。

表 221. GaussianBlur 関数のリソース使用量のサマリ
動作モード フィルター サイズ

動作周波数

(MHz)

使用量の見積もり
BRAM_18K DSP_48E FF LUT
1 ピクセル 3x3 300 18 33 4835 3472
5x5 300 30 51 5755 3994
7x7 300 42 135 8086 5422

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのガウシアン フィルターのパフォーマンス見積もりを示します。

表 222. GaussianBlur 関数のパフォーマンス見積もりのサマリ
動作モード フィルター サイズ レイテンシ見積もり
最大レイテンシ (ms)
1 ピクセル動作 (300 MHz) 3x3 7.01
5x5 7.03
7x7 7.06
8 ピクセル動作 (150 MHz) 3x3 1.6
5x5 1.7
7x7 1.74

勾配の大きさ (magnitude)

magnitude 関数では、画像の大きさが計算されます。入力画像は、16S 型の X 勾配および Y 勾配画像です。出力画像は、入力画像と同型になります。

L1NORM 正規化の場合、大きさの計算された画像は、次のように X 勾配と Y 勾配の絶対値のピクセル加算された画像になります。



L2NORM 正規化の場合、画像の大きさは次のように計算されます。



API 構文

template< int NORM_TYPE ,int SRC_T,int DST_T, int ROWS, int COLS,int NPC=1>
void magnitude(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_matx,xf::Mat<DST_T, ROWS, COLS, NPC> & _src_maty,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst_mat)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 223. magnitude 関数のパラメーターの説明
パラメーター 説明
NORM_TYPE 正規型は L1 または L2 正規化にでき、値は XF_L1NORM または XF_L2NORM です。
SRC_T 入力ピクセルのデータ型。16 ビット、符号付き、1 チャネル (XF_16SC1) のみサポート。
DST_T 出力ピクセルのデータ型。16 ビット、符号付き、1 チャネル (XF_16SC1) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅 (8 ピクセル動作の場合は 8 の倍数で指定)
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src_matx 最初の入力、X 勾配画像。
_src_maty 2 つ目の入力、Y 勾配画像。
_dst_mat 出力、大きさの計算された画像。

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像で L2 正規化の処理をするために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのリソース使用量を示します。

表 224. magnitude 関数のリソース使用量のサマリ
名前 リソース使用量
1 ピクセル 8 ピクセル
300 MHz 150 MHz
BRAM_18K 0 0
DSP48E 2 16
FF 707 2002
LUT 774 3666
CLB 172 737

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像で L2 正規化の処理をするために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのパフォーマンス見積もりを示します。

表 225. magnitude 関数のパフォーマンス見積もりのサマリ
動作モード

動作周波数 (MHz)

レイテンシ見積もり
最大 (ms)
1 ピクセル 300 7.2
8 ピクセル 150 1.7

勾配位相 (phase)

phase 関数では、2 つの画像の極角が計算されます。入力画像は、16S 型の X 勾配および Y 勾配画像です。出力画像は、入力画像と同型になります。

ラジアン (radians) の場合:

度 (degrees) の場合:

API 構文

template<int RET_TYPE ,int SRC_T,int DST_T, int ROWS, int COLS,int NPC=1 >
void phase(xf::Mat<SRC_T, ROWS, COLS, NPC> & _src_matx,xf::Mat<DST_T, ROWS, COLS, NPC> & _src_maty,xf::Mat<DST_T, ROWS, COLS, NPC> & _dst_mat)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 226. phase 関数のパラメーターの説明
パラメーター 説明
RET_TYPE 出力フォーマットは、ラジアン (radians) または度 (degrees) のいずれかにできます。オプションは XF_RADIANS または XF_DEGREES です。
  • XF_RADIANS: Q4.12 フォーマットの結果が返されます。出力範囲は (0, 2 pi) です。
  • XF_DEGREES: 結果が Q10.6 度で返されます。出力範囲は (0, 360) です。
SRC_T 入力ピクセルのデータ型。16 ビット、符号付き、1 チャネル (XF_16SC1) のみサポート。
DST_T 出力ピクセルのデータ型。16 ビット、符号付き、1 チャネル (XF_16SC1) のみサポート。
ROWS 入力および出力画像の最大高さ。
COLS 入力および出力画像の最大幅 (8 ピクセル動作の場合は 8 の倍数で指定)
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
_src_matx 最初の入力、X 勾配画像。
_src_maty 2 つ目の入力、Y 勾配画像。
_dst_mat 出力、位相計算された画像。

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのリソース使用量を示します。

表 227. phase 関数のリソース使用量のサマリ
名前 リソース使用量
1 ピクセル 8 ピクセル
300 MHz 150 MHz
BRAM_18K 6 24
DSP48E 6 19
FF 873 2396
LUT 753 3895
CLB 185 832

パフォーマンス見積もり

次の表に、Xczu9eg-ffvb1156-1-i-es1 でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定でのカーネルのパフォーマンス見積もりを示します。

表 228. phase 関数のパフォーマンス見積もりのサマリ
動作モード 動作周波数 (MHz) レイテンシ見積もり (ms)
1 ピクセル 300 7.2
8 ピクセル 150 1.7

OpenCV との違い

phase インプリメンテーションでは、出力が固定小数点フォーマットで返されます。XF_RADIANS オプションを選択すると、結果が Q4.12 フォーマットで返されます。出力範囲は (0, 2 pi) です。XF_DEGREES オプションを選択すると、結果が Q10.6 度で返されます。出力範囲は (0, 360) です。

Harris コーナー検出 (cornerHarris)

Harris コーナー検出を理解するには、グレースケール画像を考慮します。ウィンドウ w(x,y) (x 方向に u、y 方向に v 移動) をスイープし、Iw(x,y) の強度の変動を計算します。


説明:
  • w(x,y): (x,y) のウィンドウ位置。
  • I(x,y): (x,y) での強度。
  • I(x+u,y+v): 移動したウィンドウ (x+u,y+v) での強度。

コーナーのあるウィンドウを探しているので、強度の変動が大きいウィンドウを見つけます。上記の式、特に次の項を最大化する必要があります。



テーラー展開を使用します。



式を展開して I(x,y)-I(x,y) で相殺します。



上記の式を行列で表すと、次のようになります。



最終的な式は、次のようになります。


各ウィンドウに対してスコアが計算され、コーナーを含むかどうかが判断されます。



説明:

API 構文

NMS (Non-Maximum Suppression):

NMS では、範囲が 1 の場合境界ボックスは 2*r+1 = 3 です。

中央ピクセルの近傍 3x3 ピクセルを考慮します。中央ピクセルが周辺ピクセルより大きい場合、これはコーナーと考えられます。範囲内の周辺ピクセルと比較されます。

範囲 = 1

x-1, y-1 x-1, y x-1, y+1
x, y-1 x, y x, y+1
x+1, y-1 x+1, y x+1, y+1

しきい値:

3x3、5x5、および 7x7 フィルターに対して、それぞれしきい値 442、3109、および 566 が使用されます。このしきい値は、40 を超える画像のセットで検証されます。しきい値は、アプリケーションによって異なります。コーナーは出力画像でマークされます。コーナーが特定の場所で検出された場合、その場所は 255 となり、それ以外の場所は 0 になります。

template<int FILTERSIZE,int BLOCKWIDTH, int NMSRADIUS,int SRC_T,int ROWS, int COLS,int NPC=1,bool USE_URAM=false>
void cornerHarris(xf::Mat<SRC_T, ROWS, COLS, NPC> & src,xf::Mat<SRC_T, ROWS, COLS, NPC> & dst,uint16_t threshold, uint16_t k)

パラメーターの説明

次の表に、テンプレートと関数のパラメーターを説明します。

表 229. cornerHarris 関数のパラメーターの説明
パラメーター 説明
FILTERSIZE Sobel フィルターのサイズ。有効な値は 3、5、7。
BLOCKWIDTH ボックス フィルターのサイズ。有効な値は 3、5、7。
NMSRADIUS NMS で考慮される範囲。有効な値は 1 および 2。
TYPE 入力ピクセルのデータ型。8 ビット、符号なし、1 チャネル (XF_8UC1) のみサポート。
ROWS 入力画像の最大高さ。
COLS 入力画像の最大幅 (8 ピクセル動作の場合は 8 の倍数で指定)
NPC 1 サイクルごとに処理されるピクセル数。1 ピクセルの場合は XF_NPPC1、8 ピクセルの場合は XF_NPPC8。
USE_URAM 一部のストレージ構造を UltraRAM にマップ
src 入力画像
dst 出力画像。
threshold コーナー計測に適用されるしきい値。
k Harris 検出器パラメーター

リソース使用量

次の表に、Xczu9eg-ffvb1156-1-i-es1 FPGA でグレースケール HD (1080x1920) 画像を処理するために、Vivado HLS 2019.1 ツールを使用して生成された異なる設定での Harris コーナー検出のリソース使用量を示します。

次の表に、Sobel フィルター = 3、ボックス フィルター = 3、NMS_RADIUS = 1 のリソース使用量を示します。

表 230. リソース使用量のサマリ: Sobel フィルター = 3、ボックス フィルター = 3、NMS_RADIUS = 1
名前 リソース使用量
1 ピクセル 8 ピクセル
300 MHz 150 MHz
BRAM_18K 33 66
DSP48E 10 80
FF 3254 9330
LUT 3522 13222
CLB 731 2568

次の表に、Sobel フィルター = 3、ボックス フィルター = 5、NMS_RADIUS = 1 のリソース使用量を示します。

表 231. リソース使用量のサマリ: Sobel フィルター = 3、ボックス フィルター = 5、NMS_RADIUS = 1
名前 リソース使用量
1 ピクセル 8 ピクセル
300 MHz 150 MHz
BRAM_18K 45 90
DSP48E 10 80
FF 5455 12459
LUT 5675 24594
CLB 1132 4498

次の表に、Sobel フィルター = 3、ボックス フィルター = 7、NMS_RADIUS = 1 のリソース使用量を示します。

表 232. リソース使用量のサマリ: Sobel フィルター = 3、ボックス フィルター = 7、NMS_RADIUS = 1
名前 リソース使用量
1 ピクセル 8 ピクセル
300 MHz 150 MHz
BRAM_18K 57 114
DSP48E 10 80
FF 8783 16593
LUT 9157 39813
CLB 1757 6809

次の表に、Sobel フィルター = 5、ボックス フィルター = 3、NMS_RADIUS = 1 のリソース使用量を示します。

表 233. リソース使用量のサマリ: Sobel フィルター = 5、ボックス フィルター = 3、NMS_RADIUS = 1
名前 リソース使用量
1 ピクセル 8 ピクセル
300 MHz 200 MHz
BRAM_18K 35 70
DSP48E 10 80
FF 4656 11659
LUT 4681 17394
CLB 1005 3277
次の表に、Sobel フィルター = 5、ボックス フィルター = 5、NMS_RADIUS = 1 のリソース使用量を示します。
表 234. リソース使用量のサマリ: Sobel フィルター = 5、ボックス フィルター = 5、NMS_RADIUS = 1
名前 リソース使用量
1 ピクセル 8 ピクセル
300 MHz 150 MHz
BRAM_18K 47 94
DSP48E 10 80
FF 6019 14776
LUT 6337 28795
CLB 1353 5102

次の表に、Sobel フィルター = 5、ボックス フィルター = 7、NMS_RADIUS = 1 のリソース使用量を示します。

表 235. リソース使用量のサマリ: Sobel フィルター = 5、ボックス フィルター = 7、NMS_RADIUS = 1
名前 リソース使用量
1 ピクセル 8 ピクセル
300 MHz 150 MHz
BRAM_18K 59 118
DSP48E 10 80
FF 9388 18913
LUT 9414 43070
CLB 1947 7508

次の表に、Sobel フィルター = 7、ボックス フィルター = 3、NMS_RADIUS = 1 のリソース使用量を示します。

表 236. リソース使用量のサマリ: Sobel フィルター = 7、ボックス フィルター = 3、NMS_RADIUS = 1
名前 リソース使用量
1 ピクセル 8 ピクセル
300 MHz 150 MHz
BRAM_18K 37 74
DSP48E 11 88
FF 6002 13880
LUT 6337 25573
CLB 1327 4868

次の表に、Sobel フィルター = 7、ボックス フィルター = 5、NMS_RADIUS = 1 のリソース使用量を示します。

表 237. リソース使用量のサマリ: Sobel フィルター = 7、ボックス フィルター = 5、NMS_RADIUS = 1
名前 リソース使用量
1 ピクセル 8 ピクセル
300 MHz 150 MHz
BRAM_18K 49 98
DSP48E 11 88
FF 7410 17049
LUT 8076 36509
CLB 1627 6518

次の表に、Sobel フィルター = 7、ボックス フィルター = 7、NMS_RADIUS = 1 のリソース使用量を示します。

表 238. リソース使用量のサマリ: Sobel フィルター = 7、ボックス フィルター = 7、NMS_RADIUS = 1
名前 リソース使用量
1 ピクセル 8 ピクセル
300 MHz 150 MHz
BRAM_18K 61 122
DSP48E 11 88
FF 10714 21137