一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

执行用于调色板模式的率失真分析的方法和装置与流程

2022-03-19 16:28:03 来源:中国专利 TAG:

执行用于调色板模式的率失真分析的方法和装置
1.相关申请的交叉引用
2.本技术要求2019年9月24日提交的第62/905,346号美国临时专利申请的优先权,该申请的发明名称为“利用调色板模式的视频编解码”,其全部内容通过引用整体并入本文中。
技术领域
3.本发明实施例总体上涉及视频数据编解码和压缩,尤其涉及使用内部比特深度的精度执行用于调色板模式的率失真分析的方法和系统。


背景技术:

4.各种电子设备支持数字视频,例如数字电视、膝上型或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏控制台、智能电话、视频电话会议设备、视频流媒体设备等。电子设备通过实施由mpeg-4、itu-th.263、itu-th.264/mpeg-4、第10部分、高级视频编码(avc)、高效视频编码(hevc)和通用视频编码(vvc)标准定义的视频压缩/解压缩标准来传输、接收、编码、解码和/或存储数字视频数据。视频压缩通常包括执行空间(帧内)预测和/或时间(帧间)预测以减少或去除视频数据中固有的冗余。对于基于块的视频编码,视频帧被划分为一个或多个切片(slice),每个切片具有多个视频块,也可以称为编码树单元(ctu)。每个ctu可以包含一个编码单元(cu)或递归地拆分成更小的cu,直到达到预定义的最小cu大小。每个cu(也称为叶cu)包含一个或多个变换单元(tu),每个cu还包含一个或多个预测单元(pu)。每个cu可以采用帧内、帧间或ibc模式进行编码。使用相对于同一视频帧内的相邻块中的参考样本的空间预测对视频帧的帧内编码(i)切片中的视频块进行编码。视频帧的帧间编码(p或b)切片中的视频块可使用相对于同一视频帧内相邻块中的参考样本的空间预测或相对于其它先前和/或未来参考视频中的参考样本的时间预测。
5.基于先前编码参考块(例如,相邻块)的空间或时间预测产生要编码的当前视频块的预测块。寻找参考块的过程可以通过块匹配算法来完成。表示要编码的当前块和预测块之间的像素差异的残差数据被称为残差块或预测误差。根据指向形成预测块的参考帧中的参考块的运动矢量和残差块对帧间编码块进行编码。确定运动矢量的过程通常称为运动估计。根据帧内预测模式和残差块对帧内编码块进行编码。为了进一步压缩,将残差块从像素域变换到变换域,例如频域,产生残差变换系数,然后可以对其进行量化。可以对最初以二维阵列排列的量化变换系数进行扫描以产生变换系数的一维向量,然后将其熵编码到视频比特流中以实现甚至更多的压缩。
6.编码的视频比特流然后被保存在计算机可读存储介质(例如,闪存)中,以被具有数字视频能力的另一电子设备访问或者直接以有线或无线的方式传输到电子设备。电子设备然后通过例如解析编码视频比特流以从比特流获得语法元素并且至少部分地基于从该比特流获得的语法元素从编码视频比特流将数字视频数据重构为其原始格式来执行视频
解压缩(这是与上述视频压缩相反的过程),并且在电子设备的显示器上呈现重构的数字视频数据。
7.随着数字视频质量从高清到4k
×
2k甚至8k
×
4k,要编码/解码的视频数据量呈指数增长。如何在保持解码视频数据的图像质量的同时更有效地编码/解码视频数据是一个持续的挑战。


技术实现要素:

