一种对屏幕内容的编码方法转让专利

申请号 : CN201110369669.4

文献号 : CN102611888B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 丁文鹏尹宝才朱维佳施云慧

申请人 : 北京工业大学

摘要 :

公开了一种编码效率更高的对屏幕内容的编码方法,在时间域用若干个基础颜色和一个索引表来表示screen content(屏幕内容)的图像或图像块;其中索引表被拆解为一个匹配表和一个非匹配的索引表,匹配表中的每个元素表示索引表的元素是否与其预测索引相等,若不等,则将更新该索引的值并存储在非匹配的索引表中;预测索引通过两种方法产生:一种是利用时间域的强相关性,将帧间运动估计后搜索到的图像块的索引表当作预测索引表;另一种是利用空间域的相关性,根据当前像素的周围像素的纹理方向,以像素级的预测索引作为预测索引。

权利要求 :

1.一种对屏幕内容的编码方法,其特征在于:其具体包括以下步骤:(1)将每个编码单元CU按照四叉树形式分割为预测单元PU;

(2)将每个预测单元PU按照四叉树形式分割为变换单元TU;

(3)对于当前TU有YUV3个分量,对于YUV分量的每个分量进行步骤(4)-(12)的处理:(4)将TU内的像素进行动态规划聚类,获得具有代表性的N个值,N为大于0的整数,这N个值即是N个基础颜色,并按递增顺序排序;然后将当前TU中的每个像素根据欧式距离最近的原则映射到N个基础颜色中的一个,并获得一个索引来表明它映射至哪个基础颜色,并且计算每个TU的失真;

(5)产生预测索引;

(6)按照每个索引是否与其对应的预测索引相等的原则来产生匹配表;

(7)对于那些与预测索引不相等的索引,更新索引,并存储在非匹配的索引表中;

(8)计算编码基础颜色、匹配表和非匹配的索引表所产生的码率;

(9)根据步骤(4)中产生的失真和步骤(8)产生的码率来计算率失真代价;

(10)从1至4遍历N的值,固定N后重复步骤(2)-(9),使步骤(9)中计算的率失真代价最小;

(11)将选出的率失真代价最小的基础颜色的信息和匹配表及非匹配的索引表的信息传送至解码端;

(12)解码端在获得相应的信息后,根据基础颜色和索引表来重建当前TU;

(13)重建PU和CU;

所述预测索引通过以下两种方法之一产生:一种是利用时间域的强相关性,将运动估计所找到的匹配图像块进行相对于当前块的基础颜色的量化,获得一个索引表,作为当前块索引表的预测值;另一种是利用空间域的相关性,根据当前像素的周围像素的纹理方向,对块内的每个像素的索引进行预测,首先对周围四个像素进行方向性测试,并用2范数进行衡量,2范数越小,代表纹理越光滑,连续性越强,在测试周围4个像素后,用2范数最小的对应像素的索引作为当前索引的预测值。

2.根据权利要求1所述的方法,其特征在于:获得基础颜色的方法包括以下步骤:(a)将当前图像中的像素排成序,统计并记录每个块中的像素值及其出现频率,并且将所有的具有不同值的像素排成一个按照值递增顺序排成区间X,且每个像素值的出现频率也形成一个区间Y,X和Y这两个区间的元素是一一对应的;

(b)设定将块内的像素值分为N类,即所求得N个基础颜色,N为大于0的整数:β(lowBound,UpBound,N)代表LowBound至UpBound区间内的元素分配到N个类中所产生的失真,如果N≥2,P点通过下式求得

(c)

β(lowBound,UpBound,4)=α(LowBound,p1-1)+β(p1,UpBound,3)β(p1,UpBound,3)=α(p1,p2-1)+β(p2,UpBound,2)β(p2,UpBound,2)=α(p2,p3-1)+β(p3,UpBound,1)β(p3,UpBound,1)=α(p3,UpBound)其中pi是在每层线性搜索找到的最优点,i是1、2、或3,α(p3,UpBound),α(p2,p3-1),α(p1,p2-1),α(LowBound,p1-1)就是所求得的基础颜色,且这 里有LowBound

