CN114342374A - 使用调色板模式的视频编解码的方法和设备 - Google Patents
使用调色板模式的视频编解码的方法和设备 Download PDFInfo
- Publication number
- CN114342374A CN114342374A CN202080055629.XA CN202080055629A CN114342374A CN 114342374 A CN114342374 A CN 114342374A CN 202080055629 A CN202080055629 A CN 202080055629A CN 114342374 A CN114342374 A CN 114342374A
- Authority
- CN
- China
- Prior art keywords
- palette
- block
- semantic
- video
- encoded block
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/93—Run-length coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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 bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
一种执行解码视频数据的方法的电子装置。该方法包括:从比特流接收与经调色板模式编码的块对应的视频数据;从视频数据接收第一语义元素的值,第一语义元素的值指示经调色板模式编码的块的调色板表中的调色板索引的数量;如果第一语义元素的值指示调色板索引的数量大于1,则:从视频数据接收第二语义元素的值和第三语义元素的值,第二语义元素的值指示遍历扫描,第三语义元素的值指示经调色板模式编码的块的最后游程的复制方向;如果第一语义元素的值指示调色板索引的数量为1,则:将默认值分别分配给第二语义元素和第三语义元素;并且使用第二语义元素和第三语义元素解码视频数据。
Description
相关申请
本申请要求以下申请的优先权:(i)2019年9月19日提交的题为“VIDEO CODINGUSING PALETTE MODE”的申请号为62/902,869的美国临时专利申请,以及(ii)2019年9月20日提交的题为“VIDEO CODING USING PALETTE MOD”的申请号为62/903,636的美国临时专利申请,该两个申请都通过引用全部包含于此。
技术领域
本申请总体涉及视频数据编解码和压缩,并且具体地,涉及使用调色板模式的视频编解码的方法和***。
背景技术
各种电子设备(诸如数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏机、智能电话、视频电话会议设备、视频流设备等)都支持数字视频。电子设备通过实施如由MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、高级视频编解码(AVC)、高效视频编解码(HEVC)和通用视频编解码(VVC)标准定义的视频压缩/解压缩标准来发送、接收、编码、解码和/或存储数字视频数据。视频压缩通常包括执行空间(帧内)预测和/或时间(帧间)预测来减少或去除视频数据中固有的冗余。对于基于块的视频编解码,将视频帧分割为一个或更多个条带,每个条带具有多个视频块,视频块也可被称为编码树单元(CTU)。每个CTU可包含一个编码单元(CU),或者递归地被划分为更小的CU直到达到预定义的最小CU尺寸为止。每个CU(也称为叶CU)包含一个或多个变换单元(TU),并且每个CU还包含一个或多个预测单元(PU)。每个CU可以以帧内模式、帧间模式或IBC模式被编解码。视频帧的帧内编码(I)条带中的视频块使用关于同一视频帧内的相邻块中的参考样点的空间预测来进行编码。视频帧的帧间编码(P或B)条带中的视频块可使用关于同一视频帧内的相邻块中的参考样点的空间预测,或关于其他先前和/或未来参考视频帧中的参考样点的时间预测。
基于先前已被编码的参考块(例如,相邻块)的空间预测或时间预测得出用于待编码的当前视频块的预测块。找到参考块的过程可通过块匹配算法来完成。表示待编码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。帧间编码块根据运动矢量和残差块被编码,该运动矢量指向参考帧中的形成预测块的参考块。确定运动矢量的过程通常被称为运动估计。帧内编码块根据帧内预测模式和残差块被编码。为了进一步压缩,将残差块从像素域变换到变换域(例如,频域),从而得出残差变换系数,残差变换系数然后可被量化。最初以二维阵列布置的量化的变换系数可被扫描以产生变换系数的一维矢量,并且然后被熵编码为视频比特流以实现甚至更大的压缩。
经编码的视频比特流然后被保存于计算机可读存储介质(例如,闪存存储器)中,以由具有数字视频能力的另一电子设备访问或者有线或无线地直接发送到电子设备。电子设备然后执行视频解压缩(其为上文描述的视频压缩的相反过程),例如,通过对经编码的视频比特流进行解析来从比特流获得语义元素,并且至少部分地基于从比特流获得的语义元素从经编码的视频比特流将数字视频数据重建为其原始格式,并且电子设备在电子设备的显示器上呈现重建的数字视频数据。
随着数字视频质量从高清变为4K×2K或甚至8K×4K,待编码/解码的视频数据量呈指数增长。在如何能够更有效率地对视频数据进行编码/解码,同时保持解码视频数据的图像质量方面,是一个长久挑战。
发明内容
本申请描述了与视频数据编码和解码相关的实施方式,并且更具体地,描述了与使用调色板模式的视频编码和解码的***和方法相关的实施方式。
根据本申请的第一方面,一种解码视频数据的方法包括:从比特流接收与经调色板模式编码的块对应的视频数据;从视频数据接收第一语义元素的值,其中第一语义元素的值指示与经调色板模式编码的块相关联的调色板表中的调色板索引的数量;根据确定第一语义元素的值指示与经调色板模式编码的块相关联的调色板表中的调色板索引的数量大于1,从视频数据接收第二语义元素的值和第三语义元素的值,第二语义元素的值指示经调色板模式编码的块的遍历扫描方向,第三语义元素的值指示经调色板模式编码的块的最后游程的复制方向;根据确定第一语义元素的值指示针对所述经调色板模式编码的块的调色板表中的调色板索引的数量为1,将默认值分别分配给第二语义元素和第三语义元素;并且基于第二语义元素和第三语义元素解码与经调色板模式编码的块对应的视频数据。
根据本申请的第二方面,一种电子装置包括一个或更多个处理单元、存储器和存储在存储器中的多个程序。该程序在由一个或更多个处理单元执行时使电子装置执行如上所述的解码视频数据的方法。
根据本申请的第三方面,一种非暂态计算机可读存储介质存储由具有一个或更多个处理单元的电子装置执行的多个程序。该程序在由一个或更多个处理单元执行时使电子装置执行如上所述的解码视频数据的方法。
附图说明
附图被包括以提供对实施方式的进一步理解并且被并入本文并构成说明书的一部分,附图示出了所描述的实施方式并且与描述一起用于解释基本原理。相似的参考标号指代对应的部分。
图1是示出根据本公开的一些实施方式的示例性视频编码和解码***的框图。
图2是示出根据本公开的一些实施方式的示例性视频编码器的框图。
图3是示出根据本公开的一些实施方式的示例性视频解码器的框图。
图4A至图4E是示出根据本公开的一些实施方式的如何将帧递归地分割为不同尺寸和形状的多个视频块的框图。
图5A至图5D是示出根据本公开的一些实施方式的使用调色板表来编码视频数据的示例的框图。
图6A至图6B是示出根据本公开的一些实施方式的视频解码器实现解码用基于调色板的方案编码的视频数据的技术的示例性过程的流程图。
图7是示出根据本公开的一些实施方式的示例上下文自适应二进制算术编解码(CABAC)引擎的框图。
具体实施方式
现在将详细参照具体实施方式,其示例在附图中示出。在以下详细描述中,阐述了很多非限制性具体细节以便帮助理解本文呈现的主题。但是对于本领域普通技术人员将显而易见的是,各种替代方案可以被使用而不脱离权利要求的范围,并且主题可以没有这些具体细节而被实践。例如,对于本领域普通技术人员将显而易见的是,本文呈现的主题可在具有数字视频能力的许多类型的电子设备上实现。
图1是示出根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性***10的框图。如图1中所示,***10包括源设备12,源设备12生成并编码稍后将由目标设备14解码的视频数据。源设备12和目标设备14可包括各种各样的电子设备中的任何电子设备,包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示器设备、数字媒体播放器、视频游戏机、视频流传输设备等。在一些实施方式中,源设备12和目标设备14配备有无线通信能力。
在一些实施方式中,目标设备14可经由链路16接收待解码的编码视频数据。链路16可包括能够将编码视频数据从源设备12移动到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可包括使源设备12能够实时地将编码视频数据直接发送到目标设备14的通信介质。编码视频数据可根据通信标准(诸如无线通信协议)被调制,并且被发送到目标设备14。通信介质可包括任何无线或有线通信介质,诸如射频(RF)频谱或者一个或更多个物理传输线。通信介质可形成基于分组的网络(诸如局域网、广域网或全球网,诸如互联网)的一部分。通信介质可包括路由器、交换机、基站、或可有利于促进从源设备12到目标设备14的通信的任何其他装备。
在一些其他实施方式中,编码视频数据可从输出接口22被发送到存储设备32。随后,存储设备32中的编码视频数据可由目标设备14经由输入接口28被访问。存储设备32可包括各种分布式或本地访问的数据存储介质中的任何数据存储介质,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存存储器、易失性或非易失性存储器、或者用于存储编码视频数据的任何其他合适的数字存储介质。在另一示例中,存储设备32可对应于文件服务器或另一中间存储设备,其可保持由源设备12生成的编码视频数据。目标设备14可经由流传输或下载从存储设备32访问存储的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据发送到目标设备14的任何类型的计算机。示例性文件服务器包括web服务器(例如,用于网站)、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,显示器设备34可以是集成显示器设备和被配置为与目标设备14通信的外部显示器设备。显示器设备34将解码视频数据显示给用户,并且可包括各种显示器设备中的任何显示器设备,诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器、或另一类型的显示器设备。
视频编码器20和视频解码器30可根据专有标准或行业标准(诸如VVC、HEVC、MPEG-4、Part 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的组件编码的视频数据。视频数据存储器40中的视频数据可例如从视频源18获得。DPB 64是缓冲器,其存储供视频编码器20(例如,以帧内或帧间预测编码模式)在编码视频数据时使用的参考视频数据。视频数据存储器40和DPB 64可由各种存储器设备中的任何存储器设备形成。在各种示例中,视频数据存储器40可与视频编码器20的其他组件一起在芯片上,或相对于那些组件在芯片外。
如图2中所示,在接收到视频数据之后,预测处理单元41内的分割单元45将视频数据分割为视频块。此分割还可包括根据与视频数据相关联的预定义的划分结构(诸如四叉树结构)将视频帧分割为条带、瓦片(tile)或其他更大编码单元(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的运动矢量:将PU的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)选择的参考帧的预测块的位置进行比较,第一参考帧列表和第二参考帧列表中的每一个参考帧列表标识DPB64中存储的一个或更多个参考帧。运动估计单元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可通过从正被编码的当前视频块的像素值减去预测块的像素值来形成像素差值,从而形成残差视频块。形成残差视频块的像素差值可包括亮度分量差和色度分量差两者。
作为如上文所描述的由运动估计单元42和运动补偿单元44执行的帧间预测或由帧内BC单元48执行的帧内块复制预测的替代方案,帧内预测处理单元46可对当前视频块进行帧内预测。具体地,帧内预测处理单元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可从DPB 64中存储的帧的一个或更多个参考块生成经运动补偿的预测块。运动补偿单元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,并且帧内BC单元85的功能可由预测处理单元81的其他组件(诸如运动补偿单元82)执行。
视频数据存储器79可存储将由视频解码器30的其他组件解码的视频数据,诸如经编码的视频比特流。视频数据存储器79中存储的视频数据可例如从存储设备32、从本地视频源(诸如相机)、经由视频数据的有线或无线网络通信获得,或通过访问物理数据存储介质(例如,闪存驱动器或硬驱动器)获得。视频数据存储器79可包括编码图片缓冲器(CPB),编码图片缓冲器存储来自经编码的视频比特流的经编码的视频数据。视频解码器30的解码图片缓冲器(DPB)92存储参考视频数据,以供视频解码器30(例如,以帧内或帧间预测编解码模式)在对视频数据进行解码时使用。视频数据存储器79和DPB 92可由各种存储器设备中的任何存储器设备形成,诸如动态随机存取存储器(DRAM)(包括同步DRAM(SDRAM))、磁阻式RAM(MRAM)、电阻式RAM(RRAM)、或其他类型的存储器设备。出于说明性目的,视频数据存储器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为最大逻辑编码单元,并且CTU的宽度和高度由视频编码器20在序列参数集中用信号发送,使得视频序列中的所有CTU具有128×128、64×64、32×32和16×16之一的相同尺寸。但是应当注意,本申请不必限于特定尺寸。如图4B中所示,每个CTU可包括亮度样点的一个编码树块(CTB)、色度样点的两个对应编码树块、以及用于对编码树块的样点进行编码的语义元素。语义元素描述像素的编码块的不同类型的单元的性质以及视频序列可以如何在视频解码器30处被重建,包括帧间预测或帧内预测、帧内预测模式、运动矢量和其他参数。在单色图片或具有三个单独颜色平面的图片中,CTU可包括单个编码树块以及用于对编码树块的样点进行编码的语义元素。编码树块可以是N×N的样点块。
为了实现更好的性能,视频编码器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和CU 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中所示,存在五种分割类型,即,四元分割、水平二元分割、垂直二元分割、水平三元分割和垂直三元分割。
在一些实施方式中,视频编码器20可进一步将CU的编码块分割为一个或更多个M×N的预测块(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的预测亮度块中的一个预测亮度块中的亮度样点与CU的原始亮度编码块中的对应样点之间的差。类似地,视频编码器20可分别生成针对CU的Cb残差块和Cr残差块,使得CU的Cb残差块中的每个样点指示CU的预测Cb块中的一个预测Cb块中的Cb样点与CU的原始Cb编码块中的对应样点之间的差,并且CU的Cr残差块中的每个样点可指示CU的预测Cr块中的一个预测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)形成表示给定块的视频数据的颜色的调色板表。调色板表包括给定块中的最主要的(例如,频繁使用的)像素值。在给定块的视频数据中未频繁表示的像素值要么没有被包括在调色板表中,要么没有作为逸出(escape)颜色被包括在调色板表中。
调色板表中的每个条目包括调色板表中的对应像素值的索引。块中的样点的调色板索引可被编码以指示调色板表中的哪个条目将被用于预测或重建哪个样点。该调色板模式以生成针对图片、条带、瓦片或视频块的其它这样的分组的第一个块的调色板预测值的过程开始。如下面将解释的,通常通过更新先前使用的调色板预测值来生成后续视频块的调色板预测值。出于说明性目的,假设调色板预测值是在图片级定义的。换言之,图片可包括多个编码块,每个编码块具有其自己的调色板表,但针对整个图片存在一个调色板预测值。
为了减少在视频比特流中用信号发送调色板条目所需的比特,视频解码器可利用调色板预测值来确定用于重建视频块的调色板表中的新调色板条目。例如,调色板预测值可包括先前使用的调色板表中的调色板条目,或者甚至通过包括最近使用的调色板表的所有条目而用最近使用的调色板表被初始化。在一些实施方式中,调色板预测值可比最近使用的调色板表中的所有条目包括地更少,并且然后包含其他先前使用的调色板表中的一些条目。调色板预测值可具有与用于对不同的块进行编解码的调色板表相同的大小,或者可大于或小于用于对不同的块进行编解码的调色板表。在一个示例中,调色板预测值被实现为包括64个调色板条目的先进先出(FIFO)表。
为了从调色板预测值生成针对视频数据的块的调色板表,视频解码器可从经编码的视频比特流接收针对调色板预测值的每个条目的一比特标志。一比特标志可具有指示调色板预测值的相关联条目将被包括在调色板表中的第一值(例如,二进制一)或指示调色板预测值的相关联条目将不被包括在调色板表中的第二值(例如,二进制零)。如果调色板预测值的大小大于用于视频数据的块的调色板表,则一旦达到调色板表的最大大小,视频解码器就可以停止接收更多的标志。
在一些实施方式中,调色板表中的一些条目可在经编码的视频比特流中直接被用信号发送,而不使用调色板预测值被确定。对于这样的条目,视频解码器可从经编码的视频比特流接收指示针对与该条目相关联的亮度分量和两个色度分量的像素值的三个单独的m比特值,其中m表示视频数据的比特深度。与直接被用信号发送的调色板条目所需的多个m比特值相比,从调色板预测值导出的那些调色板条目仅需要一比特标志。因此,使用调色板预测值用信号发送一些或所有调色板条目可以显著地减少用信号发送新调色板表的条目所需的比特数,从而提高调色板模式编解码的整体编解码效率。
在许多情况下,针对一个块的调色板预测值是基于用于对一个或更多个先前编码的块进行编解码的调色板表而确定的。但是当对图片、条带或瓦片中的第一编码树单元进行编解码时,先前编码的块的调色板表可能不可用。因此,无法使用先前使用的调色板表的条目来生成调色板预测值。在这种情况下,可在序列参数集(SPS)和/或图片参数集(PPS)中用信号发送调色板预测值初始化值的序列,调色板预测值初始化值是用于在先前使用的调色板表不可用时生成调色板预测值的值。SPS通常指应用于一系列连续的经编码的视频图片的语义元素的语义结构,一系列连续的经编码的视频图片被称为经编码的视频序列(CVS),经编码的视频序列(CVS)由在PPS中找到的语义元素的内容确定,PPS由在每个条带片段头中找到的语义元素提及。PPS通常指应用于CVS内的一个或更多个单独的图片的语义元素的语义结构,CVS内的一个或更多个单独的图片由在每个条带片段头中找到的语义元素确定。因此,SPS通常被认为是比PPS更高级的语义结构,这表示与包括在PPS中的语义元素相比,包括在SPS中的语义元素通常较不频繁地改变且应用于视频数据的较大部分。
图5A至图5B是示出根据本公开的一些实施方式的使用调色板表来对视频数据进行编码的示例的框图。
对于调色板(PLT)模式信令,调色板模式被编码为针对编码单元的预测模式,即,针对编码单元的预测模式可以是MODE_INTRA、MODE_INTER、MODE_IBC和MODE_PLT。如果利用调色板模式,则CU中的像素值由代表性颜色值的小集合表示。该集合被称为调色板。对于具有与调色板颜色接近的值的像素,用信号发送调色板索引。对于具有调色板之外的值的像素,用逸出符号表示该像素,并且直接用信号发送量化的像素值。在下面的表1和表2中分别示出当前VVC规范草案中的调色板模式的语义和相关联的语法。
为了解码经调色板模式编码的块,解码器需要从比特流解码调色板颜色和索引。调色板颜色通过调色板表被定义并通过调色板表编码语义(例如,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)而被编码。在图5A中示出了经调色板模式编码的CU的示例,其中调色板尺寸为4。CU中的前3个样点分别使用调色板条目2、0和3进行重建。CU中的“x”样点表示逸出符号。CU级标志palette_escape_val_present_flag指示在CU中是否存在任何逸出符号。如果存在逸出符号,则调色板尺寸增加1并且最后一个索引被用于指示逸出符号。因此,在图5A中,索引4被分配给逸出符号。
为了对调色板表进行编码,保持调色板预测值。在每个条带的开始处初始化调色板预测值,其中调色板预测值被重置为0。对于调色板预测值中的每个条目,用信号发送复用标志以指示该条目是否为当前调色板的部分。如图5B中所示,复用标志palette_predictor_run被发送。之后,使用0阶指数哥伦布码通过语法num_signaled_palette_entries用信号发送新调色板条目的数量。最后,用信号发送针对新调色板条目的分量值new_palette_entries[]。在对当前CU进行编码之后,使用当前调色板来更新调色板预测值,并且将在新调色板预测值的末尾添加来自先前调色板预测值的在当前调色板中未复用的条目,直到达到所允许的最大尺寸为止。
为了对调色板索引图进行编码,使用如图5C中所示的水平或垂直遍历扫描来对索引进行编码。使用palette_transpose_flag在比特流中显式地用信号发送扫描顺序。
使用两种主要调色板样点模式(“INDEX”和“COPY_ABOVE”)对调色板索引进行编码。在“INDEX”模式下,显式地用信号发送调色板索引。在“COPY_ABOVE”模式下,复制上方行中的样点的调色板索引。对于“INDEX”和“COPY_ABOVE”模式两者,用信号发送指定使用相同模式编码的像素的数量的游程(run)值。除了当使用水平扫描时的上方行或当使用垂直扫描时的第一列或者当先前模式是“COPY_ABOVE”时之外,使用标志来用信号发送模式。
在一些实施例中,针对索引图的编码顺序如下:首先,使用语义num_palette_indices_minus1用信号发送针对CU的索引值的数量,然后使用语义palette_idx_idc用信号发送针对整个CU的实际索引值。索引的数量以及索引值两者都在旁路模式下被编码。这将索引相关的旁路编码的二进制位分组在一起。然后,使用语义copy_above_palette_indices_flag、palette_run_prefix和palette_run_suffix,以交织方式用信号发送调色板模式(INDEX或COPY_ABOVE)和游程。copy_above_palette_indices_flag是上下文编码的标志(仅一个二进制位),palette_run_prefix的码字是通过下表3中描述的过程而确定的,并且前5个二进制位被上下文编码。palette_run_suffix被编码为旁路二进制位。最后,与整个CU的逸出样点对应的分量逸出值被分组在一起并在旁路模式下被编码。在用信号发送索引值之后用信号发送附加语义元素copy_above_indices_for_final_run_flag。该语义元素结合索引的数量消除了用信号发送与块中的最后游程对应的游程值的需要。
在VVC(VTM)的参考软件中,针对I条带启用双树,双树使针对亮度分量和色度分量的编码单元分割分开。结果,分别对亮度(Y分量)和色度(Cb和Cr分量)应用调色板。如果双树被禁用,则调色板将联合地被应用于Y、Cb、Cr分量。
表1调色板编码的语义
表2调色板编码的语法
表3针对语义palette_run_prefix的二进制码字和CABAC上下文选择
在第15次JVET会议中,提出了基于行的CG(文件号是JVET-00120,并且可在http://phenix.int-evry.fr/jvet/中访问)以简化VTM6.0中的调色板模式下的缓冲器使用和语义。作为变换系数编解码中使用的系数组(CG),将CU划分为多个基于行的系数组,多个基于行的系数组中的每一个包含m个样点,其中针对每个CG依次编码/解析索引游程、调色板索引值和针对逸出模式的量化的颜色。结果,可在解析语义元素(例如,针对CG的索引游程、调色板索引值和逸出量化的颜色)之后重建基于行的CG中的像素,这极大地降低了VTM6.0中的调色板模式下的缓冲器要求,其中在重建之前必须解析(和存储)针对整个CU的语义元素。
在这种应用中,如图5D中所示,基于遍历扫描模式将调色板模式的每个CU划分为m个样点的多个片段(在这种测试中,m=8)。
用于每个片段中的调色板游程编码的编码顺序如下:对于每个像素,用信号发送一个经上下文编码的二进制位run_copy_flag=0,该二进制位指示该像素与先前像素具有相同的模式,即,先前扫描的像素和当前像素都具有游程类型COPY_ABOVE或者先前扫描的像素和当前像素都具有游程类型INDEX和相同的索引值。否则,用信号发送run_copy_flag=1。
如果当前像素和先前像素具有不同模式,则用信号发送指示像素的游程类型(即,INDEX或COPY_ABOVE)的一个经上下文编码的二进制位copy_above_palette_indices_flag。在这种情况下,如果样点在第一行中(水平遍历扫描)或在第一列中(垂直遍历扫描),则解码器不必解析游程类型,这是因为默认使用INDEX模式。如果先前解析的游程类型是COPY_ABOVE,则解码器也不必解析游程类型。
在对一个片段中的像素进行调色板游程编码之后,索引值(针对INDEX模式)和量化的逸出颜色被编码为旁路二进制位,并且与上下文编码的二进制位的编码/解析分开分组,以提高每个基于行的CG内的吞吐量。由于现在在游程编解码之后对索引值进行编码/解析,因此编码器不必用信号发送索引值的数量num_palette_indices_minus1和最后的游程类型copy_above_indices_for_final_run_flag。CG调色板模式的语义在表4中被示出。
表4调色板编码的语义
图6A是示出根据本公开的一些实施方式的视频解码器实现解码用基于调色板的方案编码的视频数据的技术的示例性过程的流程图600A。具体地,视频解码器使用调色板中的信息(例如,将当前PLT块的索引图中的索引的数量与预定义数量(例如,1)进行比较)来确定是否接收用于解码的特定调色板相关语义元素(例如,palette_transpose_flag)。
为了对调色板索引图进行编码,可使用由显式地用信号发送的语义palette_transpose_flag指示的水平或垂直遍历扫描来对索引进行编码。在现有设计中,即使当索引图仅包含一个索引(例如,num_palette_indices_minus1作为0而被用信号发送)时,palette_transpose_flag也被用信号发送。然而,在当前调色板块的索引图仅包含一个索引时,无论是水平遍历扫描顺序还是垂直遍历扫描顺序,编码结果都是相同的。换言之,可以省略在这种情况下用信号发送palette_transpose_flag标志。同样,当索引图仅包含一个索引(例如,num_palette_indices_minus1作为0而被用信号发送)时,在现有设计中也用信号发送copy_above_indices_for_final_run_flag。但是当索引图仅包含一个索引时,不需要用信号发送copy_above_indices_for_final_run_flag。在这种情况下,该标志的信令也是冗余的。
此外,用信号发送语义元素num_palette_indices_minus1以指示调色板块的索引图中的索引的数量。换言之,调色板块中的索引的最大数量应等于或小于调色板块的尺寸(例如,块宽度乘以块高度)。在现有调色板编码设计中,不存在对num_palette_indices_minus1的最大信号发送值的约束,使得当num_palette_indices_minus1作为大于当前块的尺寸的数量而被用信号发送时,可能在解码器处发生可预测行为。
在一些实施例中,仅在当前调色板块的索引图中的索引的数量大于1时,palette_transpose_flag被用信号发送。修改后的语义信令的示例在下表中被示出。
在一些实施例中,在当前PLT块的索引图中的索引的数量大于1时,用信号发送copy_above_indices_for_final_run_flag。修改后的语义信令的示例在下表中被示出。
在一些实施例中,num_palette_indices_minus1被约束为等于或小于值N。在一个示例中,N被定义为通过将块宽度乘以块高度而导出的经调色板模式编码的块的尺寸。下面给出了基于VVC规范中的num_palette_indices_minus1的语法的示例:
当解码经调色板模式编码的块时,视频解码器从比特流接收与经调色板模式编码的块对应的视频数据(610)。接下来,视频解码器从视频数据接收第一语义元素(例如,num_palette_indices_minus1)的值。如上所述,第一语义元素的值指示与经调色板模式编码的块相关联的调色板表中的调色板索引的数量(620)。
当基于第一语义元素的值确定与经调色板模式编码的块相关联的调色板表中的调色板索引的数量大于一(例如,在调色板表中存在两个或更多个调色板索引)时(630),视频解码器从视频数据接收第二语义元素(例如,用于指示水平遍历扫描或垂直遍历扫描的palette_transpose_flag)的值和第三语义元素(例如,copy_above_indices_for_final_run_flag)的值,第二语义元素的值指示经调色板模式编码的块的遍历扫描方向,第三语义元素的值指示经调色板模式编码的块的最后游程的复制方向(例如,游程是调色板表中具有相同索引值的一组连续像素(例如,在预定义遍历扫描方向上))(630-1)。
但是当基于第一语义元素的值确定针对经调色板模式编码的块的调色板表中的调色板索引的数量为一时(640),视频解码器将默认值(例如,“0”或“1”)分别分配给第二语义元素和第三语义元素(640-1)。
接下来,视频解码器基于第二语义元素和第三语义元素解码与经调色板模式编码的块对应的视频数据(650)。
在一些实施例中,因为针对经调色板模式编码的块的调色板表中的调色板索引的数量不能超过经调色板模式编码的块中的样点的数量,所以为第一语义元素设置上限,并且下限被设置为大于零。在这种情况下,如果第一语义元素指示调色板索引的数量大于经调色板模式编码的块中的样点的数量,则解码器可将接收到的比特流标记为不合格的比特流。解码器可不在日志文件中提供任何指示的情况下解码比特流,或者在日志文件中具有比特流不合格的指示的情况下解码比特流,或者当产生这样的标志时中止解码。
图6B是示出根据本公开的一些实施方式的视频解码器实现解码用基于调色板的方案编码的视频数据的技术的示例性过程的流程图600B。具体地,视频解码器使用预定义的上下文编码的二进制位(CCB)预算来解码编码单元的每个变换块。
当前,对于亮度或色度变换块(TB),对CCB预算的限制为TB_zosize*1.75。然而,当对经调色板模式编码的块的调色板索引图进行编码时,调色板块的每个样点需要大约2个CCB,这大于对残差编码的CCB限制。例如,当64×64PLT块中的所有样点被编码为“INDEX”模式且游程为“1”时,存在经编码以用信号发送针对除了第一行样点或第一列样点之外的所有样点使用“copy_above_palette_indices_flag”等于0的4032(64×63)个CCB,并且存在经编码以用信号发送“palette_run_prefix”等于0的4096(64×64)个CCB。换言之,每个样点需要大约(4032+4096)/(4096)≈1.98个CCB以对索引图进行编码。
类似地,将基于行的CG调色板模式作为另一示例,当64×64PLT块中的所有样点被编码为“INDEX”模式且游程为“1”时,存在经编码以用信号发送针对除了第一行样点或第一列样点之外的所有样点“copy_above_palette_indices_flag”=0的4032(64×63)个CCB,并且存在经编码以用信号发送针对除了沿着扫描顺序的第一个样点之外的所有样点“run_copy_flag”等于1的4095(64×64-1)个CCB。换言之,每个样点需要大约(4032+4095)/(4096)≈1.98个CCB以对索引图进行编码。
在一些实施例中,提出将针对每个样点的CCB的平均数限制为小于或等于每样点CCB的允许平均数(表示为N,其中N是正数,例如,1.75)。针对经PLT编码的块的CCB预算被定义为块中的样点的数量(例如,当前块的宽度乘以当前块的高度)乘以每样点CCB的允许平均数(即,N)。例如,针对4×4的经PLT编码的块的CCB预算为16×1.75=28,并且针对64×64的经PLT编码的块的CCB预算为4096×1.75=7168。
在一些情况下(例如,基于行的CG调色板模式),经调色板编码的块可被划分为若干子块以进行其调色板模式编码。在这种情况下,前述方法也适用于控制每个子块的CCB预算。在一个示例中,每个子块具有其自己的CCB预算,CCB预算被定义为子块中的样点的数量乘以N。在另一示例中,所有子块共享一个CCB预算,如上所述,该CCB预算可被定义为块中的样点的总数乘以N。
还值得注意的是,CCB约束可被应用于经调色板模式编码的块,包括针对块的不同语义的所有CCB或仅针对块的特定语义的CCB。在一个示例中,CCB约束在调色板模式下被应用于仅copy_above_palette_indices_flag、palette_run_prefix语义的编码。在另一示例中,CCB约束在调色板模式下被应用于仅copy_above_palette_indices_flag、run_copy_flag语义的编码。
在一些实施例中,CCB预算被初始化为针对与调色板模式编码相关的语义元素(例如,copy_above_palette_indices_flag、palette_run_prefix以及/或者copy_above_palette_indices_flag、run_copy_flag)的最大允许预算。每当相关联语义的一个CCB被编码时,CCB预算就减少一。当CCB预算等于或小于零时,块的剩余相关联语义全部被编码为旁路二进制位。
在一些实施例中,CCB预算被初始化为针对与调色板模式编码相关的语义元素(例如,copy_above_palette_indices_flag、palette_run_prefix以及/或者copy_above_palette_indices_flag、run_copy_flag)的最大允许预算。每当相关联语义被编码时,CCB预算就减少编码该语义所需的CCB的数量。对相关联语义进行编码所需的CCB的数量可以是所使用的CCB的实际数量;它也可以是所使用的CCB的数量的估计值。可使用不同方法导出这样的估计值。在一个示例中,潜在地用于对语义进行编码的CCB的最大数量可被用作所使用的CCB的数量的估计值。当对一个语义元素进行编码并且CCB预算等于或小于对该语义进行编码所需的CCB的数量时,相关联语义的所有二进制位被编码为旁路二进制位。值得注意的是,对不同语义进行编码所需的CCB的数量可以不同。例如,如果使用潜在地用于相关联语义元素的CCB的最大数量作为所需的CCB的数量,则语义copy_above_palette_indices_flag所需的CCB的数量等于1,并且语义palette_run_prefix所需的CCB的数量等于5。
在一些实施例中,在针对调色板模式下编码的块设置了CCB预算之后,仅当在调色板模式下对语义元素的子集进行编码时才检查和更新CCB预算。对于子集之外的那些语义,假设固定数量的CCB并且在不进行检查的情况下从预算减去固定数量的CCB。这样的方法可以有效地降低与CCB预算检查和更新相关联的复杂度。可使用不同的方法来定义上述固定数量的CCB。在一个示例中,它可被定义为对语义进行编码所需的CCB的平均数量。在另一示例中,它可被定义为对语义进行编码潜在所需的CCB的最大(即,最坏情况下的)数量。
在一些实施例中,一个示例实施方式是将针对经调色板模式编码的块的总CCB预算假设为块中的样点的数量乘以N(例如,针对copy_above_palette_indices_flag和palette_run_prefix语义的编码为1.75)。因为对于语义palette_run_prefix,每样点CCB的最坏情况下的平均数量为1,所以对PLT块的所有palette_run_prefix语义进行编码所需的CCB的最大数量等于块中的样点的数量。因此,用于copy_above_palette_indices_flag的编码的总CCB预算可被设置为:
block_size*1.75-block_size=block_size*0.75
这里,block_size表示块中的样点的数量。结果,为了对调色板模式块进行编码,将CCB预算初始化为块中的样点数量乘以0.75。在调色板模式语义编码期间,仅当编码语义copy_above_palette_indices_flag时,检查和更新CCB预算。每当与该语义相关地对一个CCB进行编码时,CCB预算减少一。当CCB预算等于或小于0时,块的剩余copy_above_palette_indices_flag语义被编码为旁路二进制位。
在一些实施例中,对于经PLT编码的块,可使用CCB来对索引图的特定数量的那些索引进行编码。这样的特定数量可被预定义为阈值。在一个示例中,阈值被定义为等于或小于块尺寸的3/4。在另一示例中,阈值被定义为等于或小于块尺寸的1/2。对于给定索引,如果到目前为止针对该块编码的索引的数量小于或等于预定义阈值,则相关联语义(例如,copy_above_palette_indices_flag和palette_run_prefix)被编码为CCB。否则,将相关联语义编码为旁路二进制位。通过适当地设置预定义数量,可将总CCB控制在所允许的最大CCB数量之下。
在一些实施例中,对于经PLT编码的块,可使用CCB仅对块中的特定数量的那些样点的语义进行编码。这样的特定数量可被预定义为阈值。在一个示例中,阈值被定义为等于或小于块尺寸的3/4。在另一示例中,阈值被定义为等于或小于块尺寸的1/2。对于给定索引,如果到目前为止在该块中编码的样点的数量小于或等于预定义阈值,则相关联语义(例如,copy_above_palette_indices_flag和palette_run_prefix)被编码为CCB。否则,将相关联语义编码为旁路二进制位。通过适当地设置预定义数量,可将总CCB控制在所允许的最大CCB数量之下。
在一些实施例中,copy_above_palette_indices_flag的编解码被编码为旁路二进制位。由于copy_above_palette_indices_flag被编码为旁路二进制位,因此在当前设计中仅一些CCB来自palette_run_prefix的编码并且用于palette_run_prefix的编码的每样点平均CCB不超过1。因此,保证了每样点总平均CCB小于1.75。不存在控制CCB预算所需的检查或更新操作。
在一些实施例中,palette_run_prefix的前L个二进制位的编解码被编码为旁路二进制位(L是预定义正整数)。
在一些实施例中,用于调色板模式语义编码的每样点CCB的允许平均数量始终被设置为与用于变换跳过模式的每样点CCB的允许平均数量一致。
为了使用预定义的上下文编码二进制位(CCB)预算来解码编码单元的变换块,视频解码器首先从比特流接收与经调色板模式编码的块对应的视频数据(660)。
视频解码器基于经调色板模式编码的块的尺寸来确定针对经调色板模式编码的块的上下文编码二进制位预算(例如,上下文编码二进制位(CCB)预算等于经调色板模式编码的块中的样点的数量乘以每样点CCB预算的允许平均数,例如,1.75),以解码经调色板模式编码的块中的各个样点的语义元素(例如,copy_above_palette_indices_flag、palette_run_prefix以及/或者copy_above_palette_indices_flag、run_copy_flag)(670)。
接下来,视频解码器使用基于上下文的编解码引擎(例如,CABAC引擎)从视频数据解码经调色板模式编码的块中的各个样点的语义元素,直到基于上下文的编解码引擎耗尽上下文编码二进制位预算为止(680)。
当在基于上下文的编解码引擎耗尽上下文编码二进制位预算之后在视频数据中仍存在一个或更多个剩余样点以待解码时(690),视频解码器使用旁路编解码引擎从视频数据解码剩余样点的语义元素,直到视频数据中的剩余样点中的最后一个样点被解码为止(690-1)。
在一些实施例中,视频解码器通过以下方式使用基于上下文的编解码引擎解码经调色板模式编码的块中的各个样点的语义元素:将经调色板模式编码的块中的各个样点的各自的语义元素解码为经上下文编码的二进制位(例如,所述各自的语义元素是使用CABAC引擎被编码的),并且通过将上下文编码二进制位预算减少一来更新上下文编码二进制位预算。
在一些实施例中,为了使用CCB预算解码经调色板模式编码的块,视频解码器从比特流接收与经调色板模式编码的块对应的视频数据。对于经调色板模式编码的块的多个子块中的每个子块:视频解码器确定用于解码经调色板模式编码的块的各个子块中的各个样点的语义元素(例如,copy_above_palette_indices_flag、palette_run_prefix以及/或者copy_above_palette_indices_flag、run_copy_flag)的各自的上下文编码二进制位预算(例如,上下文编码二进制位(CCB)预算等于经调色板模式编码的块中的样点的数量乘以每样点CCB的允许平均数,例如,1.75)。接下来,视频解码器解码经调色板模式编码的块的各个子块中的各个样点的语义元素,同时更新所述各自的上下文编码二进制位预算(例如,在每次语义解码之后更新上下文编码二进制位预算),该操作包括:根据确定各自的更新后的上下文编码二进制位预算大于零,将经调色板模式编码的块的各个子块中的各个样点的各自的语义元素解码为上下文编码的二进制位(例如,使用CABAC引擎来编码所述各自的语义元素);以及通过将上下文编码二进制位预算减一来更新所述各自的上下文编码二进制位预算;以及根据确定各自的上下文编码二进制位预算为零,将经调色板模式编码的块的各个子块中的各个样点的各自的语义元素解码为旁路二进制位(例如,未使用CABAC引擎来编码所述各自的语义元素)。
在一些实施例中,为了使用上下文编码二进制位预算来解码经调色板模式编码的块,视频解码器从比特流接收与经调色板模式编码的块对应的视频数据。视频解码器确定用于解码经调色板模式编码的块中的各个样点的语义元素(例如,copy_above_palette_indices_flag、palette_run_prefix以及/或者copy_above_palette_indices_flag、run_copy_flag)的上下文编码二进制位预算{例如,上下文编码二进制位(CCB)预算等于经调色板模式编码的块中的样点的数量乘以每样点CCB的允许平均数,例如,1.75}。视频解码器解码经调色板模式编码的块中的各个样点的语义元素,同时更新上下文编码二进制位预算(例如,在每次语义解码之后更新上下文编码二进制位预算),该操作包括:根据确定各个语义元素是预定义语义元素:根据确定更新后的上下文编码二进制位预算大于零:将经调色板模式编码的块中的各个样点的各自的语义元素解码为上下文编码的二进制位(例如,使用CABAC引擎来编码所述各自的语义元素);以及通过将上下文编码二进制位预算减一来更新上下文编码二进制位预算;以及根据确定上下文编码二进制位预算为零,将经调色板模式编码的块中的各个样点的各自的语义元素解码为旁路二进制位(例如,未使用CABAC引擎来编码相应语义元素);以及根据确定所述各个语义元素不是预定义语义元素:将经调色板模式编码的块中的各个样点的各自的语义元素解码为旁路二进制位。
图7是示出根据本公开的一些实施方式的示例性上下文自适应二进制算术编解码(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个不同状态的相关联的模型概率值p的范围在区间[0:01875;0:98125]中。每个概率模型的两个参数作为7比特条目被存储在上下文存储器中:6个比特用于表示最小可能符号(LPS)的模型概率pLPS的63个概率状态中的每个概率状态,并且1个比特用于nMPS(最可能符号(MPS)的值)。
在一个或更多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合实现。如果以软件实现,则功能可作为一个或更多个指令或者代码被存储在计算机可读介质上或通过计算机可读介质被传输,并且由基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质或通信介质,计算机可读存储介质对应于有形介质(诸如数据存储介质),通信介质包括促进将计算机程序(例如,根据通信协议)从一处传送到另一处的任何介质。以此方式,计算机可读介质通常可对应于(1)非暂时性的有形计算机可读存储介质或者(2)通信介质,诸如信号或载波。数据存储介质可以是任何可用介质,其可以由一个或更多个计算机或者一个或更多个处理器访问以取回用于实现本申请中描述的实施方式的指令、代码和/或数据结构。计算机程序产品可包括计算机可读介质。
在本文的实施方式的描述中使用的术语仅用于描述特定实施方式的目的,并且不旨在限制权利要求的范围。如在实施方式的描述和所附权利要求中所使用的,单数形式“一种”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,如本文所使用的术语“和/或”是指并且涵盖相关联的所列项中的一项或更多项中的任一项和所有可能组合。将进一步理解,术语“包括”和/或“包括……的”当在本说明书中使用时,指定所陈述的特征、元素和/或组件的存在,但不排除存在或添加一个或更多个其他特征、元素、组件和/或它们的群组。
还将理解,尽管本文可使用术语第一、第二等来描述各种元件,但是这些元件不应当受这些术语的限制。这些术语仅被用于将一个元件与另一元件区分开。例如,第一电极可被称为第二电极,并且类似地,第二电极可被称为第一电极,而不脱离实施方式的范围。第一电极和第二电极都是电极,但它们不是同一电极。
本申请的描述已经出于说明和描述的目的被呈现,并且不旨在穷举或限于采用所公开的形式的发明。受益于在前面的描述和相关联的附图中呈现的教导,许多修改、变化和替代实施方式对于本领域普通技术人员将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理、实际应用,并且使本领域的其他技术人员能够理解针对各种实施方式的发明,并且最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实施方式。因此,将理解,权利要求的范围不限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在被包括在所附权利要求的范围内。
Claims (16)
1.一种解码视频数据的方法,包括:
从比特流接收与经调色板模式编码的块对应的视频数据;
从所述视频数据接收第一语义元素的值,其中所述第一语义元素的值指示与所述经调色板模式编码的块相关联的调色板表中的调色板索引的数量;
根据确定所述第一语义元素的值指示与所述经调色板模式编码的块相关联的调色板表中的调色板索引的数量大于一:
从所述视频数据接收第二语义元素的值和第三语义元素的值,所述第二语义元素的值指示所述经调色板模式编码的块的遍历扫描方向,所述第三语义元素的值指示所述经调色板模式编码的块的最后游程的复制方向;
根据确定所述第一语义元素的值指示针对所述经调色板模式编码的块的调色板表中的调色板索引的数量为一:
将默认值分别分配给所述第二语义元素和所述第三语义元素;并且基于所述第二语义元素和所述第三语义元素解码与所述经调色板模式编码的块对应的所述视频数据。
2.如权利要求1所述的方法,其中所述第一语义元素被约束为指示针对所述经调色板模式编码的块的调色板表中的调色板索引的数量小于或等于所述经调色板模式编码的块中的样点的数量并且大于零。
3.如权利要求1所述的方法,其中所述第二语义元素的值指示所述经调色板模式编码的块的遍历扫描方向为水平扫描或垂直扫描。
4.如权利要求1所述的方法,其中所述经调色板模式编码的块的最后游程的游程长度是基于所述第一语义元素的值和所述第三语义元素的值而确定的。
5.如权利要求1所述的方法,其中所述第二语义元素为一比特标志并且所述第三语义元素为一比特标志。
6.一种解码视频数据的方法,包括:
从比特流接收与经调色板模式编码的块对应的视频数据;
基于所述经调色板模式编码的块的尺寸确定针对所述经调色板模式编码的块的上下文编码二进制位预算;
使用基于上下文的编解码引擎从所述视频数据解码所述经调色板模式编码的块中的各个样点的语义元素,直到所述上下文编码二进制位预算被所述基于上下文的编解码引擎耗尽为止;并且
根据确定所述视频数据具有待解码的一个或更多个剩余样点:
使用旁路编解码引擎从所述视频数据解码所述剩余样点的语义元素,直到所述视频数据中的所述剩余样点中的最后一个样点被解码之后为止。
7.如权利要求6所述的方法,其中针对所述经调色板模式编码的块的上下文编码二进制位预算被定义为所述块中的样点的数量乘以正数N,N为1.75。
8.如权利要求6所述的方法,其中使用所述基于上下文的编解码引擎解码所述经调色板模式编码的块中的各个样点的语义元素的步骤使所述上下文编码二进制位预算减少预定义数量。
9.如权利要求8所述的方法,其中所述预定义数量是用于解码所述语义元素的上下文编码二进制位的实际数量。
10.如权利要求8所述的方法,其中所述预定义数量是用于解码所述语义元素的上下文编码二进制位的实际数量。
11.如权利要求8所述的方法,其中所述预定义数量针对不同的语义元素是不同的。
12.如权利要求6所述的方法,其中使用所述基于上下文的编解码引擎解码所述经调色板模式编码的块中的各个样点的语义元素的步骤包括:
将所述经调色板模式编码的块中的各个样点的相应语义元素解码为上下文编码二进制位;并且
通过将所述上下文编码二进制位预算减一来更新所述上下文编码二进制位预算。
13.一种解码视频数据的方法,包括:
从比特流接收与经调色板模式编码的块对应的视频数据;
针对所述经调色板模式编码的块的多个子块中的每个子块:
确定用于解码所述经调色板模式编码的块的各个子块中的各个样点的语义元素的各自的上下文编码二进制位预算;并且
解码所述经调色板模式编码的块的所述各个子块中的各个样点的语义元素,同时更新所述各自的上下文编码二进制位预算,其中所述解码所述经调色板模式编码的块的所述各个子块中的各个样点的语义元素,同时更新所述各自的上下文编码二进制位预算,包括:
根据确定各自的更新后的上下文编码二进制位预算大于零,将所述经调色板模式编码的块的所述各个子块中的各个样点的各自的语义元素解码为上下文编码二进制位;并且通过将所述上下文编码二进制位预算减一来更新所述各自的上下文编码二进制位预算;并且
根据确定所述各自的上下文编码二进制位预算为零,将所述经调色板模式编码的块的所述各个子块中的各个样点的各自的语义元素解码为旁路二进制位。
14.一种解码视频数据的方法,包括:
从比特流接收与经调色板模式编码的块对应的视频数据;
确定用于解码所述经调色板模式编码的块中的各个样点的语义元素的上下文编码二进制位预算;并且
解码所述经调色板模式编码的块中的各个样点的语义元素,同时更新所述上下文编码二进制位预算,其中所述解码所述经调色板模式编码的块中的各个样点的语义元素,同时更新所述上下文编码二进制位预算,包括:
根据确定各个语义元素是预定义语义元素:
根据确定更新后的上下文编码二进制位预算大于零:将所述经调色板模式编码的块中的各个样点的各自的语义元素解码为上下文编码二进制位;并且通过将所述上下文编码二进制位预算减一来更新所述上下文编码二进制位预算;并且
根据确定所述上下文编码二进制位预算为零,将所述经调色板模式编码的块中的各个样点的各自的语义元素解码为旁路二进制位;并且
根据确定所述各个语义元素不是预定义语义元素:
将所述经调色板模式编码的块中的各个样点的各自的语义元素解码为旁路二进制位。
15.一种电子装置,包括:
一个或更多个处理单元;
存储器,耦接到所述一个或更多个处理单元;以及
多个程序,存储在所述存储器中,所述多个程序在由所述一个或更多个处理单元执行时使所述电子装置执行如权利要求1-14所述的方法。
16.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储由具有一个或更多个处理单元的电子装置执行的多个程序,其中所述多个程序在由所述一个或更多个处理单元执行时使所述电子装置执行如权利要求1-14所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962902869P | 2019-09-19 | 2019-09-19 | |
US62/902,869 | 2019-09-19 | ||
US201962903636P | 2019-09-20 | 2019-09-20 | |
US62/903,636 | 2019-09-20 | ||
PCT/US2020/051849 WO2021055970A1 (en) | 2019-09-19 | 2020-09-21 | Methods and apparatus of video coding using palette mode |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114342374A true CN114342374A (zh) | 2022-04-12 |
Family
ID=74883623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080055629.XA Pending CN114342374A (zh) | 2019-09-19 | 2020-09-21 | 使用调色板模式的视频编解码的方法和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114342374A (zh) |
WO (1) | WO2021055970A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105323583B (zh) * | 2014-06-13 | 2019-11-15 | 财团法人工业技术研究院 | 编码方法、解码方法、编解码***、编码器与解码器 |
WO2016127889A1 (en) * | 2015-02-13 | 2016-08-18 | Mediatek Inc. | Method and apparatus for palette index coding in video and image compression |
US10448058B2 (en) * | 2015-05-21 | 2019-10-15 | Qualcomm Incorporated | Grouping palette index at the end and index coding using palette size and run value |
GB2547047B (en) * | 2016-02-08 | 2018-07-18 | Canon Kk | Encoder optimizations for palette lossless encoding of content with subsampled colour component |
-
2020
- 2020-09-21 WO PCT/US2020/051849 patent/WO2021055970A1/en active Application Filing
- 2020-09-21 CN CN202080055629.XA patent/CN114342374A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021055970A1 (en) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114731445A (zh) | 残差和系数编解码的方法和装置 | |
CN114930833A (zh) | 使用调色板模式的视频编解码的方法和装置 | |
US20230027818A1 (en) | Methods and apparatus of video coding using palette mode | |
US20220286673A1 (en) | Deblocking filtering for video coding | |
JP2023164981A (ja) | パレットモードを使用するビデオコーディングの方法及び装置 | |
US12015798B2 (en) | Methods and apparatus on transform and coefficient signaling | |
CN115136603A (zh) | 用于视频编解码的无损编解码模式 | |
CN115362685A (zh) | 用于视频编解码的无损编解码模式 | |
CN114556932B (zh) | 用于视频编解码的无损编解码模式 | |
CN114342374A (zh) | 使用调色板模式的视频编解码的方法和设备 | |
CN115299047A (zh) | 使用调色板模式的视频编解码的方法和装置 | |
CN115398911A (zh) | 变换与系数信令的方法和装置 | |
CN115714866A (zh) | 残差和系数编解码的方法和装置 |
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 |