一种码流重要性计算方法和装置与流程

文档序号:11880957阅读:253来源:国知局
一种码流重要性计算方法和装置与流程

本发明适用于视频传输领域,尤其涉及一种码流重要性计算方法和装置。



背景技术:

在对视频进行传输之前要进行可伸缩视频编码(Scalable Video Coding SVC),并由发送端上传到传输通道,经网络传输后,由接收端接收并解码,用户才可以通过终端播放器播放视频。

由于互联网带宽的限制以及自身的传输特性,当传输视频数据量超过信道带宽时,会出现丢包、误码、延迟等现象,导致用户播出的视频质量明显降低。因此,需要对视频传输的码流进行重要性计算。优先传输对视频质量影响较大的码流,以适应网络状态,减少失真。



技术实现要素:

本发明提供一种码流重要性计算方法和装置,旨在解决当传输视频数据量超过信道带宽时,出现丢包、误码、延迟等现象,导致用户播出的视频质量降低的问题。

为解决上述技术问题,本发明是这样实现的,一种码流重要性计算方法,所述方法包括:

获取待传输视频的码流,所述码流为经可伸缩视频编码后所述待传输视频的多个数据包在单位时间内传输的流量;在所述码流中对所述数据包的失真度进行最小值运算得出所述数据包的率失真重要性;对所述码流中所述数据包所在的帧进行运动矢量强度运算得出所述数据包的运动特性重要性;在所述码流中将所述数据包的率失真重要性和所述数据包的运动特性重要性进行乘法运算,得到所述数据包的重要性,以确定所述数据包传输的优先级;在所述码流中,按照所述数据包的重要性,对所述数据包进行传输。

一种码流重要性计算装置,所述装置包括:

获取模块用于获取待传输视频的码流,所述码流为经可伸缩视频编码后所述待传输视频的多个数据包在单位时间内传输的流量;第一运算模块用于在所述码流中对所述数据包的失真度进行最小值运算得出所述数据包的率失真重要性;第二运算模块用于对所述码流中所述数据包所在的帧进行运动矢量强度运算得出所述数据包的运动特性重要性;第三运算模块用于在所述码流中将所述数据包的率失真重要性和所述数据包的运动特性重要性进行乘法运算,得到所述数据包的重要性,以确定所述数据包传输的优先级;传输模块用于在所述码流中,按照所述数据包的重要性,对所述数据包进行传输。

本发明与现有技术相比,有益效果在于:本发明通过获取待传输视频的码流,该码流为经可伸缩视频编码后该待传输视频的多个数据包在单位时间内传输的流量;在该码流中对该数据包的失真度进行最小值运算得出率失真重要性;对该码流中该数据包所在的帧进行运动矢量强度运算得出该数据包的运动特性重要性;对该数据包的率失真重要性和该数据包的运动特性重要性做乘法运算得到该数据包的重要性以确定该数据包传输的优先级;按照该数据包的重要性,对该数据包进行传输。本发明中,根据该数据包的率失真重要性和运动特性重要性确定该数据包的重要性,并根据该数据包的重要性,优先传输该数据包的重要性高的数据包,减少了丢包、误码、延迟等现象,提高了用户播出的视频质量。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。

图1是本发明第一实施例提供的一种码流重要性计算方法实现流程示意图;

图2是本发明第二实施例提供的一种码流重要性计算方法实现流程示意图;

图3是本发明第三实施例提供的一种码流重要性计算装置示意图;

图4是本发明第四实施例提供的一种码流重要性计算装置示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,码流为本领域技术人员对经可伸缩视频编码后的待传输视频的多个数据包在单位时间内传输的流量的一种专有叫法。

本发明实施例提供的码流重要性计算方法可以应用于各种终端设备,如电脑、手机、平板电脑等终端以及其它终端。

作为本发明的第一个实施例,如图1所示,图1是本发明第一实施例提供的一种码流重要性计算方法实现流程示意图,图1所示的码流重要性计算方法的步骤包括:

S101、获取待传输视频的码流;

该码流为经可伸缩视频编码后该待传输视频的多个数据包在单位时间内传输的流量。

获取该待传输视频的码流的途径不作限定,可以获取终端存储的待传输视频的码流,也可以获取从服务器下载的待传输视频的码流,还可以获取其它终端的待传输视频的码流。

S102、在该码流中对该数据包的失真度进行最小值运算得出该数据包的率失真重要性;

该率失真重要性为由该数据包的失真度确定的该数据包传输的优先级,该率失真重要性值越大,该数据包传输的优先级越高。

