一种基于视频复杂度的统计复用方法转让专利

申请号 : CN201510689630.9

文献号 : CN106612434B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 樊鸿飞贾惠柱董霄剑杨名远

申请人 : 北京博雅华录视听技术研究院有限公司

摘要 :

本发明公布了一种基于视频复杂度的统计复用方法和码率分配方法,通过建立理论性强的统计复用分配模型进行分配获得码率;针对N个视频序列,每个SGOP包括所有视频序列中同时进行码率分配的多个相邻帧;计算得到视频序列在第k个和第k+1个SGOP中的码流复杂度信息;编码第k个SGOP时,得到视频序列在第k个SGOP中的的失真与码率信息;对第k+1个SGOP进行编码时,将视频序列在第k个和第k+1个SGOP中的码流复杂度信息、视频序列在第k个SGOP中的失真与码率信息,作为码率分配模型的输入,按照码率分配方法分配码率,得到视频序列在第k+1个SGOP的码率。该方法中的算法复杂度很低并且具有很好的鲁棒性。

权利要求 :

1.一种基于视频复杂度的统计复用方法,针对N个视频序列,每个SGOP包括所有视频序列中同时进行码率分配的多个相邻帧;通过码流复杂度分析得到每个视频序列的码流复杂度;假设目前已经编码了k个SGOP,则通过如下步骤对第k+1个SGOP进行编码:

1)编码第k个SGOP时,得到视频序列在第k个SGOP中的的失真与码率信息;第i个视频序列在第k个SGOP中的失真与码率分别记为 和

2)计算得到视频序列在第k个和第k+1个SGOP中的码流复杂度信息,所述的第i个视频序列在第k个和第k+1个SGOP中的码流复杂度分别记为 和

3)将视频序列在第k个和第k+1个SGOP中的码流复杂度信息 和 视频序列在第k个SGOP中的失真与码率信息 和 作为码率分配模型的输入,按照码率分配方法分配码率,得到视频序列在第k+1个SGOP的码率;第i个视频序列在第k+1个SGOP中的码率记为 所述码率分配模型为式21或式22;

式21中,Rc为多路视频序列的总带宽; 和 分别为第i个视频序列在第k个和第k+1个SGOP中的码率; 和 分别为第i个视频序列在第k个和第k+1个SGOP中的码流复杂度;

为第i个视频序列在第k个SGOP中的失真参数;

式22中,Rc为多路视频序列的总带宽; 和 分别为第i个视频序列在第k个和第k+1个SGOP中的码率; 和 分别为第i个视频序列在第k个和第k+1个SGOP中的码流复杂度;

参数 为量化步长;

所述码率分配模型为式21时,步骤3)所述码率分配方法包括如下步骤:

21)统计复用的目标函数为式4:

式4中,参数Rc表示多路序列的总带宽;参数 表示第i个序列在第k个SGOP中编码后的码率;参数 表示第i个序列在第k个SGOP中编码后的失真,通过使用重构后图像与原始图像像素之间的均方误差计算得到;参数 表示所有序列在第k个SGOP中编码后的失真平均值;参数N表示统计复用中同时需要进行分配的序列个数;

22)通过拉格朗日系数定义和R-Q关系模型,得到R-D的关系式为式11:式11中,D为失真;R为码率;C为视频复杂度;参数σ是一个常数定值,其值根据序列不同而改变;

23)假设已经编码了k个SGOP,正在对第k+1个SGOP进行码率分配,根据步骤21)所述统计复用的目标函数,设定最优分配为:分配使得序列中的第k+1个SGOP的失真相等,且码率之和等于总带宽;

24)根据步骤22)所述R-D关系,将参数σ设定为:相同序列的两个相邻的SGOP的σ值相近;用前一个SGOP得到的σ值估算得到相同序列的下一个SGOP的σ值;

25)通过式18估算,分配得到第i个序列在第k+1个SGOP的码率其中,

式18和式181中, 为第i个序列在第k+1个SGOP中的码率; 表示 的估算值;

Rc为多路序列的总带宽; 为第i个序列在第k个SGOP中的码率; 为第i个序列在第k个SGOP中的失真; 和 分别为第i个序列在第k个和第k+1个SGOP中的码流复杂度;

