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.

DRA829V: On the fly video rotation support using VPAC LDC block

Part Number: DRA829V

Hello TI team,

We have a use case for hardware accelerated video rotation on CSI Rx streaming output. First we were targeting VP Stream2 from CSI Rx to VPAC but section 6.10.4.1.4 in the TRM says that YUV input is not supported on VISS so it looks like a no go for us. Moreover there is no way mentioned for LDC to take input from SL2 memory of VPAC.

We're now targeting to use LDC in mem2mem mode to do a capture + mem2mem video pipeline; can you please provide your input on the following queries:

1. Can you confirm that LDC can't indeed be used on-the-fly by streaming input to VPAC?

2. Is such a use for VPAC LDC possible that we capture frames using CSI Rx into DDR, then pass those (linear) memory buffers to LDC for processing and eventually to our application (e.g. storage) so we get rotation on the captured frames.

3. If no. 2 is the intended way to use LDC in real time then how can we match data rate between CSI Rx output and LDC processing for streaming use-case?

Best regards

  • Hi Ahsan Hussain,

    Please find answers to your questions below.

    1, No, LDC cannot take input from on-the-fly streaming input.

    2, LDC in this case will work in the memory to memory mode, so once the full frame is available in memory from CSIRx, then we can trigger LDC to start processing. I did not get question about rotation. What kind of rotation are you looking for? 

    3, Typically CSIRX receives frame at fixe interval, like 30fps, but LDC will run at faster rate. So mostly, LDC will finish way before next frame is available. But before, can you tell us how many camera input you are processing? This is because CSIRX will output frames for all camera at 30fps fixed rate, but LDC processing will be serialized.  

    Regards,

    Brijesh

  • 2. We're looking for VPAC LDC affine transform to do rotation for offsetting the angle at which our remote sensor would be mounted.

    3. Interesting! So would that mean that we'd need to rate limit LDC block if, say, we're looking to process a single YUV stream running at 30fps?

    I'd think this can be serialized by running LDC at max possible rate, and invoking LDC on frame data in DDR as part of DMA video frame Tx completion callback(from CSI Rx to DDR). We would of course be assuming that LDC completes processing a frame before the next frame processing starts. Is such an approach viable for J721E? The frame size would be 720x1280p if that helps

  • Hi Ahsan,

    For #2, what is angle of rotation that you could rotate the image with? 

    No need to rate control. Yes, you could process LDC frame when CSIRx completes a frame.. It should be completely fine. 

    Regards,

    Brijesh

  • For #2 the angle of rotation can be anything between 0 to 360 degrees, chosen/configured before we start streaming. Would that be possible using affine transform?

    My concern with LDC was that it might not have processed the frame fully before the next frame arrives so LDC moves to next frame in DMA completion callback.

  • Hi Ahsan,

    LDC runs at much higher speed, so it will definitely finish for 720p frame before next frame arrives for 30fps frame rate. 

    I think it should be able to support rotation, let me confirm it. 

    Regards,

    Brijesh