视频编码中纹理合成的聚类修正的制作方法

文档序号:21548677发布日期:2020-07-17 18:02阅读:243来源:国知局
视频编码中纹理合成的聚类修正的制作方法

本发明涉及采用纹理合成进行图像和/或视频编码和解码。



背景技术:

目前,h.264/avc或h.265/hevc等混合视频编解码标准采用包括预测编码的压缩技术。将视频序列中的一个图像细分为多个像素块,然后对这些块进行编码。使用一个块的空间或时间相邻块中已经编码的像素对整个块进行预测,而不是以像素为单位对这个块进行编码。编码器只对这个块与其预测块之间的差值进一步处理,通常包括将这个块的像素变换为变换域中的系数。然后,通过量化和熵编码对这些系数进行压缩,生成码流。该码流还包括任何能够对编码视频进行解码的信令信息。例如,信令可以包括编码设置,例如输入图像大小、帧率、量化步长指示、图像中各个块使用的预测方式,等等。编码信令信息和编码信号以编码器和解码器均已知的方式排序在码流中。这样,解码器能够解析编码信令信息和编码信号。

根据所选配置,在保证相同的视觉质量的前提下,hevc与上一代标准高级视频编码(advancedvideocoding,avc)相比码率降低了40%到60%。虽然整体编码效率较高,但分析显示,hevc对于不同的信号特征表现出不同的性能。由于所产生的预测误差是导致码率增加的主要原因,所以根据之前的编码块能够对当前编码块进行预测对于实现高编码效率至关重要。纹理不复杂的信号部分或边界明显的前景对象可以进行高效编码,但是纹理非常复杂且不规则的信号部分不能进行高效编码。无论是通过帧内预测还是通过运动补偿,都很难预测这些非常复杂且不规则的纹理。

上述hevc的局限性可以追溯到编码系统中的一个前提条件,即重建视频的像素级高保真度是衡量视频编码效果佳的合适指标。然而,考虑到人类视觉系统的特性,而且观众从未看到过原始编码视频,所以像素级高保真度并不是必需的指标。纹理合成这种方法足以解决传统编码方法在处理复杂纹理时存在的效率低下问题。纹理合成算法的目标不是像素级保真度,而是为了获得令人满意的重建视频的主观质量。



技术实现要素:

鉴于上述背景技术,本发明的目的是提供一种根据纹理合成对视频信号进行高效编码和/或解码的机制。

这一目的通过独立权利要求的特征来实现的。

有益实施例是从属权利要求的保护主题。

具体而言,为了改进纹理合成,对视频图像执行聚类修正。通过将多项式拟合到可合成(纹理)区域并确定所述拟合多项式与所述可合成区域之间的差值,以识别不属于聚类的各个部分,从而执行所述聚类修正。

根据一方面,提供了一种用于对包括像素点的视频图像进行编码的装置。所述装置包括处理电路,所述处理电路用于:执行聚类,以识别所述视频图像中的纹理区域;通过将多项式拟合到所述识别出的纹理区域,确定所述多项式的一个或多个亮度参数;在所述识别出的纹理区域中,检测与所述拟合多项式的距离超过第一阈值的像素点,并将不包括一个或多个所述检测到的像素点的纹理区域作为修正后的纹理区域;将所述修正后的纹理区域与所述视频图像中不属于所述修正后的纹理区域的部分分开进行编码。

这种修正聚类还考虑颜色与所述纹理区域中的部分的颜色相似的小对象,可以更好地将像素点分配到可合成区域和不可合成区域。

在一个示例性实施方式中,所述处理电路还用于:估计所述检测到的像素点的位置,并将所述检测到的小于第二阈值的像素点的孤立聚类添加到所述修正后的纹理区域中。

这种额外的修正还使所述纹理区域和剩余区域均匀,还有助于更精确地识别所述纹理区域和非纹理区域。

在一个示例性实施方式中,所述处理电路还用于:估计所述纹理区域中的像素点的位置,并将所述纹理区域中的孤立聚类从所述修正后的纹理区域中排除,所述孤立聚类的大小超过第三阈值。

这种额外的修正同样还使所述纹理区域和剩余区域均匀,有助于更精确地识别所述纹理区域和非纹理区域。

例如,至少对亮度分量执行所述拟合及对与所述拟合多项式的距离超过距离阈值的像素点的检测。例如,所述多项式为平面。然而,本发明不限于此,所述多项式可以是至少一个方向(x,y)上的高阶多项式。平面拟合计算起来不复杂,而且还可以很好地大致估计所述纹理区域的亮度。另一方面,高阶多项式可能更精确。

在一个示例性实施方式中,通过k均值技术执行所述聚类,将所述k均值技术应用到所述相应像素点的色度分量和像素点坐标中的至少一个。

例如,对所述修正后的纹理区域进行编码还包括:确定与所述修正后的纹理区域中的一个片段对应的纹理块,并对所述纹理块进行编码;确定用于修改所述纹理块的参数集,并对所述参数集进行编码;对纹理位置信息进行编码,所述纹理位置信息指示所述视频图像中的部分是否属于所述修正后的纹理区域。

例如,所述参数集包括所述一个或多个亮度参数。由于计算的原因,为了调整亮度和执行聚类,采用相同拟合可能是有利的。

在一个示例性实施方式中,编码器通过变换和量化对所述视频图像中不属于所述修正后的纹理区域的部分进行编码。

所述处理电路还可以用于:将所述视频图像划分为多个块;判断每个块是否可合成,其中,如果一个块中的所有像素点都属于所述修正后的纹理区域,则确定所述块可合成,否则,确定所述块不可合成;将所述纹理位置信息编码为一个位图,所述位图根据所述判断指示每个块是否可合成。

以大于像素点的单元为单位对该图像进行离散化,能够更有效地对所述纹理区域位置进行编码。此外,图像离散化与目前一些编解码器执行的分块操作互相协调,使得并行处理产生更多优点。

根据一方面,提供了一种用于对使用根据任一上述方面或示例所述的装置进行编码的视频图像进行解码的装置。所述装置包括处理电路,所述处理电路用于:将所述修正后的纹理区域与所述视频图像中不属于所述修正后的纹理区域的部分分开进行解码。在所述解码装置中,所述处理电路还用于:对纹理位置信息进行解码,所述纹理位置信息指示所述视频图像中的每个块是否属于包括纹理区域的可合成部分。

根据另一方面,提供了一种用于对包括像素点的视频图像进行编码的方法。所述方法包括:执行聚类,以识别所述视频图像中的纹理区域;通过将多项式拟合到所述识别出的纹理区域,确定所述多项式的一个或多个亮度参数;在所述识别出的纹理区域中,检测与所述拟合多项式的距离超过第一阈值的像素点,并将不包括一个或多个所述检测到的像素点的纹理区域作为修正后的纹理区域;将所述修正后的纹理区域与所述视频图像中不属于所述修正后的纹理区域的部分分开进行编码。

所述方法还可以包括:估计所述检测到的像素点的位置,并将所述检测到的小于第二阈值的像素点的孤立聚类添加到所述修正后的纹理区域中。根据权利要求13或14所述的方法,其特征在于,所述方法还包括:估计所述纹理区域中的像素点的位置,并将所述纹理区域中的孤立聚类从所述修正后的纹理区域中排除,所述孤立聚类的大小超过第三阈值。

例如,至少对亮度分量执行所述拟合及对与所述拟合多项式的距离超过距离阈值的像素点的检测。根据权利要求16所述的方法,其特征在于,所述多项式为平面。

此外,通过k均值技术执行所述聚类,将所述k均值技术应用到所述相应像素点的色度分量和像素点坐标中的至少一个。

对所述修正后的纹理区域进行编码还包括:确定与所述修正后的纹理区域中的一个片段对应的纹理块,并对所述纹理块进行编码;确定用于修改所述纹理块的参数集,并对所述参数集进行编码;对纹理位置信息进行编码,所述纹理位置信息指示所述视频图像中的部分是否属于所述修正后的纹理区域。

例如,所述参数集包括所述一个或多个亮度参数。

在一个示例性实施方式中,编码器通过变换和量化对所述视频图像中不属于所述修正后的纹理区域的部分进行编码。

所述方法还可包括:将所述视频图像划分为多个块;判断每个块是否可合成,其中,如果一个块中的所有像素点都属于所述修正后的纹理区域,则确定所述块可合成,否则,确定所述块不可合成;将所述纹理位置信息编码为一个位图,所述位图根据所述判断指示每个块是否可合成。

根据一方面,提供了一种用于对使用如上所述方法进行编码的视频图像进行解码的方法。所述方法包括:将所述修正后的纹理区域与所述视频图像中不属于所述修正后的纹理区域的部分分开进行解码。所述解码方法可以包括:对纹理位置信息进行解码,所述纹理位置信息指示所述视频图像中的每个块是否属于包括纹理区域的可合成部分。

根据本发明一方面,提供了一种存储指令的非瞬时性计算机可读存储介质。当处理器/处理电路执行所述指令时,所述指令使得执行根据任一上述方面或实施例或其组合所述的步骤。

附图说明

下文将参考所附附图更加详细地描述示例性实施例,其中:

图1为同时支持纹理编码和混合编码的编码器的方框图;

图2为同时支持纹理解码和混合解码的解码器的方框图;

图3为同时支持纹理编码和混合编码的编码器的功能的示意图;

图4为同时支持纹理解码和混合解码的解码器的功能的示意图;

图5为纹理区域重建的不同阶段中的图像部分的示意图;

图6a为混合编码器的方框图;

图6b为包含可选纹理编码器的混合编码器的方框图;

图7a为混合解码器的方框图;

图7b为包含可选纹理解码器的混合解码器的方框图;

图8为图像中可合成区域的检测处理的示意图;

图9为图像中可合成区域的运动补偿处理的示意图;

图10为图像中可合成区域的亮度调整处理的示意图;

图11为图像中可合成区域的频率调整处理的示意图;

图12为亮度调整处理的不同阶段得到的处理结果的示意图;

图13为频率调整处理的不同阶段得到的处理结果的示意图;

图14为编码器采用纹理编码技术生成的信令信息的示意图;

图15为解码器采用纹理解码技术使用的信令信息的示意图;

图16为组合hevc和纹理解码器的处理流程的示意图;

图17为将平面拟合到可合成图像区域上的示意图;

图18为可合成区域和拟合平面的像素点之间的差值计算的示意图;

图19为可合成区域和拟合平面的像素点之间计算得到的示例性距离映射的示意图;

图20为待聚类的示例性图像和采用k均值算法检测可合成区域的结果的示图图;

图21为通过k均值算法检测可合成区域的示例性结果与根据与拟合平面的比较将一些其它像素点标记为不可合成的结果进行比较的示意图;

图22为根据与拟合平面的比较将一些其它像素点标记为不可合成的结果与聚类修正结果进行比较的示意图;

图23为图像中可合成区域的检测和修正处理的示意图。

具体实施方式

下文参考附图进行描述,所述附图是本发明的一部分,并通过说明示出了本发明实施例的具体方面或者本发明实施例可以使用的具体方面。应理解,本发明实施例可以在其它方面中使用,并包括附图中未描绘的结构变化或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,且本发明的范围由所附权利要求书界定。

例如,应理解,与所描述的方法相关的公开内容对于用于执行所述方法的对应设备或系统也同样适用,反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括一个或多个单元,例如,功能单元,来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元分别执行多个步骤中的一个或多个步骤),即使附图中未明确描述或说明这种一个或多个单元。另一方面,例如,如果根据一个或多个单元,例如,功能单元,描述具体装置,则对应的方法可以包括一个步骤来执行一个或多个单元的功能(例如,一个步骤执行一个或多个单元的功能,或多个步骤分别执行多个单元中的一个或多个单元的功能),即使附图中未明确描述或说明这种一个或多个步骤。此外,应理解,除非另外明确指出,本文所述的各种示例性实施例和/或方面的特征可以相互组合。

