第
"-
卷第
’
期
!
"##-
年
’
月
文章编号:
’##’ % (#,’ "##-) % #’", % #$
(
#’
计算机应用
G6=R:<A@ FRR7845<86LM
!
[67+ "- ‘6+ ’
a5L+ "##-
./012 $流媒½系统中的视音频同步
曹理宇,
姚丹霖
( ½防科技大学 计算机学院,
湖南 长沙
$’##&*)
3 456789:’’; <6=+ 46=>
摘! 要:
流媒½系统中视音频同步是非常重要的。首先简要地介绍了./012
$的相关概念,
分析
了流 媒 ½ 系 统 中 ½ 响 视 音 频 同 步 的 因 素, 出 了 一 套 相 应 的 解 决 方 案, 后, 出 了 一 个 基 于
提
最
给
./012 $的视频监控系统的实现。
关键词:
./012 $;
同步;
流媒½;
?8@A4<BC6D
中图分类号:E/*’(!
!
文献标识码:
F
!"#$%&’#()*+(’# ’, -(./’ *#. *0.(’ (# 12345
$
6+&/*7(#8 7/.(* 6"6+/7
GFH I829:J KFH ?5L278L
! "#$%%& %’ (%)*+,-. "#/-0#-1 23,/%03& 40/5-.6/,7 %’ 8-’-06- 9-#$0%&%:71 ($30:6$3 ;+030
$’##&*1
($/03<
9:6+&*$+;
ECA M9L4C@6L8N5<86L 6O P8QA6 5LQ 5:Q86 8M PA@9 8=R6@<5L< <6 M<@A5=8LS =AQ85 M9M<A=+ T8@M< 6O 577J ./012 $ D5M
8L<@6Q:4AQ U@8AO79J 5LQ <CA O54<6@M 5OOA4<8LS <CA M9L4C@6L8N5<86L 6O P8QA6 5LQ 5:Q86 8L M<@A5=8LS =AQ85 M9M<A= DA@A 5L579NAQJ
ECAL 5 MA< 6O M67:<86LM 5U6:< <CA M9L4C@6L8N5<86L DA@A R@AMAL<AQ 8L QA<587+ T8L5779J <CA 8=R7A=AL<5<86L 6O 5 Q8S8<57 P8QA6
M:@PA8775L4A M9M<A= U5MAQ 6L ./012 $ D5M 8L<@6Q:4AQ+
</" =’&.6;
./012 $V M9L4C@6L8N5<86LV M<@A5=8LS =AQ85V ?8@A4<BC6D
#!
引言
流媒½系统的主要表现对象是视频和音频数据,
因此视
音频的同步是流媒½系统
W6B
研究中的一项重要内容。为
了提高视音频质量,
一方面需要采用先进的视频和音频压缩
算法,
对视频和音频数据进行½可½的压缩,
以便½络传输和
选择./012
$视
接收端重构。从视频压缩算法的选择上来看,
频压缩标准已成为大势所趋,
它具有高压缩比、
½比特率的特
性,
½以最少的数据获得最½的图像质量,
是新一代视频压缩
标准。./012
$标准对视频的编码和音频的编码是分开的,
所
以我们对音频压缩标准的选择½地很大:
既可选择
./01
音
频标准如
?67U9 FG2*、
FFG,
还可选择其他技术上相½成熟、
商业运½上相½成功的音频编码标准,
XEY
½际电信联合
如 (
会)
制定的
1+ &"’
(*"ZURM)
1+ &"(
、
(,ZURM)
等。另一方面需
要立足于已采用的视频和音频压缩算法,
采取相应的同步方
法。媒½之间的同步有三种基本方法:
时间戳法、
同步标记法
及多级复用法。时间戳法既可用于多媒½通信,
也可用于多
媒½数据的存取,
不用改变数据流,
无需附加同步信息,
其应
用广泛程度明显高于其他两种方法。我们选择的./012
$标
其同步语法就是基于时间戳的。
准,
问题叙述的方便,
我们还是沿用后者的概念。在./012
$中,
X
帧图像采用帧内编码方式,
是解码的基准帧。/ 帧和
]
帧图
像采用帧间编码方式,
同时利用了空间和时间上的相关性。
一个
[H/
以
P6R_M<5@<_46QA
十六进制串
(
“#####’])” 开头,
)
由
P6R_46Q8LS_<9RA
标识了这个
[H/
的类型。
在./012
$视频流中 1H[ 1@6:R 6O [H/)
(
是由一个X2[H/
开始的若干
[H/
的组合,
相½于
./012"
中的
1H/。其开始
码为
S@6:R_P6R_M<5@<_46QA
十六进制串
(
“#####’]*” 。
)
./012 $的定时模型定义了解码时间戳 ?EB)
(
和合成时
间戳
GEB)
(
等。?EB 用来表示解码时间,
?EB
的时刻到来
½
时,
访问单元的解码将开始。GEB 表示合成单元在该时刻开
始表现。
"!
同步方案
["½
由于./012
$只定义了同步层语法
,
没有给出具½方
案,
因此我们必须自己来定出与实际应用相适应的同步方案。
通常,
一个流媒½视频系统主要分为五部分:
媒½数据采
集、
编码压缩、
½络传输、
解码、
媒½表现。为了达到良½的同
步效果,
需要分别对各个部分采取相应策略。在媒½数据采
集部分,
需要采集后打时间戳,
现在采集设备一般½支持这一
功½。在编码压缩部分,
无论是硬件压缩还是½件压缩,
½½
支持恒定帧速率的编码。因此,
同步处理时所要考虑的重点
将是后面三部分。
"+ ’!
½络传输中的同步
"+ ’+ ’!
拥塞控制
视音频数据流传输所需带½要求很大,
因此传输视音频
’! ./012 $的相关概念
./012 $
[’½
的
[H/ [8QA6 HU\A4< /’5LA)
(
分为四类,
分别
称为
X2[H/,
/2[H/、
]2[H/
和
B2[H/。其中 B2[H/
用来编码
BR@8<A
对象,
该概念在本文中用不到。前三类由于技术的原
因,
现阶段等价于
./012’ ^ "
中的
X
帧、 帧、 帧,
/
]
因此为了
! !
收稿日期:
"##$ % #& % ’";
修订日期:
"##$ % ’’ % ’’
! !
½者简介:
曹理宇
(’(&)
%
) 男,
, 湖南益阳人,
助理工程师,
硕士,
主要研究方向:
多媒½技术; 姚丹霖
!
(’()*
%
) 男,
, 湖南常德人,
副教授,
万方数据
博士,
主要研究方向:
模式识别、
人工智½+
第
)
期
曹理宇等:
I#J&> <流媒½系统中的视音频同步
K K K)=L
K
数据所需的带½与½络所½提供带½之间的矛盾将长期存
在。½络拥塞会导致媒½数据不½及时到达而被丢弃,
从而
½响视音频的同步。媒½流数据的传输通常用
!"#
而不是
$%#, !"#
却不提供任½拥塞控制,
而
所以必须要在高层提供
控制机制。为此我们提出了一种比较切实可行的速率控制算
即发送端选择性丢帧算法。算法原则上不选择丢音频帧
法,
和
!
帧,
优先丢
"
帧,
其次丢
#
帧。
该算法假设½络带½在短期
“
在
内稳定,
在传送帧的总数一定的情况 下,将 丢 帧 任 务”
&’(
周期内½可½均匀地分摊,
避免了小段时间内的连续丢
帧,
½有效地提高同步效果。算法具½步骤如下。
())估计½络带½
发送端在每 个
&’(
周 期 前 检 测 到
*+,-. / 0,. / 123+2 /
(
[<½
4,56)
先估计½络可用带½。78
9:,;5
等人提出了一个比
,
例如,
序列
#
7 5=
#
7 5)
#
7
,
如果
#
7 5)
丢失,
个的
# 6 !
帧来进行解码,
则
#
7
会自动参考
#
7 5=
来解码。
只要场景变化不大,
这种方法还
会产生一定的误
是很有效的。
½是,
如果
#
7
与
#
7 5=
相隔太远,
差,
所以我们在间隔丢帧后不再进行下一½的间隔丢帧,
而是
½可½地丢后面的帧。因为
&’(
解码存在
#
误差积累,
越往
后误差可½越大,
所以我们要优先丢后面的帧。否则
½
!
3
.
!
2 ’.
#
2( ’ 2
))
"
,.
保留全部
#
帧,
丢掉
时,
(
/01
部 分
C
帧。算 出
C
帧 应 丢 的 帧 数 为
8 $
(
’ 2
))
5
,
!
(
/01
5 .
!
5 ’.
#
。
采取循环间隔丢帧策略:
从后向前依次
.
"
丢弃下标不½为
=
整除的
"
帧,
若没有丢满
8
帧,
则继续下一
½的间隔丢帧,
即从后向前依次丢弃下标不½为
<
整除的
"
7
帧,
依此类推,
从后向前依次丢弃下标不½为
=
(
7
为自然数)
」
较经典的估计模型:
!
$
)% ==
& ’()
*(( &
!
+
整除的
"
帧,
直至丢满
8
帧为止。
否则不丢帧传输。
=8 =K
解码部分控制
通常不会马上就解码,
需要进入缓
视频流到达解码器时,
直到
"$7
时刻才开始解码。一般而言,
冲区,
如果某帧在
"$7
已经小于½前时刻,
则说明它已经超过了解码时刻,
从而被
弃。然而,
仔细分析一下,
我们会发现该帧可½以后还会有
用。还是以上面提到的
&’(
为例,
我们考察
#
)
,
它的
"$7
应
该早于
"
)
"
=
的
"$7,
也就是说它必须在
"
)
"
=
表现前进行解
如果它到达的时间晚于它的
"$7,
码,
以往做法是将它抛弃,
½我们可以看出,
只要
#
)
的到达时间不晚于它的
%$7,
还是
可以将它解码并表现出来的,
而且即便
#
)
的到达时间晚于它
的
%$7,
它还可以用于解码后面的
#
=
"
D
"
<
。
为了方便描述,
我
们不 妨 把 解 码 有 用 的 最 迟 时 刻 称 为 有 效 解 码 底 限,用
9:;</+7=: >)
( 表示帧
>
的有效解码底限。
定义
9(? >)
( 为帧
>
的
9(?,
(
>)为帧 >
的
@(?。
@(?
在设计系统时,
设定视频帧的
采集、
解码和播放½以统一的周期
(
进行,
对视频流数据中因
丢帧空下的数据帧½½采用前向补偿策略予以填充,
即复制
前一帧 予 以 填 充, 此 保 证 采 集 帧 速 率 等 于 播 放 帧 速 率。
以
I#J&> <
理想解码器规定视频解码瞬时完成,
@(? ") $
即
(
9(? ")
然而实际上
"
帧解码是需要时间的,
( 。
且不同的
"
帧
所需的时间还不同,
为了屏½这种差异,
我们规定
"
帧的表现
晚它的解码一个周期
(,
即由原来的
@(? ")$ 9(? ")
(
(
变为
现在的
@(? ")$ 9(? ")2 (。
(
(
这样强制延迟一个周期表现,
还有一个½处就是我们可以½充分利用晚到的帧,
因为很有
可½
"
的前向预测帧
#
也是在它的解码周期内到达,
这样延
迟一个周期表现,
正½可以有时间先解码
#
帧再解码
"
帧。
我
们将视频序列的解码时间和表现时间关系用表
)
来表示。
表
中, 列 时 间 相 差 一 个 周 期
(。我
们 可 以 通 过 该 表 找 到
每
9:;</+7=: >)与 9(? >)之间的关系。
(
(
如表所示, 帧的有效
!
解码底限是
@(? !)
只要在
!
表现前解码出来,
( ,
½可以认为是
有效 的,即
9:;</+7=: !) $ @(? !)
(
( ,又 因 为
@(? !) $
(
9(? !)2
<(,
(
所以
9:;</+7=: !)$ 9(? !)2
<(。
)
的有效解
(
(
#
码底限是
@(? "
<
) 只要在
"
<
表现前解码出来,
(
,
½可以认为
是有效的,
9:;</+7=: #
)
)$
@(? "
<
) 又因为
@(? "
<
)$
即
(
(
,
(
9(? #
)
)2
F(,
(
所以
9:;</+7=: #
)
)$
9(? #
)
)2
F(。
(
(
将这问
题进一 步 一 般 化,假 设 相 邻 两 个
#
帧 间
"
帧 数 为
,,则
9:;</+7=: !) $ 9(? !) 2
(
, 2
=)
9:;</+7=: #) $
(
(
(,
(
9(? #)2(=, 2
=)
"
帧的有效解码底限是
9:;</+7=: ")
(
(。
(
其中
!
:
$%#
吞吐量;
’():
最大报文长度;
*((:
平均来回时
该模型通过显式地估计在同一路径上
间; 平均报文丢失率。
+:
的
$%#
连接所占用的资源,
从而间接地估计了
!"#
数据流½
前的可用资源,
以此来调节源端的发送速率,
被称之为
$%#>
“
9+?6@5:;”
码率控制方法。
(=)选择性丢帧
之前,
我们假设在一个
&’(
中,
除了
A
帧外,
后面跟有
’
个
#
帧,
相邻
A B #
之间有
,
个
C
帧,
例如,
如果
’ $
D,
$
=,
,
则
&’(
帧 序 列 为
!"
)
"
=
#
)
"
D
"
<
#
=
"
E
"
F
#
D
"
G
"
H
。值 得 注 意 的
是,
传输时的
&’(
序列实际上并非如此,
因为
"
帧必须在它
的后续
# B A
帧编码以后才½编码,
所以编码后的帧序列应该
为
!"-
G
"-
H
#
)
"
)
"
=
#
=
"
D
"
<
#
D
"
E
"
F
!-"
G
"
H
,
其中
"-
G
"-
H
为上一个
&’(
的最后两帧, 为下一
&’(
的第一帧。我们定义
&’(
!-
周期为传输从
A
帧开始到下一个
A
帧结束的所有视频序列所
需时间。由上分析可知,
一个
&’(
周期所发送的视频序列
中,
包含上一个
&’(
的最后几个连续的
"
帧,
而自己的最后
几个连续的
"
帧将在下一个
&’(
中出现。假设
.
!
为
A
帧的
估计长度;
#
为
#
帧的估计长度;
"
为
"
帧的估计长度,
这
.
.
三个参数单½½为比特,
其值由具½应用程序指定和调整。
另外,
我们还假设每帧视频表现时间为
$,
则表现一个
&’(
周期所需时间为:
(
/01
$[) 2 ’ 2( ’ 2
))&
,½& (
.
!
½
!
3
时,
说明以½前的
!
,
½络连
A
帧½无法在
(
/01
(
/01
内完全传完,
因此应立即决定丢弃后续的所有
#
帧和
"
帧。
否
则
½
!
3
.
!
2 ’.
#
时,
要丢掉所有
"
帧和部分
#
帧。
容易算
(
/01
!
(
/01
5 .
!
此时丢
#
帧的策
。
.
#
出
#
帧应丢的帧数为
4 $ ’ 5
略如下:
4
(
½
」
「
’
时,
从后向前间隔丢帧,
即依次将下标为
=
奇数的
#
帧丢掉,
直到丢满
4
帧为止。
否则,
在前面间隔丢帧
的基础上,
再从后向前依次丢帧,
直至丢满
4
帧为止。
这样做
的理论依据
[D½
万方数据
# 6 !
帧丢失或未解码,
解码器会自动参考与之最相邻的前一
在I#J&>
<中,如果
#
帧解码所需的前一
是:
"!&I " "
"
计算机应用
%II(
年
! "#$ %)& #,
(
也就是说, 帧只要½在时间段
"#$ %)
%
( ( ,
"#$ %)& #)内解码,
(
它就½准时地在
"#$ %)& #
时刻表
(
现。
表
!"
解码序列
表现序列
’
视频流解码序列和表现序列关系表
%(
$
%(
#
)
!
%(
$
%
!
%
%
)
%
%
&
%
’
)
&
%
(
)
则刷新
出来,
并维持一个表现周期
#。如果找不到对应的帧,
还是维持一个表现周期。重复以上流程,
直
前一表现了的帧,
至结束。
(%)音频播放部分
所以
由于每个视频帧的表现时间½推迟了一个周期
B,
音频帧的解码也要推迟一个周期从音频缓冲区中读取,
即满
足
"#$ +)& #)小于或等于½前时间时才从音频缓冲区中
( (
读取音频数据并解码,
解码后的
A
放入音频播放缓冲区,
采用
4=-3;1E,G><
技术,
从音频播放缓冲区中一点点地取出数据并
表现出来。如果音频缓冲区中没有相应的
A,
则什么也不播,
再重复上面流程。
时钟向前推进一个周期
B
后,
该算法½确保视音频的同步。即便在视音频的表现时间
边界并不一致的情况下 视、
(
音频帧的表现周期不一定是相
,
在不丢帧的情况下,
视音频流间的
同的) 采用我们的算法,
歪斜
EH3F)
(
不会超过
B。如果视频帧周期 ’I.J,
则歪斜小于
这种歪斜,
人是感觉不到的
67K
欧洲½络中心提供的
(
’I.J,
测试数据表明,
½歪斜小于
$I.J
时,
人是丝毫感觉不到失步
。
的)
%(
#
’ %
!
%
%
)
!
%
&
%
’
)
%
%
(
)
通过以上分析,
我们将解码部分的同步方案通过三个线
程来实现。
(!)接收线程
*)初始化。建立两个链表,
记为
+,-.*/01*2/3
和
43/*50
1*2/3,
分别用来记½正常达到的视频帧信息和晚到的视频帧
信息。前者包括帧类型
6、 8)
有效解码底限、
(
7、
、
解码时间、
合成时间、 ( 起始地址) 已解码标志
9,:0;,<3<)
后者包
索引
、
(
;
括帧类型 只有
6、
、
(
8)
有效解码底限、
合成时间、 ( 解码后
索引
。
的起始地址)
*)循环登记。
视频帧
+
数据完全达到缓冲区,
记到达时
( ,
(
( ,
刻为
,--./001.20 +)
如果
"#$ +)3 ,--./001.20 +)
则将相
否则,
根据帧类型
9,:0;,<=>?
(
关信息登记到
+,-.*/01*2/3
中,
015:3)
分别采取相应策:
6
帧:根 据
"04506.70 ’) ! "#$ ’) &( 8 &
%)
算 出
(
(
#
"04506.70 ’)
如果
"04506.70 ’) 9 ,--./001.20 ’)
则立即丢
( ,
(
( ,
否则马上解码并将相关信息登记到
43/*501*2/3。
弃,
8
帧:
则根据
"04506.70 ))! "#$ ))&
(
(
(%8
&
%)
算出
#
"04506.70 ))
如果
"04506.70 )) 9 ,--./001.20 ))
则立即
( ,
(
( ,
丢弃,
否则马上解码并将相关信息登记到
43/*501*2/3。
7
帧: 根 据
"04506.70 %) ! "#$ %) & #
算 出
(
(
"04506.70 %)
如果
"04506.70 %) 9 ,--./001.20 %)
则立即
( ,
(
( ,
丢弃,
否则马上解码并将相关信息登记到
+,-.*/01*2/3。
(%)解码线程
从
+,-.*/01*2/3
中找½前要解码的视频帧
+。
如果找不到
+,
则等下一周期的到来,
否则判断帧类型:
6
帧:
则直接解码;
8
帧:
则从
43/*501*2/3
登记的帧中或从
+,-.*/01*2/3
里
满足
/:;0<:505 !
!
的帧中,
找出一个解码时间最相邻的
8 @ 6
帧½为参考帧进行解码;
类似
8
帧的处理,
43/*501*2/3
登记的帧
从
如果为
7
帧,
中或从
+,-.*/01*2/3
里满足
/:;0<:505 !
!
的帧中,
找出正确
的参考帧进行解码。若没找到想要的参考帧,
则什么也不做,
等待下一个周期的到来;
修改
+,-.*/01*2/3, A
对应项的
/:;0<:505 !
!
½
解码后,
并修改索引,
½之指向已解码的视频帧数据起始地址。
时钟向前推进
B,
重复以上工½。
(&)+,-.*/01*2/3 和
43/*501*2/3
的维护
每隔一个周期
#,从
+,-.*/01*2/3
和
43/*501*2/3
中查找
将其索引所对应的空间回收,
43*<0/=>3
小于½前时间的项,
并将该表项从链表中删除。
%C &"
播放部分的同步
(!)视频播放部分
从
43/*5 0 1*2/3
登 记 的 帧 中 或 从
+,-.*/ 0 1*2/3
里 满 足
找出
DBE
等于½前时间的帧所对应的
/:;0<:505 !
!
的帧中,
&"
方案实现及其同步效果
我们在
L=><,FJ %III
环境下以MD
N N OC I
为程序设计平
台,
采用
D @ E
结构,
利用微½的
4=-3;1EP,F
技术,
开发了一个
(
图如图
!
所
基于K8QRS
’的实时监控系统。其过滤器 A=/13-)
示。其中,
视频采集过滤器由摄像头驱动程序提供,
音频采集
及播放过滤器由声卡驱动程序提供。音频的编解码过滤器和
M=<3,T3><3-3-
由
4=-3;1UVC I
自身提供,
UM=<
编解码过滤器由
[(½
U9=<
的官方½站 得到。负责视音频½络传送和接收的四
个过滤器用来实现媒½流的传送及拥塞控制。视频解码同步
控制用来实现视频解码播放的同步控制,
音频解码同步控制
将每帧音频的解码时间推迟一个周期
B。视频播放同步控制
用来实现播放部分的同步控制。
为了½够比较该系统的同步效果,
我们改造
4=-3;1EP,F
的
E4W
包中的一个例子程序
4E+31F,-H X 4UE4W X E*.:/3J X
(
D N N X 4=-3;1EP,F X A=/13-J X
) 生成两个不具有拥塞控制½支持
,
K8QRS ’传输的过滤器:
视频传送过滤器和视频接收过滤器。
将这两个过滤器分别替换我们系统中的
M=<3, +31E3><3-
和
M=<3, +31T3;=393-,
得到一个新的系统,
为了区别,
我们将原系
统称为系统
!,
将新系统称为系统
%。将两系统放在同一局域
½中,
½采用
D6A &(% Y %$$)
(
视频格式来先后运行,
发现两者
的同步效果½不错。然而½我们人为地减小½络带½ 同时
(
传送多个文件) 先运行系统
!,
,
发现系统
!
的客户端画面会
同样传送相同
有½微的不连贯现象。而我们再运行系统
%,
的文件,
发现系统
%
的客户端画面经常长时间停滞,
同时还有
马赛克存在。我们知道,
造成画面不连贯的原因是由于½络
掉帧½得播放器不得不重播前一帧视频的缘故。我们用变量
4-,:A-*.3+G.23-
来表示连续掉帧数,
初值为
I,
½播放器重
播前一视频帧时就
4-,:A-*.3+G.23- N N
,
½播放器播放新帧
时,
4-,:A-*.3+G.23-
清 零。 我 们 用 另 一 变 量
K*Z4-,:A-*.3+G.23-
来 记 ½ 一 个
R[M
中 所 有
4-,:A-*.3+G.23-
的最大值,
并保存到文本文件中。分别运
行系统
!
和系统
%,
得到两组
K*Z4-,:A-*.3+G.23-
如下:
%, &, ’, &, &, !, &…
系统
!: %, &, &, %, %, !,
系统
%: #, O, #, (, #, V,
(, O, O, O, #, $, $…
万方数据
项,
再从该项中找到对应帧的索引,
采用
4=-3;14-*F
技术表现
第
!
期
曹理宇等:
#$%&’ (流媒½系统中的视音频同步
" " "!J!
"
这两组数据正½印证了前面我们观察两个系统同步效果
的差异。试验证明,
我们的选择性丢帧算法对改善同步效果
是很有效的。
("
结语
本文对流媒½系统中½响同步的各个部分进行了深入分
析,
并采取了相应对策。在拥塞控制时,
采用选择性丢帧,
该
算法的局限性在于假定½络带½短期稳定,
各类帧的平均大
小估计要适½,
因此该算法对场景变化剧烈的应用系统不太
适应,
½对场景变化不是很大的应用系统 如视频会议、
(
视频
监控等)
还是非常有效的。解码部分控制通过充分利用已到
的帧数据,
进一步提高同步质量。½该算法要附带增加缓冲
区缓存迟到视频帧,
增大了内存开销。另外,
本文没有考虑到
涉及缓冲区的同步问题,
这些将是以后研究的重点。
参考文献:
2 !3 " 45*657*8 9: /;* #$%&’ ( </,=>,6> 2 <3 ? @<4 A @%B CDB%! A <BEF A
G&!!H #,6H E111H IJJ(E?
2 E3 " @<4 A @%B!(( F K ’! @<4 A @%B CDB! A <BEF A G&! ! IE E 1 ! H ! L #,-
!FFM?
2 J3 " @<4 A @%B!( ( F K ’E @<4 A @%B CDB! A <BE F A G&! ! IE E 1 E H D9N-9 H
#,6O; !FFM?
2 (3 " PQ4R) <H S%T@I P? U9V/*6 W*O;,=7XWX /9 XVYY96/ *=>’/9’*=> O9=’
Z*X/79= O9=/69+2 U3 ? D*O;=7O,+ 6*Y96/H P*0? !FF[?
2 L3 " ;//Y\ A A 888? ]57>? 96Z A H CV=* E11(?
图
!"
基于#$%&’
(的实时监控系统过滤器图
为了验证我们解码部分和播放部分同步方案的有效性,
我们在视频播放同步控制过滤器中设一接口可用来显示某段
时间内从
)*+,-./,0+*
中选取并交给播放器播放的视频帧数。
我们发现从
)*+,-./,0+*
中选取视
½我们在局域½上试验时,
频帧数几乎为
1,
½½我们人为减少局域½可用带½时,
我们
发现从
)*+,-./,0+*
中选取视频帧数会剧增。这说明充分利
用晚到视频帧的策略在½络带½有限的情况下是非常必要
的。
( 上接第
!E(
页)
益矩阵,
对多个运动目标进行同时独立的跟踪,
由于卡尔曼滤
波估计可以得到运动目标连续的运动状态,
因此对每一个目
标进行分别预测可以很简单的保持不同帧之间目标的对应关
系,
只需在估计的范围内确认目标的存在即可,
减少了搜索计
算量。
实验结果显示,
这种方法可以取得较为满意的结果,
该技
术已在实际系统中运用。
J"
实验结果
实验½用的是图像分辨率为
JM( ^ EMM
帧率为每秒
EL
帧
的视频图像序列。图
!
显示了针对一个目标从初始化开始到
跟踪趋于稳定的卡尔曼滤波的½½误差变化。同时,
E
给
图
出了比较典型的几幅运动目标检测结果,
我们以检测到的运
动½辆的外接矩½½为检测结果。
图
E"
视频图片序列跟踪结果
参考文献:
图
!"
½½估计误差变化 分别为
!
分量和
"
分量)
(
2 !3 "
黄 波H 杨 勇H 王 桥
H
等
?
基于 模 糊聚类 和时 域跟 踪的 视 频 分 割
2 C3 ?
通信学报H
E11!H EE_ !E‘ \ EE a EM?
2 E3 " $bI CH Q@ <H cdbI& Re? bV/9W,/7O *]/6,O/79= 9: W957=Z 90f*O/X
VX7=Z WV+/7Y+* :*,/V6*X ,=> WV+/7Y+* :6,W*X2 b3 ? @%%% @=/ <-WY9X7’
VW 9= B76OV7/X ,=> <-X/*WX _ @<Bb< ‘ E111 2 B 3 ? &*=*5,H #,-
E111?
2 J3 " d4I& QH GbI& GBH Q4&bI #H
#$ %&’
#V+/7Y+,/:96W #V+/7X*=X96
PVX79= 87/; b>,Y/75* a U,/* ),/, B9WWV=7O,/79=2 C3 ? @%%% D6,=X?
9= b*69XY,O* ,=> %+*O/69=7O <-X/*WXH !FF[H JJ_ !‘ \ !EJ a !EK?
2 (3 "
边肇祺H 张学工H 等? 模式识别2
#3 ?
北京\ 清华大学出版社H
E111?
2 L3 "
郭尚来? 随机控制2
#3 ?
北京\ 清华大学出版社H
!FFF?
本文提出了一种基于模糊聚类和卡尔曼滤波的多运动目
标检测的技术,
并将其应用于½辆检测与跟踪。
对运动目标的分割采用了改进的模糊
B
均值聚类算法,
借鉴神经½络的竞争学习的思想,
引入修正参数对隶属度矩
阵进行修正,
在保持模糊
B
均值聚类算法较½的分类质量的
条件下,
加快聚类的收敛速度,
提高了聚类的实时性。
获得初始分割以后,
采用卡尔曼滤波对运动目标进行跟
万方数据
踪。本文根据视频序列的情况构造了相应的状态方程以及增
评论