用于编码/解码视频数据的方法和设备与流程

文档序号:19456691发布日期:2019-12-20 20:02阅读:241来源:国知局
用于编码/解码视频数据的方法和设备与流程

本申请案主张以下各者的权利:2014年3月25日申请的美国临时申请案第61/970,257号;2014年4月17日申请的美国临时申请案第61/981,105号;2014年5月23日申请的美国临时申请案第62/002,668号;2014年6月20日申请的美国临时申请案第62/015,327号;2014年6月27日申请的美国临时申请案第62/018,461号;和2014年8月24日申请的美国临时申请案第62/041,119号,所述申请案中的每一者的全部内容被以引用的方式并入本文中。

本发明涉及视频编码和解码。



背景技术:

数字视频能力可并入到广泛范围的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(pda)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话(所谓的“智能电话”)、视频电话会议装置、视频流式传输装置和其类似者。数字视频装置实施视频压缩技术,例如由mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4第10部分先进视频译码(avc)所定义的标准、目前正在开发的高效率视频译码(hevc)标准和这些标准的扩展中所描述的那些视频压缩技术。视频装置可通过实施这些视频压缩技术而更有效率地发射、接收、编码、解码和/或存储数字视频信息。

视频压缩技术执行空间(图片内)预测和/或时间(图片间)预测以减少或去除视频序列中固有的冗余。对于基于块的视频译码,可将视频切片(即,视频帧或视频帧的一部分)分割成视频块。图片的经帧内译码(i)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测来编码。图片的经帧间译码(p或b)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。

空间或时间预测产生用于待译码的块的预测性块。残余数据表示待译码的原始块与预测性块之间的像素差。经帧间译码块是根据指向形成预测性块的参考样品的块的运动向量来编码,且残余数据指示经译码块与预测性块之间的差。经帧内译码块是根据帧内译码模式和残余数据来编码。为了进一步压缩,可将残余数据从像素域变换到变换域,从而产生接着可经量化的残余系数。最初布置成二维阵列的经量化系数可经扫描以便产生系数的一维向量,且熵译码可应用以达成甚至更多压缩。



技术实现要素:

本发明涉及视频编码和解码技术。明确地说,本发明描述用于利用基于调色板的译码模式编码和解码视频数据的技术。在基于调色板的译码模式中,视频数据的块的像素值可相对于相关联于视频数据的块的色彩值的调色板而译码。色彩值的调色板可由视频编码器来确定且可含有对于特定块来说最常见的色彩值。视频编码器可将色彩值的调色板中的索引指派给视频数据的块中的每一像素,且将此索引发信到视频解码器。视频解码器可接着使用调色板中的索引来确定将什么色彩值用于块中的特定像素。

除了发信调色板中的索引之外,视频编码器也可在经编码视频位流中发射调色板本身。用于发射调色板的技术可包含明确发信调色板值,以及根据来自一或多个先前经译码块的调色板条目预测用于当前块的调色板条目。本发明描述用于发信指示来自视频数据的先前经译码块的哪些调色板条目可重复用于视频数据的当前块的一或多个语法元素(例如,二进制预测向量)的技术。本发明进一步描述用于编码和解码二进制预测向量的技术。

在本发明的一个实例中,一种解码视频数据的方法包括:接收用于视频数据的当前块的经编码二进制预测向量;使用行程长度解码技术来解码所述经编码二进制预测向量;基于所述二进制预测向量产生用于视频数据的所述当前块的调色板,所述二进制预测向量包括指示先前所用调色板条目是否被重复用于用于视频数据的所述当前块的所述调色板的条目;和使用所述调色板来解码视频数据的所述当前块。

在本发明的另一实例中,一种编码视频数据的方法包括:产生用于视频数据的所述当前块的调色板;产生用于用于视频数据的所述当前块的所述调色板的二进制预测向量,所述二进制预测向量包括指示先前所用调色板条目是否将重复用于用于视频数据的所述当前块的所述调色板的条目;使用行程长度编码技术来编码所述二进制预测向量;和使用所述调色板来编码视频数据的所述当前块。

在本发明的另一实例中,一种经配置以解码视频数据的设备包括:经配置以存储所述视频数据的存储器;和与所述存储器通信的视频解码器,所述视频解码器经配置以:接收用于所述视频数据的当前块的经编码二进制预测向量;使用行程长度解码技术来解码所述经编码二进制预测向量;基于所述二进制预测向量产生用于视频数据的所述当前块的调色板,所述二进制预测向量包括指示先前所用调色板条目是否被重复用于用于视频数据的所述当前块的所述调色板的条目;和使用所述调色板来解码视频数据的所述当前块。

在本发明的另一实例中,一种经配置以编码视频数据的设备包括:经配置以存储所述视频数据的存储器;与所述存储器通信的视频编码器,所述视频编码器经配置以:产生用于所述视频数据的当前块的调色板;产生用于用于视频数据的所述当前块的所述调色板的二进制预测向量,所述二进制预测向量包括指示先前所用调色板条目是否被重复用于用于视频数据的所述当前块的所述调色板的条目;使用行程长度编码技术来编码所述二进制预测向量;和使用所述调色板来编码视频数据的所述当前块。

在本发明的另一实例中,一种经配置以解码视频数据的设备包括:用于接收用于视频数据的当前块的经编码二进制预测向量的装置;用于使用行程长度解码技术来解码所述经编码二进制预测向量的装置;用于基于所述二进制预测向量产生用于视频数据的所述当前块的调色板的装置,所述二进制预测向量包括指示先前所用调色板条目是否被重复用于用于视频数据的所述当前块的所述调色板的条目;和用于使用所述调色板来解码视频数据的所述当前块的装置。

在本发明的另一实例中,一种经配置以编码视频数据的设备包括:用于产生用于视频数据的所述当前块的调色板的装置;用于产生用于用于视频数据的所述当前块的所述调色板的二进制预测向量的装置,所述二进制预测向量包括指示先前所用调色板条目是否被重复用于用于视频数据的所述当前块的所述调色板的条目;用于使用行程长度编码技术来编码所述二进制预测向量的装置;和用于使用所述调色板来编码视频数据的所述当前块的装置。

在另一实例中,本发明描述一种存储指令的计算机可读存储媒体,所述指令在执行时使经配置以解码视频数据的装置的一或多个处理器进行以下操作:接收用于所述视频数据的当前块的经编码二进制预测向量;使用行程长度解码技术来解码所述经编码二进制预测向量;基于所述二进制预测向量产生用于视频数据的所述当前块的调色板,所述二进制预测向量包括指示先前所用调色板条目是否被重复用于用于视频数据的所述当前块的所述调色板的条目;和使用所述调色板来解码视频数据的所述当前块。

在另一实例中,本发明描述一种存储指令的计算机可读存储媒体,所述指令在执行时使经配置以编码视频数据的装置的一或多个处理器进行以下操作:产生用于所述视频数据的当前块的调色板;产生用于用于视频数据的所述当前块的所述调色板的二进制预测向量,所述二进制预测向量包括指示先前所用调色板条目是否被重复用于用于视频数据的所述当前块的所述调色板的条目;使用行程长度编码技术来编码所述二进制预测向量;和使用所述调色板来编码视频数据的所述当前块。

在以下随附图式和描述中阐述一或多个实例的细节。其它特征、目标和优点将从所述描述和附图以及权利要求书而显而易见。

附图说明

图1为说明可实施本发明中所描述的技术的实例视频译码系统的框图。

图2为说明可实施本发明中所描述的技术的实例视频编码器的框图。

图3为说明可实施本发明中所描述的技术的实例视频解码器的框图。

图4为说明图2的视频编码器的实例基于调色板的编码单元的框图。

图5为说明根据本发明的技术的实例调色板预测技术的概念图。

图6为说明根据本发明的技术的实例二进制预测向量编码技术的概念图。

图7为说明图3的视频解码器的实例基于调色板的解码单元的框图。

图8为说明本发明的实例编码方法的流程图。

图9为说明本发明的实例解码方法的流程图。

图10为说明符合本发明的技术的确定用于基于调色板的视频译码的调色板条目的实例的概念图。

具体实施方式

本发明包含用于视频译码和压缩的技术。明确地说,本发明描述用于视频数据的基于调色板的译码的技术。在传统视频译码中,图像经假定为连续色调且在空间上平滑。基于这些假定,已开发出各种工具,例如基于块的变换、滤波等,且这些工具已展示针对天然内容视频的良好性能。

然而,在类似远程台式、合作工作和无线显示器的应用中,计算机产生的屏幕内容(例如,文字或计算机图形)可为待压缩的主内容。此类型的内容倾向于具有离散色调和特征尖锐线,和高对比度目标边界。连续色调和平滑度的假定可不再适用于屏幕内容,且因此,传统视频译码技术可不为压缩包含屏幕内容的视频数据的有效率方式。

基于调色板的译码技术可特别适合于屏幕产生内容译码。举例来说,假定视频数据的特定区域具有相对较小数目个色彩。视频译码器(例如,视频编码器或视频解码器)可将所谓的“调色板”形成为用于表示特定区域(例如,给定块)的视频数据的色彩表。每一像素可与调色板中表示像素的色彩的条目相关联。举例来说,视频译码器可译码使像素值与调色板中的适当值关联的索引。

用于视频数据的基于调色板的译码的技术可与一或多个其它译码技术(例如,用于帧间或帧内预测性译码的技术)一起使用。举例来说,如下文将较详细描述,编码器或解码器或组合的编码器解码器(编解码器)可经配置以执行帧间或帧内预测性译码,以及基于调色板的译码。

在一些实例中,基于调色板的译码技术可经配置以与一或多个视频译码标准一起使用。一些实例视频译码标准包含itu-th.261、iso/iecmpeg-1visual、itu-th.262或iso/iecmpeg-2visual、itu-th.263、iso/iecmpeg-4visual和itu-th.264(也称为iso/iecmpeg-4avc),包含其可扩展视频译码(svc)和多视图视频译码(mvc)扩展。在另一实例中,基于调色板的译码技术可经配置以与高效率视频译码(hevc)一起使用。hevc是由itu-t视频译码专家组(vceg)和iso/iec动画专家组(mpeg)的关于视频译码的联合合作小组(jct-vc)开发的新视频译码标准。

最近,hevc的设计已由itu-t视频译码专家组(vceg)和iso/iec动画专家组(mpeg)的关于视频译码的联合合作小组(jct-vc)定案。下文被称作hevc版本1的最新hevc规范描述于“itu-th.265(v1)”中,所述文件从2015年3月24起可从http://www.itu.int/itu-t/recommendations/rec.aspx?rec=11885&lang=en获得。文件itu-th.265,h系列:视听和多媒体系统,视听服务的基础结构-移动视频的译码(seriesh:audiovisualandmultimediasystems,infrastructureofaudiovisualservices-codingofmovingvideo),“高效率视频译码”(2013年4月)也描述hevc标准。下文被称作rext的范围扩展的新规则描述于从2015年3月24日其可从http://www.itu.int/itu-t/recommendations/rec.aspx?rec=12296&lang=en获得的“itu-th.265(v2)”中。

当使用实例基于调色板的译码技术时,视频编码器可通过以下操作来编码视频数据的块:确定用于块的调色板(例如,明确地译码调色板、预测调色板或其组合)、查找调色板中的条目以表示每一像素的值和用使像素值与调色板关联的用于像素的索引值来编码块。视频解码器可从经编码位流获得用于块的调色板,以及用于块的像素的索引值。视频解码器可使像素的索引值与调色板的条目关联以重建块的像素值。以上实例希望提供基于调色板的译码的一般描述。

除了将索引值发信到调色板中之外,视频编码器也可在经编码视频位流中发射调色板本身。用于发射调色板的技术可包含明确发信调色板值,以及根据来自一或多个先前经译码块的调色板条目预测用于当前块的调色板条目。调色板预测技术可包含语法元素串(例如,二进制预测向量),其中二进制预测向量中的每一语法元素的值指示来自视频数据的先前经译码块的调色板条目是否可重复用于视频数据的当前块。这些二进制预测向量对于大的调色板尺寸来说和/或对于存储大量调色板条目以用于调色板预测过程中的可能使用的情况来说可能较长。大的二进制预测向量可导致不可接受的位速率等级。鉴于这些缺点,本发明描述用于在调色板预测过程中编码和解码二进制预测向量的技术。

