Operator Library: Memory
このオペレーターは、バッファリングされた各画像に対して複数のROI(関心領域)をサポートします。すべてのROIは順次読み出されます。 各ROIは、ROI 0、ROI 1、ROI 2から、ROI NumRoIパラメータで指定された数であるN-1までの、新規かつ独立した出力画像となります。 フレームの寸法を超えない限り、可能な限りの長方形領域(1ピクセル、1行、1列、長方形領域、あるいは完全なフレーム)をROIとして定義できます。異なるROIのサイズは異なっていても構いません。 各ROIは個別に定義できます。ROI同士が重なり合うことも可能です。ただし、すべてのROIは、入力リンクおよび出力リンクによって定義される最大画像サイズの制限を満たしている必要があります。つまり、ROIの幅は最大画像幅を超えてはならず、ROIの高さは最大画像高さを超えてはなりません。
オペレータのレイテンシについては、表 46「Library: Memory内のオペレータの個別レイテンシ」を参照してください。
オペレーターは、画像ストリームをフレームグラバーの内蔵RAMにバッファリングします。RAMタイプのVisualAppletsリソースが1つ必要です(「デバイスリソースの割り当て」を参照してください)。
ImageBufferMultiRoIは、入力リンクの最大画像幅および最大画像高さパラメータによって定義された固定サイズの画像に対して動作します。これは、オペレーターによって入力フレームの寸法制御が行われることを意味します。
最大画像寸法よりも小さい画像は、変更されることなくバッファリングされます。ただし、ROIの読み出しにより、未定義のピクセル値、すなわち入力画像の寸法外のピクセル値が読み出される可能性があります。不足しているフレームピクセルにはランダムなデータが含まれており、以降の処理では未定義のものとして扱われる必要があります。
オーバーフローが発生した場合、つまりバッファがいっぱいになってそれ以上画像を保存できない場合、少なくとも1フレームを保存するのに十分な空きスペースがバッファ内に確保されるまで、すべての着信画像がドロップされます。オーバーフローが発生する原因は、書き込みに比べてROIの読み出しが遅すぎるためです。これは、定義されたROIが多すぎるためか、あるいは後続のオペレーターが出力をブロックしているためである可能性があります。バランスの取れた設計の通常の状況では、オーバーフローが発生することは決してありません。
対応するフレームが完全にバッファリングされるとすぐに、オペレーターはその出力上でROI画像を提供します。読み出しのタイプは、Modeパラメータによって定義されます。
MaxNumRoIパラメータは、ROIの最大数を指定します。使用される実際のROI数はこれより少なくてもよく、NumRoIパラメータを使用して定義されます。
NumRoIパラメータは、バッファリングされた各画像に対してオペレーターが出力で提供するROIの数を指定します。この数が動的(dynamic)タイプに設定されている場合、MaxNumRoIを超えてはなりません。
Modeパラメータは、画像を処理する際のオペレーターの動作を指定します。FreeRunは、可能な限り早期に、つまり対応するフレームが完全にバッファリングされ次第、バッファが出力上でROIを提供するように定義します。このモードはフリーランモードとも呼ばれます。 オペレーターはパイプラインのフロー制御メカニズムによってのみ制御されます。 WaitAfterImageモードは、フレームのすべてのROIがその出力上で提供された後、オペレーターを一時停止させます。次のフレームのROIの読み出しを再開するには、Unlockパラメータに書き込む必要があります。WaitAfterRoIは、オペレーターが各フレームの各ROIの後に停止する点を除き、WaitAfterImageと同様です。さらなる処理を再開するには、Unlockパラメータへの書き込みサイクルが必要です。
Unlockパラメータは、WaitAfterImageおよびWaitAfterRoIモードにおいて、オペレーターのロックを解除してさらなる読み出し操作を開始するために使用されます。FreeRunモードでは、このパラメータは効果を持ちません。
XOffset、XLength、YOffset、およびYLengthは、一連のROIを指定します。これらのパラメータはフィールドパラメータです。これらのパラメータのパラメータタイプは、動的(dynamic)または静的(static)に設定できます。これは、実行時に調整可能か調整不可かを示します。1つのROIパラメータのパラメータタイプが設定されると、すべてのROIパラメータのパラメータタイプがそれに応じて自動的に適応されます。フィールドのサイズは、MaxNumRoIパラメータによって定義されます。オペレーターは、NumRoIで指定された数のROIを順番に読み出します。フィールドパラメータの設定方法については、「パラメータの編集」を参照してください。
すべてのROIは動的に更新できます。ただし、画像取り込みが開始されていない場合に限り、FreeRun、WaitAfterImage、およびWaitAfterRoIの各モードで更新を実行できます。さらに、WaitAfterImageおよびWaitAfterRoIの各モードでは、対応するフレーム/フレームのすべてのROIが転送され、オペレーターがUnlockパラメータへの書き込みサイクルを待機している場合に、ROIを更新できます。
画像取り込み中のROIの更新は、一時的に非長方形のROIを引き起こす可能性があるため、避ける必要があります。
イメージプロトコルVALT_LINE1Dでオペレーターを使用する場合、Y座標パラメータが無効になります。1D動作では、オペレーターは1つのROIを1つのラインとして読み出します。その結果、オペレーターの出力は無限の1D画像ストリームとなり、各ラインは1つのROIによって表現されます(例:line 0 = ROI 0、line 1 = ROI 1、line N = ROI N、line N+1 = ROI 0、...)。
バッファの充填レベルを測定するために、オペレーターにはFillLevelとOverflowの2つのレジスタが用意されています。FillLevelは、RAMのパーセンテージベースの充填レベルを示します。Overflowパラメータは、FillLevelが100%に近いかまたは100%であり、バッファに保存される次の画像がRAM容量を超える場合に、1に設定されます。
InfiniteSourceパラメータは、オペレーターがカメラに直接接続されているか、他のメモリオーディオ/オペレーターとシーケンス接続されているかを指定するために使用されます。詳細については、「インフィニットソース / カメラの接続」を確認してください。
Operator Restrictions
-
空のフレームはサポートされていません。
-
ライン長が変動する画像はサポートされていません。
![]() |
ImageBufferMultiRoIは、imaFlex CXP-12 QuadおよびimaFlex CXP-12 Pentaプラットフォームでは使用できません |
|---|---|
|
ImageBufferMultiRoIはimaFlex CXP-12 QuadおよびimaFlex CXP-12 Pentaプラットフォームではサポートされていませんが、代わりにimaFlex CXP-12 QuadおよびimaFlex CXP-12 Pentaプラットフォーム用の同等のユーザーライブラリエレメントを使用することができます。ユーザーライブラリエレメントの操作方法については、「提供されるユーザーライブラリ」を参照してください。 |
![]() |
例:メモリ使用量の最適化 |
|---|---|
|
顧客が寸法20000 x 7096ピクセルの画像を入力ポートのリンクプロパティに供給します。Parallelismは8に設定されています。ピクセルのBit Widthは8に設定されています。 この例で使用されているプラットフォームはmE5であり、つまりこのプラットフォームは256 MbyteのRAMバンクを提供しています。256 MBすべてを使用するには、オペレーターに128ビットを供給する必要があります。しかし、Parallelismが8の場合、供給されるのは64ビット(8 x 8ビット)のみであり、ユーザーはRAMの128 MBしか使用できません。20000 x 7096ピクセルの寸法の画像を保存するには、141,920,000バイト(約135 MB)が必要ですが、これは利用可能な128 MBを超えています。これがVisualAppletsによって検出され、リンクが赤色でハイライト表示されます。 解決策:オペレーターImageBufferMultiRoiの前でParup(16に)を実行します。 |
Frame Grabber RAM (DRAM) を使用するオペレーターを通過する理論上の帯域幅 [ビット/秒] は、次の式に従って計算されます。

