Forum Discussion
Altera_Forum
Honored Contributor
16 years agoHello,
The algorithm you suggest is reasonable but this is not what Altera's deinterlacer is doing at the moment: 1) each incoming field is stored in memory 2) to produce one progressive output frame, the core has to read back 4 fields (including the current field) For reference purpose here is how to compute the bandwidth requirements for the 9.0 motion adaptive deinterlacer for 1080i60 RGB (24-bits) -> 1080p RGB (24-bits) with double-buffering assuming that the data port with of the memory masters is 256 bits. 1) data sample packing efficiency: the Avalon MM master interfaces pack 10 pixels per 256-bit words (10 x 24 = 240 bits) which means 1.6 bits are wasted for each 24 bit pixel 2) bandwidth required to write the 1080i60 input to memory: 1920 x 540 x (24+1.6 bits) x 60 fields/s = 1.593 Gbit/s 3a) bandwidth required to read 4 fields from memory to output 1080p30 (input frame rate = output frame rate) 1920 x 540 x 4 x (24+1.6 bits) x 30 frame/s = 3.185 Gbit/s 3b) bandwidth required to read 4 fields from memory to output 1080p60 (input field rate = output frame rate, smoother algorithm but may cause shimmering) 1920 x 540 x 4 x (24+1.6 bits) x 60 frame/s = 6.37 Gbit/s Total for 1080p30: 1.593 + 3.185 = 4.778 Gbit/s Total for 1080p60: 1.593 + 6.37 = 7.963 Gbit/s Motion values are stored and read back from external memory if motion bleed is on. This will add: 4) motion sample packing efficiency the Avalon MM master interfaces pack 32 motion values per 256-bit words (32 x 8 = 256 bits) which means there is no waste 5a) bandwidth required to write a motion field AND read a motion field assuming a 1080p30 output: 2 x 1920 x 540 x (8 bits) x 30 frame/s = 0.498 Gbit/s 5b) bandwidth required to write a motion field AND read a motion field assuming a 1080p60 output: 2 x 1920 x 540 x (8 bits) x 60 frame/s = 0.996 Gbit/s Total for 1080p30 with motion bleed: 4.778 + 0.498 = 5.276 Gbit/s Total for 1080p60 with motion bleed: 7.963 + 0. 996 = 8.959 Gbit/s > This is about a 13% margin. Is this safe? It is recommended to plan designs with a 25% margin and to use long bursts (32 or 64) but it seems your margin is much better than necessary. > Does the de-interlacer work equally well for YUV (4:4:4) and RGB (4:4:4) Yes, the algorithm would give slightly different results but this would be difficult to spot. Kind regards, vgs --- edit: corrected bandwitch computation for the motion bleed