p.ndjiki-nya,b.makai,a.smolic,h.schwarz和t.wiegand在2003年的pcs上发表的《videocodingusingtextureanalysisandsynthesis》中展示了关于使用纹理合成进行视频编码的一些早期研究。在编码端,半自动地将纹理归类到包含相关和不相关主观细节的区域中。使用相似统计特性来查找均匀区域。非均匀块进一步分割,而均匀块保持不变。分割步骤得到的分割掩码通常呈现出一个明显进行过度分割的帧。因此,需要对非均匀块进行后处理,纹理分析器执行第二步骤,即合并步骤。为此,将在分割步骤中识别出的均匀块进行成对比较,并将相似块合并到形成均匀块本身的单个聚类中。如果得到的聚类稳定,则停止合并。根据mpeg-7描述符、边缘直方图和颜色直方图对两种块之间的相似度进行估计。

a.dumitras和b.g.haskell于2003年发表在《ieeetransactionsoncircuitsandsystemsforvideotechnology》的第13卷第2期上的《atexturereplacementmethodattheencoderforbit-ratereductionofcompressedvideo》中的一项研究提出了一种将原始纹理从原始帧的选定区域中移除的编码器。对移除的纹理进行了分析。然后,使用所产生的纹理参数和约束条件集对新的纹理进行合成。通过区域分割和纹理移除步骤,识别原始帧中颜色特征与周围像素或用户选择的一些像素的颜色特征相似的所有像素,并替换分割区域中的纹理。颜色特征是通过rgb空间中的颜色向量的角映射和模映射来估计的。

回顾现有技术,发明人发现了一些缺点。通过上文提到的研究,对于所提出的视频序列,获得了一些看似合理的结果。然而,这些视频序列大多数是简单的不包括有挑战性特征的序列。挑战性特征包括纹理的光照和频率变化等。同时,也没有考虑倾斜和变焦等这些比较复杂的摄像机运动。有一些人尝试重建光照变化。他们利用相邻像素的信息来重建可合成区域,这样在边缘处实现了看似合理的亮度重建,但不能合理地重建光照梯度。因此,不太适合较大区域。此外,大多数处理纹理编码的最新方法仅仅指出,一个图像可以分解为可合成区域和不可合成区域。但是很少给出分解的详细描述,或者假设分解是已知的或者不是完全自动、可靠的,而是需要用户辅助。换句话说,只有少数已知方法对可合成区域进行自动区域检测,但都没有说明如何处理聚类检测过程中产生的错误。

本发明提供了一种方法,用于提供修正聚类(识别可合成区域和不可合成区域),使用相对较小的变量集进行纹理、运动、亮度梯度和频率分量重建。

如背景技术部分所述,纹理合成这种流程足以解决传统编码方法在处理复杂纹理时存在的效率低下问题。纹理合成算法的目标不是像素级保真度,而是为了获得令人满意的重建视频的主观质量。

由于这个原因,将编码视频分割为可合成区域和不可合成区域。然后,通过纹理合成来重建可合成区域。信号的剩余部分进行传统编码。因此,可合成区域的码率成本得到大幅降低,另外,重建这些区域可以获得高主观质量。而且,可以将释放出的码率资源重新分配给传统编码信号。因此,可以提高这些信号部分的质量,同时保持相同的码率。

执行纹理编码的重要前提之一是识别出待合成的纹理区域。本发明提供了一种识别图像中聚类的有效方法,即设置或定义可合成区域和不可合成区域。

进行纹理编码的对应编码器100如图1所示。图1示出了输入图像进入分析和分解单元110。输入图像可以是视频序列中的一个图像。然而,需要说明的是,本发明一般也适用于静止图像。在分析和分解单元110中,对图像进行分析,并将图像分割为可合成区域和不可合成区域。例如,将图像细分为大小相同或不定的多个块,并判断每个块是属于可合成区域还是属于不可合成区域。将可合成区域提供给纹理分析单元120,这些区域在纹理分析单元120进行参数化。例如,每个块是通过重建各个块所需要的参数集来描述的。这些纹理参数进行二值化,并从纹理分析单元120输出到复用器140。复用器140将这些纹理参数插入到码流中。将纹理参数插入到码流中要遵循编码器和解码器双方已知的预定义码流语法和语义,这样解码器能够将码流再次解析为语法元素,并根据语义赋予适当的含义。

将不可合成区域输入到进行传统图像或视频编码的hevc/avc编码器130。需要说明的是,hevc/avc编码器仅仅是传统编码器的一个示例。一般来说,可以采用任何有损或无损图像或视频编码器。hevc/avc编码器130生成码流的各个部分,这些部分与纹理分析单元120生成的码流的各个部分进行复用。需要说明的是,一般可以生成两条单独的码流,这样可以避免复用。

对应地,图2示出了能够对图1的编码器生成的码流进行解码的示例性解码器200。码流包括两部分,通过hevc/avc编码器130和纹理分析单元120进行编码,输入到解复用器240。解复用器将码流划分为输入到纹理合成单元220的纹理参数部分和输入到hevc/avc解码器230的hevc/avc部分。纹理合成单元220使用纹理参数进行纹理合成,并将合成纹理区域输出到重建单元210。重建单元210将合成区域与使用传统解码器230进行解码的区域组合起来。对应地,hevc/avc解码器230(传统解码器)对通过解复用器240输入的码流的一部分进行解码,并将解码区域提供给重建单元210。重建单元将合成区域和传统解码区域两者组合起来,生成输出图像。

在本文中,“图像”一词是指数字图像,即包括一个或多个分量颜色的像素亮度值的像素点的二维矩阵。例如,一个图像可以是包括n×m个像素点的灰度图像,每个像素点取0~255个灰度级(每个值对应8个位)或0~1023个灰度级(每个值对应10个位)内的值,或者具有不同范围(每个值对应更多或更少位,或根据itu-rbt.2020等标准定义)。或者,一个图像可以是包括红、绿、蓝三种颜色分量的像素点的彩色图像,每种颜色的每个像素点可以取0~255个级别内的值。然而,本发明不限于任何特定颜色空间。如本领域技术人员所知,一般可以使用yuv、ycbcr等任一颜色空间,可能通过对颜色分量进行降采样得到(例如,在空间域中,每隔一个像素只采样一次)。另外,除了上述8位灰度级或色位深度,还可以使用其它灰度级或色位深度量化方法,例如,10位量化方法或任何其它位量化方法。这里的“图像”一词在大多数情况下与“图像”一词用作同义词。“帧”一词是指一个图像或图像,为视频序列的一部分。视频序列即视频帧,视频帧与“视频图像”用作同义词。

这里的“视频”一词是指捕获一个或多个场景的一系列图像。该词在大多数情况下与“运动图像”用作同义词。通常情况下,摄像机以25帧/秒、30帧/秒或60帧/秒等的其它预定义时间分辨率捕获视频中的帧。然而,本发明不限于自然视频序列。还可以通过电脑制图和/或动画生成一个视频。

“像素”一词是指定义亮度和/或颜色的一个或多个像素点。相应地,一个像素可以包括定义亮度等的单个像素点。然而,一个像素还可以包括与红色、绿色、蓝色等不同颜色或者亮度及相应色度对应的各个像素点,具体对应哪个取决于所使用的颜色空间。

简单地使用合成纹理替换可合成区域会产生三个主要问题:

(1)后续帧中的合成纹理需要保持一致,即需要补偿摄像机运动。

(2)根据单个小的纹理块重建纹理时,可能会丢失亮度信息、视角效果和模糊信息。

(3)合成区域与未合成区域之间的块效应可能导致重建视频的主观质量变差。

此外,错误聚类到可合成区域中会降低纹理编码的效率。在本发明所示的一些实施例中,提供了一种用于纹理分析和合成的完整处理流程。具体而言,提供了一种同样适用于高质量体育视频广播应用的复杂分解技术,降低了码率又提高了主观质量。通过基于与拟合到亮度通道的多项式的距离的聚类修正技术,可以实现这一点。

本发明的纹理合成方案解决了上述问题中的一些问题。具体而言,本发明使得有可能通过高阶多项式拟合等进行频率阻尼,从而可以补偿视角效果和运动模糊。这尤其解决了上述问题(2)。

另外,或者在可选实施例中,可以通过超平面拟合等进行运动补偿。另一种有利的方式可能是,采用多项式拟合和/或去块效应方法进行亮度重建,从而通过将最小分割(mincut)算法应用到区域边界上的相邻块来减少合成区域和未合成区域之间的块效应。

图3示出了图1的编码器100的功能。具体而言,本发明实施例提供的编码器300接收输入视频帧301,并将视频帧310分解310为可合成部分(纹理)320和不可合成剩余部分(其余部分)330。此外,关于分解340的控制信息作为编码器的输出。例如,输出块映射,指示输入视频帧中的每个块是属于可合成区域还是属于不可合成区域。对于可合成区域,还可以输出代表性纹理块350。接着,使用传统编码器对不可合成区域330进行编码360。本示例中的传统编码360是hevc编码,在输出端生成hevc码流。其次,对纹理320进行分析,即根据代表性纹理块和利用可调参数进行的预定义操作,大致估计每个纹理块。换句话说,对于特定纹理块和特定纹理块参数,选择预定义操作,以使纹理块与该纹理块之间的差值最小化。在图3中,预定义操作包括运动补偿370、亮度编码380和频率调整390。然后,输出执行这三个操作得到的参数。将输出的hevc码流、纹理参数、纹理块和块映射存储起来和/或进行传输,生成编码视频。例如,可以采用hevc码流等码流以及二值化的纹理参数、纹理块和块映射的形式将编码视频存储起来和/或进行传输。

图4示出了能够对从上文结合图3描述的编码器300中输出的编码视频进行解码的解码器400。具体而言,从通过存储器获取的数据或通过通道接收的数据中解析/解码出上述参数,包括hevc码流、纹理参数、纹理块和块映射。将hevc码流输入到hevc解码器460中。hevc解码器460根据hevc标准执行解码,并输出解码后的不可合成区域430。将纹理参数和纹理块信息450输入到合成单元470中。合成单元470根据纹理块通过输入的参数对纹理块进行运动补偿、亮度编码和频率调整,从而进行纹理合成。组合单元410根据接收到的块映射440将所得到的纹理420与不可合成部分430组合起来,得到重建视频帧401。

换句话说,本发明的思想在于:将图像301分解310为纹理区域320和非纹理区域330。可以选择小的图像纹理块350来表示纹理区域320的最重要的结构信息。使用基于纹理块的纹理合成算法470,解码器400根据纹理块450重建纹理区域420的结构信息。由于简单地使用合成图像替换纹理区域时会丢失光照信息和模糊信息,所以在片头中将光照信息和模糊信息指示为稀疏表示。对于图像序列,只需要对相似纹理的跟踪区域进行单次合成。

在本文中,“纹理”一词是指一个图像部分(包括一个或多个颜色分量),并包括有关该图像部分中颜色或亮度的空间设置的信息。图像部分通常具有空间均匀性或者包括运动场景的图像序列,这些运动场景具有时间上的某些平稳特性,参见:u.s.thakur,k.naser,m.wien于2016年12月发表在pcs上的《dynamictexturesynthesisusinglinearphaseshiftinterpolation》。

图5示出了图4所示的图像重建过程中产生的各种部分结果。具体而言,通过纹理块550生成纹理图像510,简单地说就是将这个纹理块复制到整个图像区域。接着,如上所述,通过运动、亮度和频率重建等进一步调整合成纹理510。然后,将调整后得到的图像520与传统编码图像530组合起来,传统编码图像530中的发黑部分与纹理区域对应。组合得到的解码图像500包括重建纹理(可合成)区域和不可合成(其余)区域。

图6a示出了采用混合编码的传统编码器605的概述。混合编码是指包括预测620、变换630、量化640和熵编码650等多个编码步骤或阶段的编码。需要说明的是,avc或hevc等传统编码器也采用混合编码。

下面对hevc编码和解码进行简要介绍。hevc是high-efficiencyvideocoding的缩写,是avc(h.264)视频编码标准的下一代。

编码器605包括用于接收视频流中的帧或图像的输入图像像素点的输入端和用于生成编码视频码流的输出端。本发明中的“帧”一词用作图像的同义词。然而,需要说明的是,如果进行隔行扫描,本发明还适用于场域。一般而言,一个图像包括m×n个像素。这些像素对应于图像像素点,并包括一个或多个颜色分量。为了简单起见,以下描述使用像素,即亮度的像素点。然而,需要说明的是,本发明中的运动向量搜索可以应用到任何颜色分量,包括色度或rgb等搜索空间中的分量。另一方面,对一个分量只进行运动向量估计并将确定的运动向量应用到更多(或全部)分量,这可能是有利的。

待编码输入块(有时也称为编码单元(codingunit,cu)或处理单元(processingunit,pu))的大小不一定相同。cu是预定义大小的视频序列的基本编码结构,包含图像的一部分(例如,64×64个像素)。cu通常是规则的矩形,通过为该块的所选编码模式指定的语法来描述图像的编码区域。

一个图像可以包括不同大小的多个块,不同图像的块栅格也可以不同。在一种说明性实现方式中,编码器605用于对视频流进行预测、变换、量化和熵编码。变换单元630、量化单元640和熵编码单元650分别执行变换、量化和熵编码,以生成编码视频码流作为输出。

视频流可以包括多个帧,其中,将每个帧划分为一定大小的多个块,这些块要么进行帧内编码,要么进行帧间编码。例如,视频流中的第一帧的各个块通过帧内预测单元进行帧内编码。该帧内预测单元可以是预测单元620的一部分。帧内编码帧只使用同一帧内的信息进行编码,这样可以进行独立解码,而且能够在码流中提供入口点进行随机接入。视频流中的其它帧的各个块可以通过帧间预测单元进行帧间编码。该帧间预测单元可以是预测单元620的一部分。使用之前的编码帧(参考帧)中的信息可以减少时间冗余,从而根据参考帧中的一个块来预测帧间编码帧的每个块。模式选择单元也可以是预测单元620的一部分,用于选择帧内预测单元还是帧间预测单元对帧中的块进行处理。这种模式选择单元还控制帧内预测或帧间预测的参数。为了能够刷新图像信息,帧间编码帧内可以有帧内编码块。此外,可以定期将只包含帧内编码块的帧内编码帧插入到视频序列中,从而为解码提供入口点,即解码器能够在没有获取到之前编码帧的信息的情况下就开始解码的点。

帧内估计单元和帧内预测单元都是执行帧内预测的单元。具体而言,帧内估计单元还可以根据原始图像的信息推导出预测模式,而帧内预测单元提供对应的预测值,即在所选预测模式下预测到的像素点,进行差分编码。为了执行空间预测或时间预测,反量化单元660和逆变换单元670可以进一步处理编码块。在重建块之后,可以采用环路滤波器,以进一步提高解码图像的质量。接着,滤波块形成参考帧,然后将参考帧存储到解码图像缓冲区中。编码端的这种解码环路(解码器)的优点是,产生了与解码端重建的参考图像相同的参考帧。因此,编码端和解码端以对应的方式操作。这里的“重建”一词是指通过将预测块添加到解码残差块来获取重建块。

帧间估计单元接收待帧间编码的当前帧或图像中的一个块以及来自解码图像缓冲区的一个或几个参考帧,作为输入。运动估计由帧间估计单元执行,而运动补偿由帧间预测单元进行。基于某个成本函数通过运动估计获取运动向量和参考帧,还是使用待编码的原始图像。例如,运动估计单元可以进行初始运动向量估计。这时,初始运动向量可以在码流中直接采用向量的形式指示或者指示为索引。该索引是指编码器和解码器根据预定规则以相同的方式构建的候选列表中的一个运动向量候选。然后,通过运动补偿推导出当前块的预测值,这个预测值看作是与参考帧中的当前块的位置对应的块向参考帧中的参考块进行平移,即运动向量。帧间预测单元输出当前块的预测块,其中,所述预测块使成本函数最小化。例如,成本函数可以是待编码的当前块与其预测块之间的差值,即成本函数使残差块最小化。例如,通过计算候选参考图像中的当前块和候选块的所有像素(像素点)之间的绝对差和(sumofabsolutedifference,sad)使残差块最小化。然而,一般可以使用任何其它相似度度量,例如,均方误差(meansquareerror,mse)或结构相似度度量(structuralsimilaritymetric,ssim)。

然而,成本函数也可以是对这种帧间块进行编码所需的位数和/或这种编码产生的失真。因此,率失真优化流程可以用于确定运动向量选择和/或通常用于确定编码参数,例如,判断对块进行帧间预测还是帧内预测以及使用哪些设置。

帧内估计单元和帧间预测单元接收待帧内编码的当前帧或图像中的一个块以及当前帧的重建区域内的一个或几个参考像素点,作为输入。这时,帧内预测通过当前帧的参考像素点的函数来描述当前帧中的当前块的像素。帧内预测单元输出当前块的预测块,其中,所述预测块有利于使待编码的当前块与其预测块之间的差值最小化,即,使残差块最小化。可以通过率失真优化流程等使残差块最小化。具体而言,通过参考像素点的方向插值获取预测块。可以通过率失真优化和/或计算上述与帧间预测相关的相似度度量来确定方向。

帧间估计单元接收待帧间编码的当前帧或图像中的一个块或通用格式的图像像素点以及两个或两个以上解码图像,作为输入。这时,帧间预测通过参考图像的参考图像像素点的运动向量来描述当前帧的当前图像像素点。帧间预测单元输出当前图像像素点的一个或多个运动向量,其中,运动向量指向的所述参考图像像素点有利于使待编码的当前图像像素点与其参考图像像素点之差最小化,即,使残差图像像素点最小化。接着,帧间预测单元提供当前块的预测值,进行差分编码。

然后,变换单元630对当前块与其预测块之差进行变换。预测块即残差块。量化单元640对变换系数进行量化,熵编码单元650对变换系数进行熵编码。由此生成的编码图像数据即编码视频码流,包括帧内编码块和帧间编码块以及对应的信令(例如,模式指示、运动向量指示和/或帧内预测方向)。变换单元630可以进行傅里叶或离散余弦变换(dft/fft或dct)等线性变换。这种向空间频率域的变换的优点是,所得到的系数通常在较低频率下具有较大值。因此,在有效系数扫描(例如z形扫描)和量化之后,所得到的值序列通常在开始时具有一些较大值,结尾有一串0。这能够进一步提高编码效率。实际上,量化单元640通过降低系数值的分辨率执行有损压缩。

然后,熵编码单元650将二进制码字分配给系数值,从而生成码流。熵编码单元650还对信令信息进行编码(生成语法元素值并对语法元素值进行二值化)。对一些语法元素进行变长编码或定长编码。具体而言,可以采用上下文自适应二进制算术编码(context-adaptivebinaryarithmeticcoding,cabac)。

需要说明的是,码流是根据标准定义的语法形成的。例如,各个块被分组到可单独解码的片,即不依赖于同一图像中的其它片。片内各块的压缩视频像素点通常位于称为片头的控制信息(信令信息)之前。这种控制信息携带对片内各块进行编码/解码通用的参数。此外,序列参数集(sequenceparameterset,sps)和图像参数集(pictureparameterset,pps)是码流(容器)中携带控制信息的各个部分。控制信息与一个或多个帧或整个视频有关。在这个意义上,视频序列是一组呈现运动图像的后续帧。具体而言,hevc中的sps是采用格式化消息的形式发送的参数集,该格式化消息包含正确解码视频流所需的基本信息,必须在每个随机接入点的开始处指示sps。pps是采用格式化消息的形式发送的参数集,该格式化消息包含正确解码视频序列中的图像所需的基本信息。

图6b示出了补充有以纹理分析单元690为基础的编码器的传统编码器的概述。从图6b可以看出,首先将输入视频细分为可合成部分和不可合成部分。将可合成部分提供给纹理分析单元690,纹理分析690单元输出上文结合图3所述的码流中的纹理参数。

图7a示出了能够对结合图6a所述的传统编码器605生成的码流进行解码的传统解码器700的概述。具体而言,传统解码器700接收码流,熵解码器710对码流进行解码,从而产生量化变换系数和控制信息。将量化变换系数输入到反量化单元720、逆变换单元730,将所得到的残差块用于重建。控制信息用于控制预测模块740,预测模块740生成预测块以与重建单元750中的残差块组合,得到图像的重建块。图像中的所有块都重复执行这种方法。

类似地,hevc视频解码在图7a中可见。图7a示出了视频解码器700。视频解码器700具体包括解码图像缓冲区、帧间预测单元和帧内预测单元,它们形成块预测单元740。解码图像缓冲区用于存储根据编码视频码流重建的至少一个(对应单向)或至少两个(对应双向)参考帧。所述参考帧不同于编码视频码流中的当前帧(当前解码帧)。帧内预测单元用于生成预测块,该预测块是待解码块的估计值。帧内预测单元用于:根据从解码图像缓冲区获得的参考像素点,生成预测块。

解码器700用于对视频编码器605生成的编码视频码流进行解码。优选地,解码器700和编码器605都为待编码/解码的相应块生成相同的预测块。解码图像缓冲区和帧内预测单元的特征与图6的解码图像缓冲区和帧内预测单元的特征相似。

视频解码器700包括同样出现在视频编码器605中的其它单元,例如,反量化单元720、逆变换单元730和环路滤波器,它们分别对应于视频编码器605中的反量化单元720、逆变换单元730、环路滤波器。

熵解码单元710用于对接收到的编码视频码流进行解码,并对应地获取量化残差变换系数和信令信息。将量化残差变换系数输送到反量化单元720和逆变换单元730,从而生成残差块。重建单元750将残差块添加到预测块中,并将添加后的结果输送到环路滤波器,得到解码视频。解码视频中的帧可以存储在解码图像缓冲区中并用作要进行帧间预测的解码图像。熵解码单元710可以对应于解码器,从码流中解析出信号像素点以及语法元素值,然后根据语义规则映射对应的控制信息内容。

图7b示出了补充有以纹理分析单元760为基础的解码器的传统解码器的概述。具体而言,纹理合成单元760接收纹理参数(包括纹理块信息)并合成纹理块。将纹理块用于重建,在这种情况下,重建只是根据块映射将合成纹理块插入到图像的合适位置上,块映射也是熵解码器710从码流获取的。

下面详细描述了本发明关于纹理分析和合成的不同部分的实施例。

具体而言,编码器执行的纹理分析包括:检测和跟踪一个或多个纹理区域,提取代表性纹理块,确定调整参数,以帧或块为单位调整基于纹理块的合成区域,以及为解码器指示纹理区域的位置、纹理块和调整参数。上述解码包括:提取指示的信息,根据指示的纹理块和调整参数来重建纹理,以及根据指示的位置信息将重建纹理与剩余图像组合起来。

区域检测

根据一个实施例,实现纹理区域编码的处理电路用于:通过聚类,检测视频帧中的纹理区域;生成纹理区域信息,所述纹理区域信息指示所述纹理区域在所述视频帧中的位置;将所述纹理区域信息插入码流中。任何能够识别相似字符组成的图像部分的已知方法都可以用于执行所述聚类。一般而言,除聚类以外的其它方式也可以用于检测所述纹理区域,例如,使用经过训练的包含或不包含纹理特性先验知识的神经网络,提取基于块的特征,在提取特征满足某些条件时将块归类为纹理。

图3示出了执行区域检测的分解单元310。图8示出了分解单元310执行聚类和纹理块提取的处理流程。具体而言,为了检测可合成区域,首先需要将输入图像801聚类810到纹理相似的不同区域中。在一个实施例中,这一操作通过k均值聚类来完成,其中,每个像素的特征向量由三个颜色值以及图像坐标组成。这种五维向量不仅具有相似的颜色,而且还具有空间邻近性。例如,macqueen,j.b.(1967年)发表在加州大学出版社出版的第五届《berkeleysymposiumonmathematicalstatisticsandprobability》论文集的第281页至第297页上的《somemethodsforclassificationandanalysisofmultivariateobservations》中描述了k均值聚类。

可以考虑其它聚类和分类方法。本发明不限制参考任何特定的聚类和分类方法。还需要说明的是,一个像素可以包括一个或多个颜色值,并不限于上述举例的三个值。例如,可能存在多个颜色空间,包括三种颜色分量,例如,红、绿和蓝。此外,本发明实施例还适用于灰度图像。

图8示出了聚类810和纹理块提取步骤820。上半部分示出了,使用聚类算法(例如,k均值算法)将图像分割为聚类信息830和剩余图像840。在本实施例中,可以将聚类信息830写入文本文件中。聚类信息可以是一个位图,位图中的每位表示一个图像像素,并指示该图像像素是属于纹理聚类还是属于剩余图像。或者,以块为单位进行聚类,即对每个块是属于纹理区域还是属于剩余图像区域做出判断。对应地,聚类信息可以表示为一个位图,位图中的每位表示输入图像中的相应块是属于可合成区域(纹理)还是属于不可合成区域(剩余图像)。

剩余区域840由原始图像组成,其中,将区域中适合纹理合成的所有像素值设置为黑色。黑色仅仅是示例性的,表示将像素像素点值设置为0。然而,本发明不限于这种标记纹理区域的方式。对于一些类型的编码,使用纹理部分周围像素值的内插值来代替纹理部分,这可能是有利的。在一个可选方案中,可以强制使用hevc的跳过(skip)模式等下对纹理部分进行编码。

图8的下半部分示出了纹理块提取步骤820,即复制检测为可合成区域的一小部分区域850。在本实施例中,纹理块850的大小为64×64个像素。需要说明的是,纹理块的大小可能与本示例给出的大小不同。相应地,可以选择较小或较大的纹理块。纹理块越大,纹理的方差越大。另一方面,传输较大的纹理块需要更高的速率。需要说明的是,纹理块的形状不一定是正方形。纹理块可以是n×m大小的矩形,其中,n和m是互不相同的非零整数。换句话说,本发明不限于纹理块的任何形状或大小。

本发明不限于采用单个纹理块。或者,可以识别一个或多个纹理块并将其提供给解码器,以重建一个纹理区域,这可能需要关于要使用的纹理块的信息或对多个纹理块进行组合的权重信息。

例如,使用包括游程编码等无损压缩的位图压缩方法或传真压缩中已知的其它方法来进一步压缩聚类信息。然而,也可以将聚类信息插入到未压缩的码流中。类似地,纹理块850可以采用未压缩的形式,或采用赫夫曼(huffman)编码、算术编码等任意可变长度编码进行进一步压缩。

根据本发明,通过计算亮度和颜色通道与多项式之间的差值,对可合成区域和不可合成区域的分解进行修正。一种有实用性的分解可以直接产生更好的主观质量。

具体而言,使用任意通用聚类技术对(视频)图像的像素点进行分类并找到纹理区域。然后,对找到的纹理区域进行修正。具体而言,将一个平面拟合到找到的纹理区域中的像素点的亮度值。对于纹理区域中的每个像素点,计算相应像素点与拟合平面表面之间的距离。该距离定义有一个阈值,以区分正确和错误聚类的像素点。正确聚类的像素点为距离小于阈值的像素点,而错误聚类的像素点为差值大于等于阈值的像素点。

换句话说,根据一个实施例,提供了一种对包括像素点的视频图像进行编码的装置。所述装置包括处理电路。所述处理电路用于:

-执行聚类,以识别所述视频图像中的纹理区域;

-通过将多项式(例如,一阶或高阶2d多项式)拟合到所述识别出的纹理区域(具体而言,拟合到所述识别出的纹理区域的亮度(brightness/luminance)和/或色度),确定所述多项式的一个或多个亮度参数(例如,a0、a1和a2);

-在所述识别出的纹理区域中,检测与所述拟合多项式的距离超过第一阈值的像素点;

-将不包括一个或多个(例如,所有)所述检测到的像素点的纹理区域作为修正后的纹理区域;

-将所述修正后的纹理区域与所述视频图像中不属于所述纹理区域的部分分开进行编码。

换句话说,所述装置用于:修正所述纹理区域,使得所述修正后的纹理区域不包括一个或多个或全部所述检测到的像素点。所述装置还可以用于:将一个或多个或所有检测到的像素点分配给不可合成区域。

所述处理电路可以包括一个或多个硬件或软件组件,还可以执行如上所述的纹理编码的更多功能以及对所述不可合成区域执行的混合编码的功能。

上述聚类修正是图3中的分解的一部分,更具体地说,在图8的聚类810中执行。结合图14和图15看时,上述聚类及其修正由图14中表示为“块”的功能单元执行,对可合成区域的指示信息进行对应解码由图15中标记为1510的功能单元执行。

在一个示例中,通过k均值技术执行所述聚类,将所述k均值技术应用到所述相应像素点的色度分量和像素点坐标中的至少一个。例如,lloyd,stuartp(1982年)发表在《ieeetransactionsoninformationtheory》的第28卷第2期的第129页至第137页上的《leastsquaresquantizationinpcm》中详细描述了k均值技术。

k均值聚类能够将视频图像分割为可合成区域和不可合成区域,但是可能会挡住一些细节,即虽然属于不可合成区域但却归类为可合成区域的一些细节。相应地,本发明提供了一种方法。所述方法利用以下事实:在亮度和/或颜色(色度)通道的像素点中检测不属于可合成区域的细节。例如,上述检测可能仅应用到亮度(例如,yuv颜色空间中的y),或rgb颜色空间中的r、g、b分量中的一个,或颜色空间中的所有颜色分量的(加权)平均值,等等。

换句话说,至少对亮度分量执行所述拟合及对与所述拟合多项式的距离超过距离阈值的像素点的检测。

具体而言,在本发明中,通过拟合到亮度的多项式和/或颜色通道之间的差值,识别错误聚类的细节。这在图17的图表1710中示出。图17示出了亮度值归一化到二维视频图像1720的像素点1730中的范围0到1。待拟合到可合成区域1715(由图17中的粗框表示)的亮度值1730的多项式为平面。平面拟合是一种计算效率高的方法,用于大致估计可合成区域的亮度。

聚类步骤的方框图如图23所示。图23对应于上述图8。然而,根据本实施例,图23还包括聚类修正2310。

首先,通过初始聚类步骤粗略地估计纹理区域。如上所述,在一个示例中,采用k均值聚类。然而,本发明并不限于此,还可以采用其它聚类方法,例如,均值偏移或图像分割或任何其它聚类方法。

在一个示例性实施方式中,为每个像素点构建一个特征向量:

f=(r,g,b,u,v)

包含三个颜色值r、g、b和表示特定图像像素点(像素)的图像坐标u和v。通过所有五维向量的k均值聚类,发现聚类由颜色相似且空间邻近的像素点组成。

图23的示例示出了足球视频序列的聚类。足球视频通常包括大的草地部分,草地可以有效地编码为一个纹理。由于足球场线和运动员影子在空间上邻近草地区域,所以这些区域通常标记为可合成区域。显而易见,这些线和影子应该排除在可合成区域之外。相应地,本发明提供了一种初始聚类修正方法。

具体而言,在聚类修正2310中,采用亮度梯度距离度量来检测初始聚类区域中的这些小异常。假设纹理区域的光照是均匀的。这意味着,如果将所有结构信息都从区域中移除,则亮度会平稳变化。通过将一个平面拟合到之前标记区域中的像素点的亮度值,对这种行为进行模拟。之前标记区域即为最初聚类为可合成的区域。要拟合到可合成区域的平面(即一阶二维多项式)描述如下:

a0+a1x+a2y=l(x,y),

其中,x、y是像素点坐标,a0、a1和a2是多项式系数,l(x,y)是视频图像在位置(x,y)上的对应亮度值。这样得到一个求解系数a0、a1和a2的线性方程组。

图17示出了亮度通道的3d可视化示意图。如上所述,将通常位于像素点的位宽为8的区间0~255或像素点的位深度为10的区间0~1023内的亮度值缩放到区间0~1。可合成区域看起来是平滑的。

图18示出了亮度值对应于图17所示的亮度值和多项式1810拟合到可合成区域的亮度的图表1800。此外,错误聚类区域由粗线矩形1815标记。这里,假设错误聚类区域对应于包括一个或多个像素点的区域,其中,像素点与拟合的多项式之间的差值大于第一阈值。

具体而言,为了检测错误聚类区域,计算初始聚类区域中的每个像素点与拟合表面的距离。需要说明的是,本发明不限于计算聚类区域中的每个像素点的距离。虽然每个像素点的计算提供了最精确的结果,但是一些实施方式还可以通过仅考虑初始聚类区域中的一些像素点(例如,使用降采样)来降低复杂性。

图19示出了在图17和图18的示例中计算的一个示例性距离图。换句话说,图19示出了拟合平面和亮度之差。从差映射可以看出,较亮的部分对应于不可合成区域。具体而言,在差映射中,很容易看到线和影子,并且定义了第一阈值以区分正确和错误聚类的像素点。

可以将第一阈值设置为检测到所有线和影子的值。这一操作可以根据一些训练视频序列的实验手动完成。或者,可以自动完成阈值设置,具体取决于检测到的像素(即通过初试聚类检测到的像素)占所有像素点的百分比。基于发明人的经验,阈值比较稳定,对结果影响不大,并且所有视频序列设置相同的阈值。然而,本发明不限于此,阈值可以根据颜色和/或亮度的直方图等各种参数单独设置。

图20示出了k均值聚类应用到原始图像的一个示例。左手侧示出了原始图像。右手侧示出了k均值聚类的结果。换句话说,确定白色区域为可合成区域。从图中可以看出,这里的可合成区域仍然包括了原始图像中清晰可见的运动员和操场线的部分。

图21的左手侧示出了已经在图20的右手侧示出的k均值聚类的结果。图21的右手侧是聚类修正的结果。如图可示,现在可以清楚地看到运动员和操场线。然而,根据第一阈值的设置,检测错误聚类区域可能导致可合成区域出现多个小洞,这些小洞不属于运动员或操场线。

相应地,在一个示例性实施方式中,所述处理电路还用于:估计所述检测到的像素点的位置,并将所述检测到的小于第二阈值的像素点的孤立聚类添加到所述修正后的纹理区域中。考虑到广播应用中空间分辨率通常是720p、1080p或4k,假设相关细节(例如,运动员和线)必须具有一定大小。因此,小于64个像素点(不一定是8×8方块)等的洞不作为孤立聚类。然而,特定的第二阈值不限于64个像素点,64个像素点仅仅是示例性的。

