基于webrtc的安卓720p和硬编解码测试报告

一、引言
因为有些客户对支持720p视频有要求,所以,需要让组件支持720p。对于720p,关键问题一个在于带宽,另外一个在于终端设备CPU的消耗。对于带宽,高分辨自然需要高码率与之对应,对于需要多少码率,也需要测试才能最终确定。对于CPU消耗,720p在编解码时,需要耗费大量CPU,复杂度较高,很容易引起手机等终端发烫。而安卓自4.2之后开始硬件支持视频编解码,主要内容在mediacodec包中。但是很多软件不愿意去用安卓硬编解码,主要原因每个芯片厂商对硬编解码的实现与对外输出的数据都有可能不同,造成适配起来相当费时费力。至于能否使用自然需要测试。
所以本文包括测试如下:
1、720p码率测试
2、硬编解码手机支持适配测试
3、硬编码与软编码对比测试

二、720p码率测试
测试序列:FourPeople_1280x720_60.y4m
测试环境:PC,x264编码器,组件相同配置
测试数据:
1、主观质量打分

主观质量打分.png

注:这里6分表示图像尚为清晰,能够接受。纵列代表码率,横列代表不同的编码级别。

2、客观质量打分

客观质量打分.png

这里测试采用FourPeople_1280x720_60.y4m标准序列,直接采用x264编码,配置则和组件相同配置。
从测试的数据来看,如果要想达到720p该有的清晰度,码率至少要达到800kb,但是现在组件的策略只能达到500kb,后期码率这一块肯定需要做出调整,来适应720p分辨率。

三、硬编解码手机支持适配测试
测试方法:将支持硬编解码的组件分别安装在不同的安卓手机,看是否支持硬编解码以及走的是软编解码还是硬编解码。
测试数据:
可支持硬编解码:

三星S5---------------------硬编解码----------高通
三星note5 n9200-------硬编解码----------三星
三星s6---------------------硬编解码----------三星
华为mate7---------------硬编解码----------海思
HTC d816t -----------------硬编解码----------高通
红米note1s---------------硬编解码----------高通
Vivo x6d--------------------硬编解码----------MTK
三星sm_n9006----------硬编解码----------高通
Coolpad_a8_930---------硬编解码----------高通
Nubia_nx513j-------------硬编解码----------高通
Coolpad_8297------------硬编解码----------高通
Lenovo_x2_to-------------硬编解码----------MTK
HTC_one_m8w------------硬编解码---------高通
LG_h818--------------------硬编解码----------高通
金立f103------------------硬编解码-----------MTK
金立y51a------------------硬编解码-----------高通
Oppo A53m----------------硬编解码-----------高通

软编解码:

红米2A-------------------软编解码------------hantro
三星sch_i939d---------软编解码------------三星
三星sm_g7108v-------软编解码------------高通
小米3 --------------------软编解码------------Nvidia

因为在适配时,只适配了高通,华为海思,联发科以及三星猎户座这四个主流芯片,所以其他芯片手机在组件中一定不走硬编解码,但是即使是这四个芯片也还要看芯片是否支持,以及适配情况。如果支持硬编码,就支持硬解码。现在主流机型都支持硬编解码,只要是这四个芯片,组件应该就支持硬编解码。

测试中发现的问题如下:
1、硬解码在适配方面难度更大,主要表现在:
- 解码过程中变化分辨率,mate7等会大小屏。
- 对于360*480等不是16整数倍的宽高,不同机器的表现不一,一系列适配问题。
- 解码过程中重新设置解码器,会出现问题。

2、硬编码在三星s6上分辨率不是16整数倍如360*480时,编码出来的数据有问题。

基于上述一系列问题,去适配硬解码不现实,难度很大。但是硬编码问题较少,在给编码器设置相同的profile和level后,编码出来的数据较为统一。但是对于不是16整数倍的分辨率,除了三星s6,仍然有潜在风险。所以硬编码第一步,最好只支持16整数倍的分辨率,后面再去找到360*480分辨率的问题点和共同点,来解决问题。

四、硬编码与软编码对比测试
测试机型:金立F013,三星S6,华为mate7,HTC_d816t,LG_h818,Oppo A53m
测试工具:GT
测试时长:10分钟
测试内容:CPU对比测试,手机温度对比测试,通话图像质量主观对比测试
测试数据如下:
1、CPU对比测试

CPU对比.png

注:这里CPU消耗为平均消耗值。
数据上可以看出,绝大部分机型硬编码在CPU消耗上要好于软编码的,这也是硬编码最大的优势所在。

2、手机温度对比测试

温度对比.png

注:空格为用GT没有获取到温度数据。这里的温度为平均温度。
数据上可以看出,硬编码的手机温度要好于软编码的。

3、通话主观质量对比测试

通话质量对比.png
6   特别好
5   好
4   较好
3   一般
2   较差
1   特别差

这里主观评分按照清晰度、流畅度和延时在3个方面分别评分,从而更为全面地评价软硬编码。
机型覆盖支持的四种芯片,从数据和实验中可以看到,在部分机型上面硬编码的流畅度要比软编码要差,通过分析,主要原因在于,采集后的图像没有给到编码器,而是丢弃了,至于引起丢帧的原因有待查明。而同时这部分机型上,清晰度要高于软编码,可能码率控制部分没有起作用,原因有待进一步查明。
而在一些机型上,如华为mate7,Oppo A53m上软硬编码表现较为相似。

总结:

对于软编码和硬编码,总体而言,硬编码在CPU消耗和手机发热方面要好一点,但质量方面差一些,但是这种质量差,是因为webrtc其他部分引起的,硬编码本身不存在问题。如果在码率控制和丢帧处理上做的比较好的话,硬编码有着绝对的优势。
对于720p,也同样是一个较为系统的工程,如果只是把分辨率编码成7201280,较为简单,但视频通话总体质量还是要靠每一个部分共同支持,才能达到比较好的效果。显然,webrtc引擎很多地方对720p的支持不是很好,尤其在于码率动态调整和帧率动态调整方面。还有就是实际网络也比较难以达到跑720p的要求。
对于以后,硬编码建议继续优化,主要在于适配机型方面。适配更多的机型之后,也可以考虑用到我们现有的240
320、360480、480640这些分辨率上面。
对于720p,建议后面可以从码率动态调整和帧率动态调整这两个方面去适应720p,或者设置成固定的而不用动态的。

经过优化之后补充测试

优化点:如上述总结所言,经过在码率和帧率方面对720p做出单独处理,不同于其他低分辨率,同时不影响原有低分辨率相关算法。
补充测试:
这里仅补充通话主观质量对比测试,结果如下,
通话主观质量对比测试

zhiliang.png
6   特别好
5   好
4   较好
3   一般
2   较差
1   特别差

总结:

经过在码率和帧率方面对720p做出单独处理,通话整体质量已经达到较好的效果。但仍存在一些缺陷,主要表现在机器配置较低时,会有卡顿。而且在丢帧这一块尚不完善,需要继续改进。
软编码和硬编码表现基本相当,但手机发热会好一点,CPU占用会小一点,但部分机型可能延时会大一点。
这一切都是基于好的网络和好的组网的前提下,跑高码率,没有组网的支持,实际线上环境会比较卡的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容