图1为说明可利用本发明的技术的实例视频译码系统10的框图。如本文中所使用,术语“视频译码器”大体上指视频编码器和视频解码器两者。在本发明中,术语“视频译码”或“译码”可大体上指视频编码或视频解码。视频译码系统10的视频编码器20和视频解码器30表示可经配置以执行根据本发明中所描述的各种实例的用于基于调色板的视频译码的技术的装置的实例。举例来说,视频编码器20和视频解码器30可经配置以使用基于调色板的译码或非基于调色板的译码来选择性地译码视频数据的各种块,例如,高效率视频译码(hevc)标准中的cu或pu。非基于调色板的译码模式可指各种帧间预测性时间译码模式或帧内预测性空间译码模式,例如,由hevc版本1指定的各种译码模式。

如图1所示,视频译码系统10包含源装置12和目的地装置14。源装置12产生经编码视频数据。因此,源装置12可被称作视频编码装置或视频编码设备。目的地装置14可解码由源装置12产生的经编码视频数据。因此,目的地装置14可被称作视频解码装置或视频解码设备。源装置12和目的地装置14可为视频译码装置或视频译码设备的实例。源装置12、目的地装置14或两者的各种实施方案可包含一或多个处理器和耦合到所述一或多个处理器的存储器。存储器可包含(但不限于)ram、rom、eeprom、快闪存储器,或可用以存储指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体,如本文中所描述。

源装置12和目的地装置14可包括广泛范围的装置,包含台式计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话的手持电话、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机(in-carcomputer)或其类似者。

目的地装置14可经由信道16从源装置12接收经编码视频数据。信道16可包括能够将经编码视频数据从源装置12移动到目的地装置14的一或多个媒体或装置。在一个实例中,信道16可包括使源装置12能够实时地将经编码视频数据直接发射到目的地装置14的一或多个通信媒体。在此实例中,源装置12可根据通信标准(例如,无线通信协议)来调制经编码视频数据,且可将经调制视频数据发射到目的地装置14。一或多个通信媒体可包含无线和/或有线通信媒体,例如,射频(rf)频谱或一或多个物理发射线。一或多个通信媒体可形成基于封包的网络(例如,局域网、广域网或全球网络(例如,因特网))的部分。一或多个通信媒体可包含路由器、交换器、基站,或促进从源装置12到目的地装置14的通信的其它装备。

在另一实例中,信道16可包含存储由源装置12产生的经编码视频数据的存储媒体。在此实例中,目的地装置14可例如经由磁盘存取或卡存取来存取存储媒体。存储媒体可包含多种局部存取的数据存储媒体,例如,blu-ray碟片、dvd、cd-rom、快闪存储器,或用于存储经编码视频数据的其它合适数字存储媒体。

在另一实例中,信道16可包含存储由源装置12产生的经编码视频数据的文件服务器或另一中间存储装置。在此实例中,目的地装置14可经由流式传输或下载来存取存储于文件服务器或另一中间存储装置处的经编码视频数据。文件服务器可为能够存储经编码视频数据且将经编码视频数据发射到目的地装置14的类型的服务器。实例文件服务器包含网站服务器(例如,用于网站)、文件传送协议(ftp)服务器、网络附加存储(nas)装置、http流式传输服务器和本地磁盘机。

目的地装置14可经由标准数据连接(例如,因特网连接)来存取经编码视频数据。数据连接的实例类型可包含无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等),或适于存取存储于文件服务器上的经编码视频数据的两者的组合。经编码视频数据从文件服务器的发射可为流式传输、下载发射或两者的组合。

用于视频译码中的基于调色板的译码模式的本发明的技术不限于无线应用或设定。所述技术可应用于支持多种多媒体应用的视频译码,例如,空中电视广播、有线电视发射、卫星电视发射、流式传输视频发射,例如经由因特网编码存储于数据存储媒体上的视频数据、解码存储于数据存储媒体上的视频数据,或其它应用。在一些实例中,视频译码系统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集成或可在所述目的地装置外。大体来说,显示装置32显示经解码视频数据。显示装置32可包括多种显示装置,例如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一类型的显示装置。

视频编码器20和视频解码器30各自可实施为多种合适电路中的任一者,例如,一或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、硬件或其任何组合。如果所述技术部分地以软件来实施,那么装置可将用于软件的指令存储于合适的非暂时性计算机可读存储媒体中,且可在硬件中使用一或多个处理器来执行所述指令以执行本发明的技术。可将上述内容(包含硬件、软件、硬件与软件的组合等)中的任一者视为一或多个处理器。视频编码器20和视频解码器30中的每一者可包含于一或多个编码器或解码器中,编码器或解码器中的任一者可集成为相应装置中的组合式编码器/解码器(编码解码器)的部分。

本发明可大体上指视频编码器20将某一信息“发信”或“发射”到另一装置,例如,视频解码器30。术语“发信”或“发射”可大体上指用以解码压缩视频数据的语法元素和/或其它数据的传达。此传达可实时地或近实时地发生。替代地,可历时时间跨度发生此通信,例如此通信可在当编码时在经编码位流中将语法元素存储到计算机可读存储媒体时发生,接着,在存储到此媒体之后可由解码装置在任何时间检索所述语法元素。

在一些实例中,视频编码器20和视频解码器30根据视频压缩标准(例如,上文提及且在hevc版本1中描述的hevc标准)操作。除了基本hevc标准之外,存在持续努力产生用于hevc的可调式视频译码、多视图视频译码和3d译码扩展。另外,可提供基于调色板的译码模式(例如,如本发明中所描述)以用于扩展hevc标准。在一些实例中,本发明中所描述的用于基于调色板的译码的技术可应用于经配置以根据其它视频译码标准或未来标准操作的编码器和解码器。因此,hevc编解码器中用于译码单元(cu)或预测单元(pu)的译码的基于调色板的译码模式的应用是为了实例的目的而描述。

在各种实例中,本发明中所描述的技术可包含基于调色板的译码中的用于确定、预测和/或发信调色板的各种组合的技术。如下文将较描述,所述技术可包含确定调色板预测器、产生二进制预测向量和编码/解码二进制预测向量的任何组合。尽管出于说明和清晰目的可个别地描述某些实例,本发明涵盖本文中所描述的用于基于调色板的译码的技术的任何组合。

如下文参看图4到9将更详细解释,视频编码器20可经配置以:产生用于所述视频数据的当前块的调色板;产生用于用于视频数据的所述当前块的所述调色板的二进制预测向量,所述二进制预测向量包括指示先前所用调色板条目(即,用于先前经译码块的调色板中的条目)是否被重复用于用于视频数据的所述当前块的所述调色板的条目;使用行程长度编码技术来编码所述二进制预测向量;和使用所述调色板来编码视频数据的所述当前块。同样地,视频解码器30可经配置以:接收用于所述视频数据的当前块的经编码二进制预测向量;使用行程长度解码技术来解码所述经编码二进制预测向量;基于所述二进制预测向量产生用于视频数据的所述当前块的调色板,所述二进制预测向量包括指示先前所用调色板条目是否被重复用于用于视频数据的所述当前块的所述调色板的条目;和使用所述调色板来解码视频数据的所述当前块。

在hevc和其它视频译码标准中,视频序列通常包含一系列图片。图片也可被称作“帧”。图片可包含表示为sl、scb和scr的三个样本阵列。sl为亮度样本的二维阵列(即,块)。scb为cb色度样本的二维阵列。scr为cr色度样本的二维阵列。色度(chrominance)样本在本文中也可被称作“色度(chroma)”样本。在其它情况下,图片可为单色的且可仅包含亮度样本阵列。

为产生图片的经编码表示,视频编码器20可产生译码树型单元(ctu)的集合。ctu中的每一者可为亮度样本的译码树型块、色度样本的两个对应译码树型块,和用以译码译码树型块的样本的语法结构。译码树型块可为样本的n×n块。ctu也可被称作“树型块”或“最大译码单元”(lcu)。hevc的ctu可广泛地类似于例如h.264/avc的其它标准的宏块。然而,ctu未必限于特定大小且可包含一或多个译码单元(cu)。切片可包含在光栅扫描中连续排序的整数数目个ctu。

为产生经译码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的译码块中的对应样本之间的不同。举例来说,视频编码器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的变换块以产生用于tu的系数块。系数块可为变换系数的二维阵列。变换系数可为纯量。举例来说,视频编码器20可将一或多个变换应用于tu的亮度变换块以产生用于tu的亮度系数块。视频编码器20可将一或多个变换应用于tu的cb变换块以产生用于tu的cb系数块。视频编码器20可将一或多个变换应用于tu的cr变换块以产生用于tu的cr系数块。

在产生系数块(例如,亮度系数块、cb系数块或cr系数块)之后,视频编码器20可量化系数块。量化通常指变换系数经量化以可能减少用以表示变换系数的数据的量从而提供进一步压缩的过程。在视频编码器20量化系数块之后,视频编码器20可熵编码指示经量化变换系数的语法元素。举例来说,视频编码器20可对指示经量化变换系数的语法元素执行上下文自适应性二进制算术译码(cabac)。视频编码器20可在位流中输出经熵编码的语法元素。

为了将cabac编码应用于语法元素,视频编码器可将语法元素二进制化以形成被称为“二进制数(bin)”的一系列一或多个位。另外,视频编码器可识别译码上下文。译码上下文可识别译码具有特定值的二进制数的概率。举例来说,译码上下文可指示对0值二进制数进行译码的0.7概率,以及对1值二进制数进行译码的0.3概率。在识别译码上下文之后,视频编码器20可将间隔划分成下部子间隔和上部子间隔。所述子间隔中的一者可与值0相关联且另一子间隔可与值1相关联。所述子间隔的宽度可与由经识别的译码上下文关于相关联值所指示的概率成正比。如果语法元素的二进制数具有与下部子间隔相关联的值,那么经编码值可等于下部子间隔的下边界。如果语法元素的同一二进制数具有与上部子间隔相关联的值,那么经编码值可等于上部子间隔的下边界。为了编码语法元素的下一个二进制数,视频编码器可重复这些步骤,其中间隔为与经编码位的值相关联的子间隔。当视频编码器20针对下一个二进制数重复这些步骤时,视频编码器可使用基于由经识别的译码上下文指示的概率和经编码的二进制数的实际值的经修改概率。

当视频解码器30对语法元素执行cabac解码时,视频解码器可识别译码上下文。视频解码器可接着将间隔划分成下部子间隔和上部子间隔。所述子间隔中的一者可与值0相关联且另一子间隔可与值1相关联。所述子间隔的宽度可与由经识别的译码上下文关于相关联值所指示的概率成正比。如果经编码值在下部子间隔内,那么视频解码器可解码具有与下部子间隔相关联的值的二进制数。如果经编码值在上部子间隔内,那么视频解码器可解码具有与上部子间隔相关联的值的二进制数。为了解码语法元素的下一个二进制数,视频解码器可重复这些步骤,其中间隔为含有经编码值的子间隔。当视频解码器针对下一个二进制数重复这些步骤时,视频解码器可使用基于由经识别的译码上下文指示的概率和经解码二进制数的经修改概率。视频解码器可接着对二进制数去二进制化以恢复语法元素。

并非对所有语法元素执行常规cabac编码,视频编码器可使用旁路cabac译码来编码一些语法元素(例如,二进制数)。相比于对二进制数执行常规cabac译码,对二进制数执行旁路cabac译码在计算上可花费较少。此外,执行旁路cabac译码可允许较高的并行化度和输送量。使用旁路cabac译码编码的二进制数可被称作“旁路二进制数”。将旁路二进制数分组在一起可使视频编码器和视频解码器的输送量增加。旁路译码引擎可能够在单一循环中译码若干二进制数,而常规cabac译码引擎可能够在循环中译码仅单一二进制数。旁路cabac译码引擎可更简单,因为旁路cabac译码引擎不选择上下文且可针对两个符号(0和1)采用1/2的概率。因此,在旁路cabac译码中,间隔直接分裂成两半。

