用于视频编码的调色板预测器信令的方法与流程

文档序号:12071837阅读:350来源:国知局
用于视频编码的调色板预测器信令的方法与流程
本申请要求申请日为2014年7月20日,美国临时申请号为62/014,959的美国临时申请案、申请日为2014年12月2日,美国临时申请号为62/086,319的美国临时申请案、申请日为2015年1月27日,美国临时申请号为62/108,165的美国临时申请案、申请日为2015年1月30日,美国临时申请号为62/109,830的美国临时申请案、申请日为2015年1月30日,美国临时申请号为62/109,836的美国临时申请案和申请日为2015年2月3日,美国临时申请号为62/111,140的美国临时申请案的优先权,上述临时申请案的内容一并并入本申请。【
技术领域
】本发明涉及用于视频数据的调色板编码(palettecoding)。特别地,本发明涉及各种技术,包括以信号发送调色板大小以提高编码效率、限制最大编码单元大小以降低系统复杂度、简化的运行类型(runtype)的上下文自适应(context-adaptive)编码以及调色板编码中的简化冗余移除(redundancyremoval)。
背景技术
:高效视频编码(HighEfficiencyVideoCoding,简写为HEVC)是近年来已经开发的新的编码标准。在高效视频编码(HEVC)系统中,H.264/AVC的固定大小宏块(fixed-sizemacroblock)由称为编码单元(codingunit,简写为CU)的灵活块替换。CU中的像素共享相同的编码参数以提高编码效率。CU可以以最大CU(LCU)开始,其在HEVC中也被称为已编码树单元(codedtreeunit,简写为CTU)。除了编码单元的概念,在HEVC中也引入了预测单元(predictionunit,简写为PU)的概念。一旦CU层次树的分裂完成,则根据预测类型和PU分割将每个叶CU被进一步拆分成一个或多个预测单元(PU)。已经开发了用于屏幕内容编码的几种编码工具。与本发明相关的这些工具简要回顾如下。调色板编码在HEVC范围扩展(rangeextensions,简写为RExt)的开发期间,已经公开了若干建议来解决基于调色板的编码。例如,JCTVC-N0247(Guo等人,“RCE3:ResultsofTest3.1onPaletteModeforScreenContentCoding”,ITU-TSG16WP3和ISO/IECJTC1/SC29/WG11视频编码联合协作小组(JointCollaborativeTeamonVideoCoding)(JCT-VC),第14次会议:Vienna,AT,2013.7.25-2013.8.2,文档编号:JCTVC-N0247)和JCTVC-O0218(Guo等人,“EvaluationofPaletteModeCodingonHM-12.0+RExt-4.1”,ITU-TSG16WP3和ISO/IECJTC1/SC29/WG11视频编码联合协作小组(JointCollaborativeTeamonVideoCoding)(JCT-VC),第15次会议:Geneva,CH,2013.10.23–2013.11.1,文档编号:JCTVC-O0218)中揭露了调色板预测和共享技术。在JCTVC-N0247和JCTVC-O0218中,构造并传输每个颜色分量的调色板。可以从其左相邻CU预测(或共享)调色板以减小比特率。然后,使用它们的调色板索引对给定块内的所有像素进行编码。根据JCTVC-N0247的编码处理的示例如下所示。1.调色板的传输:首先传输颜色索引表(也称为调色板表)大小,然后是调色板元素(即,颜色值)。2.像素值的传输:CU中的像素以光栅扫描顺序编码。对于一个或多个像素的每个组,首先发送用于基于运行的(run-based)模式的旗标,以指示是否正在使用“复制索引(copyindex)模式”或“复制上方(copyabove)模式”。2.1“复制索引模式”:在复制索引模式中,首先用信号通知调色板索引,然后是表示运行值的“palette_run”(例如,M)。在本公开中,术语palette_run也可以称为pixel_run。运行值指示总共M个样本都使用复制索引模式来编码。对于当前位置和随后的M个位置,不需要发送进一步的信息,因为它们具有与在比特流中以信号发送的相同的调色板索引。调色板索引(例如,i)也可以由所有三个颜色分量共享,这意味着对于YUV颜色空间的情况,重构的像素值是(Y,U,V)=(paletteY[i],paletteU[i],paletteV[i])。2.2“复制上方模式”:在复制上方模式中,发送值“copy_run”(例如N),以指示对于随后的N个位置(包括当前的位置),调色板索引与在上面的行中的相应的调色板索引相同。3.残差的传输:在阶段2中传输的调色板索引被转换回像素值并且用作预测。使用HEVC残留编码来发送残差信息,并将残差信息添加到用于重构的预测中。在本公开中,“复制索引模式”和“复制上方模式”都被称为调色板索引编码的复制模式。此外,在以下描述中,调色板模式也称为调色板编码模式。在JCTVC-N0247中,构造并传输每个组件的调色板。调色板可以从其左相邻CU预测(共享)以减小比特率。在JCTVC-O0218中,调色板中的每个元素是三元组(triplet),其表示三个颜色分量的特定组合。此外,去除了跨越CU的调色板的预测编码。类似于JCTVC-O0218的另一种调色板编码技术也被公开了。代替从左CU预测整个调色板表,调色板中的单独调色板颜色条目是从上方CU或左CU中的精确对应的调色板颜色条目预测的。对于像素调色板索引值的传输,JCTVC-O0182(Guo等人,“AHG8:Major-color-basedscreencontentcoding”,ITU-TSG16WP3和ISO/IECJTC1/SC29/WG11视频编码联合协作小组(JointCollaborativeTeamonVideo,JCT-VC),第15次会议:Geneva,CH,2013年10月23日-2013年11月1日,文档编号:JCTVC-O0182)中揭露了预测编码方法应用于索引。使用三种类型的行模式(linemode),即,水平模式、垂直模式和正常模式来对每个索引行进行编码。在水平模式下,同一行中的所有索引具有相同的值。如果该值与上方像素线的第一像素相同,则仅发送行模式信令比特。否则,也传输索引值。在垂直模式中,它指示当前索引行与上方索引行相同。因此,仅传输行模式信令比特。在正常模式下,一行中的索引是单独预测的。对于每个索引位置,将左侧或上方邻居用作预测值,并且将预测符号发送到解码器。此外,根据JCTVC-O0182,将像素分类成主色像素(具有指向调色板颜色的调色板索引)和逸出像素(escapepixel)。对于主颜色像素,根据解码器侧的主颜色索引(即,调色板索引)和调色板表格来重构像素值。对于逸出像素,在比特流中进一步用信号通知像素值。调色板表信令在屏幕内容编码(screencontentcoding,简写为SCC)标准的参考软件SCM-2.0(Joshi等人,Screencontentcodingtestmodel2(SCM2),ITU-TSG16WP3和ISO/IECJTC1/SC29/WG11视频编码联合协作小组(JointCollaborativeTeamonVideoCoding,JCT-VC),第18次会议:札幌,JP,2014年7月,文档编号:JCTVC-R1014),改进的调色板方案集成在JCTVC-R0348(Onno等人,Suggestedcombinedsoftwareandtextforrun-basedpalettemode,ITU-TSG16WP3和ISO/IECJTC1/SC29/WG11视频编码联合协作小组(JointCollaborativeTeamonVideoCoding,JCT-VC),第18次会议:札幌,JP,2014年7月,文档编号:JCTVC-R0348)。先前调色板编码的CU的调色板表被用作当前调色板表编码的预测值。在调色板表编码中,通过选择先前编码调色板表(调色板预测值)中的哪些调色板颜色被重用,或通过传输新调色板颜色来以信号发送当前调色板表。当前调色板的大小被设置为预测调色板的大小(即,numPredPreviousPalette)加上所传输的调色板的大小(即,num_signalled_palette_entries)。预测调色板是从先前重建的调色板编码CU导出的调色板。当将当前CU编码为调色板模式时,使用预测调色板未预测的那些调色板颜色在比特流(即,以信号发送的条目)中直接传输。调色板更新的示例如下所示。在此示例中,当前CU被编码为调色板大小等于六的调色板模式。六种主要颜色中的三种从调色板预测值预测(numPredPreviousPalette=3),并且三种颜色通过比特流直接传输。可以使用下面示出的示例性语法来用信号通知所发送的三种颜色。num_signalled_palette_entries=3for(cIdx=0;cIdx<3;cIdx++)//信号颜色为不同的组件for(i=0;i<num_signalled_palette_entries;i++)palette_entries[cIdx][numPredPreviousPalette+i]由于在该示例中调色板大小为六,所以从0到5的调色板索引用于指示调色板颜色表中的主要颜色条目。3个预测调色板颜色由索引0到2表示。因此,针对索引3到5发送三个新的调色板条目。在SCM-2.0中,如果不应用波前并行处理(wavefrontparallelprocessing,简写为WPP),则在每个切片(slice)的开始或每个片(tile)的开始处初始化(重置)调色板预测值表。如果应用WPP,则最后编码的调色板表不仅在每个切片的开始或每个片的开始处被初始化(重置),而且还在每个CTU行(row)的开始处被初始化(重置)。波前并行处理(WavefrontParallelProcessing,简写为WPP)HEVC支持WPP,其中每行编码树单元(CTU)可以通过多个编码或解码线程作为子流并行处理。为了限制编码效率的降级,处理顺序的波前图案确保不改变对空间相邻元件的依赖性。另一方面,在每个CTU行的开始处,基于上CTU行中的同步点的CABAC状态来初始化CABAC状态。例如,同步点可以是来自如图1所示的上部CTU行的第二CTU的最后CU,其中对CTU行应用并行处理。此外,在该示例中假设每个当前CTU(在图1中标记为“X”)的调色板编码取决于其左、左上、上方和右上CTU。对于顶部CTU行,调色板处理仅取决于左侧CTU。此外,CABAC引擎在每个CTU行的末尾被刷新,并且在每个子流的结尾处执行字节对齐。WPP子流的入口点被以信号发送为包含波前的切片的切片标头(sliceheader)中的字节偏移。如图1所示,每个块代表一个CTU,并且在图片中有四个CTU行。每个CTU行形成可以由编码或解码线程独立处理的波前子流(wavefrontsub-stream)。“X”符号表示正在处理的多个线程的当前CTU。由于当前CTU对右上CTU具有依赖性,所以当前CTU的处理必须等待右上CTU的完成。因此,在相邻CTU行的两个处理线程之间必须有两个CTU延迟,使得可以保留数据依赖性(例如,空间像素和运动向量(motionvector,简写为MV))。此外,每个CTU行的第一CTU的CABAC状态用在处理上部CTU行的第二CTU之后获得的状态来初始化。例如,在处理上述CTU行的第二CTU中的最后CU(由“p2”表示)之后,初始化第二CTU行中的第一CTU的第一CU(由“p1”指示)。依赖性由从“p1”指向“p2”的弯曲箭头线指示。对于每个CTU行的第一CTU的类似依赖性由弯曲箭头指示。与使用每个CTU行的切片初始化状态相比,这允许更快地得知沿着CTU的第一列的概率。由于上部CTU行的第二CTU总是对于当前CTU行可用,因此可以使用该波前结构来实现并行处理。对于每个当前CTU,处理取决于左CTU。因此,它必须等待直到左CTU的最后CU被处理。如图1所示,当前CTU中的第一CU(由“p3”表示)必须等待左CTU的最后CU(由“p4”指示)完成。同样,依赖性由从“p3”指向“p4”的弯曲箭头线指示。对左CTU的类似依赖性由用于正在处理的CTU(由“X”指示)的弯曲箭头指示。帧内块复制业内已经使用了称为帧内块复制(Intra-blockcopy,简写为IntraBC)的新的帧内编码模式。IntraBC技术最初由Budagavi在AHG8:VideocodingusingIntramotioncompensation,ITU-TSG16WP3和ISO/IECJTC1/SC29/WG11视频编码联合协作小组(JointCollaborativeTeamonVideoCoding,简写为JCT-VC),第13次会议:Incheon,KR,2013.4.18-2013.4.26,文档编号:JCTVC-M0350(以下称为JCTVC-M0350)中提出。图2中示出了根据JCTVC-M0350的示例,其中使用帧内MC(运动补偿)对当前编码单元(CU,210)进行编码。预测块(220)的位置由当前CU和位移向量(212)决定。在该示例中,搜索区域限于当前CTU(编码树单元)、左CTU和左左CTU。从已经重构的区域获得预测块。然后,对当前CU的位移向量(即,MV)和残差进行编码。众所周知,HEVC采用CTU和CU块结构作为用于对视频数据进行编码的基本单元。每个图像被分成CTU,并且每个CTU被简单地划分成多个CU。在预测阶段期间,每个CU可以被划分为多个块,称为预测单元(PU),用于执行预测处理。在针对每一CU形成预测残余之后,将与每一CU相关联的残余划分为多个块,称为变换单元(TU)以应用变换(例如离散余弦变换(discretecosinetransform,简写为DCT))。在JCTVC-M0350中,帧内MC与用于至少以下区域中的帧间预测的运动补偿不同:·对于帧内MC,MV被限制为1-D(即,水平或垂直),而帧间预测使用2-D运动估计。MV也称为用于帧内复制预测(Intracopyprediction)的块向量(blockvector,简写为BV)。·对于帧内MC,二进制化是固定长度,而帧间预测使用指数哥伦布(exponential-Golomb)。·帧内MC引入了一个新的语法元素来指示MV是水平还是垂直。基于JCTVC-M0350,Pang等人在Non-RCE3:IntraMotionCompensationwith2-DMVs,ITU-TSG16WP3和ISO/IECJTC1/SC29/WG11视频编码联合协作小组(JointCollaborativeTeamonVideoCoding,简写为JCT-VC),第14次会议:Vienna,AT,2013.7.25-2013.8.2,文档编号:JCTVC-N0256(以下称为JCTVC-N0256)中公开了一些修改。首先,帧内MC被扩展以支持2-DMV,使得两个MV分量可以同时是非零的。这为帧内MC提供了比原始方法更多的灵活性,其中MV被限制为严格水平或垂直。在JCTVC-N0256中,公开了两种MV编码方法:·方法1-运动向量预测。选择左或上部MV作为MV预测值,并对所得到的运动向量差(motionvectordifference,简写为MVD)进行编码。使用旗标(flag)来指示MVD是否为零。当MVD不为零时,使用3阶的指数哥伦布码来对MVD的剩余绝对水平进行编码。另一个旗标用于对符号进行编码。·方法2:无运动向量预测。MV使用用于HEVC中的MVD的指数哥伦布码来编码。JCTVC-N0256中公开的另一个差异是2-D帧内MC进一步与流水线友好方法组合:1.不使用插值滤波器,2.MV搜索区域受到限制。公开了两种情况:a.搜索区域是当前CTU和左CTU或b.搜索区域是当前CTU和左CTU的最右边4列样本。在JCTVC-N0256中提出的方法中,在新版本草案标准中已采用2-D帧内MC、去除内插滤波器和搜索区域限制为当前CTU和左CTU。对应于JCTVC-N0256的CU级语法已被并入高效视频编码(HighEfficiencyVideoCoding,简写为HEVC)范围扩展文本规范:草案4(RExt草案4)(Flynn等人,ITU-TSG16WP3和ISO/IECJTC1/SC29/WG11视频编码联合协作小组(JointCollaborativeTeamonVideoCoding,简写为JCT-VC),第14次会议:维也纳,AT,2013.7.25–2013.8.2,文档编号:JCTVC-N1005)。此外,在JCTVC-Q0031(高通提出的屏幕内容编码技术草案文本(DrafttextofscreencontentcodingtechnologyproposalbyQualcomm),ITU-TSG16WP3和ISO/IECJTC1/SC29/WG11的视频编码联合协作小组(JCT-VC),第17次会议:Valencia,ES,2014年3月27日-2014年4月4日,文档编号:JCTVC-Q0031)和JCTVC-Q0035(微软提出的屏幕内容编码技术的描述(DescriptionofscreencontentcodingtechnologyproposalbyMicrosoft),ITU-TSG16WP3和ISO/IECJTC1/SC29/WG11的视频编码联合协作小组(JCT-VC),第17次会议:Valencia,ES,2014年3月27日-2014年4月4日,文档编号:JCTVC-Q0035)公开了全帧(full-frame)IntraBC。全帧IntraBC去除了搜索区域约束以进一步提高IntraBC的编码效率。因此,所有重构块可由当前CU参考,其引入当前CU与所有先前经编码CU之间的数据依赖性。虽然全帧IntraBC优于原始IntraBC,但是数据依赖性防止在解码过程期间使用并行处理,特别是在HEVC中使能片处理或波前并行处理(WPP)。调色板索引图扫描顺序在SCM-2.0调色板模式编码中,如图3所示,遍历扫描(traversescan)用于索引图编码。图3示出了用于8×8块的遍历扫描。在遍历扫描中,当扫描顺序是水平的时,偶数行的扫描从左到右,并且奇数行的扫描从右到左。遍历扫描也可以在垂直方向上施加,其中对于偶数列从顶部到底部以及对于奇数列从底部到顶部进行扫描。在调色板模式下,对所有块大小应用遍历扫描。期望开发用于进一步提高编码效率或降低在调色板模式中产生的语法元素的复杂性的方法。技术实现要素:本申请公开了用于提高编码效率或降低与在视频编码系统中产生的调色板编码相关的语法的复杂度的方法。根据本发明的一个实施例,相对于预定义块大小检查当前块大小。如果当前块大小大于预定义块大小,则从不包括调色板编码模式的第一编码组中选择当前编码模式。如果当前块大小等于或小于预定义块大小,则从包括调色板编码模式的第二编码组中选择当前编码模式。然后根据所选择的当前编码模式对当前块进行编码或解码。预定义块大小可以对应于32×32或最大变换单元(转换单元)大小。如果当前块大小大于预定义块大小,则可以将调色板模式标志推断为零,以指示没有调色板编码模式用于当前编码单元。调色板模式标志也可以被限制为零,以指示不使用调色板编码模式用于当前编码单元,而不是被明确地发送。在一个实施例中,如果调色板模式标志指示调色板编码模式用于当前编码单元且当前编码单元大于预定义块大小,则将当前编码单元划分为大小等于预定义块大小的多个块,并且每个块由调色板编码模式编码。每个块可以使用单独的调色板编码语法。在另一实施例中,使用包括K阶指数哥伦布码的代码更有效地对调色板相关大小进行编码。调色板相关大小可以对应于表示当前调色板表中的第一数量的主颜色的重用主颜色大小,其重用调色板预测器中的主要颜色,表示当前调色板表中未由调色板预测器预测的主要颜色的第二数量的新主颜色大小或表示当前块中存在的主要颜色的第三数量的总主颜色大小。调色板相关大小可以对应于重用主颜色大小,新主颜色大小和总主颜色大小的组合。调色板相关大小是二进制化以根据一个K阶指数哥伦布码,一个K阶指数哥伦布码加一个一元码或一个K阶指数哥伦布码加上一个截断的一元码来生成二进制化的调色板相关大小。然后将熵编码应用于二进制化调色板相关大小以产生经编码调色板相关大小。K可对应于0,1,2或3。所述一个截断的一元码的最大位数对应于1,2或3。可使用上下文自适应性编码来编码二进制化调色板相关大小的二进制的一部分。如果调色板相关大小对应于重用主颜色大小,则对应于第一N个重用标记的前N个比特可以被编码以减少当前调色板中主要颜色的第一数量,其中N是正整数。此外,可以根据最大可能调色板大小来自适应地执行二进制化调色板相关大小以生成二进制化调色板相关大小。还公开了用于解码器侧的类似处理。在又一实施例中,使用单个上下文的上下文自适应编码用于对调色板运行类型进行编码。如果当前像素在复制模式下编码,则确定当前像素的调色板运行类型,其中调色板运行类型对应于复制上方模式或复制索引模式。然后使用具有单个上下文的上下文自适应熵编码来对调色板运行类型进行编码,而不依赖于与位于当前像素上方的任何先前编码的像素相关联的任何先前编码的调色板运行类型。用于解码器侧的类似处理也被公开。在又一个实施例中,根据与扫描顺序中的先前像素对应的复制模式,自适应地执行冗余索引去除。如果先前像素是复制索引模式,则从调色板集合中移除对应于先前像素索引的冗余索引以形成更新的调色板集合。如果先前的像素是复制上方模式,则跳过冗余索引去除,并且将调色板集合用作没有冗余去除的更新的调色板集合。根据更新的调色板集来对当前像素的当前索引进行编码或解码。【附图说明】图1示出了具有4个编码树单元(CTU)行的示例性波前并行处理(WPP)。图2示出了用于屏幕内容编码(SCC)的示例性帧内块复制(IntraBC)编码模式。图3示出了用于8×8块的水平遍历扫描,其中偶数行的扫描从左到右,奇数行的扫描从右到左。图4示出了复制上方模式的示例,其中,从位于上一行的像素的索引复制连续像素的索引。图5示出了复制上方模式的示例,其中不仅连续像素的索引而且像素值都从位于上一行的像素复制。图6示出了用于通过分配特定索引值(即N)以指示索引值跨编码单元(CU)复制的用于跨编码单元(CU)复制像素的复制上方模式的示例。图7示出了用于通过填充索引0和对应的像素值来跨越编码单元(CU)复制像素的复制上方模式的示例。图8示出了用于通过填充特定索引N和像素值X来跨越编码单元(CU)复制像素的复制上方模式的示例。图9A示出了从相邻编码单元中的上述像素直接复制索引Iabove的示例。图9B示出从上方像素复制Iabove的示例,其中上方像素的索引依次从相邻编码单元中的上方像素复制。图10示出了用于64×64块的水平遍历扫描,其中偶数行的扫描从左到右,奇数行的扫描从右到左。图11A示出了如具有箭头的粗的之字线所示,横跨对应于左上,左下,右上,然后右下的四个32×32块的扫描顺序的示例。图11B示出了在四个32×32块上对应于图11A的完整扫描图案。图12A示出如具有箭头的粗的之字线所示,跨越对应于左上,右上,左下,然后右下的四个32×32块的扫描顺序的示例。图12B示出了在四个32×32块上对应于图12A的完整扫描图案。图13A示出了基于图11B的扫描顺序的扫描顺序和几何位置的上方样本位置导出的示例。图13B示出了基于图12B的扫描顺序的扫描顺序和几何位置的上方样本位置导出的示例。图14A示出跨越四个32×32块的垂直第一扫描顺序的示例。图14B示出跨四个32×32块的垂直第一扫描顺序和每个32×32块的垂直光栅扫描的示例。图15A示出跨越四个32×32块的水平第一扫描顺序的示例。图15B示出跨越四个32×32块的水平第一扫描顺序和每个32×32块的水平光栅扫描的示例。图16说明根据本发明的实施例的并入语法设计的语法解析的示范性流程图。图17示出根据本发明的实施例的对每行的第一索引进行编码的示例。图18示出了根据本发明实施例的并入语法设计的语法解析的另一示例性流程图。图19A示出了使用旗标来指示索引与上面的索引相同而不是信令索引本身的示例,其中该旗标指示来自上面的像素的索引“3”。图19B示出使用旗标来指示索引与上面的索引相同而不是信令索引本身的示例,其中该旗标指示来自上面的像素的索引“1”。图20示出了根据本发明实施例的并入语法设计的语法解析的又一示例性流程图。图21示出根据本发明的实施例的任意复制模式的示例。【具体实施方式】以下描述是实施本发明的最佳预期模式。该描述是出于说明本发明的一般原理的目的,并且不应被视为具有限制意义。本发明的范围通过参考权利要求书来确定。本发明涉及如下公开的与调色板编码相关的几个方面。调色板大小信令(Signaling)在JCTVC-O0218中,编码器将首先编码重用旗标以指示调色板预测值中重用的主要颜色的数量。然后对新的主颜色大小进行编码以指示要以信号发送的新的主要颜色的数量。新的主颜色大小的数量使用一元码(unarycode)或截断的一元码(truncatedunarycode,简写为TU)来编码。在JCTVC-O0182中,使用固定长度码来对主颜色大小的总数进行编码。然而,一元码、截断的一元码和固定长度码的二进制化方法效率不高。因此,根据本发明的实施例,使用K阶指数哥伦布码、截断的K阶指数哥伦布码、一元码加上K阶指数哥伦布码或截断的一元码加上K阶指数哥伦布码用于调色板相关尺寸的二进制化,例如新主颜色大小的数量、调色板预测值中重用主颜色大小的数量、总主颜色大小或其任何组合。例如,如表1所示,二进制化可以使用最大长度为3比特的截断的一元码加上K等于3的K阶指数哥伦布码(即,EG-3码)。表1.虽然在表1的示例中K等于3,但根据本发明的实施例,K可以是0、1、2、3或4。另一方面,根据本发明的实施例,TU码的最大长度可以是1、2或3。可以用上下文对二进制化调色板相关大小的二进制位的一部分进行编码。例如,前三个二进制位可以用上下文编码。主颜色大小的数目可除以M以进行编码。例如,如果主颜色大小是17,M是4,则编码大小是ceil(17/4)=5,其中ceil()对应于ceiling函数。预测值中的一些重用旗标可以总是直接编码。例如,对应于第一N个重用标记的前N(例如4)个比特可以直接编码而不是游程长度(run-length)编码。因此,可以减少重用旗标的数量。二进制化的码字可以根据最大可能的大小自适应地改变。例如,如果最大大小为3,则TU码的3位将是足够的。在这种情况下,不需要EG-K码,并且可以跳过EG-K部分。来自上面的像素或相邻CU像素的预测(neighboringCU,简写为NCP)在SCM2.0中,如图4所示,当像素通过copy_run语法以信号发送时,其将复制上方像素的索引值并使用该索引值。重建的像素值将从表2中所示的调色板导出。表2.颜色索引像素值0(20,0,0)1(200,0,0)根据本发明的实施例,当通过以发信号发送copy_run语法来对像素进行编码时,如图5所示,像素将不仅复制上方像素的像素索引,而且还复制上方像素的像素值。解码器可以在不参考调色板的情况下从复制的像素值重构copy_run模式中的像素。根据另一实施例,可以在解析阶段期间将特殊符号(例如“A”)分配给由copy_run(复制上方)覆盖的所有位置。然后,在重构阶段,每当解码器遇到“A”时,它复制来自上面的像素值。此外,可以在没有相关联的索引的情况下直接用信号通知index_run的像素值。在这种情况下,调色板表和与调色板表相关的其他信息不需要被编码。如果上方像素来自跨越CU边界的另一CU,则根据本发明的实施例为相邻CU像素(NCP)指派特定索引(表示为N)。当像素由copy_run语法以信号发送时,它将不仅复制上方像素的像素索引(N),而且还复制上方像素的像素值,如图6所示。特殊值N可以是不同于所有可能的索引值的值(例如最大索引值+1)。如果预测来自左NCP,则可以应用类似的方法,并且在该情况下的NCP将是左NCP。NCP的填充索引(paddingindice)和像素值如果上方CU无效,则解码器可以用预定义或导出的值替换上述NCP的索引和像素值。替代方法还可以应用于复制索引(例如图4)、复制值以及复制索引和复制值两者的情况(例如图5)。图7中示出了说明用于如图7所示的解码器侧的本发明的实施例的示例,其中上述NCP的索引和像素值都分别等于0和条目零中的调色板颜色。图8示出了说明用于解码器侧的本发明的实施例的另一示例,其中上述NCP的索引和像素值分别等于N和预定义或导出的像素值X,如图8所示。像素值X对于YUV格式可以是(127,0,0)或(128,0,0),或者对于YUV格式可以是(127,127,127)或(128,128,128)。在一个实施例中,编码器和解码器可以用最频繁出现的索引替换上方索引,并且将像素值替换为对应的像素值。冗余索引移除在SCM2.0中,如果先前运行(即,应用于先前像素的复制模式)是复制上方的运行(copyaboverun),则当当前像素(Pc)是新索引运行的第一个像素时,当前像素不具有与上方像素(Pa)的索引相同的索引。否则,当前像素将被合并到先前的运行中。在这种情况下,当前像素的索引(Ic)可以用冗余去除来编码。上方像素(Pa)的索引被称为Iabove,并且先前像素(例如,左侧像素Pleft)的索引被称为Ileft。根据扫描方向,先前像素也可以是右(水平扫描)、上面或下面的像素(垂直扫描)。基于扫描方向,上面的像素可以在当前像素上方的行中或在当前像素的左边的列中。根据本发明的实施例,为了减少行缓冲器需求,如果先前像素(例如,左像素Pleft)使用复制上方模式编码,并且Iabove来自水平扫描中的上方CU或来自垂直扫描中的左CU,冗余索引去除被禁用,因此不需要存储和访问上方像素的索引。换句话说,仅当使用复制索引模式对先前像素进行编码时,将从调色板集合中移除对应于先前像素索引的冗余索引,以形成用于编码或解码当前像素的索引的更新调色板集合。图9A示出了从相邻CU直接复制Iabove的情况。图9B示出了从上面的像素复制Iabove的情况,其中依次从相邻CU复制上方像素的索引。在一个实施例中,当Pleft在复制上方模式中被编码并且当前像素在当前CU的前N行中时,将禁用冗余移除。在另一个实施例中,当Pleft在复制上方模式中被编码时,对于所有索引将禁用索引冗余移除。在又一个实施例中,可以针对所有索引禁用冗余索引去除,而不考虑Pleft的模式。在一个实施例中,如果Iabove等于N(来自NCP),则当在复制上方模式中对Pleft进行编码时,可以禁用冗余索引去除。用于64×64调色板编码块的子块扫描在SCM-2.0调色板模式中,对所有块大小应用遍历扫描,其中包括64×64块。64x64块的遍历扫描如图10所示。在HEVC中,虽然编码单元(CU)可大到64×64,但最大处理单元可仅为32×32。这是因为最大变换单元(转换单元)(transformunit,简写为TU)是32×32,并且在帧内或帧间模式中编码的64×64CU可以被划分成用于解析系数和重构的四个32×32块。不需要使用64×64缓冲器用于HEVC解码。然而,在SCM-2.0调色板模式编码中,使用64×64遍历扫描,其需要用于编码器和解码器的64×64缓冲器。因此,编码器和解码器需要适应处理单元的处理能力以能够处理64×64块。因此,它增加了实现成本和复杂性。在本发明的一个实施例中,64×64遍历扫描被分成四个32×32遍历扫描,如图11A-B和图12A-B所示。根据一个实施例,64×64块被划分为四个32×32块,并且跨四个32×32块的两个不同的扫描模式分别在图11A和图12A中示出。如图11A所示,跨四个32×32块的扫描顺序是左上、左下、右上,然后是右下,如具有箭头的粗的之字线所示。如图12A所示,跨四个32×32块的扫描顺序是左上、右上、左下,然后右下,如具有箭头的粗的之字线所示。对于每个32x32块,应用32x32遍历扫描。图11B示出了在四个32×32块上对应于图11A的完整扫描图案。图12B示出了在四个32×32块上对应于图12A的完整扫描图案。在此扫描顺序中,64x64调色板CU可以被视为四个32x32块,并适合大小等于32x32的处理单元。因此,只需要一个32x32缓冲区和一些行缓冲区。对于copy_above_run模式,可以从扫描顺序位置或几何位置导出上方样本(abovesample)位置。如果上方样本位置是从扫描顺序导出的,则上方样本的扫描索引等于当前扫描索引减去32。例如,对于当前像素A,如果上方样本位置是从扫描顺序导出的,则其上方样本位置是像素B。如果上方样本位置是从几何位置导出的,则其上面的样本位置是像素C,如图13A-13B,其中图13A对应于图11B的扫描顺序,图13B对应于图12B的扫描顺序。此外,可以应用混合样本位置导出。例如,对于右上32×32块的第一行,它可以使用扫描顺序位置导出来找到其上面的像素,而其他行使用几何导出(geometryderivation)。对于当前样本,如果上方样本不可用,则不能应用copy_above_run模式(也称为“复制上方模式”)。例如,如果上方样本位置是从几何位置导出的,则右上32×32块的第一行的调色板预测模式不能是copy_above_run模式。可以限制调色板运行的最大数量。此外,当先前编码调色板运行模式是copy_above_run并且上方样本不可用时,不应用冗余索引去除。图13B示出了这种情况的示例。如果像素D的最后编码调色板运行模式是copy_above_run并且运行从像素E开始,则copy_above_run应该在像素F处结束。像素E的调色板运行的最大数目可以是(scan_order_F-scan_order_E)。像素D的调色板运行模式应该是索引运行模式。对于像素D,不应用冗余索引去除,因为其上面的样本的索引不可用。子块的大小可以与最大变换单元(TU)大小对齐。每个子块扫描可以是独立的。用于非遍历扫描的64×64调色板编码块的子块扫描上面针对遍历扫描公开的子块扫描和调色板预测值导出也可以应用于光栅扫描。如果使用光栅扫描,64x64块也可以划分为四个32x32块。图11A-11B、图12A-12B、图13A-13B中每个32×32块内的扫描顺序可以改变为光栅扫描。跨四个32×32块的扫描顺序可以先是垂直的(如图14A所示)或者可以先是水平的(如图15A所示)。在图14B中,在每个子块内应用垂直光栅扫描,而在图15B中,在每个子块内应用水平光栅扫描。对于调色板编码,推断调色板模式旗标或强制CU分裂用于64×64CU为了避免块扫描顺序的不规则结构,可以使大小大于预定义块大小的CU跳过调色板编码。在一个实施例中,预定义块大小是32x32。因此,对于64x64CU,palette_mode_flag被导出为0而不被以信号发送。表3示出了示例性语法表,其中对于块大小64×64,语法palette_mode_flag[x0][y0]被跳过,如注释(3-1)中的条件(nCbS!=64)所指示的。表3.在另一实施例中,当CU大小等于64×64且palette_mode_flag为1时,将当前CU分成四个32×32调色板编码块。每个块可以使用其单独的语法用于调色板编码。在又一实施例中,如果CU大小等于64×64,则施加编码器约束,在编码器端,palette_mode_flag被限制为0(即,调色板模式关闭)。用于调色板编码的推断palette_mode_flag在SCM2.0调色板模式中,对包括64×64块的所有块大小应用遍历扫描。64x64块的遍历扫描如图10所示。为了避免块扫描次序的不规则结构,当调色板编码CU的大小大于最大TU大小时,可跳过调色板编码。如果CU大小大于最大TU大小,则palette_mode_flag被导出为0而不被以信号发送。表4示出了示例性语法表,其中对于大于最大TU大小的CU大小,跳过语法palette_mode_flag[x0][y0],如注释(4-1)中的条件(log2CbSize<=MaxTbLog2SizeY)所示。表4.在另一实施例中,施加编码器约束,如果CU大小大于最大TU大小,那么在编码器端,palette_mode_flag被约束为0(即,调色板模式关闭)。对于大小不大于预定义块大小(例如,最大TU大小或32×32)的任何CU,如果其通过调色板编码模式编码,则可以使用本发明中所描述的技术(例如调色板大小信令、限制最大编码单元大小、用于运行类型的简化上下文自适应编码,以及调色板编码中的简化冗余移除)。run_type的上下文本发明的另一方面解决用于run_type编码的上下文。例如,run_type(也称为“调色板运行类型”)可以用一个固定上下文来编码,如表5所示。在这种情况下,仅使用一个上下文,并且上下文不依赖于任何东西。表5.在另一实施例中,可使用对应于上面像素的run_type的一个语法来对run_type进行上下文编码,如表6中所示,其中使用上下文自适应编码来编码二进制位索引0,且其它二进制位索引不被编码。对于run_type有两个可能的值(即,两个上下文),并且一个上下文模型用于两个run_type值中的每一个。表6.在HEVC标准中,根据z扫描模式来处理编码树块(codingtreeblock,简写为CTB)内的块,以将四叉树分区CTB匹配到块中。像素(xNbA,yNbA)指示当前像素前面的像素(pixelabove)。变量availableA指示像素(xNbA,yNbA)包括在当前CTB中。表7示出了确定palette_run_type_flag的ctxInc的示例性条件。当condA指示上方像素的运行类型为0时,ctxInc为0。当(xNbA,yNbA)不包括在当前CTB中时,ctxInc为0。表7.上方像素的位置(xNbA,yNbA)被设置为等于(x0,y0)处的当前像素的(xA,yA),其中:当扫描顺序为水平时,xA=x0,yA=y0-1当在另一实施例中,扫描次序是垂直时,xA=x0-1,yA=y0,可使用对应于先前像素的run_type的一个语法来上下文编码run_type,如表8中所示,其中二进制位索引0使用上下文自适应编码,而其他二进制位索引不是。同样,对于run_type有两个可能的值(即,两个上下文),并且一个上下文模型用于两个run_type值中的每一个。表8.先前像素的位置(xNbB,yNbB)被设置为等于(x0,y0)处的当前像素的(xB,yB),其中:当扫描顺序是水平遍历时,xB=x0-1,yB=y0,y0是偶数,当扫描顺序是水平遍历时,xB=x0+1,yB=y0,y0是奇数,当扫描顺序是垂直遍历时,xB=x0,yB=y0-1,x0是偶数,当扫描顺序是垂直遍历时,xB=x0,yB=y0+1,x0是偶数。如果扫描次序未遍历,则根据以下确定位置(xB,yB):当扫描顺序为水平时,xB=x0-1,yB=y0,以及当扫描顺序是垂直时,xB=x0,yB=y0-1。变量availableB指示像素(xNbB,yNbB)包括在当前CTB中。表9示出了确定palette_run_type_flag的ctxInc的示例性条件。当condL指示先前像素的运行类型为0时,ctxInc为0。当(xNbB,yNbB)不包括在当前CTB中时,ctxInc为0。表9.IntraBC的时间合并候选(TemporalMergecandidate)在HEVC合并模式中,将时间合并候选用作合并候选之一。在时间合并候选导出中,首先指定List_0中的当前图片的目标参考图片。当前图片的目标参考图片是在List_0中具有等于0的参考图片索引(ref_Idx)的图片。然后缩放并置的(Collocated)PU的运动向量以导出时间合并候选。时间合并候选的ref_Idx被设置为等于零。对于B切片(B-slice),获得并组合两个运动向量,一个用于参考图像列表0,另一个用于参考图像列表1,以产生双向预测合并候选。然而,在时间合并候选导出中,如果当前图片的目标参考图片或并置图片的参考图片是长期参考帧,则禁用MV缩放。并且如果这两个图片中仅有一个是长期参考帧,则将时间合并候选指定为不可用。在IntraBC设计的一个实施例中,重构的当前图片被用作当前图片的参考图片之一。将该重构的当前图片插入参考帧列表中,例如List_0中的最后一个参考图片。因此,IntraBC模式可以被看作是帧间模式(Intermode)之一。然而,参考图像指向该重构的当前图像。IntraBC块的块向量(BV)被视为指向该重构的当前图像的MV。在这种IntraBC设计中,重构的当前图片被标记为长期参考图片。在上述IntraBC设计中,BV不能用于导出时间合并候选,因为如果并置块被编码为IntraBC模式,则并置块的参考图片是长期图片。如果当前图片的参考图片是短期图片,则时间合并候选者不可用。这意味着不能使用时间合并候选导出来导出BV。为了克服上述问题,根据本发明的实施例允许在时间合并候选导出中使用BV。在时间合并候选导出中,如果并置块的MV是BV,则BV被用作时间合并候选。如果当前重构图片存在于当前参考帧列表中,则时间合并候选可用。将时间合并候选的参考图片索引ref_Idx设置为等于指向当前重构图片的参考图片索引。例如,如果当前重构图片在List_0MV的时间合并候选者推导期间插入List_0中,并且如果并置PU的MV是BV,则BV用作该时间合并候选的List_0MV,并且ref_Idx被设置为等于指向当前重构图像的参考图像索引。用于调色板索引的线约束(Line-constrained)运行编码为了更好地促进管线友好性,本发明的实施例对调色板索引使用线约束运行编码,其具有四种方法(模式)来对调色板索引的行进行编码:·行copy_index(Linecopy_index):行中的所有样本具有相同的调色板索引。·行copy_above(Linecopy_above):从上面的行复制行的所有索引。·行分数(Linefraction)copy_index:仅使用index_run对行的索引进行编码。每次运行都是特定索引的重复。最后一个运行在行的结尾处终止。·行分数混合:行的索引使用index_run和copy_above进行编码。每次运行都是特定索引(copy_index)的重复,或者是来自上面的行的连续索引的副本(copy_above)。最后一个运行在行的结尾处终止。对于四种方法中的每一种,运行总是在行的末尾终止,实现管道友好性。这也消除了使用遍历扫描的需要。在下文中,示出了结合本发明的实施例的用于以信号发送线约束(signalingline-constrained)的运行编码的示例。示例1.在该示例中,语法设计首先确定它是否是“行copy_above”模式。如果不是,其它语法元素将确定单个运行(行copy_index)或多个运行(行分数)模式。下面的表10总结了语法设计。表10.对于“行copy_above模式”和“行copy_index”模式,不需要以信号发送调色板运行,因为游程长度(runlength)等于块宽度(或如果扫描是垂直的,则为高度)。对于“行分数模式”,由于最后一个行程必须在行的结束处终止,所以可以利用特殊的“运行到末尾(run-to-the-end)”语法设计或通过以信号发送行中运行次数(number_of_run_in_line)来有效地对其长度进行编码。因此,可以跳过最后一次运行的运行长度。如图16所示,图16说明并入如上文所揭示的语法设计的语法解析的示范性流程图。如步骤1610所示检查Run_type_line。如果运行类型是Copy_index,则流程进入步骤1620,如果运行类型是Copy_above,则执行步骤1630。在步骤1620中,检查Full_line_flag以确定其是否为真。如步骤1640所示,如果其为真(即,“是”路径),则解析索引,并且如步骤1650所示,如果必要,进一步解析Escape_values。如果Full_line_flag不为真(即,“否”路径),则执行步骤1660,其检查语法Run_type_fraction。如果Run_type_fraction是Copy_above,则执行步骤1690。如果Run_type_fraction是Copy_index,则执行步骤1670,其中索引被解析。在步骤1670之后,在步骤1680中解析运行。在解析运行之后,如果需要,在步骤1690中解析Escape_values。上述实施例不区分“行分数copy_index”和“行分数混合”。它通过简单地在给定行中的每个运行的开始处以信号发送Run_type_fraction来允许两种情况。示例2.在该示例中,语法设计首先确定它是否是“行copy_above”模式。如果不是,其他语法元素将确定单次运行(行copy_index)或多次运行(行分数)模式。表11总结了语法设计。表11.与示例1相比,标记Copy_index_only用于指示行分数copy_index,其中,因为它们都是copy_index运行,循环运行(loopoverrun)不需要以信号发送运行类型)。对于“行分数模式”,由于最后一个运行必须在行的结尾处终止,所以可以利用特定的“运行到末尾”语法设计或通过以信号发送number_of_run_in_line来有效地对其长度进行编码。上次运行的运行长度可以被跳过。其他二进制化(binarization)实施例。表12A-12J中示出了四种模式的二进制化信令的更多示例,其中可变长度二进制化示于表12A-12I中,固定长度二进制化示于表12J中。表12A.表12B.表12C.表12D.表12E.表12F.表12G.表12H.表12I.表12J.上下文编码示例。可以使用旁路或常规上下文模式对上述二进制化示例中的每个二进制位(bin)进行编码。上下文编码可以取决于先前模式、上面行中的模式或两者。如果上下文编码,则Run_type_line和Run_type_fraction可以共享相同的上下文,或者它们可以使用不同的上下文。行中的最后一次运行的编码(Codingofthelastrun)由于每一行中的最后一次运行必须在该行的结束处终止,所以可以利用特定的“运行到终止(run-to-the-end)”语法设计来有效地对其长度进行编码。例如,可以将特定代码分配为调色板二进制化表中的运行到终止(run-to-the-end)代码。在另一示例中,可以以信号发送与该行中的运行次数相对应的语法number_of_run_in_line。当在一行中解析循环运行时,可以跳过上一次运行的运行长度。在又一实施例中,针对每次运行以信号发送语法last_run旗标。当此旗标为1时,不需要以信号发送运行。运行的编码(Codingoftherun)本发明不限于用于对运行进行编码的特定二进制化方法。诸如截断的一元或截断的二进制的其他运行编码方法可以用于二进制化(binarize)运行。由于仅对于行程长度被限制为短于块宽度(或高度)的“行分数”模式需要运行,所以也可以使用固定长度编码。对于运行的给定二进制化,每个二进制位(bin)可以在旁路或常规上下文模式中编码。每行的第一索引的编码对于信令之后的每一行,当前行被编码为全行(fullline)或部分行(partialline),以信号发送该行的索引。如果索引与上面的相同,则可以以信号发送一个旗标而不是发送索引本身。在图17所示的例子中,对于所有索引为3的行,可以以信号发送索引'3'。此外,可以以信号发送指示索引与上方像素(1710)相同的旗标。图18说明并入有如上文所揭示的语法设计的语法解析的示范性流程图。图18中的流程图类似于图16,除了Full_line_flag为真的情况。在这种情况下,在步骤1810中,有关于Copy_index_from_above是否为真的附加测试。如果结果为“是”,则执行步骤1830,其中如果必要,解析Escape_values。如果结果为“否”,则执行步骤1820,其中索引被解析。在步骤1820之后,如步骤1830所示,如果必要,解析Escape_values。如果当前行未被编码为全行,那么所述旗标可用以指示所述索引与上文相同而不是以信号发送索引本身。图19A-19B中示出了两个示例,其中在图19中,该旗标指示使用来自上方像素(1910)的索引“3”,在图19B中使用来自上方像素(1920)的索引“1”。图20说明并入有如上文所揭示的语法设计的语法解析的示范性流程图。图20类似于图18,除了在步骤1660和步骤1670之间包括附加步骤(2010)。在步骤2010中,测试Copy_index_from_above是否为真。如果结果为“是”,则如步骤1690所示,如果必要,则解析Escape_values。如果结果为“否”,则如步骤1670所示解析索引。整行运行(Entirerowrun)为了提高编码效率,公开了一种在颜色索引编码中对与整行对应的匹配长度进行编码的实施例。在这种情况下以信号发送row_run_flag。表13A示出根据本发明的实施例的二进制化以用信号发射row_run_length的示例。如果row_run_flag=1,则此行(line)为行运行(rowrun),副本从复制位置到行尾。如果row_run_flag=0,则在row_run_flag之后进一步以信号发送长度语法。对于整个行运行的上述实施例也可以应用于复制上方、复制左边(copyleft)、复制其它方向、转换复制(transitioncopy)、任意复制或其任何组合。例如,上述整个行运行技术可以应用于复制上方或复制左边模式,而不适用于转换复制或任意复制。表13B-13C示出根据本发明的实施例的二进制化以用信号发射row_run_length的两个示例。表13A.码字模式0行运行1其他运行表13B.码字模式00复制上面的整行运行01复制上面的其他运行10复制索引整行运行11复制索引其他运行表13C.上述示例示出了用于不同调色板预测模式的整个行运行。这些示例不意味着穷尽列出所有可能的二进制化和调色板预测模式。任意位置复制除了复制上方和复制左边以编码索引图之外,本发明的实施例包括任意位置复制模式以便于从其它位置复制索引的长度(length-of-indice)。转换复制是为HEVC下的屏幕内容编码开发的编码模式。与转换复制不同,当前像素任意复制模式不由左像素确定。编码器将在先前编码的颜色索引中搜索以找到具有当前颜色索引的匹配的颜色索引。而距离是这两个颜色索引位置之间的距离。根据具有与指定距离处的像素相同的颜色索引的像素的数量导出长度。距离和长度对由最长长度或其他速率失真优化(rate-distortionoptimization,简写为RDO)决定来确定。添加了附加语法元素以指示任意复制的使用。如果使用任意复制模式,则将解析语法元素arbitrary_copy_run_distance和arbitrary_copy_run_length(例如n),使得从由arbitrary_copy_run_distance指定的位置直接复制随后n个样本索引。图21示出了任意复制模式的示例。当编码当前像素(2110)时,编码器将在先前编码像素中进行搜索。找到具有长度3和6的两个匹配对,如图21中的当前图案(currentpattern)(2140)所示的椭圆2120和2130所示。可以通过相应的块向量(2150和2160)来识别匹配对的位置。编码器将根据RDO决定或最长长度选择一个。arbitrary_copy_run_distance可以用信号表示为一个向量或两个单独的1D标量值(scalarvalue)。基于TU的调色板编码调色板编码的索引图编码也可以应用于每个TU。调色板本身的信息可以由CU内的所有TU共享。最大TU分割深度可以固定为N,例如max_transform_hierarchy_depth_intra-1。TU分割深度对于较大CU(例如64×64CU)可固定为N(例如,1),且对于较小CU(例如32×32、16×16和8×8)固定为N-1N(例如0)。提供以上描述是为了使本领域普通技术人员能够实施在特定应用及其要求的上下文中提供的本发明。对所描述的实施例的各种修改对于本领域技术人员将是显而易见的,并且本文定义的一般原理可以应用于其他实施例。因此,本发明不旨在限于所示出和描述的特定实施例,而是符合与本文公开的原理和新颖特征一致的最宽范围。在上述详细描述中,示出了各种特定细节以便提供对本发明的透彻理解。然而,本领域技术人员将理解,可以实践本发明。子样本(Subsample)颜色索引图编码在JCTVC-O0218和JCTVC-O0182中,水平光栅扫描用于颜色索引图编码。在本发明的一个实施例中,对子样本索引图进行编码,然后对索引图的其他部分进行编码或直接填充。例如,可以通过使用原始调色板颜色索引图编码来首先对偶数样本行或偶数样本列进行编码。对于其余样本,可以应用插值来填充样本。或者,可以为剩余的样本行或列以信号发送语法。例如,对于每一行,可以以信号发送预测模式。预测模式可以包括垂直模式、水平模式、插值模式(interpolationmode)和正常编码模式。对于插值模式,通过使用相邻像素来内插样本。可以以信号发送CU级别旗标以指示子抽样颜色索引图是否用于CU。可以以信号发送PPS/SPS/片报头中的旗标来打开/关闭此工具。单个调色板索引CU的运行编码在SCM2.0中,如果CU仅包含一个可能的调色板索引,则将跳过调色板转置旗标(palette_transpose_flag)和运行编码。可能出现两种情况:情况1:CU具有一个调色板颜色并且没有逸出索引(escapeindex),并且情况2:CU没有调色板颜色,具有一个逸出索引。然而,当跨CU的复制像素用于调色板编码时,有可能的是,即使当前调色板CU仅具有一个索引,CU中的一些像素从跨CU被复制,且不由当前调色板表示或逸出(Escape)。为了允许这样的情况,可以针对仅包含一个可能的索引的CU自适应地以信号发送palette_transpose_flag和运行编码。例如,在情况1中,当CU具有一个调色板颜色并且没有逸出索引时,以信号发送palette_transpose_flag和/或运行编码被使能。如果跳过palette_transpose_flag,则可以将其推断为开或关。对于情况2,当CU没有调色板颜色,且具有一个逸出索引时,以信号发送palette_transpose_flag的信令和/或运行编码被使能。如果跳过palette_transpose_flag,则可以将其推断为开或关。根据另一实施例,可以在情况1、情况2或两种情况下禁用palette_transpose_flag以及运行编码的任何组合。调色板大小的偏移编码小于N在一个实施例中,当使用广义复制上方模式时,广义复制上方模式的偏移可以通过调色板大小来推断。当调色板大小小于N并且索引模式是复制上方模式时,偏移被推断为M(例如M=1),并且编码器和解码器不需要以信号发送复制上方模式的偏移。当调色板大小大于N时,使用复制上方多行(copyabovemultiplerow)。在一个实施例中,编码器和解码器将总是以信号发送复制上方模式的偏移。使用调色板语法来对预测值细化信息(refinementinformation)进行编码调色板编码方法可以用作另一残差编码方法(例如,编码预测值细化信息)。在HEVC中,在帧内或帧间预测之后,将以信号发送残差以细化预测值。在本发明的一个实施例中,不是在HEVC中使用残余编码语法,而是使用调色板编码语法来以信号发送预测值细化信息(即,残差)。根据本实施例的示例描述如下:示例1.当编码器使用调色板语法来编码预测值细化信息时,编码使用调色板来编码残余信号。换句话说,解码器解码调色板索引并获得调色板中对应于调色板索引的值。该值是残差值,用于细化预测值。特殊索引可以为等于0的残留保留。例如,保留索引可以是0或1。示例2.当编码器使用调色板语法来编码预测值细化信息时,编码使用调色板来编码原始像素值,但保留特殊索引以指示等于预测值的重构像素。当解码器解码调色板语法时,如果像素的索引为0,则重构的像素值等于(帧内或帧间)预测值。否则,重构的像素值等于与索引相对应的调色板中的颜色。例如,保留索引可以是0或1。可在新调色板语法之后或之前以信号发送HEVC残余语法。换句话说,可以存在两级预测值细化:一个用于HEVC残余编码,一个用于新的调色板编码。最后编码的BV的重置在SCM2.0中,最后编码的BV用于BV编码的BV预测值(BVP)推导中。对于每个CTU,最后编码的BV被重置为(0,0)。根据本发明的一个实施例,修改重置机构(resetmechanism)以将每个CTU的最后编码的BV重置为预定值,而不是(0,0)。预定值可以是(-8,0)、(-16,0)、(-32,0)、(-64,0)、(0,-8)、(0,-16)、(0,-32)、(0,-64)。如果两个最后编码的BV需要重置,则预定义的BV对可以是{(-64,0),(-32,0)}、{(-32,0),(-64,0)}、{(-128,0),(-64,0)}、{(-64,0),(-128,0)}、{(-32,0),(-16,0)}、{(-16,0),(-32,0)}、{(-16,0),(-8,0)}、{(-8,0),(-16,0)}、{(-32,0),(-8,0)}或{(-8,0),(-32,0)}。使用所提出的方法,可以简化BV预测值导出。可以跳过对最后编码的BV的可用性检查(即,检查最后编码的BV是否等于(0,0))。根据本实施例的重置机构的示例描述如下:示例1.当当前块是当前CTU中的第一编码IntraBCPU时,最后编码的BV被重置为(-2w,0)和(-w,0),其中w是PU宽度或PU高度。示例2.最后编码的BV在每个CTU的开始处被重置为预定义值,其中这些预定义值与CTU_width或CTU_height相关。例如,预定义值可以是(-CTU_width,0)、(-(CTU_width>>1),0)、(-(CTU_width>>2),0)、(-(CTU_width>>3),0)。最小/最大值约束可以应用于这些预定义值。例如,每个分量的最大值不能大于-8。因此,预定义值可以是(最大(-8,-CTU_width)),0)、(最大(-8,-CTU_width>>1)),0)、(最大(-8,-(CTU_width>>2)),0)、(max(-8,-(CTU_width>>3)),0)。示例3.最后编码的BV在每个CTU的开始处被重置为预定义的值,其中这些预定义的值与min_CU_width或min_CU_height相关。例如,预定值可以是(-min_CU_width),0)、(-2*min_CU_width),0)、(3*min_CU_width,0)、(-4*min_CU_width,0))、(-8*min_CU_width,0)。最小/最大值约束可以应用于这些预定义值。例如,每个组件的最小值不能大于-64。因此,预定义值可以是(最小(-64,-min_CU_width)),0)、(最小(-64,-2*min_CU_width)),0)、(最小(-64,-3*min_CU_width))、0)、(最小(-64,-4*min_CU_width)),0)、(最小(-64,-8*min_CU_width)),0)。如果两个最后编码的BV需要重置,则预定义的BV对可以是{(-min_CU_width),0),(-2*min_CU_width),0)}、{(-2*min_CU_width),0),(-min_CU_width),0)}、{(-2*min_CU_width),0),(-4*min_CU_width),0)}或{(-4*min_CU_width),0),(-2*min_CU_width),0)}。根据上述实施例,可以简化最后编码的BV重置。它不需要检测当前块是否是当前CTU中的第一IntraBC编码块。如上所述的本发明的实施例可以以各种硬件、软件代码或两者的组合来实现。例如,本发明的实施例可以是集成到视频压缩芯片中的一个或多个电子电路或集成到视频压缩软件中的程序代码,以执行本文所述的处理。本发明的实施例还可以是在数字信号处理器(DSP)上执行以执行本文所述的处理的程序代码。本发明还可以涉及由计算机处理器、数字信号处理器、微处理器或现场可编程门阵列(FPGA)执行的多个功能。这些处理器可以被配置为通过执行定义本发明所体现的特定方法的机器可读软件代码或固件代码来执行根据本发明的特定任务。软件代码或固件代码可以用不同的编程语言和不同的格式或样式来开发。软件代码还可以针对不同的目标平台编译。然而,不同的代码格式,软件代码的语言和语言以及配置代码以执行根据本发明的任务的其他手段将不脱离本发明的精神和范围。在不脱离本发明的精神或基本特征的情况下,本发明可以以其它具体形式实施。所描述的示例在所有方面被认为仅是说明性的而不是限制性的。因此,本发明的范围由所附权利要求而不是前面的描述表示。在权利要求的等同物的含义和范围内的所有改变将被包括在其范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1