Image Data Unscrambling

The DMA engine provides the capability to unscramble images having 1X_2YE and 1X_2YM geometries.

Unscrambling 1X_2YE images

When StripeArrangement is set to Geometry_1X_2YE, the driver determines the destination of the second line output by the camera (i.e., the position of last image line in the buffer) by using this formula:

BufferBase + (BufferSize + LinePitch - LineWidth) / LinePitch * LinePitch - LinePitch

NOTE: this is the address of the last line in the buffer large enough to receive one complete line.

As a result:

If the buffer is too small, the last lines output by the camera (i.e., the middle part of the image) will be lost; the application is responsible for avoiding this,
Lines will start at

BufferBase + n * LinePitch,

Only complete lines are transferred. (When evaluating the above formula, if LinePitch is equal to 0, LineWidth will be used instead. Similarly, if StripeHeight is 0, 1 will be used instead.)
StripeHeight and StripePitch cannot be set to values greater than 1.

See also: Transmission Methods of 1X_2YE Images (Coaxlink series)

Unscrambling 1X_2YM images

In the following figures, line numbers and block numbers sent by the device are in white, line numbers and block numbers received by the host are in black.
The values of StripePitch, StripeHeight and StripeOffset must be multiple of BlockHeight value!

1X_2YM camera delivering lines by blocks of 2

1X_2YM camera delivering lines by blocks of 4

1X_2YM camera delivering lines by blocks of 4 to two hosts