TI E2E Community
DLP & MEMS
DLP LightCommander Development Platform
Discontinuities when projecting smooth images
Hello TI tech support,
I want to ask a question regarding a problem I am having with the LightCommander projector. The problem is that when projecting images that have smooth intensity/color gradient, the projected image shows discontinuities in the intensity/color. For example, if I project an image of the sky at dawn/dusk, instead of seeing a smooth variation in the intensity and color of the sky, I get discrete jumps in the projected image.To test whether this was a problem caused by the images I had created and fed to the projector using the C++ library, I tried using images from elsewhere. I also tried projecting these images using the LightCommander software (GUI) instead of the API. I get the same problem.In further testing, I decided to create an image with vertical fringes as follows: The left-most 256 pixels of the image would get assigned decreasing, integer intensity values, from 255 to 0. In other words, the first column of pixels got assigned an intensity of 255, the next was 254, and so on. This pattern was repeated 2 times and the rest of the pixels are "ON" to complete a 1024 x 768 image (as shown in Fig.1). So, starting with this image, known to have a smooth gradient, and integer pixel values, I tried the projection again. I still get the same problem: Inexplicably, the projected image shows discontinuities, or jumps, in intensity levels from left to right in the image.
The figures I have included here show the problem. For example, see Fig. 2 (One Fringe). The image is supposed to show a fringe with a sinusoidal intensity pattern. Instead, you can see the vertical fringes and the jumps in intensity levels. Note that any line/border you see between intensity levels, in any of these images, is not supposed to be there. All images have smooth gradients, and can be seen perfectly in the computer monitor, or when projected with other projectors.
Then I noticed that, when using the LightCommander GUI, everytime I want to project an 8-bit image, the software would make a BMP copy of that image in my project/solution folder. This copy of the image has the discontinuity problem.Does anybody else have this problem? What do you think could be the cause of this? Any suggestion as solutions or workarounds?
Thanks in advance,
Welcome to DLP&MEMS forum.
Please try below two options -
1) Select a Vertical or Horizontal test ramp in Test Pattern mode. (You will observe that the patterns are smooth).
2) Select Video mode and input 'Ramp' patterns over HDMI/DVI interface. (observe that the ramp pattern is smooth).
Now, going back to your question, you are trying to display a 8bpp (8bit per pixel) pattern in 'Structured Light' mode. There is somthing called as 'sequence' which is responsible for displaying the pattern data. The 'sequence' in 'Structured Light' mode is different from the sequence which is running in the above two options.
Also the bitdepth is just 8bpp in case of 'structured light' mode where as the other two cases it is 24bpp (24 bit per pixel). You can easily imagine the difference in the ramp representation in 8bpp vs 24bpp.
DLP LightCommander(TM) is more optimized for structured light or pattern display kind of application with pixel depth 1bpp or 8bpp. Trying to use it as video projector you may not be able to get results like the commerical DLP data projectors.
Let me know if you still have any clarification in this regard.
I tried Option 1 in your reply, and the patterns do look smooth.
Regarding the second part of your reply, I do not understand what you mean when you compare the 8bpp and 24bpp ramp representations. In the images I included in my first post in this thread (Fig 1), I assigned one intensity level for each pixel, increasing the intensity by one as I move from one pixel to the next. In other words, I create the smoothest ramp I can create with 8bpp. Note that the ramp is exactly 256 pixels width, so as to make sure that every projected pixel should have a different intensity level.
The problem I have is that, when projected, the change in intensity between one pixel and the next is not 1 anymore. Instead, several neighboring pixels share the same intensity level, and the changes between sets of pixels are now larger than 1 intensity level. The result is that the projected ramp image is not smooth anymore, but rather like a staircase. You can see these step changes in Fig 1.
I fail to see how the bitdepth of the pixels is related with this problem.
What i meant on the 8bpp to 24bpp is that, based on the frame bit depth and sequence the input frame is divided into sub-frames called as bitplanes. In the option 1 the a frame of data is shown as 24 bitplanes where as in 8bpp 'structured light' mode a frame of data is shown as 8 bitplanes.
How are you generating the ramp pattern? Is RGB values of each pixel same? For example If a pixel is assigned intensity 255 then ( R, G, B) = (255 , 255, 255). When importing the image in GUI you can select 100%R or 100%G or 100%B.
Please upload ramp .bmp file for us to try here.
Also let us know Selected frame rate and exposure time?
Hi Sanjeev, Ok, that's what I understood you were referring to regarding the bitdepth. But what I don't understand is how can this affect the projected image if it was generated as an 8-bit image? I was expecting to have a smooth ramp using the 256 intensity values possible with 8 bits. I generated the ramp pattern using a matrix (768x1024) created in Matlab with values from 255 to 0 (1 intensity level per pixel across horizontal direction). Then I uploaded it to the LC either (1) using the API and bitplanes as said in the following thread http://e2e.ti.com/support/dlp__mems_micro-electro-mechanical_systems/f/387/t/113085.aspx#462022 or (2) using the GUI.
Here is the image generated.
Thanks for the images. Let me experiment on LC Kit. I will reply soon with the results.
I tried your image the ramp looks good on my LC kit; it is not having any discontinuities in the ramp like the one you are seeing.
I suspect, if you are converting a 24bpp .bmp image into 8bpp bmp image then loading image you would possibly see discontinuities. For example - use the same ramp image you uploaded then using "mspaint" application save it as 256 colors (8bpp) image notice the saved bmp image itself will have discontinuities.
One more suggestion is that when you are generating the 24bmp image you can keep data on one channel and keep the remaining two as 0. For example - (255,0,0), (254,0,0),(253,0,0),....(0,0,0), (255,0,0),...etc. After this when importing the image on GUI select 100% of Red channel. Then run this configuration you must see smooth ramp. Similarly while using with API you can mask Green & Blue channel and read only red channel of the image while converting it into raw file format.
Attaching two things -
1) Red Ramp (24bpp)
2) 8bpp Ramp solution, open it and run from GUI.1108.8bppRamp.zip
I will test out our LC with your solution and also using the API.
I tested out the LC using the GUI with your solution and it works fine. However, if I change the frequency (fps) then the ramp is not smooth anymore. I did this with different images and solutions and get the same behavior, i.e. it only works in the beginning with 60 fps. It seems to be a problem when the new configuration is sent. In order to test this I configured the LC using your solution and run my code using the API, I got the same, the projected ramp was smooth if the solution with the GUI was projecting smooth patterns. Otherwise, using my code I got discontinuities similar to the image previously posted.
For these tests, I was varying the frequency from 60 to 200 fps.
I'll appreciate any help.
It looks like the problem you are seeing at particular fps. It may not be after sending new configuration. It will be helpful if you can provide results for two conditions below
1) 60 fps to 120 fps.
2) 120+ fps to 200fps.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.