一种在ps流以及流媒体中支持背景帧随机访问的方法

文档序号:9420752阅读:505来源:国知局
一种在ps流以及流媒体中支持背景帧随机访问的方法
【技术领域】
[0001]本发明涉及视频编解码系统层技术,尤其涉及一种视频编解码中PS流随机访问以及流媒体文件格式以及随机访问的方法。
【背景技术】
[0002]在视频编码技术中,通过利用时间域和空间域的预测来消除视频信息在时间和空间上的冗余。帧间预测技术是一种普遍应用在视频编解码领域的技术。帧间预测利用已编码帧与当前帧所包含信息存在极大的冗余这一特点,采用运动估计,能够极大地对视频进行压缩。
[0003]而对于摄像头固定的一类视频(例如监控视频,视频会议等),存在着一些不同于常规视频的特点。主要有:存在着大量静态背景;固定场景,场景内容多样;视频时间长,数据量大;一定时间内光照变化缓慢等。
[0004]针对上述特点,人们提出了相应的编码技术。在HEVC (High Efficiency VideoCoding)以及H.264中,都存在着长期参考帧技术。这种技术将某一重要的帧作为长期参考帧,后续编码的帧多可以参考长期参考帧进行解码。对于监控视频,这一长期参考帧可以是一帧非常好的背景帧,这样后续编码的帧都可以利用长期参考帧的信息编码它们的背景。然而,长期参考帧不一定是完美的背景帧,所以它的参考价值很大程度上限制于其背景图像质量的好坏。针对上述问题,研究人员提出了背景帧技术,利用背景建模构建出一帧背景帧。为了更大程度地发挥背景帧的作用,原先是帧内预测的帧(I帧),现在也能参考背景帧进行预测和编码(S帧)。这带来了一个问题,当这个S帧是随机访问点,而随机访问又真正发生时,S帧的参考帧缓存中不存在S帧需要参考的背景帧,我们无法正确地解码当前图像以及其后续图像。
[0005]在现有的技术中,没有明确标明发生随机访问的S帧该到整个序列码流哪个位置找到背景帧的码流。指示规定S帧应该参考最近解码的背景帧进行解码。如果要找到这个最近解码的背景帧的码流,则需要逐字节地在码流中往回搜索,直到找到背景帧码流的起始点,这需要非常大的代价,效率十分低下。

【发明内容】

[0006]本发明的目的在于针对现有背景帧技术所存在的不足之处,即当随机访问发生时,无法及时进行解码,提出了在PS流根据intra_coded_indicator语法元素进行随机访问的方法。以及在流媒体文件中增加scene sample box信息支持随机访问。该方法能使在随机访问真正发生时,快速找到解码所需的背景帧。解码背景帧,然后根据背景帧解码出当前帧。
[0007]本发明的第一目的在于提出一种PS流的随机访问方法,该方法包括:
[0008]将文件指针指向随机访问的时间点在PS流文件中对应的位置,记录该位置为起始位置;
[0009]从所述起始位置往回搜索PS流文件,找到第一个节目流目录表;
[0010]读取该节目流目录表的内容,找到节目流目录表中注释的离所述起始位置最近的访问单元,所述访问单元的intra_coded_indicator语法元素的值为“O”,记为访问单元I ;
[0011]继续查找节目流目录表,找到距离访问单元I最近,且在访问单元I之前的,并且intra_coded_indicator语法元素的值为“I”的被注释访问单元,记为访问单元2 ;
[0012]在节目流目录表中找到访问单元I和访问单元2在PS流文件中的位置信息,首先解码访问单元2的视频码流,然后解码访问单元I的视频码流,然后正常解码访问单元I之后的码流。
[0013]本发明的第二目的在于提出一种流媒体文件格式,在流媒体文件中,存在一个scene sample box ;所述scene sample box中包括整个流媒体文件中的scene sample的sample 序号。
[0014]本发明的第三目的在于提出一种在流媒体文件中进行随机访问的方法,该方法包括:
[0015]确定给定时间的sample序号;
[0016]检查sync sample box来发现这个sample序号之后的key frame sample,记为sampleI ;
[0017]查找 scene sample box 来发现 sample I 序号之前的 scene frame sample,记为sample2 ;
[0018]根据samplel和sample2的值,在文件中定位到samplel和sample2 ;取出samplel和sample2码流,首先解码sample2对应的码流,然后以sample2为参考巾贞解码samplel,然后顺序解码码流。
[0019]本发明的有益效果是,本发明的方法提出了在PS流根据intra_coded_indicator语法元素进行随机访问的方法;以及在流媒体文件中增加scene sample box信息支持随机访问。该方法能使在随机访问真正发生时,快速找到解码所需的背景帧。该技术解决了背景帧技术中随机访问发生时,无法及时进行解码的问题。
【附图说明】
[0020]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1为本发明实施例提供的一种PS流随机访问流程图;
[0022]图2为本发明实施例提供的一种流媒体文件中scene sample box示意图;
[0023]图3为本发明实施例提供的一种在流媒体文件中进行随机访问的方法的流程示意图;
[0024]图4为本发明实施例的节目流目录的语法表。
【具体实施方式】
[0025]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0026]实施例1
[0027]图1为本发明实施例提供的一种PS流随机访问方法流程图。本实施例提供的PS流随机访问方法包括:
[0028]步骤1,将文件指针指向随机访问的时间点在PS流文件中对应的位置,记录该位置为起始位置;
[0029]具体地,一种可能的情况为,用户在选择随机访问某个时间点的视频时,首先根据时间点粗略地将指针指向文件的某个位置,一种可能的方法为,PS流视频长度为90分钟,用户想随机访问45分钟时刻的视频。此时,首先将文件指针指向文件的中间位置(45/90=0.5),然后搜索该位置附近的分组基本流(PES)包,解析PES包得到PTS(presentat1n_time_stamp)信息,找到对应于45分钟时播放的PES包,该PES包所在的PS包的头一个字节位置即为文件指针所指向的初始位置。
[0030]步骤2,从所述起始位置往回搜索PS流文件,找到第一个节目流目录表;
[0031]具体地,从步骤I得到的初始位置开始,往回搜索PS流文件,找到第一个节目流目录表。该节目流目录表所在的PES包其stream_id为OxFF。
[0032]步骤3,读取该节目流目录表的内容,找到节目流目录表中注释的离所述起始位置最近的访问单元,所述访问单元的(巾贞内预测标识)intra_coded_indicator语法元素的值为“O”,记为访问单元I ;
[0033]具体地,在节目流目录表中注释了多个访问单元的信息,包括访问单元距离当前PES包包头首字节的偏移,完全解码访问单元所需的字节数,访问单元的PTS信息,以及访问单元是不是帧内预测编码的。找到距离起始位置最近的访问单元,一种可能的情况为该访问单元的intra_C0ded_indiCat0r语法元素的值为“0”,记为访问单元I。在背景帧技术中,该访问单元I即为S帧(只参考背景帧进行解码的帧)。
[0034]步骤4,继续查找节目流目录表,找到距离访问单元I最近,且在访问单元I之前的,并且intra_coded_indicator语法元素的值为“I”的被注释访问单元,记为访问单元2 ;
[0035]具体地,与步骤3类似,现在要找到访问单元I之前的,且距离访问单元I最近的,并且intra_coded_indicator语法元素的值为“I”的被注释访问单元,记为访问单元2。在背景帧技术中,该访问单元2即为背景帧(G/GB帧)的码流。
[0036]步骤5,在节目流目录表中找到访问单元I和访问单元2在PS流文件中的位置信息,首先解码访问单元2的视频码流,然后解码访问单元I的视频码流,然后正常解码访问单元I之后的码流;
[0037]具体地,首先根据访问单元I和访问单元2的位置信息,找到这两个访问单元。然后根据解码这两个访问单元所需的字节数,第一步,解码访问单元2,(在背景帧技术中,即背景帧码流所在的访问单元);第二步,以第一步解码的背景帧作为参考帧,解码访问单元1,(在背景帧技术中,即S帧码流所在的访问单元);解码完访问单元I后,接下来顺序解码码流即可正常地播放视频。
[0038]实施例2
[0039]图2为在流媒体文件中场景样本盒子(scene sample box)的示意图。本实施例描述的流媒体文件scene sample box包括:
[0040]所述scene sample box中包括整个流媒体文件中的场景巾贞(scene sample)的sample序号。具体地,尺寸表示这个box的字节数;该box的类型Scene sample box ;版本表示这个box的版本;标志的值在这里为O ;条目数目表Scenesample的数目;每个Scenesample对应于一个背景巾贞的sample序号。
[0041]—种可能的情况为,在制作流媒体文件时,扫描ES (element stream)流文件,如果扫描到背景巾贞,则将背景巾贞的sample序号写到scene sample box中的表格中,记录该背景中贞的sample序号。
[0042]实施例3
[0043]图3为一种在流媒体文件中进行随机访问的方法的流程示意图,本实施例提供的流媒体文件随机访问方法,该方法包括:
[0044]步骤I,确定给定时间的samp I e序号;
[0045]具体地,给定一个时间点,得到其对应于此视频的时间,不妨假设其对应的视频时间为600.通过time to sample box,我们得至Ij sample的durat1n是40,从而得出需要寻找第 600/40 = 15+1 = 16 个 sample。
[0046]步骤2,检查sync sample box来发现这个sample序号之后的key frame sample,记为 sample
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1