Documents

An FPGA Implementation of Motion Estimation Algorithm for H 264AVC

Description
An FPGA Implementation oI Motion Estimation Algorithm Ior H.264/AVC M. Kthiri, P. Kadionik, H. Lévi IMS laboratory - ENSEIRB-MATMECA, University Bordeaux 1, CNRS UMR 5218 351, Cours de la Libération, 33 405 Talence Cedex, France e-mail: kthiri¸enseirb-mat meca.Ir, kadionik¸enseirb- mat meca.Ir, herve.levi¸ims-bordeaux.Ir H. Loukil, A. Ben Atitallah, N. Mas moudi University oI SIax, High Institute oI Electronics and Communicat ion, BP 868, 3018 SIax, TUNISIA e-mail: ahmed.
Categories
Published
of 4
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Transcript
                                                                        Abstract   —   The H.264/AVC standard achieves much higher coding efficiency than previous video coding standards. Unfortunately this comes with a cost in considerably increased complexity at the encoder mainly due to motion estimation. Therefore, various fast algorithms have been proposed for reducing computation but they do not consider how they can be effectively implemented by hardware. In this paper, we propose a hardware architecture of fast search block matching motion estimation algorithm using Line Diamond Parallel Search (LDPS) for H.264/AVC video coding system. This architecture presents pipeline processing techniques, minimum latency, maximum throughput and full utilization of hardware resources. The VHDL code has been tested and can work at high frequency in a Xilinx Virtex-5 FPGA circuit.   H.264/AVC, Motion estimation, VHDL, FPGA                                                                                                                      Current FramePrevious reference Frame VW   pp Search WindowCandidate MBCurrent MB LH  j i                                                                           i j nmSAD                                                                                                                                                                                                                                                                                                                                                                                     1234            First iterationSecond iterationThird iterationFirst iterationSecond iterationThird iterationLinear search Selection of the direction of research Linear search Selection of the direction of research                                                                                                                                             StartSmall Diamond placed in the centre (0,0)Calculate the SADs of various positions of the small diamond Calculate the SADs of various positions of the line search ENDDeterminate Line search   Compare SADsCompare SADs Minsad = Sad of centre of small diamondMinsad> Previous Minsad of small diamond yesnoyesno                                                                                                                     CLK Reset_n Data_in 32 bits LoadingmoduleSearchmodule Pix_cur(0)Pix_cur(255) 8 bits8 bits Pix_ref(0) 8 bits Pix_ref(1115) 8 bits MVX_MINMVY_MINMIN_SAD Done_chargement  X_MIN Done_LDPSStart_top_level                                                          A.Loading module                    Reference search Memory Control unit Data_in 32 bits Start_fen_ref  Start Start_MB_cur  Done_load BLOCK to store the data_in_ref in a register of 288 bits (36 pixels)Refernece search area memory 36x31(1116 pixels) Data_int288 bitsWrenAdress5 bits 288 bitsData_out BLOCK to store the data_in_cur in a register of 128 bits (16 pixels)Current macroblock area memory 16x16(256 pixels) Data_int128 bitsWren Data_out_cur 128 bits adress4 bits Current Macroblock memory adress                                                                                                       Pix3 Pix2 Pix1 Pix0Pix3 Pix2 Pix1 Pix0Pix7 Pix6 Pix5 Pix4Pix7 Pix6 Pix5 Pix4 Pix3 Pix2 Pix1 Pix0Pix11Pix10 Pix9 Pix8Pix11Pix10 Pix9 Pix8 Pix7 Pix6 Pix5 Pix4 Pix3 Pix2 Pix1 Pix0Pix15Pix14Pix13Pix12   Pix15Pix14Pix13Pix12Pix11Pix10 Pix9 Pix8 Pix7 Pix6 Pix5 Pix4 Pix3 Pix2 Pix1 Pix0 First clock cycleSecondclock cycleThird clock cycleFourth clock cycle                                                                                                                                                             P3P2P1P0P3P2P1P0P7P6P5P4P7P6P5P4P3P2P1P0P11P10P9P8Pi11P10P9P8P7P6P5P4P3P2P1P0P15P14P13P12P15P14P13P12P11P10P9P8P7P6P5P4P3P2P1P0 First clock cycleSecondclock cycleThird clock cycleFourth clock cycle P19P18P17P16P19P18P17P16P15P14P13P2P11P10P9P8P7P6P5P4P23P22P21P20P23P22P21P20P19P18P17 P16P15P14P13P12P11P10P9P8P27P26P25P24P31P30P29P28P35P34P33P32P3P2P1P0P7P6P5P4P3P2P1P0P23P22P21P20P19P18P17P16P15P14P13P12P11P10P9P8P7P6P5P4P3P2P1P0P27P26P25P24P23P22P21P20P18P16P14P13P12P11P10P9P8P6P5P4P3P2P1P27P26P25P24P0P15P17P19P7P31P30P29P28P23P22P21P20P18P16P14P13P12P11P10P9P8P6P5P4P3P2P1P27P26P25P24P15P17P19P7P31P30P29P28P0 P35P34P33P32 Fifthclock cyclesixthclock cycleseventh clock cycleeighth clock cycleninthclock cycle           B.Search module            Pix_cur(0) Search module SADmodule Extractionmodule Pix_ref_MB(0)Pix_ref_MB(255) Comparator  MVX_MINMVY_MINMIN_SAD Control unit SAD CLK Reset_n Done_chargement MVX   MVY X Done_chargement   X_MIN Start_bloc_SADStart_bloc_comp Pix_cur(255)Pix_ref(0)Pix_ref(1115)                                                                                                                                        1)Extraction module                                                                               Pixel0Pixel1Pixel7Pixel8Pixel9Pixel10Pixel37Pixel46Pixel36Pixel43Pixel44Pixel45Pixel170Pixel189Pixel206Pixel225Pixel252  Pixel261 Pixel288Pixel297Pixel324Pixel333Pixel0Pixel0Pixel0Pixel0Pixel0Pixel188Pixel187Pixel223Pixel259Pixel295Pixel331Pixel224Pixel260Pixel296Pixel332Pixel190Pixel226Pixel262Pixel298Pixel334Pixel1045Pixel1080Pixel1044Pixel1081Pixel1087Pixel1051Pixel1052Pixel1088Pixel1053Pixel1089Pixel1054Pixel1090Pixel1079Pixel1115Pixel359Pixel323Pixel287Pixel251Pixel215Pixel71Pixel35Pixel11Pixel47Pixel191Pixel227Pixel263Pixel298Pixel335Pixel1055Pixel1091 Center of search (0,0) Macroblock at the center Macroblock at right positionMacroblock at hight positionMacroblock at left positionMacroblock at low position           2)SAD Module              Start_SAD 16 Bytes16 Bytes   PE0 Difference0 Abs01Byte1Byte PE1 Difference1 Abs1 PE15 Difference15  Abs15 Accumulator Adder  1Byte1Byte1Byte1Byte Data_out_cur  Data_out_ref                                                                                                                                                 3)Comparator module                                                                                                                                                                                            Resource TypeUsagePercent of FPGAslices LUTs    slices Registers    Total Memory (Kb)    Numbers of IOBs                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

Antonio Gedeão

Aug 29, 2017

Sms

Aug 29, 2017
Search
Tags
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks
SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!

x