说明书 :

一种对屏幕内容的编码方法

技术领域

[0001] 本发明属于视频编码的技术领域,具体地涉及一种对屏幕内容(screen content)的编码方法。

背景技术

[0002] 在已有的技术中,混合图像的编码(对screen content的编码方法)大致可以分为以下三类。
[0003] 1.基于图像编码的方法:
[0004] 这种方法还是采用传统的编码框架来对混合图像进行编码,但是针对不同的区域采用不同的量化步长,对于包含文字和图表内容的块,编码后重建效果会非常模糊,所以量化这些块时减少量化步长,为其多分配比特,让其重建的质量尽可能好。但是对于固定的比特数,如果为文字和图表块多分配了比特,那么自然图像块所分配的比特数就会相应地减少,所以总体来说,这种方法仍不能达到很好的效果。
[0005] 2.基于分层编码的方法:
[0006] 这种方法采用混合光栅模型来进行压缩。它将一幅图像或者一个图像块分为前景层、背景层和一个二进制算子的平面层。这个二进制算子的平面层表明图像或图像块的每个像素属于前景层还是背景层,并且这个二进制算子平面可以用JBIG(Joint Bi-level Image Experts Group,联合二值图像专家组)标准或JBIG2(Joint Bi-level Image Experts Group2,联合二值图像专家组二代)标准进行压缩。而经过数据填充算法模糊后的前景层和背景层可以用传统的图像编码框架来进行压缩。论文“Compressing compound documents”(The Document and Image Compression Handbook,M.Barni,Ed.New York:Marcel-Dekker,2005.)提出了这种方法,并通过实验证明这种方法与传统的编解码框架相比,可以取得很大的增益。但是这种方法有一些缺点:首先增益在很大程度上取决于分割的算法,即如何将图像分为前景和背景。第二,分割出来的洞如果不经过任何处理会损害编码的效果。第三,分别编码背景层的文本颜色和二进制算子的文本形状也会降低编码的效率。
所以这种方法仍不能满足应用的需要。
[0007] 3.基于块的编码方法:
[0008] 这种方法可以分为两类:
[0009] 一种是利用空域的性质,如直方图统计,梯度,颜色的数目等,可以将当前编码块分为几类中的一种,如文本,图表,自然图像等。然后不同的类别用不同的编码框架来进行压缩以适用于它们的统计特性。
[0010] 另一种是考虑到屏幕内容中的文字和图表的直方图较稀疏,将其在时域分解为基础颜色和索引表的形式,即Base color and Index map(BCIM)模式,如图1所示,其中“1”、“0”、“253”、“255”表示四种颜色。论文“Enable efficient compound image compression in H.264/AVC intra coding”(Proc.Int.Conf.Image Processing,Oct.2007,vol.2,pp.337-340)首先将这种方法应用到了H.264标准中,并取得了不错的增益,但是编码效率还有待提高。

发明内容

