《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > PVR技术应用于SDTV机顶盒的研究与实现

PVR技术应用于SDTV机顶盒的研究与实现

2008-09-11
作者:国澄明 刘 康 吕宏伟 高

    摘  要: 介绍了具有数字录像机系统的有线传输的标准清晰度电视机顶盒。以STi5518信源解码器芯片为核心器件,利用芯片提供的ATAPI接口实现了机顶盒与硬盘的无缝连接;通过设计机顶盒软件系统实现了具有录像、时移" title="时移">时移播放等特技功能的个人数字视频录像机系统(PVR)。从硬件结构、软件设计" title="软件设计">软件设计等几个方面详细介绍了本机顶盒中PVR系统的设计与实现。

    关键词:  数字电视  机顶盒  PVR系统   硬盘  时移播放  STi5518  ATAPI接口

 

    数字电视与模拟电视相比,不仅图像质量有了很大提高,而且还提供了模拟电视所无法提供的多种服务业务。应用于数字电视的数字视频录像机,采用硬盘作为数字电视节目的载体,除可完成传统磁带式" title="磁带式">磁带式录像机的基本功能外,还可以实现时移播放这种新的播放功能。本文主要研究如何在标准清晰度机顶盒上实现个人数字视频录像机系统(PVR),开发出了机顶盒新的功能,提高了其应用价值。

1 PVR概念和技术介绍

    随着硬盘技术的发展,硬盘的容量和速度在不断地提高,基于硬盘的个人视频录像机已成为新型消费类产品,将逐步取代磁带式录像机。PVR的突出特点是以硬盘作为存储媒介,建立本地的海量缓冲区和巨大的节目存储库,利用数字化处理技术对节目进行控制和管理。硬盘容量大、数字式、访问快速的存储特性使得机顶盒PVR与传统的录像机相比具有如下特点:

    (1)存储容量巨大,能够进行更长时间的节目存储。以40G硬盘为例,能录制长达20小时的标准清晰度数字电视节目;

    (2)硬盘的寻道和定位速度非常快,可以轻易找到已录制的节目,立即播放,节省了倒带时间。

    (3)硬盘载体中数据的存储和读取非常准确,有效地降低了存储和读取过程中可能出现的误码现象。

    (4)可以实现时移播放功能。

    时移播放是PVR技术的一大特点,也是机顶盒PVR的基本功能。机顶盒PVR在硬盘中开设了海量缓存区,在播放数字电视的同时,对节目进行实时存储,缓存区间可以录制长达数小时的节目。通过缓存技术,用户可以对正在播放的电视节目进行暂停,过一段时间后又可以从节目的暂停处继续播放,就好象时间发生了移动一样,如图1所示。

 

 

2 PVR数字电视机顶盒硬件平台

    本课题的研究内容是开发一种应用于有线电视的具有PVR功能的标准清晰度数字电视机顶盒。系统采用ST公司的单片信源解码器芯片STi5518实现标准清晰度数字电视解码,其内嵌的ATAPI接口实现了与硬盘的无缝连接,为机顶盒实现PVR功能提供了条件。机顶盒的原理框图如图2所示。信号经过QAM解调后,以TS流的形式传入STi5518,通过解复用将其分解为音、视频PES包。PES包既可以被送往音、视频解码器解码,也可以被送到ATAPI接口作为数据存入硬盘。

 

 

3 STi5518与硬盘接口的连接

    STi5518内嵌的ATAPI接口可提供最高为PIO模式4的数据传输,传输速率为16.7MB/s。ATAPI设备可作为STi5518的存储器映像设备。本系统将硬盘映射到CPU可编程的外部存储器接口EMI的BANK1上。图3给出了STi5518与硬盘的接口图。

 

 

    STi5518地址线的第20、19位分别与硬盘的CS1、CS0相连,地址线的第18、17、16位分别与硬盘的DA2、DA1、DA0相连,这样可通过访问BANK1的存储空间实现对硬盘的读写操作。ST5518提供的可编程I/O口中的ATAPI_WR和ATAPI_RD专门用来连接硬盘的DIOW和DIOR。ST5518的读写信号CPU_RW用来控制传输门的数据传送方向。

4 硬盘基本读写操作的控制

    主机对硬盘的操作是通过将命令代码和访问的地址写入硬盘控制电路中的相应I/O寄存器来实现的。以写一个扇区的操作为例。首先,主机查询硬盘状态寄存器,如果BSY位为0、DRDY位为1,则可以执行操作。然后把所要写的CHS参数或LBA参数写入扇区号寄存器、柱面低位寄存器、柱面高位寄存器、扇区数寄存器和设备/磁头号寄存器,同时将写扇区命令号0x30h写入命令寄存器。如果没有发生错误,查询状态寄存器的DRQ位。如果为1,表示硬盘已经做好传送数据的准备。最后将数据写入数据寄存器并查询状态寄存器的ERR位,如果没有发生错误则写扇区成功。