第二阈值可以是像素或像素点的数量(可能在一个方向上,例如,该方向可以是表示聚类的宽度或高度或聚类中像素点总数的水平方向或垂直方向),等等。第二阈值可以基于所分析的视频图像的像素分辨率,可以手动设置,也可以根据分辨率和阈值之间的分配(表,函数关系)推导出。然而,本发明不限于任何特定的阈值设置。还可以在考虑纹理亮度的方差和/或均值等更多参数或任意其它参数时自动设置阈值。

上述进一步的修正处理对应于图22中将白色可合成区域中的小的黑色区域不作为孤立聚类。

换句话说,在本实施例中,所述处理电路用于:在所述识别出的纹理区域像素点中,检测与所述拟合多项式的距离超过第一阈值的像素点,并将修正后的纹理区域识别为所述纹理区域,所述纹理区域不包括一个或多个所述检测到的像素点。需要说明的是,所述修正后的纹理区域可以不包括所有检测到的与拟合多项式的距离超过第一阈值的像素点。这些像素点是指其与拟合多项式的相应像素点之间的差值超过第一阈值的像素点。然而,如上所述,仅排除一些检测到的像素点,即通过使聚类均匀进一步修正聚类,这可能是有利的。这一操作可以通过添加小于第二阈值的可合成区域像素点来完成。

第二阈值也可以基于第一阈值。第一阈值越低,检测为错误分类的像素点越多。第一阈值越高,第一阈值就变为第二阈值。

此外,在一个示例性实施方式中,所述处理电路还用于:估计所述纹理区域中的像素点的位置,并将所述纹理区域中的孤立聚类从所述修正后的纹理区域中排除。这一操作对应于图22中的删除不可合成区域中的小的白色聚类。作为小的聚类,确定大小超过第三阈值的孤立聚类。第三阈值和第二阈值的大小可以相同。然而,本发明不限于此,这些阈值可以不相同。第三阈值可以根据像素或像素点的数量得到。或者,第三阈值可以根据以像素或像素点的数量表示的聚类的垂直和/或水平大小得到。然而,也可以以任何其它方式定义检测需要从非纹理区域或纹理区域移除的孤立聚类对应的阈值(第二阈值和/或第三阈值)。其它方式为聚类大小与图像大小的比例,等等。“孤立”一词是指聚类完全被其它聚类的像素点围绕。

本发明不限于平面拟合。相反,可以采用x和/或y方向上的高阶多项式,例如,二次多项式或三次多项式等。

在一个实施例中,将上述聚类分成多个块。一般而言,各块可以是m×n大小的矩形或n×n大小的正方形,其中,m和n为整数,m>0且n>1。如果一个块中的所有像素点都是可合成的,则认为这个块是可合成的。否则,不认为这个块是可合成的(即,认为这个块是不可合成的)。

换句话说,所述处理电路还用于:将所述视频图像划分为多个块;判断每个块是否可合成;如果一个块中的所有像素点都属于所述修正后的纹理区域,则确定所述块可合成,否则,确定所述块不可合成;将所述纹理位置信息编码为一个位图,所述位图根据所述判断指示每个块是否可合成。

将图像离散为多个块能够有效地对指定视频图像的哪些部分属于可合成区域以及图像哪些部分属于不可合成区域的信息进行编码。需要说明的是,位图还可以使用游程码或其它熵码等可变长度码进行编码。

视频图像中各块的大小可以相同。然而,(如上文结合现有技术所述)将视频图像细分为不同形状和/或大小的多个块,这可能是有利的。这样能够更准确地区分可合成区域和不可合成区域。可以根据四叉树或二叉树或其混合,使用分层分割来获得各个块。

与编码器类似,如上所述,可以提供一种解码器,根据一个或多个纹理块和附加信息将可合成图像区域进行合成。为了在解码器侧恢复哪些图像部分是可合成的,哪些图像部分是不可合成的,可以接收(即从码流中解码出)纹理位置信息。如上所述,纹理位置信息可以是一个块位图,指示视频图像中的每个块是否可合成。例如,通过解码二进制符号图来识别可合成区域,该二进制符号图指示每个m×n(或n×n)块是要合成还是以其它方式解码。这由图16中的功能块“二进制掩码”示出。

一般而言,提供一种装置,用于对如上所述进行编码的视频图像进行解码。所述装置包括处理电路,所述处理电路用于:将所述修正后的纹理区域与所述视频图像中不属于所述修正后的纹理区域的各个部分分开进行解码。

所述处理电路还可以用于:对纹理位置信息进行解码,所述纹理位置信息指示所述视频图像中的每个块是否属于包括纹理区域的可合成部分。

区域跟踪

在一个视频中,纹理区域的大小和位置可能因图像而异。另一方面,在自然视频序列以及动画和电脑制图中,相邻图像(视频帧)通常是相似的。原因是,在没有采用场景分割的情况下,图像中的物体和/或背景通常是平滑移动的。相应地,可能没必要在每个视频图像中都执行分类。相反,为了检测纹理区域的大小和位置的变化,可以执行区域跟踪。

需要说明的是,一般可能存在多个区域,包含帧中的各个不同纹理和剩余非纹理部分。在这种情况下,每个纹理区域可以如本发明所述进行处理,即通过聚类进行确定,由纹理块和用于调整纹理块的参数表示。

通过图像流跟踪具有相似纹理的区域对于实现时间一致性很重要。为了跟踪一个区域,根据一个示例性实施例,采用以各个区域的特征向量为基础的跟踪算法。如果在当前帧中新检测到的区域之前存在多个帧,则这些区域与之前区域匹配。这可以通过几种匹配算法之一和不同特征向量来实现。下面描述了一种可能的实施方式。在本实例中,这通过h.w.kuhn和b.yaw于1955年发表在《navalresearchlogistics》季刊的第83页至第97页上的《thehungarianmethodfortheassignmentproblem》中描述的匈牙利(hungarian)匹配算法来实现。匈牙利图边缘权重是连续帧中各个区域之间的三个距离f1、f2和f3的线性组合。三个距离分别是:

f1:质心的坐标

f2:像素的个数。

f3:像素的位置。

还可能存在以聚类中像素的平均速度等运动数据为基础的特征。还可以存在为了实现聚类匹配而使用的更多可选或附加特征。通过这些特征,将第i帧中的每种聚类组合的距离度量定义为:

d1=f1i-f1i-1

d2=f2i-f2i-1

d3=overlap(f3i-f3i-1),

其中,函数overlap(·)用于计算两个聚类中像素的个数,这两个聚类即帧i和帧i-1中的聚类。

另一种距离度量可以定义如下:

d4=thresh(f2i),

其中,

换句话说,距离d4惩罚阈值t定义的像素个数太少的区域。阈值t为非零整数。“inf”表示无穷大。如果区域中像素的个数小于t,则将距离d4设置为无穷大,这意味着不再认为该区域属于纹理聚类。另一方面,认为为像素个数大于等于t的像素区域属于纹理聚类。或者,如果f2i≥t,则函数thresh(f2i)的结果可能是t而不是0。

度量d1和d3可能会考虑聚类的运动。通过对加权距离求和,可以通过下式计算联合距离d:

其中,αi是分配给相应距离di的权重。虽然上述特征是以形状和位置为基础,但无法通过这些特征检测到快速变化的颜色(例如,光线变化引起的颜色变化)。根据颜色相似度简单地添加特征和距离度量,使得算法能够检测这些颜色变化。如果没有找到对应的区域,则需要重新确定可合成区域。

上述区域跟踪是结合图3描述的分解310的一部分。换句话说,为了执行分解310,需要通过如图8所示的聚类对出现新区域的帧进行区域检测,需要对存在区域与新检测到的区域相似的帧进行区域跟踪。区域跟踪的结果可以用于更新块映射,而块映射可以在发生变化时或定期发送给解码器。例如,可以采用一个标志来指示更新的块图是否在一个或多个视频图像共有的信令中传输。

需要说明的是,仅在检测到新区域时,才需要进行纹理块提取820。相同的纹理块可以用于在多个帧上跟踪相同区域。相应地,仅当存在新区域时才指示纹理块信息850。这样可以保持较低的速率。然而,本发明不限于此,即使还跟踪对应区域,也可能更新纹理块,即发送纹理块。例如,可以定期更新纹理块。

运动补偿

如果具有相似纹理的图像序列只进行单次纹理合成,则每个帧都需要进行纹理调整(例如,移动和变形)。由于一个纹理区域通常会均匀变形,所以这个区域的运动补偿可以适用于整个图像计算。大多数检测到的纹理位于底层3d场景中的平面上。这意味着平移、倾斜和变焦等相机运动会导致纹理区域在相机平面中发生线性变形。其它几何形状需要高阶多项式。本发明不限于平面纹理。

为了调整合成纹理,所述实现纹理编码的处理电路还用于:估计所述纹理区域的运动;根据所述估计的运动生成运动信息;将运动信息编码到码流中。在解码器侧,类似地,提取所述运动信息,并且为了调整合成纹理,将所述运动信息应用到合成纹理。

具体而言,根据一个实施例,通过计算第一视频帧中的纹理区域与第一视频帧之前的第二视频帧中的纹理区域之间的光流来执行运动估计;所述运动信息是通过将所述光流拟合到一阶或二阶二维多项式来确定的一个参数集。相应地,在解码器侧,从码流中携带的运动信息中提取出所述参数集。然后,将通过参数集给出的函数应用到所述合成纹理区域。

根据一个示例性实施例,计算在x方向和y方向上分别大致估计这些变形的一个平面。对应于x方向上的变形u的平面通过一阶多项式描述为:

a0+a1x+a2y=u,

其中,x和y是图像坐标,系数a0至a2是在x方向上进行调整所使用的平面参数。因此,也可以采用向量形式写成:

当v是y方向上的变形时,另一个平面可以类似地定义为:

a3+a4x+a5y=v。

类似地,x和y是图像坐标,系数a3至a5是在y方向上进行调整所使用的平面参数。

相应地,在本实施例中,只有六个参数,足以在连续两帧中重建合成区域的变形。这些多项式参数可以通过pps、vps和/或片头指示。如果纹理位于除平面以外的其它几何形状上,或者考虑视角摄像机模型,则可以使用高阶多项式并指示对应的参数。

变形是通过两帧之间的密集光流得到的。换句话说,将平面函数u和v拟合到两帧之间的光流。这种密集光流算法可能根据d.sun,s.roth和m.j.black于2014年发表在ijcv的第106卷第2期上的《aquantitativeanalysisofcurrentpracticesinopticalflowestimationandtheprinciplesbehindthem》得知的classic+nl实施方式中的算法,参见d.sun,s.roth和m.j.black于2010年6月发表在ieee的《ieeeconferenceoncomputervisionandpatternrecognition(cvpr)》的第2432页至第2439页上的《secretsofopticalflowestimationandtheirprinciples》。

在本实施例中,光流目标函数采用其空间离散形式写成:

其中,u和v是根据输入图像i1和i2计算得到的光流场的水平和垂直分量,ρd为数据罚函数,ρs为空间罚函数,λ为正则化参数。换句话说,利用补偿光流的分量之间的较大距离和/或第一视频帧和第二视频帧中的对应像素点之间的较大差值的函数来计算光流。

这里,分别对ρd和ρs使用二次罚函数ρ(x)=x2。采用多分辨率技术求解目标函数,从而估计出具有较大位移的流场。换句话说,使光流目标函数e(u,v)最小化,以求解参数u和v。

