キーワードから探す

※スペースで区切って複数検索が可能です。

カテゴリで絞り込む

よく検索されるキーワード

ID:578
作成日: 2026/09/09

AcapLib2でTapGeometry「1X_2YE」出力CoaXPressカメラを使用する方法

カテゴリ SDK-AcapLib2   
対象製品 APX-36124 APX-36124-DFラベル図.png APX-36124G4-FL
APX-36C1 APX-36C1-DF

※本資料は SDK-AcapLib2 Ver.9.10.0 の内容に基づいて記述しています。

このFAQでわかること

  • 1X_2YE とはどのような出力方式か
  • カメラ側で何を確認すればよいか
  • AcapLib2 でどの設定IDを、どの順番で設定すればよいか
  • お使いのボード(36124系/36C1系)毎の設定手順
  • つまずきやすい点(ini ファイル読み込み時の上書き、テストパターン、Feature の実装差異)

目次

  1. 1X_2YE とは
  2. 最初にカメラ側の Feature を確認してください
  3. AcapLib2 の設定ID
  4. お使いのボードの系統を確認してください
  5. 36124系(APX-36124A / APX-36124G4 / APX-36124-DF)の設定手順
  6. 36C1系(APX-36C1 V1R3以降 / APX-36C1-DF)の設定手順
  7. ini ファイル読み込み(AcapSelectFile)時の注意点
  8. 制限事項・注意事項
  9. 関連資料

1. 1X_2YE とは

TapGeometry とは、カメラが画像を出力するときの画素の並び方(分割方式)です。

1X_1Y

画像を分割せず、1行目から最終行まで順番に出力します。

1X_2YE

画像を上下2つの領域に分割し、上端と下端から中央へ向かって交互に出力します。

カメラの出力順 : 1行目 → 最終行 → 2行目 → (最終-1)行 → 3行目 → ...

受信したデータをそのままバッファに並べると、画像が上下入り混じった状態になります。正しい画像にするには並び替えが必要です。

fig1_1x2ye_output_order.png
1X_2YE は、伝送に使用する Stream 数によって次の2種類に分かれます。

1X_2YE_SingleStream 上下2領域を 1つの Stream で伝送する
1X_2YE_MultiStream 上下2領域を 2つの Stream に分けて伝送する

どちらになるかはカメラの仕様で決まります。AcapLib2 側にも、それぞれに対応した設定が必要です。
fig2_single_multi_stream.png

2. 最初にカメラ側の Feature を確認してください

AcapLib2 の設定値を決める前に、カメラが実際にどの構成で出力しているかを GenICam Feature で確認してください。

Feature 名 確認する内容
DeviceTapGeometry 現在の TapGeometry。「Geometry_1X_2YE」等であれば 1X_2YE です。
DeviceStreamChannelCount カメラが使用する Stream 数。1 なら SingleStream、2 なら MultiStream。
Image1StreamID Stream1 の ID。ACL_CXP_STREAM1_ID に設定します。
Image2StreamID Stream2 の ID。ACL_CXP_STREAM2_ID に設定します。

Feature の読み出しは、AIPTool の GenICam Feature 表示、または Sample\CameraSetting\GenICam_FeatureAccess で行えます。

ご注意:カメラ側の Feature 実装はメーカー・機種によって異なります

カメラメーカーの仕様書で TapGeometry と Stream 構成を確認してください。

3. AcapLib2 の設定ID

