支持精确定位的音视频媒体数据组织实现方法

文档序号:7628518阅读:291来源:国知局
专利名称:支持精确定位的音视频媒体数据组织实现方法
技术领域
本发明涉及一种用于信息技术领域的数字音视频编解码标准相关的AVS媒体播放方法,尤指一种实现可精确定位的AVS媒体数据播放方法。
背景技术
数字音视频编解码标准是数字音视频产业的共性基础标准,具有巨大的产业需求。在未来的五到十年,我国的(高清晰度)数字电视产业、高密度光盘产业、宽带多媒体应用和第三代移动通信产业将大规模高速发展,成为影响国民经济的重要产业群。2008年北京奥运会将成为高清晰度电视广播和移动多媒体应用的里程碑。
我国牵头制定的数字音视频编解码技术标准AVS(Audio Video codingStandard)代表了当前的国际先进水平。AVS标准为我国构建“技术→专利→标准→芯片与软件→整机与系统制造→数字媒体运营与文化产业”的数字音视频产业链条提供了重要机遇。
音视频媒体的解码和播放是数字音视频编解码技术标准的重要部分,也是用户使用最多的部分。实现一种可以精确定位的音视频媒体播放系统对于推动AVS的产业化具有重要的意义。而目前,还没有一种实现精确定位的AVS媒体数据播放方法。
由于AVS节目流(PS)文件是由一个个PS(节目码流Program Stream)包组成,音频视频同步通过PES(Packetized Elementary Stream)包中的PTS(PresentationTime Stamp)完成。有的PES包中含有PTS,而有的包中没有。由于PTS是线性增长的,而视频序列的码率变化很大,导致PTS在节目流中呈非线性出现。这就给文件快速定位、实现场景跳转、快速拖动带来一定麻烦。

