Transfer Bit Depth#
転送ビット深度を小さくすると、カメラのフレームレートが増加する可能性があります。転送ビット深度を大きくすると、画質が向上する可能性があります。
機能を使用する#
Transfer Bit Depthを使用する理由#
Transfer Bit Depthを使用すると、内部画像処理中に転送するデータのビット深度を変更できます。これは、センサー固有の特性によりSensor Bit Depthの変更が推奨されない場合に便利です。
重要
ご使用のカメラでTransfer Bit Depth機能を利用できる場合は、Sensor Bit Depth機能の代わりに常にこの機能を使用してください。結果に満足できない場合にのみ、センサーのビット深度を変更してください。
転送ビット深度を設定する際には、次のガイドラインが適用されます。
- 最適な画質を得るには、転送ビット深度を大きい値に設定します。
カメラの内部画像の計算はビット深度の大きさに基づいているため、転送ビット深度が大きくなると画質が向上します。 - 最適なパフォーマンスを得るには、転送ビット深度を小さい値に設定します。
センサービット深度が小さいと、転送するデータ量が少なくなるため、パフォーマンスが向上します。
使用事例#
一部のカメラでは、8ビットピクセルフォーマットを使用する場合、センサービット深度は自動的に10ビットに設定されます。これは使用するセンサーによって異なります。センサー固有の特性があるためです。センサービット深度を小さい値に変更することは(カメラのフレームレートを上げるなど)、これらのセンサーでは推奨されません。センサーの他の特性に影響を与えるためです。
ここで転送ビット深度が役立ちます。使用されるセンサービット深度とは独立して値を設定できます。例えば、フレームレートを上げることで得られる利点があります。
Transfer Bit Depthモード#
Transfer Bit Depth modeを使用すると、使用するPixel Formatとは独立してTransfer Bit Depthを設定できるかどうかを定義できます。設定が可能です: BslTransferBitDepthMode パラメーターを次のいずれかの値に設定します。
Auto: Transfer Bit Depthは、使用するに応じて自動的に調整されます。これがデフォルトの設定です。たとえば、Pixel FormatをBayer 12に設定した場合、Transfer Bit Depthは自動的に12 bitに設定されます。 ピクセルフォーマット 使用されます。これがデフォルトの設定です。たとえば、Pixel FormatをBayer 12に設定した場合、Transfer Bit Depthは自動的に12 bitに設定されます。Manual: Transfer Bit Depthは、使用するPixel Formatとは独立して設定できます。たとえば、内部画像処理に使用される10ビットデータに基づいて8ビットの画像データを出力するようにカメラを設定できます(Pixel Format = Mono 8、Transfer Bit Depth = 10 bit)。
Transfer Bit Depthの設定#
- パラメーターを
BslTransferBitDepthModeパラメータをManual. - パラメーターを
BslTransferBitDepthパラメータを希望の値に設定します。
たとえば、パラメータを次のように設定すると:Bpp1212 bpp(ピクセルあたりのビット数)のビット深度が設定されます。
サンプルコード#
// 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);
pylon Viewerを使用して、パラメーターを簡単に設定することもできます。