4)根据得到的 进行码率控制,并且对视频序列的第k+1个SGOP进行编码;

编码完第k+1个SGOP之后,继续重复上述步骤1)~4),直到编码结束。

2.如权利要求1所述基于视频复杂度的统计复用方法,其特征是,式21中,所述失真参数 可通过绝对误差和、平均绝对差值、Hadamard变换后再绝对值求和、差值的平方和、平均平方误差计算方法中的一种计算得到。

3.如权利要求1所述基于视频复杂度的统计复用方法,其特征是,步骤2)所述码流复杂度具体通过式2计算得到:式2中,参数NMB为一帧中块的个数;activMB(p)为第p个块的标准差,具体通过式3计算得到:式3中,参数lum(i,j)表示该块中第(i,j)位置处的亮度像素值;参数 表示该块的亮度像素均值。

说明书 :

一种基于视频复杂度的统计复用方法

技术领域

[0001] 本发明属于多媒体数据通信领域,涉及视频信号传输方法,尤其涉及一种基于视频复杂度的统计复用方法。

背景技术

[0002] 视频信号数字化后数据带宽很高,通常在20MB/秒以上,因此视频压缩技术是计算机处理视频的前提,在大量应用中,带宽的限制不可避免,视频压缩需要充分利用带宽来进行。在目前多媒体传输应用中,视频序列往往会被分别编码,在一个总带宽的限制下进行传输。然而,如果不同视频序列以平均的码率进行压缩,其解压后的视频的质量将会层次不齐,我们往往更希望他们的质量接近与一致,给简单的序列分配更少的带宽,同时给复杂的序列分配更多的带宽,这种动态分配技术被称为统计复用。
[0003] 现有统计复用方法包括两大类,第一类是使峰值信噪比(PSNR)的总和最小,第二类是使所有序列PSNR的方差最小。目前,第二类统计复用方法使用的统计复用分配模型采用的是根据序列复杂度直接按比例进行分配,该分配模型缺乏理论依据,根据现有分配模型,不同路的序列在PSNR上仍有较大的方差,分配效果不好。为了阐述现有分配模型的具体步骤,定义变量如下表所示:
[0004] 表1现有分配模型中的变量和相应的意义
[0005]
[0006] 现有的第二类统计复用方法中,码率分配的具体过程如下:
[0007] 当编码完第k个SGOP时,按如下步骤对第k+1个SGOP进行编码:
[0008] 1)计算得到不同序列的下一个SGOP的总复杂度
[0009] 2)根据分配模型(式1)进行计算,得到第k+1个SGOP分配的码率
[0010]
[0011] 3)根据得到的 进行码率控制,并且对第k+1个SGOP进行编码;
[0012] 当编码完第k+1个SGOP之后,继续重复上述步骤1)~3),直到编码结束。
[0013] 式1的分配模型中,针对其中的复杂度 有多种预估方法,常用的预估方法包括式2中的复杂度估计算法(参见Boroczky,L.;Ngai,A.Y.;Westermann,E.F.,“Joint rate control with look-ahead for multi-program video coding”,Circuits and Systems for Video Technology,IEEE Transactions on,Volume:10,Issue:7,Pages:1159-1163,
2000):
[0014]
[0015] 式2中,参数NMB为一帧中块的个数;activMB(p)为第p个块的标准差,具体通过式3计算得到:
[0016]
[0017] 式3中,参数lum(i,j)表示该块中第(i,j)位置处的亮度像素值;参数 表示该块的亮度像素均值。
[0018] 统计复用的两大类方法中,第一类方法使PSNR的总和最小,但该方法并不能解决不同序列质量不一致的难题,并且,在大量应用中,用户往往关注的是某一视频的质量,而不能同时去看多个视频;第二类方法使所有序列PSNR的方差最小,这类方法是解决上述问题的类型。但是,第二类方法目前使用的分配模型(式1)根据预估的复杂度分配码率缺乏理论依据,按照式1的分配方式,无法证明可以达到使不同序列PSNR的方差最小化;同时,算法的分配非常依赖于复杂度预估得到的 其准确程度一旦出现偏差,比如遇到场景切换等情况,对算法的分配会带来很大的影响,同时每个复杂度预估的方法也都存在若干序列不符合的情况,导致该分配方法的最终结果缺乏鲁棒性。因此,根据现有分配模型,不同路的序列在PSNR上仍有较大的方差,分配效果并不好,而且缺乏鲁棒性。

