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.

DM365 420 input to 420 output Image resizeing

Hi All,

I just want ot verify and make sure some stuff about the resizer module:

After getting a buffer from the decoded stream (420 buffer format)
I want to feed that buffer to the resizer, but according to the data sheets
when in 420 mode the data is still 16 bits wide so i had to expand the buffers (Y and C)
which takes a long time to do: i.e

from the format recived from the decoder
+------------------------------------+
|  Y0 | Y1 | Y2 | Y3 |.............|Yn|
+------------------------------------+

To the input format of the resizer
+-------------------------------------------------------------+
| Y0 | X | Y1 | X | Y2 | X | Y3 | X |..........................|Yn|
+-------------------------------------------------------------+
X - dont care

same has to be done to the cb/cr vector
This process works good but the probelm is that the buffer expantion process takes a long time (100 ms - lots of coping)
So it makes impossible to stream a resized 420 video.

I wanted to know if this is correct ?
and if so is there some way to do this processing work fast so it will be fast
enough to stream a resized 420 video ?

Thanks

 

  • Hi,

    You dont need to generate 16 bit Y data per pixel of 16 bit CbCr as you have done. Resizer on DM365 can take YUV420 semi planar mode which means the data coming out of H.264 decoder can be directly given into the resizer without any changes.

    Do you see some problem if you did not insert the dummy data? What resizer driver are you using?

    Regards,

    Anshuman

    PS: Please mark the post as verified, if you think it has answered your question. Thanks.

  • Hi

    At the moment i have wrote a kernel module that allows me to play with the registers
    So i configure the IPIPEIF,RzB from the registers.

    What i do is configure the RzB to get data from the IPIPEIF (not the IPIPE)
    this is my configuration:

    IPIPEIF Registers:

    CFG1 = 0x40D    -   sdram yuv data, single shot.
    HNUM = 0x2E0 (736)
    VNUM = 0x240 (576)
    ADDRU = some address
    ADDRL = some address
    ADOFS = 0x2E

    Resizer registers:

    SRC_FMT0 = 0x01  -  IPIPEIF input
    SRC_FMT1 = 0x02  -  Y process 420 image
    SRC_VSZ = 0x23F - processing width 576
    SRC_HSZ = 0x2DF - processing width 736 
    GCK_MMR = 1
    GCK_SDR = 1
    RZB_ENABLE = 1
    RZB_420 = 3
    RZB_O_VSZ = 0x23F - processing width 576
    RZB_O_HSZ = 0x2DF - processing width 736
    RZB_SDR_Y_OFT - 0x2E0
    RZB_SDR_Y_PTR_E - 0x240

    No resizing is used for this example.
    configure the address of input and output and use single shot mode.
    This configuration works only if the input data is expanded like i explained before.
    If i dont expand the data i get only half of the image duplicated twice.

    The data sheet said that in 420 mode the data is still 16 bits and must be supplied like this:     [Y0|00], [Y1|00] ...

    Thank you for helping