业余时间优化的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 的手机暂时不在身边无法再次测试,就暂时不上传了。
- 业余时间优化的android2.3版本的H264解码器
- 业余时间优化的android2.3版本的H264解码器
- AVS软件解码器的优化
- 用好你的业余时间
- 业余时间:RecyclerView的封装
- J2ME版本的JPEG解码器源代码
- J2ME版本的JPEG解码器源代码
- 基于H.264解码器的软件优化
- FFmpeg MP3解码器的研究与优化
- 解决android2.3版本下设置控件透明度的问题
- android2.2 与 android2.3的区别
- android2.3的编译
- 人的差异在于业余时间
- 人的差别在于业余时间
- 人的差异在于业余时间
- 人的差别在于业余时间
- 人的差别在于业余时间
- 人的差别在于业余时间
- Android界面资源包快速生成工具
- 一篇治愈系的励志文
- 读书笔记
- NLP 自然语言处理
- Windows Server 2008终端服务部署指南
- 业余时间优化的android2.3版本的H264解码器
- WinForm控件消息处理的两个参数sender和e
- C++多线程那些事
- OCP 1Z0 053 68
- linux tcp 编程中头文件引用导致的惨案
- UVA 10004 Bicoloring
- IOS学习笔记19 在iOS 7中使用storyboard(part 1)
- 陇南中医如何诊断前列腺炎
- 开源页的言文然后脑上航