图9示出了运动补偿技术的处理流程。光流算法用于计算图9可见的光流向量场。具体而言,在当前图像901和前一图像902之间计算光流,如上所述。在uv方向和u方向910上计算的光流的示例如图9所示,用于图像901和902。将计算得到的光流用于多项式拟合920。由于仅对可合成区域,即纹理聚类,执行多项式拟合,所以还将聚类信息930(对应于聚类信息830)提供给多项式拟合块920。多项式拟合块920通过将x方向和y方向的平面拟合到通过u和v计算得到的光流来计算对应于上述a0至a5等多项式参数940。块910中的底部图像显示一个图像方向(u方向)上的流。可以看出,在这个方向上,一个平面可以拟合到上述数据。由于只需要在可合成区域中进行运动补偿,所以使用前一步骤得到的聚类信息来考虑该区域中的数据。

相应地,在解码器侧,从码流中提取(解析)出参数a0至a5。然后,通过计算修改后的纹理区域的坐标u和v上的调整像素点,对通过坐标x和y给出的合成纹理的像素点进行处理。“合成纹理区域”一词是指通过将纹理块复制到纹理区域来填充像素点(像素)从而进行合成的纹理区域。合成纹理区域还可以对应于填充有纹理块像素点的纹理区域,这些纹理块像素点已经通过调整亮度和/或频率得到进一步处理,如下文更详细地描述。本文提出的调整(运动、亮度、频率调整)可以按任意顺序依次进行。或者,只进行一部分调整或只进行一种调整。

上述光流的示例性计算仅仅是示例性的,一般可以采用确定光流或运动信息的任何其它方法。为了使用有限的参数集来描述确定好的光流,将该光流拟合到参数函数。相应地,为了调整根据纹理块合成的纹理,可以将该有限的参数集传送给解码器。此外,需要说明的是,不需要通过如上所示确定各个像素点位置的光流来执行运动调整。或者,可以对2×2或4×4(可能取决于图像分辨率)等小纹理块进行运动向量确定,类似于上述根据块匹配或模板匹配对hevc进行的运动向量确定。

亮度编码

由于合成区域的亮度只能包含纹理块中包含的亮度信息,所以通过指示纹理块只能传送原始图像的部分亮度信息。

大部分纹理区域的光照是均匀,意味着纹理区域上存在光照梯度。当重建场景时,亮度可以有利于获取在视觉上很好地与相邻块混合的区域。光照可能有利于获得一个在主观视觉上与相邻块更匹配的区域。在一个实施例中,通过从原始图像中提取亮度信息来调整亮度,将高阶多项式拟合到整个图像可合成区域的像素的亮度图。多项式的阶数取决于场景中的光照,并决定了有效编码亮度所需的变量数。这里,“亮度”一词是指照明度,即指区域的亮度。另一方面,这与区域中像素点的平均值相对应。需要说明的是,可以对一种颜色分量,例如,亮度/luma(y)或rgb空间的绿色分量,计算照明度(或亮度)。然而,也可以对不同的颜色空间分量分别计算。

换句话说,根据一个实施例,所述执行纹理编码的处理电路还用于:通过将纹理区域像素点拟合到二维函数,确定参数集,所述参数集指定纹理取的亮度,所述二维函数由所述参数集定义;将所述参数集编码到所述码流中。

所述函数可以是二维多项式。然而,需要说明的是,本发明不限于此,还可以实现其它功能。尽管如此,多项式拟合提供了以下优点:通过较少参数使亮度适应不同的亮度特征。例如,所述二维多项式的两个维度都可以是一阶或二阶。

对应地,在解码器侧,对合成纹理区域进行调整。首先,从码流中提取各参数,将对应的函数应用到纹理区域像素点,以调整纹理区域像素点的亮度。换句话说,所述解码器中的所述处理电路可以用于:从所述码流中解码出参数集;重建还包括计算纹理块亮度的函数,所述函数由所述参数集中的参数定义。

需要说明的是,即使上述示出的实施例仅示出了一个纹理区域和一个剩余区域,但一个图像一般可以包括一个或多个不同的纹理区域。在这种情况下,上述实施例适用于每个可合成区域。

在大多数情况下,描述亮度l的一阶多项式便足够:

b0+b1x+b2y=l,

其中,x和y是图像坐标,b0至b2是多项式参数。通过添加更多二次项和/或三次项和/或高阶项,可以实现类似的高阶多项式。当区域中存在可见光斑时,二阶或高阶多项式可以提供更好的结果。这些多项式参数在适用于整个帧时可以通过pps、sps或视频参数集(videoparameterset,vps)或片头指示。

上述流程的可视化效果如图10所示。亮度拟合的输入是原始图像(输入图像)1001和聚类信息1030。聚类信息1030对应于上文参考图9和图8所述的聚类信息930和830。聚类信息用于区分纹理部分,因为亮度拟合只使用纹理部分。这在对应于输入图像1001的亮度的三维绘图1010中示出。在执行多项式拟合(本示例中为一阶多项式拟合)之后,三维绘图1020示出了对应于绘图1010的亮度以及拟合平面。输出拟合平面参数1040,在码流等中发送给解码器。

图12的上方示出了绘图1010的放大版本,示出了输入图像1001的亮度。图12的下方示出了显示相同亮度1210和拟合平面1220的绘图1020。

这里,“亮度”一词是指yuv颜色空间的亮度分量y等,即指颜色空间的一个分量的像素点。然而,也可以根据同一参数集或者甚至根据分别针对每个颜色分量确定的单独参数集,分别对每个颜色分量执行亮度调整。在灰度图像的情况下,亮度对应于像素点值(亮度)。

为了能够更精确地调整亮度,可以采用高阶多项式。例如,可以使用二阶多项式:

(b1,b2,b3,b4,b5,b6)(x,y,xy,x2,y2,1)t=0

如上所述,可以使用聚类步骤中的聚类信息将高阶多项式拟合到可合成区域的亮度值。

对应地,在解码器侧,从码流中提取出参数b0至b2(对于一阶多项式)或参数b1至b6(对于二阶多项式),并将对应的多项式应用到由坐标x和y给出的所有像素点位置,以获得调整后区域。需要注意的是,在将参数bi插入到码流之前,可以通过可变长度编码和/或差分编码等对参数bi进行进一步编码。对于本发明中提及的其它参数集,情况也是如此。

需要说明的是,亮度编码参数还可以用于定义用于拟合亮度的多项式,以实现上述聚类修正。由于多项式拟合仅计算一次,所以可以简化实施方式。换句话说,由参数b0、b1……定义的平面或高阶多项式可以用于拟合亮度并计算拟合与亮度之间的差异,以检测异常并修正聚类。

频率调整

虽然纹理区域在整个区域中具有相似的结构,但纹理取也可能包括一些视角效果和运动模糊。

为了改进合成,根据一个实施例,可以通过频率调整来补偿这些效果。

具体而言,根据纹理分析实现编码器的所述处理电路用于:识别视频帧(图像)中的纹理区域,为所述区域确定纹理块,所述区域包括多个图像(图像)像素点;通过将频谱域中的纹理区域拟合到根据第一参数集确定的纹理块的第一函数,确定所述第一参数集,所述第一参数集指定重建所述纹理区域的频谱系数的加权因子;将所述纹理块和所述第一参数集编码到码流中。

可以如上文参考纹理区域检测和跟踪所述,识别纹理区域。例如,根据第一参数集确定第一函数,其中,第一函数是参数函数,第一函数的参数或参数子集以任何方式包括或指示在第一参数集中。

所述处理电路还可以用于:将所述纹理区域中的各个块变换到频谱域,并将所述纹理块变换到所述频谱域,通过使用经阻尼参数处理的纹理块大致估计每个块,为所述变换块找到相应的频率阻尼参数。

换句话说,对于当前块,通过拟合函数参数p描述纹理块和拟合函数f(第一函数),找到了这些拟合函数参数,使得频谱域中的纹理块和当前块之间的成本函数最小化。成本函数可以是最小均方差(minimummeansquareerror,mms)或绝对差和(sumofabsolutedifferences,sad)或任何其它函数。具体而言,为了获得参数集p,使以下成本最小化:

成本=cost_function(当前块,f(贴纹理块,p))。

然后,将每个块的参数集p发送给解码器。为了减少每个块需要发送的参数的数量,拟合函数f最好只有一个参数。然而,本发明一般不限于任何特定数目的参数。参数p在本文中称为阻尼参数。

可选地,或另外,为了高效地传送纹理区域中每个块的参数集p,对纹理区域中所有块的第一参数集进行编码的步骤可以包括:将为相应块确定的且形成阻尼参数映射的阻尼参数p拟合到阻尼参数函数df(在本文中也称为块映射函数),阻尼参数函数df使用一个或多个参数dp表示:

阻尼参数映射=df(dp)。

因此,为了指示纹理区域中所有块的所有阻尼参数,在本实施例中,只有参数dp作为第一参数集指示在码流中。

根据一个示例性实施方式,阻尼参数p对应一个标量值。然而,本发明不限于这种实施例。一般而言,还可以为集合p中的相应n个参数pi构建n个阻尼映射,i大于1且小于或等于n,n为大于1的整数。

根据一个示例性实施方式,第一函数df是第一二维多项式。然而,本发明不限于这种实施方式,一般可以使用不同函数。二维多项式的两个维度都可以是一阶或二阶,两个维度是垂直和水平(覆盖阻尼参数映射,其中,对于纹理区域的二维图像中的每个块,都有一个指定的阻尼参数值)。然而,需要说明的是,本发明不限于任何特定次数(阶数)的多项式。一般而言,可以使用任何固定(例如,标准预定义)阶数的多项式。或者,还可以改变多项式的阶数,在码流中指示为第一参数集的一部分或在其它地方指示。

例如,将纹理区域变换到频谱域的变换是以块为单位的离散余弦变换。另一方面,本发明不限于这些示例,上述变换可以是fft、dft、klt哈达玛(hadamard)或任何其它线性变换。

下面给出一个详细的示例性实施例。计算原始图像中一个块和纹理块的分块变换。为了使纹理块与原始图像中的块相适配,本文引入了针对dct系数的交流(ac)分量的阻尼函数。根据合成区域的系数ci,j计算位于块中位置{i,j}上的新系数如下所示:

其中,d被认为是这个块的恒定阻尼因子。

计算阻尼因子在纹理区域上产生阻尼映射。将二阶多项式拟合到阻尼映射。虽然阻尼系数是以块为单位计算的,但拟合多项式是针对整个图像计算的。对含有高频信息的块进行模糊滤波比锐化滤波在视觉上更令人愉悦,所以从含有最高频率信息的区域中选择纹理块。阻尼函数不受上述限制。阻尼函数可以是为了实现相同目的的任何函数。多项式的阶数可以适合于该序列。这些多项式参数可以通过pps、vps和片头指示。

图11为频率调整方法的处理流程。具体而言,将原始图像(输入图像)1101和集群信息1130(对应上述集群信息1030、930和830)输入到分块dct变换1120。聚类信息用于确定图像的哪些部分属于纹理区域,从而确定图像的哪些部分需要进行频率调整。换句话说,聚类信息指示哪些图像块要进行dct变换。纹理块1150也进行dct变换。两种变换的结果在图表1170和1160中表示。具体而言,图表1170示出了单个块的dct系数值。而另一方面,图表1160示出了为纹理块1150计算的系数值。通过将纹理块的系数与每个块的系数进行比较,可以计算1180每个块的阻尼系数。图11具体示出了对输入图像1101进行这种计算所产生的阻尼系数映射1190。然后,通过多项式函数大致估计阻尼系数映射,并指示对应的多项式参数1140。

