HK1237171B - 编码、解码视频数据的方法、装置和计算机可读存储媒体 - Google Patents
编码、解码视频数据的方法、装置和计算机可读存储媒体 Download PDFInfo
- Publication number
- HK1237171B HK1237171B HK17111042.6A HK17111042A HK1237171B HK 1237171 B HK1237171 B HK 1237171B HK 17111042 A HK17111042 A HK 17111042A HK 1237171 B HK1237171 B HK 1237171B
- Authority
- HK
- Hong Kong
- Prior art keywords
- syntax element
- palette
- encoded
- mode
- video data
- Prior art date
Links
Description
本申请案主张2015年1月30日申请的美国临时专利申请案第62/110,302号的权益,所述申请案的全部内容特此以引用的方式并入本文中。
技术领域
本发明涉及编码及解码内容,且更特定地说涉及根据基于调色板的译码模式来编码及解码内容。
背景技术
数字视频能力可并入到广泛范围的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电话会议装置、视频流式传输装置及其类似者。数字视频装置实施视频压缩技术,例如由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、第10部分先进视频译码(AVC)、ITU-T H.265、高效率视频译码(HEVC) 所界定的标准及这些标准的扩展中所描述的那些技术。视频装置通过实施这些视频压缩技术可较有效地发射、接收、编码、解码及/或存储数字视频信息。
视频压缩技术执行空间(图片内)预测及/或时间(图片间)预测来减少或移除视频序列中固有的冗余。对于基于块的视频译码,可将视频切片(即,视频帧或视频帧的一部分)分割成视频块。使用关于同一图片中的相邻块中的参考样本的空间预测来编码图片的经帧内译码(I)的切片中的视频块。图片的经帧间译码(P或B)切片中的视频块可使用关于同一图片中的相邻块中的参考样本的空间预测或关于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。
空间或时间预测产生待译码的块的预测性块。残余数据表示待译码的原始块与预测性块之间的像素差。根据指向形成预测性块的参考样本的块的运动向量来编码帧间译码块,且残余数据指示经译码块与预测性块之间的差异。根据帧内译码模式及残余数据来编码帧内译码块。为了进一步压缩,可将残余数据从像素域变换到变换域,从而产生残余系数,接着可对残余系数进行量化。最初布置成二维阵列的经量化系数可经扫描以便产生系数的一维向量,且可应用熵译码以达成甚至更多压缩。
可使用调色板模式编码并解码例如图像的内容。大体来说,调色板模式是涉及使用调色板表示内容的技术。内容可经编码以使得由包含对应于调色板的值的索引映射来表示内容。可解码索引映射以重建内容。
发明内容
本发明的技术涉及基于调色板的内容译码。举例来说,在基于调色板的内容译码中,内容译码器(例如,例如视频编码器或视频解码器的内容译码器)可形成作为色彩表的“调色板”以用于表示特定区域(例如,给定块)的视频数据。基于调色板的内容译码可(例如) 尤其可用于具有相对较小数目的色彩的视频数据的译码区域。内容译码器可针对像素中的一或多者而译码使像素与表示像素的色彩的调色板中的条目相关的调色板索引(例如,索引值)而非译码实际像素值(或其残差)。本发明中描述的技术可包含用于信号传送基于调色板的译码模式、发射调色板、导出调色板、导出非发射语法元素的值、发射基于调色板的译码映射及其它语法元素、预测调色板条目、调色板索引的译码游程、熵译码调色板信息及各种其它调色板译码技术中的一或多者的各种组合的技术。
在一个实例中,本发明描述解码视频数据的方法,其包括从经编码视频位流接收图片的经调色板模式编码的视频数据块;从经编码视频位流接收用于经调色板模式编码的视频数据块的经编码调色板模式信息,其中经编码调色板模式信息包含第一语法元素的多个实例及不同于第一语法元素的多个语法元素;在使用上下文模式解码不同于第一语法元素的多个语法元素之前使用旁路模式解码第一语法元素的多个实例;在使用旁路模式解码第一语法元素的多个实例之后使用上下文模式解码不同于第一语法元素的多个语法元素;及使用第一语法元素的经解码的多个实例及不同于第一语法元素的经解码的多个语法元素来解码经调色板模式编码的视频数据块。
在另一实例中,本发明描述用于解码视频数据的装置,所述装置包括经配置以存储视频数据的存储器;及与存储器通信的视频解码器,所述视频解码器经配置以:从经编码视频位流接收图片的经调色板模式编码的视频数据块;从经编码视频位流接收用于经调色板模式编码的视频数据块的经编码调色板模式信息,其中经编码调色板模式信息包含第一语法元素的多个实例及不同于第一语法元素的多个语法元素;在使用上下文模式解码不同于第一语法元素的多个语法元素之前使用旁路模式解码第一语法元素的多个实例;在使用旁路模式解码第一语法元素的多个实例之后使用上下文模式解码不同于第一语法元素的多个语法元素;及使用第一语法元素的经解码的多个实例及不同于第一语法元素的经解码的多个语法元素来解码经调色板模式编码的视频数据块。
在另一实例中,本发明描述其上存储有指令的非暂时性计算机可读存储媒体,所述指令在执行时使得一或多个处理器从经编码视频位流接收图片的经调色板模式编码的视频数据块;从经编码视频位流接收用于经调色板模式编码的视频数据块的经编码调色板模式信息,其中经编码调色板模式信息包含第一语法元素的多个实例及不同于第一语法元素的多个语法元素;在使用上下文模式解码不同于第一语法元素的多个语法元素之前使用旁路模式解码第一语法元素的多个实例;在使用旁路模式解码第一语法元素的多个实例之后使用上下文模式解码不同于第一语法元素的多个语法元素;及使用第一语法元素的经解码的多个实例及不同于第一语法元素的经解码的多个语法元素来解码经调色板模式编码的视频数据块。
在另一实例中,本发明描述编码视频数据的方法,所述方法包括确定视频数据块将以调色板模式译码;使用调色板模式将视频数据块编码成经编码位流,其中使用调色板模式编码视频数据块包括:产生用于视频数据块的调色板模式信息,其中调色板模式信息包含第一语法元素的多个实例及不同于第一语法元素的多个语法元素;在使用上下文模式将不同于第一语法元素的多个语法元素编码成经编码位流之前使用旁路模式将第一语法元素的多个实例编码成经编码位流;及在使用旁路模式将第一语法元素的多个实例编码成经编码位流之后使用上下文模式将不同于第一语法元素的多个语法元素编码成经编码位流。
在另一实例中,本发明描述用于编码视频数据的装置,所述装置包括经配置以存储视频数据的存储器;及与所述存储器通信的视频编码器,所述视频编码器经配置以:确定存储于存储器中的视频数据的块将以调色板模式编码;使用调色板模式将视频数据块编码成经编码位流,其中经配置以使用调色板模式编码视频数据块的视频编码器包括经配置以进行以下各者的视频编码器:产生用于视频数据块的调色板模式信息,其中调色板模式信息包含第一语法元素的多个实例及不同于第一语法元素的多个语法元素;在使用上下文模式将不同于第一语法元素的多个语法元素编码成经编码位流之前使用旁路模式将第一语法元素的多个实例编码成经编码位流;及在使用旁路模式将第一语法元素的多个实例编码成经编码位流之后使用上下文模式将不同于第一语法元素的多个语法元素编码成经编码位流。
下文在随附图式及描述中阐述本发明的一或多个实例的细节。本发明的其它特征、目标及优点将从描述及图式及权利要求书显而易见。
附图说明
图1是说明可利用本发明中所描述的技术的实例视频译码系统的框图。
图2是说明可执行本发明中所描述的技术的实例视频编码器的框图。
图3是说明可执行本发明中所描述的技术的实例视频解码器的框图。
图4是说明符合本发明的技术的确定用于基于调色板的视频译码的调色板条目的实例的概念图。
图5是说明符合本发明的技术的确定至用于像素的块的调色板的索引的实例的概念图。
图6是说明符合本发明的技术的确定最大上方复制游程长度、假设光栅扫描次序的实例的概念图。
图7是说明用于调色板模式的语法元素的译码次序的变化的表。
图8是说明符合本发明的用于基于调色板的视频译码的技术的用于解码视频数据的实例过程的流程图。
图9是说明符合本发明的用于基于调色板的视频译码的技术的用于编码视频数据的实例过程的流程图。
具体实施方式
本发明的方面是针对用于内容译码(例如,视频译码)的技术。特定地说,本发明描述用于内容数据(例如,视频数据)的基于调色板的译码的技术及用于调色板译码信息的基于上下文的自适应二进制算术译码(CABAC)的技术。在本发明的各种实例中,如下文更详细地描述,本发明的技术可针对以调色板模式预测或译码块以改良译码效率及/或降低编解码器复杂度的过程。举例来说,本发明描述关于调色板索引分组(例如先进的调色板索引分组)的技术。
在(例如,如D.Marpe、H.Schwarz及T.Wiegand,IEEE Trans.Cir.&Sys.VideoTech.,“H.264/AVC视频压缩标准中的基于上下文的自适应二进制算术译码”编号2003年7月 7日,卷13中所描述的)CABAC过程中,存在两个模式:(1)旁路模式及(2)上下文模式。在旁路模式中,不存在上下文更新过程。因此,旁路模式可通过采用硬件或ISA级并行度实现比基于上下文的模式更高的数据吞吐量。旁路模式的这一益处随着可经一起处理的旁路二进制数的数目的增大而变得更大。
在当前调色板模式译码设计中,如R.Joshi及J.Xu的“高效率视频译码(HEVC)屏幕内容译码:草案2”JCTVC-S1005中所描述的,在屏幕内容译码中,palette_index_idc 及palette_escape_val的语法元素经CABAC旁路模式译码且与经CABAC上下文模式译码的其它语法元素(例如,palette_run_msb_id_plus1)交错。本发明描述将经旁路模式译码的语法元素分组在一起的技术。如本文所使用,“经旁路模式译码”及“经上下文模式译码”分别可与“经旁路译码”及“经上下文译码”互换。
如本文所使用,术语“内容”的实例可改变成术语“视频”,且术语“视频”的实例可改变成术语“内容”。无论术语“内容”或“视频”是被用作形容词、名词还是词类的其它部分,情况都如此。举例来说,对“内容译码器”的参考还包含对“视频译码器”的参考,且对“视频译码器”的参考还包含对“内容译码器”的参考。类似地,对“内容”的参考还包含对“视频”的参考,且对“视频”的参考还包含对“内容”的参考。
如本文所使用,“内容”指代任何类型的内容。举例来说,“内容”可指代视频、屏幕内容、图像、任何图形内容、任何可显示内容或与其相对应的任何数据(例如,视频数据、屏幕内容数据、图像数据、图形内容数据、可显示内容数据及其类似者)。
如本文所使用,术语“视频”可指代屏幕内容、可移动内容、可以序列呈现的多个图像或与其相对应的任何数据(例如,屏幕内容数据、可移动内容数据、视频数据、图像数据及其类似者)。
如本文所使用,术语“图像”可指代单个图像、一或多个图像、对应于视频的多个图像中的一或多个图像、不对应于视频的多个图像中的一或多个图像、对应于视频的多个图像(例如,对应于视频的全部图像或对应于视频的不到全部图像)、单个图像的子部分、单个图像的多个子部分、对应于多个图像的多个子部分、一或多个图形基元、图像数据、图形数据及其类似者。
在传统视频译码中,假设图像为连续色调且在空间上平滑。基于这些假设,已开发例如基于块的变换、滤波及其它译码工具的各种工具,且这些工具已针对天然内容视频展示出良好效能。然而,在类似远程台式计算机、协同工作及无线显示器的应用中,计算机产生的屏幕内容可为待压缩的主要内容。这一类型的屏幕内容往往会具有离散色调、陡线及高对比度物件边界。可不再应用连续色调及平滑度的假设,且因此传统视频译码技术可在压缩内容(例如,屏幕内容)方面效率低下。
在基于调色板的视频译码的一个实例中,视频编码器可通过确定用于块的调色板(例如,明确地译码调色板、预测调色板或其组合),定位调色板中的条目以表示一或多个像素的值,及使用指示用于表示块的像素值的调色板中的条目的索引值来编码调色板及块两者而编码视频数据块。在一些实例中,视频编码器可在经编码位流中用信号发送调色板及/或索引值。继而,视频解码器可从经编码位流获得用于块的调色板,以及用于所述块的个别像素的索引值。视频解码器可使像素的索引值与调色板的条目相关以重建块的各种像素值。
举例来说,可假设视频数据的特定区域具有相对较小数目的色彩。视频译码器(例如,视频编码器或视频解码器)可译码(例如,编码或解码)所谓的“调色板”以表示特定区域的视频数据。调色板可表达为表示特定区域(例如,给定块)的视频数据的色彩或像素值的索引(例如,表)。视频译码器可译码索引,所述索引使一或多个像素值与调色板中的适当值相关。每一像素可与调色板中表示像素的色彩的条目相关联。举例来说,调色板可包含给定块中的最主要像素值。在一些情况下,最主要像素值可包含在所述块内最频繁地出现的一或多个像素值。另外,在一些情况下,视频译码器可应用临限值以确定是否应将像素值包含作为所述块中的最主要像素值中的一者。根据基于调色板的译码的各种方面,视频译码器可对指示当前块的像素值中的一或多者的索引值进行译码,而不是针对视频数据的当前块对实际像素值或其残余部分进行译码。在基于调色板的译码的情况下,索引值指示调色板中被用于表示当前块的个别像素值的对应条目。以上描述意欲提供基于调色板的视频译码的概述。
基于调色板的译码可特别适合于屏幕产生的内容译码或其中一或多个传统译码工具效率低下的其它内容。用于视频数据的基于调色板译码的技术可与一或多个其它译码技术(例如用于帧间或帧内预测性译码的技术)一起使用。举例来说,如下文更详细地描述,编码器或解码器或组合式编码器解码器(编解码器)可经配置以执行帧间及帧内预测性译码,以及基于调色板的译码。
在一些实例中,基于调色板的译码技术可经配置以与一或多个视频译码标准一起使用。举例来说,高效率视频译码(HEVC)为由ITU-T视频译码专家组(VCEG)及ISO/IEC 运动图片专家组(MPEG)的视频译码联合合作小组(JCT-VC)开发的新的视频译码标准。定案的HEVC标准文件于2013年4月由国际电信联盟(ITU)的电信标准化部门公开为“ITU-T H.265,系列H:视听服务的视听及多媒体系统基础设施——运动视频的译码——高效率视频译码(SERIES H:AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisualservices-Coding of moving video-High efficiency video coding)”。
为了提供屏幕产生内容的更有效译码,JCT-VC将开发延伸到HEVC标准(被称作HEVC屏幕内容译码(SCC)标准)。被称作“HEVC SCC草案2”或“WD2”的HEVC SCC 标准的新工作草案描述于R.Joshi及J.Xu的文件JCTVC-S1005“HEVC屏幕内容译码草案文字2”(ITU-TSG 16WP 3及ISO/IEC JTC 1/SC 29/WG 11的关于视频译码的联合合作小组(JCT-VC),第19次会议:法国,斯特拉斯堡,2014年10月17日到24日)。
就HEVC框架来说,作为实例,基于调色板的译码技术可经配置以用作译码单元(CU)模式。在其它实例中,基于调色板的译码技术可经配置以用作HEVC的框架中的预测单元(PU)模式。因此,在CU模式的上下文中描述的所有以下所公开的过程可另外或替代地适用于PU。然而,这些基于HEVC的实例不应被视为约束或限制本文中所描述的基于调色板的译码技术,因而,这些技术可经应用以独立地或作为其它现有或尚待开发的系统/标准的部分工作。在这些情况下,用于调色板译码的单元可为方形块、矩形块或甚至非矩形形状的区域。
在一些实例中,调色板可由一或多个CU、PU或数据的任何区域(例如,数据的任何块)导出。举例来说,调色板可包括(及可由以下者组成):当前CU中的最主要像素值,其中针对这一特定实例,CU为数据的区域。将调色板的大小及元件首先从视频编码器发射到视频解码器。可使用相邻CU(例如,上方及/或左方的经译码CU)中的调色板的大小及/或元件来直接译码或预测性地译码调色板的大小及/或元件。此后,根据特定扫描次序基于调色板来编码CU中的像素值。对于CU中的每一像素位置,旗标(例如, palette_flag或escape_flag)可首先被发射以指示像素值是否包含于调色板中。针对映射到调色板中的条目的那些像素值,针对CU中的给定像素位置用信号发送与那一条目相关联的调色板索引。对于调色板中并不存在的那些像素值,特殊索引可分配给像素且实际像素值(可能以经量化形式)可经发射以用于CU中的给定像素位置,而非发送旗标(例如, palette_flag或escape_flag)。这些像素被称作“逸出像素”。可使用任何现有熵译码方法(例如,固定长度译码,一元译码等)来译码逸出像素。在一些实例中,本文所描述的一或多个技术可利用例如palette_flag或escape_flag的旗标。在其它实例中,本文所描述的一或多种技术可不利用例如palette_flag或escape_flag的旗标。
视频数据块中的样本可使用水平光栅扫描次序或其它扫描次序进行处理(例如,扫描)。举例来说,视频编码器可通过使用水平光栅扫描次序扫描调色板索引而将调色板索引的二维块转换成一维阵列。同样,视频解码器可使用水平光栅扫描次序重建调色板索引的块。因此,本发明可将先前样本称作按扫描次序在块中当前经译码的样本之前的样本。应了解,除水平光栅扫描以外的扫描(例如,竖直光栅扫描次序)也可为可适用的。以上实例以及本发明中阐述的其它实例意图提供对基于调色板的视频译码的概述。
图1为说明可利用本发明的技术的实例视频译码系统10的框图。如本文所使用,术语“视频译码器”一般是指视频编码器及视频解码器两者。在本发明中,术语“视频译码”或“译码”一般可指视频编码或视频解码。视频译码系统10的视频编码器20及视频解码器30表示可经配置以执行根据本发明中描述的各种实例的用于基于调色板的视频译码及熵译码(例如,CABAC)的装置的实例。举例来说,视频编码器20及视频解码器30可经配置以使用基于调色板的译码或非基于调色板的译码选择地译码视频数据的各种块,例如HEVC译码中的CU或PU。非基于调色板的译码模式可指代各种帧间预测性时间译码模式或帧内预测性空间译码模式,例如由HEVC标准指定的各种译码模式。
如图1中所展示,视频译码系统10包含源装置12及目的地装置14。源装置12产生经编码视频数据。因此,源装置12可被称作视频编码装置或视频编码设备。目的地装置14可解码由源装置12所产生的经编码视频数据。因此,目的地装置14可被称作视频解码装置或视频解码设备。源装置12及目的地装置14可为视频译码装置或视频译码设备的实例。
源装置12及目的地装置14可包括广泛范围的装置,包含台式计算机、移动计算装置、笔记型(例如,膝上)计算机、平板计算机、机顶盒、例如所谓的“智能”电话的手持电话、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机(in-car computer)或其类似者。
目的地装置14可经由信道16从源装置12接收经编码视频数据。信道16可包括能够将经编码视频数据从源装置12移动到目的地装置14的一或多个媒体或装置。在一个实例中,信道16可包括使源装置12能够实时地将经编码视频数据直接发射到目的地装置14的一或多个通信媒体。在此实例中,源装置12可根据例如无线通信协议的通信标准来调制经编码视频数据,且可将经调制视频数据发射到目的地装置14。一或多个通信媒体可包含无线及/或有线通信媒体,例如射频(RF)频谱或一或多个物理发射线。一或多个通信媒体可形成基于分组的网络(例如局域网、广域网或全球网络(例如,因特网)的部分。一或多个通信媒体可包含路由器、交换器、基站,或促进从源装置12到目的地装置14的通信的其它设备。
在另一实例中,信道16可包含存储由源装置12所产生的经编码视频数据的存储媒体。在此实例中,目的地装置14可(例如)经由磁盘存取或卡存取而存取存储媒体。存储媒体可包含多种本地存取的数据存储媒体,例如蓝光光盘、DVD、CD-ROM、闪速存储器,或用于存储经编码视频数据的其它合适的数字存储媒体。
在又一实例中,信道16可包含存储由源装置12产生的经编码视频数据的文件服务器或另一中间存储装置。在此实例中,目的地装置14可经由流式传输或下载而存取存储于文件服务器或其它中间存储装置处的经编码视频数据。文件服务器可为能够存储经编码视频数据且将经编码视频数据发射到目的地装置14的类型的服务器。实例文件服务器包含网页服务器(例如,用于网站)、文件传送协议(FTP)服务器、网络附接存储(NAS) 装置及本地磁盘驱动器。
目的地装置14可经由标准数据连接(例如,因特网连接)来存取经编码视频数据。数据连接的实例类型可包含适合于存取存储于文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等),或两者的组合。经编码视频数据从文件服务器的发射可为流式传输发射、下载发射或两者的组合。
源装置12及目的地装置14可经配置以符合本发明执行基于调色板的译码及熵译码 (例如,CABAC)。然而,本发明用于基于调色板的译码或CABAC的技术不限于无线应用或设定。所述技术可适用于(例如)经由因特网支持多种多媒体应用(例如空中电视广播、有线电视发射、卫星电视发射、流式传输视频发射)的视频译码、用于存储于数据存储媒体上的视频数据的编码、存储于数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频译码系统10可经配置以支持单向或双向视频发射从而支持例如视频流式传输、视频播放、视频广播及/或视频电话的应用。
图1中所示的视频译码系统10仅为实例,且本发明的技术可适用于未必包含编码装置与解码装置之间的任何数据通信的视频译码设定(例如,视频编码或视频解码)。在其它实例中,从经由网络流式传输的本地存储器或类似者检索数据。视频编码装置可编码数据及将数据存储到存储器,及/或视频解码装置可从存储器检索数据及解码数据。在许多实例中,由彼此不通信但仅将数据编码到存储器及/或从存储器检索且解码数据的装置来执行编码及解码。
在图1的实例中,源装置12包含视频源18、视频编码器20及输出接口22。在一些实例中,输出接口22可包含调制器/解调器(调制解调器)及/或发射器。视频源18可包含例如摄像机的视频捕捉装置、含有先前所捕捉的视频数据的视频档案库、用以从视频内容提供者处接收视频数据的视频馈入接口及/或用于产生视频数据的计算机图形系统,或视频数据的这些来源的组合。
视频编码器20可编码来自视频源18的视频数据。在一些实例中,源装置12经由输出接口22将经编码视频数据直接发射到目的地装置14。在其它实例中,经编码视频数据还可存储于存储媒体或文件服务器上,以供目的地装置14稍后存取以用于解码及/ 或播放。
在图1的实例中,目的地装置14包含输入接口28、视频解码器30及显示装置32。在一些实例中,输入接口28包含接收器及/或调制解调器。输入接口28可经由信道16 接收经编码视频数据。显示装置32可与目的地装置14集成或在目的地装置14外部。一般来说,显示装置32显示经解码视频数据。显示装置32可包括各种显示装置,例如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器,或另一类型的显示装置。
本发明通常可指代视频编码器20将某些信息“用信号发送”或“发射”到另一装置,例如,视频解码器30。术语“用信号发送”或“发射”可大体上指代用于解码经压缩视频数据的语法元素及/或其它数据的通信。此通信可实时地或近实时地发生。替代地,可历时一时间跨度而发生此通信,例如此通信可在编码时间处将语法元素以经编码位流存储到计算机可读存储媒体时发生,所述语法元素随后可由解码装置在存储于此媒体之后的任何时间进行检索。因此,虽然视频解码器30可被称作“接收”某些信息,但信息的接收未必实时或接近实时发生且可在存储之后在某一时间从媒体检索。
视频编码器20及视频解码器30各自可实施为多种合适电路中的任一者,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施技术,那么装置可将用于软件的指令存储于合适的非暂时性计算机可读存储媒体中,且可使用一或多个处理器在硬件中执行所述指令以执行本发明的技术。可将上述内容(包含硬件、软件、硬件与软件的组合等)中的任一者视为一或多个处理器。视频编码器20及视频解码器30中的每一者可包含于一或多个编码器或解码器中,编码器或解码器中的任一者可在对应装置中集成为组合式编码器/解码器(编解码器(CODEC))的部分。
在一些实例中,视频编码器20及视频解码器30根据例如上文所提及的HEVC标准且在HEVC标准中描述的视频压缩标准操作。除了基本HEVC标准之外,正持续努力产生用于HEVC的可伸缩视频译码、多视图视频译码及3D译码扩展。另外,可提供基于调色板的译码模式(例如,如本发明中所描述)以用于扩展HEVC标准。在一些实例中,本发明中针对基于调色板的译码而描述的技术可适用于经配置以根据其它视频译码标准操作的编码器及解码器。因此,出于实例的目的而描述用于HEVC编解码器中的译码单元(CU)或预测单元(PU)的译码的基于调色板的译码模式的应用。
在HEVC及其它视频译码标准中,视频序列通常包括一系列图片。图片还可被称作“帧”。图片可包括三个样本阵列,标示为SL、SCb及SCr。SL为明度样本的二维阵列(即,块)。SCb为Cb彩度样本的二维阵列。SCr为Cr彩度样本的二维阵列。彩度样本在本文中还可被称作“色度”样本。在其它情况下,图片可为单色的,且可仅包括明度样本阵列。
为产生图片的经编码表示,视频编码器20可产生译码树型单元(CTU)的集合。CTU中的每一者可为明度样本的译码树型块、色度样本的两个对应译码树型块,及用以对所述译码树型块的样本进行译码的语法结构。译码树型块可为样本的N×N块。CTU还可被称作“树型块”或“最大译码单元”(LCU)。HEVC的CTU可广泛地类似于例如 H.264/AVC的其它标准的宏块。然而,CTU未必限于特定大小且可包含一或多个译码单元(CU)。切片可包含在光栅扫描中连续排序的整数数目个CTU。经译码切片可包括切片标头及切片数据。切片的切片标头可为包含提供关于切片的信息的语法元素的语法结构。切片数据可包含切片的经译码CTU。
本发明可使用术语“视频单元”或“视频块”或“块”以指代一或多个样本块及用于对样本的所述一或多个块的样本进行译码的语法结构。视频单元或块的实例类型可包含CTU、CU、PU、变换单元(TU)、宏块、宏块分区等等。在一些情形中,PU的论述可与宏块或宏块分区的论述互换。
为产生经译码CTU,视频编码器20可对CTU的译码树型块递归地执行四分树分割,以将译码树型块划分成译码块,因此命名为“译码树型单元”。译码块为样本的N×N块。 CU可为图片的明度样本的译码块及色度样本的两个对应译码块,所述图片具有明度样本阵列、Cb样本阵列及Cr样本阵列,以及用以译码所述译码块的样本的语法结构。视频编码器20可将CU的译码块分割成一或多个预测块。预测块可为应用相同预测的样本的矩形(即,正方形或非正方形)块。CU的预测单元(PU)可为图片的明度样本的预测块,图片的色度样本的两个对应预测块,及用以对预测块样本进行预测的语法结构。视频编码器20可针对CU的每一PU的明度预测块、Cb预测块及Cr预测块产生预测性明度块、预测性Cb块及预测性Cr块。
视频编码器20可使用帧内预测或帧间预测,以产生PU的预测性块。如果视频编码器20使用帧内预测产生PU的预测性块,那么视频编码器20可基于与PU相关联的图片的经解码样本而产生PU的预测性块。
如果视频编码器20使用帧间预测以产生PU的预测性块,那么视频编码器20可基于除与PU相关联的图片外的一或多个图片的经解码样本来产生PU的预测性块。视频编码器20可使用单向预测或双向预测以产生PU的预测性块。当视频编码器20使用单向预测来产生PU的预测性块时,PU可具有单一运动向量(MV)。当视频编码器20使用双向预测来产生PU的预测性块时,PU可具有两个MV。
在视频编码器20产生CU的一或多个PU的预测性块(例如,预测性明度块、预测性Cb块及预测性Cr块)之后,视频编码器20可产生CU的残余块。CU的残余块中的每一样本可指示CU的PU的预测性块中的样本与CU的译码块中的对应样本之间的差异。举例来说,视频编码器20可产生CU的明度残余块。CU的明度残余块中的每一样本指示CU的预测性明度块中的一者中的明度样本与CU的原始明度译码块中的对应样本之间的差异。另外,视频编码器20可产生用于CU的Cb残余块。CU的Cb残余块中的每一样本可指示CU的预测性Cb块中的一者中的Cb样本与CU的原始Cb译码块中的对应样本之间的差异。视频编码器20还可产生用于CU的Cr残余块。CU的Cr残余块中的每一样本可指示CU的预测性Cr块中的一者中的Cr样本与CU的原始Cr译码块中的对应样本之间的差异。
此外,视频编码器20可使用四分树分割将CU的残余块(例如,明度残余块、Cb残余块及Cr残余块)分解成一或多个变换块(例如,明度变换块、Cb变换块及Cr变换块)。变换块可为应用相同变换的样本的矩形块。CU的变换单元(TU)可为明度样本的变换块、色度样本的两个对应变换块,及用以对变换块样本进行变换的语法结构。因此,CU的每一TU可与明度变换块、Cb变换块及Cr变换块相关联。与TU相关联的明度变换块可为CU的明度残余块的子块。Cb变换块可为CU的Cb残余块的子块。Cr变换块可为 CU的Cr残余块的子块。
视频编码器20可将一或多个变换应用于变换块以产生TU的系数块。系数块可为变换系数的二维阵列。变换系数可为纯量。举例来说,视频编码器20可将一或多个变换应用于TU的明度变换块以产生TU的明度系数块。视频编码器20可将一或多个变换应用于TU的Cb变换块以产生TU的Cb系数块。视频编码器20可将一或多个变换应用于TU的Cr变换块以产生TU的Cr系数块。
在产生系数块(例如,明度系数块、Cb系数块或Cr系数块)之后,视频编码器20可量化所述系数块。量化通常指代对变换系数进行量化以可能减少用以表示变换系数的数据的量,从而提供进一步压缩的过程。在视频编码器20量化系数块之后,视频编码器 20可熵编码指示经量化的变换系数的语法元素。举例来说,视频编码器20可对指示经量化变换系数的语法元素执行上下文自适应二进制算术译码(CABAC)。
就CABAC来说,作为实例,视频编码器20及视频解码器30可选择概率模型(也被称作上下文模型)以基于上下文对与视频数据的块相关联的符号进行译码。举例来说,上下文模型(Ctx)可为应用于选择多个不同上下文中的一者的索引或差量,所述上下文中的每一者可对应于特定概率模型。因此,不同概率模型通常针对每一上下文来定义。在编码或解码二进制之后,概率模型基于二进制的值经进一步更新以反映对二进制的最新概率评估。举例来说,概率模型可作为有限状态机中的状态得以维持。每一特定状态可对应于特定可能性值。对应于概率模型的更新的下一状态可取决于当前二进制(例如,当前经译码的二进制)的值。因此,概率模型的选择可受先前经译码二进制的值的影响,因为所述值至少部分指示二进制具有给定值的概率。上文所描述的上下文译码过程可通常被称作上下文自适应译码模式。
因此,视频编码器20可使用概率模型对目标符号进行编码。同样地,视频解码器30可使用概率模型剖析目标符号。在一些情况下,视频编码器20可使用上下文自适应译码与非上下文自适应译码的组合来译码语法元素。举例来说,视频编码器20可通过选择对上下文操作以对一些二进制进行译码的概率模型或“上下文模型”来二进制进行上下文译码。对比来说,对于其它二进制,视频编码器20可通过当译码二进制时绕过或省略常规算术译码过程而对二进制进行旁路译码。在这些实例中,视频编码器20可使用固定概率模型来对二进制进行旁路译码。也就是说,经旁路译码的二进制不包含上下文或概率更新。
视频编码器20可输出包括经熵编码的语法元素的位流。位流还可包含未经熵编码的语法元素。所述位流可包含形成经译码图片及相关联数据的表示的位的序列。位流可包括网络抽象层(NAL)单元的序列。NAL单元中的每一者包含NAL单元标头,且封装原始字节序列有效负载(RBSP)。NAL单元标头可包含指示NAL单元类型码的语法元素。通过NAL单元的NAL单元标头指定的NAL单元类型码指示NAL单元的类型。RBSP 可为含有封装于NAL单元内的整数数目个字节的语法结构。在一些情况下,RBSP包含零位。
不同类型的NAL单元可封装不同类型的RBSP。举例来说,第一类型的NAL单元可封装图片参数集(PPS)的RBSP,第二类型的NAL单元可封装经译码切片的RBSP,第三类型的NAL单元可封装补充增强信息(SEI)的RBSP,等等。封装视频译码数据的RBSP (如与参数集及SEI讯息的RBSP相对)的NAL单元可被称作视频译码层(VCL)NAL单元。
视频解码器30可接收由视频编码器20产生的位流。此外,视频解码器30可剖析位流以从位流解码语法元素。视频解码器30可至少部分基于从位流解码的语法元素而重建视频数据的图片。重建视频数据的过程可大体上与由视频编码器20执行的过程互逆。举例来说,视频解码器30可使用PU的MV来确定当前CU的经帧间预测PU的预测性块。同样地,视频解码器30可产生当前CU的PU的经帧内预测块。另外,视频解码器30可对与当前CU的TU相关联的变换系数块进行反量化。视频解码器30可对变换系数块执行反变换,以重建与当前CU的TU相关联的变换块。视频解码器30可通过将当前CU的PU的预测性块的样本添加到从当前CU的TU的变换块的反量化及反变换所获得的对应残余值来重建当前CU的译码块。通过重建图片的每一CU的译码块,视频解码器30可重建图片。
在一些实例中,视频编码器20及视频解码器30可经配置以执行基于调色板的译码。举例来说,在基于调色板的译码中,视频编码器20及视频解码器30可将所谓的调色板译码为表示特定区域(例如,给定块)的视频数据的色彩或像素值的表,而不是执行上文所描述的帧内预测或帧间预测译码技术。以此方式,视频译码器可对当前块的像素值中的一或多者的索引值进行译码,而不是对视频数据的当前块的实际像素值或其残差进行译码,其中所述索引值指示调色板中用于表示当前块的像素值的条目。
举例来说,视频编码器20可通过确定用于块的调色板、定位调色板中的条目以表示每一像素的值及对调色板及像素的使像素值与调色板相关的索引值进行编码而对视频数据的块进行编码。视频解码器30可从经编码位流获得用于块的调色板,以及块的像素的索引值。视频解码器30可将个别像素的索引值与调色板的条目匹配以重建块的像素值。在与个别像素相关联的索引值不匹配块的对应调色板的任何索引值的情况下,出于基于调色板的译码的目的,视频解码器30可将这一像素识别为逸出像素。
如下文更详细地描述,基于调色板的译码的基本构想为:对于待译码的视频数据的给定块,视频编码器20可导出包含当前块中的最主要像素值的调色板。举例来说,调色板可指经确定或假设为当前CU的主要及/或代表的数个像素值。视频编码器20可首先将调色板的大小和元件发射到视频解码器30。另外,视频编码器20可根据特定扫描次序对给定块中的像素值进行编码。对于包含于给定块中的每一像素,视频编码器20 可用信号发送将像素值映射到调色板中的对应条目的索引值。如果像素值并不包含于调色板中(即,不存在指定经调色板译码的块的特定像素值的调色板条目),那么所述像素被定义为“逸出像素”。根据基于调色板的译码,视频编码器20可编码且用信号发送经保留以用于逸出像素的索引值。在一些实例中,视频编码器20还可编码及用信号发送包含于给定块中的逸出像素的像素值(或其经量化版本)。举例来说,视频解码器30可经配置以基于失真度量(例如,MSE,SAD及其类似者)确定像素值是否匹配或以其它方式接近调色板条目。
一旦接收到由视频编码器20用信号发送的经编码视频位流,视频解码器30可首先基于从视频编码器20接收的信息确定调色板。视频解码器30可接着将与给定块中的像素位置相关联的所接收到的索引值映射到调色板的条目,以重建给定块的像素值。在一些情况下,视频解码器30可确定经调色板译码块的像素为逸出像素,例如,通过确定像素由经保留以用于逸出像素的索引值而经调色板译码。在视频解码器30识别经调色板译码块中的逸出像素的情况下,视频解码器30可接收包含于给定块中的逸出像素的像素值(或其经量化版本)。视频解码器30可通过将个别像素值映射到对应调色板条目且通过使用像素值(或其经量化版本)而重建经调色板译码块,以重建包含于经调色板译码块中的任何逸出像素。
如上文所陈述,在实例调色板译码模式中,调色板可包含由索引编号的条目。每一条目可表示色彩分量值或强度(例如,在例如YCbCr、RGB、YUV、CMYK或其它格式的色彩空间中),所述值或强度可用作块的预测符或经最终重建的块样本。如标准提交文件JCTVC-Q0094(Wei Pu等人,“AHG10:用于基于RExt6.0的调色板译码的建议软件 (SuggestedSoftware for Palette Coding based on RExt6.0)”JCTVC-Q0094,西班牙巴伦西亚市,2014年3月27日到2014年4月4日)中所描述,调色板可包含从预测符调色板复制的条目。预测符调色板可包含来自先前使用调色板模式译码的块或来自其它经重建样本的调色板条目。对于预测符调色板中的每一条目,发送二进制旗标以指示条目是否被复制到当前调色板(由旗标=1指示)。此被称作二进制调色板预测向量。另外,当前调色板可包括经明确用信号发送的新条目(例如,由经明确用信号发送的新条目组成)。还可用信号发送新条目的数目。
作为另一实例,在调色板模式中,调色板可包含由表示色彩分量值的索引编号的条目,所述色彩分量值可被用作块样本的预测符或经最终重建的块样本。调色板中的每一条目可含有(例如)一个明度分量(例如,明度值)、两个色度分量(例如,两个色度值)或三个色彩分量(例如,RGB、YUV等)。先前经解码的调色板条目可存储于列表中。举例来说,此列表可用于预测在当前调色板模式CU中的调色板条目。二进制预测向量可以位流经用信号发送以指示列表中的哪些条目再用于当前调色板中。在一些实例中,游程长度译码可用于压缩二进制调色板预测符。举例来说,可使用0阶指数哥伦布码 (Exp-Golomb code)来对游程长度值进行译码。
在本发明中,将假设每一调色板条目指定样本的所有色彩分量的值。然而,本发明的概念适用于使用每一色彩分量的独立调色板及/或独立调色板条目。并且,假设使用水平光栅扫描次序处理块中的样本。然而,例如竖直光栅扫描次序的其它扫描也可适用。如上文所提及,调色板可含有经预测调色板条目((例如)从用于对前述块进行译码的调色板预测的)及对当前块具专一性且明确地经用信号发送的新条目。编码器及解码器可知晓经预测及新调色板条目的数目且其总和可指示块中的总调色板大小。
如上文所引用的JCTVC-Q0094的实例中所提出的,使用调色板译码的块中的每一样本可属于三个模式中的一者,如下文所阐述:
●逸出模式。在此模式中,样本值并未作为调色板条目包含到调色板中,且对于所有色彩分量,明确地用信号发送经量化的样本值。所述情形类似于新调色板条目的用信号发送,尽管对于新调色板条目,并不将色彩分量值量化。
●CopyAbove模式(还被称作CopyFromTop模式)。在此模式中,从位于样本的块中的当前样本正上方的样本复制当前样本的调色板条目索引。在其它实例中,对于上方复制模式,视频数据块可经转置以使得块上方的样本实际上为块左边的样本。
●值模式(还被称作索引模式)。在此模式中,明确地用信号发送调色板条目索引的值。
如本文所描述,调色板条目索引可被称作调色板索引或简称为索引。这些术语可互换地使用以描述本发明的技术。另外,如下文更详细地描述,调色板索引可具有一或多个相关联的色彩或强度值。举例来说,调色板索引可具有与像素的单一色彩或强度分量 (例如,RGB数据的红色分量、YUV数据的Y分量,或其类似者)相关联的单一相关联的色彩或强度值。在另一实例中,调色板索引可具有多个相关联的色彩或强度值。在一些情况下,可应用基于调色板的视频译码来对单色视频进行译码。因此,“色彩值”大体上可指用以产生像素值的任何色彩或非彩色分量。
游程值可指示使用相同的调色板译码模式译码的调色板索引的游程。举例来说,关于值模式,视频译码器(例如,视频编码器20或视频解码器30)可对索引值及指示扫描次序中具有相同索引值且使用调色板索引进行译码的多个连续后续样本的游程值进行译码。关于CopyAbove模式,视频译码器可对当前样本值的索引值与上方相邻样本的索引值相同(例如,定位于所述样本上方的样本当前在块中经译码)的指示及指示扫描次序中也从上方相邻样本复制索引值的多个连续后续样本的游程值进行译码。因此,在上述实例中,调色板索引值的游程是指具有相同值的调色板值的游程或从上方相邻样本复制的索引值的游程。
因此,游程可针对给定模式指定属于相同模式的后续样本的数目。在一些情况下,用信号发送索引值及游程值可与游程长度译码相似。在出于说明的目的的实例中,对应于视频数据块的索引块的连续调色板索引值的字串可为0,2,2,2,2,5。每一索引值对应于视频数据块中的样本。在此实例中,视频译码器可使用值模式对第二样本(例如,“2”的第一调色板索引值)进行译码。在对2的索引值进行译码之后,视频译码器可对3的游程进行译码,所述游程指示三个后续样本也具有相同的2的调色板索引值。以类似方式,在使用CopyAbove模式对索引进行译码之后对四个调色板索引的游程进行译码可指示:从当前经译码的样本位置上方的行中的对应调色板索引值复制总共五个调色板索引。
使用调色板,视频编码器20及/或视频解码器30可经配置以将样本的块(例如,视频数据的块)译码成索引块,其中索引块为包含映射到一或多个调色板条目的索引值及在一些实例中的一或多个逸出像素值的块。视频编码器20可经配置以对索引块进行熵编码以压缩索引块。类似地,视频解码器30可经配置以对经编码索引块进行熵解码以产生索引块,视频解码器30可从所述索引块产生样本的块(例如,由编码器20编码的视频数据块)。举例来说,基于游程长度的熵译码可用于压缩与解压缩索引块。在一些实例中,视频编码器20及视频解码器30可经配置以分别使用CABAC来对索引块进行熵编码及解码。
为将CABAC译码应用于信息(例如,语法元素、例如索引块的索引值的索引块或其它信息),视频译码器(例如,视频编码器20及视频解码器30)可对信息执行二进制化。二进制化指代将信息转换成一系列一或多个位的过程。一或多个位的每个系列可被称为“二进制”。二进制化为无损过程且可包含以下译码技术中的一个或组合:固定长度译码、一元译码、截断的一元译码、截断的莱斯(Rice)译码、哥伦布译码、指数哥伦布译码、哥伦布-莱斯译码、哥伦布译码的任一形式、莱斯译码的任一形式及熵译码的任一形式。举例来说,二进制化可包含使用8位固定长度技术将整数值5表示成00000101,或者使用一元译码技术将整数值5表示成11110。
在二进制化之后,视频译码器可识别译码上下文。译码上下文可识别译码具有特定值的二进制数的概率。举例来说,译码上下文可指示对0值二进制进行译码的0.7概率,以及对1值二进制进行译码的0.3概率。在识别译码上下文之后,视频译码器可基于上下文算术地译码二进制,此已知为上下文模式译码。使用CABAC上下文模式译码而译码的二进制可被称作“上下文二进制”。
此外,视频译码器(例如,视频编码器20及视频解码器30)可使用旁路CABAC译码(例如,旁路模式译码)来译码一些二进制,而非对所有二进制执行上下文模式译码。旁路模式译码指代不使用自适应上下文(例如,译码上下文)而算术地译码二进制的过程。也就是说,旁路译码引擎不选择上下文,并且可假设两个符号(0和1)的概率都为0.5。虽然旁路模式译码的带宽效率可不如上下文模式译码,但是在对二进制执行旁路模式译码而不是对二进制执行上下文模式译码时可能在计算方面成本较低。此外,执行旁路模式译码可允许较高的并行化度及吞吐量。使用旁路模式译码而译码的二进制可被称作“旁路二进制”。
视频编码器20及视频解码器30可经配置具有CABAC译码器(例如,分别为CABAC 编码器及CABAC解码器)。CABAC译码器可包含用以执行CABAC上下文模式译码的上下文模式译码引擎及用以执行旁路模式译码的旁路模式译码引擎。如果二进制经上下文模式译码,那么上下文模式译码引擎用于对此二进制进行译码。上下文模式译码引擎可需要多于两个处理周期来对单个二进制进行译码。然而,由于恰当的管线设计,上下文模式译码引擎可仅需要n+M周期以对n个二进制进行编码,其中M为起始管线的额外负荷。M通常大于0。
在CABAC译码过程开始时(即,从旁路模式到上下文模式的每次转换且反之亦然),引入管线额外负荷。如果二进制经旁路模式译码,那么旁路模式译码引擎用于对此二进制进行译码。旁路模式译码引擎可预计仅需要一个周期来对n位信息进行,其中n可大于一。因此,如果旁路二进制及上下文二进制的集合内的所有旁路二进制经一起译码且所述集合内的所有上下文二进制经一起译码,那么对旁路二进制及上下文二进制的集合进行译码的周期的总数可减少。特定来说,在转变到上下文模式译码之前或之后将旁路二进制一起译码可节省重新启动上下文模式译码引擎所需要的额外负荷。举例来说,当分别使用调色板模式对视频数据块进行编码或解码时,视频编码器20及视频解码器30 可经配置以在旁路模式到上下文模式之间切换。在另一实例中,视频编码器20及视频解码器30可经配置以减少当使用调色板模式对视频数据块进行编码或解码时编码或解码过程在旁路模式到上下文模式之间切换的次数。
本发明中描述的技术可包含用于用信号发送基于调色板的视频译码模式,发射调色板,导出调色板,用信号发送扫描次序,导出扫描次序,及发射基于调色板的视频译码映射及其它语法元素中的一或多者的各种组合的技术。举例来说,本发明的技术可针对熵译码调色板信息。在一些实例中,本发明的技术可尤其用于提高译码效率并降低与基于调色板的视频译码相关联的译码低效率。因此,如下文更详细描述,在一些情况下,当使用调色板模式译码视频数据时,本发明的技术可改良效率及改良位率。
如上文所描述,在屏幕内容译码中的当前调色板模式设计中,palette_index_idc及 palette_escape_val的语法元素经CABAC旁路译码,且与经CABAC上下文译码的其它语法元素(例如,palette_run_msb_id_plus1)交错。然而,将经旁路译码的信息(例如,语法元素)分组在一起可为有益的,这可改良译码效率及/或降低编解码器复杂度。
例如如JCTVC-S1005中所定义,palette_index_idc的语法元素可为对表示为currentPaletteEntries的阵列的索引的指示。palette_index_idc的值可在0到(adjustedIndexMax-1)(包含性的)的范围内。例如如JCTVC-S1005中所定义, palette_escape_val的语法元素可指定分量的经量化逸出经译码样本值。例如如 JCTVC-S1005中所定义,palette_run_msb_id_plus1减1可指定paletteRun的二进制表示中的最高有效位的索引。例如如JCTVC-S1005中所定义,当palette_run_type_flag等于COPY_ABOVE_MODE时,可变paletteRun可指定具有与上述行中位置相同的调色板索引的连续位置减1的数目,或当palette_run_type_flag等于COPY_INDEX_MODE时指定具有相同调色板索引的连续位置减1的数目。关于palette_index_idc、 palette_escape_val、palette_run_msb_id_plus1、currentPaletteEntries、adjustedIndexMax 及paletteRun的额外细节可见于JCTVC-S1005中。
在一些实例中,本发明描述在调色板索引块译码部分的前面分组所有语法元素palette_index_idc以改良CABAC吞吐量的方法。举例来说,视频编码器20可经配置以在调色板索引块译码部分前面编码所有语法元素palette_index_idc。举例来说,视频编码器20可经配置以在对待经上下文模式编码的语法元素进行编码之前对所有语法元素 palette_index_idc进行编码。类似地,视频解码器30可经配置以在调色板索引块译码部分前面对所有语法元素palette_index_idc进行解码。举例来说,视频解码器30可经配置以在对经上下文模式编码的语法元素进行解码之前对所有语法元素palette_index_idc 进行解码。
作为另一实例,视频编码器20可经配置以在调色板索引块译码部分前面对所有语法元素palette_index_idc进行旁路模式编码,以使得在对关于调色板游程类型(例如,CopyAbove模式或索引模式)及/或游程长度(例如,palette_run_msb_id_plus1)的语法元素进行编码之前对所有语法元素palette_index_idc进行编码。类似地,视频解码器30可经配置以在块的调色板索引块译码部分前面对块的所有语法元素palette_index_idc进行解码,以使得在对关于调色板游程类型(例如,CopyAbove模式或索引模式)及/或游程长度(例如,palette_run_msb_id_plus1)的语法元素进行解码之前对所有语法元素 palette_index_idc进行解码。
关于调色板游程类型(例如,CopyAbove模式或索引模式)及/或游程长度(例如,palette_run_msb_id_plus1)的语法元素
作为另一实例,实例视频编码器20可经配置以在对关于调色板游程类型(例如,CopyAbove模式或索引模式)及/或游程长度(例如,palette_run_msb_id_plus1)的语法元素进行上下文编码之前对所有语法元素palette_index_idc进行编码。类似地,视频解码器30可经配置以在对关于调色板游程类型(例如,CopyAbove模式或索引模式)及/或游程长度(例如,palette_run_msb_id_plus1)的语法元素进行上下文解码之前对所有语法元素palette_index_idc进行解码。
作为另一实例,视频编码器20可经配置以在对待经上下文模式编码的语法元素进行编码之前对调色板块译码部分内的所有语法元素palette_index_idc进行编码。类似地,视频解码器30可经配置以在解码经上下文模式编码的语法元素之前解码调色板块译码部分内的所有语法元素palette_index_idc。作为另一实例,视频编码器20可经配置以在对关于调色板游程类型(例如,CopyAbove模式或索引模式)及/或游程长度(例如,palette_run_msb_id_plus1)的语法元素进行上下文编码之前对调色板块译码部分内的所有语法元素palette_index_idc进行编码。类似地,视频解码器30可经配置以在对关于调色板游程类型(例如,CopyAbove模式或索引模式)及/或游程长度(例如, palette_run_msb_id_plus1)的语法元素进行上下文解码之前对调色板块译码部分内的所有语法元素palette_index_idc进行解码。
大体来说,视频编码器20及视频解码器30可经配置以使以分别使用上下文模式编码或解码语法元素的旁路模式而编码或解码palette_index_idc不交错。举例来说,视频编码器20及视频解码器30可经配置以使以分别使用上下文模式编码或解码关于调色板游程类型(例如,CopyAbove模式或索引模式)及/或游程长度(例如, palette_run_msb_id_plus1)的语法元素的旁路模式而编码或解码palette_index_idc不交错。作为另一实例,视频编码器20可经配置以在对需要上下文模式的语法元素进行上下文编码之前对palette_index_idc语法元素的所有实例进行旁路编码。类似地,视频解码器30可经配置以在对需要上下文模式的语法元素进行上下文解码之前对 palette_index_idc语法元素的所有实例进行旁路解码。作为另一实例,视频编码器20 可经配置以在对关于调色板游程类型(例如,CopyAbove模式或索引模式)及/或游程长度 (例如,palette_run_msb_id_plus1)的语法元素进行上下文编码之前对语法元素 palette_index_idc的所有实例进行旁路编码。类似地,视频解码器30可经配置以在对关于调色板游程类型(例如,CopyAbove模式或索引模式)及/或游程长度(例如, palette_run_msb_id_plus1)的语法元素进行上下文解码之前对palette_index_idc语法元素的所有实例进行旁路解码。
视频编码器20及视频解码器30还可分别编码及解码表示palette_index_idc的出现次数的值。视频编码器20及视频解码器30可使用表示palette_index_idc的出现次数的值以分别编码或解码语法元素palette_index_idc中的每一者。本发明中描述的技术还可消除调色板游程长度相关的语法元素的冗余,且消除palette_run_type_flag及 palette_index_idc的冗余。
在一些实例中,本发明描述在块(例如,PU或CU)的调色板索引块译码部分前面分组所有语法元素palette_escape_val以改良CABAC吞吐量的方法。举例来说,视频编码器20可经配置以在块的调色板索引块译码部分前面编码所有语法元素 palette_escape_val。举例来说,视频编码器20可经配置以在调色板索引块译码部分前面对所有语法元素palette_escape_val进行旁路模式编码以使得在对关于调色板游程类型(例如,CopyAbove模式或索引模式)及/或游程长度(例如,palette_run_msb_id_plus1) 的语法元素进行编码之前对所有语法元素palette_escape_val进行编码。类似地,视频解码器30可经配置以在块的调色板索引块译码部分前面对块的所有语法元素 palette_escape_val进行解码以使得在对关于调色板游程类型(例如,CopyAbove模式或索引模式)及/或游程长度(例如,palette_run_msb_id_plus1)的语法元素进行解码之前对所有语法元素palette_escape_val进行解码。作为另一实例,视频编码器20可经配置以在对待经上下文模式编码的语法元素进行编码之前对所有语法元素palette_escape_val进行编码。举例来说,视频编码器20可经配置以在对关于调色板游程类型(例如, CopyAbove模式或索引模式)及/或游程长度(例如,palette_run_msb_id_plus1)的语法元素进行上下文编码之前对所有语法元素palette_escape_val进行编码。类似地,视频解码器30可经配置以在块的调色板索引块译码部分前面对所有语法元素palette_escape_val 进行解码。举例来说,视频解码器30可经配置以在对块中的经上下文模式编码的语法元素进行解码之前对所有语法元素palette_escape_val进行解码。
作为另一实例,视频编码器20可经配置以在对待经上下文模式编码的语法元素进行编码之前对块的调色板块译码部分内的所有语法元素palette_escape_val进行编码。类似地,视频解码器30可经配置以在对块的经上下文模式编码的语法元素进行解码之前对块的调色板块译码部分内的所有语法元素palette_escape_val进行解码。
大体来说,视频编码器20及视频解码器30可经配置以使以分别针对块使用上下文模式编码或解码语法元素的旁路模式而编码或解码块(例如,PU或CU)的 palette_escape_val不交错。举例来说,视频编码器20及视频解码器30可经配置以使以分别使用上下文模式编码或解码关于调色板游程类型(例如,CopyAbove模式或索引模式)及/或游程长度(例如,palette_run_msb_id_plus1)的语法元素的旁路模式而编码或解码 palette_escape_val不交错。作为另一实例,视频编码器20可经配置以在对需要上下文模式的语法元素进行上下文编码之前对块的palette_escape_val语法元素的所有实例进行旁路编码。类似地,视频解码器30可经配置以在对需要块的上下文模式的语法元素进行上下文解码之前对块(例如,PU或CU)的palette_escape_val语法元素的所有实例进行旁路解码。
视频编码器20及视频解码器30还可分别对表示块的palette_escape_val的出现次数的值进行编码及解码。视频编码器20及视频解码器30可使用表示palette_escape_val的出现次数的值以分别对块的语法元素palette_escape_val中的每一者进行编码或解码。本发明中描述的技术可减小块的palette_index_idc的动态范围,这可产生改良的译码效率。
可以任何组合或与彼此独立而结合彼此从而利用本文所描述的技术、方面及/或实例。举例来说,视频编码器20及视频解码器30可经配置以执行本文所描述的技术、方面及/或实例中的一或多者的任一个或任何合适的组合。
在一些实例中,如上文所描述,为改良CABAC吞吐量,视频译码器(例如,视频编码器20)可经配置以分组语法元素palette_index_idc的所有出现。举例来说,视频译码器(例如,视频编码器20)可经配置以在当前块的索引译码部分前面分组当前块(例如,PU 或CU)中的语法元素palette_index_idc的所有出现。类似地,如上文所描述,视频解码器(例如,视频解码器30)可经配置以解码所有语法元素palette_index_idc。图7说明其中视频编码器20可经配置以(例如)关于R.Joshi及J.Xu“高效率视频译码(HEVC)屏幕内容译码:草案2”JCTVC-S1005,7.3.3.8部分,在索引译码块前面分组当前块(例如,CU) 中的语法元素palette_index_idc的所有出现的一个实例。本发明的此方面被称作方面1。具体来说,图7说明将语法元素palette_index_idc的实例重新定位于索引译码块前面(也可被称作调色板块译码部分或索引译码块的前面)的视频编码器20的实例。通过重新定位所说明的语法元素palette_index_idc的所说明的实例,视频编码器20可经配置以通过使用旁路模式语法元素palette_index_idc的所有实例进行译码及切换到上下文模式以对在索引译码块中的语法元素palette_index_idc的所有实例经旁路模式编码之后发生的调色板信息进行译码从而改良CABAC吞吐量。
根据JCTVC-S1005的公开,将以旁路模式译码palette_index_idc的一个实例,随后将以上下文模式译码关于调色板游程类型的语法元素的一个实例及 palette_run_msb_id_plus1的一个实例,且所述过程将重复while(scanPos<nCbS*nCbS),意味着视频编码器将在旁路模式译码与上下文模式译码之间来回切换,因为待使用旁路模式译码的语法元素未被分组在一起。这在图7中被描绘,其中椭圆在“while(scanPos< nCbS*nCbS)”的循环正下方(即,椭圆不包括展示关于调色板游程类型的语法元素使用上下文模式经编码的信息),围绕随之而来的palette_index_idc语法元素的if语句的方块在“while(scanPos<nCbS*nCbS)”的循环及后续伪码之下。然而,如上文所描述,图7 还描绘本发明的方面1,其为将语法元素palette_index_idc的一或多个实例分组(也可被称作重新定位)到(例如)索引译码块前面。通过重新定位待使用旁路模式编码的一或多个语法元素(例如,或其它调色板信息),视频编码器(例如,视频编码器20)可通过减少视频编码器或视频解码器必须在旁路模式编码与上下文模式编码之间切换的次数而增加熵译码的吞吐量。类似地,通过以此方式重新定位一或多个语法元素,视频解码器(例如,视频解码器30)的吞吐量可增大,因为视频解码器必须在旁路模式解码与上下文模式解码之间切换的次数减少。在本发明中描述的技术的一些实例中,在 palette_run_msb_id_plus1的实例将以上下文模式来译码之前将以旁路模式译码 palette_index_idc语法元素的所有实例。
在一些实例中,视频编码器20可经配置以使用称为(例如)num_palette_index的语法元素用信号发送语法元素palette_index_idc的出现次数(例如,实例)。举例来说,视频编码器20可以位流用信号发送num_palette_index的值,其中所述值表示语法元素palette_index_idc的出现次数。在一些实例中,视频编码器20可经配置以不用信号发送如palette_index_idc的索引值。在这些实例中,视频解码器30可经配置以推断索引值。举例来说,可以num_palette_index计数palette_index_idc的发生,所述计数可等于游程类型(例如,COPY_INDEX_MODE)在特定块中发生的次数。即使当推断游程类型(例如,COPY_INDEX_MODE)或推断palette_index_idc时,其仍计入num_palette_index。如本文所使用,在一些实例中,经剖析、解码或保持待解码的多个索引的参考可指代与模式或索引是否被推断无关的COPY_INDEX_MODE的数目。视频解码器30可经配置以通过(例如)解码来自位流的对应于num_palette_index语法元素的经编码值而确定语法元素palette_index_idc的出现次数(例如,实例)。本发明的这一方面被称作方面2。视频编码器20和视频解码器30可经配置以使用方面2或不使用方面2实施方面1。在语法方面,根据一些实例,方面2可被定义为:
| indices_idc_coding(){ | |
| num_palette_index | ae(v) |
| for(i=0;i<num_palette_index;i++) | |
| palette_index_idc | ae(v) |
| } |
在一些实例中,仅当可变indexMax大于1时,视频编码器20及视频解码器30可经配置以实施(例如,通过启用)方面1及方面2。本发明的这一方面被称作方面3。可变indexMax可指定调色板索引具有的用于当前译码单元的不同值的数目。在一些实例中, indexMax可指代(调色板大小+palette_escape_val_present_flag)的数量。
在一些实例中,当以下情况时可禁用方面1及方面2:(a)当前块中不存在逸出像素(即palette_escape_val_present_flag==0)且调色板大小小于2;或(b)当前块中可存在至少一个逸出像素(即,palette_escape_val_present_flag==1)且调色板大小等于0。在其它实例中,仅当可变indexMax大于2时,视频编码器20及视频解码器30可经配置以实施(例如,通过启用)方面1及方面2。类似地,在其中indexMax等于(调色板大小 +palette_escape_val_present_flag)的实例中,当indexMax大于1时可启用(例如,实施) 方面1及方面2。举例来说,如果调色板大小为0且palette_escape_val_present_flag为1,那么块中的所有像素为逸出像素;及,由此已经已知索引。作为另一实例,如果 palette_escape_val_present_flag为0且调色板大小为1,那么,同样地,每一像素具有索引0;及,由此可不必要用信号发送索引。
在一些实例中,视频编码器20可经配置以实施方面1及方面2以使得语法元素palette_run_type_flag[xC][yC]的最末发生(例如,实例)通过视频编码器20在调色板索引块译码部分前面被用信号发送。本发明的这一方面被称作方面4。具体来说,根据一些实例,如下文,可通过添加新的语法元素palette_last_run_type_flag来更新语法表:
| indices_idc_coding(){ | |
| num_palette_index | ae(v) |
| for(i=0;i<num_palette_index;i++) | |
| palette_index_idc | ae(v) |
| palette_last_run_type_flag | ae(v) |
| } |
视频解码器30可经配置以通过(例如)解码来自位流的经编码palette_last_run_type_flag语法元素来确定语法元素palette_run_type_flag[xC][yC]的最末发生(例如,实例)。palette_last_run_type_flag的语法元素可在(例如)CABAC中经旁路模式译码或经上下文模式译码。在其中palette_last_run_type_flag语法元素经上下文模式译码的实例中,palette_last_run_type_flag语法元素可与 palette_run_type_flag[xC][yC]共享相同上下文,或palette_last_run_type_flag语法元素可具有独立于palette_run_type_flag[xC][yC]的上下文的其自身上下文。
在一些实例中,视频解码器30可经配置以解码语法元素palette_index_idc,以使得针对palette_index_idc语法元素的第一发生(例如,实例)禁用动态范围调节过程。本发明的这一方面被称作方面5。具体来说,使用与JCTVC-S1005部分7.4.9.6中指定的adjustedIndexMax可变的导出过程极类似的过程。出于对比的目的,JCTVC-S1005描述可变adjustedIndexMax可如下导出:
adjustedIndexMax=indexMax
if(scanPos>0)
adjustedIndexMax-=1
然而,根据本发明的方面5,可变adjustIndexMax可如下文所阐述而导出。举例来说,对于每一块,在剖析之前,可变isFirstIndex经初始化为1。在一些实例中,可变adjustedIndexMax可如下导出:
adjustedIndexMax=indexMax
palette_index_idc
if(isFirstIndex){
adjustedIndexMax-=isFirstIndex
isFirstIndex=0
}
在一些实例中,在剖析及解码paletteRun之前,视频解码器30可经配置以检查一或多个条件。本发明的这一方面被称作方面6。例如由JCTVC-S1005中所公开,当 palette_run_type_flag等于COPY_ABOVE_MODE时,可变paletteRun可指定具有与上述行中位置相同的调色板索引的连续位置减1的数目,或当palette_run_type_flag等于 COPY_INDEX_MODE时指定具有相同调色板索引的连续位置减1的数目。
参考视频解码器30可经配置以检查的一或多个条件,如果视频解码器30确定满足所述条件中的一或多者,那么视频解码器30可经配置以针对关于当前paletteRun(即,palette_run_msb_id_plus1及palette_run_refinement_bits)的语法元素旁路剖析及解码过程。在此实例中,视频解码器30可经配置以随着运行到当前块的末端(即,等于maxPaletteRun)隐含地推导当前paletteRun。与方面6相关的一或多个条件的列表包括:(i)等于num_palette_index的经剖析/经解码palette_index_idc语法元素的数目;或,替代地,可定义可变paletteIndicesLeft等于num_palette_index减所接收的索引的数目,且使用所述定义,可将此条件陈述为paletteIndicesLeft等于零;及/或(ii)当前调色板游程类型palette_run_type_flag[xC][yC]等于最末调色板游程类型 palette_last_run_type_flag。
在一些实例中,如果不同时满足上文针对方面6所阐述的条件(i)及(ii),那么视频编码器20可经配置以将调色板游程长度译码到位流中。本发明的此方面被称作方面7。在其它实例中,如果不同时满足上文针对方面6所阐述的条件(i)及(ii),那么视频编码器 20可经配置以将调色板游程长度译码到位流中。根据当前草案说明书JCTVC-S1005,需要指定最大可达成游程长度的参数为输入,其中参数等于 maxPaletteRun=nCbS*nCbS-scanPos-1。然而,根据本发明,视频编码器20可经配置以将指定最大可达成游程长度的参数减小到maxPaletteRun=nCbS*nCbS-scanPos-1- paletteIndicesLeft以改良译码效率。如本文所使用,nCbS指定当前块的大小。
在一些实例中,如果块并不在调色板共享模式中(即,palette_share_flag[x0][y0]==0),那么可施加规范性约束条件于需要其从未用信号发送具有未使用条目的调色板的视频编码器20上。本发明的这一方面被称作方面8。
在一些实例中,对于不使用调色板共享的调色板模式,当满足以下条件中的一或多者时:其中num_palette_index等于indexMax的条件1及其中paletteIndicesLeft==1的条件2,视频解码器30可经配置以旁路对语法元素palette_index_idc的当前发生(例如,实例)的解码。在这些实例中,视频解码器30可经配置以将语法元素palette_index_idc 的当前发生的值隐含地导出为调色板中的索引,但已在解码过程期间出现于索引映射中 (例如,直到此点未在解码过程中出现于索引图中)。本发明的这一方面被称作方面9。
视频解码器30可经配置以导出上文针对方面9所阐述的语法元素palette_index_idc 的当前发生的值,因为条件1需要0与(indexMax-1)之间的每一索引(包含性地)经用信号发送且仅用信号发送一次。因此,在第一(indexMax-1)索引值被用信号发送之后,视频解码器30可经配置以导出最末索引值为0与(indexMax-1)之间的数目,所述值已在当前索引映射图的解码过程期间出现。
在一些实例中,当满足以下条件中的一者或两者时,视频解码器30可经配置以旁路对语法元素palette_run_type_flag[xC][yC]的当前发生(例如,实例)的解码:条件1,其中paletteIndicesLeft等于0,及条件2,其中当前像素处于扫描次序中的块的最末位置。在这些实例中,视频解码器30可经配置以隐含地导出语法元素 palette_run_type_flag[xC][yC]的当前发生的值。举例来说,当满足条件1时, palette_run_type_flag[xC][yC]视频解码器30可经配置以导出语法元素 palette_run_type_flag[xC][yC]的当前发生的值为COPY_ABOVE_MODE。作为另一实例,当满足条件1时,如果paletteIndicesLeft>0,那么palette_run_type_flag[xC][yC] 视频解码器30可经配置以导出语法元素palette_run_type_flag[xC][yC]的当前发生的值为COPY_INDEX_MODE,且如果paletteIndicesLeft=0,那么导出为 COPY_ABOVE_MODE。本发明的这一方面被称作方面10。
如本文中所描述,视频编码器20及视频解码器30可经配置以确定何时满足条件。举例来说,关于方面10,视频解码器30可经配置以确定是否满足条件1。类似地,视频解码器30可经配置以确定是否满足条件2。回应于确定满足条件1或条件2,如上文所阐述,视频解码器30可经配置以导出语法元素palette_run_type_flag[xC][yC]的当前发生的值。
在一些实例中,视频编码器20及视频解码器30可经配置以使用任一哥伦布码族分别对num_palette_index语法元素进行编码或解码。举例来说,视频编码器20及视频解码器30可经配置以使用(例如)哥伦布莱斯码、指数哥伦布码、截断莱斯码、一元码或哥伦布莱斯码与指数哥伦布码的级联来分别对num_palette_index语法元素进行编码或解码。本发明的这一方面被称作方面11。
在其它实例中,视频编码器20及视频解码器30可经配置以使用任一哥伦布码族中得任一截断版本来分别对num_palette_index语法元素进行编码或解码。举例来说,视频编码器20及视频解码器30可经配置以使用(例如)截断哥伦布莱斯码、截断指数哥伦布码、截断截断莱斯码、截断一元码或截断莱斯码与指数哥伦布码的级联(例如,用于译码coeff_abs_level_remaining语法元素的程序代码)来分别对num_palette_index语法元素进行编码或解码。本发明这一方面被称作方面12。
在一些实例中,与方面11或方面12相关的任意哥伦布参数取决于CU大小、indexMax、调色板大小及/或palette_escape_val_present_flag。所述相依性可表达为方程或查找表。在一些实例中,视频编码器20可经配置以用信号发送查找表或方程中的参数,以使得其由(例如)SPS/PPS/切片标头中的视频解码器30所接收。替代地或另外,可根据逐块基础适应性地更新参数。本发明的这一方面被称作方面13。在一些实例中,哥伦布参数cRiceParam可取决于indexMax、调色板大小及/或 palette_escape_val_present_flag。哥伦布参数cRiceParam可从块到块而改变。
在一些实例中,视频编码器20可经配置以通过用信号发送num_palette_index的值与差量值之间的差异而预测性地编码num_palette_index,所述值可由称为(例如)numPaletteIndexCoded的语法元素来表达。本发明的这一方面被称作方面14。举例来说,视频编码器20可经配置以通过用信号发送numPaletteIndexCoded的值而预测性地编码num_palette_index,其中numPaletteIndexCoded=num_palette_index- IndexOffsetValue。类似地,视频解码器30可经配置以通过(例如)确定来自位流的 numPaletteIndexCoded的值而预测性地解码num_palette_index。因为 numPaletteIndexCoded=num_palette_index-IndexOffsetValue,视频解码器30可经配置以基于所确定的numPaletteIndexCoded的值及IndexOffsetValue的值而确定 num_palette_index的值。
在一些实例中,可变IndexOffsetValue可为常数。举例来说,IndexOffsetValue可等于调色板共享模式的X的常数值或可等于非调色板共享模式的Y的常数值,其中X及 Y为整数。在一些实例中,X及Y可相同(例如,X等于Y,例如等于1)。在其它实例中,X及Y可不同(例如,X不等于Y)。举例来说,当使用调色板共享模式时 IndexOffsetValue可等于9,且当使用非共享模式时IndexOffsetValue可等于33。在一些实例中,可变IndexOffsetValue可取决于语法元素palette_share_flag[x0][y0]。在其它实例中,可变IndexOffsetValue可取决于可变indexMax。举例来说,IndexOffsetValue可等于indexMax。在一些实例中,视频编码器20可经配置以用信号发送SPS/PPS/切片标头中的IndexOffsetValue。替代地或另外,可变IndexOffsetValue可经适应性地逐块更新,意味着对应于可变IndexOffsetValue的值可经适应性地逐块更新。
在一些实例中,视频编码器20及视频解码器30可经配置以分别编码或解码可使用任意哥伦布码族或任意截断哥伦布族(例如哥伦布莱斯码与指数哥伦布码的级联)译码的numPaletteIndexCoded。举例来说,当IndexOffsetValue等于1时,numPaletteIndexCoded等于num_palette_index-1。
在一些实例中,视频编码器20及视频解码器30可经配置以使用任意哥伦布码族分别编码或解码numPaletteIndexCoded。举例来说,视频编码器20及视频解码器30可经配置以使用(例如)哥伦布莱斯码、指数哥伦布码、截断莱斯码、一元码或哥伦布莱斯码与指数哥伦布码的级联来分别编码或解码numPaletteIndexCoded。
在其它实例中,视频编码器20及视频解码器30可经配置以使用任意哥伦布码族的任意截断版本来分别编码或解码numPaletteIndexCoded。举例来说,视频编码器20及视频解码器30可经配置以使用(例如)截断哥伦布莱斯码、截断指数哥伦布码、截断截断莱斯码、截断一元码或截断莱斯码与指数哥伦布码的级联(例如,用于译码 coeff_abs_level_remaining语法元素的代码)来分别编码或解码numPaletteIndexCoded。
为译码numPaletteIndexCoded,视频编码器20可经配置以确定numPaletteIndexCoded 的正负号。视频编码器20可经配置以用信号发送指示numPaletteIndexCoded的值为负值与否(例如,经确定正负号是正的还是负的)的旗标。本发明的这一方面被称作方面15。在一些实例中,视频编码器20可经配置以用信号发送旗标,且随后用信号发送 numPaletteIndexCoded的值。在其它实例中,视频编码器20可经配置以用信号发送 numPaletteIndexCoded的值,且随后用信号发送旗标。视频编码器20可经配置以使用旁路模式或上下文模式编码旗标。如果经上下文译码,那么上下文可取决于CU大小、indexMax、调色板大小及/或palette_escape_val_present_flag。
如上文所描述,视频编码器20可经配置以根据一些实例确定numPaletteIndexCoded 的正负号。如果所确定numPaletteIndexCoded的正负号为负的,那么视频编码器20可经配置以将(1-numPaletteIndexCoded)的值编码到位流中。如果所确定numPaletteIndexCoded的正负号为正的,那么视频编码器20可经配置以将numPaletteIndexCoded的值编码到位流中。视频编码器20可经配置以使用取决于(例如)numPaletteIndexCoded的正负号、CU大小、indexMax、调色板大小及/或 palette_escape_val_present_flag的不同哥伦布码参数来编码(1-numPaletteIndexCoded) 的值或numPaletteIndexCoded)值。
在一些实例中,视频编码器20可经配置以使用映射操作来表示numPaletteIndexCoded的负部,此可除方面15外还可替代方面15。本发明的这一方面被称作方面16。举例来说,可引入映射间隔,且其被定义为可变mapInterval。视频编码器20可经配置以使用可变mapInterval将numPaletteIndexCoded的负值映射到等间距的等于:mapInterval×(-numPaletteIndexCoded)-1的正值。numPaletteIndexCoded的相对应正值可因此移位以适应由经映射负值所获得的位置。
举例来说,如果mapInterval=2,且numPaletteIndexCoded是选自{-3,-2,-1,0,1,2,3},那么所述映射可如下文表I中所说明。在此实例中,视频编码器20可经配置以使用表I 中的经映射值来编码numPaletteIndexCode的值。举例来说,视频编码器20可经配置以将经映射值熵编码成二进制形式。
表I.码字映射实例
在一些实例中,视频编码器20可经配置以使用关于方面16所描述的映射操作来表示numPaletteIndexCoded的负部。视频编码器20还可经配置以移除当实施方面16时可出现的一或多个冗余。本发明的这一方面被称作方面17。举例来说,numPaletteIndexCoded的负值的数目可在A={-1,-2,...,-IndexOffsetValue+1}范围内。作为另一实例,numPaletteIndexCode的负值的数目可在A={-1,-2,...,-IndexOffsetValue+1,IndexOffsetValue}范围内。在这些实例中的任一者中,经映射值仅需要保留负numPaletteIndexCoded值的(IndexOffsetValue-1)或IndexOffsetValue位置。举例来说,如果mapInterval=2,且numPaletteIndexCoded是选自{-3,-2,-1,0,1,2,3,4,5,6,7,8},那么所述映射可如下文表II中所说明。在此实例中,视频编码器20可经配置以使用表II中的经映射值来编码numPaletteIndexCode的值。举例来说,视频编码器20可经配置以将经映射值熵编码成二进制形式。
表II.码字映射实例
如上文表II中所展示,视频编码器20可经配置以编码对应于numPaletteIndexCode 的值的经映射值,以使得numPaletteIndexCode的负值与正值在某一值之后不交错。举例来说,在上文表II的实例中,不存在经由以numPaletteIndexCoded的值3开始的经映射值的numPaletteIndexCoded的正值与负值的交错(即,numPaletteIndexCoded的正值3-8 映射到经映射值6-11)。
如上文所描述,视频编码器20还可经配置以移除当实施方面16时可出现的一或多个冗余。不同于上文所描述的冗余实例的另一冗余实例包含:由于num_palette_index 以当前块中的像素的总数为上限,numPaletteIndexCoded也有上限。因此,在以正码字的所有概率分配位置之后,负值可经映射到以下位置而不交错。举例来说,如果 mapInterval=2,且numPaletteIndexCoded是选自{-5,-4,-3,-2,-1,0,1,2,3},那么所述映射可如下文表III中所说明。在此实例中,视频编码器20可经配置以使用表III中的经映射值来编码numPaletteIndexCode的值。举例来说,视频编码器20可经配置以将经映射值熵编码成二进制形式。
表III.码字映射实例
如上文表III中所展示,视频编码器20可经配置以编码对应于numPaletteIndexCode 的值的经映射值,以使得numPaletteIndexCode的负值与正值在某一值之后不交错。举例来说,在上文表III的实例中,不存在经由以numPaletteIndexCoded的值4开始的经映射值的numPaletteIndexCoded的正值与负值的交错(即,numPaletteIndexCoded的负值 -4及-5映射到经映射值7及8)。
在一些实例中,视频编码器20可经配置以进一步解耦调色板索引与调色板游程之间的关系。本发明的这一方面被称作方面18。举例来说,视频编码器20可经配置以使得调色板游程译码的上下文取决于前述调色板游程长度或取决于前述游程的 palette_run_msb_id_plus1、indexMax及/或CU大小,而不是允许调色板游程译码的上下文取决于经剖析或经解码索引。
在一些实例中,为进一步分组旁路二进制,视频编码器20可经配置以如下用信号发送调色板游程类型(即palette_run_type_flag[xC][yC])之前用信号发送调色板块中的逸出索引的数目以及逸出值。本发明的这一方面被称作方面19。斜体部分说明相对于 JCT-VC S1005之前述版本的变化,且加粗部分以及右列中的“ae(v)”指示语法元素的用信号发送。
在上文的实例中,escape_idc_coding()由用信号发送逸出索引的数目及对应于每一逸出索引的逸出值构成。如果palette_escape_val_present_flag为0或如果indexMax等于 0,那么可不用信号发送调色板块中的逸出索引的数目。在前者情形中,逸出索引的数目经推断为0,且不用信号发送逸出值。在indexMax等于0的后者情形中,当 palette_escape_val_present_flag等于1且用信号发送逸出值时,逸出索引的数目经推断等于块大小,或当palette_escape_val_present_flag等于0时逸出索引的数目经推断为零。
在一些实例中,视频编码器20可经配置以使用哥伦布码族用信号发送逸出索引的数目。本发明的这一方面被称作方面20。举例来说,视频编码器20可经配置以使用(例如)哥伦布莱斯码、指数哥伦布码、截断莱斯码、一元码或哥伦布莱斯码与指数哥伦布码的级联来用信号发送逸出索引的数目。以上代码的截断版本可与等于块大小的最大集合一起使用。
在一些实例中,提出对palette_escape_val_present_flag实施规范性限制,当palette_escape_val_present_flag等于0时,当前块中不存在逸出像素。本发明的这一方面被称作方面21。当palette_escape_val_present_flag等于1时,当前块中存在至少一个逸出像素。由于此限制,在escape_idc_coding()中,可译码逸出索引减1的数目,而不是逸出索引的数目以改良译码效率。在那种情况下,截断哥伦布码族的最大值可因此经调整到(blockSize-1)。
在一些实例中,当在译码索引图块之前用信号发送逸出索引的数目时且当已经译码所有逸出索引时,那么indexMax可减小1。此外,如果indexMax变成1,那么索引、游程及模式译码经终止,因为可推断所有剩余样本的索引。本发明的这一方面被称作方面22。作为方面22的一个实例,假设调色板大小等于1且 palette_escape_val_present_flag等于1。通常,可能的索引值为0及1,其中1用于逸出样本。在方面22下,视频编码器20可经配置以用信号发送逸出值/样本的数目。随后,当用信号发送索引且遇到最末逸出值/样本时,视频编码器20及/或视频解码器30两者可经配置以推断(例如,确定)不再存在逸出值/样本。由此,视频编码器20及/或视频解码器30可经配置以确定从最末逸出值/样本到块的末端可产生的仅有的索引值为0,意味着视频编码器20可经配置以不将模式、索引值及/或游程值从最末逸出值/样本用信号发送到块的末端。
在一些实例中,escape_idc_coding()与indices_idc_coding()组合使用。本发明的这一方面被称作方面23。在一个实例中,可在用信号发送索引的数目之前用信号发送逸出索引的数目。在这种情形下,仅需要以indices_idc_coding()用信号发送非逸出索引的数目。在一个实例中,可在用信号发送索引的数目之后用信号发送逸出索引的数目。在这种情形下,截断哥伦布码族的最大值可因此经调整到num_palette_index。
视频编码器20及/或视频解码器30可经配置以根据本发明中描述的技术来操作。大体来说,视频编码器20及/或视频解码器30可经配置以确定当前块以调色板模式来译码,对第一语法元素的多个实例进行旁路模式译码以用于重建当前块,且在对第一语法元素的多个实例进行旁路模式译码之后,对第二语法元素的多个实例进行上下文模式解码以用于重建当前块。
图2为说明可实施本发明的技术的实例视频编码器20的框图。出于解释的目的而提供图2,且不应将其视为对如本发明中广泛例示及描述的技术的限制。出于解释的目的,本发明在HEVC译码及例如HEVC的SCC扩展的上下文中描述视频编码器20。然而,本发明的技术可适用于其它译码标准或方法。
视频编码器20表示根据本发明中描述的各种实例的可经配置以执行用于基于调色板的译码及熵译码(例如,CABAC)的技术的装置的实例。
在图2的实例中,视频编码器20包含块编码单元100、视频数据存储器101、残余产生单元102、变换处理单元104、量化单元106、反量化单元108、反变换处理单元110、重建单元112、滤波器单元114、经解码图片缓冲器116及熵编码单元118。块编码单元 100包含帧间预测处理单元120及帧内预测处理单元126。帧间预测处理单元120包含运动估计单元及运动补偿单元(未展示)。视频编码器20还包含经配置以执行本发明中所描述的基于调色板的译码技术的各种方面的基于调色板的编码单元122。在其它实例中,视频编码器20可包含更多、更少或不同功能性组件。
视频数据存储器101可存储待由视频编码器20的组件编码的视频数据。可(例如)从视频源18获得存储于视频数据存储器101中的视频数据。经解码图片缓冲器116可为参考图片存储器,其存储参考视频数据以供视频编码器20(例如)以帧内或帧间译码模式)编码视频数据时使用。视频数据存储器101及经解码图片缓冲器116可由多种存储器装置中的任一者形成,例如,动态随机存取存储器(DRAM)(包含同步DRAM(SDRAM))、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器装置。可由同一存储器装置或独立存储器装置提供视频数据存储器101及经解码图片缓冲器116。在各种实例中,视频数据存储器101可与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。
视频编码器20可接收视频数据。视频编码器20可编码视频数据的图片的切片中的每一CTU。CTU中的每一者可与具有相等大小的明度译码树型块(CTB)及图片的对应 CTB相关联。作为编码CTU的部分,块编码单元100可执行四分树分割以将CTU的 CTB划分成逐渐更小的块。较小块可为CU的译码块。举例来说,块编码单元100可将与CTU相关联的CTB分割成四个相等大小的子块,将子块中的一或多者分割成四个相等大小的子子块,等等。
视频编码器20可编码CTU的CU以产生CU的经编码表示(即,经译码CU)。作为编码CU的部分,块编码单元100可分割CU的一或多个PU中的与CU相关联的译码块。因此,每一PU可与明度预测块及对应色度预测块相关联。视频编码器20及视频解码器 30可支持具有各种大小的PU。如上文所指示,CU的大小可指代CU的明度译码块的大小,且PU的大小可指代PU的明度预测块的大小。假设特定CU的大小为2N×2N,那么视频编码器20及视频解码器30可支持用于帧内预测的2N×2N或N×N的PU大小,及用于帧间预测的2N×2N、2N×N、N×2N、N×N或类似者的对称PU大小。视频编码器 20及视频解码器30还可支持用于帧间预测的2N×nU、2N×nD、nL×2N及nR×2N的PU 大小的不对称分割。
帧间预测处理单元120可通过对CU的每一PU执行帧间预测而产生用于PU的预测性数据。用于PU的预测性数据可包含PU的预测性块及PU的运动信息。取决于PU 是在I切片中、P切片中还是B切片中,帧间预测单元121可针对CU的PU执行不同操作。在I切片中,所有PU经帧内预测。因此,如果PU在I切片中,那么帧间预测单元121不对PU执行帧间预测。因此,对于I模式中编码的块,经预测块是使用空间预测从同一帧内的先前经编码的相邻块而形成。
如果PU是在P切片中,那么帧间预测处理单元120的运动估计单元可在PU的参考区域的参考图片列表(例如,“RefPicList0”)中搜索参考图片。PU的参考区域可为参考图片内含有最紧密地对应于PU的样本块的样本块的区域。帧间预测处理单元120的运动估计单元可产生参考索引,所述参考索引指示含有PU的参考区域的参考图片在 RefPicList0中的位置。另外,运动估计单元可产生指示PU的译码块与相关联于参考区域的参考位置之间的空间移位的MV。举例来说,MV可为提供从当前经解码图片中的坐标到参考图片中的坐标的偏移的二维向量。运动估计单元可将参考索引及MV输出为 PU的运动信息。帧间预测处理单元120的运动补偿单元可基于在由PU的运动向量指示的参考位置处的实际或内插样本而产生PU的预测性块。
如果PU在B切片中,那么运动估计单元可针对PU执行单向预测或双向预测。为针对PU执行单向预测,运动估计单元可针对PU的参考区域搜索RefPicList0或第二参考图片列表(“RefPicList1”)中的参考图片。运动估计单元可输出以下各者作为PU的运动信息:指示含有参考区域的参考图片在RefPicList0或RefPicList1中的位置的参考索引、指示PU的预测块与相关联于参考区域的参考位置之间的空间位移的MV,及指示参考图片是在RefPicList0还是在RefPicList1中的一或多个预测方向指示符。帧间预测处理单元120的运动补偿单元可至少部分地基于由PU的运动向量指示的参考区域处的实际或内插样本而产生PU的预测性块。
为针对PU执行双向帧间预测,运动估计单元可针对PU的参考区域在RefPicList0中搜索参考图片,且还可针对PU的另一参考区域在RefPicList1中搜索参考图片。运动估计单元可产生指示含有参考区域的参考图片在RefPicList0及RefPicList1中的位置的参考图片索引。另外,运动估计单元可产生指示与参考区域相关联的参考位置与PU的样本块之间的空间移位的MV。PU的运动信息可包含PU的参考索引及MV。运动补偿单元可至少部分地基于由PU的运动向量指示的参考区域处的实际或内插样本而产生 PU的预测性块。
根据本发明的各种实例,视频编码器20可经配置以执行基于调色板的译码。关于HEVC构架,作为一实例,基于调色板的译码技术可经配置以在CU层级使用。在其它实例中,基于调色板的视频译码技术可经配置以在PU层级使用。在其它实例中,基于调色板的译码技术可经配置以在子预测单元(子PU)层级(例如,预测单元的子块)使用。因此,本文中(贯穿本发明)所描述的在CU层级的上下文中的所有所公开的过程可另外或替代地应用于PU层级或子PU层级。然而,这些基于HEVC的实例不应被视为约束或限制本文中所描述的基于调色板的视频译码技术,因这些技术可适用于独立地或作为其它现有或尚待开发的系统/标准的部分而工作。在这些情况下,用于调色板译码的单元可为方形块、矩形块或甚至非矩形形状的区域。
当(例如)针对CU或PU选择基于调色板的编码模式时,基于调色板的编码单元122(例如)可执行基于调色板的解码。举例来说,基于调色板的编码单元122可经配置以产生具有指示像素值的条目的调色板,选择调色板中的像素值以表示视频数据块中的至少一些位置的像素值,及用信号发送使视频数据块的位置中的至少一些与调色板中分别对应于所选择像素值的条目相关联的信息。尽管将各种功能描述为通过基于调色板的编码单元122执行,但这些功能中的一些或全部可通过其它处理单元或不同处理单元的组合执行。
根据本发明的方面,基于调色板的编码单元122可经配置以执行本文中所描述的用于调色板译码的技术的任何组合。
帧内预测处理单元126可通过对PU执行帧内预测而产生用于PU的预测性数据。用于PU的预测性数据可包含PU的预测性块及各种语法元素。帧内预测处理单元126 可对I切片中、P切片中及B切片中的PU执行帧内预测。
为对PU执行帧内预测,帧内预测处理单元126可使用多个帧内预测模式,以产生用于PU的预测性数据的多个集合。帧内预测处理单元126可使用来自相邻PU的样本块的样本来产生用于PU的预测性块。对于PU、CU及CTU,假设从左到右从上到下的编码次序,那么相邻PU可在PU上方、右上方、左上方或左边。帧内预测处理单元126 可使用各种数目的帧内预测模式,例如,33个方向帧内预测模式。在一些实例中,帧内预测模式的数目可取决于与PU相关联的区域的大小。
块编码单元100可从通过帧间预测处理单元120所产生的用于PU的预测性数据或通过帧内预测处理单元126所产生的用于PU的预测性数据中选择用于CU的PU的预测性数据。在一些实例中,块编码单元100基于预测性数据集合的速率/失真量度而选择用于CU的PU的预测性数据。所选预测性数据的预测性块在本文中可被称作所选预测性块。
残余产生单元102可基于CU的明度译码块、Cb译码块及Cr译码块及CU的PU 的所选择预测性明度块、预测性Cb块及预测性Cr块而产生CU的明度残余块、Cb残余块及Cr残余块。举例来说,残余产生单元102可产生CU的残余块,以使得残余块中的每一样本具有等于CU的译码块中的样本与CU的PU的相对应所选预测性块中的相对应样本之间的差的值。
变换处理单元104可执行四分树分割以将与CU相关联的残余块分割成与CU的TU相关联的变换块。因此,在一些实例中,TU可与明度变换块及两个色度变换块相关联。 CU的TU的明度变换块及色度变换块的大小及位置可基于或可不基于CU的PU的预测块的大小及位置。被称为“残余四分树”(RQT)的四分树结构可包含与区域中的每一者相关联的节点。CU的TU可对应于RQT的叶节点。
变换处理单元104可通过将一或多个变换应用于TU的变换块而产生CU的每一TU的变换系数块。变换处理单元104可将各种变换应用于与TU相关联的变换块。举例来说,变换处理单元104可将离散余弦变换(DCT)、定向变换或概念上类似的变换应用于变换块。在一些实例中,变换处理单元104并不将变换应用于变换块。在这些实例中,变换块可经处理为变换系数块。
量化单元106可量化系数块中的变换系数。量化过程可降低与变换系数中的一些或全部相关联的位深度。举例来说,在量化期间,可将n位变换系数下舍入到m位变换系数,其中n大于m。量化单元106可基于相关联于CU的量化参数(QP)值来量化与CU 的TU相关联的系数块。视频编码器20可通过调整与CU相关联的QP值来调整应用于相关联于CU的系数块的量化程度。量化可引入信息丢失,因此经量化变换系数可具有比原始变换系数低的精度。
反量化单元108及反变换处理单元110可分别将反量化及反变换应用于系数块,以从系数块重建残余块。重建单元112可将经重建的残余块添加到由块编码单元100产生的一或多个预测性块的对应样本,以产生与TU相关联的经重建的变换块。通过以此方式重建CU的每一TU的变换块,视频编码器20可重建CU的译码块。
滤波器单元114可执行一或多个解块操作以减少与CU相关联的译码块中的块伪影。滤波器单元114可执行其它滤波操作,包括样本适应性偏移(SAO)滤波及/或适应性回路滤波(adaptive loop filtering;ALF)。经解码图片缓冲器116可在滤波器单元114对经重建译码块执行一或多个解块操作之后,存储经重建译码块。帧间预测处理单元120可使用含有经重建的译码块的参考图片来对其它图片的PU执行帧间预测。另外,帧内预测处理单元126可使用经解码图片缓冲器116中的经重建译码块来对与CU相同的图片中的其它PU执行帧内预测。
熵编码单元118可从视频编码器20的其它功能性组件接收数据。举例来说,熵编码单元118可从量化单元106接收系数块,且可从块编码单元100接收语法元素。熵编码单元118可对数据执行一或多个熵编码操作,以产生经熵编码数据。举例来说,熵编码单元118可对数据执行上下文自适应译码操作(例如,CABAC操作)、上下文自适应可变长度译码(CAVLC)操作、可变至可变(variable-to-variable;V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区间分割熵(PIPE)译码操作、指数哥伦布编码操作或另一类型的熵编码操作。视频编码器20可输出包含由熵编码单元118 产生的经熵编码数据的位流。举例来说,位流可包含表示用于CU的RQT的数据。
在一些实例中,残余译码并不与调色板译码一起执行。因此,当使用调色板译码模式译码时,视频编码器20可不执行变换或量化。另外,视频编码器20可对单独使用调色板译码模式从残余数据产生的数据进行熵编码。
根据本发明的技术中的一或多者,视频编码器20,且具体地说基于调色板的编码单元122,可执行经预测视频块的基于调色板的视频译码。如上文所描述,由视频编码器 20产生的调色板可明确地经编码并发送到视频解码器30,从先前调色板条目预测,从先前像素值预测,或其组合。
根据本发明的一或多种技术,视频编码器20可经配置以确定以调色板模式译码当前块,对第一语法元素的多个实例进行旁路模式编码以用于重建当前块,且对第一语法元素的多个实例进行旁路模式编码之后,(例如)使用CABAC译码过程对第二语法元素的多个实例进行上下文模式编码以用于重建当前块。视频编码器20可经配置以(例如) 使用CABAC译码过程的旁路模式来对第一语法元素的多个实例中的任意两个实例进行旁路模式编码,而不与第二语法元素的多个实例中的任一实例的上下文模式编码交错。在一个实例中,第一语法元素包括palette_index_idc语法元素或palette_escape_val语法元素中的一者,且第二语法元素包括palette_run_msb_id_plus1语法元素。视频编码器 20可经配置以在用于当前块的索引块译码部分前面对第一语法元素的多个实例进行旁路编码。
视频编码器20可经配置以编码指示第一语法元素的实例的数目的第三语法元素,其中对第一语法元素的多个实例进行旁路模式编码包括基于第三语法元素对第一语法元素的多个实例进行旁路模式编码。视频编码器20可使用哥伦布莱斯码、指数哥伦布码、截断莱斯码、一元码或哥伦布莱斯码与指数哥伦布码的级联或前述码中的任一者的截断版本来编码第三语法元素。
图3为说明可经配置以执行本发明的技术的实例视频解码器30的框图。出于解释的目的而提供图3,且其并不限制如本发明中广泛例示及描述的技术。出于解释的目的,本发明在HEVC译码的上下文中描述视频解码器30。然而,本发明的技术可适用于其它译码标准或方法。
上文关于编码器20所描述的调色板译码的细节在此关于解码器30不作重复,但应理解,解码器30可相对于本文关于编码器20所描述的任何编码过程而执行互逆解码过程。
视频解码器30表示根据本发明中描述的各种实例的可经配置以执行用于基于调色板的译码及熵译码(例如,CABAC)的技术的装置的实例。
在图3的实例中,视频解码器30包含熵解码单元150、视频数据存储器151、块解码单元152、反量化单元154、反变换处理单元156、重建单元158、滤波器单元160,及经解码图片缓冲器162。块解码单元152包含运动补偿单元164及帧内预测处理单元 166。视频解码器30还包含基于调色板的解码单元165,其经配置以执行本发明中所描述的基于调色板的译码技术的各种方面。在其它实例中,视频解码器30可包含更多、更少或不同功能性组件。
视频数据存储器151可存储待由视频解码器30的组件解码的视频数据,例如经编码视频位流。可(例如)从计算机可读媒体16(例如,从本地视频源(例如,照相机))经由视频数据的有线或无线网络通信或者通过存取物理数据存储媒体而获得存储于视频数据存储器151中的视频数据。视频数据存储器151可形成存储来自经编码视频位流的经编码视频数据的经译码图片缓冲器(CPB)。经解码图片缓冲器162可为存储用于通过视频解码器30解码视频数据(例如,以帧内或帧间译码模式)时使用的参考视频数据的参考图片存储器。视频数据存储器151及经解码图片缓冲器162可由多种存储器装置中的任一者形成,例如,动态随机存取存储器(DRAM)(包含同步DRAM(SDRAM))、磁阻式 RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器装置。可通过相同存储器装置或独立存储器装置来提供视频数据存储器151及经解码图片缓冲器162。在各种实例中,视频数据存储器151可与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。
可由视频数据存储器151提供的经译码图片缓冲器(CPB)可接收并存储位流的经编码视频数据(例如,NAL单元)。熵解码单元150可从CPB接收经编码视频数据(例如, NAL单元)并剖析NAL单元以解码语法元素。熵解码单元150可对所述NAL单元中的经熵编码语法元素进行熵解码。块解码单元152、反量化单元154、反变换处理单元156、重建单元158及滤波器单元160可基于从位流提取的语法元素而产生经解码视频数据。
视频解码器30可经配置以执行与本文中所描述的视频编码器20的所述过程大体上互逆的过程。类似地,视频编码器20可经配置以执行与本文中描述的视频解码器30的所述过程大体上互逆的过程。举例来说,视频解码器30可经配置以解码位流中的经编码语法元素的公开内容同样必定公开视频编码器20可经配置以将语法元素编码到位流中。
作为另一实例,熵解码单元150可经配置以执行与本文中所描述的熵编码单元118的所述过程大体上互逆的过程。根据本发明的方面,熵解码单元150可经配置以对通过熵编码单元118产生的任何码字进行熵解码。举例来说,熵解码单元150可经配置以对均匀的及不均匀第k阶截断指数哥伦布(TEGk)编码的值(例如用于CU的二进制调色板预测向量及/或调色板映射)进行熵解码。作为另一实例,熵解码单元150可经配置以熵解码第k阶指数哥伦布(EGk)码字、第k阶截断指数哥伦布(TEGk)码字、第k阶不均匀的截断指数哥伦布(TEGk)码字或其任何组合。
位流的NAL单元可包含经译码切片NAL单元。作为解码位流的部分,熵解码单元150可从经译码切片NAL单元提取语法元素且对所述语法元素进行熵解码。经译码切片中的每一者可包含切片标头及切片数据。切片标头可含有关于切片的语法元素。切片标头中的语法元素可包含识别与含有切片的图片相关联的PPS的语法元素。
除解码来自位流的语法元素以外,视频解码器30可对未经分割的CU执行重建操作。为了对未分割的CU执行重建操作,视频解码器30可对CU的每一TU执行重建操作。通过针对CU的每一TU执行重建操作,视频解码器30可重建CU的残余块。
作为对CU的TU执行重建操作的部分,反量化单元154可对与TU相关联的系数块进行反量化(即,解量化)。反量化单元154可使用与TU的CU相关联的QP值来确定反量化单元154应用的量化程度及同样地反量化程度。也就是说,可通过调整在量化变换系数时使用的QP值来控制压缩比,即,用于表示原始序列及经压缩序列的位数目的比率。压缩比还可取决于所应用的熵译码的方法。
在反量化单元154反量化系数块之后,反变换处理单元156可将一或多个反变换应用于系数块以便产生与TU相关联的残余块。举例来说,反变换处理单元156可将反 DCT、反整数变换、反Karhunen-Loeve变换(KLT)、反旋转变换、反定向变换或另一反变换应用于系数块。
如果使用帧内预测来编码PU,那么帧内预测处理单元166可执行帧内预测以产生PU的预测性块。帧内预测处理单元166可使用帧内预测模式以基于空间相邻的PU的预测块而产生PU的预测性明度块、预测性Cb块及预测性Cr块。帧内预测处理单元166 可基于从位流解码的一或多个语法元素而确定用于PU的帧内预测模式。
块解码单元152可基于从位流提取的语法元素建构第一参考图片列表(RefPicList0) 及第二参考图片列表(RefPicList1)。此外,如果使用帧间预测来编码PU,那么熵解码单元150可提取用于PU的运动信息。运动补偿单元164可基于PU的运动信息而确定PU 的一或多个参考区域。运动补偿单元164可基于PU的一或多个参考块处的样本块产生PU的预测性明度块、预测性Cb块及预测性Cr块。
重建单元158可在适当时使用与CU的TU相关联的明度变换块、Cb变换块及Cr 变换块以及CU的PU的预测性明度块、预测性Cb块及预测性Cr块(即,帧内预测数据或帧间预测数据)来重建CU的明度译码块、Cb译码块以及Cr译码块。举例来说,重建单元158可将明度变换块、Cb变换块及Cr变换块的样本添加到预测性明度块、预测性 Cb块及预测性Cr块的对应样本以重建CU的明度译码块、Cb译码块及Cr译码块。
滤波器单元160可执行解块操作以减少与CU的明度译码块、Cb译码块及Cr译码块相关联的块伪影。视频解码器30可将CU的明度译码块、Cb译码块及Cr译码块存储于经解码图片缓冲器162中。经解码图片缓冲器162可提供参考图片以用于后续运动补偿、帧内预测及在显示装置(例如图1的显示装置32)上的呈现。举例来说,视频解码器 30可基于经解码图片缓冲器162中的明度块、Cb块及Cr块对其它CU的PU执行帧内预测操作或帧间预测操作。
根据本发明的各种实例,视频解码器30可经配置以执行基于调色板的译码。当选定基于调色板的解码模式(例如)以用于CU或PU时,基于调色板的解码单元165(例如) 可执行基于调色板的解码。举例来说,基于调色板的解码单元165可经配置以产生具有指示像素值的条目的调色板,接收使视频数据块中的至少一些像素位置与调色板中的条目相关联的信息,基于信息选择调色板中的像素值,及基于调色板中的选定像素值重建块的像素值。尽管各种功能经描述为通过基于调色板的解码单元165执行,但这些功能中的一些或全部可通过其它处理单元或不同处理单元的组合来执行。
基于调色板的解码单元165可接收调色板译码模式信息,并在调色板译码模式信息指示调色板译码模式适用于块时执行上述操作。在调色板译码模式信息指示调色板译码模式不适用于块时,或在其它模式信息指示不同模式的使用时,基于调色板的解码单元165使用非基于调色板的译码模式(例如,HEVC帧间预测译码模式或HEVC帧内预测译码模式)解码视频数据块。视频数据的块可为(例如)根据HEVC译码过程产生的CU或 PU。基于调色板的译码模式可包括多个不同基于调色板的译码模式中的一者,或可存在单一基于调色板的译码模式。
根据本发明的方面,基于调色板的解码单元165可经配置以执行本文中所描述的用于调色板译码的技术的任何组合。上文关于编码器20所描述的调色板译码的细节在此关于解码器30不重复,但应理解,解码器30可相对于本文关于编码器20所描述的任何基于调色板的编码过程而执行互逆的基于调色板的解码过程。
视频解码器30可经配置以确定当前块以调色板模式经译码,对第一语法元素的多个实例进行旁路模式解码以用于(例如)使用CABAC译码过程的旁路模式来重建当前块,且在对第一语法元素的多个实例进行旁路模式解码之后,对第二语法元素的多个实例进行上下文模式解码以用于(例如)使用CABAC译码过程重建当前块。视频解码器30可对第一语法元素的多个实例中的任何两个实例进行旁路模式解码,而不与第二语法元素的多个实例中的任一个实例的上下文模式解码相交错。在一些实例中,第一语法元素包括 palette_index_idc语法元素或palette_escape_val语法元素中的一者,且第二语法元素包括palette_run_msb_id_plus1语法元素。视频解码器30可在用于当前块的索引块译码部分前面对第一语法元素的多个实例进行旁路解码。
视频解码器30可解码指示第一语法元素的实例的数目的第三语法元素,其中对第一语法元素的多个实例进行旁路模式解码包括基于第三语法元素对第一语法元素的多个实例进行旁路模式解码。视频解码器30可使用哥伦布莱斯码、指数哥伦布码、截断莱斯码、一元码或哥伦布莱斯码与指数哥伦布码的级联或前述码中的任一者的截断版本来解码第三语法元素。
图4为说明符合本发明的技术的确定用于译码视频数据的调色板的实例的概念图。图4的实例包含具有与第一调色板184相关联的第一PAL(调色板)译码单元(CU)180及与第二调色板192相关联的第二PAL CU 188的图片178。如下文将较详细描述且根据本发明的技术,第二调色板192是基于第一调色板184。图片178还包含通过帧内预测译码模式译码的块196及通过帧间预测译码模式译码的块200。
出于解释的目的,在视频编码器20(图1及图2)及视频解码器30(图1及图3)的上下文中并关于HEVC视频译码标准描述图4的技术。然而,应理解本发明的技术不限于此方式,且可通过其它视频译码处理器及/或装置应用于其它视频译码过程及/或标准中。
大体来说,调色板指代对于当前经译码的CU(在图4的实例中为CU 188)来说为主要的及/或代表性的多个像素值。第一调色板184(还可被称作索引184)及第二调色板192(还可被称作索引192)经展示为包含多个调色板(还可被称作多个索引)。在一些实例中,根据本发明的方面,视频译码器(例如视频编码器20或视频解码器30)可针对CU的每一色彩分量单独地译码调色板(例如,索引)。举例来说,视频编码器20可编码用于CU的明度(Y)分量的调色板、用于CU的色度(U)分量的另一调色板及用于CU的色度(V)分量的又一调色板。在此实例中,Y调色板的条目可表示CU的像素的Y值,U调色板的条目可表示CU的像素的U值,且V调色板的条目可表示CU的像素的V值。
在其它实例中,视频编码器20可编码用于CU的全部色彩分量的单一调色板。在此实例中,视频编码器20可编码具有为三重值(包含Yi、Ui及Vi)的第i个条目的调色板。在这种情况下,调色板包含用于像素的分量中的每一者的值。因此,作为具有多个独立调色板的调色板集合的调色板184及192的表示仅为一个实例且不意欲为限制性的。
在图4的实例中,第一调色板184包含分别具有条目索引值1、条目索引值2及条目索引值3的三个条目202到206。第一调色板184使得索引值(例如,第一调色板184 的左列中展示的值)与像素值相关。举例来说,如图4中所展示,第一调色板184中的一者使索引值1、2及3分别与像素值A、B及C相关。如本文中所描述,视频译码器(例如,视频编码器20或视频解码器30)可使用基于调色板的译码对使用索引1到3(还可表达为索引值1到3)的块的像素进行译码,而不是译码第一CU 180的实际像素值。也就是说,对于第一CU 180的每一像素位置,视频编码器20可编码用于像素的索引值,其中索引值与第一调色板184中的一或多者中的像素值相关联。视频解码器30可从位流获得索引值并使用索引值及第一调色板184中的一或多者重建像素值。因此,第一调色板184是通过视频编码器20在经编码视频数据位流中发射以供视频解码器30在基于调色板的解码时使用。
在一些实例中,视频编码器20及视频解码器30可基于第一调色板184来确定第二调色板192。举例来说,视频编码器20及/或视频解码器30可定位确定预测性调色板(在此实例中,第一调色板184)所依据的一或多个块。在一些实例(例如图4中所说明的实例)中,视频编码器20及/或视频解码器30可在确定第二CU 188的预测性调色板时定位先前经译码的CU,例如左侧相邻CU(第一CU 180)。
在图4的实例中,第二调色板192包含分别具有条目索引值1、条目索引值2及条目索引值3的三个条目208到212。第二调色板192使索引值(例如,第一调色板192的左列中展示的值)与像素值相关。举例来说,如图4中所展示,第二调色板192中的一者使索引值1、2及3分别与像素值A、B及D相关。在此实例中,视频编码器20可译码指示第一调色板184的哪些条目包含于第二调色板192中的一或多个语法元素。在图4 的实例中,一或多个语法元素作为向量216说明。向量216具有多个相关联二进制(或位),其中每一二进制指示与所述二进制相关联的调色板预测符是否用于预测当前调色板的条目。举例来说,向量216指示第一调色板184中的前两个条目(202及204)包含于第二调色板192中(向量216中的值“1”),而第一调色板184中的第三条目不包含于第二调色板192中(向量216中的值“0”)。在图4的实例中,向量为布林(Boolean)向量。
在一些实例中,视频编码器20及视频解码器30可在执行调色板预测时确定调色板预测符列表(其还可被称作调色板预测符表)。调色板预测符列表可包含来自用以预测用于译码当前块的调色板的一或多个条目的一或多个相邻块的调色板的条目。视频编码器20及视频解码器30可以相同方式来建构列表。视频编码器20及视频解码器30可译码数据(例如向量216)以指示调色板预测符列表的哪些条目将包含于用于译码当前块的调色板中。
图5为说明符合本发明的技术的确定至用于像素的块的调色板的索引的实例的概念图。举例来说,图5包含索引块240(还可被称作映射240或索引映射240),所述索引块包含使与索引值相关联的像素的对应位置相关于调色板244的条目的索引值(例如,索引值1、2及3)。
虽然索引块240在图5的实例中说明为包含每一像素位置的索引值,但应理解在其它实例中,并非全部像素位置可与使像素值与调色板244的条目相关的索引值相关联。也就是说,如上文所提到,在一些实例中,如果像素值并不包含于调色板244中,那么视频编码器20可编码(且视频解码器30可从经编码位流获得)用于索引块240中的位置的实际像素值(或其经量化版本)的指示。
在一些实例中,视频编码器20及视频解码器30可经配置以译码指示哪些像素位置与哪些索引值相关联的额外映射。举例来说,假设索引块240中的(i,j)条目对应于CU 的(i,j)位置。视频编码器20可编码用于指示条目是否具有相关联索引值的索引块(即,每一像素位置)的每一条目的一或多个语法元素。举例来说,视频编码器20可编码具有值为一的旗标以指示在CU中的(i,j)位置处的像素值为调色板244中的值中的一者。
在此实例中,视频编码器20还可编码调色板(图5的实例中展示为244)。在调色板244包含单个条目及相关联像素值的情况下,视频编码器20可跳过索引值的用信号发送。视频编码器20可编码具有零值的旗标以指示在CU中的(i,j)位置处的像素值并非调色板 244中的值中的一者。在此实例中,视频编码器20还可编码像素值的指示以供视频解码器30用于重构像素值。在一些情况下,可以有损方式译码像素值。
CU的一个位置中的像素的值可提供CU的其它位置中的一或多个其它像素的值的指示。举例来说,可存在CU的相邻像素位置将具有相同像素值或可映射到相同索引值 (在有损译码情况下,其中多于一个像素值可映射到单个索引值)的相对高概率。
因此,视频编码器20可编码指示按给定扫描次序的具有相同像素值或索引值的多个连续像素或索引值的一或多个语法元素。如上文所提到,相同值像素或索引值的字串可在本文中称为游程。在出于说明的目的的实例中,如果按给定扫描次序的两个连续像素或索引具有不同值,那么游程等于零。如果按给定扫描次序的两个连续像素或索引具有相同值但按扫描次序的第三像素或索引具有不同值,那么游程等于一。对于具有相同值的三个连续索引或像素,游程为二,等等。视频解码器30可从经编码的位流获得指示游程的语法元素,并可使用数据以确定具有相同像素或索引值的连续位置的数目。
在根据本发明的技术的一些实例中,熵编码单元118及熵解码单元150可经配置以对索引块240进行熵译码。举例来说,熵编码单元118及熵解码单元150可经配置以对游程长度(例如,游程长度值或游程长度码)及/或与调色板模式中的索引块相关的二进制调色板预测向量进行熵译码。
图6为符合本发明的技术的说明确定最大上方复制游程长度、假设光栅扫描次序的实例的概念图。在图6的实例中,如果由虚线280涵盖的像素中无一者经译码为逸出样本,那么最大可能游程长度为35(即,无阴影的像素位置的数目)。如果在虚线280内的像素中的一或多者经译码为逸出样本,假设标记为逸出像素(具有“X”的像素位置)的像素为在虚线280内的在扫描次序中的第一逸出像素,那么最大可能经译码的上方复制游程长度为五。
在一些实例中,视频解码器30可仅针对在虚线280内的像素确定游程模式(例如,其中像素经译码的调色板模式)。因此,在最差的情况下,视频解码器30为BlockWidth-1 像素做出确定。在一些实例中,视频解码器30可经配置以实施关于像素(为其检查游程模式)的最大数目的某些限制。举例来说,如果像素与当前像素处于相同的行,那么视频解码器30可仅检查在虚线280内的像素。视频解码器30可推断在虚线280内的所有其它像素未经译码为逸出样品。图6中的实例假设光栅扫描次序。然而,所述技术可应用于其它扫描次序,例如竖直、水平横移,及竖直横移。
根据本发明的实例,如果当前游程模式为‘上方复制’,那么用于当前像素的游程长度的上下文可取决于相对于当前像素的上方相邻像素的索引的索引值。在此实例中,如果相对于当前像素的上方相邻像素在当前CU的外侧,那么视频解码器假设相对应的索引等于预定义常数k。在一些实例中,k=0。
在熵译码期间,熵编码器或解码器可将待编码或解码的符号的位安置为一或多个二进制。二进制可指示符号的值是否等于零。熵译码器或熵解码器可使用二进制的值来调整熵译码过程。在一些实例中,熵编码器或熵解码器还可使用二进制来指示值是否大于特定值,例如,大于零、大于一,等等。
在一些实例中,如果当前模式为‘上方复制’,那么游程长度码字的第一二进制基于相对于当前样本(例如,像素)的上方相邻样本(例如,像素)是否等于0而选择两个候选CABAC上下文中的一者。
作为另一实例,如果当前模式为‘先前复本’,那么游程长度码字的第一二进制基于索引值是否等于0、等于1、等于2或大于2来选择四个候选CABAC上下文中的一者。
图8为说明符合本发明的技术的用于解码视频数据的实例过程的流程图。出于说明的目的,通常将图8的过程描述为由视频解码器30执行,但多种其它处理器也可执行图8中所展示的过程。在一些实例中,块解码单元152、基于调色板的解码单元165及/ 或熵解码单元150可执行图8中展示的一或多个过程。
在图8的实例中,视频解码器30可经配置以从经编码视频位流接收图片的经调色板模式编码的视频数据块(800)。视频解码器30可经配置以从经编码视频位流接收用于经调色板模式编码的视频数据块的经编码调色板模式信息(802)。在一些实例中,经编码调色板模式信息可包含第一语法元素的多个实例及不同于第一语法元素的多个语法元素。举例来说,第一语法元素可包含palette_index_idc或palette_escape_val,且不同于第一语法元素的多个语法元素可包含palette_run_msb_id_plus1语法元素。作为另一实例,第一语法元素可为对调色板条目的阵列的索引的指示,或第一语法元素可指定用于对应于逸出样本的色彩分量的经量化的逸出经译码样本值。不同于第一语法元素的多个语法元素可包含指定表示游程长度的变量的二进制表示中的最高有效位的索引的语法元素及指定游程类型模式的语法元素。
作为另一实例,不同于第一语法元素的多个语法元素可为不同于第一语法元素的任何语法元素及所有语法元素。如本文中关于一些实例所描述,不同于第一语法元素的多个语法元素还可不同于第二语法元素、第三语法元素及/或第四语法元素。在这些实例中,不同于第一语法元素、第二语法元素、第三语法元素及第四语法元素的多个语法元素可为不同于第一语法元素、第二语法元素、第三语法元素及/或第四语法元素的任何语法元素及所有语法元素。在一些实例中,不同于第一语法元素的多个语法元素可为不被旁路模式解码及/或不被旁路模式解码的任何语法元素及所有语法元素。
视频解码器30可经配置以在使用上下文模式解码不同于第一语法元素的多个语法元素之前使用旁路模式(例如,CABAC译码过程的旁路模式)解码第一语法元素的多个实例(804)。视频解码器30可经配置以在使用旁路模式解码第一语法元素的多个实例之后使用上下文模式(例如,常规CABAC模式(而不是旁路模式))来解码不同于第一语法元素的多个语法元素(806)。在一些实例中,第一语法元素的多个实例包含用于经调色板模式编码的视频数据块的第一语法元素的所有实例。在这些实例中,在解码任何后续数据(例如,不同于第一语法元素的多个语法元素)之前使用旁路模式解码第一语法元素的所有实例。以其它方式陈述,视频解码器30可经配置以在使用旁路模式解码用于经调色板模式编码的视频数据块的第一语法元素的所有实例之后使用上下文模式解码不同于第一语法元素的多个语法元素。
视频解码器30可经配置以使用第一语法元素的经解码的多个实例及不同于第一语法元素的经解码的多个语法元素来解码经调色板模式编码的视频数据块(808)。在一些实例中,第一语法元素的多个实例被分组在一起,以使得当解码经调色板模式编码的视频数据块时在旁路模式与上下文模式之间的切换减少。
在一些实例中,经编码调色板模式信息可包含指示第一语法元素的实例的数目(例如,指示存在多少第一语法元素的实例用于经调色板模式编码的视频数据块)的第二语法元素。不同于第一语法元素的多个语法元素还可不同于第二语法元素。在这些实例中,视频解码器30可经配置以在解码不同于第一语法元素及第二语法元素的多个语法元素之前使用旁路模式解码第二语法元素。在一些实例中,无第二语法元素的实例在用于经调色板模式编码的视频数据块的第一语法元素的任何两个实例之间交错。在一些实例中,视频解码器30可经配置以在解码等于由第二语法元素指示的数目的第一语法元素的多个实例之后,确定在经编码视频位流中在第一语法元素的实例的数目之后的后续数据对应于不同于第一语法元素及第二语法元素的多个语法元素。在一些实例中,视频解码器30可经配置以使用截断莱斯码与指数哥伦布码的级联来解码第二语法元素。
在一些实例中,经编码调色板模式信息可包含第三语法元素及第四语法元素。在这些实例中,视频解码器30可经配置以解码第三语法元素从而确定对应于第三语法元素的值指示经调色板模式编码的视频数据块是否包含逸出像素。视频解码器30可经配置以解码第四语法元素从而确定对应于第四语法元素的值指示调色板大小。视频解码器30 可经配置以在使用旁路模式解码第一语法元素及第二语法元素的多个实例之后,基于所确定的分别对应于第三语法元素及第四语法元素的值使用上下文模式解码不同于第一语法元素及第二语法元素的多个语法元素。
在一些实例中,经编码调色板模式信息可包含另一语法元素,且视频解码器30可经配置以解码此其它语法元素以确定对应于此其它语法元素的值,此其它语法元素指定调色板索引针对经调色板模式编码的视频数据块所具有的不同值的数目。视频解码器30 可经配置以在使用旁路模式解码第一语法元素及第二语法元素的多个实例之后基于对应于此其它语法元素的所确定的值使用上下文模式解码不同于第一语法元素及第二语法元素的多个语法元素。
在一些实例中,经编码调色板模式信息可包含另一语法元素,且视频解码器30可经配置以解码此其它语法元素以确定对应于此其它语法元素的值指示用于经调色板模式编码的视频数据块的palette_run_type_flag[xC][yC]的语法元素的最末实例。
在一些实例中,视频解码器30可经配置以确定经编码视频数据块具有一或多个逸出样本。在这些实例中,视频解码器30可经配置以解码经编码视频数据块中的一或多个逸出样本中的最末逸出样本。视频解码器30可经配置以推断适用于经编码视频数据块的在最末逸出样本之后的样本的索引值。视频解码器30可经配置以使用用于最末逸出样本之后的样本的每一样本的所推断索引值来解码经编码视频数据块的最末逸出样本之后的样本。
在一些实例中,视频解码器30可经配置以确定所接收的调色板索引的数目。在这些实例中,视频解码器30可经配置以基于所接收的调色板索引的数目及第一语法元素的实例的数目而确定剩余调色板索引的数目。视频解码器30可经配置以基于所接收的调色板索引的数目及第一语法元素的实例的数目而确定用于经编码视频数据块的最大可能游程值。在一些实例中,视频解码器30可经配置以根据nCbS* nCbS-scanPos-1-paletteIndicesLeft确定用于经编码视频数据块的最大可能游程值,其中 nCbS指定经编码视频数据块的大小,scanPos指定扫描位置,且paletteIndicesLeft指定剩余调色板索引的数目。
图9为说明符合本发明的技术的用于编码视频数据的实例过程的流程图。出于说明的目的,通常将图9的过程描述为由视频编码器20执行,但多种其它处理器也可执行图9中所展示的过程。在一些实例中,块编码单元100、基于调色板的编码单元122及/ 或熵编码单元118可执行图9中展示的一或多个过程。
在图9的实例中,视频编码器20可经配置以确定视频数据块将以调色板模式编码(900)。视频编码器20可经配置以使用调色板模式将视频数据块编码成经编码位流(902)。在一些实例中,视频编码器20可经配置以产生用于视频数据块的调色板模式信息(904)。调色板模式信息可包含第一语法元素的多个实例及不同于第一语法元素的多个语法元素。举例来说,第一语法元素可包含palette_index_idc或palette_escape_val,且不同于第一语法元素的多个语法元素可包含palette_run_msb_id_plus1语法元素。作为另一实例,第一语法元素可为对调色板条目的阵列的索引的指示,或第一语法元素可指定用于对应于逸出样本的色彩分量的经量化的逸出经译码样本值。不同于第一语法元素的多个语法元素可包含指定表示游程长度的变量的二进制表示中的最高有效位的索引的语法元素及指定游程类型模式的语法元素。
作为另一实例,不同于第一语法元素的多个语法元素可为不同于第一语法元素的任何语法元素及所有语法元素。如本文中关于一些实例所描述,不同于第一语法元素的多个语法元素还可不同于第二语法元素、第三语法元素及/或第四语法元素。在这些实例中,不同于第一语法元素、第二语法元素、第三语法元素及第四语法元素的多个语法元素可为不同于第一语法元素、第二语法元素、第三语法元素及/或第四语法元素的任何语法元素及所有语法元素。在一些实例中,不同于第一语法元素的多个语法元素可为不被旁路模式编码及/或不被旁路模式编码的任何语法元素及所有语法元素。
视频编码器20可经配置以在使用上下文模式将不同于第一语法元素的多个语法元素编码成经编码位流之前使用旁路模式(例如,CABAC译码过程的旁路模式)来将第一语法元素的多个实例编码成经编码位流(906)。视频编码器20可经配置以在使用旁路模式将第一语法元素的多个实例编码成经编码位流之后使用上下文模式(例如,常规的基于CABAC上下文的模式)将不同于第一语法元素的多个语法元素编码成经编码位流(908)。在一些实例中,第一语法元素的多个实例被分组在一起,以使得当编码经调色板模式编码的视频数据块时在旁路模式与上下文模式之间的切换减少。
在一些实例中,第一语法元素的多个实例包含用于视频数据块的第一语法元素的所有实例。在这些实例中,在编码任何后续数据(例如,不同于第一语法元素的多个语法元素)之前使用旁路模式编码第一语法元素的所有实例。以其它方式陈述,视频编码器20 可经配置以在使用旁路模式编码用于视频数据块的第一语法元素的所有实例之后使用上下文模式编码不同于第一语法元素的多个语法元素。
在一些实例中,调色板模式信息可包含指示第一语法元素的实例的数目的第二语法元素(例如,指示存在用于视频数据块的第一语法元素的实例的数目)。不同于第一语法元素的多个语法元素还可不同于第二语法元素。在这些实例中,视频编码器20可经配置以在编码不同于第一语法元素及第二语法元素的多个语法元素之前使用旁路模式将第二语法元素编码成经编码位流。在一些实例中,视频编码器20可经配置以编码第一语法元素的多个实例,以使得无第二语法元素的实例在用于经编码位流中的经调色板模式编码的视频数据块的第一语法元素的任何两个实例之间交错。在一些实例中,视频编码器20可经配置以在经编码位流中的第一语法元素的经编码的多个实例之后将第二语法元素编码成经编码位流。举例来说,视频编码器20可经配置以首先编码第一语法元素的所有实例,且随后将第二语法元素编码成经编码位流。在一些实例中,视频编码器 20可经配置以使用截断莱斯码与指数哥伦布码的级联来编码第二语法元素。
在一些实例中,调色板模式信息可包含第三语法元素及第四语法元素。在这些实例中,视频编码器20可经配置以将对应于第三语法元素的值编码成经编码位流,所述第三语法元素指示视频数据块是否包含逸出像素。视频编码器20可经配置以使对应于第四语法元素的指示调色板大小的值成为经编码位流。在一些实例中,调色板模式信息可包含另一语法元素,且视频编码器20可经配置以将对应于指定调色板索引针对视频数据块所具有的不同值的数目的此其它语法元素的值编码成经编码位流。
在一些实例中,经编码调色板模式信息可包含另一语法元素,且视频编码器20可经配置以编码对应于此其它语法元素的值,此其它语法元素指示用于视频数据块的palette_run_type_flag[xC][yC]的语法元素的最末实例。
在一些实例中,视频编码器20可经配置以编码视频数据块中的一或多个逸出样本中的最末逸出样本。在这些实例中,视频编码器20可经配置以推断适用于视频数据块的在最末逸出样本之后的样本的索引值。视频编码器20可经配置以使用用于最末逸出样本之后的样本中的每一样本的所推断索引值来编码视频数据块的在最末逸出样本之后的样本。
应理解,本文所描述的所有技术可单独地或以组合方式使用。举例来说,视频编码器20及/或其一或多个组件及视频解码器30及/或其一或多个组件可以任何组合执行本发明中所描述的技术。
应认识到,取决于实例,本文中所描述的技术中的任一者的某些动作或事件可以不同序列执行、可添加、合并或完全省略(例如,并非所有所描述动作或事件对于所述技术的实是必要的)。此外,在某些实例中,可(例如)经由多线程处理、中断处理或多个处理器同时而非依序执行动作或事件。另外,尽管出于清晰的目的,本发明的某些方面被描述为由单一模块或单元执行,但应理解,本发明的技术可通过与视频译码器相关联的单元或模块的组合来执行。
出于说明的目的,已关于发展中HEVC标准而描述本发明的某些方面。然而,本发明中所描述的技术可适用于其它视频译码过程,包含尚未开发的其它标准或专属视频译码过程。
上文所描述的技术可通过视频编码器20(图1及2)及/或视频解码器30(图1及3)执行,两者通常可称作视频译码器。同样地,视频译码在适用时可指代视频编码或视频解码。
根据本发明,术语“或”可解译为“及/或”,其中上下文并不以其它方式指示。另外,虽然例如“一或多个”或“至少一个”或其类似者的短语可已被用于本文中所公开的一些特征(但并非其它者);并未使用此语言的特征可解释为具有暗示上下文并不以其它方式指示的这种含义。
虽然在上文所描述技术的各种方面的特定组合,但提供这些组合仅为了说明本发明中描述的技术的实例。因此,本发明的技术不应限于这些实例组合且可涵盖本发明中描述的技术的各种方面的任何可设想组合。
在一或多个实例中,所描述功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述功能可作为一或多个指令或码而存储于计算机可读媒体上或经由计算机可读媒体发射,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体(其对应于有形媒体(例如数据存储媒体)),或包含有助于(例如)根据通信协议将计算机程序从一处传送到另一处的任何媒体的通信媒体。以此方式,计算机可读媒体大体可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)例如信号或载波的通信媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中所描述的技术的指令、程序代码及/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
借助于实例而非限制,此计算机可读存储媒体可包括RAM、ROM、EEPROM、 CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、闪速存储器,或可用以存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。并且,将任何连接恰当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或例如红外线、无线电及微波的无线技术从网站、服务器或其它远程源发射指令,那么同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波的无线技术包含于媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而实际上有关于非暂时性有形存储媒体。如本文所使用的磁盘及光盘包含紧密光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘用激光以光学方式再生数据。以上各物的组合也应包含于计算机可读媒体的范围内。
可通过一或多个处理器来执行指令,所述一或多个处理器例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指前述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,可在经配置用于编码及解码的专用硬件及/或软件模块内提供本文中所描述的功能性,或将本文中所描述的功能性并入于组合式编解码器中。并且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明的技术可以多种装置或设备予以实施,所述装置或设备包含无线手机、集成电路(IC)或IC的集合(例如,芯片组)。本发明中描述各种组件、模块或单元以强调经配置以执行所公开技术的装置的功能性方面,但未必要求由不同硬件单元来实现。实情为,如上文所描述,各种单元可组合于编解码器硬件单元中,或结合合适软件及/或固件通过互操作性硬件单元(包含如上所述的一或多个处理器)的集合来提供。
本文中已描述各种实例。涵盖所描述的系统、操作、功能或实例的任何组合。这些及其它实例处于以下权利要求书的范围内。
Claims (39)
1.一种解码视频数据的方法,所述方法包括:
从经编码视频位流接收图片的经调色板模式编码的视频数据块;
从所述经编码视频位流接收用于所述经调色板模式编码的视频数据块的经编码调色板模式信息,其中所述经编码调色板模式信息包含第一语法元素的多个实例及不同于所述第一语法元素的多个语法元素,其中所述第一语法元素为对调色板条目的阵列的索引的指示或指定用于对应于逸出样本的色彩分量的经量化的逸出经译码样本值,且其中不同于所述第一语法元素的所述多个语法元素包含指定表示游程长度的变量的二进制表示中的最高有效位的索引的语法元素及指定游程类型模式的语法元素;
在剖析不同于来自所述经编码视频位流的所述第一语法元素的所述多个语法元素之前剖析来自所述经编码视频位流的所述第一语法元素的所述多个实例;
在剖析来自所述经编码视频位流的所述第一语法元素的所述多个实例之后剖析不同于来自所述经编码视频位流的所述第一语法元素的所述多个语法元素;
使用基于上下文的自适应二进制算术译码旁路模式解码所述第一语法元素的所述多个实例;
使用基于上下文的自适应二进制算术译码上下文模式解码不同于所述第一语法元素的所述多个语法元素;及
使用所述第一语法元素的所述经解码的多个实例和不同于所述第一语法元素的所述经解码的多个语法元素来解码所述经调色板模式编码的视频数据块,其中所述第一语法元素的所述多个实例被分组在一起,以使得当解码所述经调色板模式编码的视频数据块时,在所述基于上下文的自适应二进制算术译码旁路模式与所述基于上下文的自适应二进制算术译码上下文模式之间的切换减少。
2.根据权利要求1所述的方法,其中所述第一语法元素的所述多个实例包含用于所述经调色板模式编码的视频数据块的所述第一语法元素的所有实例。
3.根据权利要求1所述的方法,其中所述第一语法元素为palette_index_idc或palette_escape_val,且其中不同于所述第一语法元素的所述多个语法元素包含palette_run_msb_id_plus1语法元素。
4.根据权利要求1所述的方法,其中所述经编码调色板模式信息包含指示所述第一语法元素的实例的数目的第二语法元素,其中不同于所述第一语法元素的所述多个语法元素不同于所述第二语法元素,且其中所述方法进一步包括:
在剖析不同于来自所述经编码视频位流的所述第一语法元素及所述第二语法元素的所述多个语法元素之前剖析来自所述经编码视频位流的所述第二语法元素;及
使用所述基于上下文的自适应二进制算术译码旁路模式解码所述第二语法元素。
5.根据权利要求4所述的方法,其中在用于所述经调色板模式编码的视频数据块的所述第一语法元素的任何两个实例之间无所述第二语法元素的实例交错。
6.根据权利要求4所述的方法,其进一步包括:
在解码等于由所述第二语法元素指示的所述数目的所述第一语法元素的实例的数目之后确定在所述经编码视频位流中的在所述第一语法元素的实例的所述数目之后的后续数据对应于不同于所述第一语法元素及所述第二语法元素的所述多个语法元素。
7.根据权利要求4所述的方法,其中所述经编码调色板模式信息包含第三语法元素和第四语法元素,其中所述方法进一步包括:
解码所述第三语法元素以确定对应于所述第三语法元素的值指示所述经调色板模式编码的视频数据块是否包含逸出样本;
解码所述第四语法元素以确定对应于所述第四语法元素的值指示调色板大小;及
基于分别对应于所述第三语法元素及所述第四语法元素的所述所确定的值使用所述基于上下文的自适应二进制算术译码上下文模式来解码不同于所述第一语法元素及所述第二语法元素的所述多个语法元素。
8.根据权利要求4所述的方法,其中所述经编码调色板模式信息包含第三语法元素,其中所述方法进一步包括:
解码所述第三语法元素以确定对应于所述第三语法元素的值,所述第三语法元素指定调色板索引针对所述经调色板模式编码的视频数据块所具有的不同值的数目;及
基于对应于所述第三语法元素的所述所确定的值使用所述基于上下文的自适应二进制算术译码上下文模式来解码不同于所述第一语法元素及所述第二语法元素的所述多个语法元素。
9.根据权利要求4所述的方法,其中所述经编码调色板模式信息包含第三语法元素,其中所述方法进一步包括:
解码所述第三语法元素以确定对应于所述第三语法元素的值指示用于所述经调色板模式编码的视频数据块的palette_run_type_flag[xC][yC]的语法元素的最末实例。
10.根据权利要求4所述的方法,其进一步包括:
使用截断莱斯码与指数哥伦布码的级联来解码所述第二语法元素。
11.根据权利要求1所述的方法,其进一步包括:
确定所述经编码视频数据块具有一或多个逸出样本;
解码所述经编码视频数据块中的所述一或多个逸出样本中的最末逸出样本;
推断适用于所述经编码视频数据块的在所述最末逸出样本之后的样本的索引值;及
使用在所述最末逸出样本之后的所述样本中的每一样本的所述所推断索引值来解码所述经编码视频数据块的在所述最末逸出样本之后的所述样本。
12.根据权利要求4所述的方法,其进一步包括:
确定所接收的调色板索引的数目;
基于所接收的调色板索引的所述数目及所述第一语法元素的实例的所述数目确定剩余调色板索引的数目;及
基于所接收的调色板索引的所述数目及所述第一语法元素的实例的所述数目确定表示游程长度的所述变量的值等于用于所述经编码视频数据块的最大可能游程值。
13.根据权利要求12所述的方法,其中用于所述经编码视频数据块的所述最大可能游程值等于:nCbS*nCbS-scanPos-1-palettelndicesLeft,其中nCbS指定所述经编码视频数据块的大小,scanPos指定扫描位置,且palettelndicesLeft指定剩余调色板索引的所述数目。
14.一种用于解码视频数据的装置,所述装置包括:
经配置以存储所述视频数据的存储器;及
与所述存储器通信的视频解码器,所述视频解码器经配置以:
从所述存储器接收图片的经调色板模式编码的视频数据块;
接收用于所述经调色板模式编码的视频数据块的经编码调色板模式信息,其中所述经编码调色板模式信息包含第一语法元素的多个实例及不同于所述第一语法元素的多个语法元素,其中所述第一语法元素为对调色板条目的阵列的索引的指示或指定用于对应于逸出样本的色彩分量的经量化的逸出经译码样本值,且其中不同于所述第一语法元素的所述多个语法元素包含指定表示游程长度的变量的二进制表示中的最高有效位的索引的语法元素及指定游程类型模式的语法元素;
在剖析不同于来自所述经编码调色板模式信息的所述第一语法元素的所述多个语法元素之前剖析来自所述经编码调色板模式信息的所述第一语法元素的所述多个实例;
在剖析来自所述经编码调色板模式信息的所述第一语法元素的所述多个实例之后剖析不同于来自所述经编码调色板模式信息的所述第一语法元素的所述多个语法元素;
使用基于上下文的自适应二进制算术译码旁路模式解码所述第一语法元素的所述多个实例;
使用基于上下文的自适应二进制算术译码上下文模式解码不同于所述第一语法元素的所述多个语法元素;及
使用所述第一语法元素的所述经解码的多个实例及不同于所述第一语法元素的所述经解码的多个语法元素来解码所述经调色板模式编码的视频数据块,
其中所述第一语法元素的所述多个实例被分组在一起,以使得当解码所述经调色板模式编码的视频数据块时,在所述基于上下文的自适应二进制算术译码旁路模式与所述基于上下文的自适应二进制算术译码上下文模式之间的切换减少。
15.根据权利要求14所述的装置,其中所述第一语法元素的所述多个实例包含用于所述经调色板模式编码的视频数据块的所述第一语法元素的所有实例。
16.根据权利要求14所述的装置,其中所述第一语法元素为palette_index_idc或palette_escape_val,且其中不同于所述第一语法元素的所述多个语法元素包含palette_run_msb_id_plus1语法元素。
17.根据权利要求14所述的装置,其中所述经编码调色板模式信息包含指示所述第一语法元素的实例的数目的第二语法元素,其中不同于所述第一语法元素的所述多个语法元素不同于所述第二语法元素,且其中所述视频解码器经进一步配置以:
在剖析不同于来自所述经编码调色板模式信息的所述第一语法元素及所述第二语法元素的所述多个语法元素之前剖析来自所述经编码调色板模式信息的所述第二语法元素;
使用所述基于上下文的自适应二进制算术译码旁路模式解码所述第二语法元素。
18.根据权利要求17所述的装置,其中在用于所述经调色板模式编码的视频数据块的所述第一语法元素的任何两个实例之间无所述第二语法元素的实例交错。
19.根据权利要求17所述的装置,其中所述视频解码器经进一步配置以在解码等于由所述第二语法元素指示的所述数目的所述第一语法元素的实例的数目之后确定在所述经编码视频位流中的在所述第一语法元素的实例的所述数目之后的后续数据对应于不同于所述第一语法元素及所述第二语法元素的所述多个语法元素。
20.根据权利要求17所述的装置,其中所述经编码调色板模式信息包含第三语法元素及第四语法元素,其中所述视频解码器经进一步配置以:
解码所述第三语法元素以确定对应于所述第三语法元素的值指示所述经调色板模式编码的视频数据块是否包含逸出样本;
解码所述第四语法元素以确定对应于所述第四语法元素的值指示调色板大小;及
基于分别对应于所述第三语法元素及所述第四语法元素的所述所确定的值使用所述基于上下文的自适应二进制算术译码上下文模式来解码不同于所述第一语法元素及所述第二语法元素的所述多个语法元素。
21.根据权利要求17所述的装置,其中所述经编码调色板模式信息包含第三语法元素,其中所述视频解码器经进一步配置以:
解码所述第三语法元素以确定对应于所述第三语法元素的值,所述第三语法元素指定调色板索引针对所述经调色板模式编码的视频数据块所具有的不同值的数目;及
基于对应于所述第三语法元素的所述所确定的值使用所述基于上下文的自适应二进制算术译码上下文模式来解码不同于所述第一语法元素及所述第二语法元素的所述多个语法元素。
22.根据权利要求17所述的装置,其中所述经编码调色板模式信息包含第三语法元素,其中所述视频解码器经进一步配置以:
解码所述第三语法元素以确定对应于所述第三语法元素的值指示用于所述经调色板模式编码的视频数据块的palette_run_type_flag[xC][yC]的语法元素的最末实例。
23.根据权利要求17所述的装置,其中所述视频解码器经进一步配置以:
使用截断莱斯码与指数哥伦布码的级联来解码所述第二语法元素。
24.根据权利要求14所述的装置,其中所述视频解码器经进一步配置以:
确定所述经编码视频数据块具有一或多个逸出样本;
解码所述经编码视频数据块中的所述一或多个逸出样本中的最末逸出样本;
推断适用于所述经编码视频数据块的在所述最末逸出样本之后的样本的索引值;及
使用在所述最末逸出样本之后的所述样本中的每一样本的所述所推断索引值来解码所述经编码视频数据块的在所述最末逸出样本之后的所述样本。
25.根据权利要求17所述的装置,其中所述视频解码器经进一步配置以:
确定所接收的调色板索引的数目;
基于所接收的调色板索引的所述数目及所述第一语法元素的实例的所述数目确定剩余调色板索引的数目;及
基于所接收的调色板索引的所述数目及所述第一语法元素的实例的所述数目确定表示游程长度的所述变量的值等于用于所述经编码视频数据块的最大可能游程值。
26.根据权利要求25所述的装置,其中用于所述经编码视频数据块的所述最大可能游程值等于:nCbS*nCbS-scanPos-1-palettelndicesLeft,其中nCbS指定所述经编码视频数据块的大小,scanPos指定扫描位置,且palettelndicesLeft指定剩余调色板索引的所述数目。
27.一种非暂时性计算机可读存储媒体,其上存储有指令,所述指令在执行时使得一或多个处理器:
从存储器接收图片的经调色板模式编码的视频数据块;
接收用于所述经调色板模式编码的视频数据块的经编码调色板模式信息,其中所述经编码调色板模式信息包含第一语法元素的多个实例及不同于所述第一语法元素的多个语法元素,其中所述第一语法元素为对调色板条目的阵列的索引的指示或指定用于对应于逸出样本的色彩分量的经量化的逸出经译码样本值,且其中不同于所述第一语法元素的所述多个语法元素包含指定表示游程长度的变量的二进制表示中的最高有效位的索引的语法元素及指定游程类型模式的语法元素;
在剖析不同于来自所述经编码调色板模式信息的所述第一语法元素的所述多个语法元素之前剖析来自所述经编码调色板模式信息的所述第一语法元素的所述多个实例;
在剖析来自所述经编码调色板模式信息的所述第一语法元素的所述多个实例之后剖析不同于来自所述经编码调色板模式信息的所述第一语法元素的所述多个语法元素;
使用基于上下文的自适应二进制算术译码旁路模式解码所述第一语法元素的所述多个实例;
使用基于上下文的自适应二进制算术译码上下文模式解码不同于所述第一语法元素的所述多个语法元素;及
使用所述第一语法元素的所述经解码的多个实例及不同于所述第一语法元素的所述经解码的多个语法元素来解码所述经调色板模式编码的视频数据块,其中所述第一语法元素的所述多个实例被分组在一起,以使得当解码所述经调色板模式编码的视频数据块时,在所述基于上下文的自适应二进制算术译码旁路模式与所述基于上下文的自适应二进制算术译码上下文模式之间的切换减少。
28.一种编码视频数据的方法,所述方法包括:
确定视频数据块将以调色板模式经译码;
使用调色板模式将所述视频数据块编码成经编码位流,其中使用调色板模式编码所述视频数据块包括:
产生用于所述视频数据块的调色板模式信息,其中所述调色板模式信息包含第一语法元素的多个实例及不同于所述第一语法元素的多个语法元素,其中所述第一语法元素为对调色板条目的阵列的索引的指示或指定用于对应于逸出样本的色彩分量的经量化的逸出经译码样本值,且其中不同于所述第一语法元素的所述多个语法元素包含指定表示游程长度的变量的二进制表示中的最高有效位的索引的语法元素及指定游程类型模式的语法元素;
在使用基于上下文的自适应二进制算术译码上下文模式将不同于所述第一语法元素的所述多个语法元素编码成所述经编码位流之前使用基于上下文的自适应二进制算术译码旁路模式将所述第一语法元素的所述多个实例编码成所述经编码位流;及
在使用所述基于上下文的自适应二进制算术译码旁路模式将所述第一语法元素的所述多个实例编码成所述经编码位流之后使用所述基于上下文的自适应二进制算术译码上下文模式将不同于所述第一语法元素的所述多个语法元素编码成所述经编码位流,
其中所述第一语法元素的所述多个实例被分组在一起,以使得当编码所述经调色板模式编码的视频数据块时,在所述基于上下文的自适应二进制算术译码旁路模式与所述基于上下文的自适应二进制算术译码上下文模式之间的切换减少。
29.根据权利要求28所述的方法,其中所述第一语法元素的所述多个实例包含用于所述视频数据块的所述第一语法元素的所有实例。
30.根据权利要求28所述的方法,其中所述第一语法元素为palette_index_idc或palette_escape_val,且其中不同于所述第一语法元素的所述多个语法元素包含palette_run_msb_id_plus1语法元素。
31.根据权利要求28所述的方法,其中所述调色板模式信息包含指示所述第一语法元素的实例的数目的第二语法元素,其中不同于所述第一语法元素的所述多个语法元素不同于所述第二语法元素,且其中所述方法进一步包括:
在不同于所述第一语法元素及所述第二语法元素的所述多个语法元素的所述编码之前使用所述基于上下文的自适应二进制算术译码旁路模式将所述第二语法元素编码成所述经编码位流。
32.根据权利要求31所述的方法,其中在用于所述视频数据块的所述第一语法元素的任何两个实例之间无所述第二语法元素的实例交错。
33.根据权利要求31所述的方法,其进一步包括:
在所述经编码位流中的所述第一语法元素的所述经编码的多个实例之后将所述第二语法元素编码成所述经编码位流。
34.根据权利要求31所述的方法,其中所述调色板模式信息包含第三语法元素和第四语法元素,其中所述方法进一步包括:
将对应于所述第三语法元素的指示所述视频数据块是否包含逸出样本的值编码成所述经编码位流;及
将对应于所述第四语法元素的指示调色板大小的值编码成所述经编码位流。
35.根据权利要求31所述的方法,其中所述调色板模式信息包含第三语法元素,其中所述方法进一步包括:
将对应于所述第三语法元素的值编码成所述经编码位流,所述第三语法元素指定调色板索引针对所述视频数据块所具有的不同值的数目。
36.根据权利要求31所述的方法,其中所述调色板模式信息包含第三语法元素,其中所述方法进一步包括:
编码对应于所述第三语法元素的指示用于所述视频数据块的palette_run_type_flag[xC][yC]的语法元素的最末实例的值。
37.根据权利要求31所述的方法,其进一步包括:
使用截断莱斯码与指数哥伦布码的级联来编码所述第二语法元素。
38.根据权利要求28所述的方法,其进一步包括:
编码所述视频数据块中的所述一或多个逸出样本中的最末逸出样本;
推断适用于所述视频数据块的在所述最末逸出样本之后的样本的索引值;及
使用在所述最末逸出样本之后的所述样本中的每一样本的所述所推断索引值来编码所述视频数据块的在所述最末逸出样本之后的所述样本。
39.一种用于编码视频数据的装置,所述装置包括:
经配置以存储所述视频数据的存储器;及
与所述存储器通信的视频编码器,所述视频编码器经配置以:
确定存储于所述存储器中的视频数据块将以调色板模式经编码;
使用调色板模式将所述视频数据块编码成经编码位流,其中经配置以使用调色板模式编码所述视频数据块的所述视频编码器包括经配置以进行以下各者的所述视频编码器:
产生用于所述视频数据块的调色板模式信息,其中所述调色板模式信息包含第一语法元素的多个实例及不同于所述第一语法元素的多个语法元素,其中所述第一语法元素为对调色板条目的阵列的索引的指示或指定用于对应于逸出样本的色彩分量的经量化的逸出经译码样本值,且其中不同于所述第一语法元素的所述多个语法元素包含指定表示游程长度的变量的二进制表示中的最高有效位的索引的语法元素及指定游程类型模式的语法元素;
在使用基于上下文的自适应二进制算术译码上下文模式将不同于所述第一语法元素的所述多个语法元素编码成所述经编码位流之前使用基于上下文的自适应二进制算术译码旁路模式将所述第一语法元素的所述多个实例编码成所述经编码位流;及
在使用所述基于上下文的自适应二进制算术译码旁路模式将所述第一语法元素的所述多个实例编码成所述经编码位流之后使用所述基于上下文的自适应二进制算术译码上下文模式将不同于所述第一语法元素的所述多个语法元素编码成所述经编码位流,
其中所述第一语法元素的所述多个实例被分组在一起,以使得当编码所述经调色板模式编码的视频数据块时,在所述基于上下文的自适应二进制算术译码旁路模式与所述基于上下文的自适应二进制算术译码上下文模式之间的切换减少。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US62/110,302 | 2015-01-30 | ||
| US15/009,477 | 2016-01-28 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1237171A1 HK1237171A1 (zh) | 2018-04-06 |
| HK1237171B true HK1237171B (zh) | 2021-01-15 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9942551B2 (en) | Palette index grouping for video coding | |
| CA2945039C (en) | Maximum palette parameters in palette-based video coding | |
| US10097842B2 (en) | Restriction of escape pixel signaled values in palette mode video coding | |
| CN107710765B (zh) | 用于译码视频数据的方法和装置及计算机可读存储介质 | |
| CA2945042C (en) | Coding runs in palette-based video coding | |
| US10178395B2 (en) | Explicit signaling of escape sample positions in palette coding mode for video coding | |
| US20160234494A1 (en) | Restriction on palette block size in video coding | |
| US20160255352A1 (en) | Palette index value swapping in palette mode | |
| EP3146725A1 (en) | Escape sample coding in palette-based video coding | |
| JP2018507612A (ja) | ビデオコーディングのためのパレットモードコーディング | |
| HK1237171B (zh) | 编码、解码视频数据的方法、装置和计算机可读存储媒体 | |
| HK1237171A1 (zh) | 编码、解码视频数据的方法、装置和计算机可读存储媒体 | |
| OA18322A (en) | Palette index grouping for high throughput cabac coding. |