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.

parameter meaning about dm355 EVM?

hi,all

    bootargs and bootcmd for YAFFS2(on DM355)

  #setenv bootargs ‘console=ttyS0,115200n8 mem=116M root=/dev/mtd/block3 rw rootfstype=yaffs2 ip=off video=davincifb:vid0=720x576\x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025K davinci_enc_mngr.ch0_output=COMPOSITE’

please tell me whether vid0=720x576x16 is expressed that per pixer is 16 bits or not? 

2500k is hoe to calculate?

if decode and encode output is bt656 signal,how to modify vid0,vid1 and osd0?

 

  • Considering the string

       vid0=720x576\x16,2500K

    The '720x576' is the resolution the system will initialize with; the 16 tells the system to initialize to 16 bits per pixel, the 2500K (the most important in my opinion) tells the system the size of buffer to allocate to vid0; I say this is the most important because the driver uses it to allocate the proper buffer size; once this is done, you can change this dynamically to a smaller buffer size but not to a larger one; to calculate the 2500K

       size of buffer = (resolution) x (bytes per pixel) x (# of buffers) = (720 x 576) x (2 bytes for each 16-bit pixel) x ( 3 for tripple buffering used w/ video windows) = ~ 2500k

    I hope this helps.

      

     

     

  • Thank for Juan Gonzales.

    as you say,I ask you that 3 for tripple buffering used w/ video windows sizes is how to calculate?you can give me to hint?

    Thank you!

  • Thank for Juan Gonzales.

    if input signal is BT656,per pixel is 8 bits,I ask you whether the system allocates the size of buffer to vide0 as follow or not?

    size of buffer = (720x576)X 8X(3 for tripple buffering used w/ video windows) = ~1250k

    I do not know whether I say to correct?please give me to hint?Thank you!

  • You are correct that in BT656 mode, the video input interface only allows for 8-bits to be transferred per each clock cycle, but the pixels are still 16-bit pixels (it just take 2 clocks to transfer each pixel).  When defining your buffer size in memory, you mut take into account that each pixel is 16-bits or 2 bytes in memory, this is why the correct computation is

       size of buffer = (resolution) x (bytes per pixel) x (# of buffers) = (720 x 576) x (2 bytes for each 16-bit pixel) x ( 3 for tripple buffering used w/ video windows) = ~ 2500k

    Let me know if this is still unclear.

  • Thank for Juan Gonzales.

    I would like to ask you why need 3 times for tripple buffering  of (720 x 576) x (2 bytes for each 16-bit pixel)?in other words,what is the purpose?

  • stanlerwang said:

    Thank for Juan Gonzales.

    I would like to ask you why need 3 times for tripple buffering  of (720 x 576) x (2 bytes for each 16-bit pixel)?in other words,what is the purpose?

    Two major reasons drive the need for tripple buffering

    1) The most commonly known reason in the video industry is that you do not want to be writing new video data to a buffer that is currently being displayed; otherwise viewer will see video tearing effect.  Therefore, it is common industry practice to use double buffering to eliminate this problem; this way one buffer is being writen while the other is being displayed; once a buffer has finished displaying (usually signaled by vsync interrupt), the next buffer which should be all ready to go is sent for display and at the same time the other buffer is populated with new data for the next frame.... this is often referred to as pin-pong approach, and highlights the need for a minimum of two buffers (although some implementation may use more)

    2) If you are doing decoding of MPEG streams, when decoding B-frames, sometimes decoder algorithm will need to decode the next frame before the B-frame; in such cases you will need to pass in another buffer (say I-frame) before getting the first buffer back. so theoretically, decoder can keep two buffers to work on; the decoder in this case is what actually writes valid video data to be displayed into the buffers.  Since the display driver needs to have a buffer which is not being worked on (writen with data) for proper display purposes, if the decoder can request to work on two, this highlights the need for 3 buffers.  If you are not doing MPEG encoding or decoding, you can get away with two instead of three.

    I hope this helps.