5 机顶盒中PVR的系统软件设计

    在系统软件设计上,没有用到中间件,所有开发的上层应用程序都是直接利用ST公司提供的底层硬件驱动库完成的。PVR的系统软件结构如图4所示。主要分三个层次:

 

 

    (1)ATAPI接口驱动层,用来实现读写硬盘的基本控制。这部分的软件设计主要是利用ANSI制订的ATAPI接口标准中所规定的命令格式来实现STi5518对硬盘数据的读写控制。

    (2)文件系统" title="文件系统">文件系统驱动层,主要是建立文件系统,实现操作节目文件的基本功能。

    (3)节目管理层,用来完成节目记录、回放、管理等功能。

5.1 PVR的音视频文件系统

5.1.1 PVR文件系统结构

    为了在硬盘上实现数据的有效管理必须建立文件系统。本系统硬盘上的数据按照其不同的特点和作用分为主引导区(MBR)、根扇区(RS)、主CAT(簇分配表)区和数据区。

    主引导区位于硬盘的第一个扇区,也就是逻辑0扇区,其结构如图5所示。前446字节用于放置操作系统的引导程序,后64字节(偏移量1BEH-偏移量1FDH)存储DPT(硬盘分区表" title="分区表">分区表), 该分区表记录4个分区信息,每个分区信息里分别记录该分区的分区状态、起始LBA地址、分区大小、分区类型,系统初始化时通过读取分区表来获得硬盘空间的分配情况。最后两个字节“55,AA”(偏移量1FEH-偏移量1FFH)是分区的结束标志。整个512字节构成了硬盘的主引导区。

    根扇区位于每一个分区的前两个扇区,用于记录与文件系统相关的数据,包括文件系统的版本号、文件系统状态标志、簇的大小、主CAT大小、文件数据区起始地址及大小、根目录地址。文件系统中数据存储的最小单位是簇。簇一般由若干扇区组成,其数目根据硬盘的大小和操作的实际要求来定,数目过大或过小都会影响系统的运行性能。本系统根据具体试验采用每簇大小为32个扇区。

    主CAT区记录了每一个簇块(255个簇)中未使用的簇的数目,通过它可以方便地计算一个硬盘分区剩余空间的大小。

    数据区是真正意义上的数据存储的地方。本系统将一个分区中的数据区分成若干个簇块,每个簇块由三部分组成:区域CAT表、备份区和255个簇。每个区域CAT表记录了其所属簇块的起始地址、255个簇的使用情况、存储已占用簇的前继内容和后继内容的簇的地址以及CRC校验值。通过采用簇块方式将簇分配表分散在每个簇块中,可以减少磁头移动次数,从而提高硬盘的访问速度。

    在数据区中存有目录,每个目录包含36个目录项,每个目录项记录硬盘中某一文件的文件名、大小、起始地址和结束簇地址、文件状态标志等信息。系统在读取文件时,可以根据目录中的文件的起始簇地址以及区域CAT表准确地定位存储文件的各簇的位置。在本系统中只建立了一个目录——根目录,它的位置由根扇区中的分区表给定,大小固定为一个簇。

5.1.2 文件系统的完整性设计

    在设计文件系统时,不仅要保证正常条件下系统的可靠的数据记录功能,而且还要考虑异常情况下出现的系统错误能够被修复。系统在根扇区设置了一个标志位用以表明文件系统是否打开。如果要打开一个关闭的文件系统,而标志位表明该文件系统已经打开,则说明文件系统没有被正确关闭,此时就要进行系统检查以纠正系统中的错误。文件系统的恢复包括:恢复任何写操作时被中断的系统数据、重新完成未完成的操作、重建主CAT表、重建文件数据。实现的方法是访问根目录中所有目录项及其相关的区域CAT表,沿着文件指针链表检查簇指针的链接是否正确,并核对空闲簇的数量是否和主CAT表的一致。图6给出了一个完整的系统文件检错并恢复的流程图。

 

 

    为了保护系统数据,本文件系统使用了写备份的方法,即在将数据写入原始地址之前先写入备份区,当数据发生错误时可以通过备份数据恢复文件。

    在读取数据时系统首先检查区域CAT表的CRC值,如果不正确就从备份区读出数据,同时检查备份区的CRC值;如果正确则读出数据并把备份的数据写入簇块地址,否则文件数据无法恢复。对于根扇区,由于它没有簇块,因而没有备份区。系统选用分区表的第二个扇区作为根扇区的备份。主CAT表的备份方法与簇块的方法相同。图7、图8分别为系统数据备份时的写、读流程。

 

 

 

5.2 PVR系统的节目操作与管理

    节目操作与管理对应PVR系统软件层次上的节目管理层,该层用来完成节目记录、回放、时移、特技播放等功能。

5.2.1 节目流的记录

    TS 流从外部接口进入STi5518的解复用模块,通过PID滤波器选出指定的一路节目并拆包成PES流。在录制节目时需要将PES流数据写入硬盘。由于硬盘的读写速度较慢,因此在系统中开辟一个PreBuffer来缓冲数据。当PreBuffer中的数据达到门限值时,将其所存数据写入硬盘。在设计时,写PreBuffer与写硬盘的操作采用两个并行的Task来完成,任务间通过信号灯同步。节目记录流程如图9所示。

 

 

5.2.2 节目流的回放

    当播放硬盘上的节目时,从硬盘中读出的数据要放到读缓冲区中。PES包的头部信息中的stream_id字段标明了PES包内的信息类型。首先通过程序判别把视频和音频数据分开,送到视频和音频的Bit_buffer中,然后分别通过视频和音频解码器解码。Bit_buffer中的数据应该始终保持一定的数量以保证有足够的数据进行解码。因此程序要不断检测Bit_buffer的数据大小,如果小于一定门限值就通知数据传输Task把新的数据送到Bit_buffer中。节目回放流程如图10所示。

 

 

5.2.3 节目的时移播放

    记录在硬盘上的文件有两种类型:常规文件和循环文件。正常录制的节目为常规文件,文件的大小会随着记录时间的增长而增加,直到节目录制完成或硬盘空间耗尽为止;而时移播放时使用一种特殊的文件记录格式——循环文件,循环文件大小固定,有一个读指针和一个写指针。由于时移录像的目的不是把节目录下来回放而是使节目在硬盘上缓存一定的时间,因而播放过的部分就不再需要存储了。当开始时移录像时,系统要把节目数据存储到硬盘中,写指针会向后移动,画面静止在录像开始的时刻;当恢复收看时,系统读取硬盘中的节目数据播放,读指针开始向后移动,此时读指针和写指针之间的距离就是节目的延时时间。当指针到达文件尾时会回到文件头部继续移动,直到时移播放结束为止。由此可知,循环文件的大小决定了节目的最大时移。

5.2.4 节目的特技播放

    特技播放是指快放、慢放等非正常速度的播放方式。它是磁带式录像机所具有的功能,在模拟的磁带录像机中可以通过改变磁带的播放方向和速度来实现。但是在数字录像机中,这个功能需要采用不同的方法来实现。数字视频的动态图像是由一帧一帧的画面组成的,为了实现快速播放,解码器需要跳过某些帧。根据播放的速度,可以计算出每个GOP中跳过的帧的数目,对剩下的帧以正常速度解码,就可以实现快速播放。很明显,速度越快,跳过不解码的帧数就越多。同样,慢放时可以让解码器每帧重复播放一次,就可以使播放速度放慢一倍,而实现慢放。

    本课题在实现了标准清晰度数字电视信源解码器的基础上,完成了数字录像机的功能,实现了数字电视节目的录像和时移播放等功能,提高了机顶盒的应用价值。本论文所介绍的内容是天津市数字信息技术研究与开发中心的“标准清晰度数字电视机顶盒”项目的一部分,现已实现了由科研样机向产品样机的转化。该项目技术已向相关企业进行了技术转让。

参考文献

1白 淳,李建华.数字电视机顶盒上的个人录放技术PVR.广播与电视技术,2002;29(5):116-120

2 杨战兵.一种新型的数字电视机顶盒.世界宽带网络,2002(6)

3 AT Attachment with Packet Interface-5 (ATA/ATAPI-5) Revision 3.ANSI,29 February 2000

4 STi5518 Single Chip Set-Top Box Decoder with Mp3 andHard Disk Drive Support Data Sheet. ST, Nov 2001

5 Yeong Kyeong Seong.A Hard Disk Drive Embeded Digital  Satellite Receiver with Scene Change Detector for Video Indexing.IEEE Transactions on Consumer Electronics,August 2002,48(3):776-782

7 ISO/IEC 13818-1, Recommendation H.222.0, Generic Coding Of Moving Pictures and Associated Audio.Systems 1540. Sun, 13 Nov. 1994

8 ISO/IEC 13818-2,Generic Coding Of Moving Pictures and Associated Audio. Video,Nov 1994

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。