CN117941351A - 跨分量自适应环路滤波器的方法和系统 - Google Patents
跨分量自适应环路滤波器的方法和系统 Download PDFInfo
- Publication number
- CN117941351A CN117941351A CN202280044086.0A CN202280044086A CN117941351A CN 117941351 A CN117941351 A CN 117941351A CN 202280044086 A CN202280044086 A CN 202280044086A CN 117941351 A CN117941351 A CN 117941351A
- Authority
- CN
- China
- Prior art keywords
- filter
- ccalf
- tap
- video
- prediction
- 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
- 238000000034 method Methods 0.000 title claims abstract description 233
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 43
- 238000012545 processing Methods 0.000 claims description 80
- 238000001914 filtration Methods 0.000 abstract description 13
- 238000003672 processing method Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 100
- 238000013507 mapping Methods 0.000 description 23
- 238000013139 quantization Methods 0.000 description 23
- 230000002123 temporal effect Effects 0.000 description 21
- 230000011664 signaling Effects 0.000 description 19
- 230000015654 memory Effects 0.000 description 16
- 230000004044 response Effects 0.000 description 15
- 238000007906 compression Methods 0.000 description 14
- 230000033001 locomotion Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000006835 compression Effects 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 238000013213 extrapolation Methods 0.000 description 7
- 239000013598 vector Substances 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000006837 decompression Effects 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 241000023320 Luma <angiosperm> Species 0.000 description 4
- 230000009471 action Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 208000028167 Southeast Asian ovalocytosis Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供了一种使用跨分量自适应环路滤波器(CCALF)的视频处理方法或视频编码方法。所述方法包括使用CCALF对解码的视频内容进行滤波,其中所述CCALF是24抽头9×9的滤波器。所述方法还包括基于重建块的分类和统计信息来确定或选择滤波器形状和滤波器系数。
Description
相关申请的交叉引用
本公开要求于2021年6月28日提交的第63/215,521号美国临时申请,2021年8月19日提交的第63/235,111号美国临时申请以及2022年6月24日提交的第17/808,933号美国专利申请的优先权,其全部内容通过引用并入本文。
技术领域
本公开一般涉及视频处理,并且特别地涉及用于视频编码的跨分量自适应环路滤波器的方法和系统。
背景技术
视频是一组捕获视觉信息的静态图像(或“帧”)。为了减少存储内存和传输带宽,视频可以在存储或传输之前进行压缩,并且在显示之前进行解压缩。压缩过程通常被称为编码,解压缩过程通常被称为解码。视频编码格式有多种,它们使用标准化的视频编码技术,大多数通常基于预测、变换、量化、熵编码和环路滤波。视频编码标准是由标准化组织开发的,例如高效率视频编码(HEVC/H.265)标准、多功能视频编码(VVC/H.266)标准和AVS标准,指定了具体的视频编码格式。随着越来越多的高级视频编码技术被采用到视频标准中,新的视频编码标准的编码效率越来越高。
发明内容
本公开实施例提供了一种使用跨分量自适应环路滤波器(CCALF)的视频处理方法。所述方法包括使用CCALF对解码的视频内容进行滤波,其中CCALF是24抽头9×9的滤波器。
本公开实施例提供了一种使用跨分量自适应环路滤波器(CCALF)的视频处理方法。所述方法包括使用CCALF对视频内容进行滤波,其中CCALF是24抽头9×9的滤波器。
本公开实施例提供了一种存储比特流的非暂时性计算机可读介质。比特流包括与编码视频数据相关联的第一索引,第一索引标识跨分量自适应环路滤波器(CCALF),其中CCALF是24抽头9×9的滤波器,并且第一索引使得解码器使用24抽头9×9的滤波器对解码的视频内容进行滤波。
附图说明
在以下的描述和附图中示出了本公开的实施例和各个方面。图中所述的各种特征并未按比例绘制。
图1是示出根据本公开一些实施例的示例性视频序列的结构的示意图。
图2A是示出与本公开实施例一致的混合视频编码系统的示例性编码过程的示意图。
图2B是示出与本公开实施例一致的混合视频编码系统的另一示例性编码过程的示意图。
图3A是示出与本公开实施例一致的混合视频编码系统的示例性解码过程的示意图。
图3B是示出与本公开实施例一致的混合视频编码系统的另一示例性解码过程的示意图。
图4是根据本公开一些实施例的用于视频编码或解码的示例性装置的框图。
图5示出了根据本公开一些实施例的跨分量自适应环路滤波器(CCALF)过程。
图6示出了根据本公开一些实施例的用于多功能视频编码(VVC)的示例性CCALF滤波器形状。
图7示出了根据本公开一些实施例的CCALF的示例性方法的流程图。
图8示出了根据本公开一些实施例的CCALF的五个示例性形状。
图9示出了根据本公开一些实施例的为启用了CCALF的切片中每个编码树块(CTB)用信号发送最佳CCALF滤波器形状的示例性方法的流程图。
图10示出了根据本公开一些实施例的更新的CCALF相关语法元素的示例性语义。
图11示出了根据本公开一些实施例的自适应参数集(APS)语法中用信号发送的示例性自适应环路滤波器(ALF)。
图12示出了根据本公开一些实施例的CCALF过程的示例性更新的VVC规范。
图13示出了根据本公开一些实施例的CCALF相关语义的示例性变化。
图14示出了根据本公开一些实施例的示例性APS语法表。
图15示出了根据本公开一些实施例的用信号发送与CCALF相关联的参数的示例性方法的流程图。
图16示出了根据本公开一些实施例的用于块分类的示例性方法的图示。
图17示出了根据本公开一些实施例的用于块分类的梯度的四种计算。
图18示出了根据本公开一些实施例的用信号发送一个或多个CCALF类别的滤波器系数的APS语法的示例。
图19示出了根据本公开一些实施例的示例性的语义变化。
图20示出了根据本公开一些实施例的示例性更新的VVC规范。
图21示出了根据本公开一些实施例的使用类别合并来用信号发送滤波器系数的方法的流程图。
图22示出了根据本公开一些实施例的使用类别合并来用信号发送滤波器系数的方法的APS语法。
图23示出了根据本公开一些实施例的示例性的语义变化。
图24示出了根据本公开一些实施例的示例性的24抽头9×9的滤波器。
图25示出了根据本公开一些实施例的使用图24所示滤波器的CCALF过程的示例性更新的VVC规范。
图26示出了根据本公开一些实施例的示例性28抽头滤波器。
图27示出了根据本公开一些实施例的示例性36抽头滤波器。
图28示出了根据本公开一些实施例的示例性APS语法表。
图29示出了根据本公开一些实施例的为每个CTB用信号发送最佳滤波器的示例性方法的流程图。
图30示出了根据本公开一些实施例的用于视频处理的示例性方法的流程图。
具体实施方式
现在将详细参考示例性实施例,示例性实施例的示例在附图中示出。下面的描述涉及附图,除非另有表示,不同附图中的相同数字表示相同或相似的元素。以下示例性实施例的描述中阐述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中记载的本发明的一些方面相一致的装置和方法的示例。下面更详细地描述本公开的具体方面。如果本文提供的术语和定义与通过引用并入的术语和/或定义冲突,则以本文提供的术语和定义为准。
ITU-T视频编码专家组(ITU-T VCEG)与ISO/IEC运动图像专家组(ISO/IEC MPEG)的联合视频专家组(JVET)正在开发多功能视频编码(VVC/H.266)标准。VVC标准的目的在于将其前身的高效率视频编码(HEVC/H.265)标准的压缩效率提高一倍。也就是说,VVC的目标是在使用一半带宽的情况下实现与HEVC/H.265相同的主观质量。
为了在使用一半带宽的情况下实现与HEVC/H.265相同的主观质量,JVET一直在使用联合探索模型(JEM)参考软件开发HEVC之外的技术。由于编码技术结合到JEM中,JEM基本上实现了比HEVC更高的编码性能。
VVC标准是最近开发的,并且持续包括更多提供更好的压缩性能的编码技术。VVC基于相同的混合视频编码系统,该系统已经被用于现代视频压缩标准,例如HEVC,H.264/AVC,MPEG2,H.263等。
视频是按时间顺序排列的一组静态图像(或“帧”),用于存储视觉信息。视频采集设备(例如,照相机)可以用来按时间顺序采集和存储那些图像,并且视频播放设备(例如,电视、计算机、智能手机、平板电脑、视频播放器或任意具有显示功能的用户终端设备)可以用来按时间顺序显示这些照像。此外,在一些应用中,视频采集设备可以实时地将采集的视频传输到视频播放设备(例如,具有显示器的计算机),例如用于监测、视频会议或实时广播。
为了减少此类应用所需的存储空间和传输带宽,视频可以在存储和传输之前进行压缩并且在显示之前进行解压缩。压缩和解压缩可以由处理器(例如,通用计算机的处理器)执行的软件实现或专用硬件实现。用于压缩的模块通常被称为“编码器”,用于解压缩的模块通常被称为“解码器”。编码器和解码器可以被统称为“编解码器”。编码器和解码器可以由各种合适的硬件、软件或者其组合来实现。例如,编码器和解码器的硬件实现方式可以包括电路,例如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑或其任何组合。编码器和解码器的软件实现方式可以包括程序代码、计算机可执行指令、固件,或固定在计算机可读介质中的任何合适的计算机实现的算法或过程。视频的压缩和解压缩可以通过各种算法或标准实现,例如,MPEG-1,MPEG-2,MPEG-4,H.26x系列等。在一些应用中,编解码器可以从第一编码标准解压缩视频,并使用第二编码标准重新压缩所解压缩的视频,在这种情况下,编解码器可以被称为“转码器”。
视频编码的过程可以识别和保留可用于重建图像的有用的信息以及忽略对于重建不重要的信息。如果被忽略的不重要的信息无法被完全重建,这种编码过程被称为“有损”。否则,这种编码过程被称为“无损”。大多数的编码过程是有损的,这是减少所需的存储空间和传输带宽的权衡。
被编码的图像(被称为“当前图像”)的有用信息包括相对于参考图像(例如,之前被编码和重建的图像)的变化。这些变化可以包括像素的位置变化、亮度变化或颜色变化,其中位置变化是最受关注的。表示对象的一组像素的位置变化可以反映该对象在当前图像和参考图像之间的运动。
不参考其他图像进行编码的图像(即,它是自己的参考图像)被称为“I-图像”。如果图像中的一些或所有块(例如,通常指视频图像的部分的块)是通过一个参考图像使用帧内预测或帧间预测来预测的(例如,单向预测),则该图像被称为“P-图像”。如果图像中至少一个块是使用两个参考图像来预测的(例如,双向预测),则该图像被称为“B-图像”。
图1示出了根据本公开一些实施例的示例视频序列100的结构。视频序列100可以是实时视频,或已经被采集和存档的视频。视频100可以是现实生活的视频、计算机生成的视频(例如,计算机游戏视频)或其组合(例如,具有增强现实效果的现实生活的视频)。视频序列100可以从视频采集设备(例如,照相机)、包括以前采集的视频的视频存档处(例如,存储在存储设备中的视频文件),或视频输入接口(例如,视频广播收发器)进行输入,以从视频内容提供者接收视频。
如图1所示,视频序列100可以包括沿时间轴排列的一系列图像,包括图像102、104、106以及108。图像102-106是连续的,在图像106和108之间还有更多的图像。在图1中,图像102是I-图像,其参考图像是图像102本身。图像104是P-图像,如箭头所示,其参考图像是图像102。图像106是B-图像,如箭头所示,其参考图像是图像104和108。在一些实施例中,图像(例如,图像104)的参考图像可以不是紧接在该图像之后或之前。例如,图像104的参考图像可以是图像102之前的图像。应当注意的是,图像102-106的参考图像仅是示例,本公开并不将参考图像的实施例限制为图1所示的示例。
通常,由于此类任务的计算复杂度,视频编解码器不会一次对整个图像进行编码和解码。相反,它们可以将图像分成基本片段,并逐片段对图像进行编码和解码。在本公开中,这些基本片段可以被称为基本处理单元(BPU)。例如,图1中的结构110示出了视频序列100中的图像(例如,图像102-108中的任意一个)的示例结构。在结构110中,图像被分为4×4的基本处理单元,其边界显示为虚线。在一些实施例中,基本处理单元在一些视频编码标准(例如,MPEG族、H.261、H.263,或H.264/AVC)中被称为“宏块”,或在一些其他视频编码标准(例如,H.265/HEVC或H.266/VVC)中被称为“编码树单元”(CTU)。在图像中,基本处理单元可以具有各种尺寸,例如128×128,64×64,32×32,16×16,4×8,16×32,或任意形状和尺寸的像素。可以基于编码效率和要在基本处理单元中保持的细节水平的平衡来为图像选择基本处理单元的尺寸和形状。
基本处理单元可以是逻辑单元,其可以包括存储在计算机内存中(例如,在视频帧缓存区中)的一组不同类型的视频数据。例如,彩色图像的基本处理单元可以包括表示消色差亮度信息的亮度分量(Y)、表示颜色信息的一个或多个色度分量(例如,Cb和Cr),以及相关联的语法元素,其中亮度分量和色度分量可以具有与基本处理单元相同的尺寸。在一些视频编码标准(例如,H.265/HEVC或H.266/VVC)中,亮度分量和色度分量可以被称为“编码树块”(CTB)。对基本处理单元执行的任何操作可以对其亮度分量和色度分量中的每一个重复执行。
视频编码具有多个操作阶段,其示例在图2A-图2B以及图3A-图3B中示出。对于每个阶段,基本处理单元的尺寸对于处理来说仍然太大,因此可以进一步划分为片段,在本公开中被称为“基本处理子单元”。在一些实施例中,基本处理子单元在一些视频编码标准(例如,MPEG族、H.261、H.263或H.264/AVC)中被称为“块”,或在一些其他视频编码标准(例如,H.265/HEVC或H.266/VVC)中被称为“编码单元”(CU)。基本处理子单元可以具有与基本处理单元相同或更小的尺寸。与基本处理单元类似,基本处理子单元也可以是逻辑单元,其可以包括存储在计算机内存中(例如,在视频帧缓存区中)的一组不同类型的视频数据(例如,Y、Cb、Cr以及相关联的语法元素)。对基本处理子单元执行的任何操作可以对其亮度分量和色度分量中的每一个重复执行。应当注意的是,基于处理需要,这样的划分可以进行到更深的层次。还应当注意的是,不同的阶段可以使用不同的方案划分基本处理单元。
例如,在模式决定阶段(其示例在图2B中示出),编码器可以决定对于基本处理单元使用什么预测模式(例如,帧内图像预测或帧间图像预测),该基本处理单元可能太大而无法做出这样的决定。编码器可以将基本处理单元划分为多个基本处理子单元(例如,H.265/HEVC或H.266/VVC中的CU),并且为每个单独的基本处理子单元决定预测类型。
又例如,在预测阶段(其示例在图2A-图2B中示出),编码器可以在基本处理子单元(例如,CU)的级别下执行预测操作。然而,在一些情况下,基本处理子单元仍然可能太大而无法处理。编码器可以进一步将基本处理子单元划分为更小的片段(例如,在H.265/HEVC或H.266/VVC中被称为“预测块”或“PB”),预测操作可以在该级别下执行。
又例如,在变换阶段(其示例在图2A-图2B中示出),编码器可以对残差基本处理子单元(例如,CU)执行变换操作。然而,在一些情况下,基本处理子单元仍然可能太大而无法处理。编码器可以进一步将基本处理子单元划分为更小的片段(例如,在H.265/HEVC或H.266/VVC中被称为“变换块”或“TBs”),变换操作可以在该级别下执行。应当注意的是,在预测阶段和变换阶段,同一基本处理子单元的划分方案可以不同。例如,在H.265/HEVC或H.266/VVC中,同一CU的预测块和变换块可以具有不同的尺寸和数量。
在图1中的结构110中,基本处理单元112被进一步划分为3×3的基本处理子单元,其边界显示为点划线。同一图像的不同基本处理单元可以按不同的方案划分为基本处理子单元。
在一些实现方式中,为了提供视频编码和解码的并行处理和容错能力,可以将图像划分为区域进行处理,使得对于图像的一个区域,编码和解码的过程可以不依赖于图像的任何其他区域的信息。也就是说,图像中的每个区域可以独立地处理。这样做可以使编解码器并行处理图像中的不同区域,从而提高编码效率。此外,当区域的数据在处理中损坏或在网络传输中丢失时,编解码器可以在不依赖于损坏或丢失的数据的情况下,正确地编码和解码同一个图像的其他区域,从而提供了容错能力。在一些视频编码标准中,图像可以被划分为不同类型的区域。例如,H.265/HEVC和H.266/VVC提供了两种类型的区域:“条带(slices)”和“矩形片(tiles)”。还应当注意的是,视频序列100的不同图像可以具有将图像划分为区域的不同划分方案。
例如,在图1中,结构110被划分为3个区域114、116以及118,其边界显示为结构110中的实线。区域114包括4个基本处理单元。区域116和118中的每个包括6个基本处理单元。应当注意的是,图1中结构110的基本处理单元、基本子处理单元以及区域仅是示例,本公开并不限制其实施例。
图2A示出了与本公开实施例一致的示例性编码过程200A的示意图。例如,编码过程200A可以由编码器执行。如图2A所示,编码器可以根据过程200A将视频序列202编码为视频比特流228。与图1中的视频序列100类似,视频序列202可以包括按时间顺序排序的一组图像(被称为“原始图像”)。与图1中的结构110类似,视频序列202中的每个原始图像可以被编码器划分为基本处理单元、基本子处理单元以及区域以进行处理。在一些实施例中,编码器可以对视频序列202中每个原始图像在基本处理单元的级别下执行过程200A。例如,编码器可以以迭代的方式执行过程200A,其中编码器可以在过程200A的一次迭代中对基本处理单元进行编码。在一些实施例中,编码器可以针对视频序列202中每个原始图像的区域并行地执行过程200A。
在图2A中,编码器可以将视频序列202的原始图像的基本处理单元(被称为“原始BPU”)提供给预测阶段204来生成预测数据206和预测BPU 208。编码器可以从原始BPU中减去预测BPU 208来生成残差BPU 210。编码器可以将残差BPU 210提供给变换阶段212和量化阶段214来生成量化变换系数216。编码器可以将预测数据206和量化变换系数216提供给二进制编码阶段226来生成视频比特流228。组成部分202、204、206、208、210、212、214、216、226以及228可以被称为“前向路径”。在过程200A中,在量化阶段214之后,编码器可以将量化变换系数216提供给反向量化阶段218和反向变换阶段220来生成重建残差BPU 222。编码器可以将重建残差BPU 222与预测BPU 208相加来生成预测参考224,用于过程200A的下一次迭代的预测阶段204A。过程200A的组成部分218、220、222以及224可以被称为“重建路径”。该重建路径可以用来保证编码器和解码器两者都使用相同的参考数据进行预测。
编码器可以迭代地执行过程200A,以对原始图像中的每个原始BPU进行编码(在前向路径中),并生成预测参考224,以用于对原始图像的下一个原始BPU进行编码(在重建路径中)。在将原始图像中的全部原始BPU编码后,编码器可以继续对视频序列202中的下一个图像进行编码。
参考过程200A,编码器可以接收由视频采集设备(例如,照相机)生成的视频序列202。这里使用的术语“接收”可以指接收、输入、获取、检索、获得、读取、访问或以任何方式输入数据的任何动作。
在预测阶段204,在当前迭代中,编码器可以接收原始BPU和预测参考224,并执行预测操作以生成预测数据206和预测BPU 208。预测参考224可以从过程200A的上一次迭代的重建路径生成。预测阶段204的目的是通过提取预测数据206以减少信息冗余,预测数据206可以用于基于预测数据206和预测参考224将原始BPU重建为预测BPU 208。
理想情况下,预测BPU 208可以与原始BPU相同。然而,由于非理想的预测和重建操作,预测BPU 208通常与原始BPU略有不同。为了记录这些差异,在生成预测BPU 208之后,编码器可以将其从原始BPU中减去以生成残差BPU 210。例如,编码器可以将预测BPU 208的像素值(例如,灰度值或RGB值)从原始BPU的对应像素值中减去。残差BPU 210中的每个像素都有一个残差值,该残差值是原始BPU和预测BPU 208中对应像素相减的结果。与原始BPU相比,预测数据206和残差BPU 210可以具有更少的比特,但是它们可以用来重建原始BPU且没有严重的质量下降。因此,原始BPU被压缩。
为了进一步压缩残差BPU 210,在变换阶段212,编码器可以通过将残差BPU 210分解为一组二维“基本图案”以减少其空间冗余,每个基本图案都与一个“变换系数”相关联。这些基本图案可以具有相同的尺寸(例如,残差BPU 210的尺寸)。每个基本图案可以表示残差BPU 210的一个变化频率(例如,亮度变化频率)分量。没有基本图案能够从任何其他基本图案的任何组合(例如,线性组合)中再现。也就是说,该分解可以将残差BPU 210的变化分解到频域中。这种分解类似于函数的离散傅里叶变换,其中基本图案类似于离散傅里叶变换中的基函数(例如,三角函数),并且变换系数类似于与基函数相关联的系数。
不同的变换算法可以使用不同的基本图案。在变换阶段212可以使用各种变换算法,例如,离散余弦变换、离散正弦变换等。变换阶段212处的变换是可逆的。即,编码器可以通过变换的逆运算(被称为“反向变换”)来恢复残差BPU 210。例如,为了恢复残差BPU 210的像素,反向变换可以将基本图案中对应像素的值乘以各自相关联的系数,并将这些乘积相加来生成加权和。对于视频编码标准,编码器和解码器两者都可以使用相同的变换算法(因此,相同的基本图案)。因此,编码器可以仅记录变换系数,解码器可以通过该变换系数来重建残差BPU 210而无需从编码器接收基本图案。与残差BPU 210相比,变换系数可以具有更少的比特,但是其可以用来重建残差BPU 210且没有严重的质量下降。因此,残差BPU210被进一步压缩。
编码器可以在量化阶段214进一步压缩变换系数。在变换过程中,不同的基本图案可以表示不同的变化频率(例如,亮度变化频率)。因为人眼通常可以更好地识别低频变化,编码器可以忽略高频变化的信息且在解码过程中没有导致严重的质量下降。例如,在量化阶段214,编码器可以将每个变换系数除以一个整数值(被称为“量化比例因子”)并将商舍入其最接近的整数以生成量化变换系数216。在这样的操作之后,一些高频基本图案的变换系数可以被转换为零,并且低频基本图案的变换系数可以被转换为更小的整数。编码器可以忽视值为零的量化变换系数216来进一步压缩变换系数。量化过程是可逆的,其中量化变换系数216可以通过量化的逆运算(被称为“反向量化”)来重建为变换系数。
因为编码器在舍入操作中忽略了这些除法的余数,量化阶段214可能是有损的。通常,量化阶段214在过程200A中可以导致最多的信息损失。信息损失越大,量化变换系数216需要的比特就越少。为了获得不同程度的信息损失,编码器可以使用不同的量化参数值或量化过程中的任何其他参数。
在二进制编码阶段226,编码器可以使用二进制编码技术对预测数据206和量化变换系数216进行编码,二进制编码技术例如可以是熵编码、变长编码、算术编码、霍夫曼编码、上下文自适应二进制算术编码,或任何其他无损或有损压缩算法。在一些实施例中,除了预测数据206和量化变换系数216,编码器也可以在二进制编码阶段226对其他信息进行编码,例如预测阶段204中使用的预测模式、预测操作的参数、变换阶段212中的变换类型、量化过程的参数(例如,量化参数)、编码器控制参数(比特率控制参数)等。编码器可以使用二进制编码阶段226的输出数据来生成视频比特流228。在一些实施例中,视频比特流228可以被进一步打包用于网络传输。
参考过程200A的重建路径,在反向量化阶段218,编码器可以对量化变换系数216执行反向量化以生成重建变换系数。在反向变换阶段220,编码器可以基于重建变换系数生成重建残差BPU 222。编码器可以将重建残差BPU 222与预测BPU 208相加以生成预测参考224,预测参考224在过程200A的下一次迭代中使用。
应当注意的是过程200A的其他变体可以用来对视频序列202进行编码。在一些实施例中,过程200A的各个阶段可以由编码器按不同的顺序执行。在一些实施例中,过程200A中的一个或多个阶段可以被合并为单个阶段。在一些实施例中,过程200A中的单个阶段可以划分为多个阶段。例如,变换阶段212和量化阶段214可以合并为单个阶段。在一些实施例中,过程200A可以包括额外的阶段。在一些实施例中,过程200A可以省略图2A中的一个或多个阶段。
图2B示出了与本公开实施例一致的另一个示例性编码过程200B的示意图。过程200B可以从过程200A修改得到。例如,过程200B可以用于符合混合视频编码标准(例如,H.26x系列)的编码器。与过程200A相比,过程200B的前向路径额外包括模式决定阶段230,并且将预测阶段204划分为空间预测阶段2042和时间预测阶段2044。过程200B的重建路径额外包括环路滤波器阶段232和缓存区234。
通常,预测技术可以分为两类:空间预测和时间预测。空间预测(例如,帧内图像预测或“帧内预测”)可以使用在同一个图像中的一个或多个已编码的相邻BPU的像素来预测当前BPU。即,空间预测中的预测参考224可以包括相邻BPU。空间预测可以减少图像固有的空间冗余。时间预测(例如,帧间图像预测或“帧间预测”)可以使用一个或多个已编码的图像中的区域来预测当前BPU。即,时间预测中的预测参考224可以包括已编码的图像。时间预测可以减少图像固有的时间冗余。
参考过程200B,在前向路径中,编码器在空间预测阶段2042和时间预测阶段2044执行预测操作。例如,在空间预测阶段2042,编码器可以执行帧内预测。对于正在编码的图像中的原始BPU,预测参考224可以包括同一个图像中的已编码(在前向路径中)和已重建(在重建路径中)的一个或多个相邻BPU。编码器可以通过外推相邻BPU来生成预测BPU 208。外推技术可以包括,例如,线性外推或插值、多项式外推或插值等。在一些实施例中,编码器可以在像素级别下执行外推,例如,为预测BPU 208中的每个像素外推对应像素的值。用于外推的相邻BPU相对于原始BPU可以位于不同的方向,例如,竖直方向(在原始BPU的上部)、水平方向(在原始BPU的左侧)、对角线方向(在原始BPU的左下侧、右下侧、左上侧或右上侧),或在所使用的视频编码标准中定义的任意方向。对于帧内预测,预测数据206可以包括,例如,所使用的相邻BPU的位置(例如坐标)、所使用的相邻BPU的尺寸、推断的参数、所使用的相邻BPU相对于原始BPU的方向等。
又例如,在时间预测阶段2044,编码器可以执行帧间预测。对于当前图像的原始BPU,预测参考224可以包括已经被编码(在前向路径中)和重建(在重建路径中)的一个或多个图像(被称为“参考图像”)。在一些实施例中,参考图像可以逐BPU进行编码和重建。例如,编码器可以将重建残差BPU 222与预测BPU208相加来生成重建BPU。当同一个图像中的全部重建BPU都生成时,编码器可以生成一个重建图像作为参考图像。编码器可以执行“运动估计”的操作,以在参考图像的作用域(被称为“搜索窗口”)中搜索匹配区域。参考图像中搜索窗口的位置可以基于原始BPU在当前图像中的位置来确定。例如,搜索窗口可以以参考图像中与当前图像的原始BPU具有相同坐标的位置为中心,且可以向外扩展预定距离。当编码器在搜索窗口中识别出(例如,通过使用像素递归算法、块匹配算法等)与原始BPU相似的区域时,编码器可以将这个区域确定为匹配区域。匹配区域可以具有与原始BPU不同的尺寸(例如,小于、等于、大于,或形状不同)。因为参考图像和当前图像在时间轴上是时间分离的(如图1所示),可以认为匹配区域随着时间的推移“移动”到原始BPU的位置。编码器可以将这种运动的方向和距离记录为“运动矢量”。当使用多个参考图像时(例如,如图1中的图像106),编码器可以为每个参考图像搜索匹配区域以及确定其相关联的运动矢量。在一些实施例中,编码器可以为各个匹配参考图像的匹配区域的像素值分配权重。
运动估计可以用来识别各种类型的运动,例如,平移、旋转、缩放等。对于帧间预测,预测数据206可以包括,例如,匹配区域的位置(坐标)、与匹配区域相关联的运动矢量、参考图像的数量、与参考图像相关联的权重等。
对于生成预测BPU 208,编码器可以执行“运动补偿”操作。运动补偿可以用于基于预测数据206(例如,运动矢量)和预测参考224来重建预测BPU 208。例如,编码器可以根据运动矢量移动参考图像的匹配区域,其中编码器可以预测当前图像的原始BPU。当使用多个参考图像时(例如,如图1中的图像106),编码器可以根据匹配区域的相应运动矢量和平均像素值来移动这些参考图像的匹配区域。在一些实施例中,如果编码器已经向相应的匹配参考图像的匹配区域的像素值分配权重,编码器可以对移动的匹配区域的像素值加权求和。
在一些实施例中,帧间预测可以是单向或双向的。单向帧间预测可以在相对于当前图像的同一时间方向上使用一个或多个参考图像。例如,图1中的图像104是单向帧间预测图像,其中参考图像(例如,图像102)在图像104之前。双向帧间预测可以在相对于当前图像的两个时间方向上使用一个或多个参考图像。例如,图1中的图像106是双向帧间预测图像,其中参考图像(例如,图像104和图像108)相对于图像104在两个时间方向上。
仍然参考过程200B中的前向路径,在空间预测2042和时间预测阶段2044之后,在模式决定阶段230中,编码器可以为过程200B的当前迭代选择预测模式(例如,帧内预测或帧间预测中的一个)。例如,编码器可以执行率失真优化技术,其中编码器可以根据候选预测模式的比特率和该候选预测模式下重建参考图像的失真,选择一种预测模式来最小化代价函数的值。根据被选择的预测模式,编码器可以生成对应的预测BPU 208和预测数据206。
在过程200B的重建路径中,如果在前向路径中选择了帧内预测模式,在生成预测参考224(例如,在当前图像中被编码和重建的当前BPU)之后,编码器可以直接将预测参考224提供给空间预测阶段2042,以便之后使用(例如,用于当前图像的下一个BPU的外推)。编码器可以将预测参考224提供给环路滤波器阶段232,在该阶段编码器可以对预测参考224应用环路滤波器以减少或消除在预测参考224编码过程中引入的失真(例如,块效应)。编码器可以在环路滤波器阶段232应用各种环路滤波器技术,例如,去块、取样自适应偏移(SAO)、自适应环路滤波器(ALF)等。经过环路滤波的参考图像可以存储在缓存区234(或“解码图像缓存区”),以便之后使用(例如,用作视频序列202的未来图像的帧间预测参考图像)。编码器可以在缓存区234中存储一个或多个参考图像,以便用于时间预测阶段2044。在一些实施例中,编码器可以在二进制编码阶段226对环路滤波器的参数(例如,环路滤波器的强度)进行编码,以及对量化变换系数216、预测数据206和其他信息进行编码。
图3A示出了与本公开实施例一致的示例性解码过程300A的示意图。过程300A可以是与图2A中的压缩过程200A对应的解压缩过程。在一些实施例中,过程300A可以类似于过程200A的重建路径。解码器可以根据过程300A将视频比特流228解码为视频流304。视频流304可以非常类似于视频序列202。然而,由于压缩和解压缩过程中(例如,图2A-图2B中的量化阶段214)的信息损失,通常,视频流304与视频序列202不完全相同。类似于图2A-图2B中的过程200A和200B,解码器可以对视频比特流228中每个被编码的图像在基本处理单元(BPU)的级别下执行过程300A。例如,解码器可以以迭代的方式执行过程300A,其中解码器可以在过程300A的一次迭代中对基本处理单元进行解码。在一些实施例中,解码器可以针对视频比特流228中每个被编码的图像的区域(例如,区域114-118)并行地执行过程300A。
在图3A中,解码器可以将与已编码图像中的基本处理单元(被称为“已编码BPU”)相关联的视频比特流228的一部分提供给二进制解码阶段302。在二进制解码阶段302,解码器可以将该部分解码为预测数据206和量化变换系数216。解码器可以将量化变换系数216提供给反向量化阶段218和反向变换阶段220来生成重建残差BPU 222。解码器可以将预测数据206提供给预测阶段204来生成预测BPU 208。解码器可以将重建残差BPU 222与预测BPU 208相加来生成预测参考224。在一些实施例中,预测参考224可以存储在缓存区中(例如,计算机内存中的解码图像缓区器)。解码器可以将预测参考224提供给预测阶段204以在过程300A的下一次迭代中执行预测操作。
解码器可以迭代地执行过程300A以便为已编码图像中的每个已编码BPU进行解码,并生成预测参考224用于对已编码图像中的下一个已编码BPU进行编码。在对已编码图像中的全部已编码BPU解码后,编码器可以将图像输出至视频流304进行显示,并继续对视频比特流228中的下一个已编码图像进行解码。
在二进制解码阶段302,解码器可以执行编码器使用的二进制编码技术(例如,熵编码、变长编码、算术编码、霍夫曼编码、上下文自适应二进制算术编码,或任何其他无损压缩算法)的逆运算。在一些实施例中,除了预测数据206和量化变换系数216,解码器也可以在二进制解码阶段302对其他信息进行解码,例如,预测模式、预测操作的参数、变换类型、量化过程的参数(例如,量化参数)、编码器控制参数(比特率控制参数)等。在一些实施例中,如果视频比特流228以包的形式在网络上传输,解码器可以在将视频比特流228提供给二进制解码阶段302之前对其进行拆包处理。
图3B示出了与本公开实施例一致的另一示例性解码过程300B的示意图。过程300B可以从过程300A修改得到。例如,过程300B可以用于符合混合视频编码标准(例如,H.26x系列)的解码器。与过程300A相比,过程300B额外将预测阶段204划分为空间预测阶段2042和时间预测阶段2044,以及额外包括环路滤波器阶段232和缓存区234。
在过程300B中,对于正在解码的已编码图像(被称为“当前图像”)中的已编码基本处理单元(被称为“当前BPU”),由解码器从二进制解码阶段302解码的预测数据206可以包括各种类型的数据,这取决于编码器使用何种预测模式对当前BPU编码。例如,如果编码器使用帧内预测对当前BPU编码,预测数据206可以包括指示帧内预测的预测模式标识(例如,标志值)、帧内预测操作的参数等。帧内预测操作的参数可以包括,例如,用作参考的一个或多个相邻BPU的位置(例如,坐标)、相邻BPU的尺寸、推断的参数、相邻BPU相对于原始BPU的方向等。又例如,如果编码器使用帧间预测对当前BPU编码,预测数据206可以包括指示帧间预测的预测模式标识(例如,标志值)、帧间预测操作的参数等。帧间预测操作的参数可以包括,例如,与当前BPU相关联的参考图像的数量、分别与参考图像相关联的权重、各个参考图像中一个或多个匹配区域的位置(例如,坐标)、分别与匹配区域相关联的一个或多个运动矢量等。
基于预测模式标识,解码器可以决定是在空间预测阶段2042执行空间预测(例如,帧内预测),还是在时间预测阶段2044执行时间预测(例如,帧间预测)。执行这种空间预测或时间预测的细节在图2B中进行了描述,这里不再重复。在执行这种空间预测或时间预测之后,解码器可以生成预测BPU 208。如图3所示,解码器可以将预测BPU 208与重建残差BPU222相加来生成预测参考224。
在过程300B中,解码器可以将预测参考224提供给空间预测阶段2042或时间预测阶段2044,以便在过程300B的下一次迭代中执行预测操作。例如,如果当前BPU在空间预测阶段2042使用帧内预测进行解码,在生成预测参考224(例如,已解码的当前BPU)之后,解码器可以直接将预测参考224提供给空间预测阶段2042,以便之后使用(例如,用于当前图像的下一个BPU的外推)。如果当前BPU在时间预测阶段2044使用帧间预测进行解码,在生成预测参考224(例如,全部BPU都已经被解码的参考图像)之后,解码器可以将预测参考224提供给环路滤波器阶段232以减少或消除失真(例如,块效应)。解码器可以按照图2B所述的方式,将环路滤波器应用于预测参考224。经环路滤波的参考图像可以存储在缓存区234(例如,计算机内存中的解码图像缓存区),以便之后使用(例如,用作视频比特流228的未来已编码图像的帧间预测参考图像)。解码器可以在缓存区234中存储一个或多个参考图像,以便用于时间预测阶段2044。在一些实施例中,预测数据可以进一步包括环路滤波器的参数(例如,环路滤波器的强度)。在一些实施例中,当预测数据206的预测模式标识指示使用帧间预测对当前BPU编码时,预测数据包括环路滤波器的参数。
图4示出了与本公开实施例一致的用于视频编码或解码的示例性装置400的框图。如图4所示,装置400可以包括处理器402。当处理器402执行本文所描述的指令时,装置400可以成为视频编码或解码的专用机器。处理器402可以是能够操作或处理信息的任何类型的电路。例如,处理器402可以包括任意数量任意组合的中央处理器(CPU)、图像处理器(GPU)、神经处理器(NPU)、微控制单元(MCU)、光学处理器、可编程逻辑控制器、微控制器、微处理器、数字信号处理器、知识产权(IP)核、可编程逻辑阵列(PLA)、可编程阵列逻辑(PAL)、通用阵列逻辑(GAL)、复杂可编程逻辑器件(CPLD)、现场可编程门阵列(FPGA)、片上系统(SoC)、专用集成电路(ASIC)等。在一些实施例中,处理器402还可以是分组为单个逻辑组件的一组处理器。例如,如图4所示,处理器402可以包括多个处理器,包括处理器402a、处理器402b以及处理器402n。
装置400还可以包括配置来存储数据(例如,一组指令、计算机代码、中间数据等)的内存404。例如,如图4所示,存储的数据可以包括程序指令(例如,用于实现过程200A、200B、300A或300B中阶段的程序指令)和用于处理的数据(例如,视频序列202、视频比特流228或视频流304)。处理器402可以访问程序指令和用于处理的数据(例如,经由总线410),以及执行该程序指令来对用于处理的数据进行操作和控制。内存404可以包括高速随机存取存储设备或非易失性存储设备。在一些实施例中,内存404可以包括任意数量任意组合的随机存取存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘驱动器、固态驱动器、闪存驱动器、安全数字(SD)卡、记忆棒、紧凑型闪存(CF)卡等。内存404还可以是分组为单个逻辑组件的一组内存(图4未示出)。
总线410可以是在装置400内组件之间传输数据的通信设备,例如内部总线(例如,CPU-内存总线)、外部总线(例如,通用串行总线端口、外围组件互连快速端口)等。
为了便于解释而不引起歧义,处理器402和其他处理电路在本公开中被统称为“数据处理电路”。数据处理电路可以完全以硬件实现,或者以软件、硬件或固件的组合实现。此外,数据处理电路可以是单个独立的模块,或者可以全部或部分地结合到装置400的任何其他组件中。
装置400可以进一步包括网络接口406来提供与网络(例如,互联网、内联网、局域网、移动通信网络等)的有线或无线通信。在一些实施例中,网络接口406可以包括任意数量任意组合的网络接口控制器(NIC)、射频(RF)模块、应答器、收发器、调制解调器、路由器、网关、有线网络适配器、无线网络适配器、蓝牙适配器、红外适配器、近场通信(NFC)适配器、蜂窝网络芯片等。
在一些实施例中,可选地,装置400可以进一步包括外围接口408来提供与一个或多个外围设备的连接。如图4所示,外围设备可以包括,但不限于光标控制设备(例如,鼠标、触摸板、或触摸屏)、键盘、显示器(例如,阴极射线管显示器、液晶显示器,或发光二极管显示器)、视频输入设备(例如,照相机或耦合到视频存档处的输入接口)等。
应当注意的是视频编解码器(例如,执行过程200A、200B、300A或300B的编解码器)可以在装置400中以任何软件或硬件模块的任何组合实现。例如,过程200A、200B、300A或300B中的一些或全部阶段可以实现为装置400的一个或多个软件模块,例如可以被加载到内存404中的程序指令。又例如,过程200A、200B、300A或300B中的一些或全部阶段可以实现为装置400的一个或多个硬件模块,例如专门的数据处理电路(例如,FPGA、ASIC、NPU等)。
本公开提供用信号发送和推导与跨分量自适应环路滤波器(CCALF)相关联的参数的方法。
在VVC中,应用了具有基于块的滤波器调试的自适应环路滤波器(ALF)。对于亮度分量,基于局部梯度的方向和活动性,从25个滤波器中选择1个滤波器用于每个4×4的块。除了ALF,跨分量自适应环路滤波器(CCALF)也在VVC中被采用。CCALF设计为与亮度ALF并行运行。在CCALF中使用线性滤波器对亮度样本值进行滤波,并生成色度样本的残差校正。图5示出了根据本公开一些实施例的跨分量自适应环路滤波器(CCALF)过程。如图5所示,从亮度取样自适应偏移(SAO)510中输出的重建亮度样本511分别被视为亮度(Y)ALF 520、色度(Cb)CC-ALF 530以及色度(Cr)CC-ALF 540的输入。从色度SAO 550、560中输出的重建色度样本551、561被视为色度ALF 570的输入。最终,亮度样本Y在亮度ALF 520之后获得。色度样本Cb通过将从Cb CC-ALF 530输出的残差校正531与色度ALF 570的输出571相加而获得。色度样本Cr通过将从Cr CC-ALF 540输出的残差校正541与色度ALF 570的输出572相加而获得。
图6示出了根据本公开一些实施例的在VVC中的示例性CCALF滤波器的形状。如图6所示,在VVC中,8抽头六边形形状的滤波器600用于CCALF过程中。
然而,当前VVC设计的CCALF由于以下原因无法实现最佳压缩性能。单一的滤波器形状对于各种类型的内容可能不是最佳。在VVC中,滤波器系数仅限于具有2的幂形式的值,来自以下集合:{-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64}。此外,在VVC中,相同的滤波器系数应用于全部类型的块。然而,相邻像素之间的相关性可能取决于块的特征(例如,边缘方向、活动性等)。
为了提升CCALF滤波器的压缩性能,本公开提供了形状自适应跨分量滤波的方法。
在VVC中,单一滤波器形状(图6所示的8抽头六边形形状的滤波器)用于滤波。然而,相邻像素之间的相关性可能取决于视频内容的特征。单一的滤波器形状对于全部类型的内容可能不是最佳。在本公开中,提出了基于内容的特征自适应地选择滤波器形状。图7示出了根据本公开一些实施例的用于CCALF的示例性方法700的流程图。方法700可以通过编码器(例如,通过图2A中的过程200A或图2B中的过程200B)执行,或通过装置(例如,图4中的装置400)的一个或多个软件或硬件组件执行。例如,处理器(例如,图4中的处理器402)可以执行方法700。在一些实施例中,方法700可以由在计算机可读介质中实施的计算机程序产品实现,包括计算机可执行指令,例如,可被计算机(例如,图4中的装置400)执行的程序代码。参考图7,方法700可以包括步骤S702至S706。
在步骤S702中,收集并分析视频内容的统计信息。例如,收集亮度样本梯度的方向和活动性。
在步骤S704中,基于一组预定义的滤波器形状的统计信息,选择最佳滤波器形状以及相关联的滤波器系数。例如,对于一组预定义的滤波器形状中的每个滤波器形状,通过滤波后的色度样本和原始样本计算绝对差之和(即,SAD)。选择具有最小SAD的滤波器形状作为最佳滤波器形状。
在一些实施例中,滤波后的色度样本可以通过以下步骤获得:使用统计信息将色度样本分类为多个类别;通过最小化重建色度样本相对于原始色度样本的均方误差来计算与每个类别相关联的滤波器系数;以及对重建色度样本应用相关联的滤波器系数来获得每个类别的滤波后的色度样本。
在一些实施例中,滤波器形状的选择是内容自适应的,即滤波器的形状是基于内容选择的。形状选择的粒度可以是序列级,和/或帧级,和/或切片级,和/或块级。在一些实施例中,提供多种形状自适应跨分量滤波器。图8示出了根据本公开一些实施例的CCALF的五个示例性形状自适应跨分量滤波器。提出的形状自适应跨分量滤波器可以应用于任何形状/图案,且不限于图8所描述的形状。参考图8,不同滤波器形状的抽头数可以相同或不同。滤波器形状4与图6中所示的滤波器600相同。在这个示例中,假设滤波器形状是预定义的,且在执行编码/解码过程前为编码器和解码器所知。在一些实施例中,每个滤波器形状可以由语法中的形状索引(例如,filters_shape_idx)表示。示出了与对应于形状索引的每个形状相关联的滤波器抽头数。
表1:图8中定义的每个形状的抽头数(并置亮度位置的抽头不计算在内,因为滤波器是作为差值实现的)
filters_shape_idx | noCoeff | |
形状0 | 0 | 16 |
形状1 | 1 | 15 |
形状2 | 2 | 11 |
形状3 | 3 | 13 |
形状4 | 4 | 7 |
在步骤S706中,将指示所选择的滤波器形状以及滤波器系数的一个或多个参数用信号发送,例如,发送至解码器。在序列级粒度的情况下,编码器可以将预定义滤波器形状中的一个用信号发送至解码器。因此,对于整个序列,使用相同的滤波器形状来滤波。在帧级粒度的情况下,针对每个帧用信号发送该参数。在块级粒度的情况下,一个帧被拆分为多个不重叠的块,且针对每个块用信号发送该参数。下面将进一步描述在帧级或块级下用信号发送的参数。
在一些实施例中,编码器还可以将预定义滤波器形状的总数用信号发送至解码器。可替代地,滤波器形状的总数可以预定义,且在开始编码/解码过程前为编码器和解码器所知。
对于每个帧/切片,N个滤波器以及相关联的形状和系数用信号发送至解码器。对于每个CTB,选择最佳的滤波器形状(从帧/切片中用信号发送的N个滤波器),并用信号发送至解码器。图9示出了根据本公开一些实施例的针对CCALF中切片的每个CTB用信号发送最佳滤波器形状的示例性方法的流程图。方法900可以通过编码器(例如,通过图2A中的过程200A或图2B中的过程200B)执行,或通过装置(例如,图4中的装置400)的一个或多个软件或硬件组件执行。例如,处理器(例如,图4中的处理器402)可以执行方法900。在一些实施例中,方法900可以由在计算机可读介质中实施的计算机程序产品实现,包括计算机可执行指令,例如,可被计算机(例如,图4中的装置400)执行的程序代码。参考图9,该方法可以包括步骤S902至S906。
在步骤S902中,用信号发送滤波器的数量。例如,滤波器的数量是N。因此,编码器和解码器预期有N个滤波器。滤波器形状的数量也为编码器和解码器所知。
在步骤S904中,用信号发送参数(例如,filters_shape_idx)来指示每个滤波器,并且用信号发送与每个滤波器相关联的滤波器系数。因此,该N个滤波器和相关联的滤波器系数为解码器所知。
在步骤S906中,用信号发送索引(例如,i)来指示要用于帧/切片中的每个CTU的滤波器。i的最大值是N-1。从该N个滤波器中选择要用的滤波器。利用该索引,可以确定与所选择的滤波器相关联的滤波器形状和滤波器系数。
一些实施例中,滤波器形状由编码器/解码器隐式地选择。例如,在块级隐式滤波器形状推导的情况下,编码器/解码器两者都可以分析重建块(在滤波之前),并且基于重建块的特征隐式地推导滤波器形状。即,滤波器形状由编码器和解码器两者基于视频内容来确定。因此,在步骤S904之后,解码器可以确定要用的滤波器。
所提出的形状自适应方法的细节会进一步讨论。在以下示例中,假设预定义了5个滤波器形状(例如,图8中所示的5个滤波器形状),并且在开始解码过程前为编码器和解码器两者所知。N的最大值是20。第k个滤波器形状的系数的数量(例如,noCoeff[k])也进行如下预定义:
noCoeff[]=[16,15,11,13,7]
在VVC中,滤波器系数以自适应参数集(APS)进行信号发送。在这个示例中,滤波器系数也以APS进行信号发送。应当注意的是,滤波器系数不限于仅通过APS用信号发送。可替代地,或附加地,滤波器系数可以通过图像头,和/或切片头等进行信号发送。对于每个滤波器,比特流中的形状索引通过APS用信号发送,以指示用信号发送的滤波器的形状。图10示出了根据本公开一些实施例的更新语法元素的示例性的语义。图11示出了根据本公开一些实施例的示例性的ALF APS语法。如图10所示,语法元素alf_cc_cb_filters_shape_idx[k]1010和alf_cc_cr_filters_shape_idx[k]1020的值被修改了。并且参考图11,语法元素alf_cc_cb_filters_shape_idx[k]和alf_cc_cr_filters_shape_idx[k]用信号发送以指示第k个滤波器1110,1120的形状。与每个滤波器相关联的滤波器系数被进一步用信号通知1130,1140。
图12示出了根据本公开一些实施例的CCALF过程的示例性的更新VVC的规范。与图9至图11一致,如图12所示,斜体部分示出了与现有VVC方法相比的修改。在开始每个CTB的CCALF过程之前,推导变量CcAlfShape,其表示当前CTB 1210的滤波器形状。基于变量CcAlfShape1220的值,自适应地选择滤波器系数和相邻抽头的位置。
本公开还提供了用于去除滤波器系数值的2的幂约束的方法。
在VVC中,CCALF滤波器系数仅限于具有2的幂形式的值,来自以下集合:{-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64}。在本公开中,提出了去除该限制以提升压缩性能。在一些实施例中,滤波器系数的值可以是-64(含)至+64(含)之间的任意整数值。在一些实施例中,使用可变长度编码(即,ue(v)编码)对滤波器系数进行编码,然而在VVC中使用固定长度编码对映射系数进行编码。图13示出了根据本公开一些实施例的与VVC相比的语义变化。图14示出了根据本公开一些实施例的示例性的APS语法表。参考图13,滤波器系数的值的约束被去除了1310。参考图14,使用可变长度编码(即,ue(v)编码)对滤波器系数进行编码1410。
本公开还提供了用于块级滤波器系数自适应的方法。
在VVC中,滤波器系数通过APS在切片级下用信号发送。同一组滤波器系数对于帧/切片的所有部分可能不是最佳的。在一些实施例中,切片被划分为多个不重叠的M×N的块。然后,基于重建块(滤波之前)的特征,将每个M×N的块分类为预定义类别中的一个。在滤波之前使用重建样本将块分类,并且在开始CCALF过程之前重建样本(滤波之前)已经为解码器所知。因此不需要用信号发送来指示块的类别。图15示出了根据本公开一些实施例的用信号发送与CCALF相关联的参数的方法1500的流程图。方法1500可以通过编码器(例如,通过图2A中的过程200A或图2B中的过程200B)执行,或通过装置(例如,图4中的装置400)的一个或多个软件或硬件组件执行。例如,处理器(例如,图4中的处理器402)可以执行方法1500。在一些实施例中,方法1500可以由在计算机可读介质中实施的计算机程序产品实现,包括计算机可执行指令,例如,可被计算机(例如,图4中的装置400)执行的程序代码。该方法可以包括步骤S1502至S1506。
在步骤S1502中,预定义多个类别。分类方法会在下面进一步描述。
在步骤S1504中,对于每个帧/切片,收集全部类别的统计信息。
在步骤S1506中,为每个类别生成最佳滤波器。例如,最佳滤波器可以基于类别的特征生成。
在步骤S1508中,在切片级/帧级下以比特流来信号发送与每个类别的最佳滤波器相关联的滤波器系数。
此外,还提供了块分类的方法。
图16示出了根据本公开一些实施例的用于块分类的方法的图示。参考图16,图像被划分为16个块。在这个示例中,在开始CCALF过程之前,亮度分量的每个M×N的块可以分类为预定义类别中的一个。类别的最大数量是预定义的,并且在过程开始之前为编码器和解码器所知。
下面描述了块分类的示例,其中假设类别的最大数量是15并且分类块的尺寸是图16所示的4×4。在这个示例中,分类方法类似于VVC的自适应环路滤波器的分类。然而,本公开的分类方法不受限制。
在这个示例中,对于亮度分量,每个4×4的块都分类为15个类别中的一个。分类索引C是基于其方向D和活动性的量化值推导的,如下:
为了计算D和使用一维拉普拉斯算子首先计算水平、竖直和两个对角线方向的梯度:
其中索引i和j指的是4×4的块内左上样本的坐标,并且R(i,j)指示在坐标(i,j)处的重建样本。
为了降低块分类的复杂性,应用子采样的一维拉普拉斯算子计算。图17示出了根据本公开一些实施例的用于块分类的梯度的四种计算。如图17所示,相同子采样的位置用于所有方向的梯度计算,例如,针对竖直梯度1710、水平梯度1720,以及两个对角线梯度1730,1740。
然后,水平方向和竖直方向梯度的D最大值和最小值设置为:
两个对角线方向梯度的最大值和最小值设置为:
为了推导方向D的值,这些值互相比较,并与两个阈值t1和t2进行比较:
步骤1.如果以及/>两者都为真,将D设置为0。
步骤2.如果从步骤3继续;否则从步骤4继续。
步骤3.如果将D设置为2;否则将D设置为1。
步骤4.如果将D设置为4;否则将D设置为3。
活动性的值A计算为:
A进一步被量化到0(含)至2(含)的范围,并且量化值表示为
上述分类方法仅是示例性的方法,并且具体块的尺寸和分类方法在本公开中不做限制。例如,还可以使用本领域已知的任何块分类方法。可替代地,亮度ALF方法的分类方法可以直接复用,无需为CCALF本身进行分类。
本公开还提供了用信号发送滤波器系数的方法。
在一些实施例中,对于每个帧/切片,在比特流中用信号发送每个类的滤波器系数。例如,在上面的示例中,对于每个切片,编码器总共可以生成15个滤波器(每个滤波器对应每个类别),并且用信号发送它们的参数到解码器。图18示出了根据本公开一些实施例的用信号发送全部类别的滤波器系数的APS语法的示例。如图18所示,分别对于CC-Cb滤波器1810和CC-Cr滤波器1820,用信号发送15个类别的15个滤波器以及相关联的滤波器系数。可以理解的是类别的数量不限于15。图19示出了根据本公开一些实施例的与VVC相比的语义变化。在一些实施例中,每个亮度像素分类为预定义类别中的一个。图20示出了根据本公开一些实施例的与VVC相比规范变化的细节。
如图18所示,用信号发送对应于每个类别的每个滤波器的滤波器系数,这可能会引起显著的开销信号比特。为了降低开销信号比特,提出了用信号发送滤波器系数的备选方法。在一些实施例中,编码器使用类别合并的方法,其中类别的数量是基于内容自适应选择的。图21示出了根据本公开一些实施例的使用类别合并来用信号发送滤波器系数的方法2100的流程图。方法2100可以通过编码器(例如,通过图2A中的过程200A或图2B中的过程200B)执行,或通过装置(例如,图4中的装置400)的一个或多个软件或硬件组件执行。例如,处理器(例如,图4中的处理器402)可以执行方法2100。在一些实施例中,方法2100可以由在计算机可读介质中实施的计算机程序产品实现,包括计算机可执行指令,例如,可被计算机(例如,图4中的装置400)执行的程序代码。如图21所示,方法2100可以包括步骤S2102至S2104。
在步骤S2102中,将多个滤波器合并至一个或多个合并类别中。每个合并类别包括一个或多个滤波器。每个合并类别都有自己的索引。例如,多个类别的数量是N(即,滤波器的数量是N),并且合并类别可以包括M个类别(即,滤波器),其中N是等于或大于M的整数。例如,在上面讨论的示例中,为15个类别生成15个滤波器。合并类别的最大数量可以是15,具有从0至14的索引。在一些实施例中,15个滤波器例如可以合并为6个合并类别。每个合并类别可以包括一个或多个滤波器,这些滤波器可以基于滤波器的滤波器系数的相似性进行合并。合并类别的滤波器用来进行处理。
在步骤S2104中,用信号发送每个合并类别的滤波器系数。在一些实施例中,使用图6中所示的滤波器600,其中滤波器系数的数量是7。
使用该方法,由于合并类别的数量等于或小于类别的数量,因此对于滤波器和滤波器系数两者,都可以降低开销信号比特。
例如,在语法中,滤波器集合可以由语法元素filter_set表示,其可以定义如下:
图22示出了根据本公开一些实施例的使用类别合并用信号发送滤波器系数的方法的APS语法。参考图22,合并类别和对应的滤波器被标记为2210、2220。图23示出了根据本公开一些实施例的与VVC相比的语义变化。
在一些实施例中,单个形状的CCALF滤波器用于切片的全部CTU。图24示出了根据本公开一些实施例的示例性的24抽头9×9的滤波器2400。如图24所示,滤波器2400具有大体十字形。具体地,24抽头9×9的滤波器2400定义如下:
其中C0至C24是与24抽头9×9的滤波器2400相关联的滤波器系数。
图25示出了根据本公开一些实施例的与VVC规范相比使用滤波器2400的CCALF过程的修改。斜体部分示出了与现有VVC方法相比的修改。参考图25,滤波器系数2510的数量被修改为24,并且变量和2520被相应地修改。
在一些实施例中,提供了更多的滤波器。图26和图27分别示出了根据本公开一些实施例的示例性的28抽头滤波器2600和示例性的36抽头滤波器2700。可以理解的是,如果使用28抽头滤波器2600或36抽头滤波器2700,滤波器系数的数量和变量和需要相应地被修改。
本公开还提供了用信号发送滤波器系数的方法。在VVC中,CCALF滤波器系数仅限于具有2的幂形式的值,来自以下集合:{-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64}。在VVC中规范,使用固定长度编码来用信号发送滤波器系数的索引。
在一些实施例中,滤波器系数的值仅限于2的幂。然而,也可以使用可变长度编码(更具体地一元编码)来用信号发送滤波器系数,而不是使用固定长度编码。图28示出了根据本公开一些实施例的所提出方法的APS语法表。参考图28,用信号发送的滤波器系数以可变长度(例如,ue(v))2810编码。因此,滤波器系数可以更灵活,去除了2的幂形式的值的约束。
在本公开中,还提供了用信号发送CTB级的映射滤波器索引的方法。在VVC中,对于每个帧/切片,用信号发送N个滤波器的数量和系数。对于每个CTB,编码器可以选择用信号发送至解码器的最佳滤波器。图29示出了根据本公开一些实施例的为每个CTB用信号发送最佳滤波器的示例性方法的流程图。方法2900可以通过编码器(例如,通过图2A中的过程200A或图2B中的过程200B)执行,或通过装置(例如,图4中的装置400)的一个或多个软件或硬件组件执行。例如,处理器(例如,图4中的处理器402)可以执行方法2900。在一些实施例中,方法2900可以由在计算机可读介质中实施的计算机程序产品实现,包括计算机可执行指令,例如,可被计算机(例如,图4中的装置400)执行的程序代码。如图29所示,方法2900可以包括步骤S2902至S2906。
在步骤S2902中,对于每个帧/切片,用信号发送滤波器的数量。例如,滤波器的数量是N。因此,N为编码器和解码器两者所知。滤波器形状的数量也为编码器和解码器两者所知。
在步骤S2904中,用信号发送每个滤波器的滤波器系数。
在步骤S2906中,对于切片中的每个CTB,用信号发送指示最佳滤波器的参数。例如,该参数可以是滤波器索引(例如,filter_idc),索引的最大值是N-1。在一些实施例中,索引的最大值是N,并且当滤波器索引(例如,filter_idc)等于0时,不应用滤波。
在本公开提供的方法中,对于每个CTB,是用信号发送映射滤波器索引至解码器,而不是直接用信号发送滤波器索引(例如,filter_idc)。图30示出了根据本公开一些实施例的用于视频处理的示例性方法3000的流程图。方法3000可以通过编码器(例如,通过图2A中的过程200A或图2B中的过程200B)执行,或通过装置(例如,图4中的装置400)的一个或多个软件或硬件组件执行。例如,处理器(例如,图4中的处理器402)可以执行方法3000。在一些实施例中,方法3000可以由在计算机可读介质中实施的计算机程序产品实现,包括计算机可执行指令,例如,可被计算机(例如,图4中的装置400)执行的程序代码。如图30所示,方法3000可以包括步骤S3002至S3008。
在步骤S3002中,用信号发送预定参数(例如,filter_idc_pos0)。预定参数(例如,filter_idc_pos0)的值可以是0至N中的任何值,并且N是待用信号发送的滤波器的数量。
在步骤S3004中,响应于预定参数等于0,用信号发送第一滤波器索引(例如,filter_idc)。即,执行方法2900。
在步骤S3006中,响应于预定参数不等于0,从第一滤波器索引(例如,filter_idc)推导出映射滤波器索引(例如,mapped_filter_idc)。在一些实施例中,假设预定参数等于1,并且为编码器和解码器两者所知。映射滤波器索引可以通过下面的步骤推导出:响应于第一滤波器索引等于0,映射滤波器索引的值被设置为预定参数的值(例如,1);响应于第一滤波器索引小于或等于预定参数,映射滤波器索引的值被设置为第一滤波器索引的值减1;以及对于其他情况,映射滤波器索引的值被设置为第一滤波器索引的值。例如,伪代码可以描述如下:
在步骤S3008中,在比特流中用信号发送mapped_filter_idc。
由于filter_idc是非均匀二值化,当filter_idc不等于0时,比特的数量减少。
在解码器侧,第一滤波器索引从映射滤波器索引推导出。在一些实施例中,假设预定参数等于1,并且为编码器和解码器两者所知。第一滤波器索引可以通过下面的步骤推导出:响应于映射滤波器索引的值等于预定参数的值,第一滤波器索引被设置为0,即,不应用滤波;响应于映射滤波器索引的值小于预定参数的值,第一滤波器索引的值被设置为映射滤波器索引的值加1;以及对于其他值,第一滤波器索引的值被设置为映射滤波器索引的值。例如,伪代码可以描述如下:
在上述伪代码中,假设filter_idc_pos0(等于1)对于编码的视频序列是固定的。在一些实施例中,filter_idc_pos0的值也可以在每个CTB中自适应地推导出。推导filter_idc_pos0的值的一种方式是基于先前解码的相邻CTB。例如,如果上部或左侧CTB的filter_idc是非零值,当前CTB的filter_idc_pos0可以被设置为1;否则,filter_idc_pos0等于0。例如,伪代码可以描述如下:
本公开还提供了用于改进滤波器索引的上下文编码的方法。在VVC中,在比特流中用信号发送两个语法元素alf_ctb_cc_cb_idc和alf_ctb_cc_cr_idc来指示用于目标CTB的滤波器的索引。对于alf_ctb_cc_cb_idc和alf_ctb_cc_cr_idc两者,仅第一个二进制位是被上下文编码并且其余二进制位是被旁路编码。
在一些实施例中,第一个二进制位和第二个二进制位两者都是被上下文编码,并且其余二进制位是被旁路编码。
对于视频编码领域的技术人员来说,可以将上述实施例组合成一个实施例。
实施例可以使用以下条款进一步进行描述:
1.一种使用跨分量自适应环路滤波器(CCALF)的视频处理方法,包括:
使用CCALF对解码的视频内容进行滤波,其中所述CCALF是24抽头9×9的滤波器。
2.根据条款1所述的方法,其中所述24抽头9×9的滤波器具有十字形,定义为:
其中C0至C24是所述24抽头9×9的滤波器的滤波器系数。
3.根据条款1或2所述的方法,其中所述解码的视频内容包括视频切片,并且所述24抽头9×9的滤波器应用于所述视频切片的全部编码树单元(CTU)。
4.根据条款1至3中任一项所述的方法,其中所述滤波器系数的值是-64至+64之间的整数值。
5.根据条款1至4中任一项所述的方法,其中使用可变长度编码对所述滤波器系数进行编码。
6.一种使用跨分量自适应环路滤波器(CCALF)的视频处理方法,包括:
接收比特流;
基于所述比特流中用信号发送的第一索引确定CCALF;
基于所述比特流中用信号发送的第二索引确定第一滤波器形状,所述第一滤波器形状从用于所述CCALF的一组预定义的滤波器形状中选择;
基于所述第一索引确定所述CCALF的滤波器系数;以及
使用所述第一滤波器形状和所述滤波器系数对解码的视频内容进行滤波。
7.根据条款6所述的方法,其中所述滤波器系数的值是-64至+64之间的整数值。
8.根据条款6或7所述的方法,其中使用可变长度编码对所述滤波器系数进行编码。
9.根据条款6至8中任一项所述的方法,其中所述第一索引由所述比特流中用信号发送的语法元素来指示,所述语法元素与编码树块(CTB)相关联,并且所述方法还包括:
对所述语法元素中的第一二进制位和第二二进制位进行上下文解码。
10.一种使用跨分量自适应环路滤波器(CCALF)的视频处理方法,包括:
接收比特流;
基于所述比特流中用信号发送的第一索引确定CCALF;
基于重建块的特征确定第一滤波器形状,所述第一滤波器形状从用于所述CCALF的一组预定义的滤波器形状中选择;
基于所述第一索引确定所述CCALF的滤波器系数;以及
使用所述第一滤波器形状和所述滤波器系数对解码的视频内容进行滤波。
11.一种使用跨分量自适应环路滤波器(CCALF)的视频处理方法,包括:
接收比特流;
基于所述比特流确定N个CCALF;
基于所述比特流确定第一滤波器,所述第一滤波器是所述N个CCALF中的一个;以及
使用所述第一滤波器对解码的视频内容进行滤波。
12.根据条款11所述的方法,其中基于所述比特流确定所述第一滤波器,进一步包括:
基于映射滤波器索引确定第一滤波器索引,其中:响应于所述映射滤波器索引的值小于预定值,将所述第一滤波器索引的值设置为所述映射滤波器索引的值加1,或者响应于所述映射滤波器索引的值大于所述预定值,将所述第一滤波器索引的值设置为所述映射滤波器索引的值;以及
基于所述第一滤波器索引确定所述第一滤波器,
其中预定参数的范围是1至N。
13.根据条款12所述的方法,其中所述预定值设置为1。
14.根据条款12所述的方法,其中所述预定值与目标编码树(CTB)相关联,并且基于之前解码的相邻CTB确定。
15.根据条款14所述的方法,其中所述第一滤波器索引与之前解码的上部CTB或之前解码的左侧CTB相关联,并且所述方法还包括:
响应于所述第一滤波器索引的值是非零值,将所述预定值设置为1。
16.一种使用跨分量自适应环路滤波器(CCALF)的视频处理方法,包括:
接收与视频切片相关联的比特流;
基于所述比特流生成与所述视频切片相关联的多个重建块;
基于所述多个重建块的特征将所述多个重建块分类为一个或多个类别;
基于所述比特流针对所述一个或多个类别中的每一个类别确定一组CCALF系数;以及
使用相应的CCALF系数组对所述一个或多个类别的重建块进行滤波。
17.根据条款16所述的方法,其中所述多个块是亮度块。
18.根据条款17所述的方法,其中视频序列的每个亮度像素被分类为所述多个类别中的一个。
19.根据条款16所述的方法,其中所述一个或多个类别包括M个类别,M是正整数,并且其中基于所述多个重建块的特征将所述多个重建块分类为一个或多个类别,进一步包括:
基于所述多个重建块的特征将所述多个重建块分类为N个类别,N是大于M的整数;以及
将所述N个类别合并为所述一个或多个类别。
20.根据条款19所述的方法,其中所述多个类别基于与所述多个类别相关联的CCALF的滤波器系数的相似性进行合并。
21.一种使用跨分量自适应环路滤波器(CCALF)来执行视频处理的装置,所述装置包括:
存储器,配置为存储指令;以及
一个或多个处理器,配置为执行所述指令以使得所述装置:
使用CCALF对解码的视频内容进行滤波,其中所述CCALF是24抽头9×9的滤波器。
22.根据权利要求21所述的装置,其中所述24抽头9×9的滤波器具有十字形,定义为:
其中C0至C24是所述24抽头9×9的滤波器的滤波器系数。
23.根据条款21或22所述的装置,其中所述解码的视频内容包括视频切片,并且所述24抽头9×9的滤波器应用于所述视频切片的全部编码树单元(CTU)。
24.根据条款21至23中任一项所述的装置,其中所述滤波器系数的值是-64至+64之间的整数值。
25.根据条款21至24中任一项所述的装置,其中使用可变长度编码对所述滤波器系数进行编码。
26.一种使用跨分量自适应环路滤波器(CCALF)来执行视频处理的装置,所述装置包括:
存储器,配置为存储指令;以及
一个或多个处理器,配置为执行所述指令以使得所述装置:
接收比特流;
基于所述比特流中用信号发送的第一索引确定CCALF;
基于所述比特流中用信号发送的第二索引确定第一滤波器形状,所述第一滤波器形状从用于所述CCALF的一组预定义的滤波器形状中选择;
基于所述第一索引确定所述CCALF的滤波器系数;以及
使用所述第一滤波器形状和所述滤波器系数对解码的视频内容进行滤波。
27.根据条款26所述的装置,其中所述滤波器系数的值是-64至+64之间的整数值。
28.根据条款26或27所述的装置,其中使用可变长度编码对所述滤波器系数进行编码。
29.根据条款26至28中任一项所述的装置,其中所述第一索引由所述比特流中用信号发送的语法元素来指示,所述语法元素与编码树块(CTB)相关联,并且所述一个或多个处理器进一步配置为执行所述指令,以使得所述装置:
对所述语法元素中的第一二进制位和第二二进制位进行上下文解码。
30.一种使用跨分量自适应环路滤波器(CCALF)来执行视频处理的装置,所述装置包括:
存储器,配置为存储指令;以及
一个或多个处理器,配置为执行所述指令以使得所述装置:
接收比特流;
基于所述比特流中用信号发送的第一索引确定CCALF;
基于重建块的特征确定第一滤波器形状,所述第一滤波器形状从用于所述CCALF的一组预定义的滤波器形状中选择;
基于所述第一索引确定所述CCALF的滤波器系数;以及
使用所述第一滤波器形状和所述滤波器系数对解码的视频内容进行滤波。
31.一种使用跨分量自适应环路滤波器(CCALF)来执行视频处理的装置,所述装置包括:
存储器,配置为存储指令;以及
一个或多个处理器,配置为执行所述指令以使得所述装置:
接收比特流;
基于所述比特流确定N个CCALF;
基于所述比特流确定第一滤波器,所述第一滤波器是所述N个CCALF中的一个;以及
使用所述第一滤波器对解码的视频内容进行滤波。
32.根据条款31所述的装置,其中在基于所述比特流确定所述第一滤波器时,所述一个或多个处理器进一步配置为执行所述指令,以使得所述装置:
基于映射滤波器索引确定第一滤波器索引,其中:响应于所述映射滤波器索引的值小于预定值,将所述第一滤波器索引的值设置为所述映射滤波器索引的值加1,或者响应于所述映射滤波器索引的值大于所述预定值,将所述第一滤波器索引的值设置为所述映射滤波器索引的值;以及
基于所述第一滤波器索引确定所述第一滤波器,
其中预定参数的范围是1至N。
33.根据条款32所述的装置,其中所述预定值设置为1。
34.根据条款32所述的装置,其中所述预定值与目标编码树(CTB)相关联,并且基于之前解码的相邻CTB确定。
35.根据条款34所述的装置,其中所述第一滤波器索引与之前解码的上部CTB或之前解码的左侧CTB相关联,并且所述一个或多个处理器进一步配置为执行所述指令,以使得所述装置:
响应于所述第一滤波器索引的值是非零值,将所述预定值设置为1。
36.一种使用跨分量自适应环路滤波器(CCALF)来执行视频处理的装置,所述装置包括:
存储器,配置为存储指令;以及
一个或多个处理器,配置为执行所述指令以使得所述装置:
接收与视频切片相关联的比特流;
基于所述比特流生成与所述视频切片相关联的多个重建块;
基于所述多个重建块的特征将所述多个重建块分类为一个或多个类别;
基于所述比特流针对所述一个或多个类别中的每一个类别确定一组CCALF系数;以及
使用相应的CCALF系数组对所述一个或多个类别的重建块进行滤波。
37.根据条款36所述的装置,其中所述多个块是亮度块。
38.根据条款37所述的装置,其中视频序列的每个亮度像素被分类为所述多个类别中的一个。
39.根据条款36所述的装置,其中所述一个或多个类别包括M个类别,M是正整数,并且其中在基于所述多个重建块的特征将所述多个重建块分类为一个或多个类别时,所述一个或多个处理器进一步配置为执行所述指令,以使得所述装置:
基于所述多个重建块的特征将所述多个重建块分类为N个类别,N是大于M的整数;以及
将所述N个类别合并为所述一个或多个类别。
40.根据条款39所述的装置,其中所述多个类别基于与所述多个类别相关联的CCALF的滤波器系数的相似性进行合并。
51.一种非暂时性计算机可读介质,其存储一组指令,所述一组指令由装置的一个或多个处理器可执行以使得所述装置启动使用跨分量自适应环路滤波器(CCALF)的视频处理方法,所述方法包括:
使用CCALF对解码的视频内容进行滤波,其中所述CCALF是24抽头9×9的滤波器。
52.根据条款51所述的非暂时性计算机可读介质,其中所述24抽头9×9的滤波器具有十字形,定义为:
其中C0至C24是所述24抽头9×9的滤波器的滤波器系数。
53.根据条款51或52所述的非暂时性计算机可读介质,其中所述解码的视频内容包括视频切片,并且所述24抽头9×9的滤波器应用于所述视频切片的全部编码树单元(CTU)。
54.根据条款51至53中任一项所述的非暂时性计算机可读介质,其中所述滤波器系数的值是-64至+64之间的整数值。
55.根据条款51至54中任一项所述的非暂时性计算机可读介质,其中使用可变长度编码对所述滤波器系数进行编码。
56.一种非暂时性计算机可读介质,其存储一组指令,所述一组指令由装置的一个或多个处理器可执行以使得所述装置启动使用跨分量自适应环路滤波器(CCALF)的视频处理方法,所述方法包括:
接收比特流;
基于所述比特流中用信号发送的第一索引确定CCALF;
基于所述比特流中用信号发送的第二索引确定第一滤波器形状,所述第一滤波器形状从用于所述CCALF的一组预定义的滤波器形状中选择;
基于所述第一索引确定所述CCALF的滤波器系数;以及
使用所述第一滤波器形状和所述滤波器系数对解码的视频内容进行滤波。
57.根据条款56所述的非暂时性计算机可读介质,其中所述滤波器系数的值是-64至+64之间的整数值。
58.根据条款56或57所述的非暂时性计算机可读介质,其中使用可变长度编码对所述滤波器系数进行编码。
59.根据条款56至58中任一项所述的非暂时性计算机可读介质,其中所述第一索引由所述比特流中用信号发送的语法元素来指示,所述语法元素与编码树块(CTB)相关联,并且所述方法还包括:
对所述语法元素中的第一二进制位和第二二进制位进行上下文解码。
60.一种非暂时性计算机可读介质,其存储一组指令,所述一组指令由装置的一个或多个处理器可执行以使得所述装置启动使用跨分量自适应环路滤波器(CCALF)的视频处理方法,所述方法包括:
接收比特流;
基于所述比特流中用信号发送的第一索引确定CCALF;
基于重建块的特征确定第一滤波器形状,所述第一滤波器形状从用于所述CCALF的一组预定义的滤波器形状中选择;
基于所述第一索引确定所述CCALF的滤波器系数;以及
使用所述第一滤波器形状和所述滤波器系数对解码的视频内容进行滤波。
61.一种非暂时性计算机可读介质,其存储一组指令,所述一组指令由装置的一个或多个处理器可执行以使得所述装置启动使用跨分量自适应环路滤波器(CCALF)的视频处理方法,所述方法包括:
接收比特流;
基于所述比特流确定N个CCALF;
基于所述比特流确定第一滤波器,所述第一滤波器是所述N个CCALF中的一个;以及
使用所述第一滤波器对解码的视频内容进行滤波。
62.根据条款61所述的非暂时性计算机可读介质,其中基于所述比特流确定所述第一滤波器,进一步包括:
基于映射滤波器索引确定第一滤波器索引,其中:响应于所述映射滤波器索引的值小于预定值,将所述第一滤波器索引的值设置为所述映射滤波器索引的值加1,或者响应于所述映射滤波器索引的值大于所述预定值,将所述第一滤波器索引的值设置为所述映射滤波器索引的值;以及
基于所述第一滤波器索引确定所述第一滤波器,
其中预定参数的范围是1至N。
63.根据条款62所述的非暂时性计算机可读介质,其中所述预定值设置为1。
64.根据条款62所述的非暂时性计算机可读介质,其中所述预定值与目标编码树(CTB)相关联,并且基于之前解码的相邻CTB确定。
65.根据条款64所述的非暂时性计算机可读介质,其中所述第一滤波器索引与之前解码的上部CTB或之前解码的左侧CTB相关联,并且所述方法还包括:
响应于所述第一滤波器索引的值是非零值,将所述预定值设置为1。
66.一种非暂时性计算机可读介质,其存储一组指令,所述一组指令由装置的一个或多个处理器可执行以使得所述装置启动使用跨分量自适应环路滤波器(CCALF)的视频处理方法,所述方法包括:
接收与视频切片相关联的比特流;
基于所述比特流生成与所述视频切片相关联的多个重建块;
基于所述多个重建块的特征将所述多个重建块分类为一个或多个类别;
基于所述比特流针对所述一个或多个类别中的每一个类别确定一组CCALF系数;以及
使用相应的CCALF系数组对所述一个或多个类别的重建块进行滤波。
67.根据条款66所述的非暂时性计算机可读介质,其中所述多个块是亮度块。
68.根据条款67所述的非暂时性计算机可读介质,其中视频序列的每个亮度像素被分类为所述多个类别中的一个。
69.根据条款66所述的非暂时性计算机可读介质,其中所述一个或多个类别包括M个类别,M是正整数,并且其中基于所述多个重建块的特征将所述多个重建块分类为一个或多个类别,进一步包括:
基于所述多个重建块的特征将所述多个重建块分类为N个类别,N是大于M的整数;以及
将所述N个类别合并为所述一个或多个类别。
70.根据条款69所述的非暂时性计算机可读介质,其中所述多个类别基于与所述多个类别相关联的CCALF的滤波器系数的相似性进行合并。
71.一种存储比特流的非暂时性计算机可读介质,其中所述比特流包括与用于跨分量自适应环路滤波器(CCALF)的视频数据相关联的索引,所述索引指示从一组滤波器形状中选择的滤波器形状。
72.一种使用跨分量自适应环路滤波器(CCALF)的视频处理方法,包括:
使用CCALF对视频内容进行滤波,其中所述CCALF是24抽头9×9的滤波器。
73.根据权利要求72所述的方法,其中所述24抽头9×9的滤波器具有十字形,定义为:
其中C0至C24是所述24抽头9×9的滤波器的滤波器系数。
74.根据权利要求72所述的方法,其中所述视频内容包括视频切片,并且所述24抽头9×9的滤波器应用于所述视频切片的全部编码树单元(CTU)。
75.根据权利要求72所述的方法,其中所述滤波器系数的值是-64至+64之间的整数值。
76.根据权利要求72所述的方法,其中使用可变长度编码对所述滤波器系数进行编码。
77.一种存储比特流的非暂时性计算机可读介质,其中所述比特流包括与编码的视频数据相关联的第一索引,所述第一索引标识跨分量自适应环路滤波器(CCALF),其中所述CCALF是24抽头9×9的滤波器,并且所述第一索引使得解码器使用所述24抽头9×9的滤波器对解码的视频内容进行滤波。
78.根据权利要求77所述的非暂时性计算机可读介质,其中所述24抽头9×9的滤波器具有十字形,定义为:
其中C0至C24是所述24抽头9×9的滤波器的滤波器系数。
79.根据权利要求77所述的非暂时性计算机可读介质,其中所述比特流进一步包括编码语法元素,所述编码语法元素包括所述24抽头9×9的滤波器的滤波器系数。
80.根据权利要求79所述的非暂时性计算机可读介质,其中使用可变长度编码对所述滤波器系数进行编码。
81.根据权利要求77所述的非暂时性计算机可读介质,其中所述第一索引指示用于Cr分量的第一CCALF,所述比特流进一步包括第二索引,所述第二索引指示用于Cb分量的第二CCALF,所述第一CCALF是第一24抽头9×9的滤波器,所述第二CCALF是第二24抽头9×9的滤波器,并且所述第一索引和所述第二索引使得解码器使用第一24抽头9×9的滤波器对所述解码的视频内容的Cr分量进行滤波,以及使用第二24抽头9×9的滤波器对所述解码的视频内容的Cb分量进行滤波。
82.根据权利要求81所述的非暂时性计算机可读介质,其中所述比特流进一步包括编码语法元素,所述编码语法元素包括所述第一24抽头9×9的滤波器的滤波器系数和所述第二24抽头9×9的滤波器的滤波器系数。
83.根据权利要求82所述的非暂时性计算机可读介质,其中在所述比特流中,使用可变长度编码对所述第一24抽头9×9的滤波器的滤波器系数和所述第二24抽头9×9的滤波器的滤波器系数进行编码。
在一些实施例中,还提供了非暂时性计算机可读存储介质。在一些实施例中,该介质可以存储具有索引、标志,和/或语法元素的视频比特流的全部或部分,索引、标志,和/或语法元素指示与CCALF相关联的参数。在一些实施例中,该介质可以存储可以由设备(例如所公开的编码器和解码器)执行的指令,以便执行上述方法。非暂时性介质的常见形式包括,例如,软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁性数据存储介质、CD-ROM、任何其它光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM或任何其他闪存、NVRAM、缓存、寄存器、任何其它存储芯片或存储盒,以及它们的网络版本。设备可以包括一个或多个处理器(CPU)、输入/输出接口、网络接口,和/或内存。
应该注意的是,本文中的关系术语例如“第一”和“第二”仅用于将一个实体或操作与另一个实体或操作区分开来,并不要求或暗示这些实体或操作之间的任何实际关系或顺序。此外,词语“包括”、“具有”、“包含”和“含有”以及其他类似形式在含义上等同,并且是开放式的,即在这些词语中的任何一个之后的一个或多个项目并不意味着是这种项目或多个项目的详尽列表,或者并不意味着仅限于所列出的一个或多个项目。
在本文所使用的,除非特别说明,否则术语“或”包括所有可能的组合,除非不可行的情况。例如,如果声明数据库包括A或B,那么,除非特别声明或不可行,否则数据库可以包括A、或B、或A和B。作为第二个示例,如果声明数据库包括A、B或C,那么,除非特别声明或不可行,否则数据库可以包括A、或B、或C、或A和B、或A和C、或B和C、或A和B和C。
应当理解,上述实施例可以通过硬件或软件(程序代码)或硬件和软件的组合来实现。如果由软件实现,它可以存储在上述计算机可读介质中。当由处理器执行时,软件可以执行所公开的方法。本公开中描述的计算单元和其他功能单元可以通过硬件或软件或硬件和软件的组合来实现。本领域的普通技术人员能够理解,上述模块/单元中的多个模块/单元可以组合为一个模块/单元,并且上述模块/单元中的每一个可以进一步划分为多个子模块/子单元。
在前述说明书中,已经参考许多具体细节描述了实施例,这些具体细节可以因实施方式而改变。可以对所描述的实施例进行某些改编和修改。考虑到本文公开的本公开的说明书和实践,其他实施例对于本领域技术人员来说是显而易见的。说明书和实施例仅被认为是示例性的,本发明的真实范围和精神由权利要求书指示。图中所示的步骤序列还仅旨在用于说明的目的,而不旨在限于任何特定的步骤序列。因此,本领域技术人员可以理解,这些步骤可以在实现相同方法的同时以不同的顺序执行。
在附图和说明书中,已经公开了示例性的实施例。然而,可以对这些实施例进行许多变化和修改。因此,尽管使用了特定的术语,但它们仅用于一般和描述性的意义上,而不是为了限制的目的。
Claims (17)
1.一种使用跨分量自适应环路滤波器(CCALF)的视频处理方法,包括:
使用CCALF对解码的视频内容进行滤波,其中所述CCALF是24抽头9×9的滤波器。
2.根据权利要求1所述的方法,其中所述24抽头9×9的滤波器具有十字形,定义为:
其中C0至C24是所述24抽头9×9的滤波器的滤波器系数。
3.根据权利要求1所述的方法,其中所述解码的视频内容包括视频切片,并且所述24抽头9×9的滤波器应用于所述视频切片的全部编码树单元(CTU)。
4.根据权利要求1中任一项所述的方法,其中所述滤波器系数的值是-64至+64之间的整数值。
5.根据权利要求1所述的方法,其中使用可变长度编码对所述滤波器系数进行编码。
6.一种使用跨分量自适应环路滤波器(CCALF)的视频处理方法,包括:
使用CCALF对视频内容进行滤波,其中所述CCALF是24抽头9×9的滤波器。
7.根据权利要求6所述的方法,其中所述24抽头9×9的滤波器具有十字形,定义为:
其中C0至C24是所述24抽头9×9的滤波器的滤波器系数。
8.根据权利要求6所述的方法,其中所述视频内容包括视频切片,并且所述24抽头9×9的滤波器应用于所述视频切片的全部编码树单元(CTU)。
9.根据权利要求6中任一项所述的方法,其中所述滤波器系数的值是-64至+64之间的整数值。
10.根据权利要求6所述的方法,其中使用可变长度编码对所述滤波器系数进行编码。
11.一种存储比特流的非暂时性计算机可读介质,其中所述比特流包括与编码的视频数据相关联的第一索引,所述第一索引标识跨分量自适应环路滤波器(CCALF),其中所述CCALF是24抽头9×9的滤波器,并且所述第一索引使得解码器使用所述24抽头9×9的滤波器对解码的视频内容进行滤波。
12.根据权利要求11所述的非暂时性计算机可读介质,其中所述24抽头9×9的滤波器具有十字形,定义为:
其中C0至C24是所述24抽头9×9的滤波器的滤波器系数。
13.根据权利要求11所述的非暂时性计算机可读介质,其中所述比特流进一步包括编码语法元素,所述编码语法元素包括所述24抽头9×9的滤波器的滤波器系数。
14.根据权利要求13所述的非暂时性计算机可读介质,其中使用可变长度编码对所述滤波器系数进行编码。
15.根据权利要求11所述的非暂时性计算机可读介质,其中所述第一索引指示用于Cr分量的第一CCALF,所述比特流进一步包括第二索引,所述第二索引指示用于Cb分量的第二CCALF,所述第一CCALF是第一24抽头9×9的滤波器,所述第二CCALF是第二24抽头9×9的滤波器,并且所述第一索引和所述第二索引使得所述解码器使用所述第一24抽头9×9的滤波器对所述解码的视频内容的Cr分量进行滤波,以及使用所述第二24抽头9×9的滤波器对所述解码的视频内容的Cb分量进行滤波。
16.根据权利要求15所述的非暂时性计算机可读介质,其中所述比特流进一步包括编码语法元素,所述编码语法元素包括所述第一24抽头9×9的滤波器的滤波器系数和所述第二24抽头9×9的滤波器的滤波器系数。
17.根据权利要求16所述的非暂时性计算机可读介质,其中在所述比特流中,使用可变长度编码对所述第一24抽头9×9的滤波器的滤波器系数和所述第二24抽头9×9的滤波器的滤波器系数进行编码。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/215,521 | 2021-06-28 | ||
US63/235,111 | 2021-08-19 | ||
US17/808,933 | 2022-06-24 | ||
US17/808,933 US11924417B2 (en) | 2021-06-28 | 2022-06-24 | Methods and systems for cross-component adaptive loop filter |
PCT/SG2022/050442 WO2023277810A2 (en) | 2021-06-28 | 2022-06-27 | Methods and systems for cross-component adaptive loop filter |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117941351A true CN117941351A (zh) | 2024-04-26 |
Family
ID=90763475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280044086.0A Pending CN117941351A (zh) | 2021-06-28 | 2022-06-27 | 跨分量自适应环路滤波器的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117941351A (zh) |
-
2022
- 2022-06-27 CN CN202280044086.0A patent/CN117941351A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11546607B2 (en) | Method for optimizing structure similarity index in video coding | |
US20230362384A1 (en) | Methods and systems for cross-component sample adaptive offset | |
CN117897952A (zh) | 用于执行组合帧间和帧内预测的方法和系统 | |
CN116760989A (zh) | 用信号通知子图像划分信息的方法和装置 | |
CN115836525B (zh) | 用于从多个交叉分量进行预测的视频编码、解码方法和设备 | |
CN116418983B (zh) | 用于在调色板模式下对视频数据进行编码的方法和装置 | |
CN116918333A (zh) | 用于跨分量样值偏移补偿的方法、装置和非暂时性计算机可读介质 | |
WO2023131208A1 (en) | Fusion of video prediction modes | |
CN115699744B (zh) | 双向预测校正系统和方法 | |
US20210329254A1 (en) | Bitrate control method for video coding | |
CN118044184A (zh) | 用于执行组合帧间预测和帧内预测的方法和系统 | |
US20210266548A1 (en) | Signaling of maximum transform size and residual coding method | |
CN116601960A (zh) | 使用自适应环路滤波器的方法及其系统 | |
US11924417B2 (en) | Methods and systems for cross-component adaptive loop filter | |
CN117941351A (zh) | 跨分量自适应环路滤波器的方法和系统 | |
US11451801B2 (en) | Methods for coding video data in palette mode | |
US11711528B2 (en) | Systems and methods for liner model derivation | |
US20240333958A1 (en) | Motion compensation method, apparatus and storage medium | |
US20230403397A1 (en) | Cross component prediction of chroma samples |
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 |