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

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

Info

Publication number
CN111698511B
CN111698511B CN202010509307.XA CN202010509307A CN111698511B CN 111698511 B CN111698511 B CN 111698511B CN 202010509307 A CN202010509307 A CN 202010509307A CN 111698511 B CN111698511 B CN 111698511B
Authority
CN
China
Prior art keywords
filtering
classification
target
pixel
pixels
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.)
Active
Application number
CN202010509307.XA
Other languages
English (en)
Other versions
CN111698511A (zh
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.)
Peking University
China Mobile Communications Group Co Ltd
MIGU Culture Technology Co Ltd
Original Assignee
Peking University
China Mobile Communications Group Co Ltd
MIGU Culture Technology 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 Peking University, China Mobile Communications Group Co Ltd, MIGU Culture Technology Co Ltd filed Critical Peking University
Priority to CN202010509307.XA priority Critical patent/CN111698511B/zh
Publication of CN111698511A publication Critical patent/CN111698511A/zh
Application granted granted Critical
Publication of CN111698511B publication Critical patent/CN111698511B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/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

Landscapes

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

Abstract

本发明提供了一种图像滤波方法、装置、设备及可读存储介质,所述方法包括:获取当前帧对应的目标滤波信息,以及获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态;P为正整数;对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波。本发明实施例能够提高编码性能,解决了目前以帧级进行滤波的方式存在编码性能差的问题。

Description

图像滤波方法、装置、设备及可读存储介质
技术领域
本发明涉及图像编解码技术领域,尤其涉及一种图像滤波方法、装置、设备及可读存储介质。
背景技术
样点自适应补偿(Sample adaptive offset,SAO)是视频编解码的重要技术之一,SAO技术可以很好的减弱振铃效应。但振铃效应本身以最大编码单元(largest codingunit,LCU)为单位,同时本身需要写进码流的参数较多,SAO本身过高的码流消耗限制了一部分的性能。目前在视频编码过程中一般是基于帧级进行滤波的,存在图像编码性能差的问题。
发明内容
本发明提供一种图像滤波方法、装置、设备及可读存储介质,解决了现有技术中的图像滤波方法导致图像编码性能差的问题。
第一方面,本发明的实施例提供了一种图像滤波方法,包括:
获取当前帧对应的目标滤波信息,以及获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态;P为正整数;
对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波。
可选地,在所述当前帧为当前编码帧的情况下,所述获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态,包括:
对于每个块集合,分别计算所述块集合对应的像素在滤波情况下的第一率失真代价cost1以及不滤波情况下的第二率失真代价cost2;
若目标块集合对应的cost1和cost2满足:cost2≤cost1,则确定所述目标块集合的滤波状态为不滤波;
若所述目标块集合对应的cost1和cost2满足:cost2>cost1,则确定所述目标块集合的滤波状态为滤波;其中,所述目标块集合为所述P个块集合中的任意一个。
可选地,在所述当前帧为当前编码帧的情况下,在所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述滤波信息中对应的滤波参数进行滤波之前,还包括:
计算块模式下的第一目标率失真代价,以及非块模式下的第二目标率失真代价;
若第一目标率失真代价小于第二目标率失真代价,则执行所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述滤波信息中对应的滤波参数进行滤波的步骤;
其中,所述块模式为:所述当前帧中的每个像素基于所述像素所属的块集合对应的滤波状态进行滤波;所述非块模式为:所述当前帧中的每个像素基于所述当前帧的滤波状态进行滤波。
可选地,计算块模式下的第一目标率失真代价,以及非块模式下的第二目标率失真代价之后,还包括:
若第一目标率失真代价小于第二目标率失真代价,则将所述P个块集合中每个块集合对应的滤波状态的第一标识信息编码至码流中。
可选地,获取当前帧对应的目标滤波信息,包括:
获取M个分类集合以及对应每个分类集合的滤波参数,并将所述M个分类集合以及对应每个分类集合的滤波参数作为所述目标滤波信息;
其中,所述分类集合是根据预设分类方式对所述当前编码帧的所有像素进行分类获得的;所述预设分类方式包括以下方式中的至少一者:
基于像素本身大小的分类方式;
基于像素及所述像素相邻的L个像素间的关系的分类方式,M、L均为正整数。
可选地,所述获取M个分类集合,包括:
基于像素及所述像素相邻的L个像素间的关系,遍历所述当前帧的各个像素,得到每个像素对应的第一标识值;
将所述当前帧中的所有像素按照所述第一标识值进行分类,得到M1个第一类型分类集合;其中,每个所述第一类型分类集合中对应像素的第一标识值相同;
基于像素本身大小,遍历目标像素进行分类,得到每个第一类型分类集合对应的M2个第二类型分类集合,并获得M=M1*M2个分类集合;其中,所述目标像素为M1个第一类型分类集合中每个第一类型分类集合中的各个像素,M1、M2均为正整数。
可选地,所述获取M个分类集合,包括:
基于像素本身大小,遍历目标像素进行分类,得到M3个第二类型分类集合,并获得M=M3个分类集合;其中,所述目标像素为所述当前帧中的所有像素,M3为正整数。
可选地,基于像素本身大小,遍历目标像素进行分类,得到第二类型分类集合,包括:
遍历至少一个候选分类中的各个候选分类,确定第二类型分类集合的目标分类集合个数;
基于像素本身大小,遍历目标像素进行分类,得到目标分类集合个数的第二类型分类集合。
可选地,所述计算块模式下的第一目标率失真代价,以及非块模式下的第二目标率失真代价,包括:
遍历至少一个候选分类中的各个候选分类的过程中,分别计算每个候选分类在所述非块模式下的第三率失真代价cost3以及在块模式下的第四率失真代价cost4;其中,不同候选分类对应的分类集合个数不同;
将每个候选分类对应的cost3中最小的cost3,作为所述第二目标率失真代价,以及将所述最小的cost3对应的候选分类所对应的cost4,作为所述第一目标率失真代价。
可选地,所述计算块模式下的第一目标率失真代价,以及非块模式下的第二目标率失真代价,包括:
遍历至少一个候选分类中的各个候选分类的过程中,分别计算每个候选分类在所述非块模式下的第五率失真代价cost5;
计算每个候选分类对应的cost5中,最小的cost5对应的候选分类在所述块模式下的第六率失真代价cost6;
将所述最小的cost5作为所述第二目标率失真代价,以及将所述cost6作为所述第一目标率失真代价。
可选地,在所述当前帧为当前编码帧的情况下,所述获取当前帧对应的目标滤波信息,包括:
若当前编码帧为第1个编码帧,则将基于所述当前编码帧的所有像素进行分类获得的第1个第一滤波信息,作为所述目标滤波信息;
若当前编码帧为第j个编码帧,则根据第j个第一滤波信息和时域信息列表,确定所述目标滤波信息;
其中,所述第j个第一滤波信息是基于所述第j个编码帧的所有像素进行分类获得的第一滤波信息;所述时域信息列表包含有K个第二滤波信息,所述第二滤波信息是基于目标编码帧的所有像素进行分类获得的滤波信息,所述目标编码帧的时序在所述当前编码帧之前,j、K为正整数,且j大于1。
可选地,在所述当前帧为当前编码帧的情况下,所述获取当前帧对应的目标滤波信息之后,还包括:
若所述目标滤波信息是基于所述当前编码帧的所有像素进行分类获得的第一滤波信息,则将所述目标滤波信息编码至码流中;
若所述目标滤波信息是时域信息列表中的一个第二滤波信息,则将所述目标滤波信息在所述时域信息列表中对应的第二标识信息编码至所述码流中。
可选地,所述图像滤波方法还包括:
在当前编码帧通过反变换和去量化处理后,通过第一环路滤波技术以及目标环路滤波技术,对所述当前编码帧进行滤波处理;
其中,所述目标环路滤波技术包括以下中的至少一项:
去块效应滤波技术;
样点自适应补偿技术;
自适应环路滤波技术;
其中,所述第一环路滤波技术是所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波的技术。
第二方面,本发明实施例还提供了一种图像滤波装置,包括:
获取模块,用于获取当前帧对应的目标滤波信息,以及获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态;P为正整数;
第一滤波模块,用于对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波。
可选地,在所述当前帧为当前编码帧的情况下,所述获取模块包括:
第一计算子模块,用于对于每个块集合,分别计算所述块集合对应的像素在滤波情况下的第一率失真代价cost1以及不滤波情况下的第二率失真代价cost2;
第一确定子模块,用于若目标块集合对应的cost1和cost2满足:cost2≤cost1,则确定所述目标块集合的滤波状态为不滤波;
第二确定子模块,用于若所述目标块集合对应的cost1和cost2满足:cost2>cost1,则确定所述目标块集合的滤波状态为滤波;其中,所述目标块集合为所述P个块集合中的任意一个。
可选地,在所述当前帧为当前编码帧的情况下,所述装置还包括:
计算模块,用于计算块模式下的第一目标率失真代价,以及非块模式下的第二目标率失真代价;
处理模块,用于若第一目标率失真代价小于第二目标率失真代价,则执行所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述滤波信息中对应的滤波参数进行滤波的步骤;
其中,所述块模式为:所述当前帧中的每个像素基于所述像素所属的块集合对应的滤波状态进行滤波;所述非块模式为:所述当前帧中的每个像素基于所述当前帧的滤波状态进行滤波。
可选地,所述装置还包括:
第一编码模块,用于若第一目标率失真代价小于第二目标率失真代价,则将所述P个块集合中每个块集合对应的滤波状态的第一标识信息编码至码流中。
可选地,所述获取模块包括:
第一获取子模块,用于获取M个分类集合以及对应每个分类集合的滤波参数,并将所述M个分类集合以及对应每个分类集合的滤波参数作为所述目标滤波信息;
其中,所述分类集合是根据预设分类方式对所述当前编码帧的所有像素进行分类获得的;所述预设分类方式包括以下方式中的至少一者:
基于像素本身大小的分类方式;
基于像素及所述像素相邻的L个像素间的关系的分类方式,M、L均为正整数。
可选地,所述第一获取子模块包括:
处理单元,用于基于像素及所述像素相邻的L个像素间的关系,遍历所述当前帧的各个像素,得到每个像素对应的第一标识值;
第一分类单元,用于将所述当前帧中的所有像素按照所述第一标识值进行分类,得到M1个第一类型分类集合;其中,每个所述第一类型分类集合中对应像素的第一标识值相同;
第二分类单元,用于基于像素本身大小,遍历目标像素进行分类,得到每个第一类型分类集合对应的M2个第二类型分类集合,并获得M=M1*M2个分类集合;其中,所述目标像素为M1个第一类型分类集合中每个第一类型分类集合中的各个像素,M1、M2均为正整数。
可选地,所述第一获取子模块包括:
第三分类单元,用于基于像素本身大小,遍历目标像素进行分类,得到M3个第二类型分类集合,并获得M=M3个分类集合;其中,所述目标像素为所述当前帧中的所有像素,M3为正整数。
可选地,所述第一获取子模块具体用于:
遍历至少一个候选分类中的各个候选分类,确定第二类型分类集合的目标分类集合个数;
基于像素本身大小,遍历目标像素进行分类,得到目标分类集合个数的第二类型分类集合。
可选地,所述计算模块包括:
第一计算子模块,用于遍历至少一个候选分类中的各个候选分类,分别计算每个候选分类在所述非块模式下的第三率失真代价cost3以及在块模式下的第四率失真代价cost4;其中,不同候选分类对应的分类集合个数不同;
第一确定子模块,用于将每个候选分类对应的cost3中最小的cost3,作为所述第二目标率失真代价,以及将所述最小的cost3对应的候选分类所对应的cost4,作为所述第一目标率失真代价。
可选地,所述计算模块包括:
第二计算子模块,用于遍历至少一个候选分类中的各个候选分类,分别计算得到每个候选分类在所述非块模式下的第五率失真代价cost5;
第三计算子模块,用于计算每个候选分类对应的cost5中,最小的cost5对应的候选分类在所述块模式下的第六率失真代价cost6;
第二确定子模块,用于将所述最小的cost5作为所述第二目标率失真代价,以及将所述cost6作为所述第一目标率失真代价。
可选地,在所述当前帧为当前编码帧的情况下,所述获取模块包括:
第一处理子模块,用于若当前编码帧为第1个编码帧,则将基于所述当前编码帧的所有像素进行分类获得的第1个第一滤波信息,作为所述目标滤波信息;
第二处理子模块,用于若当前编码帧为第j个编码帧,则根据第j个第一滤波信息和时域信息列表,确定所述目标滤波信息;
其中,所述第j个第一滤波信息是基于所述第j个编码帧的所有像素进行分类获得的第一滤波信息;所述时域信息列表包含有K个第二滤波信息,所述第二滤波信息是基于目标编码帧的所有像素进行分类获得的滤波信息,所述目标编码帧的时序在所述当前编码帧之前,j、K为正整数,且j大于1。
可选地,所述装置还包括:
第二编码模块,用于若所述目标滤波信息是基于所述当前编码帧的所有像素进行分类获得的第一滤波信息,则将所述目标滤波信息编码至码流中;
第三编码模块,用于若所述目标滤波信息是时域信息列表中的一个第二滤波信息,则将所述目标滤波信息在所述时域信息列表中对应的第二标识信息编码至所述码流中。
可选地,所述装置还包括:
第二滤波模块,用于在当前编码帧通过反变换和去量化处理后,通过第一环路滤波技术以及目标环路滤波技术,对所述当前编码帧进行滤波处理;
其中,所述目标环路滤波技术包括以下中的至少一项:
去块效应滤波技术;
样点自适应补偿技术;
自适应环路滤波技术;
其中,所述第一环路滤波技术是所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波的技术。
第三方面,本发明实施例还提供了一种图像滤波设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的图像滤波方法的步骤。
第四方面,本发明实施例还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的图像滤波方法的步骤。
本发明的实施例,通过获取当前帧对应的目标滤波信息,以及获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态;并对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波,有利于提高编码性能,解决了目前以帧级进行滤波的方式存在编码性能差的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1表示本发明实施例的图像滤波方法的流程图;
图2表示本发明实施例的像素及与其相邻的8个像素的位置关系示意图;
图3表示本发明实施例的确定是否采用块模式的流程图之一;
图4表示本发明实施例的确定是否采用块模式的流程图之二;
图5表示本发明实施例的图像滤波装置的框图;
图6表示本发明实施例的图像滤波设备的框图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本发明的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本发明的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在本申请所提供的实施例中,应理解,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
具体地,本发明的实施例提供了一种图像滤波方法,解决了目前在视频编码方法存在图像编码性能差的问题。
如图1所示,本发明实施例提供了一种图像滤波方法,包括:
步骤11:获取当前帧对应的目标滤波信息,以及获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态;P为正整数。
步骤12:对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波。
可选地,所述当前帧可以是当前编码帧也可以是当前解码帧。例如:在当前帧为当前编码帧的情况下,上述步骤12即为编码阶段的滤波过程;在当前帧为当前解码帧的情况下,上述步骤12即为解码阶段的滤波过程。
可选地,所述目标滤波信息包括:所述当前帧中所有像素各自对应的滤波参数;或者,所述当前帧中所有像素所属的M个分类集合以及对应每个分类集合的滤波参数;或者,该目标滤波信息可以是时序在当前帧之前的目标帧对应的滤波信息(该目标帧对应的滤波信息可以是其所有像素所属的M个分类集合以及对应每个分类集合的滤波参数)。
可选地,所述块集合的块(block)的大小可以为:m*n,其中m,n为正整数。其中block的大小可以通过率失真优化来确定,也可以在编解码端预先设定block的大小;或者,block的个数可以通过率失真优化来确定,也可以在编解码端预先设定;或者在将当前帧划分为P个块集合时的行数/列数可以通过率失真优化来确定,也可以在编解码端预先设定。
上述方案中,通过获取当前帧对应的目标滤波信息,以及获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态;并对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波,有利于提高编码性能,解决了目前以帧级进行滤波的方式存在编码性能差的问题。
可选地,在所述当前帧为当前编码帧的情况下,上述获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态的步骤,可以具体包括:
对于每个块集合,分别计算所述块集合对应的像素在滤波情况下的第一率失真代价cost1以及不滤波情况下的第二率失真代价cost2;
若目标块集合对应的cost1和cost2满足:cost2≤cost1,则确定所述目标块集合的滤波状态为不滤波;
若所述目标块集合对应的cost1和cost2满足:cost2>cost1,则确定所述目标块集合的滤波状态为滤波;其中,所述目标块集合为所述P个块集合中的任意一个。
该实施例中,在像素分类过程中确定像素的分类集合及每个分类集合对应的滤波参数(offset)之后,即得知每个像素对应的offset;从而可以基于块集合中所有像素的offset,计算其进行滤波和不进行滤波时的率失真代价cost1和cost2;若目标块集合的cost2≤cost1,则表示不进行滤波的性能更优,则确定该目标块集合中的所有像素均不进行滤波;若目标块集合的cost2>cost1,则表示进行滤波的性能更优,则确定该目标块集合中的所有像素均进行滤波,如按照每个像素所属的分类集合对应的offset进行滤波。这样,每一个块结合都可以通过率失真优化过程决策出其各自对应的滤波状态,从而基于块集合确定其中的每个像素是否滤波的方式,有利于提高编码性能。
可选地,在所述当前帧为当前编码帧的情况下,在所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述滤波信息中对应的滤波参数进行滤波的步骤之前,所述方法还可以包括:
计算块模式下的第一目标率失真代价,以及非块模式下的第二目标率失真代价;
若第一目标率失真代价小于第二目标率失真代价,则执行所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述滤波信息中对应的滤波参数进行滤波的步骤;
其中,所述块模式为:所述当前帧中的每个像素基于所述像素所属的块集合对应的滤波状态进行滤波;所述非块模式为:所述当前帧中的每个像素基于所述当前帧的滤波状态进行滤波。
该实施例中,采用率失真优化的方式预先决策出当前帧是采用块模式还是非块模式进行滤波具有更优的性能的方式,在采用块模式相较于非块模式具有更优的编码性能的情况下,则采用块模式进行滤波,即对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述滤波信息中对应的滤波参数进行滤波;在采用非块模式相较于块模式具有更优的编码性能的情况下,则采用非块模式进行滤波,如可以采用帧级的方式进行滤波,即对每个像素,按照所述像素在所述滤波信息中对应的滤波参数进行滤波。
具体的,决策当前帧是采用块模式还是非块模式进行滤波具有更优的性能的方式,可以是在决策出每个块集合对应的滤波状态之后,计算按照每个块集合对应的滤波状态对当前帧进行滤波时的总的率失真代价,即第一目标率失真代价,同时还要获得不采用该块集合对应的滤波状态进行滤波时的总的率失真代价,即第二目标率失真代价(其中,该第二目标率失真代价可以在像素分类的过程中计算得到);这样通过将第一目标率失真代价与第二目标率失真代价进行比较,如果第一目标率失真代价小于第二目标率失真代价,则说明当前帧采用块模式具有更优的编码性能,即采用块模式进行滤波。否则不采用块模式进行滤波。
可选地,在计算块模式下的第一目标率失真代价,以及非块模式下的第二目标率失真代价的步骤之后,所述方法还可以包括:
若第一目标率失真代价小于第二目标率失真代价,则将所述P个块集合中每个块集合对应的滤波状态的第一标识信息编码至码流中。
具体的,如果第一目标率失真代价小于第二目标率失真代价,则说明当前帧采用块模式具有更优的编码性能,即采用块模式进行滤波。并且在采用了块模式进行滤波的情况下,在编码过程中还需要将每个块集合对应的滤波状态的标识信息编码至码流中;如果不采用块模式进行滤波,则可以不需要将块集合对应的滤波状态的标识信息编码至码流中。
可选地,每个块集合可以分别对应一个滤波状态的标识信息,如:针对每个块集合都会通过1bit的块标识(blockflag)来指示当前块集合是否滤波,如blockflag=0表示进行滤波,blockflag=1表示不进行滤波。或者,多个块集合共用一个滤波状态的标识信息,如:滤波状态相同的多个块集合可以共用一个标识信息,则可以将进行滤波的块集合以及不进行滤波的块集合的标识信息分别编码至码流中;再或者,可以是按照一行或多行中的多个块集合共用一个标识信息,如:通过一个标识信息标识一行中的多个块集合的滤波状态,这样可以通过行数个标识信息编码这P个块集合的滤波状态,从而提高码率;当然,也可以是按照一列或者多列中的多个块集合共用一个标识信息,如:通过一个标识信息标识一列中的多个块集合的滤波状态,这样可以通过列数个标识信息编码这P个块集合的滤波状态,从而提高码率。
具体的,根据滤波状态的标识信息来控制当前块集合中的像素是否进行滤波;若当前块集合对应的滤波状态的标识信息为假(0),则确定当前块集合中的所有像素都不滤波,若当前块集合对应的滤波状态的标识信息为真(1),则确定当前块集合中的所有像素都需要滤波。
以下结合编码和解码过程进行说明:
通过编码1比特(bit)的帧控制标识(frame_control_flag)来指示当前帧是否需要进行滤波,如果frame_control_flag=0,则表示不进行滤波,无需再传递任何其他信息,如像素的分类集合及滤波参数等。
如果frame_control_flag=1,则表示需要进行滤波;则编码块集合(block_component)的标识信息,若block_component=1,则表示需要采用块模式滤波,并编码Numblock个块标识(block_flag),Numblock表示当前帧对应的块集合的个数。再编码像素分类的类别(classNum),同时编码该classNum下得到的每个分类集合对应的滤波参数(offset)。如果frame_control_flag=0,则表示不进行滤波,无需再传递任何其他信息。
在解码端,首先先解码1bit的frame_control_flag,如果为0,说明不进行该滤波。
如果为1,且block_component=1,表明采用块模式进行滤波,并解码Numblock个block_flag,Numblock表示当前帧对应的块集合的个数。block_flag解码完成后,解码像素分类的类别classNum以及对应每个分类集合的offset。
需要说明的是,针对像素的亮度分量(Y)、第一色的分量(U)和第二色度分量(V)分别可以采用上述方式进行编码,即Y、U、V三分量可以独立编码。
可选地,获取当前帧对应的目标滤波信息的步骤,可以具体包括:
获取M个分类集合以及对应每个分类集合的滤波参数,并将所述M个分类集合以及对应每个分类集合的滤波参数作为所述目标滤波信息;
其中,所述分类集合是根据预设分类方式对所述当前编码帧的所有像素进行分类获得的;所述预设分类方式包括以下方式中的至少一者:
基于像素本身大小的分类方式;
基于像素及所述像素相邻的L个像素间的关系的分类方式,M、L均为正整数。
需要说明的是,在当前帧为当前解码帧的情况下,可通过接收到的编码端设备发送的滤波信息中,获取M个分类集合以及每个分类集合对应的滤波参数。
其中,像素及与其相邻的L个像素间的关系包括:像素及与其相邻的L个像素间的大小关系。
可选地,像素包括:亮度分量Y和色度分量UV。其中,色度分量包括第一色度分量U和第二色度分量V。
具体的,像素所属分类集合包括以下中的至少一者:
像素在亮度分量上所属的分类集合;
像素在第一色度分量上所属的分类集合;
像素在第二色度分量上所属的分类集合。
而像素在不同分量上所属的分类集合具有与之对应的滤波参数。
本实施例中,上述步骤中所述的像素是基于像素的目标分量而言的,所述目标分量包括:亮度分量、第一色度分量和第二色度分量中的至少一者。
若目标分量包括至少两个分量,则基于至少两个分量的滤波,可以相互独立,也可以任意两者联合滤波,这里不做具体限定。
作为一可选地实现方式,所述当前帧为当前编码帧;本发明实施例的中获取M个分类集合的步骤,可具体包括:
首先,基于像素及与其相邻的L个像素间的关系,遍历所述当前帧的各个像素,得到每个像素对应的第一标识值;
具体的,采用以下步骤,基于像素及与其相邻的L个像素间的关系,遍历所述当前帧的各个像素,得到每个像素对应的第一标识值:
将第一像素和与所述第一像素相邻的第i个像素进行大小比较,i小于或等于L,且i为正整数;
若所述第一像素的大小大于所述第i个像素的大小,则将Classi-1与第一预设数值相加得到Classi
若所述第一像素的大小小于所述第i个像素的大小,则将Classi-1与第二预设数值相减得到Classi
将ClassL确定为所述第一像素对应的第一标识值;
其中,当i=1时,Classi-1为预设初始值;当i>1时,Classi-1为所述第一像素及与其相邻的第i-1个像素进行大小比较后的计算结果,所述第一像素为所述当前帧中的所有像素中的任意一者。
需要说明的是,通常情况下,像素呈方形,与其相邻的像素可以是8个,如图2所示,像素被其周围的8个像素围绕。还可以是4个像素,其中,4个像素可以对角分布,也可以是十字分布。
下面以一示例,具体说明上述步骤的实现过程。
如图2所示,第一像素依次与周围8个像素比较大小。假设Y1(i,j)表示第一像素的亮度分量,Y(k1,k2)表示周围像素的亮度分量,其中,|k1-i|≤1,|k1-j|≤1;分类示例代码如下:
Initial:Classt1=0;
For|k1-i|≤1,k2-j|≤1:
If Y(k1,k2)>Y1(i,j):
Classt1+=1
Else if Y(k1,k2)<Y1(i,j)
Classt1+=-1
这里,初始分类设置成Classt1=0,即预设初始值为0,周围8个像素依次与第一像素比较大小。假设有上述分类准则:如果周围像素比当前像素大,则Classt1自加1;如果周围像素比当前像素小,则Classt1自加-1,遍历完成后得到第一像素对应的第一标识值,该标识值用于标识第一像素所属分类集合。通过这种方法分类,由此可知,-8≤Classt1≤8。基于该分类方法,当前帧中的所有像素最多可被分为17个分类集合,也就是17类。
再者,如图2所示,第一像素依次与周围8个像素比较大小。假设Y1(i,j)表示第一像素的亮度分量,Y(k1,k2)表示周围像素的亮度分量,其中,|k1-i|≤1,|k1-j|≤1;分类示例代码如下:
Initial:Classt1=0;
For|k1-i|≤1,|k2-j|≤1:
If Y(k1,k2)>Y1(i,j):
Classt1+=1
这里,初始分类设置成Classt1=0,即预设初始值为0,周围8个像素依次与第一像素比较大小。假设有上述分类准则:如果周围像素比当前像素大,则Classt1自加1;如果周围像素比当前像素小,则Classt1不变,遍历完成后得到第一像素对应的第一标识值,该标识值用于标识第一像素所属分类集合。通过这种方法分类,由此可知,0≤Classt1≤8。基于该分类方法,当前帧中的所有像素最多可被分为9个分类集合,也就是9类。
需要说明的是,上述示例是基于像素的亮度分量说明的,同样地也适用于基于像素的色度分量,这里不再赘述。
作为另一可选地实现方式,采用以下步骤,基于像素及与其相邻的L个像素间的关系,遍历所述当前帧的各个像素,得到每个像素对应的第一标识值:
根据第三像素的大小以及在多个预设方向上与所述第三像素相邻的像素的大小,分别计算得到所述第三像素在各个预设方向上的梯度值;
这里,多个预设方向可包括:水平方向(x方向)、垂直方向(y方向)、沿水平方向向-y方向偏移第一角度的第一方向和沿水平方向向+y方向偏移第二角度。
较优地,第一角度和第二角度均为45度。
就一示例说明,参考图2,此时图2中的第一像素在这里可以看作是第三像素,图中,在水平方向上,与第三像素v相邻的像素有两个,称为a像素和b像素,分别将第三像素的大小与a像素的大小相减后取绝对值,将第三像素的大小与b像素的大小相减后取绝对值,之后求和,得到第三像素在水平方向的梯度值;其他方向的梯度值计算过程参考上述过程,最后得到第三像素在各个方向上的梯度值。
对所述第三像素在各个预设方向上的梯度值进行比较,确定所述第三像素所属的目标方向梯度,并将所述目标方向梯度对应的标识值作为所述第三像素的第一标识值。
这里,对所述第三像素在各个预设方向上的梯度值进行比较,这里比较梯度值的大小,按照预设规则,确定一最优梯度值,该最优梯度值可以是最大的梯度值,也可以最大的梯度值,最后,将最优梯度值对应的方向梯度确定为目标方向梯度。
继续以上述示例为例,比如通过比较,得到最优梯度值对应的是第三像素在水平方向上的梯度值,则第三像素所属的方向梯度为水平梯度。
本实现方式中,像素及与其相邻的L个像素的梯度分布可以是拉普拉斯分布、高斯分布等关系。
之后,将所述当前帧中的所有像素按照所述第一标识值进行分类,得到M1个第一类型分类集合;其中,每个所述第一类型分类集合中对应像素的第一标识值相同;
最后,根据所述M1个第一类型分类集合获得所述M个分类集合,M1为正整数。这样当仅采用基于像素及与其相邻的L个像素间的关系的分类方式对当前帧的所有像素进行分类的情况下,可以根据所述M1个第一类型分类集合,获得M=M1个分类集合。
作为又一可选地实现方式,所述获取M个分类集合的步骤,可以包括:
基于像素及所述像素相邻的L个像素间的关系,遍历所述当前帧的各个像素,得到每个像素对应的第一标识值;
将所述当前帧中的所有像素按照所述第一标识值进行分类,得到M1个第一类型分类集合;其中,每个所述第一类型分类集合中对应像素的第一标识值相同;
基于像素本身大小,遍历目标像素进行分类,得到每个第一类型分类集合对应的M2个第二类型分类集合,并获得M=M1*M2个分类集合;其中,所述目标像素为M1个第一类型分类集合中每个第一类型分类集合中的各个像素,M1、M2均为正整数。
基于上述获得M1的第一类型的分类集合的而基础上,进一步地将每个第一类型分类集合划分为M2个第二类型分类集合,并获得M=M1*M2个分类集合。
需要说明的是,基于像素本身大小对M1个第一类型分类集合中的每个第一类型分类集合中的所有像素进行分类,需要提前设定第二类型分类集合个数,而为了尽可能的得到最大增益,通过自适应选择,得到最优的分类,即需要分成的第二类型分类集合的个数,即M2。也就是说,M2的取值可通过自适应选择处理得到。
可选地,当M=M1*M2时,所述分类集合是基于像素的亮度分量,根据预设分类方式对所述当前帧的所有像素进行分类获得的。
也即,基于像素的亮度分量,对当前帧的所有像素进行分类时,先采用基于像素及与其相邻的L个像素的关系的分类方式,再采用基于像素本身大小的分类方式,最后得到M1*M2个分类集合。
作为再一可选地实现方式:所述获取M个分类集合的步骤,可以具体包括:
基于像素本身大小,遍历目标像素进行分类,得到M3个第二类型分类集合,并获得M=M3个分类集合;其中,所述目标像素为所述当前帧中的所有像素,M3为正整数。
可选地,当M=M3时,所述分类集合是基于像素的色度分量,根据预设分类方式对所述当前帧的所有像素进行分类获得的。
需要说明的是,上述两个实现方式中,均涉及基于像素本身大小的分类方式,基于此,进一步地,本发明实施例的方法,在基于像素本身大小,遍历目标像素进行分类,得到第二类型分类集合的步骤,可以具体包括:
遍历至少一个候选分类中的各个候选分类,确定第二类型分类集合的目标分类集合个数;基于像素本身大小,遍历目标像素进行分类,得到目标分类集合个数的第二类型分类集合。
这里,作为一可选地实现方式,确定第二类型分类集合的目标分类集合个数,可包括以下步骤:
首先,根据预先设定的门限值T,确定T个候选分类;其中,不同的候选分类对应不同的分类集合个数,T为正整数;需要说明的是,T个候选分类中每个候选分类对应的分类集合个数具体为多少不做限定。可以是随机的,也可以是基于预定规则的取值,比如,所述T个候选分类依次对应的分类集合个数为1~T中的正整数。
这里,预先设定的门限值T具体指的是前述实施例中提到的预先设定的第二类型分类集合个数。
需要说明的是,候选分类指的是按照不同的分类集合个数,当前帧对应的分类。也即,按照不同的分类集合个数划分,当前帧可以对应分为多少类,即具有多少种分类情况。
例如,T=4,则当前帧对应的候选分类为4个。也就是说,按照不同的分类集合个数,当前帧可以对应分为1、2、3、4共四类。也就是,4个候选分类中对应的分类集合个数分别是1、2、3、4。
之后,遍历所述T个候选分类中的各个候选分类,计算得到每个候选分类在非块模式下的第三率失真代价cost3。
这里,具体的,可采用以下步骤,遍历所述T个候选分类,计算得到按照每个候选分类对所述当前帧中的所有像素进行分类所对应的最优率失真代价:
首先,获取第一候选分类对应的每个分类集合的滤波参数;
采用以下步骤,遍历第一候选分类对应的每个分类集合,得到每个分类集合对应的滤波参数:
获取目标分类集合的像素个数以及所述目标分类集合中的每个像素与其对应位置原始像素之间的差值,所述原始像素为编码前的像素,所述目标分类集合为所述第一候选分类中所有分类集合中的任意一者;
根据所述像素个数以及所述差值,确定所述目标分类集合的初始滤波参数;
具体的,上述步骤中得到的差值的个数与目标分类集合的个数相同,在差值的个数不少于2个的情况下,计算多个差值的和,并将多个差值的和与所述像素个数作除法运算,得到目标分类集合的初始滤波参数。
对所述初始滤波参数进行限定处理,确定所述目标分类集合对应的R个滤波参数;
本步骤中,首先,给定一个滤波参数的取值范围;之后,基于该取值范围,对初始滤波参数进行限定处理,使得初始滤波参数处于该取值范围内;最后,从0到初始滤波参数对应的第一区间内,或者从初始滤波参数到0对应的第二区间内,确定目标分类集合对应的R个滤波参数。
具体的,采用第一区间还是第二区间取决于初始滤波参数的正负。
遍历所述R个滤波参数中的各个滤波参数,计算得到按照每个滤波参数对所述目标分类集合进行模拟滤波所对应的最优率失真代价;
将所述R个滤波参数中最优率失真代价最小的滤波参数确定为所述目标分类集合对应的滤波参数。
也就是说,最后确定出的目标分类集合对应的滤波参数为最优的滤波参数。
下面就一示例详细说明:
假设Class_tmp∈(0,Classtotal-1),其中,Class_tmp表示任意一个分类集合(目标分类集合)的标识值,Classtotal表示分类集合的最大标识值,其滤波参数offset的计算过程如下:
首先,统计处于Class_tmp的像素个数numCount以及处于Class_tmp的像素与对应位置原始像素之间的差值diffCount。之后,计算Class_tmp的初始offset:initialOffset=diffCount/numCount;接着,对initialOffset进行大小限定:initialOffset=COM_CLIP3(-A,A,initialOffset),使得initialOffset处于offset允许的最大最小范围内。其中,[-A,A]为offset的取值范围;接着,从[0,initialOffset]或者[initialOffset,0]区间开始,根据率失真优化计算得到最优的bestOffset。
具体的,选择哪个区间取决于initialOffset的正负。
需要说明的是,clip函数用于限制一个数组的上下界,COM_CLIP3(-A,A,initialOffset)用于表示要限定的范围最小值-A,要限定的范围最大值A,是要输出的数组为initialOffset。
所有分类集合对应的bestOffset的计算过程相同。通过这种方法,一共可以得到Classtotal个bestOffset。
之后,根据所述滤波参数,计算得到所述第一候选分类对应的最优率失真代价,所述第一候选分类为所述T个候选分类中的任意一者。
需要说明的是,利用得到的第一候选分类对应的每个分类集合的滤波参数,对当前帧进行模拟滤波,之后,将滤波后的像素与其对应位置的原始像素进行比较,得到滤波损失;之后,计算所述滤波参数编入码流中所消耗的比特数;最后,计算滤波损失与所消耗的比特数的和,得到最优率失真代价。
最后将所述T个候选分类中最优率失真代价最小的候选分类所对应的分类集合个数,确定为第二类型分类集合的目标分类集合个数;
这里,该步骤执行需要满足的条件为:得到的最小的最优率失真代价小于未基于获取到的每个分类集合对应的滤波参数滤波时,计算得到的最优率失真代价;若不满足上述条件,则不执行基于像素本身大小,遍历目标像素进行分类,也就是,不采用基于像素本身大小的分类方式进行滤波的滤波技术。
此时,目标分类集合个数为基于预先设定的门限值确定出的最优的分类集合个数。该目标分类集合个数对应于先采用基于像素及与其相邻的L个像素的关系的分类方式,再采用基于像素本身大小的分类方式的情况下,取值为M2;该目标分类集合个数对应于仅采用基于像素本身大小的分类方式的情况下,取值为M3。
所述基于像素本身大小,遍历目标像素进行分类,包括:
根据第三像素的像素大小、所述目标分类集合个数以及图像位深,确定所述第三像素所属的第二类型分类集合;其中,所述第三像素为所述目标像素中的任意一者。
这里,本步骤可具体包括:
将所述第三像素的像素大小与所述目标分类集合个数进行乘法运算;
根据所述图像位深,对经乘法运算后得到的结果进行右移运算,得到所述第三像素的第二标识值;
根据所述第三像素的第二标识值,确定所述第三像素所属的第二类型分类集合;其中,所述每个第二类型分类集合对应像素的第二标识相同。
在一示例中,该示例可承接如图2所示的示例继续说明,也就是在先采用基于像素及与其相邻的L个像素的关系的分类方式对当前帧的所有像素进行分类完成之后,基于像素本身大小对像素进行分类。
具体的,一个视频,根据其图像位深bitdepth,其像素的大小范围(0,(1<<bitdepth)-1),基于像素本身大小将图像像素分类,假设需要分成Classt2,Classt2可通过自适应选择处理得到,可以理解为Classt2为目标分类集合个数,Y2(i,j)表示第三像素的亮度分量;其分类的计算公式则为:
Pixelclass=(Y2(i,j)*Classt2)>>bitdepth (1)
Pixelclass用于表示第三像素的第二标识值,该标识值用于标识第二像素所属分类集合。
需要说明的是,1<<bitdepth,表示1向左移bitdepth,例如,bitdepth为8,则1向左移8位的取值为256,也就是,8位位深的图像,其像素的大小范围(0,255)。还有,符号“>>”用于表示右移位。
比如,通过上述基于像素本身大小的分类方式,得到2个第二类型分类集合,则先采用基于像素及与其相邻的L个像素的关系的分类方式,再采用基于像素本身大小的分类方式,将当前帧的所有像素分为2*17,即34个分类集合。
这里,作为另一可选地实现方式,确定第二类型分类集合的目标分类集合个数,可包括以下步骤:
确定候选分类集合,所述候选分类集合包括至少一个候选分类,每个候选分类对应一个分类集合个数;
需要说明的是,候选分类集合中的候选分类中,不同的候选分类对应不同的分类集合个数。
本步骤中的候选分类集合可以理解为一个初始的候选分类集合。其中,可通过预设设置,确定候选分类集合。比如,初始的候选分类集合中包括5个候选分类,这5个候选分类中对应的分类集合个数分别是1、2、3、4、5,即初始的候选分类集合可具体表示为{1,2,3,4,5}。
遍历所述候选分类集合中的各个候选分类,计算得到按照每个候选分类对所述当前帧中的所有像素进行分类所对应的最优率失真代价;
本步骤的具体实现原理,可参考上一实现方式中,即遍历所述T个候选分类,计算得到按照每个候选分类对所述当前帧中的所有像素进行分类所对应的最优率失真代价的实现过程,这里不再赘述。
在存在最优率失真代价小于预设阈值的情况下,循环执行:
首先,根据第一预设规则,得到更新后的所述候选分类集合;
这里,预设阈值小于或者等于未基于获取到的每个分类集合对应的滤波参数滤波时,计算得到的最优率失真代价。
需要说明的是,当前候选分类集合通过第一预设规则,能够得到更新后的候选分类集合。
举例说明,当前候选分类集合为{1,2,3,4,5},通过第一预设规则,得到更新后的候选分类集合为{6,7,8,9,10},若当前候选分类集合为{6,7,8,9,10},通过第一预设规则,得到更新后的候选分类集合为{11,12,13,14,15},依次类推。
也就是第一预设规则为更新后的候选分类集合中候选分类的个数相同,候选分类对应的分类集合个数的取值,基于未更新前的候选分类集合中最后一个取值,按照升序依次递增取值。
当然,第一预设规则不仅限于此,也可以是其他的规则,这里不做具体限定。
之后,遍历更新后的所述候选分类集合中的各个候选分类,计算得到按照每个候选分类对所述当前帧中的所有像素进行分类所对应的最优率失真代价,直至更新后的所述候选分类集合中所有候选分类对应的最优率失真代价均大于所述预设阈值,则获取得到的所有最优率失真代价中的最小值,将所述最小值对应的候选分类所对应的分类集合个数确定为目标分类集合个数。
这里,更新后的所述候选分类集合中所有候选分类对应的最优率失真代价均大于所述预设阈值,说明该候选分类集合中没有一个候选分类,能够使得帧图像在采用基于像素本身大小的分类方式滤波的效果好于未采用该方式滤波时的效果。为了提高运算效率,减少运算量,直接执行获取得到的所有最优率失真代价中的最小值,将所述最小值对应的候选分类所对应的分类集合个数确定为目标分类集合个数的步骤。
在此基础上,进一步地,作为一可选地实现方式,在获取得到的所有最优率失真代价中的最小值,将所述最小值对应的候选分类所对应的分类集合个数确定为目标分类集合个数之前,本发明实施例的方法还可包括:
循环执行:
根据第二预设规则,得到更新后的所述候选分类集合;
遍历更新后的所述候选分类集合中的各个候选分类,计算得到按照每个候选分类对所述当前帧中的所有像素进行分类所对应的最优率失真代价,直至达到第一循环上限f,f为正整数。
需要说明的是,对于f的取值,可以预先设置,也可根据实际情况确定,这里不做具体限定。
这里,在达到第一循环上限之后,执行获取得到的所有最优率失真代价中的最小值,将所述最小值对应的候选分类所对应的分类集合个数确定为目标分类集合个数。此时,
本实现方式的目的,在是为了进一步确保得到的最优率失真代价最小,在此基础上,降低对运算效率的影响。
作为一可选地实现方式,在遍历所述候选分类集合中的各个候选分类,计算得到按照每个候选分类对所述当前帧中的所有像素进行分类所对应的最优率失真代价之后,本发明实施例的方法还可包括:
在不存在最优率失真代价小于所述预设阈值的情况下,不执行基于像素本身大小,遍历目标像素进行分类的步骤;
这里,在不满足上述条件,说明尝试的第一个候选分类集合中没有一个候选分类,能够使得帧图像在采用基于像素本身大小的分类方式滤波的效果好于未采用该方式滤波时的效果。此时,不执行基于像素本身大小,遍历目标像素进行分类,也就是,不采用基于像素本身大小的分类方式进行滤波的滤波技术。
或者,
考虑到运算过程中可能出现的失误,为了避免这种情况的发生,预设一个更新次数,即下文提到的循环上限,具体的,在不存在最优率失真代价小于所述预设阈值的情况下,循环执行:
根据第三预设规则,得到更新后的所述候选分类集合;
遍历更新后的所述候选分类集合中的各个候选分类,计算得到按照每个候选分类对所述当前帧中的所有像素进行分类所对应的最优率失真代价,
直至未达到第二循环上限g之前,更新后的所述候选分类集合中所有候选分类对应的最优率失真代价均大于所述预设阈值,则获取得到的所有最优率失真代价中的最小值,将所述最小值对应的候选分类所对应的分类集合个数确定为目标分类集合个数,g为正整数;
或者,
直至达到所述第二循环上限,则
获取得到的所有小于所述预设阈值的最优率失真代价中的最小值,将所述最小值对应的候选分类所对应的分类集合个数确定为目标分类集合个数;
需要说明的是,此类情况对应的是,达到所述第二循环上限,但是没有找到更新后的所述候选分类集合中所有候选分类对应的最优率失真代价均大于所述预设阈值的情形,说明之前的候选分类集合中存在候选分类对应的最优率失真代价小于所述预设阈值的情况。
或者,在获取得到的所有最优率失真代价均大于所述预设阈值的情况下,不执行基于像素本身大小,遍历目标像素进行分类的步骤。
这里,此类情况对应的是,经过允许的最大更新次数(即第二循环上限)的尝试,发现所有尝试的候选分类集合中中没有一个候选分类,能够使得帧图像在采用基于像素本身大小的分类方式滤波的效果好于未采用该方式滤波时的效果。因此,不执行基于像素本身大小,遍历目标像素进行分类,也就是,不采用基于像素本身大小的分类方式进行滤波的滤波技术。
作为一可选地实现方式,获取每个分类集合的滤波参数的步骤,可具体包括:
采用以下步骤,遍历M个分类集合中的每个分类集合,得到每个分类集合对应的滤波参数:
获取目标分类集合的像素个数以及所述目标分类集合中的每个像素与其对应位置原始像素之间的差值,所述原始像素为编码前的像素,所述目标分类集合为所述M个分类集合中所有分类集合中的任意一者;
根据所述像素个数以及所述差值,确定所述目标分类集合的初始滤波参数;
具体的,上述步骤中得到的差值的个数与目标分类集合的个数相同,在差值的个数不少于2个的情况下,计算多个差值的和,并将多个差值的和与所述像素个数作除法运算,得到目标分类集合的初始滤波参数。
对所述初始滤波参数进行限定处理,确定所述目标分类集合对应的J个滤波参数;
本步骤中,首先,给定一个滤波参数的取值范围;之后,基于该取值范围,对初始滤波参数进行限定处理,使得初始滤波参数处于该取值范围内;最后,从0到初始滤波参数对应的第一区间内,或者从初始滤波参数到0对应的第二区间内,确定目标分类集合对应的J个滤波参数。
具体的,采用第一区间还是第二区间取决于初始滤波参数的正负。
遍历所述J个滤波参数中的各个滤波参数,计算得到按照每个滤波参数对所述目标分类集合进行模拟滤波所对应的最优率失真代价;
将所述J个滤波参数中最优率失真代价最小的滤波参数确定为所述目标分类集合对应的滤波参数。
也就是说,最后确定出的目标分类集合对应的滤波参数为最优的滤波参数。
结合以上像素分类的方式,所述计算块模式下的第一目标率失真代价,以及非块模式下的第二目标率失真代价的步骤,可以具体通过以下方式实现:
方式一:
在遍历至少一个候选分类中的各个候选分类的过程中,分别计算每个候选分类在所述非块模式下的第三率失真代价cost3以及在所述块模式下的第四率失真代价cost4;其中,不同候选分类对应的分类集合个数不同;
将每个候选分类对应的cost3中最小的cost3,作为所述第二目标率失真代价,以及将所述最小的cost3对应的候选分类所对应的cost4,作为所述第一目标率失真代价。
如图3所示,若当前为Y分量则先获得第一类型分类集合,再获得第二类型分类集合;若当前为UV分量,则获得第二类型分类集合。
进一步地,在获得第二类型分类集合的过程中,针对每一候选分类对应的率失真优化过程都需要进行一次是否需要采用块模式进行滤波的判断,例如:遍历T个候选分类的过程中有举例,假设选择1,2,3,4一共四类进行自适应,因此我们会得到将当前帧分成:m,2m,3m,4m一共四种分类的情况(在当前分量为Y时,m为第一类型分类集合的个数;在当前分量为UV时,m为1),针对每个候选分类的情况都分别并行的计算两个率失真代价,一个是采用块模式的最优的率失真代价,另一个是不采用块模式的最优的率失真代价。
需要说明的是,以上是以遍历T个候选分类的过程中,计算每个候选分类在块模式和非块模式下的率失真代价举例说明的,当然,遍历至少一个候选分类的过程还可以是上述确定第二类型分类集合的目标分类集合个数中的其他实施例中的过程,本申请不以此为限。
之后可以根据每个候选分类对应的不采用块模式的最优的率失真代价决策出一个最小的率失真代价,作为最优的候选分类的率失真代价,即为第二目标率失真代价,并将该最优的候选分类下的采用块模式的率失真代价与不采用块模式的率失真代价进行比较;若不采用块模式的率失真代价更小,则确定当前分量的block_component等于0,并将该标识写入到码流中;若采用块模式的率失真代价更小,则确定当前分量的block_component等于1,并将该标识写入到码流中,同时每个块集合对应的block_flag也需要写入到码流中。
方式二:
在遍历至少一个候选分类中的各个候选分类的过程中,分别计算得到每个候选分类在非块模式下的第五率失真代价cost5;
计算每个候选分类对应的cost5中,最小的cost5对应的候选分类在所述块模式下的第六率失真代价cost6;
将所述最小的cost5作为所述第二目标率失真代价,以及将所述cost6作为所述第一目标率失真代价。
如图4所示,若当前为Y分量则先获得第一类型分类集合,再获得第二类型分类集合;若当前为UV分量,则获得第二类型分类集合。
上述获得第二类型分类集合的过程即为从多个候选分类中获得最优候选分类的对应的分类集合的过程,此时已经得到了该最优候选分类集合对应的率失真代价,即第二目标率失真代价;进而计算该最优候选分类采用块模式下的率失真代价,即为第一目标率失真代价;之后再对第一目标率失真代价和第二目标率失真代价进行比较,判断是否需要采用块模式。具体判断过程与上述方式一类似,这里不再赘述。
采用该方式二只会使得计算采用块模式的率失真优化过程增加一次,相比方式一来说,计算采用块模式的率失真优化过程大大减少。
需要说明的是,对于编码器来说采用方式一或者方式二可以预先设定,也可以通过率失真优化的方式在两个方式之间进行选择。以下针对方式一进行举例说明具体滤波过程:
YUV分量三者的滤波过程相互独立,区别仅在于亮度和两个色度在滤波之前的像素分类的方法上稍有区别,以上实施例已进行了说明。以亮度为例,若亮度分量的帧滤波控制标识frame_filtet_control=1同时block_component=1,表明亮度分量需要滤波同时采用了块模式进行滤波。
首先判断当前像素所处的块集合的block_flag值,若block_flag=0,表明当前块集合内的像素不需要滤波,则跳过当前块集合中的像素的滤波过程,进行下一个块集合的判断。若block_flag=1,表明当前块集合内的像素需要滤波。
可选地,针对当前像素进行滤波的过程,可以具体包括:
根据所述目标标识值,得到所述第三像素所属分类集合对应的滤波参数;
根据所述滤波参数,对所述第三像素进行滤波;其中,所述第三像素为所述当前帧中的所有像素中的任意一者。
首先,根据第一种分类方法和第二种分类方法,具体参见上述公式(1),分别得到第三像素的亮度分量Y3(i,j)的第一个分类结果C1和第二个分类结果C2,由此导出Y3(i,j)的所属分类集合的标识值Cy=C2*m+C1,其中m为采用第一种分类方法所能分出的分类集合总个数。
接着,根据Cy值,得到对应的滤波参数offset。
最后,基于Y3(i,j)=COM_CLIP3(0,1<<bitdepth-1,Y3(i,j)+offset)。依次循环,直到遍历完所有的块集合。
本发明的图像滤波方法可以应用于环路滤波过程中,对于整个编码,所增加的码流开销如下:
YUV分量分别对应1bit的frame_filtet_control;frame_filtet_control=0则不滤波;frame_filtet_control=1则需要滤波,以及1bit的block_component,若block_component=1,表明当前分量采用块模式滤波,因此还需要继续编码Numblock和每个块集合的block_flag,Numblock的大小等于当前分量的块集合的个数,以及还需要编码滤波参数,由于亮度分量对应的分类集合总数为M=M1*M2,而色度对应的分类集合总数为M=M2,也即对应YUV三个分量分别对应M个需编解码的offset。
可选地,YUV分量之间还可以采用联合滤波的方式,具体为:对当前块集合中的每个像素,按照其目标分量所属分类集合对应的率失真代价,确定是否进行滤波,所述目标分量包括亮度分量、第一色度分量和第二色度分量中的至少一者;
需要说明的是,若目标分量包括亮度分量、第一色度分量和第二色度分量的情况下,对于当前帧的滤波,可基于像素的亮度分量、第一色度分量和第二色度分量三者的滤波相互独立。
也就是,是否进行滤波,根据各个分量自身的情况确定。
对此,需要说明的是,对于块集合的滤波,可以基于像素的亮度分量、第一色度分量和第二色度分量中任一两者的联合进行滤波,联合的情况可以是亮度分量、第一色度分量和第二色度分量三者联合进行滤波,也可以是其中某两个分量两者联合进行滤波。
举例说明,假设像素的亮度分量与第一色度分量两者联合进行滤波,则对每个像素按照其亮度分量所属分类集合对应的率失真代价Costy以及按照其第一色度分量所属分类集合对应的率失真代价Costu求和,得到目标率失真代价Costy+Costu
若Costy+Costu小于当前帧未基于获取到的每个分类集合对应的滤波参数滤波时,计算得到的最优率失真代价,则当前块集合分别基于像素的亮度分量和第一色度分量进行滤波;否则,亮度分量和色度分量均不滤波。
这里,联合还可以是三个分量滤波顺序上的联合,比如,先按照本实施例的方法,得到当前块集合中每个像素,按照其亮度分量所属分类集合对应的率失真代价,基于该率失真代价,确定是否进行滤波,若结果为不进行滤波,则不再对当前帧基于像素的色度分量按照本实施例的方法进行滤波。
若进行滤波,则将当前块集合中每个像素按照其目标分量所属分类集合对应的滤波参数进行滤波。
可选地,在所述当前帧为当前编码帧的情况下,所述获取当前帧对应的目标滤波信息的步骤,可以包括:
若当前编码帧为第1个编码帧,则将基于所述当前编码帧的所有像素进行分类获得的第1个第一滤波信息,作为所述目标滤波信息;
若当前编码帧为第j个编码帧,则根据第j个第一滤波信息和时域信息列表,确定所述目标滤波信息;
其中,所述第j个第一滤波信息是基于所述第j个编码帧的所有像素进行分类获得的第一滤波信息;所述时域信息列表包含有K个第二滤波信息,所述第二滤波信息是基于目标编码帧的所有像素进行分类获得的滤波信息,所述目标编码帧的时序在所述当前编码帧之前,j、K为正整数,且j大于1。
可选地,在所述当前帧为当前编码帧的情况下,所述获取当前帧对应的目标滤波信息的步骤之后,所述方法还包括:
若所述目标滤波信息是基于所述当前编码帧的所有像素进行分类获得的第一滤波信息,则将所述目标滤波信息编码至码流中;
若所述目标滤波信息是时域信息列表中的一个第二滤波信息,则将所述目标滤波信息在所述时域信息列表中对应的第二标识信息编码至所述码流中。
其中,所述时域信息列表包含有K个第二滤波信息,所述第二滤波信息是基于目标编码帧的所有像素进行分类获得的滤波信息,所述目标编码帧的时序在所述当前编码帧之前,K为正整数。
可选地,所述目标滤波信息包括以下至少一者:
像素的M个分类集合,M为正整数;
对应每个所述分类集合的滤波参数。
例如:当编码端采用了从多个候选分类中选择一个目标候选分类的方式,将当前编码帧中的所有像素进行分类得到M个分类集合时,所述目标滤波信息中除了包含每个分类集合的滤波参数之外,还应该包含有该目标候选分类或者该目标候选分类下的M个分类集合,解码端可以根据该M个分类集合直接进行解码,或者根据该目标分类集合确定与当前编码帧对应的解码帧的所有像素所属的M个分类集合,再根据所述分类集合对应的滤波参数进行解码。
再例如:当编码端未采用从多个候选分类中选择一个目标候选分类的方式,即编码端与解码端可以预先协议规定像素的分类方式时,所述目标滤波信息中可以仅包含每个分类集合的滤波参数。
可选地,所述时域信息列表中所能保存的K个第二滤波信息的个数可以固定为m个,(m为正整数)也可以不固定;当时序信息列表中所能存储的时域信息的个数不固定时,其个数的多少可以根据训练得到的最优分类值来确定。
可选地,在对当前帧进行编码时,若当前帧的目标滤波信息采用了时域信息列表中的一个第二滤波信息,且可能需要对该第二滤波信息中的部分滤波参数进行调整或者需要对部分像素所属的分类进行调整时,可以将该第二滤波信息对应的标识信息编码至码流,同时将调整的部分滤波参数或者调整的部分像素所属的分类集合编码至码流,从而可以保证在减少码流消耗的基础上,保证编码性能。
上述方案中,通过确定当前编码帧对应的目标滤波信息;并在所述目标滤波信息是基于所述当前编码帧的所有像素进行分类获得的第一滤波信息时,将所述目标滤波信息编码至码流中,以及在所述目标滤波信息是时域信息列表中的一个第二滤波信息,将所述目标滤波信息在所述时域信息列表中对应的第一标识信息编码至所述码流中。这样可以基于相邻帧之间的相似性,对当前编码帧进行编码,可以减少码流中的参数数量,从而降低码流消耗,并且还有利于提高编码效率。
可选地,作为一种实现方式:在所述确定当前编码帧对应的目标滤波信息之后,还包括:
若所述目标滤波信息是基于所述当前编码帧的所有像素进行分类获得的第一滤波信息,则将所述目标滤波信息更新至所述时域信息列表中。
可选的,该时域信息列表中的第二滤波信息可以针对一个I帧及其关联的B帧或者P帧为一组进行更新,即针对每个I帧及其关联的B帧或者P帧来说,可以单独对应一个时域信息列表(或者可以理解为针对每个I帧来说,当前的时域信息列表均为空),这样可以保证与每个I帧关联的B帧或者P帧在基于该时域信息列表确定目标滤波信息时具有较高的准确性。
可选地,该时域信息列表中的第二滤波信息也可以基于视频数据的所有帧进行更新,即第一帧(一般来说第一帧为I帧,也可以称之为第1个I帧)对应的时域信息列表为空,而对于该第一帧之后的每一帧(可能是I帧、B帧或者P帧)来说,该时域信息列表不为空。
当然,本发明实施例中时域信息列表的更新方式还可以是除以上实施例之外的其他方式,本发明实施例不以此为限。
可选地,当采用针对每个I帧及其关联的B帧或者P帧单独对应一个时域信息列表的方式时,所述第1个编码帧可以为I帧,所述第j个编码帧是与所述I帧关联的B帧或P帧。
以下针对一个时域信息列表的更新方式进行说明:在时域信息列表中所能存储的第二滤波信息的数量不固定的情况下,可以针对当前编码帧以及时序在当前编码帧之前的每个编码帧的滤波信息都进行保存。
在时域信息列表中所能存储的第二滤波信息的数量固定的情况下,需要根据该时域信息列表中所能保存的第二滤波信息的上限值m,调整其中第二滤波信息的数量。
可选地,所述将所述目标滤波信息更新至所述时域信息列表中步骤,可以具体包括:
若K小于预设门限,则将所述目标滤波信息添加至所述时域信息列表中;
若K等于预设门限,则清除所述时域信息列表中的至少一个第二滤波信息,并将所述目标滤波信息添加至所述时域信息列表中。
如:当该时域信息列表中已保存的第二滤波信息的数量为m时,可以采用先进先出或者先进后出的方式更新该时域信息列表。
具体的,清除该时域信息列表中的至少一个第二滤波信息可以是:清除该时域信息列表中最先保存的一个或多个第二滤波信息,同时将当前编码帧对应的第一滤波信息保存至该时域信息列表中的最后位置(如最后保存的第二滤波信息的位置之后);或者还可以是:清除该时域信息列表中最后保存的一个或多个第二滤波信息,同时将当前编码帧对应的第一滤波信息保存至该时域信息列表中的最后位置等;当然,还可以采用除以上更新方式之外的其他方式对时域信息列表中的第二滤波信息进行更新,本发明实施例不以此为限。
需要说明的是,编码端和解码端应同时更新该时域信息列表,以保证编码和解码的同步进行,从而保证编解码的准确性。
可选地,作为另一种实现方式:所述将所述目标滤波信息更新至所述时域信息列表中步骤,可以具体包括:
若K小于预设门限,则将所述目标滤波信息添加至所述时域信息列表中;
若K等于预设门限,则不更新所述时域信息列表中的所述第二滤波信息。
例如:在时域信息列表中所能存储的第二滤波信息的数量固定的情况下,若该时域信息列表中已保存的第二滤波信息的个数已经达到上限值m,可以针对当前编码帧的滤波信息以及该当前编码帧之后的滤波信息不进行保存,即不再更新时域信息列表中的第二滤波信息。
可选地,所述根据第j个第一滤波信息和所述时域信息列表,确定所述目标滤波信息的步骤,可以具体包括:
基于所述第j个第一滤波信息,计算所述第j个编码帧对应的第一率失真代价;
基于所述时域信息列表中的每个第二滤波信息,分别计算所述第j个编码帧对应的第二率失真代价;
根据所述第一率失真代价和所述第二率失真代价,确定所述目标滤波信息。
其中,基于所述时域信息列表中的每个第二滤波信息,分别计算所述第j个编码帧对应的第二率失真代价可以理解为:针对第j个编码帧遍历所述时域信息列表中的每个第二滤波信息,计算得到K个第二率失真代价。
具体的,可以是将第j个编码帧按照每一个第二滤波信息分别确定像素所属的分类集合及每个分类集合对应的滤波参数,并基于滤波参数计算每个第二滤波信息对应的第二率失真代价。
可选地,所述根据所述第一率失真代价和所述第二率失真代价,确定所述目标滤波信息的步骤,可以具体包括:
将K个所述第二率失真代价中最小的第二率失真代价,作为最优率失真代价;
若所述最优率失真代价小于所述第一率失真代价,则确定所述时域信息列表中对应所述最优率失真代价的第二滤波信息,作为所述目标滤波信息;
若所述最优率失真代价大于或等于所述第一率失真代价,则确定所述第j个第一滤波信息作为所述目标滤波信息。
以下结合具体示例对上述方法进行说明,如时域信息列表中可以保存的滤波信息的数量为8个,该时域信息列表的更新过程如下:
例如:对于第1个编码帧(或称为起始编码帧)为I帧(其中,I帧表示关键帧)来说,起始编码帧对应的时域信息列表为空,因此起始编码帧只通过非时域信息列表中的滤波信息确定其对应的目标滤波信息,如将该I帧中所有像素进行分类得到的最优分类集合以及对应每个分类集合的滤波参数作为该目标滤波信息,并将该I帧的最优分类集合以及对应每个分类集合的滤波参数等信息保存到时域信息列表(或称为history列表)中。
对于接下来的第j个编码帧为与该I帧关联的B/P帧,(其中,P帧表示前向预测编码帧,用于指示本帧跟之前的一个关键帧(或P帧)的差别,B帧表示双向预测内插编码帧,用于指示本帧与前后帧的差别)来说,如当前为P帧时,时域信息列表为非空;首先,针对该P帧会进行像素分类得到通过最优分类集合以及对应每个分类集合的滤波参数,如将其称为第一滤波信息,并计算其对应的率失真代价。同时,将当前时域信息列表中的滤波信息进行遍历,计算P帧在时域信息列表中对应每个第二滤波信息下的率失真代价,并从时域信息列表中所有第二滤波信息下的率失真代价中,决策出一个最优的第二滤波信息下对应的率失真代价,如将其称为最优率失真代价。
如果该最优率失真代价小于上述第一滤波信息对应的率失真代价,则当前帧采用时域信息列表中的第二滤波信息(即最优率失真代价对应的第二滤波信息),该时域信息列表不需要更新,同时在编码时只需要将该最优率失真代价对应的第二滤波信息在该时域信息列表中对应的标识信息编码至码流中即可,从而降低了码流消耗。否则,P帧采用非时域信息列表中的第二滤波信息,即采用将该P帧进行像素分类得到最优分类集合以及对应每个分类集合的滤波参数,并且在编码时需要将该P帧进行像素分类得到最优分类集合以及对应每个分类集合的滤波参数保存到时域信息列表中。
如果在将该P帧进行像素分类得到最优分类集合以及对应每个分类集合的滤波参数添加至时域信息列表之前,该时域信息列表中记录的第二滤波信息的个数已经达到8个,则先采用先进先出的方式将该时域信息列表中的第一个第二滤波信息清除,之后再在时域信息列表的末位添加该P帧进行像素分类得到最优分类集合以及对应每个分类集合的滤波参数;如果将当前帧进行像素分类得到最优分类集合以及对应每个分类集合的滤波参数添加至时域信息列表之前,该时域信息列表中记录的第二滤波信息的个数未达到8个,则只需将该P帧进行像素分类得到最优分类集合以及对应每个分类集合的滤波参数添加到该时域信息列表的末位。
需要说明的是,以上只是针对本发明的其中一个实施例进行的说明,并不限定本发明仅可采用上述一种实现方式,如上述采用先进先出的方式还可以是采用先进后出的方式,或者在时域信息列表中记录的第二滤波信息的个数已经达到8个时,不再继续对时域信息列表进行更新,或者时域信息列表中所能存储的第二滤波信息的上限也可以不限于8个等,本发明不以此为限。
以下举例说明编码和解码过程:
通过编码1比特(bit)的帧控制标识(frame_control_flag)来指示当前帧是否需要进行滤波,如果frame_control_flag=0,则表示不进行滤波,无需再传递任何其他信息,如像素的分类集合及滤波参数等。
如果frame_control_flag=1,表示需要进行滤波;再编码块集合(block_component)的标识信息,若block_component=1,表示需要采用块模式滤波,并编码Numblock个块标识(block_flag);若block_component=0,表示不需要采用块模式滤波,也无需编码block_flag;若当前帧为非I帧的情况下,再通过编码1bit的历史对象标识(history_flag)来指示当前帧是否采用了时域信息列表中的滤波信息,如果history_flag=0,则表示当前帧为非history模式,即未采用时域信息列表中的滤波信息,则再编码当前帧进行像素分类的类别(classNum)。同时编码在该classNum下得到的每个分类集合对应的滤波参数(offset)。如果history_flag=1,则表示当前帧为history模式,即采用了时域信息列表中的滤波信息,则再编码其所使用的时域新信息列表中的时域信息的索引(history_index)。这样可以无需编码offset,从而降低码流消耗。
如果frame_control_flag=1,再编码block_component的标识信息,若block_component=1,表示需要采用块模式滤波,并编码Numblock个block_flag;若block_component=0,表示不需要采用块模式滤波,也无需编码block_flag;并且在当前帧为I帧的情况下,由于时域信息列表为空,I帧则无需编码history_flag和history_index,则可以直接编码该I帧进行像素分类的类别:classNum。同时编码在该classNum下得到的每个分类集合对应的offset。
在解码端,首先先解码1bit的frame_control_flag,如果为0,说明不进行该滤波。
如果为1,且block_component=1,则需要编码Numblock个block_flag;若当前帧为非I帧,再解码1bit的history_flag,如果history_flag=1,则再解码history_index。如果history_flag=0,则解码像素分类的类别classNum以及在该classNum下得到的每个分类集合对应的offset。
如果为1,且block_component=1,则需要编码Numblock个block_flag;若当前帧为I帧,则解码像素分类的类别classNum以及在该classNum下得到的每个分类集合对应的offset。
需要说明的是,针对像素的亮度分量(Y)、第一色的分量(U)和第二色度分量(V)分别可以采用上述方式进行编码,即Y、U、V三分量可以独立编码。
还需要说明的是,本发明实施例中的上述编码方法可以用于图像编码的所有配置中,例如:帧内编码(all intra)、随机存取(Random access)、低延迟(low delay)等配置都可以使用,也可以用于某一单独配置中,本发明实施例不以此为限。
以下表1为测试结果
表1
Figure BDA0002527854280000361
可选地,所述图像滤波方法还可以包括:
在当前编码帧通过反变换和去量化处理后,通过第一环路滤波技术以及目标环路滤波技术,对所述当前编码帧进行滤波处理;
其中,所述目标环路滤波技术包括以下中的至少一项:
去块效应滤波技术;
样点自适应补偿技术;
自适应环路滤波技术;
其中,所述第一环路滤波技术是所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波的技术。
其中,在本发明实施例中,可先利用第一环路滤波技术滤波、再利用目标环路滤波技术滤波,也可先利用目标环路滤波技术滤波、再利用第一环路滤波技术滤波。
具体的,此步骤可包括,利用所述目标环路滤波技术,对所述当前帧进行处理,得到中间帧,然后利用第一环路滤波技术,对所述中间帧进行滤波处理。
如果先利用目标环路滤波技术滤波、再利用第一环路滤波技术滤波,利用第一环路滤波技术滤波的过程可以位于以上任一种具体的目标环路滤波技术之后执行。
如果目标环路滤波技术包括去块效应滤波技术,中间帧具体为:仅经去块效应滤波处理的当前帧;
如果目标环路滤波技术包括样点自适应补偿技术,中间帧具体为:仅经样点自适应补偿处理的当前帧;
如果目标环路滤波技术包括自适应环路滤波技术,中间帧具体为:仅经自适应环路滤波技术处理的当前帧;
如果目标环路滤波技术包括去块效应滤波技术和样点自适应补偿技术,中间帧具体为:经去块效应滤波处理,但未经样点自适应补偿处理的当前帧;或者,经去块效应滤波处理并经样点自适应补偿处理的当前帧;
如果目标环路滤波技术包括去块效应滤波技术和自适应环路滤波技术,中间帧具体为:经去块效应滤波处理,但未经自适应环路滤波处理的当前帧;或者,经去块效应滤波处理并经自适应环路滤波处理的当前帧;
如果目标环路滤波技术包括样点自适应补偿技术和自适应环路滤波技术,中间帧具体为:经样点自适应补偿处理,但未经自适应环路滤波处理的当前帧;或者经样点自适应补偿处理并经自适应环路滤波处理的当前帧;
如果目标环路滤波技术包括以上三种,那么,中间帧具体为以下任意一种:
经去块效应滤波处理,但未经样点自适应补偿处理以及自适应环路滤波的当前帧;
经去块效应滤波以及样点自适应补偿处理,但未经自适应环路滤波处理的当前帧;
经去块效应滤波、样点自适应补偿处理以及经自适应环路滤波处理后的当前帧。
具体的,此步骤可包括,利用第一环路滤波技术,对所述当前帧进行滤波处理,得到中间帧,再利用所述目标环路滤波技术所述中间帧进行滤波处理。
也就是说,在包括上述目标环路滤波技术的环路滤波中,第一环路滤波技术可以位于上述目标环路滤波技术之前或之后的任意位置。
以下结合实施例对上述实现过程做详细描述。
首先,将本发明实施例中的第一环路滤波技术称作GSAO,其中,目标环路环路滤波技术分别是:去块效应滤波(Deblocking Filter,DF),SAO以及自适应环路滤波(AdaptiveLoop Filter,ALF),且三者之间所处的位置也是DF->SAO->ALF。因此GSAO在环路滤波中放置位置的不同,将会很大程度上影响到该方法的编码性能。
具体的,GSAO位于环路滤波中,不论GSAO替换掉SAO或者GSAO和SAO同时存在于环路滤波中时,GSAO都有编码性能,通过测试,在以下情况下GSAO有最佳的性能。在本发明实施例中,GSAO在环路滤波中的位置有如下几种情形:
(1)当GSAO和SAO同时存在于环路滤波:
当GSAO和SAO同时存在于环路滤波中时,GSAO位于SAO之后,ALF之前可以有最高的增益。
(2)当GSAO替换掉SAO时:
当GSAO替换掉SAO,也就是环路滤波中仅存在DF,GSAO和ALF时,GSAO位于DF之后,ALF之前有最高的增益。
通过以上描述可以看出,在本发明实施例中,可在不影响编码时间的情况下编码性能提高,从而提高了编码增益。
可选地,例如:针对色度分量选择GSAO滤波,则会训练得到Classtotal个滤波参数,对于这Classtotal个滤波参数,可以采用两种编码方法:
(1)Classtotal个滤波参数直接用ae编码;
(2)从起始位置开始,找到第一个非零的滤波参数,记录下下标:startIndex;从末尾开始,往前遍历到第一个非零的滤波参数:endIndex,由此得到需要编码的滤波参数个数:num=startIndex-endIndex;之后编码startIndex,num以及保存对应色度滤波系数Classtotal的数组下标从startIndex开始的num个滤波系数。
可选地,以上两种编码方式可以在编码端通过率失真优化(RDO)过程决策。
如图5所示,本申请实施例还提供了一种图像滤波装置500,包括:
获取模块510,用于获取当前帧对应的目标滤波信息,以及获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态;P为正整数;
第一滤波模块520,用于对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波。
可选地,在所述当前帧为当前编码帧的情况下,所述获取模块510包括:
第一计算子模块,用于对于每个块集合,分别计算所述块集合对应的像素在滤波情况下的第一率失真代价cost1以及不滤波情况下的第二率失真代价cost2;
第一确定子模块,用于若目标块集合对应的cost1和cost2满足:cost2≤cost1,则确定所述目标块集合的滤波状态为不滤波;
第二确定子模块,用于若所述目标块集合对应的cost1和cost2满足:cost2>cost1,则确定所述目标块集合的滤波状态为滤波;其中,所述目标块集合为所述P个块集合中的任意一个。
可选地,在所述当前帧为当前编码帧的情况下,所述装置500还包括:
计算模块,用于计算块模式下的第一目标率失真代价,以及非块模式下的第二目标率失真代价;
处理模块,用于若第一目标率失真代价小于第二目标率失真代价,则执行所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述滤波信息中对应的滤波参数进行滤波的步骤;
其中,所述块模式为:所述当前帧中的每个像素基于所述像素所属的块集合对应的滤波状态进行滤波;所述非块模式为:所述当前帧中的每个像素基于所述当前帧的滤波状态进行滤波。
可选地,所述装置500还包括:
第一编码模块,用于若第一目标率失真代价小于第二目标率失真代价,则将所述P个块集合中每个块集合对应的滤波状态的第一标识信息编码至码流中。
可选地,所述获取模块510包括:
第一获取子模块,用于获取M个分类集合以及对应每个分类集合的滤波参数,并将所述M个分类集合以及对应每个分类集合的滤波参数作为所述目标滤波信息;
其中,所述分类集合是根据预设分类方式对所述当前编码帧的所有像素进行分类获得的;所述预设分类方式包括以下方式中的至少一者:
基于像素本身大小的分类方式;
基于像素及所述像素相邻的L个像素间的关系的分类方式,M、L均为正整数。
可选地,所述第一获取子模块包括:
处理单元,用于基于像素及所述像素相邻的L个像素间的关系,遍历所述当前帧的各个像素,得到每个像素对应的第一标识值;
第一分类单元,用于将所述当前帧中的所有像素按照所述第一标识值进行分类,得到M1个第一类型分类集合;其中,每个所述第一类型分类集合中对应像素的第一标识值相同;
第二分类单元,用于基于像素本身大小,遍历目标像素进行分类,得到每个第一类型分类集合对应的M2个第二类型分类集合,并获得M=M1*M2个分类集合;其中,所述目标像素为M1个第一类型分类集合中每个第一类型分类集合中的各个像素,M1、M2均为正整数。
可选地,所述第一获取子模块包括:
第三分类单元,用于基于像素本身大小,遍历目标像素进行分类,得到M3个第二类型分类集合,并获得M=M3个分类集合;其中,所述目标像素为所述当前帧中的所有像素,M3为正整数。
可选地,所述第一获取子模块具体用于包括:
遍历至少一个候选分类中的各个候选分类,确定第二类型分类集合的目标分类集合个数;
基于像素本身大小,遍历目标像素进行分类,得到目标分类集合个数的第二类型分类集合。
可选地,所述计算模块包括:
第一计算子模块,用于遍历至少一个候选分类中的各个候选分类的过程中,分别计算每个候选分类在所述非块模式下的第三率失真代价cost3以及在块模式下的第四率失真代价cost4;其中,不同候选分类对应的分类集合个数不同;
第一确定子模块,用于将每个候选分类对应的cost3中最小的cost3,作为所述第二目标率失真代价,以及将所述最小的cost3对应的候选分类所对应的cost4,作为所述第一目标率失真代价。
可选地,所述计算模块包括:
第二计算子模块,用于遍历至少一个候选分类中的各个候选分类的过程中,分别计算得到每个候选分类在所述非块模式下的第五率失真代价cost5;
第三计算子模块,用于计算每个候选分类对应的cost5中,最小的cost5对应的候选分类在所述块模式下的第六率失真代价cost6;
第二确定子模块,用于将所述最小的cost5作为所述第二目标率失真代价,以及将所述cost6作为所述第一目标率失真代价。
可选地,在所述当前帧为当前编码帧的情况下,所述获取模块510包括:
第一处理子模块,用于若当前编码帧为第1个编码帧,则将基于所述当前编码帧的所有像素进行分类获得的第1个第一滤波信息,作为所述目标滤波信息;
第二处理子模块,用于若当前编码帧为第j个编码帧,则根据第j个第一滤波信息和时域信息列表,确定所述目标滤波信息;
其中,所述第j个第一滤波信息是基于所述第j个编码帧的所有像素进行分类获得的第一滤波信息;所述时域信息列表包含有K个第二滤波信息,所述第二滤波信息是基于目标编码帧的所有像素进行分类获得的滤波信息,所述目标编码帧的时序在所述当前编码帧之前,j、K为正整数,且j大于1。
可选地,所述装置500还包括:
第二编码模块,用于若所述目标滤波信息是基于所述当前编码帧的所有像素进行分类获得的第一滤波信息,则将所述目标滤波信息编码至码流中;
第三编码模块,用于若所述目标滤波信息是时域信息列表中的一个第二滤波信息,则将所述目标滤波信息在所述时域信息列表中对应的第二标识信息编码至所述码流中。
可选地,所述装置500还包括:
第二滤波模块,用于在当前编码帧通过反变换和去量化处理后,通过第一环路滤波技术以及目标环路滤波技术,对所述当前编码帧进行滤波处理;
其中,所述目标环路滤波技术包括以下中的至少一项:
去块效应滤波技术;
样点自适应补偿技术;
自适应环路滤波技术;
其中,所述第一环路滤波技术是所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波的技术。
上述方案中的装置500,通过获取当前帧对应的目标滤波信息,以及获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态;并对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波,有利于提高编码性能,解决了目前以帧级进行滤波的方式存在编码性能差的问题。
如图6所示,本发明实施例还提供一种图像滤波设备,包括处理器601、存储器602及存储在所述存储器602上并可在所述处理器601上运行的计算机程序,所述处理器601执行所述计算机程序时实现上述的图像滤波方法的步骤。
具体地,
所述处理器601用于,获取当前帧对应的目标滤波信息,以及获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态;P为正整数;对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波。
可选地,所述处理器601执行所述计算机程序时还可以实现上述图像滤波方法的各个过程,为避免重复,这里不再赘述。
上述方案中的设备600,通过获取当前帧对应的目标滤波信息,以及获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态;并对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波,有利于提高编码性能,解决了目前以帧级进行滤波的方式存在编码性能差的问题。
其中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器601代表的一个或多个处理器601和存储器602代表的存储器602的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。
此外,所述电子设备还可以包括:总线接口及收发机603;其中总线接口提供接口。收发机603可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器601负责管理总线架构和通常的处理,存储器602可以存储处理器在执行操作时所使用的数据。
本领域技术人员可以理解,实现上述实施例的全部或者部分步骤可以通过硬件来完成,也可以通过计算机程序来指示相关的硬件来完成,所述计算机程序包括执行上述方法的部分或者全部步骤的指令;且该计算机程序可以存储于一可读存储介质中,存储介质可以是任何形式的存储介质。
另外,本发明具体实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的信息处理方法中的步骤。且能达到相同的技术效果,为避免重复,这里不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述收发方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。

