mshr-h / motion_estimation_processor_4pixsearch

4-pix search based Motion Estimation Processor written in Verilog-HDL

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Motion Estimation Processor

Hardware implementation of Motion Estimation algorithm written in Verilog-HDL. It's currently under development.

Description

  • Fullsearch based motion estimation
  • Double acuracy, integer acucuracy motion estimation
  • No fractional motion estimation
  • Template Block: 16x16 pixels
  • Search Range : ±24 pixels

Required Tools

How to run Simulation

  1. Open memory/memory.xlsx
  2. Click 'Create Memory' button to create memory/memory_sw_A.txt, memory/memory_sw_B.txt, memory/memory_sw_C.txt, memory/memory_sw_D.txt for search range memory and memory_tb_A.txt, memory_tb_B.txt, memory_tb_C.txt, memory_tb_D.txt for template block memory
  3. Run make_tb.sh
  4. You will find the wave file testbench/***.vcd

How to synthesis Motion Estimation Processor

  1. Open memory/memory.xlsx
  2. Click 'Create Memory' button to create memory/memory_sw_A.txt, memory/memory_sw_B.txt, memory/memory_sw_C.txt, memory/memory_sw_D.txt for search range memory and memory_tb_A.txt, memory_tb_B.txt, memory_tb_C.txt, memory_tb_D.txt for template block memory
  3. Run make_mif.sh to generate mif files
  4. Open fpga/fpga_top.qpf in Altera Quartus Prime
  5. Compile it

Source Code Organization

The Motion Estimation Processor source code is organized as follows:

docs/       documentation
fpga/       fpga related files
memory/     memory dependencies
rtl/        RTL files for Motion Estimation Processor
testbench/  test suites
tools/      tool for creating mif file

Timing chart

Block diagram

References

  1. A study on fast motion estimation algorithm

About

4-pix search based Motion Estimation Processor written in Verilog-HDL

License:MIT License


Languages

Language:Verilog 96.4%Language:Shell 1.6%Language:Makefile 1.4%Language:Batchfile 0.7%