视频编码器以及视频编码方法转让专利

申请号 : CN201710196786.2

文献号 : CN107241605B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 岛田智史数井君彦小山纯平中川章

申请人 : 富士通株式会社

摘要 :

一种用于对图像的多个划分块中的每个执行视频编码处理的视频编码器和视频编码方法,视频编码器包括:并行编码处理部,产生包括块行中所包含的块的量化正交变换系数的编码数据;并行QP预测部,计算所述块行中所包含的块的量化参数的预测值;以及并行熵编码处理部,利用所述编码数据和所述预测值,对所述块行中所包含的块进行熵编码,其中,并行QP预测部执行预测值计算处理,以使得与第K块行中的处理块并行地处理的第K–1块行中的处理块比第K块行中的处理块在水平位置上在前至少一个块,并行编码处理部基于所计算的量化参数的预测值来确定块的量化参数。

权利要求 :

1.一种用于对图像的多个划分块中的每个执行视频编码处理的视频编码器,所述视频编码器包括:

并行编码处理部,所述并行编码处理部配置成产生包括块行中所包含的块的量化正交变换系数的编码数据,所述块行中的每个块行中的块的编码数据与所述块行中相应一个块行中的块的编码数据并行地产生,所述块行中的每个块行均表示块的阵列;

并行QP预测部,所述并行QP预测部配置成计算所述块行中所包含的块的量化参数的预测值,所述块行中的每个块行中的块的预测值与所述块行中相应一个块行中的块的预测值并行地计算;以及并行熵编码处理部,所述并行熵编码处理部配置成利用所述编码数据和所述量化参数的预测值,对所述块行中所包含的块进行熵编码,所述块行中的每个块行中的块与所述块行中相应一个块行中的块并行地熵编码,其中,当对N个块行并行地执行预测值计算处理,并且N的值是2或更大值时,所述并行QP预测部执行预测值计算处理,以使得与第K块行中的处理块并行地处理的第K–1块行中的处理块比所述第K块行中的处理块在水平位置上在前至少一个块;

当所述第K块行中的处理块在所述第K块行的开始处时,所述并行QP预测部利用针对所述第K块行中的处理块所属的片定义的量化参数来初始化紧邻在所述第K块行中的处理块之前处理的块的量化参数,并且基于初始化的所述量化参数来计算所述第K块行中的处理块的量化参数的预测值;

当所述第K块行中的处理块在所述第K块行的开始以外的位置时,所述并行QP预测部基于所述第K块行中已经被处理的块的量化参数来计算所述第K块行中的处理块的量化参数的预测值;以及所述并行编码处理部基于所计算的所述量化参数的预测值来确定所述块的量化参数。

2.一种由视频编码器执行的视频编码方法,所述视频编码器对图像的多个划分块中的每个执行视频编码处理,所述视频编码方法包括:产生包括块行中所包含的块的量化的正交变换系数的编码数据,所述块行中的每个块行中的块的编码数据与所述块行中相应一个块行中的块的编码数据并行地产生,所述块行的每个块行均表示块的阵列;

计算所述块行中所包含的块的量化参数的预测值,所述块行中的每个块行中的块的预测值与所述块行中相应一个块行中的块的预测值并行地计算;以及利用所述编码数据和所述量化参数的预测值,对所述块行中的每个块行所包含的块进行熵编码,所述块行中的每个块行中的块与所述块行中相应一个块行中的块并行地熵编码,其中,当对N个块行并行地执行预测值计算处理,并且N的值是2或更大值时,执行预测值计算处理,以使得与第K块行中的处理块并行地处理的第K–1块行中的处理块比所述第K块行中的处理块在水平位置上在前至少一个块;

当所述第K块行中的处理块在所述第K块行的开始处时,利用针对所述第K块行中的处理块所属的片定义的量化参数来初始化紧邻在所述第K块行中的处理块之前处理的块的量化参数,并且基于初始化的所述量化参数来计算所述第K块行中的处理块的量化参数的预测值;

当所述第K块行中的处理块在所述第K块行的开始以外的位置时,基于所述第K块行中已经被处理的块的量化参数来计算所述第K块行中的处理块的量化参数的预测值;以及基于所计算的所述量化参数的预测值来确定所述块的量化参数。

3.一种存储由视频编码器执行的视频编码程序的记录介质,所述视频编码器对图像的多个划分块中的每个执行视频编码处理,所述视频编码程序在由所述视频编码器执行时,实现包括以下步骤的过程:由处理器产生包括块行中所包含的块的量化的正交变换系数的编码数据,所述块行中的每个块行中的块的编码数据与所述块行中相应一个块行中的块的编码数据并行地产生,所述块行的每个块行均表示块的阵列;

计算所述块行中所包含的块的量化参数的预测值,所述块行中的每个块行中的块的预测值与所述块行中相应一个块行中的块的预测值并行地计算;以及利用所述编码数据和所述量化参数的预测值,对所述块行中所包含的块进行熵编码,所述块行中的每个块行中的块与所述块行中相应一个块行中的块并行地熵编码,其中,当对N个块行并行地执行预测值计算处理,并且N的值是2或更大值时,执行预测值计算处理,以使得与第K块行中的处理块并行地处理的第K–1块行中的处理块比所述第K块行中的处理块在水平位置上在前至少一个块;

当所述第K块行中的处理块在所述第K块行的开始处时,利用针对所述第K块行中的处理块所属的片定义的量化参数来初始化紧邻在所述第K块行中的处理块之前处理的块的量化参数,并且基于初始化的所述量化参数来计算所述第K块行中的处理块的量化参数的预测值;

当所述第K块行中的处理块在所述第K块行的开始以外的位置时,基于所述第K块行中已经被处理的块的量化参数来计算所述第K块行中的处理块的量化参数的预测值;以及基于所计算的所述量化参数的预测值来确定所述块的量化参数。

说明书 :

视频编码器以及视频编码方法

[0001] 本发明申请为申请日为2013年1月16日并于2014年7月18日进入中国国家阶段的发明名称为“视频解码器、视频编码器、视频解码方法以及视频编码方法”的第201380005990.1号发明专利申请的分案申请。

技术领域

[0002] 本文所讨论的实施方式涉及视频解码器、视频编码器、视频解码方法以及视频编码方法。

背景技术