Claims (26)

1.一种图像滤波方法,其特征在于,包括:
获取当前帧对应的目标滤波信息,以及获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态;P为正整数;
对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波;
其中,获取当前帧对应的目标滤波信息,包括:
获取M个分类集合以及对应每个分类集合的滤波参数,并将所述M个分类集合以及对应每个分类集合的滤波参数作为所述目标滤波信息;所述分类集合是根据预设分类方式对所述当前帧的所有像素进行分类获得的;
其中,针对像素的亮度分量,获得所述分类集合的预设分类方式为:基于像素及所述像素相邻的L个像素间的关系的分类方式,以及基于像素本身大小的分类方式;针对像素的色度分量,获得所述分类集合的预设分类方式为:基于像素本身大小的分类方式;M、L均为正整数。
2.根据权利要求1所述的图像滤波方法,其特征在于,在所述当前帧为当前编码帧的情况下,所述获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态,包括:
对于每个块集合,分别计算所述块集合对应的像素在滤波情况下的第一率失真代价cost1以及不滤波情况下的第二率失真代价cost2;
若目标块集合对应的cost1和cost2满足:cost2≤cost1,则确定所述目标块集合的滤波状态为不滤波;
若所述目标块集合对应的cost1和cost2满足:cost2>cost1,则确定所述目标块集合的滤波状态为滤波;其中,所述目标块集合为所述P个块集合中的任意一个。
3.根据权利要求1所述的图像滤波方法,其特征在于,在所述当前帧为当前编码帧的情况下,在所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述滤波信息中对应的滤波参数进行滤波之前,还包括:
计算块模式下的第一目标率失真代价,以及非块模式下的第二目标率失真代价;
若第一目标率失真代价小于第二目标率失真代价,则执行所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述滤波信息中对应的滤波参数进行滤波的步骤;
其中,所述块模式为:所述当前帧中的每个像素基于所述像素所属的块集合对应的滤波状态进行滤波;所述非块模式为:所述当前帧中的每个像素基于所述当前帧的滤波状态进行滤波。
4.根据权利要求3所述的图像滤波方法,其特征在于,计算块模式下的第一目标率失真代价,以及非块模式下的第二目标率失真代价之后,还包括:
若第一目标率失真代价小于第二目标率失真代价,则将所述P个块集合中每个块集合对应的滤波状态的第一标识信息编码至码流中。
5.根据权利要求3所述的图像滤波方法,其特征在于,所述获取M个分类集合,包括:
基于像素及所述像素相邻的L个像素间的关系,遍历所述当前帧的各个像素,得到每个像素对应的第一标识值;
将所述当前帧中的所有像素按照所述第一标识值进行分类,得到M1个第一类型分类集合;其中,每个所述第一类型分类集合中对应像素的第一标识值相同;
基于像素本身大小,遍历目标像素进行分类,得到每个第一类型分类集合对应的M2个第二类型分类集合,并获得M=M1*M2个分类集合;其中,所述目标像素为M1个第一类型分类集合中每个第一类型分类集合中的各个像素,M1、M2均为正整数。
6.根据权利要求3所述的图像滤波方法,其特征在于,所述获取M个分类集合,包括:
基于像素本身大小,遍历目标像素进行分类,得到M3个第二类型分类集合,并获得M=M3个分类集合;其中,所述目标像素为所述当前帧中的所有像素,M3为正整数。
7.根据权利要求5或6所述的图像滤波方法,其特征在于,基于像素本身大小,遍历目标像素进行分类,得到第二类型分类集合,包括:
遍历至少一个候选分类中的各个候选分类,确定第二类型分类集合的目标分类集合个数;
基于像素本身大小,遍历目标像素进行分类,得到目标分类集合个数的第二类型分类集合。
8.根据权利要求7所述的图像滤波方法,其特征在于,所述计算块模式下的第一目标率失真代价,以及非块模式下的第二目标率失真代价,包括:
在遍历至少一个候选分类中的各个候选分类的过程中,分别计算每个候选分类在所述非块模式下的第三率失真代价cost3以及在所述块模式下的第四率失真代价cost4;其中,不同候选分类对应的分类集合个数不同;
将每个候选分类对应的cost3中最小的cost3,作为所述第二目标率失真代价,以及将所述最小的cost3对应的候选分类所对应的cost4,作为所述第一目标率失真代价。
9.根据权利要求7所述的图像滤波方法,其特征在于,所述计算块模式下的第一目标率失真代价,以及非块模式下的第二目标率失真代价,包括:
在遍历至少一个候选分类中的各个候选分类的过程中,分别计算每个候选分类在所述非块模式下的第五率失真代价cost5;
计算每个候选分类对应的cost5中,最小的cost5对应的候选分类在所述块模式下的第六率失真代价cost6;
将所述最小的cost5作为所述第二目标率失真代价,以及将所述cost6作为所述第一目标率失真代价。
10.根据权利要求1所述的图像滤波方法,其特征在于,在所述当前帧为当前编码帧的情况下,所述获取当前帧对应的目标滤波信息,包括:
若当前编码帧为第1个编码帧,则将基于所述当前编码帧的所有像素进行分类获得的第1个第一滤波信息,作为所述目标滤波信息;
若当前编码帧为第j个编码帧,则根据第j个第一滤波信息和时域信息列表,确定所述目标滤波信息;
其中,所述第j个第一滤波信息是基于所述第j个编码帧的所有像素进行分类获得的第一滤波信息;所述时域信息列表包含有K个第二滤波信息,所述第二滤波信息是基于目标编码帧的所有像素进行分类获得的滤波信息,所述目标编码帧的时序在所述当前编码帧之前,j、K为正整数,且j大于1。
11.根据权利要求10所述的图像滤波方法,其特征在于,所述获取当前帧对应的目标滤波信息之后,还包括:
若所述目标滤波信息是基于所述当前编码帧的所有像素进行分类获得的第一滤波信息,则将所述目标滤波信息编码至码流中;
若所述目标滤波信息是时域信息列表中的一个第二滤波信息,则将所述目标滤波信息在所述时域信息列表中对应的第二标识信息编码至所述码流中。
12.根据权利要求1所述的图像滤波方法,其特征在于,还包括:
在当前编码帧通过反变换和去量化处理后,通过第一环路滤波技术以及目标环路滤波技术,对所述当前编码帧进行滤波处理;
其中,所述目标环路滤波技术包括以下中的至少一项:
去块效应滤波技术;
样点自适应补偿技术;
自适应环路滤波技术;
其中,所述第一环路滤波技术是所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波的技术。
13.一种图像滤波装置,其特征在于,包括:
获取模块,用于获取当前帧对应的目标滤波信息,以及获取所述当前帧中的所有像素所属的P个块集合中,每个块集合对应的滤波状态;P为正整数;
第一滤波模块,用于对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波;
其中,所述获取模块包括:
第一获取子模块,用于获取M个分类集合以及对应每个分类集合的滤波参数,并将所述M个分类集合以及对应每个分类集合的滤波参数作为所述目标滤波信息;所述分类集合是根据预设分类方式对所述当前帧的所有像素进行分类获得的;
其中,针对像素的亮度分量,获得所述分类集合的预设分类方式为:基于像素及所述像素相邻的L个像素间的关系的分类方式,以及基于像素本身大小的分类方式;针对像素的色度分量,获得所述分类集合的预设分类方式为:基于像素本身大小的分类方式;M、L均为正整数。
14.根据权利要求13所述的图像滤波装置,其特征在于,在所述当前帧为当前编码帧的情况下,所述获取模块包括:
第一计算子模块,用于对于每个块集合,分别计算所述块集合对应的像素在滤波情况下的第一率失真代价cost1以及不滤波情况下的第二率失真代价cost2;
第一确定子模块,用于若目标块集合对应的cost1和cost2满足:cost2≤cost1,则确定所述目标块集合的滤波状态为不滤波;
第二确定子模块,用于若所述目标块集合对应的cost1和cost2满足:cost2>cost1,则确定所述目标块集合的滤波状态为滤波;其中,所述目标块集合为所述P个块集合中的任意一个。
15.根据权利要求13所述的图像滤波装置,其特征在于,在所述当前帧为当前编码帧的情况下,所述装置还包括:
计算模块,用于计算块模式下的第一目标率失真代价,以及非块模式下的第二目标率失真代价;
处理模块,用于若第一目标率失真代价小于第二目标率失真代价,则执行所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述滤波信息中对应的滤波参数进行滤波的步骤;
其中,所述块模式为:所述当前帧中的每个像素基于所述像素所属的块集合对应的滤波状态进行滤波;所述非块模式为:所述当前帧中的每个像素基于所述当前帧的滤波状态进行滤波。
16.根据权利要求15所述的图像滤波装置,其特征在于,所述装置还包括:
第一编码模块,用于若第一目标率失真代价小于第二目标率失真代价,则将所述P个块集合中每个块集合对应的滤波状态的第一标识信息编码至码流中。
17.根据权利要求15所述的图像滤波装置,其特征在于,所述第一获取子模块包括:
处理单元,用于基于像素及所述像素相邻的L个像素间的关系,遍历所述当前帧的各个像素,得到每个像素对应的第一标识值;
第一分类单元,用于将所述当前帧中的所有像素按照所述第一标识值进行分类,得到M1个第一类型分类集合;其中,每个所述第一类型分类集合中对应像素的第一标识值相同;
第二分类单元,用于基于像素本身大小,遍历目标像素进行分类,得到每个第一类型分类集合对应的M2个第二类型分类集合,并获得M=M1*M2个分类集合;其中,所述目标像素为M1个第一类型分类集合中每个第一类型分类集合中的各个像素,M1、M2均为正整数。
18.根据权利要求15所述的图像滤波装置,其特征在于,所述第一获取子模块包括:
第三分类单元,用于基于像素本身大小,遍历目标像素进行分类,得到M3个第二类型分类集合,并获得M=M3个分类集合;其中,所述目标像素为所述当前帧中的所有像素,M3为正整数。
19.根据权利要求17或18所述的图像滤波装置,其特征在于,所述第一获取子模块具体用于:
遍历至少一个候选分类中的各个候选分类,确定第二类型分类集合的目标分类集合个数;
基于像素本身大小,遍历目标像素进行分类,得到目标分类集合个数的第二类型分类集合。
20.根据权利要求19所述的图像滤波装置,其特征在于,所述计算模块包括:
第一计算子模块,用于遍历至少一个候选分类中的各个候选分类的过程中,分别计算每个候选分类在所述非块模式下的第三率失真代价cost3以及在块模式下的第四率失真代价cost4;其中,不同候选分类对应的分类集合个数不同;
第一确定子模块,用于将每个候选分类对应的cost3中最小的cost3,作为所述第二目标率失真代价,以及将所述最小的cost3对应的候选分类所对应的cost4,作为所述第一目标率失真代价。
21.根据权利要求19所述的图像滤波装置,其特征在于,所述计算模块包括:
第二计算子模块,用于遍历至少一个候选分类中的各个候选分类的过程中,分别计算得到每个候选分类在所述非块模式下的第五率失真代价cost5;
第三计算子模块,用于计算每个候选分类对应的cost5中,最小的cost5对应的候选分类在所述块模式下的第六率失真代价cost6;
第二确定子模块,用于将所述最小的cost5作为所述第二目标率失真代价,以及将所述cost6作为所述第一目标率失真代价。
22.根据权利要求13所述的图像滤波装置,其特征在于,在所述当前帧为当前编码帧的情况下,所述获取模块包括:
第一处理子模块,用于若当前编码帧为第1个编码帧,则将基于所述当前编码帧的所有像素进行分类获得的第1个第一滤波信息,作为所述目标滤波信息;
第二处理子模块,用于若当前编码帧为第j个编码帧,则根据第j个第一滤波信息和时域信息列表,确定所述目标滤波信息;
其中,所述第j个第一滤波信息是基于所述第j个编码帧的所有像素进行分类获得的第一滤波信息;所述时域信息列表包含有K个第二滤波信息,所述第二滤波信息是基于目标编码帧的所有像素进行分类获得的滤波信息,所述目标编码帧的时序在所述当前编码帧之前,j、K为正整数,且j大于1。
23.根据权利要求22所述的图像滤波装置,其特征在于,所述装置还包括:
第二编码模块,用于若所述目标滤波信息是基于所述当前编码帧的所有像素进行分类获得的第一滤波信息,则将所述目标滤波信息编码至码流中;
第三编码模块,用于若所述目标滤波信息是时域信息列表中的一个第二滤波信息,则将所述目标滤波信息在所述时域信息列表中对应的第二标识信息编码至所述码流中。
24.根据权利要求13所述的图像滤波装置,其特征在于,所述装置还包括:
第二滤波模块,用于在当前编码帧通过反变换和去量化处理后,通过第一环路滤波技术以及目标环路滤波技术,对所述当前编码帧进行滤波处理;
其中,所述目标环路滤波技术包括以下中的至少一项:
去块效应滤波技术;
样点自适应补偿技术;
自适应环路滤波技术;
其中,所述第一环路滤波技术是所述对每个像素,在所述像素所属的块集合对应的滤波状态为滤波的情况下,按照所述像素在所述目标滤波信息中对应的滤波参数进行滤波的技术。
25.一种图像滤波设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至12中任一项所述的图像滤波方法的步骤。
26.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12中任一项所述的图像滤波方法的步骤。
CN202010509307.XA 2020-06-07 2020-06-07 图像滤波方法、装置、设备及可读存储介质 Active CN111698511B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010509307.XA CN111698511B (zh) 2020-06-07 2020-06-07 图像滤波方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010509307.XA CN111698511B (zh) 2020-06-07 2020-06-07 图像滤波方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN111698511A CN111698511A (zh) 2020-09-22
CN111698511B true CN111698511B (zh) 2022-09-16

