接合mpeg流的制作方法

文档序号:7950299阅读:113来源:国知局
专利名称:接合mpeg流的制作方法
技术领域
本发明涉及一种组合两个数据流的方法。
例如,所述方法可用于MPEG4文件的任何编辑器,所述编辑器嵌入在诸如移动电话的装置上。
背景技术
当前正在研究压缩领域中两个视频流的组合,但是还没有提出实现方式。即使使用相同的参数对两个流进行编码,在MPEG4标准的情况下也不能将其进行正确拼接。实际上,MPEG4视频流包括视频对象平面VOP,每个VOP与时间戳相关联。这些时间戳对于确保时间线(time line)的连续性是必需的。在MPEG4视频流中,采用可变长度编码对所述时间戳进行编码。因此,为了确保时间线连续性,不可能仅改变每个VOP报头中的某些比特。
一种显而易见的方案对要组合的两个视频流中第二视频流的每个VOP进行解码,并且利用考虑到两个视频流中第一视频流的最后时间戳的修改时间戳来将其重新编码。
然而,这种解决方法不令人满意,这是因为一方面,它降低了第二视频流的视觉质量,另一方面它消耗了资源。

发明内容
本发明的目的是提出一种用于组合两个数据流的方法和设备,提供了比现有技术之一更好的质量。
本发明的另一个目的是提出一种用于组合两个数据流的方法和设备,提供比现有技术之一更少的资源消耗。
为此,根据发明的组合两个数据流的方法特征在于其包括
-根据之前参考时间值和当前相对时间值的整数部分,针对当前编码帧计算当前参考时间值,-根据按照第一数据流的显示顺序的最后帧的参考时间值,计算偏移时间值,以及-通过将偏移时间值与所述绝对时间值相加来修改第二数据流的特定编码帧的绝对时间值。
因而,依照本发明的方法能够在压缩领域组合两个数据流,而不用解码或编码任意编码帧,同时确保时间线连续性。因此,由于不需要完全解码和重新编码,所述方法比现有技术提供了更好的质量和更少的资源消耗。
根据本发明的实施例,该组合方法还包括步骤-根据所述第一帧的初始相对时间值,针对按照第二数据流的显示顺序的第一帧,计算修改的相对时间值,以便在第一数据流的最后帧和所述第一帧之间的时间间隔中间移动所述第一帧,-在第二数据流中添加具有空值数据内容的非编码帧,所述非编码帧与初始相对时间值相关联。
根据本发明的另一个实施例,该组合方法还包括步骤-对第一数据流的结尾处的第一编码帧集合以及第二数据流的开始处的第二编码帧集合进行解码,-按照确保第一集合和第二集合之间的平滑过渡的方式来修改第一集合和第二集合的已解码帧,对已修改解码帧进行编码,并且对其相关联的相对时间值进行编码。
有利地,根据所述另一个实施例的方法还包括步骤在已解码帧的第一集合和第二集合之间创建至少一个附加帧。第二集合的最后已解码帧也不被修改。
本发明还涉及一种用于实现组合两个数据流的方法的设备、包括这种设备的移动装置、以及包括程序指令来实现所述方法的计算机程序产品。
参考下文中描述的实施例,本发明的这些和其他方面将被描述并且显而易见。


