基于PID控制和接收帧率稳定模型的视频传输控制方法转让专利

申请号 : CN200810103685.7

文献号 : CN100593953C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 戴琼海陆峰肖红江

申请人 : 清华大学

摘要 :

本发明涉及基于PID控制和接收帧率稳定模型的视频传输控制方法,属于多媒体通信技术领域,该方法包括:发送端通过视频源输入的视频信号得到原始的模拟视频数据;通过视频采集得到采集后的数字视频信号;对数字视频信号进行可伸缩或不可伸缩的视频编码,得到压缩后的视频编码码流;通过接收端的反馈信号对压缩后的视频编码码流速率进行控制;将控制后的码流通过网络传输给接收端;接收端将接收到的码流先解码,然后存储在缓存区,等待播放,同时将该缓冲区当前容量b(t)反馈给发送端作为传输码率控制的反馈输入。本发明所设计方法用于实时无线视频系统,可以有效地减小接收端缓冲延时,增强系统稳定,防止视频缓冲区发生上溢或下溢的错误。

权利要求 :

1、一种基于PID控制和接收帧率稳定模型的视频传输控制方法,其特征在于,包括 以下步骤:

1)首先发送端通过视频源输入的视频信号得到原始的模拟视频数据;

2)发送端通过视频采集得到采集后的数字视频信号;

3)发送端对数字视频信号进行可伸缩或不可伸缩的视频编码,得到压缩后的视频编 码码流;

4)发送端通过接收端的反馈信号对压缩后的视频编码码流速率进行控制;

5)发送端将控制后的码流通过网络传输给接收端;

6)接收端将接收到的码流先解码,然后存储在缓存区,等待播放,同时将该缓冲区 当前容量b(t)反馈给发送端作为发送端的传输码率控制的反馈输入;

所述步骤4)中的传输码率控制的具体实现方法,包括以下步骤:

41)发送端首先计算设定的接收端缓存区容量b’与反馈的接收端当前时刻t下真实缓 存容量b(t)的差值e(t),若e(t)小于一个设定的敏感门限E时,则将e(t)置于0,该敏感门限 E是一个大于零的正整数,利用e(t)计算当前时刻t最佳的发送码率r(t),该r(t)的计算方法 如下:首先利用PID控制基本公式计算一个中间控制变量Δu(t):

Δu ( t ) = K p [ e ( t ) - e ( t - 1 ) ] + T 0 T i e ( t ) + T d T 0 [ e ( t ) - 2 e ( t - 1 ) + e ( t - 2 ) ] 上述公式中Δu(t)是计算过程中的一个中间变量,参数KP、T0、Ti、Td为PID控制器 参数,由实际系统状况进行整定得到;

42)利用中间变量Δu(t)计算当前时刻t的最佳发送码率r(t):

r(t)=r(t-1)×(1-Δu(t))

43)根据得到的当前最佳发送码率r(t),逐步将输入的视频码流的码率调整到r(t)。

2、如权利要求1所述方法,其特征在于,所述步骤43)根据得到的当前最佳发送码 率r(t),逐步将输入的视频码流的码率调整到r(t)的具体调整如下:(1)若为可伸缩的视频编码码流,首先采用码流的最高精细粒度,得到最大码率的 码流,同时判断其码率是否小于等于r(t),如果是,则发送该码流;

如果该码率大于r(t),则判断是否能够降低精细粒度;如果是,则降低精细粒度,并 且重新判断码率是否小于等于r(t),如果是,则发送该码流;

如果无法继续通过降低精细粒度使该码率小于等于r(t),则判断是否存在B帧;如果 存在,则在一个图像组内按照从后向前的顺序逐一丢弃B帧,使该码率小于等于r(t)后发 送该码流;

如果不存在B帧,或丢弃B帧后无法使该码率小于等于r(t),则判断是否存在P帧, 如果存在P帧,则在该图像组内按照从后向前的顺序逐一丢弃P帧,使该码率小于等于 r(t)后发送该码流;

如果不存在P帧,或丢弃P帧后仍无法使该码率小于等于r(t),此时将当前码流数据 包发送到网络;

