一种不均等功耗有效控制的视频传输方法 【技术领域】
本发明涉及一种多媒体视频通信技术领域,特别是涉及一种不均等功耗有效控制的视频传输方法。
背景技术
随着视频在便携式业务领域的应用越来越普及,对便携式应用中低功耗视频传输系统的要求也就越来越高了。所以,有效的功耗控制成为第三代移动多媒体通信系统的关键技术。设计功耗有效控制的通信系统,首先要了解多媒体通信系统功耗是怎样消耗的。一般来说,视频传输系统的功耗包括计算功耗、传输功耗和播放功耗等。其中很大部分的功耗是计算功耗和传输功耗。计算功耗用于运行操作系统软件、编码和解码,例如视频编码端的计算功耗包括运动估计、运动补偿、DCT变换和量化等。而传输功耗用于传送和接收视频信号,主要考虑编码端如何进行视频编码设计才能使视频以更有效的功耗传输到基站,以及视频传输过程中影响功率的消耗因素(如距离等)。从硬件的角度来讲,低功耗的VLSI系统设计和低功耗RF的电路优化将大大减少功率的消耗。
纵观目前国内外的研究,无线视频的功耗控制是基于优化方法的功耗管理,需要知道系统的精确模型,通过目标函数对系统性能进行描述,在使系统性能达到最优的目标下,完成对计算功耗和传输功耗的计算,然后将算出的功耗值实时加载给用户。使用这种方法对功耗的控制准确并有明确的意义(最优化目标函数),但是计算量很大,不适合动态环境。当环境参数发生变化时,原先求得的最优解就不再适用,需要重新建立系统模型和再次优化,在达到视频最好的QoS前提下消耗最低的功率,这些任务的实时完成是很难实现的。
现有的功耗优化传输方法,最简单的功耗控制就是在信源端减少编解码的复杂度,从编解码的各个模块(如运动估计/补偿、帧内预测和模式选择等)研究其快速算法来减少计算功耗。在整个视频传输系统中,现有的功耗优化传输方案往往集中考虑信源、信道的处理功耗与传输功耗,在获得可接受的视频质量前提下使整个传输系统功耗最小。但是,现有的功耗优化传输方案中没有考虑解码端的功耗以及信源数据的优化级和信道码的特点,不适合于功耗有效的视频传输的普适性的应用,特别是要求功耗较小的移动多媒体业务(如视频手机和手持设备)。
【发明内容】
本发明的目的在于克服现有技术的不足,提供一种不均等功耗有效控制的视频传输方法。该方法能在达到视频最好的QoS前提下消耗最低的功率,即,在功耗有限的情况下获得了更好的视频传输质量。
为达到上述目的,本发明所采用的技术方案是:
上述一种不均等功耗有效控制的视频传输方法,其步骤包括如下:
(1)视频编码:编码端信源经过视频编码器进行编码,启用鲁棒的数据分类获得不同优先级的码流;
(2)Turbo编码:采用Turbo码进行联合信源信道编码,将不同优先级码流用相同码率的Turbo码编码;
(3)调制:码流经二相相移健控(BPSK)调制后经过无线信道发送;
(4)解调:解码端接收从上述信道发来的受噪声干扰的码流用BPSK解调;
(5)Turbo码迭代解码:对检调出的各码流进行N
i次的Turbo码迭代解码,用优化的解码功耗对不同优先级码流进行不均等解码功耗分配,具体为:
优化的解码方法,在视频可接受的失真范围内,R
T表示可得的总比特数,D
T表示为可容忍的失真。设立功耗最小的资源分配计算公式,其公式为:
minP(R)=min(Σi=0n-1rsRsi+Σi=0n-1(Niγ+λ)(Rsi+Rci))---(1)]]> Subject to
端到端失真受限条件为: D(R)≤D
T (2)
带宽受限条件为: R≤R
T (3)
优先级受限条件为: N
i≥N
i+m(m=0,1,...n-i)(4)
在上述受限条件获取功耗最小的资源分配算法的具体步骤是:
(501)信道自适应的比特分配;
(502)不均等解码功耗分配。
(6)视频解码:把经过信道解码的码流送到H.264解码器中进行信源解码。
本发明的一种不均等功耗有效控制的视频传输方法与现有技术相比较具有的有益效果是:该方法采用优先级解码方法-UDPA算法不仅获得了视频质量和解码功耗的权衡,而且与传统的均等解码功耗分配(Equal Decoding Power Allocation,EDPA)算法相比,在获得相同的视频质量时减少了功耗,即在功耗有限的情况下获得了更好的视频传输质量。该方法为了设计有效的UDPA算法,对不同的优先级的视频流分配了相同的信道冗余度,这就容易确定信道的码率,便于解码端功耗的分配。然后,在满足视频质量要求的前提下,根据信道的变化来调整Turbo码的解码迭代次数实现最小的解码功耗。
【附图说明】
图1是本发明的一种不均等功耗有效控制的视频传输方法的流程框图;
图2是不同Turbo码的解码迭代次数下Turbo码的解码功耗占总的处理功耗的比例示意图;
图3是在不同的信源比特率和Turbo码迭代次数下EDPA算法的解码功耗的示意图;
图4是在不同的信源比特率和Turbo码迭代次数下EDPA算法的视频重建质量的示意图;
图5是图5给出UDPA算法和EDPA算法的解码时间对比,其中(a)是在信道的信噪比为0.4db时,UDPA算法和EDPA算法的解码功耗对比的示意图;(b)是在信道的信噪比为0.6d b时,UDPA算法和EDPA算法的解码功耗对比的示意图;(c)是在信道的信噪比为0.8db时,UDPA算法和EDPA算法的解码功耗对比的示意图;
图6是不同方案下的解码序列PSNR效果比较的示意图;
图7是foreman序列的第95帧重建图的视觉效果对比,其中(a)是在E
b/N
0为0.4dbForeman序列的第95帧没有误码的原图;(b)是在E
b/N
0为0.4db Foreman序列的第95帧UDPA算法重建效果图;(c)是在E
b/N
0为0.4db Foreman序列的第95帧EDPA算法重建效果图。
【具体实施方式】
以下结合附图例对本发明的实施例作进一步的详细说明。
下面给出本发明的一种不均等功耗有效控制的视频传输方法原理说明:
在视频传输中,端到端的总失真包括信源编码失真和信道传输失真,定义端到端的总失真函数为:
D(R)=Σi=0n-1(Ds(Rsi)+Dc(Rci,Rsi,Pei))---(5)]]> 其中,n表示视频流的数据分类数目,R
si表示信源第i个数据分类的比特率,R
ci是加在第i个数据分类中的信道冗余比特率,P
ei为第i个数据分类经过信道解码后的信道比特误码率,D
c(R
ci,R
si,P
ei)为第i个数据分类的信道编码失真函数,D
s(R
si)为第i个数据分类的信源编码失真函数。
视频传输系统中总的比特率R为:
R=Σi=0n-1(Rsi+Rci)---(6)]]> 应用Turbo码作为FEC,Turbo码的纠错能力可以用BER来衡量,BER越低,Turbo码的纠错能力就越好;BER越高,Turbo码的纠错能力就越差。在整个视频传输系统中,Turbo码解码产生的BER直接影响到视频传输的质量,而Turbo码的BER和Turbo码解码的迭代次数密切相关。为了简单化,考虑到在其它参数(如编码多项式、块长、交织长度和信道的SNR)相同的情况下,Turbo码的BER会随着Turbo码迭代次数的增加而减少,因此把Turbo码的BER函数P
e通过曲线拟合的方法近似地表示成Turbo码的迭代次数的函数,即
Pe=αeβN(N≤Nmax)---(7)]]> 其中,N为Turbo码的迭代次数,它为一定范围的值(因为N到达一定的值时P
e变化不会很大,则不满足上式)。α和β的值取决于信道的码率、SNR等其它参数,应用非线性参数估计方法,就能够得到参数α和β的值。
假定比特误码错误是独立的,则第k个包的丢包率为:
ρk=1-(1-Pe)Bk---(8)]]> B
k为每包的大小,用比特来表示。P
e是比特误码率。把公式(7)代入公式(8)可得
ρk=1-(1-αeβN)Bk---(9)]]> 由公式(9)可知,丢包率ρ
k与Turbo码的迭代次数N、相应包的信源编码参数、打包的大小和信道参数(如信道的码率、信噪比SNR等)相关。
本发明用接收端的期望失真来表示视频的质量,原始帧和接收帧的失真不仅取决于丢包率,而且取决于信源的编码参数(如量化)。对于丢包率,正如上面的公式(9),可以调整Turbo码的迭代次数来控制丢包率的高低。
假设发射端仅仅知道接收端的丢包率,让E[D
k]表示接收端第k个包的期望失真,假设第k个包的丢包率为ρ
k,则第k个包的期望失真函数为:
E[Dk]=(1-ρk)E(DRk)+ρkE(DLk)---(10)]]> 其中,E(D
Rk)和E(D
Lk)分别表示第k个包正解接收和丢失的期望失真函数,ρ
k是第k个包的丢包率。如果包被正确接收,期望失真函数E(D
Rk)的值取决于信源编码参数(如量化失真),如信源的编码参数是固定的,则E(D
Rk)的值也是固定的;如果包被丢失了,期望失真函数E(D
Lk)的值取决于解码的误码掩盖策略,最简单的误码掩盖方法就是直接复制上一解码帧数据进行误码掩盖。
由公式(5)、(6)和(9),则(10)式可写为:
E(D(R))=Σi=0n-1Σk=1KiE(D(Rsik,Rcik,Nik))]]>(11)
=Σi=0n-1Σk=1Ki((1-ρik)E(DRik)+ρikE(DLik))]]> 其中,K
i表示第i个数据分类中包的数目,N
ik表示第i个数据分类中第k个包的Turbo码的迭代次数,E(D
Rik)和E(D
Lik)分别表示第i个数据分类中第k个包正解接收和丢失的期望失真函数,ρ
ik则表示第i个数据分类中第k个包的丢包率。
在无线视频传输系统中,总的功耗包括处理功耗和传输功耗。本发明只考虑接收机的处理功耗,接收机的总处理功耗则包括信源解码功耗和信道解码功耗,可表示为:
P(R)=P
ds(R
s)+P
dc(R
s,R
c,N) (12)
其中,P
ds(R
s)为信源解码功耗,它是信源码率R
s的函数;P
dc(R
s,R
c,N)为信道解码功耗(Turbo码的解码功耗),它是信源编码码率R
s、Turbo码编码码率R
c及Turbo码解码迭代数N的函数。
信源的解码功耗表示为:
Pds(Rs)=Σi=0n-1rsRsi---(13)]]> 其中,r
s表示信源解码每比特消耗的功耗,它取决于解码端的各个解码模块算法的选择。
Turbo码的解码功耗可表示为:
Pdc(Rs,Rc,N)=Σi=0n-1rc(Rsi+Rci)]]>(14)
=Σi=0n-1(Niγ+λ)(Rsi+Rci)]]> 其中,r
c表示Turbo码解码每比特消耗的功耗,N
i是第i个数据分类的Turbo码解码的迭代次数,参数γ和λ取决于Turbo码解码的算法、信道的信噪比(SNR)和信道模型。
因此,公式(12)可写为
P(R)=Σi=0n-1rsRsi+Σi=0n-1(Niγ+λ)(Rsi+Rci)---(15)]]> 如图1所示,本发明的一种不均等功耗有效控制的视频传输方法,其步骤包括如下:
(1)视频编码:编码端信源经过视频编码器进行编码,启用鲁棒的数据分类获得不同优先级的码流;
(2)Turbo编码:采用Turbo码进行联合信源信道编码,将不同优先级码流用相同码率的Turbo码编码;
(3)调制:码流经二相相移健控(BPSK)调制后经过无线信道发送;
(4)解调:解码端接收从上述信道发来的受噪声干扰的码流用BPSK解调;
(5)Turbo码迭代解码:对检调出的各码流进行N
i次的Turbo码迭代解码,用优化的解码功耗对不同优先级码流进行不均等解码功耗分配,具体为:
优化的解码方法,在视频可接受的失真范围内,R
T表示可得的总比特数,D
T表示为可容忍的失真。设立功耗最小的资源分配计算公式,其公式为:
minP(R)=min(Σi=0n-1rsRsi+Σi=0n-1(Niγ+λ)(Rsi+Rci))---(1)]]> Subject to
端到端失真受限条件为:D(R)≤D
T (2)
带宽受限条件为: R≤R
T (3)
优先级受限条件为: N
i≥N
i+m(m=0,1,...n-i)(4)
在上述受限条件获取功耗最小的资源分配算法的具体步骤是:
(501)信道自适应的比特分配:
设R
s表示当前信源的码率,R
T表示当前可得的传输带宽;
针对不同优先级的数据分类分配了相同的信道冗余度,信道的码率为R
c(R
c=R
T-R
s);
每个数据分类的信道冗余度为R
c/n,其中,n为数据分类的个数;
(502)不均等解码功耗分配:
A初始化。
对数据分类进行优先级分类,分别为1,2,…i…n,i越小优先级越高;
每个数据分类选择的Turbo码迭代次数为N
1,N
2,…N
i…N
n,i越小,N
i越大;
设定最大的Turbo码迭代次数为:N
max=max(N
i);
设最小的功耗初值为:P
min=P(R,max(N
i));
设迭代次数初值为:N
0=N
max;
设视频可容忍的最大失真为D
T;
初始化信道的信噪比(SNR);
B优化的迭代算法
每个数据分类选择不同的迭代次数时:
B1计算每个数据分类的丢包率:
ρk=1-(1-αeβN)Bk---(16)]]> B2计算信源信道总失真:
E(D(R))=Σi=0n-1Σk=1KiE(D(Rsik,Rcik,Nik))]]>(17)
=Σi=0n-1Σk=1Ki((1-ρik)E(DRik)+ρikE(DLik))]]> B3计算功耗:当D
1,..i..n≤D
T时,计算解码功耗P
1...i...n;
P(R)=Σi=0n-1rsRsi+Σi=0n-1(Niγ+λ)(Rsi+Rci)---(18)]]> B4最优功耗的选择:如果P
1...i...n<P
min则选择当前的功耗为最小功耗,否则最小功耗为原值;
然后再为每个数据分类选择不同的迭代数,重复B1-B4步骤,直到找到最优的P
min。
表1是当Turbo码最大迭代次数为16,数据分类为3时,不均等解码功耗分配算法的伪代码一个例子。
表1不均等解码功耗分配算法的伪代码特例
(6)把经过信道解码的码流送到H.264解码器中进行信源解码。
上面优化的UDPA算法由于Turbo解码的迭代可能带来很大的延迟,在实际应用中,信源和Turbo码编解码采用硬件设计来完成实时的实现。
本发明的实验仿真环境:编解码采用的是H.264/AVC参考软件JM8.6,测试序列采用Qcif格式的foreman,序列长为100帧,帧率设为30fps,编码比特率为200kbps,1/3码率的Turbo码,Turbo码解码方法为log-MAP。
接收机的处理功耗包括信源解码功耗和信道解码功耗,如图2所示,Turbo码解码功耗占有总解码功耗的绝大部分。图2的纵坐标表示的Turbo码解码功耗(Turbo码的解码时间)在总的解码功耗(Turbo码的解码时间和信源解码时间之和)中所占的百分比,即Turbo码解码功耗和和总的解码功耗的比值。从图2看出,在Turbo码的解码迭代次数(Number ofIteration,NOI)为7时,Turbo码的解码功耗占总解码功耗的85%。由此可表明,Turbo码的解码功耗是影响接收机总处理功耗的重要因素。而Turbo码的解码NOI是影响Turbo码解码功耗的主要因素,因此,在假设信源解码功耗不变的情况下,本发明能通过调整Turbo码的解码NOI来获得优化的接收机的功耗分配。
下面进行大量仿真实验来评估本发明所提出的UDPA算法的性能。实验平台是H.264视频流在AWGN信道上传输。
仿真实验中编解码采用的是H.264/AVC参考软件JM8.6,选用QCIF(176×144)测试序列“Foreman”,序列长为100帧,帧率设为30fps,最大的参考帧数为5,最大的运动搜索范围设为±16个像素点,编码的结构为“IPPPP…”。仿真实验采用H.264的数据分类,视频流分为A、B、C三个流,每个Slice选用200bytes。测试所采用的编码码率有50kbps、100kbps、150kbps和200kbps。
在信道端,选用的是具有两个RSC的二维[15,13]Turbo码编码器,帧长为4550比特,解码方法为log-MAP。为了减少Turbo码的平均迭代次数,本发明的仿真实验中应用CRC编码方法来决定是否停止迭代(对每次迭代后译码器输出的硬判决结果进行CRC校验。如果CRC校验全部正确,则停止迭代,否则继续下一轮迭代)。在测试中,Turbo码的最大迭代次数选为16,因为即使更高的迭代次数,Turbo码性能的改变也不是很大。表2列出了公式(7)关于Turbo码比特误码率函数在不同的Eb/N0下的参数(α、β)选择,通过曲线拟合方法得到的。在本发明的仿真中,假设带宽是已知的,Turbo码的码率为1/3,而在实际应用中,所用的Turbo码码率是由信道的带宽来决定。
在仿真实验中,采用高斯分布的白噪声随机误码方式,误码率范围从1e
-6到1e
-2,用解码时间来衡量解码的功耗,仿真是在P4/2.4G/512的PC机上运行,平台是Windows。
表2Turbo码比特误码率的参数选择
EB/N0 α β
0.1 0.1309 0.1024
0.2 0.1463 0.213
0.3 0.1791 0.4011
0.4 0.2034 0.5834
0.5 0.2183 0.7367
EB/N0 α β
0.6 0.2373 0.9041
0.7 0.2558 1.068
0.8 0.2747 1.241
0.9 0.2908 1.407
1.0 0.3076 1.576
为验证不均等解码功耗分配(UDPA)算法和均等解码功耗分配(EDPA)算法的有效性,仿真实验设计了在相同的信源失真度和信道信噪比条件下两种算法:
1)UDPA算法:联合考虑信源信道的不均等解码功耗分配算法
2)EDPA算法:联合考虑信源信道的均等解码功耗分配算法。
实验中首先对均等解码功耗分配进行了仿真,信道E
b/N
0为0.4db。在不同的信源编码码率下,图3表示的是:在不同的比特率下,Turbo码在不同的迭代次数下的解码功耗,其中纵坐标表示解码功耗,横坐标表示Turbo码迭代次数。图4表示的是:相应的视频重建质量,其纵坐标表示视频重建的PSNR,横坐标表示Turbo码迭代次数。从图3和图4可以看出,在相同的信源比特率下,Turbo码迭代次数越高,所消耗的解码功耗就越大,在一定的迭代范围内,解码功耗达到饱和;同样,Turbo码迭代次数越高,视频重建的PSNR值就越高,即质量就越好,到一定的程度下,视频质量也达到饱和,是由于当Turbo码迭代次数达到某个值时,信道的比特误码率为零,对于视频来说仅仅是量化失真存在。此外,从图中还可以看出,信源的编码码率越高,完成一次迭代所需的解码功耗就越高,视频的重建质量就越高,即信源编码码率越大,解码消耗的功耗就越多。
然后,仿真实验比较了UDPA算法和EDPA算法的性能,在不同的信道E
b/N
0(0.4、0.6、0.8)进行了测试。图5给出两种算法的解码时间对比,由图可知,在相同的视频质量下(相同的PSNR),UDPA算法比EDPA算法节省了许多功耗,是由于提出的UDPA算法具有很大的灵活性,对不同优先级的视频流进行了不均等的解码功耗分配。同时,比较图5(a)、图5(b)和图5(c),从图中可以看出:随着E
b/N
0的增大,信道误码率下降,在相同的视频质量下(相同的PSNR),解码的功耗减少。在低信噪比时,本发明的UDPA算法中减少功耗的优势会更加明显。例如,在Y-PSNR大约为26dB时,图5(a)UDPA算法比EDPA算法节省了大约11%的功耗;图5(b)UDPA算法比EDPA算法节省了大约9%的功耗;图5(c)UDPA算法比EDPA算法节省了大约8%的功耗。
接着,图6给出了上述两种算法在E
b/N
0=0.4和信源编码码率为100kbps的情况下,以及在解码功耗相近(解码时间大约为80s)的情况下,Forman序列每帧的解码图像PSNR的对比结果,其中UDPA算法的平均PSNR值为29.1db,而EDPA算法的平均PSNR值为26.7db。显而易见,在相近的解码功耗下,采用本发明提出的UDPA算法的视频重建质量有了很大的提高,比基于EDPA算法的平均信噪比增益可达到2-6dB。UDPA算法的图像质量变化比较平缓,而EDPA算法图像质量波动比较大。这是因为UDPA算法对重要数据更多功耗的保护对抵抗误码十分有效,提高了视频的重建质量。另外本发明采用的编码的结构为“IPPPP…”,每帧图像的质量不仅受信道误码的影响,而且受先前帧的误码扩散影响。特别是P帧易受到来自前面参考帧错误传播的影响,所以具有较低的PSNR值。
最后,图7(a)、图7(b)、图7(c)给出了foreman序列的第95帧重建图的视觉效果对比。其中,图7(a)是没有误码的原图;图7(b)是UDPA算法的重建效果图;图7(c)是EDPA算法的重建效果图。图7(b)、图7(c)与图7(a)相比,图中的许多地方发生了变形,但图7(b)的整体视觉效果明显好于图7(c),这进一步从主观角度说明了本发明提出的UDPA算法要优于EDPA算法,在相同的功耗下会获得更好的视频重建质量。