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.

LCD Noise on DM644x

Need help diagnosing LCD noise on davinci platform. The usage is to display the image stream from the camera, a loop back. The image from camera is in 320x240 resolution and we need to display it on a 800x480 LCD. We use the HW resizer to scale up. The problem is that there are random white or black spots in the LCD display, but not on the image from the camera. If the image from camera is 640x480, the problem gets better, but still exists. If we use DMA to perform other tasks, it gets worse.

 

Analysis of the problem might be the following reasons:

1. The resizer parameter I use is somewhat not the best choice. BTW, for 320x240 to 800x600 resize, I had to tweak the resizer parameter from the values computed from the equation to get around the resizer lock up issue. The lock up may not happen right away but after minutes or hours.

2. The resizer just can not perform well with the up scaling factor we use;

3. The resizer is competing data bus with CPU and DMA channels, if there is any data missing, noise will happen.

 

Could you please shed some light on how to get this problem fixed? Really appreciate if you can get us the resizer parameter we should use for 320x240 to 800x600 case, with YUV422 as the image format.

  • Charles,

    For the sake of a test can you freeze the displayed image by disabling the frame buffer updates? This will tell us if the issue is putting data into the buffer or taking data out of the buffer is most likely.

    Additionally, can you try displaying a static, unscaled frame buffer image which has a large mount of detail in it please? This will help determine if the issue is potentially related to your LCD connectivity, i.e. a hardware issue.

    I have seen random noise in images if, for example, the LCD pixel clock is the wrong polarity and the LCD is capturing data close to the data transitions. In this case the noise would not depend on the source, but it is worth checking.

    Finally, can you try displaying one frame buffer (using the scaler just like you are now) but feed the camera data to a different region of memory? This test will help determine if the issue is caused by multiple accesses to the same memory, or something else.

    BR,

    Steve

  • Steve,

    Customer doesn't use frame buffer in their application. ARM side is not involved at all. The way it works is that the memory used by the camera (VPFE) is in the DDR. After a complete frame is captured by the camera, the DSP side gets an interrupt. Then the DSP side will set the resizer parameters and trigger the resizing on the DDR memory used by the camera. After the resizing finishes, they copy the resized image to the VID0 display memory. We have 3 buffers for the camera to fill and the buffer will be returned to use when the image in it is displayed to the LCD. They use the same scheme as in our previous product line with a smaller LCD(480x272), and they have never seen this noise problem at all.

    The noise will reduce if we display the 320x240 image not to the full screen(800x480), but instead to a 608x456 window, the noise issue will be reduced, but still exists.

    It should not be LCD connection problem, the display of OSD0 window has no problem.

    They will do the test to display a static image with the camera feeding to a different memory location.

  • Charles,

    There are actually multiple frame buffers in this setup. Frame buffers are nothing to do with any particular processor, but merely a chunk of memory where an image is being stored for some future processing or display.

    If the OSD displays fine then yes, I agree that the LCD is not likely the culprit.

    What we need to do here is, starting at the output point on the flow, place known, static images at the various points in the processing at which the noise starts to appear will indicate the part of the flow which is introducing the issue.

    BR,

    Steve

  • Charles,

    This should be a resizer issue. Please ask them to tweak resizer parameters and see if it makes a difference.

     

    Please use the following link as a reference http://focus.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=spraai7b&fileType=pdf

     

  • Paul,

    The customer has looked at this doc and attempted to adjust the parameters with no success, do you have a recomended setting they should try based on their conditions?

    Thanks,

    Charles

  • Paul, Steve,

    Below are the results of the various tests:

    1. For the sake of a test can you freeze the displayed image by disabling the frame buffer updates? This will tell us if the issue is putting data into the buffer or taking data out of the buffer is most likely.”

    I stopped the video port so there will be no new images from camera, the display will take the last captured image, resize it then display on LCD. The noise still presents.

    2. Additionally, can you try displaying a static, unscaled frame buffer image which has a large mount of detail in it please? This will help determine if the issue is potentially related to your LCD connectivity, i.e. a hardware issue.

    It works perfectly in this case, both OSD and VID0 has no problem.

    I have seen random noise in images if, for example, the LCD pixel clock is the wrong polarity and the LCD is capturing data close to the data transitions. In this case the noise would not depend on the source, but it is worth checking.

    3. Finally, can you try displaying one frame buffer (using the scaler just like you are now) but feed the camera data to a different region of memory? This test will help determine if the issue is caused by multiple accesses to the same memory, or something else.

    Resize and display image from a static buffer, the camera feeds to another memory buffer, the noise still presents.

  • Charles,

    There is conflicting information here.Test 1 should behave in exactly the same way as test 2 since both tests are basically taking a static frame buffer and displaying it.

    For test 1, when the video capture port is stopped is the noise you see fixed (i.e. the noise corrupts the image, but the corruption is static), or is it random sparkling? If the noise is fixed then it implies a capture problem, if the display 'sparkles' (i.e. the noise keeps changing) then it implies a display issue.

    BR,

    Steve

  • Steve,

    It seems that, from Charles' experiments, noise is present whenever resizer is used. Hence I have a feeling that this is still a resizer parameter issue.

    Charles,

    That doc is all that we have for now on resizer, your customer might need to tweak the numbers and try it out.

  • Yep, just re-read through the test results and I agree that it points to the re-sizer.

    Do we know exactly what the noise looks like?

    I was going on the assumption that the noise was random sparkling in nature, which is usually caused by either synchronization issues or timing issues. If so, then the only scaler configuration registers which could affect the noise would be those related to the scaling ratio I would think, since these would be the only ones which affect the amount of data read (i.e. the only ones which are asynchronous and dependent on other parts of the system).

    If the issue is not caused by other system interactions then the noise would be fixed pattern noise for a static source image, but this does not appear to be the case.

    BR,

    Steve

  • The noise in this case is still random. It doesn't appear to be a capture issue.

  •  

    Here is a video demonstrating the noise, you will see white flickering on the coffee cup

  • Charles,

    Could we possibly get a similar video of the static image for test case 1 where the noise is still present?

    Thanks

    BR,

    Steve