H264 ENCODER RTL V2.0仿真教程



    • Download the H264 Video Encoder RTL IP Core V2.0

    • 解压后将得到四个文件夹, 其中“sw”用于产生测试向量,“sim”是仿真文件,“rtl”是IP Core的所有代码,“lib”是memory行为级模型
      0_1564742014688_43b466b6-caa5-4a37-9786-3526a28ec0d2-image.png

    • 进入“sw”文件夹中,通过命令行修改参数,示例如下:
      f264.exe -i BlowingBubbles_416x240_50.yuv -o BlowingBubbles_416x240_50.264 -r BlowingBubbles_416x240_50_rec.yuv -w 416 -h 240 -g 5 -f 10 -q 27
      其中,
      -i:待编码的YUV文件位置
      -o:输出码流文件位置
      -r:输出重建帧位置
      -w:YUV序列宽
      -h:YUV序列高
      -g:GOP长度
      -f:编码帧数
      -q:QP值

    • 在windows下执行f264.exe文件,运行结果如下:
      0_1564742355455_6c2de939-3ec3-456c-ae9d-ac6ffd3f590b-image.png
      除了码流文件和重建帧文件外,还将产生cur_mb_p4.datbs_check.dat两个文件。前者作为硬件编码器的YUV输入,后者作为软硬件交叉验证的测试输入。
      将上述两个文件放到“/sim/top_testbench/tv”下。

    • 修改“tb_top.v”中的参数,确保与软件参数一致,示例如下:
      `define FRAMEWIDTH 416
      `define FRAMEHEIGHT 240
      `define GOP_LENGTH 5
      `define FRAME_TOTAL 100
      `define INIT_QP 27
      根据需要,可以打开“tb_top.v”中的dump开关。

    • 运行仿真,命令行输入“vsim -c -do sim.do”,仿真正确应如下图所示:
      0_1564742381297_b043b593-b003-4d6c-a285-868aa3cb5679-image.png
      若软硬件参数不一致或出现其他bug,仿真会停止,如下:
      0_1564742388738_f8003742-1d1a-4e90-bb1f-220fbce0ac9e-image.png