8.本技术描述了与视频数据编码和解码相关的实施方式,更具体地来讲,涉及使用内部比特深度的精度执行用于调色板模式的率失真分析的系统和方法。
9.根据本技术的第一方面,一种编码视频数据的方法,该方法包括:识别用于调色板模式编码的编码块;针对该编码块确定调色板表;通过对该编码块进行率失真分析来更新该调色板表,其中该编码块的率计算和失真计算被设置为使用用于该编码块的参考样本的内部编码比特深度;以及将更新了的调色板表和该编码块的对应调色板索引图编码成比特流。
10.根据本发明的第二方面,一种电子设备包括一个或多个处理单元、存储器和存储在该存储器中的多个程序。当由一个或多个处理单元执行时,这些程序使得该电子设备执行如上所述的解码视频数据的方法。
11.根据本发明的第三方面,一种非暂时性计算机可读存储介质存储由具有一个或多个处理单元的电子设备执行的多个程序。当由该处理单元执行时,这些程序使得该电子设备执行如上所述的解码视频数据的方法。
附图说明
12.所包括的附图用以提供对实施方式的进一步理解并且结合在本文中并构成说明书的一部分,图示了所描述的实施方式并且与说明书一起用于解释基本原理。相同的附图标记指代相应的部分。
13.图1是示出了根据本发明的一些实施方式的示例性的视频编码和解码系统的框图。
14.图2是示出了根据本发明的一些实施方式的示例性的视频编码器的框图。
15.图3是示出了根据本发明的一些实施方式的示例性的视频解码器的框图。
16.图4a至4e是示出了根据本技术的一些实施方式的帧如何被递归地四叉树分割成不同大小的多个视频块的框图。
17.图5是示出了根据本发明的一些实施方式的确定和使用用于编解码视频数据的调色板表的示例的框图。
18.图6是示出了根据本发明的一些实施方式的视频编码器实现使用内部比特深度的精度执行用于调色板模式的率失真分析的技术的示例性过程的流程图。
具体实施方式
19.现在将详细参考具体实施方式,其示例在附图中示出。在下面的详细描述中,阐述了许多非限制性的具体细节以帮助理解在此呈现的主题。但是对于本领域的普通技术人员
来说显而易见的是,在不脱离权利要求的范围的情况下可以使用各种替代方案,并且可以在没有这些具体细节的情况下实践主题。例如,对于本领域的普通技术人员来说显而易见的是,这里呈现的主题可以在具有数字视频能力的多种类型的电子设备上实现。
20.图1是示出了根据本发明的一些实施方式的用于并行编码和解码视频块的示例性系统10的框图。如图1所示,系统10包括源设备12,其生成并编码随后由目标设备14解码的视频数据。源设备12和目标设备14可包括多种电子设备中的任一种,包括台式计算机或膝上型电脑、平板电脑、智能手机、机顶盒、数字电视、摄像机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备,等等。在一些实施方式中,源设备12和目标设备14配备有无线通信能力。
21.在一些实施方式中,目标设备14可经由链路16接收要解码的编码视频数据。链路16可包括能够将编码视频数据从源设备12移动到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可包括通信介质以使得源设备12能够将编码视频数据实时地直接传输到目标设备14。可根据诸如无线通信协议之类的通信标准对编码视频数据进行调制,并将其传输到目标设备14。该通信介质可包括任何无线或有线通信介质,如射频(rf)频谱或一种或多种物理传输线路。该通信介质可形成基于分组的网络的一部分,如局域网、广域网或全球网,如因特网。该通信介质可包括路由器、交换机、基站或其它任何可能有助于促进从源设备12到目标设备14的通信的设备。
22.在其它的一些实施方式中,编码视频数据可以从输出接口22被传输到存储设备32。随后,目标设备14可通过输入接口28访问存储设备32中的编码视频数据。存储设备32可包括各种分布式或本地访问的数据存储介质中的任何一种,如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪存、易失性或非易失性存储器,或其它任何适当的用于存储编码视频数据的数字存储介质。在进一步的示例中,存储设备32可对应于可以保存源设备12生成的编码视频数据的文件服务器或另一种中间存储设备。目标设备14可通过流传输或下载来访问来自存储设备32的存储的视频数据。该文件服务器可以是能够存储编码视频数据并将编码视频数据传输到目标设备14的任何类型的计算机。示例性文件服务器包括网络服务器(例如,用于网站)、ftp服务器、网络附加存储(nas)设备或本地磁盘驱动器。目标设备14可以通过任何标准数据连接访问编码视频数据,所述标准数据连接包括适用于访问存储在文件服务器上的编码视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等),或二者的组合。来自存储设备32的编码视频数据的传输可以是流传输、下载传输或二者的组合。
23.如图1所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可包括诸如视频捕获设备之类的源,如摄像机、包含先前捕获的视频的视频档案、用于从视频内容提供商接收视频的视频馈送接口和/或用于生成计算机图形数据作为源视频的计算机图形系统或这些源的组合。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目标设备14可形成照相电话或视频电话。然而,本技术中描述的这些实施方式通常可适用于视频编解码,并且可适用于无线和/或有线应用。
24.捕获的、预先捕获的或计算机生成的视频可由视频编码器20编码。编码视频数据可通过源设备12的输出接口22直接传输到目标设备14。编码视频数据也可以(或替代地)被存储到存储设备32上以随后由目标设备14或其它设备访问,以进行解码和/或回放。输出接
口22还可包括调制解调器和/或发射器。
25.目标设备14包括输入接口28、视频解码器30和显示设备34。输入接口28可包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16传送的或在存储设备32上提供的编码视频数据可包括由视频编码器20生成的供视频解码器30在对视频数据进行解码时使用的多种语法元素。这些语法元素可包括在在通信介质上传输、存储在存储介质上或存储在文件服务器上的编码视频数据内。
26.在一些实施方式中,目标设备14可包括显示设备34,该显示设备34可以是集成的显示设备和被配置为与目标设备14进行通信的外部显示设备。显示设备34向用户显示解码视频数据,并且可包括多种显示设备中的任一种,例如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或其它类型的显示设备。
27.视频编码器20和视频解码器30可根据专有或行业标准进行操作,如vvc、hevc、mpeg-4第10部分,高级视频编码(avc),或此类标准的延伸。应理解本技术不限于特定的视频编码/解码标准,可以适用于其它视频编码/解码标准。通常设想源设备12的视频编码器20可被配置为根据当前或未来的这些标准中的任何一个来编码视频数据。类似地,通常还设想目标设备14的视频解码器30可被配置为根据当前或未来的这些标准中的任何一个来解码视频数据。
28.视频编码器20和视频解码器30均可以实现为多种适当的编码器电路中的任何一种,例如一个或多个微处理器、数字信号处理器(dsp)、应用型专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当部分以软件实现时,电子设备可将用于软件的指令存储在适当的非暂时性计算机可读介质中并使用一个或多个处理器在硬件中执行这些指令来执行本发明中公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可包括在一个或多个编码器或解码器中,其中的任何一个可以被集成为相应设备中的组合编码器/解码器(codec)的一部分。
29.图2是示出了根据本技术中描述的一些实施方式的示例性的视频编码器20的框图。视频编码器20可执行视频帧内的视频块的帧内和帧间预测编码。帧内预测编码依赖于空间预测来减少或去除给定视频帧或图片内视频数据中的空间冗余。帧间预测编码依赖于时间预测来减少或去除视频序列的相邻视频帧或图片内的视频数据中的时间冗余。
30.如图2所示,视频编码器20包括视频数据存储器40、预测处理单元41、解码图片缓存器(dpb)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41还包括运动估计单元42、运动补偿单元44、分割单元45、帧内预测处理单元46和帧内块复制(bc)单元48。在一些实施方式中,视频编码器20还包括用于视频块重构的逆量化单元58、逆变换处理单元60和加法器62。去块滤波器(未示出)可位于加法器62与dpb 64之间以对块边界进行滤波,从而从重构的视频中去除块状伪影。除了去块滤波器之外,还可以使用环路滤波器(未示出)来对加法器62的输出进行滤波。视频编码器20可采用固定或可编程硬件单元的形式,或者可在示出的一个或多个固定的或可编程硬件单元中被划分。
31.视频数据存储器40可存储由视频编码器20的组件编码的视频数据。视频数据存储器40中的视频数据可以例如从视频源18获得。dpb 64是存储视频编码器20在编码视频数据时(例如以帧内或帧间预测编码模式)使用的参考视频数据的缓存器。视频数据存储器40和dpb 64可由多种存储器设备中的任一种形成。在各种示例中,视频数据存储器40可以与视
频编码器20的其它组件在芯片上,或者相对于这些组件在芯片外。
32.如图2所示,在接收视频数据之后,预测处理单元41内的分割单元45将视频数据划分成视频块。该划分还可包括根据预定义的划分结构将视频帧划分为切片、图块(tile)或其它更大的编码单元(cu),这些划分结构如与视频数据相关联的四叉树结构。该视频帧可被划分为多个视频块(或称为图块的视频块组)。预测处理单元41可基于误差结果(如编码率和失真水平)为当前的视频块从多个可能的预测编码模式中选择一个预测编码模式,该预测编码模式如多个帧内预测编码模式中的一个或多个帧间预测编码模式中的一个。预测处理单元41可将由此得到的帧内或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重构该编码块以随后用作参考帧的一部分。预测处理单元41还向熵编码单元56提供语法元素,如运动向量、帧内模式指示符、分割信息和其它此类语法信息。
33.为了为当前视频块选择适当的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可相对于与要被编码的当前块在同一帧中的一个或多个相邻块执行当前视频块的帧内预测编码,以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或多个参考帧中的一个或多个预测块进行当前视频块的帧间预测编码,以提供时间预测。视频编码器20可以执行多个编码遍次(pass),例如,为每个视频数据块选择适当的编码模式。
34.在一些实施方式中,运动估计单元42根据视频帧序列的预定型式通过生成运动向量来为当前视频帧确定帧间预测模式,该运动向量指示当前视频帧内的视频块的预测单元(pu)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动向量的过程,其估计视频块的运动。运动向量,例如,可指示当前视频帧或图片内的视频块的pu相对于参考帧(或其它已编码单元)内的、相对于在当前帧内被编码的当前块(或其他已编码单元)的预测块的位移。该预定型式可将该序列中的视频帧指定为p帧或b帧。帧内bc单元48可以以类似于由运动估计单元42为帧间预测确定运动向量的方式确定用于帧内bc编码的向量,例如块向量,或者可以利用运动估计单元42来确定该块向量。
35.预测块是参考帧的一个块,它被认为在像素差方面与待编码视频块的pu紧密匹配,像素差可以由绝对差之和(sad)、平方差之和(ssd)或其它差异度量值确定。在一些实施方式中,视频编码器20可以计算存储在dpb 64中的参考帧的子整数像素位置的值。例如,视频编码器20可以内插该参考帧的四分之一像素位置、八分之一像素位置或其它分数的像素位置。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并输出具有分数像素精度的运动向量。
36.运动估计单元42通过将pu的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)中选择的参考帧的预测块的位置进行比较来计算帧间预测编码帧中视频块的pu的运动向量,第一参考帧列表和第二参考帧列表中的每一个标识存储在dpb 64中的一个或多个参考帧。运动估计单元42将计算的运动向量发送到运动补偿单元44,然后发送到熵编码单元56。
37.由运动补偿单元44执行的运动补偿可涉及基于由运动估计单元42确定的运动向量来获取或生成预测块。在接收到当前视频块的pu的运动向量后,运动补偿单元44可以在其中的一个参考帧列表中定位运动向量所指向的预测块,从dpb 64检索预测块,并将预测块转发到加法器50。然后,加法器50通过从正在被编码的当前视频块的像素值中减去由运
动补偿单元44提供的预测块的像素值来形成像素差值的残差视频块。形成残差视频块的这些像素差值可包括亮度差分量或色度差分量或包括两者。运动补偿单元44还可产生与视频帧的视频块相关联的语法元素以供视频解码器30在对视频帧的视频块进行解码时使用。这些语法元素可包括如定义用于识别该预测性块的运动向量的语法元素、指示该预测模式的任何标识或本文描述的其它任何语法信息。应注意,运动估计单元42和运动补偿单元44可高度集成,但出于概念目的而分别地图示。
38.在一些实施方式中,帧内bc单元48可以以与上文结合运动估计单元42和运动补偿单元44描述的方式类似的方式生成向量并获取预测块,但这些预测块与正在被编码的当前块位于同一帧内并且这些向量被称为块向量而不是运动向量。具体而言,帧内bc单元48可确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内bc单元48可例如在单独的编码遍次期间使用各种帧内预测模式来编码当前块,并且通过率失真分析测试它们的性能。接下来,帧内bc单元48可以在各种经过测试的帧内预测模式中选择适当的帧内预测模式来使用并相应地生成帧内模式指示符。例如,帧内bc单元48可以使用针对各种经过测试的帧内预测模式的率失真分析来计算率失真值,并且在经过测试的模式中选择具有最佳率失真特性的帧内预测模式作为适当的帧内预测模式来使用。率失真分析通常确定编码块与被编码以产生该编码块的原始未编码块之间的失真(或误差)量、以及用于产生编码块的比特率(即比特数)。帧内bc单元48可从用于各种编码块的失真和速率计算比率以确定哪种帧内预测模式展示出块的最佳速率失真值。
39.在其他示例中,帧内bc单元48可全部或部分地使用运动估计单元42和运动补偿单元44来根据本文描述的实施方式来执行用于帧内bc预测的此类功能。在任一情况下,对于帧内块复制,预测块可以是被认为与待编码块紧密匹配的块,就像素差而言,其可以由绝对差之和(sad)、平方之和(ssd)或其它差异度量值来确定,并且该预测块的识别可包括子整数像素位置的值的计算。
40.无论预测块是根据帧内预测来自同一帧,还是根据帧间预测来自不同帧,视频编码器20都可以通过从正在被编码的当前视频块的像素值中减去该预测块的像素值来形成残差视频块,从而形成像素差值。形成该残差视频块的这些像素差值可包括亮度和色度分量差。
41.如上文描述的,帧内预测处理单元46可对当前视频块进行帧内预测,作为运动估计单元42和运动补偿单元44执行的帧间预测或帧内bc单元48执行的帧内块复制预测的替代方案。具体而言,帧内预测处理单元46可确定用于对当前块进行编码的帧内预测模式。为此,帧内预测处理单元46可例如在单独的编码遍次期间使用各种帧内预测模式对当前块进行编码,并且帧内预测处理单元46(或在一些示例中为模式选择单元)可从经过测试的帧内预测模式中选择适当的帧内预测模式来使用。帧内预测处理单元46可向熵编码单元56提供指示用于该块的所选择的帧内预测模式的信息。熵编码单元56可在比特流中对指示所选择的帧内预测模式的信息进行编码。
42.在预测处理单元41通过帧间预测或帧内预测确定当前视频块的预测块之后,加法器50通过从当前视频块中减去该预测块来形成残差视频块。该残差块中的残差视频数据可包括在一个或多个变换单元(tu)中并提供给变换处理单元52。变换处理单元52使用诸如离散余弦变换(dct)或概念上类似的变换来将残差视频数据变换为残差变换系数。
43.变换处理单元52可将所得到的变换系数发送到量化单元54。量化单元54将这些变换系数量化以进一步降低比特率。该量化过程还可减少与一些或所有系数相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54然后可对包含经过量化的变换系数的矩阵进行扫描。可替代地,熵编码单元56可进行这种扫描。
44.在量化之后,熵编码单元56使用例如上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)、基于语法的上下文自适应二进制算术编码(sbac)、概率区间划分熵(pipe)编码或其它熵编码方法或技术将量化的变换系数熵编码成视频比特流。然后这种编码后的比特流可被传送到视频解码器30,或被存档在存储装置32中以供以后传送到视频解码器30或由视频解码器30检索。熵编码单元56还可对用于正在被编码的当前视频帧的这些运动向量和其它语法元素进行熵编码。
45.逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换以重构像素域中的残差视频块,以生成用于预测其它视频块的参考块。如上所述,运动补偿单元44可从dpb 64中存储的帧的一个或多个参考块生成运动补偿预测块。运动补偿单元44还可将一个或多个内插滤波器应用于该预测块以计算用于运动估计的子整数像素值。
46.加法器62将该重构的残差块与运动补偿单元44产生的该运动补偿预测块相加以产生存储在dpb 64中的参考块。该参考块然后可由帧内bc单元48、运动估计单元42以及运动补偿单元44用作预测块以对后续视频帧中的另一个视频块进行帧间预测。
47.图3是示出了根据本技术的一些实施方式的示例性的视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、加法器90和dpb 92。预测处理单元81还包括运动补偿单元82、帧内预测处理单元84和帧内块复制单元(帧内bc单元)85。视频解码器30执行解码过程,该解码过程通常与结合图2所描述的与视频编码器20有关的编码过程是相反的。例如,运动补偿单元82可基于从熵解码单元80接收的运动向量生成预测数据,而帧内预测单元84可基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。
48.在一些示例中,视频解码器30的单元可以被分配执行本发明的实施方式的任务。此外,在一些示例中,本发明的实施方式可以在视频解码器30的一个或多个单元之间划分。例如,帧内bc单元85可以单独地或与视频解码器30的其它单元(如运动补偿单元82、帧内预测处理单元84和熵解码单元80)组合起来执行本发明的实施方式。在一些示例中,视频解码器30可以不包括帧内bc单元85并且帧内bc单元85的功能可由预测处理单元81的其它组件(如运动补偿单元82)执行。
49.视频数据存储器79可以存储待由视频解码器30的其它部件进行解码的视频数据,如编码视频比特流。存储在视频数据存储器79中的视频数据例如可经由视频数据的有线或无线网络通信从存储设备32、从本地视频源(如相机)中获得,或者可通过访问物理数据存储介质(如闪存驱动器或硬盘)来获得。视频数据存储器79可包括存储来自编码视频比特流的编码视频数据的编码图片缓存器(cpb)。视频解码器30的解码图片缓存器(dpb)92存储参考视频数据以在视频解码器30(如以帧内或帧间预测编码模式)解码视频数据时使用。视频数据存储器79和dpb 92可由多种存储器设备中的任一种形成,如动态随机存取存储器(dram),包括同步dram(sdram)、磁阻ram(mram)、电阻ram(rram)或其它类型的存储设备。出于例示目的,在图3中将视频数据存储器79和dpb 92示为视频解码器30的两个不同组件。但
是对于本领域中熟练的技术人员显而易见的是,视频数据存储器79和dpb 92可以由相同的存储器设备或分离的存储器设备提供。在一些示例中,视频数据存储器79可与视频解码器30的其它组件在芯片上,或者相对于这些组件在芯片外。
50.在该解码过程期间,视频解码器30接收表示编码视频帧的视频块和相关联的语法元素的编码视频比特流。视频解码器30可以在视频帧级别和/或视频块级别接收这些语法元素。视频解码器30的熵解码单元80对该比特流进行熵解码以生成量化系数、运动向量或帧内预测模式指示符以及其它语法元素。熵解码单元80然后将这些运动向量和其它的这些语法元素转发到预测处理单元81。
51.当该视频帧被编码为帧内预测编码(i)帧或用于其它类型帧中的帧内编码预测块时,预测处理单元81的帧内预测处理单元84可基于通过信号发送的帧内预测模式和来自当前帧的先前解码块的参考数据来为当前视频帧的视频块生成预测数据。
52.当该视频帧被编码为帧间预测编码(即,b或p)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的这些运动向量和其它语法元素为当前视频帧的视频块产生一个或多个预测块。这些预测块中的每一个可从这些参考帧列表中的一个的参考帧产生。视频解码器30可基于存储在dpb 92中的参考帧使用默认的构建技术来构建参考帧列表,即列表0和列表1。
53.在一些示例中,在根据本文所描述的帧内bc模式编码该视频块时,预测处理单元81的帧内bc单元85基于从熵解码单元80接收的块向量和其它语法元素为当前的视频块产生预测块。这些预测块可以在与由视频编码器20定义的当前视频块相同的图片的重构区域内。
54.运动补偿单元82和/或帧内bc单元85通过对这些运动向量和其它的语法元素进行解析来确定用于当前视频帧的视频块的预测信息,然后使用该预测信息来为正在解码的当前视频块产生预测帧。例如,运动补偿单元82使用所接收的语法元素中的一些来确定用于编码该视频帧的视频块的预测模式(如帧内或帧间预测)、帧间预测帧类型(如b或p)、用于该帧的一个或多个参考帧列表的构造信息、该帧的每个帧间预测编码视频块的运动向量、该帧的每个帧间预测编码视频块的帧间预测状态以及用于解码当前视频帧中的这些视频块的其它信息。
55.类似地,帧内bc单元85可以使用接收到的语法元素中的一些(如标识)来确定以前是使用该帧内bc模式对当前视频块进行预测的、该帧的哪些视频块在该重构区域内并应存储在dpb 92中的构造信息、用于该帧的每个帧内bc预测视频块的块向量、用于该帧的每个帧内bc预测视频块的帧内bc预测状态以及用于解码当前视频帧中的这些视频块框架的其它信息。
56.运动补偿单元82还可以在这些视频块的编码期间如视频编码器20一样使用这些内插滤波器来进行内插以计算用于参考块的子整数像素的内插值。在这种情况下,运动补偿单元82可从所接收的语法元素来确定视频编码器20所使用的这些内插滤波器,并且使用这些内插滤波器来产生预测块。
57.逆量化单元86使用由视频编码器20为该视频帧中的每个视频块计算的同一量化参数对比特流中提供的并由熵解码单元80熵解码的已量化的变换系数进行逆量化,以确定量化程度。逆变换处理单元88将逆变换(如逆dct、逆整数变换或概念上类似的逆变换过程)
应用于这些变换系数,以重构该像素域中的残差块。
58.在运动补偿单元82或帧内bc单元85基于这些向量和其它语法元素生成用于当前视频块的预测块之后,加法器90通过将来自逆变换处理单元88的残差块和由运动补偿单元82和帧内bc单元85生成的相应预测块相加来重构用于当前视频块的编码视频块。环内滤波器(未图示)可以位于加法器90与dpb 92之间以对该解码视频块进行进一步的处理。然后将给定帧中的解码视频块存储在dpb 92中,dpb 92存储用于以后的视频块的后续运动补偿的参考帧。dpb 92或与dpb 92分离的存储器设备也可以存储已解码的视频以供稍后在显示设备(如图1的显示设备34)上呈现。
59.在典型的视频编码过程中,视频序列通常包括一组有序的帧或图片。每个帧可包括三个样本阵列,表示为sl、scb和scr。sl是亮度样本的二维阵列。scb是cb色度样本的二维阵列。scr是cr色度样本的二维阵列。在其它情况下,帧可以是单色的,因此仅包括一个二维亮度样本阵列。
60.如图4a所示,视频编码器20(或更具体地来讲,分割单元45)通过首先将帧划分为一组编码树单元(ctu)来生成该帧的编码表示。视频帧可包括整数个按从左到右和从上到下的光栅扫描顺序连续排序的ctu。每个ctu是最大的逻辑编码单元并且该ctu的宽度和高度由视频编码器20在序列参数集中用信号通知,以使视频序列中的所有ctu具有相同的大小,即128
×
128、64
×
64、32
×
32和16
×
16中的一个。但需要说明的是,本技术并不一定限于特定的尺寸。如图4b所示,每个ctu可包括亮度样本的一个编码树块(ctb)、色度样本的两个对应编码树块以及用于对这些编码树块的样本进行编码的语法元素。这些语法元素描述编码像素块的已编码块的不同类型单元的特性以及如何在视频解码器30处重构视频序列,包括帧间或帧内预测、帧内预测模式、运动向量以及其它参数。在单色图片或具有三个单独颜色平面的图片中,ctu可包括单个编码树块和用于对该编码树块的样本进行编码的语法元素。编码树块可以是n
×
n个样本块。
61.为了实现更好的性能,视频编码器20可以对该ctu的这些编码树块递归地执行树分割,例如二叉树分割、三叉树分割、四叉树分割或二者的组合,并将该ctu分割成更小的编码单元(cu)。如图4c所示,首先将64
×
64的ctu 400分成四个更小的cu,每个更小的cu具有32
×
32的块尺寸。在这四个更小的cu中,cu 410和cu 420均按块大小分成四个16
×
16的cu。两个16
×
16的cu 430和440分别按块大小进一步分为四个8
×
8的cu。图4d示出了一种四叉树数据结构,图中示出了如图4c中示出的ctu 400的分割过程的最终结果,该四叉树的每个叶节点对应一个大小范围从32
×
32到8
×
8的cu。如图4b中所示出的ctu一样,每个cu可包括相同大小的帧的亮度样本的编码块(cb)和色度样本的两个对应编码块以及用于对这些编码块的这些样本进行编码的语法元素。在单色图片或具有三个单独色彩平面的图片中,cu可包括单个编码块和用于对该编码块的这些样本进行编码的语法结构。应该注意的是,在图4c和4d中示出的四叉树分割仅用于图示目的,并且可将一个ctu拆分为cu以适应基于四叉/三叉/二叉树分割的不同局部特征。在多类型树结构中,一个ctu被四叉树结构分割,每个四叉树叶子cu可以进一步被二叉树和三叉树结构分割。如图4e所示,有五种分割类型,即四叉分割、水平二叉分割、垂直二叉分割、水平三叉分割和垂直三叉分割。
62.在一些实施方式中,视频编码器20可进一步将cu的编码块分割成一个或多个m
×
n的预测块(pb)。预测块是矩形(正方形或非正方形)样本块,在其上应用了相同的(帧间或帧
内)预测。cu的预测单元(pu)可包括亮度样本的预测块、色度样本的两个对应预测块以及用于这些预测块进行预测的语法元素。在单色图片或具有三个单独色彩平面的图片中,pu可包括单个预测块和用于对该预测块进行预测的语法结构。视频编码器20可以为该cu的每个pu的亮度、cb和cr预测块生成预测亮度、cb和cr块。
63.视频编码器20可使用帧内预测或帧间预测来生成用于pu的预测块。如果视频编码器20使用帧内预测来生成pu的预测块,则视频编码器20可基于与该pu相关联的帧的已解码样本来生成pu的预测块。如果视频编码器20使用帧间预测来生成pu的预测块,则视频编码器20可基于除与pu相关联的帧之外的一个或多个帧的已解码样本来生成pu的预测块。
64.在视频编码器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编码块中的对应样本之间的差异。
65.此外,如图4c所示,视频编码器20可采用四叉树分割来将cu的亮度、cb和cr残差块分解为一个或多个亮度、cb和cr变换块。变换块是对其应用相同变换的矩形(正方形或非正方形)样本块。cu的变换单元(tu)可包括亮度样本的变换块、色度样本的两个对应变换块以及用于对这些变换块样本进行变换的语法元素。因此,cu的每个tu可与亮度变换块、cb变换块和cr变换块相关联。在一些示例中,与该tu相关联的亮度变换块可以是该cu的亮度残差块的子块。该cb变换块可以是该cu的cb残差块的子块。该cr变换块可以是该cu的cr残差块的子块。在单色图片或具有三个单独颜色平面的图片中,tu可包括单个变换块和用于对该变换块的样本进行变换的语法结构。
66.视频编码器20可将一个或多个变换应用于tu的亮度变换块以生成该tu的亮度系数块。系数块可以是多个变换系数的二维阵列。变换系数可以是标量。视频编码器20可将一个或多个变换应用于tu的cb变换块以生成用于该tu的cb系数块。视频编码器20可将一个或多个变换应用于tu的cr变换块以生成用于该tu的cr系数块。
67.在生成系数块(如亮度系数块、cb系数块或cr系数块)之后,视频编码器20可将该系数块量化。量化通常是指对变换系数进行量化以可能减少用于表示变换系数的数据量从而提供进一步压缩的过程。在视频编码器20将系数块量化之后,视频编码器20可对指示量化后的变换系数的语法元素进行熵编码。例如,视频编码器20可对指示量化后的变换系数的语法元素进行上下文自适应二进制算术编码(cabac)。最后,视频编码器20可以输出包括比特序列的比特流,该比特序列形成已编码帧和相关数据的表示,其被保存在存储设备32中或传输到目标设备14。
68.在接收由视频编码器20生成的比特流之后,视频解码器30可解析该比特流以从该比特流获得语法元素。视频解码器30可以至少部分地基于从该比特流获得的语法元素来重构该视频数据的帧。重构视频数据的过程通常与视频编码器20执行的编码过程是相互的。例如,视频解码器30可以对与当前cu的tu相关联的系数块进行逆变换,以重构与当前cu的这些tu关联的残差块。视频解码器30还可以通过将用于当前cu的pu的预测块的这些样本加
到当前cu的这些tu的变换块的样本来重构当前cu的这些编码块。在重构用于帧的每个cu的编码块之后,视频解码器30可重构该帧。
69.如上所述,视频编解码主要使用两种模式实现视频压缩,即帧内预测和帧间预测。基于调色板的编解码是被许多视频编码标准采用的另一种编码方案。在可能特别适用于屏幕生成内容编解码的基于调色板的编解码中,视频编解码器(例如,视频编码器20或视频解码器30)形成表示给定块的视频数据的颜色的调色板表。该调色板表包括该给定块中最主要的(例如,经常使用的)像素值。在该给定块的视频数据中不经常表示的像素值要么不包括在该调色板表中,要么作为逃逸颜色包括在该调色板表中。
70.该调色板表中的每个条目包括该调色板表中的对应像素值的索引。用于该块中的样本的调色板索引可以被编码以指示来自该调色板表中的哪个条目将会用于预测或重构哪个样本。该调色板模式开始于为图片、切片、图块或其它此类视频块分组的第一块生成调色板预测器的过程。如下文所述,用于后续视频块的调色板预测器通常是通过更新先前使用的调色板预测器来生成的。为了说明的目的,假设该调色板预测器以图片级别定义。换言之,一张图片可包括多个编码块,每个编码块都有自己的调色板表,但整个图片只有一个调色板预测器。
71.为了减少通过信号发送视频比特流中的调色板条目所需的比特,视频解码器可以利用调色板预测器来确定调色板表中用于重构视频块的新调色板条目。例如,该调色板预测器可包括来自先前使用的调色板表的调色板条目,或者甚至通过包括最近使用的调色板表的所有条目而用最近使用的调色板表初始化。在一些实施方式中,该调色板预测器可包括少于最近使用的调色板表的所有条目,然后合并来自其它先前使用的调色板表的一些条目。该调色板预测器可具有与用于编码不同块的调色板表相同的大小,或者可以大于或小于用于编码不同块的调色板表。在一个示例中,该调色板预测器被实现为包括64个调色板条目的先进先出(fifo)表。
72.为了从该调色板预测器生成用于视频数据的块的调色板表,视频解码器可以从编码的视频比特流接收用于该调色板预测器的每个条目的一位标志。该一位标志可以具有指示调色板预测器的关联条目将被包括在调色板表中的第一值(如二进制1)或指示该调色板预测器的关联条目不包含在该调色板表中的第二值(如二进制0)。如果该调色板预测器的大小大于用于视频数据块的调色板表,则一旦达到调色板表的最大大小,该视频解码器就可以停止接收更多标志。
73.在一些实施方式中,调色板表中的一些条目可以在该编码的视频比特流中直接通过信号发送,而不是使用该调色板预测器来确定。对于这些条目,该视频解码器可以从该编码的视频比特流接收三个单独的m比特值,这些比特值指示用于与该条目相关联的亮度和两个色度分量的像素值,其中,m表示视频数据的比特深度。与直接通过信号发送的调色板条目所需的多个m位值相比,从该调色板预测器导出的调色板条目只需要一位标志。因此,使用该调色板预测器通过信号发送一些或所有调色板条目可以显著减少通过信号发送新调色板表的条目所需的比特数,从而提高调色板模式编码的整体编码效率。
74.在多种情况下,用于一个块的调色板预测器是基于用于对一个或多个先前编码的块进行编码的调色板表来确定的。但是在对图片、切片或图块中的第一编码树单元进行编码时,之前编码的块的调色板表可能不可用。因此,不能使用先前使用的调色板表的条目生
成调色板预测器。在这种情况下,可以在序列参数集(sps)和/或图片参数集(pps)中通过信号发送调色板预测器初始值的序列,这些初始值是在先前使用的该调色板表不可用时用于生成调色板预测器的值。sps通常是指应用于称为编码的视频序列(cvs)的一系列连续编码的视频图片的语法元素的语法结构,该编码的视频序列由在pps中找到的语法元素的内容确定,在每个切片段头中找到的语法元素引用在pps中找到的语法元素。pps通常是指应用于cvs内的一个或多个单独图片的语法元素的语法结构,一个或多个单独图片由在每个切片段头中找到的语法元素确定。因此,通常认为sps是比pps更高级别的语法结构,这意味着与pps中包括的语法元素相比,sps中包括的语法元素通常改变较少并且应用于较大部分视频数据。
75.图5是示出了根据本发明的一些实施方式的确定和使用用于编解码图片500中的视频数据的调色板表的示例的框图。图片500包括与第一调色板表520相关联的第一块510和与第二调色板表540相关联的第二块530。由于第二块530位于第一块510的右侧,所以第二调色板表540可以与第一调色板表520相关。调色板预测器550与图片500相关联,并用于存储来自较早生成的包括第一调色板表520的调色板表的零个或多个调色板条目,并将其中的一些添加到第二调色板表540。应注意,图5中示出的各种块可以对应于如上所述的ctu、cu、pu或tu,这些块不限于任何特定编解码标准的块结构,并且可以与未来基于块的编解码标准兼容。
76.一般来讲,调色板表包括若干像素值,这些像素值对于当前正在被编解码的块(如图5中的块510或530)而言是主导性的和/或代表性的。在一些示例中,视频编解码器(如视频编码器20或视频解码器30)可以为块的每个颜色分量分别编解码调色板表。例如,视频编码器20可以对用于块的亮度分量的调色板表、用于该块的色度cb分量的另一调色板表以及用于该块的色度cr分量的又一调色板表进行编码。在这种情况下,第一调色板表520和第二调色板表540各自可以成为多个调色板表。在其它示例中,视频编码器20可以为块的所有颜色分量编码单个调色板表。在这种情况下,该调色板表中的第i个条目是(yi、cbi、cri)的三重值,其中每个值对应于该编码块中样本的一个分量。因此,第一调色板表520和第二调色板表540的表示仅仅是一个示例,而并不旨在对其进行限制。
77.如本文所述,视频编解码器(如视频编码器20或视频解码器30)可用基于调色板的编解码方案来使用索引i1,
…in
对第一块510的像素进行编解码,而不是直接对第一块510的实际像素值进行编解码。例如,对于第一块510中的每个样本,视频编码器20可以对该样本的索引值进行编码,其中该索引值在第一调色板表520中具有关联的像素值。视频编码器20将第一调色板表520编码为编码的视频数据比特流,并将该比特流发送到视频解码器30,以便在解码器侧进行基于调色板的解码。一般来讲,可以为每个块传输一个或多个调色板表,或者可以在不同块之间共享一个或多个调色板表。视频解码器30可以从视频编码器20生成的视频比特流中获得索引值,并使用第一调色板表520中的这些索引值的对应像素值来重构像素值。换言之,对于块的每个相应索引值,视频解码器30可基于该索引值确定第一调色板表520中的条目。然后,视频解码器30用由第一调色板表520中的该条目指定的像素值替换该块中相应的索引值。
78.在一些实施方式中,视频编解码器(如视频编码器20或视频解码器30)至少部分地基于与图片500相关联的调色板预测器550来确定第二调色板表540。调色板预测器550可包
括第一调色板表520的部分或全部条目,并且还可能包括来自其它先前生成的调色板表的条目。在一些示例中,使用先进先出表实现调色板预测器550,其中在将第一调色板表520的条目添加到调色板预测器550时,删除目前在调色板预测器550中最旧的条目,以将调色板预测器550的大小保持在最大或低于最大。在其它示例中,可使用不同的技术来更新和/或维护调色板预测器550。
79.在一个示例中,视频编码器20可以对每个块(如第二块530)的pred_palette_flag进行编码,以指示是否从与一个或多个其它块(如相邻块510)相关联的一个或多个调色板表中预测用于第二块530的调色板表540。例如,当这种标志的值是二进制的“1”时,视频解码器30可以确定用于第二块530的调色板表540是从先前解码的一个或多个调色板表中预测的,因此在包含pred_palette_flag的视频比特流中不包括用于第二块540的新的调色板表。当这种标志是二进制的“0”时,视频解码器30可以确定用于第二块530的第二调色板表540作为新的调色板表包括在该视频比特流中。在一些示例中,pred_palette_flag可针对块的每个不同颜色分量单独编码(例如,对于ycbcr空间中的视频块,三个标志,一个用于y,一个用于cb,一个用于cr)。在其它示例中,可以为块的所有颜色分量编码单个pred_palette_flag。
80.在上面的示例中,为每个块通过信号发送pred_palette_flag,以指示预测用于当前块的调色板表的每个条目。这意味着第二调色板表540与第一调色板表520相同,并且没有附加信息通过信号被发送。在其它示例中,可基于每个条目通过信号发送一个或多个语法元素。也就是说,可以为先前调色板表的每个条目通过信号发送标志,以指示该条目是否存在于当前调色板表中。如果未预测到调色板条目,则可显式地通过信号发送该调色板条目。在其它示例中,这两种方法可以结合使用。
81.当根据第一调色板表520预测第二调色板表540时,视频编码器20和/或视频解码器30可以定位从中确定该预测调色板表的块。预测调色板表可与当前正在编码的块的一个或多个相邻块(即,第二块530)相关联。如图5所示,在确定用于第二块530的预测调色板表时,视频编码器20和/或视频解码器30可以定位左邻块,即第一块510。在其它示例中,视频编码器20和/或视频解码器30可在相对于第二块530的其它位置定位一个或多个块,如图片500中的上块。在另一示例中,使用该调色板模式的用于扫描顺序中的最后一个块的调色板表可以用作第二块530的预测调色板表。
82.视频编码器20和/或视频解码器30可以根据块位置的预定顺序确定用于调色板预测的块。例如,视频编码器20和/或视频解码器30最初可识别用于调色板预测的左邻块,即第一块510。如果左邻块不可用于预测(例如,使用基于调色板的编码模式以外的模式对该左邻块进行编码,如帧内预测模式或帧间预测模式,或者该左邻块位于图片或片段的最左边缘),则视频编码器20和/或视频解码器30可识别图片500中的上邻块。视频编码器20和/或视频解码器30可以根据块位置的预定顺序继续搜索可用块,直到将具有可用于调色板预测的调色板表的块定位。在一些示例中,视频编码器20和/或视频解码器30可以通过应用一个或多个公式、函数和规则等来基于多个块和/或相邻块的重构样本来确定预测调色板,以基于多个相邻块(空间上或按照扫描顺序)中的一个或其组合的调色板表生成预测调色板表。在一个示例中,包括来自一个或多个先前编码的相邻块的调色板条目的预测调色板表包括若干(n个)条目。在这种情况下,视频编码器20首先向视频解码器30发送具有与该预测
调色板表相同大小(即大小为n)的二进制向量v。该二进制向量中的每个条目表示该预测调色板表中的对应条目是否将被重用或复制到用于当前块的调色板表中。例如,v(i)=1表示用于该相邻块的预测调色板表中的第i个条目将被重用或复制到用于当前块的调色板表中,该条目在该当前块中可能有不同的索引。
83.在其它示例中,视频编码器20和/或视频解码器30可构建包括用于调色板预测的若干潜在候选的候选列表。在这些示例中,视频编码器20可将索引编码到该候选列表中以指示该列表中的候选块,用于调色板预测的该当前块从该候选块选出。视频解码器30可以用相同的方式构造该候选列表、解码该索引并使用解码的索引选择相应块的调色板以与当前块一起使用。在另一示例中,该列表中指示的候选块的调色板表可以用作预测调色板表,以用于当前块的调色板表的每项预测。
84.在一些实施方式中,一个或多个语法元素可指示调色板表(如第二调色板表540)是否完全从预测调色板(如第一调色板表520,其可由来自一个或多个先前编码块的条目组成)中被预测,或者指示是否预测第二调色板表540的特定条目。例如,初始语法元素可以指示是否预测第二调色板表540中的所有条目。若该初始语法元素指示未预测所有条目(例如,具有二进制的零值的标志),则一个或多个附加语法元素可指示从该预测调色板表预测第二调色板表540的哪些条目。
85.在一些实施方式中,调色板表的大小(例如,调色板表中包含的像素值的数量)可以是固定的,或者可以使用编码的比特流中的一个或多个语法元素来通过信号发送。
86.在一些实施方式中,视频编码器20可以对块的像素进行编码,而无需将调色板表中的像素值与视频数据的对应块中的实际像素值精确匹配。例如,当这些条目的像素值在彼此的预定范围内时,视频编码器20和视频解码器30可以合并或组合(即量化)该调色板表中的不同条目。换言之,如果已经存在在新像素值的误差范围内的现有像素值,则不将该新像素值添加到调色板表中,而是使用该现有像素值的索引对对应于该新像素值的块中的样本进行编码。应注意,该有损编解码过程对视频解码器30的操作没有影响,无论特定调色板表是无损的还是有损的,视频解码器30可以用相同的方式对像素值进行解码。
87.在一些实施方式中,视频编码器20可以选择调色板表中的条目作为用于对块中的像素值进行编码的预测像素值。之后,视频编码器20可以将该实际像素值与所选条目之间的差值确定为残差并对该残差进行编码。视频编码器20可生成残差块,该残差块包括用于由该调色板表中的条目预测的块中的像素的残差值,然后视频编码器20对该残差块应用变换和量化(如上文结合图2所述)。视频编码器20可以用这种方式生成量化的残差变换系数。在另一示例中,可无损地(无变换和量化)或无变换地对该残差块进行编解码。视频解码器30可以对变换系数进行逆变换和逆量化以再现该残差块,然后使用用于该像素值的预测调色板条目值和残差值重构像素值。
88.在一些实施方式中,视频编码器20可以确定用于构造调色板表的误差阈值,该误差阈值称为差量值。例如,如果块中某个位置的实际像素值在该实际像素值与该调色板表中的现有的像素值条目之间产生小于或等于差量值的绝对差值,则视频编码器20可发送索引值以识别该调色板表中的该像素值条目的对应索引,以用于重构该位置的实际像素值。如果块中某个位置的实际像素值在该实际像素值与该调色板表中的现有的像素值条目之间产生大于该差量值的绝对差值,则视频编码器20可发送该实际像素值并将该实际像素值
作为新条目添加到该调色板表中。为了构造该调色板表,视频解码器30可以使用该编码器通过信号发送的差量值,依赖于固定的或已知的差量值,或者推断或导出差量值。
89.如上所述,视频编码器20和/或视频解码器30在对视频数据进行编解码时可以使用包括帧内预测模式、帧间预测模式、无损编解码调色板模式和有损编解码调色板模式的编解码模式。视频编码器20和视频解码器30可以对指示是否启用基于调色板编解码的一个或多个语法元素进行编解码。例如,在每个块,视频编码器20可以对语法元素进行编码,该语法元素指示基于调色板的编解码模式是否将会用于该块(如cu或pu)。例如,可在编码的视频比特流中以块级别(如cu级别)通过信号发送该语法元素,然后,视频解码器30在解码该编码的视频比特流时接收该语法元素。
90.在一些实施方式中,上述这些语法元素可以以比块级别更高的级别传输。例如,视频编码器20可以以切片级、图块级、pps级或sps级通过信号发送这些法语法元素。在这种情况下,等于1的值指示使用该调色板模式对该级别或该级别以下的所有块进行编码,从而不会在块级别通过信号发送附加模式信息(如调色板模式或其它模式)。等于0的值指示不使用该调色板模式对此级别或该级别以下的块进行编码。
91.在一些实施方式中,较高级别的语法元素启用该调色板模式并不意味着必须使用该调色板模式对该较高级别或该较高级别以下的每个块进行编码。相反,可能仍需要cu级别的甚至tu级别的另一个语法元素来指示是否用该调色板模式对cu级别或tu级别的块进行编解码,如果是,则要构造相应的调色板表。在一些实施方式中,视频编解码器(如视频编码器20和视频解码器30)根据块内的采样数量选择用于最小块大小的阈值(如32),使得不允许调色板模式用于块大小低于该阈值的块。在这种情况下,没有用于这种块的任何语法元素的信令。应注意,可以在该比特流中显式地通过信号发送用于该最小块大小的阈值,或者将该阈值隐式地设置为视频编码器20和视频解码器30都遵守的默认值。
92.块的一个位置的像素值可与该块的其它位置的像素值相同(或在其差量值范围内)。例如,块的相邻像素位置通常具有相同的像素值,或者可以被映射到该调色板表中的相同索引值。因此,视频编码器20可以对一个或多个语法元素进行编码,该语法元素指示具有相同像素值或索引值的按给定扫描顺序的多个连续像素或索引值。在此可将类似取值的像素或索引值的字符串称为“游程(run)”。例如,如果给定扫描顺序中的两个连续像素或索引具有不同的值,则该游程等于0。如果给定扫描顺序中的两个连续像素或索引具有相同的值但该扫描顺序中的第三个像素或索引具有不同的值,则该游程等于1。对于具有相同值的三个连续的索引或像素,该游程为2,依此类推。视频解码器30可以从编码的比特流中获得指示游程的语法元素,并使用该数据来确定具有相同像素或索引值的连续位置的数量。
93.图6是示出了根据本发明的一些实施方式的视频编码器实现使用内部比特深度的精度执行用于调色板模式的率失真分析的技术的示例性过程600的流程图。
94.在一些实施例中,在该调色板模式下执行率失真分析时,视频编码器20使用内部比特深度的精度。在编码过程中,率失真分析以解析表达式的形式为码率与失真之间的权衡提供了更好的选择。率失真分析可包括失真和码率的计算。将码率定义为要存储或传输的每个数据样本的比特数。将失真定义为对应于输入与输出信号之间的差异的数值,通常根据人类的感知和美学对该数值进行建模。在一个示例中,失真计算,例如绝对差之和(sad)或平方差之和(ssd),被用于使用内部比特深度精度选择最近的调色板条目的索引。
95.在另一个示例中,视频编码器基于内部比特深度精度,在调色板模式下为导出调色板执行率失真分析。通常在编码器侧导出该调色板时,将该集群质心用作调色板条目。视频编码器执行率失真分析,以分析当考虑到对这些调色板条目进行编解码的成本时来自该调色板预测器的条目中是否有比该质心更适合用作更新的调色板条目的条目。
96.在对视频数据进行编码时,视频编码器20首先识别用于调色板模式编码的编码块(如图5中的cu 510)(610)。接下来,视频编码器20针对该编码块确定调色板表(如图5中的调色板表520)(620)。该视频编码器通过对该编码块进行率失真分析来更新该调色板表(630)。该编码块的率计算和失真计算被设置为使用用于该编码块的参考样本的内部比特深度。
97.在执行率失真分析之后,该视频编码器将更新了的调色板表和该编码块的对应调色板索引图编码成比特流(640)。
98.在一些实施例中,该视频编码器在用于调色板模式的率失真分析中向亮度分量成本和色度分量成本使用不同权重。这种率失真分析可用于导出用于cu中给定样本值的调色板模式相关参数(如索引编码模式、上方复制模式或索引游程模式等)。在一个示例中,可以在用于调色板模式的率失真分析的总成本计算中对色度分量失真进行加权。例如,将色度分量的失真(如绝对差之和(sad)和/或平方差之和(ssd))乘以小于1的常数,如0.8或0.7。在另一示例中,在用于调色板模式的率失真分析的总成本计算中,将色度率失真的成本乘以小于1的常数,如0.8或0.7。在一些实施例中,该编码块包括亮度分量和色度分量,并且针对率计算和/或失真计算,向该亮度分量和该色度分量应用不同的权重。在一些实施例中,针对失真计算,应用于亮度分量的权重高于应用于色度分量的权重。在一些实施例中,该视频编码器通过以下方式来确定该调色板表:基于该编码块中的样本各自的像素值将这些样本分组为多个集群;对于多个集群中超过预定义阈值的每个集群,确定集群质心;以及将该集群质心作为该调色板表中的新条目插入该调色板表中。在一些实施例中,该新条目替换该调色板表中与该集群的样本相对应的现有条目。在一些实施例中,如上所述,对于超过该预定义阈值的集群,该视频编码器根据该率失真分析的代价结果,用与该编码块相关联的调色板预测器中的条目替换该集群的质心。
99.在一些实施例中,对于只有一个样本的集群,当与该编码块关联的调色板预测器中不存在该调色板表中的相应条目时,该视频编码器将该样本转换为逃逸符号。
100.在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输并由基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质,或者包括便于将计算机程序从一个地方转移到另一个地方的任何介质的通信介质,例如,根据通信协议。在这种方式中,计算机可读介质通常可对应于(1)非暂时性的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一台或多台计算机或一个或多个处理器访问以检索指令、代码和/或数据结构以实现本技术中描述的实施方式的任何可用介质。计算机程序产品可包括计算机可读介质。
101.在一些实施例中,提供用于屏幕内容编解码的量化残差差分脉冲编解码调制(rdpcm)。当rdpcm启用时,如果该cu的大小小于或等于32
×
32个亮度样本并且如果该cu被
帧内编解码,则以该cu级别发送标志。此标志指示是使用常规帧内编解码还是使用rdpcm。如果使用rdpcm,则传输rdpcm预测方向标志,以指示该预测是水平预测还是垂直预测。然后,使用常规水平或垂直帧内预测过程和未滤波的参考样本预测该编码块。对残差进行量化,并对每个量化的残差与其预测器(即水平或垂直(取决于该rdpcm预测方向)相邻位置的先前编解码的残差)之间的差进行编解码。
102.对于尺寸为m(高度)
×
n(宽度)的块,令r
i,j
,0≤i≤m-1,0≤j≤n-1为该预测残差。令q(r
i,j
),0≤i≤m-1,0≤j≤n-1表示残差r
i,j
的量化版本。将rdpcm应用于这些量化的残值,从而产生具有元素的改进的m
×
n阵列其中是从其相邻的量化残值预测的。对于垂直rdpcm预测模式,对于0≤j≤(n-1),下列公式用于推导
[0103][0104]
对于水平rdpcm预测模式,对于0≤i≤(m-1),以下公式用于推导1),以下公式用于推导
[0105]
在解码器侧,上述过程被反转以计算q(r
i,j
),0≤i≤m-1,0≤j≤n-1,如下所示:
[0106]
若使用垂直rdpcm;
[0107]
若使用水平rdpcm。
[0108]
将逆量化残差,即q-1
(q(r
i,j
)),添加到帧内块预测值以产生重构的样本值。使用与变换跳跃模式残差编解码中相同的残差编码过程将预测的量化残差值发送到该解码器。就未来帧内模式编码的mpm模式而言,由于没有针对rdpcm编码的cu而编解码的亮度帧内模式,所以第一mpm帧内模式与该当前cu相关联,并用于当前cu和后续cu的色度块的帧内模式编解码。对于去块而言,如果使用rdpcm对块边界两侧的两个块进行编解码,则该特定块边界不会被去块。
[0109]
在用于rdpcm样本的现有量化设计中,在给定量化参数(或qp)的情况下,当变换块的大小为4的幂时,用于rdpcm样本的量化尺度与其它编码工具中用于样本的常规量化中的尺度相同。在一些实施例中,通过使用来自rdpcm量化的相同移位和/或偏移操作来统一量化过程。例如,该rdpcm量化过程用于调色板模式下的逃逸样本的量化。因此,用于逃逸样本的量化设计与用于rdpcm模式下的样本的量化过程相同。
[0110]
在一些实施例中,重新映射该qp值以用于逃逸样本的量化过程。对于逃逸样本量化,qp的范围可以进行与其它编码模式中的量化不同的定义。例如,对于逃逸样本量化,可将允许的最小qp定义为4,因为当qp等于4时量化步长变为1。在另一示例中,对于逃逸样本量化,允许的最大qp可定义为61。在一些实施例中,重新映射的过程可以通过特定的方程导出。在一个示例中,将用于逃逸样本量化过程的qp推导为:
[0111]
qp
esca
=min(((max(4,qp
cu
)

2)/6)*6 4,61);
[0112]
其中,qpcu是该给定cu的qp。如果该cu被以调色板模式编码,则在量化该cu的逃逸样本时使用的实际qp为qp
esca

