




已阅读5页,还剩46页未读, 继续免费阅读
(微电子学与固体电子学专业论文)数字机顶盒pvr功能实现及关键技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 i 摘 要 随着数字电视过渡化的快速进展,数字用户特别是高端用户对 pvr 机顶盒的需 求越来越大。但由于 pvr 机顶盒技术相当复杂,对硬盘的要求很高,国内能够提供 成熟的 pvr 机顶盒的厂商还很少。这就提出了 pvr 机顶盒的新的研究课题。 由此, 通过对 sc2005 平台和 mpeg-2 系统层的深入研究, 结合该平台具有标准 的 ata 接口的特点,采用了 dma2 方式传输数据,选择了音视频文件混合存储的方 式,在 sc2005 平台上实现了对节目的录制、回放、时移等基本功能。 该 pvr 数字机顶盒的关键技术是音视频同步问题和快进、快退等特技播放功能 的实现。通过研究基于数字机顶盒的 mpeg-2 音视频同步的原理,及对 pvr 系统中 音视频不同步问题进行分析, 采用一种利用pts信息进行调整的方法, 并结合sc2005 平台中的解码器特点,选用了一种调整算法,解决了回放时的音视频不同步问题。 利用 sc2005 平台能硬件检测数据流中一“图案”信息的特性,并通过对 mpeg-2 视频流序列进行研究分析,采用一种检测 i 帧信息的方法,建立关于 i 帧信息的索引 机制,在快进、快退时利用对 i 帧信息的索引,并且为了提高查找效率,采用了动态 缓存机制,实现了快进、快退功能,并取得了更高速度的快放和慢放效果。 该 pvr 机顶盒性价比较高,是一款优秀的高端数字机顶盒。随着国内数字电视 普及的加速发展,该 pvr 机顶盒将具有广阔的市场前景。 关键词:关键词: pvr sc2005 ata 音视频同步 快进 快退 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 ii abstract with the rapid development of digital televisions transition, users of digital television, especially high-end users, make greater requirement for the pvr stb. however, as the technology of pvr stb is complex, whose demanding for the hard disk is high, there are few manufacturers who can provide the maturational pvr stb, which raises the new study of pvr stb. thereof, by the in-depth study of sc2005 platform and mpeg-2 system layer, in combination with the platforms standard ata interface, the dma2 way to transmit data is used, and the file storage mixed of audio and video data is chosen, by which the basic functions of the program recording, playback, timeshifting and so on is realized. the key technology to this pvr stb is audio and video synchronization and the realization of the skipping forward or backward. through the research of mpeg-2 video and audio synchronization principle based on the digital stb platform, and the analysis of the video and audios out of synchronization in pvr systems, the pts information is used for adjustment. in combination with the decoder of the sc2005 platform, an adjustment algorithm is adopted to solve the video and audios out of synchronization. by utilizing the sc2005 characteristics of detecting a pattern information in the data stream and analyzing the mpeg-2 video stream sequence, a way of detecting the i frame information is adopted. the indexing mechanism of the i frame information is established. when skipping forward or backward, the skipping function is realized by indexing i frame information. in order to improve search efficiency, the dynamic caching mechanism is used. a higher speed effect of fast or slow playing is achieved. the pvr stb has high cost performance. it is one of the outstanding high-end digital stb. with the rapid development of the domestic digital tv, the pvr stb will have a broad market prospect. keywords: pvr sc2005 synchronization of audio and video fast forward skip backward 独 创 性 声 明 本人声明所呈交的学位论文是我个人在导师的指导下进行的研究工 作及取得的研究成果。尽我所知,除文中已标明引用的内容外,本论文 不包含任何其他人或集体已经发表或撰写过的研究成果。对本文的研究 做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到 本声明的法律结果由本人承担。 学位论文作者签名: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即: 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允 许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部 或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复 制手段保存和汇编本学位论文。 保 密,在_年解密后适用本授权书。 本论文属于 不保密。 (请在以上方框内打“” ) 学位论文作者签名: 指导教师签名: 年 月 日 年 月 日 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 1 1 绪 论 1.1 研究背景 1.1.1 机顶盒的原理、分类及发展现状 数字电视是指从演播室开始,从发射到传输及接收的所有过程都是使用数字信 号的电视。 电视信号有三种基本的传送途径1: 卫星传输、 有线传输及地面传输。 当 前用户大都是通过有线电视来收看电视节目的, 通过有线电缆传送的数字电视基本上 采用dvbc标准。通过卫星传送的数字电视采用dvbs标准。而地面发送的数字 电视目前标准未定,主要有美国atsc标准,欧洲dvbt标准,我国相关标准目前 正在制定。 机顶盒(set-top box,stb)早期是指基于有线电视网络的模拟频道增补器、模拟 频道解扰器。随着数字电视广播和因特网的迅速发展,用户对信息需求的不断增强, 机顶盒演变成以电视机为显示终端的信息接收和处理设备。数字电视机顶盒从其结 构上讲大体上可以分成两部分:信道解调解码部分和信源解码部分。信道解调解码 部分即前端,负责对射频信号进行解调接收和信道解码,针对不同的信道可以配以 不同的信道解调解码器。在 dvb 标准中卫星传输采用 qpsk 方式调制,有线传输 采用 qam 方式调制,地面传输则采用 cofdm 方式。信源解码部分也称后端, 它主要完成从 ts (transport stream,传输流)输入到解码后的音、视频输出之间的所 有功能,包括传输流解复用、音频解码和视频解码等,是机顶盒的核心部分。数字 电视机顶盒的主要功能1是完成对数字电视信号的接收, 具体讲就是把从信道传输过 来的射频信号,通过机顶盒前端的调谐器和解调芯片完成解调和信道解码,解出传 输流。然后通过后端进行解复用分出音、视频基本流,再经过音、视频解码,输出 解码后的数字视频和数字音频信号。 最后通过视频后处理单元和音频 d/a 转换器形 成 pal、ntsc 或 secam 制式的模拟电视信号和模拟音频信号送入显示器显示 和播放。 从机顶盒的实现功能来讲,机顶盒分为三种2: 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 2 第一种是基本型机顶盒,具备三个功能:一是提高信号质量,使现有的节目信 号质量大大提高,可以达到 dvd 水平;二是提供电子节目指南服务,方便观众进行 频道搜索,很快了解节目表和内容简介,提供天气预报、公告、当地政府的电子政 务、社区服务信息等数据信息服务;三是可以根据用户订购的要求,对每一个机顶 盒以及每一套节目、每一项服务进行控制管理。 第二种是增强型机顶盒:它在实现基本型机顶盒功能的基础上,可以进行准视 频点播,以及提供电视教学、股票信息、电视购物等服务。 第三种高级型机顶盒:高级型机顶盒在实现增强型机顶盒功能的基础上,增加 了交互功能和增值业务功能,既提供交互电视、互动游戏等服务,还具备互联网、 收发电子邮件、收看彩信等功能。此外,高级型机顶盒还可以增加硬盘存储器,进 行实时录像、分类检索,以提供给观众一种全新的收看电视节目的方式,pvr 机顶 盒正是在这种背景下应运而生的。 现在全球都在进行广播电视数字化,各国相继制定数字电视计划,相继推出了 数字电视服务,而作为接收载体的机顶盒市场更是繁荣起来,各大机顶盒厂商根据 不同的市场需求,推出了各异但功能却更先进的机顶盒,如:(1)冲电气工业开发出 可以连接电视机播放高画质图像的机顶盒,该产品为业内首款支持预测编码方式提 供高清晰画质的qurter-pel功能的机顶盒, 机顶盒通过在泛用 dsp 上进行软件处理 从而得以降低价格。(2)美国摩托罗拉公司和灵活电视公司联合推出了一种声控数字 电视机顶盒,用户可通过说话来让电视机播放他们想看的节目。(3)pace 微技术公司 生产的 dc550 hd 高清晰度数字有线机顶盒,是迄今世界上最小的机顶盒, 该设备支持在有线网上传送 vod 和 hdtv。(4)美国 dg2l 科技成功开发了具备支 持 mpeg-4 规格的编解码功能的 ip 机顶盒“neuron”系列,除可使用 mpeg-4 规格 进行 hdtv 播放外,还配备了支持 mpeg-2 规格的解码功能。(5)broadcom 公司在 美国推出系列 echostar 卫星电视机顶盒,这种 tvstb 使用 broadcom 公司的 ic,使 几台电视机能用一个机顶盒运行,解决了一机多用问题,机顶盒不用随电视机的数 量配置的问题,这也是多数家庭最现实的问题。相信随着机顶盒功能的改进和使用 的方便快捷,机顶盒将为数字电视的推广提供更强有力的支持与服务。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 3 1.1.2 pvr 机顶盒 引入数字电视机顶盒后电视接收方式改变了,但人们观看电视的方式并没有得 到改变。节目的播出时间是由电视台决定的,用户只能在固定的时间点接收观看。 节目的播出过程也无法进行控制,用户必须自始至终地守候在屏幕前。另外如果没 有录制设备,大多数节目只能看一次。人们不满足于这种被动的信息接收方式,希 望能够自主地随心所欲地观看电视节目,但目前的数字电视还缺乏这种交互性。解 决这一问题的最终途径有赖于对传输网络的改造,但由于完全改造现有线路代价太 高, 一时难以实现, 因此当前需要一种代价不高的过渡方案, 带个人录像机 (personal video recorder ,pvr)功能的机顶盒正是在这样的背景下应运而生的,它通过在机顶 盒中加入存储设备并结合电子节目指南,在用户端实现了某种程度的交互。实际上 在已具交互功能的宽带应用中,带 pvr 功能的机顶盒也能发挥其长处,如它能够存 储视频点播的节目,便于以后多次观看。因此加入 pvr 功能的机顶盒成为机顶盒技 术的一个发展分支。 pvr 机顶盒的突出特点3是以硬盘作为存储媒介,建立本地的海量缓冲区和巨 大的节目存储库,利用数字化处理技术,实现对节目的控制和管理,可供用户在任 意时刻观看。对于数字电视信号,节目直接以原有数字格式存储;而对于模拟电视 信号,则需要进行数字编码压缩。对于硬盘上储存了的节目,用户可以随意地进行 快进、快退、暂停和慢动作重放等特技动作,也可以方便地进行分类和查询。数字 化和存储技术是 pvr 技术的核心。在这个基础上对节目进行灵活的节目编辑和录 放控制,可以一改过去看电视的被动和无法个性化的状态。 pvr 技术和数字电视机顶盒结合而产生的 pvr 机顶盒,将两种先进的技术完 美地结合,带来了数字化的精彩纷呈和互动的随意性,将人们对电视节目的观赏更 向前推进了一步。 1.1.3 数字机顶盒 pvr 国内外技术介绍 epg (electronic program guide )4是数字节目特有的一种服务,它可以将当前的和数 天内的节目时间表通过数字信道直接传送到机顶盒中。除此以外,epg 还可以包括有关 于节目的其它附加信息:例如,节目类型、主要演员、分级级别等等。在 epg 信息的帮助 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 4 下,用户对将播出的节目的查询和预定录制会变得更加简单、快捷。如果将录制技术和 epg 结合,再加上机顶盒的图形界面,使用户更加方便、舒适地观看电视节目。 目前一些国际性的大公司都加快了对具有大容量存储能力的 pvr 机顶盒的研 究,芯片厂商和硬盘厂商也加强了对该类产品的投入,并且有专用于 pvr 机顶盒 的芯片和硬盘投入生产。目前国外的 pvr 产品4主要有:tivo,sonicbule 公司的 replaytv,微软的 ultimatetv 和 echostsr/dishnetwork 的 dishpvr。tivo 的不同 档次的产品,分别可以提供 3060 小时的录制容量。tivo 有针对于模拟节目,带有数 字编码压缩功能的机顶盒产品,也有用于数字卫星电视网(directv 服务)和数字有线 电视网(a t /时间标签 ts uint32 packetaddress; /该 ts 在 video channel buffer 中的位置 t_avitimestamp; typedef struct _t_avitimequeue uint32 writeptr; /写指针 uint32 readptr; /读指针 t_avitimestamp timestampdatats_storage_size; t_avitimequeue; 在 a/v 驱动函数里,由函数 avfgetaudiopesdata(uint32 *pts, uint32 *packetaddress)来获得音频 pts 及该 pes 包的地址,函数 avfgetvideopes data(uint32 *timestamp, uint32 *packetaddress) 来获得视频 pts 及该 pes 包的地 址。函数 avcsetscr(uint32 newscr)设置新的 scr 值,函数 avcgetscr(void) 获得当前 scr 的值。 3 视频解码速率的调整算法 在 sc2005 平台上,当音频解码器处于 wait_timestamp 状态,解码器检测 到第一个 audio pes 包头时,便产生一个 audio pes 包头中断,由软件从 audio pes 包头中抽取第一个 audio pts,如果此时 pvr 模块处于回放状态,便用该 audio pts 的值修正解码单元中 scr 计数器的值, 并将 pvr 模块设定为调整状态。 以后当音频 解码器处于解码状态时, 每来一个 audio dts 中断, 便从 audio pts 表中获取一个合 法的 audio pts 值,加上其偏移量作为当前的 audio pts 值,如果此时 pvr 模块处 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 33 于回放状态, 便用该 audio pts 的值修正解码单元中 scr 计数器的值, 如果 pvr 模 块不处于调整状态,便将其设定为调整状态。 当视频中断产生时,视频解码器中断处理程序从 videopts 表中获取 video pts 值,加上其偏移量作为当前的 video pts 值,从 scr 计数器中读出的值作为当前时 间 currenttime。当视频解码器处于解码状态时,用 video pts 减去 currenttime,结 果用 videotimedelta 表示作为同步的偏差,如果此时 pvr 模块处于回放状态并需要 进行调整。对于视频图像而言,显示以一帧图像为单位,显示输出可采用简单的重 复显示40或跳帧的方式来进行调整。用以下算法对视频解码速率进行调整: 1) 确定需要调整的 videotimedelta 的上限值和下限值。 由于 pts,dts 和 scr 都是工作于 90khz39计数器的采样值,以 tick(标记) 为单位,则 90000 个 tick 的总时间为 1 秒。由于 pal 制电视的显示速率是 25 帧/s, ntsc 制式的显示速率是 30 帧/s, 因此我们以 1 秒中所包含的 ticks 数为界限来界定 正常显示区域,sync_error 的上限值定为 90000。sync_error 的下限值定为 3000。 2) 如果-90000videotimedelta90000, 则进行调整,否则解码时间标签和 scr 计数器中的值突然过大,预示码流中的显示时间标签区域出错。清除 video pts 的存 储。 3) 如果-90000videotimedelta3000,则 videoframeerror 加 1。如果 video time delta -3000, 则 videoframeerror 减 1。 4) 如果 videoframeerror 大于 0 且视频缓存区没接近上溢状态,则解码过快, 应将 videotimedelta 减去一个 video frameperiod,同时将 videoframeerror 减 1,重 复播放当前视频帧一次。如果 videoframeerror 小于 0 且视频缓存区有足够的数据。 则解码过慢,执行跳帧,同时将 videotimedelta 加上一个 video frameperiod,使 videoframeerror 加 1。程序流程图如下图所示: 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 34 -9000090000 或pvr处于回放状态 videoframeperiod=0? frameerror=/video frameperiod 清除videopts 存储 frameerror=0 大于大于3000吗?吗? frameerror+ 小于小于-3000吗?吗? frameerror- frameerror大于0,并且 videobufferstate不上溢 吗? 设置重复帧模式, frameerror- -, -=frameperiod yes no yes yes yes no no yes yes frameerror小于0吗? 设置跳帧模式, frameerror+, +=frameperiod yes no no no 图 5-1 程序流程图 4 解码过快或过慢的处理 1) 解码过快 如果解码过快,可暂停视频解码,重复显示当前帧。考虑到实际解码器中的存 储空间不可能很大,对于不作为参考帧的 b 帧有可能不能整帧存储,因此当需要重 复的是 b 帧时,当前帧正常显示一次。一直到出现 i 帧或 p 帧时再进行重复帧操作, 在这段期间的 pts 都会超过上述的正常播放条件。这种方法的好处是对存储空间没 有太大的要求,2.5 帧的存储空间38即可满足要求(2 帧作为参考帧存储空间,0.5 帧作为 b 帧缓存) 。 2) 解码过慢 如果解码过慢,则采取跳帧(丢帧)的措施,最好是丢 b 帧,因为 b 帧码字短;最好不 要丢 i 帧或 p 帧,特别是不要丢 i 帧,因为一方面会严重影响图像的质量,另一方面 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 35 i 帧码字37长,丢掉可能会使跳帧的操作失败,因为跳帧的操作是要在一帧的时间内 读完一帧的数据但不解(丢掉这一帧) ,同时完成这一帧的读取和解码,因此有可能 读完要丢掉的 i 帧后,剩下的时间已不够下一帧的解码,造成跳帧操作失败。所以我 们采取的措施是若当前是 i/p 帧, 冻结40前一帧图像并停止解码, 等待下一帧或 video sequence 的到来。 5.2 特技功能的实现 pvr 机顶盒除了具备实时播放、录制节目、暂停、边录边放、时间平移等基本 功能外,还可以在已录制节目的数据中,方便地进行快进、快退、暂停等特技播放。 5.2.1 原来的方法 1. trick5(特技)模式 该平台中的 a/v 解码器支持多种特技模式,这对于在 dvd 系统中开发多种功 能是非常有用的。这些功能包括跳帧,重复帧播放,快进模式,帧重建率控制,单 个静态图像显示等。 跳帧的功能可以通过设置 video skip register 中的其中三位来实现,bits1:0用 来设置跳帧的模式和帧类型,将 bit 2 置 1,可以设置连续跳。 表 5-1 视频跳帧模式 跳帧位 bits1:0 跳帧模式 0 x00 正常播放 0 x01 跳 b 帧 0 x10 跳 p 帧或 b 帧 0 x11 跳任意帧 对于要实现快进模式,可以通过设置当前帧寄存器中的快进模式使能位的值来 起动这种模式。在快进时,解码器无需考虑显示状态以尽快的速度处理图像,与显 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 36 示的垂直同步相关的解码率控制被关掉。解码率仅仅有当前帧寄存器中的快进显示 单步命令控制。这样通过对解码单元进行设置,令其以较高速率进行解码,而不受 显示时的帧速率的约束,就可以达到一定的“快速播放“的效果。但由于重建帧的 工作是要与帧速率相适应,要想实现更高速度的快放,这种快进模式就不能满足了。 其他特技功能都可以通过设置相关的寄存器来实现。 2. 利用跳帧模式实现快进功能 利用 sc2005 平台的 trick 模式,通过跳帧或快进的方式也可以实现一定的快速 播放功能。本课题组在 sc2005 平台上曾经尝试采用此方法来实现快进功能(但利用 该 trick 模式,不能实现快退功能) 。该方法简述如下: 当进行硬盘回放的时候,如果按下快进键,就通过 vidsetplaymode (vid_ play_i_only)将视频解码器设置为只播放 i 桢,该函数通过调用 a/v 底层驱动函 数将 video skip register 中的跳帧位 bits1:0设为 0 x10, 跳 p 帧或 b 帧, 只播放 i 桢。同时将音频解码器停掉。 3. 存在的问题 由于当时是将音视频数据分成两个文件存放的,所以在快进结束后,音视频同 步是一个比较难解决的问题;由于解码器的解码速率受帧速率的影响,该方法也不 能实现更高速度的快放。 如果帧间编码如图 5-2 所示, 则快进时速度是正常播放时的 12 倍。另外利用 trick 模式不能实现快退功能。 1 ibp 2 bpbbbbbpbi 345678910111213 前向预测(fp) 双向预测(bp) 图 5-2 帧间编码 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 37 5.2.2 改进的方法 1. sc2005 的特性 sc2005 的 dma 控制器有一个特殊的特点,就是从系统 sdram 用 dma 传 输数据的过程中,能硬件检测到任何 32 比特的“图案”5(在 cscdpatt 寄存器 中可编程) , 这个特性也支持 sdram-b 与外部 ata 硬盘驱动之间的 pes 数据流的 传输。当硬件发现数据流中有符合这个 32 比特的“图案”时,就会产生一个中断, 该中断可以在 cscdpos15 寄存器中读出,并且包含了该“图案”在数据流中相对 于 dma 传输开始的字节位置。由于 dma 引擎从 sdram-b 中读出的字节数存在 一计数器中,该值可以从该计数器中读出。dma 控制寄存器如果需要可由软件重新 初始化。 除此之外,当 cscdpatt 寄存器中编程设置的 32 比特“图案”检测到后,紧 接着下一个 32 位也能被捕捉并被存储到 cscdnext 寄存器中。 根据 sc2005 这一硬件特点,采用 dma 方式将视频 pes 和音频 pes 数据从缓 存写到硬盘上。 由于mpeg-2视频基本码流中的图像头的起始码picture_start _code6 的值为 00000100 的十六进制 32 位的串。可将此串设为 32 比特的“图案,当 dma 引擎检测到“图案”匹配后,会产生一中断,并将当前的字节计数和码流中后续的 32 比 特 记 录 下 来 。 根 据 mpeg-2 语 法 , 在 后 续 的 32 比 特 中 , 有 三 位 (picture_coding_type)指明了帧类型。这样就可以在对应的中断服务处理程序中判 断帧类型,并记录 i 帧的位置,从而可以减少解析码流所需的 cpu 处理负担。 sc2005 提供了一些寄存器,通过对这些寄存器的读写操作,可以设置匹配“图 案” ,读中断等与匹配“图案”相关的信息。 2. mpeg-2 视频基本码流 mpeg-2 的系统结构42分为三部分:视频编码和音频编码,输出视频或者音频 基本码流 es;音视频基本码流 es 经过打包,输出打包了的基本码流 pes;pes 再 经过两种不同的打包和复用形成节目流 ps 和传送流 ts。mpeg-2 视频流分为图像 序列层(vsl-video sequence layer)、图像组层 (gopl-group of pictures layer)、图像 层(pl-picture layer)等 6 个部分,每层都有确定的功能与其对应。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 38 其中图像序列层由数据头及一系列图像组(gop)组成的视频数据包,具体是 指一整个要处理的连续图像。用于定义整个视频序列结构,可采用逐行或隔行两种 扫描方式。其中,数据头给出了有关图像水平大小、垂直大小、宽高比、帧速率、 码率、视频缓存校验器的大小、量化矩阵、层号(layer-id) 、分级法(scalable mode) 等,为解码提供了重要依据。一个 gop 由 i 为起始的一串 ibp 帧组成,gop 的长度 是前一个 i 帧到下一个 i 帧之前的 b 帧之间的间隔, 如 i1b2b3p4b5b6p7b8b9i10 中 从 i1 到 b9 就是 gop 的长度。gop 越长,mpeg-2 编码越有效,而数据流的编辑及 组接越困难。一般,最多由 12 帧组成。基准帧重复频率的不同,可提供不同的输出 码率。 图像组层 gopl 是图像序列层中若干图像组的 1 组图像,由数据头和若干幅图 像组成,用于支持解码过程中的随机存取功能。图像分组是从有利于随机存取及编 辑出发的,不是 mpeg-2 结构组成的必要条件,可在分组与否之间灵活选择。其中, 数据头给出了图像编码类型、码表选择、图像组头部开始码、视频磁带记录时间及 控制码、涉及 b 帧处理的 closed gop、broken link。为了给编辑数据流提供接入点, 第 1 个总是 i 帧。 图像层 pl 由图像头和 1 帧图像数据组成,是图像组层若干幅图像中的 1 幅,包 含了 1 幅图像的全部编码信息。其中,图像头提供的基本部分有头起始码、图像编 号的时间基准、图像(i,b,p)帧类型、视频缓存检验器延迟时间等。扩展部分有 图像编码扩展、图像显示扩展、图像空间分级扩展、图像时间分级扩展等。其中, 基本部分由 mpeg-1 及 mpeg-2 共用,扩展部分由 mpeg-2 专用。picture_start_code 是图像头的头起始码,其值是一个为 0 x00000100 的十六进制 32 位的串。在图像头 里,由 picture_coding_type 来指明一个图像是帧内编码图(i) ,还是预测编码图(p) 或双向预测编码图(b) ,如表 5-2: 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 39 表 5-2 picture_coding_type picture_coding_type 编码方法 000 禁 止 001 内部编码(i) 010 预测编码(p) 011 双向预测编码(b) 100 不应使用 101111 保留 3. 设计方案及其实现 结合 sc2005 的硬件特性,通过对相关寄存器的配置,在视频数据流通过 dma 方式被存入到硬盘的过程中,sc2005 会硬件检测到 i 帧,引起一中断,并记录其相 关的信息到寄存器中。读取相关寄存器中的值,获取 i 帧信息,记录到硬盘上,形成 一 i 帧的索引文件。在播放的时候,按播放速度的要求,按索引文件读出所需要的 i 帧的位置,从此位置开始读出数据送给解码单元解码播放,这样就可以实现高速快 放、反向播放的功能了。 (1) 相关寄存器的操作 首先在“图案”匹配寄存器(cscdpatt)里设置 32 比特的“图案”的值。该 寄存器默认值是符合 mpeg-2 语法定义的 picture_start _code 的值为 0 x00000100。 在 dma 控制器从 sdram 往硬盘里传输数据的过程中,一旦“图案”匹配被检测 到,起始码检测模式便向 cpu 产生一中断,将 cpu 子系统中断状态寄存器 (cistatus)中的第 10 位 scd_int16置 1,通过读取 scd_int 的值来判断中断 是否产生。程序通过读匹配“图案”位置寄存器(cscdpos)的值可以获取该“图 案”在数据流中相对于 dma 传输开始的字节位置。读取 dma 字节计数器 (cscdcntr) 的值可以获取 dma 传输的总字节数。 程序读取寄存器 cscdnext 的值获取匹配“图案”下一个 32 位的值。该 32 位的字节中包含了图像头中的 picture_coding_type, 通过 picture_coding_type 的值可以判断出是 i 帧, p 帧还是 b 帧。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 40 如果检测到是 i 帧,便进行 i 帧信息的存储。 (2) 音视频数据存储方式的选择 音频 pes 和视频 pes 数据在硬盘里可以分开存储,分别存在两个文件里,也可 以采用混合存储的方式,存到一个文件里。但考虑到硬盘的读写速度,若音频 pes 和视频 pes 数据分别存在两个文件里,在读取数据时,磁头将在两个文件之间不停 地切换,势必增加其寻道时间,降低硬盘的访问速度,进而影响整机的性能。另外, 若采取分开存储,当进行快进快退时,音频解码器停掉,这样当快进或快退结束后, 音视频同步是一个比较难解决的问题。该存储方式的优点是容易存储。 综合以上两点考虑,我们采取混合存储的方式,将音视频数据在硬盘中存储在 一个文件里。但存储时,要附加一个长为 16 字节的头信息,以区分音、视频 pes 数 据。这样当进行快进快退时,音频数据很好定位,只要回放时能正常播放节目,则 不会再出现音视频不同步的问题了。 头信息数据结构如下: typedef struct strmg_headerblock u8 streamtype; /* 流类型,音频流或视频流*/ u8 nextaudioblock; /* 下一个音频快*/ u8 channelnumber; /*节目数*/ u8 reserved; /*保留*/ u32 referencetime; /*参考时间*/ u32 numberofstreamtypeblock; /*该流类型的块数 */ u32 numberofblock; /*被记录的总块数*/ strmg_headerblock_t; (3) i 帧信息的存储 音频 pes 和视频 pes 在硬盘中采取混合存储的方式,存放在一个文件里。每建 立一个这样的文件,就在同一级目录下建立一个与该文件文件名相同的索引文件。 存放音视频数据的文件后缀为*.mpg, 索引文件后缀为*.index。 往硬盘里写数据时, 用两个宏定义来区分该往哪个文件里写。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 41 define av_data_fid 1 define i_frame _fid 2 在记录初始化函数 recstartinit()里注册中断,并且开一个大小为 4kb 的 i_framebuffer 缓存区, 用来缓存 i 帧信息。 每当检测到 picture_start _code “图案”时, 便产生中断, 中断服务程序 handle_i frame_interrupt()被调用。 在该中断服务程序里, 从寄存器 cscdpos 里读出 “图案”在数据流中相对于 dma 传输开始的字节位置, 从寄存器 cscdcntr 读出这次 dma 传输的总字节数, 从寄存器 cscdnext 中读 出“图案”的下一个 32 位比特值,并从中解析出 picture_coding_type,通过 picture _coding_type 的值来判断帧的类型, 如果是 i 帧, 便计算 i 帧在硬盘中被存放的位置, 并将该指针同索引号以结构体的形式存到 i_framebuffer 里,当任务 rectaskmain 检测到该缓存区满时,便将其中的数据写到硬盘的索引文件里。 描述 i 帧信息的数据结构如下: typedef struct i_frame_info void * i_frame_ptr; /* i 帧在硬盘中存放的位置*/ uint32 i_frame_index; /*i 帧索引号*/ i_frame_info; (4) i 帧位置的查找 当进行快进或快退操作时,首先调用函数 qioseekreadptr()确定文件中当前 读指针的位置 readptr,然后利用该指针在索引文件里查找与它相同或离它最近的指 针。对于静态表来说,常用的查找算法有三种,分别是顺序查找法,折半查找法, 和索引顺序查找法(分块法) 。其中顺序查找法查找效率最低,而折半查找法效率最 高,但采用折半查找的表最好是静态有序表。 由于sc2005的音频通道305和视频315通道中的数据是直接进入av解码器的, 通过这两个通道是没有办法获取音视频数据的,因此,开了两个普通通道以 pes 方 式过滤音视频数据,并将获得的数据以文件方式写入硬盘。在实际测试中我们发现 当普通通道和音视频通道的 pid 值一样,数据将优先进入音视频的通道,导致普通 通道没有办法截获任何数据,因此在采集音视频数据时,要么停掉当前的音视频通 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 42 道41,要么切换当前的节目改变音视频通道的 pid 值;也就是说对正在播放的节目 是没办法进行录制的。目前是只对已录制好的节目进行特技播放,存储 i 帧信息的 索引表是一个静态有序表,这时候采用折半查找法则查找效率最高。 如果帧间编码格式采用的是 ibbpbbpbbpbbi,对于 pal 制的电视则一秒中有 3 个 i 帧,若存放 100 分钟的电视节目则会有 100*3600*3=1080000 个 i 帧,采用折半查 找法最少要比较 20 次,那么从硬盘的索引文件中读数据最少要 20 次,也就是说要 进行最少 20 次的硬盘读操作,而每次只读几个字节,因此查找的大部分时间都浪费 在读盘操作上。为了提高查找效率,我们采取了动态缓存的机制。 当进行快进或快退操作时, 首先调用函数 qiosizeavailableread 来获取索引文件 的大小 file_size,然后动态分配大小为 file_size 的一块内存,采用 dma 方式将索引 文件中的数据拷贝到该内存里, 用折半查找法查找与 readptr 相同或离其最近的指针 位置 i_frame_ptr。找到后若进行的是快退操作,则按照播放速度的要求,使该 i_frame_ptr 对应的索引号不断地递减,直到找到需要播放的 i 帧位置,同时释放缓 存,从该位置起读出数据,送往解码器进行解码播放。若进行的是快进操作,则使 该 i_frame_ptr 对应的索引号不断地递增, 找到需要播放的 i 帧位置, 同时释放缓存, 从该位置起读出数据,送往解码器进行解码播放。 5.3 小结 分别用 4mbps 的标准清晰度电视码流、 12mbps 的高清晰度电视码流、 20mbps 的高清晰度电视码流对回放,快进和快退等进行了功能性测试。根据测试比较,视 频回放连贯清晰,说明没有丢包现象,音视频同步良好,能够满足高清晰度电视的 一般要求。在文件长度允许范围内,快进和快退的速度有所提高,有原来固定的 12 倍,提高到 12 的任意倍数。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 43 6 结束语 通过对 sc2005 平台的认真研究和对 dvb、mpeg-2、ata 标准等知识的深 入学习,成功地设计并实现了基于 sc2005 平台的 pvr 数字机顶盒,并对开发 过程中遇到的关键技术问题如音视频同步等问题进行了研究。 根据 sc2005 可以提供标准的 ata 接口,采用了 dma2 方式进行传输,提 高了数据传输的速度。研究了基于数字机顶盒的 mpeg-2 音视频同步原理,对 pvr 系统中音视频同步问题进行了研究分析,利用 pts 信息进行调整解决了回 放时的音视频不同步问题。利用该平台能硬件检测 i 帧信息的特性,通过对 i 帧 信息的索引,改进了快进功能,并在此基础上实现了快退功能。 但该 pvr 数字机顶盒还存在一些问题需要进一步研究和开发,如用户只能 录制与当前播放节目的同一频点的其它节目,如果要录制不同频点的节目,则需 要多个高频头,目前,欧美开发的有些 pvr 机顶盒中已内嵌有六七个高频头。 这将在后续的工作中继续进行研究开发。 “pvr ”早在几年前已不是一个陌生的观念,但 pvr 机顶盒在亚洲的应用 推广并不是那么成功,主要原因是亚洲的用户还不习惯于数字业务,致使电视的 数字化过渡进展缓慢,另外 pvr 机顶盒价格昂贵也是不容忽视的原因之一。本 课题选用的 sc2005 平台性价比高, 且具有标准的硬盘接口, 可采用 dma2 方式, 传输速度快,随着国内数字电视普及的加速发展,该 pvr 机顶盒将具有广阔的 市场前景。 华 中 科 技 大 学 硕 士 学 位 论 文华 中 科 技 大 学 硕 士 学 位 论 文 44 致 谢 光阴似箭,转眼间已度过了两年的硕士研究生学习和生活。在此论文完成之际, 谨向给予我关心、帮助、支持和鼓励的老师、同事、同学和亲人致以最诚挚的感谢。 首先我要感谢我的导师刘卫忠副教授。两年来,刘老师除了在学术上给予我悉 心指导和帮助,还在生活上给予我很大的关怀。刘老师渊博的知识、开阔的思维、 敏锐的洞察力和平易近人的处世态度一直指引着我的科研。刘老师为我提供了良好 的科研环境和丰富的实践机会,使我得到了极大的锻炼。 我还要感谢冯卓明老师。冯老师是我的直接指导老师,冯老师不仅在科研过程 中给予我指导和帮助,还在我遇到困难时,及时给予我鼓励,并教给我许多做事的 方法和做人的道理,这使我受益非浅。同时我还要感谢罗白云老师,陶雄飞博士, 他们在科研上也给予我许多指导和帮助,感谢武汉东太信息产业有限公司所有给予 我
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东肇庆市广宁县事业单位招聘“三支一扶”等基层服务项目人员8人备考考试题库附答案解析
- 2026中国电信河北分公司校园招聘备考考试题库附答案解析
- 2025重庆青年镇招聘公益性岗位人员5人备考考试题库附答案解析
- 2025河南能源化工集团供应链有限公司招聘3人备考考试题库附答案解析
- 2026安徽江淮汽车校园招聘备考考试题库附答案解析
- 掌握家居设计新趋势
- 掌握初中生活
- 患者入科健康宣教
- springboot影评情感分析可视化及系统的设计与实现-答辩
- 保密管理制度预案
- 医疗机构小儿推拿技术规范-公示稿
- 焊接过程化学反应
- 手术体位安全管理制度
- 江苏省连云港市2024年中考语文试题(解析版)
- 园艺植物遗传育种 课件 第八章 诱变育种
- 2025年合作双方正式合同范文
- 国企项目投资合同
- 3D电影物理知识讲课
- 垃圾中转站安全培训
- 安全交底安全技术交底培训课件
- 公司法律风险防范与管理
评论
0/150
提交评论