发明内容

[0019] 为了克服上述现有技术的不足,本发明提供一种基于视频复杂度的统计复用方法和码率分配方法,通过建立理论性强的统计复用分配模型进行分配获得码率;该方法中的算法复杂度很低并且具有很好的鲁棒性。
[0020] 本文中,统计复用(Statistic Multiplex)也简称为Multiplex(多路复用)。
[0021] 本发明提供的技术方案是:
[0022] 一种基于视频复杂度的统计复用方法,针对N个视频序列,每个SGOP包括所有视频序列中同时进行码率分配的多个相邻帧;通过码流复杂度分析得到每个视频序列的码流复杂度,第i个视频序列在第k个SGOP中的复杂度记为
[0023] 假设目前已经编码了k个SGOP,则通过如下步骤对第k+1个SGOP进行编码:
[0024] 1)编码第k个SGOP时,得到视频序列在第k个SGOP中的的失真与码率信息;第i个视频序列在第k个SGOP中的失真与码率分别记为 和
[0025] 2)计算得到视频序列在第k个和第k+1个SGOP中的码流复杂度信息,所述的第i个视频序列在第k个和第k+1个SGOP中的码流复杂度分别记为 和
[0026] 3)将视频序列在第k个和第k+1个SGOP中的码流复杂度信息 和 视频序列在第k个SGOP中的失真与码率信息 和 作为码率分配模型的输入,按照码率分配方法分配码率,得到视频序列在第k+1个SGOP的码率;第i个视频序列在第k+1个SGOP中的码率记为[0027] 4)根据得到的 进行码率控制,并且对视频序列的第k+1个SGOP进行编码;
[0028] 编码完第k+1个SGOP之后,继续重复上述步骤1)~4),直到编码结束。
[0029] 针对上述基于视频复杂度的统计复用方法,步骤3)所述码率分配模型为式21:
[0030]
[0031] 式21中,Rc为多路视频序列的总带宽; 和 分别为第i个视频序列在第k个和第k+1个SGOP中的码率; 和 分别为第i个视频序列在第k个和第k+1个SGOP中的码流复杂度; 为第i个视频序列在第k个SGOP中的失真参数。
[0032] 针对上述码率分配模型式21,其中,所述失真参数 可通过绝对误差和、平均绝对差值、Hadamard变换后再绝对值求和、差值的平方和、平均平方误差计算方法中的一种计算得到。
[0033] 上述基于视频复杂度的统计复用方法,步骤3)所述码率分配方法具体包括如下步骤:
[0034] 21)统计复用的目标函数为式4:
[0035]
[0036] 式4中,参数Rc表示多路序列的总带宽;参数 表示第i个序列在第k个SGOP中编码后的码率;参数 表示第i个序列在第k个SGOP中编码后的失真,通过使用重构后图像与原始图像像素之间的均方误差计算得到;参数 表示所有序列在第k个SGOP中编码后的失真平均值;参数N表示统计复用中同时需要进行分配的序列个数;
[0037] 22)通过拉格朗日系数定义和R-Q关系模型,得到R-D的关系式为式11:
[0038]
[0039] 式11中,D为失真;R为码率;C为视频复杂度;参数σ是一个常数定值,其值根据序列不同而改变;
[0040] 23)假设已经编码了k个SGOP,正在对第k+1个SGOP进行码率分配,根据步骤21)所述统计复用的目标函数,设定最优分配为:分配使得序列中的第k+1个SGOP的失真相等,且码率之和等于总带宽;
[0041] 24)根据步骤22)所述R-D关系,将参数σ设定为:相同序列的两个相邻的SGOP的σ值相近;用前一个SGOP得到的σ值估算得到相同序列的下一个SGOP的σ值;
[0042] 25)通过式18估算,分配得到第i个序列在第k+1个SGOP的码率
[0043]
[0044] 其中,
[0045]
[0046] 式18和式181中, 为第i个序列在第k+1个SGOP中的码率; 表示 的估算值;Rc为多路序列的总带宽; 为第i个序列在第k个SGOP中的码率; 为第i个序列在第k个SGOP中的失真; 和 分别为第i个序列在第k个和第k+1个SGOP中的码流复杂度。
[0047] 针对上述基于视频复杂度的统计复用方法,如果失真参数D难以计算,也可以使用量化步长QPstep代替D,即步骤3)所述码率分配模型为式22:
[0048] 其中,
[0049] 式22中,Rc为多路视频序列的总带宽; 和 分别为第i个视频序列在第k个和第k+1个SGOP中的码率; 和 分别为第i个视频序列在第k个和第k+1个SGOP中的码流复杂度;参数 为量化步长。
[0050] 式22中,参数 表示量化步长QPstep。这里使用量化步长QPstep代替失真参数D计算得到码率。
[0051] 针对上述基于视频复杂度的统计复用方法,步骤2)所述码流复杂度具体通过式2计算得到:
[0052]
[0053] 式2中,参数NMB为一帧中块的个数;activMB(p)为第p个块的标准差,具体通过式3计算得到:
[0054]
[0055] 式3中,参数lum(i,j)表示该块中第(i,j)位置处的亮度像素值;参数 表示该块的亮度像素均值。
[0056] 本发明提供方法采用上述码率分配模型,经测试可节省大于60%的方差,而且,该分配模型不完全依赖于复杂度预估的精确度,不同复杂度对最终结果的影响很小。
[0057] 与现有技术相比,本发明的有益效果是:
[0058] 现有的码率分配模型根据预估的复杂度分配码率,实际上难以达到使不同序列PSNR的方差最小化;同时,分配方法依赖于预估得到的复杂度,其准确程度一旦出现偏差,比如遇到场景切换等情况,对算法的分配会带来很大的影响,同时每个复杂度预估的方法也都存在若干序列不符合的情况,导致该分配方法的最终结果缺乏鲁棒性。因此,根据现有分配模型得到的分配效果并不好,不同路的序列在PSNR上仍有较大的方差,而且方法缺乏鲁棒性。
[0059] 本发明提供一种基于视频复杂度的统计复用方法和码率分配方法,通过建立基于视频复杂度的分配模型进行分配获得码率;该分配方式具有理论依据,较之现有技术中直接根据视频复杂度比例进行分配的模型大大提高了鲁棒性以及分配效率。从实验结果来看,可节省大于60%的方差,视频之间PSNR的方差平均缩小65.56%;同时,在场景切换时能够即使预测场景变换,保证了图像质量稳定性;该分配模型不完全依赖于复杂度预估的精确度,不同复杂度对最终结果的影响很小;另外,本发明方法的算法复杂度很低并且具有很好的鲁棒性。

