OpenASIC
    • \[\[global:header.categories\]\]
    • \[\[global:header.recent\]\]
    • \[\[global:header.tags\]\]
    • \[\[global:header.popular\]\]
    • \[\[global:header.users\]\]
    • \[\[global:header.groups\]\]
    • \[\[global:header.search\]\]
    • Register
    • Login

    H264 ENCODER RTL V2.0仿真教程

    Scheduled Pinned Locked Moved 新闻文档 | News & Documents
    6 Posts 6 Posters 21.1k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • K Offline
      KAol
      last edited by

      • 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.dat和bs_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

      Y J 2 Replies Last reply Reply Quote 0
      • Y Offline
        yafei @KAol
        last edited by

        @KAol bs_check.dat对应到H264标准中,是什么格式。bs_check.dat是如何转成BlowingBubbles_416x240_50.264, 不仅仅是加上sps,pps,slice_header这些吧,将BlowingBubbles_416x240_50.264第一个mb的编码结果提取出来,感觉跟bs_check.dat没有什么关系。也就是说,如何将bs_check.dat转成图片,进行可视化?

        W 1 Reply Last reply Reply Quote 0
        • W Offline
          WCE @yafei
          last edited by

          @yafei 我也有这个疑问。这个问题解决了吗?麻烦问下有没有将码流转换成 NAL 包的软件啊?谢谢!

          1 Reply Last reply Reply Quote 0
          • J Offline
            JimmyWu11054
            last edited by

            @KAol 您好,有成功仿真,非常感謝!也有想請教的地方是,我有嘗試使用JM來進行編碼,但發現使用此encoder(V2.0)的結果與JM編碼結果有差異,想詢問會是有哪些原因?謝謝!

            1 Reply Last reply Reply Quote 0
            • J Offline
              Jett @KAol
              last edited by

              @KAol 我有个小疑问,执行f264.exe 后面参数 -f 给了10。 但是tb_top.v这个文件确实`define FRAME_TOTAL 100。这个地方是不是没有完全匹配上?

              D 1 Reply Last reply Reply Quote 0
              • D Offline
                damian @Jett
                last edited by

                @Jett 应该是两者统一就好了,不然仿真会报错

                1 Reply Last reply Reply Quote 0
                • 1 / 1
                • First post
                  Last post
                Copyright © 2016 OpenASIC.XinKai
                VIP Lab @Fudan University | XK Silicon