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.

Problems about DM365 vpfe process 5M pixel raw data picture

Greetings;

Now I'm working on a 5M pixel camera project.  The 5M raw data size is 2592*1944 . But the image pipe input is limited to 2176 pixels per horizontal line in the dm365VPFE and I don't want to lose any information of the raw data. So that's the problem.

As the vpfe doc mentioned, the line width decimator can be used but some information will lost. I want to divide the raw data into 2 parts and pass them to the vpfe individually. But the interface to the raw data is not provided directly in the v4l2 capture driver. Is anybody have some samples about that or have better ideas?

Thanks!

Best regards;

  • Please see Figure 2 (represents hardware block diagram of VPFE) in VPFE Uder Guide; from this figure and the corresponding document sections for each of the hardware blocks, you should be able to determine that you can capture data from external device thru IPIPEIF, thru ISIF and to DDR2 ( camera sensor -> IPIPEIF -> ISIF -> DDR2).  In this path, you are not restricted to 2176 line length in IPIPE block.  As a matter of fact, I believe your only restriction would be 16-bit pixels and 32K pixels in horizontal (line length) direction imposed by ISIF.  Once the data is in DDR2, you can choose to feed data from DDR2 back into IPIPE (w/ 2176 pixels line length) in two parts as you suggested.

    That said, by default the video capture driver is likely feeding data from ISIF directly into IPIPE and presenting captured data after IPIPE back to user space application (why do extra reads and writes to/from DDR2 if you do not need to for smaller sizes).  You can try chaging the pixel format to RAW via one of the driver ioctls (see encode demo included with DVSDK) and see if application gets RAW data back (implying path from ISIF to DDR2 ).  If this does not work, you may need to change video capture driver (adheres to V4L2 Linux video standard) to add support for the hardware paths you need.

  • Thanks Juan:

    After modified the v4l2 driver, the 5M pixel raw data through ccdc is avaible now.  Now I have to divide the picture into 2 parts and send them to ipipe.

    Cause the doc of the 365 previewer is not avaible now,  I checked the example codes in the PSP examples and kernel previewer drivers and have some problems.

    1.In the PSP example codes, the previewer is configured to continous mode and the data is automatically output from previewer. That means the data flow is  the path 2 as the capture driver document noticed.  Does that means configure the previewer to single shot mode is needed ?

    2.ioctl PREV_PREVIEW is used to submit previewer tasks. The image size is 2595*1944. If the data is been divided into 2 parts, the data is not continously. Is the previewer engine support non-continously input like dma calls?

    Thanks;

    Best Regards;

     

     

  • HI Leon,

    Please note that there is not a separate preview document.  Preview hardware is part of IPIPE and is included in the VPFE User Guide.  In your particular case, you want to make sure "CFG1.INPSRC2" register field is set appropriately (e.g. input source = SDRAM) and you want to make sure you have the proper information programmed into the registers that define the global frame ( ADDRU + ADDRL = SDRAM address of global frame and will likely change since you need to process frame in two parts).  You should be able to operate in either on-shot or continous mode when reading from SDRAM.

    I hope this helps.

  • Dear Leon:

    I have one problem for get 5M raw data.

    V4L2 S_FMT set 2595*1944,  S_CROP set 1920*1080, the image is right

    V4L2 S_FMT set 2595*1944,  S_CROP set 2595*1944, the image is black(data is zero)


    so, what condition I can do?

    thank tou