可左右滑动选省市

使用调色板模式进行视频编解码的方法和装置

更新时间:2025-07-01
使用调色板模式进行视频编解码的方法和装置 专利申请类型:实用新型专利;
源自:北京高价值专利检索信息库;

专利名称:使用调色板模式进行视频编解码的方法和装置

专利类型:实用新型专利

专利申请号:CN202210160653.0

专利申请(专利权)人:北京达佳互联信息技术有限公司
权利人地址:北京市海淀区上地西路6号1幢1层101D1-7

专利发明(设计)人:王祥林,朱弘正,修晓宇,陈漪纹,马宗全,叶水明

专利摘要:一种电子装置执行对视频数据进行解码的方法。该电子装置首先从具有层级结构的视频比特流接收与层级结构的第一级别相关联的第一语法元素。根据确定第一语法元素指示针对视频比特流中的在第一级别下的一个或多个编码单元(CU)启用调色板模式,电子装置基于对应的调色板表从视频比特流重建一个或多个CU中的至少一个CU的像素值。而根据确定第一语法元素指示针对一个或多个CU禁用调色板模式,电子装置基于非调色板方案从视频比特流重建一个或多个CU中的任一个CU的像素值。

主权利要求:
1.一种对视频数据进行解码的方法,所述方法包括:在编码单元CU的块大小大于预定义阈值的情况下,从视频比特流接收针对所述CU的语法元素;以及响应于确定所述语法元素指示针对所述CU应用调色板模式,根据对应的调色板表从所述视频比特流重建所述CU的像素值。
2.根据权利要求1所述的方法,还包括:
响应于确定所述语法元素指示针对所述CU不应用所述调色板模式,根据非调色板方案从所述视频比特流重建所述CU的像素值。
3.根据权利要求2所述的方法,其中,所述语法元素包括一比特的标志。
4.根据权利要求3所述的方法,其中,
当所述语法元素的值为1时,所述语法元素指示针对所述CU应用所述调色板模式;并且当所述语法元素的值为0时,所述语法元素指示针对所述CU不应用所述调色板模式。
5.根据权利要求1所述的方法,其中,所述对应的调色板表由所述视频比特流中的一个或多个CU共享。
6.根据权利要求1所述的方法,其中,根据所述对应的调色板表从所述视频比特流重建所述CU的像素值包括:从所述视频比特流重建用于所述CU的调色板表;以及使用重建的调色板表从所述视频比特流重建所述CU的像素值。
7.一种电子装置,包括:
一个或多个处理单元;
耦合到所述一个或多个处理单元的存储器;以及
存储在所述存储器中的多个程序,所述多个程序在由所述一个或多个处理单元执行时,使得所述电子装置:在编码单元CU的块大小大于预定义阈值的情况下,从视频比特流接收针对所述CU的语法元素;以及响应于确定所述语法元素指示针对所述CU应用调色板模式,根据对应的调色板表从所述视频比特流重建所述CU的像素值。
8.根据权利要求7所述的电子装置,其中,所述多个程序在由所述一个或多个处理单元执行时,还使得所述电子装置:响应于确定所述语法元素指示针对所述CU不应用所述调色板模式,根据非调色板方案从所述视频比特流重建所述CU的像素值。
9.根据权利要求8所述的电子装置,其中,所述语法元素包括一比特的标志。
10.根据权利要求9所述的电子装置,其中,
当所述语法元素的值为1时,所述语法元素指示针对所述CU应用所述调色板模式;并且当所述语法元素的值为0时,所述语法元素指示针对所述CU不应用所述调色板模式。
11.根据权利要求7所述的电子装置,其中,所述对应的调色板表由所述视频比特流中的一个或多个CU共享。
12.根据权利要求7所述的电子装置,其中,根据所述对应的调色板表从所述视频比特流重建所述CU的像素值包括:从所述视频比特流重建用于所述CU的调色板表;以及使用重建的调色板表从所述视频比特流重建所述CU的像素值。
13.一种非暂时性计算机可读存储介质,其存储多个程序以用于由具有一个或多个处理单元的电子装置执行,其中,所述多个程序在由所述一个或多个处理单元执行时,使得所述电子装置执行根据权利要求1‑6中任一项所述的方法。
14.一种计算机程序产品,其包括用于对视频数据进行解码的计算机可执行指令,所述指令在由处理器执行时,使得所述处理器执行根据权利要求1‑6中任一项所述的方法。
15.一种解码器可读存储介质,其中存储有能够通过根据权利要求1‑6中任一项所述的方法进行解码的比特流。
16.一种对视频数据进行编码的方法,所述方法包括:在编码单元CU的块大小大于预定义阈值的情况下,生成针对所述CU的语法元素以被编码到视频比特流中,其中,所述语法元素用于指示针对所述CU是否应用调色板模式;以及将所述CU和所述语法元素编码到所述视频比特流中。
17.根据权利要求16所述的方法,其中,所述语法元素包括一比特的标志。
18.根据权利要求17所述的方法,其中,
当所述语法元素的值为1时,所述语法元素指示针对所述CU应用所述调色板模式;并且当所述语法元素的值为0时,所述语法元素指示针对所述CU不应用所述调色板模式。
19.根据权利要求16所述的方法,其中,当所述语法元素指示针对所述CU应用所述调色板模式时,将所述CU和所述语法元素编码到所述视频比特流中包括:构建用于所述CU的调色板表;
从所述调色板表中确定所述CU中的每个样本的调色板索引;以及将对应于所述样本的所确定的调色板索引编码到所述视频比特流中。
20.一种电子装置,包括:
一个或多个处理单元;
耦合到所述一个或多个处理单元的存储器;以及
存储在所述存储器中的多个程序,所述多个程序在由所述一个或多个处理单元执行时,使得所述电子装置:在编码单元CU的块大小大于预定义阈值的情况下,生成针对所述CU的语法元素以被编码到视频比特流中,其中,所述语法元素用于指示针对所述CU是否应用调色板模式;以及将所述CU和所述语法元素编码到所述视频比特流中。
21.根据权利要求20所述的电子装置,其中,所述语法元素包括一比特的标志。
22.根据权利要求21所述的电子装置,其中,
当所述语法元素的值为1时,所述语法元素指示针对所述CU应用所述调色板模式;并且当所述语法元素的值为0时,所述语法元素指示针对所述CU不应用所述调色板模式。
23.根据权利要求20所述的电子装置,其中,当所述语法元素指示针对所述CU应用所述调色板模式时,将所述CU和所述语法元素编码到所述视频比特流中包括:构建用于所述CU的调色板表;
从所述调色板表中确定所述CU中的每个样本的调色板索引;以及将对应于所述样本的所确定的调色板索引编码到所述视频比特流中。
24.一种非暂时性计算机可读存储介质,其存储多个程序以用于由具有一个或多个处理单元的电子装置执行,其中,所述多个程序在由所述一个或多个处理单元执行时,使得所述电子装置执行根据权利要求16‑19中任一项所述的方法。
25.一种计算机程序产品,其包括用于对视频数据进行编码的计算机可执行指令,所述指令在由处理器执行时,使得所述处理器执行根据权利要求16‑19中任一项所述的方法。
26.一种编码器可读存储介质,其中存储有能够通过根据权利要求16‑19中任一项所述的方法生成的比特流。 说明书 : 使用调色板模式进行视频编解码的方法和装置[0001] 本申请是2020年4月24日提交的申请号为202080027225.X的同名专利申请的分案申请。技术领域[0002] 本申请总体上涉及视频数据编解码和压缩,并且更具体地涉及使用调色板模式进行视频编解码的方法和系统。背景技术[0003] 各种电子设备支持数字视频,这些电子设备例如为数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏控制台、智能电话、视频电话会议设备、视频流送设备等。电子设备通过实现视频压缩/解压缩标准来发送、接收、编码、解码和/或存储数字视频数据,这些视频压缩/解压缩标准由MPEG‑4、ITU‑TH.263、ITU‑TH.264/MPEG‑4、Part10、高级视频编解码(AVC)、高效率视频编解码(HEVC)和通用视频编解码(VVC)标准定义。视频压缩通常包括执行空间(帧内)预测和/或时间(帧间)预测以减少或消除视频数据中固有的冗余。对于基于块的视频编解码,视频帧被分区为一个或多个条带(slice),每个条带具有多个视频块,这些视频块也可以称为编码树单元(CTU)。每个CTU可以包含一个编码单元(CU)或递进地分割为更小的CU,直到达到预定义的最小CU大小。每个CU(也称为叶CU)包含一个或多个变换单元(TU),并且每个CU还包含一个或多个预测单元(PU)。每个CU可以用帧内模式、帧间模式或IBC模式进行编码。视频帧的帧内编码的(I)条带中的视频块相对于同一视频帧内的相邻块中的参考样本使用空间预测进行编码。视频帧的帧间编码的(P或B)条带中的视频块可以使用相对于同一视频帧内的相邻块中的参考样本的空间预测,或使用相对于其他先前的和/或未来的参考视频帧中的参考样本的时间预测。[0004] 基于先前已经编码的参考块(例如,相邻块)的空间预测或时间预测产生待编码的当前视频块的预测块。寻找参考块的过程可以通过块匹配算法来完成。表示待编码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。帧间编码的块根据指向形成预测块的参考帧中的参考块的运动矢量以及残差块进行编码。确定运动矢量的过程通常称为运动估计。帧内编码的块根据帧内预测模式和残差块进行编码。为了进一步压缩,残差块从像素域变换到变换域(例如,频域),从而产生残差变换系数,然后可以对其进行量化。最初以二维阵列布置的经量化的变换系数可以被扫描以产生变换系数的一维矢量,然后熵编码到视频比特流中以实现更多的压缩。[0005] 已编码视频比特流然后被保存在计算机可读存储介质(例如,闪速存储器)中,以由具有数字视频能力的另一电子设备访问,或者直接有线或无线地传输到电子设备。电子设备然后通过例如解析已编码视频比特流以从比特流获得语法元素,并且至少部分地基于从比特流获得的语法元素从已编码视频比特流将数字视频数据重建为其原始格式,来执行视频解压缩(这是与上面描述的视频压缩相反的过程),并且将重建的数字视频数据呈现在电子设备的显示器上。[0006] 随着数字视频质量从高清变为4Kx2K或甚至8Kx4K,待编码/解码的视频数据量呈指数增长。如何在保持已解码视频数据的图像质量的同时能够更高效地编码/解码视频数据是持续的挑战。发明内容[0007] 本申请描述了涉及视频数据编码和解码并且更具体地涉及使用调色板模式进行视频编码和解码的系统和方法的实现方式。[0008] 根据本申请的第一方面,一种对视频数据进行解码的方法包括:从具有层级结构的视频比特流接收与层级结构的第一级别相关联的第一语法元素;根据确定第一语法元素指示针对视频比特流中的在第一级别下的一个或多个编码单元(CU)启用调色板模式,基于对应的调色板表从视频比特流重建一个或多个CU中的至少一个CU的像素值;以及根据确定第一语法元素指示针对一个或多个CU禁用调色板模式,基于非调色板方案从视频比特流重建一个或多个CU中的任一个CU的像素值。[0009] 根据本申请的第二方面,一种电子装置包括:一个或多个处理单元;存储器以及存储在存储器中的多个程序。该程序在由一个或多个处理单元执行时,使得电子装置执行如上面描述的对视频数据进行解码的方法。[0010] 根据本申请的第三方面,一种非暂时性计算机可读存储介质存储多个程序以用于由具有一个或多个处理单元的电子装置执行。该程序在由一个或多个处理单元执行时,使得电子装置执行如上面描述的对视频数据进行解码的方法。[0011] 根据本申请的第四方面,一种对视频数据进行编码的方法包括:生成与层级结构的第一级别相关联的第一语法元素以用于包含在具有层级结构的视频比特流中,其中,第一语法元素指示针对视频比特流中的在第一级别下的一个或多个编码单元(CU)启用调色板模式;将一个或多个CU的像素值和第一语法元素编码到视频比特流中,每个CU具有对应的调色板表;以及输出包括已编码的一个或多个CU和第一语法元素的视频比特流。[0012] 根据本申请的第五方面,一种电子装置包括:一个或多个处理单元;存储器以及存储在存储器中的多个程序。该程序在由一个或多个处理单元执行时,使得电子装置执行如上面描述的对视频数据进行编码的方法。[0013] 根据本申请的第六方面,一种非暂时性计算机可读存储介质存储多个程序以用于由具有一个或多个处理单元的电子装置执行。该程序在由一个或多个处理单元执行时,使得电子装置执行如上面描述的对视频数据进行编码的方法。附图说明[0014] 附图示出了所描述的实现方式并且与描述一起用于解释基本原理,附图被包括以提供对实现方式的进一步理解并且被并入本文且构成说明书的一部分。相同的附图标记指代对应的部分。[0015] 图1是示出根据本公开的一些实现方式的示例性视频编码和解码系统的框图。[0016] 图2是示出根据本公开的一些实现方式的示例性视频编码器的框图。[0017] 图3是示出根据本公开的一些实现方式的示例性视频解码器的框图。[0018] 图4A至4E是示出根据本公开的一些实现方式的如何将帧递进地分区为具有不同大小和形状的多个视频块的框图。[0019] 图5是示出根据本公开的一些实现方式的确定和使用调色板表来对视频数据进行编解码的示例的框图。[0020] 图6是示出根据本公开的一些实现方式的视频编码器使用基于调色板的方案来实现对视频数据进行编码的技术的示例性过程的流程图。[0021] 图7是示出根据本公开的一些实现方式的视频解码器使用基于调色板的方案来实现对视频数据进行解码的技术的示例性过程的流程图。具体实施方式[0022] 现在将详细参考具体实现方式,其示例在附图中示出。在下面的详细描述中,阐述了许多非限制性的具体细节以帮助理解本文呈现的主题。但是对于本领域普通技术人员而言显而易见的是,可以在不背离权利要求的范围的情况下使用各种替代方案,并且可以在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员而言显而易见的是,本文呈现的主题可以在具有数字视频能力的多种类型的电子设备上实现。[0023] 图1是示出根据本公开的一些实现方式的用于并行地编码和解码视频块的示例性系统10的框图。如图1所示,系统10包括源设备12,该源设备12生成视频数据并对其编码,以在稍后由目的地设备14解码。源设备12和目的地设备14可以包括多种电子设备中的任何一种,包括台式计算机或膝上型计算机、平板计算机、智能手机、机顶盒、数字电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流送设备等。在一些实现方式中,源设备12和目的地设备14配备有无线通信能力。[0024] 在一些实现方式中,目的地设备14可以经由链路16接收待解码的已编码视频数据。链路16可以包括能够将已编码视频数据从源设备12移动到目的地设备14的任何类型的通信介质或设备。在一个示例中,链路16可以包括通信介质,以使得源设备12能够将已编码视频数据实时地直接传输到目的地设备14。已编码视频数据可以根据诸如无线通信协议之类的通信标准进行调制,并且传输到目的地设备14。通信介质可以包括任何无线的或有线的通信介质,例如,射频(RF)频谱或者一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,该基于分组的网络例如为局域网、广域网或诸如互联网之类的全球网络。通信介质可以包括路由器、交换机、基站或可以有助于促进从源设备12到目的地设备14的通信的任何其他设备。[0025] 在一些其他实现方式中,已编码视频数据可以从输出接口22传输到存储设备32。随后,目的地设备14可以经由输入接口28访问存储设备32中的已编码视频数据。存储设备32可以包括各种分布式数据存储介质或本地访问的数据存储介质中的任何一种,例如,硬盘驱动器、蓝光光盘、DVD、CD‑ROM、闪速存储器、易失性存储器或非易失性存储器,或用于存储已编码视频数据的任何其他合适的数字存储介质。在另外的示例中,存储设备32可以对应于可以保存由源设备12生成的已编码视频数据的文件服务器或另一中间存储设备。目的地设备14可以经由流送或下载从存储设备32访问存储的视频数据。文件服务器可以是能够存储已编码视频数据并将已编码视频数据传输到目的地设备14的任何类型的计算机。示例性文件服务器包括web服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。目的地设备14可以通过任何标准数据连接访问已编码视频数据,包括无线信道(例如,Wi‑Fi连接)、有线连接(例如,DSL、电缆调制解调器等),或适用于访问存储在文件服务器上的已编码视频数据的两者的组合。来自存储设备32的已编码视频数据的传输可以是流送传输、下载传输或两者的组合。[0026] 如图1所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可以包括诸如视频捕获设备(例如,摄像机)之类的源,包含先前捕获的视频的视频存档,用于从视频内容提供商接收视频的视频馈送接口,和/或用于生成计算机图形数据作为源视频的计算机图形系统,或这些源的组合。作为一个示例,如果视频源18是安全监督系统的摄像机,则源设备12和目的地设备14可以形成相机电话或视频电话。然而,本申请中描述的实现方式总体上可以适用于视频编解码,并且可以应用于无线和/或有线应用。[0027] 捕获的、预先捕获的或计算机生成的视频可以由视频编码器20编码。已编码视频数据可以经由源设备12的输出接口22直接传输到目的地设备14。已编码视频数据也可以(或替代地)被存储到存储设备32上以供目的地设备14或其他设备稍后访问,以用于解码和/或回放。输出接口22还可以包括调制解调器和/或发射机。[0028] 目的地设备14包括输入接口28、视频解码器30和显示设备34。输入接口28可以包括接收机和/或调制解调器,并且通过链路16接收已编码视频数据。通过链路16传送或在存储设备32上提供的已编码视频数据可以包括各种语法元素,该语法元素由视频编码器20生成以供视频解码器30在对视频数据进行解码时使用。这样的语法元素可以包含于在通信介质上传输、在存储介质上存储或在文件服务器中存储的已编码视频数据内。[0029] 在一些实现方式中,目的地设备14可以包括显示设备34,显示设备34可以是集成的显示设备和被配置为与目的地设备14通信的外部显示设备。显示设备34向用户显示已解码视频数据,并且可以包括多种显示设备中的任何一种,例如,液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示设备。[0030] 视频编码器20和视频解码器30可以根据专有标准或行业标准操作,这些标准例如为VVC、HEVC、MPEG‑4、Part10、高级视频编解码(AVC)或此类标准的扩展。应当理解,本申请不限于特定的视频编码/解码标准,并且可以适用于其他视频编码/解码标准。通常设想源设备12的视频编码器20可以被配置为根据这些当前标准或未来标准中的任何一种来编码视频数据。类似地,通常还设想目的地设备14的视频解码器30可以被配置为根据这些当前标准或未来标准中的任何一种来解码视频数据。[0031] 视频编码器20和视频解码器30可以各自实现为多种合适的编码器电路中的任一种,例如,一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或其任何组合。当部分地以软件实现时,电子设备可以将软件的指令存储在合适的非暂时性计算机可读介质中,并且使用一个或多个处理器以硬件执行指令来执行本公开中公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可以包含于一个或多个编码器或解码器中,其中的任一个可以被集成为相应设备中的组合的编码器/解码器(CODEC)的一部分。[0032] 图2是示出根据本申请中描述的一些实现方式的示例性视频编码器20的框图。视频编码器20可以执行对视频帧内的视频块的帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测来减少或消除给定视频帧或图片内的视频数据中的空间冗余。帧间预测编码依赖于时间预测来减少或消除视频序列的相邻视频帧或图片内的视频数据中的时间冗余。[0033] 如图2所示,视频编码器20包括视频数据存储器40、预测处理单元41、已解码图片缓冲器(DPB)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41进一步包括运动估计单元42、运动补偿单元44、分区单元45、帧内预测处理单元46和帧内块复制(BC)单元48。在一些实现方式中,视频编码器20还包括逆量化单元58、逆变换处理单元60和加法器62,以用于视频块重建。去块滤波器(未示出)可以位于加法器62与DPB64之间,以过滤块边界来从重建的视频中消除块状伪影。除了去块滤波器之外,还可以使用环路滤波器(未示出)来对加法器62的输出进行过滤。视频编码器20可以采用固定硬件单元或可编程硬件单元的形式,或者可以在图示的固定硬件单元或可编程硬件单元中的一个或多个之间拆分。[0034] 视频数据存储器40可以存储待由视频编码器20的组件编码的视频数据。视频数据存储器40中的视频数据可以例如从视频源18获得。DPB64是存储用于由视频编码器20(例如,在帧内预测编码模式或帧间预测编码模式下)编码视频数据的参考视频数据的缓冲器。视频数据存储器40和DPB64可以由多种存储器设备中的任何一种形成。在各种示例中,视频数据存储器40可以与视频编码器20的其他组件一起在片上,或者相对于那些组件在片外。[0035] 如图2所示,在接收到视频数据之后,预测处理单元41内的分区单元45将视频数据分区为视频块。该分区还可以包括根据与视频数据相关联的诸如四叉树结构之类的预定义的分割结构将视频帧分区为条带、瓦片(tile)或其他更大的编码单元(CU)。视频帧可以被拆分为多个视频块(或称为瓦片的视频块集合)。预测处理单元41可以基于误差结果(例如,编码速率和失真水平)针对当前视频块选择多个可能的预测编码模式之一,例如,多个帧内预测编码模式之一或者多个帧间预测编码模式之一。预测处理单元41可以将产生的帧内或帧间预测编码的块提供给加法器50以生成残差块,并且提供给加法器62以重建已编码块以随后用作参考帧的一部分。预测处理单元41还向熵编码单元56提供语法元素,例如,运动矢量、帧内模式指示符、分区信息和其他此类语法信息。[0036] 为了针对当前视频块选择合适的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以相对于与待编码的当前块在同一帧中的一个或多个相邻块执行对当前视频块的帧内预测编码,以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或多个参考帧中的一个或多个预测块执行对当前视频块的帧间预测编码以提供时间预测。视频编码器20可以执行多个编码通道(multiplecodingpasses),以便例如针对视频数据的每个块选择合适的编码模式。[0037] 在一些实现方式中,根据视频帧序列内的预定模式,运动估计单元42通过生成运动矢量来确定用于当前视频帧的帧间预测模式,该运动矢量指示当前视频帧内的视频块的预测单元(PU)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动矢量的过程,该过程估计视频块的运动。例如,运动矢量可以指示当前视频帧或图片内的视频块的PU相对于与在当前帧(或其他已编码单元)内正被编码的当前块有关的参考帧(或其他已编码单元)内的预测块的位移。预定模式可以将序列中的视频帧指定为P帧或B帧。帧内BC单元48可以以类似于由运动估计单元42针对帧间预测确定运动矢量的方式确定用于帧内BC编码的矢量(例如,块矢量),或者可以利用运动估计单元42来确定块矢量。[0038] 预测块是参考帧中被认为在像素差方面与待编码的视频块的PU紧密匹配的块,像素差可以通过绝对差之和(SAD)、平方差之和(SSD)或其他差度量进行确定。在一些实现方式中,视频编码器20可以计算存储在DPB64中的参考帧的子整数像素位置的值。例如,视频编码器20可以对参考帧的四分之一像素位置、八分之一像素位置或其他分数像素位置的值进行插值。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索,并且输出具有分数像素精度的运动矢量。[0039] 运动估计单元42通过将PU的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)中选择的参考帧的预测块的位置进行比较,来计算帧间预测编码的帧中的视频块的PU的运动矢量,列表0和列表1中的每一个标识存储在DPB64中的一个或多个参考帧。运动估计单元42将计算出的运动矢量发送到运动补偿单元44,然后发送到熵编码单元56。[0040] 由运动补偿单元44执行的运动补偿可以涉及基于由运动估计单元42确定的运动矢量来取得或生成预测块。在接收到当前视频块的PU的运动矢量时,运动补偿单元44可以定位运动矢量在参考帧列表之一中指向的预测块,从DPB64取回预测块,并且将预测块转发到加法器50。加法器50然后通过从正被编码的当前视频块的像素值减去由运动补偿单元44提供的预测块的像素值来形成像素差值的残差视频块。形成残差视频块的像素差值可以包括亮度差分量或色度差分量或两者。运动补偿单元44还可以生成与视频帧的视频块相关联的语法元素,以供视频解码器30在对视频帧的视频块进行解码时使用。语法元素可以包括例如定义用于标识预测块的运动矢量的语法元素、指示预测模式的任何标志或本文描述的任何其他语法信息。注意,运动估计单元42和运动补偿单元44可以高度集成,但出于概念目的单独示出。[0041] 在一些实现方式中,帧内BC单元48可以以与上文结合运动估计单元42和运动补偿单元44描述的方式类似的方式生成矢量并取得预测块,但预测块与正被编码的当前块在同一帧中,并且矢量被称为块矢量而不是运动矢量。具体地,帧内BC单元48可以确定用于对当前块编码的帧内预测模式。在一些示例中,帧内BC单元48可以例如在单独的编码通道期间使用各种帧内预测模式来编码当前块,并且通过率失真分析测试这些帧内预测模式的性能。接下来,帧内BC单元48可以在各种经测试的帧内预测模式中选择适当的帧内预测模式以相应地使用并生成帧内模式指示符。例如,帧内BC单元48可以使用针对各种经测试的帧内预测模式的率失真分析来计算率失真值,并且在经测试的模式中选择具有最佳率失真特性的帧内预测模式作为要使用的适当帧内预测模式。率失真分析通常确定在已编码块与被编码以产生已编码块的原始的未编码块之间的失真(或误差)量,以及确定用于产生已编码块的比特率(即,比特数)。帧内BC单元48可以根据各种已编码块的失真和速率计算比率以确定哪种帧内预测模式展现出块的最佳率失真值。[0042] 在其他示例中,帧内BC单元48可以全部或部分地使用运动估计单元42和运动补偿单元44来根据本文描述的实现方式执行用于帧内BC预测的此类功能。在任一情况下,对于帧内块复制,预测块可以是被认为在像素差方面与待编码的块紧密匹配的块,像素差可以由绝对差之和(SAD)、平方差之和(SSD)或其他差度量来确定,并且预测块的标识可以包括计算子整数像素位置的值。[0043] 无论预测块是根据帧内预测来自同一帧,还是根据帧间预测来自不同帧,视频编码器20都可以通过从正被编码的当前视频块的像素值减去预测块的像素值(这形成像素差值)来形成残差视频块。形成残差视频块的像素差值可以包括亮度分量差和色度分量差两者。[0044] 如上面描述的,帧内预测处理单元46可以对当前视频块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测或由帧内BC单元48执行的帧内块复制预测的替代。特别地,帧内预测处理单元46可以确定要用于对当前块编码的帧内预测模式。为此,帧内预测处理单元46可以例如在单独的编码通道期间使用各种帧内预测模式对当前块进行编码,并且帧内预测处理单元46(或在一些实例中为模式选择单元)可以从经测试的帧内预测模式中选择适当的帧内预测模式来使用。帧内预测处理单元46可以向熵编码单元56提供指示用于块的所选择的帧内预测模式的信息。熵编码单元56可以将指示所选择的帧内预测模式的信息编码到比特流中。[0045] 在预测处理单元41经由帧间预测或帧内预测确定当前视频块的预测块之后,加法器50通过从当前视频块中减去预测块来形成残差视频块。残差块中的残差视频数据可以包含于一个或多个变换单元(TU)中,并且被提供给变换处理单元52。变换处理单元52使用诸如离散余弦变换(DCT)或概念上类似的变换之类的变换将残差视频数据变换为残差变换系数。[0046] 变换处理单元52可以将产生的变换系数发送到量化单元54。量化单元54将变换系数量化以进一步降低比特率。量化过程还可以减少与一些系数或所有系数相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54然后可以执行对包括量化的变换系数的矩阵的扫描。替代地,熵编码单元56可以执行扫描。[0047] 在量化之后,熵编码单元56使用例如上下文自适应可变长度编解码(CAVLC)、上下文自适应二进制算术编解码(CABAC)、基于语法的上下文自适应二进制算术编解码(SBAC)、概率间隔分区熵(PIPE)编解码或另一熵编码方法或技术将量化的变换系数熵编码到视频比特流中。已编码比特流然后可以被发送到视频解码器30,或存档在存储设备32中以供稍后发送到视频解码器30或由视频解码器30取回。熵编码单元56还可以对正被编码的当前视频帧的运动矢量和其他语法元素进行熵编码。[0048] 逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换以重建像素域中的残差视频块,以生成用于预测其他视频块的参考块。如上面指出的,运动补偿单元44可以根据存储在DPB64中的帧的一个或多个参考块生成运动补偿的预测块。运动补偿单元44还可以将一个或多个插值滤波器应用于预测块,以计算用于运动估计的子整数像素值。[0049] 加法器62将重建的残差块与由运动补偿单元44产生的运动补偿的预测块相加,以产生参考块以供存储在DPB64中。参考块然后可以由帧内BC单元48、运动估计单元42和运动补偿单元44用作预测块来对后续视频帧中的另一视频块进行帧间预测。[0050] 图3是示出根据本申请的一些实现方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、加法器90和DPB92。预测处理单元81进一步包括运动补偿单元82、帧内预测处理单元84和帧内BC单元85。视频解码器30可以执行总体上与上文结合图2关于视频编码器20描述的编码过程相反的解码过程。例如,运动补偿单元82可以基于从熵解码单元80接收的运动矢量生成预测数据,而帧内预测单元84可以基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。[0051] 在一些示例中,视频解码器30的单元的任务可以是执行本申请的实现方式。此外,在一些示例中,本公开的实现方式可以在视频解码器30的单元中的一个或多个单元之中拆分。例如,帧内BC单元85可以单独地或与视频解码器30的其他单元(例如,运动补偿单元82、帧内预测处理单元84和熵解码单元80)组合地执行本申请的实现方式。在一些示例中,视频解码器30可以不包括帧内BC单元85,并且可以由预测处理单元81的其他组件(例如,运动补偿单元82)执行帧内BC单元85的功能。[0052] 视频数据存储器79可以存储视频数据(例如,已编码视频比特流)以由视频解码器30的其他组件解码。存储在视频数据存储器79中的视频数据可以例如从存储设备32,从本地视频源(例如,相机),经由视频数据的有线或无线网络通信,或通过访问物理数据存储介质(例如,闪存驱动器或硬盘)获得。视频数据存储器79可以包括已编码图片缓冲器(CPB),该已编码图片缓冲器(CPB)存储来自已编码视频比特流的已编码视频数据。视频解码器30的已解码图片缓冲器(DPB)92存储参考视频数据以供视频解码器30(例如,在帧内预测编码模式或帧间预测编码模式下)解码视频数据时使用。视频数据存储器79和DPB92可以由多种存储器设备中的任何一种形成,这些存储器设备例如为动态随机存取存储器(DRAM)(包括同步DRAM(SDRAM))、磁阻RAM(MRAM)、电阻RAM(RRAM)、或其他类型的存储器设备。为了说明的目的,视频数据存储器79和DPB92在图3中被描绘为视频解码器30的两个不同组件。但是对于本领域技术人员而言显而易见的是,视频数据存储器79和DPB92可以由相同的存储器设备或单独的存储器设备提供。在一些示例中,视频数据存储器79可以与视频解码器30的其他组一起在片上,或者相对于那些组件在片外。[0053] 在解码过程期间,视频解码器30接收表示已编码视频帧的视频块和相关联的语法元素的已编码视频比特流。视频解码器30可以在视频帧级别和/或视频块级别接收语法元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符以及其他语法元素。熵解码单元80然后将运动矢量和其他语法元素转发到预测处理单元81。[0054] 当视频帧作为帧内预测编码的(I)帧被编码时,或对于其他类型的帧中的帧内编码的预测块,基于用信号通知的帧内预测模式和来自当前帧的先前解码的块的参考数据,预测处理单元81的帧内预测处理单元84可以生成当前视频帧的视频块的预测数据。[0055] 当视频帧作为帧间预测编码的(即,B或P)帧被编码时,基于运动矢量和从熵解码单元80接收的其他语法元素,预测处理单元81的运动补偿单元82产生当前视频帧的视频块的一个或多个预测块。可以根据参考帧列表之一内的参考帧产生预测块中的每个预测块。视频解码器30可以基于存储在DPB92中的参考帧使用默认构建技术来构建参考帧列表——列表0和列表1。[0056] 在一些示例中,当根据本文描述的帧内BC模式对视频块进行编码时,基于块矢量和从熵解码单元80接收的其他语法元素,预测处理单元81的帧内BC单元85产生当前视频块的预测块。预测块可以在与由视频编码器20定义的当前视频块相同的图片的重建区域内。[0057] 运动补偿单元82和/或帧内BC单元85通过解析运动矢量和其他语法元素来确定当前视频帧的视频块的预测信息,然后使用该预测信息来产生正被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语法元素中的一些来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,B或P)、帧的参考帧列表中的一个或多个的构建信息、帧的每个帧间预测编码的视频块的运动矢量、帧的每个帧间预测编码的视频块的帧间预测状态以及用于解码当前视频帧中的视频块的其他信息。[0058] 类似地,帧内BC单元85可以使用接收到的语法元素中的一些(例如,标志)来确定当前视频块是使用帧内BC模式预测的,帧的哪些视频块在重建区域内并应存储于DPB92中的构建信息,帧的每个帧内BC预测的视频块的块矢量,帧的每个帧内BC预测的视频块的帧内BC预测状态以及用于解码当前视频帧中的视频块的其他信息。[0059] 运动补偿单元82还可以使用由视频编码器20在视频块的编码期间使用的插值滤波器来执行插值,以计算参考块的子整数像素的经插值的值。在这种情况下,运动补偿单元82可以根据接收到的语法元素来确定由视频编码器20使用的插值滤波器,并且使用插值滤波器来产生预测块。[0060] 逆量化单元86使用由视频编码器20针对视频帧中的每个视频块计算以确定量化程度的相同量化参数来对量化的变换系数进行逆量化,该量化的变换系数是在比特流中提供并且由熵解码单元80进行熵解码的。逆变换处理单元88对变换系数应用逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程),以便在像素域中重建残差块。[0061] 在运动补偿单元82或帧内BC单元85基于矢量和其他语法元素生成当前视频块的预测块之后,加法器90通过对来自逆变换处理单元88的残差块和由运动补偿单元82和帧内BC单元85生成的对应预测块求和来重建当前视频块的已解码视频块。环路滤波器(未图示)可以位于加法器90与DPB92之间以进一步处理已解码视频块。在给定帧中的已解码视频块然后存储于DPB92中,该DPB92存储用于接下来的视频块的后续运动补偿的参考帧。DPB92或与DPB92分离的存储器设备也可以存储已解码视频以供稍后在显示设备(例如,图1的显示设备34)上呈现。[0062] 在典型的视频编解码过程中,视频序列通常包括帧或图片的有序集合。每个帧可以包括三个样本阵列,表示为SL、SCb和SCr。SL是亮度样本的二维阵列。SCb是Cb色度样本的二维阵列。SCr是Cr色度样本的二维阵列。在其他情况下,帧可以是单色的,因此仅包括亮度样本的一个二维阵列。[0063] 如图4A所示,视频编码器20(或更具体地为分区单元45)通过首先将帧分区为编码树单元(CTU)的集合来生成帧的已编码表示。视频帧可以包括从左到右且从上到下以栅格扫描次序连续排序的整数数量的CTU。每个CTU是最大的逻辑编码单元,并且CTU的宽度和高度由视频编码器20在序列参数集中用信号通知,使得视频序列中的所有CTU具有相同的大小,即,128×128、64×64、32×32和16×16之一。但应该注意,本申请并不一定限于特定的尺寸。如图4B所示,每个CTU可以包括亮度样本的一个编码树块(CTB)、色度样本的两个对应编码树块以及用于对编码树块的样本进行编码的语法元素。语法元素描述了已编码的像素块的不同类型单元的属性以及如何可以在视频解码器30处重建视频序列,包括帧间预测或帧内预测、帧内预测模式、运动矢量和其他参数。在单色图片或具有三个单独色彩平面的图片中,CTU可以包括单个编码树块和用于对编码树块的样本进行编码的语法元素。编码树块可以是NxN的样本块。[0064] 为了实现更好的性能,视频编码器20可以对CTU的编码树块递进地执行树分区,例如,二叉树分区、三叉树分区、四叉树分区或两者的组合,并且将CTU拆分成更小的编码单元(CU)。如图4C中描绘的,首先将64x64的CTU400拆分成四个更小的CU,每个CU具有32x32的块大小。在四个更小的CU之中,CU410和CU420各自按块大小拆分为四个16x16的CU。两个16x16CU430和440各自按块大小进一步拆分为四个8x8的CU。图4D描绘了四叉树数据结构,该四叉树数据结构示出了如图4C中描绘的CTU400的分区过程的最终结果,四叉树的每个叶节点对应于一个CU,该CU的相应大小的范围为从32x32到8x8。如图4B中描绘的CTU一样,每个CU可以包括帧的具有相同大小的亮度样本的编码块(CB)和色度样本的两个对应编码块,以及用于对编码块的样本进行编码的语法元素。在单色图片或具有三个单独色彩平面的图片中,CU可以包括单个编码块和用于对编码块的样本进行编码的语法结构。应当注意,图4C和图4D中描绘的四叉树分区仅用于说明目的,并且可以将一个CTU分割为CU以适应基于四叉树/三叉树/二叉树分区的不同局部特性。在多类型树结构中,一个CTU由四叉树结构分区,并且每个四叉树叶CU可以进一步由二叉树结构和三叉树结构分区。如图4E所示,存在五种分区类型,即四元分区、水平二元分区、垂直二元分区、水平三元分区和垂直三元分区。[0065] 在一些实现方式中,视频编码器20可以进一步将CU的编码块分区为一个或多个MxN预测块(PB)。预测块是矩形(正方形或非正方形)样本块,在其上应用相同的(帧间或帧内)预测。CU的预测单元(PU)可以包括亮度样本的预测块、色度样本的两个对应预测块以及用于对预测块进行预测的语法元素。在单色图片或具有三个单独色彩平面的图片中,PU可以包括单个预测块和用于预测该预测块的语法结构。视频编码器20可以针对CU的每个PU的亮度预测块、Cb预测块和Cr预测块生成预测亮度块、Cb块和Cr块。[0066] 视频编码器20可以使用帧内预测或帧间预测来生成PU的预测块。如果视频编码器20使用帧内预测来生成PU的预测块,则视频编码器20可以基于与PU相关联的帧的已解码样本来生成PU的预测块。如果视频编码器20使用帧间预测来生成PU的预测块,则视频编码器20可以基于除了与PU相关联的帧之外的一个或多个帧的已解码样本来生成PU的预测块。[0067] 在视频编码器20针对CU的一个或多个PU生成预测亮度块、Cb块和Cr块之后,视频编码器20可以通过从其原始亮度编码块减去CU的预测亮度块来生成CU的亮度残差块,使得CU的亮度残差块中的每个样本指示在CU的预测亮度块之一中的亮度样本与CU的原始亮度编码块中的对应样本之间的差。类似地,视频编码器20可以分别生成CU的Cb残差块和Cr残差块,使得CU的Cb残差块中的每个样本指示在CU的预测Cb块之一中的Cb样本与CU的原始Cb编码块中的对应样本之间的差,并且CU的Cr残差块中的每个样本可以指示在CU的预测Cr块之一中的Cr样本与CU的原始Cr编码块中的对应样本之间的差。[0068] 此外,如图4C所示,视频编码器20可以使用四叉树分区来将CU的亮度残差块、Cb残差块和Cr残差块分解为一个或多个亮度变换块、Cb变换块和Cr变换块。变换块是对其应用相同变换的矩形(正方形或非正方形)样本块。CU的变换单元(TU)可以包括亮度样本的变换块、色度样本的两个对应变换块以及用于对该变换块样本进行变换的语法元素。因此,CU的每个TU可以与亮度变换块、Cb变换块和Cr变换块相关联。在一些示例中,与TU相关联的亮度变换块可以是CU的亮度残差块的子块。Cb变换块可以是CU的Cb残差块的子块。Cr变换块可以是CU的Cr残差块的子块。在单色图片或具有三个单独色彩平面的图片中,TU可以包括单个变换块和用于对变换块的样本进行变换的语法结构。[0069] 视频编码器20可以将一个或多个变换应用于TU的亮度变换块以生成TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可以将一个或多个变换应用于TU的Cb变换块以生成TU的Cb系数块。视频编码器20可以将一个或多个变换应用于TU的Cr变换块以生成TU的Cr系数块。[0070] 在生成系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器20可以量化系数块。量化通常是指对变换系数进行量化以可能地减少用于表示变换系数的数据量,从而提供进一步压缩的过程。在视频编码器20量化系数块之后,视频编码器20可以对指示量化的变换系数的语法元素进行熵编码。例如,视频编码器20可以对指示量化的变换系数的语法元素执行上下文自适应二进制算术编解码(CABAC)。最后,视频编码器20可以输出包括比特序列的比特流,该比特序列形成已编码帧和相关联的数据的表示,其保存在存储设备32中或传输到目的地设备14。[0071] 在接收到由视频编码器20生成的比特流之后,视频解码器30可以解析比特流以从比特流获得语法元素。视频解码器30可以至少部分地基于从比特流获得的语法元素来重建视频数据的帧。重建视频数据的过程通常与由视频编码器20执行的编码过程相反。例如,视频解码器30可以对与当前CU的TU相关联的系数块执行逆变换以重建与当前CU的TU相关联的残差块。视频解码器30还通过将当前CU的PU的预测块的样本与当前CU的TU的变换块的对应样本相加来重建当前CU的编码块。在针对帧的每个CU重建编码块之后,视频解码器30可以重建该帧。[0072] 如上面指出的,视频编解码主要使用以下两种模式实现视频压缩:即,帧内(intra‑frame)预测(或帧内(intra)预测)和帧间(inter‑frame)预测(或帧间(inter)预测)。基于调色板的编解码是另一种已经被许多视频编解码标准采用的编解码方案。在可能特别适用于屏幕生成内容编解码的基于调色板的编解码中,视频编解码器(例如,视频编码器20或视频解码器30)形成表示给定块的视频数据的颜色的调色板表。调色板表包括给定块中最主导的(例如,频繁使用的)像素值。在给定块的视频数据中不那么频繁表示的像素值要么不包含于调色板表中,要么包含于调色板表中作为逃逸颜色(escapecolor)。[0073] 调色板表中的每个条目包括调色板表中的对应像素值的索引。块中样本的调色板索引可以被编解码以指示调色板表中的哪个条目将用于预测或重建哪个样本。该调色板模式开始于生成用于图片、条带、瓦片或其他这样的视频块分组的第一块的调色板预测值的过程。如下文将解释的,用于后续视频块的调色板预测值通常是通过更新先前使用的调色板预测值来生成的。为了说明的目的,假设调色板预测值是在图片级别定义的。换言之,图片可以包括多个编码块,每个编码块具有它自己的调色板表,但整个图片只有一个调色板预测值。[0074] 为了减少在视频比特流中用信号通知调色板条目所需的比特,视频解码器可以利用调色板预测值来确定调色板表中用于重建视频块的新调色板条目。例如,调色板预测值可以包括来自先前使用的调色板表的调色板条目,或者甚至通过包括最近使用的调色板表的所有条目而利用最近使用的调色板表初始化。在一些实现方式中,调色板预测值可以包括少于最近使用的调色板表的所有条目,然后并入来自其他先前使用的调色板表的一些条目。调色板预测值可以具有与用于对不同块进行编解码的调色板表相同的大小,或者可以大于或小于用于对不同块进行编解码的调色板表。在一个示例中,调色板预测值被实现为包括64个调色板条目的先进先出(FIFO)表。[0075] 为了根据调色板预测值生成视频数据的块的调色板表,视频解码器可以从已编码视频比特流接收用于调色板预测值的每个条目的一比特的标志。该一比特的标志可以具有第一值(例如,二进制一)或第二值(例如,二进制零),该第一值指示调色板预测值的关联条目将被包含于调色板表中,该第二值指示调色板预测值的关联条目将不被包含于调色板表中。如果调色板预测值的大小大于用于视频数据的块的调色板表,则一旦达到调色板表的最大大小,视频解码器就可以停止接收更多标志。[0076] 在一些实现方式中,调色板表中的一些条目可以直接在已编码视频比特流中用信号通知,而不是使用调色板预测值来确定。对于这种条目,视频解码器可以从已编码视频比特流接收三个单独的m比特的值,该三个单独的m比特的值指示与条目相关联的亮度分量和两个色度分量的像素值,其中m表示视频数据的比特深度。与直接用信号通知的调色板条目所需的多个m比特的值相比,从调色板预测值导出的那些调色板条目只要求一比特的标志。因此,使用调色板预测值用信号通知一些或所有调色板条目可以显著减少用信号通知新调色板表的条目所需的比特数,从而改进调色板模式编解码的整体编解码效率。[0077] 在许多情况下,一个块的调色板预测值是基于用于对一个或多个先前编码的块进行编解码的调色板表来确定的。但是在对图片、条带或瓦片中的第一编码树单元进行编解码时,先前编码的块的调色板表可能不可用。因此,不能使用先前使用的调色板表的条目来生成调色板预测值。在这种情况下,可以在序列参数集(SPS)和/或图片参数集(PPS)中用信号通知调色板预测值初始化值的序列,当先前使用的调色板表不可用时,该调色板预测值初始化值的序列是用于生成调色板预测值的值。SPS通常指代应用于由在PPS(其由在每个条带分段头中找到的语法元素引用)中找到的语法元素的内容确定的一系列连续已编码视频图片(称为已编码视频序列(CVS))的语法元素的语法结构。PPS通常指代应用于由在每个条带分段头中找到的语法元素确定的CVS内的一个或多个单独图片的语法元素的语法结构。因此,SPS通常被认为是相比PPS更高级别的语法结构,这意味着与PPS中包括的语法元素相比,SPS中包括的语法元素通常较不频繁地改变并且应用于较大部分视频数据。[0078] 图5是示出根据本公开的一些实现方式的确定和使用调色板表来对图片500中的视频数据进行编解码的示例的框图。图片500包括与第一调色板表520相关联的第一块510和与第二调色板表540相关联的第二块530。因为第二块530在第一块510的右侧,所以第二调色板表540可以基于第一调色板表520来确定。调色板预测值550与图片500相关联,并且用于从第一调色板表520收集零个或多个调色板条目且在第二调色板表540中构建零个或多个调色板条目。注意,图5中描绘的各种块可以对应于如上面描述的CTU、CU、PU或TU,并且块不限于任何特定编解码标准的块结构且可以与未来的基于块的编解码标准兼容。[0079] 通常,调色板表包括主导和/或代表当前正被编码的块(例如,图5中的块510或530)的多个像素值。在一些示例中,视频编解码器(例如,视频编码器20或视频解码器30)可以针对块的每一个颜色分量单独地编码调色板表。例如,视频编码器20可以编码针对块的亮度分量的调色板表、针对块的色度Cb分量的另一调色板表以及针对块的色度Cr分量的又一调色板表。在这种情况下,第一调色板表520和第二调色板表540可以各自变成多个调色板表。在其他示例中,视频编码器20可以针对块的所有颜色分量编码单个调色板表。在这种情况下,调色板表中的第i条目是(Yi,Cbi,Cri)的三元值,其中每个值对应于像素的一个分量。因此,第一调色板表520和第二调色板表540的表示仅是一个示例而不旨在是限制性的。[0080] 如本文描述的,不是直接编码第一块510的实际像素值,而是视频编解码器(例如,视频编码器20或视频解码器30)可以使用基于调色板的编码方案来使用索引I1、…、IN对第一块510的像素进行编码。例如,对于第一块510中的每个像素,视频编码器20可以对像素的索引值进行编码,其中该索引值与第一调色板表520中的像素值相关联。视频编码器20可以对第一调色板表520进行编码,并且在已编码视频数据比特流中对其进行传输以供视频解码器30使用以在解码器侧进行基于调色板的解码。一般而言,一个或多个调色板表可以针对每一个块传输,或者可以在不同块之间共享。视频解码器30可以从由视频编码器20生成的视频比特流获得索引值,并且使用索引值在第一调色板表520中的对应像素值来重建像素值。换言之,对于块的每个相应索引值,视频解码器30可以确定第一调色板表520中的条目。视频解码器30然后用由第一调色板表520中的所确定的条目指定的像素值替换块中的相应索引值。[0081] 在一些实现方式中,视频编解码器(例如,视频编码器20或视频解码器30)至少部分地基于与图片500相关联的调色板预测值550来确定第二调色板表540。调色板预测值550可以包括第一调色板表520的条目中的一些或全部,并且也可能包括来自其他调色板表的条目。在一些示例中,使用先进先出表来实现调色板预测值550,其中在将第一调色板表520的条目添加到调色板预测值550时,调色板预测值550中当前最旧的条目被清除以保持调色板预测值550处于或低于最大大小。在其他示例中,可以使用不同的技术来更新和/或维护调色板预测值550。[0082] 在一个示例中,视频编码器20可以针对每个块(例如,第二块530)编码pred_palette_flag以指示用于该块的调色板表是否是根据与一个或多个其他块(例如,相邻块510)相关联的一个或多个调色板表预测的。例如,当这种标志的值是二进制一时,视频解码器30可以确定用于第二块530的第二调色板表540是根据一个或多个先前解码的调色板表预测的,并且因此,在包含pred_palette_flag的视频比特流中不包含用于第二块530的新调色板表。当这样的标志是二进制零时,视频解码器30可以确定用于第二块530的第二调色板表540包含于视频比特流中作为新调色板表。在一些示例中,pred_palette_flag可以被独立地编码用于块的每个不同颜色分量(例如,对于YCbCr空间中的视频块,三个标志,一个用于Y,一个用于Cb,一个用于Cr)。在其他示例中,单个pred_palette_flag可以被编码用于块的所有颜色分量。[0083] 在以上示例中,按块用信号通知pred_palette_flag,以指示用于当前块的调色板表的每个条目被预测。这意味着第二调色板表540与第一调色板表520相同并且没有用信号通知附加信息。在其他示例中,一个或多个语法元素可以在每个条目的基础上用信号通知。即,可以针对先前调色板表的每个条目用信号通知标志,以指示该条目是否存在于当前调色板表中。如果没有预测调色板条目,则可以显式地用信号通知调色板条目。在其他示例中,可以组合这两种方法。[0084] 当根据第一调色板表520预测第二调色板表540时,视频编码器20和/或视频解码器30可以定位从其确定预测调色板表的块。预测调色板表可以与当前正被编码的块(即,第二块530)的一个或多个相邻块相关联。如图5所描绘的,当确定用于第二块530的预测调色板表时,视频编码器20和/或视频解码器30可以定位左侧相邻块,即,第一块510。在其他示例中,视频编码器20和/或视频解码器30可以定位相对于第二块530处于其他位置的一个或多个块,例如,图片500中的上方块。在另一示例中,用于使用调色板模式的处于扫描次序中的最后一个块的调色板表可以用作用于第二块530的预测调色板表。[0085] 视频编码器20和/或视频解码器30可以根据块位置的预定次序确定用于调色板预测的块。例如,视频编码器20和/或视频解码器30可以最初标识左侧相邻块(即,第一块510),以用于调色板预测。如果左侧相邻块不可用于预测(例如,左侧相邻块是用除了基于调色板的编码模式以外的模式(例如,帧内预测模式或帧间预测模式)进行编码的,或者左侧相邻块位于图片或条带的最左侧边缘),则视频编码器20和/或视频解码器30可以标识图片500中的上方相邻块。视频编码器20和/或视频解码器30可以根据块位置的预定次序继续搜索可用块,直到定位具有可用于调色板预测的调色板表的块。在一些示例中,通过应用一个或多个公式、函数、规则等以基于多个相邻块(空间地或按扫描次序地)之一或其组合的调色板表生成预测调色板表,视频编码器20和/或视频解码器30可以基于多个块和/或相邻块的重建样本确定预测调色板。在一个示例中,包括来自一个或多个先前编码的相邻块的调色板条目的预测调色板表包括数量为N的条目。在这种情况下,视频编码器20首先将二进制矢量V(其具有与预测调色板表相同的大小,即,大小为N)传输到视频解码器30。二进制矢量中的每个条目指示预测调色板表中的对应条目是否将被重用或复制到用于当前块的调色板表。例如,V(i)=1表示用于相邻块的预测调色板表中的第i条目将被重用或复制到用于当前块的调色板表中,该条目在当前块中可能具有不同的索引。[0086] 在其他示例中,视频编码器20和/或视频解码器30可以构建包括用于调色板预测的多个潜在候选的候选列表。在这样的示例中,视频编码器20可以对指向候选列表的索引进行编码,以指示从其中选择用于调色板预测的当前块的列表中的候选块。视频解码器30可以以相同的方式构建候选列表,解码索引,并且使用解码的索引来选择对应块的调色板以用于当前块。在另一示例中,列表中所指示的候选块的调色板表可以用作预测调色板表以用于当前块的调色板表的逐条目预测。[0087] 在一些实现方式中,一个或多个语法元素可以指示调色板表(例如,第二调色板表540)是否完全是根据预测调色板(例如,第一调色板表520,其可以由来自一个或多个先前编码的块的条目组成)预测的,或者是否第二调色板表540的特定条目是预测的。例如,初始语法元素可以指示是否第二调色板表540中的所有条目是预测的。如果初始语法元素指示并非所有条目都是预测的(例如,标志的值为二进制零),则一个或多个附加语法元素可以指示第二调色板表540的哪些条目是根据预测调色板表预测的。[0088] 在一些实现方式中,调色板表的大小(例如,就调色板表中包括的像素值的数量而言)可以是固定的,或者可以在已编码比特流中使用一个或多个语法元素来用信号通知。[0089] 在一些实现方式中,视频编码器20可以在不将调色板表中的像素值与视频数据的对应块中的实际像素值精确匹配的情况下对块的像素进行编码。例如,当条目的像素值在彼此的预定范围内时,视频编码器20和视频解码器30可以合并或组合(即,量化)调色板表中的不同条目。换言之,如果已经存在处于新像素值的误差余量内的现有像素值,则新像素值不会添加到调色板表中,而块中的与新像素值相对应的样本用现有像素值的索引进行编码。注意,该有损编码过程对视频解码器30的操作没有影响,视频解码器30可以以相同方式解码像素值,而不管特定调色板表是无损还是有损的。[0090] 在一些实现方式中,视频编码器20可以选择调色板表中的条目作为用于对块中的像素值进行编码的预测像素值。接下来,视频编码器20可以将实际像素值与所选择的条目之间的差确定为残差并对残差进行编码。视频编码器20可以生成残差块,该残差块包括由调色板表中的条目预测的块中的像素的残差值,然后对残差块应用变换和量化(如上文结合图2描述的)。以这种方式,视频编码器20可以生成量化的残差变换系数。在另一示例中,残差块可以被无损地编码(不进行变换和量化)或不进行变换。视频解码器30可以对变换系数进行逆变换和逆量化以重现残差块,然后使用预测调色板条目值和像素值的残差值来重建像素值。[0091] 在一些实现方式中,视频编码器20可以确定误差阈值(称为增量值),以用于构建调色板表。例如,如果块中位置的实际像素值在实际像素值与调色板表中的现有像素值条目之间产生小于或等于增量值的绝对差,则视频编码器20可以发送索引值以标识像素值条目在调色板表中的对应索引,以用于重建该位置的实际像素值。如果块中位置的实际像素值在实际像素值与调色板表中的现有像素值条目之间产生大于增量值的绝对差值,则视频编码器20可以发送实际像素值,并且将实际像素值作为新条目添加到调色板表中。为了构建调色板表,视频解码器30可以使用由编码器用信号通知的增量值、依赖于固定或已知的增量值、或者推断或导出增量值。[0092] 如上面指出的,在对视频数据进行编解码时,视频编码器20和/或视频解码器30可以使用包括帧内预测模式、帧间预测模式、无损编解码调色板模式和有损编解码调色板模式的编解码模式。视频编码器20和视频解码器30可以对指示是否启用基于调色板的编解码的一个或多个语法元素进行编解码。例如,在每个块处,视频编码器20可以对指示基于调色板的编解码模式是否将用于该块(例如,CU或PU)的语法元素进行编码。例如,该语法元素可以在块级别(例如,CU级别)在已编码视频比特流中用信号通知,然后由视频解码器30在对已编码视频比特流进行解码时接收。[0093] 在一些实现方式中,可以以比块级别更高的级别传输上述语法元素。例如,视频编码器20可以在条带级别、瓦片级别、PPS级别或SPS级别用信号通知此类语法元素。在这种情况下,等于一的值指示在该级别处或在该级别下的所有块都使用调色板模式进行编码,使得不会在块级别用信号通知附加的模式信息(例如,调色板模式或其他模式)。等于零的值指示在该级别处或在该级别下的任何块都不使用调色板模式进行编码。[0094] 在一些实现方式中,处于更高级别的语法元素启用调色板模式的事实并不意味着在该更高级别处或在该更高级别下的每个块必须用调色板模式进行编码。而是,可能仍要求另一CU级别或甚至TU级别的语法元素来指示处于CU或TU级别的块是否用调色板模式进行编码,并且如果是这样,则将构建对应的调色板表。在一些实现方式中,视频编解码器(例如,视频编码器20和视频解码器30)关于块内样本数量选择针对最小块大小的阈值(例如,32),使得对于块大小低于阈值的块不允许调色板模式。在这种情况下,对于这种块不会用信号通知任何语法元素。注意,针对最小块大小的阈值可以在比特流中显式地用信号通知,或隐式地设置为视频编码器20和视频解码器30两者都遵守的默认值。[0095] 在块的一个位置处的像素值可以与在块的其他位置处的像素值相同(或在其增量值内)。例如,通常块的相邻像素位置具有相同的像素值,或者可以映射到调色板表中的相同索引值。因此,视频编码器20可以编码一个或多个语法元素,该一个或多个语法元素指示具有相同像素值或索引值的按给定扫描次序的多个连续像素或索引值。同值的像素或索引值的串在本文中可以称为“游程(run)”。例如,如果按给定扫描次序的两个连续像素或索引具有不同的值,则游程等于零。如果按给定扫描次序的两个连续像素或索引具有相同的值,但按扫描次序的第三个像素或索引具有不同的值,则游程等于一。对于具有相同值的三个连续索引或像素,游程为二,以此类推。视频解码器30可以从已编码比特流获得指示游程的语法元素,并且使用该数据来确定具有相同像素或索引值的连续位置的数量。[0096] 图6是示出根据本公开的一些实现方式的视频编码器使用基于调色板的方案来实现对视频数据进行编码的技术的示例性过程600的流程图。例如,视频编码器20被配置为使用调色板模式对视频比特流进行编码,并且视频比特流被组织成层级结构,例如,视频中的每个图片被分区为多个CTU,并且每个CTU被进一步拆分为具有不同形状和大小的多个CU,如图4C和图4E分别描绘的。为了实现基于调色板的方案,视频编码器20生成与层级结构的第一级别相关联的第一语法元素,以用于包含在视频流中(610)。作为示例性实例,与第一语法元素相关联的第一级别可以被选择为处于比CU级别高的级别,比如,处于瓦片、条带或甚至图片级别。替代地,与第一语法元素相关联的第一级别可以被选择为处于CU级别。第一语法元素可以被存储为SPS、PPS、瓦片组头或条带头的一部分。如果第一语法元素的值为二进制一,则指示针对视频比特流中的在第一级别下的一个或多个编码单元(CU)启用调色板模式。[0097] 接下来,视频编码器20将一个或多个CU的像素值和第一语法元素编码到视频比特流中,每个CU具有对应的调色板表(630)。例如,对于被编码到视频比特流中的每个CU,视频编码器20生成与CU相关联的第二语法元素(630‑1)。如上面指出的,即使第一语法元素指示已经针对一个或多个CU启用了调色板模式,也不意味着每个单独的CU肯定会根据调色板表进行编码。相反,第二语法元素的值确定特定CU的视频块是否将根据调色板模式进行编码。假设第二语法元素的值为指示针对CU启用调色板模式的二进制一,则视频编码器20构建用于该CU的调色板表(630‑3)。[0098] 上面已经结合图5描述了构建调色板表的各种技术。例如,调色板预测值可以用于构建调色板表,并且在一些实现方式中,调色板预测值是维持由视频数据最频繁使用的那些调色板条目的集合的FIFO表。使用调色板表,视频编码器20然后标识CU的视频块中的样本,确定样本的像素值和调色板表中针对该样本的调色板索引(630‑5)。如上面指出的,CU中的样本存在不同的可能性。首先,调色板表中存在对应于CU中的样本的现有调色板条目。如果是这样,则该现有调色板条目的调色板索引用于在视频比特流中表示该样本。其次,没有现有调色板条目与样本的像素值匹配。如果是这样,则视频编码器20可以将新条目添加到调色板表中,并且使用该新条目的调色板索引来表示样本。在这种情况下,新条目可以用于表示CU中具有相同或相似(在增量值内)像素值的其他样本。在一些实现方式中,视频编码器20可以将样本的像素值编码为调色板表中的逃逸颜色条目。在任一情况下,视频编码器20将对应于样本的所确定的调色板索引编码到视频比特流中(630‑7)。[0099] 在一些实现方式中,视频编码器20可以针对特定CU选择二进制零的第二语法值,从而指示针对该CU禁用调色板模式。在这种情况下,视频编码器20可以选择使用其他预测方案(例如,帧内预测或帧间预测)对CU进行编码,并且相应地对对应的语法元素进行编码。换言之,第一语法元素指示启用调色板模式的事实仍然可以允许在第一级别下的特定CU选择非调色板模式。相反,如果第一语法元素被设置为二进制零,从而指示在第一级别禁用调色板模式,则在第一级别下的任何CU都不会使用调色板模式进行编码,并且因此没有第二语法元素或调色板表将被编码到视频比特流中。[0100] 最后,视频编码器20将包括已编码的一个或多个CU和处于第一级别的第一语法元素以及处于CU级别的第二语法元素的已编码视频比特流输出到视频解码器30或如图1中所描绘的存储设备(650)。在一些实现方式中,第一级别具有不小于预定义阈值的关联块大小,该预定义阈值与在第一级别下的一个或多个CU相关联。例如,假设大小为128个样本的祖先节点被三元分割为三个CU,大小分别为32、64和32个样本。如果用于确定共享调色板模式的第一级别的预定义阈值为64,则三个CU是共享相同调色板模式的三个叶节点。在一些实现方式中,预定义阈值存在下限(例如,32个样本),使得针对具有32个或更少样本的块不启用调色板模式来获得编解码效率。在一些实现方式中,第一语法元素和第二语法元素各自是一比特的标志。[0101] 在一些实现方式中,在调色板模式下,CU被拆分为多个分段,每个分段包含多个样本(例如,M个样本),M是16或32的正数。对于每个分段,对调色板相关语法(例如,调色板索引值、调色板索引游程和量化的颜色)的CABAC解析和/或编解码独立于同一CU中其他分段的语法。为了实现这一点,调色板模式下的所有CABAC解析依赖性(例如,上下文建模)和解码依赖性(例如,复制上方模式)在相邻分段之间被禁用。[0102] 在一些实现方式中,可以使用不同的方法在调色板模式下将CU拆分为多个分段,例如,基于遍历扫描次序,即,沿着扫描次序的第一M个样本被分组到分段1中,并且沿着扫描次序的第二M个样本被分组到分段2中,以此类推。在另一示例中,可以基于二叉树、三叉树或四叉树分区结构将CU拆分为多个分段。在每个分段内,仍然可以使用遍历扫描次序来对分段进行调色板编码。例如,首先用信号通知分段的索引值的数量,然后使用截短的二进制编码用信号通知整个分段的实际调色板索引值。索引的数量以及调色板索引值两者都以旁路模式编码,这将索引相关的旁路二进制位(bin)分组在一起。然后用信号通知索引游程。最后,将与分段中的逃逸样本相对应的分量逃逸值组合在一起并以旁路模式进行编码。[0103] 如上面提及的,可以使用不同的块大小阈值来标识共享调色板节点。在一个实施例中,编码器和解码器两者共享一个固定阈值而不用信号通知。在另一实施例中,提出一个语法元素以在比特流中用信号通知共享调色板阈值。[0104] 图7是示出根据本公开的一些实现方式的视频解码器30使用基于调色板的方案来实现对视频数据进行解码的技术的示例性过程的流程图。例如,视频解码器30被配置为使用调色板模式对视频比特流进行解码,并且视频比特流被组织成层级结构,例如,视频中的每个图片被分区为多个CTU,并且每个CTU被进一步拆分为具有不同形状和大小的多个CU,如图4C和图4E分别描绘的。为了实现基于调色板的方案,视频解码器30从视频比特流接收与层级结构的第一级别相关联的第一语法元素(710)。如上面指出的,与第一语法元素相关联的第一级别被选择为处于比CU级别高的级别,例如,处于瓦片、条带或甚至图片级别。第一语法元素由视频编码器20生成,并且可以被存储为SPS、PPS、瓦片组头或条带头的一部分。如果第一语法元素的值为二进制一,则指示针对视频比特流中的在第一级别下的一个或多个编码单元(CU)启用调色板模式。[0105] 基于第一语法元素的1值,视频解码器30根据对应的调色板表从视频比特流重建一个或多个CU中的至少一个CU的像素值(730)。例如,对于被编码到视频比特流中的每个CU,视频解码器30接收与该CU相关联的第二语法元素(730‑1)。如上面指出的,即使第一语法元素指示已经针对一个或多个CU启用调色板模式,也不意味着每个单独的CU肯定会根据调色板表进行编码。第二语法元素的值确定特定CU的视频块是否已经根据调色板模式进行编码。假设第二语法元素的值为指示针对CU启用调色板模式的二进制一,则视频解码器30从视频比特流重建用于相应CU的调色板表(730‑3)。[0106] 上面已经结合图5描述了构建调色板表的各种技术。例如,调色板预测值可以用于构建调色板表,并且在一些实现方式中,调色板预测值是维持由视频数据最频繁使用的那些调色板条目的集合的FIFO表。使用调色板表,视频解码器30然后标识CU的视频块中的样本,确定调色板索引然后是调色板表中的样本的像素值,然后重建该样本的像素值(730‑5)。如上面指出的,像素值的重建可能要求对样本的残差值进行逆量化和逆变换,将其作为样本的重建的像素值添加到来自调色板表的像素值。在一些实现方式中,视频解码器30可以从调色板表中的逃逸颜色条目重建样本的像素值。[0107] 如果第一语法元素的值为零,从而指示针对CU禁用调色板模式,则视频解码器30根据非调色板方案从视频比特流重建一个或多个CU的像素值(750)。如上面指出的,视频解码器30可以使用另一模式(例如,如上面描述的帧内预测或帧间预测)来重建CU。注意,与上面结合图6描述的第一语法元素和第二语法元素有关的所有特征适用于本文结合图7描述的基于调色板的解码过程。[0108] 在一些实现方式中,跨分量线性模型(CCLM)用于根据亮度调色板预测生成色度调色板预测。在一个示例中,可以使用相邻的亮度和色度样本来计算CCLM。在确定线性模型之后,可以基于同一CU的亮度调色板表以及线性模型来计算色度调色板预测。在一个示例中,色度调色板预测可以如下导出:[0109] predC(i,j)=α·recL′(i,j)+β[0110] 其中predc(i,j)表示CU中的预测的色度调色板,并且recL'(i,j)表示同一CU的重建的亮度调色板样本。在可以使用不同的导出方法的情况下导出线性模型参数α和β。一种示例性方法是来自两个样本(即,亮度调色板表中的最小亮度样本A(xA,yA)和最大亮度样本B(xB,yB))的亮度值和色度值之间的直线关系。这里(xA,yA)为样本A的亮度值和色度值,并且(xB,yB)为样本B的亮度值和色度值。线性模型参数α和β根据以下等式获得:[0111][0112] β=yA‑αxA[0113] 在一些实现方式中,基于当前块的形状的不同上下文被用于在调色板模式下用信号通知遍历扫描方向。取决于当前块的形状,可以选择不同的CABAC上下文,从而导致使用不同的CABAC概率。这种上下文也可能取决于相邻块的遍历扫描方向。[0114] 在一些实现方式中,取决于当前块的形状,可以有条件地省略用信号通知遍历扫描方向。在这种情况下,视频解码器30基于当前块的形状来推断遍历扫描方向。例如,如果块的纵横比高于某个阈值,则在调色板模式下不用信号通知该块的遍历扫描方向,而是推断其与块的较长边相同。否则,正常地用信号通知该块的遍历扫描方向。在另一示例中,如果块的纵横比高于某个阈值,则在调色板模式下不用信号通知该块的遍历扫描方向。视频解码器30推断遍历扫描方向与块的较短边相同。否则,正常地用信号通知该块的遍历扫描方向。[0115] 在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,则功能可以作为一个或多个指令或代码存储于计算机可读介质上或通过计算机可读介质传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质,或者包括促进例如根据通信协议将计算机程序从一个地方转移到另一个地方的任何介质的通信介质。以此方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质,或(2)诸如信号或载波之类的通信介质。数据存储介质可以是能够由一台或多台计算机或一个或多个处理器访问以取回指令、代码和/或数据结构以用于实现本申请中描述的实现方式的任何可用介质。计算机程序产品可以包括计算机可读介质。[0116] 在本文的实现方式的描述中使用的术语仅用于描述特定实现方式的目的,而并不旨在限制权利要求的范围。如在实现方式的描述和所附权利要求中使用的,单数形式的“一(a)”、“一(an)”和“该(the)”旨在同样包括复数形式,除非上下文另有明确指示。还应理解,本文所使用的术语“和/或”指代并涵盖相关联的所列项目中的一个或多个的任何和所有可能的组合。将进一步理解,当在本说明书中使用时,术语“包括(comprises)”和/或“包括有(comprising)”指定存在所陈述的特征、元素和/或组件,但不排除存在或添加一个或多个其他特征、元素、组件和/或它们的组。[0117] 还应当理解的是,虽然术语第一、第二等可以在本文中用于描述各种元件,但这些元件不应受这些术语的限制。这些术语仅用于区分一种元件与另一种元件。例如,第一电极可以被称为第二电极,并且类似地,第二电极可以被称为第一电极,而不会背离实现方式的范围。第一电极和第二电极都是电极,但它们不是同一电极。[0118] 本申请的描述是为了说明和描述的目的而呈现的,而并不旨在穷举或限制于所公开形式的发明。许多修改、变化和替代实现方式对于受益于前述描述和相关联的附图中呈现的教导的本领域普通技术人员将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理、实际应用,并且使本领域的其他技术人员能够理解本发明的各种实现方式,并且最好地利用基本原理和各种实现方式,其中各种修改适用于预期的特定用途。因此,应当理解,权利要求的范围不限于所公开的实现方式的具体示例,并且修改和其他实现方式旨在包含于所附权利要求的范围内。

专利地区:北京

专利申请日期:2020-04-24

专利公开日期:2024-07-26

专利公告号:CN114466185B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
该专利所有权非本平台所有,我方无法提供专利权所有者联系方式,请勿联系我方。
电话咨询
到底部
搜本页
回顶部