S103、对该码流中该数据包所在的帧进行运动矢量强度运算得出该数据包的运动特性重要性;

该帧的运动矢量强度为人眼对不同视频内容变化的敏感程度,本发明实施例通过计算该数据包所在的帧的运动矢量强度得到该数据包的运动特性重要性,以获得根据人眼对不同视频内容变化的敏感程度得到的该数据包传输的优先级,其中,该数据包的运动特性重要性越大,该数据包传输的优先级越高。

需要说明的是,步骤S102和步骤103的顺序可以相互替换。

S104、在该码流中将该数据包的率失真重要性和该数据包的运动特性重要性进行乘法运算,得到该数据包的重要性;

S105、在该码流中按照该数据包的重要性,对该数据包进行传输。

该数据包的重要性用于确定该数据包传输的优先级,该数据包的重要性越大,该数据包传输的优先级越高,则优先对该数据包进行传输。

本发明实施例通过获取待传输视频的码流,该码流为经可伸缩视频编码后该待传输视频的多个数据包在单位时间内传输的流量;在该码流中对该数据包的失真度进行最小值运算得出该数据包的率失真重要性;对该数据包所在的帧进行运动矢量强度运算得出该数据包运动特性重要性;对该数据包的率失真重要性和该数据包的运动特性重要性做乘法运算得到该数据包的重要性,以确定该数据包传输的优先级;按照该数据包的重要性,对该数据包进行传输。本发明中,根据该数据包的率失真重要性和该数据包的运动特性重要性确定该数据包的重要性,并根据该数据包的重要性,优先传输该数据包的重要性高的数据包,减少了丢包、误码、延迟等现象,提高了用户播出的视频质量。

作为本发明的第二个实施例,如图2所示,图2是本发明第二实施例提供的一种码流重要性计算方法实现流程示意图,图2所示的一种码流重要性计算方法的步骤包括:

S201、获取待传输视频的码流;

该码流为经可伸缩视频编码后该待传输视频的多个数据包在单位时间内传输的流量。

获取待传输视频的码流的途径不作限定,可以获取终端存储的待传输视频的码流,也可以获取从服务器下载的待传输视频的码流,还可以获取其它终端的待传输视频的码流。

S202、计算该数据包的重建失真和漂移失真;

该数据包的重建失真为该数据包丢失后而导致该帧的解码失真。该数据包漂移失真为该数据包丢失后导致同一画面组中其它帧的错误扩散而导致的失真。

计算丢失该数据包后,该数据包所在的帧与编码时参考该帧的其它重建帧的均方误差之和得到该帧的漂移失真,该重建帧为该帧丢失数据包后重建的帧。

设Bk表示第i帧第k个数据包的码流,Dkrec(Bk)表示第i帧第k个数据包的重建失真,Dkdra(Bk)表示第i帧第k个数据包的漂移失真,则

