一种视频流的拼接方法和系统技术方案

技术编号:11300190 阅读:72 留言:0更新日期:2015-04-15 17:36
本发明专利技术公开了一种视频流的拼接方法和系统。包括:解析拼接码流中的SEI消息;根据SEI消息计算拼接后码流从CPB中移出的延迟时间值,并替换SEI消息中携带的从CPB中移出的延迟时间值,以根据该SEI消息进行解码,其中,SEI消息携带的从CPB中移出的延迟时间值是根据拼接前的码流得到的。本发明专利技术有效解决了拼接码流的HRD兼容一致性问题。

【技术实现步骤摘要】
一种视频流的拼接方法和系统
本专利技术涉及视频编解码领域,并更具体地涉及一种视频流的拼接方法和系统。
技术介绍
随着H.264/AVC(AdvancedVideoCoding,高级视频编码)视频编码标准在工业界的普遍使用,与H.264/AVC相关的视频处理技术需求越来越多,其中视频流拼接处理经常被用于视频编辑、PVR(PersonalVideoRecorder,个人视频录像机)、广告视频插入等应用场景。视频流拼接处理的关键技术就是视频压缩码流拼接技术。视频压缩码流拼接操作可以简单定义为两个互相独立的视频压缩流进行的串联操作(Concatenation),而且要求串联后的视频压缩流与原来的视频流兼容。一般来说,视频压缩流拼接操作可以分为两类:一类是无缝拼接,另一类是非无缝拼接。引用MPEG-2系统层标准对拼接的定义说明如下。无缝拼接不包含解码不连续(DecodingDiscontinuity),拼接后的新码流第一个访问单位的解码时间与旧码流位于拼接点前的访问单位的解码时间一致。即新码流第一个访问单元的解码时间等于旧码流在保持连续情况下的后继访问单元的解码时间;非无缝拼接导致解码不连续,例如,非无缝拼接新码流的第一个访问点的解码时间比无缝拼接解码的解码时间大(或小)。在后面提到拼接操作时都是指的无缝拼接。对于H.264/AVC视频压缩流拼接来说,最具挑战性的问题之一是如何保证拼接后的码流仍然满足H.264/AVC标准在附录C中定义的HRD(HypotheticalReferenceDecoder,假想参考解码器)兼容一致性。HRD是属于MPEG/ITUH.264/AVC标准中规范性的一部分,任何符合该标准的压缩流都内在要求满足HRD要求。但是针对H.264/AVC标准中的HRD模型,不能保证两段HRD兼容压缩码流经过简单的剪切-粘贴操作的拼接码流也满足HRD要求。具体来说,H.264/AVC视频流拼接导致的HRD兼容性问题包括下面三个方面:1.拼接后的cpb_reamoval_delay不正确根据HRD模型,访问单元n移出CPB(CodedPictureBuffer,编码图像缓冲区)的时刻有下述公式计算:tr,n(n)=tr,n(nb)+tc×cpb_removal_delay(n)其中,tr,n(n)表示设定单元n从CPB的移出时间(或时刻),之所以“设定”,表示这个时间是按HRD模型计算的时间,不是“实际”解码过程中的时间(下面用tr(n)表示);当访问单元n是当前缓冲周期的第一个单元时,tr,n(nb)为前一个缓冲周期的第一个访问单元的移出时刻;当访问单元n不是当前缓冲周期的第一个单元时,tr,n(nb)为当前缓冲周期的第一个访问单元的移出时刻;tc是一个时钟记号,为H.264标准的预定义值;cpb_removal_delay(n)为图像从CPB中移出的延迟时间值,是H.264码流中的语法元素取值,是访问单元n相关的图像定时SEI(SupplementalEnhancementInformation,补充的增强信息)中规定的cpb_removal_delay值。根据tr,n(n)的定义可以知道,为了设置拼接点的cpb_removal_delay,需要知道前一个缓冲周期长度。如果拼接操作只是简单地将两段H.264/AVC码流拼接起来,不考虑前一个缓冲周期长度,那么拼接点所在的存取单元的原始cpb_removal_delay将导致该存取单位CPB规定移出时间计算错误。例如,假设有名为stream1和stream2的两段独立H.264/AVC视频码流,其中stream1包含A、B两段,stream2包含C、D两段,而且每段视频只有开始的存取单元才有缓冲周期SEI信息。stream2的D段码流的cpb_removal_delay取值本来是根据stream2的C码流来计算,但是,如果将stream1的A段和stream2的D段简单拼接在一起,那么D段码流中的cpb_removal_delay取值需要根据stream1的A段的长度进行调整,导致计算错误,即拼接后的cpb_reamoval_delay不正确。2.拼接后的初始dpb_output_delay不匹配图像n从DPB(DecodedPictureBuffer,解码图像缓冲区)输出的时间计算公式如下:to,dpb(n)=tr(n)+tc×dpb_output_delay(n)其中,to,dpb(n)表示从DPB输出的时间;tr(n)表示单元n从CPB中移出的实际时间;H.264/AVC码流中的第一个访问单元的dpb_output_delay称为初始dpb_output_delay,可以理解为第一幅图像的显示时间。根据HRD模型,初始dpb_output_delay的取值必须保证正常的解码和显示关系。初始dpb_output_delay的取值取决于整个序列的图像重排序关系。然而拼接后的序列的图像重排关系不同了,所以,拼接后的初始dpb_output_delay不匹配。3.拼接后的码流违反HRD模型中定义的C-15等式和C-16等式对于每一与缓冲周期SEI消息相关的访问单元n,n>0,有Δtg,90(n)参数,其规定如下:Δtg,90(n)=90000×(tr,n(n)-taf(n-1))其中,Δtg,90(n)是标准中的定义值,表示图像n的规定移出时间与前一副图像(n-1)的最终移出时间之差。这里taf(n-1)表示拼接点n前一个访问单元移出CPB的时间。HRD模型对一个缓冲周期SEI消息内的initial_cpb_removal_delay限制如下:如果cbr_flag[SchedSelIdx]等于0,且initial_cpb_removal_delay[SchedSelIdx]≤Ceil(Δtg,90(n))(c-15)否则,即cbr_flag[SchedSelIdx]等于1,Floor(Δtg,90(n))≤initial_cpb_removal_delay[SchedSelIdx]≤Ceil(Δtg,90(n))(c-16)这些公式都是H.264标准中的公式,即,比特流中的HRD参数必须满足的条件。其中,initial_cpb_removal_delay为SEI消息中的语法值,表示图像n从CPB中移出的初始时间值,其值采用90KHz时钟单位。拼接前的比特流中的HRD参数都是独立计算,符合原始比特流的一致性,而拼接后的比特流,如果不对参数进行调整,显然不满足上述公式。因此,对于拼接码流很容易违反上述约定。
技术实现思路
鉴于以上,本专利技术提出一种视频流的拼接方法和系统,以解决现有技术存在的至少一个问题。根据本专利技术一方面,提出一种视频流的拼接方法,包括:解析拼接码流中的SEI消息;根据SEI消息计算拼接后码流从CPB中移出的延迟时间值,并替换SEI消息中携带的从CPB中移出的延迟时间值,以根据该SEI消息进行解码,其中,SEI消息携带的从CPB中移出的延迟时间值是根据拼接前的码流得到的。优选地,根据该SEI消息进行解码之后,进行假想参考解码器(HRD)验证,以验证HRD兼容一致性。优选地,拼接后码流的cpb_removal_delay为本文档来自技高网
...
一种视频流的拼接方法和系统