[0003] 近来的视频编码技术涉及将图像划分成块、对每个块中所包含的像素进行预测以及对预测差异进行编码以实现高压缩率。在该技术中,用于根据经历编码的画面内的像素来形成预测像素的预测模式称为“帧内预测”,用于根据称为“运动补偿”的在先编码的参考图像来形成预测像素的预测模式称为“帧间预测”。
[0004] 在视频编码器中,帧间预测用包括二维坐标数据(包括水平分量和竖直分量)的运动矢量来表示称为预测像素的区域,并且对运动矢量和像素的预测差异数据进行编码。为了抑制运动矢量的编码量,根据与经历编码的块相邻的块的运动矢量来产生预测矢量,并且对运动矢量与预测矢量之间的差异矢量进行编码。
[0005] 在动态图像专家组(MPEG)-4AVC/H.264(下文中还称为“H.264”)中,其是典型由高效视频编码(HEVC)表示的当前配置视频编码标准,将地址以光栅顺序分配给所划分的块中的每个,并且块的处理顺序与地址顺序相符。
[0006] 在视频编码-解码过程中,通常每秒处理大量的像素。特别地,运动补偿或正交变换会需要较高的计算性能,因此,优选的会是视频编码或解码过程执行并行处理。在视频编码中,在用于以与上述预测矢量的计算类似的方式根据经历编码的块周边的块来计算各种预测值的块之间存在依赖关系。因此,对块执行并行处理会有困难。
[0007] 在不影响处理顺序或块之间的依赖关系的情况下对块实施并行处理的方法可包括:例如通过与块行相对应地移动每个处理块(processing block)的水平位置来执行并行处理。
[0008] 在以下描述中,这样的并行处理称为“并行块行处理”。接下来,描述对应于两个块行来执行并行块行处理的情况。
[0009] 为了执行并行块行处理,视频处理设备包括单元1和单元2,两者中的每个均配置成独立地处理相应块行。例如,单元1可配置成对奇数块行进行处理,单元2可配置成对偶数块行进行处理。
[0010] 图1是示出了并行块行处理的示例的示意图。如图1中所示,根据单元2所处理的第二块行中的块的水平地址,将单元1所处理的第一块行中块的水平地址移动两个或更多个块。
[0011] 因此,当专注于单元2所处理的处理块X时,在处理块X左侧的块A是已对其执行了处理的已处理块。类似地,单元1所处理的块B、块C以及块D是已处理块。块B在处理块X的左上侧,块C在处理块X的上方,块D在处理块X的右上侧。块X可以利用这些已处理块的编码结果。
[0012] 例如,对偶数块行的处理能够无需等到对奇数块行的处理结束就开始,因此,处理块X能够实施与处理诸如运动预测或正交变换相关联的并行处理。在上面的示例中,描述了两个块行的并行处理;然而,并行处理的实施并不限于两个块行的并行处理。在对N个块线进行并行处理的情况下,在视频处理设备中,可将N个单元分配给N个块行。
[0013] 注意,当并行块行处理作为程序来执行时,处理单元可以是线程或中央处理器(CPU)。
[0014] 根据H.264,可通过以基于标准规范处理块的顺序来处理一系列输出位,来执行熵编码。因此,视频处理设备临时存储前述并行块行处理的结果,并且熵编码器以基于标准规范处理块的顺序,对所存储的结果进行编码。
[0015] 通过对比,HEVC公开了用于在块行之间插入一系列输出位的技术。图2是示出了由HEVC中的熵处理部所执行的并行块行处理的示例的示意图。如图2中所示,可通过块行之间的并行处理来执行熵编码或解码。
[0016] 相关现有技术文献:
[0017] 非专利文献1:“ISO/IEC 14496-10(MPEG-4 Part 10)/ITU-T Rec.H.264”;
[0018] 非专利文献2:“Thomas Wiegand、Woo-Jin Han、Benjamin Bross、Jens-Rainer Ohm、Gary J.Sullivan、“Working Draft 5 of High-Efficiency Video Coding”JCTVC-G1103,JCT-VC 7th Meeting,December,2011.”;
[0019] 非专利文献3:“HEVC  reference  software  HM  5.0  https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/HM-5.0/”;
[0020] 非专利文献4:“MPEG-2,Test Model 5(TM 5),Doc.ISO/IEC JTC1/SC29/WG11/N0400,Test Model Editing Committee,April 1993.”。
[0021] 在混合编码系统中,其是通过H.264或HEVC所表示的运动补偿和正交变换(例如,离散余弦变换(DCT))的组合,通过将图像划分成块、产生块的预测像素并且对原始像素与预测像素之间的差异像素执行诸如DCT的正交变换以量化正交变换的输出系数,来实现压缩。
[0022] 在此混合系统中,准备了调节量化的精确性的量化参数(QP,quantization parameter),针对每个块对QP值进行编码,从而控制信息的量。
[0023] 然而,在块中的所有量化变换系数都是0的情况下,反量化的结果也都是0。因此,对于解码处理,可不需要QP值。在这种情况下,QP值是失效,并且不作为结果来编码。
[0024] 在每个块中产生QP值的预测值(下文中,称为“QP预测值”)。因此,当处理块的QP值失效时,将每个块的QP值设置为QP预测值。作为用于确定每个块的QP值的方法,在非专利文献4中所公开的TM 5中所利用的算法在本领域中是已知的。
[0025] 用于根据H.264或HEVC对QP值进行编码的方法包括对处理块的QP值与QP预测值之间的差异值QP_DELTA进行编码。例如,QP预测值可以是QP值QP_prev,其是光栅顺序中处理块的前一块的QP值。QP_DELTA可以通过下列公式(1)来计算。
[0026] QP_DELTA=QP–QP_prev……………(1)
[0027] 视频解码器配置成对由视频编码器熵编码的QP_DELTA进行解码,以通过下列公式(2)恢复QP值。
[0028] QP=QP_DELTA+QP_prev……………(2)
[0029] 当正处理画面的处理块(例如第一块)不存在前一块时,QP_prev可以是在第一块的处理之前确定的值。例如,根据H.264,画面的第一块的QP_prep分配有在称为“片(Slice)”的报头信息中描述的片QP值。
[0030] 此外,根据H.264或HEVC,可利用每个块的QP值来确定去块滤波器的滤波强度而不是正交变换的量化。不将失效的QP报告至视频解码器。因此,可将具有失效的QP的块的QP值处理为QP_prev。
[0031] 这里,关注在并行块行处理中的第(K–1)个块行和第K个块行。当在开始第K个块行的处理时处理第K个块行中的第一块X时,在第K个块行中的约两个块已在第(K–1)个块行之前被处理。第K个块行的第一块之前的块对应于第(K–1)个块行的最后一块。因此,在开始第K个块行的处理时,块Y的处理还没有完成。
[0032] 因此,当处理块X时,未确定QP_prev。由于没有确定块X的QP_prev,所以未确定块X之后的块的QP_prev。
[0033] 因此,不是在块行之间并行计算而是顺序计算QP预测值。图3A和图3B均是示出了执行相关技术并行块行处理的相关技术视频处理设备的示意性配置的框图。
[0034] 更具体地,图3A是示出了执行并行块行处理的相关技术编码器的示意性配置的框图。图3B是示出了执行并行块行处理的相关技术解码器的示意性配置的框图。
[0035] 如图3A和图3B中所示,在相关技术视频处理设备中,被配置为计算QP预测值的QP预测部会是瓶颈。
[0036] 图4A是示出了在QP预测处理中的并行块行处理的示例的示意图。在图4A示出的示例中,并行地处理第一块行和第二块行。在这种情况下,当X表示第二块行的处理块时,块X的QP预测值的计算需要等待,直到块Y的处理完成。即,除非完成了对第一块行的处理,否则不开始对第二块行的处理。
[0037] 图4B是示出了在QP预测处理中的并行块行处理的另一示例的示意图。如图4B中所示,当块Y的处理已完成时,第二块行的处理开始。
[0038] 图4C是示出了在QP预测处理中的并行块行处理的又一示例的示意图。在图4C所示的示例中,已在处理第一块行的QP预测部会需要等待,直到对块V的处理完成,以计算在第三块行中的块W的QP值。
[0039] 也就是说,除非完成了对第二块行的处理,否则不开始对第三块行的处理。因此,为了开始第K个块行,需要完成对第(K–1)个块行的处理,因此,在相关现有技术中可串行地计算QP值。
[0040] 当并行地执行编码处理并且对QP预测部进行串行处理时,需要考虑下列几点。例如,由于没有确定块X的QP_prev,所以在第K个块行的第一块不计算QP_DELTA,并且直到对块Y的处理完成才开始对块X的熵处理。
[0041] 因此,由于延迟了熵处理的开始,所以会增加用于存储编码处理部所产生的结果的缓冲器大小。此外,不会开始对去块滤波器的处理。
[0042] 类似地,视频解码器中的并行块行处理可考虑如下。根据HEVC,可在块行之间并行地执行熵处理。类似于第一示例,关注第(K–1)个块行和第K个块行,并且考虑第K个块行的第一块X的QP恢复处理。在这种情况下,在块X的QP_DELTA被解码时,块Y的QP_DELTA尚待解码,因此,将不恢复块Y的QP值。
[0043] 由于块X的QP预测值QP_prev对应于块Y的QP值,所以将不计算块X的QP_prev。结果,将不恢复块X的QP值。因此,会串行地执行各块的QP预测值,这会在与视频编码器类似方式的并行处理中导致瓶颈。

发明内容

