This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Random stops in VLIB_mergeBlobs function running on C66x

Hi,

I am doing a computer vision program running on a C66x, using the VLIB library for c66x.

The flow of the program is the folliwng: it filters an image, calls the VLIB_createConnectedComponentsList, among others related VLIB funtions, and then calls VLIB_mergeBlobs to group the blobs. It'is running in a loop, at 30 iterations per second.

I have tested the program withouth the VLIB_mergeBlobs function, and it works with the expected output. When I add the function, the program runs without issues, with the expected output, during 3 - 10 loops. After that it stops working for around 100 seconds, then works again, it goes on until it stops again for 100 seconds more, and so on.

No memory allocation/deallocation is being done inside the loop.

I would appreciate any help to solve the issue.

Daniel

  • Daniel,
    I have moved this question over to the device forum in hopes that it will be answered more quickly there.
  • Daniel,

    From your question, I assume you are using VLIB 3.1.0.9, is that correct?  Please note that we have already fixed some bugs in these functions, and even changed the name and functionality of the VLIB_mergeBlobs to VLIB_createBlobList.  These changes can be found at the latest release 3.2.0.2: http://software-dl.ti.com/libs/vlib/latest/index_FDS.html

    Please try with this release and confirm if this is working again for you.

    Jesse

  • Hi Jesse,

    It's good to hear from you again. The version I am using it's 3.2.0.0. For now I have substituted the VLIB_mergeBlobs/VLIB_createBlobList function by dilation and erosion functions of the same library, and so far is working good, so, unless you ask me to, I am not planning to modify it back. However, if I do any more modification in the code I will update the library and test it.

    Thanks for your answer,

    Daniel

  • Daniel,

    I'm glad that you are able to get things working. I just want to warn you that there are several bugs fixed related to CCL and BlobAnalysis in between 3.2.0.0 and 3.2.0.2, since this function underwent much more rigorous testing and bug fixing during that time. Here is the list so you can decide if these will affect your use case:

    1. Bug in the VLIB_calcMinEnc* functions when blob only has one pixel
    2. Bug in VLIB_createConnectedComponentsList function improperly returning "low memory warning" code
    3. Bug in CCL reported: e2e.ti.com/.../341139
    4. Incorrect indexing causing out of bounds access/failure in mergeBlobs (this may be the bug that was causing the failure you were experiencing).
    5. Merge blobs functionality incorporated into CCL, and the mergeBlobs function was renamed and optimized to reflect its remaining functionality: VLIB_createBlobList.

    Best Regards,
    Jesse
  • Jesse,

    Thanks for your information. I will update the library.

    Kind regards,
    Daniel