一种编码方法、装置、设备及存储介质与流程

文档序号:31405252发布日期:2022-09-03 06:21阅读:117来源:国知局
一种编码方法、装置、设备及存储介质与流程

1.本发明涉及数据处理技术领域,特别涉及一种编码方法、装置、设备及存储介质。


背景技术:

2.随着信息网络化的不断深入,以多媒体和网络为基础的编码技术逐渐朝着网络化、数字化方向发展。特别是在虚拟桌面基础架构vdi(virtual desktop infrastructure)迅速发展的背景下,对存储空间和传输带宽要求极高,对视频数据进行编码压缩成为了必然之选,而编码质量也成为影响传输带宽的关键因素。
3.vdi通过深度整合服务器虚拟化、桌面虚拟化和存储虚拟化,只需桌面云一体机和云终端两种设备,即可实现云平台的快速交付,简化桌面运维工作量,同时还可以保障信息安全,并实现流畅高效的移动办公。目前的vdi解决方案大多依赖网络环境对编码质量进行调控,然而由于不同的视频帧自身的编码难易程度差异较大,导致对最终的编码质量影响较大,仅仅依赖网络条件控制编码质量不利于节约码流。
4.因此,如何提供一种考虑视频帧自身特征的编码方法以提高编码质量并节约码流是本领域技术人员亟待解决的技术问题。


技术实现要素:

