一种视频图像处理方法和装置
技术领域
本发明涉及视频图像技术领域,尤其涉及一种视频图像处理方法和装置。
背景技术
随着个人智能手机、摄像机、相机等的大量普及,越来越多的用户开始自己拍摄视频和图像。互联网的普及,使用户生产(UGC)视频和图像能轻松地分享给更多用户。
视频图像从源采集到终端显示之间的整个过程涉及采集、(预处理)、编码、传输、解码、(后处理)以及渲染和显示等多媒体处理流程操作。这些流程操作之间有一定的相关性,都会影响最终用户观看体验。
然而由于视频图像采集设备和拍摄环境的多样而复杂,相机的处理能力和策略也千差万别,导致很多低质的视频图像的主观质量不高,例如画面不清晰,颜色失真,轮廓不明朗通透等。
在图像处理方面,有不少有效的技术能提高图像质量,例如对比度拉伸,直方图均衡化等。但是仅仅单一的对比度拉伸,对于视频图像整体过暗或者过亮的场景可能更加糟糕。直方图均衡化方法也很容易导致调整过度,且它是图像/帧相关的,所以各个图像帧的处理是独立的,这样对于视频就不合适,因为场景内每一帧的参数可能都不统一,容易造成视频质量波动厉害,主观质量不连贯,影响观看效果;而且会降低同一个场景内相邻图像帧之间时域相关性,降低视频编码性能,(如果保持相同主观质量)可能大幅度增加视频编码所需的码率。
发明内容
针对上述问题,本发明提供了一种视频图像处理方法和装置,该方法和装置能够根据视频图像的场景自适应地选择匹配的对比度增强滤波方法,从而使视频整体既能保持每个场景内的一致连贯性,也能对每个场景进行针对性的增强处理,进而能对各种视频图像都能获得较好的质量提升,包括视频图像清晰度、颜色丰富度,观看舒适度等方面。
为了解决上述技术问题,本发明采用了如下技术方案:
一种视频图像处理方法,包括:
步骤A:根据视频图像帧的像素灰度值分布特性将视频分割为多个场景;其中,连续一段具有相同或相近像素灰度值分布特性的视频图像帧属于同一场景,像素灰度值分布特性相近是指不同视频图像帧的像素灰度值分布特性的差异小于预设阈值;
步骤B:根据每个场景的整体像素灰度值分布特性自适应选择与该场景对应的滤波函数;
步骤C:根据选择的滤波函数建立每个场景中的原图像像素值和滤波处理后像素值的映射查找表;
步骤D:对每个场景内的每一帧图像中的所有像素利用该场景对应的映射查找表进行相同的滤波操作。
优选的,所述像素灰度值分布特定为像素灰度值直方图分布特性;所述步骤A具体包括:
从视频中每隔N帧抽取一帧图像Ii;其中,N为正整数;i表示抽取的图像序号,i为正整数;
统计每帧图像的像素灰度值的直方图分布;
对每帧图像的像素灰度值的直方图分布进行平滑处理,得到每帧图像的像素灰度值的平滑直方图分布;
根据每帧图像的像素灰度值的平滑直方图分布,计算相邻两帧图像Ii和Ii+1的相似度距离;
判断所述相邻两帧图像Ii和Ii+1的相似度距离是否大于相似度距离阈值,如果是,确定图像Ii和Ii+1分属于不同场景;如果否,确定图像Ii和Ii+1属于同一个场景。
优选的,所述抽取图像之后,统计像素灰度值的直方图分布之前,还包括:
对抽取的图像Ii按照p×q进行采样放缩,得到新的图像I_si;
其中,p,q均大于0。
优选的,所述像素灰度值分布特定为像素灰度值直方图分布特性;所述步骤B具体包括:
对每个场景内所有图像的直方图分布进行加权平均得到每个场景的平均直方图分布以及平均累计直方图分布;
把像素取值范围均分为n段,得到n个区间A0、A1、…Aj、…、An-1;j表示区间序号,j∈{0,1,2,...,n-1};
累积每个区间Aj内平均直方图分布分段累积和Hg[j]=∑k∈AjHist_g[k];
将各个区间的平均直方图分布分段累积和按照由大到小的顺序进行排序,根据平均累积直方图分布计算得到场景内的像素灰度值分布的主区间[p0,pm],所述主区间[p0,pm]为覆盖像素个数超过e%的最小像素区间,其中,e为常数;p0,pm∈[0,像素区间范围最大值];
根据各个区间的平均直方图分布分段累积和的大小排序关系,查找像素分布最多的前[n/2]个区间,其中,[n/2]为n/2向上取整;
根据像素分布最多的前[n/2]个区间分布确定像素分布类型;
根据像素分布类型选择对应的滤波函数。
优选的,像素取值范围按照由大到小的顺序均分为4个子范围,依次分别为第一子范围B0、第二子范围B1、第三子范围B2和第四子范围B3;
所述根据像素分布最多的前[n/2]个区间分布确定像素分布类型,具体包括:
当像素分布最多的前[n/2]个区间集中B1、B2时,则像素分布类型为第一像素分布类型,第一像素分布类型的特点是图像整体集中分布在中间灰度区域;
当像素分布最多的前[n/2]个区间集中在B0,B1或者B0,B2时,像素分布类型为第二像素分布类型,第二像素分布类型的特点是图像整体偏暗;
当像素分布最多的前[n/2]个区间集中在B1,B3或者B2,B3时,像素分布类型为第三像素分布类型,第三像素分布类型的特点是图像整体偏亮;
当像素分布最多的前[n/2]个区间集中在B0,B3时,像素分布类型为第四像素分布类型,第四像素分布类型的特点是像素主要分布在灰度两端。
优选的,4种像素分布类型对应的滤波函数均为3段线性函数,该3段线性函数的主体部分的函数表达式均为y=ar*x+br,其中,ar,br均为常数,r表示滤波函数类型,r=0,1,2,3;
其中,主体部分的x取值范围与视频图像的bit位以及滤波函数类型相关;
ar=-cr1*(pm-p0)+cr2,其中,cr1,cr2为正常数,并且限定ar=clip3(amax,amin,ar),clip3函数的意义是ar的取值如果大于amax,则取amax,若小于amin,则取amin,否则ar=ar;
br为经验值。
优选的,所述计算得到场景内的像素灰度值分布的主区间[p0,pm],具体包括:
从p0=0开始,p0遍历[0,像素区间范围最大值],求使得SumHist_Yg[pm]-SumHist_Yg[p0]≥e%的最小pm;
最小pm对应的区间[p0,pm]为一个场景内像素灰度值分布的主区间。
一种视频图像处理装置,包括:
分割单元,用于根据视频图像帧的像素灰度值分布特性将视频分割为多个场景;其中,连续一段具有相同或相近像素灰度值分布特性的视频图像帧属于同一场景,像素灰度值分布特性相近是指不同视频图像帧的像素灰度值分布特性的差异小于预设阈值;
选择单元,用于根据每个场景的整体像素灰度值分布特性自适应选择与该场景对应的滤波函数;
建表单元,用于根据选择的滤波函数建立每个场景中的原图像像素值和滤波处理后像素值的映射查找表;
操作单元,用于对每个场景内的每一帧图像中的所有像素利用该场景对应的映射查找表进行相同的滤波操作。
优选的,所述像素灰度值分布特定为像素灰度值直方图分布特性;所述分割单元包括:
抽取子单元,用于从视频中每隔N帧抽取一帧图像Ii;其中,N为正整数;i表示抽取的图像序号,i为正整数;
统计子单元,用于统计每帧图像的像素灰度值的直方图分布;
平滑处理子单元,用于对每帧图像的像素灰度值的直方图分布进行平滑处理,得到每帧图像的像素灰度值的平滑直方图分布;
计算子单元,用于根据每帧图像的像素灰度值的平滑直方图分布,计算相邻两帧图像Ii和Ii+1的相似度距离;
判断子单元,用于判断所述相邻两帧图像Ii和Ii+1的相似度距离是否大于相似度距离阈值,如果是,确定图像Ii和Ii+1分属于不同场景;如果否,确定图像Ii和Ii+1属于同一个场景。
优选的,所述分割单元还包括:
放缩子单元,用于对抽取的图像Ii按照p×q进行采样放缩,得到新的图像I_si,其中,p,q均大于0。
优选的,所述像素灰度值分布特定为像素灰度值直方图分布特性;所述选择单元包括:
加权平均子单元,用于对每个场景内所有图像的直方图分布进行加权平均得到每个场景的平均直方图分布以及平均累计直方图分布;
均分子单元,用于把像素取值范围均分为n段,得到n个区间A0、A1、…Aj、…、An-1;j表示区间序号,j∈{0,1,2,...,n-1};
累积子单元,用于累积每个区间Aj内平均直方图分布分段累积和Hg[j]=∑k∈ AjHist_g[k];
排序子单元,将各个区间的平均直方图分布分段累积和按照由大到小的顺序进行排序;
计算子单元,用于根据平均累积直方图分布计算得到场景内的像素灰度值分布的主区间[p0,pm],所述主区间[p0,pm]为覆盖像素个数超过e%的最小像素区间,其中,e为常数;p0,pm∈[0,像素区间范围最大值];
查找子单元,用于根据各个区间的平均直方图分布分段累积和的大小排序关系,查找像素分布最多的前[n/2]个区间,其中,[n/2]为n/2向上取整;
确定子单元,用于根据像素分布最多的前[n/2]个区间分布确定像素分布类型;
选择子单元,用于根据像素分布类型选择对应的滤波函数。
优选的,像素取值范围按照由大到小的顺序均分为4个子范围,依次分别为第一子范围B0、第二子范围B1、第三子范围B2和第四子范围B3;所述确定子单元包括:
当像素分布最多的前[n/2]个区间集中B1、B2时,则像素分布类型为第一像素分布类型,第一像素分布类型的特点是图像整体集中分布在中间灰度区域;
当像素分布最多的前[n/2]个区间集中在B0,B1或者B0,B2时,像素分布类型为第二像素分布类型,第二像素分布类型的特点是图像整体偏暗;
当像素分布最多的前[n/2]个区间集中在B1,B3或者B2,B3时,像素分布类型为第三像素分布类型,第三像素分布类型的特点是图像整体偏亮;
当像素分布最多的前[n/2]个区间集中在B0,B3时,像素分布类型为第四像素分布类型,第四像素分布类型的特点是像素主要分布在灰度两端。
优选的,4种像素分布类型对应的滤波函数均为3段线性函数,该3段线性函数的主体部分的函数表达式均为y=ar*x+br,其中,ar,br均为常数,r表示滤波函数类型,r=0,1,2,3;
其中,主体部分的x取值范围与视频图像的bit位以及滤波函数类型相关;
ar=-cr1*(pm-p0)+cr2,其中,cr1,cr2为正常数,并且限定ar=clip3(amax,amin,ar),clip3函数的意义是ar的取值如果大于amax,则取amax,若小于amin,则取amin,否则ar=ar;
br为经验值。
相较于现有技术,本发明具有以下有益效果:
通过以上技术方案可知,本发明提供的视频图像处理方法和装置首先根据视频图像帧的像素灰度值分布特性将视频分割为多个场景,然后根据各个场景的整体像素灰度值分布特性来选择适合自身的有效的滤波函数然后根据适合自身的滤波函数对各个场景进行自适应地处理,从而达到对各个场景进行针对性的增强处理,其对各个场景均能获得较好的增强效果,且能保持场景内滤波的一致性和观看质量的连贯性。因此,该方法能对各种视频图像都能获得较好的质量提升,包括视频图像清晰度、颜色丰富度,观看舒适度等方面。
此外,本发明提供的视频图像处理方法和装置应用广泛,其可以用于视频的预处理增强处理,用在编码之前,也可以用于后处理增强处理,用于编码之后,显示之前。
附图说明
为了清楚地理解本发明的具体实施方式,下面将描述本发明具体实施方式时用到的附图做一简要说明。显而易见地,这些附图仅是本发明的部分实施例,本领域普通技术人员在未付出创造性劳动的前提下,还可以获得其它附图
图1是本发明实施例提供的视频图像处理方法流程示意图;
图2是本发明实施例提供的步骤S11的具体实施方式流程示意图;
图3是一个原图或者下采样后的图片示意图;
图4是图3对应的直方图;
图5是图3对应的累积直方图;
图6是一个场景图像的直方图分布示意图;
图7是本发明实施例提供的步骤S12的具体实施方式流程示意图;
图8a至图8d本发明实施例提供的四种滤波类型对应的函数示意图;
图9a至图9f是三组增强滤波处理后的(视频图像)图像对比图;
图10是本发明实施例提供的视频图像处理装置结构示意图;
图11是本发明实施例提供的分割单元结构示意图;
图12是本发明实施例提供的选择单元结构示意图。
具体实施方式
为使本发明的发明目的、技术方案和技术效果更加清楚、完整,下面结合附图对本发明的具体实施方式进行详细描述。
本发明实施例以一个视频的预处理滤波作为示例进行描述。在本发明实施例中,颜色通道以视频图像处理中常用的YUV格式yuv420p为例说明,此外,颜色通道也可以为其它格式,如RGB格式。整个处理一般为2pass(2轮)过程,第一pass为预分析和滤波决策阶段,第二pass为实际滤波阶段。
图1是本发明实施例提供的视频图像处理方法流程示意图。如图1所示,该方法包括以下步骤:
S11、根据视频图像帧的像素灰度值分布特性将视频分割为多个场景:
其中,连续一段具有相同或相近像素灰度值分布特性的视频图像帧属于同一场景。换句话说,同一场景的定义是指连续一段具有相同或相近像素灰度值分布特性的视频图像帧集合。像素灰度值分布特性相近是指不同视频图像帧的像素灰度值分布特性的差异小于预设阈值。
作为示例,场景分割的判断准则可以为相邻图像采样处理后的直方图分布差异。此外,场景分割的判断准则还可以为相邻图像的像素差的绝对值之和。下面以判断准则为相邻图像采样处理后的直方图分布差异为例详细描述步骤S11的具体实现方式。
图2是步骤S11的具体实施方式示例。如图2所示,该步骤具体包括:
S111、从视频中每隔N帧抽取一帧图像Ii:
设定图像Ii的分辨率为W×H;其中,N为正整数;i表示抽取的图像序号,i为正整数,按照视频图像帧的抽取顺序,i依次分别为1,2,3,…。
需要说明,因为一般视频具有时域强相关性,也就是一个场景内的相邻帧基本相似,所以,在本发明实施例中,可以每隔多帧抽取一帧作为该时域内的帧代表即可,即N可以大于等于2。作为示例,可以每隔0.5s~1s从视频中抽取一帧图像。当N=1时,表示抽取视频内的所有帧。
S112、对抽取的图像Ii按照p×q进行采样放缩,得到新的采样后图像I_si:
对抽取的图像帧Ii按照p×q进行采样放缩,得到新的采样后图像I_si,这样就从原视频图像帧序列中得到一系列重采样后的图像I_si,此处,i表示图像的序号,i=0,1,2,…。
需要说明,采样放缩后图像I_si的分辨率为其中,p,q均大于0,若p,q均大于1表示下采样,若p,q均小于1表示上采样,这里一般选取p=q=2,表示水平垂直均1/2下采样。例如一个1920×1080分辨率的视频,水平垂直1/2下采样后,其分辨率为960×540。由此可知,下采样能够减少图像尺寸,减少后续计算量,同时基本不影响性能。
需要说明的是,在本发明实施例中,步骤S112为优选步骤,执行该步骤后,在不影响基本性能的前提下,能够减少图像尺寸,减少后续计算量。作为本发明的另一实施例,可以不执行步骤S112,即在执行完步骤S111之后,立即执行步骤S113,该实施例对应的技术方案也能够解决本发明的技术问题,达到本发明的技术效果。
S113、统计每个图像I_si的像素灰度值的直方图分布:
本发明实施例以视频像素是8bit为例说明,这样像素灰度值取值范围为0~255。此外,作为本发明的另一具体实施例,视频像素也可以为其它bit位,例如10bit。当视频像素为10bit时,像素灰度值最大取值为2^10-1=1023,取值范围为0~1023。
当视频格式为YUV格式时,统计每个图像I_si的像素灰度值的直方图分布具体包括:
首先,分别统计每个图像I_si的YUV三个分量的各个灰度取值的像素个数:
在本发明实施例中,Hist_Yi[x]表示图像I_si的Y分量里像素灰度值等于x的像素个数,Hist_Ui[x]表示图像I_si的U分量里像素灰度值等于x的像素个数,Hist_Vi[x]表示图像I_si的V分量里像素灰度值等于x的像素个数,最终得到图像I_si的YUV三个分量的直方图分布Hist_Yi[256],Hist_Ui[256],Hist_Vi[256]。
再分别求得累积直方图分布SumHist_Ui[256],SumHist_Vi[256]:
计算公式分别为:
图3显示了一个原图或者下采样后的图片,图4和图5分别为图3对应的直方图和累积直方图。
图3所示的图片为视频图像处理领域里常用的YUV420p8bit格式,这样UV分量的分辨率宽高都只有Y分量的一般,所以直方图里UV分量比Y分量小。
S114、对每个图像的像素灰度值的直方图分布进行平滑处理,得到每个图像的像素灰度值的平滑直方图分布:
为了减少场景内小范围的播放干扰,对每个图像I_si的YUV三个分量的直方图分布Hist_Yi[256],Hist_Ui[256],Hist_Vi[256]分布进行平滑处理。以Y分量的直方图分布为例进行具体说明。对Y分量的直方图分布Hist_Yi[256]进行平滑处理,具体可以对Hist_Yi[x]连同周围左右各r个取值进行加权平均(归一化)得到平滑直方图分布,r为正整数,加权系数可以使用高斯平滑系数或者其他平滑滤波系数,为了简单,这里去平均平滑,即各加权系数均为1,平滑处理公式如下:
其它UV两个分量的直方图分布平滑处理可以采用与Y分量的直方图分布相同的平滑处理方法,其平滑处理公式分布如下:
S115、根据每个图像的像素灰度值的平滑直方图分布,计算相邻两个图像I_si和I_si+1的相似度距离:
需要说明,相邻两个图像I_si和I_si+1的相似度距离为各个分量上的相似度距离的总和,所以,在计算相邻两个图像I_si和I_si+1的相似度距离之前,需要分别计算各个分量上的相似度距离。其中;
Y分量相似度距离
U分量相似度距离
V分量相似度距离
其中,T为图像平面的像素个数;
P为距离参数常量;作为示例,p=2,即采用二阶范数,此外,p也可以是其它非零值。
然后再根据YUV三个分量的相似度距离计算相邻两个图像I_si和I_si+1相似度距离Dist_Totali=Dist_Yi+c1*Dist_Ui+c2*Dist_Vi;其中,c1,c2为常数。
S116、判断所述相邻两个图像I_si和I_si+1的相似度距离Dist_Totali是否大于相似度距离阈值Thres_cut,如果是,确定图像I_si和I_si+1分属于不同场景;如果否,确定图像I_si和I_si+1属于同一个场景:
当Dist_Totali>Thres_cut时,确定图像I_si和I_si+1分属于不同场景,记录位置i为上一个场景的结束位置,i+1位新场景起始位置;否则,即当Dist_Totali≤Thres_cut时,确定图像I_si和I_si+1属于同一个场景。
通过图2所示的场景分割方法就可以把整个视频分割为G个场景Gopg,G为正整数,g∈{0,1,2,..,G}。
图6显示了一个场景图像的直方图分布情况,从图6和图4中可以看出,图4和图6的直方图分布有很大差异,所以,图4和图6对应的图像分属于不同的场景。
S12、根据每个场景的整体像素灰度值分布特性自适应选择对应的滤波函数:
作为示例,步骤S12的具体实现方式如图7所示,其包括以下步骤:
S121、对每个场景内所有图像的直方图分布进行加权平均得到每个场景的平均直方图分布以及平均累计直方图分布:
需要说明,针对视频格式为YUV格式的视频,需要对YUV三个分量的像素分别进行滤波函数处理,所以,需要对每个场景内的所有图像的YUV三个分量的直方图分布分别进行加权平均得到每个场景内的三个分量的平均直方图分布以及平均累积直方图分布。
作为示例,对场景Gopg内所有图像I_si的YUV三个分量的直方图分布Hist_Yi[256],Hist_Ui[256],Hist_Vi[256]进行加权平均得到场景g平均直方图分布Hist_Yg[256],Hist_Ug[256],Hist_Vg[256],以及平均累计直方图分布SumHist_Yg[256],SumHist_Ug[256],SumHist_Vg[256]。在本发明实施例中,g∈{0,1,2,..,G}。
S122、把像素取值范围均分为n段,得到n个区间A0、A1、…Aj、…、An-1,j表示区间序号,j∈{0,1,2,...,n-1}:
为了简便和举例说明,本发明设定把像素取值范围均分为4段,得到4个区间A0、A1、A2和A3。其中,各区间对应的像素取值范围如表1所示:
表1
区间 |
A0 |
A1 |
A2 |
A3 |
像素取值范围 |
0~63 |
64~127 |
128~191 |
192~255 |
S123、累积每个区间Aj内平均直方图分布分段累积和Hg[j]=∑k∈AjHist_g[k],j∈{0,1,2,3}:
需要说明,针对视频格式为YUV格式的视频,需要对YUV三个分量的像素分别进行滤波函数处理,所以,需要对YUV三个分量分别进行区间内平均直方图分布分段累积求和。
设定Y分量的4个分段累积和分别表示为
U分量的4个分段累积和分别表示为:
V分量的4个分段累积和分别表示为:
S124、将各个区间的平均直方图分布分段累积和按照由大到小的顺序进行排序,根据平均累积直方图分布计算得到场景内的像素灰度值分布的主区间[p0,pm],所述主区间[p0,pm]为覆盖像素个数超过e%的最小像素区间,其中,e为常数;p0,pm∈[0,像素区间范围最大值]:
如上所述,需要对YUV三个分量分别计算得到对应的场景内像素灰度值分布的主区间[p0,pm]Y,[p0,pm]U和[p0,pm]V。
YUV三个分量的计算方法类似,下面以Y分量详细说明计算主区间的方法,UV两个分量可以采用类似的方法计算得到。
根据Y分量的平均累积直方图分布SumHist_Yg[256]查找覆盖像素个数超过e%的最小像素区间[p0,pm]Y,这里,e为常数,例如取80,p0,pm∈[0,255]。求取方法也较为简单,具体为:从p0=0开始,P0遍历[0,255],求使得SumHist_Yg[pm]-SumHist_Yg[p0]≥e%的最小pm;最小pm对应的区间[p0,pm]为一个场景内像素灰度值分布的主区间。
在本发明实施例中,主区间可以用于图像像素灰度值的集中度。
S125、根据各个区间的平均直方图分布分段累积和的大小排序关系,查找像素分布最多的前[n/2]个区间,其中,[n/2]为n/2向上取整:
如上所述,本步骤也需要对各个区间内的YUV三个分量的平均直方图分布分段累积和的大小排序关系,分别查找像素分布最多的前[n/2]个区间。具体为:
根据各个区间的Y分量的平均直方图分布分段累积和 的大小排序关系,查找Y分量像素分布最多的前两个区间。
根据各个区间的U分量的平均直方图分布分段累积和根据各个区间的Y分量的平均直方图分布分段累积和的大小排序关系,查找U分量像素分布最多的前两个区间。
根据各个区间的V分量的平均直方图分布分段累积和 的大小排序关系,查找V分量像素分布最多的前两个区间。
S126、根据像素分布最多的前[n/2]个区间分布确定像素分布类型:
针对YUV三个分量需要分别根据其像素分布最多的前[n/2]个区间分别确定其对应的像素分布类型。
针对YUV分量中的一个分量来说,
(1)当像素分布最多的前两个区间集中在区间[A1,A2]时,则确定像素分布类型为第一像素分布类型,第一像素分布类型的特点是图像整体集中分布在中间灰度区域;
(2)当像素分布最多的前两个区间集中在区间[A0,A1]或[A0,A2]时,则确定像素分布类型为为第二像素分布类型,第二像素分布类型的特点是图像整体偏暗;
(3)当像素分布最多的前两个区间集中在区间[A1,A3]或[A2,A3]时,则确定像素分布类型为第三像素分布类型,第三像素分布类型的特点是图像整体偏亮;
(4)当像素分布最多的前两个区间集中在区间[A0,A3]时,则确定像素分布类型为第四像素分布类型,第四像素分布类型的特点是像素主要分布在灰度两端。
需要说明,上述示例是以像素分布范围分为4个区间来说的。一般来说,当像素取值范围划分为n个区间时,可以将像素取值范围按照由大到小的顺序均分为4个子范围,依次分别为第一子范围B0、第二子范围B1、第三子范围B2和第四子范围B3。此时,根据像素分布最多的[n/2]个区间分布确定像素分布类型,具体为:
当像素分布最多的前[n/2]个区间集中B1、B2时,则像素分布类型为第一像素分布类型,第一像素分布类型的特点是图像整体集中分布在中间灰度区域;
当像素分布最多的前[n/2]个区间集中在B0,B1或者B0,B2时,像素分布类型为第二像素分布类型,第二像素分布类型的特点是图像整体偏暗;
当像素分布最多的前[n/2]个区间集中在B1,B3或者B2,B3时,像素分布类型为第三像素分布类型,第三像素分布类型的特点是图像整体偏亮;
当像素分布最多的前[n/2]个区间集中在B0,B3时,像素分布类型为第四像素分布类型,第四像素分布类型的特点是像素主要分布在灰度两端。
S127、根据像素分布类型选择对应的滤波函数和滤波参数:
需要说明,在本发明实施例中,一个分量对应一个滤波函数和滤波参数。以上述YUV格式的视频图像为例,本步骤需要根据YUV三个分量的像素分布类型分别选择其各自对应的滤波函数和滤波参数。
下面详细说明Y分量如何根据像素分布类型选择对应的滤波函数和滤波参数。
上述四种像素分布类型对应四种滤波类型(滤波函数)。这四种滤波类型对应的像素映射示意图如图8a至图8d所示,横坐标x表示原图像某一分量例如Y分量的像素灰度值,纵坐标y表示滤波后对应分量的像素灰度值。图8a至图8d所示的滤波类型分别为第一类型、第二类型、第三类型和第四类型。
如图8a至图8d所示,这四种滤波类型对应的映射函数均为3段线性函数,其主体部分的函数表达式可以统一表示为:
y=ar*x+br,其中,ar,br均为常数,r表示滤波函数类型,r=0,1,2,3;
主体部分的函数y中,其x的取值范围与视频图像的bit位m(m为正整数)以及滤波类型相关,作为示例,x的取值范围一般在2^4~5至2^(m-2)~(m-1)之间。例如,当视频图像的bit位为8,滤波类型为第二类型和第三类型时,x的取值范围可以为[16~240],滤波类型为第四类型时,x的取值范围可以为[32~224]。
其中,ar具体取值依赖于像素集中度区间即主区间[p0,pm]的区间长度pm-p0,且ar的取值和区间长度pm-p0为负相关。这里对主体函数斜率ar取简单线性函数,设定ar=-cr1*(pm-p0)+cr2,其中,cr1,cr2为正常数,并且限定ar=clip3(amax,amin,ar);clip3函数的意义是ar的取值如果大于amax,则取amax,若小于amin,则取amin,否则ar=ar。一般情况下,设定amin=0.8,amax=1.2。需要说明,ar的取值函数不限于线性函数,可以为其它多项式或者其它形式。
参数br的选择往往依赖一些经验,这里通过限制线段必过点的方式来确定。对于第一类型和第四类型的滤波类型,一般约定必过点(2^(m/2),2^(m/2))点,举例说明,当m=8时,第一类型和第四类型的滤波类型一般必过点(128,128)。此外,也可以为设定的其它点。
对于第二类型和第三类型的滤波类型,根据图像整体亮暗程度选择过(16,pa)点。
根据上述方法可以获取到一个分量的像素分布类型对应的滤波函数的主体部分,该滤波函数的起始段可以从(0,0)点平滑过渡到其对应的主体部分的起点,该滤波函数的结束段可以从主体部分的终点平滑过渡到滤波函数的终点、比如(255,255)点。
根据上述选择的滤波函数和滤波参数可以确定从原图像Y分量像素值x到滤波后的Y分量像素值y的一一映射关系。
对于UV分量,在本发明实施例中,选择第一类型作为其对应的滤波类型。主体部分的线性函数的斜率a取值范围在1.0~1.1之间,截距b的取值通过设定过(128,128)点获取。当斜率a=1.0时,UV分量对应的滤波函数为y=x,此时,不调整UV滤波。
S13、根据选择的滤波函数建立每个场景的原图像像素值和滤波处理后像素值的映射查找表;
对于Y分量和UV分量的像素,根据步骤S12选择的滤波类型和滤波参数分别建立原图像像素值x和滤波处理后的图像像素值y的映射查找表(Look Up Table,LUT)。
S14、对每个场景内的每一帧图像中的所有像素利用该场景对应的映射查找表进行相同的滤波操作。
对于场景内的每一帧图像中的所有像素值按照该场景对应的映射查找表进行映射处理。如此,不需要对每个像素都要分别用函数计算公式,从而大幅加快速度,同时,所有像素的处理都是独立的,所以,可以对一个图像分成多片slice并行进行来进一步加快处理。
以上为本发明实施例提供的视频图像处理方法的具体实施方式。
需要说明,在该具体实施方式中,提到的常数以及系数和阈值均为举例说明,同时也不限于YUV格式和8bit表示,同时,所有加权系统不限于举例中的同等权重,也可以是其它的权重比例。
本发明实施例提供的视频图像处理方法适合多种视频格式(YUV RGB等)和各种比特深度(8bit~32bit)。同时可以根据用户喜好,选择不同的加权系数。本方案不限于只能2pass处理,也可以在处理时,一次性前向分析一小段视频如250帧,利用上面的方法处理,然后再依次往后一小段一小段分析处理,从而也可以用于对延迟要求不是很高的流媒体视频业务。
本发明实施例提供的视频图像处理方法不同于直方图对比度增强方法,直方图在这里的意义在于利用相邻图像重采样后直方图平滑后的距离进行(统计意义上)的场景分割;进行像素区间划分后,把场景内平均直方图分布分段排序后,把落在的一半的主区间的分布情况来进行场景类型判定和滤波类型选择;以及利用直方图区间集中度参数进行非线性(多个线段)滤波函数的系数选择上;
同时本方法主要聚焦于视频的增强,所以必须要考虑视频的各种约束,连续连贯性,所以在滤波函数的选择时,黑的滤波后还会是黑的,例如灰度值在0~16的像素就不可能被映射到如32以上的灰度级上去,白的亦然;不会像直方图均衡化一样可能导致黑的映射到灰亮。
本发明实施例具有以下有益效果:通过利用采样(一般为下采样)后的相邻图像(例如0.5s~1s截一帧)的直方图(平滑处理后)的相似度距离对视频进行场景分割,即可以获得很好的分割效果,同时还能大幅加快处理速度;然后对每个场景内(GOP)利用其直方图分布最多的前一半区间和集中度分为四种滤波类型,自适应选择对应的滤波类型,同时滤波参数是基于GOP内所有帧的统计分析特性获得的,相比传统的单一增强滤波方式可以应对绝大部分视频进行增强处理;对场景内所有帧执行相同的增强滤波策略,从而即可以对视频进行自适应增强,还可以保持场景内图像帧滤波的一致性和主观质量的连贯性,同时还可以减少因为预处理滤波导致编码码率增加;采用查找表来加快滤波(映射)过程,以及对图像分片并行进一步加快处理速度,经测试,滤波过程相比编码只增加了2%~4%的处理时间。本方法既可以用于视频的预处理滤波增强,也可以用于后处理滤波增强,具有非常广泛的应用空间。
图9a-f给出了一个增强滤波处理后的(视频图像)图像对比,其中a,c,e是源图像,b,d,f是滤波增强后图像,可见自适应滤波增强后,视频图像显得更加通透和清晰了。
基于上述实施例提供的视频图像处理方法,本发明还提供了视频图像处理装置的具体实施方式,具体参见以下实施例。
图10是本发明实施例提供的视频图像处理装置结构示意图。如图10所示,该装置包括以下单元:
分割单元101,用于根据视频图像帧的像素灰度值分布特性将视频分割为多个场景;其中,连续一段具有相同或相近像素灰度值分布特性的视频图像帧属于同一场景,像素灰度值分布特性相近是指不同视频图像帧的像素灰度值分布特性的差异小于预设阈值;
选择单元102,用于根据每个场景的整体像素灰度值分布特性自适应选择与该场景对应的滤波函数;
建表单元103,用于根据选择的滤波函数建立每个场景中的原图像像素值和滤波处理后像素值的映射查找表;
操作单元104,用于对每个场景内的每一帧图像中的所有像素利用该场景对应的映射查找表进行相同的滤波操作。
作为本发明的一具体实施例,所述像素灰度值分布特定为像素灰度值直方图分布特性。
进一步地,作为本发明的一具体实施例,如图11所示,所述分割单元101可以具体包括:
抽取子单元1011,用于从视频中每隔N帧抽取一帧图像Ii;设定图像Ii的分辨率为W×H;其中,N为正整数;i表示抽取的图像序号,i为正整数;
放缩子单元1012,用于对抽取的图像Ii按照p×q进行采样放缩,得到新的采样后图像I_si,其中,p,q均大于0;
统计子单元1013,用于统计每个图像的像素灰度值的直方图分布;
平滑处理子单元1014,用于对每个图像的像素灰度值的直方图分布进行平滑处理,得到每个图像的像素灰度值的平滑直方图分布;
计算子单元1015,用于根据每个图像的像素灰度值的平滑直方图分布,计算相邻两个图像I_si和I_si+1的相似度距离;
判断子单元1016,用于判断所述相邻两个图像I_si和I_si+1的相似度距离是否大于相似度距离阈值,如果是,确定图像I_si和I_si+1分属于不同场景;如果否,确定图像I_si和I_si+1属于同一个场景。
作为本发明的另一具体实施例,所述选择单元102可以具体包括:
加权平均子单元1021,用于对每个场景内所有图像的直方图分布进行加权平均得到每个场景的平均直方图分布以及平均累计直方图分布;
均分子单元1022,用于把像素取值范围均分为n段,得到n个区间A0、A1、…Aj、…、An-1;j表示区间序号,j∈{0,1,2,...,n-1};
累积子单元1023,用于累积每个区间Aj内平均直方图分布分段累积和Hg[j]=∑k∈AjHist_g[k];
排序子单元1024,将各个区间的平均直方图分布分段累积和按照由大到小的顺序进行排序;
计算子单元1025,用于根据平均累积直方图分布计算得到场景内的像素灰度值分布的主区间[p0,pm],所述主区间[p0,pm]为覆盖像素个数超过e%的最小像素区间,其中,e为常数;p0,pm∈[0,像素区间范围最大值];
查找子单元1026,用于根据各个区间的平均直方图分布分段累积和的大小排序关系,查找像素分布最多的前[n/2]个区间,其中,[n/2]为n/2向上取整;
确定子单元1027,用于根据像素分布最多的前[n/2]个区间分布确定像素分布类型;
选择子单元1028,用于根据像素分布类型选择对应的滤波函数。
以上为本发明提供的视频图像处理装置的具体实施方式。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。