• 文件编码H264编解码器性能测试


    本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~

        

    H264编码器性能测试

        如今,H264已经成为视频行业的标准规范,企业中应用比较多的当数X264,开源,资源消耗又比较少。

        首先,分析一下罕见的三大开源H264编码器:JM、X264、T264

        JM H264的官方测试源码,实现了264的全部特性,但程序结构冗长,编码复杂度高,不推荐贸易应用。

        X264 摈弃了264中对编码性能贡献小,但计算复杂度极高的新特性,推荐贸易应用。

        T264 编码与X264类似,但是解码器只能解T264编码的,有点坑。

        在应用H264编码器X264之前,我们先对其性能进行测试,以肯定是否需要再次优化。

        测试的流程如下:

        

    1、到X264官网下载264源码

        官方网站:http://www.videolan.org/developers/x264.html

        GIT地址:git://git.videolan.org/x264.git(注,X264最原始的源码都是在linux下编译的,如果想要windows版的,请看下面)

        windows版X264地址:http://doom10.org/index.php?topic=3.0(注:第三方移植的,自行判断是不是最新)

        

    2、根据现实的业务需要,制订响应的测试标准

        由于X264是根据H264的标准制造的,所以,H264标准以及之前标准都是适用的。现实应用中,会有不同的需求,比如说监控对帧率要求比较低,再比如说网络传输对码率要求比较高,又比如说在移动平台上应用对CPU MEM要求比较高。

        下面是视频直播中应用到的:

        分 辨 率:160×120  320×240  640×480

        帧    率:10  15  20  25  30

        码    率:128  160  256

        编码延时:<= 200ms

        码率精度:<= 15%

        兼 容 性:标准H264解码器可以解码

        操作系统:winXP  win7-x86  win7-x64

        CPU     :AMD Athlon II X2 240(高配)  AMD SP145(低配)

        MEM     :2GB

        

    3、新建测试项目,调用X264库

        新建VC项目,读取YUV序列文件(下面会分析文件起源),编码,输出到H264文件

        

    4、网上查找YUV序列的结构,懂得都有哪些格式

        YUV结构分析英文版:http://www.fourcc.org/yuv.php

        每日一道理
    翻开早已发黄的页张,试着寻找过去所留下的点点滴滴的足迹。多年前的好友似乎现在看来已变得陌生,匆忙之间,让这维持了多年的友谊变淡,找不出什么亲切感,只是偶尔遇上,淡淡地微笑,如今也只能在这发黄的页张中找寻过去的那些让人难忘的,至少我可以握住这仅剩下一段的“丝线头”……

        YUV结构分析中文翻译版:http://blog.csdn.net/SearchSun/article/details/2443867

        在这些YUV格式中,比较罕见的是YUV420,一帧YUV420在文件中的排布如下,以CIF图像(352*288)为例:

        Y信息 352*288 B

        U信息 352*288/4 B

        V信息 352*288/4 B

        算出一帧数据的巨细 = 352*288 +  352*288/4 +  352*288/4 ,罕见写作 352*288*3/2

        

    5、网上查找YUV序列文件,或者自行制造

        YUV测试序列下载地址:http://dpinglee.blog.163.com/blog/static/144097753201242254639795/ (这个是目前网上能找到的最全面的)

        从上面的链接中找到的最为规范的要数这个:http://sp.cs.tut.fi/mobile3dtv/stereo-video/

        YUV格式有很多种,再加上不同的参数配置,又会有很多种,下载前必定要看清晰是否是自己需要的格式,因为这些测试序列文件平日都会比较大的

        

    6、网上查找YUV序列文件播放器,验证YUV文件的有效性 

        找到YUV序列文件以后,需要先验证一下,文件的正确性,可应用YUV播放器--YUViewer

        YUViewer下载地址:http://ishare.iask.sina.com.cn/f/21603725.html

        

    7、运行测试项目,读取YUV文件,输出H264文件

        

    8、编码的过程当中,观察H264编码器的各项指标,并做记载

        在不同的参数配置下,观察下面的各项指标是否正常:

        编码延时:可以在测试程序中输出日志查看

        码率精度:同上

        兼 容 性:应用H264visa可以正常播放便可

        CPU     :高配在2%之内  低配在4%之内

        MEM     :?MB之内

        

    9、网上查找H264文件播放器,验证编码的正确性

        应用H264visa验证编码后H264文件的正确性

        H264visa下载地址:http://ishare.iask.sina.com.cn/f/25002676.html (这个需要2新浪积分)

        如果对X264编解码比较感兴趣,打算深入研究,可以从这里开始:http://www.rosoo.net/a/200908/7424.html,这篇是罗索实验室的文章,一个专业研究音视频,流媒体解决方案的网站。

        

    文章结束给大家分享下程序员的一些笑话语录: 联想——对内高价,补贴对外倾销的伟大“民族”企业。

    --------------------------------- 原创文章 By
    文件和编码
    ---------------------------------

  • 相关阅读:
    PHPEXCEL 导出多个sheet
    android adb.exe端口占用
    imageview 显示assets的图片

    Java中日期问题
    java中的定时器的实现样例
    Oracle数据库如何干净的删除
    MySQL索引相关知识
    JavaScript基础知识总结
    JDBC技术总结
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3100623.html
Copyright © 2020-2023  润新知