CN116405701A - 图像滤波方法、装置、设备及存储介质 - Google Patents

图像滤波方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116405701A
CN116405701A CN202310430930.XA CN202310430930A CN116405701A CN 116405701 A CN116405701 A CN 116405701A CN 202310430930 A CN202310430930 A CN 202310430930A CN 116405701 A CN116405701 A CN 116405701A
Authority
CN
China
Prior art keywords
filtering
chrominance component
current image
sequence
image block
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
Application number
CN202310430930.XA
Other languages
English (en)
Inventor
常仁杰
王力强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202310430930.XA priority Critical patent/CN116405701A/zh
Publication of CN116405701A publication Critical patent/CN116405701A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请提供了一种图像滤波方法、装置、设备及存储介质,该方法可以应用于图像处理、视频编解码、视频直播等领域,包括:确定当前图像的重建图像;对于重建图像中待滤波的当前图像块,确定当前图像块的色度分量的目标滤波顺序,目标滤波顺序是通过解码码流或基于N种滤波顺序的滤波代价确定的;基于目标滤波顺序,将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到当前图像块的色度滤波块。也就是说,本申请基于N种滤波顺序的滤波代价确定目标滤波顺序,提高了目标滤波顺序的选择准确性,进而提高滤波效果,提升了神经网络滤波器的泛化性,从而提升图像编解码性能。

Description

图像滤波方法、装置、设备及存储介质
技术领域
本申请实施例涉及图像编解码技术领域,尤其涉及一种图像滤波方法、装置、设备及存储介质。
背景技术
随着视频技术的发展,视频数据所包括的数据量较大,为了便于视频数据的传输,视频装置执行视频压缩技术,以使视频数据更加有效的传输或存储。在视频压缩中,编码端和解码端均需要通过反量化、反变换等操作,得到重建图像。由于视频压缩中引入损失,因此通过对重建图像进行滤波,以降低图像的压缩损失。
随着神经网络技术的快速发展,神经网络滤波器在视频处理中得到广泛应用。但是,目前的神经网络滤波器对色度分量进行滤波时,存在泛化性差,滤波效果差的问题。
发明内容
本申请提供一种图像滤波方法、装置、设备及存储介质,提高图像的滤波效果,提升神经网络滤波器的泛化性。
第一方面,本申请提供一种图像滤波方法,包括:
对当前图像的码流进行解码,得到所述当前图像的残差值,并基于残差值,确定所述当前图像的重建图像;
对于所述重建图像中待滤波的当前图像块,确定所述当前图像块的第一色度分量和第二色度分量的目标滤波顺序,所述目标滤波顺序是通过解码码流或基于N种滤波顺序的滤波代价确定的,所述N为大于1的正整数;
基于所述目标滤波顺序,将所述当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到所述当前图像块的色度滤波块。
第二方面,本申请提供一种图像滤波方法,包括:
对当前图像进行编码,得到所述当前图像的重建图像;
对于所述重建图像中待滤波的当前图像块,确定所述当前图像块的第一色度分量和第二色度分量的目标滤波顺序,所述目标滤波顺序是基于N种滤波顺序的滤波代价确定的,所述N为大于1的正整数;
基于所述目标滤波顺序,将所述当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到所述当前图像块的滤波后图像块。
第三方面,本申请提供了一种图像滤波装置,包括:
解码单元,用于对当前图像的码流进行解码,得到所述当前图像的残差值,并基于残差值,确定所述当前图像的重建图像;
顺序确定单元,用于对于所述重建图像中待滤波的当前图像块,确定所述当前图像块的第一色度分量和第二色度分量的目标滤波顺序,所述目标滤波顺序是通过解码码流或基于N种滤波顺序的滤波代价确定的,所述N为大于1的正整数;
滤波单元,用于基于所述目标滤波顺序,将所述当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到所述当前图像块的色度滤波块。
第四方面,本申请提供了一种图像滤波装置,包括:
编码单元,用于对当前图像进行编码,得到所述当前图像的重建图像;
顺序确定单元,用于对于所述重建图像中待滤波的当前图像块,确定所述当前图像块的第一色度分量和第二色度分量的目标滤波顺序,所述目标滤波顺序是基于N种滤波顺序的滤波代价确定的,所述N为大于1的正整数;
滤波单元,用于基于所述目标滤波顺序,将所述当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到所述当前图像块的滤波后图像块。
第五方面,提供了一种解码器,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第一方面或其各实现方式中的方法。
第六方面,提供了一种编码器,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第二方面或其各实现方式中的方法。
第七方面,提供了一种芯片,用于实现上述第一方面至第二方面中任一方面或其各实现方式中的方法。具体地,所述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第八方面,提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第九方面,提供了一种计算机程序产品,包括计算机程序指令,所述计算机程序指令使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
第十方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面至第二方面中任一方面或其各实现方式中的方法。
综上,本申请通过确定当前图像的重建图像;对于重建图像中待滤波的当前图像块,确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序,目标滤波顺序是通过解码码流或基于N种滤波顺序的滤波代价确定的,N为大于1的正整数;基于目标滤波顺序,将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到当前图像块的色度滤波块。也就是说,本申请实施例基于N种滤波顺序的滤波代价确定目标滤波顺序,提高了目标滤波顺序的选择准确性,基于该准确确定的目标滤波顺序将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波时,可以提高滤波效果,进而提升了神经网络滤波器的泛化性,提升图像编解码性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例涉及的一种视频编解码系统的示意性框图;
图2为本申请实施例提供的编码框架的示意图;
图3是本申请实施例提供的解码框架的示意图;
图4为一种编码单元示意图;
图5为一种神经网络滤波器的滤波过程示意图;
图6A为神经网络滤波器的一种色度训练顺序示意图;
图6B为神经网络滤波器的一种滤波顺序示意图;
图7为本申请一实施例提供的图像滤波方法的流程示意图;
图8A至图8C为当前图像块的示意图;
图9为当前图像块的周围已滤波区域一种示意图;
图10为一种目标滤波顺序的确定示意图;
图11A至图12B为目标滤波顺序的确定示意图;
图13为本申请一实施例提供的图像滤波方法的流程示意图;
图14为一种目标滤波顺序的确定示意图;
图15A和图15B为目标滤波顺序的确定示意图;
图16是本申请一实施例提供的图像滤波装置的示意性框图;
图17是本申请一实施例提供的图像滤波装置的示意性框图;
图18是本申请实施例提供的电子设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。在本发明实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。
本申请可应用于图像编解码领域、视频编解码领域、硬件视频编解码领域、专用电路视频编解码领域、实时视频编解码领域等。例如,本申请的方案可结合至基于深度学习的端到端的图像编码的标准,例如JPEG AI中。或者,本申请的方案可结合至其它专属或行业标准而操作,所述标准包含ITU-TH.261、ISO/IECMPEG-1Visual、ITU-TH.262或ISO/IECMPEG-2Visual、ITU-TH.263、ISO/IECMPEG-4Visual,ITU-TH.264(还称为ISO/IECMPEG-4AVC),包含可分级视频编解码(SVC)及多视图视频编解码(MVC)扩展。应理解,本申请的技术不限于任何特定编解码标准或技术。
为了便于理解,首先结合图1对本申请实施例涉及的视频编解码系统进行介绍。
图1为本申请实施例涉及的一种视频编解码系统的示意性框图。需要说明的是,图1只是一种示例,本申请实施例的视频编解码系统包括但不限于图1所示。如图1所示,该视频编解码系统100包含编码设备110和解码设备120。其中编码设备用于对视频数据进行编码(可以理解成压缩)产生码流,并将码流传输给解码设备。解码设备对编码设备编码产生的码流进行解码,得到解码后的视频数据。
本申请实施例的编码设备110可以理解为具有视频编码功能的设备,解码设备120可以理解为具有视频解码功能的设备,即本申请实施例对编码设备110和解码设备120包括更广泛的装置,例如包含智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机等。
在一些实施例中,编码设备110可以经由信道130将编码后的视频数据(如码流)传输给解码设备120。信道130可以包括能够将编码后的视频数据从编码设备110传输到解码设备120的一个或多个媒体和/或装置。
在一个实例中,信道130包括使编码设备110能够实时地将编码后的视频数据直接发射到解码设备120的一个或多个通信媒体。在此实例中,编码设备110可根据通信标准来调制编码后的视频数据,且将调制后的视频数据发射到解码设备120。其中通信媒体包含无线通信媒体,例如射频频谱,可选的,通信媒体还可以包含有线通信媒体,例如一根或多根物理传输线。
在另一实例中,信道130包括存储介质,该存储介质可以存储编码设备110编码后的视频数据。存储介质包含多种本地存取式数据存储介质,例如光盘、DVD、快闪存储器等。在该实例中,解码设备120可从该存储介质中获取编码后的视频数据。
在另一实例中,信道130可包含存储服务器,该存储服务器可以存储编码设备110编码后的视频数据。在此实例中,解码设备120可以从该存储服务器中下载存储的编码后的视频数据。可选的,该存储服务器可以存储编码后的视频数据且可以将该编码后的视频数据发射到解码设备120,例如web服务器(例如,用于网站)、文件传送协议(FTP)服务器等。
一些实施例中,编码设备110包含视频编码器112及输出接口113。其中,输出接口113可以包含调制器/解调器(调制解调器)和/或发射器。
在一些实施例中,编码设备110除了包括视频编码器112和输入接口113外,还可以包括视频源111。
视频源111可包含视频采集装置(例如,视频相机)、视频存档、视频输入接口、计算机图形系统中的至少一个,其中,视频输入接口用于从视频内容提供者处接收视频数据,计算机图形系统用于产生视频数据。
视频编码器112对来自视频源111的视频数据进行编码,产生码流。视频数据可包括一个或多个图像(picture)或图像序列(sequence of pictures)。码流以比特流的形式包含了图像或图像序列的编码信息。编码信息可以包含编码图像数据及相关联数据。相关联数据可包含序列参数集(sequence parameter set,简称SPS)、图像参数集(pictureparameter set,简称PPS)及其它语法结构。SPS可含有应用于一个或多个序列的参数。PPS可含有应用于一个或多个图像的参数。语法结构是指码流中以指定次序排列的零个或多个语法元素的集合。
视频编码器112经由输出接口113将编码后的视频数据直接传输到解码设备120。编码后的视频数据还可存储于存储介质或存储服务器上,以供解码设备120后续读取。
在一些实施例中,解码设备120包含输入接口121和视频解码器122。
在一些实施例中,解码设备120除包括输入接口121和视频解码器122外,还可以包括显示装置123。
其中,输入接口121包含接收器及/或调制解调器。输入接口121可通过信道130接收编码后的视频数据。
视频解码器122用于对编码后的视频数据进行解码,得到解码后的视频数据,并将解码后的视频数据传输至显示装置123。
显示装置123显示解码后的视频数据。显示装置123可与解码设备120整合或在解码设备120外部。显示装置123可包括多种显示装置,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。
此外,图1仅为实例,本申请实施例的技术方案不限于图1,例如本申请的技术还可以应用于单侧的视频编码或单侧的视频解码。
下面对本申请实施例涉及的视频编码框架进行介绍。
图2是本申请实施例涉及的视频编码器的示意性框图。应理解,该视频编码器200可用于对图像进行有损压缩(lossy compression),也可用于对图像进行无损压缩(lossless compression)。该无损压缩可以是视觉无损压缩(visually losslesscompression),也可以是数学无损压缩(mathematically lossless compression)。
该视频编码器200可应用于亮度色度(YCbCr,YUV)格式的图像数据上。例如,YUV比例可以为4:2:0、4:2:2或者4:4:4,Y表示明亮度(Luma),Cb(U)表示蓝色色度,Cr(V)表示红色色度,U和V表示为色度(Chroma)用于描述色彩及饱和度。例如,在颜色格式上,4:2:0表示每4个像素有4个亮度分量,2个色度分量(YYYYCbCr),4:2:2表示每4个像素有4个亮度分量,4个色度分量(YYYYCbCrCbCr),4:4:4表示全像素显示(YYYYCbCrCbCrCbCrCbCr)。
例如,该视频编码器200读取视频数据,针对视频数据中的每帧图像,将一帧图像划分成若干个编码树单元(coding tree unit,CTU),在一些例子中,CTU可被称作“树型块”、“最大编码单元”(Largest Coding unit,简称LCU)或“编码树型块”(coding treeblock,简称CTB)。每一个CTU可以与图像内的具有相等大小的像素块相关联。每一像素可对应一个亮度(luminance或luma)采样及两个色度(chrominance或chroma)采样。因此,每一个CTU可与一个亮度采样块及两个色度采样块相关联。一个CTU大小例如为128×128、64×64、32×32等。一个CTU又可以继续被划分成若干个编码单元(Coding Unit,CU)进行编码,CU可以为矩形块也可以为方形块。CU可以进一步划分为预测单元(prediction Unit,简称PU)和变换单元(transform unit,简称TU),进而使得编码、预测、变换分离,处理的时候更灵活。在一种示例中,CTU以四叉树方式划分为CU,CU以四叉树方式划分为TU、PU。
视频编码器及视频解码器可支持各种PU大小。假定特定CU的大小为2N×2N,视频编码器及视频解码器可支持2N×2N或N×N的PU大小以用于帧内预测,且支持2N×2N、2N×N、N×2N、N×N或类似大小的对称PU以用于帧间预测。视频编码器及视频解码器还可支持2N×nU、2N×nD、nL×2N及nR×2N的不对称PU以用于帧间预测。
在一些实施例中,如图2所示,该视频编码器200可包括:预测单元210、残差单元220、变换/量化单元230、反变换/量化单元240、重建单元250、环路滤波单元260、解码图像缓存270和熵编码单元280。需要说明的是,视频编码器200可包含更多、更少或不同的功能组件。
可选的,在本申请中,当前块(current block)可以称为当前编码单元(CU)或当前预测单元(PU)等。预测块也可称为预测图像块或图像预测块,重建图像块也可称为重建块或图像重建图像块。
在一些实施例中,预测单元210包括帧间预测单元211和帧内预测单元212。由于视频的一个帧中的相邻像素之间存在很强的相关性,在视频编解码技术中使用帧内预测的方法消除相邻像素之间的空间冗余。由于视频中的相邻帧之间存在着很强的相似性,在视频编解码技术中使用帧间预测方法消除相邻帧之间的时间冗余,从而提高编码效率。
帧间预测单元211可用于帧间预测,帧间预测可以包括运动估计(motionestimation)和运动补偿(motion compensation)。运动估计可搜索参考图片的列表中的参考图片以查找待编码图像块的参考块。运动估计可产生指示该参考块的索引,及指示待编码图像块与该参考块之间的空间位移的运动向量。运动估计可将参考块的索引及该运动向量作为该待编码图像块的运动信息而输出。运动补偿可基于该待编码图像块的运动信息得到该待编码图像块的预测信息。帧间预测可以参考不同帧的图像信息,帧间预测使用运动信息从参考帧中找到参考块,根据参考块生成预测块,用于消除时间冗余;帧间预测所使用的帧可以为P帧和/或B帧,P帧指的是向前预测帧,B帧指的是双向预测帧。帧间预测使用运动信息从参考帧中找到参考块,根据参考块生成预测块。运动信息包括参考帧所在的参考帧列表,参考帧索引,以及运动矢量。运动矢量可以是整像素的或者是分像素的,如果运动矢量是分像素的,那么需要在参考帧中使用插值滤波做出所需的分像素的块,这里把根据运动矢量找到的参考帧中的整像素或者分像素的块叫参考块。有的技术会直接把参考块作为预测块,有的技术会在参考块的基础上再处理生成预测块。在参考块的基础上再处理生成预测块也可以理解为把参考块作为预测块然后再在预测块的基础上处理生成新的预测块。
帧内预测单元212只参考同一帧图像的信息,预测当前编码图像块内的像素信息,用于消除空间冗余。帧内预测所使用的帧可以为I帧。
帧内预测有多种预测模式,以国际数字视频编码标准H系列为例,H.264/AVC标准有8种角度预测模式和1种非角度预测模式,H.265/HEVC扩展到33种角度预测模式和2种非角度预测模式。HEVC使用的帧内预测模式有平面模式(Planar)、DC和33种角度模式,共35种预测模式。VVC使用的帧内模式有Planar、DC和65种角度模式,共67种预测模式。
需要说明的是,随着角度模式的增加,帧内预测将会更加精确,也更加符合对高清以及超高清数字视频发展的需求。
残差单元220可基于CU的像素块及CU的PU的预测块来产生CU的残差块。举例来说,残差单元220可产生CU的残差块,使得残差块中的每一采样具有等于以下两者之间的差的值:CU的像素块中的采样,及CU的PU的预测块中的对应采样。
变换/量化单元230可量化变换系数。变换/量化单元230可基于与CU相关联的量化参数(QP)值来量化与CU的TU相关联的变换系数。视频编码器200可通过调整与CU相关联的QP值来调整应用于与CU相关联的变换系数的量化程度。示例性的,残差视频信号经过DFT,DCT等变换操作,将信号转换到变换域中,称之为变换系数。在变换域中的信号,进一步的进行有损的量化操作,丢失掉一定的信息,使得量化后的信号有利于压缩表达。在一些视频编码标准中,可能有多于一种变换方式可以选择,因此,编码端也需要为当前编码CU选择其中的一种变换,并告知解码端。量化的精细程度通常由量化参数(QP)来决定,QP取值较大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。
反变换/量化单元240可分别将逆量化及逆变换应用于量化后的变换系数,以从量化后的变换系数重建残差块。
重建单元250可将重建后的残差块的采样加到预测单元210产生的一个或多个预测块的对应采样,以产生与TU相关联的重建图像块。通过此方式重建CU的每一个TU的采样块,视频编码器200可重建CU的像素块。
环路滤波单元260用于对反变换与反量化后的像素进行处理,弥补失真信息,为后续编码像素提供更好的参考,例如可执行去方块滤波操作以减少与CU相关联的像素块的块效应。由上述可知,已经编码过的图像,经过反量化,反变换及预测补偿的操作,可获得重建的解码图像。重建图像与原始图像相比,由于存在量化的影响,部分信息与原始图像有所不同,产生失真(Distortion)。对重建图像进行滤波操作,例如去块效应滤波DBF(deblockingfilter),SAO(sample adaptive offset)或者ALF(adaptive loop filter)等滤波器,可以有效的降低量化所产生的失真程度。由于这些经过滤波后的重建图像,将作为后续编码图像的参考,用于对将来的信号进行预测,所以上述的滤波操作也被称为环路滤波,及在编码环路内的滤波操作
解码图像缓存270可存储重建后的像素块。帧间预测单元211可使用含有重建后的像素块的参考图像来对其它图像的PU执行帧间预测。另外,帧内预测单元212可使用解码图像缓存270中的重建后的像素块来对在与CU相同的图像中的其它PU执行帧内预测。
熵编码单元280可接收来自变换/量化单元230的量化后的变换系数。熵编码单元280可对量化后的变换系数执行一个或多个熵编码操作以产生熵编码后的数据。示例性的,量化后的变换域信号,将根据各个值出现的频率,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。同时,编码产生其他信息,例如选择的模式,运动矢量等,也需要进行熵编码以降低码率。在一种示例中,可以使用统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常见的统计编码方式有变长编码(VLC,Variable LengthCoding)或者基于上下文的二值化算术编码(CABAC,Content Adaptive BinaryArithmetic Coding)。
图3是本申请实施例涉及的视频解码器的示意性框图。
如图3所示,视频解码器300包含:熵解码单元310、预测单元320、反量化/变换单元330、重建单元340、环路滤波单元350及解码图像缓存360。需要说明的是,视频解码器300可包含更多、更少或不同的功能组件。
视频解码器300可接收码流。熵解码单元310可解析码流以从码流提取语法元素。作为解析码流的一部分,熵解码单元310可解析码流中的经熵编码后的语法元素。预测单元320、反量化/变换单元330、重建单元340及环路滤波单元350可根据从码流中提取的语法元素来解码视频数据,即产生解码后的视频数据。
在一些实施例中,预测单元320包括帧内预测单元322和帧间预测单元321。
帧内预测单元322可执行帧内预测以产生PU的预测块。帧内预测单元322可使用帧内预测模式以基于空间相邻PU的像素块来产生PU的预测块。帧内预测单元322还可根据从码流解析的一个或多个语法元素来确定PU的帧内预测模式。
帧间预测单元321可根据从码流解析的语法元素来构造第一参考图像列表(列表0)及第二参考图像列表(列表1)。此外,如果PU使用帧间预测编码,则熵解码单元310可解析PU的运动信息。帧间预测单元321可根据PU的运动信息来确定PU的一个或多个参考块。帧间预测单元321可根据PU的一个或多个参考块来产生PU的预测块。
反量化/变换单元330可逆量化(即,解量化)与TU相关联的变换系数。反量化/变换单元330可使用与TU的CU相关联的QP值来确定量化程度。
在逆量化变换系数之后,反量化/变换单元330可将一个或多个逆变换应用于逆量化变换系数,以便产生与TU相关联的残差块。
重建单元340使用与CU的TU相关联的残差块及CU的PU的预测块以重建CU的像素块。例如,重建单元340可将残差块的采样加到预测块的对应采样以重建CU的像素块,得到重建图像块。
环路滤波单元350可执行去方块滤波操作以减少与CU相关联的像素块的块效应。
视频解码器300可将CU的重建图像存储于解码图像缓存360中。视频解码器300可将解码图像缓存360中的重建图像作为参考图像用于后续预测,或者,将重建图像传输给显示装置呈现。
视频编解码的基本流程如下:在编码端,将一帧图像划分成块,针对当前块,预测单元210使用帧内预测或帧间预测产生当前块的预测块。残差单元220可基于预测块与当前块的原始块计算残差块,即预测块和当前块的原始块的差值,该残差块也可称为残差信息。该残差块经由变换/量化单元230变换与量化等过程,可以去除人眼不敏感的信息,以消除视觉冗余。可选的,经过变换/量化单元230变换与量化之前的残差块可称为时域残差块,经过变换/量化单元230变换与量化之后的时域残差块可称为频率残差块或频域残差块。熵编码单元280接收到变化量化单元230输出的量化后的变化系数,可对该量化后的变化系数进行熵编码,输出码流。例如,熵编码单元280可根据目标上下文模型以及二进制码流的概率信息消除字符冗余。
在解码端,熵解码单元310可解析码流得到当前块的预测信息、量化系数矩阵等,预测单元320基于预测信息对当前块使用帧内预测或帧间预测产生当前块的预测块。反量化/变换单元330使用从码流得到的量化系数矩阵,对量化系数矩阵进行反量化、反变换得到残差块。重建单元340将预测块和残差块相加得到重建块。重建块组成重建图像,环路滤波单元350基于图像或基于块对重建图像进行环路滤波,得到解码图像。编码端同样需要和解码端类似的操作获得解码图像。该解码图像也可以称为重建图像,重建图像可以为后续的帧作为帧间预测的参考帧。
需要说明的是,编码端确定的块划分信息,以及预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息等在必要时携带在码流中。解码端通过解析码流及根据已有信息进行分析确定与编码端相同的块划分信息,预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息,从而保证编码端获得的解码图像和解码端获得的解码图像相同。
上述是基于块的混合编码框架下的视频编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本申请适用于该基于块的混合编码框架下的视频编解码器的基本流程,但不限于该框架及流程。
在现有的混合编码框架中,视频中的每帧图像往往会先被分割成一定大小的单元,再进行后续的编解码流程。如图4所示,最大编码单元(CTU)是混合编码框架中基础的编码单位,其通常包含亮度Y和色度UV两部分。由于色度中的U分量和V分量特性较为接近,通常使用相同的编码参数按照先U后V的顺序依次处理,并对应得到U和V的编码结果。
现有的混合编码框架使用了传统的环路滤波器来抑制重建图像失真,提高重建图像质量,并期望将编码的重建图像恢复成原始图像。然而,传统的环路滤波器是基于手工设计的,难以有效地减少重建图像失真,存在较大的优化空间。由于深度学习工具在图像处理方面的卓越表现,基于深度学习的环路滤波器被应用于环路滤波器模块。
本申请涉及的主要技术是基于神经网络的滤波器(Neural Network LoopFilter,NNLF)。如图5所示,将滤波前的待滤波图像输入到训练好的滤波器,就可以得到滤波后的增强图像。
在训练过程中,神经网络通常使用损失函数来约束滤波后图像,使其尽可能地恢复成原始图像。损失函数是衡量滤波后的值与真实值的差异,损失值loss越大,表示差异越大,而训练的目标就是要减小loss。对于基于深度学习的编码工具,示例性的,常用的损失函数有:L1范数损失函数、L2范数损失函数和smooth L1损失函数。
在神经网络滤波器的训练过程中,往往以最大编码单元为单位输入色度的UV分量,并对应输出U分量和V分量的滤波结果。然后,使用损失函数分别约束U分量和V分量的滤波结果,促使其恢复成原始图像。等到训练过程结束,固定神经网络滤波器的参数。为了保持训练和测试的一致性,神经网络滤波器的测试过程通常采用和训练过程一样的色度滤波顺序。示例性的,如图6A所示,在神经网络滤波器训练过程中,先将最大编码单元的U分量输入神经网络滤波器,再将最大编码单元的V分量输入神经网络滤波器,得到最大编码单元U分量的滤波后的值和最大编码单元V分量的滤波后的值。接着,基于最大编码单元U分量的滤波后的值和最大编码单元U分量的原始值,确定U分量的损失,以及基于最大编码单元V分量的滤波后的值和最大编码单元V分量的原始值,确定V分量的损失。最后,基于U分量的损失和V分量的损失,对神经网络滤波器的参数进行调整,实现对神经网络滤波器的训练。对应的,如图6B所示,在神经网络滤波器测试过程中,也是先将最大编码单元的U分量输入神经网络滤波器,再将最大编码单元的V分量输入神经网络滤波器进行滤波,得到最大编码单元U分量的滤波后的值和最大编码单元V分量的滤波后的值。
但是,由于色度中U分量和V分量的自身特性较为相近,神经网络滤波器对色度分量滤波的学习存在一定相似性。严格规定测试过程中的色度滤波顺序与训练过程保持一致,可能限制了神经网络滤波器的泛化性,存在优化空间。
为了解决上述技术问题,本申请实施例在对当前图像进行解码时,首先确定当前图像的重建图像,对于重建图像中待滤波的当前图像块,确定该当前图像块的第一色度分量和第二色度分量的目标滤波顺序,其中目标滤波顺序是基于N种滤波顺序的滤波代价确定的,N为大于1的正整数;接着,基于该目标滤波顺序,将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到当前图像块的滤波后图像块。也就是说,在本申请实施例中,当前图像块的第一色度分量和第二色度分量输入神经网络滤波器的目标滤波顺序是基于N种滤波顺序的滤波代价确定的,而不是默认使用训练顺序,这样可以提高目标滤波顺序的选择准确性,基于准确确定的目标滤波顺序将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波时,可以提高滤波效果,进而提升了神经网络滤波器的泛化性,提升解码性能。
下面通过一些实施例对本申请实施例的技术方案进行详细说明。下面这几个实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
首先以解码端为例,对本申请实施例提供的图像滤波方法进行介绍。
图7为本申请一实施例提供的图像滤波方法的流程示意图,本申请实施例应用于图1或图3所示的解码器或解码设备。如图7所示,本申请实施例的方法包括:
S101、对当前图像的码流进行解码,得到当前图像的残差值,并基于残差值,确定当前图像的重建图像。
在本申请实施例中,编码端在对当前图像进行编码时,将当前图像划分为编码块,以编码块为编码单元进行逐块编码。例如,对于当前图像中待编码的当前块,首先通过帧间和/或帧内预测方式,得到当前块的预测值。接着,基于当前块的预测值和当前块,得到当前块的残差值。编码端对当前块的残差值进行变换,得到变换系数。在一种示例中,编码端对当前块的变换系数不进行量化,直接对变换系数进行编码,得到码流。另一种示例中,编码端对当前块的变换系数进行量化,得到量化系数,再对量化系数进行编码,得到码流。
在编码过程中,如图2所示,编码端还对变换系数进行反变换,得到残差值,并将残差值和预测值进行相加,得到当前块的重建值。基于上述步骤,可以得到当前图像中每一个编码块的重建值,这些重建值构成当前图像的重建图像。接着,为了进一步提高重建图像的质量,则对该重建图像进行滤波,得到当前图像的解码图像。在一种示例中,可以将该解码图像存放在解码缓存中,用于后续图像的预测。
如图3所示,针对当前图像中的每一个待解码块,例如当前块,解码端获得码流后,解码码流,得到当前块的变换系数。在一种示例中,若编码端对变换系数进行量化后再编码,得到解码端解码码流,得到当前块的量化系数,再对量化系数进行反量化,得到当前图像的变换系数。接着,解码端对当前块的变换系数进行反变换,得到当前块的残差值。同时,解码端采用帧间和/或帧内预测方式,预测得到当前块的预测值。这样,将当前块的预测值和残差值相加,得到当前块的重建值。解码端基于上述步骤,可以解码确定出当前图像中每一个待解码块的重建值,这些重建值构成当前图像的重建图像。接着,为了进一步提高重建图像的质量,则解码端对该重建图像进行滤波,得到当前图像的解码图像。在一种示例中,解码端可以将该解码图像存放在解码缓存中,用于后续图像的预测。在一种示例中,解码端可以将解码图像输出到显示设备进行显示。
在一些实施例中,本申请实施例提出的图像滤波方法可以用于对视频中的至少一帧图像进行滤波。即上述当前图像为视频中的一张图像。
在一些实施例中,本申请实施例提出的图像滤波方法可以用于对单张图像进行解码。即上述当前图像为单独的一张图像,例如为电子设备生成的一张图像。
解码端基于上述步骤,得到当前图像的重建图像后,执行如下S102的步骤。
S102、对于重建图像中待滤波的当前图像块,确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序。
其中,目标滤波顺序是通过解码码流或基于N种滤波顺序的滤波代价确定的,N为大于1的正整数。
在本申请实施例中,为了提高重建图像的质量,则对重建图像进行滤波。具体的,使用神经网络滤波器对重建图像进行滤波。在对重建图像进行滤波时,将重建图像划分为至少一个图像块,对每一个图像块分别进行滤波。其中,解码端使用神经网络滤波器对重建图像中的每一个图像块进行滤波的过程基本一致。为了便于描述,在此以对重建图像中的当前图像块进行滤波为例进行说明。
需要说明的是,本申请实施例对上述当前图像块的大小和形状不做限制。
在一种可能的实现方式中,上述待滤波的当前图像块为重建图像的至少一个CTU。也就是说,将重建图像的至少一个CTU划分为一个图像块输入神经网络滤波器中进行滤波。
在一些示例中,如图8A所示,当前图像块为重建图像的一个CTU,即将重建图像的一个CTU作为一个神经网络滤波器的输入图像块。
在另一种示例中,如图8B所示,当前图像块为重建图像的4个CTU,即将重建图像的4个CTU作为一个神经网络滤波器的输入图像块。
在一种示例中,还可以将重建图像的2个CTU或3个CTU等多个CTU作为一个神经网络滤波器的输入图像块。这多个CTU可以为水平方向上的多个CTU,或者为竖直方向上的多个CTU。可选的,这多个CTU可以相邻,或者不相邻,或者部分相邻,部分不相邻。
在另一种可能的实现方式中,上述待滤波的当前图像块为重建图像的预设图像区域。即,将重建图像的一个预设图像区域作为一个神经网络滤波器的输入图像块。
本申请实施例对该预设图像区域的具体形状和大小不做限制。
在一种示例,如图8C所示,预设图像区域包括重建图像的至少一个残缺数量的CTU,即作将重建图像的至少一个残缺数量的CTU作为神经网络滤波器的输入图像块。
在一些实施例中,上述预设图像区域为固定区域,例如,在每一次滤波时,按照该预设图像区域,得到重建图像中当前待滤波的图像块,并将该图像块作为神经网络滤波器的输入图像块。此时,每一次向神经网络滤波器输入的图像块的大小和形状相同,均为预设图像区域。
在一些实施例中,上述预设图像区域为变化值。例如,在第一次滤波时,按照第一个预设图像区域,得到重建图像中待滤波的一个图像块,作为输入图像块输入神经网络滤波器中进行滤波。在第二次滤波时,按照第二个预设图像区域,得到重建图像中待滤波的一个图像块,作为输入图像块输入神经网络滤波器中进行滤波,依次类推。在该实施例的一种示例中,解码端可以将重建图像划分为若干个待滤波的图像块,这若干个待滤波的图像块的形状和大小可以相同,也可以不同,或者部分相同,部分不同。
解码端基于上述步骤,确定出重建图像中待滤波的当前图像块后,使用神经网络滤波器对该当前图像块进行滤波。
当前图像块包括亮度分量和色度分量,色度分量包括U分量和V分量。由于色度中的U分量和V分量特性较为接近,通常使用同一种神经网络滤波器进行滤波。
由上述可知,目前在对色度分量进行滤波时,色度分量的滤波顺序固定,通常与神经网络滤波器训练时的色度分量输入顺序一致。例如,在训练时,按照U分量在前V分量在后的顺序,将U分量和V分量输入神经网络滤波器中,对神经网络滤波器进行训练。这样在实际滤波过程中,也是按照U分量在前V分量在后的滤波顺序将U分量和V分量输入神经网络滤波器中进行滤波。但是,这样将色度分量的滤波顺序与训练顺序保持一致进行滤波时,会导致滤波效果差,降低神经网络滤波器的泛化性的问题。
为了解决该技术问题,本申请实施例在对当前图像块的色度分量进行滤波时,首先确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序,该目标滤波顺序是基于N种滤波顺序的滤波代价确定的,可以提高该目标滤波顺序的确定准确性,这样基于该准确确定的目标滤波顺序,对当前图像块的色度分量进行滤波时,可以有效提高色度分量的滤波效果,进而提升神经网络滤波器的泛化性。
本申请实施例的滤波代价包括计算代价和失真代价中的至少一个。也就是说,在一些实施例中,本申请实施例的滤波顺序的滤波代价包括该滤波顺序的计算代价,例如计算时间和/或计算复杂度越高时,表示计算代价越大。在一些实施例中,本申请实施例的滤波顺序的滤波代价包括该滤波顺序的失真代价,例如失真度越高时,表示失真代价越大。在一些实施例中,本申请实施例的滤波顺序的滤波代价包括该滤波顺序的计算代价和失真代价,例如失真代价和计算代价之和越高时,表示滤波代价越大。
下面对解码端确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序的具体过程进行介绍。
在本申请实施例中,解码端确定目标滤波顺序的具体方式包括但不限于如下几种:
方式一,解码端通过解码码流,得到目标滤波顺序。此时,上述S102中确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序包括如下S102-A1和S102-A2的步骤:
S102-A1、解码码流,得到第一信息,第一信息用于指示目标滤波顺序;
S102-A2、基于第一信息,得到目标滤波顺序。
在该方式一中,编码端确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序,接着在码流中写入第一信息,通过该第一信息指示目标滤波顺序。这样,解码端通过解码码流,得到第一信息,进而基于该第一信息,得到目标滤波顺序。
本申请实施例对第一信息的具体表现形式不做限制,只要是可以指示目标滤波顺序的任意语法字段均可。
在一些实施例中,上述第一信息包括第一标志,通过该第一标志的不同取值来指示目标滤波顺序。
示例性的,第一标志的取值与色度分量的滤波顺序的对应关系如表1所示:
表1
第一标志的取值 滤波顺序
A1 U在前V在后
A2 V在前U在后
…… ……
本申请实施例对上述A1和A2等的具体取值不做限制,例如A1等于0,A2等于1,或者A1等于1,A2等于0等。
本申请实施例对色度分量的滤波顺序的具体类型不做限制。例如,除了上述表1所示的U在前V在后和V在前U在后这两种滤波顺序外,还可以至少包括如下几种:
示例1,色度分量的滤波顺序包括:将U分量划分为多个子U分量,这多个子U分量与V分量组成多种滤波顺序。
例如,将U分量划分为第一子U分量和第二子U分量。这样第一子U分量和第二子U分量和V分量组成的滤波顺序包括:先第一子U分量再V分量后第二子U分量,先第二子U分量再V分量后第一子U分量,先第二子U分量再第一子U分量后V分量,先V分量再第二子U分量后第一子U分量,等等。
示例2,色度分量的滤波顺序包括:将V分量划分为多个子V分量,这多个子V分量与U分量组成多种滤波顺序。
例如,将V分量划分为第一子V分量和第二子V分量。这样第一子V分量和第二子V分量和U分量组成的滤波顺序包括:先第一子V分量再U分量后第二子V分量,先第二子V分量再U分量后第一子V分量,先第二子V分量再第一子V分量后U分量,先U分量再第二子V分量后第一子V分量,等等。
示例3,色度分量的滤波顺序包括:将U分量划分为多个子U分量,且将V分量划分为多个子V分量,这多个子U分量和多个子V分量组成多种滤波顺序。
例如,将U分量划分为第一子U分量和第二子U分量,将V分量划分为第一子V分量和第二子V分量。这样第一子U分量和第二子U分量,以及第一子V分量和第二子V分量组成的滤波顺序包括:先第一子U分量再第一子V分量再第二子U分量后第二子V分量,先第一子V分量再第一子U分量再第二子V分量后第二子U分量,先第二子V分量再第一子U分量再第一子V分量后第二子U分量,等等。
在该方式一中,编码端可以基于上述表1,确定目标滤波顺序对应的第一标志的取值,进而将该第一标志置为该取值后,写入码流。这样解码端通过解码码流,得到该第一标志,进而根据该第一标志的取值,通过查询上述表1,得到当前图像块的第一色度分量和第二色度分量的目标滤波顺序。
在一种示例中,假设第一色度分量为U分量,第二色度分量为V分量,若编码端确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序为第一色度分量在前第二色度分量在后,基于上述表1,可以确定第一标志的取值为A1,进而将第一标志置为A1后写入码流。这样,解码端解码码流,得到第一标志,进而基于该第一标志的取值,通过查上述表1,确定出当前图像块的第一色度分量和第二色度分量的目标滤波顺序为第一色度分量在前第二色度分量在后。
在另一种示例中,假设第一色度分量为U分量,第二色度分量为V分量,若编码端确定当前图像块的第一色度分量和第二色度分量输入神经网络滤波器的目标滤波顺序为第二色度分量在前第一色度分量在后,基于上述表1,可以确定第一标志的取值为A2,进而将第一标志置为A2后写入码流。这样,解码端解码码流,得到第一标志,进而基于该第一标志的取值,通过查上述表1,确定出当前图像块的第一色度分量和第二色度分量的目标滤波顺序为第二色度分量在前第一色度分量在后。
在一些实施例中,上述滤波代价包括第一滤波代价,上述目标滤波顺序是基于N种滤波顺序中每一种滤波顺序的第一滤波代价确定的,其中滤波顺序的第一滤波代价是按照该滤波顺序,将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波时确定的滤波代价。
也就是说,在该实施例中,编码端对于N种滤波顺序中的每一种滤波顺序,按照该滤波顺序将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,并确定该滤波顺序对应的滤波代价,将该滤波代价记为第一滤波代价。本申请实施例对上述N种滤波顺序的具体类型不做限制,例如N种滤波顺序包括上述表1所示的各种滤波顺序的部分或全部。
示例性的,对于N种滤波顺序中的第j种滤波顺序,编码端按照该第j种滤波顺序,将当前图像块的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,得到该当前图像块的第一色度分量的滤波后的值,以及第二色度分量的滤波后的值。为了便于描述,将该当前图像块的色度分量的滤波后的值,记为第j个滤波后的值,此时,第j个滤波后的值包括第j种滤波顺序下,当前图像块的第一色度分量的滤波后的值,以及第二色度分量的滤波后的值。
接着,编码端基于当前图像块的第j个滤波后的值和当前图像块的原始图像块,确定第j种滤波顺序对应的第一滤波代价。例如,基于第j种滤波顺序下,当前图像块的第一色度分量的滤波后的值和当前图像块的原始图像块的第一色度分量,以及当前图像块的第二色度分量的滤波后的值和当前图像块的原始图像块的第二色度分量,确定第j种滤波顺序对应的第一滤波代价。
本申请实施例对上述第一滤波代价的具体计算方式不做限制,例如上述第一滤波代价可以为率失真代价(RDO),还可以是近似代价,例如SSD、STAD或SAD等。
基于上述步骤,编码端可以确定出N种滤波顺序中的每一种滤波顺序对应的第一滤波代价,进而基于每一个滤波顺序对应的第一滤波代价,从N种滤波顺序中,确定出目标滤波顺序。
在一些实施例中,上述目标滤波顺序为N种滤波顺序中第一滤波代价最小的一种滤波顺序。也就是说,编码端将N种滤波顺序中第一滤波代价最小的一种滤波顺序,确定为当前图像块的色度分量的目标滤波顺序,进而将该目标滤波顺序指示给解码端。
由上述可知,在该方式一中,解码端通过解码码流,可以快速得到当前图像块的第一色度分量和第二色度分量的目标滤波顺序,进而可以提升图像的滤波速度。
解码端除了采用上述方式一所述的方法确定出目标滤波顺序外,还可以采用如下方式二的方法,确定出目标滤波顺序。
方式二,解码端自行确定目标滤波顺序。此时,上述S102中确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序包括如下S102-B1至S102-B3的步骤:
S102-B1、确定当前图像块的周围已滤波区域;
S102-B2、对于N种滤波顺序中的第i种滤波顺序,按照第i种滤波顺序,将周围已滤波区域的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,确定周围已滤波区域在第i种滤波顺序下的第i个第二滤波代价,i为小于或等于N的正整数;
S102-B3、基于N种滤波顺序分别对应的第二滤波代价,从N种滤波顺序中,确定目标滤波顺序。
在该方式二中,解码端基于当前图像块的周围已滤波区域,来从N种滤波顺序中,确定出目标滤波顺序。
本申请实施例对当前图像块的周围已滤波区域的大小和形状不做限制。
在一些实施例中,当前图像块的周围已滤波区域为当前图像块周围与当前图像块相邻的已滤波区域。
在一些实施例中,如图9所示,当前图像块的周围已滤波区域包括当前图像块的上方已滤波区域和左侧已滤波区域。
在一些实施例中,当前图像块的周围已滤波区域包括当前图像的模板区域。
解码端在当前图像中确定出当前图像块的周围已滤波区域后,执行上述S102-B2的步骤,按照N种滤波顺序中的每一种滤波顺序,将周围已滤波区域的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,确定这N种滤波顺序中的每一种滤波顺序对应的滤波代价,将该滤波代价记为第二滤波代价。在该实施例中,解码端确定N种滤波顺序中的每一种滤波顺序对应的第二滤波代价的具体过程基本一致,以N种滤波顺序中的第i种滤波顺序为例进行说明。即按照第i种滤波顺序,将周围已滤波区域的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,确定周围已滤波区域在第i种滤波顺序下的第i个第二滤波代价。
本申请实施例对确定周围已滤波区域在第i种滤波顺序下的第i个第二滤波代价的具体方式不做限制。
在一种可能的实现方式中,解码端按照第i种滤波顺序,将周围已滤波区域的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,得到周围已滤波区域的第一色度分量在该第i种滤波顺序下的滤波后的值,以及第二色度分量在该第i种滤波顺序下的滤波后的值。进而基于周围已滤波区域的第一色度分量在该第i种滤波顺序下的滤波后的值,以及第二色度分量在该第i种滤波顺序下的滤波后的值,确定该第i种滤波顺序对应的第二滤波代价。例如,第二滤波代价包括计算代价,则解码端确定在该第i种滤波顺序,通过神经网络滤波器对周围已滤波区域的第一色度分量和第二色度分量进行滤波时的计算代价,进而基于该计算代价,确定第i种滤波顺序对应的第二滤波代价。
在一种可能的实现方式中,上述S102-B2包括如下S102-B21和S102-B22步骤:
S102-B21、按照第i种滤波顺序,将周围已滤波区域的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,得到周围已滤波区域的第i个滤波后的值;
S102-B22、基于第i个滤波后的值和周围已滤波区域,确定第i个第二滤波代价
在该实现方式中,解码端按照第i种滤波顺序,将周围已滤波区域的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,得到周围已滤波区域的第一色度分量在该第i种滤波顺序下的滤波后的值,以及第二色度分量在该第i种滤波顺序下的滤波后的值,为了便于描述,将周围已滤波区域的第一色度分量在该第i种滤波顺序下的滤波后的值,以及第二色度分量在该第i种滤波顺序下的滤波后的值记为周围已滤波区域的第i个滤波后的值。
接着,基于第i个滤波后的值和周围已滤波区域,确定该第i种滤波顺序对应的第二滤波代价。
例如,第二滤波代价包括失真代价,则解码端基于第i种滤波顺序下,周围已滤波区域的第一色度分量的滤波后的值和周围已滤波区域的第一色度分量,以及周围已滤波区域的第二色度分量的滤波后的值和周围已滤波区域的第二色度分量,确定第i种滤波顺序对应的第二滤波代价。
本申请实施例对上述第二滤波代价的具体计算方式不做限制,例如上述第二滤波代价可以为率失真代价(RDO),还可以是近似代价,例如SSD、STAD或SAD等。
再例如,第二滤波代价包括计算代价和失真代价,则解码端基于第i种滤波顺序下,周围已滤波区域的第一色度分量的滤波后的值和周围已滤波区域的第一色度分量,以及周围已滤波区域的第二色度分量的滤波后的值和周围已滤波区域的第二色度分量,确定第i种滤波顺序对应的失真代价。同时,确定在该第i种滤波顺序,通过神经网络滤波器对周围已滤波区域的第一色度分量和第二色度分量进行滤波时的计算代价。这样,根据第i种滤波顺序对应的失真代价和计算代价,确定第i种滤波顺序对应的第二滤波代价。例如,将第i种滤波顺序对应的失真代价和计算代价之和或加权和,确定为第i种滤波顺序对应的第二滤波代价。
解码端基于上述步骤,可以确定出当前图像块的周围已滤波区域,在这N种滤波顺序中每一种滤波顺序下的第二滤波代价。进而基于N种滤波顺序分别对应的第二滤波代价,从N种滤波顺序中,确定目标滤波顺序。
本申请实施例对解码端基于N种滤波顺序分别对应的第二滤波代价,从N种滤波顺序中,确定目标滤波顺序的具体方式不做限制。
例如,将N种滤波顺序中第二滤波代价最小的一种滤波顺序,确定为目标滤波顺序。
再例如,将N种滤波顺序中第二滤波代价小于预设值的任意一个滤波顺序,确定为目标滤波顺序。
本申请实施例对上述N种滤波顺序的具体类型不做限制。
在一种示例中,N种滤波顺序如表2所示:
表2
Figure BDA0004190507130000161
Figure BDA0004190507130000171
在一些实施例中,N种滤波顺序包括第一滤波顺序和第二滤波顺序,其中第一滤波顺序为神经网络滤波器的输入中第一色度分量进在前,第二色度分量在后,即在将第一色度分量和第二色度分量输入神经网络滤波器时,第一色度分量位于第二色度分量之前。第二滤波顺序为神经网络滤波器的输入中第二色度分量在前,第一色度分量在后,即在将第一色度分量和第二色度分量输入神经网络滤波器时,第二色度分量位于第一色度分量之前。
此时,如图10所示,解码端按照第一滤波顺序,将周围已滤波区域的第一色度分量(例如U分量)和第二色度分量(例如V分量),输入神经网络滤波器中进行滤波,确定第一滤波顺序对应的第二滤波代价1。同时,解码端按照第二滤波顺序,将周围已滤波区域的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,确定第一滤波顺序对应的第二滤波代价2。最后,根据第一滤波顺序对应的第二滤波代价1和第二滤波顺序对应的第二滤波代价2,从第一滤波顺序和第二滤波顺序中,选出目标滤波顺序。例如,将第一滤波顺序和第二滤波顺序中第二滤波代价最小的一个滤波顺序确定为目标滤波顺序。
由上述可知,本申请实施例在确定当前图像块的色度分量的目标滤波顺序时,不考虑神经网络滤波器的色度分量训练顺序。也就是说,无论神经网络滤波器的色度分量的训练顺序如何,解码端均根据上述步骤,确定出当前色度块的色度分量的目标滤波顺序。
本申请实施例对神经网络滤波器的训练方式和相关训练参数不做限制。
在一些实施例中,上述神经网络滤波器是以至少一个CTU为一个训练单元训练得到。也就是说,将训练图像的至少一个CTU划分为一个训练单元输入神经网络滤波器中,对神经网络滤波器进行训练。
在一些实施例中,神经网络滤波器是以预设图像区域为训练单元训练得到。也就是说,将训练图像的预设图像区域划分为一个训练单元输入神经网络滤波器中,对神经网络滤波器进行训练。上述预设图像区域的相关描述可以参照上述预设图像区域的相关描述,在此不再赘述。
在一些实施例中,神经网络滤波器的色度分量的训练顺序为N种训练顺序中的任一顺序。可选的,上述N种训练顺序与上述N种滤波顺序可以相同或不同,或部分相同部分不同。
在一些实施例中,上述N种训练顺序包括第一训练顺序和第二训练顺序,第一训练顺序为神经网络滤波器的输入中第一色度分量在前,第二色度分量在后,第二训练顺序为神经网络滤波器的输入中第二色度分量在前,第一色度分量在后。
在一种示例中,在训练过程中,神经网络滤波器的色度训练顺序为第一训练顺序,例如为先后输入U分量和V分量,并对应使用损失函数约束U分量和V分量的滤波后结果,实现对神经网络滤波器的训练。使用训练后的神经网络滤波器对当前图像块的第一色度分量和第二色度分量进行滤波时,确定第一色度分量和第二色度分量的目标滤波顺序。具体的,如图11A所示,解码端按照第一滤波顺序,例如U分量在前V分量在后的滤波顺序,将当前图像块的周围已滤波区域的U分量和V分量输入神经网络滤波器NNLF中进行滤波,输出周围已滤波区域的U分量的滤波后的值,以及V分量的滤波后的值。接着,基于第一滤波顺序下周围已滤波区域的U分量的滤波后的值和V分量的滤波后的值,以及周围已滤波区域,确定第一滤波顺序对应的第二滤波代价1。同理,如图11A所示,解码端按照第二滤波顺序,例如V分量在前U分量在后的滤波顺序,将当前图像块的周围已滤波区域的U分量和V分量输入神经网络滤波器NNLF中进行滤波,输出周围已滤波区域的U分量的滤波后的值,以及V分量的滤波后的值。接着,基于第二滤波顺序下周围已滤波区域的U分量的滤波后的值和V分量的滤波后的值,以及周围已滤波区域,确定第二滤波顺序对应的第二滤波代价2。最后,根据第一滤波顺序和第二滤波顺序分别对应的第二滤波代价,从第一滤波顺序和第二滤波顺序中确定出当前图像块的色度分量的目标滤波顺序。
在另一种示例中,在训练过程中,神经网络滤波器的色度训练顺序为第一训练顺序,例如为先后输入V分量和U分量,并对应使用损失函数约束V分量和U分量的滤波后结果,实现对神经网络滤波器的训练。使用训练后的神经网络滤波器对当前图像块的第一色度分量和第二色度分量进行滤波时,确定第一色度分量和第二色度分量的目标滤波顺序。具体的,如图11B所示,解码端按照第一滤波顺序,例如U分量在前V分量在后的滤波顺序,将当前图像块的周围已滤波区域的U分量和V分量输入神经网络滤波器NNLF中进行滤波,输出周围已滤波区域的U分量的滤波后的值,以及V分量的滤波后的值。接着,基于第一滤波顺序下周围已滤波区域的U分量的滤波后的值和V分量的滤波后的值,以及周围已滤波区域,确定第一滤波顺序对应的第二滤波代价1。同理,如图11B所示,解码端按照第二滤波顺序,例如V分量在前U分量在后的滤波顺序,将当前图像块的周围已滤波区域的U分量和V分量输入神经网络滤波器NNLF中进行滤波,输出周围已滤波区域的U分量的滤波后的值,以及V分量的滤波后的值。接着,基于第二滤波顺序下周围已滤波区域的U分量的滤波后的值和V分量的滤波后的值,以及周围已滤波区域,确定第二滤波顺序对应的第二滤波代价2。最后,根据第一滤波顺序和第二滤波顺序分别对应的第二滤波代价,从第一滤波顺序和第二滤波顺序中确定出当前图像块的色度分量的目标滤波顺序。
由上述可知,本申请实施例的目标滤波顺序的确定过程与神经网络滤波器的色度训练顺序无关,进而提高了目标滤波训练的选择灵活性和准确性。
需要说明的是,上述是以N种滤波顺序包括第一滤波顺序和第二滤波顺序为例,对确定目标滤波顺序的过程进行介绍。若N种滤波顺序还包括其他滤波顺序时,例如包括上述表2所示的其他滤波顺序时,则采用与上述第一滤波顺序和第二滤波顺序相同的方法,确定周围已解码区域在其他滤波顺序下的第二滤波代价,这样可以确定出N种滤波顺序中每一种滤波顺序对应的第二滤波代价,进而基于每一个滤波顺序对应的第二滤波代价,从N种滤波顺序中,确定出目标滤波顺序。
解码端基于上述步骤,确定出当前图像块的第一色度分量和第二色度分量的目标滤波顺序后,执行如下S103的步骤。
S103、基于目标滤波顺序,将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到当前图像块的色度滤波块。
解码端基于上述步骤,确定出当前图像块的第一色度分量和第二色度分量的目标滤波顺序后,按照该目标滤波顺序,将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到当前图像块的滤波后图像块。
在一种示例中,如图12A所示,若上述目标滤波顺序为第一色度分量在前第二色度分量在后时,则将当前图像块的第一色度分量和第二色度分量拼接,在拼接时第一色度分量位于第二色度分量之前。接着,将拼接后的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到当前图像块的第一色度分量的滤波值和第二色度分量的滤波值,其中当前图像块的第一色度分量的滤波值和第二色度分量的滤波值构成当前图像块的色度滤波块。
在一种示例中,如图12B所示,若上述目标滤波顺序为第二色度分量在前第一色度分量在后时,则将当前图像块的第一色度分量和第二色度分量拼接,在拼接时第一色度分量位于第二色度分量之后。接着,将拼接后的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到当前图像块的第一色度分量的滤波值和第二色度分量的滤波值,其中当前图像块的第一色度分量的滤波值和第二色度分量的滤波值构成当前图像块的色度滤波块。
上述对重建图像中的当前图像块的滤波过程进行介绍,重建图像中的其他待滤波的图像块的滤波过程可以参照上述当前图像块的滤波过程,最后得到滤波后的重建图像。
在一些实施例中,将上述神经网络滤波器用作环路滤波器,此时神经网络滤波器的输出影响视频解码。例如,解码端通过上述方法,使用神经网络滤波器对当前图像的重建图像进行滤波,得到滤波后的重建图像,将该滤波后的重建图像作为解码图像存在解码缓存中,用于后续的图像滤波。由于本申请实施例提供了滤波顺序的确定准确性,进而提高了重建图像的滤波质量,这样基于质量较佳的重建图像进行后续解码时,可以提升视频的解码效果。
在一些实施例中,将上述神经网络滤波器用于后处理,即对解码视频进行滤波优化,此时神经网络滤波器的输出不影响视频解码。例如,解码端对视频码流进行解码,得到解码后的视频,接着,使用神经网络滤波器对解码后的视频中的至少一张图像进行滤波处理。此时,可以将该至少一张图像中每一张图像记为重建图像。接着,解码端通过上述方法,使用神经网络滤波器对该重建图像进行滤波,得到滤波后的重建图像,将该滤波后的重建图像不缓存在解码缓存中用于后续解码,而是直接存储在其他地方,或者直接输出显示。此时,本申请实施例的图像滤波方法用于解码视频的后处理。
在一些实施例中,本申请实施例提出的图像滤波方法,除了应用在视频或图像解码领域外,还可以用于常规的图像滤波中,例如,对于待滤波图像中的当前图像块,确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序,该目标滤波顺序是基于N种滤波顺序的滤波代价确定的,所述N为大于1的正整数;基于该目标滤波顺序,将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到该当前图像块的色度滤波块。
本申请实施例提供的图像滤波方法,解码端在对当前图像进行解码时,首先对当前图像的码流进行解码,得到当前图像的残差值,并基于残差值,确定当前图像的重建图像;对于重建图像中待滤波的当前图像块,确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序,目标滤波顺序是通过解码码流或基于N种滤波顺序的滤波代价确定的,N为大于1的正整数;基于目标滤波顺序,将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到当前图像块的色度滤波块。也就是说,本申请实施例基于N种滤波顺序的滤波代价确定目标滤波顺序,提高了目标滤波顺序的选择准确性,基于该准确确定的目标滤波顺序将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波时,可以提高滤波效果,进而提升了神经网络滤波器的泛化性,提升解码性能。
上文以解码端为例,对本申请实施例的图像滤波方法进行介绍。下面以编码端为例,对本申请实施例的图像滤波方法进行介绍。
图13为本申请一实施例提供的图像滤波方法的流程示意图,本申请实施例应用于图1或图2所示编码器。如图13所示,本申请实施例的方法包括:
S201、对当前图像进行编码,得到当前图像的重建图像。
在本申请实施例中,编码端在对当前图像进行编码时,将当前图像划分为编码块,以编码块为编码单元进行逐块编码。例如,对于当前图像中待编码的当前块,首先通过帧间和/或帧内预测方式,得到当前块的预测值。接着,基于当前块的预测值和当前块,得到当前块的残差值。编码端对当前块的残差值进行变换,得到变换系数。在一种示例中,编码端对当前块的变换系数不进行量化,直接对变换系数进行编码,得到码流。另一种示例中,编码端对当前块的变换系数进行量化,得到量化系数,再对量化系数进行编码,得到码流。
在编码过程中,如图2所示,编码端还对变换系数进行反变换,得到残差值,并将残差值和预测值进行相加,得到当前块的重建值。基于上述步骤,可以得到当前图像中每一个编码块的重建值,这些重建值构成当前图像的重建图像。接着,为了进一步提高重建图像的质量,则对该重建图像进行滤波,得到当前图像的解码图像。在一种示例中,可以将该解码图像存放在解码缓存中,用于后续图像的预测。
在一些实施例中,本申请实施例提出的图像滤波方法可以用于对视频中的至少一帧图像进行滤波。即上述当前图像为视频中的一张图像。
在一些实施例中,本申请实施例提出的图像滤波方法可以用于对单张图像进行解码。即上述当前图像为单独的一张图像,例如为电子设备生成的一张图像。
解码端基于上述步骤,得到当前图像的重建图像后,执行如下S202的步骤。
S202、对于重建图像中待滤波的当前图像块,确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序。
其中,目标滤波顺序是基于N种滤波顺序的滤波代价确定的,N为大于1的正整数。
在本申请实施例中,为了提高重建图像的质量,则对重建图像进行滤波。具体的,使用神经网络滤波器对重建图像进行滤波。在对重建图像进行滤波时,将重建图像划分为至少一个图像块,对每一个图像块分别进行滤波。其中,解码端使用神经网络滤波器对重建图像中的每一个图像块进行滤波的过程基本一致。为了便于描述,在此以对重建图像中的当前图像块进行滤波为例进行说明。
需要说明的是,本申请实施例对上述当前图像块的大小和形状不做限制。
在一种可能的实现方式中,上述待滤波的当前图像块为重建图像的至少一个CTU。也就是说,将重建图像的至少一个CTU划分为一个图像块输入神经网络滤波器中进行滤波。
在一些示例中,如图8A所示,当前图像块为重建图像的一个CTU,即将重建图像的一个CTU作为一个神经网络滤波器的输入图像块。
在另一种示例中,如图8B所示,当前图像块为重建图像的4个CTU,即将重建图像的4个CTU作为一个神经网络滤波器的输入图像块。
在一种示例中,还可以将重建图像的2个CTU或3个CTU等多个CTU作为一个神经网络滤波器的输入图像块。这多个CTU可以为水平方向上的多个CTU,或者为竖直方向上的多个CTU。可选的,这多个CTU可以相邻,或者不相邻,或者部分相邻,部分不相邻。
在另一种可能的实现方式中,上述待滤波的当前图像块为重建图像的预设图像区域。即,编码端将重建图像的一个预设图像区域作为一个神经网络滤波器的输入图像块。
本申请实施例对该预设图像区域的具体形状和大小不做限制。
在一种示例,如图8C所示,预设图像区域包括重建图像的至少一个残缺数量的CTU,即作将重建图像的至少一个残缺数量的CTU作为神经网络滤波器的输入图像块。
在一些实施例中,上述预设图像区域为固定区域,例如,在每一次滤波时,按照该预设图像区域,得到重建图像中当前待滤波的图像块,并将该图像块作为神经网络滤波器的输入图像块。此时,每一次向神经网络滤波器输入的图像块的大小和形状相同,均为预设图像区域。
在一些实施例中,上述预设图像区域为变化值。例如,在第一次滤波时,按照第一个预设图像区域,得到重建图像中待滤波的一个图像块,作为输入图像块输入神经网络滤波器中进行滤波。在第二次滤波时,按照第二个预设图像区域,得到重建图像中待滤波的一个图像块,作为输入图像块输入神经网络滤波器中进行滤波,依次类推。在该实施例的一种示例中,解码端可以将重建图像划分为若干个待滤波的图像块,这若干个待滤波的图像块的形状和大小可以相同,也可以不同,或者部分相同,部分不同。
编码端基于上述步骤,确定出重建图像中待滤波的当前图像块后,使用神经网络滤波器对该当前图像块进行滤波。
当前图像块包括亮度分量和色度分量,色度分量包括U分量和V分量。由于色度中的U分量和V分量特性较为接近,通常使用同一种神经网络滤波器进行滤波。
由上述可知,目前在对色度分量进行滤波时,色度分量的滤波顺序固定,通常与神经网络滤波器训练时的色度分量输入顺序一致。例如,在训练时,按照U分量在前V分量在后的顺序,将U分量和V分量输入神经网络滤波器中,对神经网络滤波器进行训练。这样在实际滤波过程中,也是按照U分量在前V分量在后的滤波顺序将U分量和V分量输入神经网络滤波器中进行滤波。但是,这样将色度分量的滤波顺序与训练顺序保持一致进行滤波时,会导致滤波效果差,降低神经网络滤波器的泛化性的问题。
为了解决该技术问题,本申请实施例在对当前图像块的色度分量进行滤波时,首先确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序,该目标滤波顺序是基于N种滤波顺序的滤波代价确定的,可以提高该目标滤波顺序的确定准确性,这样基于该准确确定的目标滤波顺序,对当前图像块的色度分量进行滤波时,可以有效提高色度分量的滤波效果,进而提升神经网络滤波器的泛化性。
本申请实施例的滤波代价包括计算代价和失真代价中的至少一个。也就是说,在一些实施例中,本申请实施例的滤波顺序的滤波代价包括该滤波顺序的计算代价,例如计算时间和/或计算复杂度越高时,表示计算代价越大。在一些实施例中,本申请实施例的滤波顺序的滤波代价包括该滤波顺序的失真代价,例如失真度越高时,表示失真代价越大。在一些实施例中,本申请实施例的滤波顺序的滤波代价包括该滤波顺序的计算代价和失真代价,例如失真代价和计算代价之和越大时,表示滤波代价越大。
下面对编码端确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序的具体过程进行介绍。
在本申请实施例中,编码端确定目标滤波顺序的具体方式包括但不限于如下几种:
方式一,编码端基于当前图像块,确定目标滤波顺序。此时,上述S202中确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序包括如下S202-A1和S202-A2的步骤:
S202-A1、对于N种滤波顺序中的第j种滤波顺序,按照第j种滤波顺序,将当前图像块的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,确定当前图像块在第j种滤波顺序下的第j个第一滤波代价,j为小于或等于N的正整数;
S202-A2、基于N种滤波顺序分别对应的第一滤波代价,从N种滤波顺序中,确定目标滤波顺序。
在该方式一,编码端按照N种滤波顺序中的每一种滤波顺序,将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,确定这N种滤波顺序中的每一种滤波顺序对应的滤波代价,将该滤波代价记为第一滤波代价。在该实施例中,编码端确定N种滤波顺序中的每一种滤波顺序对应的第一滤波代价的具体过程基本一致,以N种滤波顺序中的第j种滤波顺序为例进行说明。即按照第j种滤波顺序,将当前图像块的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,确定当前图像块在第j种滤波顺序下的第j个第一滤波代价。
本申请实施例对确定当前图像块在第j种滤波顺序下的第j个第一滤波代价的具体方式不做限制。
在一种可能的实现方式中,编码端按照第j种滤波顺序,将当前图像块的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,得到当前图像块的第一色度分量在该第j种滤波顺序下的滤波后的值,以及第二色度分量在该第j种滤波顺序下的滤波后的值。进而基于当前图像块的第一色度分量在该第j种滤波顺序下的滤波后的值,以及第二色度分量在该第j种滤波顺序下的滤波后的值,确定该第j种滤波顺序对应的第一滤波代价。例如,第一滤波代价包括计算代价,则编码端确定在该第j种滤波顺序,通过神经网络滤波器对当前图像块的第一色度分量和第二色度分量进行滤波时的计算代价,进而基于该计算代价,确定第j种滤波顺序对应的第一滤波代价。
在一种可能的实现方式中,上述S202-B2包括如下S202-B21和S202-B22步骤:
S202-B21、按照第j种滤波顺序,将当前图像块的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,得到当前图像块的第j个滤波图像块;
S202-B22、基于第j个滤波图像块和当前图像块的原始图像块,确定第j个第一滤波代价
在该实现方式中,编码端按照第j种滤波顺序,将当前图像块的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,得到当前图像块的第一色度分量在该第j种滤波顺序下的滤波后的值,以及第二色度分量在该第j种滤波顺序下的滤波后的值,为了便于描述,将当前图像块的第一色度分量在该第j种滤波顺序下的滤波后的值,以及第二色度分量在该第j种滤波顺序下的滤波后的值记为当前图像块的第j个滤波图像块。
接着,基于第j个滤波图像块和当前图像块的原始图像块,确定该第j种滤波顺序对应的第一滤波代价。
例如,第一滤波代价包括失真代价,则编码端基于第j种滤波顺序下,当前图像块的第一色度分量的滤波后的值和当前图像块的原始图像块的第一色度分量,以及当前图像块的第二色度分量的滤波后的值和当前图像块的原始图像块的第二色度分量,确定第j种滤波顺序对应的第一滤波代价。
本申请实施例对上述第一滤波代价的具体计算方式不做限制,例如上述第一滤波代价可以为率失真代价(RDO),还可以是近似代价,例如SSD、STAD或SAD等。
再例如,第一滤波代价包括计算代价和失真代价,则编码端基于第j种滤波顺序下,当前图像块的第一色度分量的滤波后的值和当前图像块的原始图像块的第一色度分量,以及当前图像块的第二色度分量的滤波后的值和当前图像块的原始图像块的第二色度分量,确定第j种滤波顺序对应的失真代价。同时,确定在该第j种滤波顺序,通过神经网络滤波器对当前图像块的第一色度分量和第二色度分量进行滤波时的计算代价。这样,根据第j种滤波顺序对应的失真代价和计算代价,确定第j种滤波顺序对应的第一滤波代价。例如,将第j种滤波顺序对应的失真代价和计算代价之和或加权和,确定为第j种滤波顺序对应的第一滤波代价。
编码端基于上述步骤,可以确定出当前图像块,在这N种滤波顺序中每一种滤波顺序下的第一滤波代价。进而基于N种滤波顺序分别对应的第一滤波代价,从N种滤波顺序中,确定目标滤波顺序。
本申请实施例对编码端基于N种滤波顺序分别对应的第一滤波代价,从N种滤波顺序中,确定目标滤波顺序的具体方式不做限制。
例如,将N种滤波顺序中第一滤波代价最小的一种滤波顺序,确定为目标滤波顺序。
再例如,将N种滤波顺序中第一滤波代价小于预设值的任意一个滤波顺序,确定为目标滤波顺序。
本申请实施例对上述N种滤波顺序的具体类型不做限制。
在一种示例中,N种滤波顺序如表2所示。
在一些实施例中,N种滤波顺序包括第一滤波顺序和第二滤波顺序,其中第一滤波顺序为神经网络滤波器的输入中第一色度分量在前,第二色度分量在后。第二滤波顺序为神经网络滤波器的输入中第二色度分量在前,第一色度分量在后。
此时,如图14所示,编码端按照第一滤波顺序,将当前图像块的第一色度分量(例如U分量)和第二色度分量(例如V分量),输入神经网络滤波器中进行滤波,确定第一滤波顺序对应的第一滤波代价1。同时,编码端按照第二滤波顺序,将当前图像块的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,确定第一滤波顺序对应的第一滤波代价2。最后,根据第一滤波顺序对应的第一滤波代价1和第二滤波顺序对应的第一滤波代价2,从第一滤波顺序和第二滤波顺序中,选出目标滤波顺序。例如,将第一滤波顺序和第二滤波顺序中第一滤波代价最小的一个滤波顺序确定为目标滤波顺序。
由上述可知,本申请实施例在确定当前图像块的色度分量的目标滤波顺序时,不考虑神经网络滤波器的色度分量训练顺序。也就是说,无论神经网络滤波器的色度分量的训练顺序如何,编码端均根据上述步骤,确定出当前色度块的色度分量的目标滤波顺序。
本申请实施例对神经网络滤波器的训练方式和相关训练参数不做限制。
在一些实施例中,上述神经网络滤波器是以至少一个CTU为一个训练单元训练得到。也就是说,将训练图像的至少一个CTU划分为一个训练单元输入神经网络滤波器中,对神经网络滤波器进行训练。
在一些实施例中,神经网络滤波器是以预设图像区域为训练单元训练得到。也就是说,将训练图像的预设图像区域划分为一个训练单元输入神经网络滤波器中,对神经网络滤波器进行训练。上述预设图像区域的相关描述可以参照上述预设图像区域的相关描述,在此不再赘述。
在一些实施例中,神经网络滤波器的色度分量的训练顺序为N种训练顺序中的任一顺序。可选的,上述N种训练顺序与上述N种滤波顺序可以相同或不同,或部分相同部分不同。
在一些实施例中,上述N种训练顺序包括第一训练顺序和第二训练顺序,第一训练顺序为神经网络滤波器的输入中第一色度分量在前,第二色度分量在后,第二训练顺序为神经网络滤波器的输入中第二色度分量在前,第一色度分量在后。
在一种示例中,在训练过程中,神经网络滤波器的色度训练顺序为第一训练顺序,例如为先后输入U分量和V分量,并对应使用损失函数约束U分量和V分量的滤波后结果,实现对神经网络滤波器的训练。使用训练后的神经网络滤波器对当前图像块的第一色度分量和第二色度分量进行滤波时,确定第一色度分量和第二色度分量的目标滤波顺序。具体的,如图15A所示,编码端按照第一滤波顺序,例如U分量在前V分量在后的滤波顺序,将当前图像块的U分量和V分量输入神经网络滤波器NNLF中进行滤波,输出当前图像块的U分量的滤波后的值,以及V分量的滤波后的值。接着,基于第一滤波顺序下当前图像块的U分量的滤波后的值和V分量的滤波后的值,以及当前图像块的原始图像块,确定第一滤波顺序对应的第一滤波代价1。同理,如图15A所示,编码端按照第二滤波顺序,例如V分量在前U分量在后的滤波顺序,将当前图像块的U分量和V分量输入神经网络滤波器NNLF中进行滤波,输出当前图像块的U分量的滤波后的值,以及V分量的滤波后的值。接着,基于第二滤波顺序下当前图像块的U分量的滤波后的值和V分量的滤波后的值,以及当前图像块的原始图像块,确定第二滤波顺序对应的第一滤波代价2。最后,根据第一滤波顺序和第二滤波顺序分别对应的第一滤波代价,从第一滤波顺序和第二滤波顺序中确定出当前图像块的色度分量的目标滤波顺序。
在另一种示例中,在训练过程中,神经网络滤波器的色度训练顺序为第一训练顺序,例如为先后输入V分量和U分量,并对应使用损失函数约束V分量和U分量的滤波后结果,实现对神经网络滤波器的训练。使用训练后的神经网络滤波器对当前图像块的第一色度分量和第二色度分量进行滤波时,确定第一色度分量和第二色度分量的目标滤波顺序。具体的,如图15B所示,编码端按照第一滤波顺序,例如U分量在前V分量在后的滤波顺序,将当前图像块的U分量和V分量输入神经网络滤波器NNLF中进行滤波,输出当前图像块的U分量的滤波后的值,以及V分量的滤波后的值。接着,基于第一滤波顺序下当前图像块的U分量的滤波后的值和V分量的滤波后的值,以及当前图像块的原始图像块,确定第一滤波顺序对应的第一滤波代价1。同理,如图15B所示,编码端按照第二滤波顺序,例如V分量在前U分量在后的滤波顺序,将当前图像块的U分量和V分量输入神经网络滤波器NNLF中进行滤波,输出当前图像块的U分量的滤波后的值,以及V分量的滤波后的值。接着,基于第二滤波顺序下当前图像块的U分量的滤波后的值和V分量的滤波后的值,以及当前图像块的原始图像块,确定第二滤波顺序对应的第一滤波代价2。最后,根据第一滤波顺序和第二滤波顺序分别对应的第一滤波代价,从第一滤波顺序和第二滤波顺序中确定出当前图像块的色度分量的目标滤波顺序。
由上述可知,本申请实施例的目标滤波顺序的确定过程与神经网络滤波器的色度训练顺序无关,进而提高了目标滤波训练的选择灵活性和准确性。
需要说明的是,上述是以N种滤波顺序包括第一滤波顺序和第二滤波顺序为例,对确定目标滤波顺序的过程进行介绍。若N种滤波顺序还包括其他滤波顺序时,例如包括上述表2所示的其他滤波顺序时,则采用与上述第一滤波顺序和第二滤波顺序相同的方法,确定周围已编码区域在其他滤波顺序下的第一滤波代价,这样可以确定出N种滤波顺序中每一种滤波顺序对应的第一滤波代价,进而基于每一个滤波顺序对应的第一滤波代价,从N种滤波顺序中,确定出目标滤波顺序。
在一些实施例中编码端基于上述步骤,确定出目标滤波顺序后,将第一信息写入码流,该第一信息指示目标滤波顺序。这样,解码端通过解码码流,得到第一信息,进而基于该第一信息,得到目标滤波顺序。
本申请实施例对第一信息的具体表现形式不做限制,只要是可以指示目标滤波顺序的任意语法字段均可。
在一些实施例中,上述第一信息包括第一标志,通过该第一标志的不同取值来指示目标滤波顺序。
示例性的,第一标志的取值与色度分量的滤波顺序的对应关系如表1所示。
在该方式一中,编码端可以基于上述表1,确定目标滤波顺序对应的第一标志的取值,进而将该第一标志置为该取值后,写入码流。这样解码端通过解码码流,得到该第一标志,进而根据该第一标志的取值,通过查询上述表1,得到当前图像块的第一色度分量和第二色度分量的目标滤波顺序。
编码端除了采用上述方式一所述的方法确定出目标滤波顺序外,还可以采用如下方式二的方法,确定出目标滤波顺序。
方式二,编码端自行确定目标滤波顺序。此时,上述S202中确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序包括如下S202-B1至S202-B3的步骤:
S202-B1、确定当前图像块的周围已滤波区域;
S202-B2、对于N种滤波顺序中的第i种滤波顺序,按照第i种滤波顺序,将周围已滤波区域的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,确定周围已滤波区域在第i种滤波顺序下的第i个第二滤波代价,i为小于或等于N的正整数;
S202-B3、基于N种滤波顺序分别对应的第二滤波代价,从N种滤波顺序中,确定目标滤波顺序。
在该方式二中,编码端基于当前图像块的周围已滤波区域,来从N种滤波顺序中,确定出目标滤波顺序。
本申请实施例对当前图像块的周围已滤波区域的大小和形状不做限制。
在一些实施例中,当前图像块的周围已滤波区域为当前图像块周围与当前图像块相邻的已滤波区域。
在一些实施例中,如图9所示,当前图像块的周围已滤波区域包括当前图像块的上方已滤波区域和左侧已滤波区域。
在一些实施例中,当前图像块的周围已滤波区域包括当前图像的模板区域。
编码端在当前图像中确定出当前图像块的周围已滤波区域后,执行上述S202-B2的步骤,按照N种滤波顺序中的每一种滤波顺序,将周围已滤波区域的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,确定这N种滤波顺序中的每一种滤波顺序对应的滤波代价,将该滤波代价记为第二滤波代价。在该实施例中,编码端确定N种滤波顺序中的每一种滤波顺序对应的第二滤波代价的具体过程基本一致,以N种滤波顺序中的第i种滤波顺序为例进行说明。即按照第i种滤波顺序,将周围已滤波区域的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,确定周围已滤波区域在第i种滤波顺序下的第i个第二滤波代价。
本申请实施例对确定周围已滤波区域在第i种滤波顺序下的第i个第二滤波代价的具体方式不做限制。
在一种可能的实现方式中,编码端按照第i种滤波顺序,将周围已滤波区域的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,得到周围已滤波区域的第一色度分量在该第i种滤波顺序下的滤波后的值,以及第二色度分量在该第i种滤波顺序下的滤波后的值。进而基于周围已滤波区域的第一色度分量在该第i种滤波顺序下的滤波后的值,以及第二色度分量在该第i种滤波顺序下的滤波后的值,确定该第i种滤波顺序对应的第二滤波代价。例如,第二滤波代价包括计算代价,则编码端确定在该第i种滤波顺序,通过神经网络滤波器对周围已滤波区域的第一色度分量和第二色度分量进行滤波时的计算代价,进而基于该计算代价,确定第i种滤波顺序对应的第二滤波代价。
在一种可能的实现方式中,上述S202-B2包括如下S202-B21和S202-B22步骤:
S202-B21、按照第i种滤波顺序,将周围已滤波区域的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,得到周围已滤波区域的第i个滤波后的值;
S202-B22、基于第i个滤波后的值和周围已滤波区域,确定第i个第二滤波代价
在该实现方式中,编码端按照第i种滤波顺序,将周围已滤波区域的第一色度分量和第二色度分量,输入神经网络滤波器中进行滤波,得到周围已滤波区域的第一色度分量在该第i种滤波顺序下的滤波后的值,以及第二色度分量在该第i种滤波顺序下的滤波后的值,为了便于描述,将周围已滤波区域的第一色度分量在该第i种滤波顺序下的滤波后的值,以及第二色度分量在该第i种滤波顺序下的滤波后的值记为周围已滤波区域的第i个滤波后的值。
接着,基于第i个滤波后的值和周围已滤波区域,确定该第i种滤波顺序对应的第二滤波代价。
例如,第二滤波代价包括失真代价,则编码端基于第i种滤波顺序下,周围已滤波区域的第一色度分量的滤波后的值和周围已滤波区域的第一色度分量,以及周围已滤波区域的第二色度分量的滤波后的值和周围已滤波区域的第二色度分量,确定第i种滤波顺序对应的第二滤波代价。
本申请实施例对上述第二滤波代价的具体计算方式不做限制,例如上述第二滤波代价可以为率失真代价(RDO),还可以是近似代价,例如SSD、STAD或SAD等。
再例如,第二滤波代价包括计算代价和失真代价,则编码端基于第i种滤波顺序下,周围已滤波区域的第一色度分量的滤波后的值和周围已滤波区域的第一色度分量,以及周围已滤波区域的第二色度分量的滤波后的值和周围已滤波区域的第二色度分量,确定第i种滤波顺序对应的失真代价。同时,确定在该第i种滤波顺序,通过神经网络滤波器对周围已滤波区域的第一色度分量和第二色度分量进行滤波时的计算代价。这样,根据第i种滤波顺序对应的失真代价和计算代价,确定第i种滤波顺序对应的第二滤波代价。例如,将第i种滤波顺序对应的失真代价和计算代价之和或加权和,确定为第i种滤波顺序对应的第二滤波代价。
编码端基于上述步骤,可以确定出当前图像块的周围已滤波区域,在这N种滤波顺序中每一种滤波顺序下的第二滤波代价。进而基于N种滤波顺序分别对应的第二滤波代价,从N种滤波顺序中,确定目标滤波顺序。
本申请实施例对编码端基于N种滤波顺序分别对应的第二滤波代价,从N种滤波顺序中,确定目标滤波顺序的具体方式不做限制。
例如,将N种滤波顺序中第二滤波代价最小的一种滤波顺序,确定为目标滤波顺序。
再例如,将N种滤波顺序中第二滤波代价小于预设值的任意一个滤波顺序,确定为目标滤波顺序。
编码端基于上述步骤,确定出当前图像块的第一色度分量和第二色度分量的目标滤波顺序后,执行如下S203的步骤。
S203、基于目标滤波顺序,将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到当前图像块的色度滤波块。
编码端基于上述步骤,确定出当前图像块的第一色度分量和第二色度分量的目标滤波顺序后,按照该目标滤波顺序,将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到当前图像块的滤波后图像块。
在一种示例中,如图12A所示,若上述目标滤波顺序为第一色度分量在前第二色度分量在后时,则将当前图像块的第一色度分量和第二色度分量拼接,在拼接时第一色度分量位于第二色度分量之前。接着,将拼接后的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到当前图像块的第一色度分量的滤波值和第二色度分量的滤波值,其中当前图像块的第一色度分量的滤波值和第二色度分量的滤波值构成当前图像块的色度滤波块。
在一种示例中,如图12B所示,若上述目标滤波顺序为第二色度分量在前第一色度分量在后时,则将当前图像块的第一色度分量和第二色度分量拼接,在拼接时第一色度分量位于第二色度分量之后。接着,将拼接后的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到当前图像块的第一色度分量的滤波值和第二色度分量的滤波值,其中当前图像块的第一色度分量的滤波值和第二色度分量的滤波值构成当前图像块的色度滤波块。
上述对重建图像中的当前图像块的滤波过程进行介绍,重建图像中的其他待滤波的图像块的滤波过程可以参照上述当前图像块的滤波过程,最后得到滤波后的重建图像。
在一些实施例中,将上述神经网络滤波器用作环路滤波器,此时神经网络滤波器的输出影响视频编码。例如,编码端通过上述方法,使用神经网络滤波器对当前图像的重建图像进行滤波,得到滤波后的重建图像,将该滤波后的重建图像作为编码图像存在在编码缓存中,用于后续的图像滤波。由于本申请实施例提供了滤波顺序的确定准确性,进而提高了重建图像的滤波质量,这样基于质量较佳的重建图像进行后续编码时,可以提升视频的编码效果。
在一些实施例中,将上述神经网络滤波器用于后处理,即对解码视频进行滤波优化,此时神经网络滤波器的输出不影响视频编码。
在一些实施例中,本申请实施例提出的图像滤波方法,除了应用在视频或图像编码领域外,还可以用于常规的图像滤波中,例如,对于待滤波图像中的当前图像块,确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序,该目标滤波顺序是基于N种滤波顺序的滤波代价确定的,所述N为大于1的正整数;基于该目标滤波顺序,将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到该当前图像块的色度滤波块。
本申请实施例提供的图像滤波方法,编码端在对当前图像进行编码时,首先对当前图像进行编码,得到当前图像的重建图像;对于重建图像中待滤波的当前图像块,确定当前图像块的第一色度分量和第二色度分量的目标滤波顺序,目标滤波顺序是基于N种滤波顺序的滤波代价确定的,N为大于1的正整数;基于目标滤波顺序,将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到当前图像块的色度滤波块。也就是说,本申请实施例基于N种滤波顺序的滤波代价确定目标滤波顺序,提高了目标滤波顺序的选择准确性,基于该准确确定的目标滤波顺序将当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波时,可以提高滤波效果,进而提升了神经网络滤波器的泛化性,提升编码性能。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文结合图7至图15B,详细描述了本申请的方法实施例,下文结合图16至图17,详细描述本申请的装置实施例。
图16是本申请一实施例提供的图像滤波装置的示意性框图。
如图10所示,图像滤波装置10可包括:
解码单元11,用于对当前图像的码流进行解码,得到所述当前图像的残差值,并基于残差值,确定所述当前图像的重建图像;
顺序确定单元12,用于对于所述重建图像中待滤波的当前图像块,确定所述当前图像块的第一色度分量和第二色度分量的目标滤波顺序,所述目标滤波顺序是通过解码码流或基于N种滤波顺序的滤波代价确定的,所述N为大于1的正整数;
滤波单元13,用于基于所述目标滤波顺序,将所述当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到所述当前图像块的色度滤波块。
在一些实施例中,顺序确定单元12,具体用于解码所述码流,得到第一信息,所述第一信息用于指示所述目标滤波顺序;基于所述第一信息,得到所述目标滤波顺序。
在一些实施例中,所述滤波代价包括第一滤波代价,所述目标滤波顺序是基于所述N种滤波顺序中每一种滤波顺序的第一滤波代价确定的,所述滤波顺序的第一滤波代价是按照所述滤波顺序,将所述当前图像块的第一色度分量和第二色度分量输入所述神经网络滤波器中进行滤波时确定的滤波代价。
在一些实施例中,所述目标滤波顺序为所述N种滤波顺序中第一滤波代价最小的一种滤波顺序。
在一些实施例中,所述滤波代价包括第二滤波代价,顺序确定单元12,具体用于确定所述当前图像块的周围已滤波区域;对于所述N种滤波顺序中的第i种滤波顺序,按照所述第i种滤波顺序,将所述周围已滤波区域的第一色度分量和第二色度分量,输入所述神经网络滤波器中进行滤波,确定所述周围已滤波区域在所述第i种滤波顺序下的第i个第二滤波代价,所述i为小于或等于N的正整数;基于所述N种滤波顺序分别对应的第二滤波代价,从所述N种滤波顺序中,确定所述目标滤波顺序。
在一些实施例中,顺序确定单元12,具体用于按照所述第i种滤波顺序,将所述周围已滤波区域的第一色度分量和第二色度分量,输入所述神经网络滤波器中进行滤波,得到所述周围已滤波区域的第i个滤波后的值;基于所述第i个滤波后的值和所述周围已滤波区域,确定所述第i个第二滤波代价。
在一些实施例中,顺序确定单元12,具体用于将所述N种滤波顺序中第二滤波代价最小的一种滤波顺序,确定为所述目标滤波顺序。
在一些实施例中,所述N种滤波顺序包括第一滤波顺序和第二滤波顺序,所述第一滤波顺序为所述神经网络滤波器的输入中所述第一色度分量在前,所述第二色度分量在后,所述第二滤波顺序为所述神经网络滤波器的输入中所述第二色度分量在前,所述第一色度分量在后。
在一些实施例中,所述当前图像块为所述重建图像的至少一个CTU,或者,所述当前图像块为所述重建图像的预设图像区域。
在一些实施例中,所述神经网络滤波器是以至少一个CTU为一个训练单元训练得到,或者所述神经网络滤波器是以预设图像区域为训练单元训练得到。
在一些实施例中,所述神经网络滤波器的色度分量的训练顺序为N种训练顺序中的任一顺序。
在一些实施例中,所述N种训练顺序包括第一训练顺序和第二训练顺序,所述第一训练顺序为所述神经网络滤波器的输入中所述第一色度分量在前,第二色度分量在后,所述第二训练顺序为所述神经网络滤波器的输入中所述第二色度分量在前,所述第一色度分量在后。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图16所示的装置可以执行上述图7所示的方法实施例,并且装置中的各个模块的前述和其它操作和/或功能分别为了实现解码器对应的方法实施例,为了简洁,在此不再赘述。
图17是本申请一实施例提供的图像滤波装置的示意性框图。
如图17所示,图像滤波装置20可包括:
编码单元21,用于对当前图像进行编码,得到所述当前图像的重建图像;
顺序确定单元22,用于对于所述重建图像中待滤波的当前图像块,确定所述当前图像块的第一色度分量和第二色度分量的目标滤波顺序,所述目标滤波顺序是基于N种滤波顺序的滤波代价确定的,所述N为大于1的正整数;
滤波单元23,用于基于所述目标滤波顺序,将所述当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到所述当前图像块的滤波后图像块。
在一些实施例中,顺序确定单元22,具体用于对于所述N种滤波顺序中的第j种滤波顺序,按照所述第j种滤波顺序,将所述当前图像块的第一色度分量和第二色度分量,输入所述神经网络滤波器中进行滤波,确定所述当前图像块在所述第j种滤波顺序下的第j个第一滤波代价,所述j为小于或等于N的正整数;基于所述N种滤波顺序分别对应的第一滤波代价,从所述N种滤波顺序中,确定所述目标滤波顺序。
在一些实施例中,顺序确定单元22,具体用于按照所述第j种滤波顺序,将所述当前图像块的第一色度分量和第二色度分量,输入所述神经网络滤波器中进行滤波,得到所述当前图像块的第j个滤波图像块;基于所述第j个滤波后的图像块和所述当前图像块的原始图像块,确定所述第j个第一滤波代价。
在一些实施例中,顺序确定单元22,具体用于将所述N种滤波顺序中第一滤波代价最小的一种滤波顺序,确定为所述目标滤波顺序。
在一些实施例中,编码单元21,还用于将第一信息写入码流,所述第一信息用于指示所述目标滤波顺序。
在一些实施例中,顺序确定单元22,具体用于确定所述当前图像块的周围已滤波区域;对于所述N种滤波顺序中的第i种滤波顺序,按照所述第i种滤波顺序,将所述周围已滤波区域的第一色度分量和第二色度分量,输入所述神经网络滤波器中进行滤波,确定所述周围已滤波区域在所述第i种滤波顺序下的第i个第二滤波代价,所述i为小于或等于N的正整数;基于所述N种滤波顺序分别对应的第二滤波代价,从所述N种滤波顺序中,确定所述目标滤波顺序。
在一些实施例中,顺序确定单元22,具体用于按照所述第i种滤波顺序,将所述周围已滤波区域的第一色度分量和第二色度分量,输入所述神经网络滤波器中进行滤波,得到所述周围已滤波区域的第i个滤波后的值;基于所述第i个滤波后的值和所述周围已滤波区域,确定所述第i个第二滤波代价。
在一些实施例中,顺序确定单元22,具体用于将所述N种滤波顺序中第二滤波代价最小的一种滤波顺序,确定为所述目标滤波顺序。
在一些实施例中,所述N种滤波顺序包括第一滤波顺序和第二滤波顺序,所述第一滤波顺序为所述神经网络滤波器的输入中所述第一色度分量在前,所述第二色度分量在后,所述第二滤波顺序为所述神经网络滤波器的输入中所述第二色度分量在前,所述第一色度分量在后。
在一些实施例中,所述当前图像块为所述重建图像的至少一个CTU,或者,所述当前图像块为所述重建图像的预设图像区域。
在一些实施例中,所述神经网络滤波器是以至少一个CTU为一个训练单元训练得到,或者所述神经网络滤波器是以预设图像区域为训练单元训练得到。
在一些实施例中,所述神经网络滤波器的色度分量的训练顺序为N种训练顺序中的任一顺序。
在一些实施例中,所述N种训练顺序包括第一训练顺序和第二训练顺序,所述第一训练顺序为所述神经网络滤波器的输入中所述第一色度分量在前,所述第二色度分量在后,所述第二训练顺序为所述神经网络滤波器的输入中所述第二色度分量在前,所述第一色度分量在后。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图17所示的装置可以执行上述方法的实施例,并且装置中的各个模块的前述和其它操作和/或功能分别为了实现编码器对应的方法实施例,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图18是本申请实施例提供的电子设备的示意性框图,图18的电子设备可以为上述的编码器或者为解码器。
如图18所示,该电子设备30可包括:
存储器31和处理器32,该存储器31用于存储计算机程序33,并将该程序代码33传输给该处理器32。换言之,该处理器32可以从存储器31中调用并运行计算机程序33,以实现本申请实施例中的方法。
例如,该处理器32可用于根据该计算机程序33中的指令执行上述方法200中的步骤。
在本申请的一些实施例中,该处理器32可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器31包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序33可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器31中,并由该处理器32执行,以完成本申请提供的录制页面的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序33在该电子设备900中的执行过程。
如图18所示,该电子设备30还可包括:
收发器34,该收发器34可连接至该处理器32或存储器31。
其中,处理器32可以控制该收发器34与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器34可以包括发射机和接收机。收发器34还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备30中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。

