手机端
or

欢迎您加入我爱方案网QQ群

1.智能产品外包服务群(311606115)
2.嵌入式项目开发群(491609563)

一种PVR数字电视机顶盒的设计

张启武,于鸿洋,张萍| 数字电视,机顶盒,嵌入式,PVR| 2010-11-14
538 收藏
分享到: 
每日精选
热门文章
热门方案

【中心议题】
    * 提出了一种
PVR数字电视机顶盒
    * 给出了具体设计方案
【解决方案】

    * 接收的数据在硬盘中是以PES数据包的格式存储
    * 对音视频数据流进行解析,在它们被存入到硬盘的过程中记录其中I帧的位置,形成索引文件

1 PVR
数字电视机顶盒简介

PVRPersonal Video Recorder)功能因其实用和内置硬盘存储量大的特点而成为数字电视机顶盒的重要扩展功能。它能有效提高产品的市场竞争力,是数字电视机顶盒一个重要的发展方向。在当前网络电视快速发展的情况下,PVR数字电视机顶盒增强了电视的吸引力,因此受到广电服务提供商的青睐。随着硬盘价格的不断走低,拥有该功能的产品不会明显增加消费者的经济压力,具有普及推广的潜力。

2 PVR数字电视机顶盒实现原理

音视频数据及数字信号首先经过MPEG-2编码器进行数据压缩形成基本码流ESElementary Stream),再经打包后形成有包头的基本码流PES。不同音视频信号的PES流被送入传输复用器进行系统复用,形成传输流(TS)。TS结构如图1所示。

图1

传输流中包括多个节目源的不同信号。为了区分这些不同的音视频信号,在系统复用时加入服务信息SI以使接收端可以识别不同的节目。DVB标准定义的部分服务信息如表1所示。

表1

当接收机要接收某个指定节目时,它首先从节目关联表中取得这个节目PMTPID值,然后从TS流中找出与PID值相对应的PMT,从中获得构成这个节目的基本码流的PID值,根据这个PID值滤出相应的视频、音频和数据等基本码流,解码后复原为原始信号。PVR功能只是在滤出相应的基本码流后不进行解码,而直接将它们存储在硬盘当中。

在机顶盒只有一个高频头的情况下,只能对同一个TS流里的节目进行边看边录的操作。在没有收看电视节目时可以对任一节目进行录制,而在收看节目时只能录制与该节目在同一频点的其他节目。定义两个函数,RECORDING1(见图2)用于普通存储,RECORDING2(见图3)用于时移播放。时移播放是在硬盘中开设足够的缓存区,一旦在收看电视节目时按下了暂停键,立即进行录制,等录制后按下播放键,即从暂停处开始播放,就像发生了时移一样。两个函数的区别在于,前者记录的数据在播放后仍需保存,而后者在播放后实时删除。

图2

3 PVR数字电视机顶盒文件系统

PVR机顶盒接收的数据在硬盘中是以PES数据包的格式存储的。

采用SATA硬盘,其数据传输率可达150 Mbyte/s。将磁盘分成CD两个区,C12 Gbyte,其余分配给D区。均采用EXT2文件格式。每个格式化后的扇区可容512 byte数据。因为硬盘数据的存放一般都以磁盘块(扇区大小的整数倍)为单位,为了减少寻道延迟和旋转延迟从而导致文件读写速度变慢,应该将PVR机顶盒磁盘块设置得相对大些,以使有限的嵌入式系统内存能够全部存放文件分配表从而加快读写速度。设置磁盘块大小为16 kbyte

每个节目流都有一个信息文件、索引文件和数据文件。其中,数据文件记录码流,分为常规文件和时移文件。RECORDING1()使用常规文件,存于/convention目录。该文件建立时有一定的初始大小,其长度随着记录时间的增加而增加,直到节目录制完成或硬盘没有空间为止。RECORDING2()使用时移文件,存于/shift目录。该文件也需要建立索引,有一个读指针和一个写指针,初始时两个指针均指向时移文件开始处。RECORDING2()录像的目的是使节目在硬盘上缓存一定的时间,用于观众收看节目时临时按下的暂停命令。当选择暂停时,画面静止,而写指针会立即向后移动并开始录制。当恢复收看时,读指针开始从暂停处向后移动并解析和播放,播放过的数据随后删除。若指针到达文件结尾则跳转到文件头部重新记录或播放。时移播放示意图见图4。当观众恢复播放后又进行了变换频道操作,则将先前时移录制的文件删除,读写指针归置初始处。

图4

4 PVR数字电视机顶盒特技播放的实现

对音视频数据流进行解析,在它们被存入到硬盘的过程中记录其中I帧的位置,形成索引文件。在播放时按播放速度的要求,按索引文件读出所需I帧数据送给解码单元解码播放,这样就可以实现快进、快退的特技播放效果了。根据MPEG-2语法,在图像代码中指明了帧类型,二进制001代表I帧,010代表P帧,011代表B帧。这样就可以根据这些帧标识判断帧类型并记录I帧的位置,从而进行相应的特技播放。特技播放部分C代码如下:

代码段

代码段

在慢放过程中,对同一帧进行两次重现。为了避免产生尖锐或拖沓的声音,在各种特技播放的过程中不对音频进行解码。

5小结

笔者从MPEG-2标准入手进行分析,找到了PVR功能的实现方法。对磁盘进行分区并建立文件系统,定义不同函数实现了普通录制和时移播放,并基于索引文件和重放技巧实现了特技播放。可在存储的音视频文件的组织方面做进一步研究和改进,以便提高硬盘读写速度和利用率。

点赞

深圳市中电网络技术有限公司 Copyright© www.52solution.com 粤ICP备10202284号