MATRIX VISION - mvBlueCOUGAR-X/-XD Technical Documentation
Using the mvBlockscan feature
Firmware version 2.35.0


The mvBlockscan mode can be used for implementing a kind of linescan application. Instead of a single line, an Area of Interest (AOI) with a few lines (LinesPerBlock) will be captured. Then a selectable number of these small AOIs will be sent as a single image. This helps to minimize the overhead of a "high frequency" streaming of every single AOI when doing it in the conventional way. This mode is available for all mvBlueFOX3 cameras with Sony Global Shutter CMOS sensors.

The minimum size of mvBlockscanLinesPerBlock and the increment/decrement step size is similar the the limitations of the Height property for the specific camera model. Typically these are values in the range of 4 - 16 but it is always better to check these limits at runtime.

The advantages of the block scan mode over a line scan camera are:

  • Standard interface: USB3 Vision instead of CoaXPress and CameraLink.
  • Easier system setup: Since the camera can use area scan too, it is much easier to adjust the focus and get a sharp image than this would be with a line scan sensor.
  • Less block loss due to the FPGA inside the camera.
  • Less load on the host: Blocks are collected in the camera.
  • Less pricy than a line scan camera (with the same line rate).

Using wxPropView

Let's say we have a rotating drum including an incremental encoder connected to the digital inputs (Encoder Source A → Camera Line 4; Encoder Source B → Camera Line 5) and also a light source connected to the digital output, the configuration of the mvBlockscan mode would look like this with wxPropView:

  1. Set the DeviceScanType in "Setting → Base → Camera → GenICam → DeviceControl → DeviceScanType" to mvBlockscan .
  2. Configure the Initial situation and settings OffSetY, the mvBlockscanLinesPerBlock(>= minimum value of Height) and the mvBlockscanBlockCount(>= 2) in "Setting → Base → Camera → GenICam → ImageFormatControl".
  3. Set the PixelFormat in "Setting → Base → Camera → GenICam → ImageFormatControl" to e.g. BayerRG8 for color cameras .
  4. Configure an incremental encoder in "Setting → Base → Camera → GenICam → EncoderControl", e.g.
    1. EncoderSourceA: Line4
    2. EncoderSourceB: Line5
    3. EncoderDivider: 1
    4. EncoderOutputMode: PositionDown/DirectionDown
  5. Configure a trigger in "Setting → Base → Camera → GenICam → AcquisitionControl"
    1. TriggerSelector: FrameStart
    2. TriggerMode: On
    3. TriggerSource: Encoder0
  6. Adjust the ExposureTime to your needs in "Setting → Base → Camera → GenICam → AcquisitionControl".
  7. If needed configure the settings for a light source in "Setting → Base → Camera → GenICam → DigitalIOControl".
    1. LineSelector: The output line physically connected with the light source
    2. LineSource: ExposureActive

Optionally you can configure a debounce time for Line4 and Line5 in "Setting → Base → Camera → GenICam → DigitalIOControl" if needed.

After setting up the device like this an application will then receive image buffers with a height of mvBlockscanLinesPerBlock times mvBlockscanBlockCount. When the last of these images shall be terminated early thus with just a portion of the configured mvBlockscanBlockCount block in it "Setting → Base → Camera → GenICam → AcquisitionControl → AcquisitionStop" can be called. This will terminate the current acquisition and send out an image containing the number of blocks already captured.