Claims (20)

1.一种图像滤波方法,其特征在于,包括:
对当前图像的码流进行解码,得到所述当前图像的残差值,并基于残差值,确定所述当前图像的重建图像;
对于所述重建图像中待滤波的当前图像块,确定所述当前图像块的第一色度分量和第二色度分量的目标滤波顺序,所述目标滤波顺序是通过解码码流或基于N种滤波顺序的滤波代价确定的,所述N为大于1的正整数;
基于所述目标滤波顺序,将所述当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到所述当前图像块的色度滤波块。
2.根据权利要求1所述的方法,其特征在于,所述确定所述当前图像块的第一色度分量和第二色度分量的目标滤波顺序,包括:
解码所述码流,得到第一信息,所述第一信息用于指示所述目标滤波顺序;
基于所述第一信息,得到所述目标滤波顺序。
3.根据权利要求2所述的方法,其特征在于,所述滤波代价包括第一滤波代价,所述目标滤波顺序是基于所述N种滤波顺序中每一种滤波顺序的第一滤波代价确定的,所述滤波顺序的第一滤波代价是按照所述滤波顺序,将所述当前图像块的第一色度分量和第二色度分量输入所述神经网络滤波器中进行滤波时确定的滤波代价;
其中,所述目标滤波顺序为所述N种滤波顺序中第一滤波代价最小的一种滤波顺序。
4.根据权利要求1所述的方法,其特征在于,所述滤波代价包括第二滤波代价,所述确定所述当前图像块的第一色度分量和第二色度分量的目标滤波顺序,包括:
确定所述当前图像块的周围已滤波区域;
对于所述N种滤波顺序中的第i种滤波顺序,按照所述第i种滤波顺序,将所述周围已滤波区域的第一色度分量和第二色度分量,输入所述神经网络滤波器中进行滤波,确定所述周围已滤波区域在所述第i种滤波顺序下的第i个第二滤波代价,所述i为小于或等于N的正整数;
基于所述N种滤波顺序分别对应的第二滤波代价,从所述N种滤波顺序中,确定所述目标滤波顺序。
5.根据权利要求4所述的方法,其特征在于,所述按照所述第i种滤波顺序,将所述周围已滤波区域的第一色度分量和第二色度分量,输入所述神经网络滤波器中进行滤波,确定所述周围已滤波区域在所述第i种滤波顺序下的第i个第二滤波代价,包括:
按照所述第i种滤波顺序,将所述周围已滤波区域的第一色度分量和第二色度分量,输入所述神经网络滤波器中进行滤波,得到所述周围已滤波区域的第i个滤波后的值;
基于所述第i个滤波后的值和所述周围已滤波区域,确定所述第i个第二滤波代价。
6.根据权利要求4所述的方法,其特征在于,所述基于所述N种滤波顺序分别对应的第二滤波代价,从所述N种滤波顺序中,确定所述目标滤波顺序,包括:
将所述N种滤波顺序中第二滤波代价最小的一种滤波顺序,确定为所述目标滤波顺序。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述N种滤波顺序包括第一滤波顺序和第二滤波顺序,所述第一滤波顺序为所述神经网络滤波器的输入中所述第一色度分量在前,所述第二色度分量在后,所述第二滤波顺序为所述神经网络滤波器的输入中所述第二色度分量在前,所述第一色度分量在后。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述当前图像块为所述重建图像的至少一个CTU,或者,所述当前图像块为所述重建图像的预设图像区域。
9.根据权利要求1-6任一项所述的方法,其特征在于,所述神经网络滤波器是以至少一个CTU为一个训练单元训练得到,或者所述神经网络滤波器是以预设图像区域为训练单元训练得到。
10.根据权利要求1-6任一项所述的方法,其特征在于,所述神经网络滤波器的色度分量的训练顺序为N种训练顺序中的任一顺序。
11.根据权利要求10所述的方法,其特征在于,所述N种训练顺序包括第一训练顺序和第二训练顺序,所述第一训练顺序为所述神经网络滤波器的输入中所述第一色度分量在前,第二色度分量在后,所述第二训练顺序为所述神经网络滤波器的输入中所述第二色度分量在前,所述第一色度分量在后。
12.一种图像滤波方法,其特征在于,包括:
对当前图像进行编码,得到所述当前图像的重建图像;
对于所述重建图像中待滤波的当前图像块,确定所述当前图像块的第一色度分量和第二色度分量的目标滤波顺序,所述目标滤波顺序是基于N种滤波顺序的滤波代价确定的,所述N为大于1的正整数;
基于所述目标滤波顺序,将所述当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到所述当前图像块的滤波后图像块。
13.根据权利要求12所述的方法,其特征在于,所述确定所述当前图像块的第一色度分量和第二色度分量的目标滤波顺序,包括:
对于所述N种滤波顺序中的第j种滤波顺序,按照所述第j种滤波顺序,将所述当前图像块的第一色度分量和第二色度分量,输入所述神经网络滤波器中进行滤波,确定所述当前图像块在所述第j种滤波顺序下的第j个第一滤波代价,所述j为小于或等于N的正整数;
基于所述N种滤波顺序分别对应的第一滤波代价,从所述N种滤波顺序中,确定所述目标滤波顺序。
14.根据权利要求13所述的方法,其特征在于,所述按照所述第j种滤波顺序,将所述当前图像块的第一色度分量和第二色度分量,输入所述神经网络滤波器中进行滤波,确定所述当前图像块在所述第j种滤波顺序下的第j个第一滤波代价,包括:
按照所述第j种滤波顺序,将所述当前图像块的第一色度分量和第二色度分量,输入所述神经网络滤波器中进行滤波,得到所述当前图像块的第j个滤波图像块;
基于所述第j个滤波后的图像块和所述当前图像块的原始图像块,确定所述第j个第一滤波代价;
所述基于所述N种滤波顺序分别对应的第一滤波代价,从所述N种滤波顺序中,确定所述目标滤波顺序,包括:
将所述N种滤波顺序中第一滤波代价最小的一种滤波顺序,确定为所述目标滤波顺序。
15.根据权利要求13所述的方法,其特征在于,所述方法还包括:
将第一信息写入码流,所述第一信息用于指示所述目标滤波顺序。
16.根据权利要求12所述的方法,其特征在于,所述确定所述当前图像块的第一色度分量和第二色度分量的目标滤波顺序,包括:
确定所述当前图像块的周围已滤波区域;
对于所述N种滤波顺序中的第i种滤波顺序,按照所述第i种滤波顺序,将所述周围已滤波区域的第一色度分量和第二色度分量,输入所述神经网络滤波器中进行滤波,确定所述周围已滤波区域在所述第i种滤波顺序下的第i个第二滤波代价,所述i为小于或等于N的正整数;
基于所述N种滤波顺序分别对应的第二滤波代价,从所述N种滤波顺序中,确定所述目标滤波顺序。
17.一种图像滤波装置,其特征在于,包括:
解码单元,用于对当前图像的码流进行解码,得到所述当前图像的残差值,并基于残差值,确定所述当前图像的重建图像;
顺序确定单元,用于对于所述重建图像中待滤波的当前图像块,确定所述当前图像块的第一色度分量和第二色度分量的目标滤波顺序,所述目标滤波顺序是通过解码码流或基于N种滤波顺序的滤波代价确定的,所述N为大于1的正整数;
滤波单元,用于基于所述目标滤波顺序,将所述当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到所述当前图像块的色度滤波块。
18.一种图像滤波装置,其特征在于,包括:
编码单元,用于对当前图像进行编码,得到所述当前图像的重建图像;
顺序确定单元,用于对于所述重建图像中待滤波的当前图像块,确定所述当前图像块的第一色度分量和第二色度分量的目标滤波顺序,所述目标滤波顺序是基于N种滤波顺序的滤波代价确定的,所述N为大于1的正整数;
滤波单元,用于基于所述目标滤波顺序,将所述当前图像块的第一色度分量和第二色度分量输入神经网络滤波器中进行滤波,得到所述当前图像块的滤波后图像块。
19.一种电子设备,包括处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现如上述权利要求1至11或12至16任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,用于存储计算机程序;
所述计算机程序使得计算机执行如上述权利要求1至11或12至16任一项所述的方法。
CN202310430930.XA 2023-04-14 2023-04-14 图像滤波方法、装置、设备及存储介质 Pending CN116405701A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310430930.XA CN116405701A (zh) 2023-04-14 2023-04-14 图像滤波方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310430930.XA CN116405701A (zh) 2023-04-14 2023-04-14 图像滤波方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116405701A true CN116405701A (zh) 2023-07-07