[0011] 本发明的技术解决问题是:克服现有技术的不足,提供一种编码效率更高的对screen content的编码方法。
[0012] 本发明的技术解决方案是:这种对屏幕内容的编码方法,在时间域用若干个基础颜色和一个索引表来表示screen content的图像或图像块;其中索引表被拆解为一个匹配表和一个非匹配的索引表,匹配表中的每个元素表示索引表的元素是否与其预测索引相等,若不等,则将更新该索引的值并存储在非匹配的索引表中;预测索引通过两种方法产生:一种是利用时间域的强相关性,将帧间运动估计后搜索到的图像块的索引表当作预测索引表;另一种是利用空间域的相关性,根据当前像素的周围像素的纹理方向,以像素级的预测索引作为预测索引。
[0013] 编码效率更高的原因:由于屏幕内容具有直方图分布稀疏的性质,所以用若干个基础颜色和一个索引表来表示具有屏幕内容的图像块是非常有效的。我们进而将索引表分解为匹配表和非匹配索引表。由于匹配表的布尔性,即每个元素只有0和1两种值,来表示是否索引表中的索引与预测索引相等。当预测非常精确的时候,那么用于编码匹配表的码流的分布会很不均与,0和1的比例悬殊很大,这样的码流如果用CABAC(Context-based Adaptive Binary Arithmetic Coding,基于上下文的二进制算术编码)进行编码,那么码率的减少幅度会很大。而编码非匹配索引表是一个小概率时间,它只发生在索引表的索引与预测索引不相等的时候,这时候由于排除了一种可能,为了保证连续性,会将一部分的值前移,这样的话,0出现的概率相对高一些。同样对CABAC适用,会减少码率。而且上述两种产生预测索引的方法利用了空间和时间的相关性,产生预测索引的精确性得到了保证,所以我们提出的方法可以大幅度改进屏幕内容的编码效率。

附图说明

[0014] 图1示出了现有的BCIM模式;
[0015] 图2示出了根据本发明的screen content编码方法的流程图;
[0016] 图3是分解索引表的说明图;
[0017] 图4示出了如何根据时间域的相关性产生预测索引;
[0018] 图5示出了如何根据空间域的相关性产生预测索引;
[0019] 图6示出了当前像素及其左,左上,上,右上位置的像素。

具体实施方式

[0020] 这种对屏幕内容的编码方法,在时间域用若干个基础颜色和一个索引表来表示screen content的图像或图像块;其中索引表被拆解为一个匹配表和一个非匹配的索引表,匹配表中的每个元素表示索引表的元素是否与其预测索引相等,若不等,则将更新该索引的值并存储在非匹配的索引表中(如图3所示);预测索引通过两种方法产生:一种是利用时间域的强相关性,将帧间运动估计后搜索到的图像块的索引表当作预测索引表;另一种是利用空间域的相关性,根据当前像素的周围像素的纹理方向,以像素级的预测索引作为预测索引。
[0021] 优选地,如图2所示,这种方法包括以下步骤:
[0022] (1)将每个编码单元CU按照四叉树形式分割为预测单元PU;
[0023] (2)将每个预测单元PU按照四叉树形式分割为变换单元TU;
[0024] (3)对于当前TU有YUV3个分量,对于YUV的每个分量的每个进行步骤(4)-(12)的处理:
[0025] (4)将TU内的像素进行动态规划聚类,获得具有代表性的N个值,N为大于0的整数,这N个值即是N个基础颜色,并按递增顺序排序;然后将当前TU中的每个像素根据欧式距离最近的原则映射到N个基础颜色中的一个,并获得一个索引来表明它映射至哪个基础颜色,并且计算每个TU的失真;
[0026] (5)产生预测索引;
[0027] (6)按照每个索引是否与其对应的预测索引相等的原则来产生匹配表;
[0028] (7)对于那些与预测索引不相等的索引,更新索引,并存储在非匹配的索引表中;
[0029] (8)计算编码基础颜色、匹配表和非匹配的索引表所产生的码率;
[0030] (9)根据步骤(4)中产生的失真和步骤(8)产生的码率来计算率失真代价;
[0031] (10)从1至4遍历N的值,固定N后重复步骤(2)-(9),使步骤(9)中计算的率失真代价最小;
[0032] (11)将选出的率失真代价最小的基础颜色的信息和匹配表及非匹配的索引表的信息传送至解码端;
[0033] (12)解码端在获得相应的信息后,根据基础颜色和索引表来重建当前TU;
[0034] (13)重建PU和CU。
[0035] 优选地,获得基础颜色的方法包括以下步骤:
[0036] (a)将当前图像中的像素排成序,统计并记录每个块中的像素值及其出现频率,并且将所有的具有不同值的像素排成一个按照值递增顺序排成区间X,且每个像素值的出现频率也形成一个区间Y,X和Y这两个区间的元素是一一对应的;
[0037] (b)设定将块内的像素值分为N类,即要得到N个基础颜色,N为大于0的整数:
[0038] β(lowBound,UpBound,N)代表LowBound至UpBound区间内的元素分配到N个类中所产生的失真,
[0039] β(lowBound,UpBound,N)=α(LowBound,p-1)+β(p,UpBound,N-1) N≥2[0040] α(LowBound,UpBound) N=1
[0041] 如果N≥2,P点通过下式求得
[0042]
[0043]
[0044]
[0045] (c)
[0046] β(lowBound,UpBound,4)=α(LowBound,p1-1)+β(p1,UpBound,3)[0047] β(p1,UpBound,3)=α(p1,p2-1)+β(p2,UpBound,2)
[0048] β(p2,UpBound,2)=α(p2,p3-1)+β(p3,UpBound,1)
[0049] β(p3,UpBound,1)=α(p3,UpBound)
[0050] 其中pi是在每层线性搜索找到的最优点,i是1、2、或3,
[0051] α(p3,UpBound),α(p2,p3-1),α(p1,p2-1),α(LowBound,p1-1)就是所求得的基础颜色,且这里有LowBound<p1<p2<p3<UpBound。步骤(2)中的量化采用公式:C(S)=sign(S)×max(0,floor(|S|/Q+1-Z),其中S为输入信号,floor为下取整函数,Q为量化步长,Z是预设的调节参数。
[0052] 以下具体说明产生预测索引的方法,主要包括:
[0053] 1.根据时间域的相关性产生
[0054] 根据时域的相关性,如图4所示,将运动估计所找到的匹配图像块进行相对于当前块的基础颜色的量化,获得一个索引表,作为当前块索引表的预测值。
[0055] 2.根据空间域的相关性产生
[0056] 根据空域的相关性,对块内的每个像素的索引进行预测,首先对周围四个像素进行方向性测试,并用2范数进行衡量。2范数越小,代表纹理越光滑,连续性越强,所以在测试周围4个像素后,用2范数最小的对应像素的索引作为当前索引的预测值。图5很好的说明了这一过程。
[0057] 在编码匹配表时,对上下文进行对应的设计。总共为其设计16种上下文,周围邻近的每个像素的匹配性有2种可能,匹配和不匹配,分别用1和0表示,这样的话,我们这里4
总共获取4个邻近像素,即左方,上方,左上方和右上方,对应的上下文为2 =16。
[0058] 在不匹配的情况下,要编码非匹配索引表中得对应元素,这时需要进行根据周围像素进行上下文的自适应选择以达到更好的编码效果。
[0059] 图5中为当前像素及其左,左上,上,右上位置的像素。
[0060] 为其总共设计15种上下文模型,为了更好的说明,每种上下文用一个四元组表示,四元组分别依次表示左,左上,上,右上位置的像素所表示的索引。这15种上下文分别为{AAAA,AAAB,AABA,ABAA,BAAA,AABB,ABAB,ABBA,AABC,BAAC,BCAA,ABAC,ABCA,BACA,ABCD}。其中A,B,C,D代表4个不同的索引值,例如AAAA代表4个位置的索引是相同的,AAAB代表左方,左上方,上方的3个索引值是一样的,右上方的索引值是与其他三个索引值不一样的。具体做法如下:
[0061] 首先获得上下左右4个像素对应的索引值,按4个索引的出现频率及其所在位置看其属于15种上下文的哪一种,并用对应的上下文模型进行编码。并且在熵编码之前,我们将当前索引需要进行重映射以达到更好的编码效果。重映射的方法如下:根据其所属上下文模型,将需要频率最高的索引重映射为0,然后按频率递减的顺序重映射所有可能出现的索引,形成一个映射表。最后在映射表中查到当前索引重映射后的索引,并编码这个映射后的索引。
[0062] 以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。