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.

Mixing pixels in a frame

Good day!

I connected the two boards DM6437. At one program mixing pixels in lines, on the other board pixels are returned to their seats and the image restores. But not fully recovered. It looks as if two frames superimposed on each other - restored and transferred. In what may be an error and what should I do? Thanks.

  • I am not sure I completely understand your description, you have two boards running the same software and one of them has a corrupted output? Perhaps a picture of your image output may help to point in the right direction.

  • My program encrypts and decrypts video. I will try to make a frame.Of couse, it will be better to show my mistakes. 
    Now I have an idea  to convert vpbe from Vid0 to Osd0.
  • I have prepared images. In the OSD0, as it is now even become worse. When Vid0 picture somewhat better and more clear that like pixels returned to their places.Something I doing wrong, but that it did not understand.
     Please help.
    Igor.
    Before processing
    After...
  • If this is a custom algorithm causing the corruption it would be hard to say what could be wrong, as I know nothing about what the algorithm is actually doing internally. Since you are seeing vertical lines that indicates that whatever is corrupting the image is aware of the image width and is accessing the image array periodically by that width, typically corruption in the display or cuased by cache will have horizontal lines. As to VID0 vs. OSD0, the big difference would be the color space, where typically OSD is expecting RGB data and the VID is expecting YCbCr data, so you need to use the window that matches your image data.

  • At one board encryption / decryption  algorithm  working correctly. The problem arises when the two boards connected. When I do turns on one line (like a mirror) and hand over to another card, too, recovering all right, but when I accidentally change the pseudo pixels, it fails. I can send the listing my program, the most recent edition is based on your example. It's very simple, but somehow does not want to work properly. I think there is a difference in the buffer with their own data and data obtained from outside. Please, help me.
  • How are the two boards connected, is this through Ethernet, or do you mean the video output of one board being fed into the next?

    If you mean the video output of one is being fed into the next your algorithm would have to be tolerant of minor differences in the video data since you are doing an digital -> analog -> digital conversion, the conversion will cause a lot of small changes in the image buffer which could be causing such corruption when using both boards.

  • Two boards connect  video output -> video input. Yes, you're right, the conversion digital -> analog -> digital probably cause changes in the video buffer, which I can not  understand. Is there  a document describing in detail the process or something that can advise?

    Tnank you,

    Igor.

  • I am not sure of a good document for this but when you convert to analog and back again there will be some noise induced into the signal, since no ADC or DAC is truly perfect you will see a variety of least significant bit (LSB) end changes just from the conversion processes themselves, in addition once the signal becomes analog it is subject to analog degredation, for example the cable and connectors used can have an effect on the signal causing a loss in quality and changes in the digital data received after a ADC. The image to a human eye may appear to be identical, but that is because the human eye is both not sensitive enough to notice some amount of LSB noise and the human eye is very good at autocorrecting for overall changes in the image that could be brought on by the conversion (brightness and such). In general it would be difficult to guarantee that the digital source buffer from the first board would be identical to the digital buffer that the second board received, you would have to have a much higher quality analog setup than this or even better a direct digital connection between the boards.

    Also note that if the data coming out of your encryption algorithm is no longer within the valid range of video data (16-235 for Y and 16-240 for C) than it will end up being clipped by the video encoding process, so this could also potentially be a source of algorithm failure.