CN113784146A - 环路滤波方法和装置 - Google Patents

环路滤波方法和装置 Download PDF

Info

Publication number
CN113784146A
CN113784146A CN202011036512.5A CN202011036512A CN113784146A CN 113784146 A CN113784146 A CN 113784146A CN 202011036512 A CN202011036512 A CN 202011036512A CN 113784146 A CN113784146 A CN 113784146A
Authority
CN
China
Prior art keywords
pixel matrix
matrix
pixel
corresponding positions
input
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
CN202011036512.5A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to PCT/CN2021/098251 priority Critical patent/WO2021249290A1/zh
Publication of CN113784146A publication Critical patent/CN113784146A/zh
Priority to US18/063,955 priority patent/US12052443B2/en
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
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/182Methods 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 pixel
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks

Landscapes

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

Abstract

本申请提供了环路滤波方法及装置。涉及基于人工智能(AI)的视频或图像压缩技术领域领域,具体涉及基于神经网络的视频压缩技术领域。该方法包括:获取第一像素矩阵,第一像素矩阵中的对应位置的像素点的值对应于第一图像块中的对应位置的像素的亮度值;获取第二像素矩阵,第二像素矩阵中的对应位置的像素点对应于第一图像块中的对应位置的像素的亮度值对应的量化步长值;通过滤波网络对输入像素矩阵进行滤波处理得到输出像素矩阵,滤波网络为经训练得到的具有滤波功能的神经网络,输出像素矩阵包括第三像素矩阵,输入像素矩阵至少与第一像素矩阵和所述第二像素矩阵相关。本申请能够针对各种质量的重构图像提升滤波效果。

Description