[0113]
在一些实施例中,固定长度二值化被用于逃逸样本。固定长度二值化的码字长度可取决于给定块的某些参数。例如,固定长度二值化的该长度取决于qp值和内部比特深度。例如,固定长度二值化的长度len可以导出为:
[0114]
len=(bitdepth

(floor(qp

4)/6)));
[0115]
其中,上述等式中的qp被设置为用于以调色板模式编码的当前块的实际qp值。
[0116]
在一些实施例中,第k阶exp-golomb二值化被用于逃逸样本编解码。根据给定块的某些参数,k的值可能不同。例如,用于逃逸样本编码的exp-golomb二值化的k的值取决于qp的值和该内部比特深度。例如,k的值可以导出为:
[0117]
k=(a

floor(qp/b));
[0118]
其中,上述等式中的qp被设置为用于以调色板模式编码的当前块的实际qp值,a和b为常数,例如,a=6,b=10。
[0119]
在一些实施例中,截断的二进制码字被用于逃逸样本的二值化。该截断的二进制码字的最大值取决于给定块的某些参数。例如,用于截断的二进制码字的最大值取决于该qp值和内部比特深度。
[0120]
在此处的实施方式的描述中使用的术语仅用于描述特定实施方式的目的,并不旨在限制权利要求的范围。在实施方式和所附权利要求的描述中使用的单数形式“一个”和“该/所述”也旨在包括复数形式,除非上下文另有明确指示。还应理解,本文所用的术语“和/或”是指并且涵盖一个或多个相关联的所列项目的任何和所有可能的组合。将会进一步理解,当在本说明书中使用时,术语“包括”指定所陈述的特征、要素和/或组件的存在,但不排除其它一个或多个特征、要素、组件和/或它们的组的存在或添加。
[0121]
还应理解,虽然术语第一、第二等在本文中可用于描述各种要素,但这些要素不应受限于这些术语。这些术语仅用于区分一种要素与另一种要素。例如,在不脱离实施方式的范围的情况下,第一电极可以被称为第二电极,并且类似地,第二电极可以被称为第一电极。第一电极和第二电极都是电极,但不是同一个电极。
[0122]
本技术的描述是为了说明和描述的目的而呈现的,并不旨在穷举或限制以所公开形式的本发明。受益于前述描述和相关附图中呈现的教导,本领域普通技术人员将明白许多修改、变化和替代实施方式。选择和描述实施例是为了最好地解释本发明的原理、实际应用,并使本领域的其他技术人员能够理解本发明的各种实现方式,并最好地利用具有各种修改的基本原理和各种实现方式,如适用于预期的特定用途。因此,应当理解,权利要求的范围不限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在包括在所附权利要求的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献