콘텐츠로 건너뛰기
STAGING SERVER
DEVELOPMENT SERVER

Transfer Bit Depth#

Transfer Bit Depth camera feature를 사용하면 내부 이미지 처리에 사용되는 bit depth를 변경할 수 있습니다.

transfer bit depth를 낮추면 카메라의 frame rate를 높일 수 있습니다. transfer bit depth를 높이면 image quality를 향상시킬 수 있습니다.

기능 사용법#

Transfer Bit Depth 사용 이유#

transfer bit depth를 사용하면 내부 이미지 처리 중에 전송할 데이터의 bit depth를 변경할 수 있습니다. 이는 센서의 고유 특성으로 인해 sensor bit depth를 변경하는 것이 권장되지 않는 경우에 유용합니다.

Transfer Bit Depth 다이어그램

transfer bit depth를 설정할 때 다음 지침이 적용됩니다.

  • 최적의 image quality를 얻으려면 transfer bit depth를 높은 값으로 설정하십시오.
    transfer bit depth가 높을수록 카메라의 내부 이미지 계산이 더 높은 bit depth를 기반으로 수행되므로 image quality가 향상될 수 있습니다.
  • 최적의 성능을 얻으려면 transfer bit depth를 낮은 값으로 설정하십시오.
    전송할 데이터 양이 줄어들기 때문에 sensor bit depth가 낮을수록 성능이 향상될 수 있습니다.

사용 사례#

일부 카메라에서는 8-bit pixel format을 사용할 때 sensor bit depth가 자동으로 10 bit로 설정됩니다. 이는 사용된 센서에 따라 다르며 센서의 고유 특성 때문입니다. 이러한 센서의 경우 다른 센서 특성에 영향을 미칠 수 있으므로 camera의 frame rate를 높이기 위해 sensor bit depth를 더 낮은 값으로 변경하는 것은 권장되지 않습니다.

여기서 transfer bit depth가 유용하게 사용됩니다. 사용된 sensor bit depth와 무관하게 값을 설정할 수 있으며, 예를 들어 frame rate가 향상되는 이점을 누릴 수 있습니다.

Transfer Bit Depth Mode#

Transfer Bit Depth mode를 사용하면 사용되는 pixel format과 무관하게 transfer bit depth를 설정할 수 있는지 여부를 정의할 수 있습니다. 다음을 설정할 수 있습니다. BslTransferBitDepthMode 매개변수를 다음 값 중 하나로 설정합니다:

  • Auto: 전송 비트 심도는 다음 조건에 따라 자동으로 조정됩니다. 픽셀 형식 사용됩니다. 이것이 기본 설정입니다. 예를 들어, 픽셀 형식을 ‘Bayer 12’로 설정하면 전송 비트 심도는 자동으로 12비트로 설정됩니다.
  • Manual: 전송 비트 심도는 사용되는 픽셀 형식과 별도로 설정할 수 있습니다. 예를 들어, 내부 이미지 처리에 사용되는 10비트 데이터를 기반으로 8비트 이미지 데이터를 출력하도록 카메라를 구성할 수 있습니다(픽셀 형식 = Mono 8, 전송 비트 심도 = 10비트).

Transfer Bit Depth 설정#

  1. 다음 값 중 하나로 BslTransferBitDepthMode 매개변수: Manual.
  2. 다음 값 중 하나로 BslTransferBitDepth 파라미터를 원하는 값으로 설정합니다.
    예를 들어 파라미터를 Bpp12 (으)로 설정하면 12 bpp(pixels per bit)의 비트 심도가 설정됩니다.

샘플 코드#

// 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를 사용하여 파라미터를 손쉽게 설정할 수 있습니다.