Operator FrameBufferRandomRead

Operator Library: Memory

このオペレーターは、バッファリングされたデータのランダムリードを容易にします。フレームデータは、リンクIを介してオペレーターに転送されます。データのランダムリードは、ポート RColA(読み取り列アドレス)および RRowA(読み取り行アドレス)にアドレスを転送することで実行できます。オペレーターは、これらのアドレスを使用して、指定された座標に従ってフレームデータを読み取ります。結果として得られる出力フレームの画像寸法は、アドレス入力の寸法になります。タイプ RAM の VisualApplets リソースが1つ必要です。詳細については、'Allocation of Device Resources'を確認してください。オペレーターのレイテンシについては、Table 46, 'Individual Latencies of the Operators in Library Memory'を参照してください。

FrameBufferRandomRead(フレームバッファランダムリード)オペレーターは、画像ストリームを Frame Grabber RAM (DRAM)にバッファリングします。タイプ RAM の VisualApplets リソースが1つ必要です。

オペレータには2つの状態があります:

  1. 書き込み状態:入力画像がバッファに保存されます。オペレーターはFIFOのように動作します。十分なメモリが利用可能な場合、複数の画像をバッファに保存できます。

  2. 読み取り状態:画像がメモリに完全に保存された後、入力 RColA および RRowA で指定されたアドレスを使用してメモリが読み出されます。アドレスの数とアドレスリンクの画像寸法によって、画像の出力幅と高さが決まります。

画像データ入力とアドレス入力は互いに同期していません。異なる画像寸法を持つ場合があります。アドレス入力 RColA と RRowA の両方がO同期している必要があります。

入力リンクのタイミングに注意してください。アドレス入力は、バッファリングなしでデータリンク入力 I と同じオペレーターからソースを取得してはなりません。これは、画像データをオペレーターに書き込んでいる間は、現在のフレームを読み取るためのアドレスを受け入れることができないためです。フレームがバッファに完全に保存された場合にのみ、アドレスを受け入れることができます。多くの場合、オペレーター CreateBlankImage は、アドレス用の画像を生成するために使用されます。

オペレーターは、大規模な非FPGAメモリを使用します。保存するフレームやラインが小さい場合は、オペレーター FrameMemoryRandomRd または LineMemoryRandomRd の使用を検討してください。

バッファのフィルレベルを測定するために、オペレーターには FillLevel と Overflow の2つのパラメータが用意されています。FillLevel は、RAMの充填率(パーセンテージ)を示します。Overflow パラメータは、FillLevel が 100% に近いか 100% であり、バッファに保存される次の画像がRAMの容量を超過する場合に 1 に設定されます。オーバーフローが発生した場合、入力フレームは破棄されます。ユーザーはオーバーフローパラメータをポーリングする必要があります。オーバーフロー状態の持続時間は非常に短いため、オペレーターのポーリングサイクルの合間に発生する可能性があります。

パラメータ InfiniteSource は、オペレーターがカメラに直接接続されているか、他のメモリオペレーターとシーケンスされているかを指定するために使用されます。詳細については、'Infinite Sources / Connecting Cameras'を確認してください。

Operator Restrictions

  • 空のフレームはサポートされていません。

  • ライン長が変動する画像はサポートされていません。

  • アドレスポートの Parallelism は 2 に設定する必要があります。

  • I.MaxImgWidth * I.MaxImgHeight は、利用可能なRAMサイズ(2^RamAddressWidth)を超えてはなりません。

帯域幅の最適化

Frame Grabber RAM (DRAM) を使用するオペレーターを通過する理論上の帯域幅 [ビット/秒] は、次の式に従って計算されます。

しかし、実際の帯域幅はDRAMの効率により、常に理論上の帯域幅よりも小さくなります。

オペレーターを通過する最大帯域幅は、Bit WidthとParallelismの積が内部のRAM Port Widthと等しい場合に達します。

[注] プラットフォーム固有の値

RAM Port WidthとSystem Clockはプラットフォーム固有のものです。 個々のプラットフォームの詳細については、Device Resourcesを参照してください。

I/O Property

Property 値
オペレータータイプ M
入力リンク I、画像データ入力
RColA、I におけるピクセルの読み出し列アドレス
RRowA、I におけるピクセルの読み出し行アドレス
Output Link O、データ入力

同期および非同期入力

  • 同期グループ:RColAおよび RRowA
  • 入力 I はグループに対して非同期です。

サポートされているリンクフォーマット

Link Parameter Input Link I 入力リンク RColA 入力リンク RRowA Output Link O
Bit Width [1, 64]1 auto2 auto3 as I
Arithmetic {unsigned, signed} unsigned unsigned as I
Parallelism 1 {1, 2}4 RColA と同様 as I
Kernel Columns [1, Ram Data Width / Bit Width / Kernel Rows]5 1 1 as I
Kernel Rows [1, Ram Data Width / Bit Width / Kernel Columns]5 1 1 as I
Img Protocol VALT_IMAGE2D as I as I as I
Color Format any VAF_GRAY VAF_GRAY as I
Color Flavor any FL_NONE FL_NONE as I
Max. Img Width any6 any RColA と同様 RColA と同様
Max. Img Height any6 any RColA と同様 RColA と同様

1

入力 Bit Width の範囲は次のとおりです:

  • 符号なし入力の場合: [1, 64]

  • 符号付き入力の場合: [2, 64]

  • 符号なしカラー入力の場合: [3, 63]

  • 符号付きカラー入力の場合: [6, 63]。

入力ビット幅は、ネイティブRAMデータ幅を超えてはなりません。詳細については、Device Resourcesを確認してください。

2

列アドレスの Bit Width は次のとおりです:

3

行アドレスの Bit Width は次のとおりです。

4

オペレーターを効率的に使用するには、アドレスポートの Parallelism を 2 に設定する必要があります。

5

I.BitWidth x I.Kernel Columns x I.Kernel Rows <= RamDataWidth.

6

I.MaxImgWidth * I.MaxImgHeight は、利用可能なRAMサイズ(2^RamAddressWidth)を超えてはなりません。

パラメーター

RamDataWidth
タイプ static write parameter
Default N/A
範囲 整数

このパラメータは、RAMインターフェースで使用できるデータビット数を提供します。これは、入力および出力の最大ビット数です。

RamAddressWidth
タイプ static write parameter
Default N/A
範囲 整数

このパラメータは、利用可能なアドレスビット数を提供します。これは、許可される最大画像寸法と最大アドレス幅を計算するのに役立ちます。

FillLevel
タイプ 動的リードパラメータ
Default 0
範囲 [0%, 100%]

このパラメータは、RAMのフィルレベルを提供します。

Overflow
タイプ 動的リードパラメータ
Default 0
範囲 [0, 1]

このパラメータはバッファオーバーフローを示します。

InfiniteSource
タイプ static パラメータ
Default ENABLED
範囲 {ENABLED, DISABLED}

このパラメータは、カメラオペレーターなどのインフィニットソースオペレーターのサポートを有効にします。詳細については、'Infinite Sources / Connecting Cameras'を参照してください。

使用例

FrameBufferRandomRead オペレーターの使用法を次の例に示します: