H.264 Motion Estimation Engine v1.0 Engine v1.0 User Guide [optional] UG453 (v1.
R Xilinx is disclosing this user guide, manual, release note, and/or specification (the “Documentation”) to you solely for use in the development of designs to operate with Xilinx hardware devices. You may not reproduce, distribute, republish, download, display, post, or transmit the Documentation in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of Xilinx.
Table of Contents Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Schedule of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Schedule of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Preface: About This Guide Guide Contents . . . . . . . . . . . . . . .
Appendix: Supporting Information Input Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Directory Tree Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Regression Test Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schedule of Figures Chapter 1: Introduction Chapter 2: Installing the H.264 Motion Estimation Engine Core Chapter 3: Designing with the H.264 Motion Estimation Engine Core Figure 3-1: H.264 Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Figure 3-2: Motion Estimation Engine Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Chapter 4: Simulating the H.
H.264 Motion Estimation Engine www.xilinx.com UG453 (v1.
Schedule of Tables Chapter 1: Introduction Chapter 2: Installing the H.264 Motion Estimation Engine Core Chapter 3: Designing with the H.264 Motion Estimation Engine Core Chapter 4: Simulating the H. 264 Motion Estimation Engine Core Chapter 5: Verifying the System Table 5-1: Verifcation Level Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Appendix: Supporting Information Table A-1: Regression Test Summary . . . . . . . . . . . . . . . . . . . . . . . . . . .
H.264 Motion Estimation Engine www.xilinx.com UG453 (v1.
R Preface About This Guide This document is intended to guide the user through all aspects of installation, demonstration, simulation, verification, and general usage of the Motion Estimation Engine core. It should be read in conjunction with the Xilinx Motion Estimation Engine Product Specification (DS648).
R Preface: About This Guide Typographical The following typographical conventions are used in this document: Convention Meaning or Use Example Courier font Messages, prompts, and program files that the system displays speed grade: - 100 Courier bold Literal commands that you enter in a syntactical statement ngdbuild design_name Commands that you select from a menu File → Open Keyboard shortcuts Ctrl+C Variables in a syntax statement for which you must supply values ngdbuild design_name Refe
R Conventions Convention Meaning or Use Example Red text Cross-reference link to a location in another document See Figure 2-5 in the Virtex-II Platform FPGA User Guide. Blue, underlined text Hyperlink to a website (URL) Go to http://www.xilinx.com for the latest speed files. H.264 Motion Estimation Engine UG453 (v1.1) April 23, 2008 www.xilinx.
R Preface: About This Guide 12 www.xilinx.com H.264 Motion Estimation Engine UG453 (v1.
R Chapter 1 Introduction This user guide is required reading for the engineer using or considering using the Xilinx® Motion Estimation Engine core. The release of this product is given in ZIP file form. About the Core The Xilinx Motion Estimation Engine core accepts input parameters on a frame and macroblock basis and a stream of pixels in macroblock format and generates output motion vectors, Sum-of-Absolute Difference (SAD) values, and coded block pattern with best motion vector for each block.
R Chapter 1: Introduction Feedback Xilinx welcomes comments and suggestions about the Motion Estimation Engine core and the accompanying documentation. For comments or suggestions about the Motion Estimation Engine core, submit a WebCase from www.xilinx.com/support. Be sure to include the following information: • Product name • Core version number • Explanation of your comments For comments or suggestions about this document, submit a WebCase from www.xilinx.com/support.
R Chapter 2 Installing the H.264 Motion Estimation Engine Core This chapter provides instructions for installing the H. 264 Motion Estimation Engine core. The Motion Estimation Engine fixed netlist is provided under the Xilinx LogiCORE™ Site License Agreement, which conforms to the terms of the SignOnce IP Site License standard defined by the Common License Consortium. Install the core by performing a manual installation after downloading the core from the web.
R Chapter 2: Installing the H.264 Motion Estimation Engine Core 4. Allow the extractor utility you use to overwrite all existing files and maintain the directory structure defined in the archive. See “Appendix , “Supporting Information”” for an illustration of the correct directory tree structure. Netlists The netlists given in this release of the H. 264 Motion Estimation Engine are all in the \ReleasedNetlists directory. They have been synthesized using Synplify_Pro 8.8.0.
R Chapter 3 Designing with the H.264 Motion Estimation Engine Core This chapter describes how to include a Motion Estimation Engine core into the next hierarchy of system architecture. VHDL Template Files To help the user design the core into his system, the release provides the following template files. Neither the core source code nor the HDL libraries have been provided in source form but in object code format for simulation purposes. Note: These VHDL template files are for reference only. 1.
Chapter 3: Designing with the H.264 Motion Estimation Engine Core R Motion estimation requires a definition of a search region and a search scheme to find the best match (motion vector) within a search region. Rate-Distortion theory also takes into consideration vectors that may be close together, but not necessarily the best SAD value in finding the optimal motion vector to choose for entropy coding.
R Motion Estimation in the H.264 Encoder X-Ref Target - Figure 3-2 External Memory External Memory Controller Reference Frame Frame Parameters Current Macroblock Macroblock Parameters Sliding Window Controller (112x128) FULL PEL Motion Estimation Search Variable Block Size Decision Parameters Out SADs MVs UG435 02 091007 Figure 3-2: Motion Estimation Engine Block Diagram H.264 Motion Estimation Engine UG453 (v1.1) April 23, 2008 www.xilinx.
Chapter 3: Designing with the H.264 Motion Estimation Engine Core 20 www.xilinx.com R H.264 Motion Estimation Engine UG453 (v1.
R Chapter 4 Simulating the H. 264 Motion Estimation Engine Core This chapter describes a test bench architecture that was created in the ModelSim environment for simulation of the Motion Estimation Engine core. It does not describe the verification platform. The simulation described may be used for visualization of the I/O signals at the periphery of the cores.
R Chapter 4: Simulating the H. 264 Motion Estimation Engine Core 4. Testbench source file: /HDL/LowCost_MotionEstimation/MotionEstimation/Testbench/ MotionEstimation_TB.vhd Running the Test Bench To run the test bench: 1. Double-click on the vsim_gui.bat file. This spawns the ModelSim GUI. Two wave windows are given. One (MotionEstimation_user) is meant to contain userdefined signals. The user may use this window to view any internal signals of his choice.
R Chapter 5 Verifying the System This chapter describes the verification environment delivered with the Motion Estimation Engine core. Ultimately, the system is verified by using long regression tests with several different resolution input sequences. The output of the hardware from these tests must exactly match the output given by the reference software that runs with the same stimulus.
R Chapter 5: Verifying the System Running the Verification Tests There are five tests that can be run by the user. Each test has varying characteristics, including varying video formats, parameter settings, etc. A description of the tests is given in the Appendix, “Supporting Information” and is also summarized in the batch scripts listed under item 3 (Verification scripts) above. Verification is automated down to running the simple editable Level1 batch script. It contains the command line: perl -I"..\..
R Verification Notes The command line in the batch script invokes the following processes in this order: 1. A DOS window is spawned. 2. A Perl script (MotionEstimation_Verification.pl) is called, which sets up the required test(s) in order with the appropriate parameters. This Perl script calls functions in the general-purpose test bench support module that runs the reference code: \Software\ArchC_Rev3\bin\lencod.exe 3. The executable uses the video sequences in \InputSequences as input. 4.
R Chapter 5: Verifying the System 26 www.xilinx.com H.264 Motion Estimation Engine UG453 (v1.
R Appendix Supporting Information Input Sequences The files provided as video input source files are: \InputSequences\city_4cif_30\city_4cif_30.hdr \InputSequences\city_4cif_30\city_4cif_30.yuv \InputSequences\football_cif_30\football_cif_30.hdr \InputSequences\football_cif_30\football_cif_30.yuv \InputSequences\foreman_qcif_30\foreman_qcif_30.hdr \InputSequences\foreman_qcif_30\foreman_qcif_30.yuv \InputSequences\shields_720p_60\shields_720p_60.hdr \InputSequences\shields_720p_60\shields_720p_60.
R X-Ref Target - Figure A-1 Figure A-1: Directory Tree Structure References 1. 28 ITU-T/ISO/IEC, Advanced Video Coding for Generic Audio Visual Services, H.264 03/2005. www.xilinx.com H.264 Motion Estimation Engine UG453 (v1.