Operator Library: Memory
LineMemory オペレーターは、ランダム書き込みアクセスを使用して入力イメージのラインを格納するメモリブロックです。 書き込みアドレスは、入力リンク列アドレス ColA で指定されます。 したがって、各入力ピクセル値に対して列アドレスを指定する必要があります。
メモリへの 1 ラインの書き込みが完了すると、リンク O を使用して読み出され、出力されます。 出力イメージの幅はパラメータによって定義され、入力イメージの幅とは独立しています。 メモリはあらかじめゼロの値で初期化されます。
オペレーターのレイテンシについては、「表 46:Library Memory 内のオペレーターの個別のレイテンシ」を参照してください。
メモリサイズはパラメータ FrameWidth によって定義されます。
このオペレーターは 2 つのバリエーションで実装できます。 具体的には、シングルバッファ実装とダブルバッファ実装です。 最初の実装は RAM を節約しますが、書き込みと読み出しの処理時間の重複を許可しません。 したがって、読み出し状態の間、入力リンク I は停止します。 後者の実装は RAM を倍増させ、入力リンク I で次のラインを受け入れながら、イメージラインを出力することを可能にします。
オペレータには2つの状態があります:
-
書き込み状態:リンク I の値は、ColA で指定されたアドレスに格納されます。 これは、リンク WriteI が 1 の場合にのみ実行されます。 リンク WriteI が 0 の場合、現在のピクセルはスキップされます。 有効なアドレス範囲内の任意のアドレスへの書き込みが可能です。 すべてのメモリセルに書き込む必要はありません。
-
読み出し状態:メモリが順次読み出され、パラメータ化された幅のラインが生成されます。 パラメータ XOffset および XLength を使用して、読み出しアドレス範囲(つまり ROI)を定義することができます。 メモリを読み出すと、読み出しアドレスの内容がゼロにリセットされます。 したがって、以前に書き込まれていないメモリセルが読み出された場合、ゼロが出力されます。
これら 2 つの状態間のトグルは、入力リンク I での行末(end-of-line)によってトリガーされます。 出力リンクでのライン幅は、パラメータ XOffset および XLength で定義されたサイズに固定され、入力リンクのライン幅とは独立していることに注意してください。
このオペレーターは、ミラーリングやセンサー補正に役立ちます。
このオペレーターは、FPGA 内部ブロック RAM または UltraRAM memory(URAM は imaFlex CXP-12 Quad および imaFlex CXP-12 Penta プラットフォームでのみ利用可能です)を使用します。 したがって、タイプ RAM の VisualApplets フレームグラバーリソースは使用されません。 FPGA 内部ブロック RAM には制限があります。フル解像度のフレームが FPGA 内部ブロック RAM に収まらない場合があります。 代わりにオペレーター FrameBufferRandomRead の使用を検討してください。
Operator Restrictions
-
空のフレームはサポートされていません。
ライン長が変動する画像はサポートされていません。
| Property | 値 |
|---|---|
| オペレータータイプ | M |
| 入力リンク | I、イメージデータ入力 WriteI、書き込みイネーブル入力 ColA、I でのピクセルの書き込み列アドレス |
| Output Link | O, data output |
同期および非同期入力
- すべての入力は互いに同期しています。つまり、O 型オペレーターの任意のネットワークを介して、同じ M 型オペレーターから供給される必要があります。
| ImplementationType(imaFlex CXP-12 Quad および imaFlex CXP-12 Penta プラットフォーム) | |||||||
|---|---|---|---|---|---|---|---|
| タイプ | static write parameter | ||||||
| Default | AUTO | ||||||
| 範囲 | (AUTO、BRAM、URAM) | ||||||
|
パラメータ ImplementationType は、オペレーターの実装戦略、つまりオペレーターの実装にどのメモリ要素が使用されるかに影響を与えます。 以下の値から選択できます: AUTO: 接続されたリンクのパラメータ化に基づいて、最適な実装戦略が自動的に選択されます。 BRAM: オペレーターは FPGA のブロック RAM を使用します。 URAM: オペレーターは FPGA の UltraRAM を使用します。
|
|||||||
| 実装 | |
|---|---|
| タイプ | static パラメータ |
| Default | SingleBuffer |
| 範囲 | {SingleBuffer, DoubleBuffer} |
|
このパラメータは、LineMemory の実装を選択します(上記を参照)。 |
|
| FrameWidth | |
|---|---|
| タイプ | static パラメータ |
| Default | 1024 |
| 範囲 | [0, 65536] |
|
このパラメータは、出力リンクの画像幅をピクセル単位で選択します。 |
|
| XOffset | |
|---|---|
| タイプ | dynamic/static read/write parameter |
| Default | 0 |
| 範囲 | [0, FrameWidth - XLength] |
|
このパラメータは、ROIの左上隅のX座標を定義します。 |
|
| XLength | |
|---|---|
| タイプ | dynamic/static read/write parameter |
| Default | 1024 |
| 範囲 | [1, FrameWidth - XOffset] |
|
このパラメータはROIの幅を定義します。 |
|
オペレーター LineMemory の使用法を以下の例に示します:
-
Examples - 画像を垂直方向に反転させる方法を示します。 パラレルワードとピクセルの反転に注意してください。
-
'Functional Example for Specific Operators of Library Memory and Library Signal'
使用例 - オペレーターの使用方法のデモ




![[注]](../common/images/admon/note.png)
前へ