环路滤波方法和装置
本申请要求于2020年6月10日提交中国专利局、申请号为202010525274.8、申请名称为“环路滤波方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明实施例涉及基于人工智能(AI)的视频或图像压缩技术领域,尤其涉及一种环 路滤波方法及装置。
背景技术
视频编码(视频编码和解码)广泛用于数字视频应用,例如广播数字电视、互联网和 移动网络上的视频传输、视频聊天和视频会议等实时会话应用、DVD和蓝光光盘、视频内容采集和编辑***以及可携式摄像机的安全应用。
即使在影片较短的情况下也需要对大量的视频数据进行描述,当数据要在带宽容量受 限的网络中发送或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压 缩然后在现代电信网络中传输。由于内存资源可能有限,当在存储设备上存储视频时,视 频的大小也可能成为问题。视频压缩设备通常在信源侧使用软件和/或硬件,以在传输或存 储之前对视频数据进行编码,从而减少用来表示数字视频图像所需的数据量。然后,压缩 的数据在目的地侧由视频解压缩设备接收。在有限的网络资源以及对更高视频质量的需求 不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术能够提高压缩率而几乎 不影响图像质量。
近年来,将深度学习应用于在图像和视频编解码领域逐渐成为一种趋势。采用混合架 构的视频编码器和视频解码器中,可以通过环路滤波模块去除重建图像中的块效应、振铃 效应等编码失真。相关技术中借由神经网络实现环路滤波模块的滤波功能,进而对输入至 神经网络的重建图像或重建图像块信息进行滤波处理,得到滤波后的重建图像或重建图像 块。但是该方法对不同质量的输入图像或图像块无法均达到良好的滤波效果。
发明内容
本申请提供一种环路滤波方法及装置,能够针对各种质量的重构图像提升滤波效果。
上述和其它目标通过独立权利要求的主题实现。其它实现方式在从属权利要求、具体 实施方式和附图中显而易见。
具体实施例在所附独立权利要求中概述,其它实施例在从属权利要求中概述。
第一方面,本申请涉及环路滤波方法。所述方法由编码器或解码器中的环路滤波器执 行。所述方法包括:
获取第一像素矩阵,所述第一像素矩阵中的对应位置的元素对应于(例如表示)第一 图像块中的对应位置的像素的亮度值,所述第一图像块为重建图像块或者重建图像中的图 像块;获取第二像素矩阵,所述第二像素矩阵中的对应位置的元素对应于(例如表示)所 述第一图像块中的对应位置的像素的亮度值所对应的量化步长值,所述第二像素矩阵的尺 寸和所述第一像素矩阵的尺寸相等;通过滤波网络对输入像素矩阵进行滤波处理得到输出 像素矩阵,所述滤波网络为经训练得到的具有滤波功能的神经网络,所述输出像素矩阵包 括第三像素矩阵,所述第三像素矩阵中的对应位置的元素对应于第二图像块中的对应位置 的像素的亮度值或者像素的亮度残差值,所述第二图像块为所述第一图像块经滤波后得到 的图像块,其中所述输入像素矩阵至少与所述第一像素矩阵和所述第二像素矩阵相关。
某个图像块(例如第一图像块)可以理解为像素矩阵X,该像素矩阵X中的对应位置的元素可以理解为该图像块中的对应位置的像素点(或者像素值,例如像素值包括像素的亮度值或像素的色度值)。示例性的,该图像块的尺寸为64×64,表示该图像块的像素点 分布为64行×64列,x(i,j)表示该图像块中的第i行、第j列的像素点(或者像素值)。与 之对应,输入像素矩阵A包括64行和64列,共有64×64个元素,A(i,j)表示该像素矩阵 A中的第i行、第j列的元素。A(i,j)和x(i,j)对应(例如A(i,j)表示像素点x(i,j)的值),输 入像素矩阵A中的对应位置的元素对应于(例如表示)该图像块中的对应位置的像素点的 亮度值,即表示元素A(i,j)的取值是像素点x(i,j)的亮度值。可选的,在另一种示例下,输 入像素矩阵A中的对应位置的元素也可以对应于(例如表示)该图像块中的对应位置的像 素的其他值,即元素A(i,j)的取值可以是像素点x(i,j)的其他值,例如像素点x(i,j)的亮度值 对应的量化步长值,又例如像素点x(i,j)的色度值,又例如像素点x(i,j)的色度值对应的量 化步长值,又例如像素点x(i,j)的亮度残差值,又例如像素点x(i,j)的色度残差值等,对此本申请不做具体限定。应当理解的是,当输入像素矩阵A中的对应位置的元素表示该图像块中的对应位置的像素的亮度值,输入像素矩阵A就是前述第一像素矩阵的示例;或者, 当输入像素矩阵A中的对应位置的元素表示该图像块中的对应位置的像素的亮度值对应 的量化步长值,输入像素矩阵A就是前述第二像素矩阵的示例;应当理解的是,当输入像 素矩阵A中的对应位置的元素表示该图像块中的对应位置的像素的色度值,输入像素矩 阵A就是第五像素矩阵的示例;或者,当输入像素矩阵A中的对应位置的元素表示该图 像块中的对应位置的像素的色度值对应的量化步长值,输入像素矩阵A就是第六像素矩 阵的示例。
同理,滤波网络输出的输出像素矩阵B和经过滤波后的图像块(例如第二图像块)对 应,即输出像素矩阵中的元素B(i,j)和经过滤波后的图像块中的像素y(i,j)对应,在一种示 例下,元素B(i,j)的值可以表示像素y(i,j)的亮度值。可选的,在另一种示例下,像素矩阵 B中的对应位置的元素也可以对应于(例如表示)该经过滤波后的图像块中的对应位置的 像素的其他值,即元素B(i,j)的取值可以是像素点y(i,j)的其他值,例如像素点y(i,j)的亮度 残差值,又例如像素点y(i,j)的色度值,又例如像素点y(i,j)的色度残差值等,对此本申请 不做具体限定。应当理解的是,当输出像素矩阵B中的对应位置的元素表示经过滤波后的 图像块中的对应位置的像素的亮度值,输出像素矩阵B是第三像素矩阵的示例;或者,当 输出像素矩阵B中的对应位置的元素表示经过滤波后的图像块中的对应位置的像素的亮 度残差值,输出像素矩阵B是第三像素矩阵的另一种示例;应当理解的是,当输出像素矩 阵B中的对应位置的元素表示经过滤波后的图像块中的对应位置的像素的色度值,输出 像素矩阵B是第七像素矩阵的示例;或者,当输出像素矩阵B中的对应位置的元素表示 该经过滤波后的图像块中的对应位置的像素的色度残差值,输出像素矩阵B是第八像素 矩阵的示例。
上述第一图像块可以是编码器或解码器重建得到的重建图像中的一个图像块,也可以 是编码器或解码器重建得到的重建图像块。本申请实施例的环路滤波方法包括但不限于对 重建图像块进行滤波处理,应当理解的是,也可以适用于对重建图像进行滤波处理,即将 本申请实施例的方法中的“重建图像块”适应性替换为重建图像,这里不再赘述。
需要说明的是,第一图像块和第二图像块还可以采用RGB格式,此时第一像素矩阵中的对应位置的元素可以对应于(例如表示)第一图像块中的对应位置的像素的R值、G 值或者B值,第二像素矩阵中的对应位置的元素可以对应于(例如表示)第一图像块中的 对应位置的像素的R值、G值或者B值对应的量化步长值,或者三者共同采用的量化步 长值。
本申请采用滤波网络实现滤波的同时引入了重建图像块的每个像素的量化步长值,从 而能够更好的对输入滤波网络的对应于图像块的像素矩阵进行滤波处理,提升滤波效果。
在一种可能的实现方式中,所述输入像素矩阵包括所述第一像素矩阵和所述第二像素 矩阵;或者,所述输入像素矩阵为对所述第一像素矩阵和所述第二像素矩阵进行预处理得 到的第一预处理矩阵;或者,所述输入像素矩阵包括所述第一像素矩阵的归一化矩阵和所 述第二像素矩阵的归一化矩阵;或者,所述输入像素矩阵为对所述第一像素矩阵的归一化 矩阵和所述第二像素矩阵的归一化矩阵进行预处理得到的第二预处理矩阵。所述归一化矩 阵是指将对应的矩阵中的对应位置的元素的取值进行归一化处理得到的矩阵。
输入像素矩阵是滤波网络的处理对象,输入像素矩阵可以包括获取到的上述第一像素 矩阵和第二像素矩阵,即直接将这两个像素矩阵输入滤波网络进行滤波处理。
输入像素矩阵在被输入滤波网络之前,也可以是根据滤波网络在训练时的训练数据形 式,以及滤波网络的处理能力,对一个或多个像素矩阵进行预处理和/或归一化处理得到的 像素矩阵。其中,归一化处理的目的是为了使元素的值调整为一个统一的取值区间,例如 [0,1]或者[-0.5,0.5],这样在滤波网络的计算中可以提高运算效率。预处理可以包括矩阵相 加、矩阵相乘、矩阵合并(contact)等,这样可以减少滤波网络的计算量。因此输入像素 矩阵可以包括第一像素矩阵的归一化矩阵和第二像素矩阵的归一化矩阵,即将第一像素矩 阵和第二像素矩阵分别进行归一化处理,再将其归一化矩阵输入滤波网络进行处理。或者, 输入像素矩阵可以是对第一像素矩阵和第二像素矩阵进行相加、相乘或合并后得到的预处 理矩阵。又或者,输入像素矩阵可以是对第一像素矩阵的归一化矩阵和第二像素矩阵的归 一化矩阵进行相加、相乘或合并后得到的预处理矩阵。
矩阵相加表示将两个矩阵对应位置的元素的值相加。矩阵相乘表示将两个矩阵对应位 置的元素的值相乘。矩阵合并(contact)表示将矩阵的通道数增加,例如,一个矩阵是二 维矩阵,其尺寸为m×n,另一个矩阵也是二维矩阵,其尺寸也是m×n,这两个矩阵合并得到的是三维矩阵,其尺寸为m×n×2。
在一种可能的实现方式中,所述第三像素矩阵中的对应位置的元素表示所述第二图像 块中的对应位置的像素的亮度值。
在一种可能的实现方式中,所述第三像素矩阵中的对应位置的元素表示所述第二图像 块中的对应位置的像素的亮度残差值;所述方法还包括:将所述第一像素矩阵和所述第三 像素矩阵中的对应位置的元素的值相加得到第四像素矩阵,所述第四像素矩阵中的对应位 置的元素对应于(例如表示)所述第二图像块中的对应位置的像素的亮度值。
根据滤波网络在训练时的训练数据形式,以及滤波网络的处理能力,输出滤波网络的 第三像素矩阵中的元素可以表示两个含义,其中一个是对应于第二图像块中对应位置的像 素的亮度值,即滤波网络可以直接输出表征滤波后的第二图像块的亮度值的第三像素矩阵; 其中另一个是第二图像块中对应位置的像素的亮度残差值,即滤波网络输出表征滤波后的 第二图像块的亮度的残差值的第三像素矩阵,此时需要对该第三像素矩阵进行进一步处理 才能得到滤波后的第二图像块的亮度值的第四像素矩阵,该处理是将未经滤波的第一图像 块的表征亮度值的第一像素矩阵和表征滤波后的第二图像块的亮度残差值的第三像素矩 阵相加,得到表征滤波后的第二图像块的亮度值的第四像素矩阵。这样不对滤波网络做具 体限定,可以是滤波网络存在更多的可能性。
在一种可能的实现方式中,当所述输入像素矩阵为归一化矩阵时,所述方法还包括: 对所述第三像素矩阵中的对应位置的元素的值进行反归一化处理。
在一种可能的实现方式中,当所述输入像素矩阵经过归一化处理时,所述将所述第一 像素矩阵和所述第三像素矩阵中的对应位置的元素的值相加得到第四像素矩阵,包括:将 所述第一像素矩阵和经过反归一化处理的第三像素矩阵中的对应位置的元素的值相加得 到所述第四像素矩阵。
如上所述,如果在将矩阵输入滤波网络之前,对其进行了归一化处理,将矩阵中的所 有元素的值规范至同一个区间内,这是为了提高运算效率,但元素的值已经不能表征图像 块中的对应位置的像素的具有含义的值。因此为了适应后续的图像处理过程,在滤波网络 输出矩阵后,需要对该矩阵进行反归一化处理,恢复矩阵中的元素所表征的含义。
在一种可能的实现方式中,所述方法还包括:获取第五像素矩阵,所述第五像素矩阵 中的对应位置的元素对应于(例如表示)所述第一图像块中的对应位置的像素的色度值; 相应地,所述输入像素矩阵至少与所述第一像素矩阵、所述第二像素矩阵和所述第五像素 矩阵相关。在一种可能的实现方式中,所述输入像素矩阵包括所述第一像素矩阵、所述第 二像素矩阵和所述第五像素矩阵;或者,所述输入像素矩阵包括对所述第一像素矩阵和所 述第二像素矩阵进行预处理得到的第一预处理矩阵和所述第五像素矩阵;或者,所述输入 像素矩阵包括所述第一像素矩阵的归一化矩阵、所述第二像素矩阵的归一化矩阵和所述所 第五像素矩阵的归一化矩阵;或者,所述输入像素矩阵包括对所述第一像素矩阵的归一化 矩阵和所述第二像素矩阵的归一化矩阵进行预处理得到的第二预处理矩阵和所述第五像 素矩阵的归一化矩阵。
除了表征第一图像块中的像素的亮度值和亮度值对应的量化步长值的两个像素矩阵 外,本申请还可以在滤波网络中加入表征第一图像块中的像素的色度值作为滤波的参考因 素。第一图像块中的像素的亮度值和色度值具有相关性,因此在滤波时,像素的亮度值和 色度值可以对彼此起到辅助滤波的效果。因此训练滤波网络时,训练数据中加上图像块的 色度矩阵,这样滤波网络可以在滤波时再参考色度信息,提高滤波效果。因此本申请还可 以在输入像素矩阵中加上表征第一图像块中的像素的色度值的第五像素矩阵的因素。而输 入像素矩阵的具体内容和获取方式可参见上述描述,此处不再赘述。
在一种可能的实现方式中,所述方法还包括:获取第六像素矩阵,所述第六像素矩阵 中的对应位置的元素对应于(例如表示)所述第一图像块中的对应位置的像素的色度值对 应的量化步长值;相应地,所述输入像素矩阵至少与所述第一像素矩阵、所述第二像素矩 阵、所述第五像素矩阵和所述第六像素矩阵相关。
除了表征第一图像块中的像素的亮度值、亮度值对应的量化步长值以及色度值的三个 像素矩阵外,本申请还可以在滤波网络中加入表征第一图像块中的像素的色度值对应的量 化步长作为滤波的参考因素。训练滤波网络时,训练数据中再加上图像块的色度值对应的 量化步长矩阵,这样滤波网络可以在滤波时基于该量化步长矩阵进一步细化神经网络的滤 波功能,达到更精确的滤波效果。因此本申请还可以在输入像素矩阵中加上表征第一图像 块中的像素的色度值对应的量化步长值的第六像素矩阵的因素。而输入像素矩阵的具体内 容和获取方式可参见上述描述,此处不再赘述。
在一种可能的实现方式中,所述输入像素矩阵包括所述第一像素矩阵、所述第二像素 矩阵、所述第五像素矩阵和所述第六像素矩阵;或者,所述输入像素矩阵包括对所述第一 像素矩阵和所述第二像素矩阵进行预处理得到的第一预处理矩阵、所述第五像素矩阵和所 述第六像素矩阵;或者,所述输入像素矩阵包括所述第一像素矩阵、所述第二像素矩阵和 对所述第五像素矩阵和所述第六像素矩阵进行预处理得到的第三预处理矩阵;或者,所述 输入像素矩阵包括所述第一预处理矩阵和所述第三预处理矩阵;或者,所述输入像素矩阵 包括所述第一像素矩阵的归一化矩阵、所述第二像素矩阵的归一化矩阵、所述第五像素矩 阵的归一化矩阵和所述第六像素矩阵的归一化矩阵;或者,所述输入像素矩阵包括对所述 第一像素矩阵的归一化矩阵和所述第二像素矩阵的归一化矩阵进行预处理得到的第二预 处理矩阵、所述第五像素矩阵的归一化矩阵和所述第六像素矩阵的归一化矩阵;或者,所 述输入像素矩阵包括所述第一像素矩阵的归一化矩阵、所述第二像素矩阵的归一化矩阵和 对所述第五像素矩阵的归一化矩阵和所述第六像素矩阵的归一化矩阵进行预处理得到的 第四预处理矩阵;或者,所述输入像素矩阵包括所述第二预处理矩阵和所述第四预处理矩 阵。
同理,有了色度信息,训练滤波网络时还可以加上色度值对应的量化步长值,因此本 申请还可以在输入像素矩阵中加上表征第一图像块中的像素的色度值对应的量化步长值 的第六像素矩阵的因素。而输入像素矩阵的具体内容和获取方式也可参见上述描述,此处 不再赘述。
在一种可能的实现方式中,所述通过滤波网络对输入像素矩阵进行滤波处理得到输出 像素矩阵包括:通过所述滤波网络对所述输入像素矩阵进行滤波处理得到第三像素矩阵和 第七像素矩阵,所述第七像素矩阵中的对应位置的元素对应于(例如表示)所述第二图像 块中的对应位置的像素的色度值。
有了表征第一图像块中的像素的色度值的第五像素矩阵,甚至有了表征第一图像块中 的像素的色度值对应的量化步长值的第六像素矩阵,滤波网络可以被训练得能够具有滤波 输出用于表征滤波后的第二图像块中的像素的色度值的第七像素矩阵,这样滤波网络可以 分别对第一图像块的亮度分量和色度分量进行滤波处理,实现第一图像块在不同维度上的 滤波处理。
在一种可能的实现方式中,当所述输入像素矩阵为归一化矩阵时,所述方法还包括: 对所述第七像素矩阵中的对应位置的元素的值进行反归一化处理。
反归一化处理的原理和上述第三像素矩阵的反归一化处理类似,此处不再赘述。
在一种可能的实现方式中,所述通过滤波网络对输入像素矩阵进行滤波处理得到第三 像素矩阵包括:通过所述滤波网络对所述输入像素矩阵进行滤波处理得到第三像素矩阵和 第八像素矩阵,所述第八像素矩阵中的对应位置的元素对应于(例如表示)所述第二图像 块中的对应位置的像素的色度残差值;将所述第五像素矩阵和所述第八像素矩阵中的对应 位置的元素的值相加得到第九像素矩阵,所述第九像素矩阵中的对应位置的元素对应于 (例如表示)所述第二图像块中的对应位置的像素的色度值。
在一种可能的实现方式中,当所述输入像素矩阵为归一化矩阵时,所述方法还包括: 对所述第八像素矩阵中的对应位置的元素的值进行反归一化处理;相应地,所述将所述第 五像素矩阵和所述第八像素矩阵中的对应位置的元素的值相加得到第九像素矩阵,包括: 将所述第五像素矩阵和经过反归一化处理的第八像素矩阵中的对应位置的元素的值相加 得到所述第九像素矩阵。
同理,滤波网络可以输出表征第二图像块的亮度残差值的第三像素矩阵,也可以输出 表征第二图像块的色度残差值的第八像素矩阵,而输出该第八像素矩阵的后续处理和第三 像素矩阵的后续处理类似,此处不再赘述。
在一种可能的实现方式中,所述预处理包括:将两个矩阵中的对应位置上的元素相加; 或者,将两个矩阵在深度方向上合并;或者,将两个矩阵中的对应位置上的元素相乘。
在一种可能的实现方式中,所述方法还包括:获取训练矩阵集合,其中所述训练矩阵 集合包括多个图像块的滤波前亮度矩阵(即未经过滤波的亮度矩阵)、量化步长矩阵和滤 波后亮度矩阵(即经过滤波的亮度矩阵),所述滤波前亮度矩阵中的对应位置的元素对应 于(例如表示)对应图像块中的对应位置的像素的滤波前的亮度值,所述量化步长矩阵中 的对应位置的元素对应于(例如表示)对应图像块中的对应位置的像素的亮度值对应的量 化步长值,所述滤波后亮度矩阵中的对应位置的元素对应于(例如表示)对应图像块中的 对应位置的像素的滤波后的亮度值;根据所述训练矩阵集合训练得到所述滤波网络。
在一种可能的实现方式中,所述训练矩阵集合还包括所述多个图像块的滤波前色度矩 阵(即未经过滤波的色度矩阵)和滤波后色度矩阵(即经过滤波的色度矩阵),所述滤波 前色度矩阵中的对应位置的元素对应于(例如表示)对应图像块中的对应位置的像素的滤 波前的色度值,所述滤波后色度矩阵中的对应位置的元素对应于(例如表示)对应图像块 中的对应位置的像素的滤波后的色度值。
如上所述,滤波网络作为神经网络,其所需要的输入、实现的功能以及可以得到的输 出,均与训练阶段的训练数据相关,本申请中训练数据即为上述训练矩阵集合。
在一种可能的实现方式中,所述滤波网络至少包括卷积层和激活层。
在一种可能的实现方式中,所述卷积层的卷积核的深度为2、3、4、5、6、16、24、 32、48、64或者128;所述卷积层中的卷积核的尺寸为1×1、3×3、5×5或者7×7。例如, 某一卷积层的尺寸为3×3×2×10,其中,3×3表示该卷积层中的卷积核的尺寸;2表示卷积 层中包含的卷积核的深度,输入该卷积层的数据通道数和卷积层中包含的卷积核的深度一 致,即输入该卷积层的数据通道数也是2;10表示卷积层中包含的卷积核的个数,输出该 卷积层的数据通道数和卷积层中包含的卷积核的个数一致,即输出该卷积层的数据通道数 也是10。
在一种可能的实现方式中,所述滤波网络包括卷积神经网络CNN、深度神经网络DNN 或者循环神经网络RNN。
第二方面,本申请提供一种编码器,包括处理电路,用于执行根据上述第一方面任一 项所述的方法。
第三方面,本申请提供一种解码器,包括处理电路,用于执行上述第一方面任一项所 述的方法。
第四方面,本申请提供一种计算机程序产品,包括程序代码,当其在计算机或处理器 上执行时,用于执行上述第一方面任一项所述的方法。
第五方面,本申请提供一种编码器,包括:一个或多个处理器;非瞬时性计算机可读 存储介质,耦合到所述处理器并存储由所述处理器执行的程序,其中所述程序在由所述处 理器执行时,使得所述解码器执行上述第一方面任一项所述的方法。
第六方面,本申请提供一种解码器,包括:一个或多个处理器;非瞬时性计算机可读 存储介质,耦合到所述处理器并存储由所述处理器执行的程序,其中所述程序在由所述处 理器执行时,使得所述编码器执行上述第一方面任一项所述的方法。
第七方面,本申请提供一种非瞬时性计算机可读存储介质,包括程序代码,当其由计 算机设备执行时,用于执行上述第一方面任一项所述的方法。
第八方面,本发明涉及译码装置,有益效果可以参见第一方面的描述此处不再赘述。 所述译码装置具有实现上述第一方面的方法实施例中行为的功能。所述功能可以通过硬件 实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能 相对应的模块。在一个可能的设计中,所述译码装置包括:重建模块,用于获取第一像素 矩阵;量化模块,用于获取第二像素矩阵;环路滤波模块,用于实现上述第一方面任一项所述的方法。这些模块可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
附图及以下说明中将详细描述一个或多个实施例。其它特征、目的和优点在说明、附 图以及权利要求中是显而易见的。
附图说明
下面对本申请实施例用到的附图进行介绍。
图1A为用于实现本发明实施例的视频译码***示例的框图,其中该***利用神经网 络来编码或解码视频图像;
图1B为用于实现本发明实施例的视频译码***另一示例的框图,其中该视频编码器 和/或视频解码器使用神经网络来编码或解码视频图像;
图2为用于实现本发明实施例的视频编码器实例示例的框图,其中该视频编码器20 使用神经网络来编码视频图像;
图3为用于实现本发明实施例的视频解码器实例示例的框图,其中该视频解码器30 使用神经网络来解码视频图像;
图4为用于实现本发明实施例的视频译码装置的示意性框图;
图5为用于实现本发明实施例的视频译码装置的示意性框图
图6a-6c是本申请实施例的输入滤波网络的矩阵的示意图;
图7a-7e是本申请实施例提供的引入到环路滤波模块中的经训练的神经网络的示意图;
图8是示出根据本申请一种实施例的环路滤波方法的过程800的流程图;
图9a-9l示出了滤波网络的输入像素矩阵的几种示例性的示例;
图10是示出根据本申请一种实施例的译码装置1000的结构示意图。
具体实施方式
本申请实施例提供一种基于AI的视频图像压缩技术,尤其是提供一种基于神经网络 的视频压缩技术,具体提供一种基于神经网络的滤波技术,以改进传统的混合视频编解码 ***。
视频编码通常是指处理形成视频或视频序列的图像序列。在视频编码领域,术语“图 像(picture)”、“帧(frame)”或“图片(image)”可以用作同义词。视频编码(或通常称为编码)包括视频编码和视频解码两部分。视频编码在源侧执行,通常包括处理(例如, 压缩)原始视频图像以减少表示该视频图像所需的数据量(从而更高效存储和/或传输)。 视频解码在目的地侧执行,通常包括相对于编码器作逆处理,以重建视频图像。实施例涉 及的视频图像(或通常称为图像)的“编码”应理解为视频图像或视频序列的“编码”或“解码”。编码部分和解码部分也合称为编解码(编码和解码,CODEC)。
在无损视频编码情况下,可以重建原始视频图像,即重建的视频图像与原始视频图像 具有相同的质量(假设存储或传输期间没有传输损耗或其它数据丢失)。在有损视频编码 情况下,通过量化等执行进一步压缩,来减少表示视频图像所需的数据量,而解码器侧无 法完全重建视频图像,即重建的视频图像的质量比原始视频图像的质量较低或较差。
几个视频编码标准属于“有损混合型视频编解码”(即,将像素域中的空间和时间预测 与变换域中用于应用量化的2D变换编码结合)。视频序列中的每个图像通常分割成不重 叠的块集合,通常在块级上进行编码。换句话说,编码器通常在块(视频块)级处理及编码视频,例如,通过空间(帧内)预测和时间(帧间)预测来产生预测块;从当前块(当 前处理/待处理的块)中减去预测块,得到残差块;在变换域中变换残差块并量化残差块, 以减少待传输(压缩)的数据量,而解码器侧将相对于编码器的逆处理部分应用于编码或 压缩的块,以重建用于表示的当前块。另外,编码器需要重复解码器的处理步骤,使得编 码器和解码器生成相同的预测(例如,帧内预测和帧间预测)和/或重建像素,用于处理, 即编码后续块。
在以下译码***10的实施例中,编码器20和解码器30根据图1A至图3进行描述。
图1A为示例性译码***10的示意性框图,例如可以利用本申请技术的视频译码***10(或简称为译码***10)。视频译码***10中的视频编码器20(或简称为编码器 20)和视频解码器30(或简称为解码器30)代表可用于根据本申请中描述的各种示例执 行各技术的设备等。
如图1A所示,译码***10包括源设备12,源设备12用于将编码图像等编码图像数据21提供给用于对编码图像数据21进行解码的目的设备14。
源设备12包括编码器20,另外即可选地,可包括图像源16、图像预处理器等预处理器(或预处理单元)18、通信接口(或通信单元)22。
图像源16可包括或可以为任意类型的用于捕获现实世界图像等的图像捕获设备,和/ 或任意类型的图像生成设备,例如用于生成计算机动画图像的计算机图形处理器或任意类 型的用于获取和/或提供现实世界图像、计算机生成图像(例如,屏幕内容、虚拟现实(virtual reality,VR)图像和/或其任意组合(例如增强现实(augmented reality,AR)图像)的设 备。所述图像源可以为存储上述图像中的任意图像的任意类型的内存或存储器。
为了区分预处理器(或预处理单元)18执行的处理,图像(或图像数据)17也可称为原始图像(或原始图像数据)17。
预处理器18用于接收(原始)图像数据17,并对图像数据17进行预处理,得到预处理图像(预处理图像数据)19。例如,预处理器18执行的预处理可包括修剪、颜色格式 转换(例如从RGB转换为YCbCr)、调色或去噪。可以理解的是,预处理单元18可以为 可选组件。
视频编码器(或编码器)20用于接收预处理图像数据19并提供编码图像数据21(下面将根据图2等进一步描述)。
源设备12中的通信接口22可用于:接收编码图像数据21并通过通信信道13向目的设备14等另一设备或任何其它设备发送编码图像数据21(或其它任意处理后的版本), 以便存储或直接重建。
目的设备14包括解码器30,另外即可选地,可包括通信接口(或通信单元)28、后处理器(或后处理单元)32和显示设备34。
目的设备14中的通信接口28用于直接从源设备12或从存储设备等任意其它源设备 接收编码图像数据21(或其它任意处理后的版本),例如,存储设备为编码图像数据存储设备,并将编码图像数据21提供给解码器30。
通信接口22和通信接口28可用于通过源设备12与目的设备14之间的直连通信链路,例如直接有线或无线连接等,或者通过任意类型的网络,例如有线网络、无线网络或 其任意组合、任意类型的私网和公网或其任意类型的组合,发送或接收编码图像数据(或 编码数据)21。
例如,通信接口22可用于将编码图像数据21封装为报文等合适的格式,和/或使用任意类型的传输编码或处理来处理所述编码后的图像数据,以便在通信链路或通信网络上进行传输。
通信接口28与通信接口22对应,例如,可用于接收传输数据,并使用任意类型的对应传输解码或处理和/或解封装对传输数据进行处理,得到编码图像数据21。
通信接口22和通信接口28均可配置为如图1A中从源设备12指向目的设备14的对应通信信道13的箭头所指示的单向通信接口,或双向通信接口,并且可用于发送和接收 消息等,以建立连接,确认并交换与通信链路和/或例如编码后的图像数据传输等数据传输相关的任何其它信息,等等。
视频解码器(或解码器)30用于接收编码图像数据21并提供解码图像(或解码图像数据)31(下面将根据图3等进一步描述)。
后处理器32用于对解码后的图像等解码图像数据31(也称为重建后的图像数据)进 行后处理,得到后处理后的图像等后处理图像数据33。后处理单元32执行的后处理可以包括例如颜色格式转换(例如从YCbCr转换为RGB)、调色、修剪或重采样,或者用于 产生供显示设备34等显示的解码图像数据31等任何其它处理。
显示设备34用于接收后处理图像数据33,以向用户或观看者等显示图像。显示设备 34可以为或包括任意类型的用于表示重建后图像的显示器,例如,集成或外部显示屏或显 示器。例如,显示屏可包括液晶显示器(liquid crystal display,LCD)、有机发光二极管 (organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微型LED显示器、 硅基液晶显示器(liquid crystal on silicon,LCoS)、数字光处理器(digital lightprocessor, DLP)或任意类型的其它显示屏。
译码***10还包括训练引擎25,训练引擎25用于训练编码器20(尤其是编码器20中的环路滤波器220)或解码器30(尤其是解码器30中的环路滤波器320)以对重构图像 进行滤波处理。
本申请实施例中训练数据包括:训练矩阵集合,该训练矩阵集合包括图像块的滤波前 亮度矩阵、量化步长矩阵和滤波后亮度矩阵,其中滤波前亮度矩阵中的对应位置的像素点 对应于对应图像块中的对应位置的像素的滤波前的亮度值,量化步长矩阵中的对应位置的 像素点对应于对应图像块中的对应位置的像素的亮度值对应的量化步长值,滤波后亮度矩 阵中的对应位置的像素点对应于对应图像块中的对应位置的像素的滤波后的亮度值。
训练矩阵集合中的多个矩阵例如可以以图6a至6c所示的方式输入训练引擎25。如图 6a所示,将训练矩阵集合中的多个矩阵直接输入训练引擎25,该多个矩阵均是二维矩阵。 如图6b所示,选取训练矩阵集合中的多个矩阵的部分或全部做合并处理得到多维矩阵, 再将该多维矩阵输入训练引擎25。如图6c所示,选取训练矩阵集合中的多个矩阵的部分 或全部做相加(或相乘)处理得到二维矩阵,再将该二维矩阵输入训练引擎25。
上述训练数据可以存入数据库(未示意)中,训练引擎25基于训练数据训练得到目标模型(例如:可以是用于环路滤波的神经网络等)。需要说明的是,本申请实施例对于 训练数据的来源不做限定,例如可以是从云端或其他地方获取训练数据进行模型训练。
训练引擎25训练目标模型的过程使得滤波前像素逼近原始像素值。每个训练过程可 以使用64个图像的小批量大小和1e-4的初始学习率,遵循步长大小为10。在训练数据可以是通过编码器在不同QP量化参数设置下生成的数据。目标模型能够用于实现本申请实施例提供的环路滤波方法,即,将重构得到的图像或图像块通过相关预处理后输入该目标模型,可以得到滤波后的图像或图像块。本申请实施例中的目标模型具体可以为滤波网络,下文将结合图7a-7e详细说明目标模型。
训练引擎25训练得到的目标模型可以应用于译码***10中,例如,应用于图1A所示的源设备12(例如编码器20)或目的设备14(例如解码器30)。训练引擎25可以在 云端训练得到目标模型,然后译码***10从云端下载并使用该目标模型;或者,训练引 擎25可以在云端训练得到目标模型并使用该目标模型,译码***10从云端直接获取处理 结果。例如,训练引擎25训练得到具备滤波功能的目标模型,译码***10从云端下载该 目标模型,然后编码器20中的环路滤波器220或解码器30中的环路滤波器320可以根据 该目标模型对输入的重建的图像或图像块进行滤波处理,得到滤波后的图像或图像块。又 例如,训练引擎25训练得到具备滤波功能的目标模型,译码***10无需从云端下载该目 标模型,编码器20或解码器30将重建的图像或图像块传输给云端,由云端通过目标模型 对该重建的图像或图像块进行滤波处理,得到滤波后的图像或图像块并传输给编码器20 或解码器30。
尽管图1A示出了源设备12和目的设备14作为独立的设备,但设备实施例也可以同时包括源设备12和目的设备14或同时包括源设备12和目的设备14的功能,即同时包括 源设备12或对应功能和目的设备14或对应功能。在这些实施例中,源设备12或对应功 能和目的设备14或对应功能可以使用相同硬件和/或软件或通过单独的硬件和/或软件或 其任意组合来实现。
根据描述,图1A所示的源设备12和/或目的设备14中的不同单元或功能的存在和(准确)划分可能根据实际设备和应用而有所不同,这对技术人员来说是显而易见的。
编码器20(例如视频编码器20)或解码器30(例如视频解码器30)或两者都可通过如图1B所示的处理电路实现,例如一个或多个微处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可 编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件、视频编码专用处 理器或其任意组合。编码器20可以通过处理电路46实现,以包含参照图2编码器20论述的各种模块和/或本文描述的任何其它编码器***或子***。解码器30可以通过处理电路46实现,以包含参照图3解码器30论述的各种模块和/或本文描述的任何其它解码器 ***或子***。所述处理电路46可用于执行下文论述的各种操作。如图5所示,如果部 分技术在软件中实施,则设备可以将软件的指令存储在合适的非瞬时性计算机可读存储介 质中,并且使用一个或多个处理器在硬件中执行指令,从而执行本发明技术。视频编码器 20和视频解码器30中的其中一个可作为组合编解码器(encoder/decoder,CODEC)的一 部分集成在单个设备中,如图1B所示。
源设备12和目的设备14可包括各种设备中的任一种,包括任意类型的手持设备或固 定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板或平板电脑、相机、台 式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备 (例如,内容业务服务器或内容分发服务器)、广播接收设备、广播发射设备,等等,并 可以不使用或使用任意类型的操作***。在一些情况下,源设备12和目的设备14可配备 用于无线通信的组件。因此,源设备12和目的设备14可以是无线通信设备。
在一些情况下,图1A所示的视频译码***10仅仅是示例性的,本申请提供的技术可 适用于视频编码设置(例如,视频编码或视频解码),这些设置不一定包括编码设备与解码设备之间的任何数据通信。在其它示例中,数据从本地存储器中检索,通过网络发送, 等等。视频编码设备可以对数据进行编码并将数据存储到存储器中,和/或视频解码设备可以从存储器中检索数据并对数据进行解码。在一些示例中,编码和解码由相互不通信而只是编码数据到存储器和/或从存储器中检索并解码数据的设备来执行。
图1B是根据一示例性实施例的包含图2的视频编码器20和/或图3的视频解码器30的视频译码***40的实例的说明图。视频译码***40可以包含成像设备41、视频编码 器20、视频解码器30(和/或藉由处理电路46实施的视频编/解码器)、天线42、一个或 多个处理器43、一个或多个内存存储器44和/或显示设备45。
如图1B所示,成像设备41、天线42、处理电路46、视频编码器20、视频解码器30、 处理器43、内存存储器44和/或显示设备45能够互相通信。在不同实例中,视频译码系 统40可以只包含视频编码器20或只包含视频解码器30。
在一些实例中,天线42可以用于传输或接收视频数据的经编码比特流。另外,在一些实例中,显示设备45可以用于呈现视频数据。处理电路46可以包含专用集成电路(application-specific integrated circuit,ASIC)逻辑、图形处理器、通用处理器等。视频译 码***40也可以包含可选的处理器43,该可选处理器43类似地可以包含专用集成电路 (application-specific integrated circuit,ASIC)逻辑、图形处理器、通用处理器等。另外, 内存存储器44可以是任何类型的存储器,例如易失性存储器(例如,静态随机存取存储 器(static random access memory,SRAM)、动态随机存储器(dynamic randomaccess memory, DRAM)等)或非易失性存储器(例如,闪存等)等。在非限制性实例中,内存存储器44 可以由超速缓存内存实施。在其它实例中,处理电路46可以包含存储器(例如,缓存等) 用于实施图像缓冲器等。
在一些实例中,通过逻辑电路实施的视频编码器20可以包含(例如,通过处理电路46或内存存储器44实施的)图像缓冲器和(例如,通过处理电路46实施的)图形处理单 元。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包含通过处理电路46实 施的视频编码器20,以实施参照图2和/或本文中所描述的任何其它编码器***或子*** 所论述的各种模块。逻辑电路可以用于执行本文所论述的各种操作。
在一些实例中,视频解码器30可以以类似方式通过处理电路46实施,以实施参照图 3的视频解码器30和/或本文中所描述的任何其它解码器***或子***所论述的各种模块。 在一些实例中,逻辑电路实施的视频解码器30可以包含(通过处理电路46或内存存储器 44实施的)图像缓冲器和(例如,通过处理电路46实施的)图形处理单元。图形处理单 元可以通信耦合至图像缓冲器。图形处理单元可以包含通过处理电路46实施的视频解码 器30,以实施参照图3和/或本文中所描述的任何其它解码器***或子***所论述的各种 模块。
在一些实例中,天线42可以用于接收视频数据的经编码比特流。如所论述,经编码比特流可以包含本文所论述的与编码视频帧相关的数据、指示符、索引值、模式选择数据等,例如与编码分割相关的数据(例如,变换系数或经量化变换系数,(如所论述的)可 选指示符,和/或定义编码分割的数据)。视频译码***40还可包含耦合至天线42并用于 解码经编码比特流的视频解码器30。显示设备45用于呈现视频帧。
应理解,本申请实施例中对于参考视频编码器20所描述的实例,视频解码器30可以 用于执行相反过程。关于信令语法元素,视频解码器30可以用于接收并解析这种语法元素,相应地解码相关视频数据。在一些例子中,视频编码器20可以将语法元素熵编码成 经编码视频比特流。在此类实例中,视频解码器30可以解析这种语法元素,并相应地解 码相关视频数据。
为便于描述,参考通用视频编码(Versatile video coding,VVC)参考软件或由ITU-T 视频编码专家组(Video Coding Experts Group,VCEG)和ISO/IEC运动图像专家组(Motion Picture Experts Group,MPEG)的视频编码联合工作组(Joint CollaborationTeam on Video Coding,JCT-VC)开发的高性能视频编码(High-Efficiency VideoCoding,HEVC)描述本 发明实施例。本领域普通技术人员理解本发明实施例不限于HEVC或VVC。
编码器和编码方法
图2为用于实现本申请技术的视频编码器20的示例的示意性框图。在图2的示例中, 视频编码器20包括输入端(或输入接口)201、残差计算单元204、变换处理单元206、 量化单元208、反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、 解码图像缓冲器(decoded picture buffer,DPB)230、模式选择单元260、熵编码单元270 和输出端(或输出接口)272。模式选择单元260可包括帧间预测单元244、帧内预测单元 254和分割单元262。帧间预测单元244可包括运动估计单元和运动补偿单元(未示出)。 图2所示的视频编码器20也可称为混合型视频编码器或基于混合型视频编解码器的视频 编码器。
参见图2,环路滤波模块为经过训练的目标模型(亦称为神经网络),该神经网络用于处理输入图像或图像区域或图像块,以得到滤波后的图像或图像区域或图像块。例如,用于环路滤波的神经网络用于接收输入的图像或图像区域或图像块,例如,图6a至6c所 图示的输入图像数据,并且生成滤波后的图像或图像区域或图像块。下面将结合图7a-7e 详细地描述用于环路滤波的神经网络。
残差计算单元204、变换处理单元206、量化单元208和模式选择单元260组成编码器20的前向信号路径,而反量化单元210、逆变换处理单元212、重建单元214、缓冲器 216、环路滤波器220、解码图像缓冲器(decoded picture buffer,DPB)230、帧间预测单 元244和帧内预测单元254组成编码器的后向信号路径,其中编码器20的后向信号路径 对应于解码器的信号路径(参见图3中的解码器30)。反量化单元210、逆变换处理单元 212、重建单元214、环路滤波器220、解码图像缓冲器230、帧间预测单元244和帧内预 测单元254还组成视频编码器20的“内置解码器”。
量化
量化单元208用于通过例如标量量化或矢量量化对变换系数207进行量化,得到量化 变换系数209。量化变换系数209也可称为量化残差系数209。
量化过程可减少与部分或全部变换系数207有关的位深度。例如,可在量化期间将n 位变换系数向下舍入到m位变换系数,其中n大于m。可通过调整量化参数(quantizationparameter,QP)修改量化程度。例如,对于标量量化,可以应用不同程度的比例来实现较 细或较粗的量化。较小量化步长对应较细量化,而较大量化步长对应较粗量化。可通过量 化参数(quantization parameter,QP)指示合适的量化步长。例如,量化参数可以为合适的量化步长的预定义集合的索引。例如,较小的量化参数可对应精细量化(较小量化步长),较大的量化参数可对应粗糙量化(较大量化步长),反之亦然。量化可包括除以量化步长,而反量化单元210等执行的对应或逆解量化可包括乘以量化步长。根据例如HEVC一些 标准的实施例可用于使用量化参数来确定量化步长。一般而言,可以根据量化参数使用包 含除法的等式的定点近似来计算量化步长。可以引入其它比例缩放因子来进行量化和解量 化,以恢复可能由于在用于量化步长和量化参数的等式的定点近似中使用的比例而修改的 残差块的范数。在一种示例性实现方式中,可以合并逆变换和解量化的比例。或者,可以 使用自定义量化表并在比特流中等将其从编码器向解码器指示。量化是有损操作,其中量 化步长越大,损耗越大。
在一个实施例中,视频编码器20(对应地,量化单元208)可用于输出量化参数(quantization parameter,QP),例如,直接输出或由熵编码单元270进行编码或压缩后 输出,例如使得视频解码器30可接收并使用量化参数进行解码。
反量化
反量化单元210用于对量化系数执行量化单元208的反量化,得到解量化系数211,例如,根据或使用与量化单元208相同的量化步长执行与量化单元208所执行的量化方案的反量化方案。解量化系数211也可称为解量化残差系数211,对应于变换系数207,但 是由于量化造成损耗,反量化系数211通常与变换系数不完全相同。
重建
重建单元214(例如,求和器214)用于将变换块213(即重建残差块213)添加到预测块265,以在像素域中得到重建块215,例如,将重建残差块213的像素点值和预测块 265的像素点值相加。
滤波
环路滤波器单元220(或简称“环路滤波器”220)用于对重建块215进行滤波,得到滤 波块221,或通常用于对重建像素点进行滤波以得到滤波像素点值。例如,环路滤波器单元用于顺利进行像素转变或提高视频质量。环路滤波器单元220可包括一个或多个环路滤波器,例如去块滤波器、像素点自适应偏移(sample-adaptive offset,SAO)滤波器或一个或多个其它滤波器,例如自适应环路滤波器(adaptive loop filter,ALF)、噪声抑制滤波器 (noise suppression filter,NSF)或任意组合。例如,环路滤波器单元220可以包括去块滤 波器、SAO滤波器和ALF滤波器。滤波过程的顺序可以是去块滤波器、SAO滤波器和 ALF滤波器。再例如,增加一个称为具有色度缩放的亮度映射(luma mapping with chromascaling,LMCS)(即自适应环内整形器)的过程。该过程在去块之前执行。再例如,去块 滤波过程也可以应用于内部子块边缘,例如仿射子块边缘、ATMVP子块边缘、子块变换 (sub-block transform,SBT)边缘和内子部分(intra sub-partition,ISP)边缘。尽管环路滤 波器单元220在图2中示为环路滤波器,但在其它配置中,环路滤波器单元220可以实现 为环后滤波器。滤波块221也可称为滤波重建块221。
在一个实施例中,视频编码器20(对应地,环路滤波器单元220)可用于输出环路滤波器参数(例如SAO滤波参数、ALF滤波参数或LMCS参数),例如,直接输出或由熵 编码单元270进行熵编码后输出,例如使得解码器30可接收并使用相同或不同的环路滤 波器参数进行解码。
解码器和解码方法
图3示出了用于实现本申请技术的示例性视频解码器30。视频解码器30用于接收例 如由编码器20编码的编码图像数据21(例如编码比特流21),得到解码图像331。编码 图像数据或比特流包括用于解码所述编码图像数据的信息,例如表示编码视频片(和/或编码区块组或编码区块)的图像块的数据和相关的语法元素。
在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如求和器314)、环路滤波器320、解码图像缓冲器(DBP)330、 模式应用单元360、帧间预测单元344和帧内预测单元354。帧间预测单元344可以为或 包括运动补偿单元。在一些示例中,视频解码器30可执行大体上与参照图2的视频编码 器100描述的编码过程相反的解码过程。
参见图3,环路滤波模块为经过训练的目标模型(亦称为神经网络),该神经网络用于处理输入图像或图像区域或图像块,以生成滤波后的图像或图像区域或图像块。例如,用于环路滤波的神经网络用于接收输入的图像或图像区域或图像块,例如,图6a至6c所 图示的输入图像数据,并且生成滤波后的图像或图像区域或图像块。下面将结合图7a-7e 详细地描述用于环路滤波的神经网络。
如编码器20所述,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲器DPB230、帧间预测单元344和帧内预测单元354还组成视频编 码器20的“内置解码器”。相应地,反量化单元310在功能上可与反量化单元110相同, 逆变换处理单元312在功能上可与逆变换处理单元122相同,重建单元314在功能上可与 重建单元214相同,环路滤波器320在功能上可与环路滤波器220相同,解码图像缓冲器 330在功能上可与解码图像缓冲器230相同。因此,视频编码器20的相应单元和功能的 解释相应地适用于视频解码器30的相应单元和功能。
反量化
反量化单元310可用于从编码图像数据21(例如通过熵解码单元304解析和/或解码) 接收量化参数(quantization parameter,QP)(或一般为与反量化相关的信息)和量化系 数,并基于所述量化参数对所述解码的量化系数309进行反量化以获得反量化系数311,所述反量化系数311也可以称为变换系数311。反量化过程可包括使用视频编码器20为 视频片中的每个视频块计算的量化参数来确定量化程度,同样也确定需要执行的反量化的程度。
重建
重建单元314(例如,求和器314)用于将重建残差块313添加到预测块365,以在像素域中得到重建块315,例如,将重建残差块313的像素点值和预测块365的像素点值相 加。
滤波
环路滤波器单元320(在编码环路中或之后)用于对重建块315进行滤波,得到滤波块321,从而顺利进行像素转变或提高视频质量等。环路滤波器单元320可包括一个或多 个环路滤波器,例如去块滤波器、像素点自适应偏移(sample-adaptive offset,SAO)滤波 器或一个或多个其它滤波器,例如自适应环路滤波器(adaptive loop filter,ALF)、噪声抑制滤波器(noise suppression filter,NSF)或任意组合。例如,环路滤波器单元220可以包括去块滤波器、SAO滤波器和ALF滤波器。滤波过程的顺序可以是去块滤波器、SAO滤 波器和ALF滤波器。再例如,增加一个称为具有色度缩放的亮度映射(luma mapping with chromascaling,LMCS)(即自适应环内整形器)的过程。该过程在去块之前执行。再例 如,去块滤波过程也可以应用于内部子块边缘,例如仿射子块边缘、ATMVP子块边缘、 子块变换(sub-block transform,SBT)边缘和内子部分(intra sub-partition,ISP)边缘。尽 管环路滤波器单元320在图3中示为环路滤波器,但在其它配置中,环路滤波器单元320 可以实现为环后滤波器。
解码器30用于通过输出端312等输出解码图像311,向用户显示或供用户查看。
尽管上述实施例主要描述了视频编解码,但应注意的是,译码***10、编码器20和解码器30的实施例以及本文描述的其它实施例也可以用于静止图像处理或编解码,即视频编解码中独立于任何先前或连续图像的单个图像的处理或编解码。一般情况下,如果图像处理仅限于单个图像17,帧间预测单元244(编码器)和帧间预测单元344(解码器) 可能不可用。视频编码器20和视频解码器30的所有其它功能(也称为工具或技术)同样 可用于静态图像处理,例如残差计算204/304、变换206、量化208、反量化210/310、(逆) 变换212/312、分割262/362、帧内预测254/354和/或环路滤波220/320、熵编码270和熵 解码304。
图4为本发明实施例提供的视频译码设备400的示意图。视频译码设备400适用于实 现本文描述的公开实施例。在一个实施例中,视频译码设备400可以是解码器,例如图1A中的视频解码器30,也可以是编码器,例如图1A中的视频编码器20。
视频译码设备400包括:用于接收数据的入端口410(或输入端口410)和接收单元(receiver unit,Rx)420;用于处理数据的处理器、逻辑单元或中央处理器(centralprocessing unit,CPU)430;例如,这里的处理器430可以是神经网络处理器430;用于传输数据的 发送单元(transmitter unit,Tx)440和出端口450(或输出端口450);用于存储数据的 存储器460。视频译码设备400还可包括耦合到入端口410、接收单元420、发送单元440和出端口450的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组 件,用于光信号或电信号的出口或入口。
处理器430通过硬件和软件实现。处理器430可实现为一个或多个处理器芯片、核(例如,多核处理器)、FPGA、ASIC和DSP。处理器430与入端口410、接收单元420、 发送单元440、出端口450和存储器460通信。处理器430包括译码模块470(例如,基 于神经网络(neural networks,NN)的译码模块470)。译码模块470实施上文所公开的 实施例。例如,译码模块470执行、处理、准备或提供各种编码操作。因此,通过译码模 块470为视频译码设备400的功能提供了实质性的改进,并且影响了视频译码设备400到 不同状态的切换。或者,以存储在存储器460中并由处理器430执行的指令来实现译码模 块470。
存储器460包括一个或多个磁盘、磁带机和固态硬盘,可以用作溢出数据存储设备, 用于在选择执行程序时存储此类程序,并且存储在程序执行过程中读取的指令和数据。存 储器460可以是易失性和/或非易失性的,可以是只读存储器(read-only memory,ROM)、 随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternarycontent- addressable memory,TCAM)和/或静态随机存取存储器(static random-accessmemory, SRAM)。
图5为示例性实施例提供的装置500的简化框图,装置500可用作图1A中的源设备12和目的设备14中的任一个或两个。
装置500中的处理器502可以是中央处理器。或者,处理器502可以是现有的或今后将研发出的能够操控或处理信息的任何其它类型设备或多个设备。虽然可以使用如图所示的处理器502等单个处理器来实施已公开的实现方式,但使用一个以上的处理器速度更快和效率更高。
在一种实现方式中,装置500中的存储器504可以是只读存储器(ROM)设备或随机存取存储器(RAM)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器 504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可包括操作 ***508和应用程序510,应用程序510包括允许处理器502执行本文所述方法的至少一 个程序。例如,应用程序510可以包括应用1至N,还包括执行本文所述方法的视频译码 应用。
装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与可用于感测触摸输入的触敏元件组合的触敏显示器。显示器518可以通过总线512耦合到处理器502。
虽然装置500中的总线512在本文中描述为单个总线,但是总线512可以包括多个总 线。此外,辅助储存器可以直接耦合到装置500的其它组件或通过网络访问,并且可以包括存储卡等单个集成单元或多个存储卡等多个单元。因此,装置500可以具有各种各样的配置。
由于本申请实施例涉及神经网络的应用,为了便于理解,下面先对本申请实施例所使 用到的一些名词或术语进行解释说明,该名词或术语也作为发明内容的一部分。
(1)神经网络
神经网络(neural network,NN)是机器学习模型,神经网络可以是由神经单元组成 的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
Figure BDA0002705247700000171
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。 f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有很 多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是 输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说, 第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复 杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:
Figure BDA0002705247700000172
Figure BDA0002705247700000173
其中,
Figure BDA0002705247700000174
是输入向量,
Figure BDA0002705247700000175
是输出向量,
Figure BDA0002705247700000176
是偏移向量,W是权重矩阵(也称系数), α()是激活函数。每一层仅仅是对输入向量
Figure BDA0002705247700000178
经过如此简单的操作得到输出向量
Figure BDA0002705247700000177
由于DNN 层数多,则系数W和偏移向量
Figure BDA0002705247700000181
的数量也就很多了。这些参数在DNN中的定义如下所述: 以系数W为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神 经元的线性系数定义为
Figure BDA0002705247700000182
上标3代表系数W所在的层数,而下标对应的是输出的第三 层索引2和输入的第二层索引4。总结就是:第L-1层的第k个神经元到第L层的第j个 神经元的系数定义为
Figure BDA0002705247700000183
需要注意的是,输入层是没有W参数的。在深度神经网络中, 更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复 杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络 的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重 矩阵(由很多层的向量W形成的权重矩阵)。
(3)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神 经网络,是一种深度学***面(feature map)做卷积。
卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。卷积层可以包括 很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常 被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方 向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的 进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大 小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度 是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此, 和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情 况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩 阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为 由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一 个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个 权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相 同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个 尺寸相同的特征图合并形成卷积运算的输出。这些权重矩阵中的权重值在实际应用中需 要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图 像中提取信息,从而使得卷积神经网络进行正确的预测。当卷积神经网络有多个卷积层 的时候,初始的卷积层往往提取较多的一般特征,该一般特征也可以称之为低级别的特 征;随着卷积神经网络深度的加深,越往后的卷积层提取到的特征越来越复杂,比如高 级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层, 可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在 图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化 算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子 可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化 算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层 中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相 关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的 图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
在经过卷积层/池化层的处理后,卷积神经网络还不足以输出所需要的输出信息。因为 如前所述,卷积层/池化层只会提取特征,并减少输入图像带来的参数。然而为了生成最终 的输出信息(所需要的类信息或其他相关信息),卷积神经网络需要利用神经网络层来生 成一个或者一组所需要的类的数量的输出。因此,在神经网络层中可以包括多层隐含层, 该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得 到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
可选的,在神经网络层中的多层隐含层之后,还包括整个卷积神经网络的输出层,该 输出层具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络 的前向传播完成,反向传播就会开始更新前面提到的各层的权重值以及偏差,以减少卷积 神经网络的损失,及卷积神经网络通过输出层输出的结果和理想结果之间的误差。
(4)循环神经网络
循环神经网络(recurrent neural networks,RNN)是用来处理序列数据的。在传统的神 经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层 层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然 对很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的 单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序 列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应 用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层 的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任何 长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。同样 使用误差反向传播算法,不过有一点区别:即,如果将RNN进行网络展开,那么其中的 参数,如W,是共享的;而如上举例上述的传统神经网络却不是这样。并且在使用梯度下 降算法中,每一步的输出不仅依赖当前步的网络,还依赖前面若干步网络的状态。该学习 算法称为基于时间的反向传播算法(Back propagation Through Time,BPTT)。
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网 络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。 但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了: 我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知 道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依 赖当前的输入信息和历史的记忆信息。
(5)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要 预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的 差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的 过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调 整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标 值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标 值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们 是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出 值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的 过程。
(6)反向传播算法
卷积神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正 初始的超分辨率模型中参数的大小,使得超分辨率模型的重建误差损失越来越小。具体地, 前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的超 分辨率模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播 运动,旨在得到最优的超分辨率模型的参数,例如权重矩阵。
(7)生成式对抗网络
生成式对抗网络(generative adversarial networks,GAN)是一种深度学习模型。该模 型中至少包括两个模块:一个模块是生成模型(Generative Model),另一个模块是判别模 型(Discriminative Model),通过这两个模块互相博弈学习,从而产生更好的输出。生成 模型和判别模型都可以是神经网络,具体可以是深度神经网络,或者卷积神经网络。GAN 的基本原理如下:以生成图片的GAN为例,假设有两个网络,G(Generator)和D(Discriminator),其中G是一个生成图片的网络,它接收一个随机的噪声z,通过这个 噪声生成图片,记做G(z);D是一个判别网络,用于判别一张图片是不是“真实的”。它的 输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代 表100%是真实的图片,如果为0,就代表不可能是真实的图片。在对该生成式对抗网络进 行训练的过程中,生成网络G的目标就是尽可能生成真实的图片去欺骗判别网络D,而判 别网络D的目标就是尽量把G生成的图片和真实的图片区分开来。这样,G和D就构成 了一个动态的“博弈”过程,也即“生成式对抗网络”中的“对抗”。最后博弈的结果,在理想 的状态下,G可以生成足以“以假乱真”的图片G(z),而D难以判定G生成的图片究竟是 不是真实的,即D(G(z))=0.5。这样就得到了一个优异的生成模型G,它可以用来生成图 片。
下面将结合图7a-7e详细地描述用于环路滤波的目标模型(亦称为神经网络)。图7a- 7e示出目标模型(例如用于滤波的神经网络,简称滤波网络)的示例性架构。
如图7a所示,将第一像素矩阵(第一像素矩阵中的对应位置的像素点的值对应于重 建得到第一图像块中的对应位置的像素的亮度值)和第二像素矩阵(第二像素矩阵中的对 应位置的像素点对应于第一图像块中的对应位置的像素的亮度值对应的量化步长值)输入 滤波网络。该滤波网络通过一个3×3卷积层(3×3Conv)和一个激活层(Relu)对第一像 素矩阵进行处理,通过另一个3×3卷积层和另一个激活层对第二像素矩阵进行处理,然后 将上述处理后得到的两个矩阵合并(concat),再经过块处理层(Res-Block)、…、块处理层、3×3卷积层、激活层、3×3卷积层得到残差矩阵,该残差矩阵中的对应位置的像素 点对应于滤波后的第二图像块中的对应位置的像素的色度残差值。将第一像素矩阵和残差矩阵对应位置的像素值相加后得到第三像素矩阵,第三像素矩阵中的对应位置的像素点对应于第二图像块中的对应位置的像素的亮度值。
如图7b所示,上述块处理层可以包括一个3×3卷积层、一个激活层和一个3×3卷积 层,将输入矩阵经这三层处理后,再将处理后得到的矩阵和初始输入矩阵对应位置的像素 值相加得到最终输出矩阵。如图7c所示,上述块处理层可以包括一个3×3卷积层、一个激活层、一个3×3卷积层和一个激活层,将输入矩阵经3×3卷积层、激活层和3×3卷积层处理后,再将处理后得到的矩阵和初始输入矩阵对应位置的像素值相加,最后经过一个激活层得到最终输出矩阵。
如图7d所示,将矩阵输入滤波网络之前,先对第一像素矩阵(第一像素矩阵中的对应位置的像素点的值对应于重建得到第一图像块中的对应位置的像素的亮度值)和第二像素矩阵(第二像素矩阵中的对应位置的像素点对应于第一图像块中的对应位置的像素的亮度值对应的量化步长值)中对应位置上的像素值相加或相乘得到输入像素矩阵。然后将输入像素矩阵输入滤波网络。该滤波网络通过一个3×3卷积层、一个激活层、一个块处理层、…、一个块处理层、一个3×3卷积层、一个激活层和一个3×3卷积层对输入像素矩阵 进行处理得到第三像素矩阵,该第三像素矩阵中的对应位置的像素点对应于第二图像块中的对应位置的像素的亮度值。
如图7e所示,将第一像素矩阵(第一像素矩阵中的对应位置的像素点的值对应于重 建得到第一图像块中的对应位置的像素的亮度值)输入滤波网络,将第一像素矩阵和第二 像素矩阵(第二像素矩阵中的对应位置的像素点对应于第一图像块中的对应位置的像素的 亮度值对应的量化步长值)中的对应位置的像素值相乘后得到的像素矩阵也输入滤波网络。 该滤波网络通过一个3×3卷积层和一个激活层对其中一个输入进行处理,通过另一个3×3 卷积层和另一个激活层对另一个输入进行处理,然后将上述处理后得到的两个矩阵合并 (concat),再经过块处理层、…、块处理层、3×3卷积层、激活层和3×3卷积层得到残 差矩阵,该残差矩阵中的对应位置的像素点对应于滤波后的第二图像块中的对应位置的像 素的色度残差值。将第一像素矩阵和残差矩阵对应位置的像素值相加后得到第三像素矩阵, 第三像素矩阵中的对应位置的像素点对应于第二图像块中的对应位置的像素的亮度值。
需要说明的是,如图7a-7e所示的卷积神经网络仅作为卷积神经网络的几种示例,在 具体的应用中,卷积神经网络还可以以其他网络模型的形式存在,本申请对此不做具体限 定。
图8是示出根据本申请一种实施例的环路滤波方法的过程800的流程图。过程800可 由视频编码器20或视频解码器30执行,具体的,可以由视频编码器20或视频解码器30的环路滤波器220、320来执行。过程800描述为一系列的步骤或操作,应当理解的是, 过程800可以以各种顺序执行和/或同时发生,不限于图8所示的执行顺序。假设具有多 个视频帧的视频数据流正在使用视频编码器或者视频解码器,执行包括如下步骤的过程 800来对重建的图像或图像块进行滤波处理。过程800可以包括:
步骤801、获取第一像素矩阵,第一像素矩阵中的对应位置的元素对应于第一图像块 中的对应位置的像素的亮度值,第一图像块为重建图像块或者重建图像中的图像块。
某个图像块(例如第一图像块)可以是编码器中对图像的编码结果进行反量化、重建 后得到的重建图像,也可以是重建图像中的一个图像块,还可以是对图像块的编码结果进 行反量化、重建后得到的重建图像块。
某个图像块(例如第一图像块)可以理解为像素矩阵X,该像素矩阵X中的对应位置的元素可以理解为该图像块中的对应位置的像素点(或者像素值,例如像素值包括像素的亮度值或像素的色度值)。示例性的,该图像块的尺寸为64×64,表示该图像块的像素点 分布为64行×64列,x(i,j)表示该图像块中的第i行、第j列的像素点(或者像素值)。与 之对应,输入像素矩阵A包括64行和64列,共有64×64个元素,A(i,j)表示该像素矩阵 A中的第i行、第j列的元素。A(i,j)和x(i,j)对应(例如A(i,j)表示像素点x(i,j)的值),输 入像素矩阵A中的对应位置的元素对应于(例如表示)该图像块中的对应位置的像素点的 亮度值,即表示元素A(i,j)的取值是像素点x(i,j)的亮度值。可选的,在另一种示例下,输 入像素矩阵A中的对应位置的元素也可以对应于(例如表示)该图像块中的对应位置的像 素的其他值,即元素A(i,j)的取值可以是像素点x(i,j)的其他值,例如像素点x(i,j)的亮度值 对应的量化步长值(如步骤802所述),又例如像素点x(i,j)的色度值(如下文所述),又 例如像素点x(i,j)的色度值对应的量化步长值(如下文所述),又例如像素点x(i,j)的亮度 残差值(如下文所述),又例如像素点x(i,j)的色度残差值(如下文所述)等,对此本申请 不做具体限定。应当理解的是,当输入像素矩阵A中的对应位置的元素表示该图像块中的 对应位置的像素的亮度值,输入像素矩阵A就是前述第一像素矩阵的示例;或者,当输入 像素矩阵A中的对应位置的元素表示该图像块中的对应位置的像素的亮度值对应的量化 步长值,输入像素矩阵A就是下文第二像素矩阵的示例;应当理解的是,当输入像素矩阵 A中的对应位置的元素表示该图像块中的对应位置的像素的色度值,输入像素矩阵A就 是下文第五像素矩阵的示例;或者,当输入像素矩阵A中的对应位置的元素表示该图像块 中的对应位置的像素的色度值对应的量化步长值,输入像素矩阵A就是下文第六像素矩 阵的示例。
上述第一图像块可以是编码器或解码器重建得到的重建图像中的一个图像块,也可以 是编码器或解码器重建得到的重建图像块。本申请实施例的环路滤波方法包括但不限于对 重建图像块进行滤波处理,应当理解的是,也可以适用于对重建图像进行滤波处理,即将 本申请实施例的方法中的“重建图像块”适应性替换为重建图像,这里不再赘述。
需要说明的是,第一图像块和步骤803中的第二图像块还可以采用RGB格式,此时第一像素矩阵中的对应位置的元素可以对应于(例如表示)第一图像块中的对应位置的像素的R值、G值或者B值,第二像素矩阵中的对应位置的元素可以对应于(例如表示)第 一图像块中的对应位置的像素的R值、G值或者B值对应的量化步长值,或者三者共同 采用的量化步长值。
步骤802、获取第二像素矩阵,第二像素矩阵中的对应位置的元素对应于第一图像块 中的对应位置的像素的亮度值对应的量化步长值,第二像素矩阵的尺寸和第一像素矩阵的 尺寸相等。
编码器对第一图像块编码的过程中,包括对残差信息的量化操作,该过程涉及到量化 步长值,第一图像块中的每个像素点对应一个量化步长值。第二像素矩阵中的元素用于表 征前述量化步长值。本申请采用滤波网络实现滤波的同时引入了重建图像块的每个像素的 量化步长值,从而能够更好的对输入滤波网络的对应于图像块的像素矩阵进行滤波处理, 提升滤波效果。
步骤803、通过滤波网络对输入像素矩阵进行滤波处理得到输出像素矩阵,滤波网络 为经训练得到的具有滤波功能的神经网络,输出像素矩阵包括第三像素矩阵,第三像素矩 阵中的对应位置的元素对应于第二图像块中的对应位置的像素的亮度值或者像素的亮度 残差值,第二图像块为第一图像块经滤波后得到的图像块,其中输入像素矩阵至少与第一 像素矩阵和第二像素矩阵相关。
在一种可能的实现方式中,所述输入像素矩阵包括所述第一像素矩阵和所述第二像素 矩阵;或者,所述输入像素矩阵为对所述第一像素矩阵和所述第二像素矩阵进行预处理得 到的第一预处理矩阵;或者,所述输入像素矩阵包括所述第一像素矩阵的归一化矩阵和所 述第二像素矩阵的归一化矩阵;或者,所述输入像素矩阵为对所述第一像素矩阵的归一化 矩阵和所述第二像素矩阵的归一化矩阵进行预处理得到的第二预处理矩阵。所述归一化矩 阵是指将对应的矩阵中的对应位置的元素的取值进行归一化处理得到的矩阵。
输入像素矩阵是滤波网络的处理对象,输入像素矩阵可以包括获取到的上述第一像素 矩阵和第二像素矩阵,即直接将这两个像素矩阵输入滤波网络进行滤波处理。
输入像素矩阵在被输入滤波网络之前,也可以是根据滤波网络在训练时的训练数据形 式,以及滤波网络的处理能力,对一个或多个像素矩阵进行预处理和/或归一化处理得到的 像素矩阵。其中,归一化处理的目的是为了使元素的值调整为一个统一的取值区间,例如 [0,1]或者[-0.5,0.5],这样在滤波网络的计算中可以提高运算效率。预处理可以包括矩阵相 加、矩阵相乘、矩阵合并(contact)等,这样可以减少滤波网络的计算量。因此输入像素 矩阵可以包括第一像素矩阵的归一化矩阵和第二像素矩阵的归一化矩阵,即将第一像素矩 阵和第二像素矩阵分别进行归一化处理,再将其归一化矩阵输入滤波网络进行处理。或者, 输入像素矩阵可以是对第一像素矩阵和第二像素矩阵进行相加、相乘或合并后得到的预处 理矩阵。又或者,输入像素矩阵可以是对第一像素矩阵的归一化矩阵和第二像素矩阵的归 一化矩阵进行相加、相乘或合并后得到的预处理矩阵。
矩阵相加表示将两个矩阵对应位置的元素的值相加。矩阵相乘表示将两个矩阵对应位 置的元素的值相乘。矩阵合并(contact)表示将矩阵的通道数增加,例如,一个矩阵是二 维矩阵,其尺寸为m×n,另一个矩阵也是二维矩阵,其尺寸也是m×n,这两个矩阵合并得到的是三维矩阵,其尺寸为m×n×2。
如步骤801所述,滤波网络输出的输出像素矩阵B和经过滤波后的图像块(例如第二 图像块)对应,即输出像素矩阵中的元素B(i,j)和经过滤波后的图像块中的像素y(i,j)对应, 在一种示例下,元素B(i,j)的值可以表示像素y(i,j)的亮度值。可选的,在另一种示例下, 像素矩阵B中的对应位置的元素也可以对应于(例如表示)该经过滤波后的图像块中的对 应位置的像素的其他值,即元素B(i,j)的取值可以是像素点y(i,j)的其他值,例如像素点y(i,j) 的亮度残差值,又例如像素点y(i,j)的色度值,又例如像素点y(i,j)的色度残差值等,对此 本申请不做具体限定。应当理解的是,当输出像素矩阵B中的对应位置的元素表示经过滤 波后的图像块中的对应位置的像素的亮度值,输出像素矩阵B是第三像素矩阵的示例;或 者,当输出像素矩阵B中的对应位置的元素表示经过滤波后的图像块中的对应位置的像 素的亮度残差值,输出像素矩阵B是第三像素矩阵的另一种示例;应当理解的是,当输出 像素矩阵B中的对应位置的元素表示经过滤波后的图像块中的对应位置的像素的色度值, 输出像素矩阵B是第七像素矩阵的示例;或者,当输出像素矩阵B中的对应位置的元素 表示该经过滤波后的图像块中的对应位置的像素的色度残差值,输出像素矩阵B是第八 像素矩阵的示例。
当获取第一像素矩阵和第二像素矩阵时,输入像素矩阵可以包括第一像素矩阵和第二 像素矩阵,如图9a所示;或者,输入像素矩阵可以为至少根据第一像素矩阵和第二像素 矩阵得到的矩阵,如图9b、9c或9d所示。
在一种可能的实现方式中,如果在滤波网络的输入阶段,对第一像素矩阵和第二像素 矩阵进行了归一化处理,例如,第一像素矩阵中的各个像素的值的范围为0-255,可以将 这些值均归一化为0~1或者-0.5~0.5之间,即输入像素矩阵为归一化矩阵。那么在滤波网 络的输出阶段,需要对第三像素矩阵进行反归一化处理,例如将第三像素矩阵中的元素的 值反归一化为0~255之间。
在上述第一像素矩阵和第二像素矩阵的基础上,还可以获取第五像素矩阵(第五像素 矩阵中的对应位置的元素对应于第一图像块中的对应位置的像素的色度值),此时输入像 素矩阵可以包括第一像素矩阵、第二像素矩阵和第五像素矩阵,如图9e所示;或者,输入像素矩阵可以包括对第一像素矩阵和第二像素矩阵进行预处理得到的第一预处理矩阵和第五像素矩阵,如图9g所示。
在上述第一像素矩阵、第二像素矩阵和第五像素矩阵的基础上,还可以获取第六像素 矩阵(第六像素矩阵中的对应位置的元素对应于第一图像块中的对应位置的像素的色度值 对应的量化步长值),此时输入像素矩阵可以包括第一像素矩阵、第二像素矩阵、第五像 素矩阵和第六像素矩阵,如图9f所示;或者,输入像素矩阵可以包括第一预处理矩阵和对 第五像素矩阵和第六像素矩阵进行预处理得到的第三预处理矩阵,如图9h所示;或者, 输入矩阵可以包括第一预处理矩阵、第五像素矩阵以及第六像素矩阵;或者,输入像素矩 阵可以包括第一像素矩阵、第二像素矩阵和第三预处理矩阵。
同理,如果在滤波网络的输入阶段,对第一像素矩阵、第二像素矩阵、第五像素矩阵、 第六像素矩阵进行了归一化处理,例如,第一像素矩阵中的各个元素的值的范围为0~255, 可以将这些值均归一化为0~1或者-0.5~0.5之间,即输入像素矩阵为归一化矩阵,那么在 滤波网络的输出阶段,需要对输出的像素矩阵进行反归一化处理,例如将第七像素矩阵中 的元素的值反归一化为0~255之间。
图9a-9l示出了滤波网络的输入像素矩阵的几种示例性的示例。
如图9a所示,将第一像素矩阵和第二像素矩阵直接输入滤波网络。例如,第一像素矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值,第二像 素矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值对应的 量化步长值。此时输入像素矩阵包括第一像素矩阵和第二像素矩阵。
如图9b所示,将第一像素矩阵和第二像素矩阵相加后输入滤波网络。例如,第一像素矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值,第二 像素矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值对应 的量化步长值。将第一像素矩阵和第二像素矩阵中的对应位置的元素的值相加,得到N×M 的第一预处理矩阵。此时输入像素矩阵为该第一预处理矩阵。将输入像素矩阵输入滤波网 络执行滤波操作,输出第三像素矩阵为N×M,该第三像素矩阵中的对应位置的元素可以 对应于第二图像块中的对应位置的像素的亮度值或者亮度残差值。
如图9c所示,将第一像素矩阵和第二像素矩阵合并后输入滤波网络。例如,第一像素矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值,第二 像素矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值对应 的量化步长值。将第一像素矩阵和第二像素矩阵合并,得到N×M×2的第一预处理矩阵。 此时输入像素矩阵为该第一预处理矩阵。将输入像素矩阵输入滤波网络执行滤波操作,输 出第三像素矩阵为N×M,该第三像素矩阵中的对应位置的元素可以对应于第二图像块中 的对应位置的像素的亮度值或者亮度残差值。
如图9d所示,将第一像素矩阵和第二像素矩阵相乘后输入滤波网络。例如,第一像素矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值,第二 像素矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值对应 的量化步长值。将第一像素矩阵和第二像素矩阵中的对应位置的像素值相乘,得到N×M 的第一预处理矩阵。此时输入像素矩阵为该第一预处理矩阵。将输入像素矩阵输入滤波网 络执行滤波操作,输出第三像素矩阵为N×M,该第三像素矩阵中的对应位置的元素可以 对应于第二图像块中的对应位置的像素的亮度值或者亮度残差值。
如图9e所示,将第一像素矩阵、第二像素矩阵以及第五像素矩阵直接输入滤波网络。 例如,第一像素矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的 亮度值,第二像素矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值对应的量化步长值,第五像素矩阵为N×M,对应位置的元素对应于第一图像块 中的对应位置的像素的色度值。此时输入像素矩阵包括第一像素矩阵、第二像素矩阵以及 第五像素矩阵。将第一像素矩阵、第二像素矩阵和第五像素矩阵输入滤波网络执行滤波操作,输出第三像素矩阵为N×M,该第三像素矩阵中的对应位置的元素对应于第二图像块 中的对应位置的像素的亮度值或者亮度残差值。可选的,还可以输出第七像素矩阵或第八 像素矩阵,该第七像素矩阵中的对应位置的元素对应于第二图像块中的对应位置的像素的色度值,该第八像素矩阵中的对应位置的元素对应于第二图像块中的对应位置的像素的色度残差值。
如图9f所示,将第一像素矩阵和第二像素矩阵合并后输入滤波网络,将第五像素矩 阵直接输入滤波网络。例如,第一像素矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值,第二像素矩阵为N×M,对应位置的元素对应于第一图像 块中的对应位置的像素的亮度值对应的量化步长值。将第一像素矩阵和第二像素矩阵合并,得到N×M×2的第一预处理矩阵。此时输入像素矩阵包括该第一预处理矩阵和第五像素矩阵。将输入像素矩阵输入滤波网络执行滤波操作,输出第三像素矩阵为N×M,该第三像 素矩阵中的对应位置的元素可以对应于第二图像块中的对应位置的像素的亮度值或者亮 度残差值。可选的,还可以输出第七像素矩阵或第八像素矩阵,该第七像素矩阵中的对应 位置的元素对应于第二图像块中的对应位置的像素的色度值,该第八像素矩阵中的对应位置的元素对应于第二图像块中的对应位置的像素的色度残差值。
如图9g所示,将将第一像素矩阵、第二像素矩阵、第五像素矩阵和第六像素矩阵直接输入滤波网络。例如,第一像素矩阵为N×M,对应位置的元素对应于第一图像块中的 对应位置的像素的亮度值,第二像素矩阵为N×M,对应位置的元素对应于第一图像块中 的对应位置的像素的亮度值对应的量化步长值,第五像素矩阵为N×M,对应位置的元素 对应于第一图像块中的对应位置的像素的色度值,第六像素矩阵为N×M,对应位置的元 素对应于第一图像块中的对应位置的像素的色度值对应的量化步长值。此时输入像素矩阵 包括第一像素矩阵、第二像素矩阵、第五像素矩阵和第六像素矩阵。将第一像素矩阵、第 二像素矩阵、第五像素矩阵和第六像素矩阵输入滤波网络执行滤波操作,输出第三像素矩 阵为N×M,该第三像素矩阵中的对应位置的元素对应于第二图像块中的对应位置的像素 的亮度值或者亮度残差值。可选的,还可以输出第七像素矩阵或第八像素矩阵,该第七像 素矩阵中的对应位置的元素对应于第二图像块中的对应位置的像素的色度值,该第八像素 矩阵中的对应位置的元素对应于第二图像块中的对应位置的像素的色度残差值。可选的, 还可以输出第七像素矩阵或第八像素矩阵,该第七像素矩阵中的对应位置的元素对应于第 二图像块中的对应位置的像素的色度值,该第八像素矩阵中的对应位置的元素对应于第二 图像块中的对应位置的像素的色度残差值。
如图9h所示,将第一像素矩阵和第二像素矩阵合并后输入滤波网络,将第五像素矩 阵和第六像素矩阵合并后输入滤波网络。例如,第一像素矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值,第二像素矩阵为N×M,对应位置的元 素对应于第一图像块中的对应位置的像素的亮度值对应的量化步长值,第五像素矩阵为 N×M,对应位置的元素对应于第一图像块中的对应位置的像素的色度值,第六像素矩阵为 N×M,对应位置的元素对应于第一图像块中的对应位置的像素的色度值对应的量化步长值。将第一像素矩阵和第二像素矩阵合并,得到N×M×2的第一预处理矩阵,将第五像素矩阵和第六像素矩阵合并,得到N×M×2的第三预处理矩阵。此时输入像素矩阵包括该第一预处理矩阵和该第三预处理矩阵。将输入像素矩阵输入滤波网络执行滤波操作,输出第三像素矩阵为N×M,该第三像素矩阵中的对应位置的元素可以对应于第二图像块中的对应位置的像素的亮度值或者亮度残差值。可选的,还可以输出第七像素矩阵或第八像素矩阵,该第七像素矩阵中的对应位置的元素对应于第二图像块中的对应位置的像素的色度值,该第八像素矩阵中的对应位置的元素对应于第二图像块中的对应位置的像素的色度残差值。
如图9i所示,将第一像素矩阵的归一化矩阵和第二像素矩阵的归一化矩阵直接输入 滤波网络。例如,第一像素矩阵的归一化矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值的归一化值,第二像素矩阵的归一化矩阵为N×M,对应 位置的元素对应于第一图像块中的对应位置的像素的亮度值对应的量化步长值的归一化值。此时输入像素矩阵包括第一像素矩阵的归一化矩阵和第二像素矩阵的归一化矩阵。
如图9j所示,将第一像素矩阵的归一化矩阵和第二像素矩阵的归一化矩阵相加后输 入滤波网络。例如,第一像素矩阵的归一化矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值的归一化值,第二像素矩阵的归一化矩阵为N×M,对 应位置的元素对应于第一图像块中的对应位置的像素的亮度值对应的量化步长值的归一 化值。将第一像素矩阵的归一化矩阵和第二像素矩阵的归一化矩阵中的对应位置的元素的值相加,得到N×M的第二预处理矩阵。此时输入像素矩阵为该第二预处理矩阵。将输入 像素矩阵输入滤波网络执行滤波操作,输出第三像素矩阵为N×M,该第三像素矩阵中的 对应位置的元素可以对应于第二图像块中的对应位置的像素的亮度值或者亮度残差值的 归一化值,需经过反归一化处理才能对应于第二图像块中的对应位置的像素的亮度值或者 亮度残差值。
如图9k所示,将将第一像素矩阵的归一化矩阵、第二像素矩阵的归一化矩阵、第五像素矩阵的归一化矩阵和第六像素矩阵的归一化矩阵直接输入滤波网络。例如,第一像素矩阵的归一化矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值的归一化值,第二像素矩阵的归一化矩阵为N×M,对应位置的元素对应于第一图像 块中的对应位置的像素的亮度值对应的量化步长值的归一化值,第五像素矩阵的归一化矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的色度值的归一化值,第六像素矩阵的归一化矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的色度值对应的量化步长值的归一化值。此时输入像素矩阵包括第一像素矩阵的归一化矩阵、第二像素矩阵的归一化矩阵、第五像素矩阵的归一化矩阵和第六像素矩阵的归一化矩阵。将第一像素矩阵的归一化矩阵、第二像素矩阵的归一化矩阵、第五像素矩阵的归一化矩阵和第六像素矩阵的归一化矩阵输入滤波网络执行滤波操作,输出第三像素矩阵为N×M,该第三像素矩阵中的对应位置的元素对应于第二图像块中的对应位置的像素的亮度值或者亮度残差值的归一化值,需经过反归一化处理才能对应于第二图像块中的对应位置的像素的亮度值或者亮度残差值。可选的,还可以输出第七像素矩阵或第八像素矩阵,该第七像素矩阵中的对应位置的元素对应于第二图像块中的对应位置的像素的色度值的归一化值,该第八像素矩阵中的对应位置的元素对应于第二图像块中的对应位置的像素的色度残差值的归一化值。
如图9l所示,将第一像素矩阵的归一化矩阵和第二像素矩阵的归一化矩阵合并后输 入滤波网络,将第五像素矩阵的归一化矩阵和第六像素矩阵的归一化矩阵合并后输入滤波 网络。例如,第一像素矩阵的归一化矩阵为N×M,对应位置的元素对应于第一图像块中 的对应位置的像素的亮度值的归一化值,第二像素矩阵的归一化矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的亮度值对应的量化步长值的归一化值,第五像素矩阵的归一化矩阵为N×M,对应位置的元素对应于第一图像块中的对应位置的像素的色度值的归一化值,第六像素矩阵的归一化矩阵为N×M,对应位置的元素对应于第 一图像块中的对应位置的像素的色度值对应的量化步长值的归一化值。将第一像素矩阵的归一化矩阵和第二像素矩阵的归一化矩阵合并,得到N×M×2的第二预处理矩阵,将第五像素矩阵的归一化矩阵和第六像素矩阵的归一化矩阵合并,得到N×M×2的第四预处理矩阵。此时输入像素矩阵包括该第二预处理矩阵和该第四预处理矩阵。将输入像素矩阵输入滤波网络执行滤波操作,输出第三像素矩阵为N×M,该第三像素矩阵中的对应位置的元 素可以对应于第二图像块中的对应位置的像素的亮度值或者亮度残差值的归一化值,需经过反归一化处理才能对应于第二图像块中的对应位置的像素的亮度值或者亮度残差值。可选的,还可以输出第七像素矩阵或第八像素矩阵,该第七像素矩阵中的对应位置的元素对应于第二图像块中的对应位置的像素的色度值的归一化值,该第八像素矩阵中的对应位置的元素对应于第二图像块中的对应位置的像素的色度残差值的归一化值。
需要说明的是,图9a-9l示例性的示出了输入滤波网络的数据的示例,本申请对输入 滤波网络的数据不做具体限定,对进入滤波网络之前所做的预处理也不做具体限定,两种 像素矩阵的预处理还包括相加和相乘等。另外,上述对像素矩阵采用的预处理的方式也由 滤波网络实现。
本申请采用滤波网络实现滤波的同时引入了重建图像块的每个像素的量化步长值,从 而能够更好的对输入滤波网络的像素矩阵进行指导滤波,能够针对各种质量的重构图像提 升滤波效果。
图10是示出根据本申请一种实施例的译码装置1000的结构示意图。该译码装置1000 可以对应于视频编码器20或视频解码器30。该译码装置1000包括重建模块1001、量化/ 反量化模块1002和环路滤波模块1003,其中,重建模块1001,用于获取第一像素矩阵;量化/反量化模块1002用于获取获取第二像素矩阵;环路滤波模块1003用于实现图8所 示的方法实施例。在一种示例下,重建模块1001可以对应于图2中的重建单元214,或者 对应于图3中的重建单元314;在一种示例下,量化/反量化模块1002可以对应于图2中 的量化单元208,或者对应于图3中的反量化单元310;在一种示例下,环路滤波模块1003 可以对应于图2中的环路滤波模块220,或者对应于图3中的环路滤波模块320。
本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤 所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种 说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上 存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体, 其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一 处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于 (1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD- ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存 储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任 何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、 数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源 传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线 技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不 包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本 文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD) 和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。 以上各项的组合也应包含在计算机可读媒体的范围内。
可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现 场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。 因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的 任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模 块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块 内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件 中。
本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或 一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示 的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各 种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件 单元(包含如上文所描述的一或多个处理器)来提供。
以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换, 都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围 为准。

