微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 基于地面高清机顶盒的PVR系统设计与开发

基于地面高清机顶盒的PVR系统设计与开发

时间:10-21 来源:21IC电子网 点击:



3 关键实现技术

3.1 音、视频同步技术

电视信号录制产生的音、视频数据各自以PES包的形式存储在硬盘上,当它们被读出并且被解码播放时,随之就会产生音频和视频之间的同步问题。

数字电视广播的MPEG-2数字码流中包括两种时间信息:用于机顶盒本地系统时钟与广播系统前端时钟同步的节目时钟参考(Program Clock Reference,PCR),位于TS包的首部;以及用于音视频同步的展现时间戳/解码时间戳(Presentation Time stamp/Decoding Timestamp,PTS/DTS),位于PES包的首部。在本PVR系统中,由于音、视频数据是以PES包的格式被存储到硬盘的,所以PCR并没有被存储;而另外一方面,在播放已录节目时,音、视频数据是实时从硬盘中读出的,读取数据和播放数据都同属于PVR系统内部的操作,所以并不存在系统间时钟同步的问题,因此,在PVR系统的回放操作中不用考虑PCR。所以在录像回放过程中,只能利用PTS/DTS来维持音频与视频的同步。播放录像时,帧速率(FrameRate)决定了视频数据的解码速率,所以可以将视频PTS作为基准,将音频PTS与之相比较,以此调整音频解码的速率,从而达到使音频与视频同步的目的,具体采用的方法如下:

(1)视频数据被传送到解码单元的视频缓冲区的过程中,对它进行解析,记录其中的PTS,并构建视频PTS表;
(2)对于音频数据,也同样构建音频PTS表;
(3)在解码过程中将视频PTS作为基准,修正解码单元中由系统时钟驱动的SCR(系统时钟参考)计数器的值;
(4)根据音频缓冲区指针的位置,在音频PTS表中查找相应的PTS值,将此值与SCR计数器的值相比较,作为调整音频解码速率的依据,从而控制音频解码器解码动作,实现音频数据跟随视频数据的同步。

3.2 缓存技术

如图2所示,经过前端解调得到的TS流经由2D图像引擎处理后进入DEMUX模块。DEMUX模块是一个集成在主控芯片中的特殊微处理器,主要任务是进行TS流的分析和解复用。由于硬盘的传输速率有限,因此为了减少磁盘读写次数,系统在内存中开辟一块缓冲区用以缓冲音、视频数据,当缓冲区数值达到门限时,将其存储数据写入硬盘。写数据与写硬盘两个操作采用并行的线程来执行,线程间通过信号进行同步。

而在录像文件的回放过程中,从硬盘中读出的音、视频PES文件分别放入音、视频缓冲区中,系统不断检测缓冲区数据大小,如果数据小于门限值,则通知数据传输线程把新数据送入。

录像文件的记录方式包括两种。正常录制的文件大小随着录制时长的增长而增加,直到节目录制完成或者硬盘空间耗尽为止。而在时移录制模式下,录像文件大小固定,它包括了写指针和读指针。在开始时移录制时,写指针开始往后移动,画面静止在开始录制的时刻。当回复收看时,读指针与写指针同步向后移动,写指针在节目结束时停止移动,而读指针自然在与写指针重合时停止移动。需要指出的是,由于时移录制并不以录制文件并回放为目的,所以播放过的节目即被丢弃,因此该文件是一个循环文件,写指针与读指针在到达文件末尾时跳回文件开头。由于硬盘空间所限,循环文件大小即为最大时移录制时长,超过该时长则时移模式失效。

通过缓存技术的使用,系统大幅度减少了硬盘I/O次数,提高了系统效率,同时也达到了保护硬盘的效果。同时,缓存技术和音、视频同步技术相结合,实现了电视节目的回放以及时移播放,真正体现了数字化PVR的强大人机交互功能。

3.3 EPG信息的提取和使用

本系统的EPG通过两种方式获取,其一是在播放节目时按下EPG按键显示的present/following(当前/随后)信息,其二是通过主界面的EPG菜单进入节目指南,显示出频道列表和按照时间排列的各频道节目信息,为用户提供电视节目列表。系统通过Tuner板的解调芯片,从接收的TS流中解析出服务信息(Service information,SI)数据,并在系统缓存中建立SI数据库,用户通过EPG的用户界面(UserInterface,UI)与SI数据库进行交互。EPG的SI以节目为单位,将与每个节目相关的事件都存储在该节目的事件链表上,对于单个频道的事件,其数据结构如下:


如上所示,EPG信息主要包含了每个节目所对应的节目名、开始时间、持续时长以及相邻事件的指针,当然,事件信息还包括它所对应的频道信息三要素(transportid,network id,service id)。

EPG的信息量非常大,并且经常更新,但是由于系统搜索一次EPG信息周期长达8~10s,所以除了开机之后的第一次获取外,当用户按键浏览EPG时,只有当前节目已经过期的情形下,系统才实时地分析获取,并将其缓存至系统内存,其余情形下系统读取缓存数据以大幅度提高响应速度。由于EPG的信息时效性很强,因此在退出系统时无需保存。

用户通过UI来实现与EPG之间的交互,在UI部分,向用户提供了非常友好的EPG菜单界面,实现了节目的按频道分类以及按日期分类,用户通过这些菜单界面,可以方便地浏览节目中近期播放的事件的信息,选择自己喜欢的节目来播放,并且可以设置自动录制指定某个频道的某个时间段的节目。

3.4 预录节目管理

前文已经提到了使用EPG信息与时钟板来进行电视节目的预约录制。用户在浏览EPG列表时选中想要录制的节目,按下预约录制按钮,系统自动将预录信息写入配置文件,并存储至硬盘

其中条目按照开始时间的先后顺序排列,开始时间与结束时间均以BCD码的形式保存以节省存储空间,同时也可以与通用的struct tm格式方便地进行转换。用户可以随时进入预录条目管理界面删除不需要的条目,也可以再次进入EPG界面选择并添加新条目,系统将根据已有条目情况判断是否有时间冲突,若有则无法预录,若无则选择正确的位置插入条目。系统在开机时自动检测硬盘上是否存在配置文件,若存在,则读取文件第一个没有过期的条目,取出节目开始时间,与从时钟板获得的系统当前时间进行循环比较,一旦到点,系统将停止当前音、视频的播放,并且跳转至预约节目的录制。通过配置文件的使用,系统实现了电视节目的一键录制,录制信息,包括节目名、频道名以及录制开始时间,均以文件名的形式记录,方便用户对于录制文件的查找与分类管理。由于配置文件被写入硬盘,所以除了极端特殊情况,比如在写配置文件时意外断电,通常情形下在系统断电后文件仍然存在,从而实现了预录节目的断电续录功能。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top