<mrow> <msubsup> <mi>D</mi> <mi>k</mi> <mrow> <mi>r</mi> <mi>e</mi> <mi>c</mi> </mrow> </msubsup> <mrow> <mo>(</mo> <msub> <mi>B</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>E</mi> <msup> <mrow> <mo>&lsqb;</mo> <mi>F</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>,</mo> <mi>m</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>F</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>,</mo> <mi>k</mi> <mo>,</mo> <mi>m</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow> <mn>2</mn> </msup> </mrow>

<mrow> <msubsup> <mi>D</mi> <mi>k</mi> <mrow> <mi>d</mi> <mi>r</mi> <mi>a</mi> </mrow> </msubsup> <mrow> <mo>(</mo> <msub> <mi>B</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mi>n</mi> </mrow> <mi>l</mi> </munderover> <mi>E</mi> <msup> <mrow> <mo>&lsqb;</mo> <mi>F</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>,</mo> <mi>m</mi> <mo>)</mo> </mrow> <mo>-</mo> <mover> <mi>F</mi> <mo>^</mo> </mover> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>,</mo> <mi>m</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow> <mn>2</mn> </msup> </mrow>

其中,F(i,k,m),F(i-1,k,m)分别为i帧和i-1帧中第k个数据包的第m个重建宏块,E[x]2表示相邻两帧的均方误差,表示丢失m宏块后的重建帧。

需要说明的是,经可伸缩视频编码后的该待传输视频在传输过程中包含I帧、P帧和B帧,本发明实施例中,设定的第i帧仅表示帧的顺序,对帧的类型不作限制。

S203、对该数据包的重建失真和该数据包的漂移失真进行加法运算得到该数据包的失真度;

由步骤202计算出的该数据包的重建失真和该数据包的漂移失真,计算该数据包的失真度,则第i帧第k个数据包的失真度为:

Dk(Bk)=Dkrec(Bk)+Dkdra(Bk)

S204、在该码流中对该数据包的失真度进行最小值运算得出该数据包的率失真重要性;

则当传输带宽为CB时,第i帧第k个数据包的率失真重要性可以表示为:

其中,

利用拉格朗日乘子法,该数据包重要性公式变换为:

<mrow> <mo>&lsqb;</mo> <msub> <mi>P</mi> <mi>D</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> <mo>=</mo> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <msub> <mi>B</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>B</mi> <mn>2</mn> </msub> <mo>,</mo> <mo>...</mo> <msub> <mi>B</mi> <mi>N</mi> </msub> </mrow> </munder> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msub> <mi>D</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>B</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <mi>&lambda;</mi> <mrow> <mo>(</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msub> <mi>B</mi> <mi>k</mi> </msub> <mo>&le;</mo> <msub> <mi>C</mi> <mi>B</mi> </msub> <mo>)</mo> </mrow> <mo>,</mo> </mrow>

其中,则

[PD(i,k)]=λ

S205、计算每个帧的背景运动矢量强度和对象运动矢量强度;

该背景运动矢量强度表示该帧的背景变化强度。该对象运动矢量强度表示该帧的对象变化强度。

对该帧进行背景运动矢量强度运算得到该帧的背景运动矢量强度;对该帧进行对象运动矢量强度运算得到该帧的对象运动矢量强度;设第i帧的背景运动矢量强度为MiB,第i帧的对象运动矢量强度为MiO,则,

<mrow> <msub> <mi>M</mi> <mrow> <mi>i</mi> <mi>B</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munder> <mo>&Sigma;</mo> <mi>n</mi> </munder> <munder> <mo>&Sigma;</mo> <mi>m</mi> </munder> <msqrt> <mrow> <msubsup> <mi>v</mi> <mrow> <mi>x</mi> <mi>i</mi> <mi>b</mi> </mrow> <mn>2</mn> </msubsup> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>+</mo> <msubsup> <mi>v</mi> <mrow> <mi>y</mi> <mi>i</mi> <mi>b</mi> </mrow> <mn>2</mn> </msubsup> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> </mrow> </msqrt> </mrow> <mrow> <msub> <mi>V</mi> <mi>max</mi> </msub> <mo>*</mo> <msub> <mi>N</mi> <mrow> <mi>i</mi> <mi>b</mi> </mrow> </msub> </mrow> </mfrac> <mo>,</mo> </mrow>

<mrow> <msub> <mi>M</mi> <mrow> <mi>i</mi> <mi>O</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munder> <mo>&Sigma;</mo> <mi>n</mi> </munder> <munder> <mo>&Sigma;</mo> <mi>m</mi> </munder> <msqrt> <mrow> <msubsup> <mi>v</mi> <mrow> <mi>x</mi> <mi>i</mi> <mi>o</mi> </mrow> <mn>2</mn> </msubsup> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>+</mo> <msubsup> <mi>v</mi> <mrow> <mi>y</mi> <mi>i</mi> <mi>o</mi> </mrow> <mn>2</mn> </msubsup> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> </mrow> </msqrt> </mrow> <mrow> <msub> <mi>V</mi> <mi>max</mi> </msub> <mo>*</mo> <msub> <mi>N</mi> <mrow> <mi>i</mi> <mi>o</mi> </mrow> </msub> </mrow> </mfrac> <mo>,</mo> </mrow>

其中,该帧的背景(vxib,vyib)为宏块(m,n)从运动估计的参考帧到当前帧的运动矢量,Vmax为该帧运动矢量的最大值,Nib为背景非零运动矢量的宏块数,该帧的对象(vxio,vyio)为宏块(m,n)从运动估计的参考帧到当前帧的运动矢量,Nio为对象非零运动矢量的宏块数。

S206、对该帧的背景运动矢量强度和对象运动矢量强度进行加权运算,得到该帧的运动特性重要性;

对该帧的背景运动矢量强度和对象运动矢量强度进行加权运算得到该帧的运动矢量强度,该运动矢量强度为人眼对不同视频内容变化的敏感程度,设第i帧的运动矢量强度为:Mi,则,

Mi=ωBMiBOMiO

其中,ωB、ωO分别为背景运动矢量的权重和对象运动矢量的权重,其中,ωB,ωO∈[0,1],且ωBO=1。

令该背景运动矢量的权重ωB由空域分布ω1、运动强度ω2和运动复杂度ω3的三个因素构成,则,

ωB=ω123

<mrow> <msub> <mi>&omega;</mi> <mn>1</mn> </msub> <mo>=</mo> <mfrac> <msub> <mi>N</mi> <mi>B</mi> </msub> <mrow> <mi>N</mi> <mi>u</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>s</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>,</mo> </mrow>

其中,NB为背景中运动矢量非零的宏块数,Num(s)为该帧的宏块数;

<mrow> <msub> <mi>&omega;</mi> <mn>2</mn> </msub> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>N</mi> <mi>B</mi> </msub> </munderover> <mrow> <mo>(</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>mv</mi> <mi>x</mi> </msub> <mo>|</mo> <mo>|</mo> <mo>+</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>mv</mi> <mi>y</mi> </msub> <mo>|</mo> <mo>|</mo> <mo>)</mo> </mrow> </mrow> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>N</mi> <mi>u</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>s</mi> <mo>)</mo> </mrow> </mrow> </munderover> <mrow> <mo>(</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>mv</mi> <mi>x</mi> </msub> <mo>|</mo> <mo>|</mo> <mo>+</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>mv</mi> <mi>y</mi> </msub> <mo>|</mo> <mo>|</mo> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>,</mo> </mrow>

其中,mvx,mvy分别为运动矢量的横坐标和纵坐标,ω2表示运动强度,即运动能量的大小,该运动能量越大,运动信息越丰富。

<mrow> <msub> <mi>&omega;</mi> <mn>3</mn> </msub> <mo>=</mo> <mi>P</mi> <mi>E</mi> <mo>=</mo> <mo>-</mo> <mrow> <mo>(</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>l</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mfrac> <mrow> <mi>N</mi> <mi>u</mi> <mi>m</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>l</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <mi>N</mi> <mi>u</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>s</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>*</mo> <mi>log</mi> <mo>(</mo> <mfrac> <mrow> <mi>N</mi> <mi>u</mi> <mi>m</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>l</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <mi>N</mi> <mi>u</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>s</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>)</mo> <mo>)</mo> </mrow> <mo>/</mo> <mi>log</mi> <mrow> <mo>(</mo> <mn>36</mn> <mo>)</mo> </mrow> </mrow>

其中,令s=[s1,s2,…,sm],其中m≦36,sl是运动矢量方向直方图中各个非空的维度,Num(sl)是各个维度内运动矢量非零的宏块数,则ω3即为运动复杂度。

该帧的运动特性重要性为根据人眼对该帧中不同内容变化的敏感程度而得到的该帧传输的优先级。

本发明实施例通过计算该帧的运动矢量强度得到该帧的运动特性重要性PV(i),以获得根据人眼对不同视频内容变化的敏感程度得到的该帧传输的优先级,则第i帧的运动特性重要性为:

PV(i)=Mi

S207、将该数据包所在的帧的运动特性重要性确定为数据包的运动特性重要性。

第i帧第k个数据包的重要性为PV(i,k)=Mi

S208、在该码流中将该数据包的率失真重要性和该数据包运动特性重要性进行乘法运算,得到该帧的重要性;

由步骤S202至S207所示的公式,第i帧第k个数据包的重要性为:

PRI(i,k)=[PD(i,k)]α×[PV(i,k)]β

进一步地,第i帧的重要性为:

PRI(i,k)=λα×Miβ

其中,α,β∈[0,1],且α+β=1,α,β为经验值,其取值根据该待传输视频的内容特性决定,对于运动特性复杂的视频场景,例如足球赛等,或者画面中包含多个运动区域的视频场景,例如演出直播等,则需要设置较大的β值且通常大于0.5;对于运动特性简单的视频场景,如新闻播报等,则需要设置较大的α值且通常大于0.5。

S209、在该码流中按照该数据包的重要性,对该数据包进行传输。

该数据包重要性用于确定该数据包传输的优先级,该数据包重要性越大,该数据包传输的优先级越高,则优先对该数据包进行传输。

本发明实施例通过获取待传输视频的码流,该码流为经可伸缩视频编码后该待传输视频的多个数据包在单位时间内传输的流量;计算该数据包的重建失真和漂移失真,对该数据包的重建失真和漂移失真进行加法运算得出该数据包的失真度,对该数据包的失真度进行最小值运算得出该数据包率失真重要性;计算该帧的背景运动矢量强度和对象运动矢量强度,并对该帧的背景运动矢量强度和对象运动矢量强度进行加权运算得出该帧的运动特性重要性;根据该帧的运动特性重要性确定该数据包的运动特性重要性,对该数据包的率失真重要性和该数据包的运动特性重要性做乘法运算得到该数据包的重要性,以确定该数据包传输的优先级;按照该数据包的重要性,对该数据包进行传输。

本发明中,根据该数据包的率失真重要性和运动特性重要性确定该数据包的重要性,并根据该数据包的重要性,优先传输数据包的重要性高的数据包,减少了丢包、误码、延迟等现象,提高了用户播出的视频质量。

作为本发明的第三个实施例,如图3所示,图3是本发明第三实施例提供的一种码流重要性计算装置示意图,图1所示的一种码流重要性计算装置,该装置主要包括:获取模块31、第一运算模块32、第二运算模块32、第三运算模块34和传输模块35;

其中,获取模块31,用于获取待传输视频的码流;

该码流为经可伸缩视频编码后所述待传输视频的多个数据包在单位时间内传输的流量。

第一运算模块32,用于在该码流中对该数据包的失真度进行最小值运算得出该数据包的率失真重要性;

该率失真重要性为由该数据包的失真度确定的该数据包传输的优先级,该率失真重要性值越大,该数据包传输的优先级越高。

第二运算模块33,用于在该码流中对该数据包所在的帧进行运动矢量强度运算得出该数据包的运动特性重要性;

该帧的运动矢量强度为人眼对不同视频内容变化的敏感程度,本发明实施例通过计算该数据包所在的帧的运动矢量强度得到该数据包的运动特性重要性,以获得根据人眼对不同视频内容变化的敏感程度得到的该数据包传输的优先级,其中,该数据包的运动特性重要性值越大,该数据包传输的优先级越高。

第三运算模块34,用于在该码流中将该数据包的率失真重要性和该数据包的运动特性重要性进行乘法运算,得到该数据包的重要性,以确定该数据包传输的优先级;

传输模块35,用于在该码流中,按照该数据包的重要性对该数据包进行传输。

该数据包的重要性用于确定该数据包传输的优先级,该数据包的重要性值越大,该数据包传输的优先级越高,则优先对该数据包进行传输。

本发明实施例中未尽细节请参照图1所示的第一实施例,在此不再赘述。

本发明实施例通过获取模块31获取待传输视频的码流,该码流为经可伸缩视频编码后该待传输视频的多个数据包在单位时间内传输的流量;第一运算模块32在该码流中对该数据包的失真度进行最小值运算得出率失真重要性;第二运算模块33对该数据包所在的帧进行运动矢量强度运算得出该数据包运动特性重要性;第三运算模块34对该数据包的率失真重要性和该数据包的运动特性重要性做乘法运算得到该数据包的重要性,以确定该数据包传输的优先级;传输模块35按照该数据包的重要性,对该数据包进行传输。本发明中,根据该数据包的率失真重要性和运动特性重要性确定该数据包的重要性,并根据该数据包的重要性,优先传输数据包的重要性高的数据包,减少了丢包、误码、延迟等现象,提高了用户播出的视频质量。

作为本发明的第四个实施例,如图4所示,图4是本发明第四实施例提供的一种码流重要性计算装置示意图,图4所示的一种码流重要性计算装置,该装置主要包括:获取模块41、第一运算模块42、第二运算模块43、第三运算模块44、传输模块45、重建计算模块46、漂移计算模块47、背景计算模块48和对象计算模块49;其中,第三运算模块44包括:第一得到模块441、第二得到模块442和乘法计算模块443;各个模块的功能详述如下:

获取模块41,用于获取待传输视频的码流;

该码流为经可伸缩视频编码后所述待传输视频的多个数据包在单位时间内传输的流量。

第一运算模块42,用于在该码流中对该数据包的失真度进行最小值运算得出该数据包的率失真重要性;

该数据包的率失真重要性为由该数据包的失真度确定的该数据包传输的优先级,该率失真重要性值越大,该数据包传输的优先级越高。

当传输带宽为CB时,第i帧第k个数据包的率失真重要性可以表示为:

其中,

利用拉格朗日乘子法,第i帧第k个数据包的率失真重要性公式变换为:

<mrow> <mo>&lsqb;</mo> <msub> <mi>P</mi> <mi>D</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> <mo>=</mo> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <msub> <mi>B</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>B</mi> <mn>2</mn> </msub> <mo>,</mo> <mo>...</mo> <msub> <mi>B</mi> <mi>N</mi> </msub> </mrow> </munder> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msub> <mi>D</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>B</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <mi>&lambda;</mi> <mrow> <mo>(</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <msub> <mi>B</mi> <mi>k</mi> </msub> <mo>&le;</mo> <msub> <mi>C</mi> <mi>B</mi> </msub> <mo>)</mo> </mrow> <mo>,</mo> </mrow>

其中,则

[PD(i,k)]=λ

第二运算模块43,用于在该码流中对该数据包所在的帧进行运动矢量强度运算得出该数据包的运动特性重要性;

该数据包所在的帧的运动矢量强度为人眼对不同视频内容变化的敏感程度,本发明实施例通过计算该数据包所在的帧的运动矢量强度得到该数据包的运动特性重要性,以获得根据人眼对不同视频内容变化的敏感程度得到的该数据包传输的优先级,其中,该数据包的运动特性重要性值越大,该数据包传输的优先级越高。

设第i帧的运动矢量强度为:Mi,则第i帧第k个数据包的的运动特性重要性为:

PV(i,k)=Mi

第三运算模块44,用于在该码流中将该数据包的所述率失真重要性和该数据包的运动特性重要性进行乘法运算,得到该数据包的重要性,以确定该数据包传输的优先级;

其中,第三运算模块44包括:

第一得到模块441,用于对该数据包的率失真重要性进行指数运算得到第一重要性参数;

第二得到模块442,用于对该数据包的运动特性重要性进行指数运算得到第二重要性参数;

乘法计算模块443,用于将该第一重要性参数与该第二重要性参数做乘法运算得到该数据包的重要性。

第i帧第k个数据包的重要性为:

PRI(i,k)=[PD(i,k)]α×[PV(i,k)]β

进一步地,第i帧第k个数据包的重要性为:

PRI(i,k)=λα×Miβ

其中,α,β∈[0,1],且α+β=1,α,β为经验值,其取值根据该待传输视频的内容特性决定,对于运动特性复杂的视频场景,例如足球赛等,或者画面中包含多个运动区域的视频场景,例如演出直播等,则需要设置较大的β值且通常大于0.5;对于运动特性简单的视频场景,如新闻播报等,则需要设置较大的α值且通常大于0.5。

传输模块45,用于按照该数据包的重要性,优先传输该数据包的重要性高的数据包。

该数据包的重要性用于确定该数据包传输的优先级,该数据包的重要性值越大,该数据包传输的优先级越高,则优先对该数据包进行传输。

第一运算模块42,还用于对该数据包的重建失真和该数据包的漂移失真进行加法运算得到该数据包的失真度;

第i帧第k个数据包的重建失真为Dkrec(Bk),第i帧第k个数据包的漂移失真为Dkdra(Bk),则第i帧第k个数据包的失真度为:

Dk(Bk)=Dkrec(Bk)+Dkdra(Bk)

重建计算模块46,用于计算该数据包丢失后,该数据包所在的帧和与该帧相邻的前一个帧的均方误差得到该数据包的重建失真;

该数据包的重建失真为该数据包丢失后而导致该数据包所在的帧的解码失真。

设Bk表示第i帧第k个数据包的码流,Dkrec(Bk)表示第i帧第k个数据包的重建失真,则

<mrow> <msubsup> <mi>D</mi> <mi>k</mi> <mrow> <mi>r</mi> <mi>e</mi> <mi>c</mi> </mrow> </msubsup> <mrow> <mo>(</mo> <msub> <mi>B</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mi>E</mi> <msup> <mrow> <mo>&lsqb;</mo> <mi>F</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>,</mo> <mi>m</mi> <mo>)</mo> </mrow> <mo>-</mo> <mi>F</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>,</mo> <mi>k</mi> <mo>,</mo> <mi>m</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow> <mn>2</mn> </msup> </mrow>

其中,F(i,k,m),F(i-1,k,m)分别为i帧和i-1帧中第k个数据包的第m个重建宏块,E[x]2表示相邻两帧的均方误差。

漂移计算模块47,用于计算该数据包丢失后,该数据包所在的帧与编码时参考该帧的其它重建帧的均方误差之和得到该数据包的漂移失真;

该数据包的漂移失真为该数据包丢失后导致同一画面组中其它帧的错误扩散而导致的失真。该重建帧为该数据包丢失宏块后重建的帧。

设Bk表示第i帧第k个数据包的码流,Dkdra(Bk)表示第i帧第k个数据包的漂移失真,则

<mrow> <msubsup> <mi>D</mi> <mi>k</mi> <mrow> <mi>d</mi> <mi>r</mi> <mi>a</mi> </mrow> </msubsup> <mrow> <mo>(</mo> <msub> <mi>B</mi> <mi>k</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mi>n</mi> </mrow> <mi>l</mi> </munderover> <mi>E</mi> <msup> <mrow> <mo>&lsqb;</mo> <mi>F</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>,</mo> <mi>m</mi> <mo>)</mo> </mrow> <mo>-</mo> <mover> <mi>F</mi> <mo>^</mo> </mover> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>,</mo> <mi>m</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> </mrow> <mn>2</mn> </msup> </mrow>

其中,F(i,k,m)为i帧第k个数据包的第m个重建宏块,E[x]2表示两帧的均方误差,表示丢失m宏块后的重建帧。

需要说明的是,经可伸缩视频编码后的该待传输视频在传输过程中包含I帧、P帧和B帧,本发明实施例中,设定的第i帧仅表示帧的顺序,对帧的类型不作限制。

第二运算模块43,还用于对该帧的背景运动矢量强度和对象运动矢量强度进行加权运算,得到该帧的运动特性重要性。

对该帧的背景运动矢量强度和对象运动矢量强度进行加权运算得到该帧的运动矢量强度,该运动矢量强度为人眼对不同视频内容变化的敏感程度,设第i帧的运动矢量强度为:Mi,则,

Mi=ωBMiBOMiO

其中,ωB、ωO分别为背景运动矢量的权重和对象运动矢量的权重,其中,ωB,ωO∈[0,1],且ωBO=1。

令该背景运动矢量的权重ωB由空域分布ω1、运动强度ω2和运动复杂度ω3的三个因素构成,则,

ωB=ω123

<mrow> <msub> <mi>&omega;</mi> <mn>1</mn> </msub> <mo>=</mo> <mfrac> <msub> <mi>N</mi> <mi>B</mi> </msub> <mrow> <mi>N</mi> <mi>u</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>s</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>,</mo> </mrow>

其中,NB为背景中运动矢量非零的宏块数,Num(s)为该帧的宏块数;

<mrow> <msub> <mi>&omega;</mi> <mn>2</mn> </msub> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>N</mi> <mi>B</mi> </msub> </munderover> <mrow> <mo>(</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>mv</mi> <mi>x</mi> </msub> <mo>|</mo> <mo>|</mo> <mo>+</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>mv</mi> <mi>y</mi> </msub> <mo>|</mo> <mo>|</mo> <mo>)</mo> </mrow> </mrow> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <mi>N</mi> <mi>u</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>s</mi> <mo>)</mo> </mrow> </mrow> </munderover> <mrow> <mo>(</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>mv</mi> <mi>x</mi> </msub> <mo>|</mo> <mo>|</mo> <mo>+</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>mv</mi> <mi>y</mi> </msub> <mo>|</mo> <mo>|</mo> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>,</mo> </mrow>

其中,mvx,mvy分别为运动矢量的横坐标和纵坐标,ω2表示运动强度,即运动能量的大小,该运动能量越大,运动信息越丰富。

<mrow> <msub> <mi>&omega;</mi> <mn>3</mn> </msub> <mo>=</mo> <mi>P</mi> <mi>E</mi> <mo>=</mo> <mo>-</mo> <mrow> <mo>(</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>l</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mfrac> <mrow> <mi>N</mi> <mi>u</mi> <mi>m</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>l</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <mi>N</mi> <mi>u</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>s</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>*</mo> <mi>log</mi> <mo>(</mo> <mfrac> <mrow> <mi>N</mi> <mi>u</mi> <mi>m</mi> <mrow> <mo>(</mo> <msub> <mi>s</mi> <mi>l</mi> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <mi>N</mi> <mi>u</mi> <mi>m</mi> <mrow> <mo>(</mo> <mi>s</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>)</mo> <mo>)</mo> </mrow> <mo>/</mo> <mi>log</mi> <mrow> <mo>(</mo> <mn>36</mn> <mo>)</mo> </mrow> </mrow>

其中,令s=[s1,s2,…,sm],其中m≦36,sl是运动矢量方向直方图中各个非空的维度,Num(sl)是各个维度内运动矢量非零的宏块数,则ω3即为运动复杂度。

该帧的运动特性重要性为根据人眼对该帧中不同内容变化的敏感程度而得到的该帧传输的优先级。

本发明实施例通过计算该帧的运动矢量强度得到该帧的运动特性重要性PV(i),以获得根据人眼对不同视频内容变化的敏感程度得到的该帧传输的优先级,则第i帧的运动特性重要性为:

PV(i)=Mi

第二运算模块43,还用于将该数据包所在帧的运动特性重要性确定为该数据包的运动特性重要性。

第i帧第k个数据包的重要性为:

PV(i,k)=Mi

背景计算模块48,用于对该帧进行背景运动矢量强度运算得到该帧的背景运动矢量强度;

该背景运动矢量强度表示该帧的背景变化强度。设第i帧的背景运动矢量强度为MiB,则,

<mrow> <msub> <mi>M</mi> <mrow> <mi>i</mi> <mi>B</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munder> <mo>&Sigma;</mo> <mi>n</mi> </munder> <munder> <mo>&Sigma;</mo> <mi>m</mi> </munder> <msqrt> <mrow> <msubsup> <mi>v</mi> <mrow> <mi>x</mi> <mi>i</mi> <mi>b</mi> </mrow> <mn>2</mn> </msubsup> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>+</mo> <msubsup> <mi>v</mi> <mrow> <mi>y</mi> <mi>i</mi> <mi>b</mi> </mrow> <mn>2</mn> </msubsup> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> </mrow> </msqrt> </mrow> <mrow> <msub> <mi>V</mi> <mi>max</mi> </msub> <mo>*</mo> <msub> <mi>N</mi> <mrow> <mi>i</mi> <mi>b</mi> </mrow> </msub> </mrow> </mfrac> </mrow>

其中,该帧的背景(vxib,vyib)为宏块(m,n)从运动估计的参考帧到当前帧的运动矢量,Vmax为该帧运动矢量的最大值,Nib为背景非零运动矢量的宏块数。

对象计算模块49,用于对该帧进行对象运动矢量强度运算得到该帧的对象运动矢量强度。

该对象运动矢量强度表示该帧的对象变化强度。设第i帧的对象运动矢量强度为MiO,则,

<mrow> <msub> <mi>M</mi> <mrow> <mi>i</mi> <mi>O</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munder> <mo>&Sigma;</mo> <mi>n</mi> </munder> <munder> <mo>&Sigma;</mo> <mi>m</mi> </munder> <msqrt> <mrow> <msubsup> <mi>v</mi> <mrow> <mi>x</mi> <mi>i</mi> <mi>o</mi> </mrow> <mn>2</mn> </msubsup> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>+</mo> <msubsup> <mi>v</mi> <mrow> <mi>y</mi> <mi>i</mi> <mi>o</mi> </mrow> <mn>2</mn> </msubsup> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> </mrow> </msqrt> </mrow> <mrow> <msub> <mi>V</mi> <mi>max</mi> </msub> <mo>*</mo> <msub> <mi>N</mi> <mrow> <mi>i</mi> <mi>o</mi> </mrow> </msub> </mrow> </mfrac> <mo>,</mo> </mrow>

其中,该帧的对象(vxio,vyio)为宏块(m,n)从运动估计的参考帧到当前帧的运动矢量,Vmax为该帧运动矢量的最大值,Nio为对象非零运动矢量的宏块数。

本发明实施例的未尽细节,请参照图2所示的第二实施例,在此不再赘述。

本发明实施例通过获取模块41获取待传输视频的码流,该码流为经可伸缩视频编码后该待传输视频的多个数据包在单位时间内传输的流量;重建计算模块46计算该数据包的重建失真,漂移计算模块47计算该数据包的漂移失真,第一运算模块42对该数据包的重建失真和漂移失真进行加法运算得出该数据包的失真度,第一运算模块42对该数据包的失真度进行最小值运算得出率失真重要性;背景计算模块48计算该帧的背景运动矢量强度和对象计算模块48计算对象运动矢量强度,第二运算模块43对该帧的背景运动矢量强度和对象运动矢量强度进行加权运算得出该帧的运动特性重要性;第二运算模块43根据该数据包所在的帧的运动特性重要性确定该数据包的运动特性重要性;第三运算模块44对该数据包的率失真重要性和该数据包的运动特性重要性做乘法运算得到该数据包的重要性,以确定该数据包传输的优先级;传输模块45按照该数据包的重要性,对该数据包进行传输。

本发明中,根据该数据包的率失真重要性和运动特性重要性确定该数据包的重要性,并根据该数据包的重要性,优先传输数据包的重要性高的数据包,减少了丢包、误码、延迟等现象,提高了用户播出的视频质量。

在本申请所提供的多个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信链接可以是通过一些接口,装置或模块的间接耦合或通信链接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上所述仅为本发明的较佳实施例而已,并不用以限制发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1