视频编码设备和解码设备、视频编码方法和解码方法与流程

文档序号:11524668阅读:310来源:国知局
视频编码设备和解码设备、视频编码方法和解码方法与流程

本申请为于2013年9月30日提交、申请号为201310462438.7、发明名称为“视频编码设备和解码设备、视频编码方法和解码方法”的中国专利申请的分案申请。

这里所讨论的实施例涉及一种无需对编码的视频数据进行解码即可编辑该视频数据的视频编码设备和视频编码方法,并且还涉及一种用于对通过这样的视频编码设备所编码的视频数据进行解码的视频解码设备和视频解码方法。



背景技术:

通常,用于表示视频数据的数据量是非常大的。因此,处理这样的视频数据的设备在将该视频数据发送到另一个设备之前、或者在将该视频数据存储在存储装置中之前通过编码对视频数据进行压缩。诸如由国际标准化组织/国际电工委员会(iso/iec)所设计的mpeg-2(运动图像专家组阶段2)、mpeg-4、h.264mpeg-4高级视频编码(mpeg-4avc/h.264)的编码标准是如今被广泛使用的典型视频编码标准。

这样的编码标准采用帧间编码(通过不仅使用信息本身、而且还使用来自它之前和之后的图像的信息来对图像进行编码的编码方法)和帧内编码(通过仅使用包含在待编码图像中的信息来对图像进行编码的编码方法)。帧间编码方法使用称为帧内编码图像(i图像)、通常根据过去的图像来预测的前向预测图像(p图像)、以及通常根据过去和未来两种图像来预测的双向预测图像(b图像)这三种类型的图像。

通常,通过帧间编码所编码图像或块的代码量小于通过帧内编码所编码图像或块的代码量。这样,相同视频序列内的图像与图像的代码量视所选择的编码模式而变化。同样,相同图像内的块与块的代码量视所选择的编码模式而变化。因此,为了使包含有编码视频的数据流即使在该代码量在时间上变化的情况下也能够以恒定的传输率来发送,将用于缓冲数据流的发送缓冲器设于发送端,而将用于缓冲数据流的接收缓冲器设于接收端。

mpeg-2和mpeg-4avc/h.264f分别各自定义了被称为视频缓冲检验器(vbv)或编码图像缓冲器(cpb)的理想的视频解码设备中的接收缓冲器的行为。为方便起见,理想的视频解码设备将会在下文中简称为理想解码器。规定理想解码器执行花费零时间来解码的瞬时解码。例如,日本特开2003-179938号公报公开了一种关于vbv的视频编码控制方法。

为了不引起理想解码器中的接收缓冲器上溢或下溢,视频编码器控制代码量以确保当理想解码器解码给定图像时解码给定图像所需要的所有数据在接收缓冲器中是可用的。

当视频编码器以恒定的传输率来发送编码视频数据流时,如果到图像要被视频解码器解码和显示的时候尚未完成对解码图像所需要的数据的传输的话,则接收缓冲器可能下溢。也就是说,接收缓冲器下溢是指其中解码图像所需要的数据在视频解码器的接收缓冲器中是不可用的情况。如果发生这种情况,视频解码器则不能够执行解码,并且会发生跳帧。

鉴于此,视频解码器在自它的接收时间起的规定时间以前显示延迟了流之后的图像,以使得在不引起接收缓冲器下溢的情况下能够进行解码。如前所述,规定了理想解码器在零时间内完成解码。结果,如果将第i个图像输入到视频编码器的时间是t(i)、而第i个图像在理想解码器处的解码时间为tr(i)的话,则图像变为准备好用于显示的最早时间与t(i)相同。由于对于任何图像来说图像显示期{t(i+1)-t(i)}与{tr(i+1)-tr(i)}是相等的,所以将解码时间tr(i)给定为tr(i)=t(i)+dly,即,自输入时间t(i)起延迟固定时间dly后的时间。这意味着,视频编码器不得不在时间tr(i)以前完成将解码所需的所有数据到接收缓冲器的传输。

参考图1,将给出接收缓冲器如何进行操作的描述。在图1中,横坐标表示时间,而纵坐标则表示接收缓冲器的缓冲器占用量。实线曲线100描绘了作为时间的函数的缓冲器占用量。

接收缓冲器的缓冲器占用量以与规定的传输率同步的速率还原,而用于解码每个图像的数据在图像的解码时间时从缓冲器中恢复。在时间at(i)时开始将第i个图像的数据输入到接收缓冲器,而在时间ft(i)时输入第i个图像的最后的数据。理想解码器在时间tr(i)时完成对第i个图像的解码,从而第i个图像在时间tr(i)时变为准备好用于显示。但是,如果数据流包含b图像的话,则第i个图像的实际显示时间可能由于图像重新排序(改变编码顺序)的发生而变得迟于tr(i)。

下面将详细描述mpeg-4avc/h.264中描述每个图像的解码时间和显示时间的方法。

在mpeg-4avc/h.264中,在补充增强信息(sei)消息中描述与像素的解码不直接相关的补充信息。定义了几十个sei消息类型,且类型是通过payloadtype参数来标识的。sei被附至每个图像。

作为sei的一种类型的bpsei(缓冲期sei)被附到独立图像,即,无需任何过去的图像即可解码的图像(通常为i图像)。在bpsei中描述了initialcpbremovaldelay这个参数。initialcpbremovaldelay参数表示附bpsei的图像的第一个位在接收缓冲器中的到达时间与附bpsei的图像的解码时间之间的差。该差的分辨率是90khz。第一个图像的解码时间tr(0)是编码视频数据的第一个位到达视频解码器时的时间(将该时间指定为0);也就是说,解码时间自时间at(0)起而被延迟了initialcpbremovaldelay÷90,000[秒]的时间量。

通常,作为一种类型的sei的ptsei(图片定时sei)被附到每个图像。ptsei中描述了参数cpbremovaldelay和dpboutputdelay。参数cpbremovaldelay表示紧邻在前的附有bpsei的图像的解码时间与附有ptsei的图像的解码时间之差。参数dpboutputdelay表示附有ptsei的图像的解码时间与该图像的显示时间之差。这些差的分辨率是一场图像间隔。因此,当图像为帧时,参数cpbremovaldelay和dpboutputdelay中的每一个的值是2的倍数。

第二个和后续图像中的每一个的解码时间tr(i)比第一个图像的解码时间tr(0)延迟与tc*cpbremovaldelay(i)[秒]相等的时间量。cpbremovaldelay(i)是附到第i个图像的cpbremovaldelay。另一方面,tc是图像间的时间间隔[秒];例如,在29.97赫兹逐行视频的情况下,tc是1001/60000。

包括附有bpsei的图像在内的图像中的每一个的显示时间比tr(i)延迟了等于tc*dpboutputdelay(i)的时间量。dpboutputdelay(i)是附到第i个图像的dpboutputdelay。即,在时间tr(0)后,每个图像在tc的整数倍的时间时进行解码和显示。

根据视频数据的用途,可以对编码视频进行编辑。编辑编码视频涉及将编码视频数据划分成更小的部分以及将它们剪接以生成新的编码视频数据流。例如,将另一个视频流(例如,广告)插入到当前广播的视频流(即,剪接)是编辑操作的一个例子。

当编辑帧间预测编码视频时,特别是在帧间编码图像的情况下,编码图像不能自身正确解码。因此,当在期望的图像位置剪接两个编码视频数据流时,编码视频数据编辑机首先解码待剪接的两个编码视频数据流,然后在解码的逐个图像基础上剪接它们,此后对剪接的视频数据进行重新编码。

