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.

DM8148 VIP

Dear sirs,

My company is developing a camera on 8148 platform. The video front is a CCD that output via two channels. Each output channel is 12bit parallel interface and format is RAW BAYER.
 
The DM8148 have one camera interface and two VIP. In Chapter 11 of TMS320DM814x DaVinci Digital Media Processors Technical Reference Manual, it describes that the VIP only capture YUV and RGB format data. Can it capture 12bit raw data ? How to do it?

If yes, I want to use the two VIP to capture  raw data from the two channels, save raw data to DDR and then merge the two channels raw data into one complete raw data, and process the complete raw data with ISS.

If no, can you advice us a solution of two channels raw data on 8148?

Kind regards,

Yang Jun

Shenzhen Intelligent Imaging Electronics Co.,Ltd

  • If both channels use the same clock then you can simply connect both 12 bit channels together to form a 24 bt channel and capture the data directly to memory as though it is a 24 bit RGB.

    Your software will then need to process the packed data in memory.

    I am not sure if the ISS can process this memory directly or not, but will ask someone else to comment.

    It may be necessary to pre-process the raw data in some way before possibly passing to the ISS.

    BR,

    Steve

  • You may use two VIP port or use 24bit (if clock and syncs are identical) one VIP port.

    But it depends on the order of the data coming. If it is left and right, then you'd better read them using two ports.

    If you read the data in 24bit, then the data is stored in 3byte (for 2pix). In this case, you need to select depacking when you read the data for ISP.

    If you can properly allocate the data as one frame in DDR, then ISP can handle the data as a frame.

     

    Regards,

    Sang-Yong 

  • Dear Sang-Yong  

    Thanks for your reply!

    Clocks and syncs of two output channels are identical. One channel output top half of a image and the other channel output bottom half.

    If I use a RGB24bit VIP to capture two channel's image, can the ISP depack pixel? Or should I need my code to do depacking?

    If I use two VIPs to independently capture two outputs, Does use YUV16bit format to do?

     

      If you can properly allocate the data as one frame in DDR, then ISP can handle the data as a frame.

     In my case, how to properly allocate the data? Is this function  using RGB24 in one VIP or using YUV16 in two VIPs?

      Does 8148's DVSDK support ?

  • As your two data is from different location, you cannot use 24bit single port as the data would be mixed.

    You need to use 2port and you can use YUV16bit format. As the port is data blind (meaning it doesn't know whether it is YUV or RAW), you can use YUV16bit.

    If the bottom half image comes from the bottom, then you need to use negative line offset to store it properly (I am not sure whether it supports negative line offset).

    If it supports negative line-offset, then it would be simple math to find the right starting memory address of each frame to make a complete frame.

     

    I don't know whether DVSDK supports dual port inputs or not. If you don't get the answer on this mail chain, then please make another mail chain to get the answer.

     

    Regards,

    Sang-Yong

     

  • VPDMA can take negative line offset,

    2.6.1.7 Line Stride
    Bits 15:0 are the stride between lines in bytes at the external address. This value is added or
    subtracted based upon an adjustment using the current skip value. Operation of the external address pointer
    shall load the Source Address upon start of the transfer, then at the end of each line increment or decrement
    by the value computed using the Line Stride and Skip value for the line. The Line Stride must be aligned
    to the OCP word boundary so the lower 4 bits are ignored.


    Regards,
    Naito

  • Dear Natio Tomoyuki,  

    Thanks for your reply.  

    Now I know how to design video port section of hardware system. But I need your help on software:

    Q1, Does SDK support two VIP capture? To merge two channel images(up half part and down half part) into one complete image with VPDMA, do I need to modify codes? 

    Q2, I don’t have VPDMA's specs, How to get it? My company had signed NDA with TI. In my hand, there are SPRUH30_ISS.pdf, SPRS648_DM814x_DM_03_18_11.pdf and sprugz8-Digital Media Processors Technical Reference Manual.pdf.

    Thanks.

  • Hi,

    Answers for your questions.

     

    1. EZSDK supports single capture on IO expansion card. But there are plans to add dual capture. I am not sure about dates though. On Video conferencing daughter card SDK supports dual capture.

    2. For capturing two half of the buffers with differnt VIP port, you need to take care that clocks for both capture VIP port are synchronized. You dont need any VPDMA driver modification. You just need to queue address of first half of buffer to VIP0 and second half to VIP1. And once both are capture you need to see the timestamps and if both matches they are same buffer and you can go ahead to queue captured buffers to next component. For this your pixel clock for both VIPs should be synchronized as both buffers should be captured at same time to get proper time stamping.

     

    Regards,

    Hardik Shah

  • Dear Sir

      Thanks your reply.

      I see. thanks!