图像编码设备、图像编码方法、图像解码设备、图像解码方法和程序的制作方法

文档序号:7993066阅读:136来源:国知局
图像编码设备、图像编码方法、图像解码设备、图像解码方法和程序的制作方法
【专利摘要】一种图像编码设备,用于将图像分割成各自包括多个块的一个以上的片,并且逐块对各片进行编码,所述图像编码设备包括:第一编码单元,用于对所述片的第一部分所包括的块进行编码;以及第二编码单元,用于对所述片的第二部分所包括的块进行编码,其中,在所述第二编码单元对所述第二部分中的起始块进行编码的情况下,所述第二编码单元通过参考第一量化参数来对所述第二部分所包括的起始块进行编码,所述第一量化参数是在所述第一编码单元对所述第一部分中的起始块进行编码时所述第一编码单元所参考的、作为初始值设置给所述片的量化参数。
【专利说明】图像编码设备、图像编码方法、图像解码设备、图像解码方法和程序
【技术领域】
[0001]本发明涉及一种图像编码设备、图像编码方法、图像解码设备、图像解码方法和程序,尤其涉及一种用于编码/解码图像中的量化参数的方法。
【背景技术】
[0002]H.264/MPEG-4AVC(以下称为“H.264”)作为用于在压缩和记录运动图像中使用的编码方法众所周知(ITU-T H.264(03/2010),用于通用视听服务的高级视频编码)。根据H.264,将与紧接着当前块之前所编码的块的量化参数的差编码为mb_qp_delta信息,因而各块的量化参数可以是任意值。
[0003]然后,使用H.264所采用的传统二值算术编码方法编码。更具体地,对诸如上述mb_qp_delta信息等的各语法元素进行二值化,结果,生成二值信号。预先向各语法元素分配发生概率作为表(以下称为“发生概率表”)。基于发生概率表,算术编码上述二值信号。然后,每当编码二值信号时,基于表示编码后的二值信号是否是最可能的符号的统计信息,来更新发生概率表。
[0004]近年来,开始了使继H.264之后的更高效的编码技术标准化的活动,并且在ISO/IEC和ITU-T之间设立了视频编码联合组(JCT-VC)。JCT-VC已经进行了被称为高效视频编码(以下称为“HEVC”)的编码技术的标准化。
[0005]在HEVC的标准化中,不仅根据编码效率的提高,而且还根据包括实施的简单性和处理时间的缩短的其他方面,来广泛考虑各种类型的编码方法。为了缩短处理时间,还考虑了在假定例如多核CPU上使用该编码方法的情况下,用于提高并行性的方法。方法之一是一种用于实现熵编码/解码的并行处理的被称为“波前(Wavefront) ”的方法(JCT-VC投稿,可以在因特网上的如下地址处获得“JCTVC-F274.doc”:<http://phenix.1nt-evry.fr/jct/doc_end_user/documents/6_Torino/wgll/>)。应该使用更新后的发生概率表来编码下一编码对象,因此,除非复位统计信息,否则不能并行进行该处理。然而,这导致下面的问题:复位统计信息使得编码效率恶化。相反,波前通过将在多个预先指定数量的块的编码完成时所获得的发生概率表应用于下一行上最左边的块,使得可以并行逐行编码块,同时防止编码效率恶化。这主要是对编码处理的说明,但是其同样可适用于解码处理。
[0006]然而,波前使得提高各行的算术编码/解码的并行性成为可能,但是实际上,在确定光栅扫描时紧接着的前一个块的量化参数之前,无法进行量化和反量化。因此,目前的波前实现仍然存在不能并行进行整个编码/解码处理这一问题。

【发明内容】

[0007]本发明旨在在使用波前方法并行逐行对块进行编码/解码的情况下,使得作为包括量化/反量化处理的整体处理能够进行并行编码/解码。
[0008]根据本发明的一个方面,一种图像编码设备,用于将图像分割成各自包括多个块的一个以上的片,并且逐块编码各片,所述图像编码设备包括:第一编码部件,用于对所述片的第一部分所包括的块进行编码;以及第二编码部件,用于对所述片的第二部分所包括的块进行编码,其中,在所述第二编码部件对所述第二部分中的起始块进行编码的情况下,所述第二编码部件通过参考第一量化参数来对所述第二部分所包括的起始块进行编码,所述第一量化参数是在所述第一编码部件对所述第一部分中的起始块进行编码时所述第一编码部件所参考的、作为初始值设置给所述片的量化参数。
[0009]根据本发明的典型实施例,在使用波前方法并行逐行对块进行编码/解码时,可以作为包括量化/反量化处理的整体处理来实现并行编码/解码。
[0010]通过以下参考附图对典型实施例的详细说明,本发明的其他特征和方面将显而易见。
【专利附图】

【附图说明】
[0011]包含在说明书中并构成说明书的一部分的附图,示出本发明的典型实施例、特征和方面,并且与文字说明一起用来解释本发明的原理。
[0012]图1是示出根据第一典型实施例的图像编码设备的结构的框图。
[0013]图2示出块行的结构。
[0014]图3是示出用于通过根据第一典型实施例的图像编码设备来编码帧的处理的流程图。
[0015]图4是示出用于通过根据第一典型实施例的图像编码设备来对上端块行进行编码的处理的流程图。
[0016]图5是示出用于通过根据第一典型实施例的图像编码设备来对除上端块行以外的块行进行编码的处理的流程图。
[0017]图6是示出用于通过根据第一典型实施例的图像编码设备来编码块的处理的流程图。
[0018]图7A示出根据传统图像编码设备的量化参数的传送。
[0019]图7B示出根据第一典型实施例的图像编码设备的量化参数的传送。
[0020]图8是示出根据第二典型实施例的图像解码设备的结构的框图。
[0021]图9是示出用于通过根据第二典型实施例的图像解码设备来解码帧的处理的流程图。
[0022]图10是示出用于通过根据第二典型实施例的图像解码设备来对上端块行进行解码的处理的流程图。
[0023]图11是示出用于通过根据第二典型实施例的图像解码设备来对除上端块行以外的块行进行解码的处理的流程图。
[0024]图12是示出用于通过根据第二典型实施例的图像解码设备来解码块的处理的流程图。
[0025]图13是示出可作为根据本发明典型实施例的图像编码设备和图像解码设备使用的计算机的硬件结构的例子的框图。
[0026]图14是示出根据第三典型实施例的图像编码设备的结构的框图。
[0027]图15是示出用于通过根据第三典型实施例的图像编码设备来对上端块行进行编码的处理的流程图。
[0028]图16是示出用于通过根据第三典型实施例的图像编码设备来对除上端块行以外的块行进行编码的处理的流程图。
[0029]图17A示出根据第三典型实施例的图像编码设备的量化参数的传送。
[0030]图17B示出根据第三典型实施例的图像编码设备的量化参数的传送。
[0031]图18是示出根据第四典型实施例的图像解码设备的结构的框图。
[0032]图19是示出用于通过根据第四典型实施例的图像解码设备来对上端块行进行解码的处理的流程图。
[0033]图20是示出用于通过根据第四典型实施例的图像解码设备来对除上端块行以外的块行进行解码的处理的流程图。
[0034]图21是示出根据第五典型实施例的图像编码设备的结构的框图。
[0035]图22是示出用于根据第五典型实施例来对上端块行进行编码的处理的流程图。
[0036]图23是示出用于根据第五典型实施例来对除上端块行以外的块行进行编码的处理的流程图。
[0037]图24是示出根据第六典型实施例的图像解码设备的结构的框图。
[0038]图25是示出用于根据第六典型实施例来对上端块行进行解码的处理的流程图。
[0039]图26是示出用于根据第六典型实施例来对除上端块行以外的块行进行解码的处理的流程图。
【具体实施方式】
[0040]下面参考附图详细说明本发明的各种典型实施例、特征和方面。
[0041]图1是示出根据第一典型实施例的图像编码设备的框图。
[0042]参考图1,选择器101判断处理对象块是否属于偶数块行。如果块属于偶数块行,则选择器101将该块输出给第一编码单元102,否则将该块输出给第二编码单元103。
[0043]第一编码单元102和第二编码单元103如图2所示逐行对将输入图像分割成nXn像素(“η”是2以上的正整数)的块进行编码(这两个单元分别与权利要求书中的“第一编码部件”和“第二编码部件”相对应、以及分别与“对片的第一部分所包括的块进行编码”和“对片的第二部分所包括的块进行编码”相对应)。下面,将一行的块称为“块行”。将基于使用两个编码单元的例子来说明本典型实施例,但是本发明不局限于此。参考图2,用细线绘制的正方形所示的片段201代表块,并且用粗线绘制的矩形所示的片段202代表块行。此外,通过第一编码单元102对表示包括上端块行(第O块行)的偶数块行的白色区域中的块进行编码。通过第二编码单元103对表示奇数块行的阴影区域中的块进行编码。
[0044]第一编码单元102和第二编码单元103各自根据通过参考编码对象块周围的像素或者其他帧的预测来首先生成预测误差,并且进行正交变换以生成变换系数。接着,第一编码单元102和第二编码单元103各自确定正交变换后的变换系数的量化参数,并且量化各变换系数以生成量化系数。接着,第一编码单元102和第二编码单元103各自对包括量化系数的各语法元素进行二值化以生成二值信号。预先向各语法元素分配发生概率作为表(以下称为“发生概率表”)。基于上述发生概率表,算术编码二值信号。然后,每当编码二值信号时,使用表示编码后的二值信号是否是最可能的符号的统计信息来更新发生概率表。[0045]第一发生概率表存储单元104存储由第一编码单元102所生成的发生概率表。下面,将存储在第一发生概率表存储单元104中的发生概率表称为“第一发生概率表”。
[0046]第一量化参数存储单元105存储由第一编码单元102所确定的量化参数。下面,将存储在第一量化参数存储单元105中的量化参数称为“第一量化参数”。
[0047]第二发生概率表存储单元106存储由第二编码单元103所生成的发生概率表。下面,将存储在第二发生概率表存储单元106中的发生概率表称为“第二发生概率表”。
[0048]第二量化参数存储单元107存储由第二编码单元103所确定的量化参数。下面,将存储在第二量化参数存储单元107中的量化参数称为“第二量化参数”。
[0049]整合编码单元108对由第一编码单元102所生成的编码数据和由第二编码单元103所生成的编码数据进行整合,并且输出整合数据作为比特流。
[0050]将参考图3?6所示的流程图来详细说明根据本典型实施例的图像编码设备的操作。在本典型实施例中,将逐帧输入的运动图像数据分割成块,并且按照光栅顺序进行处理。本典型实施例被配置成逐帧输入运动图像数据,但是可被配置成输入与一帧相对应的静止图像数据、或者逐片(分割帧而得到片)输入图像数据。此外,为了简化说明,仅基于帧内预测编码处理来说明本典型实施例,但是不局限于此。还可将本典型实施例应用于帧间预测编码处理。
[0051]首先,在步骤S301中,图像编码设备判断处理对象块是否属于上端块行。如果块属于上端块行(步骤S301为“是”),则处理进入步骤S302。如果块不属于上端块行(步骤S301为“否”),则处理进入步骤S303。
[0052]步骤S302的处理是用于对上端块行进行编码的处理,下面将对其进行详细说明。步骤S303的处理是用于对除上端块行以外的块行进行编码的处理,下面也将对其进行详细说明。此外,选择器101判断处理对象块所属的块行是偶数块行还是奇数块行。如果块行是偶数块行,则通过第一编码单元102独立编码处理对象块。如果块行不是偶数块行,则通过第二编码单元103独立编码处理对象块。
[0053]接着,在步骤S304中,整合编码单元108对从第一编码单元102输出的编码数据和从第二编码单元103输出的编码数据进行整合,并且生成和输出比特流。
[0054]接着,在步骤S305中,图像编码设备判断是否编码了处理对象帧中的所有块行。如果编码了所有块行(步骤S305为“是”),则结束用于编码一帧的处理。如果未编码所有块行(步骤S305为“否“),则处理再次进入步骤S301,并且开始下一块行的编码。
[0055]将参考图4所示的流程图来详细说明步骤S302的处理(用于对上端块行进行编码的处理)。上端块行是偶数块行,因而通过选择器101将处理对象块输入到第一编码单元102,并且通过第一编码单元102来进行编码。
[0056]首先,在步骤S401中,将编码块所基于的量化参数初始化,以使其与用于片的量化参数的初始值相一致。下面,将编码块所基于的量化参数称为“块基准量化参数”。对于量化编码对象块所使用的量化参数,不将其本身的值编码为语法元素,而是对其与块基准量化参数的差值进行编码。在本典型实施例中,该差值与HEVC方法中的cu_qp_delta的值相对应。然而,本发明不局限于此,并且,例如,上述差值可以与H.264方法中的mb_qp_delta的代码相对应。接着,在步骤S402中,通过预定方法初始化发生概率表。使用初始化后的发生概率表来对块行中最左边的块的第一二值信号进行算术编码,并且在下面说明的步骤S403中,必要时更新发生概率表。下面将对块行中最左边的块的第一二值信号进行算术编码所使用的发生概率表称为“块行基准发生概率表”。
[0057]接着,在步骤S403中,第一编码单元102逐块编码像素数据。
[0058]在本典型实施例中,一个块由64X64像素构成,但是本发明不局限于此。块的大小可以是诸如32X32像素等的更小大小或者诸如128X128像素等的更大大小。将参考图6所示的流程图详细说明步骤S403中的块编码处理。
[0059]首先,在步骤S601中,第一编码单元102使用块周围的像素对输入图像块进行帧内预测以生成预测误差。
[0060]接着,在步骤S602中,第一编码单元102对预测误差进行正交变换以生成变换系数。此外,第一编码单元102使用基于例如图像的特性和编码量所确定的量化参数(以下称为“块量化参数”)来量化变换系数,以生成量化系数。
[0061]接着,在步骤S603中,第一编码单元102计算上述块基准量化参数和块量化参数之间的差值以生成cu_cip_delta值。
[0062]接着,在步骤S604中,第一编码单元102将编码处理对象块所使用的块量化参数设置成块基准量化参数,从而更新块基准量化参数。将使用块基准量化参数来生成下一个块的 cu_cip_delta 值。
[0063]接着,在步骤S605中,第一编码单元102对包括上述cu_qp_delta值和上述量化系数的各语法元素进行二值化,以生成二值信号。第一编码单元102在以相同方式将用于各语法元素的二值化方法切换成H.264方法时,使用诸如一元二值化和固定长度二值化等的各种类型的二值化方法。此外,第一编码单元102基于发生概率表来算术编码二值信号。
[0064]接着,在步骤S606中,第一编码单元102基于算术编码后的二值信号是否是最可能的符号来更新发生概率表。
[0065]接着,在步骤S607中,第一编码单元102判断是否算术编码了块中的所有语法元素。如果算术编码了所有语法元素(步骤S607为“是”),则结束块编码处理。如果未编码所有语法元素(步骤S607为“否”),则处理再次进入步骤S605。
[0066]返回参考图4,在步骤S404中,第一编码单元102判断是否满足用于存储块基准量化参数的条件。在本典型实施例中,用于存储块基准量化参数的条件是在步骤S403中所编码的块是否是块行中的最左边的块。如果满足该条件(步骤S404为“是”),则处理进入步骤S405。在步骤S405中,将块基准量化参数作为第一量化参数存储在第一量化参数存储单元105中。如果不满足该条件(步骤S404为“否”),则处理进入步骤S406。在第二编码单元103对下一块行中的最左边的块进行编码的情况下,使用该第一量化参数作为块基准量化参数。
[0067]接着在步骤S406中,第一编码单元102判断是否满足用于存储发生概率表的条件。在本典型实施例中,用于存储发生概率表的条件是在步骤S403中所编码的块是否是从块行中的最左边的块开始的第预定数量个块。如果满足该条件(步骤S406为“是”),则处理进入步骤S407。在步骤S407中,将发生概率表作为第一发生概率表存储在第一发生概率表存储单元104中。如果不满足该条件(步骤S406为“否”),则处理进入步骤S408。在第二编码单元103对下一块行中最左边的块进行编码的情况下,使用第一发生概率表作为块行基准发生概率表。[0068]接着,在步骤S408中,第一编码单元102判断是否编码了处理对象块行中的所有块。如果编码了所有块(步骤S408为“是”),则结束上端块行的编码。如果未编码所有块(步骤S408为“否”),则处理再次进入步骤S403。在步骤S403中,对光栅顺序上的下一个块进行编码。
[0069]将参考图5所示的流程图来详细说明步骤S303的处理(用于对除上端块行以外的块行进行编码的处理)。选择器101针对各块行判断该块行是否是偶数块行。如果块行是偶数块行,则将处理对象块行的图像输入到第一编码单元102,并且通过第一编码单元102来进行编码。如果块行是奇数块行,则将处理对象块行的图像输入到第二编码单元103,并且通过第二编码单元103来进行编码。首先,将说明在第二编码单元103编码奇数块行的情况下的流程。
[0070]首先,在步骤S501中,将从第一量化参数存储单元105输入的第一量化参数作为块基准量化参数。接着,在步骤S502中,将从第一发生概率表存储单元104输入的第一发生概率表作为块行基准发生概率表。
[0071]步骤S503、S504、S506和S508的处理分别与步骤S403、S404、S406和S408的处理相同,因此,这里省略对其的说明。
[0072]在步骤S505中,将块基准量化参数作为第二量化参数存储在第二量化参数存储单元107中。使用该第二量化参数作为用于下一块行中最左边的块的块基准量化参数。
[0073]在步骤S507中,将发生概率表作为第二发生概率表存储在第二发生概率表存储单元106中。在对下一块行中最左边的块进行算术编码的情况下,使用该第二发生概率表作为块行基准发生概率表。
[0074]接着,说明在第一编码单元102编码偶数块行的情况下的流程。
[0075]首先,在步骤S501中,将从第二量化参数存储单元107输入的第二量化参数作为块基准量化参数。接着,在步骤S502中,将从第二发生概率表存储单元106输入的第二发生概率表作为块行基准发生概率表。
[0076]步骤S503?S508的处理分别与步骤S403?S408的处理相同,因此,这里省略对其的说明。
[0077]上述结构和操作甚至在紧接着正被编码的块行之前的块行的处理完成之前,在最左边的块的处理期间,除发生概率表以外,还通过允许参考基准量化参数来使得能够进行并行编码。图7A和7B各自示出如何参考块基准量化参数。根据传统技术,如图7A所示,在完成前一块行的处理之前,无法开始下一块行的处理。然而,根据本典型实施例,通过在处理最左边的块时使得参考空间上的上一个块成为可能,从而最终使得允许如图7B所示的基准模式,因而使得等待前一块行处理的完成变得不必要。
[0078]此外,在本典型实施例中,在编码最左边的块的情况下,使用在紧接着的上一块行中最左边的块中所使用的量化参数作为块基准量化参数。然而,本发明不局限于此,并且可以通过能够提高逐块行处理的并行性的任何结构来实现本发明。例如,在对所有块行中最左边的块进行编码的情况下,可以使用设置给片的量化参数的初始值作为块基准量化参数。作为另一可能结构,块基准量化参数可以与在步骤S406和S506中所设置的用于存储发生概率表的条件相同。更具体地,可以使用在对从块行中最左边的块开始的第预定数量个块进行编码的情况下的量化参数,作为用于下一块行中最左边的块的块基准量化参数。此夕卜,可以将图像编码设备配置成基于最左边的块的编码模式,来切换作为块基准量化参数所要参考的块。
[0079]此外,在本典型实施例中,对于熵编码使用算术编码,但是本发明不局限于此。可以使用任何编码,只要在基于诸如发生概率表等的统计信息的熵编码时,使用块行的编码中间的统计信息来进行下一块行最左边的块的熵编码即可。
[0080]基于使用两个编码单元的例子来说明了本典型实施例。然而,显而易见,例如,添加第三编码单元、第三发生概率表存储单元和第三量化参数存储单元,使得能够通过更多数量的编码单元来进行并行处理。
[0081]图8是示出根据第二典型实施例的图像解码设备的框图。
[0082]参考图8,选择器801判断处理对象块是否属于偶数块行。如果处理对象块属于偶数块行,则选择器801将上述比特流输出给第一解码单元802,否则将上述比特流输出给第二解码单元803。
[0083]解码单元802和803如图2所示逐块行解码输入的比特流。将基于使用两个解码单元的例子来说明本典型实施例,但是本发明不局限于此。参考图2,通过第一解码单元802对表示包括上端块行(第O块行)的偶数块行的白色区域中的块进行解码。通过第二解码单元803对表示奇数块行的阴影区域中的块进行解码。
[0084]第一解码单元802和第二解码单元803各自首先选择用于要解码的比特流的二值信号的发生概率表,并且基于发生概率表来算术解码二值信号,以生成量化系数。接着,第一解码单元802和第二解码单元803各自基于量化参数来反量化量化系数,以生成变换系数。然后,第一解码单元802和第二解码单元803各自对变换系数进行反正交变换以生成预测误差。接着,第一解码单元802和第二解码单元803各自通过参考解码对象块周围的像素或者其他帧来进行预测,以生成解码对象块的图像数据。第一发生概率表存储单元804存储由第一解码单元802所生成的发生概率表。第一量化参数存储单元805存储由第一解码单元802所确定的量化参数。
[0085]第二发生概率表存储单元806存储由第二解码单元803所生成的发生概率表。第二量化参数存储单元807存储由第二解码单元803所确定的量化参数。图像数据整合单元808对由第一解码单元802所生成的图像数据和由第二解码单元803所生成的图像数据进行成形,并且输出成形的图像数据。
[0086]将参考图9?12所示的流程图来详细说明根据本典型实施例的图像解码设备的操作。在本典型实施例中,逐帧输入比特流。将比特流分割成编码数据块,然后对其进行解码。以逐帧输入比特流的方式配置本典型实施例,但是可以将帧分割成片、并且逐片输入比特流的方式来配置。此外,为了简化说明,仅基于帧内预测解码处理来说明本典型实施例,但是其不局限于此。还可将本典型实施例应用于帧间预测解码处理。
[0087]首先,在步骤S901中,图像解码设备判断处理对象块是否属于上端块行。如果处理对象块属于上端块行(步骤S901为“是”),则处理进入步骤S902。如果处理对象块不属于上端块行(步骤S901为“否”),则处理进入步骤S903。
[0088]步骤S902的处理是用于对上端块行进行解码的处理,下面将对其进行详细说明。步骤S903的处理是用于对除上端块行以外的块行进行解码的处理,下面也将对其进行详细说明。此外,选择器801判断处理对象块所属的块行是偶数块行还是奇数块行。如果块行是偶数块行,则通过第一解码单元802独立解码处理对象块。如果块行不是偶数块行,则通过第二解码单元803独立解码处理对象块。在本典型实施例中,选择器801基于解码块的编号判断块行是否是偶数块行。然而,本发明不局限于此。例如,输入的比特流可以包括预先在块行之间的边界处所设置的标识符,并且选择器801可以基于该标识符来判断块行是否是偶数块行。可选地,可以对表示各块行的比特流的大小或者下一块行的开始位置的信息进行设置,并且选择器801可以基于该信息来判断块行是否是偶数块行。
[0089]接着,在步骤S904中,图像数据整合单元808对从第一解码单元802输出的图像数据和从第二解码单元803输出图像数据进行整合,并且生成和输出解码图像。
[0090]接着在步骤S905中,图像解码设备判断是否解码了处理对象帧中的所有块行。如果解码了所有块行(步骤S905为“是”),则结束用于解码一帧的处理。如果未解码所有块(步骤S905为“否”),则处理再次进入步骤S901,从而开始解码下一块行。
[0091]将参考图10所示的流程图来详细说明步骤S902的处理(用于对上端块行进行解码的处理)。由于上端块行是偶数块行,因而通过选择器801将处理对象块行的编码数据输入到第一解码单元802,并且通过第一解码单元802来进行解码。
[0092]参考图10,首先,在步骤S1001中,将解码块所基于的量化参数初始化,以使得其与用于片的量化参数的初始值相一致。下面,以与根据第一典型实施例的图像编码设备相同的方式,将解码块所基于的量化参数称为“块基准量化参数”。在反量化解码对象块的情况下的块量化参数处于下面的状态:不编码值本身,而是将其与块基准量化参数的差值编码为语法元素。因此,在解码时,通过将块基准量化参数和上述差值相加来生成块量化参数,并且解码设备使用所生成的块量化参数来进行反量化。在本典型实施例中,该差值与HEVC方法中的cu_qp_de I ta值相对应。然而,本发明不局限于此。例如,该差值可以与H.264方法中的mb_qp_delta值相对应。接着,在步骤S1002中,通过预定方法初始化发生概率表。使用初始化后的发生概率表来对块行中最左边的块的第一二值信号进行算术解码,并且在下面说明的步骤S1003中,必要时更新发生概率表。下面,以与根据第一典型实施例的图像编码设备相同的方式,将对块行中起始块的第一二值信号进行算术解码所使用的发生概率表称为“块行基准发生概率表”。
[0093]接着,在步骤S1003中,第一解码单元802逐块解码比特流以生成图像数据。
[0094]在本典型实施例中,由64X64像素构成一个块,但是本发明不局限于此。块的大小可以是诸如32X32像素等的更小大小、或者诸如128X128像素等的更大大小。将参考图12所示的流程图来详细说明步骤S1003的块解码处理。
[0095]首先,在步骤S1201中,第一解码单元802基于上述发生概率表算术解码比特流以生成二值信号。此外,第一解码单元802针对各语法元素,以与H.264方法相同的方式,来对根据诸如一元二值化和固定长度二值化等的各种类型的二值化方法中的任一个所二值化的二值信号进行解码,以生成包括量化系数的语法元素。
[0096]接着,在步骤S1202中,基于算术解码后的二值信号是否是最可能的符号,来更新发生概率表。
[0097]接着,在步骤S1203中,第一解码单元802判断是否算术解码了块中的所有语法元素。如果算术解码了所有语法元素(步骤S1203为“是”),则处理进入步骤S1204。如果未算术解码所有语法元素(步骤S1203为“否”),则处理再次进入步骤S1201。[0098]接着,在步骤S1204中,第一解码单元802通过将上述块基准量化参数和在步骤S1201中所解码的cu_cip_delta值相加,来生成块量化参数。
[0099]接着,在步骤S1205中,第一解码单元802基于块量化参数来反量化量化系数,以生成变换系数。然后,第一解码单元802对变换系数进行反正交变换以生成预测误差。
[0100]接着,在步骤S1206中,第一解码单元802将在反量化处理对象块时所使用的块量化参数设置成块基准量化参数,从而更新块基准量化参数。将使用该块基准量化参数来生成下一个块的块量化参数。
[0101]接着,在步骤S1207中,第一解码单元802根据处理对象块周围的像素来进行帧内预测,以生成预测图像。此外,第一解码单元802通过将预测误差和预测图像相加,来生成与一个块相对应的图像数据。
[0102]返回参考图10所示的流程图,在步骤S1004中,第一解码单元802判断是否满足用于存储块基准量化参数的条件。在本典型实施例中,用于存储块基准量化参数的条件是在步骤S1003所解码的块是否是块行中最左边的块。如果满足该条件(步骤S1004为“是”),则处理进入步骤S1005。在步骤S1005中,将块基准量化参数作为第一量化参数存储在第一量化参数存储单元805中。如果不满足该条件(步骤S1004为“否”),则处理进入步骤S1006。在第二解码单元803对下一块行中最左边的块进行解码的情况下,使用第一量化参数作为块基准量化参数。
[0103]接着,在步骤S1006中,第一解码单元802判断是否满足用于存储发生概率表的条件。在本典型实施例中,用于存储发生概率表的条件是在步骤S1003中所解码的块是否是从块行中最左边的块开始的第预定数量个块。如果满足该条件(步骤S1006为“是”),则处理进入步骤S1007。在步骤S1007中,将发生概率表作为第一发生概率表存储在第一发生概率表存储单元804中。如果不满足该条件(步骤S1006为“否”),则处理进入步骤S1008。在第二解码单元803对下一块行中最左边的块进行解码的情况下,使用第一发生概率表作为块行基准发生概率表。
[0104]接着,在步骤S1008中,第一解码单元802判断是否解码了处理对象块行中的所有块。如果解码了所有块(步骤S1008为“是”),则结束对上端块行进行的解码。如果未解码所有块(步骤S1008为“否”),则处理再次进入步骤S1003,并且从步骤S1003开始,第一解码单元802按照光栅顺序对下一个块进行解码。
[0105]将参考图11所示的流程图来详细说明步骤S903的处理(用于对除上端块行以外的块行进行解码的处理)。选择器801针对各块行判断块行是否是偶数块行。如果块行是偶数块行,则将处理对象块的比特流输入到第一解码单元802,并且通过第一解码单元802来进行解码。如果块行是奇数块行,则将处理对象块的比特流输入到第二解码单元803,并且通过第二解码单元803来进行解码。首先,说明在第二解码单元803解码奇数块行的情况下的流程。
[0106]首先,在步骤S1101,将从第一量化参数存储单元805输入的第一量化参数作为块基准量化参数。接着,在步骤S1102中,将从第一发生概率表存储单元804输入的第一发生概率表作为块行基准发生概率表。
[0107]步骤S1103、S1104、S1106 和 S1108 的处理分别与步骤 S1003、S1004、S1006 和S1008的处理相同,因此,这里省略对其的说明。[0108]在步骤SI 105中,将存储在第二量化参数存储单元807中的块基准量化参数作为第二量化参数。使用第二量化参数作为用于下一块行中最左边的块的块基准量化参数。
[0109]在步骤S1107中,将存储在第二发生概率表存储单元806中的发生概率表作为第二发生概率表。在第一解码单元802对下一块行中最左边的块进行算术解码的情况下,使用第二发生概率表作为块行基准发生概率表。
[0110]随后,说明在第一解码单元802解码偶数块行的情况下的流程。
[0111]首先,在步骤SllOl中,将从第二量化参数存储单元807输入的第二量化参数作为块基准量化参数。接着,在步骤S1102中,将从第二发生概率表存储单元806输入的第二发生概率表作为块行基准发生概率表。
[0112]步骤SI 103?SI 108的处理分别与步骤S1003?S1008的处理相同,因此,这里省略对其的说明。
[0113]上述结构和操作甚至在紧接着当前正被解码的块行之前的块行的处理完成之前,在最左边的块的处理期间,除作为统计信息的发生概率表以外,还通过允许参考块基准量化参数来使得能够并行执行解码。图7A和7B各自示出如何参考块基准量化参数。根据传统技术,如图7A所示,在完成前一块行的处理之前,无法开始下一块行的处理。然而,根据本典型实施例,通过在处理最左边的块时使得参考空间上的上一个块成为可能,从而允许如图7B所示的基准模式,因而消除了等待前一块行处理的完成的必要性。
[0114]此外,在本典型实施例中,在解码最左边的块的情况下,使用在紧接着的上一块行中最左边的块中所使用的量化参数作为块基准量化参数。然而,本发明不局限于此,并且可以通过能够提高逐块行处理的并行性的任何结构来实现本发明。例如,在对所有块行中最左边的块进行解码的情况下,可以使用设置给片的量化参数的初始值作为块基准量化参数。作为另一可能结构,用于存储块基准量化参数的条件可以与在步骤S1006和S1106中所设置的用于存储发生概率表的条件相同。更具体地,可以使用在对从块行中最左边的块开始的第预定数量个块解码的情况下的量化参数,作为用于下一块行中最左边的块的块基准量化参数。此外,可以将图像解码设备配置成基于最左边的块的编码模式,来切换作为块基准量化参数所要参考的块。
[0115]此外,在本典型实施例中,对于熵解码使用算术解码,但是本发明不局限于此。可以使用任何解码,只要在基于诸如发生概率表等的统计信息的熵解码时,使用块行的解码中间的统计信息来进行下一块行最左边的块的熵解码即可。
[0116]基于使用两个解码单元的例子来说明了本典型实施例。然而,显而易见,例如,添加第三解码单元、第三发生概率表存储单元和第三量化参数存储单元,使得能够通过更多数量的解码单元来进行并行处理。
[0117]图14是示出根据第三典型实施例的图像编码设备的框图。
[0118]参考图14,选择器1401判断处理对象块是否属于偶数块行。如果块属于偶数块行,则选择器1401将该块输出给第一编码单元1402,否则,将该块输出给第二编码单元1403。
[0119]第一编码单元1402和第二编码单元1403如图2所示逐行对将输入图像分割成nXn像素(“η”是2以上的正整数)的块进行编码。基于使用两个编码单元的例子说明本典型实施例,但是本发明不局限于此。参考图2,用细线绘制的正方形所示的片段201代表块,并且用粗线绘制的矩形所示的片段202代表块行。此外,通过第一编码单元1402对表示包括上端块行(第O块行)的偶数块行的白色区域中的块进行编码。通过第二编码单元1403对表示奇数块行的阴影区域中的块进行编码。
[0120]第一编码单元1402和第二编码单元1403各自根据通过参考编码对象块周围的像素或者其他帧的预测来首先生成预测误差,并且进行正交变换以生成变换系数。接着,第一编码单元1402和第二编码单元1403各自确定正交变换后的变换系数的量化参数,并且量化各变换系数以生成量化系数。接着,第一编码单元1402和第二编码单元1403各自对包括量化系数的各语法元素进行二值化以生成二值信号。预先向各语法元素分配发生概率作为表(以下称为“发生概率表”)。基于上述发生概率表,算术编码二值信号。然后,每当编码二值信号时,使用表示编码后的二值信号是否是最可能的符号的统计信息来更新发生概率表。
[0121]初始量化参数存储单元1404存储量化参数的初始值。
[0122]第一发生概率表存储单元1405存储由第一编码单元1402所生成的发生概率表。下面,将存储在第一发生概率表存储单元1405中的发生概率表称为“第一发生概率表”。
[0123]第二发生概率表存储单元1406存储由第二编码单元1403所生成的发生概率表。下面,将存储在第二发生概率表存储单元1406中的发生概率表称为“第二发生概率表”。
[0124]整合编码单元1407对由第一编码单元1402所生成的编码数据和由第二编码单元1403所生成的编码数据进行整合,并且输出整合数据作为比特流。
[0125]将参考图3、15和16所示的流程图来详细说明根据本典型实施例的图像编码设备的操作。在本典型实施例中,将逐帧输入的运动图像数据分割成块,并且按照光栅顺序进行处理。本典型实施例被配置成逐帧输入运动图像数据,但是可被配置成输入与一帧相对应的静止图像数据、或者逐片输入图像数据,其中,将帧分割成片。此外,为了简化说明,仅基于帧内预测编码处理来说明本典型实施例,但是不局限于此。还可将本典型实施例应用于帧间预测编码处理。
[0126]首先,图3所示的步骤S301、S304和S305的处理与第一典型实施例的相同,因此,这里省略对其的说明。
[0127]然后,将参考图15所示的流程图来详细说明步骤S302的处理(用于对上端块行进行编码的处理)。由于上端块行是偶数块行,因而通过选择器1401将处理对象块输入到第一编码单元1402,并且通过第一编码单元1402来进行编码。
[0128]首先,在步骤S1501中,将编码块所基于的量化参数初始化,以使其与用于片的量化参数的初始值相一致,并且将其存储在初始量化参数存储单元1404中。下面,以与第一典型实施例相同的方式,将编码块所基于的量化参数称为“块基准量化参数”。对于量化编码对象块所使用的量化参数,不将其值本身编码为语法元素,而是对其与块基准量化参数的差值进行编码。
[0129]接着,在步骤S1502中,第一编码单元1402将从初始量化参数存储单元1404读取的初始化后的量化参数作为用于对块行中最左边的块进行编码的块基准量化参数。接着,步骤S1503?S1507的处理分别与图4所示的步骤S402、S403和S406?S408的处理相同,因此,这里省略对其的说明。
[0130]然而,在步骤S1504,第一编码单元1402逐块编码像素数据。[0131]接着,将参考图16所示的流程图来详细说明步骤S303的处理(用于对除上端块行以外的块行进行编码的处理)。选择器1401针对各块行判断块行是否是偶数块行。如果块行是偶数块行,则将处理对象块行的图像输入到第一编码单元1402,并且通过第一编码单元1402来进行编码。如果块行是奇数块行,则将处理对象块行的图像输入到第二编码单元1403,并且通过第二编码单元1403来进行编码。首先,说明在第二编码单元1403编码奇数块行的情况下的流程。
[0132]首先,在步骤S1601中,从初始量化参数存储单元1404输入用于对块行中最左边的块进行编码的块基准量化参数。接着,在步骤S1602中,将从第一发生概率表存储单元1405输入的第一发生概率表作为块行基准发生概率表。
[0133]在步骤S1603中,第二编码单元1403逐块编码像素数据。步骤S1604的处理与图15所示的步骤S1505的处理相同。
[0134]在步骤S1605中,将发生概率表作为第二发生概率表存储在第二发生概率表存储单元1406中。在第一编码单元1402对下一块行中最左边的块进行算术编码的情况下,使用第二发生概率表作为块行基准发生概率表。
[0135]步骤S1606的处理与图15所示的步骤S1507的处理相同。
[0136]随后,说明在第一编码单元1402编码偶数块行的情况下的流程。
[0137]首先,在步骤S1601中,从初始量化参数存储单元1404输入用于对块行中最左边的块进行编码的块基准量化参数。接着,在步骤S1602,将从第二发生概率表存储单元1406输入的第二发生概率表作为块行基准发生概率表。
[0138]步骤S1603?S1606的处理与步骤S1504?S1507的处理相同,因此,这里省略对其的说明。
[0139]上述结构和操作甚至在紧接着当前正被编码的块行之前的块行的处理完成之前,在最左边的块的处理期间,除作为统计信息的发生概率表以外,还通过允许参考块基准量化参数来使得能够并行执行编码。图17A和17B各自示出如何参考块基准量化参数。在图17A和17B中,“Slice QP”表示设置给片的量化参数的初始值。根据传统技术,如图17A所示,在完成前一块行的处理之前,无法开始下一块行的处理。然而,根据本典型实施例,如图17B所示,可以参考设置给片的量化参数的初始值来作为用于编码块行中最左边的块的块基准量化参数,从而消除等待前一块行处理的完成的必要性。
[0140]此外,在本典型实施例中,对于熵编码使用算术编码,但是本发明不局限于此。可以使用任何编码,只要在基于诸如发生概率表等的统计信息的熵编码时,可以使用块行的编码中间的统计信息来进行下一块行的最左边的块的熵编码。
[0141]基于使用两个编码单元的例子来说明了本典型实施例。然而,显而易见,例如,添加第三编码单元和第三发生概率表存储单元,使得能够通过更多数量的编码单元进行并行处理。
[0142]图18是示出根据第四典型实施例的图像解码设备的框图。
[0143]参考图18,选择器1801判断处理对象块是否属于偶数块行。如果处理对象块属于偶数块行,则选择器1801将上述比特流输出给第一解码单元1802,否则将上述比特流输出给第二解码单元1803。
[0144]解码单元1802和1803如图2所示逐块行解码输入的比特流。将基于使用两个解码单元的例子来说明本典型实施例,但是本发明不局限于此。参考图2,通过第一解码单元1802对表示包括上端块行(第O块行)的偶数块行的白色区域中的块进行解码。通过第二解码单元1803对表示奇数块行的阴影区域中的块进行解码。
[0145]第一解码单元1802和第二解码单元1803各自首先选择用于作为解码对象的比特流的二值信号的发生概率表,并且基于发生概率表算术解码二值信号,以生成量化系数。接着,第一解码单元1802和第二解码单元1803各自基于量化参数来反量化量化系数以生成变换系数。然后,第一解码单元1802和第二解码单元1803各自对变换系数进行反正交变换以生成预测误差。接着,第一解码单元1802和第二解码单元1803各自通过参考解码对象块周围的像素或者其他帧来进行运动补偿,以生成解码对象块的图像数据。初始量化参数存储单元1804存储量化参数的初始值。第一发生概率表存储单元1805存储由第一解码单元1802所生成的发生概率表。
[0146]第二发生概率表存储单元1806存储由第二解码单元1803所生成的发生概率表。图像数据整合单元1807对由第一解码单元1802所生成的图像数据和由第二解码单元1803所生成的图像数据进行成形,并且输出成形的图像数据。
[0147]将参考图9、19和20所示的流程图来详细说明根据本典型实施例的图像解码设备的操作。在本典型实施例中,逐帧输入比特流。将比特流分割成各自对应于一个块的编码数据块,然后对其进行解码。以逐帧输入比特流这样的方式配置本典型实施例,但是可以将帧分割成片、并且逐片输入比特流的方式来配置。此外,为了简化说明,仅基于帧内预测解码处理来说明本典型实施例,但是不局限于此。还可将本典型实施例应用于帧间预测解码处理。
[0148]首先,图9所示的步骤S901、S904和S905的处理与第二典型实施例的相同,因此,这里省略对其的说明。
[0149]将参考图19所示的流程图来详细说明步骤S902的处理(用于对上端块行进行解码的处理)。由于上端块行是偶数块行,因而通过选择器1801将处理对象块行的编码数据输入到第一解码单元1802,并且通过第一解码单元1802进行解码。
[0150]首先,在步骤S1901中,将解码块所基于的量化参数初始化,以使得其与用于片的量化参数的初始值相一致,并且将其存储在初始量化参数存储单元1804中。下面,以与根据第二典型实施例的图像解码设备相同的方式,将解码块所基于的量化参数称为“块基准量化参数”。在反量化解码对象块的情况下的块量化参数处于下面的状态:不编码值本身,而是将其与块基准量化参数的差值编码为语法元素。因此,在解码时,通过将块基准量化参数和上述差值相加来生成块量化参数,并且解码设备使用所生成的块量化参数来进行反量化。
[0151]接着,在步骤S1902中,第一解码单元1802将从初始量化参数存储单元1804读取的值作为用于对块行中最左边的块进行解码的块基准量化参数。接着,步骤S1903?S1907的处理分别与步骤S1002、S1003、S1006?S1008的处理相同,因此,这里省略对其的说明。
[0152]随后,将参考图20所示的流程图来详细说明步骤S903的处理(用于对除上端块行以外的块行进行解码的处理)。选择器1801针对各块行判断块行是否是偶数块行。如果块行是偶数块行,则将处理对象块的比特流输入到第一解码单元1802,并且通过第一解码单元1802进行解码。如果块行是奇数块行,则将处理对象块的比特流输入到第二解码单元1803,并且通过第二解码单元1803进行解码。首先,说明在第二解码单元1803解码奇数块行的情况下的流程。
[0153]首先在步骤S2001中,从初始量化参数存储单元1804输入用于对块行中最左边的块进行解码的块基准量化参数。接着,在步骤S2002中,将从第一发生概率表存储单元1805输入的第一发生概率表作为块行基准发生概率表。
[0154]在步骤S2003,第二解码单元1403逐块解码像素数据。步骤S2004的处理与步骤S1905的处理相同,因此,这里省略对其的说明。
[0155]在步骤S2005,将发生概率表作为第二发生概率表存储在第二发生概率表存储单元1806中。在第一解码单元1402对下一块行中最左边的块进行算术解码的情况下,使用第二发生概率表作为块行基准发生概率表。
[0156]步骤S2006的处理与步骤S1907的处理相同,因此,这里省略对其的说明。随后,说明在第一解码单元1802解码偶数块行的情况下的流程。
[0157]首先,在步骤S2001中,从初始量化参数存储单元1804输入用于对块行中最左边的块进行解码的块基准量化参数。接着,在步骤S2002中,将从第二发生概率表存储单元1806输入的第二发生概率表作为块行基准发生概率表。
[0158]步骤S2003?S2006的处理与步骤S1904?S1907的处理相同,因此,这里省略对其的说明。
[0159]上述结构和操作甚至在紧接着当前正被解码的块行之前的块行的处理完成之前,在最左边的块的处理期间,除作为统计信息的发生概率表以外,还通过允许参考块基准量化参数来使得能够并行执行解码。
[0160]此外,在本典型实施例中,对于熵解码使用算术解码,但是本发明不局限于此。可以使用任何解码,只要在基于诸如发生概率表等的统计信息的熵解码时,使用块行的解码中间的统计信息来进行下一块行的最左边的块的熵解码即可。
[0161]基于使用两个解码单元的例子来说明了本典型实施例。然而,显而易见,例如,添加第三解码单元和第三发生概率表存储单元,使得能够通过更多数量的解码单元进行并行处理。
[0162]图21是示出根据第五典型实施例的图像编码设备的框图。
[0163]参考图21,选择器2101判断处理对象块是否属于偶数块行。如果块行属于偶数块行,则选择器2101将该块输出给第一编码单元2102,否则将该块输出给第二编码单元2103。
[0164]第一编码单元2102和第二编码单元2103如图2所示逐行对将输入图像分割成nXn像素(“η”是2以上的正整数)的块进行编码。将基于使用两个编码单元的例子来说明本典型实施例,但是本发明不局限于此。参考图2,用细线绘制的正方形所示的片段201代表块,并且用粗线绘制的矩形所示的片段202代表块行。此外,通过第一编码单元2102对表示包括上端块行(第O块行)的偶数块行的白色区域中的块进行编码。通过第二编码单元2103对表示奇数块行的阴影区域中的块进行编码。
[0165]第一编码单元2102和第二编码单元2103各自根据通过参考编码对象块周围的像素或者其他帧的预测来首先生成预测误差,并且进行正交变换以生成变换系数。接着,第一编码单元2102和第二编码单元2103各自确定正交变换后的变换系数的量化参数,并且量化各变换系数以生成量化系数。接着,第一编码单元2102和第二编码单元2103各自对包括量化系数的各语法元素进行二值化以生成二值信号。预先向各语法元素分配发生概率作为表(以下称为“发生概率表”)。基于上述发生概率表,算术编码二值信号。然后,每当编码二值信号时,使用表示编码后的二值信号是否是最可能的符号的统计信息,更新发生概率表。
[0166]初始量化参数存储单元2104存储量化参数的初始值。初始发生概率表存储单元2105存储发生概率表的初始值。整合编码单元2106对由第一编码单元2102所生成的编码数据和由第二编码单元2103所生成的编码数据进行整合,并且输出整合数据作为比特流。
[0167]将参考图3、22和23所示的流程图来详细说明根据本典型实施例的图像编码设备的操作。在本典型实施例中,将逐帧输入的运动图像数据分割成块,并且按照光栅顺序进行处理。本典型实施例被配置成逐帧输入运动图像数据,但是可被配置成输入与一帧相对应的静止图像数据、或者逐片(分割帧而得到片)输入图像数据。此外,为了简化说明,仅基于帧内预测编码处理来说明本典型实施例,但是不局限于此。还可将本典型实施例应用于帧间预测编码处理。
[0168]图3所示的步骤S301、S304和S305的处理与第一典型实施例的相同,因此,这里省略对其的说明。
[0169]将参考图22所示的流程图来详细说明步骤S302的处理(用于对上端块行进行编码的处理)。由于上端块行是偶数块行,因而通过选择器2101将处理对象块输入到第一编码单元2102,并且通过第一编码单元2102来进行编码。
[0170]首先,在步骤S2201中,将编码块所基于的量化参数初始化,以使其与用于片的量化参数的初始值相一致,并且将其存储在初始量化参数存储单元2104中。下面,以与第一典型实施例相同的方式,将编码块所基于的量化参数称为“块基准量化参数”。对于量化编码对象块所使用的量化参数,不将其值本身编码为语法元素,而是将其与块基准量化参数的差值进行编码。
[0171]接着,在步骤S2202中,将第一编码单元2102从初始量化参数存储单元2104读取的初始化后的量化参数作为用于对块行中最左边的块进行编码的块基准量化参数。接着,在步骤S2203,通过预定方法初始化发生概率表,并且将其存储在初始发生概率表存储单元2105中。使用存储在初始发生概率表存储单元2105中的发生概率表来对块行中最左边的块的第一二值信号进行算术编码,并且在下面所述的步骤S2205中,根据需要来更新发生概率表。下面,以与第一典型实施例相同的方式,将算术编码块行中第一块的二值信号所使用的发生概率表,称为“块行基准发生概率表”。
[0172]接着,在步骤S2204中,将第一编码单元2102从初始发生概率表存储单元2105读取的初始化后的量化参数作为块行基准发生概率表。
[0173]接着,步骤S2205和S2206的处理分别与图4所示的步骤S403和S408的处理相同,因此,这里省略对其的说明。然而,在步骤S2205中,第一编码单元2012逐块编码像素数据。随后,将参考图23所示的流程图来详细说明步骤S303的处理(用于编码上端块行以外的块行的处理)。选择器2101针对各块行判断块行是否是偶数块行。如果块行是偶数块行,则将处理对象块行的图像输入到第一编码单元2102,并且通过第一编码单元2102来进行编码。如果块行是奇数块行,则将处理对象块行的图像输入到第二编码单元2103,并且通过第二编码单元2103来进行编码。首先,说明在第二编码单元2103编码奇数块行的情况下的流程。
[0174]首先,在步骤S2301中,从初始量化参数存储单元2104输入用于对块行中最左边的块进行编码的块基准量化参数。
[0175]接着,在步骤S2302中,将从初始发生概率表存储单元2105输入的值作为块行基准发生概率表。
[0176]接着,在步骤S2303中,第二编码单元2103逐块编码像素数据。步骤S2304的处理与图22所示的步骤S2206的处理相同。随后,说明在第一编码单元2102编码偶数块行的情况下的流程。首先,在步骤S2301,从初始量化参数存储单元2104输入用于对块行中最左边的块进行编码的块基准量化参数。接着,在步骤S2302中,将从初始发生概率表存储单元2105输入的值作为块行基准发生概率表。
[0177]步骤S2303和S2304的处理与步骤S2205和S2206的处理相同,因此,这里省略对其的说明。
[0178]上述结构和操作甚至在紧接着当前正被编码的块行之前的块行的处理完成之前,在最左边的块的处理期间,还使用作为统计信息的发生概率表和作为块基准量化参数的初始化后的值,使得能够并行执行编码。此外,在本典型实施例中,对于熵编码使用算术编码,但是本发明不局限于此。可以使用任何编码方法,只要在开始编码处理时初始化统计信息、使用该统计信息进行编码处理、并且每当进行编码处理时更新该统计信息即可。
[0179]基于使用两个编码单元的例子说明了本典型实施例。然而,显而易见,例如,添加第三编码单元使得能够通过更多数量的编码单元进行并行处理。
[0180]图24是示出根据第六典型实施例的图像解码设备的框图。
[0181]参考图24,选择器2401判断处理对象块是否属于偶数块行。如果块属于偶数块行,则选择器2401将该块输出给第一解码单元2402,否则将该块输出给第二解码单元2403。
[0182]第一解码单元2402和第二解码单元2403如图2所示逐行解码输入的比特流。下面,将一行的块称为“块行”。基于使用两个解码单元的例子来说明本典型实施例,但是本发明不局限于此。参考图2,用细线绘制的正方形所示的片断201代表块,并且用粗线绘制的矩形所示的片断202代表块行。此外,通过第一解码单元2402对表示包括上端块行(第O块行)的偶数块行的白色区域中的块进行解码。通过第二解码单元2403对表示奇数块行的阴影区域中的块进行解码。
[0183]第一解码单元2402和第二解码单元2403各自首先选择用于作为解码对象的比特流的二值信号的发生概率表,并且基于发生概率表算术解码二值信号以生成量化系数。接着,第一解码单元2402和第二解码单元2403各自基于量化参数来反量化量化系数以生成变换系数。然后,第一解码单元2402和第二解码单元2403各自对变换系数进行反正交变换以生成预测误差。接着,第一解码单元2402和第二解码单元2403各自通过参考解码对象块周围的像素或者其他帧来进行预测,以生成解码对象块的图像数据。
[0184]初始量化参数存储单元2404存储量化参数的初始值。初始发生概率表存储单元2405存储发生概率表的初始值。图像数据整合单元2406对由第一解码单元2402所生成的图像数据和由第二解码单元2403所生成的图像数据进行成形,并且输出成形的数据。[0185]将参考图9、25和26所示的流程图来详细说明根据本典型实施例的图像解码设备的操作。在本典型实施例中,逐帧输入比特流。将比特流分割成各自与一个块相对应的编码数据块,然后对其进行解码。以逐帧输入比特流这样的方式配置本典型实施例,但是可以将帧分割成片、并且逐片输入比特流的方式来配置。此外,为了简化说明,仅基于帧内预测解码处理来说明本典型实施例,但是不局限于此。还可将本典型实施例应用于帧间预测解码处理。
[0186]图9所示的步骤S901、S904和S905的处理与第二典型实施例的相同,因此,这里省略对其的说明。
[0187]参考图25所示的流程图详细说明步骤S902的处理(用于对上端块行进行解码的处理)。由于上端块行是偶数块行,因而通过选择器2401将处理对象块行的编码数据输入到第一解码单元2402,并且通过第一解码单元2402进行解码。
[0188]首先,在步骤S2501中,将解码块所基于的量化参数初始化,以使其与用于片的量化参数的初始值相一致,并且将其存储在初始量化参数存储单元2404中。下面,以与第二典型实施例相同的方式,将解码块所基于的量化参数称为“块基准量化参数”。在反量化解码对象块的情况下的块量化参数处于这样的状态:不编码值本身,而是将其与块基准量化参数的差值编码为语法元素。因此,在解码时,通过将块基准量化参数和上述差值相加来生成块量化参数,并且解码设备进行反量化。
[0189]接着,在步骤S2502中,第一解码单元2402将从初始量化参数存储单元2404读取的值作为用于对块行中最左边的块进行编码的块基准量化参数。接着,在步骤S2503中,通过预定方法初始化发生概率表,并且将其存储在初始发生概率表存储单元2405中。使用存储在初始发生概率表存储单元2405中的发生概率表来对块行中最左边的块的第一二值信号进行算术解码,并且在下面所述的步骤S2505中,根据需要来更新发生概率表。下面,以与第二典型实施例相同的方式,将算术解码块行中的起始块的第一二值信号所使用的发生概率表,称为“块行基准发生概率表”。
[0190]接着,在步骤S2504中,第一解码单元2402将从初始发生概率表存储单元2405读取的值作为块行基准发生概率表。
[0191]接着,步骤S2505和S2506的处理分别与图10所示的步骤S1003和S1008的处理相同,因此,这里省略对其的说明。
[0192]然而,在步骤S2505,第一解码单元2402逐块解码像素数据。
[0193]随后,将参考图26所示的流程图来详细说明步骤S903的处理(用于对除上端块行以外的块行进行解码的处理)。选择器2401针对各块行判断块行是否是偶数块行。如果块行是偶数块行,则将处理对象块的比特流输入到第一解码单元2402,并且通过第一解码单元2402来进行解码。如果块行是奇数块行,则将处理对象块的比特流输入到第二解码单元2403,并且通过第二解码单元2403来进行解码。首先,说明在第二解码单元2403解码奇数块行的情况下的流程。
[0194]首先,在步骤S2601中,从初始量化参数存储单元2404输入用于对块行中最左边的块进行解码的块基准量化参数。
[0195]接着,在步骤S2602中,将从初始发生概率表存储单元2405输入的值作为块行基准发生概率表。[0196]接着,在步骤S2603中,第二解码单元2403逐块解码像素数据。步骤S2604的处理与图25所示的步骤S2506的处理相同。随后,说明在第一解码单元2402解码偶数块行的情况下的流程。首先,在步骤S2601中,从初始量化参数存储单元2404输入用于对块行中最左边的块进行解码的块基准量化参数。接着,在步骤S2602中,将从初始发生概率表存储单元2405输入的值作为块行基准发生概率表。
[0197]步骤S2603和S2604的处理与步骤S2505和S2506的处理相同,因此,这里省略对其的说明。
[0198]上述结构和操作甚至在紧接着当前正被解码的块行之前的块行的处理完成之前,在最左边的块的处理期间,通过使用作为统计信息的发生概率表和作为块基准量化参数的初始化后的值,使得能够并行执行解码。
[0199]此外,在本典型实施例中,对于熵解码使用算术解码,但是本发明不局限于此。可以使用任何解码方法,只要在开始解码处理时初始化统计信息、使用该统计信息进行解码处理、并且每当进行解码处理时更新该统计信息即可。
[0200]基于使用两个解码单元的例子来说明了本典型实施例。然而,显而易见,例如,添加第三解码单元使得能够通过更多数量的解码单元来进行并行处理。
[0201]在假定通过硬件设备来实现图1、8、14、18、21和24所示的各个处理单元的情况下,说明了上述典型实施例。然而,可以通过计算机程序来实现通过图1、8、14、18、21和24所示的各个处理单元所进行的处理。
[0202]图13是示出作为根据上述各个典型实施例的图像处理设备可使用的计算机的硬件结构的例子的框图。
[0203]中央处理单元(CPU) 1301使用存储在随机存取存储器(RAM) 1302和只读存储器(ROM) 1303中的计算机程序和数据来控制整个计算机,并且进行通过根据上述各个典型实施例的图像处理设备所要进行的所述的各种类型的处理。换句话说,CPU1301发挥图1、8、14、18、21和24所示的各个处理单元的功能。
[0204]RAM1302具有用于对例如从外部存储装置1306所装载的计算机程序和数据进行临时存储、以及经由接口(I/F) 1307从外部所获取的数据的区域。此外,RAM1302具有在CPU1301进行各种类型的处理时所使用的工作区。换句话说,例如,可以将RAM1302分配为帧存储器,或者根据需要,RAM1302可以提供其他各种类型的区域。
[0205]R0M1303存储例如本计算机的设置数据和引导程序。操作单元1304包括键盘和鼠标。本计算机的用户可以通过操作操作单元1304,向CPU1301输入各种类型的指示。显示单元1305显示通过CPU1301所进行的处理的结果。此外,显示单元1305包括诸如液晶显示器等的显示装置。
[0206]外部存储装置1306是以硬盘驱动器装置为代表的大容量信息存储装置。外部存储装置1306存储操作系统(OS)、以及用于使得CPU1301实现图1、8、14、18、21和24所示的各个单元的功能的计算机程序。此外,外部存储装置1306可以存储作为处理对象的图像数据。
[0207]根据CPU1301的控制,根据需要,将存储在外部存储装置1306中的计算机程序和数据装载到RAM1302中,并且通过CPU1301进行处理。可以将诸如局域网(LAN)和因特网等的网络、以及诸如投影装置和显示装置等的其他装置连接至I/F1307。计算机可以经由I/F1307来获取和发送各种类型的信息。总线1308相互连接上述各个单元。
[0208]作为上述结构的操作,CPU1301在控制参考上述流程图所述的操作时发挥主要作用。
[0209]还可以通过向系统提供用于存储能够实现上述功能的计算机程序的代码的存储介质、并且使得系统读出并执行计算机程序的代码来实现本发明。在这种情况下,从存储介质读取的计算机程序的代码实现上述典型实施例的功能,并且用于存储计算机程序的代码的存储介质在本发明的范围内。可选地,运行在计算机上的操作系统(OS)等可以基于计算机程序的代码的指示,进行部分或全部实际处理,从而通过该处理实现上述功能。这种情况也在本发明的范围内。
[0210]此外,可选地,可以通过下面的实施例实现本发明:可以将从存储介质读取的计算机程序的代码写入插入计算机中的功能扩展板、或者设置给连接至计算机的功能扩展单元的存储器,并且设置给功能扩展板或功能扩展单元的CPU等可以基于计算机程序的代码的指示,进行部分或全部实际处理,从而实现上述功能。这种情况也在本发明的范围内。
[0211]在通过上述存储介质实现本发明的情况下,存储介质存储与上述流程图相对应的计算机程序的代码。
[0212]尽管参考典型实施例说明了本发明,但是应该理解,本发明不局限于所公开的典型实施例。所附权利要求书的范围符合最宽的解释,以包含所有修改、等同结构和功能。
[0213]本申请要求2011年11月7日提交的日本2011-243940号专利申请的优先权,其全部内容通过引用包含于此。
【权利要求】
1.一种图像编码设备,用于将图像分割成各自包括多个块的一个以上的片,并且逐块对各片进行编码,所述图像编码设备包括: 第一编码部件,用于对所述片的第一部分所包括的块进行编码;以及 第二编码部件,用于对所述片的第二部分所包括的块进行编码, 其中,在所述第二编码部件对所述第二部分中的起始块进行编码的情况下,所述第二编码部件通过参考第一量化参数来对所述第二部分所包括的起始块进行编码,所述第一量化参数是在所述第一编码部件对所述第一部分中的起始块进行编码时所述第一编码部件所参考的、作为初始值设置给所述片的量化参数。
2.根据权利要求1所述的图像编码设备,其中,在所述第一编码部件对所述片的所述第一部分中除起始块以外的块进行编码的情况下,所述第一编码部件通过参考所述第一编码部件在紧接着所述第一部分中除起始块以外的该块之前所编码的块的量化参数,来对所述第一部分中除起始块以外的该块进行编码,以及 其中,在所述第二编码部件对所述片的所述第二部分中除起始块以外的块进行编码的情况下,所述第二编码部件参考所述第二编码部件在紧接着所述第二部分中除起始块以外的该块之前所编码的块的量化参数。
3.根据权利要求1或2所述的图像编码设备,其中,在所述第一编码部件对所述第一部分所包括的各块进行编码的情况下,所述第一编码部件通过参考用于熵编码的统计信息来对各块进行编码,并且还更新所述统计信息,以及 其中,在所述第二编码部件对所述第二部分中的起始块进行编码的情况下,所述第二编码部件通过参考在对所述第一部分所包括的预定块进行编码之后所更新的更新后的统计信息,来对所述第二部分中的起始块进行编码。
4.一种图像编码设备,用于将图像分割成各自包括多个块的一个以上的片,并且逐块对各片进行编码,所述图像编码设备包括: 第一编码部件,用于对所述片的第一部分所包括的块进行编码;以及 第二编码部件,用于对所述片的第二部分所包括的块进行编码, 其中,在所述第二编码部件对所述片的所述第二部分中的起始块进行编码的情况下,所述第二编码部件通过参考第二量化参数来对所述第二部分中的起始块进行编码,所述第二量化参数是对所述第一部分中的起始块或者所述第一部分中的起始块之后的块进行编码所使用的量化参数。
5.一种图像编码方法,用于将图像分割成各自包括多个块的一个以上的片,并且逐块对各片进行编码,所述图像编码方法包括以下步骤: 对所述片的第一部分所包括的块进行编码; 对所述片的第二部分所包括的块进行编码;以及 通过参考第一量化参数来对所述第二部分中的起始块进行编码,所述第一量化参数是在对所述第一部分中的起始块进行编码时所参考的、作为初始值设置给所述片的量化参数。
6.一种图像解码设备,用于逐块对逐片所编码的代码数据进行解码,其中,各片包括多个块,所述图像解码设备包括: 第一解码部件,用于对所述片的第一部分所包括的块进行解码;以及第二解码部件,用于对所述片的第二部分所包括的块进行解码, 其中,在所述第二解码部件对所述第二部分中的起始块进行解码的情况下,所述第二解码部件通过参考第一量化参数来对所述第二部分中的起始块进行解码,所述第一量化参数是在所述第一解码部件对所述第一部分中的起始块进行解码时所述第一解码部件所参考的、作为初始值设置给所述片的量化参数。
7.根据权利要求6所述的图像解码设备,其中,在所述第一解码部件对所述第一部分所包括的各块进行解码的情况下,所述第一解码部件通过参考用于熵解码的统计信息来对各块进行解码,并且还更新所述统计信息,以及 其中,在所述第二解码部件对所述第二部分中的起始块进行解码的情况下,所述第二解码部件通过参考在对所述第一部分所包括的预定块进行解码之后所更新的更新后的统计信息,来对所述第二部分中的起始块进行解码。
8.一种图像解码方法,用于逐块对逐片所编码的代码数据进行解码,其中,各片包括多个块,所述图像解码方法包括以下步骤: 对所述片的第一部分所包括的块进行解码; 对所述片的第二部分所包括的块进行解码;以及 通过参考第一量化参数来对所述第二部分中的起始块进行解码,所述第一量化参数是在对所述第一部分 中的起始块进行解码时所参考的、作为初始值设置给所述片的量化参数。
9.一种可通过计算机读取并执行、并且使得所述计算机发挥根据权利要求1所述的图像编码设备的功能的程序。
10.一种可通过计算机读取并执行、并且使得所述计算机发挥根据权利要求6所述的图像解码设备的功能的程序。
【文档编号】H04N19/134GK103931187SQ201280054786
【公开日】2014年7月16日 申请日期:2012年11月5日 优先权日:2011年11月7日
【发明者】大川浩司 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1