然而,由于重新编码的工作非常费力,尤其是,在诸如剪接的这种实时处理的情况下,所以通常是限制剪接点并且通过消除重新编码的需求来直接编辑编码视频数据。当通过无需重新编码的编辑来剪接两个编码视频数据流时,在时间上下游侧的待剪接的编码视频数据流的第一个图像必须是i图像。此外,在时间上下游侧的待剪接的编码视频数据流的gop结构被限制为所谓的闭合gop结构,在该结构中,起始i图像之后的所有图像是可解码的,而不用参考时间上在起始i图像之前的任何图像。利用这种布置,能够通过在期望的剪接点处进行编辑来正确解码在时间下游侧的剪接的编码视频数据流的起始i图像之后的所有图像。

然而,由于闭合gop结构的编码效率低于非闭合gop结构,所以可以采用非闭合gop结构。在这种情况下,一些在剪接点之后的紧随起始i图像的图像没有正确地解码,但因为这些图像在显示顺序上是起始i图像之前的图像,所以如果不显示它们将不成问题。因此,作为一般的做法,在显示完时间上在先的编码视频数据流的最后一个图像后,视频解码器执行诸如冻结显示的处理,从而掩盖未能正确解码的图像显示。

在现有技术中,即使在无需重新编码的情况下对帧间预测编码视频数据进行编辑时,其头信息也会被编辑,以使剪接在一起的两个编码视频数据流之间不发生矛盾。例如,在mpeg-4avc/h.264中,poc(pictureordercount,图像顺序计数)和framenum被附到宏块条头,以保持图像间的时间关系和识别参考图像。poc表示图像的相对显示顺序。framenum是编码视频中每次出现参考图像时递增1的值。由于poc值和framenum值需要在剪接的两个编码视频数据流之间连续,所以出现了对编辑待剪接在时间上在先的编码视频数据流的下游侧上的编码视频数据流中所有的poc值和framenum值的需要。

另一方面,在非专利文献“jctvc-j1003,"high-efficiencyvideocoding(hevc)textspecificationdraft8",jointcollaborativeteamonvideocodingofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,july2012”中公开的方法中,由于介绍了一种用于识别参考图像的新方法,所以取消了framenum。此外,由于在下游侧剪接的编码视频数据的第一个图像的poc值不需要相对于在上游侧剪接的编码视频数据流具有连续性,所以无需对宏块条头进行编辑。在以上非专利文献公开的方法中,除了mpeg-4avc/h.264中定义的idr(即时解码刷新)图像之外,还介绍了cra(清除随机访问)图像、bla(断开链接访问)图像、tfd(被标记丢弃的)图像、dlp(可解码前导图像)图像和tp(拖尾图像)图像作为新的图像类型。

这些图像中的cra图像和bla图像均是独立图像,即,未参考任何其他图像的图像,使得可以对跟随cra图像和bla图像的图像进行正确解码。例如,当视频解码器以cra图像开始来开始解码时,可以对除紧随cra图像的tfd图像之外的任何随后图像进行正确解码。

tfd图像为紧随cra图像或bla图像出现并且参考在时间顺序上和在解码顺序上早于cra图像或bla图像出现的图像的图像。在符合mpeg-2的非闭合gop结构的情况下,紧随在gop的头部的i图像之后的多个b图像各自均对应于tfd图像。

由于编码视频数据的编辑而产生bla图像。剪接的两个编码视频数据流中的在下游侧剪接的编码视频数据流一般以cra图像开始,但是如果在剪接的编码视频数据的中间出现该cra图像,则cra图像的图像类型就从cra图像被改变成bla图像。在以上非专利文献公开的方法中,当出现bla图像时,允许poc值变得不连续。此外,未能从剪接的编码视频数据中的任何点起对紧随该bla图像的tfd图像进行正确解码,这是因为tfd图像所参考的图像从剪接的编码视频数据中丢失了。因此,视频编码器可以从编码视频数据中将跟随如下bla图像的任何tfd图像删除:该bla图像在待在下游侧剪接的编码视频数据流的头部。

像tfd图像一样,dlp图像为紧随cra图像或bla图像出现的图像。不像tfd图像,dlp图像并未参考在时间顺序和解码顺序二者上先于cra图像或bla图像的图像。因此,即使从cra图像或bla图像开始解码,也可以对dlp图像进行正确解码。

tp图像为在解码顺序上晚于cra图像或bla图像和tfd、dlp图像出现并且在时间顺序上跟随cra图像或bla图像的图像。因此,即使从cra图像或bla图像开始解码,也可以对tp图像进行正确解码。



技术实现要素:

在以上非专利文献中所讨论的方法中,如在mpeg-4avc/h.264中,每个编码图像的解码时间和显示时间是通过利用参数initialcpbremovaldelay、cpbremovaldelay和dpboutputdelay来确定的。当剪接两个编码视频数据流时,需要校正在剪接点之后的图像的参数cpbremovaldelay和dpboutputdelay以便确保横跨所述剪接点的连续视频解码和显示。

更具体地,视频编码器或视频解码器需要基于跟随在时间上在前的编码视频数据流中的最新的附有bpsei的图像的图像的数量来校正在剪接于下游侧的编码视频数据流的头部的cra图像的cpbremovaldelay的值。此外,视频编码器或视频解码器令cpbremovaldelay的值递增以便确保cpb缓冲器连续性。另外,当丢弃待剪接于下游侧的编码视频数据流中的tfd图像时,视频编码器或视频解码器不但需要校正待在丢弃的tfd图像之后解码的图像的cpbremovaldelay的值,而且需要校正在剪接点之后的第一个cra图像的dpboutputdelay的值。

这样,在以上非专利文献中所公开的方法中,当执行用于剪接两个编码视频数据流的编辑操作时仍存在校正ptsei的内容的需要。

因此,本发明的目的是提供一种当剪接两个帧间预测的编码视频数据流时能够在不对原始的编码视频数据的头部中的参数进行编辑的情况下确保连续视频解码处理和显示处理的运动视频编码设备和运动视频解码设备。

根据一个实施例,提供了一种视频编码设备,用于通过将均利用帧间预测编码而编码的第一视频数据和第二视频数据剪接在一起来生成剪接的编码视频数据。该视频编码设备包括:剪接点识别信息处理单元,其用于获得解码延迟和显示延迟校正信息并且用于将所述校正信息附至所剪接的视频数据,所述解码延迟和显示延迟校正信息用于确保即使当已从所述第二视频数据中包含的图像中丢弃在编码顺序上比待剪接至所述第一编码视频数据的尾端的所述第二视频数据中的起始编码图像晚的一个或多个图像时,所述第二编码视频数据中包含的所述起始编码图像和随后的图像也能够通过视频解码设备连续地解码与显示;以及数据剪接单元,其用于从剪接的视频数据中丢弃以下图像:在编码顺序上晚于所述起始编码图像且如果从所述起始编码图像开始解码则不保证被正确解码的任何图像。所述校正信息是基于每个丢弃的图像与在解码顺序上紧邻在所述丢弃的图像前的图像之间的解码间隔来计算的。

根据另一个实施例,提供了一种用于对通过帧间预测编码而编码的视频数据进行解码的视频解码设备。该视频解码设备包括:图像解码/显示时间确定单元,其利用表明已经通过将第二编码视频数据剪接至第一编码视频数据的尾端而生成了所述编码视频数据的信息、以及表明已经丢弃了以下一个或多个编码图像的信息,并基于校正信息对跟随所述起始编码图像的图像的解码延迟进行校正,以及还基于所述校正信息对所述起始编码图像和跟随所述起始编码图像的图像的显示延迟进行校正,其中,所述一个或多个编码图像在编码顺序上比在剪接所述第一编码视频数据和所述第二编码视频数据的剪接点下游处剪接的所述第二编码视频数据中的起始编码图像晚。所述校正信息携带有基于以下两者之间的解码间隔而计算的值:在解码顺序上晚于所述起始编码图像并已从所述第二编码视频数据中丢弃的每个图像;以及在解码顺序上紧邻在所述丢弃的图像前的图像。

附图说明

图1是示出接收缓冲器的缓冲器占用量和显示时间之间的关系的图。

