具有改进调色板表和索引图编码的先进屏幕内容编码方法与流程

文档序号:11142337阅读:260来源:国知局
本申请要求2015年5月21日递交的发明名称为“具有改进调色板表和索引图编码的先进屏幕内容编码方法(ADVANCEDSCREENCONTENTCODINGWITHIMPROVEDPALETTETABLEANDINDEXMAPCODINGMETHODS)”的第14/719,064号美国非临时专利申请案的在先申请优先权,该非临时专利申请案要求2014年5月23日递交的发明名称为“具有改进颜色表和索引图编码方法的先进屏幕内容编码方案-第三部分(ADVANCEDSCREENCONTENTCODINGSOLUTIONWITHIMPROVEDCOLORTABLEANDINDEXMAPCODINGMETHODS-PART3)”的第62/002,556号美国临时专利申请案的在先申请优先权,这两个在先申请的全部内容以引入的方式并入本文本中。
技术领域
:本发明大体上涉及屏幕内容编码,更具体地,涉及具有改进颜色(调色板)表和索引图编码的先进屏幕内容编码。
背景技术
::屏幕内容编码给视频压缩带来了新挑战,因为相比于传统的视频信号,屏幕内容编码的信号特征鲜明。目前存在多种先进屏幕内容编码技术,例如,伪字符串匹配、颜色调色板编码和帧内运动补偿或帧内块复制等。在这些技术中,伪字符串匹配在无损编码方面展示了最高的增益,但复杂度开销大且在有损编码模式中存在困难。针对屏幕内容研发的颜色调色板编码基于以下假设:非相机捕获的内容(例如,计算机生成的内容)通常包含数量有限的不同颜色而不是在许多视频序列中找到的连续或近乎连续色调。尽管伪字符串匹配和颜色调色板编码方法展示了巨大的潜力,帧内运动补偿或帧内块复制在正在进行的用于屏幕内容编码的高效视频编码(HighEfficiencyVideoCoding,HEVC)范围扩展的工作草案(workingdraft,WD)第4版和参考软件中被采用。然而,因为固定的块分解,帧内块复制的编码性能受限。进行块匹配(类似于帧内图像的运动估计)还明显提高了计算和内存访问方面的编码器复杂度。技术实现要素:根据一项实施例,提供了一种用于屏幕内容编码的方法。所述方法包括基于当前编码单元(codingunit,CU)获取调色板表和颜色索引图。所述方法还包括对所述调色板表进行编码和对所述颜色索引图进行编码。所述方法还包括结合所述编码后的调色板表和所述编码后的颜色索引图以传输给接收器。在所述接收器处,对所述调色板表和所述索引图进行解码以重建像素块。根据另一项实施例,提供了一种用于屏幕内容编码的装置。所述装置包括:至少一个存储器;以及耦合到所述至少一个存储器的至少一个处理器。所述至少一个处理器用于:基于当前编码单元(codingunit,CU)获取调色板表和颜色索引图;对所述调色板表进行编码;对所述颜色索引图进行编码;以及结合所述编码后的调色板表和所述编码后的颜色索引图以传输给接收器。根据又一项实施例,提供了一种用于屏幕内容解码的方法。所述方法包括接收包括调色板表和颜色索引图中的至少一个的视频比特流。所述方法还包括对所述调色板表和所述颜色索引图中的至少一个进行解码。所述方法还包括基于所述调色板表和所述颜色索引图中的至少一个重建与当前编码单元(codingunit,CU)相关联的像素。根据另一项实施例,提供了一种用于屏幕内容解码的解码器。所述解码器包括:接收元件,用于接收包括调色板表和颜色索引图中的至少一个的视频比特流;以及解码元件,用于对所述调色板表和所述颜色索引图中的至少一个进行解码。所述解码器还包括重建元件,用于基于所述调色板表和所述颜色索引图中的至少一个重建与当前编码单元(codingunit,CU)相关联的像素。根据又一项实施例,提供了一种用于屏幕内容编码的编码器。所述编码器包括获取元件,用于基于当前编码单元(codingunit,CU)获取调色板表和颜色索引图。所述编码器还包括编码元件,用于对所述调色板表和所述颜色索引图进行编码。所述编码器还包括结合元件,用于结合所述编码后的调色板表和所述编码后的颜色索引图以传输给接收器。在所述接收器处,对所述调色板表和所述索引图进行解码以重建像素块。附图说明为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,相同的数字表示相同的对象,其中:图1示出了根据本发明的执行屏幕内容编码过程的示例性发射器的功能方框图;图2示出了根据本发明的执行屏幕内容解码过程的示例接收器的功能方框图;图3示出了根据本发明的使用调色板表和索引图的各种模块和处理流程的示例;图4示出了示例编码单元(codingunit,CU),其颜色分量分别显示和封装;图5示出了使用相邻重建块进行调色板表预测的示例;图6示出了64x64CU的示例颜色索引图,在其中可以使用水平或垂直扫描;图7示出了采用水平扫描进行一维(onedimensional,1D)搜索后的一个1D颜色索引矢量的一部分;图8示出了称为U_PIXEL模块的基本像素处理单元的示例;图9示出了U_ROW模块的示例;图10示出了U_CMP模块的示例;图11示出了U_COL模块的示例;图12示出了示例U_2D_BLOCK模块;图13示出了用于索引图处理的水平和垂直扫描的示例;图14A和图14B示出了4:2:0和4:4:4色度采样格式的示例;图15示出了从4:4:4到4:2:0或反之的插值过程的示例;图16示出了使用上索引行缓冲或左索引行缓冲进行颜色索引图处理的示例;图17示出了根据本发明的优化路径移动管理的方法;图18示出了根据本发明的优化路径移动管理的方法。具体实施方式下文论述的图1至图18和本专利文档中用于描述本发明的原理的各种实施例仅为示例性方式,而不应解释为以任何方式限制本发明的范围。本领域技术人员将理解,本发明的原理可在任何类型的适当布置的设备或系统中实施。因此,将以下文档和标准描述并入在本发明中,如同在本文充分阐述一样。由T.Lin、S.Wang、P.Zhang、K.Zhou著的“AHG7:HEVC的全色度(YUV444)词典+混合双编码器扩展(AHG7:Full-chroma(YUV444)dictionary+hybriddual-coderextensionofHEVC)”,JCT-VC文件,JCTVC-K0133,中国上海,2012年10月(在下文中称为“REF1”);由W.Zhu、J.Xu、W.Ding著的“RCE3测试2:多级基色和索引图(RCE3Test2:Multi-stageBaseColorandIndexMap)”,JCT-VC文件,JCTVC-N0287,奥地利维也纳,2013年7月(在下文中称为“REF2”);由L.Guo、M.Karczewicz、J.Sole著的“RCE3:用于屏幕内容编码的调色板模式的测试3.1的结果(RCE3:ResultsofTest3.1onPaletteModeforScreenContentCoding)”,JCT-VC文件,JCTVC-N0247,奥地利维也纳,2013年7月(在下文中称为“REF3”);由L.Guo、M.Karczewicz、J.Sole、R.Joshi著的“非RCE3:用于屏幕内容编码的改进调色板模式(Non-RCE3:ModifiedPaletteModeforScreenContentCoding)”,JCT-VC文件,JCTVC-N0249,奥地利维也纳,2013年7月(在下文中称为“REF4”);由D.-K.Kwon、M.Budagavi著的“RCE3:帧内运动补偿的测试3.3的结果(RCE3:Resultsoftest3.3onIntramotioncompensation)”,JCT-VC文件,JCTVC-N0205,奥地利维也纳,2013年7月(在下文中称为“REF5”);由C.Pang、J.Sole、L.Guo、M.Karczewicz、R.Joshi著的“非RCE3:使用2-DMV的帧内运动补偿(Non-RCE3:IntraMotionCompensationwith2-DMVs)”,JCT-VC文件,JCTVC-N0256,奥地利维也纳,2013年7月(在下文中称为“REF6”);由C.Pang、J.Sole、L.Guo、M.Karczewicz、R.Joshi著的“非RCE3:管道友好型帧内运动补偿(Non-RCE3:PipelineFriendlyIntraMotionCompensation)”,JCT-VC文件,JCTVC-N0254,奥地利维也纳,2013年7月(在下文中称为“REF7”);由D.Flynn、J.Soel和T.Suzuki著的“范围扩展草案4(RangeExtensionDraft4)”,JCTVC-L1005,2013年8月(在下文中称为“REF8”);以及H.Yu、K.McCann、R.Cohen和P.Amon著的“对屏幕内容和医学可视化内容进行编码的草案提议(Draftcallforproposalsforcodingofscreencontentandmedicalvisualcontent)”ISO/IECJTC1/SC29/WG11N13829,2013年7月(在下文中称为“REF9”)。本发明实施例提供了具有改进调色板表和索引图编码的先进屏幕内容编码过程。所公开的实施例明显优于当前版本的高效率视频编码(HEVC第2版)。所公开的实施例包括多种专门用于编码屏幕内容的算法。这些算法包括:使用调色板表(或等价地,颜色表)的像素表示、调色板表压缩、颜色索引图压缩、字符串匹配和残差压缩。本文所公开的实施例使用HEVC范围扩展(RangeExtension,RExt)开发、协调并与其融合来作为将来的HEVC扩展,以支持高效的屏幕内容编码。然而,这些实施例可以附加地或替代地与现有视频标准或任何其它合适的视频标准一起实施。为便于说明,本文使用HEVCRExt作为示例来描述各种实施例。类似地,使用HEVCRExt软件来实施各种实施例以展示压缩效率。图1示出了根据本发明的进行屏幕内容编码过程的示例性发射器的功能方框图。图2示出了根据本发明的进行屏幕内容解码过程的示例接收器的功能方框图。发射器100和接收器200的实施例仅用于说明。在不脱离本发明范围的情况下,可以使用发射器100和接收器200的其它实施例。发射器100用于执行高效的颜色调色板压缩(colorpalettecompression,CPC)过程,CPC过程可以对比特流中的每个编码单元(codingunit,CU)或编码树单元(codingtreeunit,CTU)执行。如图1所示,发射器100从比特流中的CU101开始。CU是HEVC和HEVCRExt中的基本操作单元,是包含三个颜色分量(例如,本领域中已知的RGB、YUV、XYZ等)的方形像素方块。示例CU101在图3中示出。CU101为8像素×8像素CU,包括每个像素的明确颜色值(例如,47、48、49等)。在其它实施例中,CU101的尺寸可为8×8像素之外的(例如,16×16像素,32×32像素等)。在一些实施例中,发射器100可从CTU101而非CU101开始。为便于解释,将使用CU101描述发射器100。本领域技术人员将理解,发射器100可对CTU101执行基本上相同的过程。调色板表创建块103使用CU101来获取或生成调色板表(有时称为颜色表)。示例调色板表303在图3中示出。为了获取调色板表303,调色板表创建块103根据一个或多个排序规则对颜色值排序。调色板表303可根据每个颜色值的出现频率、CU101的每个像素的实际颜色强度或任何其它合适的排序度量进行排序,以提高以下编码操作的效率。根据获取的调色板表303,颜色分类器块105使用CU101来将CU101的颜色或像素值分配到颜色索引图311和一个或多个预测残差图313。表编码块107接收调色板表303,并对调色板表303中的表项进行编码。索引图编码块109对颜色分类器块105创建的颜色索引图311进行编码。这些操作在下文更详细地描述。残差编码块111对由颜色分类器块105创建的每个预测残差图313进行编码。在一些实施例中,残差编码块111执行自适应固定长度或可变长度的残差二值化,如图3的321所指示。然后,复用(multiplexing,MUX)块113使用字符串/块匹配319和编码后的预测残差321生成压缩比特流。在一些实施例中,可使用基于上下文的自适应二进制算术编码(contextadaptivebinaryarithmeticcoding,CABAC)方法323来合并字符串/块匹配319和编码后的预测残差321,如图3所示。转到图2,接收器200用于执行屏幕内容解码过程,这类似于发射器100所执行的屏幕内容编码过程,如上所述。接收器200接收压缩视频比特流,然后使用解复用器201将比特流解析为编码后的调色板表、颜色索引图和编码后的预测残差。表解码块203和调色板表创建块209执行与表编码块107和调色板表创建块103相反的过程来为每个CU重建完整的调色板表。类似地,索引图解码块205和残差解码块207执行与索引图编码块109和残差编码块111相反的过程以重建颜色索引图。颜色去分类器块211通过梳理颜色索引图和调色板表来获取每个位置处的像素值,从而重建CTU或CU213。尽管图1和图2示出了用于执行屏幕内容编码和解码的发射器100和接收器200的示例,但可以对图1和2进行各种改变。例如,可以合并、进一步细分或省略图1和图2中的各种组件,并可根据具体需要来添加额外组件。作为具体示例,各种组件可一起布置在一个壳体内或在一个电路板上,或可由单个处理器或处理单元执行。根据获取的调色板表303,可将在原始CU101中的每个像素转化为其在调色板表303中的颜色索引。本发明实施例提供一种为每个CU101将调色板表303和颜色索引图311(在下文描述)有效压缩到流中的方法。在接收器侧,可解析压缩后的比特流来为每个CU101重建完整的调色板表303和颜色索引图311,然后通过结合颜色索引和调色板表来进一步获取每个位置处的像素值。图4示出了CU401的另一示例,CU401的颜色分量分别展示和封装。CU401可代表CU101。如图4所示,CU401为8像素×8像素的CU。当然,CU401可为N×N个像素,其中N=8、16、32、64,以便与HEVC兼容。CU401的每个像素包括采样率不同(例如,4:4:4、4:2:2、4:2:0)的三个颜色分量。即,CU401包括独立的红色(R)颜色分量402、绿色(G)颜色分量403和蓝色(B)颜色分量404。在其它实施例中,颜色分量可为Y、Cb、Cr,或X、Y、Z或分量的另一适当组合。为简单起见,在本发明中使用4:4:4序列。对于4:2:2和4:2:0视频,可使用色度上采样来获取4:4:4序列,或者可独立处理每个色度分量402至404。在4:0:0单色视频的情况中,这些都可以被视为4:4:4的单独平面,而不存在另外两个平面。所有用于4:4:4的方法都可以直接使用。颜色分量402至404可在封装过程中一起交织,得到封装后的CU401。在一项实施例中,为每个CU101定义称为enable_packed_component_flag的标识,以指示CU101是使用封装模式(从而得到封装后的CU401)还是常规平面模式(即,独立处理G,B,R或Y,U,V分量402至404)进行处理。封装模式和平面模式两者都具有优点和缺点。例如,平面模式支持G/B/R或Y/U/V的并行颜色分量处理。然而,平面模式可能会导致低编码效率。封装模式可以在不同的颜色分量中共享CU101的头部信息(如调色板表303和颜色索引图311)。然而,封装模式可能阻止多个颜色分量同时处理或者以并行方式处理。决定当前CU101是否应在封装模式下进行编码的一种简单方法来是测量速率失真(ratedistortion,R-D)成本。enable_packed_component_flag用于显式地向解码器指示编码模式。除了在CU层定义enable_packed_component_flag来进行低级处理,还可根据具体应用要求,在片头或甚至在序列层(例如,序列参数集或图像参数集)复制标识以允许片层或序列层处理。获取调色板表和索引图下文描述了图1中的调色板表创建块103和表编码块107。对于每个CU101,遍历像素位置,获取用于后续处理的调色板表303和颜色索引图311。根据每个不同颜色的直方图(即,出现频率)或其强度,或为了提高随后的编码过程的效率的任何任意方法,在调色板表303对每个不同颜色进行排序。例如,如果编码过程使用了差值脉冲编码调制(differentialpulsecodemodulation,DPCM)方法来对相邻像素之间的差进行编码,如果在调色板表303中给相邻像素分配了相邻颜色索引,则可以获得最优编码结果。现描述新的基于哈希的调色板表的获取,其可用于有效地确定主要颜色和减少误差。对于每个CU101,调色板表创建块103检查CU101中的每个像素的颜色值,并按每种颜色出现频率的降序使用三个颜色分量,即封装后的G、B、R或封装后的Y、Cb、Cr,共同创建颜色直方图。为表示每个24位颜色,G和B颜色分量(或Y和Cb颜色分量)可相应地进行位移。也就是说,可根据值(G<<16)+(B<<8)+(R)或(Y<<16)+(CB<<8)+(Cr)来表示每个封装后的颜色,其中<<x是左位移操作。直方图按颜色出现频率的降序排列。对于有损编码,调色板表创建块103然后对按直方图排序的颜色数据应用基于哈希的相邻颜色分组过程,以获取更紧凑的调色板表表示。针对每个颜色分量,清除最低X比特位(取决于量化参数(quantizationparameter,QP)),并使用哈希函数(G>>X<<(16+X))|(B>>X<<(8+X))|(R>>X<<X)或(Y>>X<<(16+X))|(Cb>>X<<(8+X))|(Cr>>X<<X)来生成相应的哈希表示,其中>>x为右位移操作,并且X基于QP确定。使用哈希表或者二叉查找树(binarysearchtree,BST)数据结构来快速查找具有相同哈希值的颜色。对于任意两个哈希值,它们的距离被定义为相应颜色分量的最大绝对差。在相邻颜色分组中,调色板表创建块103按出现频率的降序处理封装后的颜色,直到处理完N个颜色。如果当前CU中的颜色数目小于N,则处理当前CU中的所有颜色。N由预定的最大颜色数目(max_num_of_colors)界定。在一些实施例中,max_num_of_colors=128,即N≤128。在基于哈希的颜色分组后,然后基于每个封装后的颜色的值按降序排列颜色来将选择的N个颜色(或者,在当前CU中的颜色数目小于N的情况下,是所有颜色)重新排序。得到的结果是调色板表,如图3所示的调色板表303。调色板表303有四个颜色(即,N=4)。在许多实施例中,N>4。但是,为便于说明,N在图3中选择为4。当在CU101中表示的颜色数目大于调色板表303中的颜色数目N时,将出现频率较少的颜色布置为调色板表303外的残差。例如,颜色值的49、53、50和51为调色板表303的一部分,而颜色值48、52、47、54、55和56是颜色调色板表303外的残差颜色305。调色板表创建块103获取调色板表303可由下列伪码描述。(伪码):在以上伪码中,ComputeHash(C,QP)使用哈希函数(G>>X<<(16+X))|(B>>X<<(8+X))|(R>>X<<X)或(Y>>X<<(16+X))|(Cb>>X<<(8+X))|(Cr>>X<<X)来生成哈希值,其中X取决于QP。Dist(hash1,hash2)获取hash1和hash2中的相应颜色分量的最大绝对差。这里,使用哈希表数据和二进制搜索树结构基于颜色的哈希值来快速找到满足一定条件的颜色。如上所述,基于获取的调色板表303,颜色分类器块105使用CU101来将CU101的颜色或像素值分配到颜色索引图311和一个或多个预测残差图313。即,颜色分类器块105将调色板表303中的每个颜色分配到调色板表303内的颜色索引。例如,如图3中307所指示,给颜色49分配颜色索引0(ColorIdx=0),给颜色53分配颜色索引1,给颜色50分配颜色索引2,给颜色51分配颜色索引3(ColorIdx=3)。一旦给调色板表303中的颜色分配了索引,就可使用每种颜色的索引从CU101中生成颜色索引图311。下文更详细地描述了颜色索引图311的处理。同样地,给调色板表303外的每个残差颜色305分配预测残差值,如309所指示。一旦给残差颜色305分配了预测残差值,就可从CU101生成预测残差图313。对于平面CU,每个颜色分量都可有其自己单独的调色板表,如colorTable_Y、colorTable_U、colorTable_V或colorTable_R、colorTable_G、colorTable_B。在一些实施例中,可以获取主要分量的调色板表,如YUV中的Y或GBR中的G,所有分量可以共享该表。通常,通过使用共享的Y或G调色板表,相对于共享调色板表中的原始像素颜色,除Y或G外的其它颜色分量与那些原始像素颜色会有些不匹配。然后可以使用残差引擎(如HEVC系数编码方法)来对那些不匹配残差进行编码。在其它实施例中,对于封装后的CU,可以在所有分量间共享单个调色板表。以下伪码举例说明了如何获取调色板表和索引图。(伪码):调色板表处理对于每个CU101,发射器100可以从当前CU101(称为显式调色板表托架)中获取调色板表303或发射器100可以从当前CU101的左区或上区邻居(称为隐式调色板表托架)获取调色板表303。表编码块107接收调色板表303,并对调色板表303中的表项进行编码。调色板表处理涉及对调色板表303的尺寸(即,不同颜色的总数)以及每个颜色本身进行编码。调色板表303中每个颜色的编码消耗了大多数比特。因此,重点在于颜色编码(即,调色板表303中每个表项的编码)。对调色板表中的颜色进行编码的最直接方法是使用脉冲编码调制(pulsecodemodulation,PCM)式算法,其中对每个颜色独立进行编码。或者,可使用针对连续颜色的最近预测,然后可对预测delta而不是默认颜色强度进行编码,这就是所谓的差分PCM(differentialPCM,DPCM)样式。这两种方法随后都可以根据复杂成本与编码效率之间的平衡通过使用相等概率模型或自适应上下文模型来进行熵编码。本发明实施例提供另一先进方案,称为相邻调色板表合并,其中color_table_merge_flag被定义为指示当前CU(例如,CU101)是否使用与其左区CU邻居或其上区CU邻居相关联的调色板表。若否,则当前CU显式地携带调色板表信令。该过程也可称为相邻调色板表共享。通过使用这种合并过程,color_table_merge_direction标识指示合并方向,其可为从上区CU或从左区CU开始。当然,合并方向候选可为除上区CU或左区CU以外的方向(例如,左上、右上等)。然而,在本发明中使用上区CU和左区CU来举例说明概念。将当前CU中的每个像素和与左区CU或上区CU相关联的现有调色板表中的表项进行比较,并分配索引,该索引通过如上所示的deriveIdxMap()伪码生成最小的预测差(即,像素减去调色板表中的最接近颜色)。对于预测差为非零的情况,使用HEVC范围扩展(RangeExtension,RExt)残差引擎来对所有残差进行编码。是否使用表合并过程的决定可由R-D成本来确定。存在几种方法来生成相邻调色板表,以在编码当前CU的合并过程中使用。根据实现,方法之一(为便于说明,称为方法A)要求在编码器和解码器处都进行更新。另一种方法(称为方法B)为只涉及编码器侧的过程。这两种方法都将进行说明。方法A:在该方法中,在有可用重建像素时,生成相邻CU的调色板表,不管CU深度、尺寸等如何。对于每个CU,为其相邻CU以相同尺寸和相同深度(假设颜色相似度将在这种情况下更高)恢复重建。图5示出了根据本发明的使用方法A来重新生成调色板表的示例。如图5所示,当前CU501是深度=2的16×16块,当前CU501的相邻CU包括上区CU502和左区CU503。上区CU502为深度=1的32×32块。上区CU502包括16×16的上区块504。左区CU503为深度=3的8×8块,且为16×16块505的一部分。通过使用方法A,不管其相邻CU(例如,8×8左区CU503或32×32上区CU502)的分区如何,像素偏移(=16)将从当前CU501的原点向左移动以处理左区的16×16块505,以及向上移动以处理上区的16×16块504。编码器和解码器都保持这个偏移。方法B:在该方法中,在当前CU与其上区CU邻居和/或其左区CU邻居尺寸和深度相同时,发生合并过程。使用可用邻居的调色板表来获取当前CU的颜色索引图,以进行后续操作。例如,对于当前16×16CU,如果其相邻CU(即其上区邻居或其左区邻居)使用调色板表和索引方法进行编码,则对当前CU使用相邻CU的调色板表来获取R-D成本。将该合并成本与当前CU显式地获取其调色板表(以及那些可能存在于HEVC或HEVCRExt中的其它常规模式)时的成本比较。选择产生最低R-D成本的任一种情况作为待写入输出比特流中的模式。在方法B中,只需要编码器来模拟不同的潜在模式。在解码器处,color_table_merge_flag和color_table_merge_direction标识指示合并决定和合并方向,而无需解码器进行额外处理。预测器调色板为了进一步降低复杂度,使用预测器调色板来缓存来自先前编码的调色板表或其它预测器调色板的颜色,其最终来自先前编码的调色板表。在一项实施例中,在预测器调色板中的表项来自预测器调色板或当前CU的左区或上区CU的编码后的调色板表。在使用颜色调色板对CU进行编码后,如果该CU尺寸大于或等于与预测器调色板相关联的CU尺寸且当前调色板与预测器调色板不同,则更新预测器调色板。如果未使用调色板模式对当前CU进行编码,则不改变预测器调色板。这也被称为预测器调色板传播。这个预测器调色板可在每个图像或片或每个CU行的开始处重设。许多方法可用于构建预测器调色板。在第一种方法中,对于每个CU编码,预测器调色板从其左区CU或上区CU的预测器调色板构建。在该方法中,为每个CU节省了一个预测器调色板表。第二种方法与第一种方法的不同在于:在预测过程中使用与上区CU相关联的调色板表,而不是预测器调色板表。颜色索引图处理/编码索引图编码块109对颜色分类器块105创建的颜色索引图311进行编码。为了对颜色索引图311进行编码,索引图编码块109执行至少一次扫描操作(水平315或垂直317),以将二维(two-dimensional,2D)颜色索引图311转换为一维(one-dimensional,1D)字符串。然后索引图编码块109执行字符串搜索算法(如下所述)以生成多个匹配。在一些实施例中,索引图编码块109执行单独的水平和垂直扫描操作并执行字符串搜索算法以确定哪个会提供更好的结果。图6示出了水平和垂直扫描操作的示例。在图6中,示出了示例2D颜色索引图601。颜色索引图601可以代表图3的颜色索引图311。颜色索引图601为64×64图,但颜色索引图的其它尺寸也是可能的。如图6所示,可对颜色索引图601执行水平扫描(或搜索)602或垂直扫描(或搜索)603。本发明实施例提供1D字符串匹配技术和2D变体来对颜色索引图311进行编码。在每个位置处,编码技术找到匹配点,并记录1D字符串匹配的匹配距离和长度,或记录2D字符串匹配的匹配宽度和高度。对于不匹配的位置,可直接对其索引强度或其索引强度与预测索引强度之间的delta值进行编码。可对颜色索引图601执行直接的1D搜索方法。例如,图7示出了使用从颜色索引图601的第一索引位置开始的水平扫描的1D搜索后,1D颜色索引矢量700的一部分。然后将字符串搜索应用于1D颜色索引矢量700。请看颜色索引矢量700(为图7所示的'14')的第一位置701,由于还没有缓存的参考,所以将第一位置701视为“不匹配对”。给该不匹配对的对应距离和长度分配值-1和1,记为(dist,len)=(-1,1)。第二位置702为另一‘14’。第二位置702是编码为参考的第一索引。因此,匹配对的距离dist=1。因为在第三位置703处有另一‘14’,所以匹配对的长度为2,即len=2。接下来为第四位置704,其值为‘17’,这是之前没有过的。因此,将第四位置704作为另一不匹配对,即(dist,len)=(-1,1),来进行编码。对于每个不匹配对,对匹配/不匹配标识进行编码以指示没有找到当前索引的匹配索引,该标识后面为索引的真实值(例如,第一次出现的‘14’、‘17’、‘6’等)。对于每一匹配对,对匹配/不匹配标识进行编码以指示找到了匹配的索引字符串,该标识后面为该匹配的字符串的长度。下文为使用图7所示的1D颜色索引矢量700的一部分的编码技术的结果集合。以下给出了用于获取该匹配对的伪码。(伪码):也可使用上文描述的1D字符串匹配技术的2D变体。2D匹配技术包括以下步骤:步骤1:将当前像素和参考像素的位置确定为起点。步骤2:在当前像素和参考像素的右方进行水平1D字符串搜索。最大搜索长度由当前水平行的末尾决定。最大搜索长度可记为right_width。步骤3:对当前像素和参考像素的左方进行水平1D字符串搜索。最大搜索长度由当前水平行的开始决定,也可由先前2D匹配的right_width决定。最大搜索长度可记为left_width。步骤4:使用当前像素和参考像素下方的像素作为新当前像素和参考像素,来对下一行进行同样的1D字符串搜索。步骤5:当right_width==left_width==0时,结束。步骤6:对于每个height[n]={1,2,3……},存在相应的width[n]数组(例如{left_width[1]、right_width[1]}、{left_width[2]、right_width[2]}、{left_width[3]、right_width[3]}……}。步骤7:为每个height[n]将新min_width数组定义为{{lwidth[1],rwidth[1]},{lwidth[2],rwidth[2]},{lwidth[3],rwidth[3]}……},其中lwidth[n]=min(left_width[1:n-1]),rwidth[n]=min(right_width[1:n-1])。步骤8:还定义尺寸数组{size[1],size[2],size[3]……},其中size[n]=height[n]x(lwidth[n]+hwidth[n])。步骤9:假设size[n]为尺寸数组中的最大值,则使用对应的{lwidth[n],rwidth[n],height[n]}来选择2D字符串匹配的宽度和高度。优化1D或2D搜索速度的一种技术是使用运行哈希。在一些实施例中,可以使用4像素运行哈希结构。在水平方向计算每个像素的运行哈希以生成水平哈希数组running_hash_h[]。除了running_hash_h[],还计算另一种运行哈希以生成2D哈希数组running_hash_hv[]。2D哈希数组running_hash_hv[]中的每个值匹配代表一个4×4块匹配。要执行2D匹配,就要在与它们的邻居进行像素比较之前找到4×4块匹配。由于像素比较限于1至3个像素,所以可以显著提高搜索速度。在以上描述中,各行的匹配宽度彼此不同,因此每一行必须单独处理。为实现效率和低复杂度,本发明实施例提供可以同时在硬件和软件实施中使用的基于块的算法。与标准运动估计的某些方面类似,该算法每次处理一个矩形块。图8示出了该算法中称为U_PIXEL模块800的基本像素处理单元的示例。U_PIXEL模块800接收编码信号801和输入信号802,并包括多个逻辑门803-806。编码信号801是标识,指示参考像素是否已在前一字符串匹配操作中进行编码。可选地,输入信号802(CMP[N-1])可以被强制为“0”,这允许从U_PIXEL模块800移除最后一个“OR”门806。以4×4块为例。第一步是并行处理每一行。将矩形的一行中的每个像素分配给一个U_PIXEL模块800。用于处理每一行的处理单元称为U_ROW模块。图9示出了U_ROW模块900的示例。U_ROW模块900包括多个U_PIXEL模块800。对于4×4块,U_ROW模块900包括四个U_PIXEL模块800。如图9所示,U_ROW模块900正在处理第一行:行0,如901所指示。使用四个U_ROW模块900来处理4×4块的四行。四个U_ROW模块900可以平行布置在U_CMP模块中。图10示出了包括四个U_ROW模块900的U_CMP模块1000的示例。U_CMP模块1000的输出为数组CMP[4][4]。该算法的下一个步骤是并行处理cmp数组的各列。cmp数组的列中的每个cmp由U_COL模块处理。图11示出了接收cmp数组的四列1101至1104的U_COL模块1100的示例。可以使用四个U_COL模块1100来处理4×4块的四列。四个U_COL模块1100可以平行布置在U_2D_BLOCK模块中。图12示出了包括四个U_COL模块1100的示例U_2D_BLOCK模块1200。U_2D_BLOCK模块1200的输出为数组rw[4][4]。然后计算数组rw[n][0-3]的每行中零的数目,并将四个结果记录到数组r_width[n]。数组r_width[n]与上述2D匹配技术的步骤7中的数组rwidth[n]一样。数组l_width[n]以相同的方式生成。可以获取步骤7中的min_width数组为{{l_width[1],r_width[1]},{l_width[2],r_width[2]},{l_width[3],r_width[3]}……}。该算法可以在硬件或硬件和软件的组合中实施,以在任何现代中央处理单元(centralprocessingunit,CPU)、数字信号处理器(digitalsignalprocessor,DSP)或图形处理单元(graphicsprocessingunit,GPU)的并行处理框架下工作。下文列出了快速软件实施的简化伪码。(伪码):如上述伪码所示,在每个FOR循环中没有数据依赖,所以可使用典型的软件并行处理方法,例如循环展开或MMX/SSE,来提高执行速度。如果行数被限制为1,则该算法也可以应用于1D搜索。下文列出了基于1D搜索的固定长度的快速软件实施的简化伪码。(伪码):1D搜索和2D搜索都完成后,选择(1D长度,2D尺寸(宽×高))中的最大者为“优胜者”。如果2D匹配的lwidth(左宽度)为非零,则可以调整先前的1D匹配的长度(长度=长度-lwidth),以避免先前1D匹配与当前2D匹配之间的重叠。如果先前1D匹配的长度在调整后变成零,则应该将其从匹配列表中移除。接下来,如果前一匹配是1D匹配,则使用current_location+长度来计算起始位置,或如果前一匹配是2D匹配,则使用current_location+(lwidth+rwidth)来计算起始位置。当执行1D搜索时,如果任何待匹配像素落入位置已被2D匹配涵盖的任何先前的2D匹配区域内,则扫描下一个像素或下一批像素,直到找到未通过先前的匹配进行编码的像素。在获取匹配对后,可以使用熵引擎来将这些编码元素转换成二进制流。在一些实施例中,熵引擎可以使用相同的概率模型。为了更好的压缩效率,也可以使用先进的自适应上下文模型。以下伪码是每个匹配对的编码流程的示例。(伪码):应注意,只有不匹配位置处的像素会被编码到比特流中。为了具有更准确的统计模型,一些实施例可只使用这些像素和其相邻像素来获取调色板表,而非使用CU中的所有像素。对于能确定索引或delta输出的编码模式,编码结果通常包含数目有限的唯一值。本发明实施例提供了第二delta调色板表来利用该发现。在当前CU中获取所有原义数据后,可以创建该delta调色板表。delta调色板表可以显式地在比特流中发送。后者,其可以在编码过程中自适应地创建,从而不需要在比特流包括这个表。对于该选择,提供了delta_color_table_adaptive_flag。在一些实施例中,提供了另一种先进方案,称为相邻delta调色板表合并。对于自适应delta调色板生成,编码器可以使用上区或左区CU的delta调色板作为初始起点。对于非自适应调色板生成,编码器也可以使用上区或左区CU的delta调色板,然后比较上区、左区、当前CU的R-D成本。定义delta_color_table_merge_flag来指示当前CU是否使用其左区或上区CU的delta调色板表。只有当delta_color_table_adaptive_flag==0且delta_color_table_merge_flag==0时,当前CU才显式地传递delta调色板表信令。对于合并过程,如果表明有delta_color_table_merge_flag,则定义另一标识delta_color_table_merge_direction来指示合并候选是来自上区CU还是左区CU。如果delta_color_table_adaptive_flag==1,则以下是用于自适应delta调色板生成的编码过程的示例。在解码器侧,每当解码器接收原义数据时,解码器然后就可使用相反步骤重新生成delta调色板。步骤1:定义数组palette_table[]和palette_count[]。步骤2:将数组palette_table[]初始化为palette_table(n)=n(n=0……255)。或者,可将上区或左区CU的palette_table[]作为初始值。步骤3:将数组palette_count[]初始化为palette_count[n]=0(n=0……255)。或者,可将上区或左区CU的palette_count[]作为初始值。步骤4:对于任何delta值c’,执行以下操作:(a)定位n,从而palette_table(n)==deltac’;(b)将n作为deltac’的新索引;(c)++palette_count(n);(d)对palette_count[]进行排序,使得其按降序排序;(e)相应地对palette_table[]进行排序。步骤5:过程返回步骤1,重复过程,直到处理完当前CU中的所有deltac’。对于包含文本和图形的任何块,可以使用掩码标识来分隔文本部分和图形部分。文本部分可以使用上述压缩方法进行压缩;图形部分可以使用其它压缩方法进行压缩。因为掩码标识所涵盖的任何像素的值都已被文字层无损编码,所以图形部分中的每个像素都可以被视为“不相关像素(don’t-care-pixel)”。当压缩图形部分时,可以给不相关像素分配任意值,以便获得最佳压缩效率。索引图和残差在调色板表获取过程中生成。无损压缩索引图允许使用1D或2D字符串搜索进行高效处理。在一些实施例中,1D或2D字符串搜索仅限于当前CU内。但是,搜索窗口可以延伸至当前CU外。可以使用水平和垂直方向上的一对运动矢量,例如(MVY=matched_distance/cuWidth,MVY=matched_distance-cuWidth*MVY),来对匹配距离进行编码。因为图像在局部区域可以具有不同的空间纹理方向,所以可以基于color_idx_map_pred_direction标识符的值在水平或垂直方向执行1D搜索。最佳索引扫描方向可以基于R-D成本确定。图13示出了水平和垂直扫描操作的示例。在图13中,示出了示例2D颜色索引图1301。颜色索引图1301可以代表图3的颜色索引图311。颜色索引图1301为8×8图,但颜色索引图的其它尺寸也是可能的。如图13所示,可以对颜色索引图1301执行水平扫描1302或垂直扫描1303。在一些实施例中,对于水平扫描和垂直扫描都执行两次deriveMatchPairs()和相关联的熵编码步骤。然后选择最终扫描方向作为R-D成本最小的方向。改进二值化如上所示,可以使用固定长度二值化来对调色板表和颜色索引图的一对匹配信息进行编码。或者,可使用可变长度二值化。例如,对于调色板表编码,调色板表可具有8个不同的颜色值。因此,相应的颜色索引图可仅包含8个不同的索引。可以只使用一个bin来表示背景像素,而非使用固定的3个bin来对每个索引值进行同样的编码。例如,背景像素可表示为0。然后剩余的7个像素值可以使用1000、1001、1010、1011、1100、1101和1110等固定长度的码字来表示,以对颜色索引进行编码。这是基于以下事实:背景颜色可能在图像中占据最大百分比,因此,对背景颜色使用只有一个比特的不同码字总的来说可以整体节省空间。屏幕内容中经常出现这种场景。作为示例,考虑16×16CU。使用固定的3个bin的二值化,颜色索引图需要3x16x16=768个bin。或者,让占据了图像的40%的背景颜色索引为0,而让其它颜色均匀分布。在这种情况下,颜色索引图仅需要2.8x16x16<768个bin。对于匹配对编码,考虑到当前CU的区域内的现有技术限制,可以使用匹配距离和长度的最大可能值来约束其二值化。在数学上,在每种情况下,匹配距离和长度可长达64×64=4K。然而,这通常不会同时发生。对于每个匹配位置,匹配距离由当前位置与参考缓冲中的第一位置(例如,当前CU中第一位置)之间的距离界定,其可表示为L。因此,距离二值化的最大bin为log2(L)+1(而不是固定长度),长度二值化的最大bin为log2(cuSize-L)+1withcuSize=cuWidth*cuHeight。除了调色板表和索引图,可以使用不同二值化方法来显著改进残差系数编码。对于HEVCRExt和HEVC版本,使用可变长度基于以下发现来二值化变换系数:在使用常规方法的预测、变换和量化后产生的系数的大小通常接近零,非零值通常位于变换单元的左上角。然而,在引入能够规避整个变换过程的HEVCRExt中的变换跳过编码工具后,残差大小分布发生了变化。尤其是对具有不同颜色的屏幕内容启用变换跳过时,通常存在值较大(即不接近零值,例如“1”、“2”或“0”)的系数,且非零值可出现在变换单元内的任意位置。如果使用当前HEVC系数二值化,则可能会导致很长的码字。或者,可使用固定长度二值化,这可节省调色板表和索引编码模式所产生的残差系数的码长。新预测像素生成方法如上所述,在编码后的颜色索引图中进行1D/2D字符串搜索。在已找到匹配索引的颜色索引图中的任何位置,解码器获取匹配位置处的像素,并将其从原始像素中减去,以生成残差像素。该过程可以通过以下方式执行:使用调色板表中通过匹配位置处的颜色索引来表示的相应颜色,或使用匹配位置处的重建像素。存在两种方法来基于上述两种方法生成预测值。在第一种方法中,对于任何目标像素位置,通过匹配位置处的主要颜色索引从调色板表中获取RGB值,将该RGB值用作目标像素的预测值。然而,这种方法强制解码器对当前CU外的像素执行颜色索引获取流程,导致解码时间增加。为了避免第一种方法中的颜色索引获取流程,使用第二种方法,在第二种方法中,对于任何目标像素位置,匹配位置处的重建像素值被用作预测值。在该方法中,当预测像素在当前CU内时,重建值无效。然而,在这种情况下,颜色索引可用,并且其在颜色调色板表中的相应颜色可用作预测像素。当前CU中任何像素的残差值可以通过从原始值减去其预测值来获取。然后将其量化病编码到比特流中。当前CU中任何像素的重建值可以通过将其预测值和量化残差值相加来获取。单色模式单色CU可以是每个像素位置处只有一个颜色的CU或在具有统一单值索引图的调色板中只有一个颜色的CU。存在多种方法来在调色板模式下压缩单色CU。在一种方法中,即单色模式下,只有该单色调色板信息被编码并包含在比特流中。跳过整个颜色索引图部分。这与编码和发送统一全零索引图形成对比。在解码器侧,如果在无索引图的调色板中只有一个颜色,则将使用调色板中的颜色来填充当前CU中的每个像素位置。像素域字符串复制如上所述,在颜色索引图域中使用1D/2D字符串复制。也可在像素域中使用1D/2D字符串复制。相比于索引图域1D/2D字符串复制,像素域中的1D/2D字符串复制包含了一些变化。这些变化如下:1.调色板表和索引图生成流程不是必要的,可以跳过。作为替代方案,仍然执行索引域的调色板表生成、索引图生成和1D/2D字符串搜索,但调色板表不写入比特流中。基于1D字符串匹配的长度或2D字符串匹配的宽度和高度生成编码图。编码图指示像素位置是否被前一匹配涵盖。下一起始位置是前一匹配涵盖的第一个位置。2.当对不匹配数据进行编码时,将其RGB值(而不是颜色索引值)写入比特流中。当对不匹配数据进行编码时,也可使用像素索引编码方法,其中,一比特标识被添加在语法表的RGB值前。如果该RGB值第一次出现,则将标识设置为1,并将这个RGB值本身编码到比特流中,然后将这个RGB值添加到查找表。如果该RGB值再次出现,则将该标识设置为0,并且对查询表索引值而不是该RGB值进行编码。3.预测像素生成方法使用单色模式的选项2(将预测像素位置处的重建像素值用作预测值)。4.对于单色CU,可以选择单色模式的选项1或选项2。当选择选项1时,将主要颜色的RGB值写入比特流的调色板表部分。当选择选项2时,如果在1D搜索中没有使用上面的行且当前CU不允许2D选项,则将主要颜色的RGB值写入比特流的调色板表部分。一般而言,2D字符串复制是一种灵活的算法,其可对宽度和高度不同的块执行操作以找到匹配块。当2D字符串复制仅限于CU的宽度和高度时,2D字符串复制成为固定宽度/高度的块复制。帧内块复制(intrablockcopy,IBC)与在固定宽度/高度块上操作的2D字符串复制这种特殊情况大致相同。在固定宽度/高度2D字符串复制中,也对残差进行编码。这与IBC所用的残差编码方法也基本上相同。混合内容的自适应色度采样上述实施例提供了HEVC/HEVC-RExt框架下的高效屏幕内容编码的各种技术。在实践中,除了纯屏幕内容(如文本,图形)或纯自然视频,还存在包含计算机生成的屏幕材料和摄像机捕获的自然视频这两者的内容,该内容被称为混合内容。目前,混合内容使用4:4:4色度采样进行处理。然而,对于这种混合内容中嵌入的摄像机捕获的自然视频部分,4:2:0色度采样可足以提供感知上无损的质量。这是由于以下事实:相比于亮度分量的空间变化,人类视觉对色度分量中的空间变化不那么敏感。因此,通常对色度分量(例如,流行的4:2:0视频格式)进行子采样,以实现比特率的显着降低并同时保持相同的重建视觉质量。本发明实施例提供一种enable_chroma_subsampling标识,其在CU层递归定义和发送。对于每个CU,编码器根据速率失真成本确定其使用4:2:0还是4:4:4来编码。图14A和14B示出了4:2:0和4:4:4色度采样格式的示例。图14A示出了4:2:0采样的示例,图14B示出了4:4:4的采样的示例。在编码器侧,针对每个CU,假设输入为图14B所示的4:4:4源,使用enable_chroma_subsampling=0或FALSE的4:4:4编码流程来直接获取速率失真成本。然后,流程将4:4:4样本子采样为4:2:0来获取其比特消耗。将重建的4:2:0格式插值回4:4:4格式,以进行失真测量(例如,使用误差平方和(sumofsquarederror,SSE)或绝对差和(sumofabsolutedifference,SAD))。当在4:2:0空间对CU进行编码时获取速率失真成本以及比特消耗,并将速率失真成本与在4:4:4对CU进行编码时的成本进行比较。然后选择产生的速率失真成本较低的编码方法用于最终编码。图15示出了从4:4:4到4:2:0或反之的插值过程的示例。通常,视频颜色采样格式转换过程可能需要大量的插值滤波器。为了降低实施复杂度,可使用HEVC插滤波器(即,DCT-IF)。如图15所示,方框表示原始4:4:4样本。从4:4:4到4:2:0,使用DCT-IF对色度分量垂直插值半像素的像素(通过圆圈表示)。图15还示出四分之一像素位置,通过菱形表示。选择灰色阴影圆圈来构建4:2:0样本。对于4:2:0到4:4:4的插值,过程从色度分量中的灰色圆圈开始,水平插值半像素位置来获取所有圆圈,然后使用DCT-IF垂直插值方框。选择所有插值的方框来构建重建的4:4:4信号。编码器控制如上所述,提供了多个标识来控制编码器处的低级处理。例如,enable_packed_component_flag用于指示当前CU是使用其封装格式还是常规平面格式来进行处理的编码。可根据编码器处计算出的R-D成本决定是否启用封装格式。在一些编码器实施中,可通过分析CU的直方图和寻找决定的最佳阈值来实现低复杂度方案。调色板表的尺寸对复杂度有直接影响。引入参数maxColorNum来控制复杂度与编码效率之间的平衡。最直接的方式是选择产生最低R-D成本的选项。索引图编码方向可通过R-D-优化确定,或者通过使用本地空间定向(例如,使用Sobel算子的边缘方向估计)。上述某些实施例可能限制每个CTU或CU内的处理。在实践中,这种限制可以放宽。例如,对于颜色索引图处理,可以使用上区CU或左区CU的行缓冲,如图16所示。图16示出了使用上索引行缓冲或左索引行缓冲的颜色索引图处理的示例。通过使用上缓冲和左缓冲,可扩展搜索来进一步提高编码效率。考虑到上和左缓冲器使用相邻CU的重建像素来构成,在处理当前CU索引图之前,可参考这些像素(以及其对应的索引)。例如,如图16所示,重新排序后,当前CU索引图1600可为14、14、14……1、2、1(表示为1D字符串)。在不使用行缓冲参考的情况下,第一个“14”可能会作为不匹配对来编码。然而,在使用相邻行缓冲的情况下,第一“14”与上索引行缓冲或左索引行缓冲中的“14”相匹配。因此,字符串复制可以从第一个像素开始。解码器语法可以使用下文提供的信息来描述图2所示的接收器200的解码操作,下面示出的语法与HEVC文本组成的委员会草案对齐。7.3.5.8编码单元语法:图17示出了根据本发明的用于屏幕内容编码的方法。图17中所示的方法1700基于上述关键概念。方法1700可由图1的发射器100执行,但是,方法1700也可用于任何其它合适的设备或系统。在操作1701,设备基于当前CU获取调色板表和颜色索引图。例如,这可包括将基于哈希的分组过程应用于按直方图排序的颜色数据,以便以低复杂度在调色板表中使用公共表项来表示相似颜色。应用基于哈希的分组过程可包括使用哈希函数来生成每个颜色分量的哈希表示,该哈希函数包括(G>>X<<(16+X))|(B>>X<<(8+X))|(R>>X<<X)或(Y>>X<<(16+X))|(Cb>>X<<(8+X))|(Cr>>X<<X),其中X取决于QP。应用基于哈希的分组过程还可包括:将每种颜色与其表示哈希值相关联,以及从给定哈希值中提取一个或多个颜色。在操作1703,设备对调色板表进行编码。这可包括:使用预测器调色板来存储调色板表中或与CU的左区CU或上区CU相关联的预测器调色板中的先前编码的颜色,以及使用该预测器调色板对调色板表进行编码。这还可包括:在CU编码结束时更新预测器调色板,以及如果CU未在调色板模式下编码,则将预测器调色板传递到下一CU。在操作1705中,设备对颜色索引图进行编码。然后,在操作1707中,设备结合编码后的调色板表和编码后的颜色索引图,以传输给接收器。在一些实施例中,CU是单色CU,仅与单色相关联的单色调色板表被编码并传输给接收器,从而不向接收器传输颜色索引图。虽然图17示出了用于屏幕内容编码的方法1700的一个示例,但是可以对图17进行各种改变。例如,尽管所示为一系列步骤,但是图17所示的各个步骤可重叠,可并行或按不同顺序执行,或可执行多次。此外,根据具体需要,可合并或移除一些步骤,并可添加附加步骤。图18示出了根据本发明的用于屏幕内容解码的方法。图18所示的方法1800基于上述关键概念。方法1800可由图2的接收器200执行,但是,方法1800也可用于任何其它合适的设备或系统。在操作1801中,设备从发射器接收压缩的视频比特流。视频比特流包括编码后的调色板表和/或编码后的颜色索引图。在一些实施例中,调色板表是之前在发射器处通过对按直方图排序的颜色数据使用基于哈希的分组过程获取的,以便以低复杂度在调色板表中使用公共表项来表示相似颜色。在操作1803中,设备对调色板表和/或颜色索引图进行解码。在一些实施例中,对调色板表进行解码包括确定预测器调色板,其中预测器调色板存储调色板表中先前解码的颜色,然后基于该预测器调色板对调色板表进行解码。在一些实施例中,预测器调色板与CU的左区CU或上区CU相关联。然后,在操作1805中,设备基于调色板表和/或颜色索引图重建与当前CU相关联的像素。在一些实施例中,设备从视频比特流接收调色板表的比特流。设备确定标识符,标识符指示CU的调色板表中可能颜色的最大数目。然后,当标识符指示CU的调色板表中可能颜色的最大数目不为1时,设备从视频比特流接收颜色索引图的比特流。虽然图18示出了用于屏幕内容解码的方法1800的一个示例,但是可以对图18进行各种改变。例如,尽管所示为一系列步骤,但是图18所示的各个步骤可重叠,可并行或按不同顺序执行,或可执行多次。此外,根据具体需要,可合并或移除一些步骤,并可添加附加步骤。在某些实施例中,一个或多个所述设备的部分或全部功能或流程由计算机可读程序代码构成的且内嵌于计算机可读介质中的计算机程序来实现或提供支持。术语“计算机可读程序代码”包括任意类型的计算机代码,包括源代码、目标代码以及可执行代码。术语“计算机可读介质”包括任何类型的可以被计算机访问的非易失性介质,比如,只读存储器(readonlymemory,ROM)、随机存取存储器(randomaccessmemory,RAM)、硬盘驱动器、光盘(compactdisc,CD)、数字化视频光盘(digitalvideodisc,DVD)或者任何其它类型的存储器。为本专利文档中使用的特定术语和短语进行定义是有帮助的。术语“包括”和“包含”以及它们的派生词表示没有限制的包括。术语“或者”是包容性的,意为和/或。短语“与……关联”和“与其关联”以及其派生的短语意味着包括,被包括在内、与……互连、包含、被包含在内、连接到或与……连接、耦合到或与……耦合、可与……通信、与……配合、交织、并列、接近、被绑定到或与……绑定、具有、具有……属性,等等。虽然本发明就某些实施例和一般相关方法方面进行了描述,但是对本领域技术人员而言,对实施例和方法的各种更改和变更将是显而易见的。因此,示例实施例的上述描述不限定或约束本发明。正如以下权利要求定义,其它修改、替代以及变更也是可能的,而不偏离本发明的精神和范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1