一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

在视频编解码中应用自适应环路滤波器的系统和方法与流程

2022-07-27 21:38:08 来源:中国专利 TAG:
在视频编解码中应用自适应环路滤波器的系统和方法1.相关申请的交叉引用2.本技术要求于2021年1月26日提交的申请号为63/141,627的题为“methodsandsystemsforadaptiveloopfilterapplicationinvideocoding”的美国申请的优先权,该美国申请通过引用全部包含于此。
技术领域
:3.本公开涉及视频编解码和压缩领域,并且更具体地,涉及用于在视频编解码中应用自适应环路滤波器(alp)的方法和系统。
背景技术
::4.各种视频编解码技术可被用于压缩视频数据,从而可使用一个或更多个视频编解码标准执行对视频数据的编解码。示例性视频编解码标准可包括但不限于通用视频编解码(vvc)、联合探索测试模型(jem)、高效视频编解码(h.265/hevc)、高级视频编解码(h.264/avc)、运动图像专家组(mpeg)编解码等。视频编解码通常可使用预测方法(例如,帧间预测、帧内预测等),预测方法利用视频的图像帧的序列中存在的冗余。例如,通过使用视频编解码,可从视频数据减少或去除视频的图像帧中存在的冗余。因此,可将视频数据压缩为具有较低比特率的形式,同时避免或最小化视频的质量劣化。技术实现要素:5.本公开的实施例提供了一种用于在视频编解码中应用自适应环路滤波器的方法。该方法包括:由视频处理器确定对重建的块应用自适应环路滤波器的第一率失真代价。重建的块包括来自视频的图像帧的图像块的重建的版本。该方法还可包括:由视频处理器确定不对重建的块应用自适应环路滤波器的第二率失真代价。该方法可另外包括:由视频处理器基于第一率失真代价和第二率失真代价来确定是否应用自适应环路滤波器来处理重建的块。6.本公开的实施例还提供了一种用于在视频编解码中应用自适应环路滤波器的系统。该系统包括存储器和视频处理器。存储器被配置为至少存储视频的图像帧。图像帧至少包括图像块。视频处理器被配置为确定对重建的块应用自适应环路滤波器的第一率失真代价。重建的块包括图像块的重建的版本。视频处理器还被配置为确定不对重建的块应用自适应环路滤波器的第二率失真代价。视频处理器另外被配置为基于第一率失真代价和第二率失真代价来确定是否应用自适应环路滤波器来处理重建的块。7.本公开的实施例还提供了一种被配置为存储指令的非暂态计算机可读存储介质,该指令在被视频处理器执行时使视频处理器执行用于在视频编解码中应用自适应环路滤波器的过程。该过程可包括:确定对重建的块应用自适应环路滤波器的第一率失真代价。重建的块包括来自视频的图像帧的图像块的重建的版本。该过程还可包括:确定不对重建的块应用自适应环路滤波器的第二率失真代价。该过程可另外包括:基于第一率失真代价和第二率失真代价来确定是否应用自适应环路滤波器来处理重建的块。8.前面的大体描述和下面的详细描述都仅是示例性和说明性的,并且不限制所要求保护的发明。附图说明9.图1a示出根据本公开的实施例的用于编码视频数据的示例性视频编码系统的框图。10.图1b示出根据本公开的实施例的用于解码视频数据的示例性视频解码系统的框图。11.图2a示出根据本公开的实施例的包括环内滤波器的示例性视频编码器的框图。12.图2b示出了根据本公开的实施例的包括环内滤波器的示例性视频解码器的框图。13.图2c示出根据本公开的实施例的包括自适应环路滤波器的示例性环内滤波器的框图。14.图3是根据本公开的实施例的用于在视频编解码中应用自适应环路滤波器的示例性方法的流程图。15.图4是示出根据本公开的实施例的按多类型树结构的示例性块分割的图示。16.图5是示出根据本公开的实施例的光栅扫描瓦片(tile)组模式下的图像帧的示例性分割的图示。17.图6是示出根据本公开的实施例的矩形瓦片组模式下的图像帧的示例性分割的图示。18.图7是示出根据本公开的实施例的vvc测试模型(vtm)中的示例性的不允许的三叉树分割和二叉树分割的图示。19.图8a是示出根据本公开的实施例的用于色度分量的自适应环路滤波器的示例性滤波器形状的图示。20.图8b是示出根据本公开的实施例的用于亮度分量的自适应环路滤波器的示例性滤波器形状的图示。21.图9a-图9d是示出根据本公开的实施例的用于四个不同方向的梯度计算的示例性子采样位置的图示。22.图10是根据本公开的实施例的跨分量自适应环路滤波器(ccalf)的示例性布置的示意图。23.图11是示出根据本公开的实施例的在ccalf中使用的示例性菱形滤波器的图示。具体实施方式24.现在将详细参考示例性实施例,示例性实施例的示例在附图中示出。在任何可能的情况下,在整个附图中将使用相同的参考标号来指代相同或相似的部分。25.类似于hevc标准,vvc标准可被建立在基于块的混合视频编解码框架上。混合视频编解码框架可包括用于在发送侧编码视频数据的编码系统和用于在接收侧解码视频数据的解码系统。编码系统和解码系统中的每一个可包括各自的自适应环路滤波器。例如,编码系统中的自适应环路滤波器可被用于对与输入图像块对应的重建的图像块进行滤波,使得重建的图像块可被存储在参考图像存储器中并被用于对未来输入的图像块进行编解码。在另一示例中,解码系统中的自适应环路滤波器可对重建的图像块进行滤波以生成输出的图像块,使得输出的图像块可被送出以驱动显示设备。输出的图像块还可被用于预测未来输出的图像块。26.在编码系统中,可在编码视频的当前图像帧之前获得自适应环路滤波器的系数,并且可在当前图像帧中的编码树单元(ctu)的编码期间做出开启或关闭自适应环路滤波器的决定。对于每个ctu,可针对每个颜色分量独立地做出开启或关闭自适应环路滤波器的决定。然而,自适应环路滤波器的应用可能具有高计算复杂度,特别是对于对运行时间和功耗敏感的解码系统。27.此外,可能需要多个编码通道来导出自适应环路滤波器的最佳系数。每个编码通道可包括多个操作,诸如收集用于形成wiener-hopf方程的统计量以及利用所获得的系数执行滤波操作。多个编码通道的率失真代价可被分别导出并被彼此进行比较,并且可针对自适应环路滤波器选择具有率失真代价中的最小代价的系数。然而,这种多通道编码可能不适合于实际的硬件编码器设计。例如,每个率失真代价的测量可能需要针对整个图像帧执行滤波操作,从而导致硬件处理流水线的不可接受的延迟量。28.为了解决前述问题,提供了一种用于在视频编解码中应用自适应环路滤波器的系统和方法,使得可仅针对ctu和/或图像帧启用alf操作,其中alf操作可提供率失真改进。例如,如果应用自适应环路滤波器的第一率失真代价小于不应用自适应环路滤波器的第二率失真代价,则可在视频编解码中应用自适应环路滤波器。在这种情况下,可利用自适应环路滤波器的应用来实现率失真改进。通过基于是否可利用自适应环路滤波器的应用来实现率失真改进来控制自适应环路滤波器的开启或关闭,可以为视频解码器降低与自适应环路滤波器的应用相关联的计算复杂度,同时可以保持与自适应环路滤波器相关联的编解码效率。因此,可以提高视频编解码的效率。29.与本公开一致,可基于图像帧的编码模式来确定自适应环路滤波器的系数,从而可以实现对图像帧的低延迟编码处理。例如,如果使用帧内编码模式处理图像帧,则可根据预定义的自适应环路滤波器的集合确定自适应环路滤波器的系数。如果使用帧间编码模式处理图像帧,则可根据预定义的自适应环路滤波器的集合或根据与先前编解码的图像帧相关联的历史系数确定自适应环路滤波器的系数。在这种情况下,不需要执行上述多通道编码来导出系数,因此,可以减少由多通道编码引起的潜在延迟。30.与本公开一致,这里公开的视频的图像帧可在红色、绿色和蓝色(rgb)颜色空间中表达,并且图像帧中的每个像素可包括红色像素值、绿色像素值和蓝色像素值。可选地,可在ycbcr颜色空间中表达图像帧,其中y、cb和cr分别表示亮度分量、蓝色差色度分量(称为cb色度分量)和红色差色度分量(称为cr色度分量)。图像帧中的每个图像块可包括例如亮度样点的块(例如,亮度样点的阵列)、cb色度样点的块(例如,cb色度样点的阵列)和cr色度样点的块(例如,cr色度样点的阵列)。ycbcr颜色空间可由从rgb颜色空间的数学坐标变换来定义。31.图1a示出根据本公开的实施例的用于编码视频数据的示例性视频编码系统101的框图100。在一些实施例中,视频编码系统101可被实施在用户112可进行交互的设备上。例如,视频编码系统101可被实现在服务器(例如,本地服务器或云服务器)、工作站、游戏站、台式计算机、膝上型计算机、平板计算机、智能电话、游戏控制器、可穿戴电子设备、电视(tv)机或任何其他合适的电子设备上。32.在一些实施例中,视频编码系统101可包括至少一个处理器(诸如处理器102)、至少一个内存(诸如内存103)和至少一个存储库(诸如存储库104)。预计视频编码系统101还可包括用于执行这里描述的功能的任何其他合适的组件。33.在一些实施例中,视频编码系统101可在单个设备(诸如集成电路(ic)芯片)或具有专用功能的分开的设备中具有不同模块。例如,ic可被实现为专用集成电路(asic)或现场可编程门阵列(fpga)。在一些实施例中,视频编码系统101的一个或更多个组件可位于云计算环境中,或者可以可选地地在单个位置或分布式位置中。视频编码系统101的组件可在集成设备中,或者分布在不同的位置但通过网络(图中未示出)彼此进行通信。34.处理器102可包括适合于视频编解码的任何合适的类型的微处理器、图形处理器、数字信号处理器或微控制器。处理器102可包括被设计为与其他组件一起使用或执行视频编解码程序的部分的一个或更多个硬件单元(例如,集成电路的(多个)部分)。程序可被存储在计算机可读介质上,并且在该程序被处理器102执行时,它可执行一个或更多个功能。处理器102可被配置为专用于执行视频编解码的单独的处理器模块。可选地,处理器102可被配置为用于执行与视频编解码无关的其他功能的共享的处理器模块。35.在一些实施例中,处理器102可以是为视频编解码定制的专用处理器。例如,处理器102可以是图形处理单元(gpu),gpu是被设计为快速操纵和改变存储器以加速创建帧缓冲器中旨在用于输出到显示设备的图像的专用电子电路。这里公开的功能可由gpu实现。在另一示例中,视频编码系统101可被实现在片上系统(soc)中,并且处理器102可以是被配置为运行视频编码器或解码器应用的媒体和像素处理(mpp)处理器。在一些实施例中,这里公开的功能可由mpp处理器实现。36.处理器102可包括一个或更多个模块,诸如视频编码器105。尽管图1a示出了视频编码器105在一个处理器102内,但是预计视频编码器105可包括可被实现在位置彼此靠近或远离的不同处理器上的一个或更多个子模块。37.视频编码器105(以及任何对应的子模块或子单元)可以是处理器102的硬件单元(例如,集成电路的部分),该硬件单元被设计为与由处理器102通过执行程序的至少一部分实现的其他组件或软件单元一起使用。程序可被存储在计算机可读介质(诸如内存103或存储库104)上,并且当程序被处理器102执行时,它可执行一个或更多个功能。38.内存103和存储库104可包括被提供以存储处理器102可能需要操作的任何类型的信息的任何合适类型的大容量存储器。例如,内存103和存储库104可以是易失性或非易失性、磁性、基于半导体、基于磁带、光学、可移动、不可移动或其他类型的存储设备、或者有形(即,非暂态)计算机可读介质(包括但不限于rom、闪存、动态ram和静态ram)。内存103和/或存储库104可被配置为存储可由处理器102执行以执行这里公开的功能的一个或更多个计算机程序。例如,内存103和/或存储库104可被配置为存储可由处理器102执行以执行视频编解码的程序。内存103和/或存储库104还可被配置为存储由处理器102使用的信息和数据。39.图1b示出根据本公开的实施例的用于解码视频数据的示例性视频解码系统151的框图150。在一些实施例中,视频解码系统151可被实施在用户162可进行交互的设备上。类似于视频编码系统101,视频解码系统151可被实现在服务器(例如,本地服务器或云服务器)、工作站、游戏站、台式计算机、膝上型计算机、平板计算机、智能电话、游戏控制器、可穿戴电子设备、tv机或任何其他合适的电子设备上。40.在一些实施例中,视频解码系统151可具有类似于视频编码系统101的硬件结构和配置。例如,视频解码系统151可包括至少一个处理器(诸如处理器152)、至少一个内存(诸如内存153)和至少一个存储库(诸如存储库154)。预计视频解码系统151还可包括用于执行这里描述的功能的任何其他合适的组件。41.在一些实施例中,视频解码系统151可在单个设备(诸如ic芯片)或具有专用功能的单独的设备中具有不同模块。例如,ic可被实现为asic或fpga。在一些实施例中,视频解码系统151的一个或更多个组件可位于云计算环境中,或者可以可选地在单个位置或分布式位置中。视频解码系统151的组件可在集成设备中,或者分布在不同位置但通过网络(图中未示出)彼此进行通信。42.处理器152可具有与处理器102类似的结构,并且这里将不再重复类似的描述。在一些实施例中,处理器152可以是为视频编解码定制的专用处理器。例如,处理器152可以是被配置为运行视频编码器或解码器应用的gpu或mpp处理器。处理器152可包括一个或更多个模块,诸如视频解码器155。尽管图1b示出了视频解码器155在一个处理器152内,但是预计视频解码器155可包括可被实现在位置彼此靠近或远离的不同处理器上的一个或更多个子模块。43.类似于视频编码器105,视频解码器155(以及任何对应的子模块或子单元)可以是处理器152的硬件单元(例如,集成电路的部分),该硬件单元被设计为与由处理器152通过执行程序的至少一部分实现的其他组件或软件单元一起使用。程序可被存储在计算机可读介质(诸如内存153或存储库154)上,并且当程序被处理器152执行时,它可执行一个或更多个功能。44.内存153和存储库154可分别具有与内存103和存储库104的结构类似的结构,并且这里将不再重复类似的描述。45.图2a示出根据本公开的实施例的包括环内滤波器的示例性视频编码器(例如,视频编码器105)的框图。视频编码器105可具有针对vcc标准的通用的基于块的混合视频编码结构。称为vcc测试模型(vtm)的参考软件代码库可被建立以演示vcc标准的参考实现。在视频编码器105中,可逐块(也称为编码单元(cu))地处理输入视频的每个图像帧。在vtm-1.0中,编码单元可包括至多128×128个像素。然而,与仅基于四叉树结构分割块的hevc标准不同,在vvc标准中,可基于四叉树、二叉树或三叉树结构将编码树单元(ctu)划分为编码单元以适应变化的局部特性。46.在vcc标准中,编码树块(ctb)可包括n×n个样点的块(例如,n是正整数)。例如,针对具有三个样点阵列(例如,亮度样点的阵列和色度样点的两个阵列)的图像帧,编码树单元可包括亮度样点的编码树块(例如,n×n个亮度样点的块)和色度样点的两个对应编码树块(例如,n×n个cb色度样点的块和n×n个cr色度样点的块)。在另一示例中,针对单色图像帧或使用三个单独的颜色平面和用于编码样点的语义结构被编解码的图像帧,编码树单元可包括图像帧的样点的编码树块。47.此外,从vcc标准去除hevc标准中的多种类型的分割单元的概念。例如,在hevc标准中,编码单元不同于在预测操作中使用的预测单元和在变换操作中使用的变换单元。然而,在vcc标准中,编码单元、预测单元和变换单元的区别不再存在。而是,每个编码单元可被用作预测操作和变换操作两者的基本单元,而不进一步分割编码单元。在vcc标准的多类型树结构中,可首先通过四叉树结构分割编码树单元。随后,可通过二叉树或三叉树结构进一步分割每个四叉树叶节点。48.在一些实施例中,视频编码器105可被配置为从视频的图像帧接收输入块并编码输入块以产生与输入块对应的比特流。输入块可以是图像帧的二维(2d)图像块。例如,输入块可包括编码树单元、编码树块或图像帧的样点的编码单元。样点可包括图像帧的亮度样点、色度样点或两者。图像帧可被划分为多个输入块,使得视频编码器105可逐块地处理图像帧。49.在一些实施例中,视频编码器105可包括变换模块202、量化模块204、熵编码模块206、反量化模块208、逆变换模块210、存储器212、帧内预测模块214、环内滤波器216、帧缓冲器218、运动估计模块220、运动补偿模块222和模式选择模块224中的一个或更多个。50.在一些实施例中,帧内预测模块214可执行空间预测操作(也称为帧内预测操作)以生成与输入块对应的预测空间块。注意,在不产生歧义的情况下,在本公开中可以可互换地使用术语“帧内预测”和术语“空间预测”。例如,帧内预测模块214可从存储器212检索针对输入块的空间参考样点,其中空间参考样点可包括与输入块相同的图像帧(或相同条带)中的一个或更多个已经编解码的相邻块的样点。帧内预测模块214可使用来自空间参考样点的像素以生成针对输入块的预测空间块。预测空间块可表示输入块基于空间参考样点的空间预测。通过应用空间预测操作,可以减少视频数据中存在的空间冗余。因此,可以提高视频数据的编解码效率。51.注意,除了在vcc标准中进一步扩展和/或改进hevc标准中的若干模块或操作之外,在vvc标准中应用的基本帧内预测方案保持与hevc标准的基本帧内预测方案相同。例如,在vcc标准中扩展和改进hevc标准中的帧内子分割(isp)编码模式、具有广角帧内方向的扩展的帧内预测、位置依赖帧内预测组合(pdpc)操作、基于矩阵的帧内预测操作和4抽头帧内插值操作。52.在一些实施例中,运动补偿模块222可与运动估计模块220协作以执行时间预测操作,以生成与输入块对应的预测时间块。时间预测操作也可被称为帧间预测操作或运动补偿预测操作。注意,在不产生歧义的情况下,在本公开中可以可互换地使用术语“帧间预测”和术语“时间预测”。53.例如,运动补偿模块222可从帧缓冲器218检索一个或更多个时间参考帧。一个或更多个时间参考帧可包括与图像帧相同的视频中的一个或更多个先前编解码的图像帧。运动补偿模块222可使用来自一个或更多个时间参考帧的重建的像素来生成针对输入块的预测时间块。预测时间块可表示输入块基于一个或更多个时间参考图像帧的时间预测。通过应用时间预测操作,可以减少视频数据中存在的时间冗余。因此,还可以提高视频数据的编解码效率。54.在一些实施例中,可通过由运动估计模块220生成的输入块的一个或更多个运动矢量来用信号发送针对输入块(例如,输入块是编码单元)的时间预测操作。一个或更多个运动矢量可指示输入块与一个或更多个时间参考帧之间的运动的量和方向。如果在时间预测操作中应用多个时间参考帧,则可另外用信号发送参考图像索引。参考图像索引可被用于识别存储在帧缓冲器218中的时间参考帧。55.在执行空间预测操作和/或时间预测操作之后,模式选择模块224可针对输入块选择预测模式。例如,模式选择模块224可基于率失真优化方法来选择预测模式。模式选择模块224可基于预测模式确定针对输入块的预测块。例如,预测模式可以是帧内编码模式(也称为空间预测模式),并且预测块可以是预测空间块。可选地,预测模式可以是帧间编码模式(也被称作时间预测模式),并且预测块可以是预测时间块。56.接下来,可从输入块减去预测块以生成预测残差。可通过由变换模块202执行的变换操作和由量化模块204执行的量化操作来对预测残差进行去相关,以生成量化的残差系数。57.量化的残差系数可由反量化模块208反量化,并且由逆变换模块210逆变换以形成重建的残差。反量化模块208和逆变换模块210可分别执行与由变换模块202和量化模块204执行的操作相反的操作。重建的残差随后可被加回到预测块以形成与输入块对应的重建的块。例如,重建的块可包括输入块的重建的版本。重建的块可被存储在存储器212中。重建的块可由环内滤波器216进一步处理。下面参照图2c更详细地描述环内滤波器216。在被环内滤波器216处理之后,重建的块可被存储在帧缓冲器218中并被用于编解码未来的输入块。58.熵编码模块206可基于一个或更多个熵编码输入形成比特流作为视频编码器105的输出。例如,熵编码模块206可压缩和打包一个或更多个熵编码输入以生成比特流作为输出。一个或更多个熵编码输入可包括输入块的量化的残差系数和编码模式(例如,帧间编码或帧内编码模式)。如果编码模式为帧间编码模式,则一个或更多个熵编码输入还可包括描述输入块的一个或更多个运动矢量的运动矢量信息和用于识别一个或更多个时间参考帧的参考图像索引。如果编码模式是帧内编码模式,则一个或更多个熵编码输入还可包括用于识别在输入块的帧内编解码中使用的空间参考样点的空间索引。59.图2b示出根据本公开的实施例的包括环内滤波器的示例性视频解码器(例如,视频解码器155)的框图。视频解码器155可以是基于块的视频解码器。视频解码器155可接收由图2a的视频编码器105发送的比特流,并使用该比特流来生成与图2a的输入块对应的输出块。视频解码器155可包括熵解码模块252、反量化模块208、逆变换模块210、存储器254、帧内预测模块214、模式选择模块224、环内滤波器216、帧缓冲器256和运动补偿模块222中的一个或更多个。60.在一些实施例中,熵解码模块252可解码比特流以生成一个或更多个熵解码输出。一个或更多个熵解码输出可包括输入块的量化的残差系数和编码模式。熵解码模块252可将量化的残差系数输出到反量化模块208。61.如果编码模式为帧间编码模式,则一个或更多个熵解码输出还可包括描述输入块的一个或更多个运动矢量的运动矢量信息和识别在输入块的帧间编解码中使用的一个或更多个时间参考帧的参考图像索引。熵解码模块252还可将运动矢量信息和参考图像索引输出到运动补偿模块222。运动补偿模块222可基于参考图像索引从帧缓冲器256检索一个或更多个时间参考帧。运动补偿模块222可使用来自一个或更多个时间参考帧的重建的像素以基于运动矢量信息生成预测时间块。62.如果编码模式是帧内编码模式,则一个或更多个熵解码输出还可包括用于识别在输入块的帧内编解码中使用的空间参考样点的空间索引。熵解码模块252还可将空间索引输出到帧内预测模块214。帧内预测模块214可基于空间索引从存储器254检索空间参考样点。帧内预测模块214可使用来自空间参考样点的像素来生成预测空间块。63.模式选择模块224可基于一个或更多个熵解码输出来生成预测块。例如,如果包括在一个或更多个熵解码输出中的编码模式是帧间编码模式,则模式选择模块224可将比特流的预测块确定为来自运动补偿模块222的预测时间块。如果编码模式是帧内编码模式,则模式选择模块224可将比特流的预测块确定为来自帧内预测模块214的预测空间块。64.量化的残差系数可由反量化模块208反量化,并且由逆变换模块210逆变换以形成重建的残差。重建的残差随后可被加回到预测块,以形成与比特流对应的重建的块。重建的块可被存储在存储器254中。重建的块可被帧内预测模块214用于未来的帧内预测处理。重建的块可被环内滤波器216进一步处理。在被环内滤波器216处理之后,重建的块可被存储在帧缓冲器256中以用于未来的帧间预测处理。重建的块还可作为输出块被发送出以驱动显示设备。65.图2c示出根据本公开的实施例的包括自适应环路滤波器的示例性环内滤波器(例如,图2a或图2b的环内滤波器216)的框图。环内滤波器216可被配置为处理重建的块以生成处理结果,并且可将处理结果存储在帧缓冲器218或256中。重建的块可对应于图像帧的图像块,并且可包括图像块的重建的版本。例如,图像块可以是图2a或图2b的输入块,并且重建块可以是输入块的重建的版本。环内滤波器216可包括去块滤波器279、样点自适应偏移(sao)滤波器280和自适应环路滤波器282中的一个或更多个。66.去块滤波器279可以是应用于重建的块以通过平滑在重建的块的边界形成的锐利边缘来提高视觉质量和预测性能的视频滤波器。例如,去块滤波器279可被配置为修改重建的块的位于块边界处的样点以减少归因于基于块的编解码的块效应。在重建的块被去块滤波器279滤波之后,sao滤波器280可被配置为通过将偏移值有条件地添加到重建的块的每个样点来修改重建的块的样点。67.自适应环路滤波器282就以下意义而言是自适应的:滤波器的系数在比特流中被用信号发送,并且可基于图像内容和重建的块的失真而被设计。可应用自适应环路滤波器282以减少由编码过程产生的失真并提高重建的块的质量。自适应环路滤波器282可包括亮度自适应环路滤波器、cb分量色度自适应环路滤波器、cr分量色度自适应环路滤波器或跨分量自适应环路滤波器中的至少一个。下面可参照图4至图11提供自适应环路滤波器282的进一步描述。68.在一些实施例中,环内滤波器216还可包括被配置为确定是否在视频编解码中应用自适应环路滤波器282的确定模块284。例如,确定模块284可被配置为基于率失真评估标准来做出用于重建的块的自适应环路滤波器282的开/关决定。69.具体地,确定模块284可确定对重建的块应用自适应环路滤波器282的第一率失真代价。例如,确定模块284可确定对重建的块应用自适应环路滤波器282的第一失真和对重建的块应用自适应环路滤波器282的比率。确定模块284可基于对重建的块应用自适应环路滤波器282的第一失真和比率来确定第一率失真代价。例如,确定模块284可基于以下表达式(1)确定第一率失真代价:70.coston=don λ×ron.ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(1)71.在以上表达式(1)中,coston表示第一率失真代价,don表示对重建的块应用自适应环路滤波器282的第一失真,ron表示对重建的块应用自适应环路滤波器282的比率,并且λ表示率失真因子。第一失真don可以是图像帧中的经alf滤波的图像块相对于原始图像块的失真。可通过使用自适应环路滤波器282对重建的块进行滤波来生成经alf滤波的图像块。原始图像块可以是图像帧的与重建的块对应的图像块。率失真因子λ可包括由量化参数确定的值。72.接下来,确定模块282可确定不对重建的块应用自适应环路滤波器282的第二率失真代价。例如,确定模块284可确定不对重建的块应用自适应环路滤波器282的第二失真和不对重建的块应用自适应环路滤波器282的比率。确定模块284可基于不对重建的块应用自适应环路滤波器282的第二失真和比率来确定第二率失真代价。例如,确定模块284可基于以下表达式(2)确定第二率失真代价:73.costoff=doff λ×roff.ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(2)74.在以上表达式(2)中,costoff表示第二率失真代价,doff表示不对重建的块应用自适应环路滤波器282的第二失真,并且roff表示不对重建的块应用自适应环路滤波器282的比率。第二失真可以是图像帧中的重建的块(未应用自适应环路滤波器282)相对于原始图像块的失真。75.确定模块284可基于第一率失真代价和第二率失真代价来确定是否应用用于处理重建的块的自适应环路滤波器282。例如,确定模块284可确定第一率失真代价是否小于第二率失真代价。响应于第一率失真代价小于第二率失真代价,确定模块284可确定应用用于处理重建的块的自适应环路滤波器282。否则,确定模块284可确定不对重建的块应用自适应环路滤波器282。也就是说,当coston的值小于costoff的值时,重建的块可被设置为alf启用,如以下表达式(3)中所示:[0076][0077]在另一示例中,确定模块284可进一步确定第一率失真代价是否小于第一阈值。响应于第一率失真代价小于第二率失真代价并且第一率失真代价小于第一阈值,确定模块284可确定应用用于处理重建的块的自适应环路滤波器282。否则,确定模块284可确定不对重建的块应用自适应环路滤波器282。也就是说,可检查与第一率失真代价coston相关的附加条件以确定是否针对重建的块启用alf操作,如以下表达式(4)中所示:[0078][0079]在以上表达式(4)中,t1表示第一阈值,第一阈值可由视频编码器105或用户预定义。[0080]在又一示例中,确定模块284可进一步确定第二率失真代价与第一率失真代价之间的代价差是否大于第二阈值。响应于第一率失真代价小于第二率失真代价并且代价差大于第二阈值,确定模块284可确定应用自适应环路滤波器282来处理重建的块。否则,确定模块284可确定不对重建的块应用自适应环路滤波器282。也就是说,可检查与第二率失真代价costoff和第一率失真代价coston之间的差相关的附加条件以确定是否针对重建的块启用alf操作,如以下表达式(5)中所示:[0081][0082]在以上表达式(5)中,δcost表示代价差并且可被计算为costoff-coston,并且t2表示第二阈值,第二阈值可由视频编码器105或用户预定义。[0083]在又一示例中,确定模块284可将与重建的块相关联的失真差确定为第二失真与第一失真之间的差。确定模块284可进一步确定失真差是否大于第三阈值。响应于第一率失真代价小于第二率失真代价并且失真差大于第三阈值,确定模块284可确定应用自适应环路滤波器来处理重建的块。否则,确定模块284可确定不对重建的块应用自适应环路滤波器282。也就是说,可检查与第二失真doff和第一失真don之间的差相关的附加条件以确定是否针对重建的块启用alf操作,如以下表达式(6)中所示:[0084][0085]在以上表达式(6)中,δd表示失真差,并且可被计算为doff-don,t3表示第三阈值,第三阈值可由视频编码器105或用户预定义。[0086]在一些实施例中,同一图像帧中的应用自适应环路滤波器282的重建的块的总数(例如,同一图像帧中的启用了alf的图像块的总数,表示为totalnum)可不超过第四阈值t4。在这种情况下,通过应用自适应环路滤波器282产生的复杂度可被设置为低于给定图像帧的预期水平。[0087]在一些实施例中,同一图像帧中的应用自适应环路滤波器282的重建的块的总面积大小(例如,同一图像帧中的alf启用的图像块的总面积大小,表示为totalsize)可不超过第五阈值t5。在这种情况下,通过应用自适应环路滤波器282产生的复杂度也可被设置为低于给定图像帧的预期水平。[0088]在一些实施例中,第一阈值t1、第二阈值t2、第三阈值t3、第四阈值t4和第五阈值t5(表示为ti,其中i是整数,1≤i≤5)中的每一个可在帧序列级、图像帧级、条带级、编码树块级和/或任何预定义区域级变化。例如,对于在帧序列级变化的每个阈值ti,可针对不同的视频为阈值ti设置不同的值,而针对相同的视频中的图像帧的序列,阈值ti可具有相同的值。在另一示例中,对于在图像帧级变化的每个阈值ti,可针对相同的视频中的不同的图像帧为阈值ti设置不同的值,而针对相同的视频中的每个图像帧,阈值ti可具有相同的值。在又一示例中,对于在条带级(或编码树块级)变化的每个阈值ti,可针对相同的图像帧中的不同的条带(或不同的编码树块)为阈值ti设置不同的值,而针对相同的图像帧中的每个条带(或每个编码树块),阈值ti可具有相同的值。[0089]在一些示例中,可针对具有不同时间层id(可与vvc或hevc规范中规定的nuh_temporal_id_plus1相关)的图像帧为阈值ti设置不同的值。可选地,可基于在帧序列级、图像帧级、条带级、编码树块级和/或任何预定义区域级使用的一个或更多个量化参数(qp)值来确定阈值ti的值。[0090]如上所述,每个阈值ti(其中1≤i≤5)可被用于与参数pi(诸如分别针对1≤i≤5,pi=coston、δcost、δd、totalnum或totalsize)进行比较。在一些实施例中,针对特定预定义区域级(例如,条带级、编码树块级等)的参数pi的多个值可按升序或降序进行排序,以生成排序的数据序列。阈值ti的值可被设置为等于与排序的数据序列的前百分之ni对应的数据。[0091]例如,当t1被用作上限阈值以与p1(coston)进行比较时,可按升序对从多个重建的块计算出的coston的多个值进行排序,以生成排序的数据序列。阈值t1的值可被设置为等于与排序的数据序列的前百分之n1对应的数据。例如,可按升序对与100个重建的块相关联的100个coston数据进行排序,以生成coston数据的排序的数据序列,并且如果n1=30,则排序的数据序列中的第30个数据值可被用作阈值t1。[0092]在另一示例中,当t2(或t3)被用作更低的阈值以与p2(δcost)(或p3(δd))进行比较时,可按降序对从多个重建的块计算出的δcost的多个值(或δd的多个值)进行排序,以生成排序的数据序列。阈值t2(或t3)的值可被设置为等于与排序的数据序列的前百分之n2(或n3)对应的数据。例如,可按降序对与100个重建的块相关联的100个δcost数据进行排序,以生成排序的数据序列。如果n2=40,则排序的数据序列中的第40个数据值可被用作阈值t2。[0093]在又一示例中,当t4(或t5)被用作上限阈值以与p4(totalnum)(或p5(totalsize))进行比较时,可按升序对从多个图像帧计算出的totalnum的多个值(或totalsize的多个值)进行排序,以生成排序的数据序列。阈值t4(或t5)的值可被设置为等于与排序的数据序列的前百分之n4(或n5)对应的数据。[0094]预计ni(其中1≤i≤5)可在帧序列级、图像帧级、条带级、编码树块级和/或任何预定义区域级变化。例如,针对具有不同的时间层id的图像帧,可为ni设置不同的值。可选地,可基于在帧序列级、图像帧级、条带级、编码树块级和/或任何预定义区域级使用的一个或更多个量化参数值来确定ni的值。[0095]在一些实施例中,还可基于视频的视频分辨率来确定阈值ti的值。视频分辨率可包括视频的时间分辨率(例如,帧率)、视频的空间分辨率(例如,图像帧的宽度和高度)或两者。[0096]在一些实施例中,确定模块284还可被配置为确定自适应环路滤波器282的一个或更多个系数,使得可在视频编码器105中实现低延迟编码处理。例如,如果使用帧内编码模式处理图像帧,则确定模块284可根据预定义的自适应环路滤波器的集合确定自适应环路滤波器282的系数。下面更详细地描述预定义的自适应环路滤波器的集合。在另一示例中,如果使用帧间编码模式处理图像帧,则确定模块284可根据预定义的自适应环路滤波器的集合或根据与先前编解码的图像帧相关联的历史系数确定自适应环路滤波器282的系数。与先前编解码的图像帧相关联的历史系数可包括用于处理先前编解码的图像帧的自适应环路滤波器282的系数。[0097]图3是根据本公开的实施例的用于在视频编解码中应用自适应环路滤波器的示例性方法300的流程图。方法300可由视频编码器105(具体地,确定模块284)实现,并且可包括如下描述的步骤302-306。一些步骤可以是可选的,以执行这里提供的公开。此外,一些步骤可被同时执行,或者按照与图3中所示不同的顺序执行。[0098]在步骤302中,确定模块284可确定对重建的块应用自适应环路滤波器的第一率失真代价。重建的块可包括图像帧的图像块的重建的版本。例如,确定模块284可确定对重建的块应用自适应环路滤波器的第一失真和对重建的块应用自适应环路滤波器的比率。确定模块284可基于对重建的块应用自适应环路滤波器的第一失真和比率来确定第一率失真代价。[0099]在步骤304中,确定模块284可确定不对重建的块应用自适应环路滤波器的第二率失真代价。例如,确定模块284可确定不对重建的块应用自适应环路滤波器的第二失真和不对重建的块应用自适应环路滤波器的比率。确定模块284可基于不对重建的块应用自适应环路滤波器的第二失真和比率来确定第二率失真代价。[0100]在步骤306中,确定模块284可基于第一率失真代价和第二率失真代价确定是否应用自适应环路滤波器来处理重建的块。例如,确定模块284可将第一率失真代价与第二率失真代价进行比较以生成比较结果。确定模块284可基于比较结果确定是否应用自适应环路滤波器来处理重建的块。[0101]图4是示出根据本公开的实施例的按多类型树结构的示例性块分割400的图示。图4中的每个图像块具有h×w的尺寸,其中h和w分别表示图像块的高度和宽度。图4的部分(a)示出第一图像块的示例性四元分割。图4的部分(b)示出第二图像块的示例性垂直二元分割。图4的部分(c)示出第三图像块的示例性水平二元分割。图4的部分(d)示出第四图像块的示例性垂直三元分割。图4的部分(e)示出第五图像块的示例性水平三元分割。[0102]图5是示出根据本公开的实施例的光栅扫描瓦片组模式下的图像帧的示例性分割500的图示。图6是示出根据本公开的实施例的矩形瓦片组模式下的图像帧的示例性分割600的图示。在vvc标准中,瓦片可被定义为图像帧中的特定瓦片列和特定瓦片行内的编码树单元的矩形区域。瓦片组可包括来自图像帧的一组瓦片,一组瓦片被唯一地包括在单个网络抽象层(nal)单元中。基本上,瓦片组可与hevc标准中定义的条带相同或相似。例如,图像帧可被划分为瓦片组和瓦片,其中瓦片可包括覆盖图像帧的矩形区域的编码树单元的序列,并且瓦片组可包括图像帧的多个瓦片。[0103]在vcc标准中支持两个瓦片组模式,包括光栅扫描瓦片组模式和矩形瓦片组模式。在光栅扫描瓦片组模式下,瓦片组可包括图像帧的瓦片光栅扫描中的瓦片的序列。例如,图5示出图像帧的光栅扫描瓦片组分割的示例。图5中的图像帧包括12×18个亮度编码树单元。12×18个亮度编码树单元被划分为12个瓦片,并且12个瓦片被划分为3个光栅扫描瓦片组。[0104]在矩形瓦片组模式下,瓦片组可包括共同形成图像帧的矩形区域的图像帧的多个瓦片。矩形瓦片组内的瓦片是按照瓦片组的瓦片光栅扫描的顺序。例如,图6示出图像帧的矩形瓦片组分割的示例。图6中的图像帧包括12×18个亮度编码树单元。12×18个亮度编码树单元被划分为24个瓦片(6个瓦片列和4个瓦片行),并且24个瓦片被划分为9个矩形瓦片组。[0105]图7是示出根据本公开的实施例的vvc测试模型中的示例性的不允许的三叉树分割和二叉树分割的图示。图7中的每个图像块可包括128×128个亮度样点。在图7中使用粗线示出了不允许的分割。[0106]图8a是示出根据本公开的实施例的用于色度分量的自适应环路滤波器的示例性滤波器形状800的图示。具有5×5菱形形状的自适应环路滤波器可被应用于色度分量。图8b是示出根据本公开的实施例的用于亮度分量的自适应环路滤波器的示例性滤波器形状850的图示。具有7×7菱形形状的自适应环路滤波器可被应用于亮度分量。[0107]在一些实施例中,对于亮度分量,可基于局部梯度的方向和活动性针对亮度分量的每个块根据预定义的自适应环路滤波器的集合(例如,25个预定义的自适应环路滤波器)选择自适应环路滤波器。亮度分量的每个块可以是具有例如m1×m1个重建的亮度样点(m1为正整数,例如,m1=4)的重建的块。[0108]具体地,可针对亮度分量的每个块执行块分类,使得可基于块分类针对亮度分量的块选择预定义的自适应环路滤波器中的一个。例如,亮度分量的每个块可被分类为25个类别中的一个类别,使得25个预定义的自适应环路滤波器中的与25个类别中的一个类别对应的一个预定义的自适应环路滤波器可被选择用于亮度分量的块。分类索引c可被用于识别25个类别中的亮度分量的块被分类为的一个类别。可基于方向性d和活动的量化值导出分类索引c,如以下表达式(7)中所示:[0109][0110]为了计算d和可使用以下表达式(8)-(11)使用1-d拉普拉斯算子来计算水平方向、垂直方向和两个对角方向的梯度:[0111][0112][0113][0114][0115]在以上表达式(8)-(11)中,索引i和j指的是亮度分量的块内的左上样点的坐标,并且r(i,j)指示坐标点(i,j)处的重建样点。[0116]为了降低块分类的复杂度,可应用子采样的1-d拉普拉斯算子计算。图9a-图9d是示出根据本公开的实施例的用于四个不同方向的梯度计算的示例性子采样位置的图示。四个方向可包括水平方向、垂直方向和两个对角方向。如图9a-图9d中所示,相同的子采样位置被用于所有四个方向的梯度计算。[0117]然后,以上表达式(7)中的方向性d可由dmain和dstrength导出,如以下表达式(12)所示:[0118]d=((dmain&0x1)<<1) dstrengthꢀꢀ(12)[0119]dmain和dstrength可由hv0、hv1、dir0、dir1、hvdo、hvd1、dtemphv、和dtempd01导出,如以下表达式(13)-(20)所示:[0120]hv0=(sumv>sumh)?sumv:sumhꢀꢀꢀ(13)[0121]hv1=(sumv>sumh)?sumh:sumvꢀꢀꢀ(14)[0122]dtemphv=(sumv>sumh)?1:3ꢀꢀꢀ(15)[0123]dir0=(sumd0>sumd1)?sumd0:sumd1ꢀꢀꢀ(16)[0124]dir1=(sumd0>sumd1)?sumd1:sumd0ꢀꢀ(17)[0125]dtempd01=(sumd0>sumd1)?0:2ꢀꢀꢀ(18)[0126]dmain=(dir1*hv0>dir0*hv1)?dtempd01:dtemphvꢀꢀꢀ(19)[0127]dstrength=(hvd1>2*hvd0)?1:(hvd1*2>9*hvd0)?2:0ꢀꢀꢀ(20)[0128]可使用以下表达式(21)计算活动值a:[0129]a=sumv sumhꢀꢀꢀꢀꢀꢀꢀ(21)[0130]然后,活动值a可被进一步量化为0至4的范围(包括0和4),并且量化值可被表示为[0131]在一些实施例中,针对每个色度分量,不将块分类方法应用于色度分量的块。然后,可在自适应环路滤波器中针对色度分量的每个块使用相同的系数的集合。也就是说,具有相同的系数的集合的自适应环路滤波器可被应用于色度分量的所有块。色度分量的块可以是具有例如m2×m2个重建的色度样点(m2是正整数,例如,m2=4)的重建的块。[0132]在一些实施例中,可对与自适应环路滤波器相关联的滤波器系数和滤波器剪裁值执行几何变换。具体地,在对亮度分量的每个块(例如,4×4个重建的亮度样点的块)进行滤波之前,可取决于针对块计算的梯度值将几何变换(诸如旋转或对角翻转和垂直翻转)应用于滤波器系数f(j)和对应滤波器剪裁值c(j)。这相当于将这些变换应用于滤波器支持区域中的样点。因此,可通过校准应用了自适应环路滤波器的不同块的方向性来使它们更相似。[0133]针对自适应环路滤波器被应用于亮度分量,可通过filtidxl[x][y]和alfcoeffl[i]导出滤波器系数fl(j)和滤波器剪裁值cl(j),j=0,...,11,filtidxl[x][y]和alfcoeffl[i]是从视频编码器105用信号发送的系数集合。例如,可使用以下表达式(22)-(28)获得滤波器系数fl(j)和滤波器剪裁值cl(j):[0134]fl(j)=alfcoeffl[i][filtidx[x][y]][j]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(22)[0135]cl(j)=alfclipl[i][filtidx[x][y]][j]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(23)[0136]transposetable[]={0,1,0,2,2,3,1,3}ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(24)[0137]transposeidx[x][y]=transposetable[dir1[x][y]*2 (dir2[x][y]>>1)]ꢀꢀꢀꢀꢀ(25)[0138]vartab[]={0,1,2,2,2,2,2,3,3,3,3,3,3,3,3,4}ꢀꢀꢀꢀ(26)[0139]avgvar[x][y]=vartab[clip3(0,15,(a[x>>2][y>>2]*ac[x>>2][y>>2])>>(3 bitdepth))])(27)[0140][0141]针对自适应环路滤波器被应用于色度分量,滤波器系数fc(j)和滤波器剪裁值cc(j)(j=0...5)可由altidx和alfcoeffc[i]导出,其中altidx表示系数集合的索引,并且alfcoeffc[i]表示从视频编码器105用信号发送的系数集合。例如,可使用以下表达式(29)-(30)获得滤波器系数fc(j)和滤波器剪裁值cc(j)(j=0...5):[0142]fc(j)=alfcoeffc[slice_alf_aps_id_chroma][altidx][j]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(29)[0143]ccj=alfclipc[slice_alf_aps_id_chroma][altidx][j].ꢀꢀꢀ(30)[0144]在vtm7中,可在自适应参数集(aps)中用信号发送自适应环路滤波器的滤波器参数。在一个aps中,可用信号发送亮度滤波器系数和剪裁值索引的至多25个集合以及色度滤波器系数和剪裁值索引的至多八个集合。为了减少比特开销,可合并针对亮度分量的不同分类的滤波器系数。在条带头中,可用信号发送用于当前条带的一个或更多个aps的一个或更多个索引。[0145]可从aps解码出的剪裁值索引可被用于使用剪裁值的亮度表和剪裁值的色度表来确定剪裁值。这些剪裁值取决于内部比特深度。可使用以下表达式(31)获得剪裁值的亮度表和剪裁值的色度表:[0146]alfclip={round(2b-2.35*n)对于n∈[0,...,n-1]}.ꢀꢀꢀꢀꢀꢀ(31)[0147]在以上表达式(31)中,b等于内部比特深度,并且n等于4(为vtm7.0中的允许的剪裁值的数量)。[0148]针对亮度分量,可用信号发送至多7个aps索引以指定用于条带头中的当前条带的亮度滤波器集合。还可在编码树块级控制滤波过程。可用信号发送标志以指示自适应环路滤波器是否被应用于亮度编码树块。针对亮度编码树块,可从16个固定的滤波器集合或从由aps指示的滤波器集合选择滤波器集合。可针对亮度编码树块用信号发送滤波器集合索引以指示哪个滤波器集合被应用于亮度编码树块。16个固定的滤波器集合在视频编码器105和视频解码器155两者中被预定义并被硬编解码。[0149]针对色度分量,可在条带头中用信号发送aps索引以指示色度滤波器集合被用于当前条带。在编码树块级,如果在aps中存在多于一个色度滤波器集合,则可针对每个色度编码树块用信号发送滤波器索引。[0150]可用等于128的范数对滤波器系数进行量化。为了限制乘法复杂度,可应用比特流一致性,使得非中心位置的系数值可在-27至27-1的范围中。中心位置系数可不在比特流中被用信号发送,并且可等于128。除了在ap中用信号发送的滤波器系数集合之外,还可在vvc标准中定义16个预定义的滤波器集合。视频编码器105可从vcc标准中的16个预定义的滤波器集合或从通过aps用信号发送的滤波器集合选择自适应环路滤波器。[0151]针对视频解码器155,当针对编码树块启用自适应环路滤波器时,对编码树块内的每个样点r(i,j)进行滤波,从而产生对应的样点值r′(i,j),如以下表达式(32)所示:[0152]r′(i,j)=clip(0,(1<<bitdepth)-1,r(i,j) ((∑k≠0∑1≠0f(k,l)×k(r(i k,j 1)-r(i,j),c(k,l)) 64)>>7))ꢀꢀꢀꢀ(32)[0153]在以上表达式(32)中,f(k,l)表示解码的滤波器系数,k(x,y)表示剪裁函数,并且c(k,l)表示解码的剪裁参数。变量k和l可在与之间变化,其中l表示滤波器长度。剪裁函数可以是k(x,y)=min(y,max(-y,x)),对应于函数clip3(-y,y,x)。在滤波过程之后,可将样点值r′(i,j)剪裁到[0,(1<<bitdepth)-1]中以防止每个分量的溢出。比特深度(例如,bitdepth)可针对不同的颜色分量而变化。[0154]图10是根据本公开的实施例的ccalf的示例性布置1000的示意图。ccalf可使用亮度样点来细化重建的色度样点。ccalf可包括ccalfcb模块1006和ccalfcr模块1008。在一些实施例中,ccalf(包括ccalfcb模块1006和ccalfcr模块1008)通过将线性菱形滤波器应用于亮度分量的亮度样点来操作,以获得针对每个色度样点的色度细化值(例如,针对每个cb色度样点的cb细化值和针对每个cr色度样点的cr细化值)。示例性菱形滤波器在图11中被示出。ccalf的滤波器系数在aps中被发送,按因子26缩放并舍入以用于定点表示。ccalf的应用可在块级被控制并且针对样点的每个块作为上下文编解码标志(即,ccalf滤波器索引的第一二进制数)被用信号发送。ccalf适用于各种尺寸的块。[0155]如图10中所示,来自sao亮度模块1002的亮度输出可被输入到alf亮度模块1004中并由alf亮度模块1004处理以生成经滤波的亮度样点。sao亮度模块1002的亮度输出也可被用作ccalfcb模块1006和ccalfcr模块1008的输入。ccalfcb模块1006和ccalfcr模块1008可分别基于sao亮度模块1002的亮度输出来生成针对cb色度样点的cb细化值和针对cr色度样点的cr细化值。[0156]alf色度模块1014可从saocb模块1010接收cb输入并从saocr模块1012接收cr输入。alf色度模块1014可分别基于cb输入生成cb输出并基于cr输入生成cr输出。接下来,可将来自alf色度模块1014的cb输出与来自ccalfcb模块1006的cb细化值相加,以生成经滤波的cb色度样点。可将来自alf色度模块1014的cr输出与来自ccalfcr模块1008的cr细化值相加,以生成经滤波的cr色度样点。[0157]在一些实施例中,sao亮度模块1002、saocb模块1010和saocr模块1012中的每一个可由相应sao滤波器实现。alf亮度模块1004和alf色度模块1014中的每一个可由相应自适应环路滤波器实现。例如,alf亮度模块1004可包括亮度自适应环路滤波器。alf色度模块1014可包括用于生成cb输出的cb分量色度自适应环路滤波器和用于生成cr输出的cr分量色度自适应环路滤波器。[0158]图11是示出根据本公开的实施例的在ccalf中使用的示例性菱形滤波器1101和1108的图示。菱形滤波器1101内的多个亮度样点(例如,8个亮度样点)可被用于细化色度样点1102。类似地,菱形滤波器1108内的多个亮度样点(例如,8个亮度样点)可被用于细化色度样点1109。[0159]在ccalf中,可将若干高级信令发送到视频解码器155以指示针对每个分量(例如,亮度分量、cb和cr色度分量)的开/关切换。在vtm中,可在原始字节序列有效负载(rbsp)结尾比特语义中用信号发送alf数据语义,如下表1中所示。[0160]表1:[0161][0162]如下表2中所示,ccalf还在条带级用信号发送针对每个色度分量的启用语义(例如,slice_cross_component_alf_cb_enabled_flag、slice_cross_component_alf_cr_enabled_flag)和参数集索引(例如,slice_cross_component_alf_cb_aps_id、slice_cross_component_alf_cr_aps_id)。启用语义指示ccalf是否被应用于当前条带。参数集索引指示当前条带参考哪个条带。[0163]表2:[0164][0165][0166]对于在ctb级的信令,可用信号发送针对每个色度分量的ccalf滤波器索引(例如,包括针对cb色度分量的alf_ctb_cross_component_cb_idc和针对cr色度分量的alf_ctb_cross_component_cr_idc)以指示哪些ccalf滤波器分别被应用于当前编码树单元的cb和cr色度分量。ccalf滤波器索引可被设置为0以指示ccalf未被应用于当前ctb。如果非零ccalf滤波器索引被用信号发送,则它指示与用信号发送的ccalf滤波器索引对应的ccalf被应用于当前ctb。下表3指示用信号发送ccalf滤波器索引。[0167]表3:[0168][0169][0170]针对ccalf(例如,图10的ccalfcb模块1006和ccalfcr模块1008)的输入可包括(1)被alf亮度模块1004处理之前的重建的亮度样点(recpicturel)、(2)经alf滤波的重建的色度样点(alfpicturec)、和(3)ccalf滤波器系数(ccalfcoeff[j],其中,j=0…7)。ccalf的输出是ccalfpicturec,可基于以下表达式(33)-(38)导出ccalfpicturec:[0171]curr=alfpicturec[xctbc x,yctbc y]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(33)[0172]f[j]=ccalfcoeff[j]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(34)[0173]sum=f[0]*recpicturel[hx,vy ym1] [0174]f[1]*recpicturel[hx xm1,vy] [0175]f[2]*recpicturel[hx,vy] [0176]f[3]*recpicturel[hx xp1,vy] [0177]f[4]*recpicturel[hx xm1,vy yp1] [0178]f[5]*recpicturel[hx,vy yp1] [0179]f[6]*recpicturel[hx xp1,vy yp1] [0180]f[7]*recpicturel[hx,vy yp2]ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(35[0181]sum=clip3(-(1《《(bitdepthc-1)),(1《《(bitdepthc-1))-1,sum)(36[0182][0183]sum=curr (sum 64)》》(7 (bitdepthy-bitdepthc))ꢀꢀꢀꢀꢀꢀꢀꢀꢀ(37[0184]ccalfpicturec[xctbc x][yctbc y]=clip3(0,(1《《bitdepthc)-1,sum).(38[0185][0186]在以上表达式(33)-(38)中,xctbc和yctbc分别表示当前色度ctb的左上方位置的x坐标和y坐标。可如下表4和表5中所示指定ym1、xm1、xp1和yp1的值。cliptoppos、clipbottom、clipleftpos和cliprightpos分别是alf边界的上方、下方、左侧和右侧位置。表4提供了根据垂直亮度样点位置yl、cliptoppos和clipbottompos的ym1、yp1和yp2的规范。表5提供了根据水平亮度样点位置xl、clipleftpos和cliprightpos的xm1和xp1的规范。[0187]表4[0188][0189]表5[0190][0191]本公开的另一方面涉及一种存储指令的非暂态计算机可读介质,该指令在被执行时使一个或更多个处理器执行如上所述的方法。计算机可读介质可包括易失性或非易失性、磁性、基于半导体、基于磁带、光学、可移除、不可移除或者其他类型的计算机可读介质或计算机可读存储设备。例如,计算机可读介质可以是存储有如所公开的计算机指令的存储设备或内存模块。在一些实施例中,计算机可读介质可以是存储有计算机指令的盘或闪存驱动。[0192]将对本领域技术人员显而易见的是,可对所公开的系统和相关方法进行各种修改和改变。考虑所公开的系统和相关方法的说明书和实践,其他实施例对本领域技术人员将是显而易见的。[0193]说明书和示例旨在被认为仅是示例性的,其真实范围由权利要求及其等同物指示。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献