Android系统与数字电视之我见
本文将与您一起探讨如下的话题
1、数字电视的现状与未来
2、移植到数字电视面临的挑战
数字电视的现状与未来
数字电视使用不同的操作系统,中间件,CA及应用程序,使得整个软件架构出现极大的差异。
面对用户不断升级的需求,消费者不仅可收看节目,还可将电视作为登录浏览器的入口平台,
搜索更多节目内容,安装各种应用程序,并自行开发、共享各种程序软件。
那么Android系统就是一个不错的选择,Android是google历经数年和投资数亿美元开发出来
的智能手机系统,依靠google强大的开发和媒休资源,其必将成为众多手机厂商竞相追逐的对象。
作为优秀的开源软件整体解决方案,它的作用范围从手机市场,到平板电脑,再到数字电视,
完成三个屏幕的跨越。
那么能否将Android移植到数字电视上,并针对Android软件架构中的各个层面进行大量的
定制和修改。那么未来的软件架构层次可能是这样子的:
图解
移植到数字电视面临的挑战
对于三块屏(手机, 个人电脑,电视)里面电视是变化最慢的,如市场证明失败的smartTV及google TV,
无论是技术还是商业模式来看,离真正的商业成功还有一定的距离,但智能电视的趋势是无法逆转,
其庞大的用户群让众厂商及运营商都跃跃欲试。那么android移植到数字电视的上将会面临哪些挑战呢?
挑战1:图形显示效果及性能
A、TV的分辨率要求720p/1080p以及解码帧率大于25fps;
B、TV的OSD要求32位的色彩深度,而默认的是16bit,图片的显示细腻度不够
C、TV是大屏幕设备,对于2D/3D图形的性能有更高的要求,必须使用硬件加速。
D、屏幕大小规格多样并且可显示区域大小不同,需要自适应进行调整
这块涉及到framebuffer及gfx设备驱动的修改(对于机顶盒厂商来说,这块基本上都能满足),
但对于图形层与视频层坐标偏移对齐很多机顶盒公司都没有做,导致一部分图形层被遮住。
对于2D/3D硬件加速接口的实际涉及到su易做图ceflinger及openGl ES接口高效实现,这块涉及到
充分利用GPU的大数据运算功能
挑战2:用户体验
A、TV的用户界面及内容组织方式,需要适合于远距离操作及大屏幕布局
B、TV用户使用遥控器而不是触摸屏或键盘;
这块涉及到webkit对于焦点控制及libui输入设备的修改,更改用户输入的习惯以及各种应用
的操作方式,从最简单的“上下左右确认返回”做起。现在市场上常使用手机作为输入设备使用,
例如“多屏互动”实现了电视、手机、PAD不同终端屏互动,实现内容共享以及“甩信”,通过一个
简单的“甩”的动作就可以将手机上的“甩信”信息内容发送到电视终端上进行播放体验。
挑战3:2D/3D图形加速性能是TV整体性能的关键点
对于2D来说,可以通过优化skia及su易做图ceflinger加速合成速度,即重点实现copybit模块,
而且在此可以嵌入硬件decoder取代原有的image decoder,比如jpeg,gif硬解码部分
对于3D来说,除了使用硬件3D加速(必须的)外,可以使用GPU作为skia的后端
对于2D/3D使用场合,有个形象的比喻:对于数据量大且有规律按一定频率刷新的处理使用3D,
就好比是公交车,载的人多且站点统一,周期性运营;而对于需要交互速度且反应要求及时
的操作则使用2D,就好比是出租车,即招即走按客户需求发车及停靠。从这点来看,可以此为
原则找到优化的地方(这个参考lyre同事的说法,觉得很形象就'拿'来使用了,:))
挑战4:适合大屏幕的多媒体音视频体验
无论是OpenCore还是Stagefright的多媒体框架,其本身支持的文件格式及编码标准较少,需
要加上其它的媒体格式及编解码比较麻烦,利用硬件特性解码接口实现比较复杂
而利用已有的开源多媒体框架,如Gstream或者ffmpeg都有其局限性及缺点。
在此重点需要解决的问题:解码速度(必须利用机顶盒本身的硬件解码器)及显示速度,这个可以考虑
使用视频层及overlay进行输出
对于音频来说,需要考虑多种输出设备及高品质音质和多路音频合成音效的输出
挑战5:集成数字电视功能
到目前android4.0为止,Android内没有集成任何数字电视协议相关的协议栈
A、需要集成DVB-C,DVB-T及DVB-H等看电视功能
B、对于数字电视接口(播放,录制及时移,点播等等)的定义,需要具备一定的数字机顶盒开发经验
挑战6:适用于TV的应用
对于数字电视来说,应用是王道,具体如何做好应用商店及开发适合TV的应用,这块需要运营商,
软件厂商及电视厂商共同推动应用的发展与繁荣
挑战7:CA集成及内容加密问题
对于android这种open的系统,对于电视内容保护方面需要如何来做?
CA模块都由各家CA公司提供,其CA模块的集成技术上没有多大问题,但多于key的保护远远不够。
这个可能需要借助DRM来控制版权问题,但运营商如何布署是个问题?
挑战8:软件更新速度太快
基本上3-6个月就会更新其软件,让厂商无法跟其脚步进行更深入的开发及增加开发成本及效率降低。
而且需要维护很多分支的代码,需要大量的人力和物力
挑战9:硬件成本
如果需要流畅跑通基本的3D应用及视频播放,至少需要600MHZ以上主频,512MB内存,128MBflash,制造成本将会提高,
而这种高配置,高硬件带来的成本最后都是转嫁给消费者的。目前主流的机顶盒都需要1000RMB左右
三网融合已经进入到实质性试点阶段,并且取得了阶段性成果。与此同时,三网融合不仅仅是
电信网、计算机网和有线电视网三大网络的物理融合,而且是三大网络的业务融合。
机顶盒上开发的Android对于TV来说,还远远未达到产品化阶段,或许智能化电视是一个不错的方向
最后引用乔布斯的一句话:
“这一直是我的一个秘诀——专注和简洁。简单比复杂更难:你必须付出巨大艰辛,化繁为简。
但这一切到最后都是值得的,因为一旦你做到了,你便能创造奇迹。“
作者 andyhuabing的专栏
补充:移动开发 , Android ,