CN105142036B - 一种在ps流以及流媒体中支持背景帧随机访问的方法 - Google Patents
一种在ps流以及流媒体中支持背景帧随机访问的方法 Download PDFInfo
- Publication number
- CN105142036B CN105142036B CN201410253685.0A CN201410253685A CN105142036B CN 105142036 B CN105142036 B CN 105142036B CN 201410253685 A CN201410253685 A CN 201410253685A CN 105142036 B CN105142036 B CN 105142036B
- Authority
- CN
- China
- Prior art keywords
- frame
- stream
- random access
- sample
- background frames
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种在PS流以及流媒体文件中支持背景帧随机访问的方法,其中,该方法包括:一方面,PS流发生随机访问时,首先查找PS流中的节目流目录表,然后根据节目流目录表中对背景帧(G/GB帧)以及只参考背景帧的帧(S帧)的注释,找到所需的背景帧,然后解码。另一方面,在流媒体文件中,增加scene sample box来指明背景帧的sample序号,解码视频时,当发生随机访问时,根据scene sample box找到背景帧,然后进行后续的解码。本发明解决了现有的背景帧编码技术中,当随机访问发生时,无法正常解码随机访问点图像,并进而解码后续图像的问题。
Description
技术领域
本发明涉及视频编解码系统层技术,尤其涉及一种视频编解码中PS流随机访问以及流媒体文件格式以及随机访问的方法。
背景技术
在视频编码技术中,通过利用时间域和空间域的预测来消除视频信息在时间和空间上的冗余。帧间预测技术是一种普遍应用在视频编解码领域的技术。帧间预测利用已编码帧与当前帧所包含信息存在极大的冗余这一特点,采用运动估计,能够极大地对视频进行压缩。
而对于摄像头固定的一类视频(例如监控视频,视频会议等),存在着一些不同于常规视频的特点。主要有:存在着大量静态背景;固定场景,场景内容多样;视频时间长,数据量大;一定时间内光照变化缓慢等。
针对上述特点,人们提出了相应的编码技术。在HEVC(High Efficiency VideoCoding)以及H.264中,都存在着长期参考帧技术。这种技术将某一重要的帧作为长期参考帧,后续编码的帧多可以参考长期参考帧进行解码。对于监控视频,这一长期参考帧可以是一帧非常好的背景帧,这样后续编码的帧都可以利用长期参考帧的信息编码它们的背景。然而,长期参考帧不一定是完美的背景帧,所以它的参考价值很大程度上限制于其背景图像质量的好坏。针对上述问题,研究人员提出了背景帧技术,利用背景建模构建出一帧背景帧。为了更大程度地发挥背景帧的作用,原先是帧内预测的帧(I帧),现在也能参考背景帧进行预测和编码(S帧)。这带来了一个问题,当这个S帧是随机访问点,而随机访问又真正发生时,S帧的参考帧缓存中不存在S帧需要参考的背景帧,我们无法正确地解码当前图像以及其后续图像。
在现有的技术中,没有明确标明发生随机访问的S帧该到整个序列码流哪个位置找到背景帧的码流。指示规定S帧应该参考最近解码的背景帧进行解码。如果要找到这个最近解码的背景帧的码流,则需要逐字节地在码流中往回搜索,直到找到背景帧码流的起始点,这需要非常大的代价,效率十分低下。
发明内容
本发明的目的在于针对现有背景帧技术所存在的不足之处,即当随机访问发生时,无法及时进行解码,提出了在PS流根据intra_coded_indicator语法元素进行随机访问的方法。以及在流媒体文件中增加scene sample box信息支持随机访问。该方法能使在随机访问真正发生时,快速找到解码所需的背景帧。解码背景帧,然后根据背景帧解码出当前帧。
本发明的第一目的在于提出一种PS流的随机访问方法,该方法包括:
将文件指针指向随机访问的时间点在PS流文件中对应的位置,记录该位置为起始位置;
从所述起始位置往回搜索PS流文件,找到第一个节目流目录表;
读取该节目流目录表的内容,找到节目流目录表中注释的离所述起始位置最近的访问单元,所述访问单元的intra_coded_indicator语法元素的值为“0”,记为访问单元1;
继续查找节目流目录表,找到距离访问单元1最近,且在访问单元1之前的,并且intra_coded_indicator语法元素的值为“1”的被注释访问单元,记为访问单元2;
在节目流目录表中找到访问单元1和访问单元2在PS流文件中的位置信息,首先解码访问单元2的视频码流,然后解码访问单元1的视频码流,然后正常解码访问单元1之后的码流。
本发明的第二目的在于提出一种流媒体文件格式,在流媒体文件中,存在一个scene sample box;所述scene sample box中包括整个流媒体文件中的scene sample的sample序号。
本发明的第三目的在于提出一种在流媒体文件中进行随机访问的方法,该方法包括:
确定给定时间的sample序号;
检查sync sample box来发现这个sample序号之后的key frame sample,记为sample1;
查找scene sample box来发现sample1序号之前的scene frame sample,记为sample2;
根据sample1和sample2的值,在文件中定位到sample1和sample2;取出sample1和sample2码流,首先解码sample2对应的码流,然后以sample2为参考帧解码sample1,然后顺序解码码流。
本发明的有益效果是,本发明的方法提出了在PS流根据intra_coded_indicator语法元素进行随机访问的方法;以及在流媒体文件中增加scene sample box信息支持随机访问。该方法能使在随机访问真正发生时,快速找到解码所需的背景帧。该技术解决了背景帧技术中随机访问发生时,无法及时进行解码的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种PS流随机访问流程图;
图2为本发明实施例提供的一种流媒体文件中scene sample box示意图;
图3为本发明实施例提供的一种在流媒体文件中进行随机访问的方法的流程示意图;
图4为本发明实施例的节目流目录的语法表。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
图1为本发明实施例提供的一种PS流随机访问方法流程图。本实施例提供的PS流随机访问方法包括:
步骤1,将文件指针指向随机访问的时间点在PS流文件中对应的位置,记录该位置为起始位置;
具体地,一种可能的情况为,用户在选择随机访问某个时间点的视频时,首先根据时间点粗略地将指针指向文件的某个位置,一种可能的方法为,PS流视频长度为90分钟,用户想随机访问45分钟时刻的视频。此时,首先将文件指针指向文件的中间位置(45/90=0.5),然后搜索该位置附近的分组基本流(PES)包,解析PES包得到PTS(presentation_time_stamp)信息,找到对应于45分钟时播放的PES包,该PES包所在的PS包的头一个字节位置即为文件指针所指向的初始位置。
步骤2,从所述起始位置往回搜索PS流文件,找到第一个节目流目录表;
具体地,从步骤1得到的初始位置开始,往回搜索PS流文件,找到第一个节目流目录表。该节目流目录表所在的PES包其stream_id为0xFF。
步骤3,读取该节目流目录表的内容,找到节目流目录表中注释的离所述起始位置最近的访问单元,所述访问单元的(帧内预测标识)intra_coded_indicator语法元素的值为“0”,记为访问单元1;
具体地,在节目流目录表中注释了多个访问单元的信息,包括访问单元距离当前PES包包头首字节的偏移,完全解码访问单元所需的字节数,访问单元的PTS信息,以及访问单元是不是帧内预测编码的。找到距离起始位置最近的访问单元,一种可能的情况为该访问单元的intra_coded_indicator语法元素的值为“0”,记为访问单元1。在背景帧技术中,该访问单元1即为S帧(只参考背景帧进行解码的帧)。
步骤4,继续查找节目流目录表,找到距离访问单元1最近,且在访问单元1之前的,并且intra_coded_indicator语法元素的值为“1”的被注释访问单元,记为访问单元2;
具体地,与步骤3类似,现在要找到访问单元1之前的,且距离访问单元1最近的,并且intra_coded_indicator语法元素的值为“1”的被注释访问单元,记为访问单元2。在背景帧技术中,该访问单元2即为背景帧(G/GB帧)的码流。
步骤5,在节目流目录表中找到访问单元1和访问单元2在PS流文件中的位置信息,首先解码访问单元2的视频码流,然后解码访问单元1的视频码流,然后正常解码访问单元1之后的码流;
具体地,首先根据访问单元1和访问单元2的位置信息,找到这两个访问单元。然后根据解码这两个访问单元所需的字节数,第一步,解码访问单元2,(在背景帧技术中,即背景帧码流所在的访问单元);第二步,以第一步解码的背景帧作为参考帧,解码访问单元1,(在背景帧技术中,即S帧码流所在的访问单元);解码完访问单元1后,接下来顺序解码码流即可正常地播放视频。
实施例2
图2为在流媒体文件中场景样本盒子(scene sample box)的示意图。本实施例描述的流媒体文件scene sample box包括:
所述scene sample box中包括整个流媒体文件中的场景帧(scene sample)的sample序号。具体地,尺寸表示这个box的字节数;该box的类型Scene sample box;版本表示这个box的版本;标志的值在这里为0;条目数目表Scenesample的数目;每个Scenesample对应于一个背景帧的sample序号。
一种可能的情况为,在制作流媒体文件时,扫描ES(element stream)流文件,如果扫描到背景帧,则将背景帧的sample序号写到scene sample box中的表格中,记录该背景帧的sample序号。
实施例3
图3为一种在流媒体文件中进行随机访问的方法的流程示意图,本实施例提供的流媒体文件随机访问方法,该方法包括:
步骤1,确定给定时间的sample序号;
具体地,给定一个时间点,得到其对应于此视频的时间,不妨假设其对应的视频时间为600.通过time to sample box,我们得到sample的duration是40,从而得出需要寻找第600/40=15+1=16个sample。
步骤2,检查sync sample box来发现这个sample序号之后的key frame sample,记为sample1;
具体地,在sync sample box中记录了每个关键帧(在背景帧技术中为S帧)的sample序号。在这些序号中找到大于步骤一sample的最小sample序号的sample值,这个关键帧sample记为sample1.
步骤3,查找scene sample box来发现sample1序号之前的scene frame sample,记为sample2;
具体地,在scene sample box中记录了每个背景帧的sample序号,找到比sample1小的最大的背景帧sample序号,该背景帧sample记为sample2。
步骤4,根据sample1和sample2的值,在文件中定位到sample1和sample2;取出sample1和sample2码流,首先解码sample2对应的码流,然后以sample2为参考帧解码sample1,然后顺序解码码流。
具体地,一种可能的情况为,检查sample-to-chunk box来发现对应该sample1的chunk1,sample2对应chunk2;从chunk offset box中提取chunk1和chunk2的偏移量;利用sample size box找到sample1和2在chunk1和2内的偏移量和sample的大小;根据sample2在文件中的偏移找到sample2的位置,取出码流,解码;然后根据sample1在文件中的偏移找到sample1的位置,取出码流,以sample2解码得到的帧为参考帧,解码当前帧,然后正常解码接下来的帧。
实施例4
该实施例以AVS系统层的节目流为例,说明如何在节目流中支持AVS2监控档次的随机访问,以及随机访问发生时,如何进行随机访问。
在AVS2监控档次中,S帧为只参考背景帧(G/GB帧)的帧,随机访问点可以编码为S帧。因为S帧是帧间预测的帧,无法进行独立解码,如果从S帧开始随机访问视频内容,则需要先找到S帧参考的G/GB帧。
在AVS-P1系统[3]中,节目流目录的语法如图4所示。节目流目录对节目流中的访问单元进行了注释。在图4的节目流目录中,包括以下信息。
访问单元数字段 number_of_access_units
该字段为15位。表示该目录PES分组包中索引的访问单元数。
PES头位置偏移符号字段 PES_header_position_offset_sign
该字段为1位。它用作紧跟其后描述的PES_header_position_offset的算术符号。值‘0’表示PES_header_position_offset是一个正的偏移量;值‘1’表示PES_header_position_offset是一个负的偏移量。
PES头位置偏移字段 PES_header_position_offset
该字段为44位无符号整数。给出了包含被索引访问单元的PES分组包的首字节的地址偏移字节数。该地址偏移是相对于包含该字段的PES分组包的起始码的首字节的。值‘0’表示不存在被索引访问单元。
引用偏移字段 reference_offset
该字段为16位无符号整数。给出了被索引访问单元的首字节的位置。该字段是相对于包含被索引访问单元的PES分组包的首字节的,且以字节为单位。
展现时间戳字段 PTS(presentation_time_stamp)
该字段为33位,表示被引用访问单元的PTS。PTS字段的编码语义见6.3.7中的描述。
待读字节字段 bytes_to_read
该字段为23位无符号整数。表示节目流中在reference_offset指向的字节之后为了对访问单元完全解码所需的字节数。该值包含复用在系统层中的任何字节,包括来自于其它流的信息。
帧内编码指示符字段 intra_coded_indicator
该字段为1位,标志位。置‘1’时表示被引用的访问单元未进行预测编码。它独立于解码访问单元所需的其余编码参数。对于包含来源于GB/T17975.2或GB/T20090.2以外数据的所有PES分组包,该字段未定义。见图4。
通过节目流目录,我们可以快速地定位目录中索引的访问单元,对该访问单元进行解码。注意语法元素“帧内编码指示符字段intra_coded_indicator”,如果索引的目录对应的访问单元为G/GB帧,则intra_coded_indicator值为1;如果索引的目录对应的访问单元为S帧,则intra_coded_indicator值为0;
当随机访问发生时,首先根据索引目录找到对应的S帧,然后从索引目录中找到离S帧最近的G/GB帧,先解码G/GB帧,然后解码S帧。
实施例5
AVS的文件格式是基于ISO文件格式的,借鉴同样基于ISO文件格式的MP4文件格式,为了处理AVS2监控档次的随机访问,做如下的修改:
MP4格式文件通过sync sample box来指明关键帧的sample序号,根据sample序号找到关键帧。为了解决AVS2监控的随机访问问题,我们可以借鉴这一方法,设计解决方案。
在stbl box下面增加scene sample box。“scene sample box”确定media中的背景帧的sample序号。仿照sync sample box表格设计,scene sample box表格设计如图2所示。
下面是一个文件中实现随机访问的例子:
将S帧作为key frame,即随机访问点。
1、确定给定时间的sample序号;
2、检查sync sample box来发现这个sample序号之后的key frame sample,记为sample1;
3、查找scene sample box来发现sample1序号之前的scene frame sample,记为sample2;
4、检查sample-to-chunk box来发现对应该sample1的chunk1,sample2对应chunk2;
5、从chunk offset box中提取chunk1和chunk2的偏移量;
6、利用sample size box找到sample1和2在chunk1和2内的偏移量和sample的大小;
7、根据sample2在文件中的偏移找到sample2的位置,取背景帧码流,解码;然后根据sample1在文件中的偏移找到sample1的位置,取S帧码流,以背景帧为参考帧,解码S帧。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (1)
1.一种在流媒体文件中进行随机访问的方法,其特征在于,该方法包括:
确定给定时间的sample序号;
检查sync sample box来发现这个sample序号之后的key frame sample,记为sample1;
查找scene sample box来发现sample1序号之前的scene frame sample,记为sample2,其中scene sample box表示场景帧样本盒子,所述场景帧样本盒子中包括整个流媒体文件中的场景帧的样本序号;
根据sample1和sample2的值,在文件中定位到sample1和sample2;取出sample1和sample2码流,首先解码sample2对应的码流,然后以sample2为参考帧解码sample1,然后顺序解码码流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410253685.0A CN105142036B (zh) | 2014-06-09 | 2014-06-09 | 一种在ps流以及流媒体中支持背景帧随机访问的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410253685.0A CN105142036B (zh) | 2014-06-09 | 2014-06-09 | 一种在ps流以及流媒体中支持背景帧随机访问的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105142036A CN105142036A (zh) | 2015-12-09 |
CN105142036B true CN105142036B (zh) | 2019-01-11 |
Family
ID=54727220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410253685.0A Active CN105142036B (zh) | 2014-06-09 | 2014-06-09 | 一种在ps流以及流媒体中支持背景帧随机访问的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105142036B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104703027B (zh) * | 2015-03-17 | 2018-03-27 | 华为技术有限公司 | 视频帧的解码方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1561111A (zh) * | 2004-02-26 | 2005-01-05 | 晶晨半导体(上海)有限公司 | 在数字视频压缩码流中快速索引播放信息的方法 |
CN101090492A (zh) * | 2006-06-15 | 2007-12-19 | 三星电子株式会社 | 用于再现压缩编码视频数据流的方法和设备 |
CN101127912A (zh) * | 2007-09-14 | 2008-02-20 | 浙江大学 | 利用动态背景帧的视频编码方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005332521A (ja) * | 2004-05-21 | 2005-12-02 | Toshiba Corp | 情報記録媒体及び情報再生装置 |
JP2007207328A (ja) * | 2006-01-31 | 2007-08-16 | Toshiba Corp | 情報記憶媒体、プログラム、情報再生方法、情報再生装置、データ転送方法、及びデータ処理方法 |
-
2014
- 2014-06-09 CN CN201410253685.0A patent/CN105142036B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1561111A (zh) * | 2004-02-26 | 2005-01-05 | 晶晨半导体(上海)有限公司 | 在数字视频压缩码流中快速索引播放信息的方法 |
CN101090492A (zh) * | 2006-06-15 | 2007-12-19 | 三星电子株式会社 | 用于再现压缩编码视频数据流的方法和设备 |
CN101127912A (zh) * | 2007-09-14 | 2008-02-20 | 浙江大学 | 利用动态背景帧的视频编码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105142036A (zh) | 2015-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6622879B2 (ja) | メディアファイルの再生装置、再生方法、及びプログラム | |
JP5100746B2 (ja) | 映像再生装置および映像再生方法 | |
EP3016378B1 (en) | Playback device and playback method | |
CN105324988B (zh) | 再现装置、再现方法以及记录介质 | |
CN101351845B (zh) | 记录装置、记录方法和记录程序、以及摄像装置、摄像方法和摄像程序 | |
JP2010161817A5 (zh) | ||
US8165455B2 (en) | Data processing apparatus and data processing method, and computer program | |
TWI543612B (zh) | 影片字幕處理裝置與方法,以及解析影片字幕之方法 | |
BRPI0708305A2 (pt) | método e aparelho para uso em um sistema de codificação de vìdeo de múltiplas visões | |
RU2015152131A (ru) | Устройство воспроизведения, способ воспроизведения и носитель записи | |
US10708581B2 (en) | Video frame decoding method and apparatus | |
CN112653904A (zh) | 一种基于pts与dts修改的快速视频裁剪方法 | |
JP2022510366A (ja) | コンテナファイルフォーマットで情報をシグナリングするための装置及び方法 | |
CN105142036B (zh) | 一种在ps流以及流媒体中支持背景帧随机访问的方法 | |
CN103379320B (zh) | 视频图像码流处理方法和设备 | |
CN101094368B (zh) | 再现装置以及再现方法 | |
US20160057452A1 (en) | Methods and devices for coding and decoding depth information, and video processing and playing device | |
JP2007049504A (ja) | 記録媒体、再生装置および再生方法 | |
RU2012141873A (ru) | Устройство обработки информации, носитель записи информации и способ обработки информации, и программа | |
CN102333242A (zh) | 一种流媒体语言信息匹配装置及方法 | |
RU2012141874A (ru) | Устройство обработки информации, носитель записи информации, способ обработки информации и программа | |
JP2004363825A (ja) | 記録再生装置、記録再生方法、その記録媒体およびプログラム | |
CN110786020A (zh) | 视频的处理方法、装置及计算机可读存储介质 | |
CN103106251B (zh) | 一种过滤显示设备不能播放的媒体文件的系统及过滤方法 | |
TW201427394A (zh) | 多媒體資料流格式、元數據產生器、編碼及解碼方法與系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |