利用改进的颜色表和索引图编码方法的高级屏幕内容编码的制作方法

文档序号:10663673阅读:280来源:国知局
利用改进的颜色表和索引图编码方法的高级屏幕内容编码的制作方法
【专利摘要】一种装置用于执行用于屏幕内容编码的方法。所述方法包括基于编码单元(coding unit,CU)导出调色板表和颜色索引图。所述方法还包括对所述调色板表编码以及对所述颜色索引图编码。所述方法还包括将所述已编码调色板表和所述已编码颜色索引图组合以向接收器传输,其中,对所述调色板表和索引图解码以重建像素块。
【专利说明】利用改进的颜色表和索引图编码方法的高级屏幕内容编码 技术领域 本发明大体上涉及屏幕内容编码,更具体地,涉及利用改进的颜色(调色板)表和索引 图编码的高级屏幕内容编码。 【背景技术】 由于屏幕内容编码相比于传统视频信号具有不同的信号特征,所以屏幕内容编码给视 频压缩带来了新的挑战。有多个现有技术用于高级屏幕内容编码,例如伪字符串匹配、颜色 调色板编码和帧内运动补偿或帧内块复制。在这些技术中,伪字符串匹配对于无损编码带 来了最高增益,但对于有损编码模式则具极高复杂性开销和极高难度。在假设非摄像机捕 获的内容(例如,计算机生成的内容)通常包含数目有限的不同颜色,而不包括在许多视频 序列中发现的连续或近乎连续色调的条件下,开发颜色调色板编码用于屏幕内容。即使伪 字符串匹配和颜色调色板编码方法表现出巨大的潜力,但是帧内运动补偿或帧内块复制被 编入了工作草案(working draft,WD)版本4和正在进行中的高效率视频编码(High Efficiency Video Coding,HEVC)范围扩展的参考软件中以用于屏幕内容编码。然而,帧内 块复制的编码性能由于其固定的块分解而受限。执行块匹配(类似于帧内图像中的运动估 计)还在计算和存取访问方面显著增加了编码器的复杂性。
【发明内容】
根据一项实施例,提供了一种用于屏幕内容编码的方法。所述方法包括基于编码单元 (coding unit,CU)导出调色板表和颜色索引图。所述方法还包括对所述调色板表编码以及 对所述颜色索引图编码。所述方法还包括将所述已编码调色板表和所述已编码颜色索引图 组合以向接收器传输。在所述接收器处,对所述调色板表和索引图解码以重建像素块。 根据另一项实施例,提供了一种用于屏幕内容编码的装置。所述装置包括至少一个存 储器和耦合至所述至少一个存储器的至少一个处理器。所述至少一个处理器用于基于编码 单元(coding unit,CU)导出调色板表和颜色索引图,对所述调色板表编码,对所述颜色索 引图编码,以及将所述已编码调色板表与所述已编码颜色索引图组合以向接收器传输。 【附图说明】 为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,相同的数字 表示相同的对象,其中: 图1示出了根据本发明的执行屏幕内容编码过程的示例发射器的功能块图; 图2示出了根据本发明的执行屏幕内容解码过程的示例接收器的功能块图; 图3示出了使用调色板表和索引图的各种模块和处理流程的示例; 图4示出了颜色分量单独和交织示出的示例编码单元(coding unit,⑶); 图5A至图5C示出了供屏幕内容编码过程使用的颜色直方图、颜色打包过程和颜色重排 序过程; 图6示出了供屏幕内容编码过程使用的参考调色板表和当前调色板表; 图7示出了供屏幕内容编码过程使用的颜色索引图的水平和垂直扫描示例; 图8示出了使用颜色索引图的混合1D和2D颜色索引图编码过程的示例操作; 图9示出了示例已编码图;以及 图10和图11示出了供屏幕内容编码过程使用的参考颜色索引图和当前颜色索引图的 示例。 【具体实施方式】 下面论述的图1至图11以及该专利文档中的各种实施例仅通过举例说明的方式描述本 发明的原理,而不应以任何方式理解为对本发明范围的限制。本领域技术人员可以理解的 是,本发明的原理可通过任何一种设置合理的设备和系统实现。 下面的文档和标准描述并入本发明中,如同全文在本文中阐述一样: T. Lin,S. Wang,P. Zhang,Κ. Zhou,UAHG7:Ful1-chroma(YUV444)dietionary+hybrid dual-coder extension of HEVC",JCT-VC文档,JCTVC-K0133,中国,上海,2012年 10月(以 下简称为"REF1"); W.Zhu,J.Xu,W.Ding,"RCE3Test 2:Multi_stage Base Color and Index Map",JCT_ VC文档,JCTVC-N0287,奥地利,维也纳,2013年7月(以下简称为"REF2"); L.Guo,M.Karczewicz,J·Sole,"RCE3:Results of Test 3. Ion Palette Mode for Screen Content Coding",JCT-VC文档,JCTVC-N0247,奥地利,维也纳,2013年7月(以下简 称为 "REF3"); L. Guo ,M.Karczewicz,J.Sole,R.Joshi,uNon-RCE3: Modified Palette Mode for Screen Content Coding",JCT-VC文档,JCTVC-N0249,奥地利,维也纳,2013年7月(以下简 称为 "REF4"); D·-K·Kwon,Μ·Budagavi,"RCE3:Results of test 3.3on Intra motion compensation",JCT-VC文档,JCTVC-N0205,奥地利,维也纳,2013年7月(以下简称为 "REF5"); C. Pang,J.Sole,L.Guo,M.Karczewicz,R.Joshi,uNon-RCE3:Intra Motion Compensation with 2-D MVs",JCT-VC文档,JCTVC-N0256,奥地利,维也纳,2013年7月(以 下简称为"REF6"); C·Pang,J·Sole,L·Guo,M.Karczewicz,R.Joshi,"Non_RCE3:Pipeline Friendly Intra Motion Compensation",JCT-VC文档,JCTVC-N0254,奥地利,维也纳,2013年7月(以 下简称为"REF7"); D. Flynn,J.Soel和T.Suzuki,"Range Extension Draft 4",JCTVC_L1005,2013年8月 (以下简称为"REF8");以及 H.Yu,K.McCann,R.Cohen和P.Amon,"Draft call for proposals for coding of screen content and medical visual content",IS0/IEC JTC1/SC29/WG11N13829,2013 年7月(以下简称为"REF9")。 本发明实施例提供了利用改进颜色表和索引图编码的高级屏幕内容编码过程。所公开 的实施例显著优于高效率视频编码(High-Efficiency Video Coding,HEVC)的当前版本 (HEVC版本2)。所公开实施例包括具体针对屏幕内容编码的多个算法。这些算法包括调色板 表(或等同地,颜色表)的像素表示、调色板表(或等同地,颜色表)压缩、颜色索引图压缩、字 符串搜索和残余压缩。本文公开的实施例与HEVC范围扩展(Range Extension,RExt)-起开 发、调和和整合,作为未来HEVC扩展,以支持有效屏幕内容编码。然而,这些实施例可通过现 有视频标准或任何其它合适的视频标准来另外或可替代地实施。为了便于说明,本文以 HEVC RExt为例描述各种实施例。类似地,HEVC RExt软件用于实施各种实施例,展示出最佳 的压缩效率。 图1示出了根据本发明的执行屏幕内容编码过程的示例发射器的功能块图。图2示出了 根据本发明的执行屏幕内容解码过程的示例接收器的功能块图。发射器100和接收器200的 实施例仅用于说明。发射器100和接收器200的其它实施例可在不脱离本发明的范围的情况 下使用。 发射器100用于执行可以对比特流中的每个编码单元(coding unit,CU)或编码树单元 (coding tree unit,CTU)执行的高效率颜色调色板压缩(color palette compression, CPC)过程。如图1所示,发射器100从比特流中的CU101开始。CU为HEVC和HEVC RExt中的基本 操作单元,是包含像素的方块,该方块包括三个分量(例如,本领域熟知的RGB、YUV、XYZ等 等)。示例⑶101在图3示出。⑶101为8像素乘以8像素的⑶,该⑶包括每个像素的显式颜色 值(例如,47、48、49等)。在其它实施例中,CU 101的大小可以不是8 X 8像素(例如,16 X 16像 素、32X32像素等)。在一些实施例中,发射器100可从CTU 101开始而不从⑶101开始。为了 便于说明,发射器100将通过⑶101进行描述。本领域技术人员可理解,发射器100可以通过 CTU 101执行基本上相同的过程。 图4示出了⑶401的另一示例,其中颜色分量在图中分别示出。CU 401可表示⑶101。 CU 401为8像素乘以8像素的⑶,其中每个像素包括三个颜色分量,在这里为R、G和B。也就 是,CU 401包括在打包过程中交织在一起的不同的红(red,R)颜色分量402、绿(green,G)颜 色分量403和蓝(blue,B)颜色分量404。基本打包处理单元包括相同像素位置处的打包G、B、 R。在其它实施例中,这三个颜色分量可为Y、Cb和Cr,或者分量的其它合适组合。每个颜色分 量可由多个颜色比特表示。例如,GBR颜色分量中的每个颜色分量可由8个比特表示,因此每 个像素颜色为24比特颜色。 调色板表创建块103使用⑶101导出或生成调色板表(有时称为颜色表)。示例调色板 表303在图3示出。为了导出调色板表303,调色板表创建块103根据一个或多个排序规则对 颜色值排序。根据每个颜色值的出现频率、CU 101中每个像素的实际颜色强度或任何其它 合适的排序指标可对调色板表303排序,以提高下面编码操作的效率。例如,如图5A所示,调 色板表创建块103检查CU 101中每个像素的颜色值,并根据降序排序的每个颜色的出现频 率共同使用三个颜色分量,即打包的G、B、R或打包的Y、Cb、Cr创建颜色直方图。为了表示每 个24比特颜色,可以相应地位移G和B颜色分量。也就是,根据值(G〈〈16) + (B〈〈8) + (R)可表示 每个打包的颜色,其中〈〈X是一个左位移运算。 对于有损编码,调色板表创建块103则对经直方图排序的颜色数据应用相邻颜色成组 过程以获得更紧凑的调色板表表示。如图5B所示,根据预定义颜色允许误差可以执行相邻 颜色成组过程。可以多级执行颜色成组过程。在每级内,颜色允许误差等于当前级数,其中 级数从1增加到预定最大允许误差。在一些实施例中,最大允许误差等于9。也可使用更广义 的QP相关颜色允许误差。 在相邻颜色成组之后,调色板表创建块103挑选出现频率最高的N个打包的颜色。N受颜 色的预定最大数目(max_num_of_colors)限制。在一些实施例中,max_num_of_colors = 128,即,Nf 128。随后如图5C所示,基于每个打包的颜色的值通过按升序对颜色排序来对N 个选中的颜色重排序。结果就是调色板表,例如图3示出的调色板表303。调色板表303的大 小为4种颜色(即,N=4)。在许多实施例中,NM。然而,为了便于说明,在图3中N选定为4。 当在CU 101中表示的颜色的数目大于调色板表303中颜色的数目N时,出现频率少的颜 色被排列在调色板表303之外作为残余颜色。例如,颜色值49、53、50和51是调色板表303的 一部分,而颜色值48、52、47、54、55和56为调色板表303之外的残余颜色305。 如上所论述,对经直方图排序的颜色数据执行相邻颜色成组过程以获得更紧凑的调色 板表表示,尤其是对于有损编码而言。假如直方图Η有η个颜色,其中每个颜色包含三个分 量,可以通过下面的伪代码来描述相邻颜色成组过程。对于有损编码模式,最大迭代数Τ等 于颜色允许误差。
应该注意的是,这种用于导出调色板表303的过程不仅可应用于当前⑶,而且还可应用 于相邻CU重建的像素以进行调色板共用过程。 再次转向图1,基于所导出的调色板表303,颜色分类器块105使用⑶101将⑶101的颜 色或像素值分配到颜色索引图311和一个或多个预测残余图313中。也就是,颜色分类器块 105将调色板表303中的每个颜色分配给调色板表303内的颜色索引。例如,如图3中的307所 指示,颜色49分配有颜色索引0(C 〇l〇rIdX = 0),颜色53分配有颜色索引1,颜色50分配有颜 色索引2,以及颜色51分配有颜色索引3(C〇lorId X = 3)。一旦调色板表303中的颜色分配有 索引,则通过每个颜色的索引可以从⑶101生成颜色索引图311。同样地,调色板表303之外 的每个残余颜色305分配有预测残余值,如309所指示。一旦残余颜色305分配有预测残余 值,则可从⑶101生成预测残余图313。 调色板表(或颜色表)编码 对于每个⑶101,发射器100可以从当前⑶1〇1(称为显式调色板表传输)导出调色板 表303,或者发射器100可以从当前⑶101的左侧或上部邻居导出调色板表303(称为隐式调 色板表传输)。当调色板表303是从相邻CU导出时,调色板表本身不需要包含在比特流中。相 反,比特流中携带两个二进制位(一个用于共享标志,另一个用于共享方向)以通知解码器 调色板表传输方法。这种隐式调色板表传输方法在本发明中称为调色板共享。 表编码块107接收调色板303并对调色板表303中的项编码。对于显式调色板表传输方 法,表编码块107采用表间调色板填充技术或差分颜色编码技术(也称为表内颜色差值脉冲 编码调制(differential pulse code modulation,DPCM))依次为所有三个颜色分量对调 色板表303中的每项编码。在当前表303和参考表(也称为调色板预测器)之间执行表间调色 板(颜色)填充技术,而在当前表303内执行表内颜色编码技术。假如逐项执行填充,在一些 实施例中,存在与每个调色板项关联的另一标志,指示是否重用前一调色板预测器中的颜 色。 表间调色板填充 即使在没有使用调色板表共享方法时,仍然可能存在调色板表303与调色板预测器之 间共用的颜色。因此,采用逐项表间调色板填充技术还可以提高编码效率。这里,调色板预 测器从诸如左侧邻近CU或上部邻近CU等相邻块导出。图6示出了根据本发明的可以利用表 间调色板填充技术的调色板预测器601和当前调色板表603。当前调色板表603可表示图3的 调色板表303。可以从当前⑶的左侧邻近⑶中构建调色板预测器601。在解码器侧,根据来自 参考邻居的调色板预测器601适当更新调色板。在一些实施例中,可以从重建的相邻CU或编 码树单元(coding tree unit,CTU)或者从片级或序列级的全局表推断调色板预测器。如在 本领域所知,一个片包括图像中的多个CU。一个图像可包括一个或多个片。一个序列包括多 个片。 假使c(i)和r(j)分别表示当前调色板表603的第i个项和调色板预测器601中的第j个 项。还应该注意的是,每项包含三个颜色分量(GBR、YCbCr,等等)。对于每个颜色项c (i),i兰 N,在当前表603中,表编码块107从调色板预测器601中找到完全匹配r(j)。断然对c(i)、j编 码,而不是标识。将预测器确定为大于先前重建的j并满足r(k)[0]2c(i-l)[0]的最小索引 k。预测差值(j_k)在比特流中标识。由于差值(j-k)为非负,所以不需要符号比特。 值得注意的是,如本领域所知,可以使用上下文自适应模式或旁路模式对(j_k)编码。 通常情况下,上下文自适应模式是为了高效率目的,而旁路模式是为了高通量和低复杂性 需求。在本发明的一些实施例中,可以使用两种上下文自适应模式通过动态截断一元二值 化方案对索引预测差值(j-k)编码。 表内颜色DPCM 如果在调色板预测器601中没有找到当前调色板表603中第i个项的匹配,则从前一项 (第(i-Ι)个项)减去第i个项的值,并且针对每个分量使用颜色DPCM对绝对差值(|d(i) | )编 码。一般而言,将产生用于绝对预测差值和一个符号比特的少数比特,并使用表内颜色DPCM 对它们编码。上下文自适应模式或旁路模式可以用于对绝对预测差值和相关符号比特编 码,如本领域所知。另外,可以隐藏符号比特,或者在一些情况下不对其编码。例如,假使当 前调色板表603已经以升序排序,Y(或者G)分量差值根本不需要符号比特。同样地,如果对 应的Y(或者G)差值为0,则Cb(或者B)分量差值不需要符号比特。此外,如果Y(或者G)和Cb (或者B)差值都为0,则Cr(或者R)分量差值不需要符号比特。又例如,如果绝对差值为0,可 以隐藏符号比特。再例如,如果满足以下边界条件,则可以隐藏符号比特。c[i-l]-|d(i)|〈0 或者c[i_l]+|d(i) |>255。 对于当前表603的第一项c(0),如果没有使用表间调色板填充技术,则可以使用固定8 比特旁路上下文模式对c(〇)的每个分量编码。另外或可替代地,可以使用自适应上下文模 式对其编码以进一步提尚性能。 为了更好地说明表间调色板填充和表内颜色DPCM技术,现将描述一个在当前调色板表 603中使用数据的示例。 从当前调色板表603的第一项c(0)开始,即(64,1〇 = (0,0,192),可以看到(3(0)在调色 板预测器601中没有匹配,因此单独对c(0)编码。当前调色板表603中的第二项c(l)(G,B,R) =(0,0,240)在调色板预测器601中也没有匹配。假使已经对第一项c(0)编码,只有c(l)和c (0)之间的预测差值应该携带在比特流中,即(0,0,240)-(0,0,192) = (0,0,48)。对于当前 表603中的第三项c(2),在调色板预测器601中识别出精确匹配,其中j = l。使用先前已编码 颜色项的预测索引为0,因此,只有(1-0) = 1需编码。应用这些编码技术,直到对当前表603 中的最后一项(即图6中的idx=12)编码。表1提供了如何使用可用的调色板预测器601对当 前表603应用表间共享和表内DPCM的逐步说明。 表1:图6中的示例性表的编码方法
下面的伪代码可以总结调色板表603的编码。
索引图编码 索引图编码块109对由颜色分类器块105创建的颜色索引图311编码。为了对颜色索引 图311编码,索引图编码块109执行至少一个扫描操作(水平扫描315或垂直扫描317)以将二 维(two-dimensional,2D)颜色索引图311转换为一维(one-dimensional,1D)字符串。然后, 索引图编码块109执行(下文所述的)字符串匹配算法以生成多个匹配。在一些实施例中,索 引图编码块109执行单独的水平和垂直扫描操作并执行字符串匹配算法以确定哪种提供最 佳结果。图7示出了水平和垂直扫描操作的示例。在图7中,示出了示例2D颜色索引图701。颜 色索引图701可以表示图3的颜色索引图311。颜色索引图701为8X8的图,但是其它大小的 颜色索引图也是可能的。如图7所示,可以对颜色索引图701进行水平扫描702或垂直扫描 703〇 对于每个(水平或垂直的)扫描操作,还可以执行2D块匹配算法以生成多个匹配块,如 下所述。通过1D字符串匹配算法和2D块匹配算法的组合,索引图编码块109执行混合1D和2D 颜色索引图编码过程。 在混合编码过程中,先前处理的索引可以用作连续索引搜索的参考。多个CTU(例如3个 CTU)至当前CTU的左侧可以用作2D块匹配算法的参考区域。 可为当前颜色索引图311执行1D和2D匹配算法以确定字符串匹配或块匹配319。对于1D 匹配结果,索引图编码块109记录匹配长度和对应距离或位置。对于2D匹配结果,索引图编 码块109记录匹配块宽度和高度、对应参考CTU索引和参考索引在CTU的位置。 如果索引地图编码块109无法在先前处理的索引值中找到当前索引值的匹配,则通过 使用匹配/不匹配标志(设为指示不匹配像素)和索引值自身将当前索引值编码为非匹配索 引值。在一些实施例中,匹配/不匹配标志为1比特标志。 例如,图8示出了使用图7的颜色索引图701的混合1D和2D颜色索引图编码过程的示例 操作。颜色索引图701中的第一索引图值801为14。假设在参考索引图中没有为第一索引图 值801找到匹配(例如,相邻颜色索引图中没有14),那么第一索引图值801被编码为不匹配。 假设是水平扫描过程,第二索引图值802也为14。第一索引图值801有匹配,其现在可以是对 第二索引图值802的参考。继续水平扫描,可以看到,第二索引图值802的右边发现另一 14。 第一索引图值801之后不存在连续的14。因此,索引图值的字符串803表示第一索引图值801 的1D匹配字符串。 对于每个索引图值,还执行2D块搜索。例如,对于二维2 X 2索引图块811 (其包括值14、 17、17、17),由于二维2X2索引图块811还包括值14、17、17、17,所以在块810处找到索引图 块811的2D块匹配。可替换地,2D块匹配的宽度和高度可以固定到当前CU的宽度和高度。 颜色索引图701中的每个索引图值继续进行1D和2D搜索过程。每个索引图值为非匹配 或一部分字符串匹配或块匹配。例如,宽度为4、高度为2的2D块806在图8示出。2D块811与索 引图块810匹配。 如果索引图编码块109选择1D匹配字符串作为其对于当前索引值的搜索结果,则通过 将匹配/不匹配标志设置为指示匹配像素、将匹配类型标志设为1D以及提供连续匹配索引 的距离(例如,当前索引值的位置与匹配字符串的位置之间的偏差)和长度来执行编码。如 果当前索引值存在多个1D匹配,则索引图编码块109选择提供最佳率失真(rate-dist 〇rti〇n,R-D)性能的匹配。为了降低复杂性,一些实施例使用启发式算法来选择匹配长 度最长的匹配。 如果索引图编码块109选择2D匹配块作为其对于当前索引值的搜索结果,则通过将匹 配/不匹配标志设置为指示匹配像素、将匹配类型标志设为2D以及提供参考CTU索引和匹配 块的距离(参考CTU中的匹配位置的地址)和宽度和高度执行编码。如果当前索引值存在多 个2D匹配,则索引图编码块109选择提供最佳R-D性能的匹配块。为了降低复杂性,一些实施 例使用启发式算法来选择匹配区域最大的块。 在一些实施例中,在混合1D和2D颜色索引图编码过程中引入编码图。例如,图9示出了 示例已编码图900。已编码图900对应于颜色索引图,诸如颜色索引图701。每当在混合1D和 2D颜色索引图编码过程期间找到匹配,由1D字符串匹配或2D块匹配表示的区域被标记为在 已编码图900中已编码。例如,在已编码图900中,区域901为包括1D字符串匹配和2D块匹配 的已编码区域。区域902为还没有编码的未编码区域。在完成当前索引的编码之后,索引图 编码块109扫描已编码图900以找到第一未编码位置为待处理的下一索引。在一些实施例 中,该位置可标识为curldx,如图9所示。在混合1D/2D搜索中,如果当前字符串中的任一位 置已经在前面的2D搜索中编码,该位置的匹配结果被当作一个匹配,即使当前位置和参考 位置之间的索引值可能不同。 再次转向图1,残余编码块111对由颜色分类器块105创建的预测残余图313编码。在一 些实施例中,残余编码块111执行自适应固定长度或可变长度的残余二值化,如图3的321所 指示。这时,复用(multiplexing,MUX)块113使用字符串/块匹配319和已编码预测残余321 生成压缩比特率。在一些实施例中,基于上下文的自适应二进制算术编码(con text adaptive binary arithmetic coding,CABAC)方法323可以用来组合字符串/块匹配319和 已编码预测残余321,如图3所示。 转向图2,接收器200用于执行如上所述的类似于发射器100执行的屏幕内容编码过程 的屏幕内容解码过程。接收器200接收压缩视频比特流,然后使用解复用器201将比特流解 析为已编码调色板表、颜色索引图和已编码预测残差。表解码块203和调色板表创建块209 执行与表编码块107和调色板表创建块103相反的过程以重建每个CU的完整调色板表。类似 地,索引图解码块205和残差解码块207执行与索引图编码块109和残差编码块111相反的过 程以重建颜色索引图。颜色解分类器块211通过组合颜色索引图和调色板表导出每个位置 的像素值,从而重建CTU或⑶213。 尽管图1和图2示出了执行屏幕内容编码和解码的发射器100和接收器200的示例,但是 可对图1和图2进行各种更改。例如,图1和图2中的各种部件可以组合、进一步细分或者省 略,而且根据特定需要可以添加额外部件。作为特定的示例,可以在一个外壳内或在一个电 路板上排列各种部件,或者由单个处理器或处理单元执行各种部件。 下面的两个伪代码示出了上面所述的混合1D和2D字符串搜索方法。 在下面的1D搜索伪代码中,curldx为待编码字符串的起始地址,ref Idx表示参考字符 串的所有可能起始地址。对于每个给定的curldx和ref Idex,处理块执行改进的内存对比操 作以找到第一不匹配值。然后对比所有匹配长度并将最长匹配长度(len,rendX)记录为位 置curldx的1D搜索的入选者。当前1D搜索字符串中的某个位置已经通过2D搜索编码也是可 能的。在这种情况下,该位置被视为匹配,不管它的值是多少。不匹配只发生在没有对位置 编码以及其ColorMap值不等于参考字符串中对应位置的ColorMap值时。
在下面的2D搜索伪代码中,curldx为待编码块的左上角,ref Idx表示参考块的所有可 能左上角。例如,如图11所示,curldx指示当前颜色索引图1004的待编码块1002的左上角, 而ref Idx指示参考颜色索引图1008中参考块1006等参考块的左上角。处理块计算当前颜色 索引图1004中的最大搜索窗口并将窗口的宽度和高度保存在变量cwO和chO中。其还计算参 考颜色索引图1008中的最大搜索窗口并将宽度和高度保存在变量rwO和rhO中。最终搜索窗 口由 minw=min(rwO,cwO)和 minh=min(rhO,chO)定义,如图 11所;^:。 于每个给定的curldx和ref Idx,搜索过程执行改进的内存对比操作以在搜索窗口 (minW,minh)的每行内找到第一未匹配值。然后对比任一高度的所有匹配大小并将最大匹 配大小(参考CTU的宽度、高度和索引)记录为"入选者"(即,位置curldx的2D搜索的最有利 匹配)。 当前2D搜索窗口中的某个区域已经通过前一2D搜索编码也是可能的^在这种情况下, 该位置被视为一个匹配,不管它的值是多少。参考2D搜索窗口中的某个区域还未编码也是 可能的。在这种情况下,该位置被视为未匹配,不管其值为多少。不匹配只发生在该位置未 编码以及参考搜索窗口中的该位置未编码,或者其在当前颜色索引图1004中的值不等于参 考字符串中对应位置的颜色图值。 //2D search Int max2DSize = l; Int max2Dffidth= 1 ; Int max2DHeight = 1 ; Int d2Dist = -l ; Int d2Lcu = -l ; pcRefCU = pcCU; for(Int n = 0;n〈4;++n){ for(Int ry = 0;ry<uiRefHeight[n] ;++ry) { for(Int rx = 0;rx<uiRefffidth[n] ;++rx) { ref Idx = rx+ry*uiRefWidth[n]; Int cwO = uiffidth-curIdx%uiffidth; Int chO = uiHeight-curIdx/uiffidth; Int rwO = uiRefffidth[n]-rx; Int rhO = uiRefHeight[n]-ry; Int minw=(rw0<cw0)?rw0:cw0; Int minh=(rh0<ch0)?rh0:ch0; Int d2ffidth=MAX_INT; Int d2Size = 0; Int x = 0; for(Int y = 0;y<minh;++y){ f or(x = 0;x<minw;++x) if (n= =0) { if((pbCodedMaptcurldx+x+y^uiffidth]= =0)&& ((CurColorMaptcurldx+x+y^uiffidth]!= CurColorMap[refIdx+x+y^uiffidth])|| (pbCodedMap[refIdx+x+y^uiffidth]= =0))) break; }else{ if((pbCodedMaptcurldx+x+y^uiffidth]= =0)&& (CurColorMaptcurldx+x+y^uiffidth]!= RefColorMap[n][refIdx+x+y^uiRefffidthtn]])) break; } d2ffidth= (d2ffidth<x)?d2ffidth: x; d2Size = d2Width*(y+l); minw = d2ffidth; if(d2Size>max2DSize){ max2DSize = d2Size ; max2Dffidth = d2ffidth; max2DHeight = y+l ; d2Dist = ref Idx; d2Lcu = n; } } } } if ((pcRefCU = pcRefCU->getCULeft()) = =NULL) break; } 在完成对ID字符串匹配和2D区域匹配的搜索之后,如果ID maxLen大于2D max2Dsize, 或者2D区域小于阈值区域(当前在伪代码中设为4X4,但是其它区域也是可能的),那么ID 结果用于cur Idx 否则,2D结果用于cur Idx 更新已编码图900, cur Idx前进到下一位置。
由于混合1D/2D搜索的本质,下一curldx位置可能已经通过前面的2D搜索编码过了。因 此,在已编码图900中执行栅格扫描以找到还未编码为新curldx的第一位置,诸如具有下文 所示的伪代码。 while((curIdx<uiTotal)&&(pbCodedMap[curIdx]!=0)) ++curldx; 为了对ID字符串匹配的长度编码,比特流语法使用调整后的长度而不是maxLen来对ID 结果编码。假使maxLen中的一些位置已经在前一 D2搜索期间编码,从maxLen移除这些位置, 并且将调整后的长度写入比特流。如果调整后的长度等于1,那么该匹配被视为不匹配数 据。 为了对2D块的宽度和高度编码,比特流语法使用长度而不是宽度/高度对2D结果编码。 这里的长度定义为由(minw,minh)定义的搜索窗口中匹配窗口的右下角的栅格位置。进一 步将其修改为反映搜索窗口和匹配窗口的宽度和高度都大于阈值窗口的事实。可以使用下 面的伪代码。 ui2DSize=(pLen[uiIdx]-MIN_2D_WIDTH)+(p2DHeight[uiIdx]- MIN_2D_HEIGHT)*(l+minw-MIN_2D_WIDTH); 解码器可以执行相同的已编码图操作以在接收器200中进行正确处理。
[0076]在一些实施例中,下面的额外内容需求可应用于执行上面所述的编码或解码操作 的发射器100或接收器200。
在一些实施例中,混合1D和2D搜索使用将近80KB的额外内存(例如,对于20个CTU)。 在一些实施例中,8比特CRC哈希可以用来增加编码速度。当然,还可以使用其它类型的 哈希函数。对于1D搜索,为每个颜色图索引计算2点哈希,并且使用计算的哈希值格式化哈 希词典数组。对于2D搜索,为每个颜色图索引计算4X4块哈希,并且使用计算的哈希值格式 化哈希数组和哈希词典数组。 改进的距离和长度编码 取代直接对距离和长度对编码,可以基于距离和长度对的分布使用下面的编码方法。 对于距离编码,可以使用1比特标志指示距离是否为有效距离。如果不是有效距离,上面公 开的距离编码方法可采用(距离-2)。如果是有效距离,可以使用额外的1比特标志(例如 dist_equal_one_flag)来指示有效距离是否为1或者为当前⑶的宽度。在一些实施例中,如 果(1丨81:_691^1_0116_;1^138为真,该距离=1。如果(1丨81:_69仙1_0116_;1^138为假,该距离= cuWidth。在这里,距离=cuWidth表明来自上一行的索引复制。其还称为CopyAbove模式。距 离=1表明来自左侧索引的索引复制。其还称为IndexMode。 对于长度编码,可以使用1比特标志指示当前长度是否为有效长度。如果不是有效长 度,上面公开的长度编码方法可采用(长度-cuWidth)。如果不是有效长度,可以使用固定二 值化方法来对(长度-1)编码。在一些实施例中,距离二值化中的比特数为l〇g2(cuWidth)。 解码器语法 根据本发明的下面解码器符合HEVC RExt的当前委员会草案。 序列参数集RBSP语法
在某些实施例中,一个或多个所述设备的部分或全部功能或流程由计算机可读程序代 码构成的且内嵌于计算机可读介质中的计算机程序来实现或提供支持。术语计算机可读程 序代码摂包括任意类型的计算机代码,包括源代码、目标代码以及可执行代码。术语计算机 可读介质摂包括任何类型的可以被计算机访问的非易失性介质,比如,只读存储器(ROM)、 随机存取存储器(RAM)、硬盘驱动器、光盘(CD)、数字化视频光盘(DVD)或者任何其他类型的 存储器。 为本专利文档中使用的特定术语和短语进行定义是有帮助的。术语"包括"和"包含"以 及它们的派生词表示没有限制的包括。术语"或者"是包容性的,意为和/或。短语"与……关 联"和"与其关联"以及其派生的短语意味着包括,被包括在内、与……互连、包含、被包含在 内、连接到或与……连接、耦合到或与……耦合、可与……通信、与……配合、交织、并列、接 近、被绑定到或与……绑定、具有、具有……属性,等等。 虽然本发明就某些实施例和一般相关方法方面进行了描述,但是对本领域技术人员而 言,对实施例和方法的各种更改和变更将是显而易见的。因此,示例实施例的上述描述不限 定或约束本发明。正如以下权利要求定义,其它修改、替代以及变更也是可能的,而不偏离 本发明的精神和范围。
【主权项】
1. 一种用于屏幕内容编码的方法,其特征在于,所述方法包括: 基于编码单元(coding unit,⑶)导出调色板表和颜色索引图; 对所述调色板编码; 对所述颜色索引图编码;以及 将所述已编码调色板和所述已编码颜色索引图组合以向接收器传输。2. 根据权利要求1所述的方法,其特征在于,导出所述调色板表包括从所述CU中显式地 导出所述调色板表或者使用所述CU的上层或左侧邻居隐式地导出所述调色板表。3. 根据权利要求1所述的方法,其特征在于,对所述调色板表编码包括使用表间调色板 填充过程对所述调色板表中的至少一个第一项编码以及使用表内颜色DPCM过程对所述调 色板表中的至少一个第二项编码。4. 根据权利要求3所述的方法,其特征在于,在所述表间调色板填充过程中,基于从一 个邻近⑶或多个邻近⑶导出的调色板预测器中的匹配项对所述调色板表中的所述至少一 个第一项编码。5. 根据权利要求4所述的方法,其特征在于,配置所述调色板预测器将在片级或序列级 处编码。6. 根据权利要求3所述的方法,其特征在于,在所述表内DPCM过程中,所述调色板表中 的所述至少一个第二项被编码为所述至少一个第二项与所述调色板表中的前面已编码项 之间的差值。7. 根据权利要求1所述的方法,其特征在于,对所述颜色索引图编码包括使用混合一维 (one-dimensional,1D)和二维(two-dimensional,2D)颜色索引图编码过程,其中,对于所 述颜色索引图中的每个索引值,确定所述索引值的位置处是否存在1D字符串匹配或2D块匹 配。8. 根据权利要求7所述的方法,其特征在于,当所述索引值存在1D字符串匹配,将所述 1D字符串匹配编码为匹配长度和距离或位置。9. 根据权利要求8所述的方法,其特征在于: 当所述距离等于1,所述编码被处理为IndexMode模式;以及 当所述距离等于⑶宽度,所述编码被处理为CopyAbove模式。10. 根据权利要求7所述的方法,其特征在于,当所述索引值存在2D块匹配,将所述2D块 匹配编码为匹配块宽度和高度、对应的参考CTU索引以及所述参考索引的位置。11. 根据权利要求7所述的方法,其特征在于,当所述索引值存在2D块匹配时,将所述2D 块匹配的所述宽度和高度固定到所述CU的所述宽度和高度。12. 根据权利要求7所述的方法,其特征在于,当所述索引值既不存在1D字符串匹配也 不存在2D块匹配时,将所述索引值编码为不匹配索引值。13. -种用于屏幕内容编码的装置,其特征在于,所述装置包括: 至少一个存储器;以及 耦合到所述至少一个存储器的至少一个处理器,所述至少一个处理器用于: 基于编码单元(coding unit,⑶)导出调色板表和颜色索引图; 对所述调色板表编码; 对所述颜色索引图编码;以及 将所述已编码调色板表和所述已编码颜色索引图组合以向接收器传输。14. 根据权利要求13所述的装置,其特征在于,导出所述调色板表包括从所述CU中显式 地导出所述调色板表或者使用所述CU的上层或左侧邻居隐式地导出所述调色板表。15. 根据权利要求13所述的装置,其特征在于,对所述调色板表编码包括使用表间调色 板填充过程对所述调色板表中的至少一个第一项编码以及使用表内颜色DPCM过程对所述 调色板表中的至少一个第二项编码。16. 根据权利要求15所述的装置,其特征在于,在所述表间调色板填充过程中,基于从 一个邻近⑶或多个邻近⑶导出的调色板预测器中的匹配项对所述调色板表中的所述至少 一个第一项编码。17. 根据权利要求16所述的装置,其特征在于,配置所述调色板预测器将在片级或序列 级处编码。18. 根据权利要求15所述的装置,其特征在于,在所述表内DPCM过程中,所述调色板表 中的所述至少一个第二项被编码为所述至少一个第二项与所述调色板表中的前面已编码 项之间的差值。19. 根据权利要求13所述的装置,其特征在于,对所述颜色索引图编码包括使用混合一 维(one-dimensional,1D)和二维(two-dimensional,2D)颜色索引图编码过程,其中,对于 所述颜色索引图中的每个索引值,确定所述索引值的位置处是否存在1D字符串匹配或2D块 匹配。20. 根据权利要求19所述的装置,其特征在于,当所述索引值存在1D字符串匹配,将所 述1D字符串匹配编码为匹配长度和距离或位置。21. 根据权利要求20所述的装置,其特征在于: 当所述距离等于1,所述编码被处理为IndexMode模式;以及 当所述距离等于⑶宽度,所述编码被处理为CopyAbove模式。22. 根据权利要求19所述的装置,其特征在于,当所述索引值存在2D块匹配,将所述2D 块匹配编码为匹配块宽度和高度、对应的参考CTU索引以及所述参考索引的位置。23. 根据权利要求19所述的装置,其特征在于,当所述索引值存在2D块匹配时,将所述 2D块匹配的所述宽度和高度固定到所述CU的所述宽度和高度。24. 根据权利要求19所述的装置,其特征在于,当所述索引值既不存在1D字符串匹配也 不存在2D块匹配时,将所述索引值编码为不匹配索引值。
【文档编号】G06T1/00GK106030651SQ201580009874
【公开日】2016年10月12日
【申请日】2015年3月20日
【发明人】马展, 徐猛, 王炜, 王显, 于浩平
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1