掌桥专利:专业的专利平台
掌桥专利
首页

一种编码胶片颗粒的方法、装置、电子设备和存储介质

文献发布时间:2023-06-19 19:28:50


一种编码胶片颗粒的方法、装置、电子设备和存储介质

技术领域

本发明涉及图像处理技术领域,具体涉及一种编码胶片颗粒的方法、装置、电子设备和存储介质。

背景技术

传统的胶片颗粒是在电影图像显影过程中形成的。胶片颗粒虽然是一种随机噪声,但是它的存在却可以使视频内容更加真实自然。特别是在电影行业中,对于控制颗粒纹理存在艺术的需求,颗粒感被认为是电影创作过程和意图的一部分,适度的颗粒纹理可以帮助提高主观感受,还可以用以掩蔽由压缩产生的编码伪影。然而,随着数码相机的广泛使用,由于成像原理不同,数字图像视频不存在胶片颗粒。观众在观看没有胶片颗粒的图像视频时,会产生一种感觉,尽管呈现的画面是清晰的,但是它似乎缺少真实感。因此,为了使呈现的内容拥有质感,内容生产者会希望保存图像视频中原有的胶片颗粒,甚至会主动在图像视频内容中添加胶片颗粒来营造独特的影院特性。

然而,胶片颗粒本质上还是属于高频噪声,且具有不同于其他类型噪声的时域随机性,其分布和大小都不规则。这种随机性使得传统编码技术难以对其进行有效压缩,同时预测也变得非常困难,运动估计的精度也会降低。因此胶片颗粒在目前的视频编码标准中不能被很好的保留。图像视频在编码过程中都会对原始的图像视频进行滤波和有损压缩处理,编码器会将胶片颗粒此类高频信号作为噪声进行抑制并在解码时无法重建。如果通过对图像视频进行无损压缩来保留胶片颗粒,将耗费巨大的码流,在实际应用中缺乏实用性。

目前解决胶片颗粒编码的方法是先把胶片颗粒去除,然后对去除胶片颗粒的视频进行编码,同时对胶片颗粒进行建模,最后在解码过程中通过建模参数重新合成胶片颗粒。新一代编码标准AV1首次把胶片颗粒的处理工具写入了标准,其工作原理也是先通过去噪处理将胶片颗粒去除,并估计出胶片颗粒参数,这些参数将随压缩视频流一起发送至解码器。解码后,再将胶片颗粒合成并添加到重建的视频帧中。但是这样处理会存在重建的胶片颗粒不够均匀,不同帧的清晰度不一致的问题,特别是在处理已被压缩过的视频时,很难再次重建胶片颗粒。如果可以直接对胶片颗粒进行保留压缩,就可以极大地避免上述问题。又由于胶片颗粒的随机性,胶片颗粒的直接保留压缩对图像视频压缩算法提出了挑战。

发明内容

由于现有方法存在上述问题,本发明实施例提出一种编码胶片颗粒的方法、装置、电子设备及存储介质。

具体地,本发明实施例提供了以下技术方案:

第一方面,本发明实施例提供了一种编码胶片颗粒的方法,包括:

对当前原始编码单元遍历编码预测模式,得到当前重建编码单元。

计算所述当前原始编码单元与所述当前重建编码单元的像素域失真和主观失真。

根据所述像素域失真和所述主观失真计算当前编码单元的编码代价。

根据所述编码代价,选择编码代价最小时对应的编码预测模式进行编码。

第二方面,本发明实施例提供了一种编码胶片颗粒的装置,包括:

编码模块,用于对当前原始编码单元遍历编码预测模式,得到当前重建编码单元。

第一计算模块,用于计算所述当前原始编码单元与所述当前重建编码单元的像素域失真和主观失真。

第二计算模块,用于根据所述像素域失真和所述主观失真计算当前编码单元的编码代价。

模式选择模块,用于根据所述编码代价,选择编码代价最小时对应的编码预测模式进行编码。

第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的编码胶片颗粒的方法。

第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述的编码胶片颗粒的方法。

由以上技术方案可知,本申请实现了在保留胶片颗粒的情况下进行编码,同时避免了用传统方法重建胶片颗粒会出现的胶片颗粒不够均匀,不同帧的清晰度不一致等问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。

图1是HEVC视频编码标准中一种CTU划分CU的示例图。

图2是HEVC视频编码标准中一种CU划分为PU和TU的示例图。

图3是本发明一实施例提供的胶片颗粒的编码方法的流程示意图。

图4是H.265/HEVC预测模式示意图。

图5是本发明一实施例提供的胶片颗粒的编码装置的结构示意图。

图6是本发明一实施例提供的电子设备的结构示意图。

具体实施方式

下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

为了更好地理解以下实施例,先对基本概念进行说明。

视频是由图像序列组成。视频帧即为视频中的图像序列,视频中的每一张图像可以视为一帧。当前视频帧即当前需要进行编码的视频帧。目前主流的视频编码标准通常都采用混合编码框架,包括H.264/AVC、H.265/HEVC在视频编码过程中,会对当前视频帧进行划块编码,以H.265/HEVC为例,如图1所示,在H.265/HEVC中块划分方式是采用四叉树划分方式,将视频中的视频帧划分为编码树单元(Coding Tree Unit,CTU),编码树的尺寸普遍被设置为64×64,每一个CTU又可以进一步均匀划分成4个编码单元(Coding Unit,CU),一个CU又可以递归按四叉树结构划分为4个小CU。如图2所示,每个CU可以包含一个或多个不同大小的预测单元(Prediction Unit,PU),进一步每个PU又可以包含若干个变换单元(Transform Unit,TU),对TU进行量化处理时,一般是将TU分为多个系数组(CoefficientGroup, CG),针对每个CG,即量化单元执行量化处理。

对图像进行变换是将空域信号变换到频域信号,有效地去除了信号的相关性,并使大部分能量集中到低频区域。常用的变换方法例如DCT变换、DST变换、Hadmard变换等。变换将矩阵的能量压缩到第一个元素中,被称为直流(DC)系数。其余的系数被称为交流(AC)系数。变换后,变换系数能量主要集中在左上区域。该区域中的系数非常显著,往往集中了人眼敏感的图像信息。对变换系数进行量化后,左上区域的量化系数显著,而右下角区域的量化系数大部分都为零。量化是视频/图像压缩产生失真的根源之一,量化系数为零的部分往往是被压缩了的高频信号,这些高频信号中就包括胶片颗粒。

图3示出了本发明一实施例提供的编码胶片颗粒的方法的流程图,如图3所示,本发明实施例提供的编码胶片颗粒的方法,具体包括如下内容:

步骤1,对当前原始编码单元遍历编码预测模式,得到当前重建编码单元。

在本步骤中,可以理解的是,目前主流编码标准均是基于混合视频编码框架。混合框架主要包括预测(prediction)、变换(transform)、量化(quantization)、熵编码(entropycoding)等环节。其中预测环节是利用已编码区域的重建像素产生当前编码单元原始像素对应的预测像素。其中,原始像素所在的编码单元为当前原始编码单元,预测像素所在的编码单元为重建编码单元。预测方式包括帧内预测(intra prediction)和帧间预测(inter prediction)两大类。对于不同视频标准,具体的编码预测模式各有不同。如图4所示,以H.265/HEVC为例,HEVC中规定了35种帧内预测模式,包括Planar模式、DC模式和33种角度模式。实际应用中可以设置一种或多种编码预测模式。

步骤2,计算所述当前原始编码单元与所述当前重建编码单元的像素域失真和主观失真。

其中,所述计算所述当前原始编码单元与所述当前重建编码单元的像素域失真,可以用绝对误差和(Sum of Absolute Difference,SAD)、哈达玛变换绝对误差和(Sum ofAbsolute Transformed Difference,SATD)、差值平方和(Sum of Squared Difference,SSD)、平均绝对误差(Mean Absolute Difference,MAD)、平均平方误差(Mean SquaredDifference,MSD)等算法计算获得。

所述计算所述当前原始编码单元与所述当前重建编码单元的主观失真,包括:

在一个实施例中,所述当前原始编码单元与所述当前重建编码单元的主观失真可以以所述当前原始编码单元与所述当前重建编码单元的能量差值来表示,包括:

对所述当前原始编码单元进行块划分得到原始变换单元,对所述当前重建编码单元进行块划分得到重建变换单元。

对所述原始变换单元进行变换得到原始变换单元的AC系数,对所述重建变换单元进行变换得到重建变换单元的AC系数。