Claims (25)

1.一种环路滤波方法,其特征在于,包括:
获取第一像素矩阵,所述第一像素矩阵中的对应位置的元素对应于第一图像块中的对应位置的像素的亮度值,所述第一图像块为重建图像块或者重建图像中的图像块;
获取第二像素矩阵,所述第二像素矩阵中的对应位置的元素对应于所述第一图像块中的对应位置的像素的亮度值对应的量化步长值,所述第二像素矩阵的尺寸和所述第一像素矩阵的尺寸相等;
通过滤波网络对输入像素矩阵进行滤波处理得到输出像素矩阵,所述滤波网络为经训练得到的具有滤波功能的神经网络,所述输出像素矩阵包括第三像素矩阵,所述第三像素矩阵中的对应位置的元素对应于第二图像块中的对应位置的像素的亮度值或亮度残差值,所述第二图像块为所述第一图像块经滤波后得到的图像块,其中所述输入像素矩阵至少与所述第一像素矩阵和所述第二像素矩阵相关。
2.根据权利要求1所述的方法,其特征在于,所述输入像素矩阵包括所述第一像素矩阵和所述第二像素矩阵;或者,
所述输入像素矩阵为对所述第一像素矩阵和所述第二像素矩阵进行预处理得到的第一预处理矩阵;或者,
所述输入像素矩阵包括所述第一像素矩阵的归一化矩阵和所述第二像素矩阵的归一化矩阵;或者,
所述输入像素矩阵为对所述第一像素矩阵的归一化矩阵和所述第二像素矩阵的归一化矩阵进行预处理得到的第二预处理矩阵。
3.根据权利要求1或2所述的方法,其特征在于,当所述第三像素矩阵中的对应位置的元素对应于所述第二图像块中的对应位置的像素的亮度残差值时,所述方法还包括:
将所述第一像素矩阵和所述第三像素矩阵中的对应位置的元素的值相加得到第四像素矩阵,所述第四像素矩阵中的对应位置的元素对应于所述第二图像块中的对应位置的像素的亮度值。
4.根据权利要求1-3中任一项所述的方法,其特征在于,当所述输入像素矩阵为归一化矩阵时,所述方法还包括:
对所述第三像素矩阵中的对应位置的元素的值进行反归一化处理。
5.根据权利要求3所述的方法,其特征在于,当所述输入像素矩阵经过归一化处理时,所述将所述第一像素矩阵和所述第三像素矩阵中的对应位置的元素的值相加得到第四像素矩阵,包括:
将所述第一像素矩阵和经过反归一化处理的第三像素矩阵中的对应位置的元素的值相加得到所述第四像素矩阵。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
获取第五像素矩阵,所述第五像素矩阵中的对应位置的元素对应于所述第一图像块中的对应位置的像素的色度值;
相应地,所述输入像素矩阵至少与所述第一像素矩阵、所述第二像素矩阵和所述第五像素矩阵相关。
7.根据权利要求6所述的方法,其特征在于,所述输入像素矩阵包括所述第一像素矩阵、所述第二像素矩阵和所述第五像素矩阵;或者,
所述输入像素矩阵包括对所述第一像素矩阵和所述第二像素矩阵进行预处理得到的第一预处理矩阵和所述第五像素矩阵;或者,
所述输入像素矩阵包括所述第一像素矩阵的归一化矩阵、所述第二像素矩阵的归一化矩阵和所述第五像素矩阵的归一化矩阵;或者,
所述输入像素矩阵包括对所述第一像素矩阵的归一化矩阵和所述第二像素矩阵的归一化矩阵进行预处理得到的第二预处理矩阵和所述第五像素矩阵的归一化矩阵。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
获取第六像素矩阵,所述第六像素矩阵中的对应位置的元素对应于所述第一图像块中的对应位置的像素的色度值对应的量化步长值;
相应地,所述输入像素矩阵至少与所述第一像素矩阵、所述第二像素矩阵、所述第五像素矩阵和所述第六像素矩阵相关。
9.根据权利要求8所述的方法,其特征在于,所述输入像素矩阵包括所述第一像素矩阵、所述第二像素矩阵、所述第五像素矩阵和所述第六像素矩阵;或者,
所述输入像素矩阵包括对所述第一像素矩阵和所述第二像素矩阵进行预处理得到的第一预处理矩阵、所述第五像素矩阵和所述第六像素矩阵;或者,
所述输入像素矩阵包括所述第一像素矩阵、所述第二像素矩阵和对所述第五像素矩阵和所述第六像素矩阵进行预处理得到的第三预处理矩阵;或者,
所述输入像素矩阵包括所述第一预处理矩阵和所述第三预处理矩阵;或者,
所述输入像素矩阵包括所述第一像素矩阵的归一化矩阵、所述第二像素矩阵的归一化矩阵、所述第五像素矩阵的归一化矩阵和所述第六像素矩阵的归一化矩阵;或者,
所述输入像素矩阵包括对所述第一像素矩阵的归一化矩阵和所述第二像素矩阵的归一化矩阵进行预处理得到的第二预处理矩阵、所述第五像素矩阵的归一化矩阵和所述第六像素矩阵的归一化矩阵;或者,
所述输入像素矩阵包括所述第一像素矩阵的归一化矩阵、所述第二像素矩阵的归一化矩阵和对所述第五像素矩阵的归一化矩阵和所述第六像素矩阵的归一化矩阵进行预处理得到的第四预处理矩阵;或者,
所述输入像素矩阵包括所述第二预处理矩阵和所述第四预处理矩阵。
10.根据权利要求6-9中任一项所述的方法,其特征在于,所述通过滤波网络对输入像素矩阵进行滤波处理得到输出像素矩阵,包括:
通过所述滤波网络对所述输入像素矩阵进行滤波处理得到所述输出像素矩阵,所述输出像素矩阵包括所述第三像素矩阵和第七像素矩阵,所述第七像素矩阵中的对应位置的元素对应于所述第二图像块中的对应位置的像素的色度值。
11.根据权利要求10所述的方法,其特征在于,当所述输入像素矩阵为归一化矩阵时,所述方法还包括:
对所述第七像素矩阵中的对应位置的元素的值进行反归一化处理。
12.根据权利要求6-9中任一项所述的方法,其特征在于,所述通过滤波网络对输入像素矩阵进行滤波处理得到输出像素矩阵,包括:
通过所述滤波网络对所述输入像素矩阵进行滤波处理得到所述输出像素矩阵,所述输出像素矩阵包括所述第三像素矩阵和第八像素矩阵,所述第八像素矩阵中的对应位置的元素对应于所述第二图像块中的对应位置的像素的色度残差值;
将所述第五像素矩阵和所述第八像素矩阵中的对应位置的元素的值相加得到第九像素矩阵,所述第九像素矩阵中的对应位置的元素对应于所述第二图像块中的对应位置的像素的色度值。
13.根据权利要求12所述的方法,其特征在于,当所述输入像素矩阵为归一化矩阵时,所述方法还包括:
对所述第八像素矩阵中的对应位置的元素的值进行反归一化处理;
相应地,所述将所述第五像素矩阵和所述第八像素矩阵中的对应位置的元素的值相加得到第九像素矩阵,包括:
将所述第五像素矩阵和经过反归一化处理的第八像素矩阵中的对应位置的元素的值相加得到所述第九像素矩阵。
14.根据权利要求2、7或9所述的方法,其特征在于,所述预处理包括:将两个矩阵中的对应位置上的元素相加;或者,将两个矩阵合并;或者,将两个矩阵中的对应位置上的元素相乘。
15.根据权利要求1-14中任一项所述的方法,其特征在于,所述方法还包括:
获取训练矩阵集合,其中所述训练矩阵集合包括多个图像块的滤波前亮度矩阵、量化步长矩阵和滤波后亮度矩阵,所述滤波前亮度矩阵中的对应位置的元素对应于对应图像块中的对应位置的像素的滤波前的亮度值,所述量化步长矩阵中的对应位置的元素对应于对应图像块中的对应位置的像素的亮度值对应的量化步长值,所述滤波后亮度矩阵中的对应位置的元素对应于对应图像块中的对应位置的像素的滤波后的亮度值;
根据所述训练矩阵集合训练得到所述滤波网络。
16.根据权利要求15所述的方法,其特征在于,所述训练矩阵集合还包括所述多个图像块的滤波前色度矩阵和滤波后色度矩阵,所述滤波前色度矩阵中的对应位置的元素对应于对应图像块中的对应位置的像素的滤波前的色度值,所述滤波后色度矩阵中的对应位置的元素对应于对应图像块中的对应位置的像素的滤波后的色度值。
17.根据权利要求1-16中任一项所述的方法,其特征在于,所述滤波网络至少包括卷积层和激活层。
18.根据权利要求18所述的方法,其特征在于,所述卷积层的卷积核的深度为2、3、4、5、6、16、24、32、48、64或者128;所述卷积层中的卷积核的尺寸为1×1、3×3、5×5或者7×7。
19.根据权利要求1-19中任一项所述的方法,其特征在于,所述滤波网络包括卷积神经网络CNN、深度神经网络DNN或者循环神经网络RNN。
20.一种编码器,其特征在于,包括处理电路,用于执行权利要求1至19任一项所述的方法。
21.一种解码器,其特征在于,包括处理电路,用于执行权利要求1至19任一项所述的方法。
22.一种计算机程序产品,其特征在于,包括程序代码,当其在计算机或处理器上执行时,用于执行权利要求任一项所述的方法。
23.一种编码器,其特征在于,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序,其中所述程序在由所述处理器执行时,使得所述解码器执行权利要求任一项所述的方法。
24.一种解码器,其特征在于,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,耦合到所述处理器并存储由所述处理器执行的程序,其中所述程序在由所述处理器执行时,使得所述编码器执行权利要求任一项所述的方法。
25.一种非瞬时性计算机可读存储介质,其特征在于,包括程序代码,当其由计算机设备执行时,用于执行权利要求任一项所述的方法。
CN202011036512.5A 2020-06-10 2020-09-27 环路滤波方法和装置 Pending CN113784146A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2021/098251 WO2021249290A1 (zh) 2020-06-10 2021-06-04 环路滤波方法和装置
US18/063,955 US12052443B2 (en) 2020-06-10 2022-12-09 Loop filtering method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010525274 2020-06-10
CN2020105252748 2020-06-10