Family

ID=87014062

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310430930.XA Pending CN116405701A (zh) 2023-04-14 2023-04-14 图像滤波方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116405701A (zh)

Similar Documents

Publication Publication Date Title
CN114650419A (zh) 进行帧内预测的编码器、解码器和对应方法
KR20210125088A (ko) 매트릭스 기반 인트라 예측 및 2차 변환 코어 선택을 조화시키는 인코더, 디코더 및 대응 방법
CN111277828B (zh) 视频编解码方法、视频编码器和视频解码器
CN113784126A (zh) 图像编码方法、装置、设备及存储介质
CN115695784A (zh) 对图像的块进行编码的方法,编码设备和计算机可读介质
CN115426494A (zh) 编码器,解码器和使用压缩mv存储的对应方法
CN113411613B (zh) 对图像块进行视频译码的方法、解码设备和编/解码器
CN117426088A (zh) 视频编解码方法、设备、系统、及存储介质
US20230042484A1 (en) Decoding method and coding method for unmatched pixel, decoder, and encoder
CN113170118A (zh) 视频译码中进行色度帧内预测的方法及装置
CN113938679B (zh) 图像类型的确定方法、装置、设备及存储介质
CN114205582B (zh) 用于视频编解码的环路滤波方法、装置及设备
CN117981307A (zh) 视频编解码方法、设备、系统、及存储介质
CN113973210A (zh) 媒体文件封装方法、装置、设备及存储介质
CN116405701A (zh) 图像滤波方法、装置、设备及存储介质
WO2023220946A1 (zh) 视频编解码方法、装置、设备、系统及存储介质
WO2023184248A1 (zh) 视频编解码方法、装置、设备、系统及存储介质
CN116760976B (zh) 仿射预测决策方法、装置、设备及存储介质
WO2023184747A1 (zh) 视频编解码方法、装置、设备、系统及存储介质
WO2023221599A1 (zh) 图像滤波方法、装置及设备
WO2023236113A1 (zh) 视频编解码方法、装置、设备、系统及存储介质
CN113766227B (zh) 用于图像编码和解码的量化和反量化方法及装置
WO2023122969A1 (zh) 帧内预测方法、设备、系统、及存储介质
US20230421765A1 (en) Video coding and decoding method and system, and video coder and video decoder
CN113891084B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40089294

Country of ref document: HK