帯域幅管理
GigE Vision カメラは、画像データを小さなパケットとして、撮影したセンサー画像が完全に読み出される前から、ネットワーク上に転送します。これによって、画像転送の遅延が短縮されます。ただし、同時に転送されるデータが多すぎると、すぐに GigE ネットワークの最大帯域幅を超過してしまいます。
これは特に、マルチカメラ用途の場合に当てはまります。このため、転送データが損失し、データを繰り返し要求する必要があるため、転送時間が増加します。GigE Vision 規格により、転送パラメーターを構成してこのような事態を防げます。IDS GigE Vision カメラの詳細な設定で、使用できる帯域幅を簡単に管理できます。
背景
GigE Vision カメラのデータは、一連のパケットとして転送されます。ペイロードデータのほか、パッケージにはヘッダーとチェックサムデータも含まれます。MTU (最大転送単位) 設定に応じて、ユーザーデータ量とパケットサイズ (キーワード: ジャンボフレーム) が変化します。2 つのパケット間には、調整できる遅延があります。「パケット間遅延」は、データパケットの転送が正しくない場合、転送レイヤー (GenTL) が再送信メカニズムを使用して欠落したデータパケットを要求できます。データを再要求できるかどうかは、使用された転送レイヤーによって異なります。この 3 つの要素が連携して、カメラ画像が完全に転送される時間が決まります。
マルチカメラ操作でのネットワーク負荷を軽減するためや、処理システムの負荷合を軽減するためには、転送側デバイスのネットワーク帯域幅を低減させる必要があります。GigE Vision 規格では、パケット間遅延によって、転送停止による帯域幅のボトルネックを防止します。パケット遅延によって全体的な転送時間が長引き、画像データの送信速度が以前より遅くなるため、データスループットが低下します。転送時間の増加により、最大フレームレート (獲得フレームレート制限) も低下します。
GigE Vision のパケット間遅延では、各カメラのデータスループットを個別に設定できます。データ転送に適した遅延により、カメラによる転送インターフェース限度の「超過」を防げます。
このテクニカルティップスでは、IDS GigE Vision ファームウェアの帯域幅管理の可能性についてのみ、説明します。データストリームの設定および監視は、使用される転送レイヤー (GenTL) によって異なります。
標準設定
GenICam SFNC (Standard Feature Naming Convention) では、データスループットを制御する 2 つの標準機能が定義済みです。
- GevSCPD
- DeviceLinkThroughputLimit
パケット間遅延 (GevSCPD - Stream Channel Packet Delay を参照) を使用して、StreamChannel 上の 2 つのパケット間の遅延 (GigE Vision タイムスタンプカウンターの Tick 単位) を設定できます。これにより、データの転送時間が長くなり、帯域幅が減少します。パケット間に適切な遅延を選択することはそれほど容易ではなく、データ量を制御するための手法としてもそれほど使いやすくありません。
DeviceLinkThroughputLimit は、デバイスから送信されるデータの最大帯域幅を制限します。最大値は 1 秒あたりのバイト数で指定されます。ストリームチャネルパケット間の対応する遅延が計算され、これが GevSCPD 値として使用されます。単位は 1 秒あたりのバイト数なので精度が非常に高く、データスループットを直感的に制御できます。
IDS 拡張機能で明確性を向上
IDS は、GigE Vision ファームウェア (バージョン 1.3 以降) に、帯域幅管理のより詳しい概要を取得する、2 つの追加機能を実装しました。
- DeviceLinkCalculatedThroughput
- DeviceLinkAcquisitionFrameRateLimit
スループット制限 (DeviceLinkThroughputLimit) を入力すると、カメラのファームウェアは必要なパケット遅延 (GevSCPD) と最大可能フレームレート (DeviceLinkAcquisitionFrameRateRateLimit) を計算します。これは現在の限度まで指定できます。
さらに、計算されたスループット (DeviceLinkCalculatedThroughput) から、制限なく使用されるデバイスの理論上の帯域幅情報が提供されます。これにより、それぞれのカメラについて手間のかかる計算をする必要がなくなります。
追加機能は、すべての GigE Vision 対応カメラアプリケーションで使用できます。この機能を IDS Vision Cockpit を使用して紹介します。
データスループットの制限
GigE Vision アプリケーションにおいてギガビットイーサネットポート上で高データ帯域幅を使用するには、IDS の新しいカメラ機能を検討してください。設定が異なる 2 台のカメラを開いた時点で、すでにボトルネックが発生するからです。
「即時」画像撮影を実行せずに接続したカメラを起動して、まずカメラ設定を調整します。
画像撮影を開始する前に、計算されたデータスループット、最大可能フレームレートを確認し、必要に応じて帯域幅制限を設定します。概要を使いやすくするため、単語「devicelink」を使用して「デバイスノード」を少なくとも [Expert] ユーザーレベルにまでフィルタリングします。以下のフィルタリングされたデバイスノードの概要に、サンプルのカメラ帯域幅値を持つパラメーターが表示されます。
デフォルトで、カメラはデータスループットの制限なく動作し、最大調整可能スループット制限 (DeviceLinkThroughputLimit) として 120 MBps を使用します。この例では、カメラは現在の設定でおよそ 61 MBp のスループット (DeviceLinkCalculatedThroughput) をフレームレート 25 fps で実現します。制限がないため、カメラは最大毎秒 46 フレームを撮影し、転送します (DeviceLinkAcquisition-FrameRateLimit)。カメラのパラメーターを変更すると、「計算されたスループット」(De-viceLinkCalculatedThroughput) と「最大フレームレート」(DeviceLinkAcquisitionFrameRateLimit) が変更されます。
ただし、「DeviceLinkThroughputLimit」を使用してデータスループットを制限すると、カメラ設定や設定によるデータレートにかかわらず、カメラはこの値を超過しなくなります。
この例でスループット制限を 50 MBps に下げると、同じ設定で最大フレームレートは約 20 fps になります。
計算されたデータスループットは約 60 MBps で制限を超過しているので、カメラはフレームレート 25 fps では転送できなくなります。そこで、カメラの転送バッファーでデータオーバーフローが発生します。撮影した画像を一時的にバッファリングできなければ、その画像はカメラから「ドロップ」されます。実際の転送レートは、計算された最大フレームレート (21 fps) と等しくなります。
計算されたデータスループットが指定されたスループット制限を超える幅が大きいほど、カメラで内部的に破棄される画像が増え、これらの画像は転送されません。
帯域幅制限の結果、カメラの画像転送はデータパケットギャップ (GevSCPD) を使用して遅延されます。
帯域幅制限のメリット
適切な帯域幅制限を設定して、接続したカメラにギガビットイーサネットポートの使用できる帯域幅 (120 MBps) を分散します。これによって、不適切で不完全な画像を引き起こす、転送のボトルネックが発生しなくなります。
カメラにそれぞれ異なるスループット制限を指定して、個別に優先度を設定することもできます。
システム最適化
カメラのデータスループットを設定するときに GigE 帯域幅制限を考慮したとしても、ネットワークの高トラフィックやその他のシステムベースの変動によって、ギガビット回線に一時的なボトルネックが生じることがあります。そのため、やはり不完全な画像や転送エラーが発生します。
GenTL 設定
使用される GenTL に応じて、データ転送を最適化するための設定および監視のオプションは異なります。以下に、IDS GenTL の機能の例を示します。
- 「Stream Monitor」は「Buffer Fill Level」で、転送バッファーの何パーセントが正しく転送されたかを表示します。「Resend Request Count」は、バッファー再要求の使用回数を表示します。
- 「Loss Handling」を使用して、再要求するデータ量を制御できます。この機能はデフォルトで無効にされています。
- 「不完全」な画像は、IDS GenTL でカウントされませんが、転送されます。この画像データを使用するかどうかはユーザーが決定できます。
予備の確保
ネットワークでの一時的なパフォーマンス変動による転送エラーを防ぐため、いずれの場合も予備を確保しておくべきです。使用できる帯域幅を分散するとき、約 10% をカメラで使用されない予備として確保してください。
使用するネットワークカード設定の注意
- ネットワークカード設定で [Receive Descriptors] を最大値に設定することを推奨します。
- ネットワークカード設定で [ジャンボフレーム] (またはJumbo Packet、Large Packet、Large Frame) を最大値に設定することを推奨します。
ジャンボパケットを転送するには、カメラと PC の接続全体が、ジャンボパケットの転送に対応している必要があります。これらの設定の詳細については、ネットワークカードメーカーの説明書を参照してください。
まとめ
すでに規格に定義されている帯域幅管理機能に加えて、IDS GigE Vision ファームウェアには 2 つの IDS 追加パラメーターが実装され、さらに改善された概要を提供します。
IDS GigE Vision カメラは、帯域幅制限を使用してデータ出力を個別に制限し、現在のカメラ設定を使用するときにフレームレートと計算された帯域幅を表示します。この追加パラメーターによって、帯域幅制限を維持するためにカメラ設定を最適化することもできます。
こうした機能により、最大帯域幅を超過することなく、同じギガビットイーサネットポート上で動作する複数のカメラ (マルチカメラシステム) の設定を最適化でき、画像転送でのエラーを招くボトルネックを効果的に防止できます。