Publications (1)

Publication Number Publication Date
CN113784146A true CN113784146A (zh) 2021-12-10

Family

ID=78835082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011036512.5A Pending CN113784146A (zh) 2020-06-10 2020-09-27 环路滤波方法和装置

Country Status (2)

Country Link
CN (1) CN113784146A (zh)
WO (1) WO2021249290A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024082899A1 (en) * 2022-10-18 2024-04-25 Mediatek Inc. Method and apparatus of adaptive loop filter selection for positional taps in video coding

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024077576A1 (zh) * 2022-10-13 2024-04-18 Oppo广东移动通信有限公司 基于神经网络的环路滤波、视频编解码方法、装置和***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120087411A1 (en) * 2010-10-12 2012-04-12 Apple Inc. Internal bit depth increase in deblocking filters and ordered dither
CN107925762A (zh) * 2015-09-03 2018-04-17 联发科技股份有限公司 基于神经网络的视频编解码处理方法和装置
CN111133756A (zh) * 2017-10-12 2020-05-08 联发科技股份有限公司 用于视频编码的神经网络方法和装置
CN111194555A (zh) * 2017-08-28 2020-05-22 交互数字Vc控股公司 用模式感知深度学习进行滤波的方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019009448A1 (ko) * 2017-07-06 2019-01-10 삼성전자 주식회사 영상을 부호화 또는 복호화하는 방법 및 장치
CN111010568B (zh) * 2018-10-06 2023-09-29 华为技术有限公司 插值滤波器的训练方法、装置及视频图像编解码方法、编解码器
CN110798690B (zh) * 2019-08-23 2021-12-21 腾讯科技(深圳)有限公司 视频解码方法、环路滤波模型的训练方法、装置和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120087411A1 (en) * 2010-10-12 2012-04-12 Apple Inc. Internal bit depth increase in deblocking filters and ordered dither
CN107925762A (zh) * 2015-09-03 2018-04-17 联发科技股份有限公司 基于神经网络的视频编解码处理方法和装置
CN111194555A (zh) * 2017-08-28 2020-05-22 交互数字Vc控股公司 用模式感知深度学习进行滤波的方法和装置
CN111133756A (zh) * 2017-10-12 2020-05-08 联发科技股份有限公司 用于视频编码的神经网络方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JIABAO YAO等: "《CE13-2.1: Convolutional Neural Network Filter (CNNF) for Intra Frame》", 《JVET会议:JVET-N0169》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024082899A1 (en) * 2022-10-18 2024-04-25 Mediatek Inc. Method and apparatus of adaptive loop filter selection for positional taps in video coding

