数字电视机顶盒的PVR设计与实现
2012-06-25罗才华
罗才华,江 维
(四川九州电子科技股份有限公司技术开发中心,四川 绵阳 621000)
随着国家模拟电视向数字电视整体转换的快速推进和随着存储技术的日趋发展,在数字电视机顶盒上嵌入个人视频录像(PVR),功能已经成为现实。PVR与数字机顶盒的紧密结合,带来了数字电视的新概念,极大地促进了数字电视业务的推广[1-3]。
1 PVR原理
在数字电视机顶盒中实现PVR功能,其基本原理为:1)电视节目的RF信号通过机顶盒前端调谐、解调,获取到TS流数据;2)TS流数据经过数字机顶盒解复用模块后,得到选择的电视节目音视频数据;3)将该音视频数据按某一特定文件格式写入存储介质中;4)从存储介质中读取某节目数据包文件,送入音视频解码器解码[4]。
原理框图如图1所示。
2 PVR软件设计流程
数字机顶盒采取的解码芯片不一样,其PVR实现的机制也不同,主要体现在采取的存储模式有较大差异。但总体来说,还是可以分为节目录制部分、节目回放部分、存储部分等,下面将分别论述。
2.1 节目录制部分
在数字机顶盒中,录像功能就是把一个时间段的节目按特定的方式保存下来。本设计方案中,实现一段节目的录像,首先对该节目一些基本信息,比如音视频PID值、节目开始时间、节目时长等进行记录并写入存储介质。与此同时,也将音视频MPEG数据记录下来写入存储介质中。其数据流程如图2所示。
在设计中,将存储的内容作为重要设计内容:存储的基本信息要能描述出该段音视频数据的基本特性;存储的MPEG文件仅仅包含了AV数据,没有附加其他额外的数据流信息,以充分保证能存储更大时长的节目流。
2.2 节目回放部分
回放,就是从存储介质中读取有效数据,送入解码器进行解码的过程。在本部分中,由于数据是来自于本地存储介质,而非实时码流。因此,老百姓所期望的自主应用都可以实现了。在软件设计上,根据获取到的音视频数据的编码格式,通过扔掉B帧/P帧、改变STC(System Time Clock)的速率、重映射PTS等来实现技巧模式,如快进、快退、跳转等。其数据流程如图3所示。
2.3 存储部分
本设计方案是基于文件系统进行数据的读和写。在设计中,读和写要求以异步的方式进行访问;读和写的完成通过回调函数进行通知。因此,软件设计时,建立了两个线程,为文件的输入和输出服务。其目的是,当一个线程完成了I/O请求后,另一个线程已经做好访问的准备。这两个线程都能被节目录制和节目回放的文件读写所访问,但录制要优先于回放。而数据存储的缓冲区支持线性缓冲和环形缓冲两种模式,在进行写时,优先判断缓冲区是否已经满,读取时,优先判断缓冲区是否是空。这也是缓冲区不能上溢和下溢的保证。其机制如图4所示。
图4 存储机制图
3 PVR设计要点[5-6]
由于嵌入式设备资源的因素,特别是在数字机顶盒这个特殊设备中,集成PVR功能时,需要重点考虑如下要点:
1)写入存储介质的速率。在设计过程中,发现写入速率会影响录像的节目在回放时是否会导致马赛克或者U盘丢失等问题。一般来说,在数字机顶盒中,是通过USB接口、SATA接口外接移动硬盘、U盘作为存储设备。通过SATA接口外接的硬盘,写入速率能得到保证。但通过USB接口外接的存储介质,一是会受到硬件布板影响,二是各种USB接口的存储介质存在较大差异。因此,在选择设备时会受到制约。在本方案是通过调整USB带宽识别范围而得到改善。
2)录像中,移动设备拔出的处理机制。设备的突然拔出会影响数据的完整性,产生空数据文件等。在本设计方案中,有两种机制来应对:一是通过设定固定文件大小的存储机制,当达到规定大小时,会形成新的存储文件;二是设定固定时长的文件的存储机制,该文件大小将会随着数据码流码率不同而不同。这样,即使突然拔出移动设备,也仅仅影响很有限的一段数据。
3)用户接口(UI)的配合。PVR功能的实现必须要有相配合的界面,才能简明、易懂。特别是细节的提示信息、通用的图标配合。
4 应用场景[7]
4.1 实时录像
在欣赏一段节目时,想把这段节目进行收藏,那么可以拿起遥控器,按录像键即可以实现对节目的实时录像。同时,也不影响对该节目的继续观看。当然也可以浏览其他节目。
4.2 定时录像
数字机顶盒一般具备EPG(电子节目指南)功能,那么可以结合EPG功能,对预报的节目信息进行预约录像。也可以手动修改未来的某个时间段进行录像。这样,外出的时候也不会把精彩的节目错过。
4.3 多路节目的录像
当正在录制一段节目时,恰好浏览到另一套喜爱的节目,怎么办?PVR的此项功能可以轻松解决。当然,数字机顶盒需要配备多个Tuner。
4.4 一路节目录像,一路节目回放
当正在录制一段节目时,想对之前录制的节目进行观看,那么在一边录制当前节目的同时,也可以进入回放页面进行节目观看。
4.5 Trick Mode
在回放节目的过程中,可以进行快退、快进、慢进等操作,达到随心所欲地控制节目的进程。
4.6 时移
当正在观看喜爱的电视节目时,电话来了,那么可以按暂停键暂停当前节目播放,结束电话通话后,可以按播放键,节目会从暂停处继续播放,不会错过电视节目。
5 结束语
阐述了在数字机顶盒中如何采用存储技术实现PVR的功能。并针对实现过程中遇到的一些问题及处理方法进行了描述。该实现已经在市场中进行了应用,丰富了观众的精神文化生活。相信随着未来存储技术、数字化技术的更深发展,PVR功能会带给观众更多的自主性。
[1]ISO/IEC 13818-1/2/3/4,运动图像及其伴音信息的通用编码[S].2007.
[2]Universal Serial Bus Specification Revision 2.0,通用串行总线[S].2000.
[3]BAR M.Linux文件系统[M].天宏工作室,译.北京:清华大学出版社,2003.
[4]余健,周华梅,赵力,等.个人视频录像技术及其在数字电视机顶盒中的应用[J].电子产品世界,2006(13):124-126.
[5]许长亮,侯正信.一种实现数字电视PVR功能的设计方法[J].电视技术,2005,29(11):80-82.
[6]张启武,于鸿洋,张萍.基于STi7109的PVR数字电视机顶盒设计[J].电视技术,2010,34(S1):113-114.
[7]朱亮,刘卫忠,冯卓明,等.单芯片DVB-C录像机顶盒[J].有线电视技术,2004(3):107-108.