(2)若为不可伸缩的视频编码码流,则判断是否存在B帧;如果存在,则在该图像 组内按照从后向前的顺序逐一丢弃B帧,使该码率小于等于r(t)后发送该码流;

如果不存在B帧,或丢弃B帧后无法使该码率小于等于r(t),则判断是否存在P帧, 如果存在P帧,则在该GOP内按照从后向前的顺序逐一丢弃P帧,使该码率小于等于r(t) 后发送该码流;

如果不存在P帧,或丢弃P帧后仍无法使该码率小于等于r(t),此时将当前码率的码 流数据包发送到网络。

说明书 :

技术领域

本发明属于多媒体通信技术领域,特别涉及一种基于PID控制器的无线视频通信的传 输码率控制方法。

背景技术

不同载体所携带的信息量是不同的,例如文字是各种信息载体中最为简洁的形式,而 视频则是一种携带着巨大信息量的形式。随着电子技术和计算机技术的不断发展,视频在 信息交互的过程中起到的作用越来越大,而随着网络技术尤其是无线网络技术的进步,视 频信息的应用也逐渐由最初的本地存储向网络传输方向发展,而其中,实时视频的无线传 输和回放是对于网络视频技术要求最高的应用。该应用强调实时性,即发送端的视频数据 是实时采集编码的,所以要求传输速率必须和采集编码速率相等,否则会造成发送端数据 堆积甚至溢出崩溃。
目前普遍用于信息传输的无线internet网络是一种尽力而为(best effort)网络,它本 身不为任何网络应用预留带宽,也不能保证实时性、波动性等在实时视频传输过程中所需 要考虑到的关键因素。尤其对于无线网络链路,本身存在延时较大,带宽有限,以及网络 情况不稳定、抖动较大的不利因素,更加不利于其上的实时视频信号的传输。为了实现基 于无线网络的高质量实时视频传输应用,必须满足回放时延恒定的条件,则必须根据当前 网络状况,采取一定的控制策略对传输码率进行实时动态的调整。
比例积分微分(PID)控制器是在现代控制领域中应用最广泛也最成熟有效的一种控 制方式。PID控制器基于闭环系统的反馈信号,利用比例、积分和微分这三种控制环节中 的全部或部分对系统进行控制,具有结构简洁、整定简单和控制效果优秀的特点。但PID 控制也有其局限性,在受控系统是非线性、时变或耦合的情况下控制效果会下降,甚至失 效。严格地说,实际物理系统不可能是完全的线性时不变系统,但是在一定范围内,通过 合理的近似和简化,特定系统往往可以近似看作具有线性时不变的性质。整体看来,PID 虽然在使用上具有一些局限,但是在实际应用中往往具有最好的效果。
目前已有的网络视频传输方法往往基于率失真(R-D)优化模型进行,该模型的特点 是以最小的传输码率传输最高质量的视频。利用这种模型设计的视频传输方法,往往以视 频总质量的提高为目标,但是没有考虑到对于每一时刻码流或者帧率的精确控制。而在一 些应用中,如赛场直播等对实时性要求很高的场合,视频的质量往往不是用户首要的要求, 而视频传输的稳定和同步性才是最重要的指标。

发明内容