Also Published As

Publication number Publication date
US20230209096A1 (en) 2023-06-29
WO2021249290A1 (zh) 2021-12-16

Similar Documents

Publication Publication Date Title
CN114339262B (zh) 熵编/解码方法及装置
WO2022253249A1 (zh) 特征数据编解码方法和装置
CN114915783A (zh) 编码方法和装置
WO2021249290A1 (zh) 环路滤波方法和装置
US20240037802A1 (en) Configurable positions for auxiliary information input into a picture data processing neural network
CN115604485A (zh) 视频图像的解码方法及装置
US20240161488A1 (en) Independent positioning of auxiliary information in neural network based picture processing
WO2023193629A1 (zh) 区域增强层的编解码方法和装置
CN114286099A (zh) 帧内预测方法及装置
TWI826160B (zh) 圖像編解碼方法和裝置
WO2022179509A1 (zh) 音视频或图像分层压缩方法和装置
WO2022194137A1 (zh) 视频图像的编解码方法及相关设备
WO2022156688A1 (zh) 分层编解码的方法及装置
US12052443B2 (en) Loop filtering method and apparatus
WO2023165487A1 (zh) 特征域光流确定方法及相关设备
CN118318446A (zh) 视频压缩中残差编码的广义差译码器
CN116797674A (zh) 图像编解码方法和装置
CN115604486A (zh) 视频图像的编解码方法及装置
CN115834888A (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