用于对图像进行编码和解码的方法、用于对图像进行编码和解码的设备以及相应的计算机程序与流程

文档序号:13674130阅读:440来源:国知局
发明领域本发明总体上涉及图像处理领域,并且更确切地,涉及对数字图像以及数字图像序列的编码和解码。对数字图像的编码/解码具体地适用于由至少一个视频序列所产生的图像,这些图像包括以下各项:-由同一个照相机所产生的并且在时间上彼此相接的图像(2D类型的编码/解码),-由根据不同视图定向的不同照相机所产生的图像(3D类型的编码/解码),-相应的纹理分量和深度分量(3D类型的编码/解码),-等。本发明以类似的方式适用于对2D类型或3D类型的图像的编码/解码。本发明可以具体但不排他地适用于在当前的AVC和HEVC视频编码器及其扩展(MVC、3D-AVC、MV-HEVC、3D-HEVC等)中所实现的视频编码,并且适用于相应的解码。现有技术数字图像以及数字图像序列在存储器方面占据了大量的空间,由此使得当对这些图像进行传输时有必要对它们进行压缩从而避免用于此传输的通信网络上的拥挤问题,可用于这种传输的比特率通常受到限制。考虑到这些数据的存储,这种压缩也是令人期望的。已经已知许多种视频数据压缩技术。在后者中,许多视频编码技术(具体为HEVC技术)使用当前图像的多组像素块关于属于同一图像或者属于之前或之后图像的其他组像素块的空间预测或时间预测的技术。更确切地,根据HEVC技术,I个图像通过空间预测(帧内预测)被编码,而P个图像和B个图像关于借助于运动补偿而被编码/解码的其他I个、P个或B个图像通过时间预测(帧间预测)被编码。为此目的,这些图像第一次被切割为与H.264标准的宏块类似的称为CTU(代表“编码树块单元(CodedTreeblocksUnit)”的缩写)的像素块。这些块可以随后被细分为更小的块,这些更小的块中的每个块或者每个CTU块均通过帧内图像预测或帧间图像预测来进行编码。根据HEVC技术,当CTU块被细分为多个更小的块时,与每个块相对应的数据信号被传输至解码器。这种信号包括:-作为量化的残差块的系数的残差数据,-表示所使用的编码模式的编码参数,具体地:·预测模式(帧内预测、帧间预测、执行不向解码器传输信息项的预测的默认预测(被称为“跳过(skip)”));·指定预测类型的信息项(定向、参考图像等);·细分类型;·变换类型,例如,4×4DCT、8×8DCT等…·运动信息项(需要的话);·等。解码是逐张图像完成的,并且对于每张图像而言,是逐个CTU块完成的。对于CTU块的每个更小的块,读取该流的相应元素。执行对更小的块的系数的逆量化和逆变换。接下来,计算对每个CTU块的预测,并且通过将预测添加到经解码的预测残差上来重构每个CTU块。由此,通过竞争进行的帧内编码或帧间编码(如在HEVC标准中所实现的)依赖于设置不同的编码参数(如上述那些编码参数)进行竞争,其目的是选择最佳的编码模式,也就是说,将根据预先确定的性能标准(例如,本领域技术人员所熟知的比特率/失真代价)来优化对所考虑的块的编码。与选择的编码模式相关的编码参数以通常被称为竞争指数的标识符的形式包含在由编码器传输至解码器的数据流中。解码器因此能够标识在编码器处所选择的编码模式,并且然后根据此模式应用预测。分配给这些竞争指数的带宽是不可忽略的,因为其达到了约30%。另外,其由于对新编码参数(如像素块的新尺寸和/或形状)、帧内预测和帧间预测的新参数等的日益增长的采用而趋于增加。发明目的和概述本发明的目的之一是补救上述现有技术的缺点。为此目的,本发明的主题涉及一种用于对被切割成多个块的至少一张图像进行编码的方法。这种编码方法值得注意的是,其针对有待编码的当前块包括以下步骤:-确定候选预测子块集合,-针对上述集合中的至少一个候选预测子块:·获得表示该候选预测子块与该当前块之差的残差块,·在候选预测子块集合中标识候选预测子块,这种标识取决于所获得的当前残差块,·如果所述至少一个候选预测子块等于所标识的预测子块,那么选择所述至少一个候选预测子块,-借助于预定标准,从应在选择步骤完成时已选择的这些候选预测子块中确定候选预测子块,-对表示所确定的候选预测子块与该当前块之差的该残差块进行编码。这种安排使得有可能在对图像进行编码期间避免在有待传输至解码器的信号中包括这些预测子块的用于分别预测图像的这些块的指数。因此,在这种安排在解码器处可再现的情况下,这导致了信令成本的不可忽略的降低。此外,考虑到对当前块的预测所进行的对候选预测子块的标识是特别可靠的。这是由于以下事实:针对考虑的当前残差块,候选预测子块的特性彼此非常不同,由此促进根据预定标准在确定步骤过程中作出对候选预测子块的最合适的最终选择。根据具体实施例,以确定的顺序对该图像的在当前块之前的块进行编码,上述标识取决于该图像的那些之前编码的像素。这种安排因此使得有可能将在编码当前图像时已经可用的图像的信息项考虑在内,因此提高了标识候选预测子块的性能。根据本发明的优选实施例,图像的那些之前编码的像素沿着当前块定位。这种安排因此使得有可能使易于沿着当前块的边界出现的不连续性最小化,同时更好地对应于图像的真实性。根据具体实施例,预定标准是图像比特率失真代价的最小化。选择这种标准优化了在进行编码时所执行的预测。根据具体实施例,当前块是之前已经在预测之后获得的块。这种安排的目的是进一步细化对当前块的预测以便获得经优化的编码性能。上述各个实施例或实施例的特性可以被独立地或者彼此组合地添加到如以上定义的编码方法的步骤中。本发明还涉及一种用于对被切割成多个块的至少一张图像进行编码的设备,这种设备值的注意的是,其针对有待编码的当前块包括:-用于确定候选预测子块集合的模块,-针对该集合的至少一个候选预测子块:·用于获得表示候选预测子块与当前块之差的残差块的模块,·用于根据所获得的当前残差块在候选预测子块集合中标识候选预测子块的模块,·用于如果所述至少一个候选预测子块等于被标识的预测子块则选择所述至少一个候选预测子块的模块,-用于借助于预定标准从应在选择步骤完成时已选择的这些候选预测子块中确定候选预测子块的模块,-用于对表示所确定的候选预测子块与当前块之差的残差块进行编码的模块。这种编码设备能够实现上述编码方法。本发明还涉及一种用于对表示被切割成多个块的至少一张图像的数据信号进行解码的方法,这种方法包括以下步骤:-在数据信号中确定表示与有待解码的当前块相关联的当前残差块的数据,-对当前残差块进行解码。根据本发明所述的解码方法值的注意的是,针对有待重构的当前块,该方法包括以下步骤:-确定候选预测子块集合,-在上述集合中标识候选预测子块,此标识取决于所述经解码的当前残差块,-借助于所标识的预测子块和经解码的当前残差块来重构当前块。这种解码方法的优点在于以下事实:能够重构当前块的对预测子块的标识步骤在解码时是可再现的。在解码器处接收的数据信号并不有利地包含与此标识的预测子块相关联的信息项,由此显著地降低了这些信息项的信令成本。此外,对预测子块的标识取决于经解码的当前残差块的事实允许对当前块进行可靠的重构。所确定的该集合的候选预测子块的特性彼此非常不同,由此促进了对被保留用于重构当前块的预测子块的标识。这致使图像的解码具有更好的质量。根据具体实施例,以确定的顺序对该图像的在当前块之前的那些块进行解码,对预测子块的标识取决于该图像的之前编码的那些像素。根据另一个具体实施例,图像的那些之前解码的像素沿着当前块定位。根据另一个具体实施例,该解码方法进一步包括在数据信号中确定与当前块的先前预测相关联的信息项的步骤,所述重构当前块的步骤是在这种先前预测、标识的预测子块以及确定的当前残差块的基础上实现的。这种安排使得有可能进一步细化预测以便获得经优化的解码性能。上述各个实施例或实施例的特性可以被独立地或者彼此组合地添加到如以上定义的解码方法的步骤中。以相应的方式,本发明还涉及一种用于对表示被切割成多个块的至少一张图像的数据信号进行解码的设备,这种设备包括:-用于在数据信号中确定表示与有待解码的当前块相关联的当前残差块的数据的模块,-用于对所述当前残差块进行解码的模块,这种解码设备值的注意的是,针对有待重构的当前块,该设备包括:-用于确定候选预测子块集合的模块,-用于在所述集合中标识候选预测子块的模块,所述标识取决于所述经解码的当前残差块,-用于借助于标识的预测子块和经解码的当前残差块来重构当前块的模块。这种解码设备能够实现上述解码方法。本发明进一步涉及一种包括指令的计算机程序,当该计算机程序在计算机上执行时,这些指令用于实现根据本发明的编码和解码方法之一。本程序可以使用任何编程语言并且可以是源代码、目标代码或者是介于源代码与目标代码之间的代码的形式,如是部分编译形式,或是任何其他令人期望的形式。本发明还设想了一种可由计算机读取的记录介质,在该记录介质上记录有计算机程序,此程序包括适用于实现如上文所述的根据本发明的这些方法之一的指令。本发明还设想了一种可由计算机读取的记录介质,在该记录介质上记录有计算机程序,此程序包括适用于实现如上文所述的根据本发明的编码或解码方法的指令。该记录介质可以是能够存储程序的任何实体或设备。例如,该介质可以包括存储装置,如ROM(例如CDROM或微电子电路ROM)、或其他磁记录装置(例如USB密匙或硬盘)。另外,该记录介质可以是可经由电缆或光缆、通过无线电或通过其他手段输送的可传输介质(如电信号或光信号)。根据本发明的程序可以具体地从互联网类型的网络进行下载。可替代地,该记录介质可以是该程序所并入的集成电路,该电路适用于执行或用于执行上述编码方法或解码方法。解码方法、编码设备、解码设备、计算机程序和上述与其相应的记录介质至少展现出与根据本发明的编码方法和解码方法所赋予的那些优点相同的优点。附图简要描述其他特性和优点将在阅读参照附图所描述的优选实施例后变得明显,在附图中:-图1A和图1B表示根据本发明的实施例的编码方法的步骤,-图2表示根据本发明的能够实现图1A和图1B中的编码方法的编码设备的实施例,-图3表示将当前图像划分为若干个像素块的示例性划分,-图4表示根据本发明的根据所获得的当前经解码的残差块对候选预测子块进行标识的步骤的实施例,-图5表示根据本发明的另一个实施例的编码方法的步骤,-图6表示根据本发明的能够实现图5中的编码方法的编码设备的实施例,-图7表示根据本发明的实施例的解码方法的步骤,-图8表示根据本发明的能够实现图7的解码方法的解码设备的实施例,-图9表示根据本发明的另一个实施例的解码方法的步骤,-图10表示根据本发明能够实现图9中的解码方法的解码设备的实施例。编码部分的实施例的详细说明现在将对本发明的实施例进行描述,在该实施例中,根据本发明的编码方法用于根据二进制流对图像或图像序列进行编码,该二进制流与通过符合例如HEVC标准的编码获得的二进制流相近。在本实施例中,例如采用软件或硬件方式通过对初始符合HEVC标准的编码器的进行修改来实现根据本发明的编码方法。根据本发明的编码方法采用包括如在图1A和图1B中所表示的步骤C1到步骤C22的算法的形式来表示。根据本发明的实施例,根据本发明的编码方法在图2中所表示的编码设备CO1中实现。如图2所示,这种编码设备包括包含缓冲存储器MEM_CO1的存储器MT_CO1、配备有例如微处理器μP并且由计算机程序PG_CO1驱动的处理单元UT_CO1,该处理单元实现根据本发明的编码方法。在初始化时,在处理单元UT_CO1的处理器执行计算机程序PG_CO1的代码指令之前,这些代码指令被例如加载到RAM存储器(未表示出)中。将图1A和图1B中所表示的编码方法应用到有待编码的图像序列SQ中的任何当前图像。在图1A中表示的第一步骤C1的过程中,以本身已知的方式将属于图像序列SQ(IC1,…,ICj,…,ICM(1≤j≤M))的当前图像ICj划分成多个例如大小为64×64个像素的块B1,B2,…,Bu,…,BS(1≤u≤S)。这种划分步骤由图2中所表示的划分软件模块MP1实现,该模块由处理单元UT_CO1的微处理器μP驱动。由此划分的图像ICj被表示在图3中。在所表示的示例中,图像ICj被划分成四个块B1、B2、B3和B4。应注意的是,在本发明的含义内,术语“块”表示编码单元。后者术语具体地用于HEVC标准中,例如,文件“B.布洛斯(B.Bross)、W.-J.韩(W.-J.Han)、J.-R.奥姆(J.-R.Ohm)、G.J.沙利文(G.J.Sullivan)和T.威甘德(T.Wiegand)的“高效率视频编码(HEVC)文本规范草案10(Highefficiencyvideocoding(HEVC)textspecificationdraft6)”,2013年1月瑞士日内瓦JCT-VC的文件JCTVC-L1003,14-23。”具体地,这种编码单元将矩形或正方形形状(也被称为块或宏块)的像素集合或其他呈现其他几何形状的像素集合分组在一起。所述块B1,B2,…,Bu,…,BS旨在根据预先确定的其例如具有光栅扫描类型的遍历顺序被编码。这表示这些块是一个接一个、从左到右地被编码的。其他类型的遍历当然也是可能的。从而,有可能将图像ICj切割成若干个被称为切片的子图像并单独地针对每张子图像应用这种类型的切割。如以上解释的,还有可能不是逐行地而是逐列地进行编码。还有可能在两个方向上遍历行和列。在图1A中所表示的步骤C2的过程中,编码器CO1将图像ICj的有待编码的第一块Bu(如,例如,第一块B1)选择为当前块。在图1A中所表示的步骤C3的过程中,根据本发明确定具有Q个候选预测子块BP11,BP12,…,BP1v,…,BP1Q(1≤v≤Q)的集合。例如,这种候选预测子块是具有已经被编码或还未被编码的像素的块。这种块已经预先被存储在如在图2中表示的编码器的缓冲存储器MT_CO1中。在所表示的示例中,这特别地需要恰好在考虑的当前块之前已经被编码的块的预先确定的数量。这种确定步骤由图2中所表示的确定软件模块DET_CO1实现,该模块由处理单元UT_CO1的微处理器μP驱动。在图1A中所表示的步骤C4的过程中,针对所考虑的候选预测子块BP1v,将候选预测子块BP1v从当前块Bu中减去以产生残差块Brv。在图1A中所表示的步骤C5的过程中,根据常规直接变换操作(如,例如,DCT类型的离散余弦变换)来变换残差块Brv,以产生变换块Btv。在图1A中所表示的步骤C6的过程中,根据常规量化操作(如,例如,标量量化)来量化变换块Btv。然后获得量化系数块Bqv。步骤C4至C6由图2中所表示的预测编码软件模块PRED_CO1实现,该模块由处理单元UT_CO1的微处理器μP驱动。预测编码软件模块PRED_CO1能够根据常规预测技术对当前块执行预测编码,如,例如,帧内模式和/或帧间模式。在图1A中所表示的步骤C7的过程中,对量化系数块Bqv进行熵编码。在优选实施例中,这需要CABAC熵编码。这种步骤在于:a)读取与所述当前块相关联的预先确定的符号集合中的一个或多个符号,b)将数字信息项(如,比特位)与读取的符号进行关联。这种熵编码步骤由图2中所表示的熵编码软件模块MCE1实现,该模块由处理单元UT_CO1的微处理器μP驱动。熵编码软件模块MCE1例如是CABAC类型。其也可以是众所周知的哈夫曼编码器。在图1A中所表示的步骤C8的过程中,根据常规去量化操作(其是在步骤C6中执行的量化的逆操作)来对块Bqv进行去量化。然后获得去量化系数块BDqv。在图1A中所表示的步骤C9的过程中,对去量化系数块BDqv进行逆变换,这是以上在步骤C5中执行的直接变化的逆操作。然后获得经解码的残差块BDrv。步骤C8和C9由图2中所表示的逆预测编码软件模块PRED-1_CO1实现,该模块由处理单元UT_CO1的微处理器μP驱动。因为,针对所考虑的当前块Bu,针对预测子块集合BP11,BP12,…,BP1v,…,BP1Q中的每个预测子块重复步骤C4至C9,在步骤C9完成时获得Q个经解码的残差块BDr1,BDr2,…,BDrv,…,BDrQ。在图1A中所表示的步骤C10的过程中,根据本发明从Q个预测子块集合BP11,BP12,…,BP1v,…,BP1Q中标识在解码当前块Bu时能够被检索到的至少一个预测子块。根据本发明,这种标识步骤取决于所获得的当前经解码的残差块BDrv。这种标识步骤由图2中所表示的计算软件模块CAL1_CO1实现,该模块由处理单元UT_CO1的微处理器μP驱动。根据在图4中表示的具体实施例,针对当前经解码的残差块BDrv,此标识在于通过将候选预测子块BP1w(1≤w≤Q)添加至当前经解码的残差块BDrv而构造当前经解码的块BDv,w。在这个具体实施例中,针对当前图像ICj的经解码的像素(其由图4中的点表示)与经解码的块BDv,w沿着其边界F的像素之间的差值应用最小化标准。此标准是被表示为SM(BDv,w,ICj)的数学运算符。运算符SM(BDv,w,ICj)实际上表示沿着经解码的残差块BDrv的边界F与图像ICj的均方误差。其可以被写成以下形式:SM(BDv,w,ICj)=Σa=0N-1(BDv,w(0,a)-ICj(row-1,col+a))2=Σa=0N-1(BDv,w(a,0)-ICj(row+a,col-1))2]]>其中:-BDv,w是所考虑的大小为N×N个像素的经解码的块,-BDv,w(n,m)是位于此块的第n行和第m列中的经解码的残差块BDv,w的像素的值,-ICj是当前图像,-ICj(k,l)是位于此图像的第k行和第l列中的图像ICj的像素的值,并且(行(row),列(col))是图像ICj中的经解码的块BDv,w的坐标。替代地,有可能使用简化的标准,其中,将图像ICj沿着边界F的像素的平均值与经解码的块BDv,w的像素的平均值进行比较。然后可以将运算符SM(BDv,w,ICj)写成:SM(BDv,w,ICj)=abs(1(2N-1)Σa=0N-1(ICj(row-1,col+a)+ICj(row+a,col-1))-1N2Σa=0N-1Σb=0N-1(BDv,w(ab)))]]>其中,abs()表示绝对值。在步骤C10的过程中,确定经解码的块BDv,w最小,该经解码的块使上述两个选择的标准之一最小化,从而使得:K最小=argminKSM(BDuK,PDICj)块BDv,w最小等于候选预测子块BP1w最小与当前经解码的残差块BDrv之和。在图1A中表示的步骤C11的过程中,将标识的候选预测子块BP1w最小与同经解码的残差块BDrv相关联的候选预测子块BP1v进行比较。这种比较步骤由图2中所表示的计算软件模块CAL2_CO1实现,该模块由处理单元UT_CO1的微处理器μP驱动。针对所考虑的当前块Bu,针对在步骤C3中确定的预测子块集合BP11,BP12,…,BP1v,…,BP1Q中的每个预测子块重复步骤C4至C11。在块BP1w最小与块BP1v之间存在一致性的情况下,在图1A中表示的步骤C12a)的过程中,选择变成标识的预测子块的块BP1w最小。在块BP1w最小与块BP1v之间不存在一致性的情况下,BP1w最小不被选择为标识的预测子块。在完成选择步骤C12a)时,获得T个标识的预测子块,BP11,BP12,…,BP1z,…,BP1T其中,1≤z≤T≤Q。在图1B中所表示的步骤C13的过程中,借助于预定标准的最小化,从已经在步骤C12a)中获得的所有预测子块BP11,BP12,…,BP1z,…,BP1T中确定优选的候选预测子块BP1优化。这种标准在下文通过等式(1)来表示:(1)J=D+λR,其中D表示原始当前块B1与重构块B1之间的失真,R表示在用于编码块B1的这些编码参数的编码比特位的代价而λ表示其值在编码器处固定的拉格朗日乘子。根据从在减少编码器处的计算时间的角度来看特别有利的变体,预先确定的性能标准仅取决于失真并且由以下的等式(2)来表示:(2)J'=D。标准J和J'常规地由图2中所表示的计算模块CAL3_CO1通过仿真计算而得,该模块由处理单元UT_CO1的微处理器μP驱动。在图1B中所表示的步骤C14的过程中,图2的预测模块PRED_CO1将优选的候选预测子块BP1优化从当前块Bu中减去以产生残差块Br优化u。在图1B中所表示的步骤C15的过程中,图2的模块PRED_CO1根据常规直接变换操作(如,例如,DCT类型的离散余弦变换)来变换残差块Br优化u,以产生变换块Bt优化u。在图1B中所表示的步骤C16的过程中,图2的模块PRED_CO1根据常规量化操作(如,例如,标量量化)来量化变换块Bt优化u。然后获得量化系数块Bq优化u。在图1B中所表示的步骤C17的过程中,图2的熵编码模块MCE1对量化系数块Bq优化u进行熵编码。然后在步骤C17完成时传递包含量化系数块Bq优化u的经编码的数据的数据流这种流随后由通信网络(未示出)传输到远程终端。后者包括在图7中所表示的解码器DO1。以本身已知的方式,流进一步包括由编码器CO1编码的某些信息项,如预测类型(帧间或帧内)以及预测模式(如果合适的话)、块的划分类型(如果后者已经被划分的话)、参考图像索引以及在帧间预测模式中使用的位移矢量。在图1B中所表示的步骤C18的过程中,图2的模块PRED-1_CO1根据常规去量化操作(其是在步骤C16中执行的量化的逆操作)来对块Bq优化u进行去量化。然后获得量化系数块BDq优化u。在图1B中所表示的步骤C19的过程中,图2的模块PRED-1_CO1对去量化系数块BDq优化u进行逆变换,这是以上在步骤C15中执行的直接变化的逆操作。然后获得经解码的残差块BDr优化u。在图1B中表示的步骤C20的过程中,通过将经解码的残差块BDr优化u添加至优选的候选预测子块BP1优化而重构经解码的块BDu。应注意的是,后面的块与在完成用于解码图像ICj的方法时获得的经解码的块是相同的,这将在说明书中进一步描述。经解码的块BDu然后被存储在图2的缓冲存储器MT_CO1中,以便由编码器CO1用作后面有待编码的块的候选预测子块。在图1B中表示的步骤C21的过程中,编码器CO1测试刚刚被编码的当前块Bu是否是图像ICj的最后块。如果当前块是图像ICj的最后块,那么在图1B中表示的步骤C22的过程中,该编码方法被终止。如果情况并非如此,那么根据上述光栅扫描遍历顺序再次对有待编码的下一块执行选择步骤C2,并且然后针对这个选择的下一块重复步骤C3至C21。针对所考虑的当前图像ICj的所有的有待编码的块B1,B2,…,Bu,…,BS来实现上文刚刚描述的编码步骤。编码部分的另一个实施例的详细说明此其他实施例与前一实施例不同之处在于其实现了两种类型的预测,这将在下文参照图5进行描述。根据此其他实施例的编码方法采用包括如在图5中所表示的步骤C'1到步骤C'9的算法的形式来表示。根据本发明的此其他实施例的编码方法由在图6中所表示的编码设备CO2实现。如图6所示,这种编码设备CO2包括包含缓冲存储器MEM_CO2的存储器MT_CO2、配备有例如微处理器μP并且由计算机程序PG_CO2驱动的处理单元UT_CO2,该处理单元实现根据此其他实施例的编码方法。在初始化时,在处理单元UT_CO2的处理器执行计算机程序PG_CO2的代码指令之前,这些代码指令被例如加载到RAM存储器(未表示出)中。将图5中所表示的编码方法应用到有待编码的图像序列SQ中的任何当前图像。在图5中所表示的步骤C'1的过程中,将属于图像序列SQ(IC1,…,ICj,…,ICM(1≤j≤M))的当前图像ICj划分成多个例如大小为64×64个像素的块B1,B2,…,Bu,…,BS(1≤u≤S)。这种划分步骤由图6中所表示的划分软件模块MP2实现,该模块由处理单元UT_CO2的微处理器μP驱动。步骤C'1与图1A中的步骤C1完全相同,将不对其进行更加详细的描述。如在图1A和图1B的实施例中那样,所述块B1,B2,…,Bu,…,BS旨在根据预先确定的其例如具有光栅扫描类型的遍历顺序被编码。这表示这些块是一个接一个、从左到右地被编码的。在图5中所表示的步骤C'2的过程中,编码器CO2将图像ICj的有待编码的第一块Bu(如,例如,第一块B1)选择为当前块。在图5中所表示的步骤C'3的过程中,以本身已知的方式借助于预测子块BP1选择通过帧内和/或帧间预测的常规技术预测当前块Bu。这种预测在随后的描述中将被称作“初步预测”。上述预测步骤使得有可能重构残差块Br1u,该残差块是通过计算当前块Bu与预测子块BP1选择之差获得的。步骤C'3由图6中所表示的预测编码软件模块PRED1_CO2实现,该模块由处理单元UT_CO2的微处理器μP驱动。在图5中所表示的步骤C'4的过程中,根据本发明确定Q个候选预测子块BP21,BP22,…,BP2v,…,BP2Q(1≤v≤Q)的集合。这种步骤与图1A中的确定步骤C3完全相同,将不对其进行更加详细的描述。这种确定步骤C'4由图6中所表示的确定软件模块DET_CO2实现,该模块由处理单元UT_CO2的微处理器μP驱动。在图5中所表示的步骤C'5的过程中,根据本发明通过实现以上结合图1A和图1B描述的步骤C4至C13预测残差块Br1u。这种预测在随后的描述中将被称作“二次预测”。在这个二次预测的过程中,优选候选预测子块BP2优化被选择。参照图6,步骤C'5在以下帮助下被实现:-与图2的模块PRED_CO1完全相同的预测软件模块PRED2_CO2,-与图2的模块MCE1完全相同的熵编码软件模块MCE2_CO2,-与图2的模块PRED-1_CO1完全相同的逆预测软件模块PRED2-1_CO2,-与图2的模块CAL1_CO1完全相同的计算软件模块CAL1_CO2,-与图2的模块CAL2_CO1完全相同的计算软件模块CAL2_CO2。在图5中所表示的步骤C'6的过程中,根据本发明测试已经被选择的优选预测子块BP2优化的有效性。这个测试步骤C'6由图6中所表示的计算软件模块CAL4_CO2实现,该模块由处理单元UT_CO2的微处理器μP驱动。在优选实施例中,这种测试在于验证块Br1u-BP2优化的能量是否小于对应于块Br1u的能量的值的阈值。如果测试结果为负,那么编码当前块Bu以常规方式继续。如果测试结果为正,那么这表示优选候选预测子块BP2优化接近于当前原始块Bu。因此,二次预测适用于当前块Bu。反向测试在步骤C'6中执行的测试结果为负的情况下,在图5中所表示的步骤C'610的过程中,根据常规直接变换操作(如,例如,DCT类型的离散余弦变换)来变换残差块Br1u,以产生变换块Bt1u。在图5中所表示的步骤C'611的过程中,根据常规量化操作(如,例如,标量量化)来量化变换块Bt1u。然后获得量化系数块Bq1u。步骤C'610和C'611由在图6中表示的预测编码软件模块PRED1_CO实现。在图5中所表示的步骤C'612的过程中,通过与图2中的熵编码软件模块MCE1完全相同的熵编码软件模块MCE1_CO2对量化系数块Bq1u进行熵编码。此外,根据尚未应用二次预测的信号的第一预先确定的值(例如,比特位被设置为0)编码与优选的候选预测子块BP2优化相关联的指示符Id。包含量化系数块Bq11的经编码的数据以及比特位被设置0的指示符Id的数据流然后在步骤C'612完成时被传递。这种流随后由通信网络(未示出)传输到远程终端。后者包括在图10中所表示的解码器DO2。以本身已知的方式,流包含由编码器CO2编码的信息项,如预测类型(帧间或帧内)以及预测模式(如果有的话)、块或宏块的划分类型(如果后者已经被划分的话)、参考图像索引以及在帧间预测模式中使用的位移矢量。在图5中所表示的步骤C'613的过程中,根据常规去量化操作(其是在步骤C'611中执行的量化的逆操作)来对块Bq1u进行去量化。然后获得量化系数块BDq1u。在图5中所表示的步骤C'614的过程中,对去量化系数块BDq1u进行逆变换,这是以上在步骤C'610中执行的直接变化的逆操作。然后获得经解码的残差块BDr1u。步骤C'613和C'614由图6中所表示的逆预测编码软件模块PRED-1_CO2实现,该模块由处理单元UT_CO2的微处理器μP驱动。这种模块与图2的软件模块PRED-1_CO1完全相同。在图5中表示的步骤C'7的过程中,通过将经解码的残差块BDr1u添加至预测子块BP1选择而重构经解码的块BDu。经解码的块BDu然后被存储在图6的缓冲存储器MT_CO2中,以便在对后面的经解码的残差块进行二次预测的过程中由编码器CO2用作候选预测子块。在图5中表示的步骤C'8的过程中,编码器CO2测试刚刚被编码的当前块Bu是否是图像ICj的最后块。如果当前块Bu是图像ICj的最后块,那么在图5中表示的步骤C'9的过程中,该编码方法被终止。如果情况并非如此,那么根据上述光栅扫描遍历顺序再次对有待编码的下一块执行选择步骤C'2,并且然后针对这个选择的下一块重复步骤C'3至C'6。正向测试如果在步骤C'6中执行的测试结果为正,在图5中所表示的步骤C'620的过程中,图6的模块PRED2_CO2将优选的候选预测子块BP2优化从残差块Br1u中减去以产生残差块Br2优化u。在图5中所表示的步骤C'621的过程中,图6的模块PRED2_CO2根据常规直接变换操作(如,例如,DCT类型的离散余弦变换)来变换残差块Br2优化u,以产生变换块Bt2优化u。在图5中所表示的步骤C'622的过程中,图6的模块PRED2_CO2根据常规量化操作(如,例如,标量量化)来量化变换块Bt2优化u。然后获得量化系数块Bq2优化u。在图5中所表示的步骤C'623的过程中,图6的熵编码模块MCE2_CO2对量化系数块Bq2优化u进行熵编码。此外,根据已经对其应用二次预测的信号的第二预先确定的值(例如,比特位被设置为1)编码与优选的候选预测子块BP2优化相关联的指示符Id。包含量化系数块Bq2优化u的经编码的数据以及比特位被设置1的指示符Id的数据流然后在步骤C'623完成时被传递。这种流随后由通信网络(未示出)传输到在图10中表示的解码器DO2。在图5中所表示的步骤C'624的过程中,图6的模块PRED2-1_CO2根据常规去量化操作(其是在步骤C'622中执行的量化的逆操作)来对块Bq2优化u进行去量化。然后获得去量化系数块BDq2优化u。在图5中所表示的步骤C'625的过程中,图6的模块PRED2-1_CO2对去量化系数块BDq2优化u进行逆变换,其是以上在步骤C'621中执行的直接变化的逆操作。然后获得经解码的残差块BDr2优化u。在以上提及的步骤C'7的过程中,通过将经解码的残差块BDr2优化u添加至优选的候选预测子块BP2优化而重构经解码的块BDu。由此被重构的经解码的块BDu然后被存储在图6的缓冲存储器MT_CO2中,以便在对后面的经解码的残差块进行二次预测的过程中由编码器CO2用作候选预测子块。在图5中表示的步骤C'8的过程中,编码器CO2测试刚刚被编码的当前块Bu是否是图像ICj的最后块。如果当前块是图像ICj的最后块,那么在图5中表示的步骤C'9的过程中,该编码方法被终止。如果情况并非如此,那么根据上述光栅扫描遍历顺序再次对有待编码的下一块执行选择步骤C'2,并且然后针对这个选择的下一块重复步骤C'3至C'6。针对所考虑的当前图像ICj的所有的有待编码的块B1,B2,…,Bu,…,BS来实现上文刚刚描述的编码步骤。解码部分的实施例的详细说明现在将描述根据本发明的解码方法的实施例,在该实施例中,借助于软件或硬件方式通过对初始符合HEVC标准的解码器的修改来实现该解码方法。根据本发明的解码方法采用包括如在图8中所表示的步骤D1到步骤D11的算法的形式来表示。如图7所示,根据本发明的解码器DO1包括包含缓冲存储器MT_DO1的存储器MEM_DO1、配备有例如微处理器μP并且由计算机程序PG_DO1驱动的处理单元UT_DO1,该处理单元实现根据本发明的解码方法。在初始化时,在处理单元UT_DO1的处理器执行计算机程序PG_DO1的代码指令之前,这些代码指令被加载到例如RAM存储器中。将图8中所表示的解码方法应用到有待解码的图像序列SQ中的任何当前图像。为此目的,在解码器处所接收的流中对表示有待解码的当前图像ICj的信息项进行标识。参照图8,第一解码步骤D1是在所述流中标识分别与之前根据上述光栅扫描遍历根据在图1A和图1B中表示的编码方法编码的残差块Br1,Br2,…,Bru,…,BrS相关联的经编码的数据Bq1,Bq2,…,Bqu,…BqS。这种标识步骤由如在图8中所表示的标识模块MI_DO1实现,所述模块由处理单元UT_DO1的微处理器μP驱动。所述块Bq1,Bq2,…,Bqu,…BqS旨在根据预先确定的其例如具有序列类型的遍历顺序被解码,也就是说,它们旨在一个接一个以它们已经通过其被编码的光栅扫描顺序被解码。除了以上刚刚已经描述的遍历其他类型的遍历当然也是可能的并且取决于编码时选择的遍历顺序,以上已经提及了其的一些示例。在图8中所表示的步骤D2的过程中,解码器DO1将图像ICj的有待解码的第一块Bqu(如,例如,第一块Bq1)选择为当前块。在图8中所表示的步骤D3的过程中,对块Bqu进行熵解码。在优选实施例中,这需要CABAC熵编码。这种步骤在于:a)读取与所述当前残差块相关联的预先确定的符号集合中的一个或多个符号,b)将数字信息项(如,比特位)与读取的符号进行关联。这种熵解码步骤由图7中所表示的熵解码软件模块MDE1实现,该模块由处理单元UT_DO1的微处理器μP驱动。熵编码软件模块MDE1例如是CABAC类型。其也可以是众所周知的哈夫曼解码器。在图8中所表示的步骤D4的过程中,根据常规去量化操作(其是在图1B的步骤C16中执行的量化的逆操作)来对块BDqu进行去量化。然后获得经解码的去量化块BDtu。在图8中所表示的步骤D5的过程中,对经解码的去量化的块BDtu进行逆变换,其是在图1B的步骤C15中执行的直接变化的逆操作。然后获得经解码的残差块BDru。步骤D4和D5由图7中所表示的逆预测解码软件模块PRED-1_DO1实现,该模块由处理单元UT_DO1的微处理器μP驱动。在图8中所表示的步骤D6的过程中,根据本发明确定具有Q个候选预测子块BP11,BP12,…,BP1v,…,BP1Q(1≤v≤Q)的集合。例如,这种候选预测子块是具有已经被解码或还未被解码的像素的块。这种块已经预先被存储在如在图7中表示的解码器的缓冲存储器MT_DO1中。在所表示的示例中,这特别地需要就在考虑的有待被解码的当前块之前已经被解码的块的预先确定的数量。这种确定步骤由图7中所表示的确定软件模块DET_DO1实现,该模块由处理单元UT_DO1的微处理器μP驱动。在图8中所表示的步骤D7的过程中,根据本发明从Q个预测子块集合BP11,BP12,…,BP1v,…,BP1Q中标识优选的候选预测子块BP1优化。根据本发明,以与在上述编码过程中相同的方式,这种标识步骤取决于获得的经编码的残差块BDru。所述标识步骤由图7中所表示的计算软件模块CAL1_DO1实现,该模块由处理单元UT_DO1的微处理器μP驱动。以与参照图1B和图1B描述的编码方法相同的方式,针对当前经解码的残差块BDru,此标识在于通过将候选预测子块BP1w(1≤w≤Q)添加至当前经解码的残差块BDru而构造当前经解码的块BDu,w。在这个具体实施例中,并且以对应于编码的方式,针对当前图像ICj的经解码的像素(其由图4中的点表示)与经解码的块BDu,w沿着其边界F定位的像素之间的差值应用最小化标准。此标准是被表示为SM(BDu,w,ICj)的数学运算符。运算符SM(BDu,w,ICj)实际上表示沿着经解码的残差块BDru的边界F与图像ICj的均方误差。其可以被写成以下形式:SM(BDu,w,ICj)=Σa=0N-1(BDu,w(0,a)-ICj(row-1,col+a))2=Σa=0N-1(BDu,w(a,0)-ICj(row+a,col-1))2]]>其中:-BDu,w是所考虑的大小为N×N个像素的经解码的块,-BDu,w(n,m)是位于此块的第n行和第m列中的经解码的残差块BDu,w的像素的值,-ICj是当前图像,-ICj(k,l)是位于此图像的第k行和第l列中的图像ICj的像素的值,并且(行(row),列(col))是图像ICj中的经解码的块BDu,w的坐标。替代地,有可能使用简化的标准,其中,将图像ICj沿着边界F的像素的平均值与经解码的块BDu,w的像素的平均值进行比较。运算符SM(BDu,w,ICj)然后可以被写成:SM(BDu,w,ICj)=abs(1(2N-1)Σa=0N-1(ICj(row-1,col+a)+ICj(row+a,col-1))-1N2Σa=0N-1Σb=0N-1(BDu,w(ab)))]]>其中,abs()表示绝对值。在步骤D7的过程中,对经解码的块BDv,w最小进行标识,该经解码的块使上述两个选择的标准之一最小化,从而:w最小=arminwSM(BDu,w,ICj)块BDv,w最小等于候选预测子块BP1w最小与当前经解码的残差块BDrv之和。在完成步骤D7时,考虑到当前经解码的残差块BDru的逆预测,候选预测子块BP1w最小被认为是候选优选预测子块BP1优化。在图8中表示的步骤D8的过程中,通过将在步骤D7中标识的优选候选预测子块BP1优化添加至经解码的当前残差块BDru而重构当前块Bu。所述步骤D8由图7中所表示的计算软件模块CAL2_DO1实现,该模块由处理单元UT_DO1的微处理器μP驱动。经解码的块BDu然后被获得并且被存储在图7的缓冲存储器MT_DO1中,以便由解码器DO1用作后面有待解码的块的候选预测子块。在图8中所表示的步骤D9的过程中,所述经解码的块BDu被写到经解码的图像IDj中。这种步骤由如在图7中所表示的图像重构软件模块URI1实现,所述模块由处理模块UT_DO1的微处理器μP驱动。在图8中所表示的步骤D10的过程中,解码器DO1测试刚刚被解码的当前块BDu是否是包含在流中的最后块。如果是这种情况,那么在图8中所表示的步骤D11的过程中,该解码方法被终止。如果情况并非如此,那么在步骤D2的过程中,根据上述光栅扫描遍历顺序选择后面有待解码的残差块。针对所考虑的当前图像ICj的所有有待解码的块Bq1,Bq2,…,Bqu,…,BqS来实现上文刚刚描述的解码步骤。解码部分的另一个实施例的详细说明现在将描述根据本发明的解码方法的另一个实施例,在该实施例中,借助于软件或硬件方式通过对初始符合HEVC标准的解码器的修改来实现该解码方法。根据本发明的解码方法采用包括如在图9中所表示的步骤D'1到步骤D'7的算法的形式来表示。如图10所示,根据本发明的此其他实施例的解码器DO2包括包含缓冲存储器MT_DO2的存储器MEM_DO2、配备有例如微处理器μP并且由计算机程序PG_DO2驱动的处理单元UT_DO2,该处理单元实现根据本发明的解码方法。在初始化时,在处理单元UT_DO2的处理器执行计算机程序PG_DO2的代码指令之前,这些代码指令被加载到例如RAM存储器中。将图9中所表示的解码方法应用到有待解码的图像序列SQ中的任何当前图像。为此目的,在解码器处所接收的流或(如在图5的编码方法之后被传递的流)中对表示有待解码的当前图像ICj的信息项进行标识。参照图9,第一解码步骤D'1为以下标识:-在已经实现图5的编码方法的初步预测的情况下,在所述流中标识分别与之前根据上述光栅扫描遍历编码的残差块Br11,Br12,…,Br1u,…,Br1S相关联的经编码的数据Bq11,Bq12,…,Bq1u,…Bq1S(1≤u≤S),-在已经实现图5中所表示的编码方法的二次预测的情况下,在所述流中标识分别与之前根据上述光栅扫描遍历编码的残差块Br2优化1,Br2优化2,…,Br2优化u,…,Br2优化S相关联的经编码的数据Bq2优化1,Bq2优化2,…,Bq2优化u,…Bq2优化S(1≤u≤S)。这种标识步骤由如在图10中所表示的标识模块MI_DO2实现,所述模块由处理单元UT_DO2的微处理器μP驱动。所述块Bq11,Bq12,…,Bq1u,…,Bq1S或Bq2优化1,Bq2优化2,…,Bq2优化u,…Bq2优化S旨在根据预先确定的其例如是相继的遍历顺序被解码,也就是说,这些块旨在一个接一个根据它们已经通过其被编码的光栅扫描顺序被解码。除了以上刚刚已经描述的遍历其他类型的遍历当然也是可能的并且取决于编码时选择的遍历顺序,以上已经提及了其的一些示例。在图9中所表示的步骤D'2的过程中,编码器DO2将图像ICj的有待编码的第一块Bq1u或Bq2优化u(如,例如,Bq1u或Bq2优化u)选择为当前块。在图9中所表示的步骤D’3的过程中,在流或中,读取与所选的块Bqu相关联的索引Id。这种读取步骤由如在图10中所表示的读取软件模块ML_DO2实现,所述模块由处理单元UT_DO2的微处理器μP驱动。如果索引Id等于零,那么这表示有待解码的当前块根据图5中所表示的编码方法的步骤C'610至步骤C'614已经经历了初步预测。因此,解码器DO2旨在处理的是流如果索引Id等于一,那么这表示有待解码的当前块根据图5中所表示的编码方法的步骤C'5至步骤C'625已经经历了二次预测。因此,解码器DO2旨在处理的是流Id=0的情况在图9中所表示的步骤D'310的过程中,对块Bq1u进行熵解码。这种步骤与上述步骤D3完全相同,将不对其进行更加详细的描述。这种熵解码步骤由图10中所表示的熵解码软件模块MDE1_DO2实现,该模块由处理单元UT_DO2的微处理器μP驱动。熵编码软件模块MDE1_DO2例如是CABAC类型。其也可以是众所周知的哈夫曼解码器。在图9中所表示的步骤D'311的过程中,对块BDq1u进行去量化。这种步骤与上述步骤D4完全相同,将不对其进行更加详细的描述。然后获得经解码的去量化块BDt1u。在图9中所表示的步骤D'312的过程中,对经解码的去量化块BDt1u进行逆变换。这种步骤与上述步骤D5完全相同,将不对其进行更加详细的描述。然后获得经解码的残差块BDr1u。在图9中所表示的步骤D'4的过程中,以本身已知的方式借助于预测子块BP1选择通过帧内和/或帧间预测的常规技术重构当前块Bu。这种步骤在于将常规地选择的预测子块BP1选择添加至经解码的当前残差块BDr1u。经解码的块BDu然后在步骤D'4之后被获得并且被存储在图10的缓冲存储器MT_DO2中,以便由解码器DO2用作后面有待解码的块的候选预测子块。步骤D'311至步骤D'4由图10中所表示的逆预测解码软件模块PRED1-1_DO2实现,该模块由处理单元UT_DO2的微处理器μP驱动。在图9中所表示的步骤D'5的过程中,所述经解码的块BDu被写到经解码的图像IDj中。这种步骤由如在图10中所表示的图像重构软件模块URI2实现,所述模块由处理模块UT_DO2的微处理器μP驱动。在图9中所表示的步骤D'6的过程中,解码器DO2测试刚刚被解码的当前块BDu是否是包含在流中的最后块。如果是这种情况,那么在图9中所表示的步骤D'7的过程中,该解码方法被终止。如果情况并非如此,那么在步骤D'2的过程中,根据上述相继的顺序选择后面有待解码的残差块Bq1u。然后针对有待解码的S个块的集合迭代以上所描述的解码方法。Id=1的情况在图9中所表示的步骤D'320的过程中,对块Bq2优化u进行熵解码。这种步骤与上述步骤D3完全相同,将不对其进行更加详细的描述。然后在此步骤完成时获得经解码的量化块BDq2优化u。这种熵解码步骤通过在图10中所表示的熵解码软件模块MDE2_DO2实现。在图9中所表示的步骤D'321的过程中,对块BDq2优化u进行去量化。这种步骤与上述步骤D4完全相同,将不对其进行更加详细的描述。然后获得经解码的去量化块BDt2优化u。在图9中所表示的步骤D'322的过程中,对经解码的去量化块BDt2优化u进行逆变换。这种步骤与上述步骤D5完全相同,将不对其进行更加详细的描述。然后获得经解码的残差块BDr2优化u。所述经解码的块BDr2优化u然后被存储在图10的缓冲存储器MT_DO2中,以便由解码器DO2用作后面有待解码的块的候选预测子块。步骤D'321和步骤D'322由图10中所表示的逆预测解码软件模块PRED2-1_DO2实现,该模块由处理单元UT_DO2的微处理器μP驱动。在图9中所表示的步骤D'323的过程中,根据本发明确定具有Q个候选预测子块BP21,BP22,…,BP2v,…,BP2Q(1≤v≤Q)的集合。这种步骤与图8中的步骤D6完全相同,将不对其进行更加详细的描述。这种确定步骤由图10中所表示的确定软件模块DET_DO2实现,该模块由处理单元UT_DO2的微处理器μP驱动。在图9中所表示的步骤D'324的过程中,根据本发明从Q个预测子块集合BP21,BP22,…,BP2v,…,BP2Q中标识优选的候选预测子块BP2优化。根据本发明,以与在上述编码过程中相同的方式,这种标识步骤取决于获得的经编码的残差块BDr2优化z。所述标识步骤由图10中所表示的计算软件模块CAL1_DO2实现,该模块由处理单元UT_DO2的微处理器μP驱动。以与图8的步骤D6相同的方式,根据此其他实施例的解码方法针对当前图像ICj的经解码的像素(其由图4中的点表示)与经解码的块BDr1u,w沿着其边界F定位的像素之间的差值使用最小化标准。此标准是被表示为SM(BDr1u,w,ICj)的数学运算符。其可以被写成以下形式:SM(BDr1z,w,ICj)=Σa=0N-1(BDr1z,w(0,a)-ICj(row-1,col+a))2=Σa=0N-1(BDr1z,w(a,0)-ICj(row+a,col-1))2]]>其中:-BDr1u是所考虑的大小为N×N个像素的经解码的块,-BDr1u,w(n,m)是位于此块的第n行和第m列中的经解码的块BDr1u,w的像素的值,-ICj是当前图像,-ICj(k,l)是位于此图像的第k行和第l列中的图像ICj的像素的值,并且(行(row),列(col))是图像ICj中的经解码的残差块BDr1u,w的坐标。替代地,有可能使用简化的标准,其中,将图像ICj沿着边界F的像素的平均值与经解码的块BDr1u,w的像素的平均值进行比较。运算符SM(BDr1u,w,ICj)然后可以被写成:SM(BDr1u,w,ICj)=abs(1(2N-1)Σa=0N-1(ICj(row-1,col+a)+ICj(row+a,col-1))-1N2Σa=0N-1Σb=0N-1(BDr1u,w(ab)))]]>其中,abs()表示绝对值。在步骤D'324的过程中,标识经解码的块BDr1v,w最小,该经解码的块使上述两个选择的标准之一最小化,从而:w最小=argminwSM(BDr1u,w,ICj)块BDr1v,w最小等于候选预测子块BP2w最小与当前经解码的残差块BDr2优化u之和。在完成步骤D'324时,考虑到当前经解码的残差块BDr2优化u的逆预测,候选预测子块BP2w最小被认为是候选优选预测子块BP2优化。在图9中表示的步骤D'325的过程中,通过将在步骤D'324中标识的优选候选预测子块BP2优化添加至经解码的当前残差块BDr2优化u而重构当前残差块BDru。所述步骤D'325由图10中所表示的计算软件模块CAL2_DO2实现,该模块由处理单元UT_DO2的微处理器μP驱动。随后重复步骤D'4和步骤D'5以传递当前块BDu。下一步骤D'6再次被实现以测试当前块BDu是否是图像的最后块。针对所考虑的当前图像ICj的有待解码的所有块Bq11,Bq12,…,Bq1u,…,BqS(分别地,Bq2优化1,Bq2优化2,…,Bq2优化u,…Bq2优化S)实现以上刚刚描述的对流(分别地,)进行解码的这些步骤。不言而喻,仅以完全非限制性指示的方式给出了上文中已经描述的实施例,然而,并且在不脱离本发明的范围的情况下,本领域的技术人员可以容易地进行许多修改。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1