视频图像解码装置及方法与流程

文档序号:16169656发布日期:2018-12-07 21:51阅读:195来源:国知局
视频图像解码装置及方法与流程

技术领域

本文论述的实施例涉及用于将在视频图像数据中包括的画面分割成多个块并且对每个块进行编码的视频图像编码装置、视频图像编码方法、视频图像解码装置及视频图像解码方法。



背景技术:

通常,视频图像数据包括大量数据。因此,当对另一装置发送视频图像数据时或当在存储器装置中存储视频图像数据时,用于处理视频图像数据的装置通过对视频图像数据进行编码来压缩视频图像数据。

作为用于对视频图像进行编码的代表性标准技术,通过ISO/IEC(国际标准化组织/国际电工委员会)研发的MPEG(活动图像专家组阶段)-2、MPEG-4或MPEG-4AVC/H.264(H.264MPEG-4高级视频编码)被广泛使用。

作为上述标准的编码技术,存在一种帧间编码方法(inter encoding method)和一种帧内编码方法(intra encoding method),帧间编码方法用于通过使用作为编码目标的画面的信息以及在该编码目标之前和之后的画面的信息来对画面进行编码,以及帧内编码方法用于通过仅使用作为编码目标的画面的信息来对画面进行编码。

通常,通过帧间编码方法编码的画面或块的编码量小于通过帧内编码方法编码的画面或块的编码量。因此,根据所选择的编码模式,画面的编码量在同一序列内变得不成比例。类似地,根据所选择的编码模式,块的编码量在同一画面内变得不成比例。

因此,为了即使编码量随着时间而改变也通过恒定的传输速率来传送包括编码视频图像的数据流,对传输源装置设置用于数据流的传送缓冲器,并且对传输目的装置设置用于数据流的接收缓冲器。

由这些缓冲器造成的延迟(下文称为“缓冲器延迟”)是造成从每个画面被输入到编码装置时到每个画面被显示在解码装置时的延迟(下文称为“编解码器延迟”)的主要因素。作为编解码器延迟,存在作为与解码相关的延迟的解码延迟,以及作为与显示(输出)相关的延迟的显示延迟。

通过减小缓冲器的大小,缓冲器延迟和编解码器延迟减少。然而,随着缓冲器的大小减小,对每个画面分派编码量的自由度减小。因此,再现的视频图像的图像质量恶化。分派编码量的自由度表示编码量的变化的程度。

MPEG-2和MPEG-4AVC/H.264分别指定了VBV(视频缓存检验器)和CPB(编码画面缓冲器),其是理想的解码装置中的接收缓冲器的操作。

视频图像编码装置控制编码量,以使得理想的解码装置的接收缓冲器不上溢或下溢。理想的解码装置被指定用于执行瞬时解码,在瞬时解码中解码处理花费的时间为零。例如,存在与VBV相关的用于控制视频图像编码装置的技术(参见,例如专利文献1)。

视频图像编码装置控制编码量,以确保在当理想的解码装置对画面进行解码时要被解码的画面的数据被存储在接收缓冲器中,以使得理想的解码装置的接收缓冲器不上溢或下溢。

当视频图像编码装置通过恒定的传输速率传送流,但是由于对于每个画面存在大的编码量,因此直到当视频图像解码装置对画面进行解码并显示时用于对画面进行解码的数据的传输尚未完成时,接收缓冲器下溢。也就是说,接收缓冲器的下溢表示用于对画面进行解码的数据没有出现在解码装置的接收缓冲器中。在该情况下,视频图像解码装置不可能执行解码处理,因此跳帧发生。

为了在不造成接收缓冲器下溢的情况下执行解码处理,视频图像解码装置在将流延迟从接收时间开始预定长度的时间之后显示画面。

如上所述,指定理想的解码装置,以使得通过为零的处理时间瞬时完成解码处理。因此,假设将第“i”个画面(下文中也被表示为“P(i)”)输入到视频图像编码装置的时间是t(i),在理想的解码装置中对P(i)进行解码的时间是dt(i),则可以在与解码时间相同的时间(即,在dt(i))显示该画面。

对于所有画面,画面的显示时间段{t(i+1)-t(i)}和{dt(i+1)-dt(i)}是相等的,因此解码时间dt(i)成为{dt(i)=t(i)+dly},其从输入时间t(i)被延迟固定时间dly。因此视频图像编码装置必须在时间dt(i)以前完成将用于解码的数据传送到视频图像解码装置的接收缓冲器。

图1示出根据传统技术的接收缓冲器的缓冲器占有量的转变的示例。在图1的示例中,水平轴表示时间,垂直轴表示接收缓冲器的缓冲器占有量。由实线示出的线10表示在各个时间点上的缓冲器占有量。

在接收缓冲器中,以预定的传输速率恢复缓冲器占有量,并且从缓冲器中提取用于在每个画面的解码时间对画面进行解码的数据。在图1的示例中,P(i)的数据在时间at(i)开始被输入到接收缓冲器,并且P(i)的末尾数据在时间ft(i)被输入。理想的解码装置在时间dt(i)完成对P(i)的解码,并且可以在时间dt(i)显示P(i)。

理想的解码装置执行瞬时解码,而实际的视频图像解码装置花费预定长度的时间来执行解码处理。通常,一个画面的解码处理时间短于画面的显示时间段,然而,实际的视频图像解码装置花费与画面的显示时间段接近的时间量来执行解码处理。

从时间at(i)到时间ft(i)将P(i)的数据输入到接收缓冲器。然而,不能确保在at(i)和ft(i)之间、用于对每个块进行解码的数据到达的时间。因此,实际的视频图像解码装置从时间ft(i)开始对P(i)进行解码的处理。因此,假设对一个画面进行解码要花费的最大处理时间是ct,则仅仅可以确保实际的视频图像解码装置在时间ft(i)+ct内完成解码处理。

视频图像编码装置确保用于对P(i)进行解码的数据在时间dt(i)前到达接收缓冲器,即,确保满足ft(i)≤dt(i)。因此,当ft(i)处于最晚的时间时,ft(i)变得与dt(i)相同。

在该情况下,确保对整个P(i)的解码处理完成的时间是dt(i)+ct。为了以相等时间间隔显示所有画面,视频图像解码装置将各个画面的显示时间关于理想的解码装置延迟至少时间ct。

在MPEG-2的VBV和MPEG-4AVC/H.264的CPB中,在视频图像解码装置中每个编码画面的到达时间和被解码的每个编码画面的显示时间之间的差被表示为(ft(i)-at(i)+ct)。也就是说,难以实现小于时间ct的编解码器延迟,其中编解码器延迟从当每个画面被输入到编码装置延伸到当该画面在解码装置处被输出时。也就是说,时间ct通常是用于一个画面的处理时间,因此难以实现比用于一个画面的处理时间更小的编解码器延迟。

专利文献1:日本早期公开专利公布No.2003-179938

非专利文献1:JCTVC-H1003,“High-Efficiency Video Coding(HEVC)text specification draft 6”,Joint Collaborative Team on Video Coding of ITU-T SG16WP3and ISO/IEC JTC1/SC29/WG11,2012年2月

