CN115714866A - 残差和系数编解码的方法和装置 - Google Patents

残差和系数编解码的方法和装置 Download PDF

Info

Publication number
CN115714866A
CN115714866A CN202211502870.XA CN202211502870A CN115714866A CN 115714866 A CN115714866 A CN 115714866A CN 202211502870 A CN202211502870 A CN 202211502870A CN 115714866 A CN115714866 A CN 115714866A
Authority
CN
China
Prior art keywords
video
syntax elements
block
binarization
palette
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211502870.XA
Other languages
English (en)
Inventor
朱弘正
陈漪纹
修晓宇
马宗全
王祥林
于冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Publication of CN115714866A publication Critical patent/CN115714866A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1887Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a variable length codeword
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

残差和系数编解码的方法和装置。一种电子装置执行对视频数据进行解码的方法。该方法包括:从比特流接收与以调色板模式编码的编码单元相对应的一个或多个语法元素和视频数据;根据所述一个或多个语法元素,确定第一二值化参数;从视频数据中解码用于编码单元内的逃逸样本的第一码字;使用具有第一二值化参数的预定义的二值化方案,从视频数据中解码编码单元内的逃逸样本的值。

Description

残差和系数编解码的方法和装置
本申请是申请日为2020年10月30日,题为“残差和系数编解码的方法和装置”,申请号为202080082795.9的专利申请的分案申请。
相关申请
本申请要求享受于2019年11月1日提交的、标题为“Residual and CoefficientsCoding for Video Coding”的美国临时专利申请No.62/929,755的优先权,上述申请通过引用方式完整地并入本文。
技术领域
概括地说,本申请涉及视频数据编解码和压缩,并且具体地,涉及用于视频编解码的调色板模式编解码的改进的方法和系统。
背景技术
诸如数字电视、膝上型计算机或桌面型计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏控制台、智能电话、视频电话会议设备、视频流式传输设备等等之类的各种电子设备支持数字视频。电子设备通过实现如由MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分、高级视频编解码(AVC)、高效率视频编解码(HEVC)和通用视频编解码(VVC)标准所规定的视频压缩/解压缩标准,来发送、接收、编码、解码和/或存储数字视频数据。视频压缩通常包括:执行空间(帧内)预测和/或时间(帧间)预测以减少或消除视频数据中固有的冗余。对于基于块的视频编解码,可以将视频帧划分为一个或多个条带,每个条带具有多个视频块,视频块还可以被称为编码树单元(CTU)。每个CTU可以包含一个编码单元(CU)或递归地拆分为更小的CU,直到达到预定义的最小CU大小为止。每个CU(也被称为叶CU)包含一个或多个变换单元(TU),并且每个CU还包含一个或多个预测单元(PU)。每个CU可以采用帧内、帧间或IBC模式进行编码。使用相对于同一视频帧内的相邻块中的参考样本的空间预测,对视频帧的帧内编码(I)条带中的视频块进行编码。视频帧的帧间编码(P或B)条带中的视频块可以使用相对于同一视频帧内的相邻块中的参考样本的空间预测,或者使用相对于其它先前和/或未来参考视频帧中的参考样本的时间预测。
基于先前已编码的参考块(例如,相邻块)的空间或时间预测,导致要对当前视频块的预测块进行编码。可以通过块匹配算法来完成找到参考块的过程。表示要被编码的当前块和预测块之间的像素差的残差数据被称为残留块或预测误差。根据指向形成预测块的参考帧中的参考块的运动矢量和残差块,对帧间编码块进行编码。确定运动矢量的过程通常被称为运动估计。根据帧内预测模式和残差块对帧内编码块进行编码。为了进一步压缩,将残差块从像素域变换到变换域(例如,频域),得到残差变换系数,然后可以对其进行量化。可以对最初以二维阵列排列的经量化变换的系数进行扫描以产生变换系数的一维矢量,并且然后将其熵编码到视频比特流中以实现更多压缩。
然后将经编码的视频比特流保存在计算机可读存储介质(例如,闪存)中,以供具有数字视频能力的另一电子设备访问或者有线或无线地直接发送给电子设备。然后,电子设备通过例如解析经编码的视频比特流以从比特流中获得语法元素,并至少部分地基于从比特流获得的语法元素,根据经编码的视频比特流将数字视频数据重构为其原始格式,来执行视频解压缩(这是与上面所描述的视频压缩相反的过程),并且在电子设备的显示器上呈现经重构的数字视频数据。
随着数字视频质量从高清到4Kx2K或者甚至8Kx4K,要被编码/解码的视频数据的量呈指数增长。就如何更高效地编码/解码视频数据同时保持经解码的视频数据的图像质量而言,这是一个持续的挑战。
发明内容
概括地说,本申请描述了涉及视频数据编码和解码并且更具体地涉及改进用于视频编解码的调色板模式编解码的方法和系统的实现。
根据本申请的第一方面,一种对视频数据进行解码的方法,该方法包括:从比特流接收与以调色板模式编码的编码单元相对应的一个或多个语法元素和视频数据;根据所述一个或多个语法元素,确定第一二值化参数;从所述视频数据中解码用于所述编码单元内的逃逸样本的第一码字;使用具有所述第一二值化参数的预定义的二值化方案,从所述视频数据中解码所述编码单元内的逃逸样本的值。
根据本申请的第二方面,一种电子装置包括一个或多个处理单元、存储器和存储在所述存储器中的多个程序。所述程序当由所述一个或多个处理单元执行时,使得所述电子装置执行如上所述的对视频数据进行解码的方法。
根据本申请的第三方面,一种非暂时性计算机可读存储介质,其存储用于由具有一个或多个处理单元的电子装置执行的多个程序。所述程序当由所述一个或多个处理单元执行时,使得所述电子装置执行如上所述的对视频数据进行解码的方法。
附图说明
被包括以提供对实现的进一步理解并且被并入本文并构成说明书的一部分的附图示出了所描述的实现,并与描述一起用于解释基本原理。类似的附图标记指代对应的部分。
图1是示出根据本公开内容的一些实现的示例性视频编码和解码系统的框图。
图2是示出根据本公开内容的一些实现的示例性视频编码器的框图。
图3是示出根据本公开内容的一些实现的示例性视频解码器的框图。
图4A至图4E是示出根据本公开内容的一些实现的如何将帧递归地分割为不同大小和形状的多个视频块的框图。
图5A到图5B是示出根据本公开内容的一些实现的使用上下文编解码和旁路编解码的变换效率编解码的示例的框图。
图6是示出根据本公开内容的一些实施实现的相关标量量化的示例性过程的框图。
图7是示出根据本公开内容的一些实现的用于在两个不同标量量化器之间切换的示例性状态机的框图。
图8A至图8D是示出根据本公开内容的一些实现的使用调色板表来对视频数据进行编解码的示例的框图。
图9是示出根据本公开内容的一些实现的视频解码器通过其对编码块执行逃逸样本解码的示例性过程的流程图。
图10是示出根据本公开内容的一些实现的示例上下文自适应二进制算术编码(CABAC)引擎的框图。
具体实施方式
现在将详细参考具体实现,在附图中示出了其示例。在下面的详细描述中,阐述了许多非限制性的具体细节以帮助理解本文所提出的主题。但是对于本领域普通技术人员来说显而易见的是,可以使用各种替代方案而不脱离权利要求的保护范围,并且可以在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员来说显而易见的是,可以在具有数字视频能力的多种类型的电子设备上实现本文提出的主题。
图1是示出根据本公开内容的一些实现的用于对视频块进行编码和解码的示例性系统10的框图。如图1中所示,系统10包括源设备12,其生成要由目的地设备14稍后进行解码的视频数据并对其进行编码。源设备12和目的地设备14可以包括各种各样的电子设备中的任何设备,其包括桌面型或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、照相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备等等。在一些实施方式中,源设备12和目的地设备14被配备有无线通信能力。
在一些实现中,目的地设备14可以经由链路16接收要被解码的经编码的视频数据。链路16可以包括能够将经编码的视频数据从源设备12移动到目的地设备14的任何类型的通信介质或设备。在一个示例中,链路16可以包括用于使得源设备12能够实时地将经编码的视频数据直接发送到目的地设备14的通信介质。可以根据诸如无线通信协议之类的通信标准,对经编码的视频数据进行调制,并将其发送到目的地设备14。通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成诸如局域网、广域网或全球网络(诸如互联网)的基于分组的网络的一部分。通信介质可以包括路由器、交换机、基站或者可以有益的有助于从源设备12到目的地设备14的通信的任何其它设备。
在一些其它实现中,可以将经编码的视频数据从输出接口22发送到存储设备32。随后,目的地设备14可以经由输入接口28来访问存储设备32中的经编码的视频数据。存储设备32可以包括多种分布式或本地访问的数据存储介质(诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器)或者用于存储经编码的视频数据的任何其它适当的数字存储介质中的任何一种。在另外的示例中,存储设备32可以对应于可以保存由源设备12生成的经编码的视频数据的文件服务器或者另一个中间存储设备。目的地设备14可以经由流式传输或下载从存储设备32访问所存储的视频数据。文件服务器可以是能够存储经编码的视频数据并将该经编码的视频数据发送到目的地设备14的任何类型的计算机。示例性文件服务器包括网络服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。目的地设备14可以通过任何标准数据连接来访问经编码的视频数据,所述标准数据连接包括适合于访问存储在文件服务器上的经编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等等)或二者的组合。来自存储设备32的经编码的视频数据的传输可以是流式传输、下载传输或两者的组合。
如图1中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可以包括诸如视频捕获设备之类的源,例如,摄像机、包含先前捕获的视频的视频存档、用于从视频内容提供商接收视频的视频馈送接口、和/或用于生成作为源视频的计算机图形数据的计算机图形系统、或者这样的源的组合。作为一个示例,如果视频源18是安全监视系统的摄像机,则源设备12和目的地设备14可以形成照相电话或视频电话。然而,在本申请中描述的实现通常可以适用于视频编解码,并且可以适用于无线和/或有线应用。
视频编码器20可以对捕获的、预先捕获的、或计算机生成的视频进行编码。可以经由源设备12的输出接口22,将经编码的视频数据直接发送到目的地设备14。经编码的视频数据也可以(或替代地)被存储在存储设备32上,以供目的地设备14或其它设备稍后访问,以用于解码和/或回放。输出接口22还可以包括调制解调器和/或发射机。
目的地设备14包括输入接口28、视频解码器30和显示设备34。输入接口28可以包括接收机和/或调制解调器,并且通过链路16接收经编码的视频数据。通过链路16传送的或者在存储设备32上提供的经编码的视频数据,可以包括由视频编码器20生成的以供视频解码器30在对视频数据进行解码时使用的各种语法元素。这样的语法元素可以被包括在通信介质上发送的经编码的视频数据内、被存储在存储介质上、或者被存储在文件服务器上。
在一些实现中,目的地设备14可以包括显示设备34,其可以是被集成的显示设备和被配置为与目的地设备14通信的外部显示设备。显示设备34向用户显示经解码的视频数据,并且可以包括多种显示设备中的任何一种,诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器、或者另一种类型的显示设备。
视频编码器20和视频解码器30可以根据诸如VVC、HEVC、MPEG-4第10部分、高级视频编解码(AVC)或这样的标准的扩展之类的专有或行业标准进行操作。应当理解的是,本申请不限于特定的视频编码/解码标准,并且可以适用于其它视频编码/解码标准。通常预期的是,源设备12的视频编码器20可以被配置为根据这些当前或未来标准中的任何一种对视频数据进行编码。类似地,通常还预期的是,目的地设备14的视频解码器30可以被配置为根据这些当前或未来标准中的任何一种对视频数据进行解码。
视频编码器20和视频解码器30各自可以被实现为多种适当的编码器电路中的任何一种,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或者其任何组合。当部分地以软件实现时,电子设备可以将用于软件的指令存储在适当的非暂时性计算机可读介质中,并使用一个或多个处理器以硬件方式执行指令以执行在本公开内容中所公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可以被包括在一个或多个编码器或解码器中,编码器或解码器中的任何一个可以被集成为相应设备中的组合的编码器/解码器(CODEC)的一部分。
图2是示出根据本申请中描述的一些实现的示例性视频编码器20的框图。视频编码器20可以对视频帧内的视频块执行帧内和帧间预测编码。帧内预测编码依赖于空间预测来减少或去除给定视频帧或图片内的视频数据的空间冗余。帧间预测编码依赖于时间预测来减少或去除视频序列的相邻视频帧或图片内的视频数据的时间冗余。
如图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可以采用固定或可编程硬件单元的形式,或者可以在所示出的固定或可编程硬件单元中的一个或多个之间进行划分。
视频数据存储器40可以存储要由视频编码器20的组件编码的视频数据。可以例如从视频源18获得视频数据存储器40中的视频数据。DPB 64是存储参考视频数据,以供视频编码器20在对视频数据进行编码时使用(例如,在帧内或帧间预测编码模式中)的缓冲器。视频数据存储器40和DPB 64可以由多种存储器设备中的任何一种形成。在各种示例中,视频数据存储器40可以与视频编码器20的其它组件在芯片上,或者相对于那些组件在芯片外。
如图2中所示,在接收到视频数据之后,预测处理单元41内的分割单元45将视频数据分割成视频块。这种分割还可以包括:根据预定义的分割结构(诸如与视频数据相关联的四叉树结构)将视频帧分割成条带、瓦片或其它更大的编码单元(CU)。可以将视频帧划分为多个视频块(或被称为瓦片的视频块集合)。预测处理单元41可以基于错误结果(例如,编码速率和失真水平),为当前视频块选择多种可能的预测编码模式中的一种,诸如多种帧内预测编码模式中的一种或多种帧间预测编码模式中的一种。预测处理单元41可以将所得到的经帧内或帧间预测编码的块提供给加法器50,以产生残差块,并且提供给加法器62以重构经编码的块,以随后用作参考帧的一部分。预测处理单元41还将诸如运动矢量、帧内模式指示符、分割信息和其它这样的语法信息之类的语法元素提供给熵编码单元56。
为了为当前视频块选择适当的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以相对于与要被编码的当前块相同的帧中的一个或多个相邻块,执行当前视频块的帧内预测编码,以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或多个参考帧中的一个或多个预测块,执行当前视频块的帧间预测编码以提供时间预测。视频编码器20可以执行多个编码通道,例如,以为视频数据的每一个块来选择适当的编码模式。
在一些实现中,运动估计单元42通过生成运动矢量来根据视频帧序列内的预先确定的模式确定当前视频帧的帧间预测模式,其中运动矢量指示当前视频帧内的视频块的预测单元(PU)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动矢量的过程,其估计视频块的运动。例如,运动矢量可以指示当前视频帧或图片内的视频块的PU相对于参考帧(或其它经编码单元)(相对于当前帧(或其它经编码单元)内正在编码的当前块而言)内的预测块的位移。预先确定的模式可以将序列中的视频帧指定为P帧或B帧。帧内BC单元48可以以类似于运动估计单元42确定运动矢量以用于帧间预测的方式,来确定用于帧内BC编码的矢量(例如,块矢量),或者可以利用运动估计单元42来确定块矢量。
预测块是参考帧的一个块,其被视为在像素差方面与要被编码的视频块的PU紧密匹配,像素差可以通过绝对差之和(SAD)、平方差之和(SSD)或其它差度量来确定。在一些实现中,视频编码器20可以计算被存储在DPB 64中的参考帧的子整数像素位置的值。例如,视频编码器20可以内插参考帧的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可以执行相对于全像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。
运动估计单元42通过将经帧间预测编码的帧中的视频块的PU的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)中选择的参考帧的预测块的位置进行比较,来计算用于该PU的运动矢量,第一参考帧列表(列表0)或第二参考帧列表(列表1)中的每个参考帧列表识别被存储在DPB 64中的一个或多个参考帧。运动估计单元42将经计算的运动矢量发送到运动补偿单元44,并且然后发送到熵编码单元56。
由运动补偿单元44执行的运动补偿可以涉及:基于由运动估计单元42所确定的运动矢量来提取或生成预测块。在接收到用于当前视频块的PU的运动矢量时,运动补偿单元44可以在参考帧列表之一中定位该运动矢量指向的预测块,从DPB 64中取回预测块,并将该预测块转发给加法器50。然后,加法器50通过从正在被编码的当前视频块的像素值中减去由运动补偿单元44所提供的预测块的像素值,形成像素差值的残差视频块。形成残差视频块的像素差值可以包括亮度差分量或色度差分量或二者。运动补偿单元44还可以生成与视频帧的视频块相关联的语法元素,以供视频解码器30在对视频帧的视频块进行解码时使用。例如,语法元素可以包括定义用于识别预测块的运动矢量的语法元素、指示预测模式的任何标志、或者本文描述的任何其它语法信息。应当注意的是,运动估计单元42和运动补偿单元44可以是高度集成的,但出于概念目的而分开示出。
在一些实现中,帧内BC单元48可以以与上面结合运动估计单元42和运动补偿单元44所描述的方式相似的方式,来生成矢量并提取预测块,但是这些预测块在与正被编码的当前块相同的帧中,并且矢量被称为块矢量而不是运动矢量。具体地说,帧内BC单元48可以确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内BC单元48可以例如在单独的编码通道期间,使用各种帧内预测模式对当前块进行编码,并且通过率失真分析来测试它们的性能。接下来,帧内BC单元48可以在各种经测试的帧内预测模式中选择适当的帧内预测模式来使用,并相应地生成帧内模式指示符。例如,帧内BC单元48可以针对各种经测试的帧内预测模式,使用率失真分析来计算率失真值,并且在经测试的模式之中选择具有最佳率失真特性的帧内预测模式作为适当的帧内预测模式来使用。率失真分析通常确定经编码的块与被编码以产生经编码的块的原始的未被编码的块之间的失真(或错误)量,以及用于产生经编码的块的比特率(即,比特数)。帧内BC单元48可以根据各种经编码的块的失真和速率来计算比率,以确定哪个帧内预测模式对于该块表现出最佳的率失真值。
在其它示例中,帧内BC单元48可以整体地或部分地使用运动估计单元42和运动补偿单元44,以根据本文描述的实现来执行用于帧内BC预测的这样的功能。在任一情况下,对于帧内块复制,预测块可以是在像素差方面被认为与要被编码的块紧密匹配的块,像素差可以通过绝对差之和(SAD)、平方差之和(SSD)或其它差度量来确定,而预测块的识别可以包括计算子整数像素位置的值。
无论预测块是根据帧内预测而来自同一帧,还是根据帧间预测而来自不同帧,视频编码器20都可以通过从正被编码的当前视频块的像素值中减去预测块的像素值(其形成像素差值),来形成残差视频块。形成残差视频块的像素差值可以包括亮度分量差和色度分量差。
帧内预测处理单元46可以对当前视频块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测或者由帧内BC单元48执行的帧内块复制预测的替代,如上所述。具体而言,帧内预测处理单元46可以确定帧内预测模式,以用于对当前块进行编码。为此,帧内预测处理单元46可以例如在单独的编码通道期间,使用各种帧内预测模式对当前块进行编码,而帧内预测处理单元46(或模式选择单元,在一些示例中)可以从经测试的帧内预测模式中选择适当的帧内预测模式来使用。帧内预测处理单元46可以向熵编码单元56提供指示为该块所选择的帧内预测模式的信息。熵编码单元56可以将指示所选择的帧内预测模式的信息编码在比特流中。
在预测处理单元41经由帧间预测或帧内预测确定当前视频块的预测块之后,加法器50通过从当前视频块中减去预测块来形成残差视频块。可以将残差块中的残差视频数据包括在一个或多个变换单元(TU)中,并且将其提供给变换处理单元52。变换处理单元52使用诸如离散余弦变换(DCT)之类的变换或概念上类似的变换,将残差视频数据变换成残差变换系数。
变换处理单元52可以将得到的变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步降低比特率。量化过程还可以减少与一些或所有系数相关联的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54然后可以对包括经量化的变换系数的矩阵执行扫描。替代地,熵编码单元56可以执行该扫描。
在量化之后,熵编码单元56使用例如上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于语法的上下文自适应二进制算术编码(SBAC)、概率区间分区熵(PIPE)编码或其它熵编码方法或技术,将经量化的变换系数编码到视频比特流中。然后,可以将经编码的比特流发送至视频解码器30,或被存档在存储设备32中,以供稍后传输至视频解码器30或者由视频解码器30取回。熵编码单元56还可以对正被编码的当前视频帧的运动矢量和其它语法元素进行熵编码。
逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换,以在像素域中重构残差视频块,从而生成用于预测其它视频块的参考块。如上面提到的,运动补偿单元44可以从被存储在DPB64中的帧的一个或多个参考块中生成经运动补偿的预测块。运动补偿单元44还可以将一个或多个内插滤波器应用于预测块以计算在运动估计时使用的子整数像素值。
加法器62将经重构的残差块添加到由运动补偿单元44产生的经运动补偿的预测块,以产生参考块来存储在DPB 64中。然后,帧内BC单元48、运动估计单元42和运动补偿单元44可以使用该参考块作为预测块,以对后续视频帧中的另一个视频块进行帧间预测。
图3是示出根据本申请的一些实现的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、加法器90和DPB 92。预测处理单元81还包括运动补偿单元82、帧内预测处理单元84和帧内BC单元85。视频解码器30可以执行通常与上面结合图2关于视频编码器20描述的编码过程相反的解码过程。例如,运动补偿单元82可以基于从熵解码单元80接收的运动矢量来生成预测数据,而帧内预测单元84可以基于从熵解码单元80接收的帧内预测模式指示符来生成预测数据。
在一些示例中,可以向视频解码器30的单元分配执行本申请的实现的任务。此外,在一些示例中,可以在视频解码器30的各单元中的一个或多个单元之间划分本公开内容的实现。例如,帧内BC单元85可以单独地或者与视频解码器30的其它单元(诸如运动补偿单元82、帧内预测处理单元84和熵解码单元80)组合地执行本申请的实现。在一些示例中,视频解码器30可以不包含帧内BC单元85,并且可以由预测处理单元81的其它组件(诸如运动补偿单元82)执行帧内BC单元85的功能。
视频数据存储器79可以存储要由视频解码器30的其它组件解码的视频数据(诸如经编码的视频比特流)。可以经由视频数据的有线或无线网络通信,或通过访问物理数据存储介质(例如,闪存驱动器或硬盘),例如从存储设备32中、从本地视频源(诸如照相机)中,获得被存储在视频数据存储器79中的视频数据。视频数据存储器79可以包括编码图片缓冲器(CPB),其存储来自经编码的视频比特流的经编码的视频数据。视频解码器30的解码图片缓冲器(DPB)92存储参考视频数据,以供视频解码器30在对视频数据进行解码时使用(例如,在帧内或帧间预测编码模式中)。可以通过多种存储器设备中的任何一种(诸如动态随机存取存储器(DRAM),其包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)、或其它类型的存储设备),形成视频数据存储器79和DPB 92。为了说明起见,将视频数据存储器79和DPB 92描绘为图3中的视频解码器30的两个不同组件。但是对于本领域技术人员来说显而易见的是,视频数据存储器79和DPB 92可以由同一存储器设备或单独的存储器设备提供。在一些示例中,视频数据存储器79可以与视频解码器30的其它组件在芯片上,或者相对于那些组件在芯片外。
在解码过程期间,视频解码器30接收经编码的视频比特流,该经编码的视频比特流表示经编码的视频帧的视频块和相关联的语法元素。视频解码器30可以在视频帧级别和/或视频块级别来接收语法元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成经量化的系数、运动矢量或帧内预测模式指示符以及其它语法元素。然后,熵解码单元80将运动矢量和其它语法元素转发给预测处理单元81。
当将视频帧编码为帧内预测编码(I)帧或用于其它类型帧中的帧内编码预测块时,预测处理单元81的帧内预测处理单元84可以基于用信号通知的帧内预测模式和来自当前帧的先前经解码的块的参考数据,生成针对当前视频帧的视频块的预测数据。
当将视频帧编码为帧间预测编码(即,B或P)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其它语法元素产生针对当前视频帧的视频块的一个或多个预测块。可以根据参考帧列表之一内的参考帧来产生预测块中的每一个预测块。视频解码器30可以基于被存储在DPB 92中的参考帧,使用缺省构建技术来构建参考帧列表,列表0和列表1。
在一些示例中,当根据本文所描述的帧内BC模式对视频块进行编码时,预测处理单元81的帧内BC单元85基于从熵解码单元80接收的块矢量和其它语法元素来产生针对当前视频块的预测块。这些预测块可以在与由视频编码器20所定义的当前视频块相同的图片的经重构的区域内。
运动补偿单元82和/或帧内BC单元85通过解析运动矢量和其它语法元素来确定针对当前视频帧的视频块的预测信息,并且然后使用该预测信息来产生针对正被解码的当前视频块的预测块。例如,运动补偿单元82使用所接收的语法元素中的一些语法元素来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内或帧间预测)、帧间预测帧类型(例如,B或P)、帧的参考帧列表中的一个或多个参考帧列表的构建信息、帧的每个经帧间预测编码的视频块的运动矢量、帧的每个经帧间预测编码的视频块的帧间预测状态、以及用于对当前视频帧中的视频块进行解码的其它信息。
类似地,帧内BC单元85可以使用所接收的语法元素中的一些语法元素(例如,标志)来确定以下信息:使用帧内BC模式对当前视频块进行预测、该帧的哪些视频块在经重构的区域内并应当被存储在DPB 92中的构建信息、用于该帧的每个经帧内BC预测的视频块的块矢量、用于该帧的每个经帧内BC预测的视频块的帧内BC预测状态、以及用于对当前视频帧中的视频块进行解码的其它信息。
运动补偿单元82还可以使用如在视频块的编码期间由视频编码器20使用的内插滤波器来执行内插,以计算参考块的子整数像素的经内插的值。在该情况下,运动补偿单元82可以根据所接收的语法元素确定由视频编码器20使用的内插滤波器,并使用该内插滤波器来产生预测块。
逆量化单元86使用由视频编码器20为视频帧中的每一个视频块计算的相同量化参数,对比特流中提供的且由熵解码单元80熵解码的经量化的变换系数进行逆量化,以确定量化程度。逆变换处理单元88对变换系数应用逆变换(例如,逆DCT、逆整数变换、或概念上类似的逆变换过程),以便在像素域中重构残差块。
在运动补偿单元82或帧内BC单元85基于矢量和其它语法元素生成针对当前视频块的预测块之后,加法器90通过对来自逆变换处理单元88的残差块以及由运动补偿单元82和帧内BC单元85生成的对应的预测块进行求和,来重构当前视频块的经解码的视频块。环路滤波器(没有图示)可以位于加法器90和DPB 92之间,以进一步处理经解码的视频块。然后,将给定帧中的经解码的视频块存储在DPB 92中,DPB 92存储用于下一个视频块的后续运动补偿的参考帧。DPB 92或者与DPB 92分开的存储器设备也可以存储经解码的视频,以供稍后在显示设备(诸如图1的显示设备34)上呈现。
在典型的视频编码过程中,视频序列通常包括一组有序的帧或图片。每个帧可以包括三个样本阵列,被表示为SL、SCb和SCr。SL是亮度样本的二维阵列。SCb是Cb色度样本的二维阵列。SCr是Cr色度样本的二维阵列。在其它实例中,帧可能是单色的,并且因此仅包括亮度样本的一个二维阵列。
如图4A中所示,视频编码器20(或更具体地,分割单元45)通过首先将帧分割成一组编码树单元(CTU)来生成帧的经编码表示。视频帧可以包括整数个CTU,它们以光栅扫描顺序从左到右和从上到下连续地排列。每个CTU是最大的逻辑编码单元,并且视频编码器20在序列参数集中用信号通知CTU的宽度和高度,使得视频序列中的所有CTU具有相同的大小,即,128×128、64×64、32×32和16×16之一。但应当注意的是,本申请并不必然地限于特定的大小。如图4B中所示,每个CTU可以包括亮度样本的一个编码树块(CTB)、色度样本的两个对应的编码树块、以及用于对编码树块的样本进行编码的语法元素。语法元素描述了经编码的像素块的不同类型的单元的属性、以及可以如何在视频解码器30处重构视频序列,其包括帧间或帧内预测、帧内预测模式、运动矢量和其它参数。在单色图片或具有三个单独颜色平面的图片中,CTU可以包括单个编码树块和用于对编码树块的样本进行编码的语法元素。编码树块可以是NxN的样本块。
为了实现更好的性能,视频编码器20可以对CTU的编码树块递归地执行诸如二叉树分割、三叉树分割、四叉树分割或两者的组合的树分割,并且将CTU划分成更小的编码单元(CU)。如在图4C中所描绘的,首先将64x64 CTU 400划分成四个较小的CU,每个具有32x32的块大小。在四个较小的CU中,CU 410和CU 420均按块大小划分为四个16x16的CU。两个16x16 CU 430和440均按块大小进一步划分为四个8x8的CU。图4D描绘了四叉树数据结构,其示出了如图4C中所描绘的CTU 400的分割过程的最终结果,四叉树的每个叶节点对应于相应大小范围从32x32到8x8的一个CU。就像图4B中描绘的CTU,每个CU可以包括相同大小的帧的亮度样本的编码块(CB)和色度样本的两个对应的编码块、以及用于对编码块的样本进行编码的语法元素。在单色图片或具有三个单独颜色平面的图片中,CU可以包括单个编码块和用于对编码块的样本进行编码的语法结构。应当注意的是,图4C和图4D中描绘的四叉树分割仅用于说明性的目的,并且一个CTU可以被分成CU以适应基于四叉树/三叉树/二叉树分割的变化的局部特征。在多类型树结构中,一个CTU通过四叉树结构进行分割,并且每个四叉树叶CU可以通过二叉树和三叉树结构来进一步分割。如图4E中所示,有五种分割类型,即,四元分割、水平二元分割、垂直二元分割、水平三元分割和垂直三元分割。
在一些实现中,视频编码器20可以将CU的编码块进一步分割成一个或多个MxN预测块(PB)。预测块是在其上应用相同的预测(帧间或帧内)的矩形(正方形或非正方形)样本块。CU的预测单元(PU)可以包括亮度样本的预测块、色度样本的两个对应的预测块、以及用于对预测块进行预测的语法元素。在单色图片或具有三个单独颜色平面的图片中,PU可以包括单个预测块和用于对预测块进行预测的语法结构。视频编码器20可以为CU的每一个PU的亮度、Cb和Cr预测块生成预测亮度、Cb和Cr块。
视频编码器20可以使用帧内预测或帧间预测来生成PU的预测块。如果视频编码器20使用帧内预测来生成PU的预测块,则视频编码器20可以基于与PU相关联的帧的经解码的样本来生成PU的预测块。如果视频编码器20使用帧间预测来生成PU的预测块,则视频编码器20可以基于除了与PU相关联的帧之外的一个或多个帧的经解码的样本来生成PU的预测块。
在视频编码器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编码块中的对应的样本之间的差。
此外,如图4C中所示,视频编码器20可以使用四叉树分割以将CU的亮度、Cb和Cr残差块分解成一个或多个亮度、Cb和Cr变换块。变换块是对其应用相同变换的矩形(正方形或非正方形)样本块。CU的变换单元(TU)可以包括亮度样本的变换块、色度样本的两个对应的变换块、以及用于对变换块样本进行变换的语法元素。因此,CU的每个TU可以与亮度变换块、Cb变换块和Cr变换块相关联。在一些示例中,与TU相关联的亮度变换块可以是CU的亮度残差块的子块。Cb变换块可以是CU的Cb残差块的子块。Cr变换块可以是CU的Cr残差块的子块。在单色图片或具有三个单独颜色平面的图片中,TU可以包括单个变换块和用于对变换块的样本进行变换的语法结构。
视频编码器20可以向TU的亮度变换块应用一个或多个变换以生成该TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可以向TU的Cb变换块应用一个或多个变换以生成该TU的Cb系数块。视频编码器20可以向TU的Cr变换块应用一个或多个变换以生成该TU的Cr系数块。
在生成系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器20可以对系数块进行量化。量化通常是指对变换系数进行量化以可能地减少用于表示变换系数的数据量,从而提供进一步压缩的过程。在视频编码器20对系数块进行量化之后,视频编码器20可以对指示经量化的变换系数的语法元素进行熵编码。例如,视频编码器20可以对指示经量化的变换系数的语法元素执行上下文自适应二进制算术编码(CABAC)。最后,视频编码器20可以输出比特流,该比特流包括形成经编码的帧和相关联数据的表示的比特序列,其或者被保存在存储设备32中或者被发送到目的地设备14。
在接收到由视频编码器20生成的比特流之后,视频解码器30可以对比特流进行解析以从比特流中获得语法元素。视频解码器30可以至少部分地基于从比特流获得的语法元素来重构视频数据的帧。重构视频数据的过程通常与由视频编码器20执行的编码过程相反。例如,视频解码器30可以对与当前CU的TU相关联的系数块执行逆变换,以重构与当前CU的TU相关联的残差块。视频解码器30还通过将当前CU的PU的预测块的样本添加到当前CU的TU的变换块的对应的样本来重构当前CU的编码块。在针对帧的每一个CU来重构编码块之后,视频解码器30可以重构该帧。
如上面提到的,视频编码主要使用两种模式来实现视频压缩,即,帧内预测(或帧内预测)和帧间预测(或帧间预测)。基于调色板的编码是另一种编码方案,其已经被许多视频编码标准采用。在可能特别适用于屏幕生成内容编码的基于调色板的编码中,视频编码器(例如,视频编码器20或视频解码器30)形成表示给定块的视频数据的颜色的调色板表。该调色板表包括给定块中最主要的(例如,经常使用的)像素值。在给定块的视频数据中不经常被表示的像素值要么不被包括在调色板表中,要么作为逃逸颜色被包括在调色板表中。
调色板表中的每个条目包括调色板表中对应像素值的索引。可以对块中的样本的调色板索引进行编码,以指示将使用调色板表中的哪个条目来预测或重构哪个样本。这种调色板模式以以下的过程来开始:为图片、条带、瓦片或其它这样的视频块分组的第一块生成调色板预测值。如下面将解释的,通常通过更新先前使用的调色板预测值来生成用于后续视频块的调色板预测值。为了说明起见,假设在图片级别定义调色板预测值。换句话说,图片可以包括多个编码块,每个编码块有其自己的调色板表,但整个图片有一个调色板预测值。
为了减少在视频比特流中用信号通知调色板条目所需的比特,视频解码器可以利用调色板预测值来确定调色板表中的用于重构视频块的新调色板条目。例如,调色板预测值可以包括来自先前使用的调色板表的调色板条目,或者甚至通过包括最近使用的调色板表的所有条目来用最近使用的调色板表进行初始化。在一些实现中,调色板预测值可以包括比最近使用的调色板表中的所有条目更少的条目,并且然后合并其它先前使用的调色板表中的一些条目。调色板预测值可以具有与用于对不同块进行编码的调色板表相同的大小,或者可以大于或小于用于对不同块进行编码的调色板表。在一个示例中,将调色板预测值实现为包括64个调色板条目的先进先出(FIFO)表。
为了从调色板预测值生成用于视频数据块的调色板表,视频解码器可以从经编码的视频比特流接收针对调色板预测值的每个条目的一比特标志。该一比特标志可以具有:指示调色板预测值的相关联条目将被包括在调色板表中的第一值(例如,二进制一),或者指示调色板预测值的相关联条目将不被包括在调色板表中的第二值(例如,二进制零)。如果调色板预测值的大小大于用于视频数据块的调色板表,则一旦达到调色板表的最大大小,视频解码器就可以停止接收更多的标志。
在一些实现中,调色板表中的一些条目可以在经编码的视频比特流中直接用信号通知,而不是使用调色板预测值来确定。对于这样的条目,视频解码器可以从经编码的视频比特流中接收三个单独的m比特值,该m比特值指示与条目相关联的亮度分量和两个色度分量的像素值,其中m代表视频数据的位深度。与直接发信号通知的调色板条目所需的多个m比特值相比,从调色板预测值导出的那些调色板条目只需要一比特标志。因此,使用调色板预测值发信号通知一些或所有调色板条目可以显著地减少发信号通知新调色板表的条目所需的比特数,从而提高调色板模式编码的整体编码效率。
在许多实例中,用于一个块的调色板预测值是基于对一个或多个先前经编码的块进行编码所使用的调色板表来确定的。但是当对图片、条带或瓦片中的第一编码树单元进行编码时,先前经编码的块的调色板表可能是不可获得的。因此,不能使用先前使用的调色板表的条目来生成调色板预测值。在这样的情况下,可以在序列参数集(SPS)和/或图片参数集(PPS)中发信号通知一系列调色板预测值初始化器,这些调色板预测值初始化器是在先前使用的调色板表不可获得时用于生成调色板预测值的值。SPS通常指代应用于一系列连续编码视频图片的语法元素的语法结构,其中该系列连续编码视频图片被称为经编码的视频序列(CVS),如由在PPS中找到的语法元素的内容所确定的,该语法元素由在每个条带分段头部中找到的语法元素所指。PPS通常指代应用于CVS内的一个或多个单独图片的语法元素的语法结构,如由在每个条带分段头部中找到的语法元素所确定的。因此,通常认为SPS是比PPS更高级别的语法结构,这意味着与在PPS中包括的语法元素相比,在SPS中包括的语法元素通常不太频繁地变化,并且适用于视频数据的更大部分。
图5A到图5B是示出根据本公开内容的一些实现的使用上下文编码和旁路编码的变换效率编码的示例的框图。
VVC中的变换系数编码与HEVC中的变换系数编码类似,因为它们都使用非重叠系数组(也被称为CG或子块)。但是,在两种方案之间还存在一些差异。在HEVC中,系数的每个CG具有4x4的固定大小。在VVC草案6中,CG大小变得取决于TB大小。因此,在VVC中各种CG大小(1x16、2x8、8x2、2x4、4x2和16x1)是可用的。根据预定义的扫描顺序对编码块内的CG和CG内的变换系数进行编码。
为了限制每像素的上下文编码的二进制位(CCB)的最大数量,使用TB的面积和视频分量的类型(即,亮度分量与色度分量)来导出用于该TB的上下文编码的二进制位(CCB)的最大数量。在一些实施例中,上下文编码的二进制位的最大数量等于TB_zosize*1.75。这里,TB_zosize表示系数归零之后的TB内的样本数量。应当注意的是,CCB计数不考虑coded_sub_block_flag,其是指示CG是否包含非零系数的标志。
系数归零是对变换块执行以强制将位于变换块的特定区域中的系数设置为零的操作。例如,在当前的VVC中,64x64 TB具有相关联的归零操作。结果,将位于64x64 TB左上角32x32区域之外的变换系数都被强制为零。实际上,在当前的VVC中,对于具有沿某个维度大小超过32的任何变换块,沿该维度执行系数归零操作以强制位于左上角32x32区域之外的系数为零。
在VVC中的变换系数编码中,首先将变量remBinsPassl设置为允许的上下文编码的二进制位的最大数量(MCCB)。在编码过程期间,每次当发信号通知上下文编码的二进制位时,都会将变量减一。当remBinsPass1大于或等于四时,用包括sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag的语法元素来发信号通知系数,所有这些都在第一通道中使用上下文编码的二进制位。在第二通道中,利用使用Golomb-Rice码和旁路编码的二进制位的abs_remainder的语法元素对该系数的其余部分的级别信息进行编码。当对第一通道进行编码时,在remBinsPass1变得小于4时,在第一通道中不对当前系数进行编码,而是在第二通道中利用使用Golomb-Rice码和旁路编码的二进制位的dec_abs_level的语法元素直接进行编码。在上面提及的所有级别编码之后,具有等于一的sig_coeff_flag的所有扫描位置的符号(sign_flag)最终被编码为旁路二进制位。在图5A中描绘了这样的过程。针对每个TB都会重置remBinsPass1。对sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag使用上下文编码的二进制位到对其余系数使用旁路编码的二进制位的转换,每TB最多发生一次。对于系数子块,如果在对其最先的系数进行编码之前remBinsPass1小于4,则使用旁路编码的二进制位对整个系数子块进行编码。
与在HEVC中设计单个残差编码方案用于对变换系数和变换跳过系数两者进行编码的情况不同,在VVC中,两个单独的残差编码方案分别用于变换系数和变换跳过系数(即,残差)。
例如,观察到在变换跳过模式下残差的统计特性不同于变换系数的残差的统计特性,并且在低频分量周围没有能量压缩。对残差编码进行修改以考虑(空间)变换跳过残差的不同信号特性,其包括:
(1)不发信号通知最后x/y位置;
(2)当所有先前标志都等于0时,为除了DC子块之外的每个子块编码coded_sub_block_flag;
(3)具有两个相邻系数的sig_coeff_flag上下文建模;
(4)par_level_flag仅使用一个上下文模型;
(5)其它大于5、7、9个标志;
(6)针对余数二值化的修正rice参数推导;
(7)基于左侧和上方的相邻系数值来确定符号标志的上下文建模,并且在sig_coeff_flag之后解析符号标志,以将所有上下文编码的二进制位保持在一起;
如图5B中所示,在第一通道中以交织方式将语法元素sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag从一个残差样本编码到另一个残差样本,然后在第二通道中进行abs_level_gtX_flag位平面编码,以及在第三通道中进行abs_remainder编码。
通道1:sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag
通道2:abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flag
通道3:abs_remainder
图6是示出根据本公开内容的一些实现的相关标量量化的示例性过程的框图。
在当前的VVC中,最大QP值从51扩展到63,并且初始QP的信令也相应地改变。当对slice_qp_delta的非零值进行编码时,可以在条带分段层修改SliceQpY的初始值。对于变换跳过块,将最小允许的QP定义为4,这是因为当QP等于一时,量化步长变为一。
此外,在HEVC中使用的标量量化与被称为“相关标量量化”的新概念相适应。相关标量量化是指以下方法:在其中,变换系数的可容许重构值集合取决于按照重构顺序在当前变换系数级别之前的变换系数级别的值。当与在HEVC中使用的传统的独立标量量化相比时,可容许的重构矢量更密集地被封装到N维矢量空间中(N表示变换块中的变换系数的数量)。也就是说,对于每N维单位体积的可容许重构矢量的给定平均数量,减小了输入矢量和最近的重构矢量之间的平均失真。通过以下项来实现相关标量量化的方法:(a)定义具有不同重构级别的两个标量量化器,以及(b)定义用于在两个标量量化器之间切换的过程。
在图6中示出了使用的两个标量量化器,由Q0和Q1表示。可用重构级别的位置通过量化步长Δ来唯一地指定。在比特流中没有显式地发信号通知所使用的标量量化器(Q0或Q1)。相反,由按照编码或重构顺序在当前变换系数之前的变换系数级别的奇偶性确定用于当前变换系数的量化器。
图7是示出根据本公开内容的一些实现的用于在两个不同标量量化器之间切换的示例性状态机的框图。
如图7中所示,通过具有四个量化器状态(QState)的状态机来实现两个标量量化器(Q0和Q1)之间的切换。QState可以取四个不同的值:0、1、2、3。由按照编码/重构顺序在当前变换系数之前的变换系数级别的奇偶性唯一地确定QState。在变换块的逆量化开始时,将状态设置为等于0。按照扫描顺序来重构变换系数(即,按照它们被熵解码的相同的顺序)。在对当前变换系数进行重构之后,对状态进行更新,如图7中所示,其中k表示变换系数级别的值。
还支持发信号通知缺省和用户定义的缩放矩阵。DEFAULT模式缩放矩阵都是无变化的,其中对于所有TB大小,元素都等于16。IBC和帧内编码模式目前共享相同的缩放矩阵。因此,对于USER_DEFINED矩阵的情况,将MatrixType和MatrixType_DC的数量更新如下:
MatrixType:30=2(2用于帧内和IBC/帧间)×3(Y/Cb/Cr分量)×5(方形TB大小:对于亮度,从4×4到64×64,对于色度,从2×2到32×32)
MatrixType_DC:14=2(2用于帧内和IBC/帧间×1用于Y分量)×3(TB大小:16×16,32×32,64×64)+4(2用于帧内和IBC/帧间×2用于Cb/Cr分量)×2(TB大小:16×16,32×32)
对于以下缩放矩阵:16×16、32×32和64×64,对DC值进行单独编码。对于大小小于8×8的TB,发信号通知一个缩放矩阵中的所有元素。如果TB具有大于或等于8×8的大小,则一个8×8缩放矩阵中仅64个元素发信号通知为基缩放矩阵。为了获得大小大于8×8的方阵,将8×8基缩放矩阵上采样(通过元素的复制)到对应的方阵大小(即,16×16、32×32、64×64)。当应用64点变换的高频系数归零时,缩放矩阵的对应的高频也被归零。也就是说,如果TB的宽度或高度大于或等于32,则只保留左半部分或上半部分的系数,并且其余的系数被赋予零。此外,针对64×64缩放矩阵发信号通知的元素数量也从8×8减少到三个4×4子矩阵,因为从不使用右下角的4×4元素。
与变换系数级别的绝对值相关的语法元素的概率模型的选择取决于局部邻域中的绝对水平或部分重构的绝对水平的值。
所选择的概率模型取决于局部邻域中的绝对水平(或部分重构的绝对水平)和局部邻域中大于0的绝对水平的数量(由等于1的sig_coeff_flags的数量给出)的和。上下文建模和二值化取决于针对局部邻域的以下度量:
·numSig:局部邻域中非零级别的数量;
·sumAbs1:在局部邻域中的第一通道后,部分重构的绝对水平(absLevel1)的和;
·sumAbs:局部邻域中重构的绝对水平的和
·对角线位置(d):变换块内部的当前扫描位置的水平坐标和垂直坐标的和
基于numSig、sumAbs1和d的值,选择用于对sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag进行编码的概率模型。基于sumAbs和numSig的值,选择用于二值化abs_remainder和dec_abs_level的Rice参数。
在当前的VVC中,减少的32点MTS(也被称为RMTS32)是基于跳过高频系数的,并用于减少32点DST-7/DCT-8的计算复杂度。并且,它伴随着系数编码的变化,包括所有类型的归零(即,RMTS32和针对DCT2中高频分量的现有归零)。具体地说,最后非零系数位置编码的二值化是基于减小的TU大小进行编码的,并且通过原始TU大小来确定最后非零系数位置编码的上下文模型选择。此外,使用60个上下文模型对变换系数的sig_coeff_flag进行编码。对上下文模型索引的选择是基于最多五个先前部分重构的绝对水平(被称为locSumAbsPass1)的和与相关量化状态QState的,如下所示:
如果cIdx等于0,则如下推导ctxInc:
ctxInc=12*Max(0,QState–1)+Min((locSumAbsPass1+1)>>1,3)+(d<2?8:(d<5?4:0))
否则(cIdx大于0),则如下推导ctxInc:
ctxInc=36+8*Max(0,QState-1)+Min((locSumAbsPass1+1)>>1,3)+(d<2?4:0)
图8A至图8D是示出根据本公开内容的一些实现的使用调色板表来对视频数据进行编码的示例的框图。
对于调色板(PLT)模式信令,将调色板模式编码为编码单元的预测模式,即,用于编码单元的预测模式可以是MODE_INTRA、MODE_INTER、MODE_IBC和MODE_PLT。如果使用调色板模式,则通过代表性颜色值的小的集合来表示CU中的像素值。该集合被称为调色板。对于具有接近调色板颜色的值的像素,发信号通知调色板索引。对于具有在调色板外部的值的像素,用逃逸符号来表示像素,并且直接发信号通知经量化的像素值。
为了对经调色板模式编码的块进行解码,解码器需要从比特流中解码调色板颜色和索引。调色板颜色是通过调色板表来定义的,并通过调色板表编码语法(例如,palette_predictor_run、num_signaled_palette_entries、new_palette_entries)来编码。针对每个CU发信号通知逃逸标志palette_escape_val_present_flag,以指示在当前CU中是否存在逃逸符号。如果存在逃逸符号,则调色板表将增加再多一个条目,并将最后的索引赋予逃逸模式。CU中所有像素的调色板索引形成调色板索引图,并通过调色板索引图编码语法(例如,num_palette_indices_minus1、palette_idx_idc、copy_above_indices_for_final_run_flag、palette_transpose_flag、copy_above_palette_indices_flag、palette_run_prefix、palette_run_suffix)来编码。在图8A中示出了经调色板模式编码的CU的示例,其中调色板大小为4。CU中的前3个样本分别使用调色板条目2、0和3进行重构。CU中的“x”样本表示逃逸符号。CU级别标志palette_escape_val_present_flag指示在CU中是否存在任何逃逸符号。如果存在逃逸符号,则调色板大小增加一,并且最后的索引被用于指示逃逸符号。因此,在图8A中,将索引4赋予逃逸符号。
对于调色板表的编码,维护调色板预测值。在每个条带的开始处,初始化调色板预测值,其中将调色板预测值重置为0。对于调色板预测值中的每个条目,发信号通知重用标志以指示其是否是当前调色板的一部分。如图8B中所示,发送重用标志palette_predictor_run。在此之后,通过语法num_signaled_palette_entries,使用阶0的指数哥伦布码来发信号通知新调色板条目的数量。最后,发信号通知新调色板条目的分量值new_palette_entries[]。在对当前CU进行编码之后,使用当前调色板更新调色板预测值,并且来自在当前调色板中未被重用的先前调色板预测值的条目将被添加到新调色板预测值的末尾,直到达到允许的最大大小为止。
为了对调色板索引图进行编码,使用水平或垂直遍历扫描对索引进行编码,如图8C中所示。使用palette_transpose_flag,在比特流中显式地发信号通知扫描顺序。
使用两种主要调色板样本模式,对调色板索引进行编码:‘INDEX’和‘COPY_ABOVE’。在‘INDEX’模式下,显式地发信号通知调色板索引。在‘COPY_ABOVE’模式下,复制上面的行中的样本的调色板索引。对于‘INDEX’和‘COPY_ABOVE’模式二者,发信号通知游程(run)值,其指定使用相同模式进行编码的像素数量。除了顶行(当使用水平扫描时)或第一列(当使用垂直扫描时)之外,或者当先前模式为‘COPY_ABOVE’时,使用标志来发信号通知该模式。
在一些实施例中,索引图的编码顺序如下:首先,使用语法num_palette_indices_minusl来发信号通知CU的索引值的数量,然后使用语法palette_idx_idc来发信号通知整个CU的实际索引值。在旁路模式下,对索引的数量以及索引值二者进行编码。这将与索引相关的经旁路编码的二进制位分组在一起。然后,使用语法copy_above_palette_indices_flag、palette_run_prefix和palette_run_suffix,以交织方式发信号通知调色板模式(INDEX或COPY_ABOVE)和游程。copy_above_palette_indices_flag是经上下文编码的标志(只有一个二进制位),通过下面在表3中描述的过程来确定palette_run_prefix的码字,并且对前5个二进制位进行上下文编码。将palette_run_suffix编码为旁路二进制位。最后,将与整个CU的逃逸样本对应的分量逃逸值分组在一起,并在旁路模式下编码。在发信号通知索引值之后,发信号通知额外的语法元素copy_above_indices_for_final_run_flag。该语法元素与索引的数量相结合,消除了对发信号通知与块中的最后的游程相对应的游程值的需求。
在VVC(VTM)的参考软件中,为I-条带启用了双树,这将编码单元分区针对亮度分量和色度分量分开。因此,将调色板单独地应用于亮度(Y分量)和色度(Cb分量和Cr分量)。如果禁用双树,则将调色板联合地应用于Y分量、Cb分量、Cr分量。
表-1调色板编码的语法
Figure BDA0003966960530000141
Figure BDA0003966960530000151
Figure BDA0003966960530000161
Figure BDA0003966960530000171
Figure BDA0003966960530000181
Figure BDA0003966960530000191
表-2调色板编码的语义
Figure BDA0003966960530000192
Figure BDA0003966960530000201
Figure BDA0003966960530000211
Figure BDA0003966960530000221
表3语法palette_run_prefix的二进制码字和CABAC上下文选择
Figure BDA0003966960530000222
Figure BDA0003966960530000231
Figure BDA0003966960530000241
在第15次JVET会议上,提出了基于行的CG(文档编号为JVET-O0120,并且可以在http://phenix.int-evry.fr/jvet/处访问)以简化VTM6.0中调色板模式下的缓冲器使用和语法。作为在变换系数编码中使用的系数组(CG),将CU划分为多个基于行的系数组,每个系数组由m个样本组成,其中用于逃逸模式的索引游程、调色板索引值和经量化的颜色针对每个CG被顺序地编码/解析。因此,在解析语法元素(例如,索引游程、调色板索引值和用于CG的经逃逸量化的颜色)之后可以重建基于行的CG中的像素,这大大降低了VTM6.0中的调色板模式下的缓冲器需求,其中用于整个CU的语法元素必须在重构之前被解析(和存储)
在本申请中,基于遍历扫描模式,将调色板模式的每个CU划分成m个样本的多个分段(在本测试中m=8),如图8D中所示。
每个分段中的调色板游程编码的编码顺序如下:对于每个像素,发信号通知一个经上下文编码的二进制位run_copy_flag=0,其指示该像素与先前像素具有相同的模式,即,先前经扫描的像素和当前像素都是游程类型COPY_ABOVE的,或先前经扫描的像素和当前像素都是游程类型INDEX和相同的索引值的。否则,发信号通知run_copy_flag=1。
如果当前像素和先前像素具有不同的模式,则发信号通知一个经上下文编码的二进制位copy_above_palette_indices_flag,其指示像素的游程类型,即,INDEX或COPY_ABOVE。在这种情况下,如果样本在第一行中(水平遍历扫描)或在第一列中(垂直遍历扫描),则解码器不必解析游程类型,因为缺省使用INDEX模式。如果先前经解析的游程类型是COPY_ABOVE,则解码器也不必解析游程类型。
在对一个分段中的像素进行调色板游程编码之后,将索引值(用于INDEX模式)和经量化的逃逸颜色编码为旁路二进制位,并与对经上下文编码的二进制位的编码/解析分开分组,以提高每个基于行的CG内的吞吐量。由于现在在游程编码之后对索引值进行编码/解析,因此编码器不必发信号通知索引值的数量num_palette_indices_minus1和最后游程类型copy_above_indices_for_final_run_flag。在表4中示出了CG调色板模式的语法。
表-4调色板编码的语法
Figure BDA0003966960530000251
Figure BDA0003966960530000261
Figure BDA0003966960530000271
Figure BDA0003966960530000281
Figure BDA0003966960530000291
图9是示出根据本公开内容的一些实现的视频解码器通过其对经调色板模式编码的编码块的逃逸样本进行解码的示例性过程的流程图900。
在一些实施例中,对于给定的残差样本块,根据CU QP(被表示为QPCU)来确定EGk的k个参数值。一个具体的示例被示出,如下面的表5中所示,其中TH1到TH4是满足(TH1<TH2<TH3<TH4)的预定义的阈值,其中K0到K4是预定义的k个参数值。值得注意的是,相同的逻辑在实践中可以被不同地实现。例如,也可以使用某些方程或查找表,根据当前CU的QP值来推导相同的k参数,如表5中所示。换句话说,这里的QP值提供定义量化级别和确定k参数的双重目的。
表-5基于QP值对K参数的确定
Figure BDA0003966960530000292
Figure BDA0003966960530000301
在一些实施例中,可以使用不同的第k阶的Exp-Golomb二值化(例如,k=1、2、3、4、5等)来推导二进制码字的不同集合,以用于对调色板模式中的逃逸值(例如,palette_escape_val)进行编码。在一个示例中,对于给定的逃逸样本块,根据块的QP值(被表示为QPCU)来确定使用的Exp-Golomb参数(即,k参数的值)。如表5中所示的示例可以被用在基于块的给定QP值来推导k参数的值中。虽然在该示例中列出了四个不同的阈值(从TH1到TH4),并且可以基于这些阈值和QPCU来推导五个不同的k值(从K0到K4),但值得提及的是,阈值的数量是仅出于说明目的的。在实践中,可以使用不同数量的阈值来将整个QP值范围划分为不同数量的QP值段,并且对于每个QP值段,可以使用不同的k值来推导对应的二进制码字,以用于对以调色板模式编码的块的逃逸值进行编码。还值得注意的是,相同的逻辑在实践中可以被不同地实现。例如,某些方程或查找表可以被用于推导相同的k参数。
在一些实施例中,在比特流中发信号通知与逃逸样本的语法元素的码字确定相关联的参数和/或阈值的集合。当通过熵编码器对逃逸样本的语法元素进行编码时(例如,算术编码),将所确定的码字用作二值化码字。
应当注意的是,参数和/或阈值的集合可以是与语法元素的码字确定相关联的所有参数和阈值的全集或子集。可以在视频比特流中在不同级别发信号通知参数和/或阈值的集合。例如,可以在序列级别(例如,序列参数集)、图片级别(例如,图片参数集和/或图片头部)、条带级别(例如,条带头部)、编码树单元(CTU)级别或编码单元(CU)级别来发信号通知它们。
在一些实施例中,使用第k阶的Exp-Golomb二值化来确定用于在调色板模式中对palette_escape_val语法进行编码的码字,并且在比特流中向解码器发信号通知k的值。可以在不同的级别发信号通知k的值,例如,可以在条带头部、图片头部、PPS和/或SPS等等中发信号通知。当将CU编码为调色板模式并且CU与上面提到的条带头部、图片头部、PPS和/或SPS等关联时,使用发信号通知的Exp-Golomb参数来确定用于对语法palette_escape_val进行编码的码字。
应当注意的是,k参数和对应的阈值的集合可以是与语法元素的码字确定相关联的所有k参数和对应的阈值的全集或子集。可以在视频比特流中在不同的级别发信号通知k参数和对应阈值的集合。例如,可以在序列级别(例如,序列参数集)、图片级别(例如,图片参数集)、条带级别(例如,条带头部)、编码树单元(CTU)级别或编码单元(CU)级别来发信号通知它们。
在一个示例中,被用于确定用于对逃逸样本进行编码的码字的k参数本身在条带头部、PPS头部和/或SPS头部中发信号通知。
为了实现用于对编码单元的逃逸样本进行编码的上面提及的改进过程,视频解码器30首先从比特流接收一个或多个语法元素(例如,量化参数(QP)值和阈值)和与以调色板模式编码的编码单元相对应的视频数据(例如,编码单元包括一个或多个逃逸样本)(910)。
接下来,视频解码器30根据一个或多个语法元素(例如,QP值和阈值),确定第一二值化参数(例如,Exp-Golomb二值化方案的Exp-Golomb参数)值(920)。
然后,视频解码器30从视频数据中对用于编码单元内的逃逸样本的第一码字进行解码(930)。
在解码第一码字之后,视频解码器30通过将第一二值化参数应用于预定义的二值化方案(例如,Exp-Golomb二值化方案),将第一码字转换成编码单元内的逃逸样本的值(940)。
在一些实施例中,一个或多个语法元素包括量化参数,并且视频解码器30根据一个或多个语法元素来确定第一二值化参数还包括:将量化参数与一组阈值进行比较,每个阈值具有候选二值化参数;确定覆盖量化参数的一对阈值;以及将第一二值化参数确定为与该对阈值相对应的两个候选二值化参数之一。
在一些实施例中,阈值及其相关联的候选二值化参数的集合是常数值。
在一些实施例中,阈值及其相关联的候选二值化参数的集合是在一个或多个语法元素中携带的变量。
在一些实施例中,一个或多个语法元素之一是二值化参数。
在一些实施例中,在从由以下各项构成的组中选择的一个级别来发信号通知所述一个或多个语法元素:序列、图片、条带、瓦片、编码树单元(CTU)、编码单元(CU)、变换单元(TU)和变换块(TB)。
在一些实施例中,在比特流中发信号通知所述一个或多个语法元素。
图10是示出根据本公开内容的一些实现的示例上下文自适应二进制算术编码(CABAC)引擎的框图。
上下文自适应二进制算术编码(CABAC)是在例如H.264/MPEG-4AVC、高效视频编解码(HEVC)和VVC的许多视频编解码标准中使用的一种形式的熵编码。CABAC是基于具有一些改变的算术编码的,以使其适应视频编解码标准的需求。例如,CABAC对二进制符号进行编码,这保持低复杂度并允许对任何符号的更频繁使用的比特进行概率建模。基于本地上下文来自适应地选择概率模型,其允许更好地概率建模,这是因为编码模式通常在局部很好地相关。最后,CABAC通过使用经量化的概率范围和概率状态来使用无乘法范围划分。
CABAC具有用于不同上下文的多个概率模型。它首先将所有非二进制符号转换为二进制。然后,对于每个二进制位(也被称为“位”),编码器选择概率模型中要使用的概率模型,然后使用来自附近元素的信息来优化概率估计。最后,应用算术编码来压缩数据。
上下文建模提供对编码符号的条件概率的估计。利用合适的上下文模型,可以通过根据要编码的当前符号的邻域中的已编码的符号,在不同的概率模型之间进行切换,来采用给定的符号间冗余。对数据符号进行编码涉及以下阶段。
二值化:CABAC使用二进制算术编码,这意味着只对二进制决策(1或0)进行编码。在算术编码之前,将非二进制值的符号(例如,变换系数或运动矢量)“二值化”或转换为二进制码。该过程类似于将数据符号转换为可变长度码的过程,但二进制码在传输之前被进一步编码(由算术编码器)。针对二值化的符号的每个二进制位(或“位”)重复各阶段。
上下文模型选择:“上下文模型”是二值化符号的一个或多个二进制位的概率模型。可以根据最近经编码的数据符号的统计,从可用模型的选择中选择该模型。上下文模型存储每个二进制位是“1”或“0”的概率。
算术编码:算术编码器根据所选择的概率模型,对每个二进制位进行编码。应当注意的是,每个二进制位只有两个子范围(对应于“0”和“1”)。
概率更新:基于实际经编码的值来更新所选择的上下文模型(例如,如果二进制位值是“1”,则增加“1”的频率计数)。
通过将每个非二进制语法元素值分解为二进制位序列,对CABAC中的每个二进制位值的进一步处理取决于相关联的编码模式决策,其可以被选择为常规模式或旁路模式。后者是针对二进制位选择的,二进制位被假设为均匀地分布,并且因此,针对其简单地绕过整个常规二进制算术编码(和解码)过程。在常规编码模式中,通过使用常规二进制算术编码引擎,对每个二进制位值进行编码,其中相关联的概率模型是基于语法元素的类型和二进制位位置或者语法元素的二值化表示中的二进制位索引(binIdx)通过固定选择来确定的,或者是根据相关的辅助信息(例如,空间邻居、分量、CU/PU/TU的深度或大小、或TU内的位置)从两个或更多个概率模型中自适应地选择的。概率模型的选择被称为上下文建模。作为重要的设计决策,后一种情况通常仅被应用于最频繁观察到的二进制位,而其它通常不太频繁观察到的二进制位将使用联合的通常零阶的概率模型来处理。通过这种方式,CABAC在子符号级别上实现选择性自适应概率建模,并且因此,以显著地降低的整体建模或学习成本提供了一种用于利用符号间冗余的高效工具。应当注意的是,对于固定和自适应二种情况,在原则上,从一个概率模型到另一个概率模型的切换可以发生在任何两个连续的常规编码的二进制位之间。一般来说,CABAC中上下文模型的设计反映了在避免不必要的建模-成本开销与在很大程度上利用统计相关性的冲突的目的之间找到良好折衷的目标。
CABAC中的概率模型的参数是自适应的,这意味着在编码器和解码器中,在逐个二进制位的基础上以向后自适应和同步的方式,来执行模型概率对二进制位源的统计变化的自适应;这个过程被称为概率估计。为此目的,CABAC中的每个概率模型可以从126个不同状态中取一个状态,这126个不同状态具有范围在区间[0:01875;0:98125]内的相关联的模型概率值p。每个概率模型的两个参数作为7位条目被存储在上下文存储器中:6位用于63种概率状态中的每一种概率状态,表示最小概率符号(LPS)的模型概率pLPS,而1位用于nMPS,最大概率符号(MPS)的值。
在一个或多个示例中,所描述的功能可以利用硬件、软件、固件或者其任何组合来实现。如果利用软件来实现,则可以将功能存储在计算机可读介质上并且由基于硬件的处理单元来执行,或者作为一个或多个指令或代码通过计算机可读介质传输。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质或通信介质之类的有形介质,通信介质包括有助于例如根据通信协议将计算机程序从一个地方传送到另一个地方的任何介质。用此方式,计算机可读介质通常可以对应于:(1)非暂时性的有形计算机可读存储介质;或者(2)诸如信号或载波波形之类的通信介质。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器访问以取回用于实现本申请中描述的实现的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
本文实现的描述中所使用的术语仅出于描述特定实现的目的,而不旨在对权利要求的范围进行限制。如在实现的描述和所附权利要求中所使用的,单数形式的“一个(a)”、“某个(an)”和“该(the)”也旨在包括复数形式,除非上下文另外清楚地指出。还应当理解的是,如本文所使用的术语“和/或”指代并涵盖相关联的列出项目中的一个或多个的任何一个和所有可能的组合。还将理解的是,当在本说明书中使用术语“包括”和/或“包含”时,其指定所述特征、元素和/或组件的存在,但不排除一个或多个其它特征、元素、组件和/或其组的存在或添加。
还将理解的是,尽管本文可以使用术语第一、第二等等来描述各种元素,但是这些元素不应当受到这些术语的限制。这些术语仅仅被用于将一个元素与另一个元素相区分。例如,可以将第一电极称为第二电极,并且类似地,可以将第二电极称为第一电极,而不脱离实现的范围。第一电极和第二电极都是电极,但它们不是同一个电极。
出于说明和描述的目的而呈现对本申请的描述,并且其并不旨在穷举或者被限于所公开的形式的发明。受益于前述描述和相关联附图中给出的教导,许多修改、变化和替代实现对于本领域普通技术人员来说将是显而易见的。选择和描述实施例以便最好地解释本发明的原理、实际应用,并使得本领域的其它技术人员能够理解本发明以进行各种实现,并最好地利用基本原理和具有各种修改的各种实现,以适合于预期的特定用途。因此,应当理解的是,权利要求的范围并不限于所公开的实现的具体示例,并且修改和其它实现旨在被包括在所附权利要求的范围内。

Claims (18)

1.一种对视频数据进行编码的方法,所述方法包括:
确定调色板模式下的编码单元是否包括逃逸样本;以及
在所述编码单元包括所述逃逸样本的情况下,
通过将第一二值化参数应用于预定义的二值化方案,确定所述逃逸样本的第一码字,以对所述逃逸样本的值进行编码;以及
将一个或多个语法元素编码到比特流中,其中所述第一二值化参数是基于所述一个或多个语法元素来确定的。
2.根据权利要求1所述的方法,其中,所述一个或多个语法元素包括量化参数,并且所述第一二值化参数是通过以下方式基于述一个或多个语法元素来确定的:
将所述量化参数与一组阈值进行比较,每个阈值具有候选二值化参数;
确定覆盖所述量化参数的一对阈值;以及
将所述第一二值化参数确定为与所述一对阈值相对应的两个候选二值化参数中的一个候选二值化参数。
3.根据权利要求2所述的方法,其中,所述一组阈值及其相关联的候选二值化参数是常数值。
4.根据权利要求2所述的方法,其中,所述一组阈值及其相关联的候选二值化参数是在所述一个或多个语法元素中携带的变量。
5.根据权利要求1所述的方法,其中,所述一个或多个语法元素中的一个语法元素是所述第一二值化参数。
6.根据权利要求1所述的方法,其中,所述一个或多个语法元素是在从由以下项构成的组中选择的一个级别发信号通知的:序列、图片、条带、瓦片、编码树单元CTU、编码单元CU、变换单元TU和变换块TB。
7.根据权利要求1所述的方法,还包括:在所述比特流中发信号通知所述一个或多个语法元素。
8.根据权利要求1所述的方法,其中,所述第一二值化参数是通过以下方式基于述一个或多个语法元素来确定的:
根据所述一个或多个语法元素,使用查找表来确定所述第一二值化参数。
9.一种电子装置,包括:
一个或多个处理单元;
存储器,被耦合到所述一个或多个处理单元;以及
多个程序,被存储在所述存储器中,所述多个程序当由所述一个或多个处理单元执行时,使所述电子装置:
确定调色板模式下的编码单元是否包括逃逸样本;以及
在所述编码单元包括所述逃逸样本的情况下,
通过将第一二值化参数应用于预定义的二值化方案,确定所述逃逸样本的第一码字,
以对所述逃逸样本的值进行编码;以及
将一个或多个语法元素编码到比特流中,其中所述第一二值化参数是基于所述一个或多个语法元素来确定的。
10.根据权利要求9所述的电子装置,其中,所述一个或多个语法元素包括量化参数,并且所述第一二值化参数是通过以下方式基于述一个或多个语法元素来确定的:
将所述量化参数与一组阈值进行比较,每个阈值具有候选二值化参数;
确定覆盖所述量化参数的一对阈值;以及
将所述第一二值化参数确定为与所述一对阈值相对应的两个候选二值化参数中的一个候选二值化参数。
11.根据权利要求10所述的电子装置,其中,所述一组阈值及其相关联的候选二值化参数是常数值。
12.根据权利要求10所述的电子装置,其中,所述一组阈值及其相关联的候选二值化参数是在所述一个或多个语法元素中携带的变量。
13.根据权利要求9所述的电子装置,其中,所述一个或多个语法元素中的一个语法元素是所述第一二值化参数。
14.根据权利要求9所述的电子装置,其中,所述一个或多个语法元素是在从由以下项构成的组中选择的一个级别发信号通知的:序列、图片、条带、瓦片、编码树单元CTU、编码单元CU、变换单元TU和变换块TB。
15.根据权利要求9所述的电子装置,其中,所述多个程序当由所述一个或多个处理单元执行时,使所述电子装置:在所述比特流中发信号通知所述一个或多个语法元素。
16.根据权利要求9所述的电子装置,其中,所述第一二值化参数是通过以下方式基于述一个或多个语法元素来确定的:根据所述一个或多个语法元素,使用查找表来确定所述第一二值化参数。
17.一种存储多个程序的非暂时性计算机可读存储介质,所述多个程序用于由具有一个或多个处理单元的电子装置执行,其中,所述多个程序当由所述一个或多个处理单元执行时,使所述电子装置执行根据权利要求1-8中任一项所述的方法以及发送所述比特流。
18.一种包括多个程序的计算机程序产品,所述多个程序用于由具有一个或多个处理单元的电子装置执行,其中,所述多个程序当由所述一个或多个处理单元执行时,使所述电子装置执行根据权利要求1-8中任一项所述的方法以及发送所述比特流。
CN202211502870.XA 2019-11-01 2020-10-30 残差和系数编解码的方法和装置 Pending CN115714866A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962929755P 2019-11-01 2019-11-01
US62/929,755 2019-11-01
PCT/US2020/058306 WO2021087323A1 (en) 2019-11-01 2020-10-30 Methods and apparatus of residual and coefficients coding
CN202080082795.9A CN115023952A (zh) 2019-11-01 2020-10-30 残差和系数编解码的方法和装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202080082795.9A Division CN115023952A (zh) 2019-11-01 2020-10-30 残差和系数编解码的方法和装置

Publications (1)

Publication Number Publication Date
CN115714866A true CN115714866A (zh) 2023-02-24

Family

ID=75716487

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202211502870.XA Pending CN115714866A (zh) 2019-11-01 2020-10-30 残差和系数编解码的方法和装置
CN202080082795.9A Pending CN115023952A (zh) 2019-11-01 2020-10-30 残差和系数编解码的方法和装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202080082795.9A Pending CN115023952A (zh) 2019-11-01 2020-10-30 残差和系数编解码的方法和装置

Country Status (4)

Country Link
US (1) US20220256199A1 (zh)
EP (1) EP4052464A4 (zh)
CN (2) CN115714866A (zh)
WO (1) WO2021087323A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106068648A (zh) * 2014-01-02 2016-11-02 高通股份有限公司 调色板译码模式中视频块的逸出像素的量化
CN106471805A (zh) * 2014-05-09 2017-03-01 诺基亚技术有限公司 用于使用调色板编码进行视频编码和解码的方法和技术设备
US20170085891A1 (en) * 2015-09-18 2017-03-23 Qualcomm Incorporated Restriction of escape pixel signaled values in palette mode video coding
CN107211138A (zh) * 2015-01-30 2017-09-26 高通股份有限公司 用于高吞吐量cabac译码的调色板索引分组
US20180288415A1 (en) * 2015-06-09 2018-10-04 Microsoft Technology Licensing, Llc Robust encoding/decoding of escape-coded pixels in palette mode
US20190273930A1 (en) * 2015-10-05 2019-09-05 Mediatek Inc. Method and Apparatus of Palette Index Map Coding for Screen Content Coding

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI514851B (zh) * 2012-02-15 2015-12-21 Novatek Microelectronics Corp 影像編碼/解碼系統與其方法
US10237557B2 (en) * 2014-06-20 2019-03-19 Hfi Innovation Inc. Method of run-length coding for palette predictor
CN114930822A (zh) * 2019-08-15 2022-08-19 字节跳动有限公司 用于调色板逸出符号的熵编解码

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106068648A (zh) * 2014-01-02 2016-11-02 高通股份有限公司 调色板译码模式中视频块的逸出像素的量化
CN106471805A (zh) * 2014-05-09 2017-03-01 诺基亚技术有限公司 用于使用调色板编码进行视频编码和解码的方法和技术设备
CN107211138A (zh) * 2015-01-30 2017-09-26 高通股份有限公司 用于高吞吐量cabac译码的调色板索引分组
US20180288415A1 (en) * 2015-06-09 2018-10-04 Microsoft Technology Licensing, Llc Robust encoding/decoding of escape-coded pixels in palette mode
US20170085891A1 (en) * 2015-09-18 2017-03-23 Qualcomm Incorporated Restriction of escape pixel signaled values in palette mode video coding
US20190273930A1 (en) * 2015-10-05 2019-09-05 Mediatek Inc. Method and Apparatus of Palette Index Map Coding for Screen Content Coding

Also Published As

Publication number Publication date
EP4052464A1 (en) 2022-09-07
EP4052464A4 (en) 2023-02-15
WO2021087323A1 (en) 2021-05-06
US20220256199A1 (en) 2022-08-11
CN115023952A (zh) 2022-09-06

Similar Documents

Publication Publication Date Title
KR102626260B1 (ko) 잔차 및 계수 코딩 방법 및 장치
US20220150522A1 (en) Methods and apparatus of residual and coefficient coding
CN114930833A (zh) 使用调色板模式的视频编解码的方法和装置
US20220329812A1 (en) Residual and coefficients coding for video coding
EP4128797A1 (en) Methods and apparatus of video coding using palette mode
JP2023164981A (ja) パレットモードを使用するビデオコーディングの方法及び装置
CN115362685A (zh) 用于视频编解码的无损编解码模式
CN115136603A (zh) 用于视频编解码的无损编解码模式
US20220256199A1 (en) Methods and apparatus of residual and coefficients coding
CN114556932B (zh) 用于视频编解码的无损编解码模式
WO2021055970A1 (en) Methods and apparatus of video coding using palette mode
WO2021138432A1 (en) Methods and apparatus of video coding using palette mode

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination