业余时间优化的android2.3版本的H264解码器

来源:互联网 发布:淘宝宝贝详情复制 编辑:程序博客网 时间:2024/05/16 12:51

http://www.cnblogs.com/snoGuo/archive/2012/12/29/2839343.html

---注:只所以说是业余时间,是因为我的公司工作和音视频没有一点关系。

注意:目前只能使用在armv6架构的android2.3版本的手机上(可以根据cpu型号来查看,一般2011年产的1000元一下的手机都是armv6架构的)

优化原则:在不跳帧,不失色,不失真的情况下只对H264压缩的视频进行处理,不做播放器,不做音频,只做高性能的视频解码器。

优化的内容是:完全用汇编重写了解码端h264的预测算法、IDCT算法、反量化算法、MC算法、loop_filter算法。

------测试文件

可以在这里找到720P,1080P的测试文件:http://www.h264info.com/clips.html
我自己上传了几个704x576, 352x288的测试文件:

http://files.cnblogs.com/snoGuo/DaHuaDVR352x288BaseLine.dav.rar

http://files.cnblogs.com/snoGuo/DaHuaDVR704x576_BaseLine.h264.rar
http://files.cnblogs.com/snoGuo/704x576_pal_baseline.rar

------对前景的展望
现在市面上的很多手机已经是双核,1G的配置,这样的手机才1000元不到,有些甚至是500--700元,在这样的低价策略下,我想芯片厂商是不会在里面增加一个高性能H264解码IP核的,
故个人认为软解是有一定的市场。
------关于我:
熟悉的有:C/C++,ARM汇编,ARM体系结构,嵌入式linux编程,H264解码算法,视频知识等。

不熟悉的有:JAVA,UI设计,各种网络协议。

我会一直在H264的解码算法这块进行优化,不做播放器,只做高性能的H264解码器,

如果您有兴趣,也希望在音视频或网络协议有点成绩的话,希望和我联系:sno_guo#163.com(#换成@), 工作地点:杭州  
谢谢
----版本说明
版本1,sno264Player_v1.0.0.apk (只支持android2.3)
时间:2012年12月29日 21时50分59秒 
说明:第一个版本,我只在C8650上测试过

测试结果是:

352*288的H264视频:完全流畅播放
512*288的H264视频:每秒播放20--25帧
704*576的H264视频:每秒播放20帧左右
1280*544的H264视频:每秒解码7帧左右,播放4-5帧(主要是YUV420转rgb565这里太浪费时间,还在优化中)
1280*720的H264视频:每秒解码4帧左右,播放3帧左右(也是YUV420转rgb565这里浪费时间),
测试结果:1280*544和1280*720的视频文件中,我的解码器要远远优于市面上的mobo播放器,开讯播放器等播放器的解码播放速度。

链接地址:http://files.cnblogs.com/snoGuo/sno264Player_v1.0.1.apk

--------------------------------------------------------

版本2:sno264Player_v1.0.2.apk(只支持android2.3)

时间:2013年01月31日 22时35分42秒

版本说明: 这个是neon的版本,需要您的手机支持neon的指令, ffmpeg虽然用neon优化了一些但还有很多函数没有优化,我这个把剩余的能构成矩阵操作的算法都用neon汇编指令重写编写了一遍,同时修改了上一个版本中在480x800分辨率上图像卷起的问题。

我在me525+手机上测试结果是:播放704x576的H264压缩视频,可以达到每秒40帧的水平。1280x720的H264压缩视频,可以达到每秒15帧

链接地址:http://files.cnblogs.com/snoGuo/sno264Player_v1.0.2.apk

 注: 因自己的手机是2.3,也编译过android4.0 的版本,因android4.0 的手机暂时不在身边无法再次测试,就暂时不上传了。

0 0