CN116965017A - 在跨分量样点自适应偏移中的色度编解码增强 - Google Patents
在跨分量样点自适应偏移中的色度编解码增强 Download PDFInfo
- Publication number
- CN116965017A CN116965017A CN202280011643.9A CN202280011643A CN116965017A CN 116965017 A CN116965017 A CN 116965017A CN 202280011643 A CN202280011643 A CN 202280011643A CN 116965017 A CN116965017 A CN 116965017A
- Authority
- CN
- China
- Prior art keywords
- component
- samples
- sample
- classifier
- 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 claims description 26
- 238000000034 method Methods 0.000 claims abstract description 90
- 238000012545 processing Methods 0.000 claims description 61
- 238000003860 storage Methods 0.000 claims description 25
- 235000009508 confectionery Nutrition 0.000 claims description 5
- 241000023320 Luma <angiosperm> Species 0.000 description 86
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 86
- 238000010586 diagram Methods 0.000 description 50
- 230000008569 process Effects 0.000 description 41
- 239000013598 vector Substances 0.000 description 34
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 22
- 239000000872 buffer Substances 0.000 description 20
- 238000013139 quantization Methods 0.000 description 18
- 230000011664 signaling Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 16
- 238000005192 partition Methods 0.000 description 16
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 238000000638 solvent extraction Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 7
- 238000005070 sampling Methods 0.000 description 7
- 230000011218 segmentation Effects 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- 101150114515 CTBS gene Proteins 0.000 description 4
- 230000002146 bilateral effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 101100520660 Drosophila melanogaster Poc1 gene Proteins 0.000 description 3
- 101100520662 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PBA1 gene Proteins 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000003287 optical effect 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
- 101100520663 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ADD66 gene Proteins 0.000 description 1
- 230000003190 augmentative 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
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000009795 derivation Methods 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
- 230000002093 peripheral effect Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 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年02月01日提交的题为“跨分量样点自适应偏移”的美国临时专利申请No.63/144,414以及于2021年02月04日提交的题为“跨分量样点自适应偏移”的美国临时专利申请No.63/145,940的优先权,其全部内容通过引用并入本文。
技术领域
本申请总体涉及视频编解码和压缩,并且更具体地,涉及关于提高亮度和色度两者编解码效率的方法和装置。
背景技术
各种电子设备(诸如数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏机、智能电话、视频电话会议设备、视频流设备等)都支持数字视频。电子设备通过实施视频压缩/解压缩标准来发送、接收、编码、解码和/或存储数字视频数据。一些众所周知的视频编解码标准包括由ISO/IECMPEG和ITU-TVCEG联合开发的通用视频编解码(VVC)、高效视频编解码(HEVC,也称为H.265或MPEG-H第2部分)和高级视频编码(AVC,也称为H.264或MPEG-4第10部分)。AO媒体视频1(AV1)是由开放媒体联盟(AOM)开发的,作为其先前标准VP9的后继者。音视频编解码(AVS),是指数字音频和数字视频压缩标准,是由中国音视频编解码标准工作组制定的又一系列视频压缩标准。
视频压缩通常包括执行空间(帧内)预测和/或时间(帧间)预测来减少或移除视频数据中固有的冗余。对于基于块的视频编码,将视频帧分割为一个或更多个条带,每个条带具有多个视频块,视频块也可被称为编码树单元(CTU)。每个CTU可包含一个编码单元(CU)或者递归地被拆分为更小的CU直到达到预定义的最小CU尺寸为止。每个CU(也称为叶CU)包含一个或多个变换单元(TU)并且每个CU还包含一个或多个预测单元(PU)。可以以帧内、帧间或IBC模式对每个CU进行编码。视频帧的帧内编码(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是示出根据本公开的一些实施方式的与AVS标准中的增强样点自适应偏移(ESAO)并行应用的CCSAO的系统和过程的框图。
图6E是示出根据本公开的一些实施方式的在SAO之后应用CCSAO的系统和过程的框图。
图6F是示出根据本公开的一些实施方式的CCSAO的系统和过程可在没有CCALF的情况下独立工作的框图。
图6G是示出根据本公开的一些实施方式的与跨分量自适应环路滤波器(CCALF)并行应用的CCSAO的系统和过程的框图。
图7是示出根据本公开的一些实施方式的使用CCSAO的样点处理的框图。
图8是示出根据本公开的一些实施方式的CCSAO过程与垂直和水平去块滤波器(DBF)交织的框图。
图9是示出根据本公开的一些实施方式的使用跨分量相关对视频信号进行解码的示例性过程的流程图。
图10A是示出根据本公开的一些实施方式的使用不同亮度(或色度)样点位置进行C0分类的分类器的框图。
图10B示出根据本公开的一些实施方式的针对亮度候选的不同形状的一些示例。
图11是示出根据本公开的一些实施方式的可将所有同位和相邻亮度/色度样点馈送到CCSAO分类中的采样过程的框图。
图12示出根据本公开的一些实施方式的通过用通过对同位亮度样点和相邻亮度样点进行加权获得的值代替同位亮度样点值的示例性分类器。
图13A是示出根据本公开的一些实施方式的在用于分类的同位和相邻亮度(色度)样点中的任一个在当前图片外部的情况下不将CCSAO应用于当前色度(亮度)样点的框图。
图13B是示出根据本公开的一些实施方式的在用于分类的同位和相邻亮度或色度样点中的任一个在当前图片外部的情况下将CCSAO应用于当前亮度或色度样点的框图。
图14是示出根据本公开的一些实施方式的在用于分类的相应选择的同位或相邻亮度样点在由虚拟边界(VB)定义的虚拟空间外部的情况下不将CCSAO应用于当前色度样点的框图。
图15示出根据本公开的一些实施方式的对虚拟边界外部的亮度样点应用重复或镜像填充。
图16示出根据本公开的一些实施方式的在所有9个同位相邻亮度样点用于分类的情况下需要额外1个亮度线缓冲器。
图17示出根据本公开的一些实施方式的AVS中跨越VB的9个亮度候选CCSAO可增加2个额外亮度线缓冲器的示图。
图18示出根据本公开的一些实施方式的VVC中跨越VB的9个亮度候选CCSAO可增加1个额外亮度线缓冲器的示图。
图19A至图19C示出根据本公开的一些实施方式的在AVS和VVC中在色度样点的亮度候选中的任一个跨越VB(在当前色度样点VB外)的情况下针对色度样点禁用CCSAO。
图20A至图20C示出根据本公开的一些实施方式的在AVS和VVC中在色度样点的亮度候选中的任一个跨越VB(在当前色度样点VB外)的情况下使用针对色度样点的重复填充来启用CCSA。
图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是示出根据本公开的一些实施方式的使用跨分量相关对视频信号进行解码的示例性过程的流程图。
图32是示出根据本公开的一些实施方式的与用户接口耦接的计算环境的示图。
具体实施方式
现在将详细参照具体实施方式,在附图中示出具体实施方式的示例。在以下详细描述中,阐述了很多非限制性具体细节以便帮助理解本文呈现的主题。但是对于本领域普通技术人员将显而易见的是,在不脱离权利要求的范围的情况下,可使用各种替代方案,并且可在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员将显而易见的是,本文呈现的主题可在具有数字视频能力的许多类型的电子设备上实现。
第一代AVS标准包括中国国家标准“信息技术,高级音视频编解码,第2部分:视频”(称为AVS1)和“信息技术,高级音视频编解码,第16部分:广播电视视频”(称为AVS+)。与MPEG-2标准相比,第一代AVS标准可在相同的感知质量下提供大约50%的比特率节省。第二代AVS标准包括中国国家标准“信息技术,高效多媒体编解码”(称为AVS2)系列,其主要针对超HD TV节目的传输。AVS2的编码效率是AVS+的编码效率的两倍。同时,AVS2标准视频部分由电气和电子工程师协会(IEEE)提交作为应用的一个国际标准。AVS3标准是用于UHD视频应用的一个新一代视频编解码标准,其旨在超越最新国际标准HEVC的编解码效率,最新国际标准HEVC提供比HEVC标准节省大约30%的比特率。在2019年03月,在第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。随后,存储设备32中的编码视频数据可由目标设备14经由输入接口28被访问。存储设备32可包括各种分布式或本地访问的数据存储介质中的任何数据存储介质,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存存储器、易失性或非易失性存储器、或者用于存储编码视频数据的任何其它合适的数字存储介质。在另一示例中,存储设备32可相应于文件服务器或可保持由源设备12生成的编码视频数据的另一中间存储设备。目标设备14可从存储设备32经由流传输或下载来访问存储的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据发送到目标设备14的任何类型的计算机。示例性文件服务器包括web服务器(例如,用于网站)、FTP服务器、网络附属存储(NAS)设备或本地磁盘驱动器。目标设备14可通过适合于访问存储在文件服务器上的编码视频数据的任何标准数据连接来访问编码视频数据,标准数据连接包括无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或无线信道和有线连接两者的组合。编码视频数据从存储设备32的传输可以是流传输、下载传输或流传输和下载传输两者的组合。
如图1中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可包括诸如以下项的源或此类源的组合:视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频存档、用于从视频内容提供者接收视频的视频馈入接口、和/或用于生成作为源视频的计算机图形数据的计算机图形系统。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目标设备14可形成相机电话或视频电话。然而,本申请中所描述的实施方式通常可适用于视频编码/解码,并且可应用于无线和/或有线应用。
可由视频编码器20对捕获、预先捕获或计算机生成的视频进行编码。可经由源设备12的输出接口22直接将编码视频数据发送到目标设备14。还可(或可选地)将编码视频数据存储到存储设备32上以供稍后被目标设备14或其它设备访问,以用于解码和/或回放。输出接口22可进一步包括调制解调器和/或发送器。
目标设备14包括输入接口28、视频解码器30和显示器设备34。输入接口28可包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16通信传送或在存储设备32上提供的编码视频数据可包括由视频编码器20生成的各种语法元素以供视频解码器30在对视频数据进行解码时使用。此类语法元素可被包括在通信介质上发送、存储在存储介质上或存储在文件服务器上的编码视频数据内。
在一些实施方式中,目标设备14可包括显示器设备34,显示器设备34可以是集成显示器设备和被配置为与目标设备14通信的外部显示器设备。显示器设备34将解码视频数据显示给用户,并且可包括各种显示器设备中的任何显示器设备,诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示器设备。
视频编码器20和视频解码器30可根据专有标准或行业标准(例如,VVC、HEVC、MPEG-4、Part 10、高级视频编码(AVC)、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的组件编码的视频数据。视频数据存储器40中的视频数据可例如从视频源18获得。DPB 64是存储供视频编码器20(例如,以帧内或帧间预测编码模式)在对视频数据进行编码时使用的参考视频数据的缓冲器。视频数据存储器40和DPB 64可由各种存储器设备中的任何存储器设备形成。在各种示例中,视频数据存储器40可与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。
如图2中所示,在接收到视频数据之后,预测处理单元41内的分割单元45将视频数据分割为视频块。此分割还可包括根据与视频数据相关联的预定义的拆分结构(诸如四叉树结构)将视频帧分割为条带、分区(tile)或其它更大编码单元(CU)。视频帧可被划分为多个视频块(或被称为分区的视频块集合)。预测处理单元41可基于误差结果(例如,编码速率和失真等级)为当前视频块选择多个可行预测编码模式中的一个,诸如多个帧内预测编码模式中的一个或多个帧间预测编码模式中的一个。预测处理单元41可将所得的帧内预测编码块或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重建编码块以用于随后作为参考帧的一部分使用。预测处理单元41还将语法元素(诸如运动矢量、帧内模式指示符、分割信息和其它此类语法信息)提供给熵编码单元56。
为了选择用于当前视频块的合适的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以与和待编码的当前块在同一帧中的一个或更多个相邻块相关地执行当前视频块的帧内预测编码以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44与一个或更多个参考帧中的一个或更多个预测块相关地执行当前视频块的帧间预测编码以提供时间预测。视频编码器20可执行多个编码遍次,例如,来为视频数据的每个块选择合适的编码模式。
在一些实施方式中,运动估计单元42通过根据视频帧序列内的预定模式生成运动矢量来确定用于当前视频帧的帧间预测模式,运动矢量指示当前视频帧内的视频块的预测单元(PU)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成估计针对视频块的运动的运动矢量的过程。例如,运动矢量可指示当前视频帧或图片内的视频块的PU相对于与当前帧内正被编码的当前块(或其它编码单元)相关的参考帧内的预测块(或其它编码单元)的位移。预定模式可将序列中的视频帧指定为P帧或B帧。帧内BC单元48可以以与由运动估计单元42确定用于帧间预测的运动矢量类似的方式确定用于帧内BC编码的矢量(例如,块矢量),或可利用运动估计单元42确定块矢量。
在像素差方面,预测块是被认为与待编码视频块的PU紧密匹配的参考帧的块,像素差可由绝对差总和(SAD)、平方差总和(SSD)或其它差度量确定。在一些实施方式中,视频编码器20可计算用于DPB 64中存储的参考帧的子整数像素位置的值。例如,视频编码器20可对参考帧的四分之一像素位置、八分之一像素位置或其它分数像素位置的值进行内插。因此,运动估计单元42可相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动矢量。
运动估计单元42通过以下来计算针对帧间预测编码帧中的视频块的PU的运动矢量:将PU的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)选择的参考帧的预测块的位置进行比较,第一参考帧列表和第二参考帧列表中的每一个标识存储在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的其它组件进行解码的视频数据,诸如编码视频比特流。存储在视频数据存储器79中的视频数据可例如从存储设备32、从本地视频源(诸如相机)、经由视频数据的有线或无线网络通信,或通过访问物理数据存储介质(例如,闪存驱动器或硬盘)获得。视频数据存储器79可包括存储来自编码视频比特流的编码视频数据的编码图片缓冲器(CPB)。视频解码器30的解码图片缓冲器(DPB)92存储参考视频数据以供视频解码器30(例如,以帧内或帧间预测编码模式)在对视频数据进行解码时使用。视频数据存储器79和DPB 92可由各种存储器设备中的任何存储器设备形成,诸如动态随机存取存储器(DRAM)(包括同步DRAM(SDRAM))、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器设备。出于说明性目的,视频数据存储器79和DPB 92在图3中描绘为视频解码器30的两个不同组件。但是对于本领域的技术人员将显而易见的是,视频数据存储器79和DPB 92可由同一存储器设备或单独存储器设备提供。在一些示例中,视频数据存储器79可与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。
在解码过程期间,视频解码器30接收表示编码视频帧的视频块和相关联的语法元素的编码视频比特流。视频解码器30可在视频帧级和/或视频块级接收语法元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符、以及其它语法元素。然后,熵解码单元80将运动矢量和其它语法元素转发到预测处理单元81。
当视频帧被编码为帧内预测编码(I)帧或用于其它类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测处理单元84可基于用信号传送的帧内预测模式和来自当前帧的先前解码块的参考数据来生成用于当前视频帧的视频块的预测数据。
当视频帧被编码为帧间预测编码(即,B或P)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其它语法元素生成针对当前视频帧的视频块的一个或更多个预测块。预测块中的每一个可从参考帧列表中的一个参考帧列表内的参考帧生成。视频解码器30可基于存储在DPB 92中的参考帧使用默认构建技术来构建参考帧列表,列表0和列表1。
在一些示例中,当根据本文描述的帧内BC模式对视频块进行编码时,预测处理单元81的帧内BC单元85基于从熵解码单元80接收的块矢量和其它语法元素生成针对当前视频块的预测块。预测块可在由视频编码器20定义的与当前视频块的同一图片的重建区域内。
运动补偿单元82和/或帧内BC单元85通过解析运动矢量和其它语法元素来确定针对当前视频帧的视频块的预测信息,然后使用该预测信息生成针对正被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语法元素中的一些语法元素来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,B或P)、用于针对帧的参考帧列表中的一个或更多个的构建信息、用于帧的每个帧间预测编码视频块的运动矢量、用于帧的每个帧间预测编码视频块的帧间预测状态、以及用于对当前视频帧中的视频块进行解码的其它信息。
类似地,帧内BC单元85可使用接收到的语法元素中的一些语法元素,例如标记,以确定当前视频块是使用帧内BC模式预测的、帧的哪些视频块在重建区域内且应被存储在DPB 92中的构建信息、用于帧的每个帧内BC预测视频块的块矢量、用于帧的每个帧内BC预测视频块的帧内BC预测状态、以及用于对当前视频帧中的视频块进行解码的其它信息。
运动补偿单元82还可使用如由视频编码器20在视频块的编码期间使用的内插滤波器执行内插,以计算针对参考块的子整数像素的内插值。在这种情况下,运动补偿单元82可从接收到的语法元素确定由视频编码器20使用的内插滤波器,并且使用这些内插滤波器来生成预测块。
反量化单元86使用由视频编码器20针对视频帧中的每个视频块计算的用于确定量化程度的相同量化参数,对在比特流中提供且由熵解码单元80熵解码的量化的变换系数进行反量化。逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重建残差块。
在运动补偿单元82或帧内BC单元85基于矢量和其它语法元素生成针对当前视频块的预测块之后,加法器90通过将来自逆变换处理单元88的残差块与由运动补偿单元82和帧内BC单元85生成的相应预测块相加,来重建针对当前视频块的解码视频块。环路滤波器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×64CTU 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分别用信号传送对带偏移滤波类型的使用和对边缘偏移滤波类型的使用。在由等于1的sao-type-idx指定的带偏移模式中,所选择的偏移值直接取决于样点幅度。在该模式中,整个样点幅度范围被均匀地划分为32个分段(称为带),并且属于这些带中的四个带(在32个带内是连续的)的样点值通过与被发送的值(被表示为带偏移)相加而被修改,带偏移可以是正的或负的。使用四个连续带的主要原因是在可能出现带状伪影的平滑区域中,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类别。
表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,亮度样点偏移仅由亮度样点决定。然而,例如,具有相同带偏移(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的系统和过程的框图。总之,在一些实施例中,为了对当前亮度样点进行分类,可以使用当前亮度样点和相邻亮度样点、同位色度样点和相邻色度样点(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)并行应用。图6D是示出根据本公开的一些实施方式的与AVS标准中的ESAO并行应用的CCSAO的系统和过程的框图。
图6E是示出根据本公开的一些实施方式的在SAO之后应用CCSAO的系统和过程的框图。在一些实施例中,图6E示出了CCSAO的位置可以在SAO(即,VVC标准中的跨分量自适应环路滤波器(CCALF)的位置之后)。图6F是示出根据本公开的一些实施方式的CCSAO的系统和过程可在没有CCALF的情况下独立工作的框图。在一些实施例中,例如,在AVS3标准中,SAO Y/Cb/Cr可以被ESAO代替。
图6G是示出根据本公开的一些实施方式的与CCALF并行应用的CCSAO的系统和过程的框图。在一些实施例中,图6G示出了CCSAO可以与CCALF并行应用。在一些实施例中,在图6G中,可以切换CCALF和CCSA0的位置。在一些实施例中,在图6A到图6G中,或贯穿本公开,SAO Y/Cb/Cr块可以被ESAO Y/Cb/Cr(在AVS3中)或CDEF(在AV1中)代替。注意,Y/Cb/Cr也可以在视频编解码区域中被表示为Y/U/V。
在一些实施例中,当前色度样点分类重新使用同位亮度样点的SAO类型(type)(边缘偏移(EO)或BO)、分类(class)和类别(category)。可用信号发送或从解码器自身导出相应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和水平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和水平DBF交织的框图。在一些实施例中,图6、图7和图8中的CCSAO块可以是选择性的。例如,将Y0_DBF_V和Yi_DBF_V用于第一CCSAO_V,其应用与图6中相同的样点处理,同时将DBF_V亮度样点的输入用作CCSA0输入。
在一些实施例中,下表2示出了实施的CCSAO语法。
表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的流程图。
视频解码器301接收包括第一分量和第二分量的视频信号(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和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和Cr偏移值。
在一些实施例中,接收与第二分量相关联的多个偏移(920)包括接收语法元素,其中该语法元素指示CTU的所接收的偏移是否与该CTU的相邻CTU之一的偏移相同,其中相邻CTU为左侧相邻CTU或顶部相邻CTU。例如,cc_sao_merge_up_flag指示CCSAO偏移是从左侧CTU还是从上方CTU被合并。
在一些实施例中,视频信号还包括第三分量,并且使用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)/编码树单元(CTU)/编码单元(CU)级中切换不同的分类器。例如,在图10中,将Y0用于POC0,而将Y7用于POC1,如下表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/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中所示。在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块级中用信号发送10比特位掩码以指示分类器。例如,位掩码11 1100 0000表示针对给定10比特亮度样点值,仅最高有效位(MSB):4比特用于分类,并且总共产生16个分类。另一示例位掩码10 0100 0001表示仅3比特用于分类,并且总共产生8个分类。
在一些实施例中,位掩码长度(N)可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块级中被固定或切换。例如,对于10比特序列,在图片中的PH中用信号发送4比特位掩码1110,并且MSB 3比特b9、b8、b7用于分类。另一示例是LSB上的4比特位掩码0011,并且b0、b1用于分类。位掩码分类器可以应用于亮度或色度分类。对于位掩码N使用MSB还是LSB可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块级中被固定或切换。
在一些实施例中,亮度位置和C3位掩码可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块级中被组合和切换。不同的组合可以是不同的分类器。
在一些实施例中,可以应用位掩码限制的“1s的最大数量”来限制偏移的相应数量。例如,在SPS中将位掩码的“1s的最大数量”限制为4,并且这使得序列中的最大偏移为16。不同POC中的位掩码可不同,但“1s的最大数量”不应超过4(总分类数不应超过16)。可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块级中用信号发送和切换“1s的最大数量”值。
表6-2:分类器示例使用位掩码进行分类(位掩码位置加下划线)
在一些实施例中,如图11中所示,其它跨分量色度样点,例如色度样点1102及其相邻样点,也可以被馈送到CCSAO分类中,例如,针对当前色度样点1104的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时具有[-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中所示。
/>
表8:将不同的通用分类器应用于不同的图片
在一些实施例中,在相同的POC中使用多个分类器。当前帧被划分为若干区域,并且每个区域使用相同的分类器。例如,在POC0中使用3个不同分类器,并且在CTU级中用信号发送使用哪个分类器(0、1或2),如下表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时:不应用CCSA0;当TU码为10时:应用集合0;当TU码为110时,应用集合1;当TU码为1110时:应用集合2;当TU码为1111时:应用集合3。固定长度码、哥伦布莱斯码和指数哥伦布码也可以用于指示针对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的分类器
针对1280×720序列POC0(如果CTU尺寸为128×128,则帧中的CTU的数量为10×6)给出Cb和Cr CTB偏移集合索引的示例。POC0 Cb使用4个偏移集合且Cr使用1个偏移集合。如下表11-1所示,当偏移集合索引为0时:不应用CCSA0;当偏移集合索引为1时:应用集合0;当偏移集合索引为2时:应用集合1;当偏移集合索引为3时:应用集合2;当偏移集合索引为4时:应用集合3。类型表示所选择的同位亮度样点(Yi)的位置。不同的偏移集合可以具有不同的类型、band_num和相应的偏移offset。
表11-1:针对1280×720序列POC0(如果CTU尺寸为128×128,则帧中的CTU的数量为10×6)给出Cb和Cr CTB偏移集合索引的示例
在一些实施例中,在下表11-2中列出了联合使用同位/当前和相邻Y/U/V样点进行分类的示例(针对每个Y/U/V分量的3分量联合bandNum分类)。在POC0中,{2,4,1}偏移集合分别用于{Y,U,V}。每个偏移集合可以在SPS/APS/PPS/PH/SH/CTU/CU/子块级中自适应地切换。不同的偏移集合可以具有不同的分类器。例如,作为图6B和图6C中指示的候选位置(candPos),为了对当前Y4亮度样点进行分类,Y集合0选择{当前Y4,同位U4,同位V4}作为候选,分别具有不同的bandNum{Y,U,V}={16,1,2}。在{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分类中。在该示例中,使用具有bandNum={4,1,2}的CandPos={相邻Y8,相邻U3,相邻V0},这产生8个分类。
表11-2:联合使用同位/当前和相邻Y/U/V样点进行分类的示例
在一些实施例中,最大band_num(bandNumY、bandNumU或bandNumV)可以是固定的或在SPS/APS/PPS/PH/SH/CTU/CU级中用信号发送。例如,在解码器中固定最大band_num=16,并且针对每个帧,用信号发送4个比特以指示帧中的C0 band_num。下面在表12中列出了一些其它最大band_num示例。
表12:最大band_num和band_num位示例
在一些实施例中,可以对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_shift候选为0、1、2、3、4,对应于band_num=1、2、4、8、16,如表13所示。
表13:Band_num和相应的band_num_shift候选
在一些实施例中,应用于Cb和Cr的分类器不同。可以单独地用信号发送针对所有分类的Cb和Cr偏移。例如,将不同的用信号发送的偏移应用于不同色度分量,如下表14中所示。
表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中所示。
表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偏移可由具有信令偏移集合索引=0的POC2重用,如下表20中所示。
表20:可以用信号发送索引以指示哪个先前解码的偏移集合用于当前帧
在一些实施例中,针对Cb和Cr的重用偏移集合索引可以不同,例如,如下表21所示。
表21:可用信号发送索引以指示哪个先前解码的偏移集合用于当前帧,且该索引针对Cb和Cr分量可以不同。
在一些实施例中,偏移信令可使用包括开始start和长度length的额外语法以减少信令开销。例如,当band_num=256时,仅用信号发送band_idx=37~44的偏移。在下面的表22-1中的示例中,start和length的语法都是应匹配band_num个比特的8比特固定长度编码的。
表22-1:偏移信令使用包括start和length的额外语法
在一些实施例中,如果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[R(x,y)的分类索引]
R'(x,y)=Clip3(0,(1<<bit_depth)-1,R(x,y)+offset)
根据以上等式,使用当前图片和/或当前偏移集合索引的所指示的分类器对每个亮度或色度样点值R(x,y)进行分类。将导出的分类索引的相应偏移与每个亮度或色度样点值R(x,y)相加。裁剪函数Clip3被应用于(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示出根据本公开的一些实施方式的AVS中跨越VB 1702的9个亮度候选CCSAO可增加2个额外亮度线缓冲器的示图。对于虚拟边界(VB)1702上方的亮度样点和色度样点,在当前CTU行处理DBF/SAO/ALF。对于VB 1702下方的亮度样点和色度样点,在下一CTU行处理DBF/SAO/ALF。在AVS解码器硬件设计中,在DBF前的亮度线-4到-1样点、在SAO前的线-5样点、在DBF前的色度线-3到-1样点、在SAO前的线-4样点被存储为用于下一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示出根据本公开的一些实施方式的VVC中跨越VB 1802的9个亮度候选CCSAO可增加1个额外亮度线缓冲器的示图。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之外,因此使用Y3、Y4、Y5填充Y0、Y1、Y2和Y6、Y7、Y8两者。例如,在图22B中,亮度样点Y0在VB 2202之外,因此使用Y2来填充Y0,并且使用Y5来填充Y7。
填充方法给予更多色度样点应用CCSAO的可能性,因此可以实现更多编解码增益。
在一些实施例中,在底部图片(或条带、分区、区块)边界CTU行处,在当前CTU行处理VB下方的样点,因此在底部图片(或条带、分区、区块)边界CTU行处不应用上述特殊处理(解决方案1、2、3、4)。例如,1920×1080的帧被128×128的CTU划分。帧包含15×9个CTU(向上舍入)。底部CTU行是第15个CTU行。解码过程是逐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的。也就是说,开/关控制、CCSAO参数(用于分类的偏移、亮度候选位置、band_num、位掩码等、偏移集合索引)在一个CTB中是相同的。
在一些实施例中,所应用的区域可不与CTB边界对齐。例如,所应用的区域不与色度CTB边界对齐,而是移位。仍针对每个CTB用信号发送语法(开/关控制、CCSAO参数),但真正应用的区域不与CTB边界对齐。图24示出根据本公开的一些实施方式的应用CCSAO的区域不与CTB/CTU边界2406对齐。例如,所应用的区域不与色度CTB/CTU边界2406对齐,而是距VB2408左上方移位的(4,4)样点。这种不对齐的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开/关标志。否则,将CCSAO应用于此区域中的所有CTB,而无需进一步用信号发送CTB标志。
在一些实施例中,不同的应用CCSAO的区域可以共享相同的区域开/关控制和CCSAO参数。例如,在图25的(c)中,区域0~2共享相同的参数,并且区域3~15共享相同的参数。图25的(c)还示出了可按希尔伯特(Hilbert)扫描顺序用信号发送区域开/关控制标志和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的指数哥伦布码,其中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不存在且被推断为假。
在一些实施例中,如下表28中所示,SPS ccsao_enabled_flag以SPS SAO启用标志为条件。
表28:SPS ccsao_enabled_flag以SPS SAO启用标志为条件
在一些实施例中,ph_cc_sao_cb_ctb_control_flag、ph_cc_sao_cr_ctb_control_flag指示是否启用Cb/Crctb开/关控制粒度。如果启用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位置)用于针对色度样点的分类,以减少比特开销。类似地,如果在CTB级用信号发送cc_sao_cb_type和cc_sao_cr_type,则可进一步用相同机制用信号发送标志。例如,如果C0亮度位置候选的数量为9,则进一步用信号发送cc_sao_cb_type0_flag以区分是否使用中心同位亮度位置,如下表29中所示。如果不使用中心同位亮度位置,则使用cc_sao_cb_type_idc来指示使用剩余8个相邻亮度位置中的哪一个。
表29:用信号发送cc_sa0_cb_type0_flag以区分是否使用中心同位亮度位置
下表30示出了AVS中在帧中使用单个(set_num=1)或多个(set_num>1)分类器的示例。注意,语法注释可被映射到上面使用的注释。
表30:AVS中在图片帧中使用单个(set_num=1)或多个(set_num>1)分类器的示例
如果与其中每个区域具有其自己的集合的图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)。
在一些实施例中,图片帧还包括第三分量,用于第一分量的分类器还基于与第一分量的相应样点相关联的第三分量的一个或多个样点的第三集合,其中第三分量是第二色度分量(3160)。
在一些实施例中,在确定用于第一分量的分类器之前,通过环路滤波器重建第一分量的相应样点和/或通过环路滤波器重建第二分量的一个或多个样点的第一集合,其中环路滤波器为去块滤波器(DBF)或样点自适应偏移(SAO)。
在一些实施例中,与第一分量的相应样点相关联的第二分量的一个或多个样点的第一集合是从相对于第一分量的相应样点的第二分量的同样点位和相邻样点中的一个或多个样点之中选择出的。
在一些实施例中,与第一分量的相应样点相关联的第一分量的一个或多个样点的第二集合是从相对于第一分量的相应样点的第一分量的当前样点和相邻样点中的一个或多个样点之中选择出的。
在一些实施例中,通过以下方式导出用于第一分量的相应样点的分类器的分类索引:根据分类器的第一子分类器,将第二分量的一个或多个样点的第一集合的值的第一动态范围划分为第一数量个带;根据分类器的第二子分类器,将第一分量的一个或多个样点的第二集合的值的第二动态范围划分为第二数量个带;根据分类器的第三子分类器,将第三分量的一个或多个样点的第三集合的值的第三动态范围划分为第三数量个带;并且组合第一子分类器、第二子分类器和第三子分类器。
在一些实施例中,用于第一分量的相应样点的分类器的分类索引被按照以下方式导出:
bandY=(candY×bandNumY)>>BitDepth;
bandU=(candU×bandNumU)>>BitDepth;
bandV=(candV×bandNumV)>>BitDepth;
classIdX=bandY×bandNumU×bandNumV+bandU×bandNumV+bandV;
其中classIdX是用于第一分量的相应样点的分类器的分类索引,bandNumY是第一分量的动态范围的划分出的带的数量,bandNumU是第二分量的动态范围的划分出的带的数量,bandNumV是第三分量的动态范围的划分出的带的数量,candY是基于第二分量的一个或多个样点的第一集合的值,candU是基于第一分量的一个或多个样点的第二集合的值,candV是基于第三分量的一个或多个样点的第三集合的值,并且BitDepth是视频信号的比特深度。
在一些实施例中,第二分量的一个或多个样点的第一集合的布局相对于第一分量的相应样点是对称的。
在一些实施例中,在序列参数集(SPS)、自适应参数集(APS)、图片参数集(PPS)、图片头(PH)、条带头(SH)、区域、编码树单元(CTU)、编码单元(CU)和子块级中的一个或多个级中切换用于确定分类器的与第一分量的相应样点相关联的第二分量的一个或多个样点的第一集合和第一分量的一个或多个样点的第二集合的定义,其中与第一分量的相应样点相关联的第二分量的一个或多个样点的第一集合和第一分量的一个或多个样点的第二集合的定义包括以下中的一个或多个:在与第一分量的相应样点相关联的定义的相对位置处的第二分量和第一分量的所选样点、分类的方法、和针对基于一个或多个样点的第一集合和一个或多个样点的第二集合的值的位掩码定义。
在一些实施例中,基于第二分量的一个或多个样点的第一集合对第一值应用第一带数量偏移,以获得针对第一分量的相应样点的第一分类索引,并且基于第一分量的一个或多个样点的第二集合对第二值应用第二带数量偏移,以获得针对第一分量的相应样点的第二分类索引。
在一些实施例中,视频解码器30进一步确定针对第二分量的相应样点的样点偏移。在一些实施例中,其中在第一最大偏移范围内确定针对第一分量的相应样点的样点偏移;并且,在第二最大偏移范围内确定针对第二分量的相应样点的样点偏移,其中第一最大偏移范围和第二最大偏移范围是固定的或在序列参数集(SPS)、自适应参数集(APS)、图片参数集(PPS)、图片头(PH)和条带头(SH)级中的一个或多个中被用信号发送。
在一些实施例中,基于与基于第一视频颜色格式的第一分量的相应样点相关联的第二分量的一个或多个样点的第一集合,对分类器应用第一样点形状约束;基于与基于第二视频颜色格式的第一分量的相应样点相关联的第二分量的一个或多个样点的第一集合对分类器应用第二样点形状约束。
在一些实施例中,当第二分量的一个或多个样点的第一集合和第一分量的一个或多个样点的第二集合中的样点在第一分量的相应样点的图片帧内时,基于确定的样点偏移修改第一分量的相应样点的值。
在一些实施例中,如果第二分量的一个或多个样点的第一集合和第一分量的一个或多个样点的第二集合中的样点在第一分量的相应样点的图片帧外,则通过从图片帧内的来自第二分量的一个或多个样点的第一集合和第一分量的一个或多个样点的第二集合的样点进行处理,使用重复或镜像填充来导出图片帧外的样点。
图32示出了与用户接口3250耦接的计算环境3210。计算环境3210可以是数据处理服务器的一部分。计算环境3210包括处理器3220、存储器3230和输入/输出(I/O)接口3240。
处理器3220通常控制计算环境3210的整体操作,诸如与显示、数据采集、数据通信和图像处理相关联的操作。处理器3220可以包括用于执行指令以执行上述方法中的全部或一些步骤的一个或多个处理器。此外,处理器3220可包括有助于处理器3220与其它组件之间的交互的一个或多个模块。处理器可以是中央处理单元(CPU)、微处理器、单片机、图形处理单元(GPU)等。
存储器3230被配置为存储各种类型的数据以支持计算环境3210的操作。存储器3230可以包括预定软件3232。这种数据的示例包括用于在计算环境3210上操作的任何应用或方法的指令、视频数据集、图像数据等。存储器3230可以通过使用任何类型的易失性或非易失性存储器设备或其组合来实现,诸如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、闪存、磁盘或光盘。
I/O接口3240提供处理器3220与外围接口模块(诸如键盘、点击轮、按钮等)之间的接口。按钮可以包括但不限于主页按钮、开始扫描按钮和停止扫描按钮。I/O接口3240可以与编码器和解码器耦接。
在实施例中,还提供了一种非暂态计算机可读存储介质,其包括例如在存储器3230中的可由计算环境3210中的处理器3220执行的用于执行上述方法的多个程序。可选地,非暂态计算机可读存储介质可在其中存储包括由编码器(例如,图2中的视频编码器20)使用(例如)上面描述的编码方法产生的供解码器(例如,图3中的视频解码器30)在解码视频数据时使用的编码视频信息(例如,包括一个或多个语法元素的视频信息)的比特流或数据流。非暂态计算机可读存储介质可以是例如ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘、光学数据存储设备等。
在实施例中,还提供了一种计算设备,其包括一个或多个处理器(例如,处理器3220);以及非暂态计算机可读存储介质或存储器3230,其中存储有可由一个或多个处理器执行的多个程序,其中一个或多个处理器在执行多个程序时被配置为执行上述方法。
在一个实施例中,还提供了一种计算机程序产品,其包括例如在存储器3230中的可由计算环境3210中的处理器3220执行的用于执行上述方法的多个程序。例如,计算机程序产品可以包括非暂态计算机可读存储介质。
在实施例中,计算环境3210可以用一个或多个ASIC、DSP、数字信号处理设备(DSPD)可编程逻辑设备(PLD)、FPGA、GPU、控制器、微控制器、微处理器或其它电子组件来实现,以用于执行上述方法。
另外的实施例还包括在各种其它实施例中组合或以其它方式重新布置的上述实施例的各种子集。
在一个或更多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合实施。如果以软件实施,则功能可作为一个或更多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输,并且由基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质,其相应于诸如数据存储介质的有形介质,或相应于包括促进将计算机程序从一处传送到另一处(例如,根据通信协议)的任何介质的通信介质。以此方式,计算机可读介质通常可相应于(1)非暂态的有形计算机可读存储介质、或(2)通信介质,诸如信号或载波。数据存储介质可以是可由一个或更多个计算机或一个或更多个处理器访问以取回用于实现本申请中描述的实现方式的指令、代码和/或数据结构的任何可用介质。计算机程序产品可包括计算机可读介质。
在本文的实施方式的描述中使用的术语仅用于描述特定实施方式的目的,并不旨在限制权利要求的范围。如在实施方式的描述和所附权利要求中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,如本文使用的术语“和/或”是指并且涵盖相关联的所列项目中的一个或更多个的任何和所有可能的组合。将进一步理解,术语“包括”和/或“包括…的”当在本说明书中使用时,指定存在所陈述的特征、元件和/或组件,但不排除存在或添加一个或更多个其它特征、元件、组件和/或其群组。
还将被理解,尽管本文可使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开。例如,在不脱离实施方式的范围的情况下,第一电极可被称为第二电极,并且类似地,第二电极可被称为第一电极。第一电极和第二电极都是电极,但它们不是相同的电极。
贯穿本说明书对单数或复数形式的“一个示例”、“示例”、“示例性示例”等的引用表示结合示例描述的一个或更多个特定特征、结构或特性包括在本公开的至少一个示例中。因此,贯穿本说明书在各个地方以单数或复数出现的短语“在一个示例中”或“在示例中”、“在示例性示例中”等不一定都指代相同的示例。此外,一个或更多个示例中的特定特征、结构或特性可以以任意合适的方式组合。
本申请的描述已经出于说明和描述的目的被呈现,并且不旨在穷举或限于所公开的形式的发明。受益于在前面的描述和相关联的附图中呈现的教导,许多修改、变化和替代实施方式对于本领域普通技术人员将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理、实际应用,并且使本领域的其它技术人员能够理解本发明的各种实施方式,并且最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实施方式。因此,将理解,权利要求的范围不限于所公开的实施方式的具体示例,并且修改和其它实施方式旨在被包括在所附权利要求的范围内。
Claims (17)
1.一种对视频信号进行解码的方法,包括:
从所述视频信号接收包括第一分量和第二分量的图片帧;
基于与所述第一分量的相应样点相关联的所述第二分量的一个或多个样点的第一集合来确定用于所述第一分量的分类器;
根据所述分类器确定针对所述第一分量的相应样点的样点偏移;以及
基于确定的样点偏移来修改所述第一分量的相应样点的值,
其中所述第一分量为亮度分量并且所述第二分量为第一色度分量。
2.根据权利要求1所述的方法,其中,所述用于所述第一分量的分类器还基于与所述第一分量的相应样点相关联的所述第一分量的一个或多个样点的第二集合。
3.根据权利要求1所述的方法,其中,所述图片帧还包括第三分量,用于所述第一分量的分类器还基于与所述第一分量的相应样点相关联的所述第三分量的一个或多个样点的第三集合,其中所述第三分量为第二色度分量。
4.根据权利要求1所述的方法,其中,在确定用于所述第一分量的分类器之前,通过环路滤波器重建所述第一分量的相应样点,并且通过环路滤波器重建所述第二分量的一个或多个样点的所述第一集合,其中所述环路滤波器为去块滤波器DBF或样点自适应偏移SAO。
5.根据权利要求1所述的方法,其中,与所述第一分量的相应样点相关联的所述第二分量的一个或多个样点的所述第一集合是从相对于所述第一分量的相应样点的所述第二分量的同位样点和相邻样点中的一个或多个样点之中选择出的。
6.根据权利要求2所述的方法,其中,与所述第一分量的相应样点相关联的所述第一分量的一个或多个样点的所述第二集合是从相对于所述第一分量的相应样点的所述第一分量的当前样点和相邻样点中的一个或多个样点之中选择出的。
7.根据权利要求2所述的方法,其中,所述图片帧还包括第三分量,用于所述第一分量的分类器还基于与所述第一分量的相应样点相关联的所述第三分量的一个或多个样点的第三集合,所述第三分量为第二色度分量;
用于所述第一分量的相应样点的分类器的分类索引通过以下方式导出:
根据所述分类器的第一子分类器,将所述第二分量的一个或多个样点的第一集合的值的第一动态范围划分为第一数量个带;
根据所述分类器的第二子分类器,将所述第一分量的一个或多个样点的所述第二集合的值的第二动态范围划分为第二数量个带;
根据所述分类器的第三子分类器,将所述第三分量的一个或多个样点的第三集合的值的第三动态范围划分为第三数量个带;以及
组合所述第一子分类器、所述第二子分类器和所述第三子分类器。
8.根据权利要求2所述的方法,其中,所述图片帧还包括第三分量,用于所述第一分量的分类器还基于与所述第一分量的相应样点相关联的所述第三分量的一个或多个样点的第三集合,所述第三分量为第二色度分量;
用于所述第一分量的相应样点的分类器被按照以下方式导出:
bandY=(candY×bandNumY)>>BitDepth;
bandU=(candU×bandNumU)>>BitDepth;
bandV=(candV×bandNumV)>>BitDepth;
classIdX=bandY×bandNumU×bandNumV+bandU×bandNumV+bandV;
其中classIdX是用于所述第一分量的相应样点的分类器的分类索引,bandNumY是所述第一分量的动态范围的划分出的带的数量,bandNumU是所述第二分量的动态范围的划分出的带的数量,bandNumV是所述第三分量的动态范围的划分出的带的数量,candY是基于所述第二分量的一个或多个样点的所述第一集合的值,candU是基于所述第一分量的一个或多个样点的所述第二集合的值,candV是基于所述第三分量的一个或多个样点的所述第三集合的值,并且BitDepth是所述视频信号的比特深度。
9.根据权利要求1所述的方法,其中,所述第二分量的一个或多个样点的所述第一集合的布局相对于所述第一分量的相应样点是对称的。
10.根据权利要求2所述的方法,其中,用于确定所述分类器的与所述第一分量的相应样点相关联的所述第二分量的一个或多个样点的所述第一集合和所述第一分量的一个或多个样点的所述第二集合的定义在序列参数集SPS、自适应参数集APS、图片参数集PPS、图片头PH、条带头SH、区域、编码树单元CTU、编码单元CU和子块级中的一个或多个中切换,
其中与所述第一分量的相应样点相关联的所述第二分量的一个或多个样点的所述第一集合和所述第一分量的一个或多个样点的所述第二集合的所述定义包括以下中的一个或多个:
在与所述第一分量的相应样点相关联的定义的相对位置处的所述第二分量和所述第一分量的所选样点,
分类的方法,和
针对基于一个或多个样点的所述第一集合和一个或多个样点的所述第二集合的值的位掩码定义。
11.根据权利要求2所述的方法,其中,基于所述第二分量的一个或多个样点的所述第一集合对第一值应用第一带数量偏移,以获得针对所述第一分量的相应样点的第一分类索引,并且基于所述第一分量的一个或多个样点的所述第二集合对第二值应用第二带数量偏移,以获得针对所述第一分量的相应样点的第二分类索引。
12.根据权利要求2所述的方法,还包括:确定针对所述第二分量的相应样点的样点偏移,其中
在第一最大偏移范围内确定针对所述第一分量的相应样点的样点偏移;
在第二最大偏移范围内确定针对所述第二分量的相应样点的样点偏移,
其中所述第一最大偏移范围和所述第二最大偏移范围是固定的或在序列参数集SPS、自适应参数集APS、图片参数集PPS、图片头PH和条带头SH级中的一个或多个中被用信号发送。
13.根据权利要求2所述的方法,其中基于与基于第一视频颜色格式的所述第一分量的相应样点相关联的所述第二分量的一个或多个样点的所述第一集合,对所述分类器应用第一样点形状约束;
基于与基于第二视频颜色格式的所述第一分量的相应样点相关联的所述第二分量的一个或多个样点的所述第一集合,对所述分类器应用第二样点形状约束。
14.根据权利要求2所述的方法,其中若所述第二分量的一个或多个样点的所述第一集合的样点和所述第一分量的一个或多个样点的所述第二集合中的样点在所述第一分量的相应样点的所述图片帧内,则基于确定的样点偏移修改所述第一分量的相应样点的值。
15.根据权利要求2所述的方法,其中若所述第二分量的一个或多个样点的所述第一集合和所述第一分量的一个或多个样点的所述第二集合中的样点在所述第一分量的相应样点的所述图片帧外,则通过从所述图片帧内的来自所述第二分量的一个或多个样点的所述第一集合和所述第一分量的一个或多个样点的所述第二集合的样点进行处理,使用重复或镜像填充来导出所述图片帧外的样点。
16.一种电子装置,包括:
一个或多个处理单元;
存储器,耦接到所述一个或多个处理单元;以及
多个程序,存储在所述存储器中,所述多个程序在由所述一个或多个处理单元执行时,使所述电子装置执行权利要求1至15中任一项所述的方法。
17.一种非暂态计算机可读存储介质,存储用于由具有一个或更多个处理单元的电子装置执行的多个程序,其中,所述多个程序在由所述一个或更多个处理单元执行时使所述电子装置执行权利要求1至15中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/144,414 | 2021-02-01 | ||
US202163145940P | 2021-02-04 | 2021-02-04 | |
US63/145,940 | 2021-02-04 | ||
PCT/US2022/013536 WO2022164757A1 (en) | 2021-02-01 | 2022-01-24 | Chroma coding enhancement in cross-component sample adaptive offset |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116965017A true CN116965017A (zh) | 2023-10-27 |
Family
ID=88456863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280011643.9A Pending CN116965017A (zh) | 2021-02-01 | 2022-01-24 | 在跨分量样点自适应偏移中的色度编解码增强 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116965017A (zh) |
-
2022
- 2022-01-24 CN CN202280011643.9A patent/CN116965017A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114007067B (zh) | 对视频信号进行解码的方法、设备和介质 | |
US20230388509A1 (en) | Chroma coding enhancement in cross-component sample adaptive offset | |
CN116418993A (zh) | 视频编码的方法、装置和介质 | |
US20230396781A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
US20230199209A1 (en) | Chroma coding enhancement in cross-component sample adaptive offset | |
CN116325734A (zh) | 具有虚拟边界的跨分量样点自适应偏移中的色度编解码增强 | |
US20240007662A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
US20230336785A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
US20230379480A1 (en) | Chroma coding enhancement in cross-component sample adaptive offset | |
US20230319315A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
CN116965017A (zh) | 在跨分量样点自适应偏移中的色度编解码增强 | |
US20230262235A1 (en) | Chroma coding enhancement in cross-component sample adaptive offset with virtual boundary | |
US20240137546A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
CN117203962A (zh) | 跨分量样本自适应偏移中的编解码增强 | |
CN117413516A (zh) | 跨分量样本自适应偏移中的编解码增强 | |
CN117769834A (zh) | 跨分量样点自适应偏移中的编解码增强 | |
CN116569551A (zh) | 交叉分量样本自适应偏移中的色度编码增强 | |
CN117917074A (zh) | 跨分量样点自适应偏移中的编解码增强 | |
CN117795957A (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 |