5.有鉴于此,本发明的目的在于提供一种编码方法、装置、设备及存储介质,能够使得编码后的当前视帧网络带宽消耗小,达到显著节约码流的效果。其具体方案如下:
6.本技术的第一方面提供了一种编码方法,包括:
7.获取历史视频帧的编码质量数据及当前视频帧的画面属性数据;其中,所述画面属性数据反映视频帧的纹理特征;
8.基于所述编码质量数据和所述画面属性数据确定编码控制参数,以利用所述编码控制参数对所述当前视频帧的编码质量进行调控;其中,所述编码控制参数的值与编码质量负相关。
9.可选的,所述获取历史视频帧的编码质量数据及当前视频帧的画面属性数据,包括:
10.获取所述历史视频帧的信源图像的第一模糊度、所述历史视频帧的重构图像的第二模糊度、平均主观意见分、所述历史视频帧的重构图像中具有块效应的宏块数量中的至少一个,以得到所述编码质量数据;
11.获取所述当前视频帧的信源图像的第三模糊度,以得到所述当前视频帧的所述画面属性数据。
12.可选的,所述获取历史视频帧的编码质量数据及当前视频帧的画面属性数据,包括:
13.获取所述历史视频帧的信源图像的第一模糊度、所述历史视频帧的重构图像的第二模糊度、平均主观意见分,及所述当前视频帧的信源图像的第三模糊度;
14.相应的,所述基于所述编码质量数据和所述画面属性数据确定编码控制参数,包括:
15.利用所述第三模糊度计算得到第一码率并利用所述第一模糊度和所述第二模糊度计算得到第二码率;其中,所述第一码率与所述第三模糊度负相关,所述第二码率与所述第二模糊度和所述第一模糊度的比值正相关;
16.根据所述第一码率、所述第二码率及所述平均主观意见分确定出比特分配因子,以通过所述比特分配因子得到所述编码控制参数。
17.可选的,所述基于所述编码质量数据和所述画面属性数据确定编码控制参数,包括:
18.判断所述编码质量数据是否满足第一预设条件且所述画面属性是否满足第二预设条件,如果是,则将所述编码控制参数设置为小于第一阈值的值。
19.可选的,所述编码方法,还包括:
20.根据当前网络状况确定网络控制参数;其中,所述网络控制参数的值与编码质量负相关;
21.将所述网络控制参数和所述编码控制参数中参数值大的参数确定为最终控制参数,以利用最终控制参数对所述当前视频帧的编码质量进行调控。
22.可选的,所述基于所述编码质量数据和所述画面属性数据确定编码控制参数之前,还包括:
23.判断所述当前视频帧的信源图像是否满足编码优化条件,如果否,则直接利用所述网络控制参数对所述当前视频帧的编码质量进行调控。
24.可选的,所述判断所述当前视频帧的信源图像是否满足编码优化条件,包括:
25.获取所述历史视频帧的信源图像与重构图像之间的结构相似性指标值、所述当前视频帧的信源图像的第三模糊度、所述历史视频帧的重构图像中具有块效应的宏块占比;
26.判断所述结构相似性指标值、所述第三模糊度、所述宏块占比是否均满足第三预设条件,如果否,则判定所述当前视频帧的信源图像不满足编码优化条件。
27.可选的,所述编码方法,还包括:
28.根据目标需求配置调控等级,其中,所述调控等级反映控制参数的映射程度;
29.如果所述调控等级为第一等级,则直接利用所述网络控制参数对所述当前视频帧的编码质量进行调控;
30.如果所述调控等级为第二等级,则执行利用最终控制参数对所述当前视频帧的编码质量进行调控的步骤。
31.可选的,所述历史视频帧为所述当前视频帧的前一视频帧,所述前一视频帧的所述编码质量数据通过固定窗口的方式每隔预设帧数对编码质量数据更新一次得到。
32.可选的,通过固定窗口的方式每隔预设帧数对编码质量数据更新一次,包括:
33.通过固定窗口的方式每隔第一预设帧数对具有块效应的宏块数量更新一次,并通过固定窗口的方式每隔第二预设帧数对除具有块效应的宏块数量之外的所述编码质量数据更新一次;其中,所述第一预设帧数小于所述第二预设帧数。
34.本技术的第二方面提供了一种编码装置,包括:
35.数据获取模块,用于获取历史视频帧的编码质量数据及当前视频帧的画面属性数
据;其中,所述画面属性数据反映视频帧的纹理特征;
36.确定调控模块,用于基于所述编码质量数据和所述画面属性数据确定编码控制参数,以利用所述编码控制参数对所述当前视频帧的编码质量进行调控;其中,所述编码控制参数的值与编码质量负相关。
37.本技术的第三方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述编码方法。
38.本技术的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述编码方法。
39.本技术中,先获取历史视频帧的编码质量数据及当前视频帧的画面属性数据;其中,所述画面属性数据反映视频帧的纹理特征;然后基于所述编码质量数据和所述画面属性数据确定编码控制参数,以利用所述编码控制参数对所述当前视频帧的编码质量进行调控;其中,所述编码控制参数的值与编码质量负相关。可见,本技术在以历史视频帧的编码质量为考虑因素的情况下,同时也以反映当前视频帧的纹理特征的画面属性为考虑因素,综合确定出对应的编码控制参数,该编码控制参数用来调控与其值呈负相关关系的当前视频帧的编码质量,使得编码后的当前视帧网络带宽消耗小,达到显著节约码流的效果。
附图说明
40.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
41.图1为本技术提供的一种编码方法流程图;
42.图2为本技术提供的一种码流导向的编码方法流程图;
43.图3为本技术提供的一种画质导向的编码方法流程图;
44.图4为本技术提供的一种用户需求导向的编码方法流程图;
45.图5为本技术提供的一种第一等级的编码效果图;
46.图6为本技术提供的一种第二等级的编码效果图;
47.图7为本技术提供的一种资源导向的编码方法流程图;
48.图8为本技术提供的一种柔性带宽下的全屏视频编码的框架图;
49.图9为现有技术中的柔性带宽下的全屏视频编码的框架图;
50.图10为本技术提供的一种编码装置结构示意图;
51.图11为本技术提供的一种编码电子设备结构图。
具体实施方式
52.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
53.现有的vdi解决方案大多依赖网络环境对编码质量进行调控,然而由于不同的视频帧自身的编码难易程度差异较大,导致对最终的编码质量影响较大,仅仅依赖网络条件控制编码质量不利于节约码流。针对上述技术缺陷,本技术提供一种编码方案,能够使得编码后的当前视帧网络带宽消耗小,达到显著节约码流的效果。
54.图1为本技术实施例提供的一种编码方法流程图。参见图1所示,该编码方法包括:
55.s11:获取历史视频帧的编码质量数据及当前视频帧的画面属性数据;其中,所述画面属性数据反映视频帧的纹理特征。
56.本实施例中,重点在于获取历史视频帧的编码质量数据及当前视频帧的画面属性数据。历史视频帧的所述编码质量数据通过历史视频帧的编码结果进行体现,当前视频帧的所述画面属性数据反映的是当前视频帧的纹理特征。历史视频帧的所述编码质量数据和当前视频帧的所述画面属性数据的综合能够表征当前视频帧的编码难易程度。
57.可以理解,历史视频帧的所述编码质量数据对当前视频帧的编码质量的调控属于帧间影响因素,当前画面帧自身的所述画面属性数据对当前视频帧的编码质量的调控属于帧内影响因素。针对前者,鉴于视频帧存在时域上的冗余,如果之前的历史视频帧的编码结果非常好,则可以近似认为当前视频帧的编码结果也很好,即便少分配比特,也可以获得较好的编码结果。反之则必须多分配比特,才能获得较好的编码结果。针对后者,鉴于编码质量与图像自身特征紧密相关,例如图像纹理细节越清晰,编码时需要多分配一些比特,才能保证比较高的视频质量,图像纹理细节越平坦,编码时便可少分配一些比特,对编码质量影响也不大。
58.本实施例中,历史视频帧的所述编码质量数据主要基于模糊度、块效应等指标。获取历史视频帧的所述编码质量数据具体过程为:获取所述历史视频帧的信源图像的第一模糊度、所述历史视频帧的重构图像的第二模糊度、平均主观意见分、所述历史视频帧的重构图像中具有块效应的宏块数量中的至少一个,以得到所述编码质量数据。基于此,本实施例获取当前视频帧的画面属性数据的具体过程为:获取所述当前视频帧的信源图像的第三模糊度。不难理解,信源图像是未进行编码处理的图像,重构图像是经过编码重构后的图像。不同的所述编码质量数据可以通过不同算法计算得到,本实施例对此不进行限定。例如,关于模糊度(第一模糊度、第二模糊度、第三模糊度)的算法模型包括blur模型、blur*模型、dt_blur模型;关于块效应的算法模型包括blocknum模型、blockrate模型。
59.既有的blur模型,一般用于计算图像y分量阶跃变化(阶跃变化边界由sobel算子计算得出)时的像素距离均值,其物理意义在于统计平坦区域的连续像素宽度,一般用于描述图像本身具有的模糊强度(值越大越模糊)。然而,blur模型在阈值分割的过程中,突变阈值是固定的,对于亮度比较暗的图像来说,更不容易触发边界条件。最终造成对于图像是否模糊的判断不准确。为了兼顾亮度较暗的图像,本实施例采用blur*模型替换blur模型,动态地根据图像内容设置突变阈值(例如设置为亮度最大值的1/5),结果显示blur*算法能够更准确的判断图像是否模糊。
60.另外,blocknum模型根据重构图像y分量,计算图像中因为编码造成的影响主观质量的具有块效应的宏块的数量,具体的计算方法为:寻找块内高频分量较小,块间有阈值范围内的阶跃且成片出现的块的数量,并根据其所在屏幕空间的坐标给予不同权重得到的
和。出现较大值表示影响主观的具有块效应的块较多,应投入更多比特。分析发现,用户很难容忍带有明显块效应的视频图像。因此,准确地衡量编码视频帧的块效应,及时地对将会产生块效应的视频帧的编码质量进行调控,能够在节省码流的同时,保证视频质量。
61.s12:基于所述编码质量数据和所述画面属性数据确定编码控制参数,以利用所述编码控制参数对所述当前视频帧的编码质量进行调控;其中,所述编码控制参数的值与编码质量负相关。
62.本实施例中,在得到历史视频帧的所述编码质量数据及当前视频帧的所述画面属性数据之后,基于所述编码质量数据和所述画面属性数据确定编码控制参数,以利用所述编码控制参数对所述当前视频帧的编码质量进行调控。进一步的,判断所述编码质量数据是否满足第一预设条件且所述画面属性是否满足第二预设条件,如果是,则将所述编码控制参数设置为小于第一阈值的值。其中,所述编码控制参数可以为量化参数qp(quantization parameter),量化参数qp是一个在视频图像编码过程中用于控制量化步长和编码质量的关键参数。所述编码控制参数对应的量化参数表示为qp1,另外,所述编码控制参数的值与编码质量负相关,也即所述编码控制参数的qp1越小,编码质量越好。因此,可以根据历史视频帧的所述编码质量数据及当前视频帧的所述画面属性数据确定出合适的qp1,如果历史视频帧的所述编码质量数据及当前视频帧的所述画面属性数据表征当前视频帧编码较困难,那么可以适当调低qp1,再通过qp1调控编码质量时使得编码质量较好。
63.为了能够细粒度的评估视频编码质量,本实施例构建比特分配因子来确定所述编码控制参数,为此,步骤s11获取到的数据包括:所述历史视频帧的信源图像的第一模糊度、所述历史视频帧的重构图像的第二模糊度、平均主观意见分,及所述当前视频帧的信源图像的第三模糊度。在此基础上,一方面利用所述第三模糊度计算得到第一码率,另一方面利用所述第一模糊度和所述第二模糊度计算得到第二码率。其中,所述第一码率与所述第三模糊度负相关,所述第二码率与所述第二模糊度和所述第一模糊度的比值正相关。
64.本实施例中,为了将blur与码率关联起来,构建了blur倍率模型(alpha)和blur比值模型(beta)。其中,所述第一码率根据blur倍率模型得出。blur倍率模型是根据当前视频帧的信源图像y分量计算的blur*,称为blurin。blurin的值越接近0,则图像纹理细节越清晰,编码消耗的比特数越多,blurin的值越大,则图像纹理细节越粗糙。例如,blurin大于20时,编码消耗的比特数即使折半视觉仍可接受。公式表示为:
65.alpha=k*ln(blurin)+m
66.其中,k为模型参数,m为常数。alpha从信源图像模糊度的角度,刻画了当前视频帧的编码过程中应当投入的码率情况(编码前判断)。
67.所述第二码率根据blur比值模型得出,根据历史视频帧的信源图像y分量计算的blur*,称为blurin’;根据历史视频帧的重构图像y分量计算的blur*,称为blurout。blurout/blurin’描述的是编码造成的图像模糊的程度,当编码造成的重构图像过于模糊时,下一次编码需要投入更多比特,当重构图像模糊程度较小时可以投入更少比特。公式表示为:
68.beta=(k-blurout/blurin')/10
69.其中,k为经验常数。beta从重构图像模糊度的角度,刻画了编码造成的模糊与码率之间的关系(编码后判断)。
70.另外,所述平均主观意见分基于客观质量高阶模型(gama)得到。gama是一种联合psnr(peak signal to noise ratio,峰值信噪比)和ssim(structural similarity,结构相似性)的图像质量评价模型,是用psnr与ssim建立二次多项式拟合mos(主观质量可用平均意见分)的结果。公式表示为:
71.gama=p5*ssim2+p4*psnr2+p3*ssim*psnr+p2*ssim+p1*psnr+p0
72.gama值越大表明图像质量越好,应该使用更多的比特,gama构建起了客观视频质量和主观视频质量的关系。
73.最后根据所述第一码率、所述第二码率及所述平均主观意见分确定出比特分配因子,以通过所述比特分配因子得到所述编码控制参数。具体根据预先构建的比特率决策模型(factor)确定所述比特分配因子。也即联合alpha、beta、gama,就能得到比特率决策模型factor。其中,alpha表示基准比例,beta表示增量比例,gama表示修正比例。当factor较大时,应分配更多比特给该帧以保障主观质量,反之可分配较少的比特。公式表示为:
74.factor=(alpha+beta)*gama
75.可见,本技术实施例先获取历史视频帧的编码质量数据及当前视频帧的画面属性数据;其中,所述画面属性数据反映视频帧的纹理特征;然后基于所述编码质量数据和所述画面属性数据确定编码控制参数,以利用所述编码控制参数对所述当前视频帧的编码质量进行调控;其中,所述编码控制参数的值与编码质量负相关。本技术实施例在以历史视频帧的编码质量为考虑因素的情况下,同时也以反映当前视频帧的纹理特征的画面属性为考虑因素,综合确定出对应的编码控制参数,该编码控制参数用来调控与其值呈负相关关系的当前视频帧的编码质量,使得编码后的当前视帧网络带宽消耗小,达到显著节约码流的效果。
76.图2为本技术实施例提供的一种码流导向的编码方法流程图。参见图2所示,该编码方法包括:
77.s21:获取历史视频帧的编码质量数据及当前视频帧的画面属性数据;其中,所述画面属性数据反映视频帧的纹理特征。
78.s22:基于所述编码质量数据和所述画面属性数据确定编码控制参数;其中,所述编码控制参数的值与编码质量负相关。
79.本实施例中,关于上述步骤s21和步骤s22的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
80.s23:根据当前网络状况确定网络控制参数;其中,所述网络控制参数的值与编码质量负相关。
81.本实施例中,最终对当前视频帧的编码质量进行调控的控制参数除了参考所述编码控制参数,还需要参考网络环境,也即还需根据当前网络状况确定出所述网络控制参数。同样的,所述网络控制参数也可以为量化参数qp,所述网络控制参数对应的量化参数表示为qp2。与所述编码控制参数基于视频帧自身的编码难易程度确定出的相比,所述网络控制参数是基于网络状况确定出的合适的量化参数qp2。所述网络控制参数的值与编码质量负相关,也即,所述网络控制参数的qp2的值越大则当前视频帧的编码质量越差。
82.s24:将所述网络控制参数和所述编码控制参数中参数值大的参数确定为最终控制参数,以利用最终控制参数对所述当前视频帧的编码质量进行调控。
83.本实施例中,在得到所述编码控制参数和所述网络控制参数之后,将所述网络控制参数和所述编码控制参数中参数值大的参数确定为最终控制参数,以利用最终控制参数对所述当前视频帧的编码质量进行调控。也即根据qp1和qp2确定出的所述最终控制参数为:max(qp1,qp2)。当qp1大于qp2时,说明网络状况良好,可以通过配置qp1,在保证视频质量的情况下,降低码流。当qp1小于qp2时,说明网络状况较差,网络带宽已经无法保证提供良好的视频质量。此时配置qp2,能够降低网络带宽压力,服从系统对网络的调整。上述过程为码流导向的qp决策。
84.可见,本技术实施例在基于历史视频帧的编码质量数据和当前视频帧的画面属性数据确定出编码控制参数的基础上,再进一步根据当前网络状况确定出网络控制参数,然后根据网络控制参数和编码控制参数之间的大小关系决策出一个最终控制参数。上述码流导向的qp决策能够综合考量网络状况和视频帧编码难易程度,在保证视频质量的同时降低码流。
85.图3为本技术实施例提供的一种画质导向的编码方法流程图。参见图3所示,该编码方法包括:
86.s31:根据当前网络状况确定网络控制参数;其中,所述网络控制参数的值与编码质量负相关。
87.本实施例中,关于上述步骤s31的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
88.s32:获取历史视频帧的信源图像与重构图像之间的结构相似性指标值、当前视频帧的重构图像的第三模糊度、所述历史视频帧的重构图像中具有块效应的宏块占比。
89.s33:判断所述结构相似性指标值、所述第三模糊度、所述宏块占比是否均满足第三预设条件,如果否,则判定所述当前视频帧的信源图像不满足编码优化条件。
90.s34:如果是,则直接利用所述网络控制参数对所述当前视频帧的编码质量进行调控。
91.本实施例中,步骤s32和步骤s33旨在判断所述当前视频帧的信源图像是否满足编码优化条件。对于某些视频帧的信源图像,正好处于清晰和模糊边缘,qp1的稍微调整就会造成画面的模糊和色块,对于这种模糊图像,不通过qp1进行优化,直接使用系统网络给出的qp2进行画质调控。因此,需要从模糊度层面判断一下当前视频帧是否能够通过qp1调控画质,如果否,则直接利用所述网络控制参数对所述当前视频帧的编码质量进行调控。
92.具体的,先获取所述历史视频帧的信源图像与重构图像之间的结构相似性指标值、所述当前视频帧的信源图像的第三模糊度、所述历史视频帧的重构图像中具有块效应的宏块占比。然后判断所述结构相似性指标值、所述第二模糊度、所述宏块占比是否均满足第三预设条件,如果否,则判定所述当前视频帧的信源图像不满足编码优化条件。也即主要使用的指标有ssim、模糊度和块效应。
93.本实施例中,所述第三模糊度通过dt_blur模型计算,块效应通过blockrate模型计算。所述第三模糊度的值用dt_blur表示,具有块效应的宏块占比用blockrate表示。其中,dt_blur与所述当前视频帧的信源图像的y分量有关,计算方法与blur类似,采用一阶梯度算子计算得出图像梯度,取图像梯度的平均值,运算比blur快,其物理意义在于描述图像本身具有的模糊强度(值越小越模糊)。blockrate与blocknum相关,表示视频帧中具有块效
应的块的比例,公式表示为:
94.blockrate=blocknum/totalblock
95.其中,totalblock=(width/16-1)*(height/16-1),表示宏块的总数量,width、height表示图像的宽度、高度。
96.在此基础上,通过设置ssim、dt_blur、blockrate的阈值来识别模糊图像,对于识别出是模糊图像的,也即满足所述第三预设条件的图像(与阈值比较的结果)直接使用qp2,避免画面出现明显的色块。
97.可见,本技术实施例通过获取历史视频帧的信源图像与重构图像之间的结构相似性指标值、当前视频帧的信源图像的第三模糊度、所述历史视频帧的重构图像中具有块效应的宏块占比等指标来判定当前视频帧的信源图像是否满足编码优化条件,在不满足编码优化条件的情况下直接利用网络控制参数对当前视频帧的编码质量进行调控。上述画质导向的模糊图像处理决策能够对信源图像进行了区分,对于模糊图像,直接使用系统网络给出的网络控制参数进行编码质量调控,避免画面出现明显的色块。
98.图4为本技术实施例提供的一种用户需求导向的编码方法流程图。参见图4所示,该编码方法包括:
99.s41:获取历史视频帧的编码质量数据及当前视频帧的画面属性数据;其中,所述画面属性数据反映视频帧的纹理特征。
100.s42:基于所述编码质量数据和所述画面属性数据确定编码控制参数;其中,所述编码控制参数的值与编码质量负相关。
101.s43:根据当前网络状况确定网络控制参数;其中,所述网络控制参数的值与编码质量负相关。
102.s44:将所述网络控制参数和所述编码控制参数中参数值大的参数确定为最终控制参数。
103.本实施例中,关于上述步骤s41至步骤s44的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
104.s45:根据目标需求配置调控等级,其中,所述调控等级反映控制参数的映射程度。
105.s46:如果所述调控等级为第一等级,则直接利用所述网络控制参数对所述当前视频帧的编码质量进行调控。
106.s47:如果所述调控等级为第二等级,则执行利用最终控制参数对所述当前视频帧的编码质量进行调控的步骤。
107.本实施例中,考虑到不同用户对模糊的定义和忍受程度不同,为了兼顾不同用户的视觉体验,有必要按需进行调节。具体通过根据目标需求配置调控等级,其中,所述调控等级反映控制参数的映射程度。也即调控等级越高,qp的调节力度越大,码流节省效果也会越明显。如果所述调控等级为第一等级,则直接利用所述网络控制参数对所述当前视频帧的编码质量进行调控,如果所述调控等级为第二等级,则执行利用最终控制参数对所述当前视频帧的编码质量进行调控的步骤。当用户设置的调控等级为第一等级时,关闭qp1优化调节方案,完全按照系统给出的qp2进行编码调控。当用户设置的调控等级为第二等级时,启动qp1和qp2综合的码流优化方法,本实施例中的第一等级和第二等级仅是一种示例,还可以在第二等级之上设置比第二等级更高的等级来增加调节力度。
108.图5和图6所示分别为win10系统中第一等级和第二等级的编码效果,与优化前相比,图6中在四个视频负载上能够分别节约码流37.7%、23.6%、18.8%、26.9%(平均值26.7%),实测平均cpu利用率上升1.7%。另外,为了更好的保证画质,图5中码流节省略低于lv2,并且根据视频特性的差异,码流节省也各不相同。在画质方面,与优化前相比,图6中无参考图像质量评价指标niqe(越小越好)仅有小数级别的差异,没有明显区别。
109.可见,本技术实施例在确定出编码控制参数和网络控制参数的基础上,考虑到不同用户对模糊的定义和忍受程度不同,另外增加了根据目标需求配置调控等级的步骤,第一等级下直接利用网络控制参数对当前视频帧的编码质量进行调控。第二等级下则利用由编码控制参数和网络控制参数得到的最终控制参数对当前视频帧的编码质量进行调控。上述用户需求导向的等级设置决策能够兼顾不同用户的视觉体验,具有较好的用户体验感。
110.图7为本技术实施例提供的一种资源导向的编码方法流程图,参见图7所示,该编码方法包括:
111.s51:获取历史视频帧的编码质量数据及当前视频帧的画面属性数据;其中,所述画面属性数据反映视频帧的纹理特征。
112.s52:基于所述编码质量数据和所述画面属性数据确定编码控制参数,以利用所述编码控制参数对所述当前视频帧的编码质量进行调控;其中,所述编码控制参数的值与编码质量负相关。
113.本实施例中,关于上述步骤s51和步骤s52的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。需要补充说明的是,本实施例中,所述历史视频帧为所述当前视频帧的前一视频帧。当所述历史视频帧为所述当前视频帧的前一视频帧时,在对当前视频帧进行编码之后,还需要对其编码质量数据进行更新,所述前一视频帧的所述编码质量数据具体通过固定窗口的方式每隔预设帧数对编码质量数据更新一次得到。具体如下步骤所述。
114.s53:通过固定窗口的方式每隔第一预设帧数对具有块效应的宏块数量更新一次,并通过固定窗口的方式每隔第二预设帧数对除具有块效应的宏块数量之外的所述编码质量数据更新一次;其中,所述第一预设帧数小于所述第二预设帧数。
115.本实施例中,每帧计算编码质量数据,虽然能够及时对编码状况进行响应,但是会带来计算量的显著上升和cpu利用率的增加。为了优化性能、降低计算开销,基于视频帧之间的时间局部性,每隔若干帧(例如10帧)更新一次所有编码质量数据,进而显著降低系统整体的计算复杂度。具体的,在对当前视频帧进行编码之后,一方面通过固定窗口的方式每隔第一预设帧数对具有块效应的宏块数量更新一次,另一方面通过固定窗口的方式每隔第二预设帧数对除具有块效应的宏块数量之外的所述编码质量数据更新一次。
116.该步骤中,所述第一预设帧数小于所述第二预设帧数。考虑到以固定窗口的方式每隔若干帧更新一次数据,不利于及时的对突发情况做出响应。通过分析发现突发情况造成画质变差的原因往往是由于某些图像容易出现块效应造成的。本实施例增加了能够反映图像块效应的指标的更新频率(例如5帧一次),并即刻生效。上述过程能够在保证画质的同时,及时对异常情况做出响应。
117.可见,本技术实施例考虑到如果将所有计算都集中到同一帧,虽然能够准确的反映前一帧的编码情况,但是不能反映最近一段时间的编码状况的变化,而且对于当前帧而
言,容易造成长尾延时和画面卡顿。为了解决这个问题,本实施例通过固定窗口的方式每隔第一预设帧数对具有块效应的宏块数量更新一次,并通过固定窗口的方式每隔第二预设帧数对除具有块效应的宏块数量之外的所述编码质量数据更新一次。将这些数据的计算合理地均衡到多张视频帧中,不仅能够反映编码状况的变化,而且避免了长尾延时造成画面的卡顿。
118.下面以在vdi系统上全屏播放高清1080p视频的应用场景为例,对本技术中的技术方案进行说明,具体框架如图8所示。
119.全屏播放高清的1080p视频需要消耗巨大的流量和网络带宽。然而,在广域网环境中,激烈的带宽竞争往往使得用户带宽资源捉襟见肘,导致vdi系统上全屏播放高清1080p视频面临巨大挑战。如图9所示,为了能够充分利用网络带宽,大多数vdi产品中帧控质控策略通常仅仅根据网络状态动态地设定qp,之后利用视频图像编码模块,对信源视频帧进行编码。然而,这种帧控质控策略忽略了视频编码特征对码流的影响,不利于节约码流和网络带宽。
120.对比来说,本技术的柔性带宽下的全屏视频编码的框架如图8所示,主要增加了qp调控和编码质量评估两个关键步骤。其中,编码质量评估模块用于在编码完成后,对编码的视频帧质量进行细粒度评估(包括信源图像模糊度、重构图像块效应、编码造成的图像模糊、编码图像质量、编码比特分配等),为后续编码优化提供充足的数据支撑,避免编码造成明显的画质下降。当编码后续视频帧时,qp控制器根据之前视频帧的内容、编码质量结合当前视频帧的编码难易程度,计算编码当前视频帧最为合适的编码控制参数qp1。最后,结合编码控制参数qp1和网络控制参数qp2进行qp抉择,选出系统当前网络状态下最合适的qp。由此可见,考虑到视频帧之间有很强的时间局部性,为了能够提高vdi产品在网络较差环境中的带宽竞争力,同时节约带宽成本,本技术的柔性带宽下的全屏视频编码方法在保证主观质量可接受的前提下,显著降低全屏播放高清1080p视频的码流和带宽需求,从而提升用户的视频体验。
121.参见图10所示,本技术实施例还相应公开了一种编码装置,包括:
122.数据获取模块11,用于获取历史视频帧的编码质量数据及当前视频帧的画面属性数据;其中,所述画面属性数据反映视频帧的纹理特征;
123.确定调控模块12,用于基于所述编码质量数据和所述画面属性数据确定编码控制参数,以利用所述编码控制参数对所述当前视频帧的编码质量进行调控;其中,所述编码控制参数的值与编码质量负相关。
124.可见,本技术实施例先获取历史视频帧的编码质量数据及当前视频帧的画面属性数据;其中,所述画面属性数据反映视频帧的纹理特征;然后基于所述编码质量数据和所述画面属性数据确定编码控制参数,以利用所述编码控制参数对所述当前视频帧的编码质量进行调控;其中,所述编码控制参数的值与编码质量负相关。本技术实施例在以历史视频帧的编码质量为考虑因素的情况下,同时也以反映当前视频帧的纹理特征的画面属性为考虑因素,综合确定出对应的编码控制参数,该编码控制参数用来调控与其值呈负相关关系的当前视频帧的编码质量,使得编码后的当前视帧网络带宽消耗小,达到显著节约码流的效果。
125.在一些具体实施例中,所述数据获取模块11,具体包括:
126.第一数据获取单元,用于获取所述历史视频帧的信源图像的第一模糊度、所述历史视频帧的重构图像的第二模糊度、平均主观意见分、所述历史视频帧的重构图像中具有块效应的宏块数量中的至少一个,以得到所述编码质量数据;
127.第二数据获取单元,用于获取所述当前视频帧的信源图像的第三模糊度,以得到所述当前视频帧的所述画面属性数据。
128.在一些具体实施例中,所述确定调控模块12,具体包括:
129.第一确定单元,用于判断所述编码质量数据是否满足第一预设条件且所述画面属性是否满足第二预设条件,如果是,则将所述编码控制参数设置为小于第一阈值的值;
130.第二确定单元,用于利用所述第三模糊度计算得到第一码率并利用所述第一模糊度和所述第二模糊度计算得到第二码率;其中,所述第一码率与所述第三模糊度负相关,所述第二码率与所述第二模糊度和所述第一模糊度的比值正相关;以及根据所述第一码率、所述第二码率及所述平均主观意见分确定出比特分配因子,以通过所述比特分配因子得到所述编码控制参数。
131.在一些具体实施例中,所述编码装置还包括:
132.判断调控模块,用于判断所述当前视频帧的信源图像是否满足编码优化条件,如果否,则直接利用所述网络控制参数对所述当前视频帧的编码质量进行调控;
133.网络确定模块,用于根据当前网络状况确定网络控制参数;其中,所述网络控制参数的值与编码质量负相关;
134.比较调控模块,用于将所述网络控制参数和所述编码控制参数中参数值大的参数确定为最终控制参数,以利用最终控制参数对所述当前视频帧的编码质量进行调控。
135.在一些具体实施例中,所述判断调控模块,具体包括:
136.获取单元,用于获取所述历史视频帧的信源图像与重构图像之间的结构相似性指标值、所述当前视频帧的信源图像的第三模糊度、所述历史视频帧的重构图像中具有块效应的宏块占比。
137.判断单元,用于判断所述结构相似性指标值、所述第三模糊度、所述宏块占比是否均满足第三预设条件,如果否,则判定所述当前视频帧的信源图像不满足编码优化条件。
138.在一些具体实施例中,所述编码装置还包括:
139.配置模块,用于根据目标需求配置调控等级,其中,所述调控等级反映控制参数的映射程度;
140.第一等级调控模块,用于如果所述调控等级为第一等级,则直接利用所述网络控制参数对所述当前视频帧的编码质量进行调控;
141.第二等级调控模块,用于如果所述调控等级为第二等级,则执行利用最终控制参数对所述当前视频帧的编码质量进行调控的步骤。
142.在一些具体实施例中,当所述历史视频帧为所述当前视频帧的前一视频帧,所述前一视频帧的所述编码质量数据通过固定窗口的方式每隔预设帧数对编码质量数据更新一次得到,所述编码装置还包括:
143.更新模块,用于通过固定窗口的方式每隔第一预设帧数对具有块效应的宏块数量更新一次,并通过固定窗口的方式每隔第二预设帧数对除具有块效应的宏块数量之外的所述编码质量数据更新一次;其中,所述第一预设帧数小于所述第二预设帧数。
144.进一步的,本技术实施例还提供了一种电子设备。图11是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本技术的使用范围的任何限制。
145.图11为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的编码方法中的相关步骤。
146.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
147.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
148.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的编码方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20收集到编码质量、画面属性等数据。
149.进一步的,本技术实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的编码方法步骤。
150.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
151.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
…”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
152.以上对本发明所提供的编码方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1