视频编码器20可输出包含经熵编码的语法元素的位流。所述位流可包含形成经译码图片和相关联数据的表示的位的序列。换句话说,所述位流可包括视频数据的经译码表示。所述位流可包括网络抽象层(nal)单元的序列。所述nal单元中的每一者包含nal单元标头且囊封原始字节序列有效负载(rbsp)。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的运动向量来确定当前cu的pu的预测性块。另外,视频解码器30可反量化与当前cu的tu相关联的变换系数块。视频解码器30可对变换系数块执行反变换以重建与当前cu的tu相关联的变换块。视频解码器30可通过将当前cu的pu的预测性块的样本添加到当前cu的tu的变换块的对应样本来重建当前cu的译码块。通过重建图片的每一cu的译码块,视频解码器30可重建图片。

如上所述,本文中所描述的技术可应用于视频数据的基于调色板的译码。基于调色板的译码可大体上包含以下技术中的一或多者。利用基于调色板的视频译码,视频译码器(例如,视频编码器20和/或视频解码器30)可将所谓的“调色板”形成为用于表示特定区域(例如,给定块)的视频数据的色彩表。每一像素可与调色板中表示像素的色彩的条目相关联。举例来说,视频编码器20和/或视频解码器30可译码将像素值与调色板中的适当值关联的索引。

就hevc构架来说,作为实例,基于调色板的译码技术可经配置以用作译码单元(cu)模式。在其它实例中,基于调色板的译码技术可经配置以用作hevc的构架中的pu模式。因此,在cu模式的上下文中描述的所有随后揭示的过程可另外或替代地应用于pu。然而,这些基于hevc的实例不应被视为约束或限制本文中所描述的基于调色板的译码技术,因而,这些技术可适用于独立地或作为其它现有或尚待开发的系统/标准的部分而工作。在这些情况下,用于调色板译码的单元可为正方形块、矩形块或甚至非矩形形状的区域。

x.郭(guo)和a.萨克西纳(saxena)的文件“rce4:对用于屏幕内容的调色板译码的hevc范围扩展核心实验4(rce4)的总结报告(rce4:summaryreportofhevcrangeextensioncoreexperiments4(rce4)onpalettecodingforscreencontent)”(jctvc-p0035,美国圣何塞,2014年1月9日到17日)描述基于调色板的模式的两个测试结果,所述结果经报告达成显著的布琼特高(bjontegaard)失真率(bd率)减小,尤其对于屏幕内容。在下文简要概述所述两种方法。

在一个实例方法中,如例如x.郭、y.鲁(lu)和s.李(li)的文件“rce4:测试1.基于主要色彩的屏幕内容译码(rce4:test1.major-color-basedscreencontentcoding)”(jctvc-p0108,美国圣何塞,2014年1月9日到17日)中所描述,基于直方图的算法被用以将像素分类。明确地说,直方图中的最重要的n个峰值被选为用于译码的主要色彩。接近主要色彩的像素值将量化到主要色彩。不属于任何主要色彩集合的其它像素为忽略像素(escapepixel),所述忽略像素也在译码之前经量化。针对无损译码,不使用量化。

通过使用分类,译码单元(cu)的像素可转换成色彩索引。此后,译码主要色彩编号(majorcolournumber)和值。接着,如下所述地译码色彩索引。

●对于每一像素行,发信旗标以指示译码模式。存在三种模式:水平模式、垂直模式和普通模式。

○如果模式为水平模式,那么整个行共享相同色彩索引。在此情况下,发射色彩索引。

○如果模式为垂直模式,那么整个行与上一行相同。在此情况下,无发射。当前行复制上一行的色彩索引。

○如果模式为普通模式,那么针对每一像素位置发信旗标以指示其是否与左部像素和上部像素中的一者相同。如果不相同,那么发射索引本身。

另外,如果像素为忽略像素,那么发射像素值。

在另一实例方法中,如例如l.郭(guo)、w.濮(pu)、m.卡泽威茨(karczewicz)、j.索尔(sole)、r.约什(joshi)和f.邹(zou)的文件“rce4:对用于屏蔽内容译码的调色板模式的测试2的结果(rce4:resultsoftest2onpalettemodeforscreencontentcoding)”(jctvc-p0198,美国圣何塞,2014年1月9日到17日)中所描述,包含基于调色板的译码模式以作为cu模式。第二方法的编码过程可包含以下各者:

●调色板的发射:使用逐条目预测方案而基于左边cu(在左边相邻目前经译码的cu的cu)的调色板编码当前调色板。此后,发射调色板的非预测条目。

●像素值的发射:使用以下三个模式以光栅扫描次序编码cu中的像素:

○“执行模式”:首先发信调色板索引,继而发信“palette_run”(m)。随后的m个调色板索引与首先发信的经发信调色板索引相同。

○“上方复制模式”:发射值“copy_run”(n)以指示随后的n个调色板索引对应地与其上方相邻者相同。

○“像素模式”:首先发射预测旗标。旗标值等于1指示发射使用经重建的顶部相邻像素作为预测器的预测残余。如果此旗标的值等于0,那么在无预测的情况下发射像素值。

调色板可组成经调色板译码的块(例如,cu)的位的相对重要部分。因此,视频译码器可基于先前经译码的调色板来预测调色板的一或多个条目(例如,如上文关于“调色板的发射”所提及)。

在一些实例中,视频译码器可在预测调色板条目时产生调色板预测器列表。举例来说,c.吉斯奎特(gisquet)、g.拉络什(laroche)和p.奥诺(onno)的文件“ahg10:调色板预测器填塞(ahg10:palettepredictorstuffing)”(jctvc-q0063)揭示用于确定调色板预测器的一个实例过程。在一些实例中,视频译码器可使用布林(boolean)向量来指示调色板预测器列表中的每一项目是否用于(或不用于)预测用于目前经译码的块的调色板中的一或多个条目。

在一些实例中,调色板预测器列表中的所有项目是从先前经译码调色板(例如,用先前经译码块译码的调色板)导出。然而,这些调色板在空间上可远离当前cu,此可使调色板相关性相对变弱。一般来说,扩充调色板预测器表可能有帮助(例如,可提供更准确的预测器,此可产生效率增益)。然而,确定并使用相对大的调色板预测器表产生相对较长的布林向量。

在调色板译码的一个实例中,视频编码器20可产生语法元素,例如,指示基于调色板的译码模式是否被用于视频帧的特定区域的旗标“plt_mode_flag”。举例来说,plt_mode_flag可在视频帧的切片层级、cu层级、pu层级或任何其它层级处产生。举例来说,视频编码器20可在cu层级处产生plt_mode_flag且在经编码视频位流中发信plt_mode_flag。视频解码器30可接着在解码经编码视频位流时剖析plt_mode_flag。在此实例中,等于1的此plt_mode_flag的值指定当前cu是使用调色板模式编码。在此情况下,视频解码器30可应用基于调色板的译码模式以解码cu。在一些实例中,语法元素可指示用于cu的多个不同调色板模式中的一者。

等于0的此plt_mode_flag的值指定当前cu是使用除调色板模式外的模式编码。举例来说,可使用多种帧间预测性、帧内预测性或其它译码模式中的任一者。当plt_mode_flag的值为0时,可发射另一信息以发信哪个特定模式被用于编码相应cu,其中此特定模式通常可为hevc译码模式。为了实例目的而描述plt_mode_flag的使用。然而,在其它实例中,例如多位码的其它语法元素可用以指示基于调色板的译码模式是否将用于cu(或pu,在其它实例中),或指示将使用多个模式中的哪些模式。

plt_mode_flag或其它语法元素也可在较高层级发射。举例来说,plt_mode_flag可在切片层级发射。在此情况下,等于1的旗标的值暗示切片中的所有cu将使用调色板模式进行编码(此意味着无模式信息(例如,关于调色板模式或其它模式)需要在cu层级发射)。类似地,此旗标可在图片参数集合(pps)、序列参数集(sps)或视频参数集(vps)层级发信。又,旗标可在指定针对特定图片、切片等是否启用或停用调色板模式的这些层级中的一个层级发送,而plt_mode_flag指示基于调色板的译码模式是否被用于每一cu。在此情况下,如果在切片、pps、sps或vps层级发送的旗标或其它语法元素指示停用调色板译码模式,那么在一些实例中,可能不需要针对每一cu发信plt_mode_flag。替代地,如果在切片、pps、sps或vps层级发送的旗标或其它语法元素指示启用调色板译码模式,那么可进一步发信plt_mode_flag以指示针对每一cu是否将使用基于调色板的译码模式。再次,如上文所提及,应用这些技术以用于指示cu的基于调色板的译码可另外或替代地用以指示pu的基于调色板的译码。

例如plt_mode_flag的旗标也可或替代地有条件地发射或推断。用于发射plt_mode_flag或推断所述旗标的条件可为实例如下中的一或多者:cu的大小、帧类型、色彩空间、色彩分量、帧大小、帧速率、可调式视频译码中的层id或多视图译码中的视图id。

现将论述用于产生和发射调色板的技术。视频编码器20可经配置以产生并发信一或多个语法元素和值,所述一或多个语法元素和值可由视频解码器30使用以构建和/或重建由视频编码器20用来编码特定层级的视频帧(例如,cu)的调色板。在一些实例中,视频编码器20可指示或以其它方式发信用于每一cu的调色板。在其它实例中,视频编码器20可指示或以其它方式发信可在若干cu间共享的调色板。

调色板的大小(例如,就所包含的像素值的数目来说)可为固定值或可由视频编码器20在经编码视频位流中发信。视频解码器30可接收并解码来自经编码视频位流的调色板大小的指示。发信对于不同分量可为单独的,或可针对所有分量发信单一大小。不同分量可为(例如)亮度分量和色度分量。发信可使用一元码或截尾一元码(例如,以调色板大小的最大极限截尾的码)。也可使用指数-哥伦布(exponential-golomb)码或莱斯-哥伦布(rice-golomb)码。在一些实例中,大小的发信可以如下方式进行:在发信调色板中的条目之后,发信“stop”旗标。等于1的此旗标的值指定当前条目为调色板中的最后一个条目;等于0的此旗标的值指定调色板中存在更多条目。如果已构建的调色板击中调色板大小的最大极限,那么“stop”旗标可不由编码器发射。在一些实例中,调色板的大小也可基于旁侧信息来有条件地发射或推断,其方式与上文针对“旗标plt_mode_flag的发射”所描述的方式相同。

调色板可针对cu中的每一色彩分量而单独地发射。举例来说,可存在用于此cu的y分量的调色板、用于此cu的u分量的另一调色板和用于此cu的v分量的又一调色板。对于y调色板,条目可(假定)为此cu中的代表性y值。所述情况同样适用于u分量和v分量。可针对cu中的所有色彩分量发射调色板也是可能的。在此实例中,调色板中的第i个条目为三元组(yi,ui,vi)。在此情况下,调色板包含用于分量中的每一者的值。

调色板的预测是上文所述的“调色板的发射”的替代方法。在一些实例中,调色板预测技术可结合调色板发信技术使用。即,视频编码器20可经配置以发信可由视频解码器30使用以预测总数个调色板条目的一部分的语法元素。另外,视频编码器20可经配置以明确地发信调色板条目的另一部分。

在调色板预测方法的一个实例中,对于每一cu,发射一个旗标“pred_palette_flag”。等于1的此旗标的值指定将从过去数据预测用于当前cu的调色板,且因此不需要发射调色板。等于0的此旗标的值意味着需要发射当前cu的调色板。旗标对于不同色彩分量可为单独的(例如,因此针对yuv视频中的cu需要发射3个旗标),或可针对所有色彩分量发信单一旗标。举例来说,单一旗标可指示针对所有分量是否发射调色板或是否将预测用于所有分量的调色板。

在一些实例中,预测可以如下方式执行。如果预测旗标值等于1,那么对于当前cu,视频编码器20复制已编码的相邻cu中的一或多者的调色板。已编码的相邻cu的调色板可能已发射或预测。举例来说,复制的相邻cu可为左边的相邻cu。在左边cu的调色板不可用的情况下(如在左边cu并非使用调色板模式编码或当前cu在图片的第一列的情况下),调色板的复本可来自当前cu上方的cu。复制的调色板也可为许多相邻cu的调色板的组合。举例来说,可应用一或多个式子、函数、规则或其类似者以基于多个相邻cu中的一者或组合的调色板来产生调色板。