发明内容
本发明的目的是克服现有技术的不足,提供一种为实现AVS节目流的快速定位、支持场景跳转和快速拖动的方法。
本发明的目的是通过如下的技术方案实现的
支持精确定位的音视频媒体数据组织实现方法,包括如下步骤1)遍历整个AVS节目流文件,建立所有I帧的索引信息,并把这个索引信息添加到AVS节目流文件的末尾,在播放AVS节目流的时候预先载入这个索引信息;2)根据用户进行快速定位、场景跳转和快速拖动等操作,确定播放点的位置和时间;3)根据步骤2)中得到的播放点的位置和步骤1)中索引信息列表,使用同比例搜索法找到离播放点最近的I帧所在的PS包,从而找到这个I帧所在的PS包在AVS节目流文件中的起始位置和时间戳(PTS);4)根据步骤3)中得到的播放点的I帧的时间和位置,系统自动定位到AVS节目流的相应位置进行播放。
在上述步骤中,进一步地,步骤1)中的“建立所有I帧的索引信息”是通过如下步骤进行的(1)定义索引项;(2)定义AVS节目流文件格式,在原有PS文件结束位置加上索引标志符;(3)生成索引项;在上述步骤中,进一步地,步骤3)中的“使用同比例搜索法找到离播放点最近的I帧”是通过以下步骤得到的(1)根据播放点的位置,系统得到这个播放点在整个节目流中的大致位置和时间;(2)根据1中得到的大致位置,在I帧索引信息列表中按照同样的比例关系找到其大致位置,然后在这个大致位置的附近找到时间最相近的索引项;(3)在2中找到索引项的基础上,可以直接从索引项中读出I帧在AVS节目流文件中的位置和相对应的时间戳(PTS)。
本发明提供的支持精确定位的AVS音视频媒体数据组织和实现方法,通过预先一次性遍历AVS节目流文件,建立I帧的索引文件,在原来的节目流的基础上,在文件的结尾处加入I帧索引新系列表;然后在每次载入AVS节目流的时候,先读入I帧索引信息列表,用户在进行快速定位、场景跳转和快速拖动等操作时,系统自动在I帧索引信息中找到播放点的I帧,找到这个I帧在AVS节目流中的准确位置,最后系统直接定位到这个位置,并用索引信息中的PTS实现同步音视频的同步播放。
与现有技术相比,本发明的优点在于
本方法的优点就在于可以一次性生成索引信息并绑定到节目流的结尾,既可以解决精确定位的问题,又保证了AVS节目流的标准性,从而既可以在带有精确定位功能的播放起中实现AVS节目流的快速定位、场景跳转和快速拖动等功能,同时也不影响不支持精确定位的播放起播放AVS节目流。同时由于索引信息和节目流保存在一起,所以不需要在每次播放时反复遍历整个AVS节目流,直接根据精确的索引信息就可以准确定位到相应的位置。
具体实施例方式
下面结合附图
具体实施方式
对本发明作进一步详细描述支持精确定位的AVS音视频媒体数据组织和实现方法,包括如下步骤1)遍历整个AVS节目流文件,建立所有I帧的索引信息,并把这个索引信息添加到AVS节目流文件的末尾,在播放AVS节目流的时候预先载入这个索引信息;以C++语言为例,在此步骤1)中的“建立所有I帧的索引信息”通过如下步骤进行的(1)索引项定义Index信息定义如下struct INDEXINFO{LONGLONG llFilePoint;//索引所定义的点在文件中的位置;LONGLONG llCurrPts;//紧挨的文件指针后的第一个时间戳Pts;}要求FilePoint指向PS包开始的位置,该包中包含一个I帧的起始码。
(2)AVS节目流文件格式定义在原有PS文件结束位置加上Index标志符FFFF,结束位置为00 00 01 FA,Idx Num为UINT型数据,表示在该文件中索引的个数,如下表所示。

在上表中PS File Stream为AVS文件节目流,FF FF为索引项开始的十六进制标志符,00 00 01 FA为索引项结束的十六进制标志服符,Idx Num为所有索引项列表。
(3)索引项的生成本领域技术人员可以依据现有技术实现生成索引的过程,此处不再赘述,但要求索引项中llFilePoint项必须是PS包的起始位置,同时由于含有PTS的包在文件中会有很多,在建立索引的时候应该对总数进行限制(32位Idex_Num最多可以表示232即4G个索引),并将最终的索引数显示在Idx_Num项中。索引的生成过程可以引入关键帧识别算法或场景识别算法等,但llFilePoint应该是在此帧之前的I帧所在的PS包的起始位置。
2)根据用户进行快速定位、场景跳转和快速拖动等操作,确定播放点的位置和时间;3)根据2中得到的播放点的位置和1中索引信息列表,使用同比例搜索法找到离播放点最近的I帧所在的PS包,从而找到这个I帧所在的PS包在AVS节目流文件中的起始位置和时间戳;此处步骤3)中的“使用同比例搜索法找到离播放点最近的I帧”是通过以下步骤得到的(1)根据播放点的位置,系统得到这个播放点在整个节目流中的大致位置和时间;(2)根据1中得到的大致位置,在I帧索引信息列表中按照同样的比例关系找到其大致位置,然后在这个大致位置的附近找到时间最相近的索引项;(3)在2中找到索引项的基础上,可以直接从索引项中读出I帧在AVS节目流文件中的位置和相对应的时间戳;4)根据3中得到的播放点的I帧的时间和位置,系统自动定位到AVS节目流的相应位置进行播放。
本发明在不同平台有不同实现方式,本实施例以DirectShow Filter的框架为例,说明这个过程,播放程序包括三个DirectShow FilterFile Reader、PS Demuxer、AVS Video Decoder,具体步骤如下(1)在程序启动初始化的同时,File Reader将索引信息(Index Content)中的信息读入到一个链表中,当拖动动作发生的时候得到新的起始时间(StartTime);(2)PS Demuxer根据这个起始时间(Start Time)去查链表,在链表中找到跟该起始时间最接近的当前时间戳(currPts),然后根据该当前时间戳找到新的文件起始位置,通知File Reader Filter从新的位置读取数据,同时向AVS DecoderFilter发消息,通知发生了拖动事件(3)AVS Video Decoder当收到拖动消息以后,解码暂停,等待数据;如果得到的数据是封闭GOP,且含有I帧起始码(00 00 01 B3),则扔掉前端无用数据开始解码;如果得到的数据是封闭GOP,但数据包中不含有I帧,或者I帧数据不全,则等待数据;如果得到的数据是开放GOP,也即是,I帧后面的P帧有可能参考I帧之前的P帧,那么解码器从收到的第一个I帧开始解码,在解第二个I帧以后才开始显示,这期间,用黑屏输出。因为开放GOP在重新开始解码以后可能出现花屏现象,一般来说,开放GOP重新开始解码以后,在第二个GOP后图像能恢复正常。
利用本发明的方法对150个小时的AVS节目流进行了测试,结果表明音视频保持同步,而且达到零延迟,实现了可精确定位,支持快速定位、场景跳转和快速拖动等功能的AVS节目播放。
本发明实现了一种支持精确定位的AVS音视频媒体数据组织方法,具有结构简单、实现简单、定位精确、快速定位等特点。实验表明利用本发明提出的方法搭建的AVS播放系统,极大地方便了节目的浏览,可以实现精确定位和零延迟的播放系统。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.支持精确定位的音视频媒体数据组织实现方法,包括如下步骤1)遍历整个AVS节目流文件,建立所有I帧的索引信息列表,并把这个索引信息添加到AVS节目流文件的末尾,在播放AVS节目流的时候首先载入这个索引信息;2)根据用户进行快速定位、场景跳转和快速拖动等操作,确定播放点的位置和时间;3)根据步骤2)中得到的播放点的位置和步骤1)中索引信息列表,使用同比例搜索法找到离播放点最近的I帧所在的节目流包,从而找到这个I帧所在的节目流包在AVS节目流文件中的起始位置和时间戳;4)根据步骤3)中得到的播放点的I帧的时间和位置,系统定位到AVS节目流的相应位置进行播放。
2.根据权利要求1所述支持精确定位的音视频媒体数据组织实现方法,其特征在于,所述步骤1)中的“建立所有I帧的索引信息”是通过如下步骤进行的(1)定义索引项;(2)定义AVS节目流文件格式,在原有节目流文件结束位置加上索引标志符;(3)生成索引项。
3.根据权利要求1所述支持精确定位的音视频媒体数据组织实现方法,其特征在于,所述步骤3)中的“使用同比例搜索法找到离播放点最近的I帧”是通过以下步骤得到的(1)根据播放点的位置,系统得到这个播放点在整个节目流中的大致位置和时间;(2)根据步骤(1)中得到的大致位置,在I帧索引信息列表中按照同样的比例关系找到其大致位置,然后在这个大致位置的附近找到时间最相近的索引项;(3)在步骤(2)中找到索引项的基础上,直接从索引项中读出I帧在AVS节目流文件中的位置和相对应的时间戳。
4.根据权利要求3所述支持精确定位的音视频媒体数据组织实现方法,在DirectShow Filter框架中,播放程序包括三个DirectShow FilterFile Reader、PS Demuxer、AVS Video Decoder,具体步骤如下(1)在程序启动初始化的同时,File Reader将索引信息中的信息读入到一个链表中,当拖动动作发生的时候得到新的起始时间;(2)PS Demuxer根据这个起始时间去查链表,在所述链表中找到跟该起始时间最接近的当前时间戳,然后根据该当前时间戳找到新的文件起始位置,通知FileReader Filter从新的位置读取数据,同时向AVS Decoder Filter发消息,通知发生了拖动事件;(3)AVS Video Decoder当收到拖动消息以后,解码暂停,等待数据;如果得到的数据是封闭GOP,且含有I帧起始码,则扔掉前端无用数据开始解码;如果得到的数据是封闭GOP,但数据包中不含有I帧,或者I帧数据不全,则等待数据;如果得到的数据是开放GOP,解码器就从收到的第一个I帧开始解码,在解第二个I帧以后才开始显示,这期间,用黑屏输出。
全文摘要
本发明公开了一种支持精确定位的音视频媒体数据组织实现方法,包括步骤(1)遍历整个AVS节目流文件,建立所有I帧的索引信息,并把这个索引信息添加到AVS节目流文件的末尾,在播放AVS节目流的时候预先载入这个索引信息;(2)根据用户进行快速定位、场景跳转和快速拖动等操作,确定播放点的位置和时间;(3)使用同比例搜索法找到离播放点最近的I帧所在的PS包,从而找到这个I帧所在的PS包在AVS节目流文件中的起始位置和时间戳;(4)根据得到的播放点的I帧的时间和位置,系统自动定位到AVS节目流的相应位置进行播放。本方法的优点在于解决精确定位的问题,保证了AVS节目流的标准性。
文档编号H04N7/26GK1980390SQ20051012765
公开日2007年6月13日 申请日期2005年12月7日 优先权日2005年12月7日
发明者高文, 陈熙霖, 侯金亭, 魏勇刚, 呼大明, 杨长水 申请人:联合信源数字音视频技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1