图2是示出视频数据中包含的各个图像的显示顺序和解码顺序与各个图像的解码延迟和显示延迟值之间的关系的图。

图3是用于说明当剪接两个编码视频数据流时在剪接点之后的图像的解码延迟和显示延迟值的图。

图4是用于说明根据第一实施例的编码视频中的一个图像的数据结构的图。

图5是根据第一实施例的视频编码设备的简化框图。

图6是根据第一实施例的视频编码处理的操作流程图。

图7是根据第一实施例的视频编辑处理的操作流程图。

图8是根据第一实施例的视频解码设备的简化框图。

图9是根据第一实施例的视频解码处理的操作流程图。

图10是用于说明根据第二实施例的当剪接两个编码视频数据流时在剪接点之后的图像的解码延迟和显示延迟值的图。

图11是用于说明根据第二实施例的编码视频中的一个图像的数据结构的图。

图12是示出通过执行用于实现根据实施例或它们的修改示例中的任一个的视频编码设备或视频解码设备中的各个单元的功能的计算机程序而用作视频编码设备或视频解码设备的计算机的配置的图。

具体实施例

下面将参考附图来描述根据各个实施例的视频编码设备和视频解码设备。当在不对两个编码视频数据流进行解码的情况下剪接它们时,视频编码设备计算用于校正表示在剪接点之后出现的每个图像的解码时间和显示时间的参数的值,并将这些值添加到在剪接点之后出现的每个图像的头信息中。这样,当剪接两个编码视频数据流时,视频编码设备则不再需要编辑原始编码视频数据的头中的参数。

在本实施例中,图像为帧。然而,图像可以不局限于帧,也可以是场。帧是指视频数据中的一个完整的静态影像,而场则是指通过仅从一帧中的奇数行或偶数行提取数据而获得的静态影像。编码视频数据可以是彩色的视频数据或单色视频数据。

首先,参考图2,将通过以一个图像编码结构为例来描述根据第一实施例的图像解码延迟cpbremovaldelay和显示延迟dpboutputdelay的值。

在图2中,作为图像编码结构的一个例子的图像编码结构201包含多个图像。图像编码结构201中的每个框表示一个图像。与每个图像对应的每个框中所携带的两个字符之中,左边的字母字符表示施加到那个图像上的编码模式。字符i、p和b分别是i图像、p图像和b图像的意思。每个框中所携带的两个字符之中,右边的数字表示输入到视频编码设备的顺序。输入顺序与其中从视频解码设备输出图像的顺序相符。图像编码结构201上面所示的每个箭头表示待通过前向帧预测而被编码图像所参考的参考图像。例如,图像p4参考的是早于图像p4出现的图像i0。另一方面,图像编码结构201下面所示的每个箭头表示待通过后向帧预测而被编码图像所参考的参考图像。例如,图像b2参考的是晚于图像b2出现的图像p4。

呈现在图像编码结构201下面的图像序列是图像编码结构201中所包含的图像的解码顺序202。解码顺序202中的每个框表示一个图像,而且如在图像编码结构201的情况下,框中所携带的字符表示编码模式和输入到视频编码设备的顺序。解码顺序202与视频编码设备所执行的编码的顺序相符。图像解码顺序202上面所示的每个箭头和图像解码顺序202下面所示的每个箭头分别表示通过前向帧预测而被编码图像所参考的参考图像和通过后向帧预测而被编码图像所参考的参考图像。

在解码顺序202中,bpsei被附到其下携带有标识“bpsei”的每个图像。在所示出的示例中,bpsei被附到每个i图像。也就是说,对于每个i图像,定义了表示i图像的第一个位在接收缓冲器中的到达时间和i图像的解码时间之差的initialcpbremovaldelay参数。

呈现于解码顺序202下面的框阵列203表示附到每个图像的ptsei中所携带的cpbremovaldelay和dpboutputdelay的值。框阵列203的上排中的每个框携带有用于位于那个框正上方的解码顺序202中的对应图像的cpbremovaldelay的值。同样地,框阵列203的下排中的每个框携带有用于位于那个框正上方的解码顺序202中的对应图像的dpboutputdelay的值。cpbremovaldelay对应于当从附有bpsei的、图像之中的编码顺序上的最新图像起算时编码的顺序。例如,图像p8是当从图像i0起算时的编码顺序上的第五个图像。在本实施例中,因为每个图像是一帧,而且图像间时间间隔tc是以场为单位来表达的值,所以将图像p8的cpbremovaldelay值给定为10(=5*2)。

另一方面,dpboutputdelay指定视频解码设备中所需要的显示延迟,以按照正确的顺序来顺序地输出图像。例如,图像p4的dpboutputdelay值是10。这是正确显示在视频编码设备的输入顺序和编码顺序之间的差异最大的图像b1所需要的延迟。也就是说,由于图像b1是在图像p4被解码之后延迟了两个图像而被解码,所以图像p4的显示时间不得不自图像b1变为准备好用于显示的最早时间(即,图像b1被解码时的时间)起被进一步延迟三个图像时间。由于图像p4的解码时间和显示时间之间的差等于五个图像时间,并且由于tc是以场为单位来表达的,所以dpboutputdelay值被给定为10。

接下来,参考图3,将给出当剪接两个编码视频数据流时、在剪接点下游剪接的编码视频数据流中的每个图像的解码延迟cpbremovaldelay和显示延迟dpboutputdelay可能采用以消除在这两个编码视频数据流的剪接点之前和之后的解码延迟和显示延迟中的任何不一致的值的说明。

在剪接点上游剪接的第一编码视频数据流301中的每个框表示一个图像,而该框中所携带的字符则表示编码模式和输入到视频编码设备的顺序,如在图2的情况下。在所示的示例中,第一编码视频数据流301的编码结构与图2中所示的编码结构201是相同的。

在所示出的示例中,第二编码视频数据流302紧随第一编码视频数据流的最后的图像b15而被剪接。同样在第二编码视频数据流302中,每个框表示一个图像,而每个框中所携带的字符则表示编码模式和输入到视频编码设备的顺序。第二编码视频数据流302上面所示的箭头表示当图像b70、b69和b71通过前向帧预测被编码时分别参考的参考图像。另一方面,第二编码视频数据流302下面所示的箭头表示当图像b70、b69和b71通过后向帧预测被编码时分别参考的参考图像。除了图像b70、b69和b71之外,第二编码视频数据流302的编码结构与图2中所示的编码结构201是相同的。图像b70、b69和b71的编码顺序与在图2中所示的编码结构201中包含的双向预测图像的编码顺序是相同的。然而,用于图像b70、b69和b71的参考图像不同于用于包含在编码结构201中的双向预测图像的参考图像。图像b70和b71各自仅参考在显示时间上较晚的图像,即,图像172。另一方面,图像b69仅参考在显示时间上较早的图像,即,图像i68。这种情况出现在例如当图像b69和b70之间存在场景变化时。由于图像在横跨场景变化边界而突然变化,为了更好的预测效率,位于场景变化边界附近的任何双向预测图像仅参考位于场景变化边界同侧的图像。在这里所给的示例中,b69为tfd图像,而b70和b71则为dlp图像。在所示出的示例中,第二编码视频数据流302中的图像i72和随后的图像剪接,以便跟随第一编码视频数据流中的图像b15。非专利文献(jctvc-j1003,"high-efficiencyvideocoding(hevc)textspecificationdraft8",jointcollaborativeteamonvideocodingofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,july2012)所公开的方法规定了如下条件:tfd图像的显示时间早于dlp图像的显示时间、而dlp图像不被tp图像所参考。