設定ID 設定値・意味
ACL_CXP_TAPGEOMETRY
(0x1118)
1 : 1X_1Y
20 : 1X_2YE_SingleStream
21 : 1X_2YE_MultiStream
20 / 21 を設定した場合の並び替えはボードによって異なります。
APX-36124系:20 / 21 を設定した場合、並び替えられた画像が入力されます。
APX-36C1系:20 / 21 を設定しても、並び替えは行われません。
詳しくは「4. お使いのボードの系統を確認してください」を参照してください。
ACL_CXP_STREAM1_ID
(0x1119)
Stream1 の ID
1X_2YE_MultiStream の場合のみ設定します。
ACL_CXP_STREAM2_ID
(0x111A)
Stream2 の ID
1X_2YE_MultiStream の場合のみ設定します。
ACL_VERTICAL_REMAP
(0x1042)
0 : 無効
1 : VerticalRemap 有効
DMA 転送時に上下交互の並びを復元します。
AcapOpen 時、カメラの DeviceTapGeometry の値に「1X」と「2YE」の両方が含まれていれば、自動的に 1 になります。
1X_2YE カメラを使用する場合の設定値はボードによって異なります。「4.」を参照してください。

重要:AcapSetInfo の第4引数 nMemNum の意味

0 以上 その場で設定を反映します(内部で初期化処理が実行されます)
負数 反映せず、内部パラメータに保持するだけです

1X_2YE 関連の設定は、必ず nMemNum に -1 を指定して保持し、すべて設定し終えてから AcapReflectParam でまとめて反映してください。設定が途中まで反映された中間状態をボードに入れないためです。

4. お使いのボードの系統を確認してください

1X_2YE の設定値は、ボードによって異なります。お使いのボードの設定値を確認し、詳しい手順は該当する章を参照してください。

ボード SingleStream MultiStream
APX-36124A
APX-36124G4
APX-36124-DF
→ 5. 設定手順
ACL_CXP_TAPGEOMETRY = 20
ACL_VERTICAL_REMAP = 0
Stream ID の設定は不要
ACL_CXP_TAPGEOMETRY = 21
ACL_VERTICAL_REMAP = 0
ACL_CXP_STREAM1_ID = ※
ACL_CXP_STREAM2_ID = ※
APX-36C1
(V1R3以降)
APX-36C1-DF
→ 6. 設定手順
ACL_CXP_TAPGEOMETRY = 1
ACL_VERTICAL_REMAP = 1
Stream ID の設定は不要
ACL_CXP_TAPGEOMETRY = 21
ACL_VERTICAL_REMAP = 1
ACL_CXP_STREAM1_ID = ※
ACL_CXP_STREAM2_ID = ※

※ カメラの Image1StreamID / Image2StreamID の値を設定します。値はカメラによって異なります(「2.」参照)。

APX-36C1(V1R0〜V1R2)をお使いの場合

このバージョンのボードでは 1X_2YE の設定自体がエラーとなり、使用できません。V1R3 以降にアップデートしてください。アップデート方法はこちらを参照してください。ボードのバージョンがご不明な場合はAIPToolのボード情報表示にてご確認いただけます。

5. 36124系(APX-36124A / APX-36124G4 / APX-36124-DF)の設定手順

36124系のボードでは、SingleStream / MultiStream とも ACL_CXP_TAPGEOMETRY で並び替えるため、ACL_VERTICAL_REMAP は 0(無効)にします。

5-1. 1X_2YE_MultiStream のカメラ

AcapOpen(...);
AcapSelectFile(hDev, nCh, iniFilePath, 0);

// ここから nMemNum = -1 で保持のみ行う
AcapSetInfo(hDev, nCh, ACL_CXP_TAPGEOMETRY, -1, 21);  // 1X_2YE_MultiStream
AcapSetInfo(hDev, nCh, ACL_CXP_STREAM1_ID,  -1, 0);   // Stream1 の ID
AcapSetInfo(hDev, nCh, ACL_CXP_STREAM2_ID,  -1, 1);   // Stream2 の ID
AcapSetInfo(hDev, nCh, ACL_VERTICAL_REMAP,  -1, 0);   // 36124系は0(無効)

AcapReflectParam(hDev, nCh);                          // ここで一括反映
  • Stream ID の値は、カメラの Image1StreamID / Image2StreamID に合わせてください。上の例は 0 と 1 の場合です。
  • ACL_VERTICAL_REMAP は AcapOpen 時に自動で有効になります。ACL_CXP_TAPGEOMETRY による並び替えと二重に処理されるのを防ぐため、この例では明示的に 0(無効)に設定しています(「7.」参照)。

