Posts by Theo

    Hi there,


    I am just working on a possible new project where we would need the Image Sequence operator wihtin a CXP board.


    According to the documentation this operator is only available for the microEnable IV hardware. Is this true?


    I have an va. file which was implemented with an older VA-Version in which the Image Sequence is actually used for a CXPQuadCamera on the mE5VQ8-CXP6D hardware. Well, might be that was a copy-paste thing...but then this applet would have never been successfully built.


    ImageSequence.PNG


    So I wonder if that might be my VA version (which is 3.2.0 currently).


    Also and more important (of course) if there is a good workaround to implement this feature with another buffer?


    Regards,

    Theo

    Hey Mich,


    will there only be one blob per Frame?


    In this case it might be an Option to use a Register-Operator and send the current value back with an TXImageLink. Just thinking...I am not from Siso so don't blame them if that isn't working ;-)


    Regards,

    Theo

    Hi,


    I just sumbled over a good example.

    This time I have one Image (420 MB) which I have to store completely in a FrameBufferRandomRead-Operator to sort the Pixels afterwards.


    This whould work with the Marathon VCX-QP because there I have a Ram-Size of 512 MiB.
    However, it will not work in the Ironman VQ8 as there I have only 256 MiB.


    Is this correct or did I miss something?


    regards,

    Theo

    Hey there,


    I am currently in contact to a customer regarding Parameter Libraries. He is interessted in this new possibility and while I am of course able to answer his questions I wonder if there is a general documenation (or maybe more an Application Node ) which is specifically made for end users. As I see it, most of the documentation on Silicon.software is made for people who are already familliar with developping VA or want to be in the future.


    You know, I am thinking about a documentation for People who are not developing new VAs but still need to know what is possible because they want to use an VA in their application and are responsible for the specification. As I said before this is partly of course my responsibility as a VA-developer, but on the other side it could help to discuss specific options if there would be such an overview.


    What do you think? And please just tell me if I missed this document =D


    Regards,

    Theo

    Hi Björn,


    thanks for your answer.


    Actually absolute Paths like "Process0/.." does not work at all in my installation (3.2.0.79765)


    Regarding my example:


    ${Process0/Brightness/ScaleFactor.Value} = ${this.Value} * (${Process0/Brightness/ScaleFactor.Value.To} + 1) / 2


    or


    ${Device1/Process0/Brightness/ScaleFactor.Value} = ${this.Value} * (${Device1/Process0/Brightness/ScaleFactor.Value.To} + 1) / 2


    Will lead to an error like: "WriteAction: ERROR: Unknown Parameter (Process0/Brigthness/ScaleFactor…"


    Until know I only could get it working with relative paths.


    Thanks for the Workaround. I will come back to that if I have to =D


    Stay safe,

    Theo

    Hi,


    this is more a hint than a question. When using a Translator Operator the data e.g. in "Write Action" is highlighted with Colors to make reading more easy. If I open your ParameterTranslation.va example "SetBrightness" will look like this:


    WriteActionProcess0.PNG


    If I add a Process1 to this example, copy SetBrightness into Process1 and alter it to make it running again this behavior changes to:


    WriteActionProcess1.PNG


    I did not find a solution for that until now and also I did not really Need it yet.


    Do you think this could be improved in a future VA-Version? Or do you have a Workaround for me?


    Kind regards,

    Lothar

    Good morning,


    thanks for the fast answer, I really appreciate this. I hope you guys are doing well! Please keep it that way.


    I just wanted to be sure about the possibilities as I never worked with such big Images before. So to sum it up: I have to think about frame sizes only if I am planning to keep the complete image in the buffer. In my case it will work as a line FIFO as I am not planning to stop the image flow after the buffer.


    Also thanks for the hint with the parallelism. I am porting from the VCL, which only has a 256 Bit RAM Data Width. Thats why I am still on 8 (10 would have been better I think, but it worked very well).


    @Björn: Thanks for your offer but I will figure it out myself. That way I hope it will finally get into my head =D


    Schönen Tag euch,

    Theo

    Hi there,


    after some time I have another Question for you:


    Currently I am working on a specification for a Color linescan camera with a big sensor (19000 pixel) and I want to achieve an Image height of 16364 pixels. As I am working with the gate Operator I have to go into the 2D Image Format in front of my Image Buffer Operator. The maximum Image size is ~ 900 MB which is of Course to big for one Image Buffer ( I am working with Marathon VCX-QP which has 512 MB per RAM). As I can use all my 4 Buffers for this Task I am workin on an idea to split the Image and put it into two Buffers.


    Would the idea I have (see attachment) work as intended or do you have a better solution for me?


    Input Link is 24 Bit Pixel Format and Parallelism of 8.


    Kind regards (und bleibt gesund)

    Theo


    BufferSize.PNG

    Hi support,


    I have a short question regarding the overflow flag which is a parameter of all buffers in VisualApplets. The flag will only toggle between 0 and 1 if there is an issue and if you do not watch closely you will miss this moment. Therefore I thought about designing an overflow count using the Parameter Operators. I had something in mind like


    ${this.Value} = ${this.Value} + ${../../../Function/Buffer.Overflow};


    Well, as you might expect that did not work as intended.

    Do you have a hint for me how I could use VA to count overflows of an buffer. The intention is to help the user figuring out if everything works fine and no overflow occured since the acquisition was started.


    Maybe there is something in the debug operators I could use like the "OverflowMask" but I am not sure how to proceed.


    Kind regards,

    Theo

    Hi Björn,


    actually the quick solution was to position the DMATransfer-Operator in the same HBox as the other Height / Width Parameter. This way both configurations are at least relatively near together. However, I would be glad if I could improve this in the future.


    Regards,

    Theo

    Dear Björn,


    thanks for the answer and the nice read =). I think your suggestion would be the right one as it is corresponding to the standard applets.

    CXP6x1Camera, CXP6x2Camera, CXP6x4Camera


    But to be honest I think this issue will never bother me again as I have learned my lesson. If you change the naming convention this would only be for all the poor guys which did not have this opportunity yet =)


    Regards,

    Theo

    Hi there,


    if I load a standard "Quad Applet" in microDisplay like "Acq_QuadCXP6x1..." I will get a configuration with four cameras (1 link each). It took ages for me to learn that Quad means the amount of cameras and x1 stand for the amount of lanes.


    However, if I use the CXPQuadCamera operator in VA I will get a configuration with one camera (four links). :P


    This is really really really confusing and I think I might have planned my current project with the wrong camera operator. In this case it will not effect the parallelism I hope but it might, correct? What is the logic behind this? Is this some kind of free of charge brain jogging? ?(


    You are correct if your answer is RTFM ( ;) ) but as I said, I thought I knew what I was doing ^^.


    Regards,
    Theo

    Hi Forum,


    its a while now but in the end I have a new question for you.


    I know that the Blob Operator can be a "pain in the ass" if the processed image has too many little blobs. The operator will slow down then and it is important to know that before starting a project.


    I suspect that the CNN Operator will behave similar and I would like to know your opinion regarding processing time. If I want to have a fast decision the question is if the CNN operator still is the best solution.


    What are the thoughts I have to take into account regarding "real time"?



    Theo

    Hi Björn and Johannes,


    many thanks for the fast answer. I can understand Björns input but I can also see the user side. Connecting parameters is a selling point of those operators :-). However, I think I have found a workaround, so I consider this topic as "closed".


    Best regards,

    Theo

    Hi,


    I have a short question regarding the parameter operators. I am currently sorting all the parameters from my applet into a parameter group. The user shall only use those parameter operators to set up his applet.


    Unfotunately I could not figure out how to connect FG_HEIGHT and FG_WIDTH to my corresponding IntParamTranslators. Is this even possible?



    best regards,
    Theo

    Goede Dag Björn,


    tested it today. Works perfect for me as it seems.


    Thank you very much. Are you planning to change the BufferSC for newer FPGA generations in the future?


    kind regards,

    Lothar


    Ps.: Johannes, I just saw that you also replied. Actually I have to admit that I oversaw those examples completely. Probably because I was fixated on solving this challenge using the BufferSC.

    Hi there,


    I am currently transferring an Applet from mE IV VD4 to Marathon VCL. The old applet supported a Mono8 Image and the user could select between "Smode_Unchanged" and "Smode_Tap2_0". As the BufferSC supports max. a parrallellism of 4 we had to increase the bitwidth to 16 in order to achieve the best performance. However, as the Marathon VCL does use shared memory and I am not allowed to increase the parrallellism I am not sure how to proceed.


    What is the best procedure to optimize performance of the BufferSC for the Marathon VCL? I already tried to increase the Bitwidth to 32 which seemed to help but is this the right way?


    Any suggestions?


    Kind Regards,

    Theo

    Hi Johannes,


    I managed, after some time and after finding your thread and a short sentence in the documentation that increasing parallelism will not increase bandwidth, to get my applet working with a CoefficientBuffer. However, I did not want to use more than one Link as this would make it much more complicated for the user. Before I used (BitWidth = 16, Par = 64) and casted to (BitWidth = 8 , Par = 16). I optimized it by starting the otherway round (BitWidth = 64, Par = 16; see attached image). So my main question is why is the Bit Width not a part of the table above? Would you still think I should use more than one link?


    Why is it not possible to improve the operator by increasing the parallelism...I have to admit that it did not quite get the explanation in the documentation.


    Best regards,

    Theo



    forum.silicon.software/index.php?attachment/207/

    Files

    • Applet.PNG

      (26.3 kB, downloaded 1 times, last: )