Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

How to capture interlaced frames(seperate fields)?

There are so many questions about 'how to capture interlaced video frames from VPFE". This thread is created to just address that.

If you wan to capture D1 interlaced video from VPFE, there is no need to connect previewer and reszier in chained mode with CCDC.

Simple way will be to capture from CCDC. You need to change ISR routines though.

For example, If you are using arago source(http://arago-project.org/git/projects/?p=linux-davinci.git;a=shortlog;h=refs/heads/r37),
you can change vpfe_isr() and vpfe_vdint1_isr() to capture interlaced video frames.

In addition to above changes, you need to change programming of CCDC's SDOFST register in CCDC driver module [ Refer to section 6.1.15 of VPFE user guide].

some related questions

What ISR changes needed?

Currently ISR's are designed to capture progressive frames by programming same buffer address in HW when it captures ODD field and EVEN field. That is the reason "field id" comes into picture in ISR.

You have to remove that optimization and program different buffers addresses in HW for every new field capture.


Where is the magic, in chained mode, that makes the resizer skip every other line?

Regarding resizer loosing one field, I believe HW is using certain algorithm to de-interlace using one of the field's. 

Does SDOFST(CCDC) register change behavior in chained mode, or only in one shot when we pull from SDRAM?

SDOFST applies only when data is written to SDRAM.

  • Hi Nag,

      Thanks for the quick reply. It sounds like you are describing setting up the driver to capture fields sequentially rather than interleaved. I will try that.

     

    I understand how to pass non-interlaced video in single shot mode, but is it possible to accomplish this in continuous mode? Continuous mode reduces DDR bandwidth considerably. The big picture for my application is that we need to do a dual resize on interlaced video, one res for display and one res for capture, and then pass these frames on to the DEI algorithm for a more sophisticated approach to deinterlacing.

     

    Based on your response "Regarding resizer losing one field, I believe HW is using certain algorithm to de-interlace using one of the field's", I am concerned that in continous mode it is not in fact possible to pass interlaced video through the previewer resizer chain. Is this correct?

    Thanks!

    Paul

  • Still not seeing where the resizer makes the decision to skip every other line during resize of interlaced (interleaved fields) video in chained mode. SDOFST seems to be the answer for resize transfers from SDRAM, but still clueless about how it's doing this in chained mode. Any pointers  would be appreciated.