[0044] 因此,下面所公开的技术能够对QP预测值的计算处理实现并行处理,这会改善并行块行处理的效率。
[0045] 根据实施方式的一个方面,提供了一种用于对用视频编码系统进行编码的流进行解码的视频解码器,其中通过对多个划分块的图像进行编码来获得编码流。该视频编码器包括:并行熵解码部,所述并行熵解码部配置成对块行中所包含的块的流进行熵解码,所述块行中每个块行中的块的流与所述块行中相应的一个块行中的块的流被并行地熵解码,所述块行中的每个块行表示块的阵列;并行QP预测部,所述并行QP预测部配置成计算所述块行中所包含的块的量化参数的预测值,所述块行中的每个块行中的块的预测值与所述块行中相应的一个块行中的块的预测值并行地计算;以及并行解码处理部,所述并行解码处理部配置成对于所述块行中所包含的块产生解码像素,关于所述块行中的每个块行中的块的解码像素与关于所述块行中相应的一个块行中的块的解码像素并行地产生,通过利用由所述并行熵解码部所解码的数据和所述并行QP预测部所计算的预测值,对所述解码像素中的每一个进行解码。在该视频编码器中,当所述并行QP预测部以N个块行为单位并行地执行预测值计算处理,并且N的值是2或更大值时,所述并行QP预测部对第(K–1)块行中的处理块执行预测值计算处理,所述第(K–1)块行中的处理块比第K块行中的处理块在水平位置上在前至少一个块,从而在并行处理中通过参考与在所述第(K–1)块行中的处理块相对应的、在所述第K块行中已处理的块,计算在所述第(K–1)块行中的处理块的预测值。
[0046] 根据实施方式的一个方面,提供了一种用于对图像的多个划分块中的每个执行视频编码处理的视频编码器,所述视频编码器包括:并行编码处理部,该并行编码处理部配置成产生包括块行中所包含的块的量化正交变换系数的编码数据,所述块行中的每个块行中的块的编码数据与所述块行中相应一个块行中的块的编码数据并行地产生,所述块行中的每个块行均表示块的阵列;并行QP预测部,该并行QP预测部配置成计算所述块行中所包含的块的量化参数的预测值,所述块行中的每个块行中的块的预测值与所述块行中相应一个块行中的块的预测值并行地计算;以及并行熵编码处理部,该并行熵编码处理部配置成利用所述编码数据和所述预测值,对所述块行中所包含的块进行熵编码,所述块行中的每个块行中的块与所述块行中相应一个块行中的块并行地熵编码,其中,当对N个块行并行地执行预测值计算处理,并且N的值是2或更大值时,所述并行QP预测部执行预测值计算处理,以使得与第K块行中的处理块并行地处理的所述第(K–1)块行中的处理块比所述第K块行中的处理块在水平位置上在前至少一个块;当所述第K块行中的处理块在所述第K块行的开始处时,所述并行QP预测部利用针对所述第K块行中的处理块所属的片定义的量化参数来初始化紧邻在所述第K块行中的处理块之前处理的块的量化参数,并且基于初始化的所述量化参数来计算所述第K块行中的处理块的量化参数的预测值;当所述第K块行中的处理块在所述第K块行的开始以外的位置时,所述并行QP预测部基于所述第K块行中已经被处理的块的量化参数来计算所述第K块行中的处理块的量化参数的预测值;以及所述并行编码处理部基于所计算的所述量化参数的预测值来确定所述块的量化参数。
[0047] 根据实施方式的一个方面,提供了一种由视频编码器执行的视频编码方法,所述视频编码器对图像的多个划分块中的每个执行视频编码处理,所述视频编码方法包括:产生包括块行中所包含的块的量化的正交变换系数的编码数据,所述块行中的每个块行中的块的编码数据与所述块行中相应一个块行中的块的编码数据并行地产生,所述块行的每个块行均表示块的阵列;计算所述块行中所包含的块的量化参数的预测值,所述块行中的每个块行中的块的预测值与所述块行中相应一个块行中的块的预测值并行地计算;以及利用所述编码数据和所述预测值,对所述块行中的每个块行所包含的块进行熵编码,所述块行中的每个块行中的块与所述块行中相应一个块行中的块并行地熵编码,其中,当对N个块行并行地执行预测值计算处理,并且N的值是2或更大值时,执行预测值计算处理,以使得与第K块行中的处理块并行地处理的所述第(K–1)块行中的处理块比所述第K块行中的处理块在水平位置上在前至少一个块;当所述第K块行中的处理块在所述第K块行的开始处时,利用针对所述第K块行中的处理块所属的片定义的量化参数来初始化紧邻在所述第K块行中的处理块之前处理的块的量化参数,并且基于初始化的所述量化参数来计算所述第K块行中的处理块的量化参数的预测值;当所述第K块行中的处理块在所述第K块行的开始以外的位置时,基于所述第K块行中已经被处理的块的量化参数来计算所述第K块行中的处理块的量化参数的预测值;以及基于所计算的所述量化参数的预测值来确定所述块的量化参数。
[0048] 根据实施方式的一个方面,提供了一种存储由视频编码器执行的视频编码程序的记录介质,所述视频编码器对图像的多个划分块中的每个执行视频编码处理,所述视频编码程序在由所述视频编码器执行时,实现包括以下步骤的过程:由处理器产生包括块行中所包含的块的量化的正交变换系数的编码数据,所述块行中的每个块行中的块的编码数据与所述块行中相应一个块行中的块的编码数据并行地产生,所述块行的每个块行均表示块的阵列;计算所述块行中所包含的块的量化参数的预测值,所述块行中的每个块行中的块的预测值与所述块行中相应一个块行中的块的预测值并行地计算;以及利用所述编码数据和所述预测值,对所述块行中所包含的块进行熵编码,所述块行中的每个块行中的块与所述块行中相应一个块行中的块并行地熵编码,其中,当对N个块行并行地执行预测值计算处理,并且N的值是2或更大值时,执行预测值计算处理,以使得与第K块行中的处理块并行地处理的所述第K–1块行中的处理块比所述第K块行中的处理块在水平位置上在前至少一个块;当所述第K块行中的处理块在所述第K块行的开始处时,利用针对所述第K块行中的处理块所属的片定义的量化参数来初始化紧邻在所述第K块行中的处理块之前处理的块的量化参数,并且基于初始化的所述量化参数来计算所述第K块行中的处理块的量化参数的预测值;当所述第K块行中的处理块在所述第K块行的开始以外的位置时,基于所述第K块行中已经被处理的块的量化参数来计算所述第K块行中的处理块的量化参数的预测值;以及基于所计算的所述量化参数的预测值来确定所述块的量化参数。
[0049] 借助于在所附权利要求中具体指出的要素和组合,将实现并且达到本发明的目的和优点。
[0050] 应理解的是,前面的一般描述和下面的详细描述是示例性的和解释性的,并且不是对本发明的限制。
[0051] 实施方式的其他目的和优点将在下面的描述中部分地给出,其一部分将根据该描述而变得明显,或者可通过对本发明的实践来认识到。

附图说明

[0052] 图1是示出了并行块行处理的示例的示意图;
[0053] 图2是示出了根据HEVC的熵处理部的并行块行处理的示例的示意图;
[0054] 图3A是示出了执行并行块行处理的相关技术编码器的示意性配置的框图;
[0055] 图3B是示出了执行并行块行处理的相关技术解码器的示意性配置的框图;
[0056] 图4A是示出了在QP预测处理中的块行并行处理的示例的示意图;
[0057] 图4B是示出了在QP预测处理中的块行并行处理的另一示例的示意图;
[0058] 图4C是示出了在QP预测处理中的块行并行处理的又一示例的示意图;
[0059] 图5是示出了根据第一实施方式的视频解码器的配置示例的框图;
[0060] 图6是示出了根据第一实施方式的视频解码器的并行解码部的各部件的配置示例的框图;
[0061] 图7是示出了根据第一实施方式的视频解码器的解码处理部的配置示例的框图;
[0062] 图8是示出了在N=3的情况下在并行QP预测处理中的可用块的示例的框图;
[0063] 图9是示出了根据第一实施方式的视频解码器的QP预测部的配置示例的框图;
[0064] 图10A是示出了根据第一实施方式的视频解码器中的QP预测处理的示例的示意图;
[0065] 图10B是示出了根据第一实施方式的视频解码器中的QP预测处理的另一示例的示意图;
[0066] 图11是示出了根据第一实施方式的视频解码器的块解码处理的示例的流程图;
[0067] 图12是示出了根据第二实施方式的视频编码器的配置示例的框图;
[0068] 图13是示出了根据第二实施方式的视频编码器的并行编码部的各部件的配置示例的框图;
[0069] 图14是示出了根据第二实施方式的视频编码器的编码处理部的配置示例的框图;
[0070] 图15是示出了根据第二实施方式的视频编码器的QP预测部的配置示例的框图;
[0071] 图16是示出了根据第二实施方式的视频编码器中的块编码处理的示例的流程图;以及
[0072] 图17是示出了根据第三实施方式的视频处理设备的配置示例的框图。