5-2. 1X_2YE_SingleStream のカメラ

ACL_CXP_TAPGEOMETRY に 20(1X_2YE_SingleStream)を設定して並び替えます。

AcapOpen(...);
AcapSelectFile(hDev, nCh, iniFilePath, 0);

// ここから nMemNum = -1 で保持のみ行う
AcapSetInfo(hDev, nCh, ACL_CXP_TAPGEOMETRY, -1, 20);  // 1X_2YE_SingleStream
AcapSetInfo(hDev, nCh, ACL_VERTICAL_REMAP,  -1, 0);   // 36124系は0(無効)

AcapReflectParam(hDev, nCh);                          // ここで一括反映
  • Stream ID の設定は不要です。
  • ACL_VERTICAL_REMAP は AcapOpen 時に自動で有効になります。ACL_CXP_TAPGEOMETRY による並び替えと二重に処理されるのを防ぐため、この例では明示的に 0(無効)に設定しています(「7.」参照)。

5-3. ini ファイルで設定する場合

AcapSetInfo を使わず、ini ファイルに記述しておくこともできます。この方法であれば、AcapSelectFile による上書き(「7.」参照)を気にする必要がありません。

1X_2YE_MultiStream の場合

[CXP]
USER_CXP_TAPGEOMETRY=21
USER_CXP_STREAM1_ID=0
USER_CXP_STREAM2_ID=1

[USER]
USER_VERTICAL_REMAP_ENABLE=0

1X_2YE_SingleStream の場合

[CXP]
USER_CXP_TAPGEOMETRY=20

[USER]
USER_VERTICAL_REMAP_ENABLE=0

6. 36C1系(APX-36C1 V1R3以降 / APX-36C1-DF)の設定手順

36C1系のボードでは ACL_CXP_TAPGEOMETRY による並び替えが行われないため、SingleStream / MultiStream とも ACL_VERTICAL_REMAP は 1(有効)にします(36124系の 0 とは異なります)。

6-1. 1X_2YE_MultiStream のカメラ

AcapOpen(...);
AcapSelectFile(hDev, nCh, iniFilePath, 0);

// ここから nMemNum = -1 で保持のみ行う
AcapSetInfo(hDev, nCh, ACL_CXP_TAPGEOMETRY, -1, 21);  // 1X_2YE_MultiStream
AcapSetInfo(hDev, nCh, ACL_CXP_STREAM1_ID,  -1, 0);   // Stream1 の ID
AcapSetInfo(hDev, nCh, ACL_CXP_STREAM2_ID,  -1, 1);   // Stream2 の ID
AcapSetInfo(hDev, nCh, ACL_VERTICAL_REMAP,  -1, 1);   // 36C1系は1(有効)

AcapReflectParam(hDev, nCh);                          // ここで一括反映
  • Stream ID の値は、カメラの Image1StreamID / Image2StreamID に合わせてください。上の例は 0 と 1 の場合です。
  • ACL_VERTICAL_REMAP は AcapOpen 時に自動で有効になりますが、AcapSelectFile を呼び出した場合は ini ファイルの値(既定 0)に上書きされます。この例では AcapSelectFile の後に明示的に 1 を設定し直しています(「7.」参照)。

6-2. 1X_2YE_SingleStream のカメラ

ACL_CXP_TAPGEOMETRY は変更せず(1X_1Y のまま)、ACL_VERTICAL_REMAP で並び替えて取り込みます。

AcapOpen(...);
AcapSelectFile(hDev, nCh, iniFilePath, 0);

AcapSetInfo(hDev, nCh, ACL_VERTICAL_REMAP, -1, 1);    // 並び替えを有効化

AcapReflectParam(hDev, nCh);
  • Stream ID の設定は不要です。
  • ACL_VERTICAL_REMAP は AcapOpen 時に自動で有効になりますが、AcapSelectFile を呼び出した場合は ini ファイルの値に上書きされます。この例では ini に記述がないことを想定し、AcapSelectFile の後に設定し直しています(「7.」参照)。

6-3. ini ファイルで設定する場合

AcapSetInfo を使わず、ini ファイルに記述しておくこともできます。この方法であれば、AcapSelectFile による上書き(「7.」参照)を気にする必要がありません。

1X_2YE_MultiStream の場合

[CXP]
USER_CXP_TAPGEOMETRY=21
USER_CXP_STREAM1_ID=0
USER_CXP_STREAM2_ID=1

[USER]
USER_VERTICAL_REMAP_ENABLE=1

1X_2YE_SingleStream の場合

[USER]
USER_VERTICAL_REMAP_ENABLE=1

7. ini ファイル読み込み(AcapSelectFile)時の注意点

AcapOpen を実行したとき、AcapLib2 はカメラの DeviceTapGeometry を読み出し、その値に「1X」と「2YE」が含まれていれば VerticalRemap を自動的に有効にします。

ただし、AcapOpen の後に AcapSelectFile を呼び出すと、次の設定が ini ファイルの値で上書きされます。ini に記述がない項目も、下表の既定値で上書きされます(AcapOpen 時の値は維持されません)。

ini キー ini に記述がない場合の既定値
[USER] USER_VERTICAL_REMAP_ENABLE 0(無効)
[CXP] USER_CXP_TAPGEOMETRY 1(1X_1Y)
[CXP] USER_CXP_STREAM1_ID -1(Stream ID の指定なし)
[CXP] USER_CXP_STREAM2_ID -1(Stream ID の指定なし)

画像が上下入り混じったまま取得される場合は、この上書きによって設定が変わっていないか確認してください。

対処方法(いずれか1つ)

(a) AcapSelectFile の後に、「4.」の表の値を AcapSetInfo で設定し直す(「5.」「6.」の設定例の方法)
(b) ini ファイルに 「4.」の表の値を記述しておく(「5-3.」「6-3.」参照)

8. 制限事項・注意事項

(1) 誤った設定のまま撮像しないでください

MultiStream / SingleStream の設定を誤ったまま撮像した場合、その後に正しい設定へ戻しても復帰せず、PC の再起動が必要になる場合があります。設定値は必ずカメラの Feature または仕様書で確認してから適用してください。

(2) テストパターンは 1X_1Y で出力されるカメラがあります

自然画は 1X_2YE、テストパターンは 1X_1Y という機種があります。テストパターンの表示結果だけで並び替えの設定を判断せず、カメラの DeviceTapGeometry の値または仕様書に従ってください。

9. 関連資料

SDK-AcapLib2 Library Manual

  • ACL_CXP_TAPGEOMETRY(TapGeometry 設定)
  • ACL_CXP_STREAM1_ID(Stream1ID の設定)
  • ACL_CXP_STREAM2_ID(Stream2ID の設定)
  • ACL_VERTICAL_REMAP(VerticalRemap 対応 DMA)
  • AcapSerialWrite / AcapSerialRead(GenICam コマンドを使用したカメラアクセス)
  • AcapGetCameraCategoryFeatureList(カメラの Feature 名一覧の取得)

SDK-AcapLib2 IniFile Manual

  • [CXP] USER_CXP_TAPGEOMETRY / USER_CXP_STREAM1_ID / USER_CXP_STREAM2_ID
  • [USER] USER_VERTICAL_REMAP_ENABLE

AIPTool UsersManual

  • GenICam ウィンドウ(カメラの Feature をツリー表示して値を確認できます)

サンプルプログラム(SDK-AcapLib2 インストールフォルダ内)

  • Sample\Acquisition\Grab_VerticalRemap … VerticalRemap の使用例
  • Sample\CameraSetting\GenICam_FeatureAccess … カメラ Feature の読み書き
この内容は参考になりましたか?
ご回答いただきまして、ありがとうございます。
今後の参考にさせていただきます。
ご意見・ご感想、ありがとうございます。

関連するご質問

Now Loading...

Now Loading...