您的位置:首页 > 移动开发 > Android开发

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

2012-12-31 19:32 239 查看
因csdn上要下载文件,需要先登录, 这样对一些没有注册过的网友来说,不是很方便,故放到博客园上面.地址是:
http://www.cnblogs.com/snoGuo/archive/2012/12/29/2839343.html
欢迎下载测试,谢谢.

相关的说明原文是:

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

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

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

目前(20121229)优化结果:在1280*544和1280*720的视频文件中,我的解码器要优于市面上的《mobo播放器》,《开讯播放器》等播放器的解码播放速度。

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

----我的测试条件:手机C8650,配置:CPU:MSM7627-600MHZ,RAM:512M,android2.3.6

测试结果(baseline,mainline,highline解码速度相差不是很大):

352*288的H264视频:完全流畅播放

512*288的H264视频:每秒播放20--25帧

704*576的H264视频:每秒播放20帧左右

1280*544的H264视频:每秒解码12-15帧,播放8--9帧(主要是YUV420转rgb565这里太浪费时间,还在优化中)

1280*720的H264视频:每秒解码13-16帧,播放8--10帧(也是YUV420转rgb565这里浪费时间),

测试结果:1280*544和1280*720的视频文件中,我的解码器要远远优于市面上的mobo播放器,开讯播放器等播放器的解码播放速度。

------测试文件

可以在这里找到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

-----你如果测试

则:需要您的手机CPU是armv6架构的,并且支持vfpv3。

视频条件: 视频采样点是8位,完全符合H264编码的视频文件(打包成多媒体格式也可以),采样格式是YUV420。(因为一直从事安防行业,就只按照安防的通用格式来)

------下一步的计划

利用ARM的vfp协处理器汇编指令,争取把YUV420转RGB565的转换速度优化到10ms(720P)一下

然后转到ARMV7上,完全采用NEON的汇编来做. 因为现在千元手机大多是ARMV7架构的了.

------对前景的展望

现在市面上的很多手机已经是双核,1G的配置,这样的手机才1000元不到,有些甚至是500--700元,在这样的低价策略下,我想芯片厂商是不会在里面增加一个高性能H264解码IP核的,

故个人认为软解是有一定的市场。

------关于我:

熟悉的有:C/C++,ARM汇编,ARM体系结构,嵌入式linux编程,H264解码算法,视频知识等。

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

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

如果您有兴趣,也希望在音视频或网络协议有点成绩的话,希望和我联系:sno_guo#163.com, 工作地点:杭州

谢谢

----版本说明(计划每两周升级一个版本):

版本1,sno264Player_v1.0.0.apk

时间:2012年12月29日 21时50分59秒

说明:第一个版本,我只在C8650上测试过,测试的结果如上。

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

版本2,....(正在开发,)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: