一种嵌入式多媒体播放系统的音视频同步方法

文档序号:7777583阅读:246来源:国知局
一种嵌入式多媒体播放系统的音视频同步方法
【专利摘要】本发明提供一种嵌入式多媒体播放系统的音视频同步方法,其特征在于:包括如下步骤:步骤1.接收音视频数据流,并解码,步骤2.解码后的音视频帧流入显示缓冲区或插队缓冲区,解码后的音频帧进入音频缓冲区;对于按正常顺序解码后的视频帧进入显示缓冲区,对于前一分组解码晚于后一分组解码的前一分组视频帧进入插队缓冲区;步骤3.同步播放:本发明具有的优点和积极效果是:本发明应用于轨道交通行业PIS系统中,完成多媒体信息从操作控制中心(OCC)下发并传输至车上,最终实现音视频同步展现给乘客的功能,提高乘客乘坐地铁车辆时的用户体验度。
【专利说明】一种嵌入式多媒体播放系统的音视频同步方法
【技术领域】
[0001]本发明属于通信领域,尤其是涉及一种嵌入式多媒体播放系统的音视频同步方法。
【背景技术】
[0002]由于网络的不可靠性和传输时延等因素,实时数据通信过程中经常会遇到诸如分组丢失、乱序、抖动、重复等一系列问题。为了能在网络中有效地传输实时数据,IETF (Internet Engineering Task Force, Internet 工程任务组)开发了 RTP(Real-timeTransport Protocol,实时传输协议)。RTP为交互式音频、视频等具有实时特性的数据提供端到端的传送服务,包括两个关系密切的协议RTP和RTCP (Real-timeTransport ControlProtocol,实时传输控制协议)。
[0003]RTP是用于Internet上针对多媒体数据流的一种传输协议,但RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。RTCP和RTP —起提供流量控制和拥塞控制服务。服务器利用RTCP信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。
[0004]现有技术中,传统的PIS系统中,多媒体信息的传输和发布是通过模拟或者半数字化的方式实现的,随着网络技术和计算机技术的发展,现有技术已无法满足用户对高清视频方面的要求。

【发明内容】

[0005]本发明要解决的问题是提供一种嵌入式多媒体播放系统的音视频同步方法。
[0006]为解决上述技术问题,本发明采用的技术方案是:
[0007]一种嵌入式多媒体播放系统的音视频同步方法,包括如下步骤:
[0008]步骤1.接收音视频数据流,并解码:
[0009]启动接收RTP音视频包的线程,接收RTP包,之后对其进行解析,解析其携带的数据类型,即RTP音频包或RTP视频包,若是RTP音频包进入音频接收缓冲区,后发送到音频解码器进行解码;若是RTP视频包进入排队缓冲区,首先对RTP视频包进行解码前的排序处理,后发送到视频解码器进行解码;
[0010]视频帧刚进入排队缓冲区内的处理过程:
[0011]RTP包直接进入排队缓冲区,开始进行排队解码,首先根据RTP视频包所携带的分组号,从后到前先找到该分组其他包的位置,然后在该分组内,利用自身携带的序列号在该组内从大到小,开始逐个比较来快速确定自己在该分组的位置;
[0012]RTP视频帧解码过程中:
[0013]在第i分组即将解码完成时,判断第i+Ι分组是否有完整I帧:
[0014]若是,进行解码即可;[0015]若否,将该分组移至缓冲区,之后判断第i+2分组是否有I帧:
[0016]若有进行解码,即将解码完成时,判断是否在播放第i+2分组数据;若是则丢弃第i+Ι分组,若否则启动第i+Ι分组解码;
[0017]若无将第i+2分组移到缓冲区,后判断是否接收到第i+Ι分组的视频帧:
[0018]若有则将第i+Ι分组移出缓冲区进行解码;
[0019]若无继续进行判断第i+3分组是否有I帧:
[0020]若无丢弃缓冲区中的第i+Ι分组;
[0021]若有进行解码,后根据显示缓冲区的反馈判断是否播放第i+3分组:
[0022]若播放,则丢弃第i+Ι分组和第i+2分组;
[0023]若不播放,则返回判断第i+Ι分组是否有完整I帧,循环判断。
[0024]步骤2.解码后的音视频帧流入显示缓冲区或插队缓冲区:
[0025]解码后的音频帧进入音频缓冲区;
[0026]对于按正常顺序解码后的视频帧进入显示缓冲区,对于前一分组解码晚于后一分组解码的前一分组视频帧进入插队缓冲区。
[0027]步骤3.同步播放:
[0028]音频缓冲区内的音频帧进行连续播放;
[0029]显示缓冲区内的视频帧进行顺序播放,插队缓冲区的视频帧进行插队播发;
[0030]其中视频帧的播放时间是利用NTP和RTP时间戳计算出当前视频帧对应音频帧播放的时间而得到的,判断当前缓冲区的最前面一帧的时间标记与Time土 Λ关系,其中Time土 Λ表示允许视频巾贞进行播放的时间范围:
[0031]若当前缓冲区的最前面一帧的时间标记在Time土 Λ范围内,则正常播放;
[0032]若当前缓冲区的最前面一帧的时间标记小于Time- Δ,(帧来晚了)丢弃该视频帧;
[0033]若当前缓冲区的最前面一帧的时间标记大于Time+ Δ,(帧来早了)重复播放一次前一帧,之后再次比较,进行判断:
[0034](I)若时间标记在Time土 Λ范围内,则正常播放;
[0035](2)若仍大于则转到抖动缓冲区,向前寻找下帧,直到前一帧总共重播3次,抖动缓冲区已有3巾贞,最后一次比较;若时间标记在Time土 Λ范围内,贝U正常播放;
[0036]否则切换到以视频为标准,一次性调整音频,之后重新切换回到以音频为标准。
[0037]步骤4.显示缓冲区将信息反馈给视频解码器。
[0038]进一步的,在步骤I中,对于刚收到的RTP包若是这个分组的第一个包,首先判断自己的帧类型:
[0039]若不是I帧,直接根据分组号的大小确定自己的分组位置,在比较过程中,发现没有和自己一样的分组号,则移到第一个开辟新的排队块区;
[0040]若是I巾贞,找到自己分组的块排队区,进行是否有I帧判断,若该块区有已有I帧,则这个包自动丢弃;否则是一般情况,正常处理即可。
[0041]进一步的,在步骤2中,显示缓冲区和插队缓冲区的初始值大小根据视频压缩格式进行动态调整。
[0042]进一步的,在步骤3中,采取对接收到的音频帧采用基于播放时限的同步方法,用接收端缓存的音频帧来补偿网络的时延抖动,通过显示缓冲区来实现语音回放。
[0043]本发明具有的优点和积极效果是:本发明应用于轨道交通行业PIS系统中,完成多媒体信息从操作控制中心(OCC)下发并传输至车上,最终实现音视频同步展现给乘客的功能,提高乘客乘坐地铁车辆时的用户体验度。
【专利附图】

【附图说明】
[0044]图1是本发明的结构示意图;
[0045]图2是本发明的视频帧刚进入排队缓冲区的处理流程图;
[0046]图3是本发明的视频帧解码处理流程图;
[0047]图4是本发明的显示缓冲区内的视频帧处理流程图。
【具体实施方式】
[0048]如图1至4所示:
[0049]本发明一种嵌入式多媒体播放系统的音视频同步方法,包括如下步骤:
[0050]步骤1.接收音视频数据流,排序后解码:
[0051]启动接收RTP音视频包的线程,接收RTP包,之后对其进行解析,解析其携带的数据类型,即RTP音频包或RTP视频包,若是RTP音频包进入音频接收缓冲区,后发送到音频解码器进行解码;若是RTP视频包进入排队缓冲区,首先对RTP视频包进行解码前的排序处理,后发送到视频解码器进行解码;
[0052]如图2所示,为视频帧刚进去排队缓冲区内的处理过程:
[0053]RTP视频包直接进入排队缓冲区,首先根据RTP视频包所携带的分组号,进行判断,
[0054]若没有和自己一样的分组号则开辟一个新组块;
[0055]若有从后到前先找到该分组其他包的位置,然后在该分组内,利用自身携带的序列号在该组内从大到小,开始逐个比较来快速确定自己在该分组的位置;之后在判断是否为I帧,否的话,进行组内比较确定组内位置;
[0056]是为I帧的话,则判断该块区是否已有I帧,是的话则丢弃此帧,若不是则进行组内比较确定组内位置。
[0057]如图3所示,RTP视频帧解码过程中:
[0058]在第i分组即将解码完成时,判断第i+Ι分组是否有完整I帧:
[0059]若是,进行解码即可;
[0060]若否,将该分组移至缓冲区,之后判断第i+2分组是否有I帧:
[0061]若有进行解码,即将解码完成时,判断是否在播放第i+2分组数据;若是则丢弃第i+Ι分组,若否则启动第i+Ι分组解码;
[0062]若无将第i+2分组移到缓冲区,后判断是否接收到第i+Ι分组的视频帧:
[0063]若有则将第i+Ι分组移出缓冲区进行解码;
[0064]若无继续进行判断第i+3分组是否有I帧:
[0065]若无丢弃缓冲区中的第i+Ι分组;
[0066]若有进行解码,后根据显示缓冲区的反馈判断是否播放第i+3分组:[0067]若播放,则丢弃第i+Ι分组和第i+2分组;
[0068]若不播放,则返回判断第i+Ι分组是否有完整I帧,循环判断。
[0069]步骤2.解码后的音视频帧流入显示缓冲区或插队缓冲区:
[0070]解码后的音频帧进入显示缓冲区;
[0071]对于按正常顺序解码后的视频帧进入显示缓冲区,对于前一分组解码晚于后一分组解码的前一分组视频帧进入插队缓冲区;
[0072]步骤3.同步播放:
[0073]显示缓冲区内的音频帧进行连续播放;
[0074]显示缓冲区内的视频帧进行顺序播放,插队缓冲区的视频帧进行插队播发;
[0075]其中视频帧的播放时间是利用NTP和RTP时间戳计算出当前视频帧对应音频帧播放的时间而得到的,判断当前缓冲区的最前面一帧的时间标记与Time土 Λ关系,其中Time土 Λ表示允许视频巾贞进行播放的时间范围,如图4所示:
[0076]若当前缓冲区的最前面一帧的时间标记在Time土 Λ范围内,则正常播放;
[0077]若当前缓冲区的最前面一帧的时间标记小于Time- Δ,(帧来晚了)丢弃该视频帧;
[0078]若当前缓冲区的最前面一帧的时间标记大于Time+ Δ,(帧来早了)重复播放一次前一帧,之后再次比较,进行判断:
[0079](I)若时间标记在Time土 Λ范围内,则正常播放;
[0080](2)若仍大于则转到抖动缓冲区,向前寻找下帧,直到前一帧总共重播3次,抖动缓冲区已有3巾贞,最后一次比较;若时间标记在Time土 Λ范围内,贝U正常播放;
[0081]否则切换到以视频为标准,一次性调整音频,之后重新切换回到以音频为标准;
[0082]步骤4.显示缓冲区将信息反馈给视频解码器。
[0083]在步骤I中,对于一些特殊情况做以下处理:
[0084]对于刚到的RTP包若是这个分组的第一个包,首先判断自己的帧类型:
[0085]若不是I帧,直接根据分组号的大小确定自己的分组位置,在比较过程中,发现没有和自己一样的分组号,则移到第一个开辟新的排队块区;
[0086]若是I巾贞,找到自己分组的块排队区,进行是否有I帧判断,若该块区有已有I帧,则这个包自动丢弃;否则是一般情况,正常处理即可。
[0087]在步骤2中,显示缓冲区和插队缓冲区初始值大小根据视频编码格式动态可调,显示缓冲区为一个正常范围大小,即可以存放12帧视频帧大小的显示队列,上限为15帧,下限为3帧,当小于3或大于15帧时,表示下溢或上溢;
[0088]由于显示缓冲区更多地要考虑到音视频的同步问题,对音频进行连续播放,通过对视频处理来达到与音频数据的同步;
[0089]具体是采取对接收到的语音媒体采用基于播放时限的同步方法,用接收端缓存的语音媒体流来补偿网络的时延抖动,通过显示缓冲区的设计来实现回放。
[0090]以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。
【权利要求】
1.一种嵌入式多媒体播放系统的音视频同步方法,其特征在于:包括如下步骤: 步骤1.接收音视频数据流,并解码: 启动接收RTP音视频包的线程,接收RTP包,之后对其进行解析,解析其携带的数据类型,即RTP音频包或RTP视频包,若是RTP音频包进入音频接收缓冲区,后发送到音频解码器进行解码;若是RTP视频包进入排队缓冲区,首先对RTP视频包进行解码前的排序处理,后发送到视频解码器进行解码; 视频帧刚进入排队缓冲区内的处理过程: RTP包直接进入排队解码区,开始进行排队解码,首先根据RTP视频包所携带的分组号,从后到前先找到该分组其他包的位置,然后在该分组内,利用自身携带的序列号在该组内从大到小,开始逐个比较来快速确定自己在该分组的位置; 在RTP视频帧解码过程中: 在第i分组即将解码完成时,判断第i+Ι分组是否有完整I帧: 若是,进行解码即可; 若否,将该分组移至缓冲区,之后判断第i+2分组是否有I帧: 若有进行解码,即将解码完成时,判断是否在播放第i+2分组数据;若是则丢弃第i+1分组,若否则启动第i+Ι分组解码; 若无将第i+2分组移 到缓冲区,后判断是否接收到第i+Ι分组的视频帧: 若有则将第i+Ι分组移出缓冲区进行解码; 若无继续进行判断第i+3分组是否有I帧: 若无丢弃缓冲区中的第i+Ι分组; 若有进行解码,后根据显示缓冲区的反馈判断是否播放第i+3分组: 若播放,则丢弃第i+Ι分组和第i+2分组; 若不播放,则返回判断第i+Ι分组是否有完整I帧,循环判断; 步骤2.解码后的音视频帧流入显示缓冲区或插队缓冲区: 解码后的音频帧进入音频缓冲区; 对于按正常顺序解码后的视频帧进入显示缓冲区,对于前一分组解码晚于后一分组解码的前一分组视频帧进入插队缓冲区; 步骤3.同步播放: 音频缓冲区内的音频帧进行连续播放; 显示缓冲区内的视频帧进行顺序播放,插队缓冲区的视频帧进行插队播发; 其中视频帧的播放时间是利用NTP和RTP时间戳计算出当前视频帧对应音频帧播放的时间而得到的,判断当前缓冲区的最前面一帧的时间标记与Time土 Λ关系,其中Time土 Λ表不允许视频帧进行播放的时间范围: 若当前缓冲区的最前面一帧的时间标记在Time土 Λ范围内,则正常播放; 若当前缓冲区的最前面一帧的时间标记小于Time- Λ,则丢弃该视频帧; 若当前缓冲区的最前面一帧的时间标记大于Time+ Λ,则重复播放一次前一帧,之后再次比较,进行判断: (1)若时间标记在Time±厶范围内,则正常播放; (2)若仍大于则转到抖动缓冲区,向前寻找下帧,直到前一帧总共重播3次,抖动缓冲区已有3帧,最后一次比较;若时间标记在Time土 Λ范围内,贝U正常播放; 否则切换到以视频为标准,一次性调整音频,之后重新切换回到以音频为标准; 步骤4.显示缓冲区将信息反馈给视频解码器。
2.根据权利要求1所述的嵌入式多媒体播放系统的音视频同步方法,其特征在于:在步骤I中,对于刚到的RTP包若是这个分组的第一个包,首先判断自己的帧类型: 若不是I帧,直接根据分组号的大小确定自己的分组位置,在比较过程中,发现没有和自己一样的分组号,则移到第一个开辟新的排队块区; 若是I帧,找到自己分组的块排队区,进行是否有I帧判断,若该块区有已有I帧,则这个包自动丢弃;否则是一般情况,正常处理即可。
3.根据权利要求1所述的嵌入式多媒体播放系统的音视频同步方法,其特征在于:在步骤2中,显示缓冲区和插队缓冲区的初始值大小根据视频压缩格式进行动态可调。
4.根据权利要求1所述的嵌入式多媒体播放系统的音视频同步方法,其特征在于:在步骤3中,采取对接收到的音频帧采用基于播放时限的同步方法,用接收端缓存的音频帧来补偿网络的时延抖动 ,通过显示缓冲区来实现回放。
【文档编号】H04N21/6437GK103607664SQ201310603239
【公开日】2014年2月26日 申请日期:2013年11月22日 优先权日:2013年11月22日
【发明者】张涛 申请人:天津市北海通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1