呈现在第二编码视频数据流302下面的框阵列303表示附到第二编码视频数据流302的每个图像的ptset中所携带的解码延迟cpbremovaldelay和显示延迟dpboutputdelay的值。框阵列303的上排中的每个框携带有用于位于那个框正上方的第二编码视频数据流302中的对应图像的解码延迟cpbremovaldelay的值。同样地,框阵列303的下排中的每个框携带有用于位于那个框正上方的第二编码视频数据流302中的对应图像的显示延迟dpboutputdelay的值。

在框阵列303之下示出通过剪接第一及第二编码视频数据流301和302而生成的剪接的编码视频数据304。在所示出的示例中,第二编码视频数据流302中的图像b67和在编码顺序上位于图像b67之前的图像并不被包含在剪接的编码视频数据304中。此外,图像b69是参考在编码顺序上位于图像i72之前的编码图像i68的tfd图像。结果,当数据剪接于图像i72时,图像b69将会变得无法被正确地再现。因此,当剪接数据时丢弃图像b69。然而,可以不丢弃图像b69并可以将其保留在剪接的编码视频数据中。另一方面,图像b70和b71分别是未参考在编码顺序上位于图像i72之前的图像的dlp图像,并因此可以被正确地再现。然而,因为图像b70和b71都不是被图像p76或它后面的图像所参考的图像,所以如果图像b70和b71与tfd图像b69同时被丢弃的话,将不会影响图像p76和它后面的图像的再现。

框阵列305表示剪接的编码视频数据304中的图像i72、b70、b71、p76、b74、b73和b75应该具有的解码延迟cpbremovaldelay和显示延迟dpboutputdelay的值。框阵列305的上排中的每个框携带用于位于那个框正上方的剪接的编码视频数据304中的对应图像的解码延迟cpbremovaldelay的值。同样地,框阵列305的下排中的每个框携带用于位于那个框正上方的剪接的编码视频数据304中的对应图像的显示延迟dpboutputdelay的值。

需要使得剪接之后的图像i72的解码延迟cpbremovaldelay与相对于图像i12(图像i12为具有紧随的bpsei的图像)的编码图像间隔相匹配。在所示出的示例中,由于图像i72是自图像i12起算的编码顺序上的第八个图像,所以将解码延迟cpbremovaldelay给定为16(=8*2)。图像i72的显示延迟dpboutputdelay也需要被校正以使得可以正确显示将要晚于图像i72进行解码的图像b73。图像i72的显示延迟dpboutputdelay在丢弃图像b69之前和之后是不同的。丢弃图像b69之后的显示延迟dpboutputdelay的值减少了与由在解码顺序上晚于i72的丢弃的图像的解码时间和在解码顺序上紧随丢弃的图像的图像的解码时间之间的差定义的解码间隔相等的值。在所示出的示例中,图像b69是丢弃的图像,而b69的解码间隔(即,b69的解码时间和在解码顺序上紧在先的图像b70的解码时间之间的差)为2;因此,将图像i72的显示延迟dpboutputdelay的值给定为2。同样地,图像b70的显示延迟dpboutputdelay也减少了与在解码顺序上跟随b70的丢弃的图像的解码间隔相等的值,即,减少了2,所以将其给定为2。

图像b71、p76、b74、b73和b75中每一个的解码延迟cpbremovaldelay的值在丢弃图像b69之前和之后也是不同的。图像b71、p76、b74、b73和b75中每一个的解码延迟cpbremovaldelay的值在丢弃图像b69之后从解码延迟cpbremovaldelay的原始值减少了与在解码顺序上先于图像i72的丢弃的图像的解码间隔相等的值。在所示出的示例中,通过从各个图像的解码延迟cpbremovaldelay的原始值减去tfd图像b69的解码间隔2,分别将图像b71、p76、b74、b73和b75中每一个的解码延迟cpbremovaldelay的值给定为4、6、8、10和12。对于dlp图像b70来说,另一方面,因为不存在解码顺序上先于b70的丢弃的图像,所以cpbremovaldelay的值在丢弃图像b69之后保持不变。图像p76、b74、b73和b75的显示延迟dpboutputdelay的值也保持不变。此外,对于比将变成剪接的编码视频数据中的第一个cra图像的图像晚输入的任何图像来说,解码延迟cpbremovaldelay和显示延迟dpboutputdelay都不需要被校正。

如前所述,当将两个编码视频数据流剪接在一起时,对在剪接于剪接点下游的编码视频数据流中包含的一些图像来说,在解码时出现了校正解码延迟cpbremovaldelay和显示延迟dpboutputdelay的需要。在本实施例中,替代了对在剪接前的原始编码视频数据中包含的受影响的图像的解码延迟cpbremovaldelay和显示延迟dpboutputdelay的值进行校正,当视频解码设备对剪接的编码视频数据进行解码时,视频编码设备在编码视频数据的头中添加以下参数,该参数可以用于将解码延迟cpbremovaldelay和显示延迟dpboutputdelay的值改变为适当的值。

接下来,参考图4,将描述根据第一实施例的编码视频数据的结构,该结构包含以下参数,这些参数可以用于将解码延迟cpbremovaldelay和显示延迟dpboutputdelay的值改变为适当的值。

如图4所示,一个图像的数据结构400包含六种网络抽象层(nal)单元410至415的。这些nal单元410至415符合mpeg-4avc/h.264和非专利文献(jctvc-j1003,"high-efficiencyvideocoding(hevc)textspecificationdraft8",jointcollaborativeteamonvideocodingofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,july2012)所公开的方法中定义的nal单元。头nuh420被附到每个nal单元。头nuh420包含表示nal单元的类型的nalunittype字段。当nalunittype是1或2时,表示该图像是tp图像。当nalunittype是7时,表示该图像是紧随其后可能出现tfd图像和dlp图像的独立bla图像。当nalunittype是8时,表示该图像是紧随其后可能出现dlp图像的独立bla图像。当nalunittype是9时,表示该图像是紧随其后既不出现tfd图像也不出现dlp图像的独立bla图像。当nalunittype是12时,表示该图像是独立cra图像。当nalunittype是13时,表示该图像是dlp图像。当nalunittype是14时,表示该图像是tfd图像。

每个图像的nalunittype值不必局限于上述的特定值,也可以设置为一些其它合适的值。

下面将说明nal单元。

nal单元410是定界符(delim)nal单元并表示图像边界。

nal单元411是携带有由编码视频的整个序列所共有的参数集的序列参数集(sps)nal单元。nal单元411附到独立图像。

nal单元412是携带有由多个编码图像所共有的参数集的图像参数集(pps)nal单元。ppsnal单元412附到独立图像,有时也可以附到其他类型的图像。

nal单元413是只附到独立图像的bpseinal单元。在本实施例中,将视频解码设备用来校正出现在剪接点之后的每个图像的解码延迟和显示延迟的参数添加到该nal单元413。

nal单元414是附到每一个图像的ptseinal单元。

nal单元415是作为编码图像的实质的宏块条(slice)nal单元。

根据本实施例的bpseinal单元413包含若干个(n+1个)initialcpbremovaldelay/initialcpbremovaldelay字段对(其中n是一个不小于0的整数)。这些字段的定义可以与较早引用的非专利文献(jctvc-j1003,"high-efficiencyvideocoding(hevc)textspecificationdraft8",jointcollaborativeteamonvideocodingofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,july2012)所公开的方法或mpeg-4avc/h.264中所给出的定义相同。

这是因为多于一个initialcpbremovaldelay/initialcpbremovaldelayoffset字段对被用于描述适合于其中以(n+1)个不同的比特率来发送编码的比特流的情况的initialcpbremovaldelay和initialcpbremovaldelayoffset参数。initialcpbremovaldelayoffset参数定义了视频编码设备中的第一个图像的编码完成时间和将编码图像数据传输到视频解码设备的开始时间之间的差。

