发明内容
本发明的目的是克服现有技术的至少一个缺点。为此,本发明涉及编码一系列图像的当前块的方法,其包含如下步骤:
-迭代地将至少包含与位于当前块的因果邻域中的像素相联系的重构图像数据的数据的矢量分解成第一字典的原子,该第一字典包含解析原子和带纹理原子;和
-从与当前块相对应的分解矢量数据中抽取数据,该抽取数据形成预测块;
-通过从当前块中抽取预测块确定残差块;以及
-编码残差块。
在每次迭代时,分解成原子的步骤包含如下步骤:
-在原子的第一字典中选择第一原子;
-当第一原子是带纹理原子时,应用与第一原子相联系的面片(patch)与当前残差矢量之间的相位关联;
-从该面片中至少抽取与残差矢量最关联的部分,该抽取部分形成第二原子;
-从第一原子和第二原子当中选择与当前残差矢量最关联的原子;以及
-按照所选原子更新残差矢量。
有利地是,由于面片的使用,按照本发明的编码方法使大量原子都能够得到测试。尤其由于相位关联的步骤,对于第一所选带纹理原子,这些面片使得可以测试与这个带纹理原子有关的若干重新定相原子。
为了利用现有技术的一种方法测试相同数量的原子,必须为每个带纹理原子插入重新定相原子来增大第一字典的大小。但是,分解成这样扩大字典当中的原子要昂贵得多。例如,在根据匹配追踪型算法分解的情况下,这种做法需要对第一字典的每个原子进行至少一次标量积,这比如本发明的编码方法所做的那样,在缩小尺寸的第一字典上进行标量积并使用第二字典通过简单相位关联测试几个重新定相原子要昂贵得多。
另外,使用第二字典测试若干重新定相原子的事实使迭代次数减少。
按照本发明的一个具体特征,第二字典的面片具有圆形对称性。
按照本发明的另一个具体特征,第二字典的面片具有取决于它们的内容的形式。
按照一个具体特征,第二字典包含不同尺寸的至少两个面片。
按照一种实施例变体,抽取步骤包含抽取与残差矢量最关联的N个部分,抽取的每个部分形成重新定相原子,以及选择步骤包含从第一原子和重新定相原子当中选择与当前残差矢量最关联的原子。
本发明还涉及重构具有流形式的一系列图像的当前块的方法,其包含如下步骤:
-从流中解码当前块的残差块;
-迭代地将至少包含与位于当前块的因果邻域中的像素相联系的重构图像数据的数据的矢量分解成第一字典的原子,该第一字典包含解析原子和带纹理原子;
-从与当前块相对应的分解矢量数据中抽取数据,该抽取数据形成预测块;以及
-通过合并解码残差块和预测块重构当前块。
在每次迭代时,分解成原子的步骤包含如下步骤:
-在原子的第一字典中选择第一原子;
-当第一原子是带纹理原子时,应用与第一原子相联系的面片与当前残差矢量之间的相位关联;
-从该面片中至少抽取与残差矢量最关联的部分,该抽取部分形成第二原子;
-从第一原子和第二原子当中选择与当前残差矢量最关联的原子;以及
-按照所选原子更新残差矢量。
该重构方法具有与针对编码方法所述的那些相同的优点。
按照本发明的一个具体特征,第二字典的面片具有圆形对称性。
按照本发明的另一个具体特征,第二字典的面片具有取决于它们的内容的形式。
按照一个具体特征,第二字典包含不同尺寸的至少两个面片。
按照一种实施例变体,抽取步骤包含抽取与残差矢量最关联的N个部分,抽取的每个部分形成重新定相原子,以及选择步骤包含从第一原子和重新定相原子当中选择与当前残差矢量最关联的原子。
具体实施方式
图像包含每一个与至少一项图像数据相联系的像素或图像点。一项图像数据是,例如,一项亮度数据或一项色度数据。
术语“残差”表示抽取了其他数据之后获得的数据。该抽取一般是从源像素中减去预测像素。但是,该抽取更一般,尤其包含加权相减。
术语“重构”表示将残差与预测数据合并之后获得的数据(例如,像素、块)。该合并一般是残差与预测像素之和。但是,该合并更一般,并尤其包含加权相加。重构块是重构像素的块。
关于图像解码,术语“重构”和“解码”经常用作同义词。因此,“重构块”也表示为“解码块”。
按照本发明的编码方法基于原子分解方法。存在能够从信号Y中实现原子分解的各种方法。其中,最众所周知的一种被称为“匹配追踪”。注意,也可以使用像“正交匹配追踪”或“全局匹配过滤”那样“匹配追踪”的变体。
下文描述原子分解和“匹配追踪”的一般原理。假设Y为N维的源矢量和A为N×M(M>>N)维的矩阵。A的列aj是用于表示源矢量Y的字典的解析或带纹理原子。源信号Y的原子分解的目的是确定M维的矢量X,以便Y=AX。对于矢量X,存在无限个解。简约表示的目的是在Y=AX的所有解当中搜索简约的那些解,即,矢量X只有少数几个非零系数的那些解。搜索精确解实在太复杂,因为需要非常昂贵的组合手段。一般说来,取而代之的是寻找核实N(Y-AX)≤ρ的简约表示,其中ρ是控制该表示的简约性的容忍阈值,和N(.)是,例如,平方范数L2。当然,N(.)也可以是除了范数L2之外的其他范数。
“匹配追踪(MP)”的方法使这样的次最佳,即,非精确解可以使用迭代方法获得。该方法在每次迭代k时,生成具有在每次新迭代k数量通常增加(除了在几次迭代期间选择相同原子之外)的非零系数的表示Xk,即M维矢量。下面参考图3详细描述MP方法。
已知数据是源信号Y、字典A和阈值ρ。在初始化步骤20(迭代k=0)期间,将数据X0和R0初始化,其中R0是残差误差或残差矢量的初始矢量。例如,X0=0,以及残差误差或残差矢量的初始矢量R0按如下初始化:R0=Y-AX0=Y。
在对应于第k次迭代的步骤22期间,选择与当前残差矢量R
k-1具有最高关联的基函数
其中R
k-1=Y-AX
k-1,和
其中<.>是标量积运算符。
在步骤24期间,更新矢量X
k和残差矢量R
k。矢量X
k的系数
按照如下公式计算:
残差矢量R
k按照如下公式更新:
将刚计算的系数
加入X
k-1中,因此形成新表示X
k。
在步骤26期间,校验一下看看是否满足停止准则。如果N(Y-AXk)≤ρ,则终止该过程,否则,在步骤28期间将k加1,使该过程从步骤22重新开始。最终矢量AXk是源信号Y的近似,其中K是最后一次迭代的索引。
在图4中,示出了大小为n×n的像素块。整数“n”可以取像,例如,4、8、16等那样的不同值。灰色块(P区)代表要预测的当前块,阴影块(C区)代表因果区,和白色区(NC区)代表无因果关系区。因果区包含当前块被编码之前编码和重构的像素。因果区的定义取决于图像中的块的编码次序。在图4中,假设按照称为“光栅扫描”的标准编码次序编码这些块。但是,本发明决不会局限于这种编码次序。按照本发明的编码方法包含原子分解由按行扫描的区域L的像素形成的观察矢量Y,L=C∪P∪NC。因此矢量Y是大小为9n2×1的矢量。实际上,例如,通过初步预测步骤,将原子分解应用于包含与区域C的像素相联系的图像数据的矢量YC,可能应用于与该区域的像素相联系的图像数据。事实上,该区域L的其他像素的图像数据是未知的,被认为是零。
图5示出了按照本发明细化的原子分解方法。按照本发明细化的原子分解方法使用两部字典。第一字典A包含通常被MP型方法使用的解析和/或带纹理原子。例如,解析原子是大小与区域L(3n×3n)相同、和假设具有将信号分解成基本信号的正确特性的二维基函数。例如,将像DCT(离散余弦变换)或DFT(离散傅里叶变换)那样的普通变换的核心用于定义解析原子。在这些特定情况下,进行信号的频率分解。分别与DFT和DCT相联系的基函数或解析原子的表达式如下: 以及
字典A由大小与解析原子相同的带纹理原子形成。字典A必须包含代表区域L的至少9n2个原子。为了能够包含9n2个二维原子,该二维原子在2D矩阵中每一个的大小是3n×3n,将原子矢量化。因此,字典A由至少9n2个列构成,其每一列代表大小为9n2×1的解析或带纹理原子。A表示字典和相应矩阵两者。
DCT和DFT原子的选择不是限制性的。事实上,该字典可以从能够代表图像中的任何图案类型的任何基函数(Gabor原子、各向异性原子等)中得到充实。原子的数量或矩阵A中的列数具有最小值,即,矢量化区域L的大小(即,9n2),但没有理论最大值。原子的数量越多,恢复信号的机会就越大。
第二字典由比第一字典的原子大的面片形成。这些面片与带纹理原子一样来自自然图像。更具体地说,第一字典的每个带纹理原子或只有一部分第一字典的每个带纹理原子与第二字典的面片相联系。第二字典的面片是例如从自然或合成图像中抽取的。该面片可以具有长方形形式。按照一种变体,面片的形式取决于内容。例如,如果面片包含大致垂直结构,则优选地是宽度大于高度的长方形。在相反情况下,即,如果包含大致水平结构,则优选地是高度大于宽度的长方形。同样,面片可以具有圆形对称性。有利地,第一字典的带纹理原子通过从第二字典的每个面片中抽取带纹理原子获得,例如,带纹理原子处在面片的中心上。第二字典的面片的大小也可以随面片而异。但是,带纹理原子处在面片的中心上的事实不具有强制特点。同样,本发明决不会受从面片中生成带纹理原子的方式,或从自然图像中确定面片的方式限制。与前面参考图3所述的MP方法一样,按照本发明的原子分解方法是迭代方法。
在步骤32期间,例如,按照MP方法的步骤22从原子的第一字典中选择第一原子
当原子
是带纹理原子以及第二字典的一个面片与之相联系时,该方法接着继续到步骤34。当原子
是没有面片与之相对应的解析原子或带纹理原子时,该方法接着继续到步骤38。
是与当前残差R
k-1最强关联,例如,标量积
最高的原子。将这个标量积标记成c_max。
在步骤34期间,从第二字典中确定第二原子
这个步骤由图6详细示出。
在步骤340期间,通过相位关联将用于确定
的残差矢量R
k-1与对应于
的第二字典的面片
相关联。相位关联在这里提供了残差矢量R
k-1与面片
的内容之间的位移(dx,dy)。这个位移决定大小与第一字典的原子相同的新原子的位置。
在步骤342期间,从面片中抽取就相位关联而言与残差矢量R
k-1最关联的面片部分。这个抽取部分被称为重新定相原子并标记成
按照一种变体,相位关联提供了残差R
k-1与面片
的内容之间的N个位移(dx,dy)。这N个位移指示就相位关联而言与残差矢量R
k-1最关联的N个面片部分。然后从面片中抽取这些N个部分,抽取的每个部分形成一个重新定相原子。当面片具有圆形对称性时,相位关联的残差可以在面片组上以循环方式位移。
在步骤36期间,从
和
当中,以及可能从
和在步骤342中抽取几个重新定相原子时重新定相的N个原子,选择与R
k-1最关联的原子。例如,比较关联c_max,即,
和与第二原子相联系的标记成c_phase的关联,即,
如果c_phase>c_max,则选择第二原子
否则,选择第一原子
在N个重新定相原子的情况下,所选的原子是就所涉及的原子与R
k-1之间的标量积而言,与R
k-1最关联的原子。
在步骤38期间,按照所选的原子更新矢量X
k和残差矢量R
k。当选择
时,矢量X
k的系数
按照如下公式计算:
而当选择
时,矢量X
k的系数
按照如下公式计算:
按照所选的原子,按如下:
或按如下:
更新残差R
k。
在步骤40期间,校验一下看看是否满足停止准则。如果N(Y-A'Xk)≤ρ,则终止该方法,否则,在步骤42期间将k加1,并使该方法从步骤32重新开始。A′包含第一字典的原子和可能包含从第二字典中选择的原子。最终矢量A′Xk是源信号Y的近似,其中K是最后一次迭代的索引。
将参考图5和图6所述的细化原子分解方法用于编码当前块。按照本发明的编码方法参考图7来描述。
在步骤52期间,如参考图5所述将原子分解应用在包含观察区,即,相邻块(在图4中C区)的像素的值作为数据的大小4n2×1的矢量Yp上。按照一种变体,将原子分解应用在包含观察区,即,相邻块(在图4中C区)的像素和已经取代了要预测的当前块的数据的初始预测块Bp0(在图4中P区)的像素的图像数据作为数据的大小5n2×1的矢量Ycp上。以前未重构的当前块的其他相邻块(在图3上NC区)的数据是零。初始预测块是,例如,按照标准块匹配方法通过标准时间预测确定的。本发明决不会受观察区的定义限制。在下文中,在已知可以将相同的分解应用于矢量Ycp的情况下考虑原子分解矢量Yp的情况。这个观察矢量Yp正是可用于MP方法的预测支持。
为了能够表示具有4n
2×1维的Yp的数据(不是Y的那些),通过移除其与C区外部的所有像素相对应的行来修改矩阵A。事实上,所有这些像素都是未知的,并具有零的值。因此获得大小为4n
2×9n
2、就高度而言更紧凑、标记为A
c的矩阵。因此迭代地应用参考图5所述的步骤32到40,以便利用矢量Yp作为观察数据确定X
opt。一旦停止准则N(Y
c-A′
cX
k)≤ρ得到核实,就停止该方法:X
opt=X
K,K是最后一次迭代的索引,且A′
c包含第一字典的原子和可能包含就高度而言更紧凑的从第二字节选择的原子。最终矢量
是与L区相对应的矢量Y的近似。
在步骤54期间,如图8所示从
中抽取与P区相对应的大小n
2的矢量
以块的形式重组(矢量化操作的逆操作)抽取的数据
重组数据代表当前块的新预测块Bp。
在步骤56期间,通过从当前块Bc中抽取预测块Bp确定残差块Br。
在步骤58期间,编码残差块。这个编码步骤一般包含将残差块变换成系数块,量化这些系数以及将它们熵编码在流F中。按照一种变体,它可以包含量化残差以及将它们熵编码在流F中。
按照一种变体,将迭代期间确定的序列组X
k存储在存储器中。按照这种变体,X
opt不再等于X
K,K是最后一次迭代的索引,而是
其中:
-A′p是与要预测的P区相联系的矩阵部分A′;以及
-Yp是与要预测的P区相联系,即包含P区的像素的图像数据的大小n2×1的矢量。
在图8中示出了Ap和Yp。这种变体使Xopt能够被确定为未必与C区上的最佳表示相对应的P区的最佳表示。以块的形式重组(矢量化操作的逆操作)数据重组数据代表当前块的新预测块Bp。按照这种变体,也将系数kopt编码在流F中。事实上,矢量YP的数据是解码器未知的。
图9示意性地示出了按照本发明重构当前块的方法。
在步骤60期间,为当前块解码残差块Br。例如,将流F的一部分解码成系数。去量化该系数,然后如果有必要,通过逆变换将其变换成在步骤58中编码方法使用的那种。因此获得残差块。按照一种变体,省略逆变换步骤,尤其当没有在步骤58中在编码器侧应用变换步骤时。
在步骤62期间,应用原子分解。这个步骤与编码方法的步骤52相同。这个步骤使矢量Y的近似能够得到确定
在步骤64期间,如图8所示从
中抽取与P区相对应的大小n
2的矢量
以块的形式重组(矢量化操作的逆操作)抽取的数据
重组数据代表当前块的新预测块Bp。
在步骤66期间,通过合并在步骤64中确定的预测块Bp和在步骤60中解码的残差块,例如,通过逐个像素相加重构当前块Bc。
图10示意性地示出了编码设备12。编码设备12在输入端上接收一个或多个图像。编码设备12能够实现参考图7所述的按照本发明的编码方法。每个图像被划分成多个像素的块,其每一个与至少一项图像数据相联系。编码设备12尤其实现利用时间预测的编码。在图10中只示出了编码设备12与通过时间预测的编码或INTER编码有关的模块。未示出视频编码器的普通技术人员熟知的其他模块(例如,选择编码模式、空间预测)。编码设备12尤其包含了计算模块1200,其能够例如通过逐个像素相减,从当前块Bc中抽取预测块Bp以生成残差块Br。计算模块1200能够实现按照本发明的编码方法的步骤56。它进一步包含能够变换残差块Br然后将其量化成量化数据的模块1202。变换T是,例如,离散余弦变换(DCT)。编码设备12还包含能够将量化数据编码成流F的熵编码模块1204。它还包含进行模块1202的逆操作的模块1206。模块1206先进行逆量化Q-1再进行逆变换T-1。模块1206与计算模块1208连接,计算模块1208能够,例如,通过逐个像素相加,合并来自模块1206的数据块和预测块Bp,以生成存储在存储器1210中的重构块。
预测模块1216确定预测块。预测模块1216能够实现按照本发明的编码方法的步骤52和54。
该编码方法的步骤58在模块1202和1204中实现。
图11示意性地示出了解码设备13。解码设备13在输入端上接收代表图像的流F。流F是,例如,编码设备12经由信道发送的。解码设备13能够实现参考图9所述的按照本发明的解码方法。解码设备13包含能够生成解码数据的熵解码模块1300。然后将解码数据发送给能够先进行逆量化后进行逆变换的模块1302。模块1302与生成流F的编码设备12的模块1206相同。模块1302与计算模块1304连接,计算模块1304能够,例如,通过逐个像素相加,合并来自模块1302的块和预测块Bp,以生成存储在存储器1306中的重构当前块Bc。计算模块1304能够实现重构方法的步骤66。解码设备13包含预测模块1308。预测模块1308从存储在存储器1306中的已经重构的数据中确定预测块Bp。预测模块1308能够实现按照本发明的重构方法的步骤62和64。该重构方法的步骤60在模块1300和1302中实现。
当然,本发明不局限于上述的实施例子。
尤其,本领域的普通技术人员可以将任何变体应用于所述实施例,并组合它们以便从它们的各种优点中获益。事实上,除了MP方法之外的其他方法也可以用于确定矢量Xopt。同样,如图12所示,也可以改变因果区的形式。在这个图形中,加阴影的是所考虑的因果区。本发明决不会局限于因果区只作为例示性例子示出的那些形式。在这个图形中,方块具有任何尺寸。从按照本发明的方法独立于图像中的方块的扫描次序的意义上来讲,因果块可以处在与预测块有关的任何位置中。
可以改变面片的形式和尺寸。同样,第二字典可以包含比第一字典中的带纹理原子少的面片。