Family

ID=72479603

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010509307.XA Active CN111698511B (zh) 2020-06-07 2020-06-07 图像滤波方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN111698511B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111866506A (zh) * 2020-06-07 2020-10-30 咪咕文化科技有限公司 图像编码方法、装置、设备及可读存储介质
CN113112441B (zh) * 2021-04-30 2022-04-26 中北大学 基于密集网络和局部亮度遍历算子的多波段低分辨率图像同步融合方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103975587A (zh) * 2011-11-07 2014-08-06 佳能株式会社 使针对图像的一组重建样本的补偿偏移的编码/解码最优化的方法和装置
CN104735450A (zh) * 2015-02-26 2015-06-24 北京大学 一种在视频编解码中进行自适应环路滤波的方法及装置
CN109756736A (zh) * 2017-11-01 2019-05-14 北京金山云网络技术有限公司 Sao模式决策方法、装置、电子设备及可读存储介质
WO2019093919A1 (en) * 2017-11-13 2019-05-16 Huawei Technologies Co., Ltd In-loop filter apparatus and method for video coding

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9094658B2 (en) * 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103975587A (zh) * 2011-11-07 2014-08-06 佳能株式会社 使针对图像的一组重建样本的补偿偏移的编码/解码最优化的方法和装置
CN104735450A (zh) * 2015-02-26 2015-06-24 北京大学 一种在视频编解码中进行自适应环路滤波的方法及装置
CN109756736A (zh) * 2017-11-01 2019-05-14 北京金山云网络技术有限公司 Sao模式决策方法、装置、电子设备及可读存储介质
WO2019093919A1 (en) * 2017-11-13 2019-05-16 Huawei Technologies Co., Ltd In-loop filter apparatus and method for video coding