图13进一步具体示出了阻尼系数的计算。具体而言,为了确定各块属于可合成区域,使用前一聚类步骤810得到的聚类信息830(1130)在可合成区域的块中计算块级dct变换1120。其中一个块的结果如图13中的右上角图表所示。在该图表中,仅示出了ac系数,而没有示出dc系数(设置为零)。还对根据纹理块提取步骤820提取的纹理块850(1150)进行dct变换计算。

这种dct变换的结果如图13的左上角所示,其中,该图表示出了纹理块的acdct系数1310,而没有示出设置为零的dc系数。

在这些dct变换之间,计算如上所述阻尼函数的阻尼系数。图13的左下角示出了采用为块计算的阻尼系数参数化的结果函数1320,该块的系数如图13的右上角所示解码器将阻尼函数1320以系数为单位应用到频谱域1310中的纹理块,以获得原始块的系数1330的近似值,即纹理块的阻尼系数。所得到的阻尼系数1340如图13的右下角所示。从图13可以看出,阻尼系数1340比纹理块系数1310更接近原始块1330的系数。

同样如上所述,一个块的阻尼函数最好只有一个参数d。纹理区域中的所有块的参数d提供了阻尼参数映射1190。将多项式拟合到阻尼参数映射中的参数,能够得到多项式参数,之后进行指示。执行拟合的方式与亮度调整的类似,即,使用线性多项式或二次多项式或高阶多项式。

对应于编码器操作,提供了一种采用纹理合成对视频帧进行解码的解码器。所述装置包括处理电路,所述处理电路用于:从码流中解码出纹理块和第一参数集;根据所述纹理块重建所述视频帧中的纹理区域,所述纹理区域包括多个图像像素点,所述重建包括使用函数对所述纹理块的频谱系数进行加权,所述函数由所述第一参数集定义。

具体而言,根据一个实施例,所述解码器中的所述处理电路用于:根据所述第一函数(df)为所述纹理区域中的各个块确定阻尼参数(p),所述第一函数由所述第一参数集(dp)定义;重建所述各个块,包括将所述相应阻尼参数(p)应用到频谱域中的纹理块;将重建块从所述频谱域变换到空间域。

块效应避免

如果还可以看见合成块和未合成块之间的边界,则该边界最好采用最小分割算法进行伪装。可以采用几种最小分割算法。例如,通过将未合成块与合成块重叠,计算亮度值的欧式距离。例如,通过采用edsgerw.dijkstra于1959年发表在《numerischemathematik》的第269页至第271页上的《anoteontwoproblemsinconnexionwithgraphs》中的dijkstra算法找到了距离矩阵的最短路径。

换句话说,实现纹理解码(重建)的处理电路可以抑制纹理区域中的各个块与剩余区域中的各个块之间的块效应,上述抑制通过以下方式执行:

(1)计算纹理区域中的重叠块的亮度值与剩余区域中的块的亮度值之间的距离矩阵;

(2)计算距离矩阵中的最短路径;

(3)沿着得到计算的最短路径,将纹理区域中的块和剩余区域中的块组合起来。

或者,可以采用不同的去块技术,例如,hevc中使用的去块效应滤波。

指令

图14示出了编码器侧生成的控制信息的一个示例。为了能够正确解码,需要将控制信息传输到解码器。具体而言,将输入图像(视频帧)划分为纹理区域和剩余图像。对剩余图像进行传统编码,并将对应的码流提供给解码器。然后,通过纹理块、块映射和调整参数集来描述每个纹理区域(一个或多个)。具体而言,从文本区域中提取表示文本区域的纹理块,并在码流中发送给解码器。识别与纹理区域相关的块或区域(一般是像素点),并将块或区域发送给解码器。调整参数集可以包括以下中的一个或多个:运动调整参数、亮度调整参数和频率调整参数。这些参数可以指示在相应的片头或图像参数集中。

图15示出了对应的解码器操作。对剩余图像部分1510进行传统解码,并将剩余图像部分1510与传统解码图像1510的发黑部分1520所示的通过重建1570得到的纹理组合1580起来。通过将纹理块1550复制到至少覆盖纹理区域1520的图像中并根据通过指示的运动1532、亮度1534和频率调整1536对应的参数集1530给出的相应参数函数对合成纹理的运动、亮度和频率调整中的至少一种进行修改1570,从而进行纹理合成1560。

在上述示例性实施方式中,运动补偿、亮度编码和频率调整对应的多项式的系数是浮点变量。变量的数量取决于所选择的表示形式。考虑到每个切片的参数数量不大,对于码率开销来说负担并不大,因此将整数值为n的浮点数v通过向右偏移m位(>>)来直接大致估计:

还可以考虑其它大致估计方法。这些参数可以指示在pps或vps或片头中,或者指示为sei消息,等等。纹理块可以作为静止图像指示在单独的码流或同一个码流中。需要说明的是,本发明中的“码流”一词可以指单个码流或几个并行码流。本发明不受指示信息的任何特定语法和语义的限制。

在一种实施方式中,可合成区域可以指示为当前块的单独模式。在另一种实施方式中,使用恒定颜色代替纹理区域中的所有像素,同时使用二进制映射指示可合成区域。如果检测到多个可合成区域,则这些区域也可以包括在映射中。这种映射可以使用常见的数据压缩算法进行压缩,例如,基于gzip或熵编码的方法。

解码器中的重建

解码器执行基于纹理块的纹理合成,又称为图像拼贴或图像分割纹理。分别参见:a.a.efros和w.t.freeman于2001年在美国纽约acm的《siggraph2001》的第28届《annualconferenceoncomputergraphicsandinteractivetechniques》论文集的第341页至第346页上发表的《imagequiltingfortexturesynthesisandtransfer》或v.kwatra,a.i.essa,g.turk和a.bobick于2003年7月发表在《siggraph2003》的《acmtransactionsongraphics》第22卷第3期的第277页至第286页上的《graphcuttextures:imageandvideosynthesisusinggraphcuts》。可以考虑其它纹理合成算法。合成算法返回比简单地在合成模式下粘贴到块上的重建区域略大的图像。这一操作只需要对包含相同纹理区域的图像序列执行一次。这样确保了时间连贯性,同时保持较低的计算工作量。重建与运动向量场对应的表面。纹理图像根据这些表面进行变换。由于纹理图像由纹理块的子像素点组成,所以纹理图像的亮度是均匀的。因此,从重建亮度表面减去纹理块的亮度均值。将亮度均值差添加到重建区域中。通过采用重建阻尼因子以块为单位实现频率重建。

图16示出了上文描述的示例性解码器的处理流程。解码器利用图左侧的接收信息对大的纹理图像进行纹理合成,并对大的纹理区域依次进行运动补偿、亮度重建和频率重建。这个大的区域复制到解码图像中的通过二进制映射得到的区域处。如上所述,二进制映射可以以像素点或块为单位。

总之,根据一个实施例,本发明涉及一种用于对视频信号进行编码的装置,其中,所述视频信号包括多个帧,每个帧可划分为多个块,每个块包括多个像素,每个像素与至少一个像素值(也称为像素点值)相关。所述编码装置包括用于帧内预测的预测模块,所述预测模块用于:根据包括至少一个已生成的与当前块相邻的重建块的重建区域,生成所述当前块的预测块,所述当前块即当前处理块;所述预测模块用于实现所公开的纹理合成算法。重建块是根据预测块和误差块重建的一个块。

在一种可能的实施方式中,所述装置用于采用码流的形式提供所述编码视频信号,其中,所述码流包括关于所公开的用于运动补偿、亮度编码和频率阻尼的信令方法的信息。

换句话说,所述编码器可以进行如下处理:

-检测图像中的可合成区域,并通过图像流跟踪可合成区域,

-对不可合成区域进行传统编码,

-将可合成区域编码为附加编码模式,或编码为由传统编码器进行编码的整数映射,同时使用恒定颜色替换可合成块中的颜色信息,

-从可合成区域中提取一个或多个图像纹理块,

-通过所公开的超平面拟合提取运动信息,

-通过所公开的多项式拟合提取亮度信息,

-通过所公开的多项式拟合提取频率信息。

可以执行上述一个或多个步骤。

换句话说,在简单地使用纹理块替换可合成区域时,重要信息会丢失。根据上述提供的实施例,通过以下操作对示例性组合实施方式进行了测试:

-运动调整(x,y域),使用一阶多项式或高阶多项式(整个帧相同),

-亮度调整(x,y域),使用一阶多项式或高阶多项式(整个帧相同),

-频率调整(频域/dct域),使用一阶或高阶或高阶(块级)。

通过将高阶多项式拟合到可合成区域的信息,只需要少数变量就足以重建这一信息。实验表明,只要15个变量就足够了。这些变量可以指示在片头等中。

根据另一个实施例,本发明涉及一种根据视频信号对编码码流进行解码的对应装置,其中,所述视频信号包括多个帧,每个帧可划分为多个块,每个块包括多个像素,每个像素与至少一个像素值相关。所述解码装置包括用于帧内预测的预测模块,所述预测模块用于:根据包括至少一个已生成的与当前块相邻的重建块的重建区域,生成所述当前块的预测块,所述当前块即当前处理块;所述预测模块用于实现所公开的纹理合成算法。

换句话说,所述解码器可以进行如下处理:

-对不可合成区域进行传统解码,

-根据一个或多个图像纹理块重建一个区域。

-使所述重建区域变形,以根据其它指示的变量进行超平面重建来获得视觉上看似合理的运动,

-根据其它指示的变量进行多项式重建,从而重建亮度梯度,

-根据其它指示的变量进行多项式重建,从而重建纹理区域的频率,

-执行去块,以避免合成区域和未合成区域之间的可见边界。

可以执行上述一个或多个步骤。

本发明可以在一种装置和/或处理电路中实施。这种装置可以是软件和硬件的组合,或者可以仅在硬件中实施,或者仅在要在计算机或任何种类的处理电路上运行的软件中实施。例如,纹理合成和分析可以在单独的处理电路中实施,或者与剩余纹理编码和解码处理一样在处理电路中进行。所述处理电路可以是集成电路。此外,纹理区域编码和解码可以在与用于对剩余不可合成图像区域进行编码和解码的传统视频编码器和解码器相同或不同的处理电路中实施。

换句话说,本发明所述的处理可以通过任何处理电路进行,所述处理电路可以是一个或多个芯片(集成电路)等,所述一个或多个芯片可以是通用处理器,或数字信号处理器(digitalsignalprocessor,dsp),或现场可编程门阵列(fieldprogrammablegatearray,fpga)等。然而,本发明不限于在可编程硬件上实施。本发明可以在专用集成电路(application-specificintegratedcircuit,asic)上实施,或者通过上述硬件组件的组合实施。

根据一方面,提供了一种采用纹理合成对视频图像进行编码的装置。所述装置包括处理电路,所述处理电路用于:识别所述视频图像中的纹理区域,为所述区域确定纹理块,所述区域包括多个图像像素点;通过将频谱域中的纹理区域拟合到所述纹理块的第一函数,确定第一参数集,所述第一参数集指定重建所述纹理区域的频谱系数的加权因子,所述第一函数根据所述第一参数集确定;将所述纹理块和所述第一参数集编码为码流。

这种频率阻尼使得有可能通过调整所述纹理块的频谱使一个或多个重建块(区域)与原始图像适配。

在一个实施例中,所述处理电路用于:将所述纹理区域中的一个或多个块变换到所述频谱域;将所述纹理块变换到所述频谱域;通过使用经过相应阻尼参数处理的变换纹理块大致估计每个变换块,为所述一个或多个变换块找到相应的频率阻尼参数;通过将为所述各个块确定的频率阻尼参数拟合到块映射函数,对所述第一参数集进行编码。

由于每个块的阻尼参数不同,这种编码可以大大减少指示第一参数集引起的额外开销,但只传输函数中大致估计所有块的阻尼参数的参数。