本发明的目的是为克服已有技术的不足之处,提出一种基于PID控制和接收帧率稳定 模型的视频传输控制方法,该方法面向无线视频传输领域内的实时视频传输,可满足视频 传输的实时性,即维持一个恒定的回放延时,防止延时增加造成实时性下降。同时在此基 础上尽可能地提高视频重建和回放质量。
本发明提出的一种基于PID控制和接收帧率稳定模型的视频传输控制方法,包括以下 步骤:
1)首先发送端通过视频源输入的视频信号得到原始的模拟视频数据;
2)发送端通过视频采集得到采集后的数字视频信号;
3)发送端对数字视频信号进行可伸缩或不可伸缩的视频编码,得到压缩后的视频编 码码流;
4)发送端通过接收端的反馈信号对压缩后的视频编码码流速率进行控制;
5)发送端将控制后的码流通过网络传输给接收端;
6)接收端将接收到的码流先解码,然后存储在缓存区,等待播放,同时将该缓冲区 当前容量b(t)反馈给发送端作为发送端的传输码率控制的反馈输入。
本发明的特点及有益效果
本发明设计的基于PID控制和接收帧率稳定模型的视频传输控制方法,通过引入PID 调节策略并且做出相应改进,可以在一定程度上精确地控制无线视频系统的回放延时,满 足实时性的要求。对于其它具有类似要求下的应用,本发明所属的控制方法也同样具有一 定的参考性。
本发明实现的效果如下:发送端的编码和传输帧率是恒定的,并且接收端视频缓冲帧 数为一给定值,这样系统的回放延时也会恒定在一个固定值;当接收端视频缓冲区真实帧 数在给定帧数之下时,说明网络传输可用带宽不足,PID调节方法根据反馈动态调节使得 发送端降低视频精细粒度或者丢弃一些非重要帧以降低码率,从而增加发送帧数;当接收 端视频缓冲区真实帧数在给定帧数之上时,说明网络条件良好,则PID调节方法根据反馈 动态调节使得发送端增加视频分辨率以增加码率,从而降低发送帧数。在以上两种情况下, 通过PID调节器的动态调节,都可以使得接收端的缓冲帧数稳定趋于给定值,从而实现实 时视频传输的恒定延时,防止发送端视频数据上溢或下溢。
本发明的控制方法具有鲁棒性强,针对网络带宽变化适应性强,结构简介且实现容易 的优点。尤其在针对实时视频传输应用时,可以有效控制视频回放延时为一恒定值,保证 系统运行的实时性和稳定性。

附图说明

图1是本发明的控制方法的基本流程图;
图2是本发明的码流控制方法实施例详细流程图;
图3是一个示例视频码流的一个GOP(图像组)的组成结构。

具体实施方式