其中,所述变换包括但不限于:DCT变换、hadmard变换、DST变换。

根据所述原始变换单元的AC系数和所述重建变换单元的AC系数计算所述当前原始编码单元与所述当前重建编码单元的能量差值,公式如下:

其中,E

进一步的,为了可以更准确地衡量所述当前原始编码单元和所述当前重建编码单元之间的主观失真,所述主观失真的计算方法可以进一步修正为:

其中,E

在另一个实施例中,所述当前原始编码单元与所述当前重建编码单元的主观失真可以以所述当前原始编码单元与所述当前重建编码单元的像素方差差值来表示,计算公式如下:

其中,X为所述当前原始编码单元中的像素值,X'为所述当前原始编码单元中的像素平均值,Y为所述当前重建编码单元中的像素值,Y'为所述当前重编码单元中的像素平均值,N为当前编码单元中的像素个数,distortion为主观失真,abs为绝对值函数。

步骤3,根据所述像素域失真和所述主观失真计算当前编码单元的编码代价。

所述编码代价的计算公式如下:

其中,D为像素域失真,distortion为主观失真,λ为拉格朗日乘子,R为当前的编码码率。

进一步的,所述当前原始编码单元与所述当前重建编码单元之间的主观失真度越高,胶片颗粒被去除的概率就越大。为避免胶片颗粒被去除,需要加大主观失真的权重,对编码代价的修正如下:

其中,k是修正因子且k大于1,D为像素域失真,distortion为主观失真,λ为拉格朗日乘子,R为当前的编码码率。

进一步的,对于平坦区域,胶片颗粒往往较弱,人眼对此类区域的胶片颗粒敏感度相对较低。为了能更准确地保留胶片颗粒,还可以根据胶片颗粒的强弱程度对编码代价的计算进行修正。

所述根据胶片颗粒的强弱程度对编码代价的计算进行修正,包括:

判断所述当前原始编码单元的胶片颗粒的强弱程度。

根据判断结果,对编码代价的计算进行修正:

如果判断所述当前原始编码单元为胶片颗粒程度较弱的区域,所述编码代价的计算公式如下:

其中,m是修正因子且m小于1,D为像素域失真,distortion为主观失真,λ为拉格朗日乘子,R为当前的编码码率。

如果判断所述当前原始编码单元为胶片颗粒程度较强的区域,所述编码代价的计算公式如下:

其中,k是修正因子且k大于1,D为像素域失真,distortion为主观失真,λ为拉格朗日乘子,R为当前的编码码率。

所述判断所述当前原始编码单元的胶片颗粒的强弱程度,包括:

计算所述当前原始编码单元的像素方差:

其中,X为所述当前原始编码单元中的像素值,X'为所述当前原始编码单元中的像素平均值,N为编码单元中的像素个数。

预先设定所述当前原始编码单元的像素方差阈值T。

如果所述当前原始编码单元的像素方差小于所述方差阈值T,则判断所述当前原始编码单元为胶片颗粒程度较弱的区域,反之,则判断所述当前原始编码单元为胶片颗粒程度较强的区域。

步骤4,根据所述编码代价,选择编码代价最小时对应的编码预测模式进行编码。

图5示出了本发明一实施例提供的编码胶片颗粒的装置的结构示意图,如图5所示:

编码模块,用于对当前原始编码单元遍历编码预测模式,得到当前重建编码单元。

第一计算模块,用于计算所述当前原始编码单元与所述当前重建编码单元的像素域失真和主观失真。

其中,所述计算所述当前原始编码单元与所述当前重建编码单元的像素域失真,可以用绝对误差和(Sum of Absolute Difference,SAD)、哈达玛变换绝对误差和(Sum ofAbsolute Transformed Difference,SATD)、差值平方和(Sum of Squared Difference,SSD)、平均绝对误差(Mean Absolute Difference,MAD)、平均平方误差(Mean SquaredDifference,MSD)等算法计算获得。

所述计算所述当前原始编码单元与所述当前重建编码单元的主观失真,包括:

在一个实施例中,所述当前原始编码单元与所述当前重建编码单元的主观失真可以以所述当前原始编码单元与所述当前重建编码单元的能量差值来表示,包括:

