一种基于运动与纹理区域检测的HEVC视频编码方法与流程
未命名
09-09
阅读:90
评论:0

一种基于运动与纹理区域检测的hevc视频编码方法
技术领域
1.本发明属于hevc的编码技术领域,还涉及通过边缘检测技术来检测纹理区域,以及通过灰度值差来检测运动区域的方法,具体涉及一种基于运动与纹理区域检测的hevc视频编码方法。
背景技术:
2.总所周知,在视频图像中,有剧烈运动的区域或者纹理比较复杂的区域比较容易引起人眼球的关注,比如人脸,物体目标和运动区域;而一般的静止物体的区域,其纹理也比较单一且不容易引起人的关注,可以把它称之为背景区域。在视频编码中,如何结合图像的特征,在不改变图像质量的前提下,减少视频压缩所需要的比特数,是一个重要的研究方向。
3.如现有技术中的hevc,其使用了hm软件来实现整个编码过程,它主要通过调整编码器的编码参数来保证一定比特率下,良好的视频编码质量。码率控制贯穿于整个编码过程中,它的性能会影响视频的编解码质量。但是,码率控制方法仍然存在编码速率的控制效果较差,降低了视频的质量的问题。
技术实现要素:
4.本发明的目的在于提供一种基于运动与纹理区域检测的hevc视频编码方法,以解决上述背景技术中提出现有技术中的问题。
5.为实现上述目的,本发明采用了如下技术方案:
6.一种基于运动与纹理区域检测的hevc视频编码方法,包括:
7.利用边缘检测实现纹理区域的检测:利用sobe l算子计算像素的梯度值进而来实现视频图像中的纹理检测,利用hevc编码时产生的运动矢量来检测视频中的运动区域;
8.利用灰度差实现运动区域的检测:将所检测的图像纹理与运动区域,看做图像的特征,将这两个特征与hevc的编码结合起来,对图像中不同区域的最大编码单元块赋予不同的权重;
9.基于运动与纹理区域检测的量化编码:利用所检测到的运动与纹理区域,调整hevc视频编码的量化参数,降低背景区域的视频质量。
10.上述在利用边缘检测实现纹理区域的检测时,设定当前帧的宽度和高度分别为为w和h,当前帧中最大编码单元lcu数目为n,基于sobe l算子的边缘检测的纹理区域检测步骤如下:
11.s1、使用sobe l算子统计每个最大编码单元lcu中像素点的梯度f1,如公式1;f(i,j)为像素点在(i,j)处的梯度值,同时使用sobe l算子求出当前帧中以最大编码单元lcu为基本单位的平均梯度f2,如公式2;
[0012][0013][0014]
s2、利用检测到的梯度值定义纹理区域,求得的平均梯度f2作为阈值基准,即:
[0015]
s=qf
2 (3),
[0016]
其中,s为判定为纹理区域时的梯度阈值,q为阈值因子;
[0017]
s3、利用每一个最大编码单元lcu中的梯度f1和当前帧中以最大编码单元lcu为基本单位的平均梯度f2,对lcu块定义纹理因子u,公式如下:
[0018][0019]
s4、对纹理区域进行分等级,分成不同的纹理等级g1,将求得的平均梯度f2作为阈值基准,根据不同视频特性来自适应调整不同纹理级的阈值;条件中的q1,q2,q3,q4为阈值因子,当纹理因子u小于阈值q1时,可以将这个区域看作非纹理区域,此区域的纹理变化比较少,将它的纹理级设置为0;当u大于q4时,这个区域就属于纹理比较丰富的区域,需要用比较多的比特来编码,设置纹理级为4;
[0020]
当u在q1与q4之间时,区域的纹理级g1随着纹理因子的增大而增大;
[0021]
当0≤u<q1时,g1=0;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0022]
当q1≤u<q2时,g1=1;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0023]
当q2≤u<q3时,g1=2;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0024]
当q3≤u<q4时,g1=3;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0025]
当q4≤u时,g1=4;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)。
[0026]
上述在利用灰度差实现运动区域的检测时,设定当前帧为视频序列的第n帧,且该帧内有n个最大编码单元lcu块,高度为h,宽度为w,当前帧fn(i,j),前一相邻帧f
n-1
(i,j),运动区域检测方法d步骤如下:
[0027]
s1、计算当前最大编码单元lcu的灰度差值k,计算当前帧以lcu为单位的平均灰度差值d,如公式所示:
[0028][0029][0030]
s2、设s为判定运动区域时的灰度差值的阈值,因为不同的视频运动剧烈程度差别大,如果使用相同的阈值会造成检测不准确,因为当前帧中所有像素点相对前一帧的运动趋势基本一致,利用求得的当前帧的以最大编码单元lcu为单位的平均灰度差值d作为阈值基准,式中q为阈值因子:
[0031]
s=qd
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12);
[0032]
s3、根据最大编码单元lcu的灰度值差k与前一帧的平均灰度值差d来定义lcu块运动因子u:
[0033][0034]
s4、对检测的运动块分级,分成不同的运动等级g2,条件中的q1,q2,q3,q4为公式15中的阈值因子;
[0035]
当运动因子u小于阈值q1时,可以将这个区域看作非运动区域,此区域属于静止区域,在视频帧中变化比较少,将它的运动级设置为0;当u大于q4时,这个区域就属于运动比较剧烈的区域,需要用比较多的比特来编码,设置运动级为4;
[0036]
当u在q1与q4之间时,区域的运动级g2随着纹理因子的增大而增大;
[0037]
当0≤u<q1时时,g2=0;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0038]
当q1≤u<q2时,g2=1;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0039]
当q2≤u<q3时,g2=2;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(16)
[0040]
当q3≤u<q4时,g2=3;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(17)
[0041]
当q4≤时,g2=4;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(18)。
[0042]
上述基于运动与纹理区域检测的量化编码时,对不同权值的最大编码单元lcu根据运动因子级g2和纹理因子级g1来调整计算新的该lcu的量化参数qp。当检测到该lcu是运动与纹理区域时,不改变该lcu的量化参数qp;当检测到是非运动与纹理区域时,增大该lcu的量化参数qp。
[0043]
上述根据量化参数qp设定量化参数增量k1,k2;所述k1的作用是根据编码块的纹理级别g1的不同来调节量化参数,从而达到码率控制的效果;所述k2的作用是根据编码块的运动级别g2的不同来调节量化参数,从而达到码率控制的效果。
[0044]
上述根据不同运动与纹理级g1和g2设定不同的调整系数,量化参数qp计算公式为:
[0045]
qp=qp0+k1+k2ꢀꢀꢀꢀꢀꢀꢀ
(19)。
[0046]
上述所述量化参数qp通过调节自适应的方式来对编码块进行码率的分配。
[0047]
上述所述sobe l算子模板是利用边缘处像素点的相邻的灰度差值的极值来检测,在提取边缘的时候,利用快速卷积函数进行运算,然后设定阈值,超过阈值的部分即为检测的边缘信息。
[0048]
由于本方法主要是对非运动与纹理区域处理,即非运动与纹理区域在没有失真严重的情况下,降低视频的质量,也就是降低原有视频编码中的码率分配;而对运动与纹理区域却不改变原有的视频质量,即不改变原有hevc视频编码标准中的码率分配,这反应在表格上就是当纹理级g1为3和4的时候,也就是处于纹理很丰富的区域时,量化参数增量k1为0,即不改变纹理区域的码率分配;同理,当运动级g2为3和4的时候,也就是处于运动很激烈的区域时,参数增量k2为0,即不改变运动区域的码率分配。反之,当纹理级g1或者运动级g2越来越小的时候,它对应的量化参数增量也会越来越大,反应到最后的量化参数上,就是此区域对应的量化参数会比hm标准方法的量化参数更大,因为此区域是非运动与纹理区域,本方法主要就是通过调节自适应qp的方式来对编码块进行码率的分配。
[0049]
本发明的技术效果和优点:本发明提出的一种基于运动与纹理区域检测的hevc视频编码方法,与现有技术相比,具有以下优点:
[0050]
本发明利用人眼的这种视觉特性,来设计基于运动与纹理区域的检测方法,先利用sobe l算子计算像素的梯度值进而来实现视频图像中的纹理检测,利用hevc编码时产生的运动矢量来检测视频中的运动区域,在利用所检测的图像纹理与运动区域,都可以看做图像的特征,将这两个特征与hevc的编码结合起来,研究hevc的码率控制技术,对图像中不同区域的最大编码单元块赋予不同的权重,设计了不同的比特率的分配方法,从而分配不同的编码比特率,在利用所检测到的运动与纹理区域,在不影响视频主观质量的基础上,调整hevc视频编码的量化参数,降低背景区域的视频质量,可以有效的提高视频的质量。
附图说明
[0051]
图1为本实施例中视频中的运动与纹理区域不同视频序列的一帧图像,其中,a图中的人的头像是运动区域、b图中的人和马是纹理复杂区域;
[0052]
图2为hm13标准方法编码blowingbubbles序列结果图;
[0053]
图3为本实施例中改进方法编码blowingbubbles序列结果图;
[0054]
图4为foreman(352
×
288)视频序列第20帧对比,其中,a为hm13.0方法的编码图像、b为改进方法的编码图像;
[0055]
图5为racehorses(832x480)视频序列第2帧对比,其中,a为hm13.0方法的编码图像,b为改进方法的编码图像;
[0056]
图6为tennis(1920x1080)视频序列第1帧对比,其中,a为hm13.0方法的编码图像,b为改进方法的编码图像;
[0057]
图7为本实施例中一种基于运动与纹理区域检测的hevc视频编码方法的流程图。
具体实施方式
[0058]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0059]
本发明实施例中提供了如图7所示的一种基于运动与纹理区域检测的hevc视频编码方法,包括:
[0060]
第一步、利用边缘检测实现纹理区域的检测:利用sobel算子计算像素的梯度值进而来实现视频图像中的纹理检测,利用hevc编码时产生的运动矢量来检测视频中的运动区域;
[0061]
第二步、利用灰度差实现运动区域的检测:将所检测的图像纹理与运动区域,看做图像的特征,将这两个特征与hevc的编码结合起来,对图像中不同区域的最大编码单元块赋予不同的权重;
[0062]
第三步、基于运动与纹理区域检测的量化编码:利用所检测到的运动与纹理区域,调整hevc视频编码的量化参数,降低背景区域的视频质量。
[0063]
下面将结合实施例来具体说明,如下:
[0064]
1.基于边缘检测的纹理区域检测:
[0065]
人们在观看视频图像时,往往对视频中运动的物体很敏感,人们的注意力很多时候也放在了运动的物体之上。再譬如人眼对纹理复杂的区域有很高的敏感度,而一般视频的主要内容也是集中在这个区域,所以这个区域也可以定义为运动与纹理区域。图1为不同视频序列的一帧图像,a图中的人的头像是运动区域,本人把运动剧烈的区域用黑框给标出来了,同时纹理也比较复杂,这就可以定义为本实施例中提到的运动与纹理区域;b图中的人和马是纹理复杂区域,其他是背景区域。
[0066]
本实施例使用了sobe l算子模板进行边缘检测,sobe l算子模板主要利用了边缘处像素点的相邻的灰度差值的极值来检测,它在提取边缘的时候,利用快速卷积函数进行运算,然后设定阈值,超过阈值的部分即为检测的边缘信息。基于水平边沿的sobe l算子经过快速卷积函数,然后设定某个阈值可以过滤掉绝大部分的噪声。
[0067]
设当前帧的宽度和高度分别为为w和h,当前帧中最大编码单元lcu数目为n,基于sobe l算子的边缘检测的纹理区域检测步骤如下:
[0068]
1)使用sobe l算子统计每个最大编码单元lcu中像素点的梯度f1,如公式1所示。f(i,j)为像素点在(i,j)处的梯度值。同时使用sobe l算子求出当前帧中以最大编码单元lcu为基本单位的平均梯度f2,如公式2:
[0069][0070][0071]
2)可以利用检测到的梯度值定义纹理区域,因为不同的视频图像中纹理区别很大,如果使用同一个阈值就造成检测的不准确,所以为提高本方法的准确性,本实施例利用求得的平均梯度f2作为阈值基准,即:
[0072]
s=qf
2 (3)
[0073]
其中,s为判定为纹理区域时的梯度阈值,q为阈值因子。
[0074]
3)利用每一个最大编码单元lcu中的梯度f1和当前帧中以最大编码单元lcu为基本单位的平均梯度f2,对lcu块定义纹理因子u:
[0075][0076]
4)对纹理区域进行分等级,分成不同的纹理等级g1,将求得的平均梯度f2作为阈值基准,根据不同视频特性来自适应调整不同纹理级的阈值。条件中的q1,q2,q3,q4为阈值因子。当纹理因子u小于阈值q1时,可以将这个区域看作非纹理区域,此区域的纹理变化比较少,本实施例将它的纹理级设置为0;当u大于q4时,这个区域就属于纹理比较丰富的区域,需要用比较多的比特来编码,本实施例设置纹理级为4。当u在q1与q4之间时,区域的纹理级g1随着纹理因子的增大而增大。
[0077]
当0≤u<q1时,g1=0;(5)
[0078]
当q1≤u<q2时,g1=1;(6)
[0079]
当q2≤u<q3时,g1=2;(7)
[0080]
当q3≤u<q4时,g1=3;(8)
[0081]
当q4≤u时,g1=4;(9)。
[0082]
2.利用灰度差实现运动区域的检测
[0083]
在hevc视频编码中,前后两帧具有很高的时间相关性,并且后一帧一般都延续了前一帧中的运动趋势,所以可以用前后两帧的灰度差值来反映两个视频序列的相似度。如果当前帧相对于前一帧是静止的,那么两帧之间的灰度差值会很小,与此相反,如果当前帧相对于前一帧运动很激烈,那么当前帧和前一帧的灰度值差会很大。如果当前帧中只有一部分的区域相对前一帧中运动比较剧烈,那么只是在这个区域中,当前帧和前一帧的灰度差值会很大,相对而言在其他区域的灰度差值则会很小。所以,相邻两帧的灰度差值可以反映一帧图像中的运动区域分布,所以可以利用这个灰度差值来检测运动区域。
[0084]
假定当前帧为视频序列的第n帧,且该帧内有n个最大编码单元lcu块,高度为h,宽度为w,当前帧fn(i,j),前一相邻帧f
n-1
(i,j),那么运动区域检测方法如下所述:
[0085]
1)计算当前最大编码单元lcu的灰度差值k,计算当前帧以lcu为单位的平均灰度差值d,如公式所示:
[0086][0087][0088]
2)设s为判定运动区域时的灰度差值的阈值,因为不同的视频运动剧烈程度差别大,如果使用相同的阈值会造成检测不准确,因为当前帧中所有像素点相对前一帧的运动趋势基本一致,故为提高本方法的准确性,本实施例利用求得的当前帧的以最大编码单元lcu为单位的平均灰度差值d作为阈值基准,式中q为阈值因子;
[0089]
s=qd (12);
[0090]
3)根据最大编码单元lcu的灰度值差k与前一帧的平均灰度值差d来定义lcu块运动因子u:
[0091][0092]
4)对检测的运动块分级,分成不同的运动等级g2,条件中的q1,q2,q3,q4为阈值因子。当运动因子u小于阈值q1时,可以将这个区域看作非运动区域,此区域属于静止区域,在视频帧中变化比较少,本实施例将它的运动级设置为0;当u大于q4时,这个区域就属于运动比较剧烈的区域,需要用比较多的比特来编码,本实施例设置运动级为4。当u在q1与q4之间时,区域的运动级g2随着纹理因子的增大而增大。
[0093]
当0≤u<q1时时,g2=0;(14)
[0094]
当q1≤u<q2时,g2=1;(15)
[0095]
当q2≤u<q3时,g2=2;(16)
[0096]
当q3≤u<q4时,g2=3;(17)
[0097]
当q4≤时,g2=4;(18)。
[0098]
基于运动与纹理区域检测的量化编码
[0099]
在实时性不高的场合,比如电视的播放,视频监控等等,在存储容量以及网络带宽
受限制的情况下,可采用降低码率的方法:对运动与纹理区域不改变原有的视频质量,即不改变原有hevc视频编码的码率分配,对非运动与纹理区域在没有严重失真的情况下,降低视频的质量,也就是降低原有视频的码率分配。
[0100]
在此方法中,主要是结合图像的运动特征和纹理特征来划分出不同等级的区域,给不同等级的区域使用不同的量化参数来量化编码。在2与3节本实施例叙述了基于边缘检测的纹理区域检测以及基于灰度差的运动区域检测,给出了怎么检测出纹理区域与运动区域的方法,最后对纹理区域和运动区域都分了等级,表示此区域的纹理的丰富程度以及此区域运动的激烈程度。对不同权值的最大编码单元lcu根据运动因子级g2和纹理因子级g1来调整计算新的该lcu的量化参数,此时当检测到该lcu是运动与纹理区域时,不改变该lcu的量化参数qp,当检测到是非运动与纹理区域时,增大该lcu的量化参数qp。
[0101]
视频中的每幅图像同时具有纹理特性与运动特性,比如hevc测试序列racehorses中的骏马,骏马相对于周围的草坪,它的纹理是复杂的,它是具有纹理特性的;同时他也是在跑动的,因此它也是具有运动特性的。所以对编码块的量化参数的选择需要把纹理特性和运动特性结合起来。
[0102]
k1,k2是量化参数增量,属于本实施例自定义的值,k1的作用是根据编码块的纹理级别g1的不同来调节量化参数,从而达到码率控制的效果;同理k2的作用是根据编码块的运动级别g2的不同来调节量化参数,从而达到码率控制的效果。根据不同运动与纹理级g1和g2设定不同的调整系数,量化参数qp计算公式为:
[0103]
qp=qp0+k1+k2ꢀꢀ
(19);
[0104]
qp0为原有的参数。
[0105]
在对视频帧观测时,人眼的视觉特性往往使得人眼更关注那些运动比较激烈的目标,而不是纹理比较丰富的区域。因此本实施例在设置参数时,相对于纹理区域,给运动区域赋予了更高的权重。本实施例中对纹理级和运动级设置了相差为1的量化参数增量。本实施例对量化参数增量k1,k2的值设置如表1和2所示,由于本方法主要是对非运动与纹理区域处理,即非运动与纹理区域在没有失真严重的情况下,降低视频的质量,也就是降低原有视频编码中的码率分配;而对运动与纹理区域却不改变原有的视频质量,即不改变原有hevc视频编码标准中的码率分配,这反应在表格上就是当纹理级g1为3和4的时候,也就是处于纹理很丰富的区域时,量化参数增量k1为0,即不改变纹理区域的码率分配;同理,当运动级g2为3和4的时候,也就是处于运动很激烈的区域时,参数增量k2为0,即不改变运动区域的码率分配。反之,当纹理级g1或者运动级g2越来越小的时候,它对应的量化参数增量也会越来越大,反应到最后的量化参数上,就是此区域对应的量化参数会比hm标准方法的量化参数更大,因为此区域是非运动与纹理区域,本方法主要就是通过调节自适应qp的方式来对编码块进行码率的分配。
[0106]
表1纹理级g1与量化参数增量k1的关系
[0107]
纹理级g101234量化参数增量k143200
[0108]
表2运动级g2与量化参数增量k2的关系
[0109]
运动级g201234量化参数增量k232100
[0110]
4.实验结果及分析
[0111]
如图1-图3,将本新方法与hm13.0标准方法进行比较,实验平台为hm13.0测试环境,为体现方法的普遍适用性本实施例采用了6种不同分辨率的标准视频测试序列。测试其中的前30帧,编码单元尺寸为64
×
64、32
×
32、16
×
16和8
×
8等4种。将本实施例方法与hm13.0标准方法进行对比:
[0112]
δp=psnr
1-psnr
hm
ꢀꢀꢀꢀꢀꢀꢀꢀ
(20)
[0113][0114][0115]
δp、δb和δt分别表示新方法与hm13.0标准方法在峰值信噪比、编码码率以及编码时间三项数值上的差值,psnr1和psnr
hm
分别表示新的方法和hm13.0标准方法的psnr,bit1和bit
hm
分别表示新的方法和hm13.0标准方法的编码码率,t1和t
hm
分别表示新的方法和hm13.0标准方法的编码时间。
[0116]
把本实施例方法和未添加本实施例方法的hm13.0做对比,本实施例方法为保证i帧视频质量,保证后续编码的视频质量,只对p帧采用本实施例方法,所以只对比p帧的编码性能。并用主观评价标准衡量视频质量,在qp为27时的实验结果如表3。从表中可以看出采用本实施例方法的实验结果相比标准测试模型hm13.0的实验结果码率平均降低了10.7%,时间平均降低了10.4%,psnr平均降低了0.5db。本实验选取了分辨率从175x144到1920
×
1080的6种hevc标准测试序列。比如对于foreman序列,新方法的峰值信噪比psnr比原方法略微降低0.39,这样图像质量基本上不会变化,但与此同时新方法所带来的优势是它的编码所需比特比原方法降低了7.8%,而编码时间比原方法减少6.5%,而其它的视频序列也达到了类似的效果。由表中可以看出psnr较标准测试模型有一定程度的降低,这是可以预料到的,因为本实施例方法人为降低了非运动与纹理区域的视频质量,必然导致psnr的降低。然而由于人眼对这些区域关注度比较低,对这部分区域的图像的一定程度的失真并不敏感,因此psnr的降低并不会导致主观视频质量变差。
[0117]
表3实验结果比较
[0118]
[0119][0120]
在对blowingbubbles序列编码前20帧时,编码相同的比特数,改进后的方法比hm13标准方法在编码码率相同的情况下,时间减少了12.9%,这是因为本实施例改进的量化编码方法在判断出运动和纹理区域后,对运动和纹理区域没有改变量化编码方式,但对非运动与纹理区域即人眼关注度比较低的区域分配较少的码率,这也会使得编码器在非运动与纹理区域的编码复杂度下降,编码时间也相应的下降。在另外一方面,这会造成非运动与纹理区域的视频客观质量降低,是非运动与纹理区域的psnr下降,但运动与纹理区域的psnr指标并未下降,人眼主观视频质量并未下降,后面的图片也可反应出来。
[0121]
图4、5、6为本实施例方法下不同视频序列的图像主观效果图,可以看出在编码码率降低,psnr稍许下降的情况下,主观视频质量并未降低,这是因为本实施例方法只是降低了非运动与纹理区域的视频质量,运动与纹理区域的视频质量并未降低。
[0122]
本实施例介绍了通过边缘检测技术来检测纹理区域,以及通过灰度值差来检测运动区域。本实施例将视频中的运动区域和纹理区域定义为目标区域,设计了基于hevc的两种目标区域检测方法,分别是利用sobel算子计算像素的梯度值来实现视频图像中的纹理检测以及利用视频序列中当前帧和前一帧的灰度值差来检测运动区域。最后设计了量化编码的方法对非运动与纹理区域减少编码码率,而对运动与纹理区域的编码码率保持不变,实验结果显示改进方法效果很好,新方法视频图像质量基本上不会变化,但与此同时新方法所带来的优势是它的编码所需比特比原方法降低了7.8%,而编码时间比原方法减少6.5%。
[0123]
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种基于运动与纹理区域检测的hevc视频编码方法,其特征在于,包括:利用边缘检测实现纹理区域的检测:利用sobel算子计算像素的梯度值进而来实现视频图像中的纹理检测,利用hevc编码时产生的运动矢量来检测视频中的运动区域;利用灰度差实现运动区域的检测:将所检测的图像纹理与运动区域,看做图像的特征,将这两个特征与hevc的编码结合起来,对图像中不同区域的最大编码单元块赋予不同的权重;基于运动与纹理区域检测的量化编码:利用所检测到的运动与纹理区域,调整hevc视频编码的量化参数,降低背景区域的视频质量。2.根据权利要求1所述的一种基于运动与纹理区域检测的hevc视频编码方法,其特征在于:在利用边缘检测实现纹理区域的检测时,设定当前帧的宽度和高度分别为为w和h,当前帧中最大编码单元lcu数目为n,基于sobel算子的边缘检测的纹理区域检测步骤如下:s1、使用sobel算子统计每个最大编码单元lcu中像素点的梯度f1,如公式1;f(i,j)为像素点在(i,j)处的梯度值,同时使用sobel算子求出当前帧中以最大编码单元lcu为基本单位的平均梯度f2,如公式2;,如公式2;s2、利用检测到的梯度值定义纹理区域,求得的平均梯度f2作为阈值基准,即:s=qf
2 (3)其中,s为判定为纹理区域时的梯度阈值,q为阈值因子;s3、利用每一个最大编码单元lcu中的梯度f1和当前帧中以最大编码单元lcu为基本单位的平均梯度f2,对lcu块定义纹理因子u,公式如下:s4、对纹理区域进行分等级,分成不同的纹理等级g1,将求得的平均梯度f2作为阈值基准,根据不同视频特性来自适应调整不同纹理级的阈值;条件中的q1,q2,q3,q4为阈值因子,当纹理因子u小于阈值q1时,可以将这个区域看作非纹理区域,此区域的纹理变化比较少,将它的纹理级设置为0;当u大于q4时,这个区域就属于纹理比较丰富的区域,需要用比较多的比特来编码,设置纹理级为4;当u在q1与q4之间时,区域的纹理级g1随着纹理因子的增大而增大;当0≤u<q1时,g1=0;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)当q1≤u<q2时,g1=1;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)当q2≤u<q3时,g1=2;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)当q3≤u<q4时,g1=3;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)当q4≤u时,g1=4;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)。3.根据权利要求2所述的一种基于运动与纹理区域检测的hevc视频编码方法,其特征
在于:在利用灰度差实现运动区域的检测时,设定当前帧为视频序列的第n帧,且该帧内有n个最大编码单元lcu块,高度为h,宽度为w,当前帧f
n
(i,j),前一相邻帧f
n-1
(i,j),运动区域检测方法d步骤如下:s1、计算当前最大编码单元lcu的灰度差值k,计算当前帧以lcu为单位的平均灰度差值d,如公式所示:d,如公式所示:s2、设s为判定运动区域时的灰度差值的阈值,因为不同的视频运动剧烈程度差别大,如果使用相同的阈值会造成检测不准确,因为当前帧中所有像素点相对前一帧的运动趋势基本一致,利用求得的当前帧的以最大编码单元lcu为单位的平均灰度差值d作为阈值基准,式中q为阈值因子:s=qd (12);s3、根据最大编码单元lcu的灰度值差k与前一帧的平均灰度值差d来定义lcu块运动因子u:s4、对检测的运动块分级,分成不同的运动等级g2,条件中的q1,q2,q3,q4为阈值因子;当运动因子u小于阈值q1时,可以将这个区域看作非运动区域,此区域属于静止区域,在视频帧中变化比较少,将它的运动级设置为0;当u大于q4时,这个区域就属于运动比较剧烈的区域,需要用比较多的比特来编码,设置运动级为4;当u在q1与q4之间时,区域的运动级g2随着纹理因子的增大而增大;当0≤u<q1时时,g2=0;(14)当q1≤u<q2时,g2=1;(15)当q2≤u<q3时,g2=2;(16)当q3≤u<q4时,g2=3;(17)当q4≤时,g2=4;(18)。4.根据权利要求3所述的一种基于运动与纹理区域检测的hevc视频编码方法,其特征在于:基于运动与纹理区域检测的量化编码时,对不同权值的最大编码单元lcu根据运动因子级g2和纹理因子级g1来调整计算新的该lcu的量化参数qp。5.根据权利要求4所述的一种基于运动与纹理区域检测的hevc视频编码方法,其特征在于:当检测到该lcu是运动与纹理区域时,不改变该lcu的量化参数qp;当检测到是非运动与纹理区域时,增大该lcu的量化参数qp。6.根据权利要求4所述的一种基于运动与纹理区域检测的hevc视频编码方法,其特征在于:根据量化参数qp设定量化参数增量k1,k2;
所述k1的作用是根据编码块的纹理级别g1的不同来调节量化参数,从而达到码率控制的效果;所述k2的作用是根据编码块的运动级别g2的不同来调节量化参数,从而达到码率控制的效果。7.根据权利要求6所述的一种基于运动与纹理区域检测的hevc视频编码方法,其特征在于:根据不同运动与纹理级g1和g2设定不同的调整系数,量化参数qp计算公式为:qp=qp0+k1+k2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(19)。8.根据权利要求7所述的一种基于运动与纹理区域检测的hevc视频编码方法,其特征在于:所述量化参数qp通过调节自适应的方式来对编码块进行码率的分配。9.根据权利要求2所述的一种基于运动与纹理区域检测的hevc视频编码方法,其特征在于:所述sobel算子模板是利用边缘处像素点的相邻的灰度差值的极值来检测,在提取边缘的时候,利用快速卷积函数进行运算,然后设定阈值,超过阈值的部分即为检测的边缘信息。
技术总结
本发明属于HEVC的编码技术领域,公开了一种基于运动与纹理区域检测的HEVC视频编码方法,利用人眼的这种视觉特性,来设计基于运动与纹理区域的检测方法,先利用sobel算子计算像素的梯度值进而来实现视频图像中的纹理检测,在利用所检测的图像纹理与运动区域,都可以看做图像的特征,将这两个特征与HEVC的编码结合起来,研究HEVC的码率控制技术,对图像中不同区域的最大编码单元块赋予不同的权重,设计了不同的比特率的分配方法,从而分配不同的编码比特率,在利用所检测到的运动与纹理区域,在不影响视频主观质量的基础上,调整HEVC视频编码的量化参数,降低背景区域的视频质量,可以有效的提高视频的质量。可以有效的提高视频的质量。可以有效的提高视频的质量。
技术研发人员:熊平 唐顺峰
受保护的技术使用者:无忧创想(武汉)信息技术有限公司
技术研发日:2022.12.02
技术公布日:2023/9/7
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:用电信息处理方法、装置、电子设备和计算机可读介质与流程 下一篇:磁盘装置的制作方法