一种量化参数确定方法、装置及一种视频编码方法、装置与流程

文档序号:33465313发布日期:2023-03-15 06:22阅读:57来源:国知局
一种量化参数确定方法、装置及一种视频编码方法、装置与流程

1.本公开涉及视频编码相关技术领域,具体涉及一种量化参数确定方法、装置及一种视频编码方法、装置。


背景技术:

2.量化参数qp(quantization parameter)是视频编解码中的重要参数。qp值对应量化步长的序号,值越小,量化步长就越小,量化的精度就越高,图片的细节表现程度也就越好,码率也就越高,编码后的文件也就越大。
3.传统视频编解码算法对于所有帧图像都设置固定的qp,但qp设置过大则细节纹理很模糊,qp设置较小则将导致编码后的传输文件过大,最优qp值的确定需要很高的技巧。改进后的方法可以对不同的帧设定不同的qp值以达到相同的码率。但是帧内图像有些区域细节丰富,有些区域细节较少。对帧内图像复杂区域和非复杂区域设定相同qp值的方法将不能凸显复杂区域的细节信息。


技术实现要素:

4.本公开实施例提出了一种量化参数确定方法、一种量化参数确定装置、一种视频编码方法、一种视频编码装置、一种视频文件以及一种视频编码设备以解决现有技术对帧内图像复杂区域和非复杂区域设定相同qp值的从而不能凸显复杂区域细节信息的问题。
5.本公开实施例的第一方面提供了一种量化参数确定方法,包括:
6.将待编码的图像分割成多个区域,其中,每个所述区域由一个编码树单元组成;
7.计算每个所述区域的复杂度分数;
8.基于所述区域的复杂度分数确定所述区域的量化参数,所述量化参数用于对所述区域编码。
9.在一些实施例中,所述编码树单元的大小是64*64。
10.在一些实施例中,所述的计算每个所述区域的复杂度分数包括:
11.确定所述区域的灰度共生矩阵,基于所述灰度共生矩阵计算所述区域的能量、反差、信息熵、同质性和相关度;
12.计算所述区域的边缘比率;
13.基于所述区域的能量、反差、信息熵、同质性、相关度和边缘比率计算所述区域的复杂度分数。
14.在一些实施例中,所述基于所述区域的能量、反差、信息熵、同质性、相关度和边缘比率计算所述区域的复杂度分数包括:
15.复杂度分数=-能量+反差+信息熵+同质性+(1-相关度)+边缘比率。
16.在一些实施例中,所述基于所述区域的复杂度分数确定所述区域的量化参数包括:
17.qp=51-(qpmax-qpmin)/((xmax-xmin)*(score-xmin))+qpmin
18.其中,qp是量化参数,qpmax=51,qpmin=0,score为所述图像的复杂度分数,xmax、xmin分别为对hevctestsequence数据集计算复杂度分数得出的复杂度分数的最大值和最小值。
19.本公开实施例的第二方面提供了一种量化参数确定装置,包括:
20.分割模块,用于将待编码的图像分割成多个区域,其中,每个所述区域由一个编码树单元组成;
21.复杂度分数计算模块,用于计算每个所述区域的复杂度分数;
22.量化参数确定模块,用于基于所述区域的复杂度分数确定所述区域的量化参数,所述量化参数用于对所述区域编码。
23.本公开实施例的第三方面提供了一种视频编码方法,包括:
24.获取视频文件中每一帧待编码的图像,基于本公开实施例第一方面所述的方法确定所述图像中每个区域的量化参数,其中,所述区域由将所述图像分割而成,每个所述区域由一个编码树单元组成;
25.基于所述量化参数对所述区域编码;
26.重复上述步骤直至对所述视频文件中所有待编码的图像的所有区域完成编码。
27.本公开实施例的第四方面提供了一种视频编码装置,包括:
28.确定模块,获取视频文件中每一帧待编码的图像,基于本公开实施例第一方面所述的方法确定所述图像中每个区域的量化参数,其中,所述区域由将所述图像分割而成,每个所述区域由一个编码树单元组成;
29.编码模块,用于基于所述量化参数对所述区域编码;
30.循环模块,用于重复上述步骤直至对所述视频文件中所有待编码的图像的所有区域完成编码。
31.本公开实施例的第五方面提供了一种视频文件,所述视频文件由根据本公开实施例的第三方面所述的视频编码方法对原始视频文件编码而成。
32.本公开实施例的第六方面提供了一种视频编码设备,所述一种视频编码设备包括存储器和处理器,所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现根据本公开实施例的第一方面所述的量化参数确定方法和根据本公开实施例的第三方面所述的视频编码方法。
33.本公开实施例的第七方面提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现根据本公开实施例的第一方面所述的量化参数确定方法和根据本公开实施例的第三方面所述的视频编码方法。
34.本公开实施例的第八方面提供了一种计算机程序产品,包括计算机程序、指令,当所述计算机程序、指令被处理器执行时,实现根据本公开实施例的第一方面所述的量化参数确定方法和根据本公开实施例的第三方面所述的视频编码方法。
35.本公开实施例通过在ctu级别基于ctu的复杂度设定量化参数qp值,因为可以对帧内图像复杂区域和非复杂区域基于ctu的复杂度设定不同的qp值,从而可以提高待编码图像复杂区域的编码质量,更加凸显图片的细节信息。
附图说明
36.通过参考附图会更加清楚的理解本公开的特征和优点,附图是示意性的而不应理解为对本公开进行任何限制,在附图中:
37.图1是根据本公开适用的一种计算机系统的示意图;
38.图2是根据本公开的一些实施例所示的一种视频编码方法的流程图;
39.图3是图2中步骤s202的细化流程图;
40.图4是步骤s202计算复杂度分数的一个实施例的示意图;
41.图5是根据本公开所示方法获得的量化参数与基于其他方法所确定的量化参数对相同视频进行压缩编码的对比试验结果;
42.图6是根据本公开的一些实施例所示的视频编码装置示意图;
43.图7是根据本公开的一些实施例所示的视频编码设备示意图;
具体实施方式
44.在下面的详细描述中,通过示例阐述了本公开的许多具体细节,以便提供对相关披露的透彻理解。然而,对于本领域的普通技术人员来讲,本公开显而易见的可以在没有这些细节的情况下实施。应当理解的是,本公开中使用“系统”、“装置”、“单元”和/或“模块”术语,是用于区分在顺序排列中不同级别的不同部件、元件、部分或组件的一种方法。然而,如果其他表达式可以实现相同的目的,这些术语可以被其他表达式替换。
45.应当理解的是,当设备、单元或模块被称为“在
……
上”、“连接到”或“耦合到”另一设备、单元或模块时,其可以直接在另一设备、单元或模块上,连接或耦合到或与其他设备、单元或模块通信,或者可以存在中间设备、单元或模块,除非上下文明确提示例外情形。例如,本公开所使用的术语“和/或”包括一个或多个相关所列条目的任何一个和所有组合。
46.本公开所用术语仅为了描述特定实施例,而非限制本公开范围。如本公开说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的特征、整体、步骤、操作、元素和/或组件,而该类表述并不构成一个排它性的罗列,其他特征、整体、步骤、操作、元素和/或组件也可以包含在内。
47.参看下面的说明以及附图,本公开的这些或其他特征和特点、操作方法、结构的相关元素的功能、部分的结合以及制造的经济性可以被更好地理解,其中说明和附图形成了说明书的一部分。然而,可以清楚地理解,附图仅用作说明和描述的目的,并不意在限定本公开的保护范围。可以理解的是,附图并非按比例绘制。
48.本公开中使用了多种结构图用来说明根据本公开的实施例的各种变形。应当理解的是,前面或下面的结构并不是用来限定本公开。本公开的保护范围以权利要求为准。
49.图1是本公开适用的一种计算机系统的示意图。图1所示的系统包括待编码的视频文件,视频编码服务器和对视频文件编码形成的视频流。
50.当连续的图像变化每秒超24帧(frame,fps)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面,看上去是平滑连续的视觉效果,这样连续的画面就是视频。每个视频文件由一帧帧的图像组成。
51.由于视频信息十分丰富,所以视频文件一般都数据量巨大,非常不便于分享。例如
1幅640
×
480中分辨度的彩色图像(24bit/像素),其数据量为0.92mb,如果以每秒30帧的速度播放,则视频信号的数码率高达27.6mbps。特别是当通过网络分享时,网络带宽的增加永远无法与视频文件数据量的增加相匹配。解决的方法一是将视频文件以视频流的形式进行传输。所谓视频流,就是一种视频数据信息的传输方式,使用这种方式,用户可以在没有接到完整的数据信息前就能处理那些已接收的信息。这种一边接收,一边处理的方式,很好地解决了视频数据信息在网络上的传输问题。二是为了在一定的带宽条件下完成视频传送,必须压缩视频文件的信息量,容忍一定的视频质量降级。
52.h.264是目前比较主流的压缩算法,像视频会议设备一般都采用这个编码格式。基础的h.264可以支持在1m带宽下传输720p30帧/秒的图像;h.264high profile支持在512k带宽下传输720p30帧/秒的图像。h.265是比较新的压缩算法,可以更一步提高压缩比,h.265支持在384k带宽下传输720p30帧/秒。随着1080p及至4k的普及,我们现在生活中出现的视频格式越来越大,因此,像h.265这样的新压缩算法越来流行。
53.图1所示的视频编码服务器用于对原始视频文件进行压缩,以在尽可能的保留有用信息的前提下压缩视频文件的数据量,从而可以在一定的带宽条件下以视频流的形式完成视频传送。所述视频编码服务器可以是单机、集群或分布式服务器中的任一种。
54.图2是根据本公开的一些实施例所示的一种视频编码方法的流程图。在一些实施例中,所述视频编码方法可以由图1所示的视频编码服务器执行。
55.如图2所示,所述视频编码方法包括以下步骤:
56.s201,获取视频文件中每一帧待编码的图像,将所述图像分割成多个区域,其中,每个所述区域由一个编码树单元(ctu)组成。
57.具体的,视频文件由一帧帧的图像组成,对视频文件压缩编码就是对组成视频文件的帧图像进行压缩编码。h.264中视频编码是基于宏块实现的,对于4:2:0采样格式的视频,每个宏块包含一个16
×
16大小的亮度块和两个8
×
8大小的色度块。考虑到高清视频超高清视频的自身特性,h.265标准中引入了编码树单元ctu,其尺寸由编码器指定,且可大于宏块尺寸。同一位置处的一个亮度ctb和两个色度ctb,再加上相应的语法元素形成一个ctu。在高分辨率视频的编码中,使用较大的ctb可以获得更好的压缩性能。
58.编码树单元是h.265的基本编码单位,编码树单元可向下分成编码单元(coding unit,cu)、预测单元(prediction unit,pu)及转换单元(transform unit,tu)。
59.在本步骤中,视频编码服务器将所述待编码的视频文件中的每帧帧图像分割成多个区域,每个区域由一个编码树单元组成。也就是说,将每帧帧图像分割成多个ctu块,每个ctu块是一个区域。
60.在一些实施例中,所述编码树单元的大小是64*64。
61.s202,计算每个所述区域的复杂度分数
62.s203,基于所述区域的复杂度分数确定所述区域的量化参数qp。
63.具体的,量化参数qp(quantization parameter)是视频编解码中的重要参数。qp值对应量化步长的序号,qp值越小,量化步长就越小,量化的精度就越高,图片的细节表现程度也就越好,码率也就越高,编码后的文件也就越大。
64.图像复杂度还没有公认的定义。但一种主流的定义是图像复杂度是指在一幅给定图像中发现或提取一个真实目标的内在困难程度。因此,对复杂度高的区域,我们必须给与
更小的量化参数qp值,以提高所述区域的编码质量,凸显所述区域更多的细节。
65.我们尝试着将图像复杂度量化以给出复杂度得分。
66.然后,我们根据所述区域的复杂度分数映射到编解码框架中的qp值的设定,复杂度高给与小的qp,复杂度低给与高的qp。
67.在一些实施例中,qp与所述区域复杂度得分的映射关系是:
68.qp=51-(qpmax-qpmin)/((xmax-xmin)*(score-xmin))+qpmin
69.其中,qpmax=51,qpmin=0,score为所述图像的复杂度分数,由步骤s202-3所给出的复杂度分数公式得出。xmax、xmin为使用hevc test sequence数据集(标准编解码框架下的测试数据集)基于s202-3所给出的复杂度分数公式进行测试,统计得出的复杂度最大值和最小值。
70.s204,基于所述量化参数对所述区域编码;
71.在确定所述区域的量化参数qp值后,我们按照h.265标准的通用编码方法对所述区域编码。
72.s205,重复上述步骤直至对所述视频文件中所有待编码的图像的所有区域完成编码。
73.在一些实施例中s202包含如图3所示的具体步骤,如图3所述,所述步骤包括:
74.s202-1:确定所述区域的灰度共生矩阵,基于所述灰度共生矩阵计算所述区域的能量、反差、信息熵、同质性和相关度;
75.具体的,灰度共生矩阵是一种通过研究灰度的空间相关特性来描述纹理的常用方法。当灰度图像灰度级为n时,灰度共生矩阵为n
×
n的矩阵。一般一幅图的灰度级有256级,0-255,但由于计算量大,一般选取4、8、16作为灰度级;每次计算特征值所选用的滑动窗口矩阵大小,可根据需要选择不同大小,如选取5x5或7x7等;计算灰度共生矩阵的方向一般为0
°
,45
°
,90
°
,135
°
四个方向;求出四个方向矩阵的特征值后,可以通过计算四个特征值的平均值作为最终特征值共生矩阵;计算灰度共生矩阵时一般选择步距d=1,即中心像素直接与其相邻像素点做比较运算;
76.通过灰度共生矩阵我们可以得到一系列的图像复杂度评估因子。如:
77.相关度:用来度量图像的灰度级在行或列方向上的相似程度,因此值得大小反应了局部灰度相关度,值越大,相关度也越大。
78.相关度的计算公式是:
[0079][0080]
其中,p为灰度共生矩阵,μ近似等于矩阵p的x,y方向的均值,σ近似等于共生矩阵p的x,y方向方差,具体定义如下:
[0081]
[0082][0083][0084]
信息熵:是图像包含信息量的随机性度量。当共生矩阵中所有值均相等或者像素值表现出最大的随机性时,熵最大;因此熵值表明了图像灰度分布的复杂程度,熵值越大,图像越复杂。
[0085]
entropy=∑i∑jp(i,j)logp(i,j)
[0086]
对比度:灰度共生矩阵主对角线附近的惯性矩,它体现矩阵的值如何分布,反映了图像的清晰度和纹理沟纹的深浅。
[0087]
对比度的计算公式是:
[0088]
cont=∑i∑j|i-j|2p(i,j)
[0089]
能量:能量是灰度共生矩阵各元素的平方和,又被称角二阶距。它是图像纹理灰度变化均一的度量,反映了图像灰度分布均匀程度和纹理粗细程度。
[0090]
能量的计算公式是:
[0091]
energy=∑
i,j
p(i,j)2[0092]
同质性:同质性反应的是图像纹理的同质性,度量图像局部变化的多少,其数值越大则说明图像纹理的不同区域缺少变化,局部非常均匀。
[0093]
同质性的计算公式是:
[0094][0095]
s202-2:计算所述区域的边缘比率;
[0096]
边缘比率反应的是图像中纹理信息对于整张图像的占比大小,度量图像中局部信息的纹理多少,其数值越大则说明图像的区域内存在复杂的信息,局部不均匀。
[0097]
边缘比率的计算公式是:
[0098][0099]
其中b表示经过canny边缘检测后的二值图像,n表示的是输入图像的长宽信息。
[0100]
为了得到边缘比率,我们先用高斯模糊对图片进行去噪处理,在得到光滑图像后,再进行canny边缘检测。
[0101]
高斯模糊本质上是低通滤波器,输出图像的每个像素点是原图像上对应像素点与周围像素点的加权和,从而达到对图片进行平滑处理以去除噪声干扰的效果。
[0102]
canny边缘检测包括如下步骤:
[0103]
首先:利用一阶偏导算子找到图像灰度沿着水平方向gx和垂直方向gy的偏导数,
并且按照下面的式子求出梯度的幅值和方位角。
[0104]
幅值公式:
[0105]
方位角公式:
[0106]
其次:对梯度幅值进行非极大值抑制,找到局部最大值。方法是在3x3的领域窗内,给定像素p与沿着梯度线方向的两个像素相比,如果p的梯度幅值不比这两个像素的梯度幅值大,则令p=0,否则保留原幅值。在这里,我们把梯度方向分为水平方向、垂直方向、和正、-45
°
方向这4种方向来比较梯度幅值的强度。
[0107]
最后:用双阈值算法检测和链接边缘。方法是凡大于高阈值t1的一定是边缘,凡小于低阈值t2的一定不是边缘;如果检测结果既大于低阈值又小于高阈值,则要看这个像素的邻接像素中是否有大于高阈值的边缘像素,如果有,则是边缘,否则不是。
[0108]
s202-3:基于所述区域的能量、反差、信息熵、同质性、相关度和边缘比率计算所述区域的复杂度分数。
[0109]
具体的,在一些实施例中,复杂度分数的计算公式是:
[0110]
复杂度分数=-能量+反差+信息熵+同质性+(1-相关度)+边缘比率。
[0111]
以下通过具体的实施例对s202做进一步地说明。图4示出了本公开计算复杂度分数的一个具体实施例。如图4所示,图4左上部分是待编码的视频文件的一帧图片。所述帧图片经过了以下步骤以计算复杂度分数:
[0112]
1.对所述帧图片灰度化;
[0113]
2.分割:以64*64大小的ctu为基本单位将灰度化的所述帧图片分割成若干区域,每个区域是一个ctu大小;
[0114]
3.选择其中的一个区域;
[0115]
4.计算所选择区域的边缘比率;
[0116]
5.计算所选择区域的共生矩阵;
[0117]
6.基于所选择区域的共生矩阵,计算所选择区域的能量、反差、信息熵、同质性、相关性
[0118]
7.基于所选择区域的能量、反差、信息熵、同质性、相关性和边缘比率,
[0119]
计算所选择区域的复杂度分数。
[0120]
图5是本公开所示方法获得的量化参数与基于其他方法确定的量化参数对相同视频进行压缩编码的对比试验。如图5所示,对skiing和comic两个测试视频,本公开所示出的在ctu级别基于ctu的复杂度计算量化参数qp以对视频文件压缩编码的方法,都可以在获得较大压缩效率的同时获得最好的视频质量,其中vmaf是视频质量评价得分。
[0121]
以上是本公开提供的一种视频编码方法的具体实施方式。
[0122]
图6是根据本公开的一些实施例所示的视频编码装置示意图。如图6所示,所述视频编码装置600包括分割模块610、复杂度分数计算模块620、量化参数确定模块630、编码模块640和循环模块650。所述视频编码的功能可以由图1中的视频编码服务器执行。其中:
[0123]
分割模块610,用于获取视频文件中待编码的帧图像,将所述帧图像分割成多个区
域,其中,每个所述区域由一个编码树单元(ctu)组成;具体参见步骤s201所述。
[0124]
复杂度分数计算模块620,用于计算每个所述区域的复杂度分数,具体参见步骤s202所述。
[0125]
量化参数确定模块630,用于基于所述区域的复杂度分数确定所述区域的量化参数qp,具体参见步骤s202所述。
[0126]
编码模块640,基于所述量化参数对所述区域编码,具体参见步骤s202所述。
[0127]
循环模块650,用于重复上述步骤直至对所述视频文件中所有待编码的帧图像的所有区域完成编码。
[0128]
在一些可选的实施例中,所述复杂度分数计算模块620具体包括:
[0129]
第一计算模块,用于确定所述区域的灰度共生矩阵,基于所述灰度共生矩阵计算所述区域的能量、反差、信息熵、同质性和相关度。
[0130]
第二计算模块,用于计算所述区域的边缘比率。
[0131]
第三计算模块,用于基于所述区域的能量、反差、信息熵、同质性、相关度和边缘比率计算所述区域的复杂度分数。
[0132]
其中,在一些实施例中,所述第一计算模块还可以具体包括:
[0133]
灰度共生矩阵确定子模块,用于确定所述区域的灰度共生矩阵;
[0134]
复杂度参数确定子模块,用于基于所述区域的灰度共生矩阵,确定所述区域的能量、反差、信息熵、同质性和相关度。
[0135]
本技术的一个实施例提供了一种视频文件,所述视频文件由s201-s205所述的视频编码方法对原始视频文件编码而成。
[0136]
本技术的一个实施例提供了一种视频编码装置700,所述视频编码装置包括存储器720和处理器710,所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现s201-s205所述的视频编码方法。
[0137]
本技术的一个实施例提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现s201-s205所述的视频编码方法。
[0138]
本技术的一个实施例提供了一种计算机程序产品,包括计算机程序、指令,当所述计算机程序、指令被处理器执行时,实现s201-s205所述的视频编码方法。
[0139]
综上所述,本技术各实施例提供的视频编码方法、装置、计算机可读存储介质和程序产品以及视频文件,通过在ctu级别基于ctu的复杂度计算量化参数qp并基于此量化参数对视频文件编码,可以提高复杂区域编码质量,更加凸显图片的细节信息,在获得较大压缩效率的同时获得更好的视频质量。
[0140]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述装置实施例中的对应描述,在此不再赘述。
[0141]
尽管此处所述的主题是在结合操作系统和应用程序在计算机系统上的执行而执行的一般上下文中提供的,但本领域技术人员可以认识到,还可结合其他类型的程序模块来执行其他实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。本领域技术人员可以理解,此处所述的本主题可以使用其他计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机等,也可使用在其中任务由通过通信网络连接的
远程处理设备执行的分布式计算环境中。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备的两者中。
[0142]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0143]
应当理解的是,本公开的上述具体实施方式仅仅用于示例性说明或解释本公开的原理,而不构成对本公开的限制。因此,在不偏离本公开的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。此外,本公开所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1