也可能可构建候选物列表,且由视频编码器20发射索引以指示候选cu,当前cu从其复制调色板。视频解码器30可构建相同的候选物列表,且接着使用所述索引来选择对应cu的调色板以供当前cu使用。举例来说,所述候选物列表可包含相对于切片或图片内的待译码的当前cu在上方的一个cu和在左边的一个cu。在此实例中,可发信旗标或其它语法元素以指示候选物选择。举例来说,等于0的发射旗标意味着复本来自左边cu,且等于1的发射旗标意味着复本来自顶部cu。视频解码器30选择从对应相邻cu复制的调色板且复制所述调色板以供在解码当前cu时使用。预测也可使用当前cu的因果性相邻者中的最频繁样本值来导出。

调色板的预测也可为逐条目的。对于调色板中的每一条目,视频编码器20产生并发信旗标。用于给定条目的等于1的旗标的值指定预测值(例如,来自如左边cu的选定候选cu的对应条目)被用作此条目的值。等于0的旗标的值指定:此条目并非预测的且其值将从视频编码器20发射到视频解码器30,例如,在由视频编码器20编码的位流中发信以供稍后由视频解码器30解码。

调色板被用以预测当前cu的调色板或用于构建候选物的规则的候选cu的“pred_palette_flag”的值也可基于旁侧信息以与如上文所描述的用于“旗标plt_mode_flag的发射”的方式相同的方式有条件地发射或推断。

接下来,视频编码器20可产生并发信指示什么相应调色板条目与cu中的每一像素相关联的映射。映射中的第i个条目对应于cu中的第i个位置。等于1的第i个条目的值指定cu中的此第i个位置处的像素值是调色板中的值中的一者,且进一步发射调色板索引,使得视频解码器30可重建所述像素值(倘如果调色板中仅存在一个条目,可跳过调色板索引的发射)。等于0的第i个条目的值指定cu中的第i个位置处的像素值不在调色板中,且因此,所述像素值将被明确地发射到视频解码器30。

如果cu中的一个位置处的像素值是调色板中的值,那么观察到,存在cu中的相邻位置具有相同像素值的高概率。因此,在编码针对一个位置的调色板索引(假定j,其对应于像素值s)之后,视频编码器20可发射语法元素“run”以指示在扫描达到不同像素值之前cu中具有相同像素值s的连续值的数目。举例来说,如果紧接的下一个像素值具有不同于s的值,那么发射run=0。如果下一个像素值为s,但其后的像素值并非s,那么run=1。

在不发射“run”(例如,隐含执行导出(implicitrunderivation))的情况下,“run”的值可为常数(例如,4、8、16等),或“run”的值也可取决于旁侧信息。举例来说,“run”的值可取决于块大小,例如,“run”等于当前块的宽度,或当前块的高度,或当前块的半宽度(或半高度),或块的宽度和高度的分数,或块的高度/宽度的倍数。“run”的值也可取决于qp、框架类型、色彩分量、色彩格式(例如,444、422、420)和/或色彩空间(例如,yuv、rgb)。“run”的值也可取决于扫描方向。在其它实例中,“run”的值可取决于其它类型的旁侧信息。“run”的值也可使用高阶语法(例如,pps、sps)来发信。

在一些实例中,可能不需要发射映射。“run”可仅在某些位置处开始。举例来说,“run”可仅在每一行开始处或在每隔n个行开始处开始。开始位置对于不同扫描方向可以不同。举例来说,如果使用垂直扫描,那么“run”可仅在每一列开始处或在每隔n个列开始处开始。开始位置可取决于旁侧信息。举例来说,开始位置可为每一行或每一列的中点,或每一行/列的1/n、2/n、……(n-1)/n(即,分数)处。开始位置也可取决于qp、框架类型、色彩分量、色彩格式(例如,444、422、420)和/或色彩空间(例如,yuv、rgb)。在其它实例中,“run”的开始位置可取决于其它类型的旁侧信息。开始位置也可使用高阶语法(例如,pps、sps等)来发信。

也可能的,组合隐含开始位置导出与隐含执行导出。举例来说,“run”等于两个相邻开始位置之间的距离。在开始点是每个行的开始(即,第一位置)的情况下,“run”的长度为行。

扫描方向可为垂直或水平的。有可能,针对每一cu发射旗标以指示扫描方向。旗标可针对每一分量分开地发射,或可发射单一旗标且所指示扫描方向适用于所有色彩分量。也可能使用其它扫描方向,如45度或135度。扫描阶数可为固定的或可以如上文针对“旗标plt_mode_flag的发射”所描述的相同方式取决于旁侧信息。

在上文,解释如何发射调色板。上述实例的替代例为在运作中构建调色板。在此情况下,在cu开始处,调色板中不存在条目,且当视频编码器20针对cu中的位置发信像素的新值时,将这些值包含于调色板中。即,视频编码器20在像素值针对cu中的位置产生和发射时将像素值添加到调色板。接着,cu中的具有相同值的稍后位置可引用调色板中的像素值(例如,利用索引值),而非使视频编码器20发射所述像素值。类似地,当视频解码器30接收用于cu中的位置的(例如,通过编码器发信的)新像素值时,新像素值包含由视频解码器30构建的调色板中的像素值。当cu中的稍后位置具有已添加到调色板的像素值时,视频解码器30可接收例如索引值的信息,所述索引值识别调色板中的对应像素值以用于重建cu中的像素值。

如果达到最大调色板大小(例如,当在运作中动态地构建调色板时),那么编码器和解码器共享相同机制来去除调色板的条目。一种方法为去除调色板(fifo伫列)中的最旧条目。另一方法为去除调色板中的最少使用条目。另一方法为对两种方法(调色板中的时间和使用频率)加权以决定待替换的条目。作为一个实例,如果将像素值条目从调色板去除,且所述像素值再次出现在调色板中的稍后位置处,那么编码器可发射所述像素值而非将条目包括于调色板中。另外或替代地,有可能,此像素值在已去除之后可重新键入到调色板中,例如,当编码器和解码器扫描cu中的位置时。

本发明也考虑组合初始调色板发信与调色板的运作中导出。在一个实例中,初始调色板可用像素的译码来更新。举例来说,在发射初始调色板后,视频编码器20即可将值添加到初始调色板或在扫描cu中的额外位置的像素值时改变初始调色板中的值。同样地,在接收初始调色板后,视频解码器30即可将值添加到初始调色板或在扫描cu中的额外位置的像素值时改变初始调色板中的值。类似地,编码器可发信当前cu是否使用整个调色板的发射,或运作中调色板产生,或初始调色板的发射与初始调色板通过运作中导出的更新的组合。在一些实例中,初始调色板可为最大调色板大小的完整调色板(在此情况下,初始调色板中的值可改变)或减小大小的调色板(在此情况下,将值添加到初始调色板,且任选地改变初始调色板中的值)。

在上文,描述如何通过识别像素值来发射映射。映射的发射可与上文所述的方法一起可通过发信行复制来进行。在一个实例中,行复制由视频编码器20发信,以使得用于条目的像素值等于上方的行(或在左边的列中,如果扫描是垂直的)的条目的像素值。接着,可发信‘run’的从所述行复制的条目。又,可指示其复制自的行;为此目的可缓冲上方的若干行。举例来说,存储先前四个行,且用截短的一元码或其它码来发信哪个行被复制,接着,可发信所述行有多少条目被复制(即,“run”)。因此,在一些实例中,用于条目的像素值可经发信等于当前行的直接上方的一行或两个或两个以上行中的条目的像素值。

在不发信“run”的情况下,“run”的值可为常数/固定的或可使用上文所述的方法取决于旁侧信息(且由解码器导出)。

也可能的,可能不需要发射映射。举例来说,“run”可仅在某些位置处开始。开始位置可固定或可取决于旁侧信息(且由解码器导出),因此可跳过开始位置的发信。实情为,可应用上文所述的一或多个所述技术。也可使用与上文所述相同的方法来组合隐含开始位置导出和隐含执行导出。

如果使用映射发射的两种方法,那么旗标可指示像素从调色板还是从先前行获得,且接着索引指示调色板或行中的条目且最后指示‘run’。

图2为说明可实施本发明的调色板译码技术的实例视频编码器20的框图。出于解释的目的而提供图2,且不应将所述图视为对如本发明中所广泛例示和描述的技术的限制。出于解释的目的,本发明在hevc译码的上下文中描述视频编码器20。然而,本发明的技术可适用于其它译码标准或方法。

视频编码器20表示可经配置以根据本发明中所描述的各种实例执行用于基于调色板的视频译码的技术的装置的实例。举例来说,视频编码器20可经配置以使用基于调色板的译码或非基于调色板的译码而选择性地译码视频数据的不同块(例如,hevc译码中的cu或pu)。

在图2的实例中,视频编码器20包含预测处理单元100、残余产生单元102、变换处理单元104、量化单元106、反量化单元108、反变换处理单元110、重建单元112、滤波器单元114、经解码图片缓冲器(dpb)116、视频存储器119和熵编码单元118。预测处理单元100包含帧间预测处理单元120和帧内预测处理单元126。帧间预测处理单元120包含运动估计单元和运动补偿单元(未图示)。视频编码器20也包含经配置以执行本发明中所描述的基于调色板的译码技术的各种方面的基于调色板的编码单元122。在其它实例中,视频编码器20可包含较多、较少或不同功能的组件。

如下文参看图4到9将更详细地解释,视频编码器20的基于调色板的编码单元122可经配置以:产生用于所述视频数据的当前块的调色板;产生用于用于视频数据的所述当前块的所述调色板的二进制预测向量,所述二进制预测向量包括指示先前所用调色板条目是否被重复用于用于视频数据的所述当前块的所述调色板的条目;使用行程长度编码技术来编码所述二进制预测向量;和使用所述调色板来编码视频数据的所述当前块。

视频编码器20可接收视频数据。视频编码器20可编码视频数据的图片的切片中的每一ctu。ctu中的每一者可与图片的相等大小的亮度译码树型块(ctb)和对应ctb相关联。作为编码ctu的部分,预测处理单位100可执行四分树分割以将ctu的ctb划分成逐渐较小的块。所述较小块可为cu的译码块。举例来说,预测处理单元100可将与ctu相关联的ctb分割成四个相等大小的子块,将所述子块中的一或多者分割成四个相等大小的子子块,等等。

如图2所示,视频存储器119接收用于编码视频帧内的当前视频块的视频数据。视频存储器119可存储将由视频编码器20的组件编码的视频数据(例如,经配置以存储视频数据)。存储于视频存储器119中的视频数据可(例如)从图1的视频源18获得。dpb116是存储供由视频编码器20编码视频数据(例如,在也被称作帧内或帧间预测译码模式的帧内或帧间译码模式中)时使用的参考视频数据的dpb的一个实例。视频存储器119和dpb116可由多种存储器装置中的任一者形成,例如,动态随机存取存储器(dram)(包含同步dram(sdram))、磁阻式ram(mram)、电阻式ram(rram)或其它类型的存储器装置。视频存储器119和dpb116可由同一存储器装置或单独的存储器装置提供。在各种实例中,视频存储器119可与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。

视频编码器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的样本块的样本块的区域。运动估计单元可产生指示含有用于pu的参考区域的参考图片的refpiclist0中的位置的参考索引。另外,运动估计单元可产生指示pu的译码块与相关联于参考区域的参考位置之间的空间移位的mv。举例来说,mv可为提供从当前经解码图片中的坐标到参考图片中的坐标的偏移的二维向量。运动估计单元可将参考索引和mv输出为pu的运动信息。帧间预测处理单元120的运动补偿单元可基于由pu的运动向量指示的参考位置处的实际或内插样本而产生pu的预测性块。

如果pu在b切片中,那么运动估计单元可针对pu执行单向预测或双向预测。为针对pu执行单向预测,运动估计单元可搜索refpiclist0的参考图片,或用于pu的参考区域的第二参考图片列表(“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的预测性块。

帧内预测处理单元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相关联的译码块中的块伪影。经解码图片缓冲器116可在滤波器单元114对经重建的译码块执行一或多个解块操作之后存储经重建的译码块。帧间预测处理单元120可使用含有经重建的译码块的参考图片,以对其它图片的pu执行帧间预测。另外,帧内预测处理单元126可使用经解码图片缓冲器116中的经重建的译码块,以对与cu相同的图片中的其它pu执行帧内预测。

熵编码单元118可从视频编码器20的其它功能组件接收数据。举例来说,熵编码单元118可从量化单元106接收系数块,且可从预测处理单元100接收语法元素。熵编码单元118可对数据执行一或多个熵编码操作,以产生经熵编码数据。举例来说,熵编码单元118可对数据执行上下文自适应性可变长度译码(cavlc)操作、cabac操作、可变到可变(v2v)长度译码操作、基于语法的上下文自适应性二进制算术译码(sbac)操作、概率区间分割熵(pipe)译码操作、指数-哥伦布编码操作或另一类型的熵编码操作。视频编码器20可输出包含由熵编码单元118产生的经熵编码数据的位流。举例来说,位流可包含表示用于cu的rqt的数据。

图3为说明经配置以实施本发明的技术的实例视频解码器30的框图。出于解释的目的而提供图3,且所述图并不限制如本发明中所广泛例示和描述的技术。出于解释的目的,本发明在hevc译码的上下文中描述视频解码器30。然而,本发明的技术可适用于其它译码标准或方法。

在图3的实例中,视频解码器30包含熵解码单元150、预测处理单元152、反量化单元154、反变换处理单元156、重建单元158、滤波器单元160、视频存储器163和经解码图片缓冲器(dpb)162。预测处理单元152包含运动补偿单元164和帧内预测处理单元166。视频解码器30也包含经配置以执行本发明中所描述的基于调色板的译码技术的各种方面的基于调色板的解码单元165。在其它实例中,视频解码器30可包含较多、较少或不同功能的组件。

如下文参看图4到9将更详细地解释,视频解码器30的基于调色板的解码单元165可经配置以:接收用于所述视频数据的当前块的经编码二进制预测向量(例如,利用行程长度编码进行编码的二进制预测向量);使用行程长度解码技术来解码所述经编码二进制预测向量;基于所述二进制预测向量产生用于视频数据的所述当前块的调色板,所述二进制预测向量包括指示先前所用调色板条目是否被重复用于用于视频数据的所述当前块的所述调色板的条目;和使用所述调色板来解码视频数据的所述当前块。

经译码图片缓冲器(cpb)(例如,视频存储器163)可接收并存储位流的经编码视频数据(例如,nal单元)。熵解码单元150可从cpb接收经编码视频数据(例如,nal单元)且剖析所述nal单元以解码语法元素。熵解码单元150可对所述nal单元中的经熵编码语法元素进行熵解码。预测处理单元152、反量化单元154、反变换处理单元156、重建单元158和滤波器单元160可基于从位流提取的语法元素而产生经解码视频数据。

如图3所示,视频存储器163接收用于解码视频帧内的当前视频块的视频数据。视频存储器163可存储将由视频解码器30的组件解码的视频数据(例如,经配置以存储视频数据)。存储于视频存储器163中的视频数据可(例如)从由视频编码器20产生的经编码视频位流获得。dpb162是存储供由视频解码器30解码视频数据(例如,在也被称作帧内或帧间预测译码模式的帧内或帧间译码模式中)时使用的参考视频数据的dpb的一个实例。视频存储器163和dpb162可由多种存储器装置中的任一者形成,例如,动态随机存取存储器(dram)(包含同步dram(sdram))、磁阻式ram(mram)、电阻式ram(rram)或其它类型的存储器装置。视频存储器163和dpb162可由同一存储器装置或单独的存储器装置提供。在各种实例中,视频存储器163可与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。

位流的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执行帧内预测或帧间预测操作。

图4为更详细地展示视频编码器20的基于调色板的编码单元122的框图。基于调色板的编码单元122可经配置以执行用于编码二进制预测向量的本发明的实例技术中的一或多者。

如上所述,基于调色板的编码单元122可经配置以利用基于调色板的编码模式来编码视频数据的块(例如,cu或pu)。在基于调色板的编码模式中,调色板可包含由索引编号且表示可用以指示像素值的色彩分量值(例如,rgb、yuv等)或强度的条目。调色板产生单元203可经配置以接收用于视频数据的当前块的像素值212且产生用于视频数据的当前块的色彩值的调色板。调色板产生单元203可使用用于产生视频数据的当前块的调色板的任何技术,包含上文所论述的基于直方图的技术。调色板产生单元203可经配置以产生任何大小的调色板。在一个实例中,调色板产生单元203可经配置以产生32个调色板条目,其中每一调色板条目包含像素的y、cr和cb分量的像素值。在前一实例中,假定每一调色板条目指定样本(像素)的所有色彩分量的值。然而,本文件中所描述的概念可适用于针对每一色彩分量使用单独调色板。

一旦调色板由调色板产生单元203产生,映射单元204即可产生用于视频数据的当前块的映射,所述映射指示视频数据的当前块中的特定像素是否可表示为由调色板产生单元203产生的调色板中的条目。映射单元204可产生包含指示每一像素如何使用(或不使用)来自调色板的条目的语法元素的映射214。如果在调色板中未发现用于视频数据的当前块中的像素的值,且因此所述值无法用索引表示到调色板中,那么映射单元204可明确地发射用于特定像素的像素值。在一些实例中,映射单元204可根据在调色板中发现的条目中的一者来预测显式像素值。在一些其它实例中,映射单元204可将像素量化且发射经量化值。

除了发信指示用于块中的像素中的每一者的色彩值的语法元素之外,基于调色板的编码单元122也可经配置以信号将用于视频数据的当前块的调色板。根据本发明的技术,基于调色板的编码单元122可经配置以使用调色板预测技术来减少经发信以指示用于视频数据的特定块的调色板的值的数据的量。

作为调色板预测的一个实例,如在jctvc-q0094(其从2014年6月20日起可从http://phenix.int-evry.fr/jct/doc_end_user/documents/17_valencia/wg11/jctvc-q0094-v1.zip得到)中所描述,调色板可包含从预测器调色板复制的条目。预测器调色板可包含来自使用调色板模式的先前经译码块或来自其它经重建的样本的调色板条目。如图4中所示,基于调色板的编码单元122可包含预测器调色板缓冲器210。预测器调色板缓冲器210可经配置以存储若干来自先前经编码块的先前所用调色板条目。作为一个实例,预测器调色板缓冲器210可配置为具有预定大小的先进先出(fifo)缓冲器。预测器调色板缓冲器210可具有任何大小。在一个实例中,预测器调色板缓冲器210包含高达64个先前所用调色板条目。

在一些实例中,基于调色板的编码单元122可经配置以删减预测器调色板缓冲器210中的条目以使得预测器调色板缓冲器210中的所有调色板条目是唯一的。即,对于将添加到预测器调色板缓冲器210的每一新调色板条目,基于调色板的编码单元122可经配置以首先检查没有其它相同条目已存储于预测器调色板缓冲器210中。如果不存在相同条目,那么将新调色板条目添加到预测器调色板缓冲器210。如果新条目是现有条目的重复,那么将新调色板条目添加到预测器调色板缓冲器210且从预测器调色板缓冲器210去除重复条目。

基于调色板的编码单元122可包含二进制预测向量产生单元206,所述二进制预测向量产生单元经配置以针对由调色板产生单元203产生的用于视频数据的当前块的调色板中的每一条目产生并发信二进制旗标,指示预测器调色板缓冲器210中的调色板条目是否被复制(或被重复使用)以用于用于视频数据的当前块的调色板中的条目中的一者(例如,由旗标=1来指示)。即,二进制预测器向量中的具有值1的旗标指示预测器调色板缓冲器210中的对应条目被重复用于用于当前块的调色板,而二进制预测向量中的具有值0的旗标指示预测器调色板缓冲器210中的对应条目未重复用于用于当前块的调色板。另外,基于调色板的编码单元122可经配置以明确地发信用于无法从预测器调色板缓冲器210中的条目复制的当前调色板的一些值。也可发信新条目的数目。

在2014年3月25日申请的美国临时申请案第61/970,257号、2014年4月17日申请的美国临时申请案第61/981,105号和2014年5月23日申请的美国临时申请案第62/002,668号中,提议基于二进制树的发信方法和基于结束位置的发信方法以用于译码调色板二进制预测器向量。在2014年5月23日申请的美国临时申请案第62/002,741号中,提议基于群组的发信方法。本发明提议用于产生、编码和解码二进制预测向量的额外技术。

本文中所描述的一些实例涉及译码调色板预测向量以改善译码效率的方法。举例来说,假定通过二进制预测向量产生单元206产生的二进制预测向量由下式表示:

b=[b0,b1,…,bn-1],n≥0,bi∈{0,1},0≤i<n

在上面的等式中,bi∈{0,1},0≤i<n指示预测旗标(也被称为二进制旗标或二进制预测旗标)。如果n=0,那么b=φ(即,b为空向量),不需要发信所述向量。因此,在以下描述中,可假定n>0。

图5展示预测器调色板缓冲器210和当前调色板220的一个实例。如图5中可见,当前调色板220重复使用来自预测器调色板缓冲器210的与条目索引1、2、5和9相关联的像素值。因而,由图4的二进制预测向量产生单元206产生的二进制预测器向量将为b=[110010001000]。如此实例中可见,二进制预测向量b包含对应于预测器调色板缓冲器210中的第1、第2、第5和第9索引的具有值1的旗标。即,预测器调色板缓冲器210中的第1、第2、第5和第9条目是重复用于当前调色板220的仅有条目。对于当前调色板220中的条目索引5到8,基于调色板的编码单元122可经配置以在经编码视频位流中发信调色板条目值(例如,使用显式发信或或另一预测技术)。

根据本发明的一或多个技术,视频编码器20可经配置以编码或大体上编码二进制预测器向量b以便减少在经编码视频位流中发信调色板所需的数据的量。如图4所示,二进制预测向量压缩单元209可经配置以产生并发信经编码二进制预测向量215。然而,应理解,本发明的二进制预测向量压缩技术可实施于视频编码器20的其它结构(包含熵编码单元118)中。

在本发明的一个实例中,二进制预测向量压缩单元209可经配置以使用基于行程长度的编码技术来编码二进制预测向量。举例来说,二进制预测向量压缩单元209可经配置以通过使用指数-哥伦布码发信二进制预测向量中的‘1’之间的连续‘0’的数目来编码二进制预测向量。作为实例,再次假定b=[110010001000]。在此实例中,如图6所示,二进制预测向量(即,b)可表达为:‘零个连续0’-‘1’-‘零个连续0’-‘1’-‘两个连续0’-‘1’-‘三个连续0’-‘1’和‘四个连续0’。因为已知bi∈{0,1},所以除最后的‘连续0’群组外,每一‘连续0’群组必须继之以‘1’。因此,二进制预测向量压缩单元209可使用基于零的行程长度译码技术将二进制预测向量b表示为‘零个连续0’-‘零个连续0’-‘两个连续0’-‘三个连续0’-‘四个连续0’,此可表达为行程长度序列‘0-0-2-3-4’。

根据与基于行程长度的发信相关的本发明的一或多个实例,为了译码行程长度序列,可使用哥伦布-莱斯码、任何阶的指数-哥伦布码、截短的指数-哥伦布码、截短的莱斯码或任何其它二进制化(包含截短的二进制化)。在一个实例中,二进制预测向量压缩单元209使用0阶指数-哥伦布码作为行程长度译码技术。

对于截短的二进制化,视‘1’在二进制向量中的位置和二进制向量大小而定,最大符号(maxsymbol)可为“run”的最大可能值,这是因为,在移动到二进制向量的末尾后,最大可能执行值即视向量内的位置而从向量大小减少到0。举例来说,最大符号可为二进制向量长度或二进制向量长度减去对“run”进行计数所在的‘1’的位置。换句话说,最大符号为从二进制向量的末尾测量的剩余长度。对于具有特定大小(例如,13)的二进制向量b的以上实例,可用截短的二进制化‘0[13]-0[12]-2[11]-3[8]-4[4]’来译码行程长度序列‘0-0-2-3-4’,其中最大符号提供于方括号中。

又,在一些实例中,二进制化可取决于元素(0或1)在二进制向量中的位置或索引。作为特定实例,如果位置小于某一阈值,那么使用一个类型的二进制化;否则,应用另一类型的二进制化。在一些实例中,二进制化类型可为不同的二进制化码,或具有不同阶数的相同码家族,例如指数-哥伦布码。

在一个实例中,阈值可为来自先前块或先前经调色板译码的块的调色板长度。在另一实例中,阈值可固定为某一默认值或针对块、切片、图片或在别处发信。将认识到,对应技术可任选地用以定义cabac上下文以译码执行值。另外,基于调色板的编码单元122可经配置以在经发信‘1’元素的数目(即,来自预测器调色板缓冲器210的经指示为被重复用于当前调色板220的调色板条目的数目)达到最大可能数目时停止行程长度发信。在一些实例中,最大可能数目为最大可能调色板大小。

本发明的一些实例涉及指示二进制预测向量b的行程长度序列的结束位置译码。在本发明的一或多个实例中,二进制预测向量压缩单元209可经配置以使用保留行程长度l译码二进制预测向量的结束位置来编码二进制预测向量b。在一个实例中,使用l=1作为保留行程长度。在视频编码器20处,如果行程长度等于或大于l,那么二进制预测向量压缩单元209经配置以将1加到行程长度。如果实际的行程长度小于l,那么二进制预测向量压缩单元209经配置以按原样发信行程长度。二进制预测向量压缩单元209可利用保留行程长度l来发信结束位置行程长度。

同样地,在视频解码器30处,如果行程长度的经解码值大于l,那么从实际的行程长度减去1。如果经解码值或行程长度小于l,那么使用经解码值作为实际的行程长度。如果经解码值等于l,那么二进制预测向量b中的剩余位置全部为0。因此,如果经解码值等于l,那么不再需要执行发信。

使用与上文相同的实例(即,b=[110010001000])且假定l=1,二进制预测向量压缩单元209经配置以将图6的行程长度序列‘0-0-2-3-4’发信为‘0-0-3-4-1’。接着,应用以上规则,视频解码器30可经配置以将行程长度序列恢复为‘0-0-2-3-end’。即,将0的第一行程长度值解码为0且将0的下一个行程长度序列解码为0,这是因为0行程长度序列均小于l=1的保留行程长度值。下一个行程长度序列为3,且因此,视频解码器30将经配置以从3的值减去1而获得2,因为3的接收值大于l=1的保留行程长度值。同样地,视频解码器30将经配置以从4的接收值减去1以获得3用于下一个行程长度序列,因为4的接收值大于l=1的保留行程长度值。最终,最后的接收行程长度值1等于l=1的保留行程长度值。因此,视频解码器30可确定没有其它值‘1’存在于二进制预测向量中。

在本发明的另一实例中,二进制预测向量压缩单元209可经配置以在二进制预测向量中的‘1’的总数(即,来自预测器调色板缓冲器210的重复使用的调色板条目的指示的数目)小于最大可能调色板大小时仅应用结束位置译码。如果二进制预测向量中的‘1’的总数等于最大可能调色板大小,那么二进制预测向量压缩单元209可经配置以绕过最后行程长度的发信。

在以上实例中,如果视频解码器30确定最大可能调色板大小为4,那么‘0-0-2-3’的行程长度序列(或根据上文所述的保留行程长度规则的行程长度序列0-0-3-4)可足以恢复二进制预测向量b。在一些实例中,最大可能调色板大小可为预定的。因此,最大可能调色板大小可预先由视频编码器20和视频解码器30确定。在其它实例中,最大可能调色板大小可由视频编码器20在经编码视频位流中发信。发信最大可能调色板大小可使用本文中所描述的任何合适常规数据通信技术或任何合适数据通信技术执行。

在本发明的另一实例中,二进制预测向量压缩单元209可经配置以仅在行程长度序列中的最后行程长度并非0时应用结束位置译码技术。如果行程长度序列中的最后行程长度为0,那么可绕过结束位置编码。此表述等效于当二进制预测向量b中的最后旗标等于1时。在此情况下,可绕过结束位置译码。举例来说,如果b=[100000000001],那么行程长度序列为‘0-10-0’。行程长度序列‘0-10’(或根据上文所述的保留行程长度规定的经发信值序列0-11)可足以恢复二进制预测向量b。另外,结束位置可在不发信任何run以指示二进制预测向量b为零向量的情况下发信,此意味着未预测调色板条目。

在一些实例中,替代使用固定值l来发信剩余二进制旗标为0,可使用l的最小值和二进制预测器向量的大小来指示结束位置。这是因为“run”的值始终小于二进制预测器向量的大小。

图7为展示视频解码器30的基于调色板的解码单元165的实例的框图。基于调色板的解码单元165可经配置而以与图4的基于调色板的编码单元122互逆的方式执行。基于调色板的解码单元165可经配置以接收映射312,所述映射针对当前块中的每一像素指示调色板的条目是否将用于当前块中的像素。另外,映射312可进一步指示什么调色板条目将用于给定像素。映射单元302可使用映射312和通过调色板产生单元304产生的调色板来解码视频数据的当前的以产生经解码视频数据314。

根据本发明的技术,基于调色板的解码单元165也可接收经编码二进制预测向量316。如上文所论述,二进制预测向量316可使用行程长度译码技术进行编码,所述行程长度译码技术来编码指示二进制预测向量中的“run”的零值的行程长度序列。二进制预测向量解压缩单元306可经配置以使用上文参看图4到6所描述的行程长度译码技术的任何组合来解码经编码二进制预测向量。一旦二进制预测向量由二进制预测向量解压缩单元306恢复,调色板产生单元304即可基于二进制预测向量和存储于预测器调色板缓冲器310中的先前所用调色板条目而产生用于视频数据的当前块的调色板。基于调色板的解码单元165可经配置以将先前所用调色板条目存储于预测器调色板缓冲器310中,其方式与基于调色板的编码单元122将先前所用调色板条目存储于预测器调色板缓冲器210的方式相同。

图8为说明本发明的实例编码方法的流程图。图8的技术可通过视频编码器20的一或多个结构组件(包含基于调色板的编码单元122)来实施。在本发明的一个实例中,基于调色板的编码单元122可经配置以产生用于视频数据的所述当前块的调色板(800),和产生用于用于视频数据的所述当前块的所述调色板的二进制预测向量(802)。二进制预测向量包括指示先前所用调色板条目是否被重复用于用于视频数据的所述当前块的所述调色板的条目。基于调色板的编码单元122可经进一步配置以使用行程长度编码技术来编码所述二进制预测向量(804),和使用所述调色板来编码视频数据的所述当前块(806)。在一个实例中,所述行程长度编码技术包括译码零的行程长度。

在本发明的一个实例中,基于调色板的编码单元122可经配置以使用指数-哥伦布编码技术来编码二进制预测向量。在一个实例中,所述指数哥伦布编码技术为一0阶指数-哥伦布编码技术。

在本发明的另一实例中,基于调色板的编码单元122可经配置以使用所述行程长度编码技术和保留行程长度值l来编码所述二进制预测向量,所述保留行程长度值l指示所述二进制预测向量的结束位置。在一个实例中,所述保留行程长度值l为1。

在本发明的另一实例中,基于调色板的编码单元122可经配置以使用所述行程长度编码技术、保留行程长度值l和最大调色板大小来编码所述二进制预测向量。所述保留行程长度值l指示所述二进制预测向量的结束位置。在此实例中,如果所述二进制预测向量中指示先前所用调色板条目被重复用于用于视频数据的所述当前块的所述调色板的条目的总数等于所述最大调色板大小,那么不使用所述保留行程长度值l。

在本发明的另一实例中,基于调色板的编码单元122可经配置以使用所述行程长度编码技术和保留行程长度值l来编码所述二进制预测向量,所述保留行程长度值l指示所述二进制预测向量的结束位置。在此实例中,如果所述经编码二进制预测向量中的最后行程长度不指示零的行程长度,那么不使用所述保留行程长度值l。

在本发明的另一实例中,基于调色板的编码单元122可经配置以将用于视频数据的一或多个先前经编码块的先前所用调色板条目存储于缓冲器中。基于调色板的编码单元122可经进一步配置以去除存储于所述缓冲器中的所述先前所用调色板条目的重复条目。在本发明的另一实例中,用于视频数据的所述一或多个先前经编码块的所述先前所用调色板条目包括用于视频数据的所述当前块上方的一行像素的先前所用调色板条目和用于视频数据的所述当前块左边的一行像素的先前所用调色板条目。

图9为说明本发明的实例解码方法的流程图。图9的技术可通过视频解码器30的一或多个结构组件(包含基于调色板的解码单元165)来实施。

在本发明的一个实例中,基于调色板的解码单元165可经配置以接收用于视频数据的当前块的经编码二进制预测向量(900),和使用行程长度解码技术来解码所述经编码二进制预测向量(902)。在一个实例中,所述行程长度解码技术包括译码零的行程长度。基于调色板的解码单元165可经进一步配置以基于所述二进制预测向量产生用于视频数据的所述当前块的调色板(904)。二进制预测向量包括指示先前所用调色板条目是否被重复用于用于视频数据的当前块的调色板的条目。基于调色板的解码单元165可经进一步配置以使用所述调色板来解码视频数据的所述当前块(906)。

在本发明的另一实例中,基于调色板的解码单元165可经进一步配置以使用指数-哥伦布解码技术来解码所述经编码二进制预测向量。在一个实例中,所述指数哥伦布解码技术为一0阶指数-哥伦布解码技术。

在本发明的另一实例中,基于调色板的解码单元165可经进一步配置以使用所述行程长度解码技术和保留行程长度值l来解码所述经编码二进制预测向量,所述保留行程长度值l指示所述二进制预测向量的一结束位置。在一个实例中,所述保留行程长度值l为1。

在本发明的另一实例中,基于调色板的解码单元165可经进一步配置以使用所述行程长度解码技术、保留行程长度值l和最大调色板大小来解码所述经编码二进制预测向量。所述保留行程长度值l指示所述二进制预测向量的结束位置。如果所述二进制预测向量中指示先前所用调色板条目被重复用于用于视频数据的所述当前块的所述调色板的条目的总数等于所述最大调色板大小,那么不使用所述保留行程长度值l。

在本发明的另一实例中,基于调色板的解码单元165可经进一步配置以使用所述行程长度解码技术和保留行程长度值l来解码所述经编码二进制预测向量,所述保留行程长度值l指示所述二进制预测向量的结束位置。如果所述经编码二进制预测向量中的最后行程长度不指示零的行程长度,那么不使用所述保留行程长度值l。

在本发明的另一实例中,基于调色板的解码单元165可经进一步配置以将先前所用调色板条目从缓冲器复制到所述调色板中,所述先前所用调色板条目通过所述二进制预测向量指示为重复用于所述调色板,和在经复制用于所述调色板的先前所用调色板条目的数目小于最大调色板大小的情况下接收额外调色板条目。

在本发明的另一实例中,基于调色板的解码单元165可经进一步配置以将用于视频数据的一或多个先前经解码块的先前所用调色板条目存储于所述缓冲器中。基于调色板的解码单元165可经进一步配置以去除存储于所述缓冲器中的所述先前所用调色板条目的重复条目。在一个实例中,用于视频数据的所述一或多个先前经解码块的所述先前所用调色板条目包括用于视频数据的所述当前块上方的一行像素的先前所用调色板条目和用于视频数据的所述当前块左边的一行像素的先前所用调色板条目。

以下部分描述本发明的额外实例技术。在第一实例中,视频编码器20可经配置以首先使用哥伦布-莱斯码、指数-哥伦布码或截短莱斯码或其组合发信二进制预测向量b中的一的总数(‘num-of-one’)(即,来自预测器调色板缓冲器210的重复使用调色板条目的数目)。接着,一旦经解码非零二进制预测旗标的数目达到经发信‘num-of-one’,视频解码器30即可确定二进制预测向量b中的剩余旗标为0且这些旗标的发信将被视频编码器20绕过。换句话说,在此第一实例中,可绕过上述的结束位置译码过程。在此情况下,发信实际的行程长度。在此实例中,不需要对行程长度值的向上调整。

在第二实例中,如上所述,仅译码二进制预测向量中的零值的行程长度。作为替代技术,行程长度译码可包含(例如,允许)二进制预测向量中的零值的行程长度和/或二进制预测向量中的一值的行程长度两者。初始执行可预定义为‘一的行程长度’(或‘零的行程长度’)。接着,视频编码器20可交替零的run和一的run的译码。

举例来说,使用与上文相同的实例(即,b=[110010001000])且假定第一执行为‘一的行程长度’,b=[1100100010000]可表达为:

‘run=2’-‘run=2’-‘run=1’-‘run=3’-‘run=1’-‘run=4’

然而,已知‘零执行’必须继之以‘一执行’且反之亦然;因此,以上表达式可简化为:

‘run=2’-‘run=1’-‘run=0’-‘run=2’-‘run=0’-‘run=3’

此可将行程长度序列表达为‘210203’。可使用哥伦布-莱斯译码、指数-哥伦布译码或截短莱斯译码来译码此序列。‘零执行’和‘一执行’可具有哥伦布-莱斯码、指数-哥伦布码或截短莱斯码的不同参数。如果使用普通二进制数来编码‘零执行’和‘一执行’,那么可将不同上下文用于‘零执行’和‘一执行’。在此实例中也可应用本发明中别处所描述的结束位置译码技术。

另外,视频编码器20可经配置以在经发信‘1’元素的数目达到最大可能数目(其可为最大可能调色板大小)时停止行程长度发信。

在第三实例中,可直接发信b0(二进制预测向量b中的第一元素),使得视频解码器30可基于解码b0值来确定第一执行是‘零执行’或‘一执行’。

在第四实例中,视频编码器20可经配置以使用第一译码技术来编码二进制预测向量中之前m个旗标(即,[b0,b1,…,bm-1]),且使用第二译码技术来译码其余旗标(即,[bm,bm+1,…,bn-1])。第二译码技术为上文所指定的基于行程长度的方法。在一个实例中,m=4。第一译码技术可为任何合适的常规译码技术。在一些实例中,第一译码技术可为基于非行程长度译码的方法。在其它实例中,第一和第二译码技术均可为基于行程长度的译码技术,但第一译码技术和第二译码技术可彼此不同。

在用于两种二进制元素的基于行程长度的发信的实例中,如上文所提及,视频编码器20可经配置以发信用于二进制预测向量b的‘0’或‘1’的行程长度m。然而,在针对两种二进制元素发信行程长度的情况下,可组合所述两个技术。此可通过以下步骤来实现:(1)开始,选择bin值,例如,bin=0;(2)发信用于bin元素的行程长度,(3)如果bin等于1,那么发信最后旗标,其指示等于1的bin是否为二进制向量中的最后‘1’元素。举例来说,等于1的last指示其为最后的‘1’,且等于0的情况指示其它。如果last等于1,那么停止发信二进制向量元素且退出;(4)交换bin值(即,bin=1-bin)且转到上面的步骤(2)。

如果第一bin值经选择为0,那么可能需要指示当二进制向量为零时的情况。本发明可将指示二进制向量是否为零的旗标称作zero_flag。举例来说,可使用行程长度发信的开始处的单独旗标。单独旗标可等于1,此指示二进制向量为零。在此情况下,在zero_flag之后不存在行程长度发信。如果zero_flag为0,那么发信行程长度值。如果选取第一bin等于1,那么可能不需要发信此zero_flag,因为等于1的bin具有指示发信的结束的last_flag。

在实例中,上文所讨论的基本算法可使用以下列表中的技术中的一或多者来进一步改善。列表中的每一项目在此列表之后的以下描述中可被称作“经改善项目”。

1.bin选择可固定到0或1,或为自适应性的(即,针对各种块不同)。举例来说,可通过识别哪个元素最频繁或哪个第一元素在先前经译码块中最频繁而基于先前块来选取(即,选择)bin。替代地,bin可针对每个块发信,或可针对块的群组(例如,针对每一图块或在切片标头中)发信。替代地,bin可根据视频序列(例如,图片参数集合(pps)、序列参数集(sps)、视频参数集(vps)或在别处中的至少一个)中的图片而发信。

2.如果二进制向量元素‘1’(针对其发信此最后旗标)是二进制向量b中的最后元素,那么可不发信last旗标。

3.在处理二进制向量中的第一元素之后,经发信行程长度值可为实际行程长度值减1,因为如果所述元素并非最后元素,那么已知所述元素继之以至少一个另一二进制元素。

4.如果二进制向量中的最后‘1’元素的行程长度值在前具有‘0’元素,那么可不发信二进制向量中的最后‘1’元素的行程长度值,这是因为如果‘0’行程长度值在二进制向量中的最后元素之前停止,那么已知此元素为‘1’且此元素为向量中的最后‘1’元素。

5.替代地,为了zero_flag发信,二进制向量中的最后‘1’元素的行程长度值可包含到第一行程长度值中(在为此指派特定值的情况下)。举例来说,如果第一行程长度值为零,那么二进制向量为零且此后不存在其它发信。对于非零二进制向量,第一经发信行程长度值需要在那个特定值(在此实例中,0)之后增加1以避免不明确性。

6.在(例如)针对每一旗标可指派单独上下文的情况下,zero_flag和last_flag可为经上下文自适应性二进制算术译码(cabac)上下文译码的。上下文可取决于块大小、切片类型等。

7.考虑行程长度值不能大于二进制向量大小,可使用各种二进制化方法(例如一元码、哥伦布-莱斯码或指数-哥伦布或所述码的截短版本)来译码行程长度值。

8.行程长度发信可在经发信‘1’元素的数目已达到最大可能数目(其可表示最大可能调色板大小)时停止。

对于具有二进制预测向量b={11001110100001}的实例,上文所述的基本算法产生:[0]0-2(0)-2-3(0)-1-1(0)-4-1(1)。开始时,将bin设定成0,且将第一行程长度发信到所述二进制数且第一行程长度在此实例中为0,接着在每个‘-’处,将bin交换为1-bin。经发信的最后旗标将在括号中指示。在方括号中的为zero-flag。对于实例,以下为经改善算法的结果:1-1(0)-1-2(0)-0-0(0)-3

在第一元素处理反映归因于上文的项目#5的行程长度值1之后,其它行程长度值将如上文的经改善项目#3中所提地减小1。删除线指示不发信用于上文#2中所提及的向量中的最后‘1’的最后旗标,且不存在针对上文#4中所建议的最后‘1’元素的行程长度值发信。

对于另一实例:b={11001110100011},实例经改善算法产生下式:1-1(0)-1-2(0)-0-0(0)-3-1

一些实例方法可使用指数-哥伦布码来译码调色板模式索引块译码中的上方复制执行、左边复制执行或两者的长度。举例来说,使用指数-哥伦布码来译码行程长度的方法也可将指数-哥伦布码应用于译码调色板模式索引块译码中的上方复制执行、左边复制执行或两者的长度。在另一实例中,在发信“大于0”、“大于1”和“大于2”旗标之后,第二阶哥伦布-莱斯码可用以在(例如,行程长度-3)>=0的情况下译码剩余值(例如,行程长度-3)。

在一些实例中,“大于0”、“大于1”和“大于2”旗标可分别用以指示行程长度“大于0”、“大于1”或“大于2”。行程长度可使用经行程长度译码的二进制预测向量来译码。

根据本发明的一些额外实例,视频译码器(例如,视频编码器20或视频解码器30)可确定一或多个新调色板预测器。根据本发明的这些额外实例,视频译码器可确定用于发信调色板预测器的新布林向量。这些和其它技术将(例如)在下文关于图10更详细地描述。

图10为说明符合本发明的技术的确定用于译码视频数据的调色板的实例的概念图。图10的实例包含具有使用调色板模式(pal)译码的与第一调色板184相关联的第一译码单元(cu)180和与第二调色板192相关联的第二cu188的图片178。如下文将较详细描述且根据本发明的技术,第二调色板192是基于第一调色板184。图片178也包含通过帧内预测译码模式译码的块196和通过帧间预测译码模式译码的块200。

出于解释的目的,在由视频编码器20(图1和图2)和视频解码器30(图1和图3)执行的上下文中且关于hevc视频译码标准来描述图10的技术。然而,应理解,本发明的技术不限于此方式,且可由其它视频译码处理器和/或装置在其它视频译码过程和/或标准中应用。

大体来说,调色板指对于当前正被译码的cu(在图10的实例中,cu188)来说为主要和/或代表性的许多像素值。第一调色板184和第二调色板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的表示仅为一个实例且不希望为限制性的。

在图10的实例中,第一调色板184包含分别具有条目索引值1、条目索引值2和条目索引值3的三个条目1202到1206。条目1202到1206分别将索引值与包含像素值a、像素值b和像素值c的像素值关联。如本文中所描述,替代译码第一cu180的实际像素值,视频译码器(例如视频编码器20或视频解码器30)可使用基于调色板的译码,以使用索引值1到3来译码块的像素。即,对于第一cu180的每一像素位置,视频编码器20可编码用于像素的索引值,其中索引值与第一调色板184中的一或多者中的像素值相关联。视频解码器30可从位流获得所述索引值且使用所述索引值和第一调色板184中的一或多者来重建像素值。因此,第一调色板184由视频编码器20在经编码视频数据位流中发射以供视频解码器30在基于调色板的解码时使用。

在一些实例中,视频编码器20和视频解码器30可基于第一调色板184来确定第二调色板192。举例来说,视频编码器20和/或视频解码器30可定位确定预测性调色板(在此实例中,第一调色板184)所依据的一或多个块。在一些实例(例如,图10中所说明的实例)中,视频编码器20和/或视频解码器30可在确定用于第二cu188的预测性调色板时定位先前经译码的cu(例如,左相邻cu(第一cu180))。

在图10的实例中,第二调色板192包含分别具有条目索引值1、条目索引值2和条目索引值3的三个条目1208到1212。条目1208到1212分别将索引值与包含像素值a、像素值b和像素值d的像素值相关。在此实例中,视频编码器20可译码指示第一调色板184的哪些条目包含于第二调色板192中的一或多个语法元素。在图10的实例中,将所述一或多个语法元素说明为向量216(例如,二进制预测向量)。向量216具有许多相关联二进制数(或位),每一二进制数指示与那个二进制数相关联的调色板预测器是否用以预测当前调色板的条目。举例来说,向量216指示第一调色板184之前两个条目(1202和1204)包含于第二调色板192中(向量216中的值“1”),而第一调色板184的第三条目不包含于第二调色板192中(向量216中的值“0”)。在图10的实例中,向量为布林(boolean)向量。

在一些实例中,视频编码器20和视频解码器30可在执行调色板预测时确定调色板预测器列表(其也可被称作调色板预测器表)。调色板预测器列表可包含来自用以预测用于译码当前块的调色板的一或多个条目的一或多个相邻块的调色板的条目。视频编码器20和视频解码器30可以相同方式来构建列表。视频编码器20和视频解码器30可译码数据(例如,向量216)以至少调色板预测器列表的哪些条目将包含于用于译码当前块的调色板中。

c.吉斯奎特、g.拉络什和p.奥诺的文件“ahg10:调色板预测器填塞(ahg10:palettepredictorstuffing)”(jctvc-q0063)揭示用于确定调色板预测器列表的一个实例过程。在一些实例中,如上文所指出,视频编码器20或视频解码器30可使用布林向量(例如,向量216)来指示调色板预测器列表中的每一项目是否用于(未用于)预测用于目前正在译码的块的调色板中的一或多个条目。

在一些实例中,调色板预测器列表中的所有所述项目是从先前经译码调色板(例如,用先前经译码块译码的调色板)导出。然而,这些调色板在空间上可远离当前cu,此可使调色板相关性相对较弱。一般来说,扩充调色板预测器表(或列表)可能有帮助(例如,可提供更准确的预测器,此可产生效率增益)。然而,确定和使用相对较大的调色板预测器表(或轻度)产生相对较长的布林向量。

在各种实例中,本发明中所描述的技术可包含基于调色板的译码中的用于确定、预测和/或发信调色板的各种组合的技术。所述技术可包含以下各者的任何组合:确定调色板预测器、将预测器添加到预测器的候选物列表、从预测器的候选物列表删减预测器、译码候选预测器的使用的指示或本文中所描述的任何其它技术。尽管出于说明和清晰目的可个别地描述某些实例,本发明涵盖本文中所描述的用于基于调色板的译码的技术的任何组合。

根据本发明的一些方面,视频译码器(例如,视频编码器20或视频解码器30)可确定一或多个新调色板预测器。举例来说,本发明的某些技术包含确定一或多个空间调色板预测器。在实例中,如果当前cu上方的cu(被称作“上方cu”或“上部cu”且在图10的实例中展示为经帧内译码的cu196)使用基于调色板的译码,那么来自上部cu的调色板作为用于当前cu(第二cu188)的调色板预测器有效。即,上部cu的条目中的每一者可包含于调色板预测器列表(例如,其可与指示哪些条目被用作预测器的向量相关联)中以用于预测当前调色板。

然而,如果上方cu是不同ctu的部分,那么将来自上方cu的调色板用于预测可需要额外存储。举例来说,对于经帧间预测块,视频译码器可必须存取存储器(例如,视频译码器的外部存储器)、重建像素值(此可产生潜时)。然而,在一些实例中,视频译码器可考虑与经帧内预测块相关联的经重建样本,在此表示为参考样本。这些经重建样本可局部地存储且可供视频编码器20和视频解码器30使用。

在实例中,根据本发明的方面,将参考样本添加到调色板预测器列表。举例来说,空间相邻块(其可经调色板译码或经帧内译码)的像素值可经识别为候选调色板预测器且与向量相关联(如上文所指出)。在一些实例中,可仅使用参考样本的子集。举例来说,如果调色板预测器列表已包含来自特定cu(例如左相邻cu(第一cu180))的调色板,那么来自那个cu的样本可不包含于调色板预测列表中。此外,在一些实例中,视频译码器可应用删减过程以去除列表中的重复调色板预测器,代价为视频编码器20且尤其视频解码器30的附加复杂度。这些新调色板预测器可插入于预测器列表的开始处或所述列表的结尾处。在其它实例中,所述新调色板预测器(例如,空间调色板预测器)可根据某一规则(例如,预测器列表大小、cu大小或类似者)适应性地插入到列表中。

在其它实例中,任何其它经重建像素(例如,在当前cu左边的列中的任何cu中的像素)也可添加到调色板预测器列表。

以此方式,视频编码器20和/或视频解码器30可确定用于预测用于视频数据的当前块的调色板的一或多个条目的一或多个空间调色板预测器(其中所述一或多个条目中的每一条目指示像素值),且译码指示所述一或多个调色板预测器的每一相应调色板预测器是否用以预测用于视频数据的当前块的调色板的条目的一或多个语法元素。

根据本发明的其它方面,视频译码器(例如,视频编码器20或视频解码器30)可确定用于发信调色板预测器的新布林向量。在一些实例中,本发明的技术可用以编码用于调色板预测的布林向量。

举例来说,根据本发明的方面,视频编码器20或视频解码器30可确定用于调色板预测的二进制树。在用于说明目的的实例中,令表示调色板预测器的使用的0-1布林向量由n来表示。为有效率地编码此向量,使用二进制树。具体地说,将向量n分割成若干相连区域,其中每一区域含有一个或一个以上向量元素。发信一个位以指示区域内的所有元素是否为零。如果区域并不全部为零,那么以相同方式将所述区域进一步分裂成子区域。

分割可根据给定规则停止。举例来说,一个规则可为“如果区域大小小于阈值,那么分割过程停止”。当分割停止时,如果区域大小大于一,且所述区域含有非零元素,那么在位流中发信所述区域中的每一元素。在此情况下,假定区域大小为x,如果前x-1个元素全部为零,那么最后元素必须为1,使得最后元素可不包含于位流中。

在另一实例中,当分割过程停止且区域大小大于一但小于第二阈值时,视频译码器可跳过一个位的发信以指示那个区域中的所有元素是否为零。实情为,对于区域中的每一元素,视频译码器可发信一个位以指示相应元素是零或1。

在另一实例中,并非二进制树,可使用在每一节点具有两个以上分支的树。又,在一些实例中,可绕过从树的根开始的前若干个层级的编码。在这些实例中,所述值可隐含地假定为1。

根据本发明的方面,在发信个别条目是0或1之前,可在位流中明确地译码来自调色板预测器列表的最后非零条目(即,布林向量中的最后1)的位置。在此情况下,在位流中不发信从最后位置(包含最后位置)到布林向量的末尾的元素。在另一实例中,在位流中也可明确地发信用于预测的第一调色板预测器的位置(即,布林向量中的第一个1)。

根据本发明的方面,可在位流中明确地译码所使用的来自调色板预测器列表的条目的数目。举例来说,本发明的技术包含发信上文所讨论的布林向量中的一(“1”)的数目。在一些实例中,视频编码器20可最初发信布林向量中的(“1”)的数目(totalones)。视频编码器20可接着依序发信(或以某一其它方式发信)布林向量中的每一项目(0或1),直到经发信1的数目等于totalones。

同样地,视频解码器30可首先解码包含于接收的布林向量中的一的数目的指示。视频解码器30可接着解码接收的向量的每一元素,直到视频解码器30已解码匹配所指示的“1”的数目的向量中的“1”的数目。在一些实例中,逐项目发信(例如,针对向量的元素)可从向量的开始依序。在其它实例中,可根据某一其它扫描次序来发信向量的元素。在另外其它实例中,逐项目发信可使用行程长度译码技术。

在一些实例中,当最初发信布林向量中的一的数目(例如,在布林向量之前在位流中发信totalones)时,可使用cabac对布林向量中的每一语法元素(例如,旗标)进行上下文译码。在一些情况下,可使用多个上下文。在一些实例中,可对布林向量的所有语法元素进行上下文译码。在其它实例中,可仅对布林向量的语法元素的一子集进行上下文译码。

根据本发明的方面,用于布林向量的语法元素的上下文可取决于布林向量内的语法元素(例如,二进制旗标)的位置和最初所发信的一的经发信数目(totalones)。在用于说明目的的实例中,如果((位置>3)&&((位置/2+1)>totalones)),那么视频译码器(例如视频编码器20或视频解码器30)可使用第一上下文;否则(当条件不为真时),视频译码器可使用另一上下文,其中位置指示语法元素的相对位置是在布林向量中译码。在此情况下,视频译码器将两个上下文用于译码布林向量中的语法元素(例如,二进制旗标),且基于布林向量中的特定语法元素的相对位置而选择用于布林向量的特定语法元素的上下文。在另一实例中,视频译码器可在条件((位置>3)&&((位置/4+1)>=totalones))为真的情况下使用一个上下文且在所述条件不为真的情况下使用另一上下文。也可使用用于确定上下文的其它条件。

在以上实例中,用于布林向量的特定语法元素的cabac上下文取决于语法元素的相对位置和布林向量中的一的总数(totalones)。在其它实例中,并非取决于位置和totalones,视频译码器可基于所译码的语法元素的相对位置和迄今为止已发信的一的总数(例如,在译码布林向量中的语法元素之前已出现的一的总数)来确定用于语法元素的上下文。在另外其它实例中,视频译码器可使用上述条件的任何组合来确定用于对布林向量的语法元素进行cabac译码的上下文。

根据本发明的方面,调色板大小由编码器发信且由解码器接收。举例来说,可发信调色板中的条目的数目以指示调色板的大小。在一些实例中,视频编码器20最初可发信调色板大小(pltsize)。视频编码器20可接着发信布林向量中的每一项目(0或1),直到经发信1的数目等于pltsize。视频解码器30可接收调色板大小的指示,且可继续加到调色板(例如,使用通过向量识别的调色板预测器),直到调色板中的条目的数目达到经发信调色板大小。

在一些实例中,视频编码器20最初可发信调色板大小(pltsize)。视频编码器20可接着发信未预测调色板项目的数目(nonpredpltsize)。视频编码器20可接着发信布林向量中的每一项目(0或1),直到经发信“1”的数目等于调色板大小与未预测调色板项目的数目的差(pltsize-nonpredpltsize)。在一些实例中,视频解码器30可接收调色板大小和调色板中的未使用调色板预测器预测的条目的数目(例如,向量的“0”的数目)的指示。视频解码器30也可接收指示调色板预测器将包含于调色板中的向量(例如,上文所述的布林向量)。视频解码器30可接着解码向量中的每一项目,直到“1”的数目等于调色板大小与未预测调色板项目的数目的差(pltsize-nonpredpltsize)。

以此方式,在一个实例中,视频编码器20和/或视频解码器30可确定用于预测用于视频数据的当前块的调色板的一或多个条目的一或多个调色板预测器(其中所述一或多个条目的每一条目指示像素值),确定具有多个二进制数的向量(其中向量的每一二进制数指示所述一或多个调色板预测器的相应调色板预测器是否用以预测用于视频数据的当前块的调色板后的条目),将向量分割成一或多个区域,且基于所述分割来确定向量的二进制数的一或多个值。

虽然上文所述的图10的技术是在cu(hevc)的上下文中描述,应理解,所述技术也可应用于预测单元(pu)或其它视频译码过程和/或标准中。

将认识到,取决于实例,本文中所描述的技术中的任一者的某些动作或事件可以不同序列执行、可添加、合并或完全省略(例如,对于实践所述技术来说并非所有所描述动作或事件皆为必要的)。此外,在某些实例中,动作或事件可同时执行(例如,经由多线程处理、中断处理或多个处理器)而非依序执行。此外,虽然为了清晰起见,本发明的某些方面被描述为由单一模块或单元执行,但应理解,本发明的技术可由与视频译码器相关联的单元或模块的组合来执行。

出于说明目的,已关于开发中hevc标准而描述本发明的某些方面。然而,本发明中所描述的技术可适用于其它视频译码过程,包含尚未开发的其它标准或专有视频译码过程。

上文所述的技术可由视频编码器20(图1和2)和/或视频解码器30(图1和3)执行,其两者可大体上被称作视频译码器。同样地,如适用,视频译码可指视频编码或视频解码。

本发明中所描述的技术可包含用于调色板译码的一或多个不同方面的各种组合的技术。

在一或多个实例中,所描述功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述功能可作为一或多个指令或代码而在计算机可读媒体上存储或发射且由基于硬件的处理单元来执行。计算机可读媒体可包含计算机可读存储媒体(其对应于例如数据存储媒体的有形媒体)或通信媒体,通信媒体包含(例如)根据通信协议促进计算机程序从一处传送到另一处的任何媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体或(2)例如信号或载波的通信媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中所描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。

借助于实例而非限制,这些计算机可读存储媒体可包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁性存储装置、快闪存储器,或可用以存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。又,任何连接被适当地称为计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字用户线(dsl)或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源发射指令,那么同轴缆线、光纤缆线、双绞线、dsl或例如红外线、无线电和微波的无线技术包含于媒体的定义中。然而,应理解,计算机可读存储媒体和数据存储媒体不包含连接、载波、信号或其它短暂性媒体,而实际上有关于非短暂性有形存储媒体。如本文中所使用,磁盘和光盘包含紧密光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘和blu-ray光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各者的组合也应包含于计算机可读媒体的范围内。

指令可由一或多个处理器执行,所述一或多个处理器例如一或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所述的功能性可提供于经配置用于编码和解码的专用硬件和/或软件模块内,或并入于组合式编码解码器中。又,所述技术可完全实施于一或多个电路或逻辑元件中。

本发明的技术可在广泛多种装置或设备中实施,所述装置或设备包含无线手机、集成电路(ic)或一组ic(例如,芯片组)。在本发明中描述各种组件、模块或单元以强调经配置以执行所揭示技术的装置的功能方面,但未必需要由不同硬件单元来实现。实情为,如上所述,各种单元可组合于编码解码器硬件单元中,或结合合适软件和/或固件由互操作性硬件单元(包含如上所述的一或多个处理器)的集合来提供。

已描述各种实例。这些和其它实例在以下权利要求书的范围内。以上方法可个别地或组合地使用。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1