ptseinal单元414包含解码延迟cpbremovaldelay字段、显示延迟dpboutputdelay字段以及numremovedtfds字段。numremovedtfds字段是用于解码延迟和显示延迟的校正的校正信息的一个例子。numremovedtfds字段携带有在附ptsei的图像和解码顺序上的下一个附bpsei的图像之间的间隔期间丢弃的图像的解码间隔之和。图像的解码间隔被定义为通过从附到图像的ptsei中所携带的cpbremovaldelay字段值中减去附到解码顺序上在前紧邻的图像的ptset中所携带的cpbremovaldelay字段值而获得的值。当上述解码顺序上在前紧邻的图像为bla图像时,附到该bla图像的ptset中所携带的cpbremovaldelay字段值当作0来对待。当生成编码的比特流时,numremovedtfds字段值被设为0。

图5是根据第一实施例的视频编码设备的简化框图。视频编码设备1包括控制单元11、编码控制单元12、图像编码单元13、剪接点识别信息处理单元14和数据剪接单元15。构成视频编码设备1的这些单元各自在视频编码设备1上作为单独的电路实现。或者,构成视频编码设备1的这些单元也可以在视频编码设备1上以单个的集成电路的形式实现,在单个的集成电路上集成了实现上述各个单元的功能的电路。另外,构成视频编码设备1的这些单元可以是通过在视频编码设备1中包含的处理器上执行计算机程序而实现的功能模块。

当对视频数据进行编码时或者当编辑编码视频数据时,控制单元11控制视频编码设备1的每个指定单元的操作。例如,基于诸如场景变化位置等的视频数据的性质以及编码视频数据所需要的再现图像质量、压缩比等,控制单元11确定施加到待编码视频数据上的gop结构等。然后,控制单元11用信号发出gop结构等到编码控制单元12。

首先,将描述用于对视频数据进行编码视频编码处理。视频编码处理是利用编码控制单元12和图像编码单元13来进行的。

编码控制单元12根据从控制单元11用信号发出的gop结构对每个图像确定编码顺序、编码模式(例如,帧内编码、前向预测或双向预测)等。然后,编码控制单元12基于每个图像的编码模式、gop结构内的位置等确定cra图像插入间隔、在编码时待重新排序的图像的数量以及最大显示延迟。在图2所示的示例中,cra图像插入间隔为12,待重新排序的图像的数量为2,而最大显示延迟为5。编码控制单元12基于这些值生成每个图像的头信息。

例如,如果图像类型是未参考任何其它图像而进行编码的i图像(cra图像),并且如果该图像不是编码视频数据的起始图像的话,则编码控制单元12将该图像的每个宏块条的nuh420中的nalunittype设置成12。将编码视频数据的起始图像的每个宏块条的nuh420中的nalunittype设置为10(idr图像)。此外,当待重新排序的图像的数量不小于1时,对于紧随cra图像并参考在解码顺序和显示顺序上都比该cra图像要早的图像的图像,编码控制单元12将nalunittype设置为14(tfd图像)。另一方面,对于紧随该cra图像并且不参考在显示时间上先于该cra图像、且在解码顺序和显示顺序上都早于cra图像的任何图像的图像,编码控制单元12将nalunittype设为13(dlp图像)。对于其他图像,编码控制单元12将nalunittype设为1或2(tp图像)。

编码控制单元12将已在待编码图像的每个宏块条的头nuh420中设置的nalunittype值通知给图像编码单元13。此外,编码控制单元12从图像预测结构中获得每个图像的ptsei中的解码延迟cpbremovaldelay和显示延迟dpboutputdelay的值,如图2所示,并相应地通知图像编码单元13。

当图像的每个宏块条的nuh420中的nalunittype是10或12时,编码控制单元12将bpsei附至图像。

对于每一个图像,编码控制单元12用信号将图像的编码模式和头信息发至图像编码单元13,并发出对图像进行编码的指令。

图像编码单元13响应于来自编码控制单元12的指令,用指定的编码方式、通过采用能够进行帧间预测编码的视频编码方法之一来对图像进行编码。图像编码单元13所采用的视频编码方法例如可以是mpeg-4avc/h.264或mpeg-2。图像编码单元13将包含每个编码图像的编码视频数据存储于存储单元(未示出)中。

接着,将描述当剪接两个编码视频数据流时所执行的编辑处理。编辑处理是利用剪接点识别信息处理单元14和数据剪接单元15来进行的。

剪接点识别信息处理单元14例如通过用户接口单元(未示出)从存储单元(未示出)中读出所选择的两个编码视频数据流。然后,根据外部施加的控制信号(未示出),剪接点识别信息处理单元14识别要在编码视频数据流中的另一个视频数据流的时间上下游剪接的第二编码视频数据流中的剪接点开始图像。外部控制信号例如指定从第二编码视频数据流的一开始算起的编码图像的数量,而剪接点识别信息处理单元14例如识别编码图像的这个数量以内的最新的cra图像来作为剪接点图像。

对于由此识别的剪接点cra图像来说,如果待重新排序的图像的数量不小于1,则剪接点识别信息处理单元14将该图像的每个宏块条的nalunittype的值从12改为7(7表示该图像是其后潜在可能跟着tfd图像的bla图像)。该nalunittype值表示,这两个编码视频数据流已在那个剪接点处剪接在一起,而且已经丢弃了在编码顺序和解码顺序都晚于剪接点bla图像的一个或多个编码图像。此外,剪接点识别信息处理单元14将第二编码视频数据流中的剪接点cra图像及其随后的图像提供给数据剪接单元15,并发出丢弃紧随剪接点cra图像后的tfd图像的指令。另一方面,如果待重新排序的图像的数量为0,则剪接点识别信息处理单元14将剪接点cra图像的每一宏块条的nalunittype的值从12改为9(9表示该图像是紧随其后既没有tfd图像也没有dlp图像出现的bla图像)。

接着,剪接点识别信息处理单元14计算待丢弃的tfd图像的解码间隔,而紧邻在待丢弃的tfd图像之前的非tfd图像的numremovedtfds字段的值则递增与跟随该非tfd图像的丢弃的tfd图像的解码间隔相等的值。当每个图像的解码间隔相等时,非tfd图像的numremovedtfds字段的值最终将以场为单位来表示在解码顺序上跟随该非tfd图像的、丢弃的图像的数量。然后,剪接点识别信息处理单元14对附至在解码顺序上先于第二编码视频数据流中待丢弃的tfd图像的任何图像的ptsei的numremovedtfds字段的值进行校正。

数据剪接单元15从剪接点识别信息处理单元14接收第二编码视频数据流,并将它剪接到在时间上剪接于剪接点的上游的第一编码视频数据流的尾端。这时,数据剪接单元15丢弃紧随第二编码视频数据流中的起始图像且不能确保被正确解码的任何tfd图像。在这种情况下,数据剪接单元15还可以通过把dlp图像当作tfd图像而丢弃dlp图像。然后,数据剪接单元15将通过将第一和第二编码视频数据流剪接在一起而创建的剪接的编码视频数据存储在存储单元(未示出)中。

图6是示出根据第一实施例的视频编码设备所执行的视频编码处理的操作流程图。视频编码设备1按照图6的操作流程图来对整个视频序列进行编码。

在开始整个序列的编码处理之前,例如由控制单元11来确定诸如gop结构的图像预测结构(步骤s101)。将确定的图像预测结构用信号发至编码控制单元12。

然后,基于图像预测结构、目标图像自视频数据的开始处起的位置等,编码控制单元12确定用于对目标图像进行编码的编码模式,并生成待编码的目标图像的头信息(步骤s102)。

在步骤s102之后,编码控制单元12将目标图像的数据连同该图像的编码模式的类型和头信息一起提供给图像编码单元13。然后,图像编码单元13按照该编码模式和头信息来对目标图像进行编码,并将该头信息附至编码图像的数据(步骤s103)。

在此之后,控制单元11确定在视频序列中是否剩余任何待解码图像(步骤s104)。如果剩余任何待解码图像(步骤s104中的是),则控制单元11从步骤s102开始向前执行处理,以对下一个目标图像进行编码。另一方面,如果不再剩余任何待解码图像(步骤s104中的否),则控制单元11终止编码过程。