本发明设计的码流控制方法,总体流程图如图1所示,包括以下步骤:
1)首先发送端通过视频源输入的视频信号得到原始的模拟视频数据;
2)发送端通过视频采集得到采集后的数字视频信号;
3)发送端对数字视频信号进行可伸缩或不可伸缩的视频编码,得到压缩后的视频编 码码流;
4)发送端通过接收端的反馈信号对压缩后的视频编码码流速率进行控制;
5)发送端将控制后的码流通过网络传输给接收端;
6)接收端将接收到的码流先解码,然后存储在缓存区,等待播放,同时将该缓冲区 当前容量b(t)反馈给发送端作为发送端的传输码率控制的反馈输入。
上述步骤4)中的传输码率控制的具体实现方法,如图2所示,包括以下步骤:
41)发送端首先计算设定的接收端缓存区容量b’与反馈的接收端当前时刻t下真实缓 存容量b(t)的差值e(t),若e(t)小于一个设定的敏感门限E时,则将e(t)置于0(该敏感门限 E是一个大于零的正整数,一般可以设定为1~10帧视频图像),利用e(t)计算当前时刻t 最佳的发送码率r(t),r(t)的计算方法如下:
首先利用PID控制基本公式计算一个中间控制变量Δu(t):
Δu ( t ) = K p [ e ( t ) - e ( t - 1 ) ] + T 0 T i e ( t ) + T d T 0 [ e ( t ) - 2 e ( t - 1 ) + e ( t - 2 ) ]
上述公式中Δu(t)是计算过程中的一个中间变量,参数KP、T0、Ti、Td为PID控制器 参数,由实际系统状况进行整定得到;
42)利用中间变量Δu(t)计算当前时刻t的最佳发送码率r(t):
r(t)=r(t-1)×(1-Δu(t))
43)根据得到的当前最佳发送码率r(t),逐步将输入的视频码流的码率调整到r(t);具 体调整如下:
(1)若为可伸缩的视频编码码流,首先采用码流的最高精细粒度(Granularity),得 到最大码率的码流,同时判断其码率是否小于等于r(t),如果是,则发送该码流;
如果该码率大于r(t),则判断是否能够降低精细粒度;如果是,则降低精细粒度,并且重 新判断码率是否小于等于r(t),如果是,则发送该码流;
如果无法继续通过降低精细粒度使该码率小于等于r(t),则判断是否存在B帧;如果存在, 则在一个GOP(图像组)内按照从后向前的顺序逐一丢弃B帧,使该码率小于等于r(t)后 发送该码流;
如果不存在B帧,或丢弃B帧后无法使该码率小于等于r(t),则判断是否存在P帧,如果 存在P帧,则在该GOP内按照从后向前的顺序逐一丢弃P帧,使该码率小于等于r(t)后 发送该码流;
如果不存在P帧,或丢弃P帧后仍无法使该码率小于等于r(t),此时将当前码流数据包发 送到网络;
(2)若为不可伸缩的视频编码码流,则判断是否存在B帧;如果存在,则在该GOP 内按照从后向前的顺序逐一丢弃B帧,使该码率小于等于r(t)后发送该码流;
如果不存在B帧,或丢弃B帧后无法使该码率小于等于r(t),则判断是否存在P帧,如果 存在P帧,则在该GOP内按照从后向前的顺序逐一丢弃P帧,使该码率小于等于r(t)后 发送该码流;
如果不存在P帧,或丢弃P帧后仍无法使该码率小于等于r(t),此时将当前码率的码流数 据包发送到网络。
本发明的方法结合实施例进一步说明如下:
图3所示是一个实际编码后的视频码流中的一个GOP,它包括I帧,P帧和B帧3种 结构的视频帧,其排列顺序如图所示为IBBPBBP。该码流是由可伸缩视频编码方法编码得 到的。
现以上述码流为例说明本发明实现的视频码率调节方法,具体过程如下:
1)发送端通过视频源输入的视频信号得到原始的模拟视频数据;
2)发送端通过视频采集得到采集后的数字视频信号;
3)发送端对数字视频信号进行可伸缩的视频编码,得到压缩后的视频编码码流,其 中每一个GOP的结构如图3所示,整个视频码流由若干该GOP组成;
4)发送端通过接收端的反馈信号对压缩后的视频编码码流速率进行控制,具体过程 如下:
41)本实施例的发送端接收到接收端当前时刻t下真实缓存容量b(t)=40帧,而设定的 接收端缓存区容量b’=50帧,它们的差值e(t)=50-40=10帧。本实施例设敏感门限E的取值 为5,则e(t)>E,所以e(t)不置0。
将e(t)=10带入下边公式得到Δu(t):
Δu ( t ) = K p [ e ( t ) - e ( t - 1 ) ] + T 0 T i e ( t ) + T d T 0 [ e ( t ) - 2 e ( t - 1 ) + e ( t - 2 ) ]
本实施例设参数KP=0.04、T0=0.01、Ti=1.0、Td=0.0002,t-1和t-2时刻记录的数据分 别为e(t-1)=8,e(t-2)=7,计算得到的Δu(t)=0.2。
42)利用中间变量Δu(t)计算当前时刻t的最佳发送码率r(t),本实施例中上一时刻t-1 时的发送码率r(t-1)=100kbps,则当前时刻的发送码率为:
r(t)=r(t-1)×(1-Δu(t))=100×(1-0.2)=80kbps
43)根据得到的当前最佳码率r(t),逐步将输入的视频码流的码率调整到r(t);具体调 整如下:
(1)因为码流可伸缩的视频编码码流,所以首先采用码流的最高精细粒度,得到最 大码率的码流。此时码率等于150kbps,大于最佳发送码率r(t),则不断降低精细粒度;
当已经降低到允许的最低的精细粒度,而此时码流为120kbps仍然大于最佳发送码率 r(t),则如图3所示,从一个GOP中开始逆序丢弃B帧,丢弃的顺序为B帧4、B帧3、B 帧2、B帧1;
当4个B帧全部被丢弃,而此时码率为100kbps仍然大于最佳发送码率r(t),则如图3 所示,从一个GOP中开始逆序丢弃P帧,丢弃顺序为P帧2、P帧1;
当在丢弃P帧2后,此时码率为75kpbs,小于最佳发送码率r(t)=80kbps,则码率调整 结束。实际准备发送的码流包括I帧和P帧1;
5)发送端将控制后的码流通过网络传输给接收端;
6)接收端将接收到的码流先解码,然后存储在缓存区,等待播放,同时将该缓冲区 当前容量b(t)反馈给发送端作为发送端的传输码率控制的反馈输入。