ExpandPixel / Sync Problem

  • Hi,


    For one of our application, we'd like to use the ExpandPixel Operator to use the result of FrameSum to apply it to the whole frame. As the result is available in the next frame, I remove the first picture and route the "normal" image through a linebuffer to have both images ("normal" and FrameSum as total Frame) in sync. However, when testing in MicroDisplayX, there are many "incomplete" Frame transfers. How can this be fixed?


    Thanks!

  • Hello,


    Within an O-Type network (only O-Type operators) you can use the IsLastPixel-Operator - configured to frame - together with a Register to keep the required value. The O-Type nature does not require any synchronization.

    The init value of the register can be used as "not known" indicator for the first image.

    O-Type networks will not cause data-loss.


    At the same time you use a parallel down at the begin of the design after the First Buffer.
    Due to this bottle-neck the ImageBuffer is very likely to overflow, causing a behaviour that is very similar to the observed.


    Best regards,

  • Dear Björn,


    thank you for your hints. I redesigned the applet with lower parallel path from the beginning, and also introduced a second buffer in the path where one frame is removed (according to the HistogramThreshold.va example, where this operator is used in the same way I'm intending). However, the problem remains.
    As far as I understood your second proposal (using the register operator): Is it possible to "distribute" the value of the last pixel over the whole frame? If so, is there an example available?


    Thanks and best regards,

    Daniel


    20230124_SyncProblem.va

  • I also changed the HistogramThreshold example Applet to our HW Platform (imaworx Framegrabber + CoaxPress Camera), which results in the same problem - see attached files. Could you indicate how to fix this in the HistogramThreshold example?

    Thank you and kind regards,

    Daniel

  • Hello Daniel,


    Yes, there is an option to make the CXP12 grabber working with that example.

    I would recommend using the CXP12 Impulse CX4S-HEP board as a target platform.

    You can load it into VA and change the target platform and adopt required changes.

    That should be possible straight forward.


    Best regards,

    Björn

  • Hello Björn,


    thank you for your reply. I'm not sure what you mean by the CXP12 Impulse CX4S-HEP board - there's no such platform availabe in my Visual applets installation.


    I have an imaWorx CXP-12 Quad Framegrabber. I also did load the HistogramThreshold Example, changed the platform to my framegrabber and adopt the required changes (CxpCamera instead normal Camera, LineBuffers instead of Imagebuffers, see also the va file HistogramThreshold_CxP.va in my post above).


    However, if I build the applet, the output images are not in sync / incomplete. How can this be fixed?


    Thanks and kind regards,

    Daniel

  • Dear Daniel,


    I just saw your post. Does the problem still exist?


    In your screenshot from microDisplay, I see that you are using the Optronis Cyclone 1HS 3500 camera. This delivers a maximum of 3.518 fps at full resolution.

    In both designs you reduce the parallelism to 4. With the given image format (1.280x860) you can process a maximum of 1.100 fps.

    So the question is, at what frame rate is the camera running in your application? Please test it with less than 1.100fps. If the design works with that, the problem is the parallelism. To use the full bandwidth of the camera, you need to increase the parallelism.


    Best regards,

    Oliver

  • Hello together:

    As Oliver stated above it is very likely that it is related to the high bandwidth.
    If it works for low bandwidth it is just a question of the used parallelism.
    To reduce the bandwidth within the design, even for a single image you can use a lower CXP connection speed: CXP3 or CXP6 for example, instead of CXP12.

    If you post your VA design over here we can look deeper into it and apply some changes.


    Best regards,

    Björn