图7是示出根据第一实施例的视频编码设备所执行的视频编辑处理的操作流程图。在所示出的示例中,dlp图像未被丢弃,而只有tfd图像被丢弃了。

剪接点识别信息处理单元14对在tfd和dlp图像之中未被丢弃的图像的列表l[]进行初始化,并将变量m初始化为2,变量m表示通过将未被丢弃的图像的数量加2而获得的值(步骤s201)。如果不存在在解码顺序上跟随最后的dlp图像的tfd图像的话,则可以将变量m设置成表示tfd和dlp图像之中未被丢弃的图像的数量。

接着,剪接点识别信息处理单元14从存储单元(未示出)中顺序地读出待剪接于剪接点的上游的第一编码视频数据流中的一直到剪接点的编码图像(步骤s202)。

此外,识别信息处理单元14从存储单元(未示出)中顺序地读出待剪接于剪接点的下游的第二编码视频数据流中的剪接点之后的编码图像(步骤s203)。接着,对于从第二编码视频数据流中读出的起始cra图像,剪接点识别信息处理单元14将每个宏块条nuh中的nalunittype的值改为表示bla图像的值(步骤s204)。

接着,剪接点识别信息处理单元14确定解码顺序上的下一个图像的nalunittype的值是否为14,即,该下一个图像是否为tfd图像(步骤s205)。如果该图像是tfd图像(步骤s205中的是),则剪接点识别信息处理单元14向剪接单元15发出丢弃该tfd图像的指令,并将tfd图像的解码间隔(即,tfd图像和在解码顺序上紧邻在它前面的图像之间的ptseicpbremovaldelay值的差)添加至列表l[]中的第0个到第m个条目中的每一个(步骤s206)。之后,剪接点识别信息处理单元14返回到步骤s205以评估下一个图像的nalunittype。

另一方面,如果该图像不是tfd图像(步骤s205中的否),则剪接点识别信息处理单元14确定解码顺序上的下一个图像的nalunittype的值是否是13,即,下一个图像是否是dlp图像(步骤s207)。如果下一个图像是dlp图像(步骤s207中的是),则剪接点识别信息处理单元14令变量m递增1(步骤s208)。之后,剪接点识别信息处理单元14返回到步骤s205以重复上述处理。另一方面,如果解码顺序上的下一个图像不是dlp图像(步骤s207中的否),则该下一个图像既不是tfd图像也不是dlp图像,而是tp图像。不存在在解码顺序上跟着tp图像的tfd图像。因此,基于列表l[],剪接点识别信息处理单元14对附至bla和dlp图像中的每一个的ptsei的numremovedtfds字段进行更新(步骤s209)。更具体地,对于当从bla图像起算时在解码顺序上一直到第m个图像的非tfd图像,剪接点识别信息处理单元14将附至第k个图像的ptsei的numremovedtfds字段的值更新为l[k]。之后,剪接点识别信息处理单元14将bla图像及其随后的图像提供给数据剪接单元15。

剪接单元15剪接第二编码视频数据流中的bla图像及其随后的图像以便跟随剪接点的上游的第一编码视频数据流的最后一个图像。此时,剪接单元15丢弃由剪接点识别信息处理单元14指定要去除的tfd图像。

接着,将给出对根据第一实施例的用于对由视频编码设备1编码或编辑的编码视频数据进行解码的视频解码设备的说明

图8是根据第一实施例的视频解码设备的简化框图。视频解码设备2包括控制单元21、头信息分析单元22、图像解码/显示时间确定单元23、图像解码单元24和帧存储器25。构成视频解码设备2的这些单元各自在视频解码设备2上作为单独的电路实现。或者,构成视频解码设备2的这些单元也可以在视频解码设备2上以单个的集成电路的形式实现,在该单个的集成电路上集成了实现上述各个单元的功能的电路。此外,构成视频解码设备2的这些单元可以是通过在视频解码设备2中包含的处理器上执行计算机程序而实现的功能模块。

控制单元21控制当解码编码视频数据时视频解码设备2的每个指定单元的操作。

头信息分析部22分析编码视频数据的头信息,并将对确定图像解码和显示时间来说所必需的参数(例如,每个图像的nalunittype以及ptsei中所携带的cpbremovaldelay、dpboutputdelay和numremovedtfds)传递给图像解码/显示时间确定单元23。

接收到来自头信息分析部22的参数的图像解码/显示时间确定单元23检查待解码图像的宏块条nuh。当nuh中所携带的nalunittype的值为7或8或9时,图像解码/显示时间确定单元23确定该待解码图像为bla图像。

当待解码图像为bla图像时,图像解码/显示时间确定单元23使用以下述方式计算出的值而非附至bla图像的ptsei中所携带的cpbremovaldelay的值,来作为bla图像的解码延迟cpbremovaldelay。

图像解码/显示时间确定单元23计算从紧随bla图像前的最新的附有bpsei的图像的图像起算一直到bla图像的图像解码间隔的总和a。然后,图像解码/显示时间确定单元23将bla图像的解码延迟cpbremovaldelay设成等于a。当每个图像的解码间隔相等时,图像解码/显示时间确定单元23可以将bla图像的解码延迟cpbremovaldelay设成等于以场为单位从紧随bla图像前的最新的附有bpsei图像的图像起算一直到bla图像的图像的数量。

此外,图像解码/显示时间确定单元23检查附至bla图像的ptsei的numremovedtfds字段。如果numremovedtfds的值不为零,则图像解码/显示时间确定单元23确定紧随bla图像的tfd图像已被丢弃,并通过从bla图像的显示延迟cpbremovaldelay的值中减去numremovedtfds的值来校正bla图像的显示延迟cpbremovaldelay。

图像解码/显示时间确定单元23还对在解码顺序上跟着bla图像的每个图像上执行下面的处理,直到下一个附有bpsei的图像出现为止。

对于每个指定图像,图像解码/显示时间确定单元23通过从cpbremovaldelay的原始值中减去附至bla图像的ptsei中所携带的numremovedtfds的值与附至指定图像的ptsei中所携带的numremovedtfds的值之差(即,出现在指定图像后的丢弃的图像的解码间隔的总和)来校正解码延迟cpbremovaldelay。另外,对于每个指定图像,图像解码/显示时间确定单元23通过从dpboutputdelay的原始值中减去附至指定图像的ptsei中所携带的numremovedtfds的值来校正显示延迟dpboutputdelay。

此外,对于每个tp图像,图像解码/显示时间确定单元23通过从该图像的解码延迟cpbremovaldelay的原始值中减去在bla图像所附的ptsei中携带的numremovedtfds的值来校正解码延迟cpbremovaldelay。

对于除以上图像之外的任何其他图像,图像解码/显示时间确定单元23通过直接取用在该图像所附的ptsei中携带的解码延迟cpbremovaldelay和显示延迟dpboutputdelay的值来确定图像的解码延迟cpbremovaldelay和显示延迟dpboutputdelay。

图像解码/显示时间确定单元23基于以上解码延迟cpbremovaldelay来确定每个图像的解码时间,并且在确定的解码时间向图像解码单元24发出解码指令。此外,图像解码/显示时间确定单元23基于以上显示延迟dpboutputdelay来确定每个图像的显示时间,并且在确定的显示时间向帧存储器25发出显示指令。

在接收到针对待解码图像的解码指令时,图像解码单元24通过使用存储在帧存储器25中的参考图像来对图像进行解码。然后,图像解码单元24将解码图像存储在帧存储器25中。图像解码单元24通过使用与视频编码设备1中的图像编码单元所使用的编码方法相同的编码方法来执行解码。

帧存储器25存储解码图像。此外,帧存储器25将解码图像输出至图像解码单元24以向待随后解码的图像呈现参考图像。帧存储器25还根据从图像解码/显示时间确定单元23接收的显示指令将解码图像输出至显示单元(未示出)。

