CN117203962A - 跨分量样本自适应偏移中的编解码增强 - Google Patents
跨分量样本自适应偏移中的编解码增强 Download PDFInfo
- Publication number
- CN117203962A CN117203962A CN202280017091.2A CN202280017091A CN117203962A CN 117203962 A CN117203962 A CN 117203962A CN 202280017091 A CN202280017091 A CN 202280017091A CN 117203962 A CN117203962 A CN 117203962A
- Authority
- CN
- China
- Prior art keywords
- component
- samples
- color space
- video
- sample
- 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 32
- 238000000034 method Methods 0.000 claims abstract description 94
- 238000012545 processing Methods 0.000 claims description 61
- 238000003860 storage Methods 0.000 claims description 32
- 230000009466 transformation Effects 0.000 claims description 8
- 230000001131 transforming effect Effects 0.000 claims description 6
- 241000023320 Luma <angiosperm> Species 0.000 description 90
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 90
- 238000010586 diagram Methods 0.000 description 56
- 230000008569 process Effects 0.000 description 43
- 239000013598 vector Substances 0.000 description 33
- 238000005192 partition Methods 0.000 description 29
- 239000000872 buffer Substances 0.000 description 25
- 230000011664 signaling Effects 0.000 description 21
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 20
- 238000013139 quantization Methods 0.000 description 17
- 238000000638 solvent extraction Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 238000005259 measurement Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000002146 bilateral effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 101150114515 CTBS gene Proteins 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 235000009508 confectionery Nutrition 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 101100520660 Drosophila melanogaster Poc1 gene Proteins 0.000 description 2
- 101100520662 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PBA1 gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000001143 conditioned effect Effects 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 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
- 230000008901 benefit 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
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 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
- 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
- 230000002441 reversible effect Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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的优先权,这两个美国临时专利申请均通过引用以其全文并入。
技术领域
本申请总体上涉及视频编解码和压缩,并且更具体地,涉及提高亮度和色度两者的编解码效率的方法和装置。
背景技术
如数字电视、膝上型计算机或台式计算机、平板计算机、数字相机、数字记录设备、数字媒体播放器、视频游戏机、智能电话、视频电话会议设备、视频流式传输设备等各种电子设备都支持数字视频。电子设备通过实施视频压缩/解压缩标准来发射、接收、编码、解码和/或存储数字视频数据。一些众所周知的视频编码标准包括通用视频编解码(VersatileVideo Coding,VVC)、高效视频编解码(High Efficiency Video Coding,HEVC,也被称为H.265或MPEG-H第2部分)和高级视频编解码(Advanced Video Coding,AVC,也被称为H.264或MPEG-4第10部分),这些视频编解码标准由ISO/IEC MPEG和ITU-T VCEG联合开发。AO媒体视频1(AOMedia Video 1,AV1)由开放媒体联盟(Alliance for Open Media,AOM)开发作为其先前标准VP9的后续标准。音视频编解码(Audio Video Coding,AVS)(其是指数字音频和数字视频压缩标准)是音视频编解码技术标准工作组(Audio and Video Coding StandardWorkgroup)开发的另一个视频压缩系列标准。
视频压缩典型地包括执行空间(帧内)预测和/或时间(帧间)预测以减少或去除视频数据中固有的冗余。对于基于块的视频编码,将视频帧分区为一个或多个条带,每个条带具有多个视频块,所述视频块也可以被称为编码树单元(coding tree unit,CTU)。每个CTU可以包含一个编码单元(coding unit,CU)或递归地分割成较小的CU,直到达到预设的最小CU尺寸。每个CU(也称为叶CU)包含一个或多个变换单元(transform unit,TU),并且每个CU还包含一个或多个预测单元(prediction unit,PU)。可以以帧内、帧间或IBC模式对每个CU进行编码。相对于同一视频帧内的相邻块中的参考样本,使用空间预测对视频帧的帧内编码(I)条带中的视频块进行编码。视频帧的帧间编码(P或B)条带中的视频块可以相对于同一视频帧内的相邻块中的参考样本使用空间预测或相对于其他先前和/或未来参考视频帧中的参考样本使用时间预测。
基于先前已被编码的参考块(例如,相邻块)的空间或时间预测产生针对待编码的当前视频块的预测块。查找参考块的过程可以通过块匹配算法来完成。表示待编码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。根据指向形成预测块的参考帧中的参考块的运动矢量、以及残差块来对帧间编码块进行编码。确定运动矢量的过程典型地被称为运动估计。根据帧内预测模式和残差块对帧内编码块进行编码。为了进一步压缩,将残差块从像素域变换到变换域,例如频域,从而产生残差变换系数,然后可以对所述残差变换系数进行量化。可以扫描最初布置为二维阵列的量化变换系数,以产生变换系数的一维矢量,并且然后将其熵编码为视频比特流,以实现更多的压缩。
然后,将已编码视频比特流保存在计算机可读存储介质(例如,闪速存储器)中,以被具有数字视频能力的另一个电子设备访问,或者直接以有线或无线方式传输到电子设备。然后,电子设备通过例如解析已编码视频比特流以从比特流获得语法元素并且至少部分地基于从比特流获得的语法元素将数字视频数据从已编码视频比特流重建为其原始格式来执行视频解压缩(其是与上文描述的视频压缩相反的过程),并且在电子设备的显示器上渲染重建数字视频数据。
随着数字视频质量从高清到4K×2K或甚至8K×4K,待编码/解码的视频数据量呈指数增长。关于如何在保持已解码视频数据的图像质量的同时更高效地对视频数据进行编码/解码方面一直存在挑战。
发明内容
本申请描述了涉及视频数据编码和解码,并且更具体地涉及改进亮度分量和色度分量两者的编解码效率的方法和装置(包括通过探索亮度分量与色度分量之间的跨分量关系来改进编解码效率)的实施方式。
根据本申请的第一方面,一种对视频信号进行解码的方法包括:从所述视频信号接收包括第一颜色空间中的第一分量和第二分量的图片帧;根据与所述第二分量在所述第一颜色空间中的相应样本相关联的所述第一分量的第一组一个或多个样本确定针对所述第一颜色空间中的所述第二分量的分类器(classifier),其中,所述第一组一个或多个样本被变换到第二颜色空间中;根据所述分类器确定针对所述第二分量在所述第一颜色空间中的所述相应样本的样本偏移;以及基于所确定的样本偏移来修改所述第二分量在所述第一颜色空间中的所述相应样本的值。
在一些实施例中,所述第一分量是选自由亮度分量、第一色度分量和第二色度分量构成的组的一个分量,并且所述第二分量是选自由所述亮度分量、所述第一色度分量和所述第二色度分量构成的组的一个分量。
在一些实施例中,所述第一组一个或多个样本通过线性变换变换到所述第二颜色空间中。
根据本申请的第二方面,一种电子装置包括一个或多个处理单元、存储器以及存储在所述存储器中的多个程序。所述程序当由所述一个或多个处理单元执行时使所述电子装置执行如上文描述的对视频信号进行编解码的方法。
根据本申请的第三方面,一种非暂态计算机可读存储介质存储用于由具有一个或多个处理单元的电子装置执行的多个程序。所述程序当由所述一个或多个处理单元执行时使所述电子装置执行如上文描述的对视频信号进行编解码的方法。
根据本申请的第四方面,一种计算机可读存储介质在其中存储有比特流,所述比特流包括通过如上文描述的用于视频编解码的方法来生成的视频信息。
应当理解的是,前述概括描述和以下详细描述均仅是示例而不是对本公开的限制。
附图说明
被包括在内以提供对实施方式的进一步理解并且并入本文并构成说明书的一部分的附图图示了所描述的实施方式,并且与说明书一起用于解释基本原理。相似的附图标记指代对应的部分。
图1是图示了根据本公开的一些实施方式的示例性视频编码和解码系统的框图。
图2是图示了根据本公开的一些实施方式的示例性视频编码器的框图。
图3是图示了根据本公开的一些实施方式的示例性视频解码器的框图。
图4A至图4E是图示了根据本公开的一些实施方式的如何将帧递归地分区成具有不同尺寸和形状的多个视频块的框图。
图5是描绘了根据本公开的一些实施方式的在样本自适应偏移(Sample AdaptiveOffset,SAO)中使用的四种梯度模式的框图。
图6A是图示了根据本公开的一些实施方式的应用于色度样本并使用DBF Y作为输入的CCSAO的系统和过程的框图。
图6B是图示了根据本公开的一些实施方式的应用于亮度样本和色度样本并使用DBF Y/Cb/Cr作为输入的CCSAO的系统和过程的框图。
图6C是图示了根据本公开的一些实施方式的可以独立工作的CCSAO的系统和过程的框图。
图6D是图示了根据本公开的一些实施方式的可以以相同或不同偏移递归地(2次或N次)应用的CCSAO的系统和过程的框图。
图6E是图示了根据本公开的一些实施方式的与AVS标准中的增强样本自适应偏移(Enhanced Sample Adaptive Offset,ESAO)并行应用的CCSAO的系统和过程的框图。
图6F是图示了根据本公开的一些实施方式的在SAO之后应用的CCSAO的系统和过程的框图。
图6G是图示了根据本公开的一些实施方式的可以在没有CCALF的情况下独立工作的CCSAO的系统和过程的框图。
图6H是图示了根据本公开的一些实施方式的与跨分量自适应环路滤波器(Cross-Component Adaptive Loop Filter,CCALF)并行应用的CCSAO的系统和过程的框图。
图7是图示了根据本公开的一些实施方式的使用CCSAO的样本过程的框图。
图8是图示了根据本公开的一些实施方式的CCSAO过程被交错到竖直和水平去块滤波器(deblocking filter,DBF)的框图。
图9是图示了根据本公开的一些实施方式的使用跨分量相关性对视频信号进行解码的示例性过程的流程图。
图10A是示出了根据本公开的一些实施方式的使用不同亮度(或色度)样本位置进行C0分类的分类器(classifier)的框图。
图10B图示了根据本公开的一些实施方式的用于亮度候选项的不同形状的一些示例。
图11是图示了根据本公开的一些实施方式的所有同位和相邻亮度/色度样本都可以被馈送到CCSAO分类中的样本过程的框图。
图12图示了根据本公开的一些实施方式的通过用通过对同位和相邻亮度样本进行加权而获得的值来替代同位亮度样值的示例性分类器。
图13A是图示了根据本公开的一些实施方式的在用于分类的任何同位和相邻亮度(色度)样本在当前图片之外时不将CCSAO应用于当前色度(亮度)样本的框图。
图13B是图示了根据本公开的一些实施方式的在用于分类的任何同位和相邻亮度或色度样本在当前图片之外时将CCSAO应用于当前亮度或色度样本的框图。
图14是图示了根据本公开的一些实施方式的在用于分类的对应的所选同位或相邻亮度样本在由虚拟边界(virtual boundary,VB)限定的虚拟空间之外时不将CCSAO应用于当前色度样本的框图。
图15示出了根据本公开的一些实施方式的将重复或镜像填充应用于在虚拟边界之外的亮度样本。
图16示出了根据本公开的一些实施方式的在使用所有的9个同位相邻亮度样本进行分类时另外需要1个亮度行缓冲器。
图17示出了根据本公开的一些实施方式的在AVS中9个亮度候选项CCSAO跨VB可以增加2个附加亮度行缓冲器的图示。
图18A示出了根据本公开的一些实施方式的在VVC中9个亮度候选项CCSAO跨VB可以增加1个附加亮度行缓冲器的图示。
图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应用区域与编码树块(coding tree block,CTB)/编码树单元(coding tree unit,CTU)边界对齐。
图25示出了根据本公开的一些实施方式的可以用CCSAO参数来固定CCSAO应用区域帧分区。
图26示出了根据本公开的一些实施方式的CCSAO应用区域可以是从帧/条带/CTB级别分割的二叉树(Binary-tree,BT)/四叉树(Quad-tree,QT)/三叉树(Ternary-tree,TT)。
图27是图示了根据本公开的一些实施方式的在图片帧内的不同级别使用和切换的多个分类器的框图。
图28是图示了根据本公开的一些实施方式的CCSAO应用区域分区可以是动态的并在图片级别中切换的框图。
图29是图示了根据本公开的一些实施方式的CCSAO分类器可以将当前或跨分量编解码信息考虑在内的图。
图30是图示了根据本公开的一些实施方式的本公开中公开的SAO分类方法用作后预测滤波器的框图。
图31是图示了根据本公开的一些实施方式的对于后预测SAO滤波器,每个分量可以使用当前样本和相邻样本进行分类的框图。
图32是图示了根据本公开的一些实施方式的使用跨分量相关性对视频信号进行解码的示例性过程的流程图。
图33是图示了根据本公开的一些实施方式的与用户界面耦接的计算环境的图。
具体实施方式
现在将详细参考具体实施方式,附图中图示了这些实施方式的示例。在以下详细描述中,阐述了许多非限制性的具体细节,以便帮助理解本文提出的主题。但是对于本领域的普通技术人员将显而易见的是,在不脱离权利要求的范围的情况下,可以使用各种替代性方案,并且可以在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员将显而易见的是,本文提出的主题可以在具有数字视频能力的许多类型的电子设备上实施。
第一代AVS标准包括中国国家标准“信息技术高级音视频编解码第2部分:视频”(Information Technology,Advanced Audio Video Coding,Part 2:Video,被称为AVS1)和“信息技术高级音视频编解码第16部分:广播电视视频”(Information Technology,Advanced Audio Video Coding Part 16:Radio Television Video,被称为AVS+)。与MPEG-2标准相比,第一代AVS标准可以在相同的感知质量下提供大约50%的比特率节省。第二代AVS标准包括中国国家标准“信息技术高效多媒体编解码”(Information Technology,Efficient Multimedia Coding,被称为AVS2)系列,其主要针对额外HD TV节目的传输。AVS2的编解码效率是AVS+的编解码效率的两倍。同时,AVS2标准视频部分由电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)作为一项国际应用标准提交。AVS3标准是针对UHD视频应用的新一代视频编解码标准,旨在超越最新国际标准HEVC的编解码效率,AVS3标准提供了超过HEVC标准大约30%的比特率节省。2019年3月,在第68届AVS会议上,AVS3-P2基线已经完成,其提供了超过HEVC标准大约30%的比特率节省。目前,AVS工作组维护着一种用于展示AVS3标准的参考实施方式的参考软件,被称为高性能模型(high performance model,HPM)。与HEVC一样,AVS3标准在基于块的混合视频编解码框架上构建。
图1是图示了根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性系统10的框图。如图1所示,系统10包括源设备12,所述源设备生成并编码待由目的地设备14在稍后时间解码的视频数据。源设备12和目的地设备14可以包括多种电子设备中的任何一种,所述多种电子设备包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示设备、数字媒体播放器、视频游戏机、视频流式传输设备等。在一些实施方式中,源设备12和目的地设备14配备有无线通信能力。
在一些实施方式中,目的地设备14可以经由链路16接收待解码的已编码视频数据。链路16可以包括能够将已编码视频数据从源设备12移到目的地设备14的任何类型的通信介质或设备。在一个示例中,链路16可以包括用于使源设备12能够实时地将已编码视频数据直接传输到目的地设备14的通信介质。已编码视频数据可以根据诸如无线通信协议的通信标准来调制并被传输到目的地设备14。通信介质可以包括任何无线或有线通信介质,如射频(radio frequency,RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络(如局域网、广域网、或全球网(如因特网))的一部分。通信介质可以包括路由器、交换机、基站或可以用于促进从源设备12到目的地设备14的通信的任何其他设备。
在一些其他实施方式中,已编码视频数据可以从输出接口22传输到存储设备32。随后,存储设备32中的已编码视频数据可以由目的地设备14经由输入接口28访问。存储设备32可以包括各种分布式或本地访问的数据存储介质中的任一种,如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪速存储器、易失性存储器或非易失性存储器或用于存储已编码视频数据的任何其他合适的数字存储介质。在进一步示例中,存储设备32可以对应于可以保持由源设备12生成的已编码视频数据的文件服务器或另一个中间存储设备。目的地设备14可以经由流式传输或下载从存储设备32访问所存储的视频数据。文件服务器可以是能够存储已编码视频数据并且将已编码视频数据传输到目的地设备14的任何类型的计算机。示例性文件服务器包括web服务器(例如,用于网站)、FTP服务器、网络附加存储(network attachedstorage,NAS)设备、或本地磁盘驱动器。目的地设备14可以通过任何标准数据连接访问已编码视频数据,所述连接包括适于访问存储在文件服务器上的已编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。从存储设备32传输已编码视频数据可以是流式传输、下载传输或两者的组合。
如图1所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可以包括诸如视频捕获设备的源,例如摄像机、包含先前捕获的视频的视频档案、用于从视频内容提供方接收视频的视频馈送接口和/或用于生成计算机图形数据作为源视频的计算机图形系统或这些源的组合。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目的地设备14可以形成拍照电话或视频电话。然而,本申请中描述的实施方式通常可以适用于视频编解码并且可以应用于无线和/或有线应用。
捕获的、预先捕获的或计算机生成的视频可以由视频编码器20进行编码。已编码视频数据可以经由源设备12的输出接口22直接传输到目的地设备14。已编码视频数据也可以(或替代性地)存储到存储设备32上,以供目的地设备14或其他设备以后访问,以进行解码和/或回放。输出接口22可以进一步包括调制解调器和/或发射器。
目的地设备14包括输入接口28、视频解码器30和显示设备34。输入接口28可以包括接收器和/或调制解调器,并且通过链路16接收已编码视频数据。通过链路16传送的或提供在存储设备32上的已编码视频数据可以包括由视频编码器20生成的各种语法元素,以供视频解码器30在对视频数据进行解码时使用。这种语法元素可以被包括于在通信介质上传输的、存储在存储介质上的、或存储在文件服务器中的已编码视频数据内。
在一些实施方式中,目的地设备14可以包括显示设备34,所述显示设备可以是集成显示设备和被配置为与目的地设备14通信的外部显示设备。显示设备34向用户显示已解码视频数据并且可以包括各种显示设备中的任何一种,如液晶显示器(liquid crystaldisplay,LCD)、等离子显示器、有机发光二极管(organic light emitting diode,OLED)显示器或另一种类型的显示设备。
视频编码器20和视频解码器30可以根据专有或行业标准(如VVC、HEVC、MPEG-4第10部分、高级视频编解码(Advanced Video Coding,AVC)、AVS或这种标准的扩展)进行操作。应当理解,本申请不限于特定的视频编码/解码标准,并且可以适用于其他视频编码/解码标准。通常设想,源设备12的视频编码器20可以被配置为根据这些当前或未来标准中的任何一种来对视频数据进行编码。类似地,通常还设想,目的地设备14的视频解码器30可以被配置为根据这些当前或未来标准中的任何一种来对视频数据进行解码。
视频编码器20和视频解码器30各自可以实施为各种适合的编码器电路中的任何一种,如一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)、分立逻辑、软件、硬件、固件或其任何组合。当部分地在软件中实施时,电子设备可以将用于软件的指令存储在合适的非暂态计算机可读介质中并且使用一个或多个处理器在硬件中执行指令以执行本公开中公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可以包括在一个或多个编码器或解码器中,所述一个或多个编码器或解码器中的任一个可以集成为相应设备中的组合编码器/解码器(CODEC)的一部分。
图2是图示了根据本申请中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可以执行对视频帧内的视频块的帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测来减少或去除给定视频帧或图片内的视频数据的空间冗余。帧间预测编码依赖于时间预测以减少或去除视频序列的邻近视频帧或图片内的视频数据的时间冗余。
如图2所示,视频编码器20包括视频数据存储器40、预测处理单元41、已解码图片缓冲器(decoded picture buffer,DPB)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41进一步包括运动估计单元42、运动补偿单元44、分区单元45、帧内预测处理单元46和帧内块复制(block copy,BC)单元48。在一些实施方式中,视频编码器20还包括用于视频块重建的反量化单元58、逆变换处理单元60和加法器62。诸如去块滤波器的环路滤波器63可以定位于加法器62与DPB 64之间,以对块边界进行滤波,以从重建的视频中去除块效应伪像。除了去块滤波器之外,还可以使用另一个环路滤波器63来对加法器62的输出进行滤波。在将重建的CU置于参考图片存储中并用作对未来的视频块进行编码的参考之前,可以将如样本自适应偏移(sample adaptive offset,SAO)和自适应环路滤波器(adaptive in-loop filter,ALF)的进一步的环路滤波63应用于重建的CU。视频编码器20可以采用固定或可编程硬件单元的形式,或者可以在所图示的固定或可编程硬件单元中的一个或多个之中进行划分。
视频数据存储器40可以存储待由视频编码器20的部件编码的视频数据。视频数据存储器40中的视频数据可以例如从视频源18获得。DPB 64是缓冲器,所述缓冲器存储参考视频数据以供视频编码器20在对视频数据进行编码(例如,在帧内预测编码模式或帧间预测编码模式下)时使用。视频数据存储器40和DPB 64可以由多种存储器设备中的任何一种形成。在各种示例中,视频数据存储器40可以与视频编码器20的其他部件一起在片上,或者相对于那些部件在片外。
如图2所示,在接收到视频数据之后,预测处理单元41内的分区单元45将视频数据分区为视频块。该分区还可以包括根据预定义的分割结构(如与视频数据相关联的四叉树结构)将视频帧分区为条带、瓦片、或其他更大的编码单元(coding unit,CU)。视频帧可以被划分成多个视频块(或称为瓦片的视频块集)。预测处理单元41可以基于误差结果(例如,编码率和失真级别)为当前视频块选择多个可能的预测编码模式之一,如多个帧内预测编码模式之一或多个帧间预测编码模式之一。预测处理单元41可以将所得的帧内预测编码块或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重建已编码块以随后用作参考帧的一部分。预测处理单元41还将语法元素诸如运动矢量、帧内模式指示符、分区信息和其他这种语法信息提供给熵编码单元56。
为了为当前视频块选择适当的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以相对于与待编码的当前块相同的帧中的一个或多个相邻块执行对当前视频块的帧内预测编码,以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或多个参考帧中的一个或多个预测块执行对当前视频块的帧间预测编码,以提供时间预测。视频编码器20可以执行多个编码通道,例如,以便为视频数据的每个块选择适当的编码模式。
在一些实施方式中,运动估计单元42根据视频帧序列内的预定模式通过生成运动矢量来确定当前视频帧的帧间预测模式,所述运动矢量指示当前视频帧内的视频块的预测单元(prediction unit,PU)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动矢量的过程,所述过程估计了视频块的运动。运动矢量例如可以指示当前视频帧或图片内的视频块的PU相对于参考帧内的预测块(或其他已编码单元)的位移,所述预测块相对于在当前帧内编码的当前块(或其他已编码单元)。预定模式可以将序列中的视频帧指定为P帧或B帧。帧内BC单元48可以以与由运动估计单元42确定运动矢量以进行帧间预测的方式类似的方式确定用于进行帧内BC编码的矢量,例如,块矢量,或者可以利用运动估计单元42来确定块矢量。
预测块是就像素差而言被认为与待编码的视频块的PU紧密匹配的参考帧的块,所述像素差可以由绝对差和(sum of absolute difference,SAD)、平方差和(sum of squaredifference,SSD)或其他差值度量来确定。在一些实施方式中,视频编码器20可以计算存储在DPB 64中的参考帧的子整数像素位置的值。例如,视频编码器20可以插入参考帧的四分之一像素位置、八分之一像素位置或其他分数像素位置的值。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并且以分数像素精度输出运动矢量。
运动估计单元42通过将PU的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)中选择的参考帧的预测块的位置进行比较来计算帧间预测编码帧中的视频块的PU的运动矢量,所述列表中的每一个标识存储在DPB 64中的一个或多个参考帧。运动估计单元42将计算的运动矢量发送到运动补偿单元44,并且然后发送到熵编码单元56。
由运动补偿单元44执行的运动补偿可以涉及基于由运动估计单元42确定的运动矢量获取或生成预测块。在接收当前视频块的PU的运动矢量后,运动补偿单元44可以在参考帧列表中的一个中定位运动矢量所指向的预测块,从DPB 64取得预测块并且将预测块转发到加法器50。然后,加法器50通过从被编码的当前视频块的像素值中减去由运动补偿单元44提供的预测块的像素值来形成具有像素差值的残差视频块。形成残差视频块的像素差值可以包括亮度差分量或色度差分量或两者。运动补偿单元44还可以生成与视频帧的视频块相关联的语法元素,以供视频解码器30在对视频帧的视频块进行解码时使用。语法元素可以包括例如定义用于标识预测块的运动矢量的语法元素、指示预测模式的任何标志、或本文描述的任何其他语法信息。注意,运动估计单元42和运动补偿单元44可以是高度集成的,但是出于概念性目的而分别图示。
在一些实施方式中,帧内BC单元48可以以与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式来生成矢量并且获取预测块,但是其中预测块与被编码的当前块处于同一帧中,并且其中相对于运动矢量,所述矢量被称为块矢量。特别地,帧内BC单元48可以确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内BC单元48可以例如在单独的编码通道期间使用各种帧内预测模式对当前块进行编码,并且通过率失真分析来测试其性能。接下来,帧内BC单元48可以在各种测试的帧内预测模式中选择适当的帧内预测模式来使用并相应地生成帧内模式指示符。例如,帧内BC单元48可以使用针对各种测试的帧内预测模式的率失真分析来计算率失真值并且在测试的模式中选择具有最佳率失真特性的帧内预测模式作为要使用的适当的帧内预测模式。率失真分析通常确定已编码块与原始的未编码块(被编码以产生已编码块)之间的失真(或误差)量以及用于产生已编码块的比特率(即,比特数)。帧内BC单元48可以根据各个已编码块的失真和速率来计算比值,以确定哪个帧内预测模式展现出块的最佳率失真值。
在其他示例中,帧内BC单元48可以全部或部分地使用运动估计单元42和运动补偿单元44,以根据本文描述的实施方式执行用于帧内BC预测的这种功能。在任一种情况下,对于帧内块复制,预测块可以是就像素差而言被认为与待编码的块紧密匹配的块,所述像素差可以由绝对差和(sum of absolute difference,SAD)、平方差和(sum of squareddifference,SSD)或其他差值度量来确定,并且预测块的识别可以包括计算子整数像素位置的值。
无论预测块是根据帧内预测来自同一帧还是根据帧间预测来自不同帧,视频编码器20都可以通过从被编码的当前视频块的像素值中减去预测块的像素值从而形成像素差值来形成残差视频块。形成残差视频块的像素差值可以包括亮度分量差值和色度分量差值。
如上文描述的,帧内预测处理单元46可以对当前视频块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测、或由帧内BC单元48执行的帧内块复制预测的替代方案。特别地,帧内预测处理单元46可以确定用于对当前块进行编码的帧内预测模式。为此,帧内预测处理单元46可以例如在单独的编码通道期间使用各种帧内预测模式对当前块进行编码,并且帧内预测处理单元46(或者在一些示例中,为模式选择单元)可以从测试的帧内预测模式中选择适当的帧内预测模式来使用。帧内预测处理单元46可以将指示块的所选帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以将指示所选帧内预测模式的信息编码至比特流中。
在预测处理单元41经由帧间预测或帧内预测确定当前视频块的预测块之后,加法器50通过从当前视频块中减去预测块来形成残差视频块。残差块中的残差视频数据可以被包括在一个或多个变换单元(transform unit,TU)中,并且被提供给变换处理单元52。变换处理单元52使用变换诸如离散余弦变换(discrete cosine transform,DCT)或概念上类似的变换将残差视频数据变换为残差变换系数。
变换处理单元52可以将所得的变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步降低比特率。量化过程还可以减小与系数中的一些或所有系数相关联的位深度。量化程度可以通过调整量化参数来修改。在一些示例中,量化单元54然后可以对包括量化变换系数的矩阵执行扫描。替代性地,熵编码单元56可以执行扫描。
量化之后,熵编码单元56使用例如上下文自适应可变长度编码(contextadaptive variable length coding,CAVLC)、上下文自适应二进制算术编码(contextadaptive binary arithmetic coding,CABAC)、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,SBAC)、概率区间分区熵(probability interval partitioning entropy,PIPE)编码或其他熵编码方法或技术将量化变换系数熵编码为视频比特流。然后可以将已编码比特流传输到视频解码器30,或将其存档在存储设备32中,以供以后传输到视频解码器30或由视频解码器取得。熵编码单元56还可以对被编码的当前视频帧的运动矢量和其他语法元素进行熵编码。
反量化单元58和逆变换处理单元60分别应用反量化和逆变换以在像素域中重建残差视频块,以生成用于预测其他视频块的参考块。如上所述,运动补偿单元44可以从DPB64中存储的帧的一个或多个参考块中生成运动补偿的预测块。运动补偿单元44还可以将一个或多个内插滤波器应用于预测块以计算用于在运动估计中使用的子整数像素值。
加法器62将重建的残差块添加到由运动补偿单元44产生的运动补偿的预测块,以产生参考块用于存储在DPB 64中。参考块然后可以由帧内BC单元48、运动估计单元42和运动补偿单元44用作预测块,以对后续视频帧中的另一个视频块进行帧间预测。
图3是图示了根据本申请的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、反量化单元86、逆变换处理单元88、加法器90和DPB 92。预测处理单元81进一步包括运动补偿单元82、帧内预测处理单元84和帧内BC单元85。视频解码器30可以执行通常与上文结合图2关于视频编码器20所描述的编码过程相反的解码过程。例如,运动补偿单元82可以基于从熵解码单元80接收到的运动矢量生成预测数据,而帧内预测单元84可以基于从熵解码单元80接收到的帧内预测模式指示符生成预测数据。
在一些示例中,视频解码器30的单元可以被指派执行本申请的实施方式。同样,在一些示例中,本公开的实施方式可以在视频解码器30的一个或多个单元之间进行划分。例如,帧内BC单元85可以单独或与视频解码器30的其他单元(如运动补偿单元82、帧内预测处理单元84和熵解码单元80)组合执行本申请的实施方式。在一些示例中,视频解码器30可以不包括帧内BC单元85,并且帧内BC单元85的功能可以由预测处理单元81的其他部件(如运动补偿单元82)执行。
视频数据存储器79可以存储待由视频解码器30的其他部件解码的视频数据,比如已编码视频比特流。例如,可以经由对视频数据进行有线或无线网络传送或者通过访问物理数据存储介质(例如,闪速存储器驱动器或硬盘)从存储设备32、本地视频源(如相机)获得存储在视频数据存储器79中的视频数据。视频数据存储器79可以包括存储来自已编码视频比特流的已编码视频数据的编码图片缓冲器(coded picture buffer,CPB)。视频解码器30的已解码图片缓冲器(decoded picture buffer,DPB)92存储参考视频数据,以供视频解码器30对视频数据进行解码时使用(例如,在帧内预测编码模式或帧间预测编码模式下)。视频数据存储器79和DPB 92可以由多种存储器设备中的任一种形成,如动态随机存取存储器(dynamic random access memory,DRAM),包括同步DRAM(SDRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其他类型的存储器设备。出于说明性目的,视频数据存储器79和DPB 92在图3中被描绘为视频解码器30的两个不同的部件。但是对于本领域技术人员将显而易见的是,视频数据存储器79和DPB92可以由相同的存储器设备或单独的存储器设备提供。在一些示例中,视频数据存储器79可以与视频解码器30的其他部件一起在片上,或者相对于那些部件在片外。
在解码过程期间,视频解码器30接收表示已编码视频帧的视频块和相关联语法元素的已编码视频比特流。视频解码器30可以在视频帧级别和/或视频块级别接收语法元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化的系数、运动矢量或帧内预测模式指示符和其他语法元素。熵解码单元80然后将运动矢量和其他语法元素转发到预测处理单元81。
当视频帧被编码为帧内预测编码(I)帧或用于其他类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测处理单元84可以基于用信号传输的帧内预测模式和来自当前帧的先前解码块的参考数据来生成当前视频帧的视频块的预测数据。
当视频帧被编码为帧间预测编码(即,B或P)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收到的运动矢量和其他语法元素产生当前视频帧的视频块的一个或多个预测块。每个预测块可以从参考帧列表之一内的参考帧产生。视频解码器30可以基于存储在DPB 92中的参考帧使用默认构造技术构造参考帧列表:列表0和列表1。
在一些示例中,当根据本文描述的帧内BC模式对视频块进行编码时,预测处理单元81的帧内BC单元85基于从熵解码单元80接收到的块矢量和其他语法元素,为当前视频块产生预测块。预测块可以处于与由视频编码器20定义的当前视频块相同的图片的重建的区域内。
运动补偿单元82和/或帧内BC单元85通过解析运动矢量和其他语法元素来确定当前视频帧的视频块的预测信息,并且然后使用预测信息来产生被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语法元素中的一些来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,B或P)、帧的参考帧列表中的一个或多个参考帧列表的构造信息、帧的每个帧间预测编码视频块的运动矢量、帧的每个帧间预测编码视频块的帧间预测状态以及用于对当前视频帧中的视频块进行解码的其他信息。
类似地,帧内BC单元85可以使用接收到的语法元素中的一些(例如,标志)来确定当前视频块是使用以下各项预测的:帧内BC模式、关于帧的视频块处于重建的区域内并且应存储在DPB 92中的构造信息、帧的每个帧内BC预测视频块的块矢量、帧的每个帧内BC预测视频块的帧内BC预测状态以及用于对当前视频帧中的视频块进行解码的其他信息。
运动补偿单元82还可以如由视频编码器20在对视频块进行编码期间使用的那样使用内插滤波器来执行内插以计算参考块的子整数像素的内插值。在这种情况下,运动补偿单元82可以从接收到的语法元素确定由视频编码器20使用的内插滤波器并且使用内插滤波器来产生预测块。
反量化单元86使用由视频编码器20针对视频帧中的每个视频块计算的用于确定量化程度的相同的量化参数,对在比特流中提供的并且由熵解码单元80进行熵解码的量化变换系数进行反量化。逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重建残差块。
在运动补偿单元82或帧内BC单元85基于矢量和其他语法元素生成当前视频块的预测块之后,加法器90通过对来自逆变换处理单元88的残差块以及由运动补偿单元82和帧内BC单元85生成的对应预测块求和来重建当前视频块的已解码视频块。环路滤波器91可以定位于加法器90与DPB 92之间,以进一步处理已解码视频块。在将重建的CU置于参考图片存储中之前,可以将环路滤波91诸如去块滤波器、样本自适应偏移(sample adaptiveoffset,SAO)和自适应环路滤波器(adaptive in-loop filter,ALF)应用于重建的CU。然后将给定帧中的已解码视频块存储在DPB 92中,所述DPB存储用于对接下来的视频块进行后续运动补偿的参考帧。DPB 92或与DPB 92分开的存储器设备还可以存储已解码视频以供稍后呈现在显示设备诸如图1的显示设备34上。
在典型的视频编解码过程中,视频序列典型地包括帧或图片的有序集合。每个帧可以包括三个样本阵列,分别表示为SL、SCb和SCr。SL是亮度样本的二维阵列。SCb是Cb色度样本的二维阵列。SCr是Cr色度样本的二维阵列。在其他实例中,帧可以是单色的,并且因此仅包括亮度样本的一个二维阵列。
与HEVC一样,AVS3标准在基于块的混合视频编解码框架上构建。输入视频信号被逐块(被称为编码单元(coding unit,CU))处理。不同于仅仅基于四叉树来对块进行分区的HEVC,在AVS3中,一个编码树单元(coding tree unit,CTU)被分割成多个CU,以适应基于四叉树/二叉树/扩展四叉树而不同的局部特性。另外,HEVC中的多种分区单元类型的概念被移除了,即,CU、预测单元(prediction unit,PU)和变换单元(transform unit,TU)的拆分不存在于AVS3中。相反,每个CU一直用作预测和变换两者的基本单元,而不进行进一步分区。在AVS3的树分区结构中,首先基于四叉树结构对一个CTU进行分区。然后,每个四叉树叶节点可以基于二叉树和扩展四叉树结构进一步分区。
如图4A所示,视频编码器20(或更具体地,分区单元45)通过首先将帧分区为一组编码树单元(coding tree unit,CTU)来生成帧的已编码表示。视频帧可以包括从左到右以及从上到下以光栅扫描顺序连续排序的整数个CTU。每个CTU是最大的逻辑编码单元,并且由视频编码器20在序列参数集中用信号传输CTU的宽度和高度,使得视频序列中的所有CTU具有相同的尺寸,即128×128、64×64、32×32和16×16中的一个。但是应当注意,本申请不必限于特定的尺寸。如图4B所示,每个CTU可以包括亮度样本的一个编码树块(coding treeblock,CTB)、色度样本的两个对应的编码树块以及用于对编码树块的样本进行编码的语法元素。语法元素描述编码像素块的不同类型的单元的属性以及可以如何在视频解码器30处重建视频序列,所述语法元素包括帧间预测或帧内预测、帧内预测模式、运动矢量和其他参数。在单色图片或具有三个单独的色彩平面的图片中,CTU可以包括单个编码树块和用于对编码树块的样本进行编码的语法元素。编码树块可以是N×N样本块。
为了实现更好的性能,视频编码器20可以对CTU的编码树块递归地执行树分区(如二叉树分区、三叉树分区、四叉树分区或两者的组合),并且将CTU分区为较小的编码单元(coding unit,CU)。如图4C描绘的,首先将64×64CTU 400划分为四个较小的CU,每个CU的块尺寸为32×32。在四个较小的CU中,CU 410和CU 420按块尺寸各自划分为四个16×16的CU。两个16×16CU 430和440按块尺寸各自进一步划分为四个8×8的CU。图4D描绘了图示了如图4C中所描绘的CTU 400的分区过程的最终结果的四叉树数据结构,四叉树的每个叶节点对应于相应尺寸在32×32至8×8范围内的一个CU。类似于图4B描绘的CTU,每个CU可以包括亮度样本的编码块(coding block,CB)和相同尺寸的帧的色度样本的两个对应的编码块,以及用于对编码块的样本进行编码的语法元素。在单色图片或具有三个单独的色彩平面的图片中,CU可以包括单个编码块和用于对编码块的样本进行编码的语法结构。应当注意,图4C和图4D中描绘的四叉树分区仅用于说明目的,并且可以将一个CTU分割成多个CU以适应基于四叉树/三叉树/二叉树分区的不同的局部特性。在多类型树结构中,一个CTU被四叉树结构分区,并且每个四叉树叶CU可以进一步被二叉树结构或三叉树结构分区。如图4E所示,AVS3中有五种分割/分区类型,即四元分区、水平二元分区、竖直二元分区、水平扩展四叉树分区和竖直扩展四叉树分区。
在一些实施方式中,视频编码器20可以进一步将CU的编码块分区为一个或多个M×N预测块(prediction block,PB)。预测块是应用相同预测(帧间或帧内)的矩形(正方形或非正方形)样本块。CU的预测单元(prediction unit,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的变换单元(transform unit,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可以对指示量化变换系数的语法元素执行上下文自适应二进制算术编码(Context-Adaptive BinaryArithmetic coding,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与位于相邻位置的两个样本的值n0和n1进行比较,将CTB中的每个样本分类到五个EdgeIdx类别之一中,如图5所示。这种分类是基于解码样值对每个样本进行的,因此EdgeIdx分类不需要另外的信号传输。根据样本位置处的EdgeIdx类别,对于从1到4的EdgeIdx类别,将来自传输的查找表的偏移值添加到样值。类别1和类别2的偏移值始终为正,并且类别3和类别4的偏移值始终为负。因此滤波器通常在边缘偏移模式下具有平滑效果。
下面的表1图示了SAO边缘类中的样本EdgeIdx类别。
表1:SAO边缘类中的样本EdgeIdx类别。
对于SAO类型1和2,对于每个CTB,总共有四个幅度偏移值被传输到解码器。对于类型1,符号也被编码。偏移值和相关语法元素(如sao-type-idx和sao-eo-class)由编码器确定——通常使用优化率失真性能的标准。可以使用合并标志来将SAO参数指示为从CTB的左侧或上方继承的,以使信号传输有效。总之,SAO是非线性滤波操作,其允许对重建信号进行另外的细化,并且SAO可以增强平滑区域和边缘周围的信号表示。
在一些实施例中,本文公开了通过引入跨分量信息来改善编解码效率或降低样本自适应偏移(Sample Adaptive Offset,SAO)的复杂性的方法和系统。SAO在HEVC、VVC、AVS2和AVS3标准中使用。尽管在以下描述中使用HEVC、VVC、AVS2和AVS3标准中现有的SAO设计作为基本SAO方法,但对于视频编解码领域的技术人员来说,本公开中描述的跨分量方法也可以应用于其他环路滤波器设计或具有类似设计精神的其他编码工具。例如,在AVS3标准中,SAO被所谓增强样本自适应偏移(Enhanced Sample Adaptive Offset,ESAO)的编解码工具替代。然而,本文中公开的CCSAO也可以与ESAO并行应用。在另一个示例中,CCSAO可以与AV1标准中的约束定向增强滤波器(Constrained Directional Enhancement Filter,CDEF)并行应用。
对于HEVC、VVC、AVS2和AVS3标准中现有的SAO设计,亮度Y、色度Cb和色度Cr样本偏移值是独立决定的。也就是说,例如,当前色度样本偏移仅由当前和相邻色度样值决定,而不考虑同位或相邻亮度样本。然而,亮度样本比色度样本保留了更多的原始图片细节信息,并且亮度样本可以有利于当前色度样本偏移的确定。此外,由于色度样本在从RGB到YCbCr的颜色转换后或量化和去块滤波器后通常会丢失高频细节,因此引入具有为色度偏移决策保留的高频细节的亮度样本可能有益于色度样本重建。因此,通过探索跨分量相关性,例如通过使用跨分量样本自适应偏移(Cross-Component Sample Adaptive Offset,CCSAO)的方法和系统,可以预期进一步的增益。在一些实施例中,这里的相关性不仅包括跨分量样值,还包括图片/编解码信息,如预测/残差编码模式、变换类型以及来自跨分量的量化/去块/SAO/ALF参数。
另一个示例是,对于SAO,亮度样本偏移仅由亮度样本决定。然而,例如,具有相同带偏移(band offset,BO)分类的亮度样本可以进一步通过其同位和相邻色度样本进行分类,这可以带来更有效的分类。SAO分类可以被视为补偿原始图片与重建的图片之间的样本差的捷径。因此,有效的分类是期望的。
图6A是图示了根据本公开的一些实施方式的应用于色度样本并使用DBF Y作为输入的CCSAO的系统和过程的框图。亮度去块滤波器(luma deblocking filter,DBF Y)后的亮度样本用于确定色度Cb和Cr在SAO Cb和SAO Cr之后的附加偏移。例如,首先使用同位604和相邻(白色)亮度样本606对当前色度样本602进行分类,并且将对应类的对应CCSAO偏移值添加到当前色度样值。图6B是图示了根据本公开的一些实施方式的应用于亮度样本和色度样本并使用DBF Y/Cb/Cr作为输入的CCSAO的系统和过程的框图。图6C是图示了根据本公开的一些实施方式的可以独立工作的CCSAO的系统和过程的框图。图6D是图示了根据本公开的一些实施方式的可以在相同codec阶段以相同或不同偏移递归地(2次或N次)应用的或在不同阶段重复的CCSAO的系统和过程的框图。总之,在一些实施例中,为了对当前亮度样本进行分类,可以使用当前和相邻亮度样本的信息、同位和相邻色度样本(Cb和Cr)的信息。在一些实施例中,为了对当前色度样本(Cb或Cr)进行分类,可以使用同位和相邻亮度样本、同位和相邻跨色度样本以及当前和相邻色度样本。在一些实施例中,CCSAO可以级联在(1)DBF Y/Cb/Cr之后;(2)重建的图像Y/Cb/Cr之后、DBF之前;或(3)SAO Y/Cb/Cr之后;或(4)ALF Y/Cb/Cr之后。
在一些实施例中,CCSAO还可以与其他编解码工具(例如AVS标准中的ESAO或者AV1标准中的CDEF)并行应用。图6E是图示了根据本公开的一些实施方式的与AVS标准中的ESAO并行应用的CCSAO的系统和过程的框图。
图6F是图示了根据本公开的一些实施方式的在SAO之后应用的CCSAO的系统和过程的框图。在一些实施例中,图6F示出了CCSAO的位置可以在SAO之后,即,跨分量自适应环路滤波器(Cross-Component Adaptive Loop Filter,CCALF)在VVC标准中的位置。图6G是图示了根据本公开的一些实施方式的可以在没有CCALF的情况下独立工作的CCSAO的系统和过程的框图。在一些实施例中,例如,在AVS3标准中,SAO Y/Cb/Cr可以被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类型(边缘偏移(edgeoffset,EO)或BO)、类和类别。可以从解码器本身用信号传输或得到对应的CCSAO偏移。例如,令h_Y为同位亮度SAO偏移,h_Cb和h_Cr分别为CCSAO Cb和Cr偏移。h_Cb(或h_Cr)=w*h_Y,其中w可以在有限的表中选择。例如,+-1/4、+-1/2、0、+-1、+-2、+-4......等,其中,|w|仅包括2的幂值。
在一些实施例中,使用同位亮度样本(Y0)与相邻的8个亮度样本的比较分数[-8,8],总共产生17个类。
Initial Class=0
循环相邻的8个亮度样本(Yi,i=1到8)
如果Y0>Yi则Class+=1
否则如果Y0<Yi则Class-=1
在一些实施例中,可以组合上述分类方法。例如,比较分数结合SAO BO(32个带分类)用于增加多样性,总共产生17*32个类。在一些实施例中,Cb和Cr可以使用相同的类来降低复杂性或节省位。
图7是图示了根据本公开的一些实施方式的使用CCSAO的样本过程的框图。具体地,图7示出了CCSAO的输入可以引入竖直和水平DBF的输入,以简化类确定或增加灵活性。例如,令Y0_DBF_V、Y0_DBF_H和Y0分别为DBF_V、DBF_H和SAO的输入处的同位亮度样本。Yi_DBF_V、Yi_DBF_H和Yi分别为DBF_V、DBF_H和SAO的输入处的相邻的8个亮度样本,其中,i=1到8。
Max Y0=max(Y0_DBF_V,Y0DBF_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,第一CCSAO_V应用与图6中相同的样本处理,同时使用DBF_V亮度样本的输入作为CCSAO输入。
在一些实施例中,实施的CCSAO语法在以下表2中示出。
表2:CCSAO语法的示例
在一些实施例中,对于用信号传输CCSAO Cb和Cr偏移值,如果用信号传输了一个附加色度偏移,则可以通过加号或减号或加权得到另一个色度分量偏移以节省位开销。例如,令h_Cb和h_Cr分别为CCSAO Cb和Cr的偏移。使用显式信号传输w,其中w=+-|w|具有有限|w|候选项,h_Cr可以从h_Cb得到,而无需显式信号传输h_Cr本身。
h_Cr=w*h_Cb
图9是图示了根据本公开的一些实施方式的使用跨分量相关性对视频信号进行解码的示例性过程900的流程图。
视频解码器30接收包括第一分量和第二分量的视频信号(910)。在一些实施例中,第一分量是亮度分量并且第二分量是视频信号的色度分量。
视频解码器30还接收与第二分量相关联的多个偏移(920)。
视频解码器30然后利用第一分量的特性测量结果来获得与第二分量相关联的分类类别(930)。例如,在图6中,首先使用同位604和相邻(白色)亮度样本606对当前色度样本602进行分类,并且将对应CCSAO偏移值添加到当前色度样本。
视频解码器30进一步根据分类类别从多个偏移中为第二分量选择第一偏移(940)。
视频解码器30基于所选第一偏移另外地修改第二分量(950)。
在一些实施例中,利用第一分量的特性测量结果来获得与第二分量相关联的分类类别(930)包括:利用第一分量的相应样本来获得第二分量的相应每个样本的相应分类类别,其中,第一分量的相应样本是第一分量的针对第二分量的相应每个样本的相应同位样本。例如,当前色度样本分类是重用同位亮度样本的SAO类型(EO或BO)、类和类别。
在一些实施例中,利用第一分量的特性测量结果来获得与第二分量相关联的分类类别(930)包括:利用第一分量的相应样本来获得第二分量的相应每个样本的相应分类类别,其中,第一分量的相应样本在去块之前被重建或者在去块之后被重建。在一些实施例中,第一分量在去块滤波器(deblocking filter,DBF)处被去块。在一些实施例中,第一分量在亮度去块滤波器(luma deblocking filter,DBF Y)处被去块。例如,替代图6或图7,CCSAO输入也可以在DBF Y之前。
在一些实施例中,通过将第一分量的样值范围划分为若干个带并且基于第一分量中样本的强度值选择带来得到特性测量结果。在一些实施例中,从带偏移(Band Offset,BO)得到特性测量结果。
在一些实施例中,基于第一分量中样本的边缘信息的方向和强度得到特性测量结果。在一些实施例中,从边缘偏移(Edge Offset,EO)得到特性测量结果。
在一些实施例中,修改第二分量(950)包括将所选第一偏移直接添加到第二分量。例如,将对应CCSAO偏移值添加到当前色度分量样本中。
在一些实施例中,修改第二分量(950)包括将所选第一偏移映射到第二偏移并且将映射的第二偏移添加到第二分量。例如,对于用信号传输CCSAO Cb和Cr偏移值,如果用信号传输了一个附加色度偏移,则可以通过使用加号或减号或加权得到另一个色度分量偏移以节省位开销。
在一些实施例中,接收视频信号(910)包括接收语法元素,所述语法元素指示是否针对序列参数集(Sequence Parameter Set,SPS)中的视频信号启用使用CCSAO对视频信号进行解码的方法。在一些实施例中,cc_sao_enabled_flag指示是否在序列级别启用CCSAO。
在一些实施例中,接收视频信号(910)包括接收语法元素,所述语法元素指示是否在条带级别上针对第二分量启用使用CCSAO对视频信号进行解码的方法。在一些实施例中,slice_cc_sao_cb_flag或slice_cc_sao_cr_flag指示是否针对Cb或Cr在相应条带中启用CCSAO。
在一些实施例中,接收与第二分量相关联的多个偏移(920)包括接收针对不同编码树单元(Coding Tree Unit,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。
在一些实施例中,分类器(classifier)示例(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分类。
在一些实施例中,可以在序列参数集(Sequence Parameter Set,SPS)/自适应参数集(Adaptation parameter set,APS)/图片参数集(Picture parameter set,PPS)/图片头部(Picture header,PH)/条带头部(Slice header,SH)/区域/编码树单元(Coding treeunit,CTU)/编码单元(Coding unit,CU)/子块/样本级别中切换不同的分类器。例如,在图10中,对POC0使用Y0,但对POC1使用Y7,如下表4所示。
POC | 分类器 | C0 band_num | 总类 |
0 | C0使用Y0位置 | 8 | 8 |
1 | C0使用Y7位置 | 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)。
在一些实施例中,可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中组合和切换C0位置和C0 band_num。不同的组合可以是不同的分类器,如下表5所示。
POC | 分类器 | C0 band_num | 总类 |
0 | C0使用Y0位置 | 16 | 16 |
1 | C0使用Y7位置 | 8 | 8 |
表5:不同的分类器和带数组合应用于不同的图片
在一些实施例中,用通过对同位和相邻亮度样本进行加权而获得的值(Yp)来替代同位亮度样值(Y0)。图12图示了根据本公开的一些实施方式的通过用通过对同位和相邻亮度样本进行加权而获得的值来替代同位亮度样值的示例性分类器。可以用通过对相邻亮度样本进行加权而获得的相位校正值(Yp)来替代同位亮度样值(Y0)。不同的Yp可以是不同的分类器。
在一些实施例中,不同的Yp应用于不同的色度格式。例如,在图12中,(a)的Yp用于420色度格式,(b)的Yp用于422色度格式,并且Y0用于444色度格式。
在一些实施例中,另一个分类器(C1)是同位亮度样本(Y0)与相邻的8个亮度样本的比较分数[-8,8],如下所示,总共产生17个类。
Initial Class(C1)=0,循环相邻的8个亮度样本(Yi,i=1到8)
如果Y0>Yi则Class+=1
否则如果Y0<Yi则Class-=1
在一些实施例中,C1示例等于以下函数,其中,阈值th为0。
ClassIdx=Index2ClassTable(f(C,P1)+f(C,P2)+...+f(C,P8))
如果x-y>th,则f(x,y)=1;如果x-y=th,则f(x,y)=0;如果x-y<th,则f(x,y)=-1
其中,Index2ClassTable是查找表(LUT),C是当前样本或同位样本,并且P1到P8是相邻样本。
在一些实施例中,类似于C4分类器,可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中预先定义(例如,保持在LUT中)或用信号传输一个或多个阈值来帮助对差进行分类(量化)。
在一些实施例中,变型(C1’)仅计算比较分数[0,8],并且这会产生8个类。(C1,C1’)是分类器组,并且可以通过信号传输PH/SH级别标志以在C1与C1’之间切换。
Initial Class(C1’)=0,循环相邻的8个亮度样本(Yi,i=1到8)
如果Y0>Yi则Class+=1
在一些实施例中,变型(C1s)是选择性地使用M个相邻样本中相邻的N个样本来对比较分数进行计数。可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中用信号传输M位位掩码,以指示选择哪些相邻样本来对比较分数进行计数。使用图6B作为亮度分类器的示例:8个相邻的亮度样本是候选项,并且在PH处用信号传输指示选择了Y1到Y6这6个样本的8位位掩码(01111110),因此比较分数在[-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所示。在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中用信号传输10位位掩码以指示分类器。例如,位掩码11 1100 0000意味着对于给定的10位亮度样值,仅使用最高有效位(mostsignificant bit,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进行分类。位掩码分类器可以应用于亮度或色度分类。无论是将MSB还是LSB用于位掩码,N都可以是固定的或在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中切换。
在一些实施例中,亮度位置和C3位掩码可以组合或在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中切换。不同的组合可以是不同的分类器。
在一些实施例中,可以应用位掩码限制的“最大1数量”来限制对应的偏移数量。例如,在SPS中限制位掩码的“最大1数量”为4,并且这产生的序列中的最大偏移为16。不同POC中的位掩码可以不同,但是“最大1数量”不应超过4(总类不应超过16)。可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中用信号传输和切换“最大1数量”值。
表6-2:分类器示例使用位掩码进行分类(位掩码位置加下划线)
在一些实施例中,如图11所示,其他跨分量色度样本(例如,色度样本1102及其相邻样本)也可以被馈送到例如用于当前色度样本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时,Yn的动态范围为[-1024,1023]。令C2 band_num为Yn动态范围的等分带数量,
Class(C2)=(Yn+(1<<bit_depth)*band_num)>>(bit_depth+1)。
在一些实施例中,组合C0和C2以产生通用分类器。例如,对于不同的图片(不同的POC),应用不同的分类器,如下表7所示。
POC | 分类器 | C0 band_num | C2 band_num | 总类 |
0 | 组合C0和C2 | 16 | 16 | 16*17 |
1 | 组合C0和C2 | 8 | 7 | 8*7 |
表7:不同通用分类器应用于不同图片
在一些实施例中,组合了所有上述分类器(C0、C1、C1’、C2)。例如,对于不同的图片(不同的POC),应用不同的分类器,如下表8-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所示。例如,如果在ALF阶段应用CCSAO,则使用当前分量的ALF前和ALF后样值的差进行分类。可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中预先定义(例如,保持在查找表(look up table,LUT)中)或用信号传输一个或多个阈值来帮助对差进行分类(量化)。可以将C4分类器与C0Y/U/V bandNum组合以形成联合分类器(例如,POC1示例,如表8-2所示)。
表8-2:分类器示例使用CCSAO输入值和待补偿的样值的差进行分类
在一些实施例中,分类器示例(C5)使用“编解码信息”来帮助子块分类,因为不同编码模式可以将不同的失真统计数据引入到重建图像中。CCSAO样本通过其样本的先前编解码信息进行分类,并且编解码信息的组合可以形成分类器,例如,如下表8-3所示。图30示出了用于C5的编解码信息的不同阶段的另一个示例。
/>
表8-3CCSAO样本通过其样本的先前编解码信息进行分类,并且编解码信息的组合可以形成分类器
在一些实施例中,分类器示例(C6)使用YUV颜色变换值进行分类。例如,为了对当前Y分量进行分类,选择将1/1/1同位或相邻Y/U/V样本颜色变换至RGB,并且使用C3bandNum来将R值量化为当前Y分量分类器。
在一些实施例中,可以使用仅使用当前分量信息进行当前分量分类的其他分类器示例作为跨分量分类。例如,如图5和表1所示,使用亮度样本信息和eo-class来得到EdgeIdx,并对当前色度样本进行分类。也可以用作跨分量分类器的其他“非跨分量”分类器包括边缘方向、像素强度、像素变型、像素方差、像素拉普拉斯和、索贝尔算子、罗盘算子、高通滤波值、低通滤波值等。
在一些实施例中,在同一POC中使用多个分类器。当前帧被若干个区域划分,并且每个区域使用相同的分类器。例如,POC0中使用了3个不同的分类器,并且使用了哪个分类器(0、1或2)在CTU级别用信号传输,如下表9所示。
POC | 分类器 | C0 band_num | 区域 |
0 | C0使用Y0位置 | 16 | 0 |
0 | C0使用Y0位置 | 8 | 1 |
0 | C0使用Y1位置 | 8 | 2 |
表9:不同通用分类器应用于相同图片中的不同区域
在一些实施例中,最大数量的多个分类器(多个分类器也可以称为替代性偏移集)可以是固定的或在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中用信号传输。在一个示例中,多个分类器的固定的(预定义的)最大数量为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。还可以使用固定长度码、哥伦布莱斯(golomb-rice)码和指数哥伦布码(exponential-golomb)来指示CTB的分类器(偏移集索引)。POC1中使用了3个不同的分类器。
POC | 分类器 | C0 band_num | 区域 | TU码 |
0 | C0使用Y3位置 | 6 | 0 | 10 |
0 | C0使用Y3位置 | 7 | 1 | 110 |
0 | C0使用Y1位置 | 3 | 2 | 1110 |
0 | C0使用Y6位置 | 6 | 3 | 1111 |
1 | C0使用Y0位置 | 16 | 0 | 10 |
1 | C0使用Y0位置 | 8 | 1 | 110 |
1 | C0使用Y1位置 | 8 | 2 | 1110 |
表10:使用截断的一元(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。类型意指选定的同位亮度样本(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/区域/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;
POC | 当前分量 | 偏移集 | 分类器:candPos(Y,U,V)与bandNum(Y,U,V) | 总类(偏移数量) |
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样本进行分类的示例
在一些实施例中,列出了联合使用同位和相邻Y/U/V样本进行当前Y/U/V样本分类的示例(针对每个Y/U/V分量,3个分量联合进行edgeNum(C1s)和bandNum分类),例如,如下表11-3所示。边缘CandPos是用于C1s分类器的居中位置,边缘位掩码是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/区域/CTU/CU/子块/样本级别中用信号传输。例如,在解码器中固定最大band_num=16,并且对于每一帧,用信号传输4个位以指示帧中的C0band_num。以下在表12中列出了一些其他最大band_num示例。
band_num_min | band_num_max | band_num位 |
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位示例
在一些实施例中,每个集合(或添加的所有集合)的最大数量的类或偏移(联合使用多个分类器的组合、例如C1s edgeNum*C1 bandNumY*bandNumU*bandNumV)可以是固定的或在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中用信号传输。例如,max对于添加了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_shift候选项为0、1、2、3、4,对应于band_num=1、2、4、8、16,如表13所示。
POC | 分类器 | C0 band_num_shift | C0 band_num | 总类 |
0 | C0使用Y0位置 | 4 | 16 | 16 |
1 | C0使用Y7位置 | 3 | 8 | 8 |
band_num_max | 有效band_num | band_num_shift候选项 |
1 | 1 | 0 |
2 | 1、2 | 0、1 |
4 | 1、2、4 | 0、1、2 |
8 | 1、2、4、8 | 0、1、2、3 |
16 | 1、2、4、8、16 | 0、1、2、3、4 |
32 | 1、2、4、8、16、32 | 0、1、2、3、4、5 |
64 | 1、2、4、8、16、32、64 | 0、1、2、3、4、5、6 |
128 | 1、2、4、8、16、32、64、128 | 0、1、2、3、4、5、6、7 |
256 | 1、2、4、8、16、32、64、128、256 | 0、1、2、3、4、5、6、7、8 |
表13:band_num和对应的band_num_shift候选项
在一些实施例中,应用于Cb和Cr的分类器不同。可以单独地用信号传输所有类的Cb和Cr偏移。例如,不同的信号传输的偏移应用于不同的色度分量,如下表14所示。
表14:可以单独地用信号传输所有类的Cb和Cr偏移
在一些实施例中,最大偏移值是固定的或者在序列参数集(Sequence ParameterSet,SPS)/自适应参数集(Adaptation parameter set,APS)/图片参数集(Pictureparameter set,PPS)/图片头部(Picture header,PH)/条带头部(Slice header,SH)/区域/CTU/CU/子块/样本级别中用信号传输。例如,最大偏移介于[-15,15]之间。不同分量可以具有不同的最大偏移值。
在一些实施例中,偏移信号传输可以使用差分脉冲编码调制(Differentialpulse-code modulation,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偏移可以由POC2重用,其中,用信号传输偏移集idx=0,如下表20所示。
表20:可以用信号传输索引以指示哪个先前已解码的偏移集用于当前帧
在一些实施例中,Cb和Cr的重用偏移集idx可以不同,例如,如下表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之后的输出亮度或色度样值:
偏移=ccsao_offset[R(x,y)的class_index]
R’(x,y)=Clip3(0,(1<<bit_depth)-1,R(x,y)+偏移)
根据以上等式,使用当前图片和/或当前偏移集idx的指示的分类器对每个亮度或色度样值R(x,y)进行分类。将得到的类索引的对应偏移添加到每个亮度或色度样值R(x,y)。对(R(x,y)+偏移)应用截取函数Clip 3,以使输出亮度或色度样值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可以应用于当前亮度或色度样本。在一些实施例中,如果用于分类的任何同位和相邻亮度(色度)样本在当前子图片/条带/瓦片/片/CTU/360虚拟边界之外,则本文中公开的禁用/重复/镜像图片边界处理方法也可以应用于子图片/条带/瓦片/CTU/360虚拟边界。
例如,图片被划分为一个或多个瓦片行和一个或多个瓦片列。瓦片是覆盖图片的矩形区域的一系列CTU。
条带由整数数量的完整瓦片或图片的瓦片内的整数数量的连续完整CTU行构成。
子图片包含共同覆盖图片的矩形区域的一个或多个条带。
在一些实施例中,360度视频是在球体上捕获的并且固有地没有“边界”,在投影域中的参考图片的边界之外的参考样本总是可以从球面域中的相邻样本中获得。对于由多个面构成的投影格式,无论使用何种紧凑的帧封装布置,帧封装图片中的两个或更多个邻近面之间都会出现不连续。在VVC中,引入了竖直和/或水平虚拟边界(跨所述虚拟边界,环路滤波操作被禁用),并且这些边界的位置在SPS或图片头部中用信号传输。与使用两个瓦片(每组连续面一个瓦片)相比,360虚拟边界的使用更灵活,因为它不需要面尺寸是CTU尺寸的倍数。在一些实施例中,竖直360虚拟边界的最大数量是3,并且水平360虚拟边界的最大数量也是3。在一些实施例中,两个虚拟边界之间的距离大于或等于CTU尺寸,并且虚拟边界粒度为8个亮度样本,例如,8×8样本网格。
图14是图示了根据本公开的一些实施方式的在用于分类的对应的所选同位或相邻亮度样本在由虚拟边界限定的虚拟空间之外时不将CCSAO应用于当前色度样本的框图。在一些实施例中,虚拟边界(virtual boundary,VB)是分隔图片帧内的空间的虚拟线。在一些实施例中,如果在当前帧中应用了虚拟边界(VB),则不将CCSAO应用于已经在由虚拟边界限定的虚拟空间之外选择了对应的亮度位置的色度样本。图14示出了C0分类器的虚拟边界具有9个亮度位置候选项的的示例。对于每个CTU,不将CCSAO应用于对应的所选亮度位置在由虚拟边界环绕的虚拟空间之外的色度样本。例如,在图14(a)中,当所选Y7亮度样本位置在水平虚拟边界1406的另一侧(所述另一侧距帧的底侧4个像素行)时,不将CCSAO应用于色度样本1402。例如,在图14(b)中,当所选Y5亮度样本位置位于竖直虚拟边界1408的另一侧(所述另一侧距帧的右侧y个像素行)时,不将CCSAO应用于色度样本1404。
图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中9个亮度候选项CCSAO跨VB 1702可以增加2个附加亮度行缓冲器的图示。对于在虚拟边界(VB)1702上方的亮度样本和色度样本,在当前CTU行处理DBF/SAO/ALF。对于在VB 1702下方的亮度样本和色度样本,在下一CTU行处理DBF/SAO/ALF。在AVS解码器硬件设计中,亮度行-4到-1的DBF前样本、亮度行-5的SAO前样本以及色度行-3到-1的DBF前样本、色度行-4的SAO前样本被存储为行缓冲器,以进行下一CTU行DBF/SAO/ALF处理。当处理下一CTU行时,不在行缓冲器中的亮度样本和色度样本不可用。然而,例如,在色度行-3(b)位置处,色度样本在下一CTU行进行处理,但CCSAO需要SAO前亮度样本行-7、-6和-5进行分类。SAO前亮度样本行-7、-6不在行缓冲器中,因此它们不可用。而且,将SAO前亮度样本行-7和-6添加到行缓冲器将增加解码器硬件实施成本。在一些示例中,亮度VB(第-4行)和色度VB(第-3行)可以不同(未对齐)。
类似于图17,图18A示出了根据本公开的一些实施方式的在VVC中9个亮度候选项CCSAO跨VB 1802可以增加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。在一些实施例中,对于“跨VB”色度候选项,实施从VB下方的亮度最近相邻项开始重复填充。图20A至图20C示出了根据本公开的一些实施方式的在AVS和VVC中在色度样本的任何亮度候选项跨VB 2002(在当前色度样本VB之外)时对于色度样本使用重复填充启用CCSAO。图14(a)还示出了此实施方式的一些示例。
在一些实施例中,在第三解决方案中,对于“跨VB”亮度候选项,从亮度VB下方开始,使用镜像填充进行CCSAO。图21A至图21C示出了根据本公开的一些实施方式的在AVS和VVC中在色度样本的任何亮度候选项跨VB 2102(在当前色度样本VB之外)时对于色度样本使用镜像填充启用CCSAO。图14(b)和图13B(b)还示出了此实施方式的一些示例。在一些实施例中,在第四解决方案中,使用“双侧对称填充”来应用CCSAO。图22A至图22B示出了根据本公开的一些实施方式的对于不同CCSAO形状(例如,9个亮度候选项(图22A)和8个亮度候选项(图22B))的一些示例使用双侧对称填充启用CCSAO。对于具有色度样本的同位居中亮度样本的亮度样本集,如果亮度样本集的一侧在VB 2202之外,则将双侧对称填充应用于亮度样本集的两侧。例如,在图22A中,亮度样本Y0、Y1和Y2在VB 2202之外,因此Y0、Y1、Y2和Y6、Y7、Y8均使用Y3、Y4、Y5进行填充。例如,在图22B中,亮度样本Y0在VB 2202之外,因此Y0使用Y2进行填充,并且Y7使用Y5进行填充。
图18B示出了根据本公开的一些实施方式的当同位或相邻色度样本用于对当前亮度样本进行分类时所选色度候选项可以跨VB并且需要附加色度行缓冲器的图示。可以应用如上文描述的类似解决方案1到4来处理问题。
解决方案1是当亮度样本的任何色度候选项可以跨VB时对于所述亮度样本禁用CCSAO。
解决方案2是对于“跨VB”色度候选项从VB下方的色度最近相邻项开始使用重复填充。
解决方案3是对于“跨VB”色度候选项从色度VB下方开始使用镜像填充。
解决方案4是使用“双侧对称填充”。对于以CCSAO同位色度样本为中心的候选项集,如果候选项集的一侧在VB之外,则将双侧对称填充应用于两侧。
填充方法给出了更多的亮度或色度样本可能性来应用CCSAO,因此可以获得更多的编解码增益。
在一些实施例中,在底部图片(或条带、瓦片、砖)边界CTU行,VB下方的样本在当前CTU行进行处理,因此不在底部图片(或条带、瓦片、砖)边界CTU行应用以上特殊处理(解决方案1、2、3、4)。例如,1920×1080的帧被128×128的CTU划分。帧包含15×9个CTU(向上舍入)。底部CTU行是第15CTU行。解码过程是逐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处理。
在一些实施例中,图13至图22中显示的VB可以被子图片/条带/瓦片/片(patch)/CTU/360虚拟边界中的边界替代。在一些实施例中,可以切换图13至图22中的色度样本和亮度样本的位置。在一些实施例中,图13至图22中的色度样本和亮度样本的位置可以被第一色度样本和第二色度样本的位置替代。在一些实施例中,CTU内部的ALF VB通常可以是水平的。在一些实施例中,子图片/条带/瓦片/片/CTU/360虚拟边界中的边界可以是水平的或竖直的。
在一些实施例中,可以施加限制,以减少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对齐,但左上移位(4,4)的样本与VB 2408对齐。此未对齐CTB边界设计有益于去块过程,因为相同去块参数用于每个8×8去块过程区域。
在一些实施例中,CCSAO应用区域单元(掩码尺寸)可以是不同的(大于或小于CTB尺寸),如表24所示。对于不同分量,掩码尺寸可以不同。掩码尺寸可以在SPS/APS/PPS/PH/SH/区域/CTU/CU/子块/样本级别中切换。例如,在PH中,用信号传输一系列掩码开/关标志和偏移集索引,以指示每个CCSAO区域信息。
POC | 分量 | CTB尺寸 | 掩码尺寸 |
0 | Cb | 64x64 | 128x128 |
0 | Cr | 64x64 | 32x32 |
1 | Cb | 64x64 | 16x16 |
1 | Cr | 64x64 | 256x256 |
表24:CCSAO应用区域单元(掩码尺寸)可以是不同的
在一些实施例中,CCSAO应用区域帧分区可以是固定的。例如,将帧分区为N个区域。图25示出了根据本公开的一些实施方式的可以用CCSAO参数来固定CCSAO应用区域帧分区。
在一些实施例中,每个区域具有其自己的区域开/关控制标志和CCSAO参数。而且,如果区域尺寸大于CTB尺寸,则所述区域可以具有CTB开/关控制标志和区域开/关控制标志两者。图25(a)和(b)示出了将帧分区为N个区域的一些示例。图25(a)示出了对4个区域的竖直分区。图25(b)示出了对4个区域的正方形分区。在一些实施例中,类似于图片级别的CTB全开控制标志(ph_cc_sao_cb_ctb_control_flag/ph_cc_sao_cr_ctb_control_flag),如果区域开/关控制标志为关,则可以进一步用信号传输CTB开/关标志。否则,将CCSAO应用于此区域中的所有CTB,而不进一步用信号传输CTB标志。
在一些实施例中,不同CCSAO应用区域可以共享相同的区域开/关控制和CCSAO参数。例如,在图25(c)中,区域0-2共享相同的参数,并且区域3-15共享相同的参数。图25(c)还示出了可以按希尔伯特扫描顺序用信号传输区域开/关控制标志和CCSAO参数。
在一些实施例中,CCSAO应用区域单元可以是从图片/条带/CTB级别分割的四叉树/二叉树/三叉树。类似于CTB分割,用信号传输一系列分割标志,以指示CCSAO应用区域分区。图26示出了根据本公开的一些实施方式的CCSAO应用区域可以是从帧/条带/CTB级别分割的二叉树(Binary-tree,BT)/四叉树(Quad-tree,QT)/三叉树(Ternary-tree,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个区域(与分割到最大深度1的帧QT相同)(a) |
1 | CTB级别切换分类器(b) |
2 | 竖直分区的4个区域(c) |
3 | 分割到最大深度2的帧QT |
表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应用区域可以是根据块内的编解码信息(样本位置、样本编码模式、环路滤波器参数等)的特定区域。例如,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)与条带类似,片头部(patchheader)与条带头部类似。FLC代表固定长度码。TU代表截断的一元码。EGk代表k阶指数哥伦布码,其中k可以是固定的。SVLC代表有符号EG0。UVLC代表无符号EG0。
/>
/>
/>
表27:示例性CCSAO语法
如果较高级别的标志关闭,则可以从标志的关闭状态推断出较低级别的标志并且不需要用信号传输。例如,如果该图片中的ph_cc_sao_cb_flag为假,则ph_cc_sao_cb_band_num_minus1、ph_cc_sao_cb_luma_type、cc_sao_cb_offset_sign_flag、cc_sao_cb_offset_abs、ctb_cc_sao_cb_flag、cc_sao_cb_merge_left_flag和cc_sao_cb_merge_up_flag不存在并且推断为假。
在一些实施例中,SPS ccsao_enabled_flag以SPS SAO启用标志为条件,如下表28所示。
表28:SPS ccsao_enabled_flag以SPS SAO启用标志为条件
在一些实施例中,ph_cc_sao_cb_ctb_control_flag、ph_cc_sao_cr_ctb_control_flag指示是否启用Cb/Cr CTB开/关控制粒度。如果启用ph_cc_sao_cb_ctb_control_flag和ph_cc_sao_cr_ctb_control_flag,则可以进一步用信号传输ctb_cc_sao_cb_flag和ctb_cc_sao_cr_flag。否则,是否在当前图片中应用CCSAO取决于ph_cc_sao_cb_flag、ph_cc_sao_cr_flag,而不在CTB级别进一步用信号传输ctb_cc_sao_cb_flag和ctb_cc_sao_cr_flag。
在一些实施例中,对于ph_cc_sao_cb_type和ph_cc_sao_cr_type,可以进一步用信号传输标志来区分是否使用中心同位亮度位置(图10中的Y0位置)对色度样本进行分类,以减少位开销。类似地,如果在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_sao_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分类方法可以用作后预测滤波器,并且预测可以是帧内预测工具、帧间预测工具或其他预测工具(如帧内块复制)。图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)。
在一些实施例中,第一分量是选自由亮度分量、第一色度分量和第二色度分量构成的组的一个分量,并且第二分量是选自由亮度分量、第一色度分量和第二色度分量构成的组的一个分量。
在一些实施例中,第一组一个或多个样本是通过使用线性变换将与第二分量的相应样本相关联的第一分量的一个或多个样本从第一颜色空间变换到第二颜色空间中来获得的。
在一些实施例中,线性变换由以下表示:
O1=a×I1+b×I2+c×I3
O2=d×I1+e×I2+f×I3
O3=g×I1+h×I2+i×I3
其中,a、b、c、d、e、f、g、h、i是预定常数,I1、I2、I3分别是第一分量、第二分量以及第三分量在第一颜色空间中的样本的值,并且O1、O2、O3分别是第一分量、第二分量和第三分量在第二颜色空间中的样本的值。
在一些实施例中,第一颜色空间是YUV颜色空间,并且第二颜色空间是RGB颜色空间。
在一些实施例中,第一颜色空间是RGB颜色空间,并且第二颜色空间是YUV颜色空间。
在一些实施例中,第一组一个或多个样本是通过使用非线性变换将与第二分量的相应样本相关联的第一分量的一个或多个样本从第一颜色空间变换到第二颜色空间中来获得的。
在一些实施例中,确定分类器(3220)进一步包括:另外根据与第二分量的相应样本相关联的第二分量的第二组一个或多个样本确定针对第一颜色空间中的第二分量的分类器,其中,第二组一个或多个样本在第一颜色空间中或第二颜色空间中。
在一些实施例中,图片帧进一步包括第三分量,并且确定分类器(3220)进一步包括:另外根据与第二分量的相应样本相关联的第三分量的第三组一个或多个样本确定针对第一颜色空间中的第二分量的分类器,其中,第三分量是第二色度分量,并且第三组一个或多个样本在第一颜色空间中或第二颜色空间中。
在一些实施例中,通过第一子分类器和/或第二子分类器中的至少一个确定分类器,其中,第一子分类器是通过将第一分量的第一组一个或多个样本的值的第一动态范围划分为第一数量的带并基于第一分量的第一组一个或多个样本的强度值选择带来确定的,并且第二子分类器是基于第二分量的第二组一个或多个样本的第一子组的边缘信息的方向和强度来确定的。
在一些实施例中,第一分量是第一色度分量并且第二分量是亮度分量,并且与第二分量的相应样本相关联的第一分量的第一组一个或多个样本选自相对于第二分量的相应样本的第一分量的同位样本和相邻样本中的一个或多个样本。
在一些实施例中,与第二分量的相应样本相关联的第二分量的第二组一个或多个样本选自相对于第二分量的相应样本的第二分量的当前样本和相邻样本中的一个或多个样本。
在一些实施例中,确定分类器(3220)进一步包括:另外根据与第二分量的相应样本相关联的第一分量、第二分量和第三分量中的一个或多个分量的第四组一个或多个样本确定针对第一颜色空间中的第二分量的分类器,其中,第四组一个或多个样本在第一颜色空间中或第二颜色空间中。
在一些实施例中,确定分类器(3220)进一步包括:另外根据第四组一个或多个样本的先前编解码信息确定针对第一颜色空间中的第二分量的分类器。
在一些实施例中,确定分类器(3220)进一步包括确定分类器的类索引为:
ClassIdx=Index2ClassTable(f(C,P1)+f(C,P2)+…+f(C,P8))
其中,C是当前样本或同位样本的值,P1、P2、…、P8是相邻样本的值,Index2ClassTable是预定义的索引类表,th是阈值,并且如果x-y>th,则f(x,y)=1;如果x-y=th,则f(x,y)=0;如果x-y<th,则f(x,y)=-1。
图33示出了与用户界面3350耦接的计算环境3310。计算环境3310可以是数据处理服务器的一部分。计算环境3310包括处理器3320、存储器3330和输入/输出(Input/Output,I/O)接口3340。
处理器3320通常控制计算环境3310的整体操作,如与显示、数据获取、数据通信以及图像处理相关联的操作。处理器3320可以包括一个或多个处理器以执行指令以执行上述方法中的所有或一些步骤。而且,处理器3320可以包括促进处理器3320与其他部件之间的交互的一个或多个模块。处理器可以是中央处理单元(Central Processing Unit,CPU)、微处理器、单片机、图形处理单元(Graphical Processing Unit,GPU)等。
存储器3330被配置为存储各种类型的数据以支持计算环境3310的操作。存储器3330可以包括预定软件3332。这种数据的示例包括用于在计算环境3310上操作的任何应用程序或方法的指令、视频数据集、图像数据等。存储器3330可以通过使用任何类型的易失性或非易失性存储器设备或其组合来实施,如静态随机存取存储器(Static Random AccessMemory,SRAM)、电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、可擦可编程只读存储器(Erasable Programmable Read-OnlyMemory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-Only Memory,ROM)、磁存储器、闪速存储器、磁盘或光盘。
I/O接口3340提供处理器3320与外围接口模块(如键盘、点击轮、按钮等)之间的接口。按钮可以包括但不限于主页按钮、开始扫描按钮和停止扫描按钮。I/O接口3340可以与编码器和解码器耦接。
在实施例中,还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质例如在存储器3330中包括多个程序,所述多个程序可由计算环境3310中的处理器3320执行,用于执行上述方法。替代性地,非暂态计算机可读存储介质可以在其中存储有比特流或数据流,所述比特流或数据流包括由编码器(例如,图2中的视频编码器20)使用例如上文描述的编码方法生成的已编码视频信息(例如,包括一个或多个语法元素的视频信息),以供解码器(例如,图3中的视频解码器30)对视频数据进行解码。非暂态计算机可读存储介质可以是例如ROM、随机存取存储器(Random Access Memory,RAM)、CD-ROM、磁带、软盘、光学数据存储设备等。
在实施例中,还提供了一种计算设备,所述计算设备包括:一个或多个处理器(例如,处理器3320);以及非暂态计算机可读存储介质或存储器3330,所述非暂态计算机可读存储介质或存储器中存储有可由所述一个或多个处理器执行的多个程序,其中,所述一个或多个处理器被配置为在执行所述多个程序时执行上述方法。
在实施例中,还提供了一种计算机程序产品,所述计算机程序产品例如在存储器3330中包括多个程序,所述多个程序可由计算环境3310中的处理器3320执行,用于执行上述方法。例如,计算机程序产品可以包括非暂态计算机可读存储介质。
在实施例中,计算环境3310可以用一个或多个ASIC、DSP、数字信号处理设备(Digital Signal Processing Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、FPGA、GPU、控制器、微控制器、微处理器或其他电子部件实施,用于执行上述方法。
另外的实施例还包括在各种其他实施例中组合或以其他方式重新布置的上述实施例的各种子集。
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实施。如果在软件中实施,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质进行传输并且由基于硬件的处理单元执行。计算机可读介质可以包括对应于如数据存储介质等有形介质的计算机可读存储介质或包括有助于例如根据通信协议将计算机程序从一个地方转移到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂态的有形计算机可读存储介质或者(2)如信号或载波等通信介质。数据存储介质可以是可以被一个或多个计算机或者一个或多个处理器访问以取得用于实施本申请中描述的实施方式的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
在对本文中实施方式的描述中使用的术语仅出于描述特定实施方式的目的,并且不旨在限制权利要求的范围。如对实施方式的描述和所附权利要求中使用的,单数形式“一个(a)”、“一种(an)”和“所述(the)”旨在也包括复数形式,除非上下文另有明确指示。还将理解的是,本文所使用的术语“和/或”是指并涵盖相关联列举项目中的一个或多个项目的任何和所有可能组合。将进一步理解的是,当在本说明书中使用术语“包括(comprises)”和/或“包括(comprising)”时,其指定陈述的特征、元件和/或部件的存在,但不排除一个或多个其他特征、元件、部件和/或其组的存在或添加。
还应理解,尽管术语第一、第二等在本文中可以用来描述各种要素,但是这些要素不应该受这些术语的限制。这些术语仅仅是用来将一个要素与另一个要素进行区分。例如,在不偏离实施方式的范围的情况下,第一电极可以被称为第二电极,并且类似地,第二电极可以被称为第一电极。第一电极和第二电极都是电极,但是第一电极和第二电极不是同一电极。
在整个说明书中,以单数或复数形式对“一个示例”、“示例”、“示例性示例”等的引用意味着结合示例描述的一个或多个特定特征、结构、或特性被包括在本公开的至少一个示例中。因此,在整个该说明书中的各个地方以单数或复数形式出现的短语“在一个示例中”或“在示例中”、“在示例性示例中”等不一定都是指同一个示例。此外,一个或多个示例中的特定的特征、结构、或特性可以包括以任何合适的方式进行组合。
已经出于说明和描述的目的呈现了对本申请的描述,并且描述不旨在是穷举的或以所公开的形式限于本发明。受益于前述描述和相关联附图中呈现的教导,许多修改、变体和替代性实施方式对于本领域普通技术人员将是显而易见的。选择并描述实施例以便最好地解释本发明的原理、实际应用,并且使本领域其他技术人员能够理解本发明的各种实施方式并且最好地利用基本原理以及具有适合于预期的特定用途的各种修改的各种实施方式。因此,应当理解,权利要求的范围不应受限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在包括在所附权利要求的范围内。
Claims (18)
1.一种对视频信号进行解码的方法,包括:
从所述视频信号接收包括第一颜色空间中的第一分量和第二分量的图片帧;
根据与所述第二分量在所述第一颜色空间中的相应样本相关联的所述第一分量在第二颜色空间中的第一组一个或多个样本确定针对所述第一颜色空间中的所述第二分量的分类器;
根据所述分类器确定针对所述第二分量在所述第一颜色空间中的所述相应样本的样本偏移;以及
基于所确定的样本偏移来修改所述第二分量在所述第一颜色空间中的所述相应样本的值。
2.如权利要求1所述的方法,其中,
所述第一分量是选自由亮度分量、第一色度分量和第二色度分量构成的组的一个分量,并且
所述第二分量是选自由所述亮度分量、所述第一色度分量和所述第二色度分量构成的组的一个分量。
3.如权利要求1所述的方法,其中,所述第一组一个或多个样本是通过使用线性变换将与所述第二分量的所述相应样本相关联的所述第一分量的一个或多个样本从所述第一颜色空间变换到所述第二颜色空间中来获得的。
4.如权利要求3所述的方法,其中,所述线性变换由以下表示:
O1=a×I1+b×I2+c×I3
O2=d×I1+e×I2+f×I3
O3=g×I1+h×I2+i×I3
其中,a、b、c、d、e、f、g、h、i是预定常数,I1、I2、I3分别是所述第一分量、所述第二分量以及第三分量在所述第一颜色空间中的样本的值,并且O1、O2、O3分别是所述第一分量、所述第二分量和所述第三分量在所述第二颜色空间中的样本的值。
5.如权利要求1所述的方法,其中,所述第一颜色空间是YUV颜色空间,并且所述第二颜色空间是RGB颜色空间。
6.如权利要求1所述的方法,其中,所述第一颜色空间是RGB颜色空间,并且所述第二颜色空间是YUV颜色空间。
7.如权利要求1所述的方法,其中,所述第一组一个或多个样本是通过使用非线性变换将与所述第二分量的所述相应样本相关联的所述第一分量的一个或多个样本从所述第一颜色空间变换到所述第二颜色空间中来获得的。
8.如权利要求1所述的方法,其中,确定所述分类器进一步包括:另外根据与所述第二分量的所述相应样本相关联的所述第二分量的第二组一个或多个样本确定针对所述第一颜色空间中的所述第二分量的所述分类器,其中,所述第二组一个或多个样本在所述第一颜色空间中或所述第二颜色空间中。
9.如权利要求8所述的方法,其中,所述图片帧进一步包括第三分量,并且确定所述分类器进一步包括:另外根据与所述第二分量的所述相应样本相关联的所述第三分量的第三组一个或多个样本确定针对所述第一颜色空间中的所述第二分量的所述分类器,其中,所述第三分量是第二色度分量,并且所述第三组一个或多个样本在所述第一颜色空间中或所述第二颜色空间中。
10.如权利要求8所述的方法,其中,所述分类器是通过第一子分类器和/或第二子分类器中的至少一个确定的,其中,所述第一子分类器是通过将所述第一分量的所述第一组一个或多个样本的值的第一动态范围划分为第一数量的带并基于所述第一分量的所述第一组一个或多个样本的强度值选择带来确定的,并且所述第二子分类器是基于所述第二分量的所述第二组一个或多个样本的第一子组的边缘信息的方向和强度来确定的。
11.如权利要求1所述的方法,其中,所述第一分量是第一色度分量并且所述第二分量是亮度分量,并且与所述第二分量的所述相应样本相关联的所述第一分量的所述第一组一个或多个样本选自相对于所述第二分量的所述相应样本的所述第一分量的同位样本和相邻样本中的一个或多个样本。
12.如权利要求8所述的方法,其中,与所述第二分量的所述相应样本相关联的所述第二分量的所述第二组一个或多个样本选自相对于所述第二分量的所述相应样本的所述第二分量的当前样本和相邻样本中的一个或多个样本。
13.如权利要求1所述的方法,其中,确定所述分类器进一步包括:另外根据与所述第二分量的所述相应样本相关联的所述第一分量、所述第二分量和第三分量中的一个或多个分量的第四组一个或多个样本确定针对所述第一颜色空间中的所述第二分量的所述分类器,其中,所述第四组一个或多个样本在所述第一颜色空间中或所述第二颜色空间中。
14.如权利要求13所述的方法,其中,确定所述分类器进一步包括:另外根据所述第四组一个或多个样本的先前编解码信息确定针对所述第一颜色空间中的所述第二分量的所述分类器。
15.如权利要求13所述的方法,其中,确定所述分类器进一步包括确定所述分类器的类索引为:
ClassIdx=Index2ClassTable(f(C,P1)+f(C,P2)+…+f(C,P8))
其中,C是当前样本或同位样本的值,P1、P2、…、P8是相邻样本的值,Index2ClassTable是预定义的索引类表,th是阈值,并且如果x-y>th,则f(x,y)=1;如果x-y=th,则f(x,y)=0;如果x-y<th,则f(x,y)=-1。
16.一种电子装置,包括:
一个或多个处理单元;
存储器,所述存储器耦接到所述一个或多个处理单元;以及
存储在所述存储器中的多个程序,所述多个程序当由所述一个或多个处理单元执行时使所述电子装置执行如权利要求1至15中任一项所述的方法。
17.一种计算机可读存储介质,所述计算机可读存储介质中存储有比特流,所述比特流包括通过如权利要求1至15中任一项所述的用于对所述视频信号进行解码的方法来生成的视频信息。
18.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储用于由具有一个或多个处理单元的电子装置执行的多个程序,其中,所述多个程序当由所述一个或多个处理单元执行时使所述电子装置执行如权利要求1至15中任一项所述的方法。
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/020588 WO2022197828A1 (en) | 2021-03-18 | 2022-03-16 | Coding enhancement in cross-component sample adaptive offset |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117203962A true CN117203962A (zh) | 2023-12-08 |
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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280022405.8A Pending CN117296315A (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 |
---|---|
CN117296315A (zh) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114007067B (zh) | 对视频信号进行解码的方法、设备和介质 | |
CN116418993A (zh) | 视频编码的方法、装置和介质 | |
US20230396781A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
US20240007662A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
CN116325734A (zh) | 具有虚拟边界的跨分量样点自适应偏移中的色度编解码增强 | |
CN115989675A (zh) | 交叉分量样本自适应偏移中的色度编码增强 | |
CN115956362A (zh) | 跨分量样点自适应偏移中的色度编码增强 | |
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 | |
CN117203962A (zh) | 跨分量样本自适应偏移中的编解码增强 | |
US20240137546A1 (en) | Coding enhancement in cross-component sample adaptive offset | |
CN116965017A (zh) | 在跨分量样点自适应偏移中的色度编解码增强 | |
CN117413516A (zh) | 跨分量样本自适应偏移中的编解码增强 | |
CN116671105A (zh) | 具有虚拟边界的跨分量样点自适应偏移中的色度编解码增强 | |
CN117769834A (zh) | 跨分量样点自适应偏移中的编解码增强 | |
CN117917074A (zh) | 跨分量样点自适应偏移中的编解码增强 | |
CN116569551A (zh) | 交叉分量样本自适应偏移中的色度编码增强 | |
CN117795957A (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 |