附图说明

[0060] 图1是本发明提供的基于视频复杂度的统计复用方法的流程框图。
[0061] 图2是本发明实施例中码率-编码后的失真(R-D)关系拟合效果图;
[0062] 其中,横轴为码率R,纵轴为1/MSE(1/D);(a)-(d)分别对应不同序列BasketballPass、BlowingBubbles、FourPeople和ParkScene的R-D关系拟合结果。

具体实施方式

[0063] 下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
[0064] 本发明提供的基于视频复杂度的统计复用方法的方法流程见图1,如图1中所示,多路视频序列输入之后,通过码流复杂度分析器求的码流的复杂度并传送给统计复用分配器,同时,之前已经编码后的失真与码率信息也反馈给统计复用分配器,根据这些信息进行分配码率给不同的编码器,由编码器进行编码后输出。具体地,该方法的实施过程如下:
[0065] 视频序列1~N经过码流复杂度分析器进行复杂度分析,得到视频序列的码流复杂度,第k个SGOP中的第i个序列的码流复杂度记为 传送给统计复用分配器;SGOP表示所有序列在一次统计复用中,需要同时进行码率分配的若干相邻帧;C和R分别表示第i个序列在第k个SGOP中的复杂度和码率;假设目前已经编码了k个SGOP,则通过如下步骤对第k+1个SGOP进行编码:
[0066] 1)由编码器输出得到第k个SGOP中的每个序列的失真与码率信息;对于第k个SGOP中的第i个序列,其失真与码率分别记为 和 输出的第k个SGOP中的每个序列的失真与码率信息传给统计复用分配器;2)码流复杂度分析器计算得到第k个和第k+1个SGOP中每个序列的码流复杂度信息(对于第k个和第k+1个SGOP中的第i个序列的码流复杂度,分别记为和 ),将其传给统计复用分配器;
[0067] 3)统计复用分配器利用第k个和第k+1个SGOP中每个序列的码流复杂度信息(对于第k个和第k+1个SGOP中的第i个序列的码流复杂度,分别记为 和 )和第k个SGOP中的每个序列的失真与码率信息(第k个SGOP中的第i个序列的失真与码率分别记为 和 ),传给编码器;;
[0068] 本实施例采用如下码率分配模型分配码率,该模型的输入不仅利用了当前待分配SGOP的复杂度估算值(根据式2计算得到)作为输入,还使用了上一个SGOP编码后得到的失真参数、量化步长、码率以及复杂度预估值作为输入:
[0069] 其中,
[0070] 4)根据得到的 进行码率控制,并且对第k+1个SGOP进行编码。
[0071] 当编码完第k+1个SGOP之后,继续重复上述步骤1)~4),直到编码结束。
[0072] 针对上述基于视频复杂度的统计复用方法,本发明的核心是建立新的码率分配模型并使用与现有方法不同的输入进行码率分配,使得分配得到的码率精度更高且更稳定。建立码率分配模型具体过程如下:
[0073] 21)上述基于视频复杂度的统计复用方法,考虑统计复用的目标函数式4:
[0074]
[0075] 式4中,参数Rc表示多路序列的总带宽;参数 表示第k个SGOP中第i个序列编码后的码率;参数 表示第k个SGOP中第i个序列编码后的失真,这里的失真我们使用重构后图像与原始图像像素之间的均方误差(MSE)计算得到;参数 表示第k个SGOP中所有序列编码后的失真平均值;参数N表示统计复用中同时需要进行分配的序列个数。
[0076] 22)通过拉格朗日系数定义和R-Q关系模型,得到码率R与量化步长Q和视频复杂度C的关系,得到R-D的一个线性关系式;
[0077] 视频编码标准中,率失真优化中所用到的拉格朗日系数定义如下:
[0078]
[0079] 式5中,参数λ表示拉格朗日系数;参数D表示编码后的失真;参数R表示编码后所用码率。在编码器中,拉格朗日系数的具体计算方法如下:
[0080] λ=cQ2          (式6)
[0081] 式6中,参数Q表示量化步长(QPstep);参数c为常数定值。
[0082] 一个经典的二次R-Q模型定义如下:
[0083]
[0084] 式7中,参数R表示编码后所用码率,参数Q表示量化步长(QPstep),参数C表示视频复杂度,参数a和b均为常数定值,其值根据序列不同而改变。由于式7是根据泰勒级数展开得到的,因此我们也可以用一次式代替式7,得到式8:
[0085]
[0086] 结合式6和式8,我们得到:
[0087]
[0088] 式9中,参数k是一个常数定值,其值根据序列不同而改变。将拉格朗日系数定义式(式5)代入式9,得到式10:
[0089]
[0090] 通过式10,我们求得R-D的关系式为式11:
[0091]
[0092] 式11中,参数σ是一个常数定值,其值根据序列不同而改变。为了验证式11,我们在HEVC的参考软件HM16.0中,对4个视频编码联合组(Joint Collaborative Team on Video Coding(JCT-VC))建议序列进行测试,量化系数QP设置为17,22,27,32,37,42和47,统计其D与R,其中D用MSE计算,R用比特率计算,结果如图2所示。图中,横轴为R,纵轴为1/D,可以看到其拟合情况很好。
[0093] 23)假设已经编码了k个SGOP,正在对第k+1个SGOP进行码率分配,根据统计复用的目标函数,设定最优分配为:分配使得第k+1的SGOP中每个序列的失真相等,且码率之和等于总带宽;
[0094] 接下来,假设我们已经编码了k个SGOP,正在对第k+1个SGOP进行码率分配,我们根据统计复用的目标函数式4,可以得到最优分配如式12所示:
[0095]
[0096] 式12表明,最优分配即分配使得第k+1的SGOP中每个序列的失真相等,且码率之和等于总带宽。
[0097] 24)根据R-D关系,将关系式中根据序列不同而改变的常数定值参数σ设定为:相同序列的两个相邻的SGOP的 值相近,估算得到相同序列的所有SGOP的 值相等;
[0098] 根据之前推得的表示R-D关系的式11,得到第k个SGOP中R-D关系如下,[0099]
[0100] 考虑到 根据序列特点变化,因此我们假定相同序列的两个相邻的SGOP的 值相近,可以估算第k+1个SGOP的 为:
[0101]
[0102] 式14中,参数 表示 的估算值。
[0103] 25)估算得到第k+1个SGOP的码率
[0104] 将式14和式13结合,可以估算第k+1个SGOP的 为式15:
[0105]
[0106] 式15中,参数 和 分别表示 和 的估算值。
[0107] 考虑到我们希望第k+1的SGOP中每个序列的失真相等,我们将式15中所有序列的求和,得到式16:
[0108]
[0109] 式16中,Rc是表1中的总带宽,总带宽等于每个序列分配的带宽之和 i代表不列编号;k为SGOP编号;由于每个序列的失真相同,用 表示;
[0110] 把式15除以式16,得到式17:
[0111]
[0112] 最后,将式14代入式17,最终得到码率分配为式18:
[0113]
[0114] 其中,
[0115]
[0116] 这里 的计算可以通过式2进行计算得到:
[0117]
[0118] 本实施例中,通过测试实例中采用的视频编码联合组JCT-VC测试序列的分类和相关参数设置(表2)进行计算得到。
[0119] 在实际应用过程中,公式18中的失真参数D可以使用不同的计算方式,如绝对误差和(SAD)计算方式、平均绝对差值(MAD)计算方式、Hadamard变换后再绝对值求和(SATD)计算方式、差值的平方和(SSE)计算方式、平均平方误差(MSE)计算方式等,表4列出采用上述不同失真参数计算方式计算相邻两帧的失真参数D的具体方法:
[0120] 表4采用上述不同失真参数计算方式计算相邻两帧的失真参数D的具体方法[0121]
[0122] 表4中,参数NP表示一帧中像素的个数,参数 表示第k帧的第i个像素的亮度值,参数 表示第k帧的第i个像素经过哈达玛变换后的值。
[0123] 如果失真参数D难以计算,也可以使用量化步长QPstep代替D,即:
[0124]
[0125] 其中,
[0126]
[0127] 式182中,参数 表示量化步长QPstep。这里使用量化步长QPstep代替失真参数D,即式182可以用来代替式181,计算得到码率。
[0128] 本实施例在具体实施中,将本发明提出的统计复用方法与现有的统计复用方法的测试效果进行比较,以验证方法的效果。将本发明提出的分配模型(式18)与现有分配模型(式1)同时集成在HEVC参考软件HM16.0中,使用Low Delay设置,同时打开帧级码控与宏块级码控开关,SGOP长度设置为10帧,帧率为25帧/秒。测试序列为视频编码联合组(Joint Collaborative Team on Video Coding(JCT-VC))推荐的6类(Class A-Class F)序列,按这6类序列分别进行测试,具体分类及一些设置见表2。
[0129] 表2测试实例中采用的JCT-VC测试序列的分类和相关参数设置
[0130]
[0131]
[0132] 其中,式18中,D使用MSE,R使用比特率计算。式18中的 由式2得到,评价指标设为失真的方差,失真的方差通过式19计算得到:
[0133]
[0134] 式19中,参数Variancek表示第k个SGOP的评价指标(即方差),参数 表示第k个SGOP中第i个序列编码后得到的MSE值,参数 表示第k个SGOP中所有序列编码后得到的MSE平均值,N表示序列总数。
[0135] 测试结果统计失真方差如表3:
[0136] 表3通过不同方法的测试结果统计得到的失真方差及平均值
[0137]
[0138] 其中,节省方差通过式20计算得到:
[0139]
[0140] 从表3可以看出,本发明提供方法采用的码率分配模型节省了71.88%的方差,并且该分配模型不完全依赖于复杂度预估的精确度,不同复杂度对最终结果的影响很小。
[0141] 需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。