UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Observer gloryhunter1
Observer
496 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
Moderator
Moderator
398 Views
Registered: ‎11-09-2015

Re: Frame Buffer Deinterlaceing

Jump to solution

@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
Moderator
Moderator
425 Views
Registered: ‎11-09-2015

Re: Frame Buffer Deinterlaceing

Jump to solution

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 gloryhunter1
Observer
403 Views
Registered: ‎08-08-2018

Re: Frame Buffer Deinterlaceing

Jump to solution

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
Moderator
Moderator
399 Views
Registered: ‎11-09-2015

Re: Frame Buffer Deinterlaceing

Jump to solution

@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

Observer gloryhunter1
Observer
383 Views
Registered: ‎08-08-2018

Re: Frame Buffer Deinterlaceing

Jump to solution
Final question: The linux driver provided also doesn't deinterlace the data correct?
0 Kudos
Moderator
Moderator
287 Views
Registered: ‎11-09-2015

Re: Frame Buffer Deinterlaceing

Jump to solution

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
Observer gloryhunter1
Observer
265 Views
Registered: ‎08-08-2018

Re: Frame Buffer Deinterlaceing

Jump to solution

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
Moderator
Moderator
259 Views
Registered: ‎11-09-2015

Re: Frame Buffer Deinterlaceing

Jump to solution

@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
Observer gloryhunter1
Observer
252 Views
Registered: ‎08-08-2018

Re: Frame Buffer Deinterlaceing

Jump to solution
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
Adventurer
Adventurer
218 Views
Registered: ‎07-16-2009

Re: Frame Buffer Deinterlaceing

Jump to solution

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 gloryhunter1
Observer
212 Views
Registered: ‎08-08-2018

Re: Frame Buffer Deinterlaceing

Jump to solution

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

0 Kudos