图9是示出根据第一实施例的通过视频解码设备执行的视频解码处理的操作流程图。视频解码设备2根据图9的操作流程图对整个视频序列进行解码。

在开始整个序列的解码处理之前,控制单元21将变量“flag”初始化为0(步骤s301)。变量“flag”为表示图像是否为cpbremovaldelay和dpboutputdelay需要校正的非bla图像的变量。如果flag为1,则cpbremovaldelay和dpboutputdelay需要校正,而如果flag为0,则cpbremovaldelay或dpboutputdelay都不需要校正。

接下来,头信息分析单元22对待解码的图像的头信息进行分析,并将确定图像的解码时间和显示时间所需要的参数传送至图像解码/显示时间确定单元23(步骤s302)。图像解码/显示时间确定单元23确定变量“flag”是否为1(步骤s303)。如果变量“flag”为1(在步骤s303中为是),则图像解码/显示时间确定单元23通过使用待解码图像的numremovedtfds和最新bla图像的numremovedtfds来校正待解码图像(在该情况下为非bla图像)的解码延迟cpbremovaldelay(步骤s304)。图像解码/显示时间确定单元23还通过使用待解码图像的numremovedtfds来校正待解码图像的显示延迟dpboutputdelay。

在步骤s304之后,或在步骤s303中确定了变量“flag”为0(在步骤s303中为否)之后,图像解码/显示时间确定单元23继续确定待解码图像是否为附有bpsei的图像(步骤s305)。

如果待解码图像为附有bpsei的图像(在步骤s305中为是),则图像解码/显示时间确定单元23确定待解码图像是否为bla图像(步骤s306)。如果待解码图像不是bla图像(在步骤s306中为否),则图像解码/显示时间确定单元23将变量“flag”重设为0(步骤s307)。

如果待解码图像为bla图像(在步骤s306中为是),则图像解码/显示时间确定单元23校正图像的解码延迟cpbremovaldelay和显示延迟dpboutputdelay,并将变量“flag”设定为1(步骤s308)。在该情况下,图像解码/显示时间确定单元23通过取用从紧随最新的附有bpsei的图像的图像起算一直到bla图像的图像解码间隔之和,确定bla图像的解码延迟cpbremovaldelay。此外,图像解码/显示时间确定单元23通过从dpboutputdelay的原始值中减去numremovedtfds的值来确定图像的显示延迟dpboutputdelay。

在步骤s307或s308之后,或在步骤s305中确定了待解码图像不是附有bpsei的图像(在步骤s305中为否)之后,控制单元21继续确定在编码视频数据中是否剩余任何待解码图像(步骤s309)。如果剩余任何待解码图像(在步骤s309中为是),则控制单元21将处理返回到步骤s302。然后,以解码顺序上下一个待解码图像作为目标图像,并且重复从步骤s302开始的处理。另一方面,如果不再剩余任何待解码图像(在步骤s309中为否),则控制单元21终止视频解码处理。

将参考附图10通过示例来说明到目前为止所描述的推导numremovedtfds的方法及校正cpbremovaldelay和dpboutputdelay的方法。

待在剪接点的上游剪接的第一编码视频数据流1001中的每个框表示一个图像,并且每个框中携带的字符表示输入至视频编码设备的顺序和编码模式,如图2所示。

在示出的示例中,紧随第一编码视频数据流的最后一个图像b11来剪接第二编码视频数据流1002。在第二编码视频数据流1002中,同样,每个框表示一个图像,并且每个框中携带的字符表示输入至视频编码设备的顺序和编码模式。在第二编码视频数据流1002上方示出的箭头表示在通过前向帧预测对图像b4至b7进行编码时图像b4至b7分别参考的参考图像。另一方面,在第二编码视频数据流1002下方示出的箭头表示在通过后向帧预测对图像b4至b7进行编码时图像b4至b7分别参考的参考图像。

如在第二编码视频数据流1002中指定的,在第二编码视频数据流1002中,图像b4、b2、b1、b3和b5为tfd图像。图像b6和b7为dlp图像。

在第二编码视频数据流1002下方呈现的框阵列1003表示在第二编码视频数据流1002的每个图像所附的ptsei中携带的解码延迟cpbremovaldelay和显示延迟dpboutputdelay的值。框阵列1003的上面一行中的每个框携带第二编码视频数据流1002中位于该框正上方的对应图像的解码延迟cpbremovaldelay的值。类似地,框阵列1003的下面一行中的每个框携带第二编码视频数据流1002中位于该框正上方的对应图像的显示延迟dpboutputdelay的值。

在框阵列1003下方示出了通过剪接第一编码视频数据流1001和第二编码视频数据流1002生成的剪接的编码视频数据1004。在示出的示例中,第二编码视频数据流1002中的tfd图像b4、b2、b1、b3、和b5被丢弃,因此未被包含在剪接的编码视频数据1004中。

在框阵列1004下方示出了剪接的编码视频数据1004的numremovedtfds1005。bla图像i8的numremovedtfds字段携带在解码顺序上跟随i8的丢弃的tfd图像(b4、b2、b1、b3、和b5)的解码间隔之和,即,在示出的示例中为表示在i8之后以场为单位被丢弃了的图像的数量的值“10”。类似地,dlp图像b6的numremovedtfds字段携带在解码顺序上跟随b6的丢弃的tfd图像(b5)的解码间隔之和,即,在示出的示例中为表示在b6之后以场为单位被丢弃了的图像的数量的值“2”。对于图像b7及其随后图像,numremovedtfds的值保持为0,这是因为不存在在解码顺序上跟随的丢弃的tfd图像。

在剪接的编码视频数据1004的numremovedtfds1005下方呈现的框阵列1006表示剪接的编码视频数据1004的基于numremovedtfds值被校正了的解码延迟cpbremovaldelay和显示延迟dpboutputdelay的值。框阵列1006的上面一行中的每个框携带位于该框正上方的图像的解码延迟cpbremovaldelay的校正值,并且框阵列1006的下面一行中的每个框携带位于该框正上方的图像的显示延迟dpboutputdelay的校正值。

对于bla图像i8,通过从显示延迟dpboutputdelay的原始值“20”中减去numremovedtfds值“10”给出显示延迟dpboutputdelay的校正值为“10”。这样,用通过参考图像b9的显示时间获取的在图像i8的解码时间与显示时间之差不仅可以表达图像i8的显示延迟dpboutputdelay的原始值还可以表达其校正值,其中,在跟随i8的图像中,图像b9的待重新排序的图像数量最大。

对于dlp图像b6,通过从解码延迟cpbremovaldelay的原始值“10”中减去图像i8的numremovedtfds值(=10)与图像b6的numremovedtfds值(=2)之差“8”来给出解码延迟cpbremovaldelay的校正值为“2”。此外,通过从显示延迟dpboutputdelay的原始值“6”减去图像b6的numremovedtfds值(=2)来给出图像b6的显示延迟dpboutputdelay的校正值为“4”。对于图像b7及其随后图像,由于numremovedtfds值为0,所以通过从解码延迟cpbremovaldelay的原始值中减去图像i8的numremovedtfds值来获得解码延迟cpbremovaldelay的校正值。对于图像b7及其随后图像,显示延迟dpboutputdelay保持不变。

如以上所描述了的,在使两个或更多个编码视频数据流剪接在一起而不一起对它们解码时,根据本实施例的视频编码设备仅需要将基于在剪接时丢弃的图像的数量确定的解码延迟和显示延迟校正参数存储在编码视频数据内,而不需要校正在编码时确定的解码延迟和显示延迟参数。然后,由于可以使用在剪接编码视频数据流时添加的解码延迟和显示延迟校正参数来校正每个图像的解码延迟和显示延迟,根据本实施例的视频解码设备可以以校正时序对每个图像进行解码和显示。