具体实施方式

[0073] 下面,将参考附图来描述优选实施方式。注意,视频中所包含的图像(画面)可以是帧和场中的任意一个。帧是视频数据的静止图像中的一个,场是通过获取来自帧的奇数行或偶数行中的数据而获得的静止图像。
[0074] 此外,经历处理的视频可以是彩色视频或黑白视频。
[0075] 第一实施方式
[0076] 配置
[0077] 图5是示出了根据第一实施方式的视频解码器的配置示例的框图。在图5所示的示例中,视频解码器10包括并行解码部101和解码像素存储部105。并行解码部101包括并行熵解码部102、并行QP预测部103以及并行解码处理部104。
[0078] 注意,视频解码器10配置成并行地处理N个块行。还要注意,“块行”指图像内水平方向上的块的阵列。
[0079] 并行解码部101的各部件配置成对每个块行的相同块执行处理。此外,在第(K–1)个块行中的处理块的水平位置配置成在第K个块行中的处理块的水平位置之前两个或更多个块处。
[0080] 这样做会是因为即使在对块行进行并行解码时,关于处理块的上部块和右上块的解码信息也可以通过在块行之间移动两个或更多个块来获得(得到)。当仅得到(利用)上部块的解码信息时,块行之间的水平位置的移动量可以是一个块。在下文中,“上部块”表示在处理块上方的一个块,“右上块”表示在处理块上方的块的右侧紧邻的块。
[0081] 并行解码部101配置成对编码流进行解码,其中通过利用视频编码系统对被划分成多个块的图像进行编码来获得该编码流。并行解码部101可以例如以并行的N个块行为单位,对编码流进行解码。将每个块行中的每个块解码出的每个像素输出至解码像素存储部105。被解码的像素称为“已解码像素”。
[0082] 并行熵解码部102配置成将输入流划分成块行,并且对块行中所包含的流的块进行并行熵解码。并行熵解码部102将经熵解码的数据输出至并行解码处理部104。
[0083] 并行QP预测部103配置成计算相应的一个块行中所包含的块中的每个块的量化参数(QP)的预测值(QP预测值)并对块行中所包含的块并行地执行计算处理。将计算的QP预测值输出至并行解码处理部104。
[0084] 并行解码处理部104配置成在并行地产生各块行的解码像素时,产生相应的一个块行中所包含的块中的每个块所对应的解码像素。通过利用并行熵解码部102所解码的数据和并行QP预测部103所计算的QP预测值,对每个解码像素进行解码。将所产生的解码像素输出至解码像素存储部105。
[0085] 解码像素存储部105配置成存储从并行解码部101输出的块的解码像素。每个图像单元所聚集的解码像素可形成图像(画面)。解码像素存储部105将用于一个画面的解码处理完成时输出的解码图像进行存储。
[0086] 并行解码部
[0087] 接下来,描述并行解码部101。图6是示出了根据第一实施方式的视频解码器中的并行解码部101的各部件的配置示例的框图。在图6所示的示例中,并行熵解码部102包括第一熵解码部221、第二熵解码部222、以及第N熵解码部223。
[0088] 在图6所示的示例中,并行QP预测部103包括第一QP预测部231、第二QP预测部232、以及第N QP预测部233。在图6所示的示例中,并行解码处理部104包括第一解码处理部241、第二解码处理部242、第N解码处理部243以及块信息存储部244。
[0089] 注意,当L=1至N时,第L熵解码部、第L QP预测部以及第L解码部配置成对块行中的同一块行执行处理。在下面的描述中,将第L熵解码部、第L QP预测部以及第L解码部总称为“块行解码处理部”。例如,块行解码处理部201包括第一熵解码部221、第一QP预测部231以及第一解码处理部241。
[0090] 当块行解码处理部201已处理了第K个块行时,块行解码处理部201随后处理第(K+N)个块行。
[0091] 并行熵解码部102配置成将输入流划分成块行。熵解码部221至223对从该流划分的块行以每单位N个块行并行地进行熵解码。熵解码部221至223配置成执行与在视频编码器中的熵编码处理相对应的熵解码处理。
[0092] 解码处理部241至243配置成并行地执行解码处理。图7是示出了根据第一实施方式的视频解码器中的解码处理部的示例的框图。由于解码处理部241至243配置成执行类似处理,所以在下面的描述中将解码处理部241用作解码处理部的示例。
[0093] 第一解码处理部241包括QP值恢复部301、反量化部302、反正交变换部303、运动矢量恢复部304、预测像素产生部305以及解码像素产生部306。
[0094] QP值恢复部301配置成利用从稍后描述的第一QP预测部231输入的QP预测值和从第一熵解码部221输入的QP差异值来恢复QP值(例如,参见前面的公式(2))。将所恢复的QP值输出至反量化部302。
[0095] 反量化部302配置成通过将恢复的QP值乘以正交变换系数来执行反量化。将反量化的正交变换系数输出至反正交变换部303。
[0096] 反正交变换部303配置成对从反量化部302输入的正交变换系数执行反正交变换,以产生预测误差像素。所产生的预测误差像素输出至解码像素产生部306。
[0097] 运动矢量恢复部304配置成从块信息存储部244获取关于处理块周边的块的运动矢量信息,以计算预测矢量。运动矢量恢复部304配置成将预测矢量与从第一熵解码部221输入的差异矢量相加,以恢复运动矢量。将恢复的运动矢量输出至预测像素产生部305。
[0098] 预测像素产生部305配置成从存储之前解码的画面的解码像素存储部105获取通过由运动矢量指示的参考画面的像素数据,以产生预测像素。所产生的预测像素输出至解码像素产生部306。
[0099] 解码像素产生部306配置成将从预测像素产生部305输入的预测像素与从反正交变换部303输入的预测误差像素相加,以产生解码像素。所产生的解码像素存储在解码像素存储部105中。
[0100] 接下来,描述由每个QP预测部所执行的处理。首先,描述每个QP处理部所执行的预测处理中所利用的可用(可得到的)块。图8是示出了在N=3的情况下在并行QP预测处理中所利用的可用块的示例的框图。在图8所示的示例中,当N=3指示N个块行时,对N个块行并行执行QP预测处理,并且在N个块行的每个块行中将处理延迟两个块。
[0101] 在这种情况下,对应于处理块X的可用块是图8中所示的阴影块。当处理块X经历处理时,图8中的阴影块指示已处理的块;也就是说,图8中的阴影块指示可用(可得到的)块。在图8中,通过粗框指示的块描绘了经历处理的块(下文中还称为“处理块”)。每个QP预测部配置成通过参考可用块(已处理的块)来计算处理块的QP预测值。下面,进一步详细描述QP预测值的计算。
[0102] 图9是示出了根据第一实施方式的视频解码器中的QP预测部的配置示例的框图。由于QP预测部231至233被配置成执行类似处理,所以在下面的描述中将第一QP预测部231用作QP预测部的示例。
[0103] 在图9中,第一QP预测部231包括前一QP存储部401、QP选择部402以及上部QP获取部403。
[0104] 前一QP存储部401配置成从QP值恢复部301接收在当前处理块之前刚处理完的块的QP值,并存储所接收的QP值。在开始画面处理时,将前一QP存储部401所存储的QP值初始化。
[0105] 例如,前一QP存储部401所存储的QP值用通过片报头信息编码的片QP值以与H.264类似的方式来初始化。片是与一个画面相关联的块的划分组的单元。
[0106] 上部QP获取部403可以例如从块信息存储部244获取位于处理块上方的块的QP值。
[0107] QP选择部402配置成选择从前一QP存储部401和上部QP获取部403输出的QP值中的一个,以将所选的QP值作为QP预测值输出至QP值恢复部301。
[0108] 例如,当处理块是块行中的块中的第一块(头部)时,QP选择部402选择从上部QP获取部403输出的QP值,而当处理块是块行中不同于第一块的任意一个块时,QP选择部402选择从前一QP存储部401输出的QP值。QP选择部402将所选择的QP值作为QP预测值输出至QP值恢复部301。
[0109] 接下来,参考相应的附图描述在上面的示例中的QP值的预测(选择)。图10A是示出了根据第一实施方式的视频解码器中的QP预测处理的示例的示意图。在图10A所示的示例中,当处理块X表示经历处理的块,并且处理块X是块行中的块中的第一块(头部)时,QP选择部402选择上部块A的QP值。
[0110] 图10B是示出了根据第一实施方式的视频解码器中的QP预测处理的另一示例的示意图。如图10B所示,当处理块X是块行中不同于第一块的块中的一个时,QP选择部402选择处理块X之前刚处理完的块B的QP值。
[0111] 注意,在这种情况下,接近处理块X的块的QP值用作QP预测值。因此,相比于以光栅顺序选择(利用)处理块X之前刚处理完的块的QP值的情况,QP值的预测效率不会降低。
[0112] 在上面的示例中,当处理块不是第一块时,通过利用处理块X之前刚处理完的块的QP值来产生QP预测值。然而,当根据与处理块相邻的块来预测QP值时,可通过其他方法来产生QP值。
[0113] 此外,QP选择部402的处理可以如下。当经历处理的块行是第二块行至第N块行时,由前一QP存储部401所存储的QP值是片QP值,该每个片QP值通过片单元来确定。因此,当将片QP值用作每个块的QP预测值时,预测效率会相对较低。
[0114] 因此,当处理块是第二块行至第N块行中的块中的第一个块时,QP选择部402可选择由上部QP获取部403所获取的QP值,而当处理块是第二块行至第N块行中不同于第一块的块中的任意一个时,QP选择部402可选择由前一QP存储部401所保持的QP值。
[0115] 此外,当处理块是第(N+1)个块行之后的块行中的块中的第一块时,QP选择部402可选择由前一QP存储部401所保持的QP值。在这种情况下,前一QP存储部401所保持的QP值对应于处理块上方N个块所在的块行中的块中的最后一个(最后块)的QP值。
[0116] 第K个块行和第(K+N)个块行由相同的解码处理部、相同的QP预测部以及相同的熵解码部来处理。因此,第K个块行中的处理块之前刚处理完的块对应于第(K–N)个块行的最后块。
[0117] 此外,当处理块是块行中的块中的第一个时,QP选择部402可配置成不变地选择前一QP存储部401中所存储的QP值。此外,当处理块是第一块行至第N块行中的一个块行中的块中的第一块时,QP选择部402可配置成将片QP值选择为QP预测值。
[0118] 在这种情况下,可选择处理块上方N个块所在的块行中的块中的最后一个(最后块)的QP值作为第(N+1)个块行中的第一块的QP预测值。
[0119] 通过上面的配置,对应于块行,对量化参数的预测值的计算过程可并行地执行。
[0120] 操作
[0121] 接下来,描述根据第一实施方式的视频解码器10的操作。图11是示出了第一实施方式中的块解码处理的示例的流程图。注意,图11中所示的块解码处理对应于在一个块上执行的解码处理。
[0122] 在步骤S101中,每个熵解码部对编码信息(例如每个块的差异运动矢量、QP差异值以及量化正交变换系数)进行熵解码。将熵解码信息输出至对应于熵处理部的解码处理部。
[0123] 在步骤S102中,运动矢量恢复部304从块信息存储部244获取关于处理块周边的块的运动矢量信息,以计算预测矢量。
[0124] 在步骤S103中,运动矢量恢复部304将差异运动矢量与预测矢量相加,以恢复运动矢量。将恢复的运动矢量信息存储在块信息存储部244中。
[0125] 在步骤S104中,预测像素产生部305从存储之前所解码的画面的解码像素存储部105获取由运动矢量所指示的参考画面的像素数据,以产生预测像素。
[0126] 在步骤S105中,每个QP预测部均产生一个相应块的QP预测值,以将所产生的QP预测值输入到QP值恢复部301中。
[0127] 在步骤S106中,QP值恢复部301基于相应的输入QP预测值和差异值来恢复每个QP值。QP值被存储在块信息存储部244中,并被提供至反量化部302。当将处理块上方的块的QP值和之前由块行解码处理部201所处理的已处理块的QP值之中的一个应用于QP预测值时,可无需延迟(延缓)QP预测值的产生。结果,可改善并行处理的效率。
[0128] 在步骤S107中,反量化部302将量化的正交变换系数与QP值相乘。
[0129] 在步骤S108中,反正交变换部303对量化的正交变换系数执行反正交变换,以产生预测误差像素。
[0130] 在步骤S109中,解码像素产生部306将预测误差像素与预测像素相加,以产生解码像素。
[0131] 在步骤S110中,解码像素存储部105存储解码像素。前述步骤是对块(处理块)的解码处理的结束,其开始了对后续块的接下来的解码处理。当对一个画面中所包含的所有块的解码处理完成时,可将解码像素存储部105中所存储的解码图像例如显示在诸如显示器的显示部上。
[0132] 如上所述,在根据第一实施方式的视频解码器中,可并行地执行对QP预测值的计算,这可以改善并行块行处理的效率。
[0133] 第二实施方式
[0134] 接下来,描述根据第二实施方式的视频编码器。在根据第二实施方式的视频编码器中,对应于根据第一实施方式的视频解码器,可以多个块行为单位并行执行QP预测处理。
[0135] 配置
[0136] 图12是示出了根据第二实施方式的视频编码器50的配置示例的框图。在图12所示的示例中,视频编码器50包括并行编码部501和解码像素存储部505。并行解码部501包括并行编码处理部502、并行QP预测部503以及并行熵编码部504。注意,视频编码器50配置成并行地处理N个块行。
[0137] 并行编码部501的各部件配置成对每个块行的相同块执行处理。此外,第(K–1)个块行的处理块的水平位置配置成在第K个块行的处理块的水平位置之前两个或更多个块处。
[0138] 这会是因为即使在对块行进行并行编码时,关于处理块的上部块和右上块的编码信息也可通过在块行之间移动两个或更多个块来获得(得到)。当得到(利用)上部块的信息时,块行之间的水平位置的移动量可以是一个块。
[0139] 并行编码部501配置成将图像划分成多个块,并且利用视频编码系统将划分的块以例如N个块行并行地编码。由并行编码部501进行本地解码的解码像素存储在解码像素存储部505中。
[0140] 并行编码处理部502配置成在并行地处理块行时,为块行中所包含的每个块产生量化的正交变换系数和差异运动矢量信息。所产生的正交变换系数和差异矢量信息(也称为“编码数据”)输出至并行熵编码部504。用于量化的QP值输出至并行QP预测部503。
[0141] 并行QP预测部503配置成在对块行中所包含的块并行地执行计算处理时,计算在相应块行中所包含的每个块的量化参数(QP)的预测值(QP预测值)。将所计算的QP预测值输出至并行熵编码部504。
[0142] 并行熵编码部504在对块行中所包含的块并行地执行熵编码处理时,利用量化的正交变换系数、作为QP值与QP预测值之间的差的QP差异值、差异移动矢量信息等,对相应块行中所包含的每个块进行熵编码。将由并行熵编码部504所编码的流输出至视频解码器10等。
[0143] 解码像素存储部505配置成存储通过对从并行编码部501输出的每个块进行本地解码而获得的解码像素。本地解码还可称为“在本地解码”。
[0144] 并行编码部
[0145] 接下来,描述并行编码部501。图13是示出了根据第二实施方式的视频编码器中的并行编码部501的各部件的配置示例的框图。在图13所示的示例中,并行编码处理部502包括第一编码处理部621、第二编码处理部622、第N编码处理部623以及块信息存储部624。
[0146] 在图13所示的示例中,并行QP预测部503包括第一QP预测部631、第二QP预测部632以及第N QP预测部633。在图13所示的示例中,并行熵编码部504包括第一熵编码部641、第二熵编码部642以及第N熵编码部643。
[0147] 注意,当L=1至N时,第L编码部、第L QP预测部以及第L熵编码部配置成对块行中的同一块行执行处理。在下面的描述中,第L编码部、第L QP预测部以及第L熵编码部总称为“块行编码处理部”。
[0148] 例如,块行编码处理部601包括第一编码部621、第一QP预测部631以及第一熵编码处理部641。
[0149] 当块行编码处理部601已对第K个块行执行了编码处理时,块行编码处理部601随后对第(K+N)个块行执行编码处理。
[0150] 并行熵编码部502配置成将输入图像划分成多个块行。编码处理部621至623配置成以图像所划分的块行(例如,在这种情况下,N个块行)为单位并行地执行编码处理。该编码处理可以是诸如H.264或HEVC的编码处理。
[0151] 图14是示出了根据第二实施方式的视频编码器中的编码处理部(例如,第一编码处理部621)的配置示例的框图。由于编码处理部621至623配置成执行类似的处理,所以在下面的描述中,将编码处理部621用作编码处理部的示例。
[0152] 第一编码处理部621包括预测差异部701、正交变换部702、量化部703、QP确定部704、反量化部705、反正交变换部706、解码像素产生部707、运动检测部708、预测信号产生部709以及差异矢量产生部710。
[0153] 运动检测部708配置成从解码像素存储部505获取参考画面的像素数据,以检测运动矢量。将检测到的运动矢量信息存储在块信息存储部624中,以用于接下来的编码。
[0154] 预测信号产生部709配置成从解码像素存储部505获取参考像素,以基于输入参考图像的区域位置信息产生预测像素信号。将所产生的预测像素信号输出至预测差异部701。
[0155] 差异矢量产生部710配置成产生预测矢量。可以如下方式获得预测矢量。从块信息存储部624获取位于处理块的左侧、上方以及右上侧的块的运动矢量,并且可将该三个运动矢量的中间值确定为预测矢量。
[0156] 如在上面的示例中所描述的,由于在水平方向上从在前的块行的处理块将每个块行的处理块移动两个块,所以已完成了对位于处理块上方的块和位于处理块的右上侧的块的编码处理。因此,差异矢量产生部710能够获取周边块的运动矢量。
[0157] 差异矢量产生部710配置成从运动检测部708获取处理块的运动矢量,以产生运动矢量与预测矢量之间的差异矢量。将所产生的差异矢量输出至第一熵编码部641。
[0158] 预测差异部701配置成计算原始图像与预测像素信号之间的差别,以产生预测误差信号。将所产生的预测误差信号输出至正交变换部702。
[0159] 正交变换部702配置成对预测误差信号执行例如离散余弦变换(DCT)的正交变换处理。将所获得的正交变换系数输出至量化部703。
[0160] 量化部703配置成基于量化参数(QP)来量化正交变换系数。量化方法的示例包括:将正交系数除以由QP所确定的值,并将所获得的结果四舍五入为最接近的整数。将量化的正交变换系数乘以QP值,以执行反量化。四舍五入处理会做出量化不可逆变换。将量化的正交变换系数输出至第一熵编码部641。
[0161] 量化部703配置成产生关于量化的正交变换系数是否全为“0”的标记信息,以将所产生的标记信息与用于量化的QP值一起输出至QP确定部704。将QP值输出至反量化部705和第一QP预测部631。
[0162] 第一QP预测部631配置成产生处理块的QP预测值。将所产生的QP预测值输出至QP确定部704以及第一熵编码部641。
[0163] 当将处理块上方的块的QP值和与第一QP预测部631相关联的块行编码处理部601之前所处理的已处理块的QP值之中的一个应用于QP预测值时,可无需延迟(延缓)QP预测值的产生。结果,可改善并行处理的效率。
[0164] QP确定部704配置成基于从量化部703输入的QP值以及预测值来确定处理块的QP。当正交变换系数全是“0”时,将不会对QP差异信息进行熵编码。因此,量化部703所利用的QP值将不被报告至解码器侧。结果,这样的QP值会失效。
[0165] 例如,QP确定部获取关于量化部703所产生的量化的正交变换系数是否全是“0”的标记信息。当QP确定部704获取了指示正交变换系数全是“0”的标记信息时,QP确定部704将QP预测值设置为处理块的QP值。当QP确定部704获取了指示正交变换系数全都不为“0”的标记信息时,QP确定部704将量化部703所利用的QP值设置为处理块的QP值。将QP确定部704所确定的QP值存储在块信息存储部624中。
[0166] 反量化部705配置成对量化的正交变换系数执行反量化处理。将反量化的正交系数输出至反正交变换部706。
[0167] 反正交变换部706配置成对量化的正交变换系数执行反正交变换。将反正交变换处理的信号输出至解码像素产生部707。
[0168] 解码像素产生部707配置成将从预测信号产生部709获取的预测像素信号加至反正交变换处理的信号,从而产生本地解码像素。将所产生的解码像素存储在解码像素存储部505中。
[0169] 接下来,描述每个QP预测部所执行的处理。图15是示出了根据第二实施方式的视频编码器中QP预测部的配置示例的框图。由于QP预测部631至633配置成执行类似的处理,所以在下面的描述中,将第一QP预测部631用作QP预测部的示例。
[0170] 在图15中,第一QP预测部631包括前一QP存储部801、QP选择部802以及上部QP获取部803。
[0171] 前一QP存储部801配置成从QP确定部704接收在当前处理块之前刚处理完的块的QP值,并且存储所接收的QP值。在开始画面处理时,将前一QP存储部801所存储的QP值初始化。
[0172] 例如,利用由片报头信息所编码的片QP值,以与H.264类似的方式,对前一QP存储部801所存储的QP值进行初始化。片是与一个画面相关联的块的划分组的单元。
[0173] 上部QP获取部803可以从块信息存储部624获取位于处理块上方的块的QP值。
[0174] QP选择部802配置成从前一QP存储部801和上部QP获取部803输出的QP值中选择一个,以将所选QP值作为QP预测值输出至QP确定部704或输出至第一熵编码部641。
[0175] 例如,当处理块是块行中的块中的第一块(头部)时,QP选择部802选择从上部QP获取部803输出的QP值,而当处理块是块行中不同于第一块的任意一个块时,QP选择部802选择从前一QP存储部801输出的QP值。QP选择部802将所选择的QP值作为QP预测值输出至QP确定部704或者输出至第一熵编码部641。
[0176] 在图10A和图10B中示出了对上面的示例中的QP值的预测(选择)。在这种情况下,邻近处理块X的块的QP值用作QP预测值。因此,相比于按光栅顺序利用(选择)处理块X前一个块的QP值的情况,QP值的预测效率不降低。
[0177] 在上面的示例中,当处理块不是第一块时,通过利用在处理块X之前刚处理完的块的QP值来产生QP预测值。然而,当根据与处理块相邻的块来预测QP值时,可通过其他方法来产生QP值。
[0178] 注意,以类似于根据第一实施方式的视频解码器10的方式,根据第二实施方式的视频编码器50中的QP选择部802的处理可以如下。当经历处理的块行是第二块行至第N块行时,前一QP存储部801所存储的QP值是片QP值,每个片QP值由片单元来确定。因此,当将片QP值用作每个块的QP预测值时,预测效率会相对较低。
[0179] 因此,当处理块是第二块行至第N块行中的块中的第一个块时,QP选择部802可选择上部QP获取部803所获取的QP值,而当处理块是第二块行至第N块行中不同于第一个块的任意一个块时,QP选择部802可选择前一QP存储部801所保持的QP值。
[0180] 此外,当处理块是第(N+1)个块行之后的块行中的块中的第一块时,QP选择部802可选择前一QP存储部801所保持的QP值。在这种情况下,前一QP存储部801所保持的QP值对应于处理块上方N个块所在的块行中的块中的最后一个(最后块)的QP值。
[0181] 第K个块行和第(K+N)个块行由相同的解码处理部、相同的QP预测部以及相同的熵解码部来处理。因此,第K个块行中处理块之前刚处理完的块对应于第(K–N)个块行的最后块。
[0182] 此外,当处理块是块行中的块中的第一块(头部)时,QP选择部802可配置成不变地选择在前一QP存储部801中所存储的QP值。此外,当处理块是第一块行至第N块行中的一行中的块中的第一块时,QP选择部802可配置成将片QP值选择为QP预测值。
[0183] 在这种情况下,可选择处理块上方N个块所在的块行中的块中的最后一个(最后块)的QP值作为第(N+1)个块行中的第一块的QP预测值。
[0184] 熵编码部641至643中的每一个对相应的一个块行中的每个块的差异运动矢量、QP差异值、量化的正交变换系数进行熵编码。
[0185] 通过上面的配置,可并行地执行与块行相对应的量化参数的预测值。
[0186] 操作
[0187] 接下来,描述根据第二实施方式的视频编码器50的操作。图16是示出了在第二实施方式中的块编码处理的示例的流程图。注意,图16中所示的块编码处理对应于对一个块执行的编码处理。
[0188] 在步骤S201中,将经历处理的块(即,处理块)输入至编码处理部621至623中的每一个中。运动检测部708配置成从解码像素存储部505获取参考画面的像素数据,以检测运动矢量。
[0189] 在步骤S202中,差异矢量产生部710产生所检测的运动矢量与所产生的预测矢量之间的差异矢量。
[0190] 在步骤S203中,运动检测部708将所检测的运动矢量存储在块信息存储部624中。
[0191] 在步骤S204中,预测信号产生部709获取运动检测部708所检测的运动矢量所参考的参考图像的区域位置信息,以产生预测像素信号。
[0192] 在步骤S205中,预测差异部701获取由预测信号产生部709所产生的预测像素信号与输入原始像素之间的差别,以产生预测误差信号。
[0193] 在步骤S206中,正交变换部702对预测误差信号执行正交变换,以产生正交变换系数。
[0194] 在步骤S207中,量化部703基于量化参数(QP)来量化正交变换系数。
[0195] 在步骤S208中,QP预测部631至633中的每一个均产生处理块的QP预测值。QP预测值可以是例如位于处理块上方的块的QP值,或者是与相应QP预测部相关联的块行编码处理部601在之前所处理的块的QP值。
[0196] 在步骤S209中,QP确定部704将处理块的QP值确定为从量化部703获取的QP值和从QP预测部获取的QP预测值中的一个。上面已描述了处理块的QP值的确定方法。
[0197] 在步骤S210中,每个熵编码部对量化的正交变换系数、QP差异值以及差异矢量进行编码。
[0198] 在步骤S211中,反量化部705和反正交变换部706对量化的正交变换系数分别执行反量化处理和反正交变换处理,以产生对应于预测误差信号的信号。
[0199] 在步骤S212中,解码像素产生部707将从预测信号产生部709获取的预测像素信号与从反正交变换部706获取的信号相加,以产生本地解码的像素。
[0200] 在步骤S213中,解码像素存储部505存储所产生的解码像素。前述步骤是对块(处理块)的编码处理的结束,其开始了对后续块的接下来的编码处理。
[0201] 如上所述,在根据第二实施方式的视频编码器中,可并行地执行QP预测值的计算,这可以改善并行块行处理的效率。
[0202] 第三实施方式
[0203] 图17是示出了根据第三实施方式的视频处理设备的配置示例的框图。根据第三实施方式的视频处理设备90可以是在前述实施方式中描述的视频编码器或视频解码器中的一个示例。如图17中所示,视频处理设备90包括控制器901、主存储部902、辅助存储部903、驱动设备904、网络IF部906、输入部907以及显示部908。前述部件经由总线相互连接,从而使得数据在这些部件之间相互传输和接收。
[0204] 控制器901用作对每个设备执行控制或者对计算机内的数据执行操作或处理的CPU。控制器901还用作能够执行主存储部902中所存储的计算机程序的运算单元,从而使得控制器901从输入部907或存储设备接收数据、对所接收的数据执行操作或处理并将结果数据输出至显示部908或存储设备。
[0205] 主存储部902可以是永久地或暂时地存储由控制器901执行的程序或数据(诸如操作系统(OS)的基本软件或应用软件)的存储设备,诸如只读存储器(ROM)或随机存取存储器(RAM)。
[0206] 辅助存储部903可以是诸如硬盘驱动(HDD)的存储设备,其存储与应用软件相关联的数据。
[0207] 驱动设备904配置成从记录介质905(例如软盘等)取回程序,以将所取回的程序安装在存储设备中。
[0208] 此外,记录介质905配置成存储预定程序。记录介质905中所存储的程序经由驱动设备904安装在视频处理设备90中。因此,所安装的预定程序可以由视频处理设备90容易地执行。
[0209] 网络IF部906是经由包括数据传输路径(例如,无线线路和/或有线线路)的网络(例如,局域网(LAN)和广域网(WAN))连接的视频处理设备90与具有通信功能的外围设备之间的接口。
[0210] 输入部907可包括具有光标键、数字键盘以及各种功能键的键盘以及用于选择显示部908的显示屏幕上所显示的键的鼠标或滑动块(slide pad)。输入部907是用户将操作指令分配给控制器901或将数据输入至控制器901的用户接口。
[0211] 显示部908包括液晶显示器(LCD),该液晶显示器配置成显示与从控制器901输入的显示数据相对应的数据。注意,显示部908可设置在外部,在这种情况下,视频处理设备90可包括显示控制器。
[0212] 因此,在上面的实施方式中所示的视频编码器或视频解码器可实现为由计算机执行的程序(例如,视频编码程序或视频解码程序)。这些程序可经由服务器等安装在计算机内,从而使计算机执行该程序,该程序可实现前述视频编码器或视频解码器。
[0213] 此外,这种视频编码程序或视频解码程序可存储在记录介质905中,从而使计算机或移动终端取回存储在记录介质905中的这些程序,以实现前述视频编码处理或视频解码处理。
[0214] 注意,记录介质905可以是各种类型的记录介质,例如,以光、电或磁的方式将信息记录在其上的CD-ROM、软盘以及磁光盘;或者以电的方式将信息记录在其上的半导体存储器,例如ROM或闪存。注意,记录介质905不包括任何载波。
[0215] 在视频处理设备90中执行的程序可具有包括前述实施方式中所示的各个部件的模块配置。在实际硬件中,控制器901从辅助存储部903取回程序,并执行所取回的程序。因此,将一个或多个部件加载在主存储部902上,从而使得在主存储部902中可产生所加载的部件。
[0216] 此外,在上面的实施方式中所示的视频编码处理或视频解码处理可以实现为一个或多个集成电路。
[0217] 根据所公开的技术,可并行地执行QP预测值的计算,这可以改善并行块行处理的效率。
[0218] 本技术还可以如下配置。
[0219] (1)一种用于对用视频编码系统进行编码的流进行解码的视频解码器,通过对多个划分块的图像进行编码来获得编码流,所述视频解码器包括:
[0220] 并行熵解码部,所述并行熵解码部配置成对块行中所包含的块的流进行熵解码,所述块行中每个块行中的块的流与所述块行中相应的一个块行中的块的流被并行地熵解码,所述块行中的每个块行表示块的阵列;
[0221] 并行QP预测部,所述并行QP预测部配置成计算所述块行中所包含的块的量化参数的预测值,所述块行中的每个块行中的块的预测值与所述块行中相应的一个块行中的块的预测值并行地计算;以及
[0222] 并行解码处理部,所述并行解码处理部配置成对于所述块行中所包含的块产生解码像素,关于所述块行中的每个块行中的块的解码像素与关于所述块行中相应的一个块行中的块的解码像素并行地产生,通过利用由所述并行熵解码部所解码的数据和所述并行QP预测部所计算的预测值,对所述解码像素中的每一个进行解码,其中,
[0223] 当所述并行QP预测部以N个块行为单位并行地执行预测值计算处理,并且N的值是2或更大值时,所述并行QP预测部对第(K–1)块行中的处理块执行预测值计算处理,所述第(K–1)块行中的处理块比第K块行中的处理块在水平位置上在前至少一个块,从而在并行处理中通过参考与在所述第(K–1)块行中的处理块相对应的、在所述第K块行中已处理的块,计算在所述第(K–1)块行中的处理块的预测值。
[0224] (2)根据(1)所述的视频解码器,其中,
[0225] 当所述并行QP预测部从所述图像的顶部块行开始,对在第二块行之后的块行中的块中的第一个块执行预测值计算处理时,所述并行QP预测部参考在块行中的块中的第一块上方一个块的块。
[0226] (3)根据(1)所述的视频解码器,其中,
[0227] 当所述并行QP预测部从所述图像的顶部块行开始,对第二块行至第N块行中的每个块行中的块中的第一块执行预测值计算处理时,所述并行QP预测部参考在块行中的块的第一块上方一个块的块,并且其中,
[0228] 当所述并行QP预测部对第(N+1)块行之后的块行中的块中的第一块执行预测值计算处理时,所述并行QP预测部参考在块行中的块中的第一块上方N个块的块行中的块中的最后一块。
[0229] (4)根据(1)所述的视频解码器,其中:
[0230] 当所述并行QP预测部从所述图像的顶部块行开始,对第一块行至第N块行中的每个块行中的块中的第一块执行预测值计算处理时,将每个预测值确定为在所述图像的报头信息中所包含的量化参数,并且其中,
[0231] 当所述并行QP预测部对第(N+1)块行之后的块行中的块中的第一块执行预测值计算处理时,将预测值确定为在块行中的块中的第一块上方N个块的块行中的块中的最后一块的量化参数。
[0232] (5)一种用于对图像的多个划分块中的每个执行视频编码处理的视频编码器,所述视频编码器包括:
[0233] 并行编码处理部,所述并行编码处理部配置成产生包括块行中所包含的块的量化正交变换系数的编码数据,所述块行中的每个块行中的块的编码数据与所述块行中相应一个块行中的块的编码数据并行地产生,所述块行中的每个块行均表示块的阵列;
[0234] 并行QP预测部,所述并行QP预测部配置成计算所述块行中所包含的块的量化参数的预测值,所述块行中的每个块行中的块的预测值与所述块行中相应一个块行中的块的预测值并行地计算;以及
[0235] 并行熵编码处理部,所述并行熵编码处理部配置成利用所述编码数据和所述预测值,对所述块行中所包含的块进行熵编码,所述块行中的每个块行中的块与所述块行中相应一个块行中的块并行地熵编码,其中,
[0236] 当所述并行QP预测部以N个块行为单位并行地执行预测值计算处理,并且N的值是2或更大值时,所述并行QP预测部对第(K–1)块行中的处理块执行预测值计算处理,所述第(K–1)块行中的处理块比第K块行中的处理块在水平位置上在前至少一个块,从而在并行处理中通过参考与所述第(K–1)块行中的处理块对应的所述第K块行中已处理的块,计算所述第(K–1)块行中的所述处理块的预测值。
[0237] (6)一种由视频解码器执行的视频解码方法,所述视频解码器对用视频编码系统进行编码的流进行解码,通过对多个划分块的图像进行编码来获得编码流,所述视频解码方法包括:
[0238] 对块行中所包含的块的流进行熵解码,所述块行中的每个块行中的块的流与所述块行中相应一个块行中的块的流并行地熵解码,所述块行中的每个块行均表示块的阵列;
[0239] 计算所述块行中所包含的块的量化参数的预测值,所述块行中的每个块行中的块的预测值与所述块行中相应一个块行中的块的预测值并行地计算;以及
[0240] 产生关于所述块行中所包含的块的解码像素,关于所述块行中的每个块行中的块的解码像素与关于所述块行中相应一个块行中的块的解码像素并行地产生,通过利用在并行熵解码处理中解码的数据和所述预测值,对所述解码像素中的每一个进行解码,其中,[0241] 当以N个块行为单位并行地执行预测值计算处理,并且N的值是2或更大值时,对第(K–1)块行中的处理块执行预测值计算处理,所述第(K–1)块行中的处理块比第K块行中的处理块在水平位置上在前至少一个块,从而在并行处理中通过参考与所述第(K–1)块行中的处理块相对应的所述第K块行中已处理的块,计算所述第(K–1)块行中的处理块的预测值。
[0242] (7)一种由视频编码器执行的视频编码方法,所述视频编码器对图像的多个划分块中的每个执行视频编码处理,所述视频编码方法包括:
[0243] 产生包括块行中所包含的块的量化的正交变换系数的编码数据,所述块行中的每个块行中的块的编码数据与所述块行中相应一个块行中的块的编码数据并行地产生,所述块行的每个块行均表示块的阵列;
[0244] 计算所述块行中所包含的块的量化参数的预测值,所述块行中的每个块行中的块的预测值与所述块行中相应一个块行中的块的预测值并行地计算;以及
[0245] 利用所述编码数据和所述预测值,对所述块行中的每个块行所包含的块进行熵编码,所述块行中的每个块行中的块与所述块行中相应一个块行中的块并行地熵编码,其中,[0246] 当以N个块行为单位并行地执行预测值计算处理,并且N的值是2或更大值时,对第(K–1)块行中的处理块执行预测值计算处理,所述第(K–1)块行中的处理块比第K块行中的处理块在水平位置上在前至少一个块,从而在并行处理中通过参考与所述第(K–1)块行中的处理块对应的所述第K块行中已处理的块,计算所述第(K–1)块行中的所述处理块的预测值。
[0247] (8)一种存储由视频解码器执行的视频解码程序的记录介质,所述视频解码器对用视频编码系统进行编码的流进行解码,通过对多个划分块的图像进行编码来获得编码流,所述视频解码程序在由所述视频解码器执行时,实现包括以下步骤的过程:
[0248] 由处理器对块行中所包含的块的流进行熵解码,所述块行中每个块行中的块的流与所述块行中相应的一个块行中的块的流被并行地熵解码,所述块行中的每个块行表示块的阵列;
[0249] 计算所述块行中所包含的块的量化参数的预测值,所述块行中的每个块行中的块的预测值与所述块行中相应的一个块行中的块的预测值并行地计算;以及[0250] 对于所述块行中所包含的块产生解码像素,关于所述块行中的每个块行中的块的解码像素与关于所述块行中相应的一个块行中的块的解码像素并行地产生,通过利用在并行熵解码处理中所解码的数据和所述预测值,对所述解码像素中的每一个进行解码,其中,[0251] 当以N个块行为单位并行地执行预测值计算处理,并且N的值是2或更大值时,对第(K–1)块行中的处理块执行预测值计算处理,所述第(K–1)块行中的处理块比第K块行中的处理块在水平位置上在前至少一个块,从而在并行处理中通过参考与在所述第(K–1)块行中的处理块相对应的、在所述第K块行中已处理的块,计算在所述第(K–1)块行中的处理块的预测值。
[0252] (9)一种存储由视频编码器执行的视频编码程序的记录介质,所述视频编码器对图像的多个划分块中的每个执行视频编码处理,所述视频编码程序在由所述视频编码器执行时,实现包括以下步骤的过程:
[0253] 由处理器产生包括块行中所包含的块的量化的正交变换系数的编码数据,所述块行中的每个块行中的块的编码数据与所述块行中相应一个块行中的块的编码数据并行地产生,所述块行的每个块行均表示块的阵列;
[0254] 计算所述块行中所包含的块的量化参数的预测值,所述块行中的每个块行中的块的预测值与所述块行中相应一个块行中的块的预测值并行地计算;以及
[0255] 利用所述编码数据和所述预测值,对所述块行中所包含的块进行熵编码,所述块行中的每个块行中的块与所述块行中相应一个块行中的块并行地熵编码,其中,[0256] 当以N个块行为单位并行地执行预测值计算处理,并且N的值是2或更大值时,对第(K–1)块行中的处理块执行预测值计算处理,所述第(K–1)块行中的处理块比第K块行中的处理块在水平位置上在前至少一个块,从而在并行处理中通过参考与所述第(K–1)块行中的处理块对应的所述第K块行中已处理的块,计算所述第(K–1)块行中的所述处理块的预测值
[0257] 根据实施方式和变形描述了所公开的技术;然而,所公开的技术不限于所公开的实施方式。在权利要求中所描述的本发明的范围内可进行各种变化和修改。此外,可以应用对前述实施方式和变形的全部部件或部分部件的组合。
[0258] 本文所列举的所有示例和条件语言意在教学目的,以帮助读者理解发明人为推进现有技术所贡献的本发明和构思,应理解为不受限于这些具体列举的示例和条件,也不受限于在涉及示出本发明的优劣的说明书中的这种示例的组织。尽管已详细地描述了本发明的实施方式,但应理解的是,在不背离本发明的思想和范围的情况下,可以做出各种变化、替代和改变。
[0259] 本专利申请是基于并且要求于2012年1月20提交的日本专利申请第2012-010465号的优先权,其全部内容通过引用结合在本文中。