例如,阻尼参数为一个标量值。这进一步降低了开销。

例如,第一函数是第一二维多项式。二维多项式是一种非常有效的指示方式,可以灵活变化以适用于阻尼参数。还可以指示多项式的阶数。在一个示例中,第一二维多项式的两个维度都可以是一阶或二阶,这两个维度是垂直的和水平的。

将纹理区域变换到频谱域可以是以块为单位的离散余弦变换。

在一个实施例中,通过与上述任一实施例和示例结合,所述处理电路还用于:通过将纹理区像素点拟合到第二二维函数,确定第二参数集,所述第二参数集指定所述纹理区域的亮度,所述第二二维函数由所述第二参数集定义;将所述第二参数集编码到码流中。额外的照明调整能够更加精确地合成与真实视频序列的通常照明情况对应的纹理区域。

例如,第二函数为二维多项式。二维多项式的两个维度都可以是一阶或二阶。

所述处理电路还用于:估计所述纹理区域的运动;根据所述估计的运动,生成运动信息;将所述运动信息编码到所述码流中。运动适配是另一种使合成区域更匹配于捕获的视频图像的方式,通常包括平滑运动,通过参数集可以很好模拟。

根据一个实施例,通过计算第一视频图像中的纹理区域与第一视频图像之前的第二视频图像中的纹理区域之间的光流,进行运动估计。所述运动信息为第三参数集,所述第三参数集通过将所述光流拟合到一阶或二阶二维多项式来确定。

可以函数计算所述光流,所述函数惩罚所述光流中分量之间的较大距离和/或所述第一和第二视频图像中对应像素点之间的较大差值。这是为了反映自然视频序列中的典型光流特性。

根据另一个实施例,通过与上述任一实施例结合,所述处理电路还用于:抑制纹理区域中的各个块与剩余区域中的各个块之间的块效应,上述抑制通过以下方式进行:(1)计算纹理区域中的重叠块的亮度值与剩余区域中的块的亮度值之间的距离矩阵,(2)计算距离矩阵中的最短路径,(3)沿着所述计算得到的最短路径,将纹理区中的块和剩余区域中的块组合起来。

所述处理电路还可以用于:通过聚类,检测视频图像中的纹理区;生成纹理区域信息,所述纹理区域信息指示所述纹理区域在所述视频图像中的位置;将所述纹理区域信息插入所述码流中。

根据一个方面,提供了一种采用纹理合成对视频图像进行解码的装置。所述装置包括处理电路,所述处理电路用于:从码流中解码出纹理块和第一参数集;根据所述纹理块重建视频图像中的纹理区域;所述纹理区域包括多个图像像素点,所述重建包括使用函数对所述纹理块的频谱系数进行加权,所述函数由所述第一参数集确定。

在一个实施例中,所述处理电路用于:根据块映射函数确定所述纹理区域中的各个块的阻尼参数,所述块映射函数根据所述第一参数集确定;重建所述各个块,包括将所述相应阻尼参数应用到频谱域中的纹理块;将所述重建块从所述频谱域变换到空间域。

阻尼参数可以为一个标量值。第一函数可以是第一二维多项式。例如,第一个二维多项式的两个维度都可以是一阶或二阶,这两个维度是垂直的和水平的。

将纹理区域变换到频谱域可以是以块为单位的离散余弦变换。

根据一个实施例,所述处理电路还用于:从所述码流中解码出第二参数集;所述重建还包括:计算纹理块亮度(照明)的函数,所述函数由所述第二参数集定义。

例如,第二函数是二维多项式。二维多项式的两个维度都可以是一阶或二阶。

所述处理电路还用于:从所述码流中解析(解码)出运动信息;根据所述运动信息,确定运动补偿函数;将运动补偿函数应用到合成纹理部分。

需要说明的是,可以通过参数化函数确定运动补偿,该参数化函数的参数位于第三参数集中,指示在码流中。

例如,运动补偿函数的确定可以是,一阶或二阶二维多项式,用于大致估计第一视频图像中的纹理区域与第一视频图像之前的第二视频图像中的纹理区域之间的光流。

运动信息是第三参数集,并且指示(例如直接编码)运动补偿函数的参数,例如,多项式参数和阶数。然而,阶数还可以由标准等预定义。需要说明的是,将运动补偿应用到待合成的纹理。

根据一个实施例,所述处理电路还用于:抑制所述纹理区域中的各个块与剩余区域中的各个块之间的块效应,所述抑制通过以下方式进行:(1)计算所述纹理区域中的重叠块的亮度值与所述剩余区域中的块的亮度值之间的距离矩阵,(2)计算所述距离矩阵中的最短路径,(3)沿着所述计算得到的最短路径,将所述纹理区中的所述块和所述剩余区域中的所述块组合起来。

根据一个实施例,所述处理电路还用于:从所述码流解析出纹理区域信息,所述纹理区域信息指示所述纹理区在所述视频图像中的位置。例如,纹理区域信息可以是一个位图,该位图指示图像的每个块是属于可合成(纹理)区域还是属于所述图像的剩余部分(不可合成区域)。这一信息还可以用于确定剩余图像区域和合成纹理的哪些部分将被组合。此外,只有纹理区域需要上述重建处理,这样,为了降低解码器的复杂度,只有这些部分可以通过运动补偿和/或亮度补偿和/或频率阻尼进行纹理调整来处理。

根据一方面,提供了一种采用纹理合成对视频图像进行编码的方法。所述方法包括以下步骤:识别视频图像中的纹理区域,为所述区域确定纹理块,所述区域包括多个图像像素点;通过将频谱域中的纹理区域拟合到所述纹理块的第一函数,确定第一参数集,所述第一组参数指定重建所述纹理区域的频谱系数的加权因子,所述第一函数由所述第一参数集确定;将所述纹理块和所述第一参数集编码为码流。

在一个实施例中,所述方法还包括:将所述纹理区域中的一个或多个块变换到所述频谱域;将所述纹理块变换到所述频谱域;通过使用经过相应阻尼参数处理的变换纹理块大致估计每个变换块,为所述一个或多个变换块计算各自的频率阻尼参数;通过将为所述各个块确定的频率阻尼参数拟合到块映射函数,对所述第一参数集进行编码。例如,阻尼参数为一个标量值。

例如,第一函数是第一二维多项式。在一个示例性实施例中,还可以指示多项式的阶数。在一个示例中,第一二维多项式的两个维度都可以是一阶或二阶,这两个维度是垂直的和水平的。

将纹理区域变换到频谱域可以是以块为单位的离散余弦变换。

在一实施例中,通过与上述任一实施例和示例结合,所述方法还包括以下步骤:通过将纹理区像素点拟合到第二二维函数,确定第二参数集,所述第二参数集指定所述纹理区域的亮度,所述第二二维函数由所述第二参数集定义;将所述第二参数集编码到码流中。

例如,第二函数为二维多项式。二维多项式的两个维度都可以是一阶或二阶。

所述方法还可以包括:估计所述纹理区域的运动;根据所述估计的运动,生成运动信息;将所述运动信息编码到所述码流中。根据一个实施例,通过计算第一视频图像中的纹理区域与上述第一视频图像之前的第二视频图像中的纹理区域之间的光流,进行运动估计。运动信息为第三参数集,第三参数集通过将光流拟合到一阶或二阶二维多项式来确定。

可以通过函数计算光流,该函数惩罚光流中分量之间的较大距离和/或第一和第二视频图像中对应像素点之间的较大差值。

根据另一个实施例,通过与上述任一实施例结合,所述方法还包括以下步骤:抑制所述纹理区域中的各个块与剩余区域的各个块之间的块效应,所述抑制通过以下方式进行:(1)计算上述纹理区域中的重叠块的亮度值与所述剩余区域中的块的亮度值之间的距离矩阵,(2)计算所述距离矩阵中的最短路径,(3)沿着所述计算得到的最短路径,将所述纹理区域中的所述块和所述剩余区域中的所述块组合起来。

所述方法还可以包括:通过聚类,检测视频图像中的纹理区域;生成纹理区域信息,所述纹理区域信息指示所述视频帧中的所述纹理区域的位置;将所述纹理区域信息插入到所述码流中。

根据另一方面,提供了一种采用纹理合成对视频图像进行解码的方法。所述方法包括以下步骤:从所述码流中解码出纹理块和第一参数集;根据所述纹理块重建视频图像中的纹理区域;所述区域包括多个图像像素点,所述重建包括使用函数对所述纹理块的频谱系数进行加权,所述函数由所述第一参数集确定。

在一个实施例中,所述方法还包括以下步骤:根据块映射函数确定所述纹理区域中的各个块的阻尼参数,所述块映射函数根据所述第一参数集确定;重建所述各个块,包括将所述相应阻尼参数应用到频谱域中的纹理块;将所述重建块从所述频谱域变换到空间域。

阻尼参数可以为一个标量值。第一函数可以是第一二维多项式。例如,第一个二维多项式的两个维度都可以是一阶或二阶,这两个维度是垂直的和水平的。

将纹理区域变换到频谱域可以是以块为单位的离散余弦变换。根据一个实施例,所述方法还包括:从所述码流中解码出第二参数集;所述重建还包括:计算所述纹理块亮度(照明)的函数,所述函数由所述第二参数集定义。

例如,第二函数是二维多项式(垂直和水平方向)。二维多项式的两个维度都可以是一阶或二阶。

所述方法还可以包括:从所述码流中解析(解码)出运动信息;根据所述运动信息,确定运动补偿函数;将运动补偿函数应用到合成纹理部分。例如,运动补偿函数的确定可以是,一阶或二阶二维多项式,用于大致估计第一视频图像中的纹理区域与第一视频图像之前的第二视频图像中的纹理区域之间的光流。

运动信息是所述第三参数集,并且指示(例如直接编码)运动补偿函数的参数,例如,多项式参数和阶数。然而,阶数还可以由标准等预定义。需要说明的是,将运动补偿应用到待合成的纹理。

根据一个实施例,所述方法还包括:抑制所述纹理区域中的各个块与剩余区域中的各个块之间的块效应,所述抑制通过以下方式进行:(1)计算所述纹理区域中的重叠块的亮度值与所述剩余区域中的块的亮度值之间的距离矩阵,(2)计算所述距离矩阵中的最短路径,(3)沿着所述计算得到的最短路径,将所述纹理区域中的所述块和所述剩余区域中的所述块组合起来。

根据一个实施例,所述方法还包括:从所述码流解析出纹理区域信息,所述纹理区域信息指示所述纹理区在所述视频图像中的位置。例如,纹理区域信息可以是一个位图,该位图指示图像的每个块是属于可合成(纹理)区域还是属于所述图像的剩余部分(不可合成区域)。这一信息还可以用于确定剩余图像区域和合成纹理的哪些部分将被组合。此外,只有纹理区域需要上述重建处理,这样,为了降低解码器的复杂度,只有这些部分可以通过运动补偿和/或亮度补偿和/或频率阻尼进行纹理调整来处理。

总之,本发明涉及采用纹理编码对解码视频进行编码。具体而言,识别视频图像中的纹理区域,为所述区域确定纹理块(patch)。执行聚类,以识别所述视频图像中的纹理区域。进一步修正所述聚类。具体而言,通过将多项式拟合到所述识别出的纹理区域,确定所述多项式的一个或多个亮度参数。在所述识别出的纹理区域中,检测与所述拟合多项式的距离超过第一阈值的像素点,并将不包括一个或多个所述检测到的像素点的纹理区域作为修正后的纹理区域,最后,将所述修正后的纹理区域与所述视频图像中不属于所述修正后的纹理区域的各个部分分开进行编码。

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