对所述当前原始编码单元进行块划分得到原始变换单元,对所述当前重建编码单元进行块划分得到重建变换单元。

对所述原始变换单元进行变换得到原始变换单元的AC系数,对所述重建变换单元进行变换得到重建变换单元的AC系数。

其中,所述变换包括但不限于:DCT变换、hadmard变换、DST变换。

根据所述原始变换单元的AC系数和所述重建变换单元的AC系数计算所述当前原始编码单元与所述当前重建编码单元的能量差值,公式如下:

其中,E

进一步的,为了可以更准确地衡量所述当前原始编码单元和所述当前重建编码单元之间的主观失真,所述主观失真的计算方法可以进一步修正为:

其中,E

在另一个实施例中,所述当前原始编码单元与所述当前重建编码单元的主观失真可以以所述当前原始编码单元与所述当前重建编码单元的像素方差差值来表示,计算公式如下:

其中,X为所述当前原始编码单元中的像素值,X'为所述当前原始编码单元中的像素平均值,Y为所述当前重建编码单元中的像素值,Y'为所述当前重编码单元中的像素平均值,N为当前编码单元中的像素个数,distortion为主观失真,abs为绝对值函数。

第二计算模块,用于根据所述像素域失真和所述主观失真计算当前编码单元的编码代价。

所述编码代价的计算公式如下:

其中,D为像素域失真,distortion为主观失真,λ为拉格朗日乘子,R为当前的编码码率。

进一步的,所述当前原始编码单元与所述当前重建编码单元之间的主观失真度越高,胶片颗粒被去除的概率就越大。为避免胶片颗粒被去除,需要加大主观失真的权重,对编码代价的修正如下:

其中,k是修正因子且k大于1,D为像素域失真,distortion为主观失真,λ为拉格朗日乘子,R为当前的编码码率。

进一步的,对于平坦区域,胶片颗粒往往较弱,人眼对此类区域的胶片颗粒敏感度相对较低。为了能更准确地保留胶片颗粒,还可以根据胶片颗粒的强弱程度对编码代价的计算进行修正。

所述根据胶片颗粒的强弱程度对编码代价的计算进行修正,包括:

判断所述当前原始编码单元的胶片颗粒的强弱程度。

根据判断结果,对编码代价的计算进行修正:

如果判断所述当前原始编码单元为胶片颗粒程度较弱的区域,所述编码代价的计算公式如下:

其中,m是修正因子且m小于1,D为像素域失真,distortion为主观失真,λ为拉格朗日乘子,R为当前的编码码率。

如果判断所述当前原始编码单元为胶片颗粒程度较强的区域,所述编码代价的计算公式如下:

其中,k是修正因子且k大于1,D为像素域失真,distortion为主观失真,λ为拉格朗日乘子,R为当前的编码码率。

所述判断所述当前原始编码单元的胶片颗粒的强弱程度,包括:

计算所述当前原始编码单元的像素方差:

其中,X为所述当前原始编码单元中的像素值,X'为所述当前原始编码单元中的像素平均值,N为编码单元中的像素个数。

预先设定所述当前原始编码单元的像素方差阈值T。

如果所述当前原始编码单元的像素方差小于所述方差阈值T,则判断所述当前原始编码单元为胶片颗粒程度较弱的区域,反之,则判断所述当前原始编码单元为胶片颗粒程度较强的区域。

模式选择模块,用于根据所述编码代价,选择编码代价最小时对应的编码预测模式进行编码。

基于相同的发明构思,本发明又一实施例提供了一种电子设备,如图6所示,所述电子设备具体包括如下内容:处理器601、存储器602、通信接口603和通信总线604。

其中,所述处理器601、存储器602、通信接口603通过所述通信总线604完成相互间的通信;所述通信接口603用于实现各设备之间的信息传输。

所述处理器601用于调用所述存储器602中的计算机程序,所述处理器执行所述计算机程序时实现上述编码胶片颗粒的方法的全部步骤。

基于相同的发明构思,本发明又一实施例提供了一种非暂态计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述编码胶片颗粒的方法的全部步骤。

上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

此外,在本发明实施例中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。在本说明书的描述中,“在一个实施例”、“在另一个实施例”等的描述意指结合该实施例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例以及不同实施例的特征进行结合和组合。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术分类

06120115928109