cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Observer
Observer
814 Views
Registered: ‎08-08-2018

Frame Buffer Deinterlaceing

Jump to solution

I am trying to understand the detials of how the Framebuffer handles the FID. Reviewing the code added in 2018.3 it seems like there is a FID offset. Is stride just configured so that the framebuffer will automaticalyl stripe the data into memory (meaning the the odd and even are just stored in memory as a "progressive" frame). Or is it just two seperate frame? Nothing appears to have the detials of the implemenation.

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Moderator
Moderator
716 Views
Registered: ‎11-09-2015

@gloryhunter1 wrote:

Based on your comment in memory we would see a 720x240 @ 60Hz progressive video? The Frame buffer does not attempt to deinterlace based on the position and instead just reduces the number of horizontal rows. 

Is that correct?


Yes correct. There is no deinterlacing done by the Video frame buffer. It should only store the frame/fields


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**

View solution in original post

10 Replies
Highlighted
Moderator
Moderator
743 Views
Registered: ‎11-09-2015

HI @gloryhunter1 

I am quite sure the Video Frame buffer is storying each field individually. So it a frame = a field


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Highlighted
Observer
Observer
721 Views
Registered: ‎08-08-2018

In this case we have a 720x480 interlaced Video Input @ 30Hz. We have stripped off the front and back poarchs so we  only have active video. 

We provide 4:2:2 data at one pixel per clock cycle to the Video in to AXI-S. We have configured that AXI-S to convert to the 4:2:2 stream data. It then provides this to the Frame buffer with Field ID.

Based on your comment in memory we would see a 720x240 @ 60Hz progressive video? The Frame buffer does not attempt to deinterlace based on the position and instead just reduces the number of horizontal rows. 

Is that correct?

0 Kudos
Highlighted
Moderator
Moderator
717 Views
Registered: ‎11-09-2015

@gloryhunter1 wrote:

Based on your comment in memory we would see a 720x240 @ 60Hz progressive video? The Frame buffer does not attempt to deinterlace based on the position and instead just reduces the number of horizontal rows. 

Is that correct?


Yes correct. There is no deinterlacing done by the Video frame buffer. It should only store the frame/fields


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**

View solution in original post

Highlighted
Observer
Observer
701 Views
Registered: ‎08-08-2018
Final question: The linux driver provided also doesn't deinterlace the data correct?
0 Kudos
Highlighted
Moderator
Moderator
605 Views
Registered: ‎11-09-2015

Hi @gloryhunter1 

Yes correct.

However, maybe if you use a gstreamer pipe there might be some plugins which will do it in SW


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Highlighted
Observer
Observer
583 Views
Registered: ‎08-08-2018

I believe that is the path we are looking at. The was a small amount of hope that the Linux Drive place the drive into memory to make it look like a progressive frame.

 

0 Kudos
Highlighted
Moderator
Moderator
577 Views
Registered: ‎11-09-2015

@gloryhunter1 wrote:

I believe that is the path we are looking at. The was a small amount of hope that the Linux Drive place the drive into memory to make it look like a progressive frame.

 


Well this would be an inefficient way of using the memory for most cases

I am not sure about the linux driver but maybe you can play with the stride for this. You might need to modify the driver for this.


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Highlighted
Observer
Observer
570 Views
Registered: ‎08-08-2018
I believe you could modify it. I think there was some issues with the how the DMA's expect the allocated memory to be created.

I understand the baremetal world much better than the Linux. But I image that both progressive and an interlaced frame store 1 780x480 frame per 30Hz.

So if you allocate that size and then write data in on odd rows and then once you complete the Odd Frame write it into the Even Rows and only after that marking the frame as Done. This would cost almost nothing from a processor perspective.

Anything you could share on why it would be inefficient would be great.
0 Kudos
Highlighted
Adventurer
Adventurer
536 Views
Registered: ‎07-16-2009

Hi @gloryhunter1 ,

the issue is not the effectivity but the quality of the resulting video, which is very bad for dynamic scenes. In interlaced video, each field is sampled in different time. If you deinterlace by simply putting two frames together, you actualy showing two different scenes at once.

Best Regards,

Jan

0 Kudos
Observer
Observer
528 Views
Registered: ‎08-08-2018

That makes sense. I believe we were considering a Weave de-interlacing but I can see that might cause an issue.

0 Kudos