CN116569551A - 交叉分量样本自适应偏移中的色度编码增强 - Google Patents
交叉分量样本自适应偏移中的色度编码增强 Download PDFInfo
- Publication number
- CN116569551A CN116569551A CN202180079688.5A CN202180079688A CN116569551A CN 116569551 A CN116569551 A CN 116569551A CN 202180079688 A CN202180079688 A CN 202180079688A CN 116569551 A CN116569551 A CN 116569551A
- Authority
- CN
- China
- Prior art keywords
- component
- samples
- sample
- video
- offset
- 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
- 230000003044 adaptive effect Effects 0.000 title claims description 23
- 238000000034 method Methods 0.000 claims abstract description 80
- 241000023320 Luma <angiosperm> Species 0.000 claims description 81
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical group COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims description 81
- 238000012545 processing Methods 0.000 claims description 53
- 238000003860 storage Methods 0.000 claims description 20
- 238000005259 measurement Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 44
- 230000008569 process Effects 0.000 description 38
- 239000013598 vector Substances 0.000 description 33
- 238000005192 partition Methods 0.000 description 29
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 20
- 239000000872 buffer Substances 0.000 description 20
- 238000013139 quantization Methods 0.000 description 17
- 230000011664 signaling Effects 0.000 description 17
- 238000000638 solvent extraction Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 6
- 238000001914 filtration Methods 0.000 description 5
- 101150114515 CTBS gene Proteins 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 4
- 230000002146 bilateral effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003252 repetitive effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- PLXMOAALOJOTIY-FPTXNFDTSA-N Aesculin Natural products OC[C@@H]1[C@@H](O)[C@H](O)[C@@H](O)[C@H](O)[C@H]1Oc2cc3C=CC(=O)Oc3cc2O PLXMOAALOJOTIY-FPTXNFDTSA-N 0.000 description 2
- 101100520660 Drosophila melanogaster Poc1 gene Proteins 0.000 description 2
- 101100520662 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PBA1 gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000011449 brick Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000001143 conditioned effect Effects 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 101100520663 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ADD66 gene Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种电子设备执行解码视频数据的方法。所述方法包括:从视频信号接收包括第一分量和第二分量的图片帧;基于与第一分量的相应样本相关联的第二分量的一个或多个样本的第一集合确定用于第一分量的分类器;根据所述分类器确定第一分量的所述相应样本的样本偏移;以及基于所确定的样本偏移修改第一分量的所述相应样本的值,其中第一分量和第二分量是色度分量。所述图片帧进一步包括第三分量,并且其中用于第一分量的所述分类器还基于与第一分量的所述相应样本相关联的第三分量的一个或多个样本的第二集合。
Description
相关申请
本申请要求2020年11月30日提交的题为“Cross-component Sample AdaptiveOffset”的第63/119,466号美国临时专利申请和2020年12月7日提交的题为“Cross-component Sample Adaptive Offset”的第63/121,980号美国临时专利申请的优先权,它们通过引用整体地并入本文中。
技术领域
本申请总体上涉及视频编码和压缩,并且更具体地,涉及改进色度编码效率的方法和装置。
背景技术
数字视频由各种电子设备来支持,这些电子设备例如数字电视、膝上型或台式计算机、平板计算机、数字相机、数字记录设备、数字媒体播放器、视频游戏控制台、智能电话、视频电话会议设备、视频流送设备等。电子设备通过实现视频压缩/解压缩标准来传输、接收、编码、解码和/或存储数字视频数据。一些众所周知的视频编解码标准包括:通用视频编解码(VVC)、高效视频编解码(HEVC,也被称为H.265或MPEG-HPart 2)和高级视频编解码(AVC,也被称为H.264或MPEG-4Part 10),它们由ISO/IEC MPEG和ITU-T VCEG联合开发。开放媒体联盟(AOM)开发了AOMedia Video 1(AV1),作为对其先前标准VP9的后继者。指代数字音频和数字视频压缩标准的音频视频编解码(AVS)是由中国音频和视频编解码标准工作组开发的另一个视频压缩标准系列。
视频压缩通常包括执行空间(帧内)预测和/或时间(帧间)预测,以减少或去除视频数据中固有的冗余。对于基于块的视频编解码,视频帧被分区(partition)成一个或多个切片,每个切片具有多个视频块,这些视频块也可以被称为编码树单元CTU。每个CTU可以包含一个编码单元CU,或者递归地被分割(split)成更小的CU,直到达到预定义的最小CU大小。每个CU(也称为叶CU)包含一个或多个变换单元(TU),并且每个CU还包含一个或多个预测单元(PU)。每个CU可以以帧内、帧间或IBC模式编码。视频帧的帧内编码(I)切片中的视频块使用相对于同一视频帧内的相邻块中的参考样本的空间预测而编码。视频帧的帧间编码(P或B)切片中的视频块可以使用相对于同一视频帧内的相邻块中的参考样本的空间预测、或相对于其他先前和/或未来参考视频帧中的参考样本的时间预测。
基于先前已经编码的参考块(例如,相邻块)的空间或时间预测得到了针对待编码的当前视频块的预测性块。找到参考块的过程可以通过块匹配算法完成。表示待编码的当前块与预测性块之间的像素差异的残差数据被称为残差块或预测误差。经帧间编码的块是根据指向形成预测性块的参考帧中的参考块以及残差块的运动矢量编码的。确定运动矢量的过程通常被称为运动估计。经帧内编码的块是根据帧内预测模式和残差块编码的。为了进一步压缩,将残差块从像素域变换到变换域,例如频域,从而得到残差变换系数,所述系数然后可以被量化。初始地以二维数组布置的量化变换系数可以被扫描以产生变换系数的一维矢量,并且然后被熵编码成视频比特流以实现更大的压缩。
然后,经编码的视频比特流被保存在计算机可读存储介质(例如,闪速存储器)中,以便由具有数字视频能力的另一个电子设备访问,或者被有线或无线地直接传输到电子设备。电子设备然后通过例如解析经编码的视频比特流以从所述比特流获得语法元素、并且至少部分地基于从所述比特流获得的语法元素从经编码的视频比特流将数字视频数据重建成其原始格式,来执行视频解压缩(这是与上述视频压缩相反的过程),并且在电子设备的显示器上呈现重建的数字视频数据。
随着数字视频质量从高清晰度发展到4Kx2K或甚至8Kx4K,待编码/解码的视频数据的量呈指数级增长。就如何在维持经解码的视频数据的图像质量的同时更高效地编码/解码视频数据而言,这是持续的挑战。
发明内容
本申请描述了与视频数据编码和解码相关的实现方式,并且更特别地,涉及改进色度编码的编码效率(包括通过探索亮度和色度分量之间的交叉分量关系来改进编码效率)的方法和装置。
根据本申请的第一方面,解码视频信号的方法包括:从视频信号接收包括第一分量和第二分量的图片帧;基于与第一分量的相应样本相关联的第二分量的一个或多个样本的第一集合来确定用于第一分量的分类器;根据所述分类器来确定第一分量的所述相应样本的样本偏移;以及基于所确定的样本偏移来修改第一分量的所述相应样本的值,其中第一分量和第二分量是色度分量。
在一些实施例中,所述图片帧进一步包括第三分量,并且用于第一分量的所述分类器还基于与第一分量的所述相应样本相关联的第三分量的一个或多个样本的第二集合,其中第三分量是亮度分量。
根据本申请的第二方面,一种电子设备包括一个或多个处理单元、存储器、以及存储在所述存储器中的多个程序。所述程序当由所述一个或多个处理单元执行时使得所述电子设备执行如上所描述的编解码视频数据的方法。
根据本申请的第三方面,一种非暂时性计算机可读存储介质,存储有多个程序以供具有一个或多个处理单元的电子设备来执行。所述程序当由所述一个或多个处理单元执行时使得所述电子设备执行如上所描述的编解码视频数据的方法。
附图说明
被包括以提供对实现方式的进一步理解并且被并入本文中并构成说明书的一部分的附图图示了所描述的实现方式,并且与本描述一起用于解释基本原理。相似的附图标记指代对应的部分。
图1是图示了根据本公开的一些实现方式的示例性视频编解码和解码系统的框图。
图2是图示了根据本公开的一些实现方式的示例性视频编码器的框图。
图3是图示了根据本公开的一些实现方式的示例性视频解码器的框图。
图4A至4E是图示了根据本公开的一些实现方式如何将帧递归地分区成不同大小和形状的多个视频块的框图。
图5是描绘了根据本公开的一些实现方式的在样本自适应偏移(SAO)中使用的四个梯度模式的框图。
图6A是图示了根据本公开的一些实现方式的交叉分量样本自适应偏移(CCSAO)的系统和过程的框图。
图6B是图示了根据本公开的一些实现方式的与AVS标准中的增强型样本自适应偏移(ESAO)并行地应用的CCSAO的系统和过程的框图。
图6C是图示了根据本公开的一些实现方式的在SAO之后应用的CCSAO的系统和过程的框图。
图6D是图示了根据本公开的一些实现方式的与交叉分量自适应环路滤波器(CCALF)并行地应用的CCSAO的系统和过程的框图。
图7是图示了根据本公开的一些实现方式的使用CCSAO的样本过程的框图。
图8是根据本公开的一些实现方式的图示了CCSAO过程与垂直和水平去块滤波器(DBF)交错的框图。
图9是图示了根据本公开的一些实现方式的使用交叉分量相关性来解码视频信号的示例性过程的流程图。
图10A是示出了根据本公开的一些实现方式的使用不同亮度样本位置来进行分类的分类器的框图。
图10B图示了根据本公开的一些实现方式的亮度候选的不同形状的一些示例。
图11是根据本公开的一些实现方式的样本过程的框图,其图示了除了亮度之外,其他交叉分量同位和相邻色度样本也被馈送到CCSAO分类中。
图12图示了根据本公开的一些实现方式的通过利用通过对同位和相邻亮度样本进行加权而获得的值来替换同位亮度样本值的示例性分类器。
图13A是根据本公开的一些实现方式的框图,其图示了如果用于分类的同位和相邻亮度样本中的任一个在当前图片之外,则CCSAO不被应用在当前色度样本上。
图13B是根据本公开的一些实现方式的框图,其图示了如果用于分类的同位和相邻亮度样本中的任一个在当前图片之外,则CCSAO被应用在当前色度样本上。
图14是根据本公开的一些实现方式的框图,其图示了如果用于分类的对应的所选同位或相邻亮度样本在由虚拟边界(VB)定义的虚拟空间之外,则CCSAO不被应用在当前色度样本上。
图15示出了根据本公开的一些实现方式,在虚拟边界之外的亮度样本上应用重复性或镜像填充。
图16示出了根据本公开的一些实现方式,如果所有9个同位的相邻亮度样本用于分类,则需要附加的1个亮度线缓冲器。
图17示出了根据本公开的一些实现方式,跨越VB的9个亮度候选CCSAO可以增加2个附加的亮度线缓冲器的AVS中的图示。
图18示出了根据本公开的一些实现方式,跨越VB的9个亮度候选CCSAO可以增加1个附加的亮度线缓冲器的VVC中的图示。
图19A-19C示出了根据本公开的一些实现方式,在AVS和VVC中,如果色度样本的亮度候选中的任一个跨越VB(在当前色度样本VB之外),则针对色度样本禁用CCSAO。
图20A-20C示出了根据本公开的一些实现方式,在AVS和VVC中,如果色度样本的亮度候选中的任一个跨越VB(在当前色度样本VB之外),则针对色度样本使用重复性填充来启用CCSAO。
图21A-21C示出了根据本公开的一些实现方式,在AVS和VVC中,如果色度样本的亮度候选中的任一个跨越VB(在当前色度样本VB之外),则针对色度样本使用镜像填充来启用CCSAO。
图22A-22B示出了根据本公开的一些实现方式,针对不同的CCSAO样本形状使用双侧对称性填充来启用CCSAO。
图23示出了根据本公开的一些实现方式的使用有限数量的亮度候选来进行分类的限制。
图24示出了根据本公开的一些实现方式,CCSAO应用区域不与编码树块(CTB)/编码树单元(CTU)边界对齐。
图25示出了根据本公开的一些实现方式,可以利用CCSAO参数来固定CCSAO应用区域帧分区。
图26示出了根据本公开的一些实现方式,CCSAO应用区域可以是来自帧/切片/CTB级别的二叉树(BT)/四叉树(QT)/三叉树(TT)分割。
图27是图示了根据本公开的一些实现方式的在图片帧内的不同级别处使用和切换的多个分类器的框图。
图28是根据本公开的一些实现方式的框图,其图示了CCSAO应用区域分区可以是动态的并且在图片级别中被切换。
图29是根据本公开的一些实现方式的框图,其图示了本公开中公开的SAO分类方法用作后预测滤波器。
图30是根据本公开的一些实现方式的框图,其图示了针对后预测SAO滤波器,每个分量可以使用当前和相邻样本来进行分类。
图31是图示了根据本公开的一些实现方式的使用交叉分量相关性来解码视频信号的示例性过程的流程图。
具体实施方式
现在将详细地参考具体实现方式,其示例在附图中图示。在以下详细描述中,阐述了许多非限制性的具体细节,以便帮助理解本文中呈现的主题。但是对于本领域的普通技术人员来说将明显的是,在不脱离权利要求的范围的情况下,可以使用各种替代方案,并且可以在没有这些具体细节的情况下实践本主题。例如,对于本领域的普通技术人员来说将明显的是,本文中呈现的主题可以在具有数字视频能力的许多类型的电子设备上实现。
第一代AVS标准包括中国国家标准“信息技术高级音频视频编解码第2部分:视频”(被称为AVS1)和“信息技术高级音频视频编解码第16部分:无线电电视视频”(被称为AVS+)。与MPEG-2标准相比,它可以在相同的感知质量下节省大约50%的比特率。第二代AVS标准包括中国国家标准“信息技术高效多媒体编解码”系列(被称为AVS2),其主要针对超HDTV节目的传输。AVS2的编解码效率是AVS+的编解码效率的两倍。同时,AVS2标准视频部分由电气和电子工程师协会(IEEE)提交,作为一个国际应用标准。AVS3标准是用于UHD视频应用的新一代视频编解码标准,其旨在超过最新的国际标准HEVC的编解码效率,该标准相比于HEVC标准提供了近似30%的比特率节省。在2019年3月,在第68届AVS会议上,AVS3-P2基线完成,其相比于HEVC标准提供了近似30%的比特率节省。当前,被称为高性能模型(HPM)的一个参考软件由AVS工作组来维护,用于演示AVS3标准的参考实现方式。如HEVC那样,AVS3标准是构建在基于块的混合视频编解码框架上的。
图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。随后,目的设备14可以经由输入接口28访问存储设备32中的经编码的视频数据。存储设备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第10部分、高级视频编解码(AVC)、AVS、或这样的标准的扩展。应当理解的是,本申请不限于特定的视频编码/解码标准,并且可以适用于其他视频编码/解码标准。通常预期的是,源设备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以用于视频块重建。诸如去块(deblocking)滤波器之类的环路内滤波器63可以定位在加法器62和DPB 64之间,以对块边界进行滤波,从而从重建的视频中去除块效应伪像。除了去块滤波器之外,还可以使用另一个环路内滤波器63来对加法器62的输出进行滤波。在经重建的CU被放入参考图片存储库中并用作编码未来视频块的参考之前,可以在其上应用进一步的环路内滤波63,诸如样本自适应偏移(SAO)和自适应环路内滤波器(ALF)。视频编码器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的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)中选择的参考帧的预测性块的位置进行比较来计算帧间预测编码帧中的视频块的PU的运动矢量,第一参考帧列表或第二参考帧列表中的每一个标识存储在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可以从存储在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,所述编码图片缓冲器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生成的对应预测性块进行求和来重建当前视频块的经解码的视频块。环路内滤波器91可以定位在加法器90和DPB 92之间,以进一步处理经解码的视频块。在经重建的CU被放入参考图片存储库中之前,可以在其上应用环路内滤波91,诸如去块滤波器、样本自适应偏移(SAO)和自适应环路内滤波器(ALF)。然后,给定帧中的经解码的视频块被存储在DPB 92中,所述DPB 92存储用于接下来的视频块的后续运动补偿的参考帧。DPB 92或与DPB92分离的存储器设备也可以存储经解码的视频以供稍后在显示设备(诸如,图1的显示设备34)上呈现。
在典型的视频编解码过程中,视频序列通常包括一组有序的帧或图片。每个帧可以包括三个样本数组,被表示为SL、SCb和SCr。SL是亮度样本的二维数组。SCb是Cb色度样本的二维数组。SCr是Cr色度样本的二维数组。在其他实例中,帧可以是单色的,并且因此仅包括亮度样本的一个二维数组。
如HEVC那样,AVS3标准是构建在基于块的混合视频编解码框架上的。输入视频信号被逐块地处理(被称为编码单元(CU))。与仅基于四叉树对块进行分区的HEVC不同,在AVS3中,一个编码树单元(CTU)基于四叉/二叉/扩展四叉树被分割成CU,以适应于变化的局部特性。此外,HEVC中的多分区单元类型的概念被移除,即,在AVS3中不存在CU、预测单元(PU)和变换单元(TU)的分离。取而代之,每个CU始终被用作用于预测和变换两者的基本单元,而无需进一步的分区。在AVS3的树分区结构中,一个CTU首先基于四叉树结构被分区。然后,每个四叉树叶节点可以基于二叉和扩展四叉树结构被进一步分区。
如图4A中所示,视频编码器20(或更具体地,分区单元45)通过首先将帧分区成一组编码树单元CTU来生成所述帧的经编码的表示。视频帧可以包括整数数量的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和440均按照块大小被进一步划分成4个8×8的CU。图4D绘制了一种四叉树数据结构,所述结构图示了如图4C中绘制的CTU 400的分区过程的最终结果,四叉树的每个叶节点对应于一个CU,所述CU具有范围从32×32到8×8的相应大小。类似于图4B中绘制的CTU,每个CU可以包括相同大小的帧的亮度样本的编码块CB和色度样本的两个对应的编码块、以及用于对编码块的样本进行编码的语法元素。在单色图片或具有三个单独的颜色平面的图片中,CU可以包括单个编码块、以及用于对编码块的样本进行编码的语法结构。应当注意的是,图4C和4D中绘制的四叉树分区仅仅是为了图示的目的,并且一个CTU可以基于四叉/三叉/二叉树分区被分割成CU以适应于变化的局部特性。在多类型树结构中,一个CTU通过四叉树结构来分区,并且每个四叉树的叶CU可以进一步通过二叉和三叉树结构来分区。如图4E中所示,在AVS3中存在五种分割/分区类型,即四元分区、水平二元分区、垂直二元分区、水平扩展四叉树分区和垂直扩展四叉树分区。
在一些实现方式中,视频编码器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的预测性亮度块之一中的亮度样本与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可以重建所述帧。
SAO是基于编码器所传输的查找表中的值在应用去块滤波器之后通过有条件地向每个样本添加偏移值来修改经解码的样本的过程。SAO滤波在区域基础上、基于由语法元素sao-type-idx按每个CTB选择的滤波类型被执行。sao-type-idx的值0指示SAO滤波器不被应用于CTB,并且值1和2分别发信令通知对带偏移和边缘偏移滤波类型的使用。在由等于1的sao-type-idx指定的带偏移模式下,所选偏移值直接取决于样本幅度。在这种模式中,整个样本幅度范围被均匀地分割成32个被称为带的段,并且属于这些带中的四个(在32个带内是连续的)的样本值通过添加被表示为带偏移的传输值来修改,该带偏移可以是正的或负的。使用四个连续的带的主要原因是:在其中可能出现带状伪像(banding artifact)的平滑区域中,CTB中的样本幅度往往仅集中在几个带中。此外,使用四个偏移的设计选择与也使用四个偏移值的边缘偏移操作模式是统一的。在由等于2的sao-type-idx指定的边缘偏移模式中,具有从0到3的值的语法元素sao-eo-class发信令通知水平、垂直、或两个对角梯度方向中的一个被用于CTB中的边缘偏移分类。
图5是根据本公开的一些实现方式的描绘了在SAO中使用的四个梯度模式的框图。四个梯度模式502、504、506和508用于边缘偏移模式中的相应sao-eo-class。标记为“p”的样本指示要考虑的中心样本。标记为“n0”和“n1”的两个样本指定了沿着(a)水平(sao-eo-class=0)、(b)垂直(sao-eo-class=1)、(c)135°对角线(sao-eo-class=2)和(d)45°(sao-eo-class=3)梯度模式的两个相邻样本。如图5中所示,通过将位于某个位置处的样本值p与位于相邻位置处的两个样本的值n0和n1进行比较,CTB中的每个样本被分类成五个EdgeIdx类别之一。这个分类是基于经解码的样本值针对每个样本进行的,因此对于EdgeIdx分类不需要附加的信令。取决于样本位置处的EdgeIdx类别,对于从1到4的EdgeIdx类别,来自所传输的查找表的偏移值被添加到样本值。偏移值对于类别1和类别2始终为正,并且对于类别3和类别4始终为负。因此,滤波器通常在边缘偏移模式中具有平滑效果。下表1说明了SAO边缘类中的样本EdgeIdx类别。
EdgeIdx | 条件 | 含义 |
0 | 下面未列出的情况 | 单调区域 |
1 | P<n0且p<n1 | 局部最小值 |
2 | P<n0且p=n1或者P<n1且p=n0 | 边缘 |
3 | P>no且p=n1或者P>n1且p=no | 边缘 |
4 | P>no且p>n1 | 局部最大值 |
表1:SAO边缘类中的样本EdgeIdx类别。
对于SAO类型1和2,针对每个CTB的总共四个幅度偏移值被传输到解码器。对于类型1,符号也被编码。偏移值和相关语法元素(诸如Sao-type-idx和Sao-eo-class)由编码器通常使用对速率-失真性能进行优化的标准来决定。可以使用合并标志来指示SAO参数是从左边或上方CTB继承的,以使信令高效。总之,SAO是一种非线性滤波操作(其允许对重建信号进行附加细化),并且它可以增强平滑区域中和边缘周围的信号表示。
在一些实施例中,本文中公开了通过引入交叉分量信息来改进编码效率或降低样本自适应偏移(SAO)复杂性的方法和系统。SAO被用于HEVC、VVC、AVS2和AVS3标准中。尽管HEVC、VVC、AVS2和AVS3标准中的现有SAO设计在以下描述中被用作基本SAO方法,但是对于视频编解码领域的技术人员来说,本公开中描述的交叉分量方法也可以应用于具有类似设计精神的其他环路滤波器设计或其他编码工具。例如,在AVS3标准中,SAO由被称为增强型样本自适应偏移(ESAO)的编码工具所替换。然而,本文中公开的CCSAO也可以与ESAO并行地应用。在另一个示例中,CCSAO可以与AV1标准中的约束定向增强滤波器(CDEF)并行地应用。
对于HEVC、VVC、AVS2和AVS3标准中的现有SAO设计,亮度Y、色度Cb和色度Cr样本偏移值是独立地决定的。也就是说,例如,当前色度样本偏移仅由当前和相邻色度样本值来决定,而不考虑同位或相邻亮度样本。然而,亮度样本比色度样本保留更多的原始图片细节信息,并且它们可以有利于决定当前色度样本偏移。此外,由于色度样本通常在从RGB到YCbCr的色彩转换之后或者在量化和去块滤波器之后丢失高频细节,所以引入具有针对色度偏移决策保留的高频细节的亮度样本可以有益于色度样本重建。因此,通过探索交叉分量相关性、例如通过使用交叉分量样本自适应偏移(CCSAO)的方法和系统,可以预期进一步的增益。
图6A是图示了根据本公开的一些实现方式的CCSAO的系统和过程的框图。在亮度去块滤波器(DBF Y)之后的亮度样本被用于确定SAO Cb和SAO Cr之后的色度Cb和Cr的附加偏移。例如,首先使用同位亮度样本604和相邻(白色)亮度样本606对当前色度样本602进行分类,并且将对应类的对应CCSAO偏移值添加到当前色度样本值。
在一些实施例中,CCSAO还可以与其他编码工具(例如AVS标准中的ESAO、或AV1标准中的CDEF)并行地应用。图6B是图示了根据本公开的一些实现方式的与AVS标准中的ESAO并行地应用的CCSAO的系统和过程的框图。
图6C是图示了根据本公开的一些实现方式的在SAO之后应用的CCSAO的系统和过程的框图。在一些实施例中,图6C示出了CCSAO的位置可以在SAO之后,即VVC标准中的交叉分量自适应环路滤波器CCALF的位置。在一些实施例中,SAO Y/Cb/Cr可以由例如AVS3标准中的ESAO来替换。
图6D是图示了根据本公开的一些实现方式的与CCALF并行地应用的CCSAO的系统和过程的框图。在一些实施例中,图6D示出了CCSAO可以与CCALF并行地应用。在一些实施例中,在图6D中,CCALF和CCSAO的位置可以交换。在一些实施例中,在图6A至图6D中,或者遍及本公开,SAO Y/Cb/Cr块可以由ESAO Y/Cb/Cr(在AVS3中)或者CDEF(在AV1中)来替换。
在一些实施例中,当前色度样本分类重复使用同位亮度样本的SAO类型(EO或BO)、类和类别。对应的CCSAO偏移可以被发信令通知或者从解码器本身中导出。例如,令h_Y是同位亮度SAO偏移,h_Cb和h_Cr分别是CCSAO Cb和Cr偏移。h_Cb(或h_Cr)=w*h_Y,其中w可以在有限表中被选择。例如,+-1/4、+-1/2、0、+-1、+-2、+-4…等等,其中|w|仅包括2的幂的值。
在一些实施例中,使用同位亮度样本(Y0)和相邻8个亮度样本的比较得分[-8,8],这总共产生17个类。
初始类=0
循环通过相邻8个亮度样本(Yi,i=1至8)
如果 Y0>Yi 类+=1
否则如果 Y0<Yi 类-=1。
在一些实施例中,可以组合上述分类方法。例如,使用与SAO BO(32个带分类)组合的比较得分来增加多样性,这总共产生了17*32个类。在一些实施例中,Cb和Cr可以使用相同的类来降低复杂度或者节省比特。
图7是图示了根据本公开的一些实现方式的使用CCSAO的样本过程的框图。具体地,图7示出了CCSAO的输入可以引入垂直和水平DBF的输入,以简化类确定,或者增加灵活性。例如,让Y0_DBF_V、Y0_DBF_H和Y0分别是DBF_V、DBF_H和SAO的输入处的同位亮度样本。Yi_DBF_V、Yi_DBF_H和Yi分别是DBF_V、DBF_H和SAO的输入处的相邻8个亮度样本,其中i=1至8。
Max Y0=max(Y0_DBF_V,Y0_DBF_H,Y0_DBF)
Max Yi=max(Yi_DBF_V,Yi_DBF_H,Yi_DBF)
并且将max Y0和max Yi馈送给CCSAO分类。
图8是根据本公开的一些实现方式的图示了CCSAO过程与垂直和水平DBF交错的框图。在一些实施例中,图6、7和8中的CCSAO块可以是选择性的。例如,将Y0_DBF_V和Yi_DBF_V用于第一CCSAO_V,其应用与图6中相同的样本处理,同时将DBF_V亮度样本的输入用作CCSAO输入。
在一些实施例中,所实现的CCSAO语法在下表2中示出。
表2:CCSAO语法的示例。
在一些实施例中,对于发信令通知CCSAO Cb和Cr偏移值,如果一个附加的色度偏移被发信令通知,则可以通过加号或减号符号或者加权来导出另一个色度分量偏移,以节省比特开销。例如,令h_Cb和h_Cr分别是CCSAO Cb和Cr的偏移。利用显式发信令通知w,其中在|w|候选项有限的情况下w=+-|w|,h_Cr可以从h_Cb中被导出,而无需显式发信令通知h_Cr本身。
h_Cr=w*h_Cb。
图9是根据本公开的一些实现方式的使用交叉分量相关性来解码视频信号的示例性过程900的流程图。
视频解码器30接收包括第一分量和第二分量的视频信号(910)。在一些实施例中,第一分量是视频信号的亮度分量,并且第二分量是视频信号的色度分量。
视频解码器30还接收与第二分量相关联的多个偏移(920)。
然后,视频解码器30利用第一分量的特性测量来获得与第二分量相关联的分类类别(930)。例如,在图6中,首先使用同位亮度样本604和相邻(白色)亮度样本606对当前色度样本602进行分类,并且将对应的CCSAO偏移值添加到当前色度样本。
视频解码器30还根据该分类类别从第二分量的多个偏移中选择第一偏移(940)。
视频解码器30还基于选择的第一偏移修改第二分量(950)。
在一些实施例中,利用第一分量的特性测量来获得与第二分量相关联的分类类别(930)包括:利用第一分量的相应样本来获得第二分量的相应每个样本的相应分类类别,其中第一分量的相应样本是对于第二分量的相应每个样本的第一分量的相应同位样本。例如,当前色度样本分类重复使用同位亮度样本的SAO类型(EO或BO)、类和类别。
在一些实施例中,利用第一分量的特性测量来获得与第二分量相关联的分类类别(930)包括:利用第一分量的相应样本来获得第二分量的相应每个样本的相应分类类别,其中第一分量的相应样本在去块之前被重建,或者在去块之后被重建。在一些实施例中,第一分量在去块滤波器(DBF)处被去块。在一些实施例中,第一分量在亮度去块滤波器(DBF Y)处被去块。例如,替代于图6或7,CCSAO输入也可以在DBF Y之前。
在一些实施例中,特性测量是通过将第一分量的样本值的范围划分成若干个带并且基于第一分量中的样本的强度值来选择带被导出的。在一些实施例中,特性测量是从带偏移(BO)被导出的。
在一些实施例中,特性测量是基于第一分量中的样本的边缘信息的方向和强度被导出的。在一些实施例中,特性测量是从边缘偏移(EO)被导出的。
在一些实施例中,修改第二分量(950)包括将选择的第一偏移直接添加到第二分量。例如,对应的CCSAO偏移值被添加到当前色度分量样本。
在一些实施例中,修改第二分量(950)包括将选择的第一偏移映射到第二偏移,并且将所映射的第二偏移添加到第二分量。例如,对于发信令通知CCSAO Cb和Cr偏移值,如果一个附加色度偏移被发信令通知,则可以通过使用加号或减号符号或者加权来导出另一个色度分量偏移,以节省比特开销。
在一些实施例中,接收视频信号(910)包括接收语法元素,该语法元素指示使用CCSAO来解码视频信号的方法是否针对序列参数集(SPS)中的视频信号被启用。在一些实施例中,cc_sao_enabled_fl ag指示CCSAO是否在序列级别中被启用。
在一些实施例中,接收视频信号(910)包括接收语法元素,该语法元素指示使用CCSAO来解码视频信号的方法是否在切片级别上针对第二分量被启用。在一些实施例中,slice_cc_sao_cb_flag或slice_cc_sao_cr_flag指示CCSAO是否在Cb或Cr的相应切片中被启用。
在一些实施例中,接收与第二分量相关联的多个偏移(920)包括接收针对不同编码树单元(CTU)的不同偏移。在一些实施例中,对于CTU,cc_sao_offset_sign_flag指示偏移的符号,并且cc_sao_offset_abs指示当前CTU的CCSAO Cb和Cr偏移值。
在一些实施例中,接收与第二分量相关联的多个偏移(920)包括接收语法元素,该语法元素指示CTU的接收到的偏移是否与CTU的相邻CTU之一的偏移相同,其中相邻CTU是左边或顶部的相邻CTU。例如,cc_sao_merge_up_flag指示CCSAO偏移是从左边CTU还是从上部CTU被合并的。
在一些实施例中,视频信号进一步包括第三分量,并且使用CCSAO来解码视频信号的方法进一步包括:接收与第三分量相关联的第二多个偏移;利用第一分量的特性测量来获得与第三分量相关联的第二分类类别;根据第二分类类别从第三分量的第二多个偏移中选择第三偏移;以及基于选择的第三偏移来修改第三分量。
图11是根据本公开的一些实现方式的样本过程的框图,其图示了除了亮度之外,其他交叉分量同位色度样本(1102)和相邻(白色)色度样本也被馈送到CCSAO分类中。图6A、6B和图11示出了CCSAO分类的输入。在图11中,当前色度样本是1104,交叉分量同位色度样本是1102,并且同位亮度样本是1106。
在一些实施例中,分类器示例(C0)使用同位亮度样本值(Y0)来进行分类。令band_num是亮度动态范围的同等划分的带的数量,并且bit_depth是序列位深度,则当前色度样本的类索引是:
Class(C0)=(Y0*band_num)>>bit_depth。
在一些实施例中,该分类考虑了舍入,例如:
Class(C0)=((Y0*band_num)+(1<<bit_depth))>>bit_depth。
下表3中列出了一些band_num和bit_depth示例。表3示出了当带的数量针对每一个分类示例不同时的三个分类示例。
表3:针对每个类索引的示例性band_num和bit_depth。
在一些实施例中,分类器使用不同的亮度样本位置来进行C0分类。图10A是示出了根据本公开的一些实现方式的使用不同亮度样本位置来进行C0分类的分类器的框图,例如使用相邻Y7而不是Y0来进行C0分类。
在一些实施例中,不同的分类器可以在序列参数集(SPS)/自适应参数集(APS)/图片参数集(PPS)/图片首部(PH)/切片首部(SH)/编码树单元(CTU)/编码单元(CU)级别中被切换。例如,在图10中,针对POC0使用Y0,但是针对POC1使用Y7,如下表4中所示。
POC | 分类器 | C0 band_num | 总计的类 |
0 | 使用Y0位置的C0 | 8 | 8 |
1 | 使用Y7位置的C0 | 8 | 8 |
表4:不同的分类器被应用于不同的图片。
在一些实施例中,图10B图示了根据本公开的一些实现方式的亮度候选的不同形状的一些示例。例如,可以对形状应用约束。在一些实例中,亮度候选的总数必须是2的幂,如图10B(b)(c)(d)中所示。在一些实例中,亮度候选的数量必须相对于色度样本(在中心)是水平和垂直对称的,如图10B(a)(c)(d)(e)中所示。
在一些实施例中,C0位置和C0 band_num可以在SPS/APS/PPS/PH/SH/CTU/CU级别中被组合和切换。不同的组合可以是不同的分类器,如下表5中所示。
POC | 分类器 | C0 band_num | 总计的类 |
0 | 使用Y0位置的C0 | 16 | 16 |
1 | 使用Y7位置的C0 | 8 | 8 |
表5:不同的分类器和带数量组合被应用于不同的图片。
在一些实施例中,同位亮度样本值(Y0)由通过对同位和相邻亮度样本进行加权而获得的值(Yp)所替换。图12图示了根据本公开的一些实现方式的通过利用通过对同位和相邻亮度样本进行加权而获得的值来替换同位亮度样本值的示例性分类器。同位亮度样本值(Y0)可以由通过对相邻亮度样本进行加权而获得的相位校正值(Yp)所替换。不同的Yp可以是不同的分类器。
在一些实施例中,不同的Yp被应用在不同的色度格式上。例如,在图12中,(a)的Yp被用于420色度格式,(b)的Yp被用于422色度格式,并且Y0被用于444色度格式。
在一些实施例中,另一个分类器(C1)是同位亮度样本(Y0)和相邻8个亮度样本的比较得分[-8,8],这总共产生17个类,如下所示。
初始类(C1)=0,循环通过相邻8个亮度样本(Yi,i=1至8)
如果 Y0>Yi 类+=1
否则如果 Y0<Yi 类-=1。
在一些实施例中,变型(C1′)仅计数比较得分[0,8],并且这产生了8个类。(C1,C1′)是分类器组,并且PH/SH级别标志可以被发信令通知以在C1和C1′之间切换。
初始类别(C1′)=0,循环通过相邻8个亮度样本(Yi,i=1至8)
如果 Y0>Yi 类+=1。
在一些实施例中,不同的分类器被组合以产生通用分类器。例如,对于不同的图片(不同的POC值),应用不同的分类器,如下表6-1中所示。
POC | 分类器 | C0 band_num | 总计的类 |
0 | 组合C0和C1 | 16 | 16*17 |
1 | 组合C0和C1′ | 16 | 16*9 |
2 | 组合C0和C1 | 7 | 7*17 |
表6-1:不同的通用分类器被应用于不同的图片。
在一些实施例中,另一个分类器示例(C3)使用位掩码来进行分类,如表6-2中所示。10位位掩码在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块级别中被发信令通知,以指示分类器。例如,位掩码11 1100 0000意味着对于给定10位亮度样本值,只有最高有效位(MSB):4位被用于分类,并且这总共产生了16个类。另一个示例位掩码10 0100 0001意味着仅3位被用于分类,并且这总共产生了8个类。
在一些实施例中,亮度位置和C3位掩码可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块级别中被组合和切换。不同的组合可以是不同的分类器。
在一些实施例中,可以应用位掩码限制的“1的最大数量”来限制对应的偏移数量。例如,在SPS中将位掩码的“1的最大数量”限制为4,并且这导致该序列中的最大偏移是16。不同POC中的位掩码可以是不同的,但是“1的最大数量”不应超过4(总计的类不应超过16)。“1的最大数量”值可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块级别中被发信令通知和切换。
POC | 分类器 | C3 10位位掩码 | 总计的类 |
0 | 使用Y0位置的C3 | 111100 0000 | 16 |
亮度样本值 | 类索引 | ||
000000 1111 | 0(0000) | ||
101011 0011 | 9(1010) | ||
111100 1001 | 15(1111) | ||
POC | 分类器 | C3 10位位掩码 | 总计的类 |
1 | 使用Y4位置的C3 | 10 0100 0001 | 8 |
亮度样本值 | 类索引 | ||
00 0000 1111 | 1(001) | ||
10 1011 0011 | 5(101) | ||
11 1100 1001 | 7(111) |
表6-2:分类器示例使用位掩码来进行分类(位掩码位置被加下划线)。
在一些实施例中,如图11中所示,其他交叉分量色度样本(例如色度样本1102及其相邻样本)(例如针对当前色度样本1104)也可以被馈送到CCSAO分类中。例如,Cr色度样本可以被馈送到CCSAO Cb分类中。Cb色度样本可以被馈送到CCSAO Cr分类中。交叉分量色度样本的分类器可以与亮度交叉分量分类器相同,或者可以具有其自己的分类器,如本公开中所描述。这两个分类器可以被组合以形成联合分类器来对当前色度样本进行分类。例如,组合了交叉分量亮度和色度样本的联合分类器总共产生了16个类,如下表6-3中所示。
表6-3:使用组合了交叉分量亮度和色度样本的联合分类器的分类器示例(位掩码位置被加下划线)。
上述所有分类(C0、C1、C1′、C2、C3)可以被组合。例如,参见下表6-4。
POC | 分类器 | 总计的类 | ||
0 | 组合C0、C1和C2 | C0 band_num:4 | C2 band_num:4 | 4*17*4 |
1 | 组合C0、C1′和C2 | C0 band_num:6 | C2 band_num:4 | 6*9*4 |
2 | 组合C1和C3 | C3 1的数量:4 | 16*17 |
表6-4:不同分类器被组合。
在一些实施例中,分类器示例(C2)使用同位和相邻亮度样本的差异(Yn)。图12(c)示出了Yn的示例,当位深度为10时,Yn具有[-1024,1023]的动态范围。令C2 band_num是Yn动态范围的同等划分的带的数量,
Class(C2)=(Yn+(1<<bit_depth)*band_num)>>(bit_depth+1)。
在一些实施例中,C0和C2被组合以产生通用分类器。例如,对于不同的图片(不同的POC),应用不同的分类器,如下表7中所示。
POC | 分类器 | C0 band_num | C2 band_num | 总计的类 |
0 | 组合C0和C2 | 16 | 16 | 16*17 |
1 | 组合C0和C2 | 8 | 7 | 8*7 |
表7:不同的通用分类器被应用于不同的图片。
在一些实施例中,所有上述分类器(C0、C1、C1′、C2)被组合。例如,对于不同的图片(不同的POC),应用不同的分类器,如下表8中所示。
POC | 分类器 | C0 band_num | C2 band_num | 总计的类 |
0 | 组合C0、C1和 | 4 | 4 | 4*17*4 |
1 | 组合C0、C1′和C2 | 6 | 4 | 6*9*4 |
表8:不同的通用分类器被应用于不同的图片。
在一些实施例中,在相同的POC中使用多个分类器。当前帧通过若干个区域被划分,并且每个区域使用相同的分类器。例如,在POC0中使用3个不同的分类器,并且使用哪个分类器(0、1或2)在CTU级别中被发信令通知,如下表9中所示。
POC | 分类器 | C0 band_num | 区域 |
0 | 使用Y0位置的C0 | 16 | 0 |
0 | 使用Y0位置的C0 | 8 | 1 |
0 | 使用Y1位置的C0 | 8 | 2 |
表9:不同的通用分类器被应用于相同图片中的不同区域。
在一些实施例中,多个分类器(多个分类器也可以被称为替代偏移集合)的最大数量可以是固定的,或者在SPS/APS/PPS/PH/SH/CTU/CU级别中被发信令通知。在一个示例中,多个分类器的固定(预定义)最大数量是4。在这种情况下,在POC0中使用4个不同的分类器,并且在CTU级别中发信令通知使用哪个分类器(0、1或2)。截断一元(TU)码可以被用来指示用于每个色度CTB的分类器。例如,如下表10中所示,当TU码为0时:不应用CCSAO;当TU码为10时;应用集合0;当TU码为110时,应用集合1;当TU码为1110时,应用集合2;当TU码为1111时:应用集合3。固定长度码、golomb-rice码和指数golomb码也可以被用来指示用于CTB的分类器(偏移集合索引)。在POC1中使用了3个不同的分类器。
POC | 分类器 | C0 band_num | 区域 | TU码 |
0 | 使用Y3位置的C0 | 6 | 0 | 10 |
0 | 使用Y3位置的C0 | 7 | 1 | 110 |
0 | 使用Y1位置的C0 | 3 | 2 | 1110 |
0 | 使用Y6位置的C0 | 6 | 3 | 1111 |
1 | 使用Y0位置的C0 | 16 | 0 | 10 |
1 | 使用Y0位置的C0 | 8 | 1 | 110 |
1 | 使用Y1位置的C0 | 8 | 2 | 1110 |
表10:截断一元(TU)码被用来指示用于每个色度CTB的分类器。
针对1280x720序列POC0给出了Cb和Cr CTB偏移集合索引的示例(如果CTU大小为128x128,则帧中的CTU的数量是10×6)。POC0 Cb使用4个偏移集合,并且Cr使用1个偏移集合。如下表11中所示,当偏移集合索引为0时:不应用CCSAO;当偏移集合索引为1时;应用集合0;当偏移集合索引为2时;应用集合1;当偏移集合索引为3时;应用集合2;当偏移集合索引为4时:应用集合3。“Type(类型)”意指所选同位亮度样本(Yi)的位置。不同的偏移集合可以具有不同的类型、band_num和对应的偏移。
表11:针对1280x720序列POC0给出了Cb和Cr CTB偏移集合索引的示例(如果CTU大小为128x128,则帧中的CTU的数量是10×6)。
在一些实施例中,最大band_num可以是固定的,或者在SPS/APS/PPS/PH/SH/CTU/CU级别中被发信令通知。例如,在解码器中固定max band_num=16,并且针对每一帧,发信令通知4个位来指示帧中的C0 band_num。下面在表12中列出了其他一些最大band_num示例。
Band_num_min | Band_num_max | Band_num bit |
1 | 1 | 0 |
1 | 2 | 1 |
1 | 4 | 2 |
1 | 8 | 3 |
1 | 16 | 4 |
1 | 32 | 5 |
1 | 64 | 6 |
1 | 128 | 7 |
1 | 256 | 8 |
表12:最大band_num和band_num位示例。
在一些实施例中,可以在C0分类上应用限制,例如将band_num限制为仅2的幂的值。代替于显式地发信令通知band_num,而是发信令通知语法band_num_shift。解码器可以使用移位操作来避免乘法。
Class(C0)=(Y0>>band_num_shift)>>bit_depth。
另一个操作示例是考虑舍入以减少误差。
Class(C0)=((Y0+(1<<(band_num_shift-1)))>>band_num_shift)>>bit_depth。
例如,如果band_num_max是16,则可能的band_num_shift候选是0、1、2、3、4,对应于band_num=1、2、4、8、16,如表13中所示。
POC | 分类器 | C0 band_num_shift | C0 band_num | 总计的类 |
0 | 使用Y0位置的C0 | 4 | 16 | 16 |
1 | 使用Y7位置的C0 | 3 | 8 | 8 |
Band_num_max | 有效band_num | Band_num_shift候选 |
1 | 1 | 0 |
2 | 1,2 | 0,1 |
4 | 1,2,4 | 0,1,2 |
8 | 1,2,4,8 | 0,1,2,3 |
16 | 1,2,4,8,16 | 0,1,2,3,4 |
32 | 1,2,4,8,16,32 | 0,1,2,3,4,5 |
64 | 1,2,4,8,16,32,64 | 0,1,2,3,4,5,6 |
128 | 1,2,4,8,16,32,64,128 | 0,1,2,3,4,5,6,7 |
256 | 1,2,4,8,16,32,64,128,256 | 0,1,2,3,4,5,6,7,8 |
表13:Band_num和对应的band_num_shift候选。
在一些实施例中,被应用于Cb和Cr的分类器是不同的。针对所有类的Cb和Cr偏移可以被分离地发信令通知。例如,不同的发信令通知的偏移被应用于不同的色度分量,如下表14中所示。
POC | 分量 | 分类器 | C0 | 总计的类 | 发信令通知的偏移 |
0 | Cb | C0 | 16 | 16 | 16 |
0 | Cr | C0 | 5 | 5 | 5 |
表14:针对所有类的Cb和Cr偏移可以被分离地发信令通知。
在一些实施例中,最大偏移值是固定的,或者在序列参数集(SPS)/自适应参数集(APS)/图片参数集(PPS)/图片首部(PH)/切片首部(SH)中被发信令通知。例如,最大偏移在[-15,15]之间。
在一些实施例中,偏移信令可以使用差分脉冲编码调制(DPCM)。例如,偏移{3,3,2,1,-1}可以被发信令通知为{3,0,-1,-1,-2}。
在一些实施例中,偏移可以被存储在APS或存储器缓冲器中,以供下一个图片/切片重复使用。索引可以被发信令通知,以指示哪些所存储的先前帧偏移被用于当前图片。
在一些实施例中,Cb和Cr的分类器是相同的。例如,针对所有类的Cb和Cr偏移可以被联合地发信令通知,例如,如下表15中所示。
POC | 分量 | 分类器 | C0 | 总计的类 | 发信令通知的偏移 |
0 | Cb和Cr | C0 | 8 | 8 | 8 |
表15:针对所有类的Cb和Cr偏移可以被联合地发信令通知。
在一些实施例中,Cb和Cr的分类器可以是相同的。针对所有类的Cb和Cr偏移可以与符号标志差异一起被联合地发信令通知,例如,如下表16中所示。根据表16,当Cb偏移为(3,3,2,-1)时,所导出的Cr偏移为(-3,-3,-2,1)。
表16:针对所有类的Cb和Cr偏移可以与符号标志差异一起被联合地发信令通知。
在一些实施例中,可以针对每个类发信令通知符号标志。例如,如下表17中所示。根据表17,当Cb偏移为(3,3,2,-1)时,根据相应的带符号标志,导出的Cr偏移为(-3,3,2,1)。
表17:针对所有类的Cb和Cr偏移可以与针对每个类发信令通知的符号标志一起被联合地发信令通知。
在一些实施例中,Cb和Cr的分类器可以是相同的。例如,针对所有类的Cb和Cr偏移可以与权重差异一起被联合地发信令通知,如下表18中所示。权重(w)可以在有限的表中选择,例如,±1/4、±1/2、0、±1、±2、±4…等,其中|w|仅包括2的幂的值。根据表18,当Cb偏移为(3,3,2,-1)时,根据相应的带符号标志,所导出的Cr偏移为(-6,-6,-4,2)。
表18:针对所有类的Cb和Cr偏移可以与权重差异一起被联合地发信令通知。
在一些实施例中,可以针对每个类发信令通知权重。例如,如下表19中所示。根据表19,当Cb偏移为(3,3,2,-1)时,根据相应的带符号标志,所导出的Cr偏移为(-6,12,0,-1)。
表19:针对所有类的Cb和Cr偏移可以与针对每个类发信令通知的权重一起被联合地发信令通知。
在一些实施例中,如果在相同的POC中使用多个分类器,则不同的偏移集合被分离地或联合地发信令通知。
在一些实施例中,可以存储先前解码的偏移,以供未来帧使用。索引可以被发信令通知以指示哪个先前解码的偏移集合被用于当前帧,以减少偏移信令开销。例如,POC0偏移可以由POC2重复使用,其中信令偏移集合idx=0,如下表20中所示。
表20:索引可以被发信令通知以指示哪个先前解码的偏移集合被用于当前帧。
在一些实施例中,针对Cb和Cr的重复使用的偏移集合idx可以是不同的,例如,如下表21中所示。
表21:索引可以被发信令通知以指示哪个先前解码的偏移集合被用于当前帧,并且针对Cb和Cr分量,索引可以是不同的。
在一些实施例中,偏移信令可以使用包括start(起始)和length(长度)的附加语法,以减少信令开销。例如,当band num=256时,仅发信令通知band idx=37~44的偏移。在下面的表22中的示例中,start和length两者的语法是应当与band_num位匹配的8位固定长度码。
表22:偏移信令使用包括start和length的附加语法。
在一些实施例中,如果序列位深度高于10(或某个位深度),则偏移可以在发信令通知之后被量化。在解码器侧上,经解码的偏移在应用它之前被去量化,如下表23中所示。例如,对于12位序列,经解码的偏移按照2被向左移位(去量化)。
表23:经解码的偏移在应用它之前被去量化。
在一些实施例中,偏移可以被计算为CcSaoOffsetVal=(1-2*ccsao_offset_sign_flag)*(ccsao_offset_abs<<(BitDepth-Min(10,BitDepth)))。
在一些实施例中,下面描述了样本处理。令R(x,y)是CCSAO之前的输入色度样本值,R′(x,y)是CCSAO之后的输出色度样本值:
offset=ccsao_offset[R(x,y)的class_index]
R′(x,y)=Clip3(0,(1<<bit_depth)-1,R(x,y)+offset)。
根据上述等式,使用当前图片的所指示分类器对每个色度样本值R(x,y)进行分类。所导出的类索引的对应偏移被添加到每个色度样本值R(x,y)。裁剪函数Clip 3被应用于(R(x,y)+offset)以使输出色度样本值R′(x,y)处于位深度动态范围(例如,范围0到(1<<bit_depth)-1)内。
在一些实施例中,下面描述了边界处理。如果用于分类的同位和相邻亮度样本中的每一个在当前图片之外,则CCSAO不被应用在当前色度样本上。图13A是根据本公开的一些实现方式的框图,其图示了如果用于分类的同位和相邻亮度样本中的任一个在当前图片之外,则CCSAO不被应用在当前色度样本上。例如,在图13A(a)中,如果使用分类器,则CCSAO不被应用在当前图片的左边1列色度分量上。例如,如果使用C1′,则CCSAO不被应用在当前图片的左边1列和顶部1行色度分量上,如图13A(b)所示。
图13B是根据本公开的一些实现方式的框图,其图示了如果用于分类的同位和相邻亮度样本中的任一个在当前图片之外,则CCSAO被应用在当前色度样本上。在一些实施例中,一种变型是,如果用于分类的同位和相邻亮度样本中任一个在当前图片之外,则重复性地使用缺省样本,如图13B(a)中所示,或者对缺省样本进行镜像填充以创建用于分类的样本,如图13B(b)中所示,并且CCSAO可以被应用在当前色度样本上。
图14是根据本公开的一些实现方式的框图,其图示了如果用于分类的对应的所选同位或相邻亮度样本在由虚拟边界定义的虚拟空间之外,则CCSAO不被应用在当前色度样本上。在一些实施例中,虚拟边界(VB)是分隔图片帧内的空间的虚拟线。在一些实施例中,如果在当前帧中应用虚拟边界(VB),则CCSAO不被应用在已经选择了由虚拟边界定义的虚拟空间之外的对应亮度位置的色度样本上。图14示出了具有9个亮度位置候选的C0分类器的虚拟边界的示例。对于每个CTU,CCSAO不被应用在如下色度样本上:针对该色度样本,对应的所选亮度位置在由虚拟边界包围的虚拟空间之外。例如,在图14(a)中,当所选的Y7亮度样本位置在水平虚拟边界1406的另一侧上时,CCSAO不被应用在色度样本1402上,该水平虚拟边界1406被定位成距该帧的底部侧4个像素线。例如,在图14(b)中,当所选的Y5亮度样本位置位于垂直虚拟边界1408的另一侧上时,CCSAO不被应用在色度样本1404上,该垂直虚拟边界1408被定位成距该帧的右侧y个像素线。
图15示出了根据本公开的一些实现方式,可以在虚拟边界之外的亮度样本上应用重复性或镜像填充。图15(a)示出了重复性填充的示例。如果原始Y7被选择为位于VB 1502的底部侧上的分类器,则Y4亮度样本值(而不是原始Y7亮度样本值)被用于分类(复制到Y7位置)。图15(b)示出了镜像填充的示例。如果Y7被选择为位于VB 1504的底部侧上的分类器,则相对于Y0亮度样本与Y7值对称的Y1亮度样本值(而不是原始Y7亮度样本值)被用于分类。填充方法给出了更多色度样本可能性来应用CCSAO,因此可以实现更多的编码增益。
在一些实施例中,可以应用限制来减少CCSAO所需的线缓冲器,并且简化边界处理条件检查。图16示出了根据本公开的一些实现方式,如果所有9个同位的相邻亮度样本用于分类,则可能需要附加的1个亮度线缓冲器,即,当前VB 1602上方的线-5的整个线亮度样本。图10B(a)示出了仅使用6个亮度候选来进行分类的示例,其减少了线缓冲器并且不需要图13A和图13B中的任何附加边界检查。
在一些实施例中,将亮度样本用于CCSAO分类可能会增加亮度线缓冲器,并且因此增加解码器硬件实现成本。图17示出了根据本公开的一些实现方式,跨越VB 1702的9个亮度候选CCSAO可以增加2个附加的亮度线缓冲器的AVS中的图示。对于高于虚拟边界(VB)1702的亮度和色度样本,DBF/SAO/ALF在当前CTU行处被处理。对于VB 1702下面的亮度和色度样本,DBF/SAO/ALF在下一个CTU行处被处理。在AVS解码器硬件设计中,亮度线-4至-1预DBF样本、线-5预SAO样本、以及色度线-3至-1预DBF样本、线-4预SAO样本被存储为线缓冲器,以用于下一个CTU行DBF/SAO/ALF处理。在处理下一个CTU行时,不在线缓冲器中的亮度和色度样本不可用。然而,例如,在色度线-3(b)位置处,色度样本在下一个CTU行处被处理,但是CCSAO需要预SAO亮度样本线-7、-6和-5来进行分类。预SAO亮度样本线-7、-6不在线缓冲器中,因此它们不可用。并且将预SAO亮度样本线-7和-6添加到线缓冲器将增加解码器硬件实现成本。在一些示例中,亮度VB(线-4)和色度VB(线-3)可以是不同的(不被对齐)。
类似于图17,图18示出了根据本公开的一些实现方式,跨越VB 1802的9个亮度候选CCSAO可以增加1个附加的亮度线缓冲器的VVC中的图示。VB在不同的标准中可以是不同的。在VVC中,亮度VB是线-4,并且色度VB是线-2,因此9个候选CCSAO可以增加1个亮度线缓冲器。
在一些实施例中,在第一种解决方案中,如果色度样本的亮度候选中的每一个跨越VB(在当前色度样本VB之外),则针对色度样本禁用CCSAO。图19A-19C示出了根据本公开的一些实现方式,在AVS和VVC中,如果色度样本的亮度候选中的任一个跨越VB 1902(在当前色度样本VB之外),则针对色度样本禁用CCSAO。图14还示出了这种实现方式的一些示例。
在一些实施例中,在第二种解决方案中,针对“跨越VB”的亮度候选,从接近VB的另一侧并且在VB的另一侧上的亮度线(例如,亮度线-4)来针对CCSAO使用重复性填充。图20A-20C示出了根据本公开的一些实现方式,在AVS和VVC中,如果色度样本的亮度候选中的任一个跨越VB 2002(在当前色度样本VB之外),则针对色度样本使用重复性填充来启用CCSAO。图14(a)也示出了这种实现方式的一些示例。
在一些实施例中,在第三种解决方案中,针对“跨越VB”的亮度候选,从亮度VB下面开始针对CCSAO使用镜像填充。图21A-21C示出了根据本公开的一些实现方式,在AVS和VVC中,如果色度样本的亮度候选中的任一个跨越VB 2102(在当前色度样本VB之外),则针对色度样本使用镜像填充来启用CCSAO。图14(b)和13B(b)也示出了这种实现方式的一些示例。
在一些实施例中,在第四种解决方案中,使用“双侧对称性填充”以用于应用CCSAO。图22A-22B示出了示出了根据本公开的一些实现方式,针对不同CCSAO形状的一些示例(例如,9个亮度候选(图22A)和8个亮度候选(图22B))使用双侧对称性填充来启用CCSAO。针对具有色度样本的同位中心亮度样本的亮度样本集,如果亮度样本集的一侧在VB 2202之外,则针对亮度样本集的两侧应用双侧对称性填充。例如,在图22A中,亮度样本Y0、Y1和Y2在VB 2202之外,因此Y0、Y1、Y2和Y6、Y7、Y8两者都使用Y3、Y4、Y5被填充。例如,在图22B中,亮度样本Y0在VB 2202之外,因此使用Y2来填充Y0,并且使用Y5来填充Y7。
填充方法给出了更多色度样本可能性来应用CCSAO,因此可以实现更多的编码增益。
在一些实施例中。在底部图片(或切片、瓦片、砖块(brick))边界CTU行处,VB下方的样本在当前CTU行处被处理,因此上述特殊处理(解决方案1、2、3、4)不被应用在底部图片(或切片、瓦片、砖块)边界CTU行处。例如,1920x1080的帧通过128x128的CTU被划分。一帧包含15x9个CTU(取整)。底部的CTU行是第15个CTU行。解码过程是逐CTU行地进行,并且针对每个CTU行,是逐CTU地进行。需要沿着当前和下一个CTU行之间的水平CTU边界来应用去块。CTB VB被应用于每个CTU行,因为在一个CTU内,在底部4/2亮度/色度线处,DBF样本(VVC情况)在下一个CTU行处被处理,并且不可用于当前CTU行处的CCSAO。然而,在图片帧的底部CTU行处,底部4/2亮度/色度线DBF样本在当前CTU行处是可用的,因为没有剩下下一个CTU行,并且它们在当前CTU行处被DBF处理。
在一些实施例中,可以应用限制来减少CCSAO所需的线缓冲器,并且简化边界处理条件检查,如图16中所解释的。图23示出了根据本公开的一些实现方式的使用有限数量的亮度候选来进行分类的限制。图23(a)示出了仅使用6个亮度候选来进行分类的限制。图23(b)示出了仅使用4个亮度候选来进行分类的限制。
在一些实施例中,实现了应用区域。CCSAO应用区域单元可以是基于CTB的。也就是说,在一个CTB中,开/关控制、CCSAO参数(用于分类的偏移、亮度候选位置、band_num、位掩码等、偏移集合索引)是相同的。
在一些实施例中,应用区域可以不与CTB边界对齐。例如,所应用的区域不与色度CTB边界对齐,而是被移位。语法(开/关控制、CCSAO参数)仍然针对每个CTB被发信令通知,但是真正应用的区域不与CTB边界对齐。图24示出了根据本公开的一些实现方式,CCSAO应用区域不与CTB/CTU边界2406对齐。例如,所应用的区域不与色度CTB/CTU边界2406对齐,而是向左上移位(4,4)个样本至VB 2408。这种不对齐的CTB边界设计有益于去块过程,因为相同的去块参数被用于每个8×8去块过程区域。
在一些实施例中,CCSAO应用区域单元(掩码大小)可以变化(大于或小于CTB大小),如表24中所示。对于不同的分量,掩码大小可以不同。掩码大小可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块级别中被切换。例如,在PH中,一系列掩码开/关标志和偏移集合索引被发信令通知以指示每个CCSAO区域信息。
POC | 分量 | CTB大小 | 掩码大小 |
0 | Cb | 64x64 | 128x128 |
0 | Cr | 64x64 | 32x32 |
1 | Cb | 64x64 | 16x16 |
1 | Cr | 64x64 | 256x256 |
表24:CCSAO应用区域单元(掩码大小)可以变化。
在一些实施例中,CCSAO应用区域帧分区可以是固定的。例如,将帧分区成N个区域。图25示出了根据本公开的一些实现方式,可以利用CCSAO参数来固定CCSAO应用区域帧分区。
在一些实施例中,每个区域可以具有其自己的区域开/关控制标志和CCSAO参数。此外,如果区域大小大于CTB大小,则它可以具有CTB开/关控制标志和区域开/关控制标志两者。图25(a)和(b)示出了将帧分区成N个区域的一些示例。图25(a)示出了4个区域的垂直分区。图25(b)示出了4个区域的正方形分区。在一些实施例中,类似于图片级别CTB全开控制标志(ph_cc_sao_cb_ctb_control_flag/ph_cc_sao_cr_ctb_control_flag),如果区域开/关控制标志为关,则可以进一步发信令通知CTB开/关标志。否则,针对该区域中的所有CTB应用CCSAO,而不进一步发信令通知CTB标志。
在一些实施例中,不同的CCSAO应用区域可以共享相同的区域开/关控制和CCSAO参数。例如,在图25(c)中,区域0~2共享相同的参数,并且区域3~15共享相同的参数。图25(c)还示出了区域开/关控制标志,并且CCSAO参数可以以希尔伯特扫描次序被发信令通知。
在一些实施例中,CCSAO应用区域单元可以是来自图片/切片/CTB级别的四叉树/二叉树/三叉树分割。类似于CTB分割,一系列分割标志被发信令通知以指示CCSAO应用区域分区。图26示出了根据本公开的一些实现方式,CCSAO应用区域可以是来自帧/切片/CTB级别的二叉树(BT)/四叉树(QT)/三叉树(TT)分割。
图27是图示了根据本公开的一些实现方式的在图片帧内的不同级别处使用和切换的多个分类器的框图。在一些实施例中,如果在一个帧中使用多个分类器,则如何应用分类器集合索引的方法可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块级别中被切换。例如,分类器的四个集合在帧中被使用,在PH中被切换,如下表25中所示。图27(a)和(c)示出了默认的固定区域分类器。图27(b)示出了分类器集合索引在掩码/CTB级别中被发信令通知,其中0意指针对该CTB的CCSAO关闭,并且1~4意指集合索引。
POC | |
0 | 正方形分区4个区域(与帧QT分割到最大深度1相同)(a) |
1 | CTB级别切换分类器(b) |
2 | 垂直分区4个区域(c) |
3 | 帧QT分割到最大深度2 |
表25:分类器的四个集合在帧中被使用,在PH中被切换。
在一些实施例中,对于默认区域情况,如果该区域中的CTB不使用默认集合索引(例如,区域级别标志为0),但是使用该帧中的其他分类器集合,则可以发信令通知区域级别标志。例如,如果使用默认集合索引,则区域级别标志为1。例如,在正方形分区4个区域中,使用以下分类器集合,如下表26中所示。
POC | 区域 | 标志 | 使用默认集合索引 |
0 | 1 | 1 | 使用默认集合:1 |
2 | 1 | 使用默认集合:2 | |
3 | 1 | 使用默认集合:3 | |
4 | 0 | CTB切换集合:1至4 |
表26:区域级别标志可以被发信令通知,以示出该区域中的CTB是否不使用默认集合索引。
图28是根据本公开的一些实现方式的框图,其图示了CCSAO应用区域分区可以是动态的并且在图片级别中被切换。例如,图28(a)示出了在该POC中使用3个CCSAO偏移集合(set_num=3),因此图片帧被垂直地分区成3个区域。图28(b)示出了在该POC中使用4个CCSAO偏移集合(set_num=4),因此图片帧被水平地分区成4个区域。图28(c)示出了在该POC中使用3个CCSAO偏移集合(set_num=3),因此图片帧被光栅分区成3个区域。每个区域可以有其自己的区域全开标志,以保存每个CTB的开/关控制位。区域的数量取决于发信令通知的图片set_num。
在一些实施例中,所实现的CCSAO语法在下表27中示出。在AVS3中,术语片块(patch)与切片类似,并且片块首部与切片首部类似。FLC代表固定长度码。TU代表截断一元码。EGk代表具有阶数k的指数golomb码,其中k可以是固定的。
表27:示例性CCSAO语法。
如果较高级别标志为关,则较低级别标志可以从该标志的关状态被推断出,并且不需要被发信令通知。例如,如果ph_cc_sao_cb_flag在该图片中为假,则ph_cc_sao_cb_band_num_minus1、ph_cc_sao_cb_luma_type,cc_sao_cb_offset_sign_flag、cc_sao_cb_offset_abs、ctb_cc_sao_cb_flag、cc_sao_cb_merge_left_flag和cc_sao_cb_merge_up_flag不存在,并且被推断为假。
在一些实施例中,SPS ccsao_enabled_flag以SPS SAO启用标志为条件,如下表28中所示。
sps_sao_enabled_flag | u(1) |
if(sps_sao_enabled_flag&&ChromaArrayType!=0) | |
sps_ccsao_enabled_flag | u(l) |
sps_alf_enabled_flag | u(1) |
if(sps_alf_enabled_flag&&ChromaArrayType!=0) | |
sps_ccalf_enabled_flag | u(1) |
表28:SPS ccsao_enabled_flag以SPS SAO启用标志为条件。
在一些实施例中,ph_cc_sao_cb_ctb_control_flag、ph_cc_sao_cr_ctb_control_flag指示是否启用Cb/Cr CTB开/关控制粒度。如果ph_cc_sao_cb_ctb_control_flag、ph_cc_sao_cr_ctb_control_flag被启用,则可以进一步发信令通知ctb_cc_sao_cb_flag和ctb_cc_sao_cr_flag。否则,在当前图片中是否应用CCSAO取决于ph_cc_sao_cb_flag、ph_cc_sao_cr_flag,而不在CTB级别处进一步发信令通知ctb_cc_sao_cb_flag和ctb_cc_sao_cr_flag。
在一些实施例中,对于ph_cc_sao_cb_type和ph_cc_sao_cr_type,标志可以被进一步发信令通知,以区分中心同位亮度位置(图10中的Y0位置)是否被用于针对色度样本的分类,以减少比特开销。类似地,如果cc_sao_cb_type和cc_sao_cr_type在CTB级别中被发信令通知,则标志可以用相同的机制被进一步发信令通知。例如,如果C0亮度位置候选的数量是9,则cc_sao_cb_type0_flag被进一步发信令通知,以区分中心同位亮度位置是否被使用,如下表29中所示。如果中心同位亮度位置没有被使用,则使用cc_sao_cb_type_idc来指示使用其余8个相邻亮度位置中的哪一个。
表29:cc_sao_cb_type0_flag被发信号通知,以区分中心同位亮度位置是否被使用。
以下的表30示出了在帧中使用单个(set_num=1)或多个(set_num>1)分类器的AVS中的示例。要注意的是,语法表示法可以被映射到上面使用的表示法。
表30:在图片帧中使用单个(set_num=1)或多个(set_num>1)分类器的AVS中的示例。
如果结合图25或图27,其中每个区域具有其自己的集合,则语法示例可以包括区域开/关控制标志(picture_ccsao_lcu_control_flag[compIdx][setIdx]),如下表31中所示。
表31:每个区域具有其自己的集合,并且语法示例可以包括区域开/关控制标志(picture_ccsao_lcu_control_flag[compIdx][setIdx])。
在一些实施例中,下面进一步说明了对帧内和帧间后预测SAO滤波器的扩展。在一些实施例中,本公开中公开的SAO分类方法可以用作后预测滤波器,并且预测可以是帧内、帧间或其他预测工具,诸如帧内块复制。图29是根据本公开的一些实现方式的框图,其图示了本公开中公开的SAO分类方法用作后预测滤波器。
在一些实施例中,针对每个Y、U和V分量,选择对应的分类器。并且针对每个分量预测样本,首先对其进行分类,并且添加对应的偏移。例如,每个分量可以使用当前和相邻样本来进行分类。Y使用当前Y和相邻Y样本,并且U/V使用当前U/V样本来进行分类,如下表32中所示。图30是根据本公开的一些实现方式的框图,其图示了针对后预测SAO滤波器,每个分量可以使用当前和相邻样本来进行分类。
表32:针对每个Y、U和V分量,选择对应的分类器。
在一些实施例中,细化的预测样本(Ypred′,Upred′,Vpred′)通过添加对应的类偏移被更新,并且此后被用于帧内、帧间或其他预测。
Ypred′=clip3(0,(1<<bit_depth)-1,Ypred+h_Y[i])。
Upred′=clip3(0,(1<<bit_depth)-1,Upred+h_U[i])。
Vpred′=clip3(0,(1<<bit_depth)-1,Vpred+h_V[i])。
在一些实施例中,对于色度U和V分量,除了当前色度分量之外,还可以使用交叉分量(Y)用于进一步的偏移分类。例如,附加的交叉分量偏移(h′_U,h′_V)可以被添加在当前分量偏移(h_U,h_V)上,如下表33中所示。
表33:对于色度U和V分量,除了当前色度分量之外,还可以使用交叉分量(Y)用于进一步的偏移分类。
在一些实施例中,细化的预测样本(Upred″,Vpred″)通过添加对应的类偏移被更新,并且此后被用于帧内、帧间或其他预测。
Upred″=clip3(0,(1<<bit_depth)-1,Upred′+h′_U[i])。
Vpred″=clip3(0,(1<<bit_depth)-1,Vpred′+h′_V[i])。
在一些实施例中,帧内和帧间预测可以使用不同的SAO滤波器偏移。
图31是根据本公开的一些实现方式的使用交叉分量相关性来解码视频信号的示例性过程3100的流程图。
视频解码器30(如图3中所示)从视频信号接收包括第一分量和第二分量的图片帧(3110)。
视频解码器30基于与第一分量的相应样本相关联的第二分量的一个或多个样本的第一集合确定用于第一分量的分类器,其中第一分量和第二分量是色度分量(3120)。
视频解码器30根据所述分类器确定第一分量的所述相应样本的样本偏移(3130)。
视频解码器30基于确定的样本偏移修改第一分量的所述相应样本的值(3140)。
在一些实施例中,所述图片帧进一步包括第三分量,并且用于第一分量的所述分类器还基于与第一分量的所述相应样本相关联的第三分量的一个或多个样本的第二集合,其中第三分量是亮度分量(3150)。
在一些实施例中,用于确定所述分类器的与第一分量的所述相应样本相关联的第二分量的一个或多个样本的第一集合和第三分量的一个或多个样本的第二集合的定义在序列参数集(SPS)、自适应参数集(APS)、图片参数集(PPS)、图片首部(PH)、切片首部(SH)、区域、编码树单元(CTU)、编码单元(CU)和子块级别中的一个或多个中被切换。在一些实施例中,与第一分量的所述相应样本相关联的第二分量的一个或多个样本的第一集合和第三分量的一个或多个样本的第二集合的定义包括以下各项中的一个或多个:与第一分量的所述相应样本相关联的定义的相对位置处的第二分量和第三分量的选择的样本、以及分类的方法。
在一些实施例中,基于与第一分量的所述相应样本相关联的第二分量的一个或多个样本的第一集合来确定用于第一分量的分类器(3120)包括:基于与第一分量的所述相应样本相关联的第二分量的一个或多个样本的第一集合的边缘信息的方向和强度来导出特性测量。
在一些实施例中,与第一分量的所述相应样本相关的第二分量的一个或多个样本的第一集合选自相对于第一分量的所述相应样本的第二分量的一个或多个同位和相邻样本。
在一些实施例中,根据所述分类器确定第一分量的所述相应样本的样本偏移(3130)包括:基于与第一分量的所述相应样本相关联的第二分量的一个或多个样本的第一集合,将值的动态范围划分成多个带;以及从对应于从第二分量的所述多个带中选择的带的第一分量的多个样本偏移中选择样本偏移。
在一些实施例中,选择的带是作为Class=(U*band_num)>>bit_depth被获得的,其中band_num是第二分量的动态范围的带的数量,U是第二分量的一个或多个样本的第一集合的强度值,bit_depth是序列位深度,并且Class是第一分量的选择的带的类索引。
在一些实施例中,基于与第一分量的所述相应样本相关联的第二分量的一个或多个样本的第一集合确定用于第一分量的分类器(3120)包括:对相对于第一分量的所述相应样本的第二分量的一个或多个同位和相邻样本进行加权。
在一些实施例中,基于与第一分量的所述相应样本相关联的第二分量的一个或多个样本的第一集合确定用于第一分量的分类器(3120)包括:比较与第一分量的所述相应样本相关联的第二分量的同位样本和相邻样本的值。
在一些实施例中,基于确定的样本偏移修改第一分量的所述相应样本的值(3140)包括:基于所述图片帧的所应用区域内的确定的样本偏移修改第一分量的所述相应样本的值,其中所应用区域的大小不同于编码树块(CTB)的大小。
在一些实施例中,基于确定的样本偏移修改第一分量的所述相应样本的值(3140)包括:基于所述图片帧的所应用区域内的确定的样本偏移修改第一分量的所述相应样本的值,其中当第一分量是第一色度分量时,所应用区域具有第一大小,并且当第一分量是不同于第一色度分量的第二色度分量时,所应用区域具有第二大小。例如,当第一分量是Cb时,所应用区域具有第一大小,并且当第一分量是Cr时,所应用区域具有第二大小。
在一些实施例中,基于确定的样本偏移修改第一分量的所述相应样本的值(3140)包括:基于所述图片帧的所应用区域内的确定的样本偏移修改第一分量的所述相应样本的值,其中所应用区域是来自帧、切片和编码树块(CTB)级别之一的二叉树、四叉树和三叉树分割之一。
在一些实施例中,区域控制标志从所述视频信号被接收,以指示是否存在所应用区域,从而基于区域中的确定的样本偏移修改第一分量的所述相应样本的值。在一些实施例中,当所述区域控制标志为关时,CTB控制标志被接收,以指示是否基于CTB中的确定的样本偏移修改第一分量的所述相应样本的值。在一些实施例中,当所述区域控制标志为开时,CTB控制标志不被接收以指示是否基于CTB中的确定的样本偏移修改第一分量的所述相应样本的值。
在一些实施例中,所述图片帧包括多个所应用区域,并且所述多个所应用区域的子集共享相同的参数,包括区域控制标志。
进一步的实施例还包括上述实施例的各种子集,这些子集在各种其他实施例中被组合或重新排列。
在一个或多个示例中,所描述的功能可以用硬件、软件、固件或其任何组合来实现。如果以软件来实现,这些功能可以作为一个或多个指令或代码被存储在计算机可读介质上或在其上传输,并且由基于硬件的处理单元来执行。计算机可读介质可以包括计算机可读存储介质,所述介质对应于诸如数据存储介质之类的有形介质、或者通信介质,所述通信介质包括例如根据通信协议便于将计算机程序从一个地方传送到另一个地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)有形的非暂时性计算机可读存储介质、或(2)诸如信号或载波之类的通信介质。数据存储介质可以是能够被一个或多个计算机或一个或多个处理器访问以检索用于实现本申请中描述的实现方式的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
在本文中的实现方式的描述中使用的术语仅仅是出于描述特定实现方式的目的,而不是意图限制权利要求的范围。如在实现方式和所附权利要求的描述中使用的那样,单数形式“一(a、and)”、和“所述”也意图包括复数形式,除非上下文清楚地另行指示。还将理解的是,本文中使用的术语“和/或”指代并涵盖一个或多个相关联的所列项目的任何和所有可能的组合。将进一步理解的是,术语“包括”和/或“包含”当在本说明书中使用时指定声明的特征、元件和/或组件的存在,但是不排除一个或多个其他特征、元件、组件和/或其群组的存在或添加。
还将理解的是,尽管术语第一、第二等在本文中可用于描述各种元件,但是这些元件不应当受这些术语限制。这些术语仅用于将一个元件与另一个元件进行区分。例如,在不脱离实现方式的范围的情况下,第一电极可以被称为第二电极,并且类似地,第二电极可以被称为第一电极。第一电极和第二电极两者都是电极,但是它们不是相同的电极。
遍及本说明书对以单数或复数形式的“一个示例”、“一示例”、“示例性示例”等的引用意味着结合示例所描述的一个或多个特定特征、结构或特性被包含在本公开的至少一个示例中。因此,短语“在一个示例中”或“在一示例中”、“在示例性示例中”等在遍及本说明书的各处以单数或复数的出现不一定全部指代同一示例。此外,一个或多个示例中的特定特征、结构或特性可以包括以任何合适的方式被组合。
本申请的描述是出于图示和描述的目的而给出的,并且并不意图是穷尽的或将本发明限于公开的形式。受益于前述描述和相关附图中呈现的教导,许多修改、变化和替代实现方式对于本领域普通技术人员来说将是明显的。选择和描述所述实施例是为了最好地解释本发明的原理、实际应用,并且使得本领域的其他技术人员能够针对各种实现方式来理解本发明,并且最好地利用具有适合于预期的特定用途的各种修改的基本原理和各种实现方式。因此,要理解的是,权利要求的范围不限于公开的实现方式的具体示例,并且修改和其他实现方式意图被包括在所附权利要求的范围内。
Claims (16)
1.一种解码视频信号的方法,包括:
从视频信号接收包括第一分量和第二分量的图片帧;
基于与第一分量的相应样本相关联的第二分量的一个或多个样本的第一集合确定用于第一分量的分类器;
根据所述分类器确定第一分量的所述相应样本的样本偏移;以及
基于确定的样本偏移修改第一分量的所述相应样本的值,
其中第一分量和第二分量是色度分量。
2.根据权利要求1所述的方法,其中所述图片帧进一步包括第三分量,并且其中用于第一分量的所述分类器还基于与第一分量的所述相应样本相关联的第三分量的一个或多个样本的第二集合,其中第三分量是亮度分量。
3.根据权利要求2所述的方法,其中用于确定所述分类器的与第一分量的所述相应样本相关联的第二分量的一个或多个样本的第一集合和第三分量的一个或多个样本的第二集合的定义在序列参数集(SPS)、自适应参数集(APS)、图片参数集(PPS)、图片首部(PH)、切片首部(SH)、区域、编码树单元(CTU)、编码单元(CU)和子块级别中的一个或多个中被切换,
其中与第一分量的所述相应样本相关联的第二分量的一个或多个样本的第一集合和第三分量的一个或多个样本的第二集合的定义包括以下各项中的一个或多个:
与第一分量的所述相应样本相关联的所定义的相对位置处的第二分量和第三分量的所选样本,以及
分类的方法。
4.根据权利要求1所述的方法,其中基于与第一分量的所述相应样本相关联的第二分量的一个或多个样本的第一集合确定用于第一分量的分类器包括:
基于与第一分量的所述相应样本相关联的第二分量的一个或多个样本的第一集合的边缘信息的方向和强度导出特性测量。
5.根据权利要求1所述的方法,其中与第一分量的所述相应样本相关的第二分量的一个或多个样本的第一集合选自相对于第一分量的所述相应样本的第二分量的一个或多个同位和相邻样本。
6.根据权利要求1所述的方法,其中根据所述分类器确定第一分量的相应样本的样本偏移包括:
基于与第一分量的所述相应样本相关联的第二分量的一个或多个样本的第一集合,将值的动态范围划分成多个带;以及
从对应于从第二分量的所述多个带中选择的带的第一分量的多个样本偏移中选择样本偏移。
7.如权利要求6所述的方法,其中,选择的带是作为Class=(U*band_num)>>bit_depth被获得的,其中band_num是第二分量的动态范围的带的数量,U是第二分量的一个或多个样本的第一集合的强度值,bit_depth是序列位深度,并且Class是第一分量的选择的带的类索引。
8.根据权利要求1所述的方法,其中基于与第一分量的所述相应样本相关联的第二分量的一个或多个样本的第一集合确定用于第一分量的分类器包括:
对相对于第一分量的所述相应样本的第二分量的一个或多个同位和相邻样本进行加权。
9.根据权利要求1所述的方法,其中基于与第一分量的所述相应样本相关联的第二分量的一个或多个样本的第一集合确定用于第一分量的分类器包括:
比较与第一分量的所述相应样本相关联的第二分量的同位样本和相邻样本的值。
10.根据权利要求1所述的方法,其中基于所确定的样本偏移修改第一分量的所述相应样本的值包括:
基于所述图片帧的所应用区域内的所确定的样本偏移修改第一分量的所述相应样本的值,其中所应用区域的大小不同于编码树块(CTB)的大小。
11.根据权利要求1所述的方法,其中基于所确定的样本偏移修改第一分量的所述相应样本的值包括:
基于所述图片帧的所应用区域内的所确定的样本偏移修改第一分量的所述相应样本的值,其中当第一分量是第一色度分量时,所应用区域具有第一大小,并且当第一分量是不同于第一色度分量的第二色度分量时,所应用区域具有第二大小。
12.根据权利要求1所述的方法,其中基于所确定的样本偏移修改第一分量的所述相应样本的值包括:
基于所述图片帧的所应用区域内的所确定的样本偏移修改第一分量的所述相应样本的值,其中所应用区域是从帧、切片和编码树块(CTB)级别之一分割的二叉树、四叉树和三叉树之一。
13.根据权利要求10所述的方法,其中
区域控制标志从所述视频信号被接收,以指示是否存在所应用区域,从而基于区域中的所确定的样本偏移修改第一分量的所述相应样本的值,
当所述区域控制标志为关时,CTB控制标志被接收,以指示是否基于CTB中的所确定的样本偏移修改第一分量的所述相应样本的值,
当所述区域控制标志为开时,CTB控制标志不被接收以指示是否基于CTB中的所确定的样本偏移修改第一分量的所述相应样本的值。
14.根据权利要求13所述的方法,所述图片帧包括多个所应用区域,并且所述多个所应用区域的子集共享相同的参数,包括区域控制标志。
15.一种电子设备,包括:
一个或多个处理单元;
耦合到所述一个或多个处理单元的存储器;以及
被存储在所述存储器中的多个程序,所述多个程序在由所述一个或多个处理单元执行时使得所述电子设备实行权利要求1-14的方法。
16.一种非暂时性计算机可读存储介质,其存储多个程序以供具有一个或多个处理单元的电子设备执行,所述多个程序在由所述一个或多个处理单元执行时使得所述电子设备实行权利要求1-14的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/119466 | 2020-11-30 | ||
US202063121980P | 2020-12-07 | 2020-12-07 | |
US63/121980 | 2020-12-07 | ||
PCT/US2021/061004 WO2022115698A1 (en) | 2020-11-30 | 2021-11-29 | Chroma coding enhancement in cross-component sample adaptive offset |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116569551A true CN116569551A (zh) | 2023-08-08 |
Family
ID=87491951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180079688.5A Pending CN116569551A (zh) | 2020-11-30 | 2021-11-29 | 交叉分量样本自适应偏移中的色度编码增强 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116569551A (zh) |
-
2021
- 2021-11-29 CN CN202180079688.5A patent/CN116569551A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114007067B (zh) | 对视频信号进行解码的方法、设备和介质 | |
WO2022035687A1 (en) | Chroma coding enhancement in cross-component sample adaptive offset | |
US20230388509A1 (en) | Chroma coding enhancement in cross-component sample adaptive offset | |
US20230308652A1 (en) | Chroma coding enhancement in cross-component sample adaptive offset with virtual boundary | |
US20230199209A1 (en) | Chroma coding enhancement in cross-component sample adaptive offset | |
WO2022178424A1 (en) | Coding enhancement cross-component sample adaptive offset | |
EP4201063A1 (en) | Chroma coding enhancement in cross-component sample adaptive offset | |
US20230336785A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
WO2022251433A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
EP4285591A1 (en) | Chroma coding enhancement in cross-component sample adaptive offset | |
EP4309364A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
CN116569551A (zh) | 交叉分量样本自适应偏移中的色度编码增强 | |
US20230262235A1 (en) | Chroma coding enhancement in cross-component sample adaptive offset with virtual boundary | |
CN116965017A (zh) | 在跨分量样点自适应偏移中的色度编解码增强 | |
CN117413516A (zh) | 跨分量样本自适应偏移中的编解码增强 | |
CN117203962A (zh) | 跨分量样本自适应偏移中的编解码增强 | |
CN117917074A (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 |