【技术保护点】
一种视频流的拼接方法,其特征在于:解析拼接码流中的补充的增强信息(SEI)消息;根据SEI消息计算拼接后码流从编码图像缓冲区(CPB)中移出的延迟时间值(cpb_removal_delay),并替换SEI消息中携带的从CPB中移出的延迟时间值,以根据该SEI消息进行解码,其中,SEI消息携带的从CPB中移出的延迟时间值是根据拼接前的码流得到的。

【技术特征摘要】
1.一种视频流的拼接方法,其特征在于:解析拼接码流中的补充的增强信息(SEI)消息;根据SEI消息计算拼接后码流从编码图像缓冲区(CPB)中移出的延迟时间值(cpb_removal_delay),并替换SEI消息中携带的从CPB中移出的延迟时间值,以根据该SEI消息进行解码,其中,SEI消息携带的从CPB中移出的延迟时间值是根据拼接前的码流得到的;其中,拼接后码流的cpb_removal_delay为:cpb_removal_delay=Max(DelayOffset,cpb_removal_delayorig),其中,cpb_removal_delayorig表示第一段原始码流在拼接点后的第一个存取单元的cpb_removal_delay值;DelayOffset=Ceil((initial_cpb_removal_delay[SchedSelldx]÷90000+taf(ns-1)-tr,n(nb))÷tc),其中,DelayOffset为偏移量,Ceil表示向上取整;其中,tc是一个时钟记号;initial_cpb_removal_delay[SchedSelIdx]是与访问单元n相关的缓冲周期SEI消息中所定义的,表示在HRD初始化后的第一个缓冲周期,第SchedSelIdx个CPB的时间延迟;taf(ns-1)表示拼接点ns前一个访问单元移出CPB的时间;当访问单元n是当前缓冲周期的第一个单元时,tr,n(nb)为前一个缓冲周期的第一个访问单元的移出时刻;当访问单元n不是当前缓冲周期的第一个单元时,tr,n(nb)为当前缓冲周期的第一个访问单元的移出时刻。2.根据权利要求1所述视频流的拼接方法,其特征在于:根据该SEI消息进行解码之后,进行假想参考解码器(HRD)验证,以验证HRD兼容一致性。3.根据权利要求1或2所述视频流的拼接方法,其特征在于:根据SEI消息计算拼接后码流从解码图像缓冲区(DPB)中移出的延迟时间值(dpb_output_delay),并替换SEI消息中携带的从DPB中移出的延迟时间值,以根据该SEI消息进行显示,其中,SEI消息携带的从DPB中移出的延迟时间值是根据拼接前的码流得到的;其中,当插入流的dpb_output_delay大于原始流对应值,则将拼接后的码流的initial_dpb_output_delay修改为大于等于所有码流的initial_dpb_output_delay;当插入流的dpb_output_delay小于原始流对应值,则将插入流的dpb_output_delay修...

【专利技术属性】
技术研发人员:陈杲张长学赵旭泽
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1