非专利文献2:MPEG-2测试模型5.1993年4月.ISO-IEC/JTC1/SC29/WG11/N0400(http://www.mpeg.org/MPEG/MSSG/tm5/)

在传统技术中,难以使编解码器延迟成为用于一个画面的处理时间。然而,存在下面的用于使编解码器延迟变得小于用于一个画面的处理时间的方法。例如,该方法用于将画面中的各个块分配到N个组中的一个组中,并对每个组分配解码开始时间。例如,组是一个块行。块行表示在画面的水平方向的一行块。

如果使得在每个组中产生的信息量均匀,则连续的组的解码开始时间的差异与用于每个组的处理时间匹配,并且时间ct成为每个组的处理时间ct/N。因此,作为结果,可以将编解码器延迟减小为用于每个组的处理时间。

图2示出其中通过组分割使得编解码器延迟小于一个画面时间的示例。图2中的图线17表示传统方法的缓冲器占有量的时间转变。同时,图2中的图线15表示根据组分割的缓冲器占有量的时间转变。

根据组分割方法,P(i)的第“n”组(下文也表示为G(i,n))的解码开始时间dgt(i,n)被限定,并且缓冲器占有量减小。通过花费由附图标记16表示的、从对应的解码开始时间开始的组解码时间ct/N来对每个组进行解码。因此,每个组的显示可能时间(可能进行显示的时间)的延迟减小。

在组分割方法中,在每个组中产生的信息量基本相等,因此编解码器延迟被减小为每组的时间。在组中的每个块中的信息产生量显著地不成比例的情况下,编解码器延迟是最大值。然而,在实际情况下,通过适当的速率控制来减小在组中的每个块中所产生的信息量的不成比例。在该情况下,理论上可以进一步减小编解码器延迟,但是这通过块分割方法难以实现。参考图3到6描述其原因。

图3示出视频图像解码装置的接收缓冲器的操作。在图3的示例中,使用到达接收缓冲器的编码数据量的累积值以及通过解码处理消耗的编码数据的累积值来表示接收缓冲器的操作。

图3中的图线20表示到达接收缓冲器的编码数据量的累积值。通过固定速率R将编码数据从视频图像编码装置传送到视频图像解码装置。在图3的示例中,第一比特在时间“at(0)”(其为零)到达视频图像解码装置的接收缓冲器。

图3中的图线21表示以画面为单位的、通过瞬时解码处理消耗的编码数据的累积值。在初始延迟dly之后,第“i”个画面P(i)(i=0,...)顺序地在dt(i)受到瞬时解码。两个连续的画面之间的瞬时解码时间的差dt(i+1)-dt(i)是固定的。P(i)的编码信息数量由b(i)表示。

at(i)和ft(i)分别表示P(i)的编码数据中的第一比特和P(i)的编码数据中的末尾比特到达视频图像解码装置的时间。为了防止视频图像解码装置的接收缓冲器下溢,P(i)的所有编码数据要在dt(i)到达。也就是说,要满足dt(i)≥ft(i)以及dt(i-1)≥at(i)。

每个时间的接收缓冲器的容量对应于每个时间图线20和图线21之间的差。例如,在时间dt(0)对P(0)进行瞬时解码之后的接收缓冲器的容量是由附图标记25表示的比特量。

图4示出注意力集中于一个P(i)的接收缓冲器的操作。通过对图3的一部分进行放大来示出图4。具体地,图4的示例示出其中以画面为单位执行瞬时解码、视频图像解码装置的接收缓冲器没有下溢、并且at(i)和ft(i)是最晚的时间(即,dt(i)=ft(i)并且dt(i-1)=at(i))的情况。在图4的示例中,组的数量N为4,每个组的块的数量和所产生的信息量、dgt(i,n+1)-dgt(i,n)是均匀的。

图4中的图线30表示到达视频图像解码装置的接收缓冲器的编码数据量的累积值。图线31表示以画面为单位的、通过瞬时解码而消耗的编码数据的累积值。

图线32表示通过在dgt(i,n)在P(i)的第“n”组G(i,n)中进行瞬时解码而消耗的编码数据的累积值。

在组分割方法中,假设将在各个组中产生的信息量在画面中进行平均。也就是说,P(i)的组的块中产生的信息量的总和是b(i)/N。b(i)是在P(i)中产生的信息量。

P(i)的组的块中产生的信息量的最小值是零,最大值是b(i)/N。在以从dt(i-1)到dt(i)的相等时间间隔对P(i)中的块进行瞬时解码的情况下,表示所消耗的编码数据的累积值的图线f(t)出现在由附图标记35到38表示的正方形区域内。

当块中所产生的信息量相等时,f(t)是将由附图标记35到38表示的正方形区域中的每个正方形区域的左下顶点和右上顶点进行连接的直线(与图线30匹配)。当整个组的比特量产生于引导块(leading block)处时,f(t)是将正方形区域中的每个正方形区域的左边缘和上边缘相连接的线。后一情况对应于在缓冲器延迟方面的最大延迟。

在图4的示例中,在dt(i-1)到dt(i)的时间之间,P(i)中的块的比特到达接收缓冲器。第“x”个比特(x=[1,b(i)])的到达时间g(x)由下面的公式表示。

公式1

鉴于实际视频图像解码装置的操作,考虑其中以从dt(i-1)到dt(i)的相等时间间隔对P(i)中的块进行瞬时解码的情况。假设画面中的块的总数量为M,P(i)中的第“m”块的理想的瞬时解码时间p(i,m)由下面的公式表示。

公式2

根据f(t)的形状,f(t)可以位于图线30上方。也就是说,满足f(p(i,m))<g(f(p(i,m))),并且用于对块进行解码的所有比特没有到达视频图像解码装置的接收缓冲器,并且下溢发生。当块具有相等数量的比特时,满足f(p(i,m))=g(f(p(i,m))),并且下溢不发生,但是这是在缓冲器延迟方面的最坏情况。

当在引导块处产生整个组的比特量时,用于对引导块进行解码的所有比特的到达时间延迟dgt(i,n+1)-dtg(i,n)。

在组分割方法中,视频图像解码装置不知道f(t)的形状。因此,确保了即使G(i,n)的引导块的比特到达延迟是最大值dgt(i,n)-dgt(i,n-1)也避免下溢。从而,G(i,n)中的所有块的瞬时解码时间要被延迟到dgt(i,n)。也就是说,P(i)中的引导块的解码开始时间是dgt(i,1)。因此,传统技术的第一个问题是不可以进一步减小编解码器延迟。

此外,在传统技术中,假设可以在通过解码时间ct/N进行解码之后瞬时显示画面。然而,在非专利文献1中,使用被称为拼图(tile)的编码方法,通过该方法画面不仅可以被水平分割,而且还可以垂直分割。因此,即使在通过解码时间ct/N进行解码之后,也可能存在其中不可以瞬时显示画面的情况。参考图5描述不可以瞬时显示画面的示例。

图5示出不可以瞬时显示图像的示例。在非专利文献1中,通过不仅水平地而且垂直地对画面进行分割而获得的画面的区域被称为拼图。在图5的示例中,画面被分割为四个拼图。

以左上、右上、左下和右下为顺序,拼图被称为拼图0(t40)、拼图1(t41)、拼图2(t42)和拼图3(t43),并且以该顺序来对拼图进行处理。

此外,在每个拼图内,存在包括多个块的若干个组。在图5的示例中,由s41到s44表示组1到3。在该情况下,以组的顺序执行解码,该顺序是如由附图标记sc41到sc42表示的扫描顺序或解码顺序。

与解码顺序不同,显示顺序可以是依赖于显示器的光栅扫描。在该情况下,顺序由附图标记sc43表示。在该情况下,即使用于组的解码处理完成,也不可以瞬时显示画面。

例如,紧接在对组0(s41)进行解码之后,在拼图0(t40)中包括的画面的上部位置的左半部分中的CTB(例如块b41和块b42)属于组0(s41)并且因此可显示。然而,在拼图1(t41)中包括的画面的上部位置的右半部分中的CTB(例如块b45和块b46)属于组2(s43),没有被解码,并且因此不能显示。

当通过光栅扫描执行显示时,结构用于以从屏幕的左边缘到屏幕的右边缘的顺序来显示画面。因此,当要显示画面的顶部位置时,属于组2(s43)的块要被显示。因此,要等待组2(s43)被解码以使得组2(s43)变得可显示。

完成对组2(s43)的解码花费的时间是对于sc41到sc42以扫描顺序经过的所有块进行解码花费的时间。

在组分割方法中,可以快速执行解码,但是没有考虑可显示时间。因此,传统技术的第二问题是为了确保画面被显示,要等待用于一个画面的时间。

此外,非专利文献1限定了在画面较复杂的情况下,当要用于对画面进行解码的比特量大于可以在缓冲器中积累的比特量时的操作。

图6示出当要用于对画面进行解码的比特量大于可以在缓冲器中积累的比特量时的操作。视频图像编码装置调节编码量,以使得由图6的图形50中的预定速率51表示的速率R的积累量不超过所提取的、画面的比特量的积累量。

然而,当画面复杂时,在缓冲器中积累的比特量不足以用于编码,并且存在下溢发生的情况。一个示例是图6中的图形53的情况。

如图6中的图形54所示,当下溢发生时,解码装置不在画面的原始解码时间dt(0)开始解码,而是当在缓冲器处接收到用于解码的比特时,在时间dt’执行解码。

通常,已延迟画面的显示定时是定时dt(1),定时dt(1)是假设下一个画面要被显示的时刻。对于假设要在时间dt(1)显示的画面,解码被执行但是显示被跳过。

传统技术的第三个问题是非专利文献1没有清楚地限定当以组为单位发生下溢时的操作。



技术实现要素:

根据实施例的方面,一种视频图像编码装置,包括:组配置确定单元,用于确定多个块中的每个块所属的组,多个块是通过将在视频图像数据中包括的每个画面进行分割而获得的;组信息添加单元,用于将组信息添加到输出流,组信息表示多个块中的每个块所属的组;解码时间确定单元,用于计算组中的每个组的解码时间,并且将解码时间添加到输出流;输出时间确定单元,用于计算组中的每个组的显示时间,并且将显示时间添加到输出流;编码量控制单元,用于当用来对在组中的一个组中包括的所有块进行解码的数据以预定的传输速率被传送到解码装置时对编码量进行控制,以使得该数据在由输出时间确定单元计算出的显示时间表示的时间之前到达解码装置的接收缓冲器;编码处理单元,用于基于编码量控制单元的控制信息来执行编码;以及信息数量控制单元,用于当用来对在组中的一个组中包括的所有块进行解码的数据在显示时间之前没有到达解码装置的接收缓冲器时实行控制,以使得下一画面中的第一数据不在显示时间之前到达解码装置的接收缓冲器。

根据实施例的方面,一种视频图像解码装置,包括:组信息提取单元,用于从输入流中提取表示组的组信息,所述输入流表示通过将在视频图像数据中包括的每个画面进行分割而获得的多个块的编码数据;解码时间计算单元,用于根据从所述输入流中提取的组解码延迟信息以及从所述组信息提取单元中提取的组信息计算每个组的解码时间;输出时间计算单元,用于根据从所述输入流中提取的组解码延迟信息以及从所述组信息提取单元中提取的组信息计算所述画面的引导组的输出时间;块解码单元,用于接收所述输入流、执行对由所述解码时间计算单元算出的每个组的解码时间进行解码以及输出解码块;帧存储器,用于保存所述解码块;组输出单元,用于将在所述帧存储器中保存的、组中的各解码块在由所述解码时间计算单元算出的所述画面的引导组的输出时刻进行输出;以及显示控制单元,用于对所述多个组中的每个组的显示进行控制,其中,所述块解码单元基于接收数据确认用于解码的所有数据是否在各组的解码时间已到达,并且当用于解码的所有数据在所述各组的解码时间尚未到达时,所述显示控制单元控制所述组输出单元,以推迟一帧地显示该组的所属的所述画面的各解码块的显示时刻。

根据实施例的方面,一种由计算机执行的方法包括:从输入流中提取表示组的组信息,所述输入流表示通过将在视频图像数据中包括的每个画面进行分割而获得的多个块的编码数据;根据从所述输入流中提取的组解码延迟信息以及所提取的组信息计算每个组的解码时间;根据从所述输入流中提取的组解码延迟信息以及所提取的组信息计算所述画面的引导组的输出时间;接收所述输入流、执行对由所算出的每个组的解码时间进行解码以及输出解码块;在帧存储器中保存所述解码块;将在所述帧存储器中保存的、组中的各解码块在由所算出的所述画面的引导组的输出时刻进行输出;以及对所述多个组中的每个组的显示进行控制,其中,执行解码包括基于接收数据确认用于解码的所有数据是否在各组的解码时间已到达,并且控制显示包括当用于解码的所有数据在所述各组的解码时间尚未到达时,进行控制以推迟一帧地显示该组的所属的所述画面的各解码块的显示时刻。

附图说明

图1示出根据传统技术的接收缓冲器的缓冲器占有量的转变的示例;

图2示出其中通过组分割使得编解码器延迟小于一个画面时间的示例;

图3示出视频图像解码装置的接收缓冲器的操作;

图4示出注意力集中于一个P(i)的接收缓冲器的操作;

图5示出不可以瞬时显示图像的示例;

图6示出当要用于对画面进行解码的比特量大于可以在缓冲器中积累的比特量时的操作;

图7是示出根据第一实施例的视频图像编码装置的示意性配置的框图;

图8示出在注意力集中于P(i)的情况下编码数据的累积值;

图9示出显示延迟;

图10示出到达接收缓冲器的编码数据的比特量的累积值和在P(i)中的每个块中产生的信息量的累积值之间的关系;

图11用于描述组输出时间信息的计算;

图12是示出根据第一实施例的视频图像编码处理的示例的流程图;

图13是示出根据第一实施例的输出处理的示例的流程图;

图14是示出根据第二实施例的视频图像解码装置的示意性配置的框图;

图15是示出根据第二实施例的视频图像解码处理的示例的流程图;

图16是示出根据第二实施例的输出处理的示例的流程图;

图17是示出根据第三实施例的视频图像编码装置的示意性配置的框图;

图18用于描述下溢的发生;

图19用于描述当下溢发生时执行的处理;

图20是示出根据第三实施例的视频图像编码装置的处理的示例的流程图;

图21是示出根据第四实施例的视频图像解码装置的示意性配置的框图;

图22是示出根据第四实施例的视频图像解码装置的处理的示例的流程图;以及

图23是根据第五实施例的视频图像处理装置的示例的框图。

具体实施方式

将参考附图描述本发明的优选实施例。在这些实施例中描述的视频图像编码装置以组为单位对视频图像数据中包括的画面进行编码,并输出比特流作为编码数据。

画面可以是帧或场。帧是视频图像数据中的一个静止图像,而场是通过从帧中提取奇数行的数据或偶数行的数据而获得的静止图像。

此外,作为编码目标的视频图像可以是彩色视频图像或单色视频图像。

第一实施例

配置

图7是示出根据第一实施例的视频图像编码装置100的示意性配置的框图。视频图像编码装置100包括编码处理单元110、编码量控制单元120、组确定单元130、解码时间确定单元140及输出时间确定单元150。

编码处理单元110包括正交变换单元111、量化单元112及熵编码单元113。

编码量控制单元120包括量化值计算单元121、缓冲器占有量计算单元122及比特计数器123。

编码量控制单元120在用于输出在组中包括的所有块的数据以预定传输速率被传送到解码装置的情况下对编码量进行控制,以使得数据在由计算出的输出时间和确定的输出延迟表示的时间之前到达输出装置的解码缓冲器。

组确定单元130包括组配置确定单元131和组信息添加单元132。

解码时间确定单元140包括组解码时间计算单元141、组解码延迟确定单元142及组解码延迟信息添加单元143。

输出时间确定单元150包括组输出时间计算单元151、组输出延迟确定单元152及组输出延迟信息添加单元153。

在视频图像编码装置100中包括的单元作为分离的电路被装配在视频图像编码装置100中。可选择地,在视频图像编码装置100中包括的单元可以作为单个集成电路(其中集成了实施单元的功能的电路)被装配在视频图像编码装置100中。可选择地,在视频图像编码装置100中包括的单元可以是由在视频图像编码装置100中包括的处理器中执行的计算机程序来实现的功能模块。

控制单元(未示出)将在视频中包括的编码目标画面分割为多个块单元,并且各个块被输入到正交变换单元111。块包括例如16×16像素。

正交变换单元111根据已经被本地解码并存储在帧存储器(未示出)中的画面来计算帧内预测值或帧间预测值。然后,正交变换单元111对输入块和计算值执行差分运算,并且计算预测块误差。此外,正交变换单元111对预测块误差执行正交变换。

量化单元112对已经受到正交变换的预测块误差执行量化。量化操作中的量化参数(控制信息)由量化值计算单元121给定。作为量化的结果而获得的已量化的正交变换系数以及帧内预测或帧间预测的参数(帧内预测方向、运动矢量信息)作为块的压缩数据被输出到熵编码单元113。本地解码单元(未示出)对已量化的正交变换系数执行逆量化和逆正交变换,并且然后与帧内预测值或帧间预测值相加以产生本地解码的块,并将该块存储在帧存储器中。

熵编码单元113对从量化单元112输出的块压缩数据执行熵编码。

量化值计算单元121根据由缓冲器占有量计算单元122输出的、理想解码装置中的接收缓冲器的状态和下一要被编码的块的产生的信息量的上限,计算每个块的量化值。

缓冲器占有量计算单元122基于从比特计数器123输出的编码数据的比特量累积值、从组配置确定单元131输出的组信息、以及从组解码延迟确定单元142输出的组的解码时间和组的解码延迟,计算在理想解码装置中的接收缓冲器的状态以及下一要被编码的块的产生的信息量的上限。

比特计数器123对熵编码单元113的输出比特的数量进行计数,并且输出编码数据的累积值。

组配置确定单元131对于多个块确定每个块所属的组。组配置确定单元131使用从控制单元(未示出)接收的块计数信息和从控制单元(未示出)接收的编码方法规范信息,通过预定方法确定受到编码处理的块所属的组。

块计数信息表示在画面中包括的各个块的编号。例如,在画面的左上边缘处的块的编号被设置为1,并且按照光栅扫描的顺序顺次对多个块分配编号。于是,最大的编号被分配给画面的右下边缘处的块。块计数信息可以包括根据另一顺序分配给块的编号。

组配置确定单元131优选地按照各个组尽可能多地包括相同数量的块的方式确定多个组,以使组的解码处理时间相等。

例如,如果组配置确定单元131以块行为单位将块分割成组,则可以在任意画面大小中使每个组中包括的块的数量相等。

例如,当画面大小是对应于高清电视(HDTV)的1920像素×1088像素时,块大小是16像素×16像素,并且块行的数量是68。因此,在该情况下,在编码目标画面中包括的各个块被归类为68个组中的一个组。

在每个组中包括的块的数量可以是从1到整个屏幕中的块的总数中的一个值。

组配置确定单元131将编码目标块所属的组的标识信息报告给缓冲器占有量计算单元122。组配置确定单元131将在每个组中包括的块的信息报告给组解码时间计算单元141和组输出时间计算单元151。组配置确定单元131可以将位于每个组的开头处的块的索引报告给组解码时间计算单元141和组输出时间计算单元151。

组信息添加单元132对编码数据添加表示在画面中的组的数量的组信息和在每个组中的块信息。

组解码时间计算单元141根据从组配置确定单元131输出的组信息来计算每个组的解码时间,并将解码时间报告给组解码延迟确定单元142。

组解码延迟确定单元142确定每个组的解码延迟,并将该解码延迟与每个组的解码时间一起报告给缓冲器占有量计算单元122和组解码延迟信息添加单元143。所确定的解码延迟被报告作为延迟信息。

组解码延迟信息添加单元143接收组的解码延迟和解码时间,并将该信息添加到编码数据作为组解码延迟信息。

组输出时间计算单元151基于从控制单元(未示出)接收的编码方法规范信息和从组配置确定单元131输出的组信息来计算每个组的输出时间(也称为“显示时间”),并将输出时间信息报告给组输出延迟确定单元152。

组输出延迟确定单元152根据每个组的输出时间来确定每个组的输出延迟,并将输出延迟信息报告给组输出延迟信息添加单元153。

组输出延迟信息添加单元153接收每个组的输出时间和输出延迟,并将该信息添加到编码数据作为组输出延迟信息。

解码延迟

考虑以dt(i-1)和dt(i)之间的相等的时间间隔对第“i”个画面P(i)中的块进行瞬时解码的情况。在该情况下,在消耗的编码数据的累积图线f(t)中,可以通过例如设置每个块中的信息量的下限和上限等适当的速率控制来减少块传输延迟。此外,通过将此信息报告给视频图像解码装置,可以进一步提前块的最早解码开始时间。参考图8给出描述。

图8示出在注意力集中于P(i)的情况下编码数据的累积值。图线60表示编码数据以速率R到达量的累积值。图线61是在以画面为单位执行瞬时解码的情况下所消耗的编码数据的累积值。

附图标记62到66是对于由附图标记67到71表示的各个组(G0到G4)解码所消耗的编码数据的累积值。

考虑组存在的范围和图线60之间的关系,在G(1)到G(4)中,速率恒定地大于编码数据的累积值。因此,即使在以dt(i-1)和dgt(i,1)之间的相等的时间间隔对G(1)到G(4)中的块进行瞬时解码时,下溢也不发生。

在G(0)中,G(0)中的编码数据的累积值超过速率,并且因此下溢发生。为了避免下溢,编码数据的累积值不要超过速率,并且最小值是时间间隔Δt。

在组中的任意一个组中Δt小于dgt(i,n)-dgt(i,n-1)。视频图像解码装置使用在P(i)的每个组中的Δt的最大值,来将P(i)中的引导块的解码开始时间设置为dt(i-1)+Δt(i),以使得在不造成下溢的情况下以相等的时间间隔对所有块执行瞬时解码。

在整个序列中,根据所有画面的Δt(i)的最大值Δt,第一画面中的引导块的解码开始时间dinit由下面的公式表示。因此,在不造成下溢的情况下,以相等的时间间隔对所有画面中的所有块进行瞬时解码。

公式3

dinit=dly-(dt(1)-dt(0))+Δt

由下面的公式表示在P(i)的第“n”组中可以开始解码的最早时间r(i,n)。

公式4

r(i,n)=Δt+n/N(dt(i)-(dt(i-1)+Δt))

在视频图像编码装置中,控制在每个画面和每个组中所产生的信息量,以使得Δt小于dgt(i,n)-dgt(i,n-1),并且Δt的值被明确地传送到视频图像解码装置。在视频图像解码装置中,组G(i,n)的瞬时解码时间是r(i,n),并且因此可靠地确保了每个块的解码开始时间。

视频图像解码装置中的组不必与由视频图像编码装置报告的组匹配。在视频图像解码装置中的组与由视频图像编码装置报告的组匹配的情况下,满足r(i,n)=dgt(i,n)。

显示延迟

通过作为附加的扩展信息明确地报告目标组的显示延迟,最早显示定时被报告给解码装置,并且显示延迟被最小化。例如,参考图5和9来描述在如图5所示的拼图分割和组分割的情况下指定显示延迟的方法。

在图5中,当显示组0(s41)中的顶端部分时显示延迟最大。为了开始显示组0(s41)的顶端部分,至少对于组2(s43)中的画面的顶端部分中的像素值的解码要完成。因此,作为附加的扩展信息明确地报告显示延迟。

图9示出显示延迟。可以显示组0(s41)的顶端部分时的时间是图9中所示的ogt(0)。在ogt(0),将解码花费的时间设置为慢于所提取的(draw out)、组2的时间dgt(2)。假设以固定速度执行对画面的解码,则通过下面的公式表示在此情况下的显示时间。

公式5

ogt(0)=dgt(0)+(dgt(2)-dgt(1))+l/L(dgt(3)-dgt(2))

L是由s43表示的组2中的垂直方向的行的总数量,并且1表示与由s43表示的组2中的画面的右上边缘对应的第“1”行。假设对组解码花费了一个组的时间,则1/L(dgt(3)-dgt(2))表示当完成对于由s43表示的组2中的画面的右上边缘的解码时的时间。

也就是说,通过将从由s41表示的组0的瞬时解码时间到由s43表示的组2的瞬时解码时间所花的时间添加到由s41表示的组0的解码时间dgt(0),来获得显示可能时间。此外,通过加上完成对组2中的画面的右上边缘的解码实际花费的时间来获得显示可能时间。

在视频图像编码装置中,通过作为附加的扩展信息明确地发送由以上公式5表示的时间,可以向解码装置报告考虑了实际解码时间的适当时间,并且因此确保了具有少量延迟的显示。

在以上示例中,当与完成对于组2中的画面的右上边缘的解码时相对应的延迟时间的部分以时间dgt(3)-dgt(2)表示时,与显示可能时间是当完成对一个画面的解码时的时间的情况相比,报告更早的时间,其中,花费dgt(3)-dgt(2)以实际完成对由s43表示的整个组2的解码。因此,确保具有少量延迟的显示。

解码时间的计算

下面,给出根据第一实施例的计算组解码时间信息的方法的描述。在下面的描述中,在编码目标画面中包括的块的总数量是M。

组解码时间计算单元141首先基于从编码顺序中的第“i”个画面P(i)的输入时间t(i)起被延迟了预定延迟时间dly的第“i”个画面P(i)的解码时间dt(i){=t(i)+dly},计算表示画面P(i)中的第“n”组G(i,n)被解码的时间的解码时间dgt(i,n)。可选择地,替代dgt(i,n),组解码时间计算单元141可以计算等于dgt(i,n)的{dgt(i,n)-dgt(i,n-1)}作为解码时间。此外,组解码时间计算单元141可以将解码时间转换为适当的单位,例如1/90000秒的倍数。

为了使得对于在每个组中包括的每个块执行解码处理所花费的时间相等,组解码时间计算单元141通过将执行每个画面的解码处理所花费的时间除以组的数量N,来确定每个组的解码时间。在该情况下,通过下面的公式6来计算G(i,n)的解码时间dgt(i,n)(n=1,2,...,N)。

公式6

dgt(i,n)=dt(i-1)+{dt(i)-dt(i-1)}·n/N

dgt(i)是P(i)的解码时间。d(i+1)-d(i)与i无关是固定的并且在下文中被表示为“s”。

此外,组解码时间计算单元141可以通过下面的公式确定被编码/解码的第二组以后的解码时间dgt(i,n)(n≥2)。

公式7

dgt(i,n)=dgt(i,1)+{dt(i)-dgt(i,1)}·(n-1)/(N-1)

此外,组解码时间计算单元141可以通过下面的公式确定被编码/解码的第二组以后的解码时间dgt(i,n)(n≥2)。

公式8

dgt(i,n)=dt(i-1)+Δt+{dt(i)-(dt(i-1)+Δt)}·(n-1)/(N-1)

组解码延迟确定单元142在开始编码之前确定在整个画面的块延迟中的最大值Δt。Δt被确定为是通过下面的公式表示的范围中的值。

条件1

0≤Δt≤(dgt(i,n+1)-dgt(i,n))

缓冲器占有量计算单元122按照如下方式计算理想的解码装置的接收缓冲器的缓冲器占有量和在下一编码的块中产生的信息量的上限。

图10示出在P(i)的编码处理中,到达理想的解码装置的接收缓冲器的编码数据的比特量的累积值和在P(i)中的每个块中产生的信息量的累积值之间的关系。

图线72表示已经到达理想的解码装置的接收缓冲器的编码数据的比特量的累积值R(t)。图线75是通过将图线72向左移动Δt而获得的,并且表示R′(t)。满足关系R′(t)=R(t+Δt)。

图10中示出的B(i)表示从P(0)到P(i)产生的编码数据的累积值。b(i)表示在整个P(i)中产生的信息量,并且与B(i)-B(i-1)相同。

在图线73中,时间dt(i-1)处的值是B(i-1),时间dt(i)处的值是B(i),并且图线73是具有b(i)/s的倾斜度的直线V(t)。s表示与dt(i)-dt(i-1)相同的一个画面时间。

当以从时间dt(i-1)到时间dt(i)的相等时间间隔对块进行解码时并且当所产生的信息量等于b(i)/M时,图线73对应于表示以块为单位的编码数据的消耗的曲线f(t)。

图线74是表示以实际块为单位的编码数据的消耗的曲线f(t),并且点77表示在解码被执行到第“m”块时以块为单位的编码数据的消耗量的累积值。

为了防止当在根据组解码时间信息计算出的组解码早开始时间r(i,n)对组n进行解码时理想解码装置中的接收缓冲器下溢,要满足下面的条件。量化值计算单元121计算量化值,以使得恒定地满足下面的条件。

条件2

f(r(i,n))≤R'(r(i,n))

f(dgt(i,n-1))≤V(dgt(i,n-1))

f(dgt(i,n))≤V(dgt(i,n))

区域76表示可以在时间dtg(i,u-1)到时间dtg(i,u)之间获得的f(t)的范围。

量化值的计算

给出量化值计算单元121执行的计算块m的量化值的方法的描述。在第一实施例中,在每个组中包括相等数量的块,该数量是M/N。

为了开始对块m所属的第“n”个组G(i,n)中的引导块的处理,通过下面的公式计算G(i,n)的目标信息量T(i,n)。这里,满足n=Ceil(m*N/M)。

公式9

T(i)是整个P(i)的目标信息量,并且T’(i,n)是在G(i,n)处产生的实际信息量。T(i)是使用已知方法、从P(0)到P(i-1)产生的实际信息量的总和。

例如,量化值计算单元121根据在MPEG-2中的标准化组织参考软件测试模型5(参见非专利文献2)中描述的量化值计算方法计算量化值,以使得在G(i,n)中产生的实际信息量接近T(i,n)。

然后,量化值计算单元121将预定阈值DTH与差d1进行比较,差d1是当对于整个G(i,n)完成编码处理时在P(i)中产生的信息量的累积值的期望值b’(i,n)与在对第“n”组执行熵编码之前在P(i)中产生的信息量的累积值B(i,n-1)之间的差。

通过下面的公式计算b’(i,n)。

公式10

通过下面的公式表示阈值DTH1。

公式11

DTH1=b0*((M/N)-m)+offset

当量化值是在可能的范围中的最大值时,b0是在每个块中产生的最大编码量。((M/N)-m)对应于在G(i,m)中的尚未完成编码处理的块的数量。Offset是裕量项。

当满足d1<DTH1时,量化值计算单元121将量化值设置为最大值。

b0可以是当所有的频率系数为零时的块的编码量。当满足d1<DTH1时,量化值计算单元121确定量化值,以使得编码目标块的所有频率系数被量化为零。通过该控制操作,当组中的编码处理没有完成的剩余块的编码量的平均值不超过b0时,确保了T(i,n)≥T’(i,n),即f(dtg(i,n))≤V(dtg(i,n))。从而,确保理想的解码装置的接收缓冲器不下溢。

如上所述,量化值计算单元121实际上根据预定速率R将输出流从视频图像编码装置100传送到视频图像解码装置,并且因此视频图像数据的编码量被控制以使得视频图像解码装置的接收缓冲器不下溢。

量化值计算单元121将所获得的量化值报告给量化单元112。

输出时间的计算

下面给出根据第一实施例计算组输出时间信息的方法的描述。图11用于描述组输出时间信息的计算。

在下面的描述中,在编码目标画面中包括的块的总数是M。此外,画面的宽度和高度、拼图的宽度和高度以及CTB的宽度和高度分别是(Widthp,Heightp)、(Widtht,Heightt)、以及(Widthc,Heightc)。所有拼图(t80到t83)的大小相同,并且以光删扫描的顺序sc83对拼图进行处理。也就是说,在图11的示例中,以拼图0(t80)、拼图1(t81)、拼图2(t82)和拼图3(t83)的顺序来处理拼图。

此外,在图11的示例中,组包括17个CTB,并且所有组具有相同数量的CTB。在此情况下,组0(s81)位于从画面的CTB中的索引0到第三列、第四行。

根据该种想法,拼图1(s81)右上方的顶端部分中的CTB列被包括在组2(s83)中。因此,当以光栅扫描顺序显示显示屏时,至少组0(s81)可以仅在组2(s83)已经被解码之后被显示。

当对组2(s83)解码之后显示组0(s81)时,假设瞬时解码被执行并且提取的组k的定时是d(k),则通过下面的公式来表示组0(s81)的输出时间ogt(0)。

公式12

ogt(0)=d(k)

此外,假设解码花费了一个画面时间s并且画面中的组的数量是N,则对组解码花费的时间被表示为s/N。也就是说,通过使用瞬时解码的解码时间dgt,当完成组2的解码时的时间dgt’(2)和当显示组0(s81)时的时间ogt(0)通过下面的公式表示。

公式13

ogt(0)=dgt'(2)=dgt(2)+s/N

这里,视频图像编码装置100向解码装置报告通过从前面的解码画面的解码时间中减去组的输出时间而获得的输出延迟时间。因此,确保了解码装置的显示时间。

此外,在如非专利文献1中公开的HEVC中的解块滤波器等后置滤波器中,为了显示组,存在为了显示组要等待随后的组被解码的情况。在该情况下,通过考虑到随后解码的组的解码时间适当地设置显示延迟,可以实现小于一个画面时间的显示延迟。

输出流

为了视频图像编码装置100与视频图像解码装置共享块所属的组、组解码延迟以及组输出延迟,至少将表示块属于各个组的组信息、组解码延迟信息以及组输出延迟信息添加到输出数据流中并将其报告给视频图像解码装置。输出数据流也被简称为“输出流”。

因此,例如,组解码延迟信息添加单元143在每个预定时间间隔将组解码延迟添加到针对每个画面或多个画面的输出数据流的报头信息。

此外,组输出延迟信息添加单元153在每个预定时间间隔将组输出延迟添加到针对每个画面或多个画面的输出数据流的报头信息。

此外,组信息添加单元132在每个预定时间间隔将组信息添加到针对每个画面或多个画面的输出数据流的报头信息。

例如,报头信息可以是在MPEG-2中规定的序列报头(Sequence Header)或在H.264中规定的补充增强信息(Supplemental Enhancement Information)或序列参数集(Sequence Parameter Set)。各个组的解码时间可以被添加到总是附加到每个画面的报头信息,例如在MPEG-2中规定的画面头(Picture Header)或在H.264中规定的切片头(Slice Header)。

如果以每个组包括相同数量的块的方式确定组,则视频图像编码装置100向视频图像解码装置报告所有的块已经被相等地分割为N个组。因此,组配置确定单元131向组信息添加单元132报告组的数量N作为组信息。

组信息添加单元132对组信息进行编码。在MPEG-2和H.264中,以被称为宏块的16像素×16像素的块为单位执行编码,并且块的该数量通常不超过可以由20比特表示的范围。组的数量N的最大值等于块的数量的最大值,并且因此可以以固定的比特长度进行N的编码。

此外,每个组不总是包括相同数量的块。在该情况下,组配置确定单元131向组信息添加单元132报告在每个组中的引导块的索引信息以及组的数量N作为组信息。

组信息添加单元132首先对组的数量N进行编码,并且然后顺序地对每个组中的引导块的索引信息进行编码。例如,通过固定比特长度的编码方法执行对第一块中的索引信息的编码。此外,组信息添加单元132可以使用另一编码方法来对组的数量N以及在每个组中的第一块中的索引信息进行编码,该另一编码方法包括例如Huffman编码等变长编码方法。

操作

下面,给出根据第一实施例的视频图像编码装置100的操作的描述。图12是示出根据第一实施例的视频图像编码处理的示例的流程图。

在步骤S100,为了开始序列的编码操作,首先,确定组解码延迟Δt。确定Δt比在序列中包括的块的数量是最小的组的时间更小。

在步骤S101,组解码延迟信息添加单元143将组信息和组解码时间延迟信息添加到数据流。

在步骤S102,为了开始对每个画面进行编码,组配置确定单元131首先确定画面中的组。可以对于每个画面确定序列的每个画面的每个组中包括的块的数量和组的数量。可选择地,序列中的所有画面可以具有相同的组数量,并且组可以包括相同的块数量。

在步骤S103,组解码延迟确定单元142计算每个组的组解码延迟(步骤S103)。

在步骤S104,为了开始对组进行解码,缓冲器占有量计算单元122估计理想的解码装置中的接收缓冲器的缓冲器状态、以及下一要被编码的组产生的信息量的上限。

在步骤S105,量化值计算单元121基于接收缓冲器的缓冲器状态和下一要被编码的组产生的信息量的上限来计算块的量化值,以使得组中的所有数据在组的最早解码开始时间之前到达接收缓冲器。

在步骤S106,编码处理单元110使用计算出的量化值对块进行编码。

下面,给出根据第一实施例的视频图像编码装置100的输出处理的描述。图13是示出根据第一实施例的输出处理的示例的流程图。

在步骤S200,输出时间确定单元150从数据流中提取组信息。

在步骤S201,组输出延迟确定单元152确定组输出延迟信息。可以如上所述来确定组输出延迟信息。

在步骤S202,组输出延迟信息添加单元153将组输出延迟信息添加到数据流。

根据第一实施例,当实现比一个画面时间更小的编解码器延迟时,加速了组的输出或解码,从而实现了更低的延迟。

第二实施例

下面给出根据第二实施例的视频图像解码装置的描述。在第二实施例中,在根据第一实施例的视频图像编码装置100中编码的流被适当地解码。

配置

图14是示出根据第二实施例的视频图像解码装置200的示意性配置的框图。视频图像解码装置200包括接收缓冲器205、块解码单元210、帧存储器211、组输出单元212、解码时间计算单元220、输出时间计算单元230及组信息提取单元240。

组信息提取单元240在预定时间间隔从输入流中提取表示通过对块进行分割获得的组的组信息。

解码时间计算单元220包括组解码延迟信息提取单元221和组解码时间计算单元222。

输出时间计算单元230包括组输出延迟信息提取单元231和组输出时间计算单元232。

在视频图像解码装置200中包括的单元作为分离的电路被装配在视频图像解码装置200中。可选择地,在视频图像解码装置200中包括的单元可以作为单个集成电路(其中集成了实施单元的功能的电路)被装配在视频图像解码装置200中。可选择地,在视频图像解码装置200中包括的单元可以是由在视频图像解码装置200中包括的处理器中执行的计算机程序来实现的功能模块。

接收缓冲器205接收由视频图像编码装置100发送的流,并执行缓冲。

块解码单元210在由组解码时间计算单元222输出的组的解码开始时间从接收缓冲器205获取数据,执行从引导块开始的解码处理,并顺序地输出解码块。解码开始时间也被简称为“解码时间”。

帧存储器211保存从块解码单元210输出的解码块。帧存储器211用作解码缓冲器,输出目标组在被输出之前在解码缓冲器中被缓冲。解码缓冲器可以具有与帧存储器211的配置不同的配置。

组输出单元212在由组输出时间计算单元232输出的组输出时间对组进行输出。

组解码延迟信息提取单元221从作为编码数据的输入流中提取组解码延迟信息。

组解码时间计算单元222基于由组信息提取单元240输出的组信息和由组解码延迟信息提取单元221输出的组解码延迟信息,计算每个组的解码开始时间。

组解码时间计算单元222通过下面的公式来计算在第“i”个画面P(i)中的引导块的解码开始时间dtb(i)。

公式14

dtb(i)=dt(i-1)+Δt

组输出延迟信息提取单元231从作为编码数据的输入流中提取组输出延迟信息。

组输出时间计算单元232基于由组信息提取单元240输出的组信息和由组解码延迟信息提取单元221输出的组输出延迟信息,计算每个组的输出时间。

视频图像解码装置200基于已经被报告的组的解码延迟信息和组的数量N,计算每个解码组的解码开始时间。此外,视频图像解码装置200基于已经被报告的组的输出延迟信息和组的数量N,计算每个解码组的输出时间。

操作

下面给出根据第二实施例的视频图像解码装置200的操作的描述。图15是示出根据第二实施例的视频图像解码处理的示例的流程图。在图15的步骤S300中,为了开始对每个画面的解码,首先,组信息提取单元240从数据流中提取组信息。

在步骤S301,组解码延迟信息提取单元221从数据流中提取组解码延迟信息。

在步骤S302,组解码时间计算单元222计算引导组的解码开始时间。

可以对于每个画面确定序列的每个画面的每个解码组中包括的块的数量和解码组的数量。可选择地,序列中的所有画面可以具有相同数量的解码组,并且解码组可以包括相同数量的块。此外,解码组可以与在块解码时间信息中描述的组相同。

在步骤S303,在组解码循环中,块解码单元210等待直到组的解码时间。

在步骤S304,块解码单元210从接收缓冲器205获取数据,并对每个块进行解码。

在步骤S305,组解码时间计算单元222计算下一组的解码开始时间。

在步骤S306,块解码单元210将已解码的解码块输出到帧存储器211。

下面,给出根据第二实施例的视频图像解码装置200的输出处理的描述。图16是示出根据第二实施例的输出处理的示例的流程图。

首先,在步骤S400,为了开始对画面进行解码,组解码延迟信息提取单元221从数据流中提取组输出延迟信息。

接下来,在步骤S401,组解码时间计算单元222基于组输出延迟信息计算P(i)中的引导组的输出开始时间。

在步骤S402,组输出时间计算单元232计算组的输出开始时间。

在步骤S403,块解码单元210根据组的输出开始时间计算属于该组的解码块。

根据第二实施例,由根据第一实施例的视频图像编码装置100编码的流被适当地解码。

第三实施例

下面,给出根据第三实施例的视频图像编码装置的描述。在第三实施例中,规定了要在以组为单位发生下溢时执行的处理。

配置

图17是示出根据第三实施例的视频图像编码装置300的示意性配置的框图。视频图像编码装置300包括编码处理单元310、编码量控制单元320、组确定单元330、解码时间确定单元340及输出时间确定单元350。编码处理单元310包括正交变换单元311、量化单元312及熵编码单元313。组确定单元330包括组配置确定单元331和组信息添加单元332。解码时间确定单元340包括组解码时间计算单元341、组解码延迟确定单元342及组解码延迟信息添加单元343。输出时间确定单元350包括组输出时间计算单元351、组输出延迟确定单元352及组输出延迟信息添加单元353。

编码处理单元310、组确定单元330、解码时间确定单元340及输出时间确定单元350分别执行与图7所示的编码处理单元110、组确定单元130、解码时间确定单元140及输出时间确定单元150相同的处理。

编码量控制单元320包括量化值计算单元321、缓冲器占有量计算单元322、比特计数器323以及填充添加单元324。

编码量控制单元320在用于对在组中包括的所有块进行解码的数据以预定传输速率被传送到解码装置的情况下对编码量进行控制,以使得数据在由所确定的显示时间表示的时间之前到达解码装置的接收缓冲器。

量化值计算单元321和比特计数器323分别执行与图7所示的量化值计算单元121和比特计数器123相同的处理。

除了由图7所示的缓冲器占有量计算单元122进行的操作之外,缓冲器占有量计算单元322还检查缓冲器下溢状态是否发生,其中组的所产生的信息量超过目标值并且该组中的所有数据在解码开始时间之前没有到达理想解码装置的接收缓冲器。

当检测到缓冲器下溢状态时,缓冲器占有量计算单元322指示填充添加单元324在所处理的画面的末尾插入虚设数据,并且将缓冲器下溢状态报告给总体控制单元(未示出)。当总体控制单元(未示出)接收到缓冲器下溢状态的报告时,总体控制单元执行控制以跳过对下一个要被编码的画面的编码处理。

填充添加单元324在所处理的画面的末尾插入虚设数据。由缓冲器占有量计算单元322指示要被插入的虚设数据量。

当用于对在组中包括的所有块进行解码的数据在显示时间之前没有到达解码装置的接收缓冲器时,填充添加单元324将填充数据添加到输出流。此外,通过添加填充数据,填充添加单元324执行控制,以使得用于对包括该组的画面中的最后的块进行解码的数据不在显示时间之前到达解码装置的接收缓冲器。

在本实施例中,当在画面的组中发生下溢时,插入填充数据。然而,通过由图17中示出的量化值计算单元321控制量化值,可以增加整个画面中的信息量,以故意造成画面的下溢。

具体地,如图18所示,假设画面由4个组构成。当在dgt(0)在第一组中发生下溢时,量化值计算单元321控制画面中所产生的信息量,并控制组1到组3的量化器,以使得在下一画面的到达时间dt(0)=dgt(3)在画面中发生下溢。类似地,当在第“n”组中发生下溢时,量化值计算单元321控制第“n+1”组以后的量化器,以使得在画面中发生下溢。

如上所述,当下溢发生在画面中的组当中的至少一个组中时,控制画面中所产生的信息量以使得在整个画面中发生下溢。

如上所述,填充添加单元324具有作为信息量控制单元的功能。当用于对组中包括的所有块进行解码的数据在显示时间之前没有到达解码装置的接收缓冲器时,填充添加单元324执行控制以使得下一画面中的第一数据不在显示时间之前到达解码装置的接收缓冲器。

下溢发生时的处理

参考图18,考虑当在画面中的组中发生下溢的情况。图18用于描述下溢的发生。如图18中的图形90所示,当以组为单位定义解码时间时,编码装置调节编码量,以使得在解码时间执行解码,该解码时间是根据通过例如SEI消息等附加信息发送到解码装置的信息而安排的。

然而,如图18中的图形91所示,与上述类似,当在dgt(0)在第一组中发生下溢时,直到在缓冲器接收到用于解码的比特才执行解码。

注意,要确保一个画面的显示,并且当在组中发生下溢时,显示要被延迟一个画面。原因是,当在组中发生下溢时,在缓冲器中接收到用于对一组进行解码的比特之前进行等待。下一解码定时是图18的线图91中表示的dgt’。

在该情况下,相应地延迟随后的解码时间。因此,即使当对组所属的画面进行解码并显示的时间dt(0)逼近,也不完成对所有组的解码。因此,一个画面的显示延迟。

考虑在组中发生下溢但是对于画面没有发生下溢的情况。以组为单位发生了下溢。因此,要延迟组解码,要延迟对于一个画面的显示,并且要跳过下一画面。

然而,由于没有以画面为单位发生下溢,因此试图以通常的定时显示画面,这是矛盾的状态。在该情况下,由于组的解码被延迟,因此在用于显示画面的通常定时没有完成画面的解码。从而,不可能输出正确的画面。

此外,在用于显示下一画面的定时,没有完成对于下一画面的解码。从而,不可能输出正确的画面。因此,不执行用来在用于显示画面的定时输出正确的画面的解码。

因此,如图19所示,当在组中发生下溢时,控制在相应的画面中产生的信息量,以使得对于该画面也发生下溢。一个画面的显示被延迟并且下一要显示的画面被跳过。因此,在以组为单位执行解码的情况下和在以画面为单位执行解码的情况下跳过相同的画面。从而,在以组为单位解码的情况下和在以画面为单位解码的情况下都实现画面之间的相同的显示时间间隔。

图19用于描述当下溢发生时执行的处理。在图19的示例中,假设当在dgt(1)发生下溢时,即使由附图标记95表示的、要在dt(1)解码的画面量小于编码流到达速率96,也在dt(1)也发生下溢。因此,延迟一个画面的显示,并且在dt(2)显示应该要在dt(1)显示的画面,并且跳过应该要在dt(2)显示的画面。

此外,在编码装置处,当在组中发生下溢时,对于相应画面中的随后的组,对画面的编码数据执行量化控制和填充数据的添加,以使得故意对相应画面造成下溢。因此,在以组为单位执行解码的情况下和在以画面为单位执行解码的情况下都跳过相同的画面。从而,对于这两种情况,包括跳过的画面之间的显示时间间隔相同,从而获得一致性。

下溢检测、画面信息量控制

给出由根据第三实施例的视频图像编码装置执行的检测下溢的方法和用于控制在画面中产生的信息量的方法的描述。

首先,编码量控制单元320执行与第一实施例的编码量控制单元相同的操作。通过缓冲器占有量计算单元322检测下溢。在该情况下,当在组中的至少一个组中不满足条件(2)时,缓冲器占有量计算单元322检测到在画面中包括的组中已经发生下溢。

此时,缓冲器占有量计算单元322将下溢发生信息报告给填充添加单元324。当填充添加单元324接收到下溢发生信息并且确认下溢已经发生时,填充添加单元324执行跳过画面的显示的处理。

例如,通过将填充数据附加到输出流,故意造成以画面为单位的下溢,并且跳过画面的显示。附加填充数据的方法是容易类推的,并且因此不进一步描述。

可选择地,当缓冲器占有量计算单元322检测到画面的组中的下溢时,量化值计算单元321控制量化值以控制在整个画面中产生的信息量,以使得在紧接在画面中的相应组之后的组中的画面中发生下溢,并故意造成画面中的下溢。

通过执行以上处理,跳过对画面的显示,以使得显示画面的顺序不改变。

操作

下面,给出根据第三实施例的视频图像编码装置300的操作的描述。图20是示出根据第三实施例的视频图像编码装置300的处理的示例的流程图。

在步骤S500,缓冲器占有量计算单元322基于解码装置的接收缓冲器的缓冲器占有量,确认是否将以组为单位发生下溢。

在步骤S501,当缓冲器占有量计算单元322确认将以组为单位发生下溢时,缓冲器占有量计算单元322控制在画面中产生的信息量,以使得也以画面为单位发生下溢。控制方法的示例是由填充添加单元324对输出流应用填充负荷或控制量化值。下溢已经发生的画面也被称为大画面。

根据第三实施例,当以组为单位发生下溢时,执行适当的处理。

第四实施例

下面,给出根据第四实施例的视频图像解码装置的描述。在第四实施例中,由根据第三实施例的视频图像编码装置编码的编码数据被适当地解码。

配置

图21是示出根据第四实施例的视频图像解码装置400的示意性配置的框图。视频图像解码装置400包括接收缓冲器405、解码时间计算单元420、输出时间计算单元430、组解码延迟信息提取单元421、组输出延迟信息提取单元431、组解码时间计算单元422、组输出时间计算单元432、组信息提取单元440、块解码单元410、帧存储器411、组输出单元412、及显示控制单元413。

在视频图像解码装置400中包括的单元作为分离的电路被装配在视频图像解码装置400中。可选择地,在视频图像解码装置400中包括的单元可以作为单个集成电路(其中集成了实施单元的功能的电路)被装配在视频图像解码装置400中。可选择地,在视频图像解码装置400中包括的单元可以是由在视频图像解码装置400中包括的处理器中执行的计算机程序来实现的功能模块。

下溢检测、流编辑

给出由根据第四实施例的视频图像解码装置400执行的检测下溢的方法和编辑比特流的方法的描述。

首先,块解码单元410执行与第一实施例的块解码单元的相同的操作。由块解码单元410检测下溢。块解码单元410从熵解码单元(未示出)接收比特量信息。

在该情况下,当组中的至少一个组不满足条件(2)时,块解码单元410检测到在画面中包括的组中已经发生下溢。例如,图18中的图形91表示在dgt(1)已经发生下溢。

这时,块解码单元410将下溢发生信息报告给显示控制单元413。当显示控制单元413接收到下溢发生信息并确认下溢已经发生时,显示控制单元413执行跳过画面的显示的处理。

也就是说,当在具有dt(k)的解码时间的画面中的组dgt(l)中发生下溢时,即使在dt(k)在缓冲器中积累了可以被解码为画面的比特量,也在dt(k+1)显示dt(k)的画面。跳过应该在dt(k+1)显示的画面。

在图19的示例中,在dt(2)显示应该在dt(1)显示的画面,并且跳过应该在dt(2)显示的画面。在该示例中,假设瞬时地执行解码,并且在与解码相同的时间执行输出(显示)。

通过执行以上处理,跳过对画面的显示,以使得显示画面的顺序不改变。

操作

下面,给出根据第四实施例的视频图像解码装置400的操作的描述。图22是示出根据第四实施例的视频图像解码装置400的处理的示例的流程图。

在步骤S600,块解码单元410基于接收缓冲器405的缓冲器占有量,确认是否将以组为单位发生下溢。

在步骤S601,当块解码单元410确定将以组为单位发生下溢时,块解码单元410将下溢产生信息报告给显示控制单元413。当报告下溢产生信息时,显示控制单元413校正显示画面的定时。

根据第四实施例,由根据第三实施例的视频图像编码装置300编码的编码数据被适当地解码。

第五实施例

图23是根据第五实施例的视频图像处理装置500的示例的框图。视频图像处理装置500是在各个实施例中描述的视频图像编码装置或视频图像解码装置的示例。如图23所示,视频图像处理装置500包括控制单元501、主存储器单元502、辅助存储器单元503、驱动装置504、网络I/F单元506、输入单元507及显示单元508。这些单元经由总线连接,以使得可以互相交换数据。

控制单元501在计算机中控制各个装置并执行对数据的计算和处理。此外,控制单元501是如下处理器:其用于执行在主存储器单元502和辅助存储器单元503中保存的程序、从输入单元507和存储装置接收数据、对数据执行计算和处理、以及将数据输出到显示单元508和存储装置。

主存储器单元502例如是ROM(只读存储器)或RAM(随机存取存储器),并且是如下存储装置:其用于存储或临时保存由控制单元501执行的例如应用软件等程序和作为基本软件的OS以及数据。

辅助存储器单元503例如是HDD(硬盘驱动器),其是用于保存与应用软件相关的数据的存储装置。

驱动装置504用于从例如软盘等记录介质505读取程序以及将程序安装在存储装置中。

记录介质505存储预定程序。在记录介质505中存储的程序经由驱动装置504被安装到视频图像处理装置500中。可以通过视频图像处理装置500执行所安装的预定程序。

网络I/F单元506是经由通过有线和/或无线数据传输路径构建的例如LAN(局域网)和WAN(广域网)等网络连接的、具有通信功能的外围装置和视频图像处理装置500之间的接口。

输入单元507包括光标键、包括用于输入数字和各种功能的键的键盘、以及用于选择显示单元508的显示屏幕上的键的片板(slice pad)和鼠标。此外,输入单元507是由用户使用以对控制单元501给出操作指示以及输入数据的用户接口。

显示单元508包括LCD(液晶显示器),并且根据从控制单元501输入的显示数据显示信息。可以在外部提供显示单元508,在该种情况下视频图像处理装置500具有显示控制单元。

因此,可以作为要由计算机执行的程序来实现在以上实施例中描述的视频图像编码处理或视频图像解码处理。通过从服务器安装该程序并使计算机执行该程序,可以实现上述视频图像编码处理或视频图像解码处理。

此外,视频图像编码程序或视频图像解码程序可以被记录在记录介质505中,并且使计算机或移动终端读取记录了该程序的记录介质505,以实现上述视频图像编码处理或视频图像解码处理。

记录介质505可以是各种类型的记录介质,诸如例如CD-ROM、软盘以及磁光盘的、用于光、电或磁地记录信息的记录介质,或例如ROM和快闪存储器等用于电地记录信息的半导体存储器。记录介质505不包括载波。

由视频图像处理装置500执行的程序具有包括在以上实施例中描述的各个单元的模块配置。作为实际硬件,控制单元501从辅助存储器单元503读取程序并执行程序以将一个或更多个以上描述的单元加载到主存储器单元502中,以使得在主存储器单元502中产生一个或更多个单元。

此外,在以上实施例中描述的视频图像编码处理可以被装配在一个或更多个集成电路中。

根据以上实施例的视频图像编码装置可以用于各种目的。例如,可以在摄影机、图像传送装置、图像接收装置、视频电话系统、计算机或移动电话中构造视频图像编码装置或视频图像解码装置。

根据实施例的方面,当以组为单位发生下溢时,执行适当的处理。

根据上述描述可知,本发明的实施例还公开了以下技术方案,包括但不限于:

方案1.一种视频图像编码装置,包括:

组配置确定单元,用于确定多个块中的每个块所属的组,所述多个块是通过将在视频图像数据中包括的每个画面进行分割而获得的;

组信息添加单元,用于将组信息添加到输出流,所述组信息表示所述多个块中的每个块所属的组;

解码时间确定单元,用于计算多个组中的每个组的解码时间,并且将所述解码时间添加到所述输出流;

输出时间确定单元,用于计算所述多个组中的每个组的显示时间,并且将所述显示时间添加到所述输出流;

编码量控制单元,用于当用来对在所述多个组中的一个组中包括的所有块进行解码的数据以预定的传输速率被传送到解码装置时对编码量进行控制,以使得所述数据在由所述输出时间确定单元计算出的显示时间表示的时间之前到达所述解码装置的接收缓冲器;

编码处理单元,用于基于所述编码量控制单元的控制信息来执行编码;以及

信息量控制单元,用于当用来对在所述多个组中的所述一个组中包括的所有块进行解码的数据在所述显示时间之前没有到达所述解码装置的接收缓冲器时实行控制,以使得下一画面中的第一数据不在所述显示时间之前到达所述解码装置的接收缓冲器。

方案2.一种由计算机执行的方法,所述方法包括:

确定多个块中的每个块所属的组,所述多个块是通过将在视频图像数据中包括的每个画面进行分割而获得的;

将组信息添加到输出流,所述组信息表示所述多个块中的每个块所属的组;

计算多个组中的每个组的解码时间,并且将所述解码时间添加到所述输出流;

计算所述多个组中的每个组的显示时间,并且将所述显示时间添加到所述输出流;

当用来对在所述多个组中的一个组中包括的所有块进行解码的数据以预定的传输速率被传送到解码装置时对编码量进行控制,以使得所述数据在由所述显示时间表示的时间之前到达所述解码装置的接收缓冲器;

基于已控制的编码量来执行编码;以及

当用来对在所述多个组中的所述一个组中包括的所有块进行解码的数据在所述显示时间之前没有到达所述解码装置的接收缓冲器时对信息量进行控制,以使得下一画面中的第一数据不在所述显示时间之前到达所述解码装置的接收缓冲器。

方案3.一种视频图像解码装置,包括:

组信息提取单元,用于从输入流中提取表示组的组信息,所述输入流表示通过将在视频图像数据中包括的每个画面进行分割而获得的多个块的编码数据;

解码时间计算单元,用于计算多个组中的每个组的解码时间信息;

输出时间计算单元,用于计算所述多个组中的每个组的输出时间;

块解码单元,用于接收所述输入流、执行对所述输入流的解码以及输出解码块;

帧存储器,用于保存所述解码块;

组输出单元,用于将在所述帧存储器中保存的、所述多个组中的每个组中包括的解码块进行输出;以及

显示控制单元,用于对所述多个组中的每个组的显示进行控制,其中,

所述块解码单元确认用于解码的所有数据是否在所述多个组中的一个组的解码时间已到达,并且

当用于解码的所有数据在所述多个组中的所述一个组的解码时间尚未到达时,所述显示控制单元控制所述组输出单元,以显示在所述帧存储器中保存的另一解码块而不是在所述多个组中的所述一个组中包括的解码块。

方案4.一种由计算机执行的方法,所述方法包括:

从输入流中提取表示组的组信息,所述输入流表示通过将在视频图像数据中包括的每个画面进行分割而获得的多个块的编码数据;

计算多个组中的每个组的解码时间信息;

计算所述多个组中的每个组的输出时间;

接收所述输入流、执行对所述输入流的解码以及输出解码块;

在帧存储器中保存所述解码块;

将在所述帧存储器中保存的、所述多个组中的每个组中包括的解码块进行输出;以及

对所述多个组中的每个组的显示进行控制,其中,

执行解码包括确认用于解码的所有数据是否在所述多个组中的一个组的解码时间已到达,并且

控制显示包括当用于解码的所有数据在所述多个组中的所述一个组的解码时间尚未到达时,进行控制以显示在所述帧存储器中保存的另一解码块而不是在所述多个组中的所述一个组中包括的解码块。

本发明不限于这里描述的特定实施例,在不脱离本发明的范围的情况下可以进行变形和修改。以上实施例中的全部或多个配置要素可以组合。

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