しかし、実際の帯域幅はDRAMの効率により、常に理論上の帯域幅よりも小さくなります。
オペレーターを通過する最大帯域幅は、Bit WidthとParallelismの積が内部のRAM Port Widthと等しい場合に達します。
![]() |
プラットフォーム固有の値 |
|---|---|
|
RAM Port WidthとSystem Clockはプラットフォーム固有のものです。 個々のプラットフォームの詳細については、Device Resourcesを参照してください。 |
|
符号なし入力の場合、入力 Bit Width の範囲は [1, 64] です。符号付き入力の場合、範囲は [2, 64] です。符号なしカラー入力の場合、範囲は [3, 63] であり、符号付きカラーの場合、範囲は [6, 63] です。 |
|
|
Bit WidthとParallelismの積は、ネイティブのRAMデータ幅(RamDataWidth)を超えてはなりません。 詳細については、デバイスリソースを確認してください。 |
|
|
Iの最大画像寸法:
|
| RamDataWidth | |
|---|---|
| タイプ | static write parameter |
| Default | N/A |
| 範囲 | 整数 |
|
このパラメータは、RAMインターフェースで使用できるデータビット数を提供します。これは、入力および出力の最大ビット数です。 |
|
| RamAddressWidth | |
|---|---|
| タイプ | static write parameter |
| Default | N/A |
| 範囲 | 整数 |
|
このパラメータは、利用可能なアドレスビット数を提供します。これは、許可される最大画像サイズの計算に役立ちます。 |
|
| MaxNumRoI | |
|---|---|
| タイプ | static パラメータ |
| Default | 1 |
| 範囲 | [1, 65535] |
|
このパラメータは、オペレータが格納できるROIの最大数を定義します。 |
|
| NumRoI | |
|---|---|
| タイプ | dynamic/static read/write parameter |
| Default | 1 |
| 範囲 | [1, MaxNumRoI] |
|
このパラメータは、実際に使用されるROIの数を定義します。オペレータは各入力画像からNumRoI個のROIを読み取り、出力に出力します。パラメータがstaticに設定されている場合、範囲は[1, 65536]となり、MaxNumRoIは無効になります。 |
|
| モード | |
|---|---|
| タイプ | static パラメータ |
| Default | FreeRun |
| 範囲 | {FreeRun, WaitAfterImage, WaitAfterRoI} |
|
このパラメータは、読み出しアルゴリズムの動作モードを定義します。FreeRunモードでは、対応するフレームが完全にバッファリングされるとすぐに、オペレータはROI画像を提供します。WaitAfterImageモードでは、オペレータは1つのフレーム内のすべてのROIを提供したあと停止し、ソフトウェアアクセスによるUnlockパラメータへの書き込みを待って、次のフレームのROIの読み出しを有効にします。WaitAfterRoIモードでは、オペレータは各フレームの各ROIの後に停止します。読み出し動作を再開するには、ソフトウェアでUnlockパラメータに書き込む必要があります。 |
|
| Unlock | |
|---|---|
| タイプ | 動的書き込みパラメータ |
| Default | 1 |
| 範囲 | {1} |
|
このパラメータは、WaitAfterImageおよびWaitAfterRoIモードのハンドシェイクを実装します。このパラメータに値1を書き込むと、オペレータは次のROI / 次のフレームのすべてのROIの読み出しを継続します。 このパラメータは、ModeパラメータがWaitAfterImageまたはWaitAfterRoIに設定されている場合にのみ使用できます。 |
|
| XOffset | |
|---|---|
| タイプ | dynamic/static read/write parameter |
| Default | 0 |
| 範囲 | [0, Max.Img Width - XLength] |
|
このフィールドパラメータは、ROIの左上隅のx座標を定義します。 ステップサイズはParallelismです。 'パラメータの編集'でのフィールドパラメータの設定方法については、こちらをご覧ください。 |
|
| XLength | |
|---|---|
| タイプ | dynamic/static read/write parameter |
| Default | 1024 |
| 範囲 | [2*parallelism, Max.Img Width - XOffset] |
|
このフィールドパラメータは、ROIの幅を定義します。 ステップサイズはParallelismです。 'パラメータの編集'でのフィールドパラメータの設定方法については、こちらをご覧ください。 |
|
| YOffset | |
|---|---|
| タイプ | dynamic/static read/write parameter |
| Default | 0 |
| 範囲 | [0, Max.Img Height - YLength] |
|
このフィールドパラメータは、ROIの左上隅のy座標を定義します。 'パラメータの編集'でのフィールドパラメータの設定方法については、こちらをご覧ください。 |
|
| YLength | |
|---|---|
| タイプ | dynamic/static read/write parameter |
| Default | 1024 |
| 範囲 | [1, Max.Img Height - YOffset] |
|
このフィールドパラメータは、ROIの高さを定義します。 'パラメータの編集'でのフィールドパラメータの設定方法については、こちらをご覧ください。 |
|
| FillLevel | |
|---|---|
| タイプ | 動的リードパラメータ |
| Default | 0 |
| 範囲 | [0%, 100%] |
|
このパラメータは、DRAMのFillレベルを提供します。 |
|
| Overflow | |
|---|---|
| タイプ | 動的リードパラメータ |
| Default | 0 |
| 範囲 | [0, 1] |
|
このパラメータはバッファオーバーフローを示します。 |
|
| InfiniteSource | |
|---|---|
| タイプ | static パラメータ |
| Default | ENABLED |
| 範囲 | {ENABLED, DISABLED} |
|
このパラメータは、カメラオペレーターなどのインフィニットソースオペレーターのサポートを有効にします。詳細については、'Infinite Sources / Connecting Cameras'を参照してください。 |
|
ImageBufferMultiRoIオペレータの使用法を以下の例に示します:
-
'Color Plane Separation Option 3 - Sequential with Operator ImageBufferMultiRoI'
カラープレーンのシーケンシャルDMA出力。 カラー分離はImageBufferMultiROIオペレータを使用して実行されます。
-
Sequential DMA output of the color planes. The color separations is performed using operator ImageBufferMultiROI. An additional pre-sorting optimizes the bandwdith and resources.

![[注]](../common/images/admon/note.png)
![[ヒント]](../common/images/admon/tip.png)



前へ

