CN117296315A - 跨分量样点自适应偏移中的编解码增强 - Google Patents
跨分量样点自适应偏移中的编解码增强 Download PDFInfo
- Publication number
- CN117296315A CN117296315A CN202280022405.8A CN202280022405A CN117296315A CN 117296315 A CN117296315 A CN 117296315A CN 202280022405 A CN202280022405 A CN 202280022405A CN 117296315 A CN117296315 A CN 117296315A
- Authority
- CN
- China
- Prior art keywords
- component
- samples
- region
- sample
- video
- 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 description 20
- 238000000034 method Methods 0.000 claims abstract description 95
- 238000012545 processing Methods 0.000 claims description 61
- 238000003860 storage Methods 0.000 claims description 31
- 241000023320 Luma <angiosperm> Species 0.000 description 82
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 82
- 238000010586 diagram Methods 0.000 description 55
- 230000008569 process Effects 0.000 description 40
- 239000013598 vector Substances 0.000 description 34
- 238000005192 partition Methods 0.000 description 27
- 230000011664 signaling Effects 0.000 description 27
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 22
- 239000000872 buffer Substances 0.000 description 21
- 238000013139 quantization Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 16
- 238000000638 solvent extraction Methods 0.000 description 13
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 7
- 238000005070 sampling Methods 0.000 description 7
- 230000002146 bilateral effect Effects 0.000 description 6
- 238000001914 filtration Methods 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 101150114515 CTBS gene Proteins 0.000 description 4
- 101100520660 Drosophila melanogaster Poc1 gene Proteins 0.000 description 4
- 101100520662 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PBA1 gene Proteins 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 235000009508 confectionery Nutrition 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 239000011449 brick Substances 0.000 description 2
- 230000001143 conditioned effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 241000985610 Forpus Species 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 101150055297 SET1 gene Proteins 0.000 description 1
- 101100520663 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ADD66 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 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
- 230000009365 direct transmission Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000003993 interaction Effects 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
- 238000010606 normalization Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000012536 storage buffer Substances 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
相关申请
本申请要求于2021年3月18日提交的标题为“Cross-component Sample AdaptiveOffset”的第63/200,626号美国临时申请以及于2021年3月22日提交的标题为“Cross-component Sample Adaptive Offset”的第63/164,459号美国临时申请的优先权,这些临时申请的全部内容通过引用完整地并入本文。
技术领域
本申请总体上涉及视频编解码和压缩。更具体地,本申请涉及同时改进亮度和色度编解码效率的方法和装置。
背景技术
各种电子设备(例如数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏机、智能电话、视频电话会议设备、视频流传输设备等)支持数字视频。这些电子设备通过实施视频压缩/解压缩标准来发送、接收、编码、解码和/或存储数字视频数据。一些众所周知的视频编解码标准包括由ISO/IEC MPEG和ITU-T VECG联合开发的通用视频编解码(VVC)、高效视频编解码(HEVC,也称为H.265或MPEG-H Part 2)和高级视频编解码(AVC,也称为H.264或MPEG-4Part 10)。AOMedia Video1(AV1)是由开放媒体联盟(AOM)开发的,作为其先前标准VP9的后继者。音视频编解码(AVS)是由音频和视频编解码标准工作组制定的又一系列视频压缩标准,是指数字音频和数字视频压缩标准。
视频压缩通常包括执行空间(帧内)预测和/或时间(帧间)预测以减少或去除视频数据中固有的冗余。对于基于块的视频编解码,视频帧被分割为一个或多个条带,每个条带具有多个视频块,所述视频块也可以称为编码树单元(CTU)。每个CTU可以包含一个编码单元(CU)或者被递归地分割为较小的CU,直到达到预设的最小CU的尺寸。每个CU(也称为叶子CU)包含一个或多个变换单元(TU),每个CU还包含一个或多个预测单元(PU)。每个CU可以采用帧内、帧间或IBC模式进行编码。使用相对于同一视频帧内的相邻块中的参考样点的空间预测对视频帧的帧内编码(I)条带中的视频块进行编码。视频帧的帧间编码(P或B)条带中的视频块可使用相对于同一视频帧内相邻块中的参考样点的空间预测或相对于其他先前的和/或未来的参考视频帧中的参考样点的时间预测。
基于先前编码参考块(如相邻块)的空间或时间预测产生针对待编码的当前视频块的预测块。查找参考块的过程可以通过块匹配算法来完成。表示待编解码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。根据指向形成该预测块的参考帧中的参考块的运动矢量,以及该残差块对帧间编码块进行编码。确定该运动矢量的过程通常称为运动估计。根据帧内预测模式以及该残差块对帧内编码块进行编码。为了进一步压缩,将该残差块从像素域变换到变换域,如频域,从而产生残差变换系数,然后可以对其进行量化。可以对最初以二维阵列排列的所述量化了的变换系数进行扫描以产生变换系数的一维向量,然后将其熵编码到视频比特流中以实现更多的压缩。
然后将已编码的该视频比特流保存在计算机可读存储介质(如闪速存储器)中,以由具有数字视频能力的另一个电子设备访问或者直接以有线或无线的方式传输到该电子设备。然后,该电子设备通过例如解析该已编码的视频比特流以从该比特流获得语义元素以及至少部分地基于从该比特流获得的语义元素从该已编码的视频比特流将该数字视频数据重建为其原始格式来进行视频解压缩(这是与上述视频压缩相反的过程),并且在该电子设备的显示器上呈现该重建的数字视频数据。
随着数字视频质量从高清到4K×2K甚至8K×4K,待编码/解码的视频数据量呈指数增长。如何在保持解码视频数据的图像质量的同时更有效地编码/解码视频数据是一种持续的挑战。
发明内容
本申请描述了与视频数据编码和解码相关的实施方式,更具体地,涉及同时改进亮度分量和色度分量的编解码效率的方法和装置,包括通过探索亮度分量和色度分量之间的跨分量关系来提高编解码效率。
根据本申请的第一方面,一种视频信号的解码方法包括:从视频信号接收包括第一分量和第二分量的图片帧;从与所述第二分量的相应样点相关联的所述第一分量的一个或多个样点的集合中确定对于所述第二分量的分类器;根据所述分类器确定是否修改所述图片帧的区域内的所述第二分量的所述相应样点的值;响应于根据所述分类器修改所述区域内的所述第二分量的所述相应样点的值的确定,根据所述分类器确定对于所述第二分量的所述相应样点的样点偏移;以及基于所确定的样点偏移修改所述第二分量的所述相应样点的值。在一些实施例中,所述区域通过划分所述图片帧而形成。
根据本申请的第二方面,一种电子装置包括一个或多个处理单元,存储器以及存储在该存储器中的多个程序。这些程序在由一个或多个处理单元执行时使得该电子装置执行如上文所描述的视频信号的解码方法。
根据本申请的第三方面,一种非暂时性计算机可读存储介质,其存储由具有一个或多个处理单元的电子装置执行的多个程序。这些程序在由一个或多个处理单元执行时使得该电子装置执行如上文所描述的视频信号的解码方法。
根据本申请的第四方面,一种计算机可读存储介质,其中存储有比特流,该比特流包括由如上文所描述的视频信号的解码方法生成的视频信息。
应当理解的是,以上一般描述和以下详细描述二者仅仅是示例,而不限制本公开。
附图说明
所包括的附图用以提供对实施方式的进一步理解并且结合在本文中并构成说明书的一部分,图示了所描述的实施方式并且与说明书一起用于解释基本原理。相同的附图标记指代相应的部分。
图1是示出了根据本公开的一些实施方式的示例性视频编码和解码系统的框图。
图2是示出了根据本公开的一些实施方式的示例性视频编码器的框图。
图3是示出了根据本公开的一些实施方式的示例性视频解码器的框图。
4A至图4E是示出了根据本公开的一些实施方式的如何将帧递归地分割为不同尺寸和形状的多个视频块的框图。
图5是描绘了根据本公开的一些实施方式的在样点自适应偏移(SAO)中使用的四种梯度图案的框图。
图6A是示出了根据本公开的一些实施方式的应用于色度样点并使用DBF Y作为输入的CCSAO的系统和过程的框图。
图6B是示出了根据本公开的一些实施方式的应用于亮度和色度样点并使用DBFY/Cb/Cr作为输入的CCSAO的系统和过程的框图。
图6C是示出了根据本公开的一些实施方式的可以独立工作的CCSAO的系统和过程的框图。
图6D是示出了根据本公开的一些实施方式的可以以相同或不同的偏移递归地(2或N次)应用的CCSAO的系统和过程的框图。
图6E是示出了根据本公开的一些实施方式的与AVS标准中的增强样点自适应偏移(ESAO)并行应用的CCSAO的系统和过程的框图。
图6F是示出了根据本公开的一些实施方式的在SAO之后应用的CCSAO的系统和过程的框图。
图6G是示出了根据本公开的一些实施方式的在没有CCALF的情况下可以独立工作的CCSAO的系统和过程的框图。
图6H是示出了根据本公开的一些实施方式的与跨分量自适应环路滤波器(CCALF)并行应用的CCSAO的系统和过程的框图。
图7是示出了根据本公开的一些实施方式的使用CCSAO的样点处理的框图。
图8是示出了根据本公开的一些实施方式的CCSAO过程被交织到垂直和水平去块滤波器(DBF)的框图。
图9是示出了根据本公开的一些实施方式的使用跨分量相关对视频信号进行解码的示例性过程的流程图。
图10A是示出了根据本公开的一些实施方式的针对C0分类使用不同亮度(或色度)样点位置的分类器的框图。
图10B示出了根据本公开的一些实施方式的对于亮度候选的不同形状的一些示例。
图11是示出了根据本公开的一些实施方式的所有同位(collocated)的亮度/色度样点和相邻的亮度/色度样点可以被馈送到CCSAO分类中的样点处理的框图。
图12示出了根据本公开的一些实施方式的通过将同位的亮度样点值替换为通过对同位的和相邻的亮度样点进行加权而获得的值的示例性分类器。
图13A是示出了根据本公开的一些实施方式的如果用于分类的同位和相邻亮度(色度)样点中的任何一个在当前图片之外,则不对当前色度(亮度)样点应用CCSAO的框图。
图13B是示出了根据本公开的一些实施方式的如果用于分类的同位和相邻亮度(色度)样点中的任何一个在当前图片之外,则对当前亮度或色度样点应用CCSAO的框图。
图14是示出了根据本公开的一些实施方式的如果用于分类的对应选择的同位或相邻亮度样点在由虚拟边界(VB)定义的虚拟空间之外,则不对当前色度样点应用CCSAO的框图。
图15示出了根据本公开的一些实施方式的在虚拟边界之外的亮度样点上应用重复或镜像填充。
图16示出了根据本公开的一些实施方式的如果所有9个同位的相邻亮度样点都用于分类,则需要额外的1个亮度行缓冲器。
图17示出了根据本公开的一些实施方式的跨VB的9个亮度候选CCSAO可以增加2个额外的亮度行缓冲器的AVS的图示。
图18A示出了根据本公开的一些实施方式的跨VB的9个亮度候选CCSAO可以增加1个额外的亮度行缓冲器的VVC的图示。
图18B示出了根据本公开的一些实施方式的当使用同位的或相邻的色度样点对当前亮度样点进行分类时所选择的色度候选可以跨越VB并且需要额外的色度行缓冲器的图示。
图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是示出了根据本公开的一些实施方式的CCSAO分类器可以考虑当前或跨分量编解码信息的框图。
图30是示出了根据本公开的一些实施方式的本公开中公开的SAO分类方法用作后预测滤波器的框图。
图31是示出了根据本公开的一些实施方式的对于后预测SAO滤波器,每个分量可以使用当前和相邻样点进行分类的框图。
图32是示出了根据本公开的一些实施方式的使用跨分量相关对视频信号进行解码的示例性过程的流程图。
图33是出了根据本公开的一些实施方式的与用户接口耦合的计算环境的示图。
具体实施方式
现在将详细参照具体实施方式,在附图中示出了具体实施方式的示例。在以下详细描述中,阐述了大量非限制性具体细节以便帮助理解本文呈现的主题。但是对于本领域普通技术人员将显而易见的是,在不脱离权利要求的范围的情况下,可以使用各种替代方案,并且可以在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员将显而易见的是,本文呈现的主题可以在具有数字视频能力的许多类型的电子设备上实现。
第一代AVS标准包括中国国家标准《信息技术,高级音视频编解码,第2部分:视频》(称为AVS1)和《信息技术,高级音视频编解码,第16部分:无线电视视频》(称为AVS+)。与MPEG-2标准相比,它可以在相同的感知质量下节省大约50%的比特率。第二代AVS标准包括中国国家标准《信息技术,高效多媒体编解码》系列(称为AVS2),主要针对超高清电视节目的传输。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的任何类型的计算机。示例性文件服务器包括网络服务器(例如,用于网站)、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。诸如去块滤波器的环路滤波器63可以位于加法器62与DPB64之间以对块边界进行滤波,来从重建视频中去除块效应。除去块滤波器之外,还可以使用另一个环路滤波器63来对加法器62的输出进行滤波。此外,在将重建CU放入参考图片存储库中并用于对后面的视频块进行编解码之前,可对重建CU应用环路滤波63,诸如样点自适应偏移(SAO)和自适应环路滤波器(ALF)。视频编码器20可以采取固定或可编程硬件单元的形式,或者可以分散在所说明的固定或可编程硬件单元中的一个或更多个中。
视频数据存储器40可以存储将由视频编码器20的组件编码的视频数据。例如,可从视频源18获得视频数据存储器40中的视频数据。DPB 64是存储供视频编码器20(例如,以帧内或帧间预测编码模式)在对视频数据进行编码时使用的参考视频数据的缓冲器。视频数据存储器40和DPB 64可以由各种存储器设备中的任何存储器设备形成。在各种示例中,视频数据存储器40可以与视频编码器20的其他组件一起在芯片上,或相对于那些组件在芯片外。
如图2所示,在接收到视频数据之后,预测处理单元41内的分割单元45将视频数据分割为视频块。此分割还可以包括根据与视频数据相关联的预定义的拆分结构(例如四叉树(QT)结构)将视频帧分割为条带、瓦片(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确定块矢量。
在像素差方面,预测块可以是被认为与待编码视频块紧密匹配的参考帧的块,像素差可以由绝对差总和(SAD)、平方差总和(SSD)或其他差度量确定。在一些实施方式中,视频编码器20可以计算用于DPB 64中存储的参考帧的子整数像素位置的值。例如,视频编码器20可以对参考帧的四分之一像素位置、八分之一像素位置或其他分数像素位置的值进行内插。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动矢量。
运动估计单元42通过以下方式来计算针对帧间预测编码帧中的视频块的PU的运动矢量:将该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可以通过从正被编码的当前视频块的像素值减去预测块的像素值来形成像素差值,从而形成残差视频块。形成残差视频块的像素差值可以包括亮度分量差和色度分量差两者。
作为如上文所描述的由运动估计单元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的其他组件进行解码的视频数据,例如编码视频比特流。可以例如从存储设备32、从本地视频源(例如相机)、经由视频数据的有线或无线网络通信、或通过访问物理数据存储介质(例如,闪存驱动器或硬盘)获得存储在视频数据存储器79中的视频数据。视频数据存储器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生成的对应预测块相加,来重建针对当前视频块的解码视频块。环路滤波器91可以位于加法器90与DPB 92之间以进一步处理解码视频块。在将重建CU放入参考图片存储库中之前,可对重建CU应用环路滤波91,诸如去块滤波器、样点自适应偏移(SAO)和自适应环路滤波器(ALF)。然后,将给定帧中的解码视频块存储在DPB 92中,DPB 92存储用于接下来的视频块的后续运动补偿的参考帧。DPB 92或与DPB 92分离的存储器设备还可以存储解码视频以用于稍后呈现在显示器设备(例如,图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是最大的逻辑编码单元,并且由视频编码器20在序列参数集中用信号传送CTU的宽度和高度,使得视频序列中的所有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所示,AVS3中有五种分割/分区类型,即,四元分割,水平二元分割,垂直二元分割,水平扩展四叉树分割,以及垂直扩展四叉树分割。
在一些实施方式中,视频编码器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样点与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-type-idx按CTB选择的滤波类型,在区域基础上来进行SAO滤波。sao-type-idx的值为0指示sao滤波器不被应用于CTB,其值1和2分别表示频带偏移的使用和边缘偏移滤波类型的使用。在sao-type-idx等于1指定的频带偏移模式中,所选择的偏移值直接取决于样点幅度。在该模式中,整个样点幅度范围被均匀地分割为32个称为频带的段,并且属于这些频带中的四个频带(这四个频带在32个频带内是连续的)的样点值通过与表示为频带偏移(该频带偏移可以是正的或负的)的被发送值相加而被修改。使用四个连续频带的主要原因是在可能出现带状伪影的平滑区域中,CTB中的样点幅度趋向于仅集中在几个频带中。此外,使用四个偏移的设计选择与也使用四个偏移值的边缘偏移模式的操作是统一的。在sao-type-idx等于2指定的边缘偏移模式中,具有从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)梯度模式的两个相邻样点。通过将位于某个位置处的样点值p与位于如图5所示的其相邻位置处的两个样点的值n0和n1进行比较来将CTB中的每个样点分类为五个EdgeIdx类别之一。由于基于解码样点值对每个样点进行这种分类,因此针对EdgeIdx分类不需要额外信令。取决于样点位置处的EdgeIdx类别,对于从1至4的EdgeIdx类别,将来自被发送的查找表的偏移值与样点值相加。偏移值对于类别1和类别2总是正的,并且对于类别3和类别4总是负的。因此,滤波器通常在边缘偏移模式下具有平滑效果。下面的表1示出了SAO边缘分类中的样点EdgeIdx类别。
表1:SAO边缘分类中的样点EdgeIdx类别
对于SAO类型1和SAO类型2,针对每个CTB总共四个幅度偏移值被发送到解码器。对于类型1,符号也被编码。偏移值和相关语法元素(诸如sao-type-idx和sao-eo-class)由编码器确定(通常使用优化率失真性能的标准)。可使用合并标志将SAO参数指示为从左侧CTB或上方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)的方法和系统,可以期待进一步的增益。在一些实施例中,这里的相关性不仅包括跨分量样点值,还包括图片/编解码信息,例如预测/残差编解码模式、变换类型以及来自跨分量的量化/去块/SAO/ALF参数。
另一个例子是针对SAO,亮度样点偏移仅由亮度样点决定。然而,例如,具有相同频带偏移(BO)分类的亮度样点可以通过其同位的色度样点和相邻的色度样点来进一步被分类,这可以带来更有效的分类。SAO分类可以作为补偿原始图片和重建图片之间的样点差异的捷径。因此,希望实现有效的分类。
图6A是示出了根据本公开的一些实施方式的应用于色度样点并使用DBF Y作为输入的CCSAO的系统和过程的框图。亮度去块滤波器(DBF Y)之后的亮度样点用于针对SAO Cb和SAO Cr之后的色度Cb和Cr确定附加偏移。例如,使用同位的亮度样点604和相邻(白色)亮度样点606首先对当前色度样点602进行分类,并且对应类别的对应CCSAO偏移值与当前色度样点值相加。图6B是示出了根据本公开的一些实施方式的应用于亮度和色度样点并使用DBF Y/Cb/Cr作为输入的CCSAO的系统和过程的框图。图6C是示出了根据本公开的一些实施方式的可以独立工作的CCSAO的系统和过程的框图。图6D是示出了根据本公开的一些实施方式的CCSAO的系统和过程的框图,该CCSAO可以在同一编解码器阶段中以相同或不同的偏移递归地(2或N次)应用,或者在不同的阶段重复。总之,在一些实施例中,为了对当前亮度样点进行分类,可以使用当前的和相邻的亮度样点的信息、以及同位的和相邻的色度样点(Cb和Cr)的信息。在一些实施例中,为了对当前色度样点(Cb或Cr)进行分类,可以使用同位的和相邻的亮度样点、同位的和相邻的跨色度样点、以及当前的和相邻的色度样点。在一些实施例中,CCSAO可以在(1)DBF Y/Cb/Cr和(2)DBF之前的重建图像Y/Cb/Cr之后,或者在(3)SAO Y/Cb/Cr之后、或者在(4)ALF Y/Cb/Cr之后被级联。
在一些实施例中,CCSAO还可以与其他编解码工具(例如AVS标准中的ESAO或AV1标准中的CDEF)并行应用。图6E是示出了根据本公开的一些实施方式的与AVS标准中的ESAO并行应用的CCSAO的系统和过程的框图。
图6F是示出了根据本公开的一些实施方式的在SAO之后应用的CCSAO的系统和过程的框图。在一些实施例中,图6F示出了CCSAO的位置(即,VVC标准中的跨分量自适应环路滤波器(CCALF)的位置)可以在SAO之后。图6G是示出了根据本公开的一些实施方式的在没有CCALF的情况下可以独立工作的CCSAO的系统和过程的框图。在一些实施例中,SAO Y/Cb/Cr可以由例如AVS3标准中的ESAO代替。
图6H是示出了根据本公开的一些实施方式的与CCALF并行应用的CCSAO的系统和过程的框图。在一些实施例中,图6H示出了CCSAO可以与CCALF并行应用。在一些实施例中,在图6H中,可以切换CCALF和CCSAO的位置。在一些实施例中,在图6A至图6H中,或在整个本公开中,SAO Y/Cb/Cr块可以由ESAO Y/Cb/Cr(在AVS3中)代替或CDEF(在AV1中)代替。注意,在视频编解码区域中,Y/Cb/Cr也可以表示为Y/U/V。
在一些实施例中,当前色度样点分类再次使用同位亮度样点的SAO类型(边缘偏移(EO)或BO)、分类和类别。对应的CCSAO偏移可以用信号发送或从解码器本身导出。例如,令h_Y是同位的亮度SAO偏移,h_Cb和h_Cr分别是CCSAO Cb和CCSAO Cr偏移。h_Cb(或h_Cr)=w*h_Y,其中w可以在限定的表中选择。例如,+-1/4、+-1/2、0、+-1、+-2、+-4…等,其中|w|仅包括2的幂的值。
在一些实施例中,使用同位的亮度样点(Y0)和相邻的8个亮度样点的比较分数[-8,8],这总共产生17个类别。
在一些实施例中,可以组合上述分类方法。例如,通过与SAO BO(32个频带分类)相结合的比较分数来增加多样性,总共产生17*32个类别。在一些实施例中,Cb和Cr可以使用相同的类来降低复杂性或节省比特。
图7是示出了根据本公开的一些实施方式的使用CCSAO的样点处理的框图。具体地,图7示出了CCSAO的输入可以引入垂直DBF和水平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)
并将最大Y0和最大Yi馈送到CCSAO分类。
图8是示出了根据本公开的一些实施方式的CCSAO过程被交织到垂直和水平DBF的框图。在一些实施例中,图6、7和8中的CCSAO块可以是选择性的。例如,对于第一CCSAO_V使用Y0_DBF_V和Yi_DBF_V,其应用与图6中相同的样点处理,同时使用DBF_V亮度样点的输入作为CCSAO输入。
在一些实施例中,实现的CCSAO语法在下面的表2中示出。
表2:CCSAO语法示例
在一些实施例中,对于用信号发送CCSAO Cb和CCSAO Cr偏移值,如果用信号发送了一个附加的色度偏移,则可以通过加号或减号或加权来导出另一个色度分量偏移,以节省比特开销。例如,令h_Cb和h_Cr分别为CCSAO Cb和CCSAO 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)处被去块。在一些实施例中,第一分量在亮度去块滤波器(DBFY)处被去块。例如,替代图6或图7,CCSAO输入也可以在DBF Y之前。
在一些实施例中,通过将第一分量的样点值的范围划分为若干频带并基于第一分量中的样点的强度值选择频带来导出特性测量。在一些实施例中,从频带偏移(BO)导出特性测量。
在一些实施例中,基于第一分量中的样点的边缘信息的方向和强度导出特性测量。在一些实施例中,从边缘偏移(EO)导出特性测量。
在一些实施例中,修改第二分量(950)包括将所选择的第一偏移直接加到第二分量中。例如,将对应的CCSAO偏移值与当前色度分量样点相加。
在一些实施例中,修改第二分量(950)包括将所选择的第一偏移映射到第二偏移,并将所映射的第二偏移加到第二分量中。例如,对于用信号发送CCSAO Cb和CCSAO Cr偏移值,如果用信号发送了一个附加的色度偏移,则可以通过使用加号或减号或加权来导出另一个色度分量偏移,以节省比特开销。
在一些实施例中,接收视频信号(910)包括接收语法元素,该语法元素指示针对序列参数集(SPS)中的视频信号是否启用使用CCSAO的解码视频信号的方法。在一些实施例中,cc_sao_enabled_flag指示在序列级别是否启用CCSAO。
在一些实施例中,接收视频信号(910)包括接收语法元素,该语法元素指示针对条带级别上的第二分量是否启用使用CCSAO的解码视频信号的方法。在一些实施例中,slice_cc_sao_cb_flag或slice_cc_sao_cr_flag指示在针对cb或cr的相应条带中是否启用CCSAO。
在一些实施例中,接收与第二分量相关联的多个偏移(920)包括针对不同的编码树单元(CTU)接收不同的偏移。在一些实施例中,对于CTU,cc_sao_offset_sign_flag指示针对偏移的符号,cc_sao_offset_abs指示当前CTU的CCSAO Cb和CCSAO Cr偏移值。
在一些实施例中,接收与第二分量相关联的多个偏移(920)包括接收语法元素,该语法元素指示CTU的接收到的偏移是否与该CTU的相邻CTU之一的接收到的偏移相同,其中相邻CTU是左侧相邻CTU或顶部相邻CTU。例如,cc_sao_merge_up_flag指示是否从左侧CTU或上方CTU合并CCSAO偏移。
在一些实施例中,视频信号还包括第三分量,以及使用CCSAO来解码视频信号的方法还包括:接收与第三分量相关联的多个第二偏移;利用该第一分量的特性测量来获得与第三分量相关联的第二分类类别;根据该第二分类类别从多个第二偏移中为该第三分量选择第三偏移;以及基于所选择的第三偏移来修改该第三分量。
图11是示出了根据本公开的一些实施方式的所有同位的亮度/色度样点和相邻的(白色)亮度/色度样点可以被馈送到CCSAO分类中的样点处理的框图。图6A、图6B和图11示出了CCSAO分类的输入。在图11中,当前色度样点是1104,跨分量同位的色度样点是1102,以及同位的亮度样点是1106。
在一些实施例中,分类器示例(C0)使用图12中的同位的亮度或色度样点值(Y0)(图6B和图6C中的Y4/U4/V4)进行分类。令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)/区域(Region)/编码树单元(CTU)/编码单元(CU)/子块(Subblock)/样点(Sample)级别中切换不同的分类器。例如,在图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)所示。在一些实施例中,2的幂约束和对称约束也可以应用于色度候选。图6B和图6C的U/V部分示出了对称约束的示例。在一些实施例中,不同的颜色格式可以具有不同的分类器“约束”。例如,420颜色格式使用了如图6B和图6C所示的亮度/色度候选选择(从3×3形状中选择一个候选),但是444颜色格式使用图10B(f)用于亮度和色度候选选择,422颜色格式使用图10B(g)用于亮度候选(2个色度样点共享4个亮度候选)以及使用图10B(f)用于色度候选。
在一些实施例中,C0位置和C0 band_num可以在SPS/APS/PPS/PH/SH/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别组合和切换。不同的组合可以是不同的分类器,如下表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个类别。
Initial Class(C1)=0,Loop over neighboring 8luma samples(Yi,i=1to 8)
if Y0>Yi Class+=1
else if Y0<Yi Class-=1
在一些实施例中,C1示例等于以下函数,其中阈值th为0。
ClassIdx=Index2ClassTable(f(C,P1)+f(C,P2)+…+f(C,P8))
if x-y>th,f(x,y)=1;if x-y=th,f(x,y)=0;if x-y<th,f(x,y)=-1
其中,Index2ClassTable是查找表(LUT),C是当前的或同位的样点,P1至P8是相邻样点。
在一些实施例中,类似于C4分类器,一个或多个阈值可以被预定义(例如,保存在LUT中),或者在SPS/APS/PS/PH/SH/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别通过信号被发送,以帮助对差异进行分类(量化)。
在一些实施例中,变体(C1’)仅计算比较分数[0,8],这会产生8个类别。(C1,C1’)是分类器组,并且PH/SH级别标志可以被通过信号发送以在C1和C1’之间切换。InitialClass(C1’)=0,Loop over neighboring 8luma samples(Yi,i=1to 8)
if Y0>Yi Class+=1
在一些实施例中,变体(C1s)选择性地使用M个相邻样点中的相邻的N个样点来计数比较分数。可以在SPS/APS/PS/PH/SH/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别通过信号发送M位(M-bit)位掩码,以指示选择了哪些相邻样点来计算比较分数。使用图6B作为对于亮度分类器的示例:8个相邻亮度样点是候选,并且8位位掩码(01111110)在PH通过信号被发送,指示选择了6个样点(Y1到Y6),因此比较分数在[-6,6]中,这产生了13个偏移。选择性的分类器C1s给予编码器更多的选择,以在偏移信令开销和分类粒度之间进行权衡。
类似于C1s,变体(C1’s)仅计算比较分数[0,+N],先前的位掩码01111110示例给出[0,6]中的比较分数,这产生了7个偏移。
在一些实施例中,不同的分类器被组合以产生通用分类器。例如,对于不同的图片(不同的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/区域Regio/CTU/CU/子块(Subblock)/样点(Sample)级别中通过信号被发送,以指示该分类器。例如,位掩码11 1100 0000意味着对于给定的10位亮度样点值,只有最高有效位(MSB):4个位用于分类,总共产生16个类别。另一个示例位掩码100100 0001意味着只有3个位用于分类,总共产生8个类别。
在一些实施例中,位掩码长度(N)可以在SPS/APS/PPS/PH/SH/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别中被固定或切换。例如,对于10位序列,4位位掩码1110在图片的PH中通过信号被发送,MSB的3个位(b9、b8、b7)被用于分类。另一个例子是LSB上的4位掩码0011,b0和b1用于分类。位掩码分类器可以应用于亮度或色度分类。对于位掩码N是否使用MSB或LSB可以在SPS/APS/PPS/PH/SH/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别中被固定或切换。
在一些实施例中,亮度位置和C3位掩码可以在SPS/APS/PPS/PH/SH/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别组合和切换。不同的组合可以是不同的分类器。
在一些实施例中,可以应用位掩码限制的“1s的最大数量”来限制偏移的相应数量。例如,在SPS中将位掩码的“1s的最大数量”限制为4,这样序列中产生的最大偏移为16。不同POC中的位掩码可能不同,但“1s的最大数量”不会超过4(总类别不会超过16)。在一些实施例中,“1s的最大数量”的值可以在SPS/APS/PPS/PH/SH/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别通过信号被发送和切换。
POC | 分类器 | C3 10位位掩码 | 总类别 |
0 | 使用Y0位置的C3 | 11 1100 0000 | 16 |
亮度样点值 | 类别索引 | ||
00 0000 1111 | 0(0000) | ||
10 1011 0011 | 9(1010) | ||
11 1100 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所示,例如,对于当前色度样点1104,其他跨分量色度样点(例如色度样点1102及其相邻样点)也可被馈送到CCSAO分类。例如,Cr色度样点可以被馈送到CCSAO Cb分类。Cb色度样点可以被馈送到CCSAO Cr分类。跨分量色度样点的分类器可以与亮度跨分量分类器相同或者可以具有如本公开所描述的自己的分类器。这两个分类器可以被组合以形成联合分类器来对当前色度样点进行分类。例如,组合了跨分量亮度和色度样点的联合分类器产生总共16个类别,如下表6-3所示。
表6-3:使用组合了跨分量亮度和色度样点的联合分类器的分类器示例(位掩码位置被加了下划线)
所有上述分类器(C0、C1、C1’、C2、C3)均可组合。例如,参见下面的表6-4。
表6-4:组合不同的分类器
在一些实施例中,分类器示例(C2)使用同位的亮度样点和相邻的亮度样点的差(Yn)。图12(c)示出了Yn的示例,当比特深度为10时,Yn具有[-1024,1023]的动态范围。令C2band_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-1所示。
POC | 分类器 | C0 band_num | C2 band_num | 总类别 |
0 | 组合C0、C1和C2 | 4 | 4 | 4×17×4 |
1 | 组合C0、C1’和C2 | 6 | 4 | 6×9×4 |
表8-1:不同的通用分类器应用于不同的图片
在一些实施例中,分类器示例(C4)使用CCSAO输入值和待补偿样点值的差异进行分类,如下面的表8-2所示。例如,如果CCSAO应用于ALF阶段,则当前分量ALF之前和ALF之后的样点值的差被用于分类。一个或多个阈值可以被预定义(例如,保存在查找表(LUT)中),或者在SPS/APS/PS/PH/SH/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别通过信号被发送,以帮助对差异进行分类(量化)。C4分类器可以与C0 Y/U/V bandNum组合以形成联合分类器(例如,如表8-2所示的POC1示例)。
表8-2:分类器示例使用CCSAO输入值和待补偿样点值的差异进行分类
在一些实施例中,由于不同的编解码模式可以在重建图像中引入不同的失真统计,因此分类器示例(C5)使用“编解码信息”来帮助子块分类。CCSAO样点通过其样点先前编解码信息被分类,并且编解码信息的组合可以形成分类器,例如,如下面的表8-3所示。图30示出了针对C5的编解码信息的不同阶段的另一个示例。
表8-3:CCSAO样点通过其样点先前编解码信息被分类并且编解码信息的组合可以形成分类器
在一些实施例中,分类器示例(C6)使用YUV颜色变换值进行分类。例如,为了对当前Y分量进行分类,选择1/1/1同位的或相邻的Y/U/V样点,将其颜色转换为RGB,并使用C3bandNum来量化R值以作为当前Y分量分类器。
在一些实施例中,仅使用针对当前分量分类的当前分量信息的其他分类器示例可以用作跨分量分类。例如,如图5和表1所示,亮度样点信息和eo-class用于导出EdgeIdx,并对当前色度样点进行分类。其他的也可用作跨分量分类器的“非跨分量”分类器包括边缘方向(edge direction)、像素强度(pixel intensity)、像素变化(pixel variation)、像素方差(pixel variance)、拉普拉斯算子的像素和(pixel sum-of-Laplacian)、索贝尔算子(sobel operator)、罗盘算子(compass operator)、高通滤波值(high-pass filteredvalue)和低通滤波值(low-pass filtered value)等。
在一些实施例中,在同一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/PS/PH/SH/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别中被固定或通过信号被发送。在一个示例中,多个分类器的固定(预定义)最大数量为4。在这种情况下,在POC0中使用了4个不同的分类器,并且使用了哪个分类器(0、1或2)在CTU级别中通过信号被发送。截断一元(Truncated-unary,TU)码可用来指示用于每个亮度或色度CTB的分类器。例如,如下表10所示,当TU码为0时:不应用CCSAO;当TU码为10时:应用集合0;当TU码为110时,应用集合1;当TU码为1110时:应用集合2;当TU码为1111时:应用集合3。固定长度编码(fixed-length code)、哥伦布莱斯编码(golomb-rice code)和指数哥伦布编码(exponential-golomb code)也可用于指示针对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:截断一元(Truncated-unary,TU)码用来指示用于每个色度CTB的分类器
针对1280×720序列POC0,给出了的Cb和Cr CTB偏移集合索引的示例(如果CTU大小为128×128,则帧中CTU的数量为10×6)。POC0 Cb使用4个偏移集合,而Cr使用1个偏移集合。如下表11-1所示,当偏移集合索引为0时:不应用CCSAO;当偏移集合索引为1时:应用集合0;当偏移集合索引为2时:应用集合1;当偏移集合索引为3时:应用集合2;当偏移集合索引为4时,应用集合3。表11中的类型(type)是指所选的同位的亮度样点(Yi)的位置。不同的偏移集合可以具有不同的类型、band_num和对应的偏移。
表11-1:针对1280×720序列POC0,给出了的Cb和Cr CTB偏移集合索引的示例(如果CTU大小为128×128,则帧中CTU的数量为10×6)
在一些实施例中,下面的表11-2中列出了联合使用同位/当前和相邻Y/U/V样点进行分类的示例(对于每个Y/U/V分量的3分量联合bandNum分类)。在POC0中,{2,4,1}偏移集合分别用于{Y,U,V}。每个偏移集合可以在SPS/APS/PPS/PH/SH/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别被自适应地切换。不同的偏移集合可以具有不同的分类器。例如,作为图6B和6C中指示的候选位置(candPos),为了对当前Y4亮度样点进行分类,Y集合0选择分别具有不同的bandNum({Y,U,V}={16,1,2})的{当前Y4,同位U4,同位V4}作为候选。以{candY,candU,candV}作为所选{Y,U,V}候选的样点值,总类别的数量为32,类别索引推导可以如下所示:
bandY=(candY*bandNumY)>>BitDepth;
bandU=(candU*bandNumU)>>BitDepth;
bandV=(candV*bandNumV)>>BitDepth;
classIdx=bandY*bandNumU*bandNumV
+bandU*bandNumV
+bandV;
另一个示例是POC1分量V集合1(V set1)分类。在该示例中,使用candPos={相邻Y8,相邻U3,相邻V0}(bandNum={4,1,2}),这产生8个类别。
POC | Current Comp | offsetset | Classifier:candPos(Y,U,V)with bandNum(Y,U,V) | Total classes(offsets number) |
0 | Y | 0 | (Y4,U4,V4),(16,1,2) | 16*1*2=32 |
1 | (Y4,U0,V2),(15,4,1) | 15*4*1=60 | ||
U | 0 | (Y8,U3,V0),(1,1,2) | 2 | |
1 | (Y4,U1,V0),(15,2,2) | 60 | ||
2 | (Y6,U6,V6),(4,4,1) | 16 | ||
3 | (Y2,U0,V5),(1,1,1) | 1 | ||
V | 0 | (Y2,U0,V5),(1,1,1) | 1 | |
1 | Y | 0 | (Y4,U1,V0),(15,2,2) | 60 |
U | 0 | (Y6,U2,V1),(7,1,2) | 14 | |
V | 0 | (Y8,U3,V0),(1,1,2) | 2 | |
1 | (Y8,U3,V0),(4,1,2) | 8 |
表11-2:联合使用同位/当前和相邻Y/U/V样点进行分类的示例
在一些实施例中,例如,如下面的表11-3所示,其列出了联合使用同位和相邻Y/U/V样点进行当前Y/U/V样点分类的示例(对于每个Y/U/V分量的3分量联合edgeNum(C1s)和bandNum分类)。Edge(边缘)CandPos用于C1s分类器的中心位置,Edge bitMask是C1s相邻样点激活指示符,edgeNum是C1s类别的对应数量。在本示例中,C1s仅应用于Y分类器(因此edgeNum等于edgeNumY),其中,边缘candPos始终为Y4(当前/同位样点位置)。然而,C1s可以应用于Y/U/V分类器,其中,边缘candPos为相邻样点位置。
diff表示Y C1s的比较分数,classIdx推导可以是:
bandY=(candY*bandNumY)>>BitDepth;
bandU=(candU*bandNumU)>>BitDepth;
bandV=(candV*bandNumV)>>BitDepth;
edgeIdx=diff+(edgeNum>>1);
bandIdx=bandY*bandNumU*bandNumV
+bandU*bandNumV
+bandV;
classIdx=bandIdx*edgeNum+edgeIdx;
表11-3(部分1):联合使用同位/当前和相邻Y/U/V样点进行分类的示例
表11-3(部分2):联合使用同位/当前和相邻Y/U/V样点进行分类的示例
表11-3(部分3):联合使用同位/当前和相邻Y/U/V样点进行分类的示例
在一些实施例中,最大band_num(bandNumY、bandNumU、或者bandNumV)可以在SPS/APS/PPS/PH/SH/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别中被固定或通过信号被发送。例如,在解码器中固定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比特示例
在一些实施例中,每个集合(或所有添加的集合(all set added))的类别或偏移(联合使用多个分类器的组合,例如C1s-edgeNum*C1-bandNumY*bandNumU*bandNumV)的最大数量可以在SPS/APS/PPS/PH/SH/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别中被固定或通过信号被发送。例如,对于class_num=256*4的所有添加的集合,该最大数量是固定的,可以使用编码器一致性检查或解码器规范性检查来检查约束。
在一些实施例中,可以对C0分类应用限制,例如,将band_num(bandNumY、bandNumU、或者bandNumV)仅限制为2的幂的值。不显式地通过信号发送band_num,而是通过信号发送语法band_num_shift。解码器可以使用移位操作来避免乘法。不同的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(Y、U、或者V)是16,则对应于band_num=1、2,4、8、16,可能的band_num_shift候选是0、1、2、3和4,如表13所示。
POC | 分类器 | C0 band_num_shift | C0 band_num | 总类别 |
0 | 使用Y0位置的C0 | 4 | 16 | 16 |
1 | 使用Y7位置的C0 | 3 | 8 | 8 |
表13:Band_num和对应的Band_num_shift候选
在一些实施例中,应用于Cb和Cr的分类器是不同的。对于所有类别的Cb和Cr偏移都可以单独地通过信号发送。例如,通过信号发送的不同的偏移被应用于不同的色度分量,如下面的表14所示。
表14:单独地通过信号发送对于所有类别的Cb和Cr偏移
在一些实施例中,最大偏移值在序列参数集(SPS)/自适应参数集(APS)/图片参数集(PPS)/图片头部(PH)/条带头部(SH)/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别中被固定或通过信号被发送。例如,最大偏移量介于[-15,15]之间。不同的分量可以具有不同的最大偏移值。
在一些实施例中,偏移信令可以使用差分脉冲码调制(Differential pulse-codemodulation,DPCM)。例如,偏移{3,3,2,1,-1}可以用信号表示为{3、0,-1,-1,-2}。
在一些实施例中,可以将偏移存储在APS或存储缓冲器中,以供下一图片/条带再次使用。可以通过信号发送索引以指示哪些存储的先前帧偏移被用于当前图片。
在一些实施例中,Cb和Cr的分类器是相同的。例如,针对所有类别的Cb和Cr偏移可以联合地通过信号被发送,如下面的表15所示。
表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偏移可以由具有信令偏移设置(idx=0)的POC2再次使用,如下表20所示。
表20:通过信号发送索引以指示哪个先前解码的偏移集合用于当前帧
在一些实施例中,针对Cb和Cr的再次使用的偏移集合索引可以是不同的,例如如下表21所示。
表21:通过信号发送索引以指示哪个先前解码的偏移集合用于当前帧,该索引针对Cb分量和Cr分量可以是不同的。
在一些实施例中,偏移信令可以使用包括起点和长度的附加语法,以减少信令开销。例如,当band_num=256时,仅通过信号发送band_idx=37~44的偏移。在下表22-1的示例中,起点和长度的语法都是8位固定长度编码的,其应该与band_num比特匹配。
表22-1:偏移信令使用包括起点和长度的附加语法
在一些实施例中,如果CCSAO被应用于所有YUV 3分量,则同位的和相邻的YUV样点可以被联合地用于分类,并且针对Cb/Cr的所有上述偏移信令方法可以被扩展到Y/Cb/Cr。在一些实施例中,不同的分量偏移集合可以被单独地存储和使用(每个分量具有其自己的存储集合)或被联合地存储和使用(每个分量共享/再次使用同一存储集合)。下面的表22-2显示了一个单独的集合示例。
/>
表22-2:示出了不同的分量偏移集合可以被单独地存储和使用(每个分量具有其自己的存储集合)或被联合地存储和使用(每个分量共享/再次使用同一存储集合)的示例
在一些实施例中,如果序列比特深度高于10(或特定比特深度),则可以在通过信号发送之前量化偏移。在解码器侧,如下面的表23所示,在应用解码的偏移之前对解码的偏移进行去量化。例如,对于12比特序列,解码的偏移被左移(去量化)2。
通过信号发送的偏移 | 去量化了的和被应用的偏移 |
0 | 0 |
1 | 4 |
2 | 8 |
3 | 12 |
... | |
14 | 56 |
15 | 60 |
表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[class_index of R(x,y)]
R’(x,y)=Clip3(0,(1<<bit_depth)–1,R(x,y)+offset)
根据上述等式,使用当前图片和/或当前偏移集合的指示的分类器对每个亮度或者色度样点值R(x,y)进行分类。导出的类别索引的对应偏移被加到每个亮度或者色度样点值R(x,y)上。裁剪(clip)函数clip 3应用于(R(x,y)+offset),以使输出亮度或者色度样点值R'(x,y)在比特深度动态范围内,例如,从0到(1<<bit_depth)–1的范围。
在一些实施例中,下面描述边界处理。如果用于分类的同位的亮度(色度)样点和相邻的亮度(色度)样点中的任何一个在当前图片之外,则不对当前色度(亮度)样点应用CCSAO。图13A是示出了根据本公开的一些实施方式的如果用于分类的同位和相邻亮度(色度)样点中的任何一个在当前图片之外,则不对当前色度(亮度)样点应用CCSAO的框图。例如,例如,在图13A(a)中,如果使用分类器,则不对当前图片的左侧1列色度分量应用CCSAO。例如,如果使用了C1’,则如图13A(b)所示,不对当前画面的左侧1列和顶部1行色度分量应用CCSAO。
图13B是示出了根据本公开的一些实施方式的如果用于分类的同位和相邻亮度(色度)样点中的任何一个在当前图片之外,则对当前亮度或色度样点应用CCSAO的框图。在一些实施例中,如果用于分类的同位的亮度或色度样点和相邻的亮度或色度样点中的任何一个在当前画面之外,则一种变化是如图13B(a)所示的重复地使用缺失的样点,或者如图13B(b)所示的镜像填充缺失的样点以创建用于分类的样点,并且CCSAO可以应用于当前亮度或色度样点。在一些实施例中,如果用于分类的同位的亮度(色度)样点和相邻的亮度(色度)样点中的任何一个在当前子图片/条带/瓦片/图像片(patch)/CTU/360虚拟边界之外,则本文所公开的禁用/重复/镜像图片边界处理方法也可以应用于子图片/条带/瓦片/图像片(patch)/CTU/360虚拟边界。
例如,图片被分割为一个或多个瓦片行和一个或多个瓦片列。瓦片是覆盖图片的矩形区域的CTU的序列。
条带由整数个完整的瓦片或图片的瓦片内的整数个连续完整的CTU行构成。
子图片包含一个或多个条带,这些条带共同覆盖图片的矩形区域。
在一些实施例中,360度视频在球体上被捕获并且固有地没有“边界”,超出投影域中的参考图片的边界的参考样点可以总是从球体域中的相邻样点中获得。对于由多个面组成的投影格式,无论使用哪种紧凑的帧包装布置,帧包装图片中的两个或更多个相邻面之间都会出现不连续性。在VVC中,引入了垂直和/或水平虚拟边界(跨垂直和/或水平虚拟边界禁用环路滤波操作),这些边界的位置在SPS或图片头部中通过信号被发送。与使用两个瓦片(对于每组连续面有一个瓦片)相比,由于360虚拟边界的使用不要求面尺寸是CTU尺寸的倍数,因此,360虚拟边界的使用更灵活。在一些实施例中,垂直360虚拟边界的最大数量是3,水平360虚拟边界最大数量也是3。在一些实施例中,两个虚拟边界之间的距离大于或等于CTU尺寸,并且虚拟边界粒度是8个亮度样点,例如8×8样点网格。
图14是示出了根据本公开的一些实施方式的如果用于分类的对应选择的同位或相邻亮度样点在由虚拟边界定义的虚拟空间之外,则不对当前色度样点应用CCSAO的框图。在一些实施例中,虚拟边界(VB)是分隔图片帧内的空间的虚拟线。在一些实施例中,如果在当前帧中应用了虚拟边界(VB),则不对已经在由虚拟边界定义的虚拟空间之外选择了对应亮度位置的色度样点应用CCSAO。图14示出了具有9个亮度位置候选的针对C0分类器的虚拟边界的示例。对于每个CTU,CCSAO不应用于对应的选定亮度位置位于由虚拟边界包围的虚拟空间之外的色度样点。例如,在图14(a)中,当所选择的Y7亮度样点位置位于水平虚拟边界1406的另一侧时,CCSAO不应用于色度样点1402,该水平虚拟边界位于距帧底侧的4个像素行处。例如,在图14(b)中,当所选择的Y5亮度样点位置位于垂直虚拟边界1408的另一侧时,CCSAO不应用于色度样点1404,该垂直虚拟边界位于距帧右侧的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示出了根据本公开的一些实施方式的跨VB1702的9个亮度候选CCSAO增加2个额外的亮度行缓冲器的AVS的图示。对于虚拟边界(VB)1702之上的亮度和色度样点,在当前CTU行处处理DBF/SAO/ALF。对于VB1702之下的亮度和色度样点,在下一个CTU行处处理DBF/SAO/ALF。在AVS解码器硬件设计中,亮度行-4至-1的预DBF样点、行-5的预SAO样点、色度行-3至-1的预DBF样点、以及行-4的预SAF样点被存储为下一CTU行DBF/SAO/ALF处理的行缓冲器。当处理下一个CTU行时,不在行缓冲器中的亮度和色度样点不可用。然而,例如,在色度行-3(b)的位置,色度样点在下一个CTU行处理,但CCSAO需要预SAO亮度样点行-7、-6和-5来进行分类。预SAO亮度样点行-7、-6不在行缓冲器中,因此它们不可用。将预SAO亮度样点行-7和-6添加到行缓冲器中会增加解码器硬件实现成本。在一些示例中,亮度VB(-4行)和色度VB(-3行)可以是不同的(不对齐)。
类似于图17,图18A示出了根据本公开的一些实施方式的跨VB1802的9个亮度候选CCSAO增加1个额外的亮度行缓冲器的VVC的图示。VB在不同的标准中可以是不同的。在VVC中,亮度VB是行-4,色度VB是行-2,因此9个候选CCSAO增加1个亮度行缓冲器。
在一些实施例中,在第一解决方案中,如果任何色度样点的亮度候选跨越VB(在当前色度样点VB之外),则对于色度样点禁用CCSAO。图19A至图19C示出了根据本公开的一些实施方式的在AVS和VVC中,如果任何色度样点的亮度候选跨越VB1902(在当前色度样点VB之外),则对于色度样点禁用CCSAO。图14也示出了这种实现的一些示例。
在一些实施例中,在第二种解决方案中,针对“跨VB”亮度候选,从靠近VB的并在VB另一侧的亮度行(例如,亮度行-4)对CCSAO使用重复填充。在一些实施例中,针对“跨VB”色度候选实现了来自VB以下的最邻近亮度的重复填充。图20A至图20C示出了根据本公开的一些实施方式的在AVS和VVC中,如果任何色度样点的亮度候选跨越VB2002(在当前色度样点VB之外),则对于色度样点使用重复填充来启用CCSAO。图14(a)也示出了这种实现的一些示例。
在一些实施例中,在第三种解决方案中,针对“跨VB”亮度候选,从亮度VB以下对CCSAO使用镜像填充。图21A至图21C示出了根据本公开的一些实施方式的在AVS和VVC中,如果任何色度样点的亮度候选跨越VB2102(在当前色度样点VB之外),则对于色度样点使用镜像填充来启用CCSAO。图14(b)和图13B(b)也示出了这种实现的一些示例。在一些实施例中,在第四种解决方案中,“双侧对称填充”被用来应用CCSAO。图22A至图22B示出了根据本公开的一些实施方式的对于不同CCSAO形状的一些示例(例如,9个亮度候选(图22A)和8个亮度候选(图22B))使用双侧对称填充来启用CCSAO。对于具有色度样点的同位中心亮度样点的亮度样点集合,如果该亮度样点集合的一侧在VB 2202之外,则对该亮度样点集的两侧应用双侧对称填充。例如,在图22A中,亮度样点Y0、Y1和Y2都在VB 2202之外,因此使用Y3、Y4和Y5来填充Y0、Y1和Y2以及Y6、Y7和Y8。例如,在图22B中,亮度样点Y0在VB 2202之外,因此使用Y2来填充Y0,而使用Y5来填充Y7。
图18B示出了根据本公开的一些实施方式的当使用同位的或相邻的色度样点对当前亮度样点进行分类时所选择的色度候选跨越VB并且需要额外的色度行缓冲器。可以应用上述类似的解决方案1至4来处理该问题。
解决方案1是在亮度样点的任何色度候选跨越VB时对于该亮度样点禁用CCSAO。
解决方案2是针对“跨VB”色度候选使用来自VB以下的最邻近色度的重复填充。
解决方案3是针对“跨VB”色度候选使用来自色度VB以下的镜像填充。
解决方案4是使用“双侧对称填充”。对于以CCSAO同位色度样点为中心的候选集合,如果该候选集合的一侧在VB之外,则对其两侧应用双侧对称填充。
填充方法为应用CCSAO提供了更多亮度样点或色度样点的可能性,从而可以获得更多的编解码增益。
在一些实施例中,在底部图片(或条带、瓦片、砖块(brick))边界CTU行,VB以下的样点在当前CTU行被处理,因此上述特殊处理(解决方案1、2、3和4)不被应用于底部图片(或者切片、瓦片、砖块)边界的CTU行。例如,1920×1080的帧由128x128的CTU分割。一个帧包含15×9个CTU(向上取整)。底部CTU行是第15个CTU行。解码过程是逐个CTU行进行,并且对于每个CTU行是逐个CTU进行。需要沿着当前CTU行和下一CTU行之间的水平CTU边界应用去块。由于在一个CTU内,在底部4/2亮度/色度行,DBF样点(VVC情况)在下一个CTU行处理,并且DBF样点在当前CTU行不可用于CCSAO,因此对于每个CTU行应用CTB VB。然而,在图片帧的底部CTU行,由于没有剩余的下一CTU行,因此,底部4/2亮度/色度行的DBF样点在当前CTU行可用并且在当前CTU行被DBF处理。
在一些实施例中,图13至图22中显示的VB可以由子图片/条带/瓦片/图像片(patch)/CTU/360虚拟边界的边界来代替。在一些实施例中,可以切换图13至图22中的色度样点和亮度样点的位置。在一些实施例中,图13至图22中的色度样点和亮度样点的位置可以由第一色度样点和第二色度样点的位置来代替。在一些实施例中,CTU内的ALF VB通常可以是水平的。在一些实施例中,子图片/条带/瓦片/图像片(patch)/CTU/360虚拟边界的边界可以是水平或垂直的。
在一些实施例中,可以应用限制以减少CCSAO所需的行缓冲器,并简化边界处理条件检查,如图16所示。图23示出了根据本公开的一些实施方式的对于分类使用有限数量的亮度候选的限制。图23(a)示出了针对分类仅使用6个亮度候选的限制。图23(b)示出了针对分类仅使用4个亮度候选的限制。
在一些实施例中,实施了应用区域(applied region)。CCSAO应用区域单元(CCSAOapplied region unit)可以基于CTB。也就是说,在一个CTB中,开/关控制、CCSAO参数(用于分类的偏移、亮度候选位置、band_num、位掩码等、偏移集合索引)是相同的。
在一些实施例中,应用区域可以不与CTB边界对齐。例如,应用区域不与色度CTB边界对齐,而是被移位了。对于每个CTB,仍然通过信号发送语法(开/关控制、CCSAO参数),但真正的应用区域未与CTB边界对齐。图24示出了根据本公开的一些实施方式的CCSAO应用区域未与CTB/CTU边界2406对齐。例如,应用区域未与色度CTB/CTU边界2406对齐,而是被左上移位了(4,4)个样点到VB 2408。由于相同的去块参数用于每个8×8去块处理区域,因此这种不对齐的CTB边界设计有益于去块处理。
在一些实施例中,CCSAO应用区域单元(掩码尺寸)可以是变化的(大于或小于CTB尺寸),如表24所示。对于不同的分量,掩码尺寸可以不同。掩码尺寸可以在SPS/APS/PPS/PH/SH/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别被切换。例如,在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_contral_flag),如果区域开启/关闭控制标志关闭,则可以进一步通过信号发送CTB开/关标志。否则,CCSAO应用于该区域中的所有CTB,而无需进一步通过信号发送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/PS/PH/SH/区域(Region)/CTU/CU/子块(Subblock)/样点(Sample)级别中切换如何应用分类器集合索引的方法。例如,在一个帧中使用四组分类器(在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),因此图片帧被光栅划分(rasterpartitioned)为3个区域。每个区域可以具有其自己的区域全开标志以节省每个CTB开/关控制位。区域的数量取决于通过信号发送的图片set_num。
CCSAO应用区域可以是根据块内的编解码信息(样点位置、样点编解码模式、环路滤波器参数等)的特定区域。例如,1)仅当样点被跳过模式编解码时,才可以应用CCSAO应用区域,或者2)CCSAO应用区域仅包含沿着CTU边界的N个样点,或者3)CCSAO应用区域仅包含帧中8×8网格上的样点,或者4)CCSAO应用区域仅包含DBF过滤的样点,或者5)CCSAO应用区域仅包含CU中的顶部M行和左侧N行。不同的应用区域可以使用不同的分类器。不同的应用区域可以使用不同的分类器。例如,在CTU中,跳过模式使用C1,8×8网格使用C2,跳过模式和8×8网格采用C3。例如,在CTU中,跳过模式编解码样点使用C1,CU中心处的样点使用C2,CU中心处被跳过模式编解码的样点采用C3。图29是示出了根据本公开的一些实施方式的CCSAO分类器可以考虑当前或跨分量编解码信息的框图。例如,不同的编解码模式/参数/样点位置可以形成不同的分类器。不同的编解码信息可以组合以形成联合分类器。不同的区域可以使用不同的分类器。图29还示出了应用区域的另一示例。
在一些实施例中,实现的CCSAO语法在下面的表27中示出。在一些示例中,可以改变每个语法元素的二值化。在AVS3中,术语图像片(patch)与条带类似,图像片头部与条带头部类似。FLC代表固定长度编码。TU代表截断的一元编码。Egk代表k阶指数哥伦布编码,其中k可以是固定的。SVLC代表有符号EG0。UVLC代表无符号EG0。
/>
/>
/>
表27:示例性的CCSAO语法
如果较高级别的标志关闭,则较低级别的标志可以从标志的关闭状态推断出来,并且不需要通过信号被发送。例如,如果此图片中的ph_cc_sao_cb_flag为假(false),则ph_cc_sao_cb_band_num_minus1、ph_cc_so_cb_cb_luma_type、cc_sao_cb_offset_sign_flag、cc_sao_cb_offset_abs、ctb_cc_sao_cb_flag、cc_sau_cb_merge_left_flag和cc_sao_ab_merge_up_flag不存在并被推断为假(false)。
在一些实施例中,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(1) |
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_contral_flag指示是否启用cb/cr ctb开/关控制粒度。如果ph_cc_sao_cb_ctb_control_flag和ph_cc_sao_cr_ctb_contronl_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相结合,其中每个区域具有其自己的集合,则语法示例可以包括如下表31所示的区域开/关控制标志(picture_ccsao_luc_control_flag[compIdx][setIdx])。
表31:每个区域具有其自己的集合并且语法示例可以包括区域开/关控制标志
(picture_ccsao_lcu_control_flag[compIdx][setIdx])
在一些实施例中,以下进一步阐述了对帧内和帧间后预测SAO滤波器的扩展。在一些实施例中,本公开中公开的SAO分类方法可以用作后预测滤波器,并且该预测可以是帧内、帧间或诸如帧内块复制的其他预测工具。图30是示出了根据本公开的一些实施方式的本公开中公开的SAO分类方法用作后预测滤波器的框图。
在一些实施例中,对于每个Y、U和V分量,选择对应的分类器。对于每个分量预测样点,首先对其进行分类,并添加相应的偏移。例如,每个分量可以使用当前和相邻样点进行分类。Y使用当前Y和相邻Y样点,U/V使用当前U/V样点进行分类,如下表32所示。图31是示出了根据本公开的一些实施方式的对于后预测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滤波器偏移。
图32是示出了根据本公开的一些实施方式的使用跨分量相关对视频信号进行解码的示例性过程3200的流程图。
视频解码器30(如图3所示)从视频信号接收包括第一分量和第二分量的图片帧(3210)。
视频解码器30从与第二分量的相应样点相关联的第一分量的一个或多个样点的集合中确定对于第二分量的分类器(3220)。
视频解码器30根据分类器确定是否修改图片帧的区域内的第二分量的相应样点的值(3230)。在一些实施例中,所述区域通过划分所述图片帧而形成。
视频解码器30响应于根据分类器修改区域内的第二分量的相应样点的值的确定,根据分类器确定对于第二分量的相应样点的样点偏移(3240)。
视频解码器30基于所确定的样点偏移修改第二分量的相应样点的值(3250)。
在一些实施例中,第一分量是亮度分量而第二分量是第一色度分量,或者第一分量是第一色度分量而第二分量是亮度分量,或者第一分量是第一色度分量而第二分量是第二色度分量。
在一些实施例中,该区域是从由子图片、条带、瓦片、图像片(patch)、编码树单元(CTU)和360虚拟边界构成的组中选择的区域。
在一些实施例中,该区域的边界与CTU边界对齐。
在一些实施例中,该区域的边界与图片帧中8×8样点网格的边界对齐。
在一些实施例中,该区域包括区域边界,该区域边界包括第一分量的第一边界和第二分量的第二边界。
在一些实施例中,第一边界不与第二边界对齐。
在一些实施例中,第一边界与第二边界对齐。
在一些实施例中,根据分类器确定是否修改图片帧的区域内的第二分量的相应样点的值(3230)包括:根据与第二分量的相应样点相关联的第一分量的一个或多个样点的集合的任何一个样点相对于第二分量的相应样点位于区域边界的不同侧的确定,根据分类器确定不修改图片帧的区域内的第二分量的相应样点的值。
在一些实施例中,根据分类器确定是否修改图片帧的区域内的第二分量的相应样点的值(3230)包括:根据与第二分量的相应样点相关联的第一分量的一个或多个样点的集合的第一子集相对于第二分量的相应样点位于区域边界的不同侧,以及与第二分量的相应样点相关联的第一分量的一个或多个样点的集合的剩余子集相对于第二分量的相应样点位于区域边界的同一侧的确定,用来自第一分量的一个或多个样点的集合的剩余子集的第二子集替换第一子集;以及根据分类器确定修改图片帧的区域内的第二分量的相应样点的值。
在一些实施例中,来自第一分量的一个或多个样点的集合的剩余子集的第二子集来自剩余子集中的第一分量的与第一子集最近的一行或一列样点。
在一些实施例中,来自第一分量的一个或多个样点的集合的剩余子集的第二子集位于区域边界或第二分量的相应样点的与第一子集对称的位置。
在一些实施例中,根据分类器确定是否修改图片帧的区域内的第二分量的相应样点的值(3230)包括:根据与第二分量的相应样点相关联的第一分量的一个或多个样点的集合相对于第二分量的相应样点位于区域边界的不同侧的确定,利用相对于第二分量的相应样点在区域边界的同一侧上的第一分量的样点的第二集合替换第一分量的一个或多个样点的集合;以及根据分类器确定修改图片帧的区域内的第二分量的相应样点的值。
在一些实施例中,相对于第二分量的相应样点在区域边界的同一侧上的样点的第二集合来自相对于第二分量的相应样点在区域边界的同一侧上的第一分量的与第一分量的一个或多个样点的集合最近的一行或一列样点。
在一些实施例中,相对于第二分量的相应样点在区域边界的同一侧上的样点的第二集合位于区域边界或第二分量的相应样点的与第一分量的一个或多个样点的集合对称的位置。
在一些实施例中,根据分类器确定是否修改图片帧的区域内的第二分量的相应样点的值(3230)包括:根据与第二分量的相应样点相关联的第一分量的一个或多个样点的集合的第一子集相对于第二分量的相应样点位于区域边界的不同侧,以及与第二分量的相应样点相关联的第一分量的一个或多个样点的集合的剩余子集相对于第二分量的相应样点位于区域边界的同一侧的确定,通过一个或多个中心子集的第二子集来代替第一子集,该一个或多个中心子集来自第一分量的一个或多个样点的集合的剩余子集,以及在第一分量的一个或多个样点的集合的边界位置,通过第二子集或者来自第一分量的一个或多个样点的集合的剩余子集中的一个或多个中心子集的第四子集来代替剩余子集中的第三子集;以及根据分类器确定修改图片帧的区域内的第二分量的相应样点的值。
在一些实施例中,第三子集和第一子集对称地位于第一分量的一个或多个样点的集合内。
在一些实施例中,根据分类器确定是否修改图片帧的区域内的第二分量的相应样点的值(3230)包括:根据视频信号的色度格式为4:0:0的确定,根据分类器确定不修改图片帧的区域内的第二分量的相应样点的值。
图33示出了与用户接口3350耦合的计算环境3310。计算环境3310可以是数据处理服务器的一部分。计算环境3310包括处理器3320、存储器3330和输入/输出(I/O)接口3340。
处理器3320通常控制计算环境3310的整体操作,例如与显示、数据采集、数据通信和图像处理相关联的操作。处理器3320可以包括用于执行指令以执行上述方法中的全部或一些步骤的一个或更多个处理器。此外,处理器3320可以包括促进处理器3320与其他组件之间的交互的一个或更多个模块。处理器可以是中央处理单元(CPU)、微处理器、单片机、图形处理单元(GPU)等。
存储器3330被配置为存储各种类型的数据以支持计算环境3310的操作。存储器3330可以包括预定软件3332。这种数据的示例包括用于在计算环境3310上操作的任何应用或方法的指令、视频数据集、图像数据等。存储器3330可以通过使用任何类型的易失性或非易失性存储器设备或其组合来实现,例如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、闪存存储器、磁盘或光盘。
I/O接口3340提供处理器3320与外围接口模块(例如键盘、点击轮、按钮等)之间的接口。按钮可以包括但不限于主页按钮、开始扫描按钮和停止扫描按钮。I/O接口3340可以与编码器和解码器耦合。
在实施例中,还提供了一种包括例如存储器3330中的多个程序的非暂态计算机可读存储介质,所述多个程序可以由计算环境3310中的处理器3320执行以用于执行上述方法。备选地,非暂态计算机可读存储介质中可以存储有由编码器(例如,图2中的视频编码器20)使用例如上述编码方法产生以由解码器(例如,图3中的视频解码器30)在解码视频数据时使用的包括编码的视频信息(例如,包括一个或多个语法元素的视频信息)的比特流或数据流。非暂态计算机可读存储介质可以是例如ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘、光学数据存储设备等。
在实施例中,还提供了一种计算设备,该计算设备包括:一个或多个处理器(例如,处理器3320);以及在其中存储了可以由一个或多个处理器执行的多个程序的非暂态计算机可读存储介质或存储器3330,其中一个或多个处理器在执行多个程序时被配置为执行上述方法。
在实施例中,还提供了一种包括例如存储器3330中的多个程序的计算机程序产品,所述多个程序可以由计算环境3310中的处理器3320执行以用于执行上述方法。例如,计算机程序产品可以包括非暂态计算机可读存储介质。
在实施例中,计算环境3310可以由用于执行上述方法的一个或更多个ASIC、DSP、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、FPGA、GPU、控制器、微控制器、微处理器或其他电子组件来实现。
其他实施例还包括在各种其他实施例中组合或以其他方式重新布置的上述实施例的各种子集。
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质或通信介质,计算机可读存储介质对应于诸如数据存储介质之类的有形介质,通信介质包括促进将计算机程序从一个地方转移到另一个地方(例如,根据通信协议)的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是任何可用介质,其可以由一个或多个计算机或者一个或多个处理器访问以取回指令、代码和/或数据结构以实现本申请中描述的实施方式。计算机程序产品可以包括计算机可读介质。
在此处的实施方式的描述中使用的术语仅用于描述特定实施方式的目的,并不旨在限制权利要求的范围。在实施方式和所附权利要求的描述中使用的单数形式“一个”和“该/所述”也旨在包括复数形式,除非上下文另有明确指示。还应理解,本文所用的术语“和/或”是指并且涵盖一个或多个相关联的所列项目的任何和所有可能的组合。将会进一步理解,当在本说明书中使用时,术语“包括”指定所陈述的特征、要素和/或组件的存在,但不排除其它一个或多个特征、要素、组件和/或它们的组的存在或添加。
还应理解,虽然术语第一、第二等在本文中可用于描述各种要素,但这些要素不应受限于这些术语。这些术语仅用于区分一种要素与另一种要素。例如,在不脱离实施方式的范围的情况下,第一电极可以被称为第二电极,并且类似地,第二电极可以被称为第一电极。第一电极和第二电极都是电极,但不是同一个电极。
在整个说明书中以单数或复数形式对“一个示例”、“示例”、“示例性示例”等的引用表示结合示例描述的一个或多个特定特征、结构或特性包括在本申请的至少一个示例中。因此,贯穿本说明书的各处以单数或复数形式出现的短语“在一个示例中”或“在示例中”、“在示例性示例中”等不一定都指代同一示例。此外,一个或多个示例中的特定特征、结构或特性可以包括以任何合适的方式组合。
本申请的描述是为了说明和描述的目的而呈现的,并不旨在穷举或限制以所公开形式的本发明。受益于在以上描述和相关联的附图中呈现的教导,许多修改、变化和备选实施方式对于本领域普通技术人员将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理、实际应用,并使本领域的其他技术人员能够理解本发明的各种实现方式,并最好地利用具有各种修改的基本原理和各种实现方式,如适用于预期的特定用途。因此,应当理解,权利要求的范围不限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在包括在所附权利要求的范围内。
Claims (21)
1.一种视频信号的解码方法,所述方法包括:
从视频信号接收包括第一分量和第二分量的图片帧;
从与所述第二分量的相应样点相关联的所述第一分量的一个或多个样点的集合中确定对于所述第二分量的分类器;
根据所述分类器确定是否修改所述图片帧的区域内的所述第二分量的所述相应样点的值;
响应于根据所述分类器修改所述区域内的所述第二分量的所述相应样点的值的确定,根据所述分类器确定对于所述第二分量的所述相应样点的样点偏移;以及
基于所确定的样点偏移修改所述第二分量的所述相应样点的值,
其中,所述区域通过划分所述图片帧而形成。
2.根据权利要求1所述的方法,其中,
所述第一分量是亮度分量并且所述第二分量是第一色度分量;或者
所述第一分量是第一色度分量并且所述第二分量是亮度分量;或者
所述第一分量是第一色度分量并且所述第二分量是第二色度分量。
3.根据权利要求1所述的方法,其中,所述区域是从由子图片、条带、瓦片、图像片(patch)、编码树单元(CTU)和360虚拟边界构成的组中选择的区域。
4.根据权利要求3所述的方法,其中,所述区域的边界与CTU边界对齐。
5.根据权利要求3所述的方法,其中,所述区域的边界与所述图片帧中8×8样点网格的边界对齐。
6.根据权利要求1所述的方法,其中,所述区域包括区域边界,所述区域边界包括所述第一分量的第一边界和所述第二分量的第二边界。
7.根据权利要求6所述的方法,其中,所述第一边界不与所述第二边界对齐。
8.根据权利要求6所述的方法,其中,所述第一边界与所述第二边界对齐。
9.根据权利要求6所述的方法,其中,所述根据所述分类器确定是否修改所述图片帧的区域内的所述第二分量的所述相应样点的值包括:
根据与所述第二分量的所述相应样点相关联的所述第一分量的一个或多个样点的集合的任何一个样点相对于所述第二分量的所述相应样点位于所述区域边界的不同侧的确定,
根据所述分类器确定不修改所述图片帧的所述区域内的所述第二分量的所述相应样点的值。
10.根据权利要求6所述的方法,其中,所述根据所述分类器确定是否修改所述图片帧的区域内的所述第二分量的所述相应样点的值包括:
根据与所述第二分量的所述相应样点相关联的所述第一分量的一个或多个样点的集合的第一子集相对于所述第二分量的所述相应样点位于所述区域边界的不同侧,以及与所述第二分量的所述相应样点相关联的所述第一分量的一个或多个样点的集合的剩余子集相对于所述第二分量的所述相应样点位于所述区域边界的同一侧的确定,
将所述第一子集替换为第二子集,所述第二子集来自所述第一分量的一个或多个样点的集合的所述剩余子集;以及
根据所述分类器确定修改所述图片帧的所述区域内的所述第二分量的所述相应样点的值。
11.根据权利要求10所述的方法,其中,来自所述第一分量的一个或多个样点的集合的所述剩余子集的所述第二子集来自所述剩余子集中的所述第一分量的与所述第一子集最近的一行或一列样点。
12.根据权利要求10所述的方法,其中,来自所述第一分量的一个或多个样点的集合的所述剩余子集的所述第二子集位于所述区域边界或所述第二分量的所述相应样点的与所述第一子集对称的位置。
13.根据权利要求6所述的方法,其中,所述根据所述分类器确定是否修改所述图片帧的区域内的所述第二分量的所述相应样点的值包括:
根据与所述第二分量的所述相应样点相关联的所述第一分量的一个或多个样点的所述集合相对于所述第二分量的所述相应样点位于所述区域边界的不同侧的确定,
将所述第一分量的一个或多个样点的所述集合替换为相对于所述第二分量的所述相应样点在所述区域边界的同一侧上的所述第一分量的样点的第二集合;以及
根据所述分类器确定修改所述图片帧的所述区域内的所述第二分量的所述相应样点的值。
14.根据权利要求13所述的方法,其中,相对于所述第二分量的所述相应样点在所述区域边界的同一侧上的样点的所述第二集合来自相对于所述第二分量的所述相应样点在所述区域边界的同一侧上的所述第一分量的与所述第一分量的一个或多个样点的所述集合最近的一行或一列样点。
15.根据权利要求13所述的方法,其中,相对于所述第二分量的所述相应样点在所述区域边界的同一侧上的样点的所述第二集合位于所述区域边界或所述第二分量的所述相应样点的与所述第一分量的一个或多个样点的所述集合对称的位置。
16.根据权利要求6所述的方法,其中,所述根据所述分类器确定是否修改所述图片帧的区域内的所述第二分量的所述相应样点的值包括:
根据与所述第二分量的所述相应样点相关联的所述第一分量的一个或多个样点的集合的第一子集相对于所述第二分量的所述相应样点位于所述区域边界的不同侧,以及与所述第二分量的所述相应样点相关联的所述第一分量的一个或多个样点的集合的剩余子集相对于所述第二分量的所述相应样点位于所述区域边界的同一侧的确定,
将所述第一子集替换为一个或多个中心子集的第二子集,所述一个或多个中心子集来自所述第一分量的一个或多个样点的集合的所述剩余子集,并且
在所述第一分量的一个或多个样点的所述集合的边界位置将所述剩余子集中的第三子集替换为所述第二子集或者所述一个或多个中心子集的第四子集,所述一个或多个中心子集来自所述第一分量的一个或多个样点的集合的所述剩余子集;以及
根据所述分类器确定修改所述图片帧的所述区域内的所述第二分量的所述相应样点的值。
17.根据权利要求16所述的方法,其中,所述第三子集和所述第一子集对称地位于所述第一分量的一个或多个样点的所述集合内。
18.根据权利要求1所述的方法,其中,所述根据所述分类器确定是否修改所述图片帧的区域内的所述第二分量的所述相应样点的值包括:
根据所述视频信号的色度格式为4:0:0的确定,
根据所述分类器确定不修改所述图片帧的所述区域内的所述第二分量的所述相应样点的值。
19.一种电子装置,包括:
一个或多个处理单元;
耦合到所述一个或多个处理单元的存储器;以及
存储在所述存储器中的多个程序,当由所述一个或多个处理单元执行时,所述多个程序使得所述电子装置执行权利要求1-18中任一项所述的方法。
20.一种计算机可读存储介质,其中存储有比特流,所述比特流包括由根据权利要求1-18中任一项所述的视频信号的解码方法生成的视频信息。
21.一种非暂时性计算机可读存储介质,其存储由具有一个或多个处理单元的电子装置执行的多个程序,其中所述多个程序在由所述一个或多个处理单元执行时使得所述电子装置执行权利要求1-18中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/200,626 | 2021-03-18 | ||
US202163164459P | 2021-03-22 | 2021-03-22 | |
US63/164,459 | 2021-03-22 | ||
PCT/US2022/020538 WO2022197794A1 (en) | 2021-03-18 | 2022-03-16 | Coding enhancement in cross-component sample adaptive offset |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117296315A true CN117296315A (zh) | 2023-12-26 |
Family
ID=88985508
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280017091.2A Pending CN117203962A (zh) | 2021-03-18 | 2022-03-16 | 跨分量样本自适应偏移中的编解码增强 |
CN202280022405.8A Pending CN117296315A (zh) | 2021-03-18 | 2022-03-16 | 跨分量样点自适应偏移中的编解码增强 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280017091.2A Pending CN117203962A (zh) | 2021-03-18 | 2022-03-16 | 跨分量样本自适应偏移中的编解码增强 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN117203962A (zh) |
-
2022
- 2022-03-16 CN CN202280017091.2A patent/CN117203962A/zh active Pending
- 2022-03-16 CN CN202280022405.8A patent/CN117296315A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN117203962A (zh) | 2023-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114007067B (zh) | 对视频信号进行解码的方法、设备和介质 | |
CN116418993A (zh) | 视频编码的方法、装置和介质 | |
US20230396781A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
CN116325734A (zh) | 具有虚拟边界的跨分量样点自适应偏移中的色度编解码增强 | |
US20240007652A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
CN115989675A (zh) | 交叉分量样本自适应偏移中的色度编码增强 | |
CN115956362A (zh) | 跨分量样点自适应偏移中的色度编码增强 | |
US20230336785A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
US20230319315A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
EP4285591A1 (en) | Chroma coding enhancement in cross-component sample adaptive offset | |
CN117296315A (zh) | 跨分量样点自适应偏移中的编解码增强 | |
US20240137546A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
CN116965017A (zh) | 在跨分量样点自适应偏移中的色度编解码增强 | |
CN116671105A (zh) | 具有虚拟边界的跨分量样点自适应偏移中的色度编解码增强 | |
CN117413516A (zh) | 跨分量样本自适应偏移中的编解码增强 | |
CN117917074A (zh) | 跨分量样点自适应偏移中的编解码增强 | |
CN117769834A (zh) | 跨分量样点自适应偏移中的编解码增强 | |
CN117795957A (zh) | 跨分量样点自适应偏移中的编解码增强 | |
CN116569551A (zh) | 交叉分量样本自适应偏移中的色度编码增强 | |
CN118318438A (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 |