作为示例,现在将参考附图来更详细地描述本发明,其中-图1演示了以度为单位的时间线划分;-图2示出了沿时间线的参考秒值的演变;-图3演示了根据本发明的组合方法的实施例;以及-图4演示了根据本发明的组合方法的另一实施例。
具体实施例方式
在组合两个MPEG4视频流的情况下描述本发明。然而,对于本领域技术人员来说,本发明更一般性地应用于第一数据流与第二数据流的组合是显而易见的,每个数据流包括编码帧,每个编码帧与相对时间值相关联,数据流的特定编码帧之前是绝对时间值。作为另一个示例,数据流可以是音频流。例如,绝对时间值用于对数据流的随机存取。在两个MPEG4视频流的组合的情况下,编码帧被称为视频对象平面VOP。
MPEG4针对提供一种非常灵活的编码框架,按照功能性、格式、比特率、或帧速率来覆盖较大的应用范围。关于帧速率,MPEG4支持高达65535帧每秒fps的任何速率,编码速率可变并且是非整数的。因而,不得不在比特流内传输每个VOP的合成时间,以便能够在解码器侧实现时间一致显示。考虑到帧速率覆盖的较大范围,已经设计了一种对时间进行编码的有效方式。
MPEG4视频的基本时间单元是秒。为了支持大于1fps的任何帧速率,必须定义秒的子划分,这个子划分被称作度(tick)。图1演示了时间划分。度tic是时间编码的基本元素其表示将每一个时间值表示为度的整数。利用vop_time_increment_resolution vtir字段,在视频对象层VOL报头中发送度的数目。该vtir字段指示了包含在1秒内的度的数目。因此,它给出了度的持续时间为1000/vtir ms。该vtir字段没有指示编码帧速率,它仅指示在VOL可以遇到的最大帧速率,这是因为VOP最多将对应于每个度。在图1的示例中,一秒中存在vtir=6度,因此度的持续期间是166ms。
在视频流中,还可以通过被称作GOV的特定报头(为VOP的组)来承载时间。GOV报头是承载按照小时/分钟/秒编码的绝对时间值的报头。因为它之后始终是帧内编码I-VOP(即没有参考其它VOP编码的VOP),所述GOV报头能够在视频流中进行随机存取,所以不需要之前的解码信息来开始解码。
然后,通过VOP报头的两个字段对每个VOP的合成时间(或时间戳)进行编码vop_time_increment vti和modulo_time_base mtb。Mtb字段能够确定VOP属于哪一秒,vti字段确定在该秒中VOP的多个度的提取位置。
对VOP合成时间进行差分编码这意味着相对于表示为整数秒的参考秒的值sref,对与VOP相关联的vti和mtb字段进行编码(即,vti和mtb字段给出了相对时间值)。
在底层(base layer),对于I-VOP和预测编码P-VOP(即,参考之前的P-VOP或I-VOP编码的VOP),通过舍入到次一秒(inferiorsecond)、并按照解码顺序在之前的GOV,I-VOP或P-VOP中进行解码的时间来定义这个参考秒sref。对于双向预测编码B-VOP(也就是参考之前和随后P-VOP或I-VOP编码的VOP),通过舍入到次一秒并按照显示顺序在之前的GOV,I或P-VOP中进行解码的时间来定义这个参考秒sref。图2示出了对于给定视频流的底层的参考秒sref的值的演变。在增强层,对于所有VOP,通过舍入到次一秒并按照显示顺序在之前的GOV或VOP中进行解码的时间来定义这个参考秒sref。
Mtb字段指示了舍入到次一秒的VOP合成时间和参考秒的值之间的差。在视频流中,这个mtb字段通过与跟随着‘0’的差值同样多的“1”来编码。利用能够编码vtir值所必需的比特数目来编码Vti字段。例如,如果每秒只有2个度,只有2个比特被用作编码vop_time_increment字段,而如果每秒有25个度,则需要5比特。
VOP合成时间被表示为次于vtir值的多个秒和多个度的总和。
VOP合成时间在解码每个VOP或当遇到GOV报头时被更新。
为了组合第一MPEG4视频流与第二MPEG4视频流,根据本发明的方法包括以下步骤。
在第一步骤,针对第一视频流ds1的每个编码VOP F[i](其中F是I,P或B VOP),根据由最后的GOV报头、I-VOP、P-VOP或B-VOP给出的在前参考时间值(也就是参考秒)sref[t-k],来计算合成时间或当前时间值t[i],如前所述,其中k取决于每个GOV的B帧数目和编码层(底层或增强层)、以及由数值mtb[i]和vti[i]给出的当前相对时间值的整数。换句话说,依据下列等式计算以度的数目表示的当前合成时间t[i]=(sref[i-k]+mtb[i]·vtir+vti[i])然后,针对底层的I-VOP或增强层的任何VOP,导出当前参考时间值sref[i],如下所示sref[i]=sref[i-k]+mtb[i]在第二步骤,根据按照第一视频流的显示顺序在最后VOP P[n]的参考时间值sref[n],计算偏移时间值。如下计算所述偏移时间值offoff=sref[n] 如果vti[n]<vti[n+1]off=sref[n]+1如果vti[n]≥vti[n+1]其中n+1是第二视频流ds2的第一VOP的索引。
在第三步骤,通过将偏移时间值off添加到初始绝对时间值来修改包含第二视频流ds2的GOV的初始绝对时间值tgov2_ini,以便获得修改绝对时间值tgov2_modtgov2_mod=tgov2_ini+off因此,计算了正好处于第一I-VOP I[n+1]之前的第二视频流ds1的第一GOV中承载的绝对时间值,以使第二视频流的第一VOP的合成时间紧接在第一视频流的最后VOP的合成时间之后,并且能够在显示第一视频流之后立即显示第二视频流。然后,通过添加所计算的偏移时间值来更新在第二视频流遇到的每个GOV所承载的值。
因为给出了与VOP相关联的相对时间值,作为参考秒中的位置,其可以是第一数据流的最后帧和第二数据流的第一帧之间的时间间隔(temporal gap) δt,其中多个度表示间隔δt,并且能够延伸至1秒。从端用户的视点出发,这导致了时间间隔期间第一数据流的最后一帧的冻结,然后回放恢复正常。
为了克服这个问题,根据本发明实施例的方法还包括以下步骤在第一步骤,针对第二数据流的第一帧I[n+1]计算新参考时间值sref’[n+1],即,计算mtb’[n+1]和vti’[n+1]的新值,以便I[n+1]在时间间隔的中间移动。
在图3中演示了这种情况。按照第一数据流的显示顺序的最后帧P[n]的合成时间为t[n],以及第二数据流的第一帧I[n+1]的初始合成时间为t[n+1]=t[n]+δt。如果度的数目是偶数,那么帧I[n+1]被移至合成时间t’[n+1]=t[n]+δt/2。据此导出相应的相对时间值(也就是mtb’[n+1]和vti’[n+1])。如果度的数目是奇数,那么帧I[n+1]被移至合成时间t’[n+1]=t[n]+(δt±1)/2。据此导出相应的相对时间值(也就是mtb’[n+1]和vti’[n+1])。
然后,在第二步骤,添加了新的帧NCF,例如,非编码帧(也就是具有在MPEG4标准中没有编码的空值内容的帧(也被称作VOP)。该非编码帧具有第二数据流的第一帧I[n+1]的初始合成时间t[n+1]并因此有相同的相对时间值(也就是mtb[n+1]和vti[n+1]字段的相同值)。这个非编码帧确保了第二数据流的所有随后帧的时间线的连续性。对于端用户,由于他观察到1/2时间间隔的两个冻结,这导致冻结持续时间间隔持续时间的一半的印象。
参考图4,描述了本发明的另一个实施例。根据这个实施例,该组合两个数据流的方法包括以下步骤。
在第一步骤410,对于第一数据流的结尾处的编码帧的第一集合S1和处于第二数据流的起始处的编码帧的第二集合S2进行解码。对于本领域技术人员来说显而易见的是,解码必须考虑由预测编码技术导致的限制。在MPEG4的情况下,例如,如果已经分别解码了其在前和随后参考VOP(分别由图4中的I[n-3]和P[n]表示),则只能解码B-VOP B[n-1]。类似地,如果已经解码了由图4中的I[n-3]表示的其之前的VOP,则只能解码P-VOP P[n]。编码帧的第一和第二集合构成了中间数据流。
在第二步骤420,修改中间数据流,以便确保编码帧的第一和第二集合之间的平滑过渡。例如,可以在解码帧上添加一种黑色遮掩(blackcurtain),逐行“关闭”所述遮掩,并且然后被逐行“打开”,如图4中所示。可替换地,解码帧可以逐行变暗,并且然后被再次逐行开启。
在可选的第三步骤,在帧的第一集合S1和第二集合S2之间的时间间隔中添加至少一个附加帧。这些附加帧改进了帧的两集合之间的过渡,并且根据按照第一数据流的显示顺序的最后解码帧和/或按照第二数据流的显示顺序的第一解码帧来计算所述附加帧。
在下一个步骤,编码修改解码帧和构成中间数据流的可能附加帧,并且根据它们在时间线的各自位置来编码与其关联的相对时间值。
在最后步骤,通过将偏移时间值添加到所述时间值来修改包含在第二数据流的GOV报头的绝对时间值,如前所述。
应该注意,优选地,在第二步骤期间不修改第二数据流的最后解码帧,从而不改变没有第一集合编码帧的第一数据流、中间的数据流、以及没有第二集合编码帧的第二数据流的拼接的随后解码。
由于本发明的这些和其他实施例,确保了时间线的连续性。此外,没有必要重新编码中间数据流的第一帧作为帧内编码帧。于是,组合方法是三个数据流的简单拼接,加上由没有第二集合编码帧的第二数据流的GOV报头承载的值的更新,如前所述。
应当注意上面提及的实施例演示而不是限制本发明,并且在不背离本发明由附加的权利要求定义的范围的情况下,本领域技术人员能够设计许多可替换的实施例。在权利要求中,置于括号中的任何参考符号不会构成权利要求的限制。词语“包括(comprising)”以及类似的,不排除除了那些在任何权利要求和整个说明书中列出的元素或步骤的存在。元素的单数标记不排除这样元素的复数标记,反之亦然。
本发明可以通过包括若干不同元素的硬件手段以及适当编程的计算机的手段来实现。在设备权利要求中列举若干装置,这些装置中的几个可以通过一个和相同的硬件零件来实现。在相互区别的从属权利要求中引用某些不同手段的事实并不意味着这些手段不能被优选的结合。
权利要求
1.一种组合第一数据流(ds1)和第二数据流(ds2)的方法,每个数据流包括编码帧(I,P,B),每个编码帧与相对时间值相关联,数据流的特定编码帧之前是绝对时间值,所述方法包括步骤-根据之前参考时间值和当前相对时间值的整数部分,针对当前编码帧计算当前参考时间值,-根据按照第一数据流的显示顺序的最后帧的参考时间值,计算偏移时间值,以及-通过将偏移时间值与所述绝对时间值相加来修改第二数据流的特定编码帧的绝对时间值。
2.如权利要求1所述的方法,还包括步骤根据所述第一帧的初始相对时间值,针对按照第二数据流的显示顺序的第一帧(I[n+1]),计算修改的相对时间值,以便在第一数据流的最后帧(F[n])和所述第一帧之间的时间间隔中间移动所述第一帧,在第二数据流中添加具有空值数据内容的非编码帧(NCF),所述非编码帧与初始相对时间值相关联。
3.如权利要求1所述的方法,还包括步骤对第一数据流的结尾处的第一编码帧集合以及第二数据流的开始处的第二编码帧集合进行解码,按照确保第一集合和第二集合之间的平滑过渡的方式来修改第一集合和第二集合的已解码帧,对已修改解码帧进行编码,并且对其相关联的相对时间值进行编码。
4.如权利要求3所述的方法,还包括步骤在已解码帧的第一集合和第二集合之间创建至少一个附加帧。
5.如权利要求3所述的方法,其中,没有修改第二集合的最后已解码帧。
6.一种组合第一数据流和第二数据流的设备,每个数据流包括编码帧,每个编码帧与相对时间值相关联,数据流的特定编码帧之前是绝对时间值,所述设备包括-根据之前参考时间值和当前相对时间值的整数部分针对当前编码帧计算参考时间值的装置,-根据按照第一数据流的显示顺序的最后帧的参考时间值来计算偏移时间值的装置,以及-通过将偏移时间值与所述绝对时间值相加来修改第二数据流的特定编码帧的绝对时间值的装置。
7.一种移动装置,包括如权利要求6所述的设备。
8.一种包括程序指令的计算机程序产品,当由处理器执行所述程序时,所述程序指令用于如权利要求1所述的方法。
全文摘要
本发明涉及一种组合第一数据流(ds1)和第二数据流(ds2)的方法,每个数据流包括编码帧(I,P),每个编码帧与相对时间值相关联,数据流的特定编码帧之前是绝对时间值。所述方法包括步骤根据在前参考时间值和当前相对时间值的整数部分,针对当前编码帧计算当前参考时间值,根据按照第一数据流的显示顺序的最后帧的参考时间值,计算偏移时间值,通过将偏移时间值与所述绝对时间值相加来修改第二数据流的特定编码帧的绝对时间值。
文档编号H04N7/24GK101091391SQ200580044987
公开日2007年12月19日 申请日期2005年10月27日 优先权日2004年10月29日
发明者伊夫·拉曼齐 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1