コンテンツにスキップ

Transfer Bit Depth#

Transfer Bit Depthカメラ機能を使用すると、内部画像処理に使用するビット深度を変更できます。

転送ビット深度を小さくすると、カメラのフレームレートが増加する可能性があります。転送ビット深度を大きくすると、画質が向上する可能性があります。

機能を使用する#

Transfer Bit Depthを使用する理由#

The transfer bit depth allows you to change the bit depth of the data to be transferred during internal image processing. This is useful if changing the sensor bit depth isn't recommended due to a sensor's specific characteristics.

Important

If the Transfer Bit Depth feature is available for your camera, always use this feature instead of the Sensor Bit Depth feature. Only if you're not satisfied with the result, change the sensor bit depth.

Transfer Bit Depth図

転送ビット深度を設定する際には、次のガイドラインが適用されます。

  • 最適な画質を得るには、転送ビット深度を大きい値に設定します。
    カメラの内部画像の計算はビット深度の大きさに基づいているため、転送ビット深度が大きくなると画質が向上します。
  • 最適なパフォーマンスを得るには、転送ビット深度を小さい値に設定します。
    センサービット深度が小さいと、転送するデータ量が少なくなるため、パフォーマンスが向上します。

使用事例#

一部のカメラでは、8ビットピクセルフォーマットを使用する場合、センサービット深度は自動的に10ビットに設定されます。これは使用するセンサーによって異なります。センサー固有の特性があるためです。センサービット深度を小さい値に変更することは(カメラのフレームレートを上げるなど)、これらのセンサーでは推奨されません。センサーの他の特性に影響を与えるためです。

ここで転送ビット深度が役立ちます。使用されるセンサービット深度とは独立して値を設定できます。例えば、フレームレートを上げることで得られる利点があります。

Transfer Bit Depthモード#

Transfer Bit Depthモードでは、使用するピクセルフォーマットとは独立して転送ビット深度を設定できるかどうかを定義できます。BslTransferBitDepthModeパラメーターを次のいずれかの値に設定できます。

  • Auto:転送ビット深度は、使用するピクセルフォーマットに応じて自動的に調整されます。これがデフォルト設定です。例えば、ピクセルフォーマットをBayer 12に設定すると、転送ビット深度は自動的に12ビットに設定されます。
  • Manual:転送ビット深度は、使用するピクセルフォーマットとは独立して設定できます。例えば、内部画像処理に使用される10ビットデータに基づいて8ビット画像データを出力するようにカメラを設定できます(ピクセルフォーマット = Mono 8、転送ビット深度 = 10ビット)。

Transfer Bit Depthの設定#

  1. BslTransferBitDepthModeパラメーターをManualに設定します。
  2. BslTransferBitDepthパラメーターを目的の値に設定します。
    例えば、パラメーターをBpp12に設定すると、ビット深度は12bpp(ビット/ピクセル)に設定されます。

サンプルコード#

// Set the pixel format to Mono 8
camera.PixelFormat.SetValue(PixelFormat_Mono8);
// Set the transfer bit depth mode to Manual
camera.BslTransferBitDepthMode.SetValue(BslTransferBitDepthMode_Manual);
// Set the transfer bit depth to 10 bit
camera.BslTransferBitDepth.SetValue(BslTransferBitDepth_Bpp10);
INodeMap& nodemap = camera.GetNodeMap();
// Set the pixel format to Mono 8
CEnumParameter(nodemap, "PixelFormat").SetValue("Mono8");
// Set the transfer bit depth mode to Manual
CEnumParameter(nodemap, "BslTransferBitDepthMode").SetValue("Manual");
// Set the transfer bit depth to 10 bit
CEnumParameter(nodemap, "BslTransferBitDepth").SetValue("Bpp10");
// Set the pixel format to Mono 8
camera.Parameters[PLCamera.PixelFormat].SetValue(PLCamera.PixelFormat.Mono8);
// Set the transfer bit depth mode to Manual
camera.Parameters[PLCamera.BslTransferBitDepthMode].SetValue(PLCamera.BslTransferBitDepthMode.Manual);
// Set the transfer bit depth to 10 bit
camera.Parameters[PLCamera.BslTransferBitDepth].SetValue(PLCamera.BslTransferBitDepth.Bpp10);
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK;  /* Return value of pylon methods */
/* Set the pixel format to Mono 8 */
errRes = PylonDeviceFeatureFromString(hdev, "PixelFormat", "Mono8");
CHECK(errRes);
/* Set the transfer bit depth mode to Manual */
errRes = PylonDeviceFeatureFromString(hdev, "BslTransferBitDepthMode", "Manual");
CHECK(errRes);
/* Set the transfer bit depth to 10 bit */
errRes = PylonDeviceFeatureFromString(hdev, "BslTransferBitDepth", "Bpp10");
CHECK(errRes);
# Set the pixel format to Mono 8
camera.PixelFormat.Value = "Mono8"
# Set the transfer bit depth mode to Manual
camera.BslTransferBitDepthMode.Value = "Manual"
# Set the transfer bit depth to 10 bit
camera.BslTransferBitDepth.Value = "Bpp10"

pylon Viewerを使用して、パラメーターを簡単に設定することもできます。