Also Published As

Publication number Publication date
CN111698511A (zh) 2020-09-22

Similar Documents

Publication Publication Date Title
CN111654710B (zh) 图像滤波方法、装置、设备及存储介质
CN111866507A (zh) 图像滤波方法、装置、设备及存储介质
CN112118448B (zh) 一种编解码方法、装置及存储介质
CN110839155B (zh) 运动估计的方法、装置、电子设备及计算机可读存储介质
EP3232663B1 (en) Decoding methods and devices
CN109845263B (zh) 用于视频编码的设备和方法
CN111698511B (zh) 图像滤波方法、装置、设备及可读存储介质
CN104754361A (zh) 图像编码、解码方法及装置
CN104702963A (zh) 一种自适应环路滤波的边界处理方法及装置
CN110662065A (zh) 图像数据解码方法及解码器、图像数据编码方法及编码器
CN110365982B (zh) 一种多用途编码中帧内编码的多变换选择加速方法
CN113068032A (zh) 图像编解码方法、编码器、解码器以及存储介质
CN109819250B (zh) 一种多核全组合方式的变换方法和系统
CN112738511B (zh) 一种结合视频分析的快速模式决策方法及装置
CN103096057A (zh) 一种色度帧内预测方法和装置
TWI833073B (zh) 使用內預測之寫碼技術
EP3706046A1 (en) Method and device for picture encoding and decoding
CN101453651B (zh) 一种去块滤波方法和装置
CN113170210A (zh) 视频编码和解码中的仿射模式信令
CN111742553A (zh) 用于视频压缩的基于深度学习的图像分区
CN111866506A (zh) 图像编码方法、装置、设备及可读存储介质
CN101600111A (zh) 一种实现自适应插值滤波二次编码的搜索方法
CN113365080B (zh) 串编码技术的编解码方法、设备及存储介质
WO2019074762A1 (en) DECODING AND ENCODING METHODS AND CORRESPONDING DEVICES
WO2022077490A1 (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
GR01 Patent grant
GR01 Patent grant