接下来,将描述第二实施例。第二实施例与第一实施例的区别在于编码视频数据的结构。

参考图11,将对根据第二实施例的编码视频数据的结构进行描述。与根据图4中示出的第一实施例的编码图像结构一样,一个图像的数据结构包含六种nal单元1110至1115。这些单元中的bpsei1113和ptsei1114与图4中描述的bpsei413和ptsei414不同。另一方面,delim1110、sps1111、pps1112、slice1115、和nuh1120分别与图4中示出的delim410、sps411、pps412、slice415、和nuh420相同。

bpsei1113包含numentries字段,该字段携带通过将1与变量m相加计算出的数量,其中,m表示通过将2与在剪接时在位于bla图像与下一cra图像之间的tfd和dlp图像中未被丢弃的图像的数量相加获得的值。bpsei1113还包含与numentries一样多的altcpbremovaldelayoffset字段和altdpboutputdelayoffset字段。numentrie字段、altcpbremovaldelayoffset字段和altdpboutputdelayoffset字段一起组成用于对解码延迟和显示延迟进行校正所使用的校正信息的另一个示例。另一方面,不像ptsei440,ptsei1140不包含numremovedtfds字段。

当numentries字段的值为0时,视频解码设备不需要对针对附有bpsei的图像及其随后图像(先于下一个有bpsei的图像)中的任何图像的cpbremovaldelay和dpboutputdelay的值进行校正。另一方面,当numentries字段的值不为0时,视频解码设备通过从解码延迟cpbremovaldelay的原始值中减去altcpbremovaldelayoffset[k]的值来对从附有bpsei的图像起算的在解码顺序上的第k个图像的解码延迟cpbremovaldelay进行校正。同样地,视频解码设备通过从显示延迟dpboutputdelay的原始值中减去altcpbremovaldelayoffset[k]的值对显示延迟dpboutputdelay进行校正。

如以上所述,与第一实施例的区别在于携带cpbremovaldelay和dpboutputdelay字段的校正值的sei的类型。因此,第二实施例的视频编码设备与第一实施例的视频编码设备的区别在于剪接点识别信息处理单元14的操作。因此,以下对剪接点识别信息处理单元14的操作进行描述。

剪接点识别信息处理单元14将通过使1与根据图7中示出的视频编辑处理的操作流程图计算的变量m相加获得的值存储在numentries字段中。此外,剪接点识别信息处理单元14将l[0]-l[k]的值存储在第k个altcpbremovaldelayoffset字段中(k=[0,m-1])。剪接点识别信息处理单元14还将l[k]的值存储在第k个altdpboutputdelayoffset中。

接下来,将对根据第二实施例的视频解码设备的操作进行描述。根据第二实施例的视频解码设备的配置与根据第一实施例的视频解码设备的配置基本上相同。然而,根据第二实施例的视频解码设备与第一实施例的视频解码设备的区别在于图像解码/显示时间确定单元23的操作。因此,下面对图像解码/显示时间确定单元23的操作进行描述。

只有在紧邻待解码图像前的附有bpsei的图像的bpsei中的numentries的值不为零时,图像解码/显示时间确定单元23才以以下方式对图像的ptsei中的解码延迟cpbremovaldelay和显示延迟dpboutputdelay的值进行校正。

如从紧邻其前的附有bpsei的图像(在该情况下为bla图像)起算的图像的解码顺序表示为k(k=0、1、2、…)。当k等于或大于numentries时,图像解码/显示时间确定单元23通过从第k个图像的解码延迟cpbremovaldelay的原始值中减去altcpbremovaldelayoffset[numentries-1]的值来对解码延迟cpbremovaldelay的值进行校正。另一方面,当k小于numentries时,图像解码/显示时间确定单元23通过从解码延迟cpbremovaldelay的原始值中减去altcpbremovaldelayoffset[k]的值来对第k个图像的cpbremovaldelay的值进行校正,并通过从显示延迟dpboutputdelay的原始值中减去altdpboutputdelayoffset的值来对dpboutputdelay的值进行校正。

图12是示出通过执行用于实现根据以上实施例或它们的修改示例中的任一个的视频编码设备或视频解码设备中的各个单元的功能的计算机程序而用作视频编码设备或视频解码设备的计算机的配置的图。

计算机100包括用户接口单元101、通信接口单元102、存储单元103、存储介质访问装置104、和处理器105。处理器105例如通过总线连接至用户接口单元101、通信接口单元102、存储单元103、和存储介质访问装置104。

用户接口单元101例如包括输入装置如键盘和鼠标、以及显示装置如液晶显示器。可替代地,用户接口单元101可以包括集成有输入装置和显示装置的装置,如触摸面板显示器。用户接口单元101例如响应于用户操作来生成用于选择待编码的视频数据、待编辑的编码视频数据、或待解码的编码视频数据的操作信号,并且将操作信号提供给处理器105。接口单元101还可以显示从处理器105接收的解码视频数据。

通信接口单元102可以包括用于将计算机100连接至视频数据生成设备例如摄像机的通信接口、以及用于通信接口的控制电路。这样的通信接口可以例如为通用串行总线(usb)接口。

此外,通信接口单元102可以包括用于连接至符合通信标准如以太网(注册商标)的通信网络的通信接口、以及用于通信接口的控制电路。

在后者的情况下,通信接口102从连接至通信网络的另一个设备接收待编码视频数据、待编辑的编码视频数据、或待解码的编码视频数据,并且将接收的数据传送至处理器105。此外,通信接口102可以从处理器105接收编码视频数据、剪接的编码视频数据、或解码视频数据,并且可以通过通信网络将数据传输给另一个设备。

存储单元103例如包括可读/可写半导体存储器和只读半导体存储器。存储单元103存储用于待在处理器105上执行视频编码或视频解码的计算机程序,并且还存储由于执行程序或在执行程序中生成的数据。

存储介质访问装置104为访问存储介质106(如磁盘、半导体存储卡、或光学存储介质)的装置。存储介质访问装置104访问存储介质106以例如读出用于待在处理器105上执行视频编码或视频解码的计算机程序,并将读出的计算机程序传送至处理器105。

处理器105通过执行根据以上实施例或其修改示例中任一个的视频编码计算机程序来生成编码视频数据。然后处理器105将这样生成的编码视频数据存储在存储单元103中,或通过通信接口单元102将生成的数据传输给另一个设备。此外,处理器105通过将两个编码视频数据流剪接在一起来生成剪接的编码视频数据。然后处理器105将生成的剪接的编码视频数据存储在存储单元103中,或通过通信接口单元102将生成的数据传输给另一个设备。而且,处理器105通过执行根据以上实施例或其修改示例中任一个的视频解码计算机程序来对编码视频数据进行解码。然后处理器105将解码视频数据存储在存储单元103中,将数据呈现给用户接口单元101用于显示,或通过通信接口单元102将数据传输给另一个设备。

在计算机上执行以实现组成根据以上实施例或其修改示例中每一个的视频编码设备或视频解码设备的各种单元的功能的计算机程序可以以存储在半导体存储器中的格式或以记录在记录介质如光学记录介质上的格式来分布。此处使用的术语“记录介质”并非载波。

根据以上实施例或其修改示例的视频编码设备和视频解码设备被用在各种应用中。例如,将视频编码设备和视频解码设备合并在摄像机、视频传输设备、视频接收设备、视频电话系统、计算机、或移动电话中。

本文中列举的所有示例和条件语言意在用于教导目的以帮助读者理解由本发明人贡献以促进现有技术的本发明和思想,并且应当被理解为不限制这样具体列举的示例和条件,也不限制说明书中与示出本发明的优势和劣势相关的这样的示例的组织。尽管已详细描述了本发明的实施例,然而应当理解的是,可以在不偏离本发明的精神和范围的情况下对本文进行各种变化、置换和替换。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1