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.

Switch between two images multiple times in a pattern sequence

Hi,

We have an application using 6, 8bit images. These are packed into two 24bit images (images 0, 1 and 2 in the first 24bit image, and images 3, 4 and 5 in the second 24bit image), and the images are uploaded to the LightCrafter flash. Our application uses an exposure time of 25ms per 8bit image. When our pattern sequence looks like this: 0, 1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5 the display of patterns work as expected, but when we change the sequence to 3, 4, 5, 0, 1, 2, 3, 4, 5, 3, 4, 5 the patterns get distorted. Ideally we would like to be able to change the sequence to any permutation of the above numbers, the sequence mentioned is just meant as a simple example.

Is there a way to make this work on the LightCrafter4500?

Regards,

Claus

  • Claus,

    Can you clarify by what you mean when the patterns get distorted? Are they incorrect when projected? Or not the correct bit planes are projected?

    If you're able to post screenshots of your GUI and the images you're trying to use, that would be quite helpful.

    Thanks!
    Paul
  • Hi Paul
    By distorted I mean part of the pattern is projected correctly and part of it is wrong.
    When we increase the exposure time the problem goes away, so it seems to be related to the 200ms load time between flash images.
    My guess is that the problem is that we switch between the two images multiple times within a sequence. Which means the LightCrafter want to load the first image again, and does not have enough time, because of the 200 ms load time.
    If I am correct, what is needed is a way to tell the LightCrafter not to load the first image again, because it should already be buffered.
    Regards,
    Claus
  • Thanks for the clarification. Give me a little time to test this out myself. I think you are right about the load timing and I'm wondering what the impact of switching from one buffer to another is, as well as how to tell the Lightcrafter to stop loading data into the buffers when they switch.

    I'll post back when I know more. It would be helpful (if you're willing) to post your images so that I can test with your configuration.

    Thanks!
    Paul
  • Hi Paul

    I have inserted two images for you to test with.

    I have used the "Insert File" button, which pasted the images in below. Is there a better way to post the files?

    Regards,

    Claus

  • Hi Claus,

    I think I understand the issue you are experiencing. I would recommend trying the following solution for optimal performance:

    1. Use pattern sequence mode [variable exposure]

    2. When adding your patterns add them in an optimal way to minimize swapping to other side of the buffer, at least the first time

    3. Ensure you allow the 200 ms load time before you access images 3, 4, and 5 (assuming you added them sequentially) by adjusting the pattern period and pattern exposure time 

    4. Once the entire set is loaded in the buffer you should be able to access all of them (decreasing your exposure time), the 25ms (40 Hz) rate you are trying to achieve should not be an issue

    In short, once you give it time to load the patterns the first time you should be able to access them safely. 

     

    I hope that helps! Let me know if this is unclear or if this fix does not work for you.

     

    Best,
    ~Danny W

  • Hi Danny

    I have tried to simplify the situation a little, so I am just using one pattern from an image0 and another pattern from an image1.

    If I create a sequence of 0 1, where the period and exposure time is 25000us, and the patterns are repeated, then the images are displayed correctly.

    If I create a sequence of 0 1 0, where the first two patterns have a period and exposure time of 400000us and the last image have a period and exposure time of 25000us and the patterns are repeated, then all the patterns are displayed distorted (part of the patterns are projected correctly and part of them are wrong).

    It seems like the problem is, that when the LightCrafter has to switch back to image0, it does not understand that it is already loaded, and hence it starts loading it again.

    Regards,

    Claus

  • Hi Claus,

     

    Thank you for clarifying. I will try to replicate this issue on my end and and get back to you when I have some additional information.

     

    Best,
    ~Danny W 

  • Hi Claus,

    After doing some digging I found that this is a know issue that can arise when using the same data in one side of the buffer, it has come up before in this thread. Your exact situation is a bit different because you are displaying more bits, but your input has helped narrow down possibles causes. It is something we are looking into.

    In the mean time we can try to find a workaround for this. Some possible solutions are:

    • Modifying the exposure time to eliminate the corrupt image 
    • Arranging the information in your flash images in such a way that it will not reuse the data in this manner
    • Adding a duplicate image to the flash so you can call image from a different image it uses the data again

    If you have any further information on your specific application that could help me understand how we can incorporate a solution I can take a look at it. 

     

    I hope this helps!

    ~Danny W

  • Hi Danny

    It is not an option for us to modify the exposure time.

    We saw the problem when we were trying to implement an improvement, and for the improvement we cannot arrange the patterns in a way, where we don't have to switch back and forth between two images within a sequence.

    I don't see that a duplicate image can help in our situation, as it will take too long to load the duplicate image, since we can't change our exposure time.

    When the sequence is 0 1 0, the LightCrafter reloads image 0, when it needs to project the third pattern/image. A fix to the problem would be, to be able to tell the LightCrafter, that it doesn't need to load image 0, because it is already loaded. Or that the LightCrafter could automatically figure out that image 0 is already loaded.

    Regards,

    Claus

  • Hi Claus,

     

    "We saw the problem when we were trying to implement an improvement, and for the improvement we cannot arrange the patterns in a way, where we don't have to switch back and forth between two images within a sequence."

    You are correct the problem comes from switching back and forth between different images from flash. In section 4.1 Pattern Sequence Background of the DLP® LightCrafter 4500™ Evaluation Module User's Guide it mentions it only loads a single 24 bit image from flash into the frame buffer.

    "I don't see that a duplicate image can help in our situation, as it will take too long to load the duplicate image, since we can't change our exposure time."

    You are correct, after doing some research this will not solve your issue.

    "When the sequence is 0 1 0, the LightCrafter reloads image 0, when it needs to project the third pattern/image. A fix to the problem would be, to be able to tell the LightCrafter, that it doesn't need to load image 0, because it is already loaded. Or that the LightCrafter could automatically figure out that image 0 is already loaded."

    The controller does not keep track of the data stored in the buffer previously. Any time a data from a different flash image is chosen to be displayed it will require you to load the new image. You can use the Image Load Timing tab to estimate the timing required to load different images from the flash.

    My recommendation would be to create new 24 bit images using the create images function of the GUI:

      

     

    Section 3.5 Storing Images in Flash Memory  of the user's guide walks through the steps for creating custom 24 bit images. In this case you can create an image that can replicate what you are trying to display, without having to reload the buffer.

     

     

    I hope this works for you, please let me know if you have any more questions.

     

    Best,

    ~Danny W

  • Hi Danny

    Our limitation is that we have 6 patterns of 8 bits, hence we need 48 bits i.e. 2 images. And we want to display the patterns in an order, which makes it impossible to arrange the patterns in a way, where we can avoid switching between the two images multiple times. Additionally our exposure time is short, which doesn't allow enough time to load any of the images before they are needed.

    The interesting part is that the sequence 0 1 works even when repeated, which means the LightCrafter somehow knows that it doesn't need to reload image 0 or image 1, when the sequence repeats.

    Regards,

    Claus

  • Hi Claus,

     

    Our limitation is that we have 6 patterns of 8 bits, hence we need 48 bits i.e. 2 images. And we want to display the patterns in an order, which makes it impossible to arrange the patterns in a way, where we can avoid switching between the two images multiple times.

     

    I do believe I understand your issue. You would like to access the all of the 48 bits in the buffer with out having to reload the images. For the time being the controller reloads the image data when you call on the previously uploaded image again. This a known issue, and is it being looked into. The current recommendation to maximize your pattern display speed is to create images that have your patterns  arranged efficiently as possible. You can also utilize our Image Load Timing estimate tab in the GUI to ensure you are displaying the images as quickly as possible. Some other platforms do have more versatile image display options, I can help recommend alternatives if this is functionality required for your current application. 

     

    Best,
    ~Danny W