多线程的音视频同步控制方法及装置制造方法及图纸

技术编号:5218752 阅读:262 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种多线程的音视频同步控制方法及装置,所述方法包括:将所述传输流或节目流拆分成音频基本流、视频基本流、以及各自时间信息;解码并得到待输出的音频数据和图像数据;根据所述时间信息分别选择符合本地系统时钟要求的待输出音频数据和图像数据进行输出,并选择时间信息与本地系统时钟值最接近的音频数据和图像数据,计算所述音频数据对应时间和图像数据对应时间的差值,在所述视频数据对应时间大于音频数据对应时间时,重复输出所述视频数据进行显示,否则跳过该视频数据对视频播放进行跳帧处理,使音视频同步输出。本发明专利技术不需要补充大量的视频编码数据和音频图像数据,从而很大程度地降低对系统资源的使用。

【技术实现步骤摘要】

本专利技术涉及一种数字音视频
,尤其涉及一种多线程的音视频同步控制方 法及装置。
技术介绍
目前流行的视频编解码标准,例如MPEG-I、MPEG-2、MPEG-4、H. 26x等都是采用传 统的混合编码结构,该结构采用时间和空间的预测、变换、量化和熵编码方法,将视频帧编 码为不同的帧类型帧内预测帧(I帧)、帧间预测帧(P帧)和双向预测帧(B帧),这必将 导致视频解码速度因视频内容而有所不同,而视频的播放帧率是固定的,从而导致了视频 解码速度与显示速度不匹配等问题,而且音频和视频是分开编码和传输,而在播放时要求 同步输出,如果不采用比较好的控制方法,很容易导致音视频输出不同步的现象。解决这个问题的方法,现有技术一般是采用较大的缓冲区来缓冲编码数据和编码 后的图像和音频帧。由于图像内容的不确定性又给缓冲区大小的确定带来了困难,缓冲区 太小则数据溢出,缓冲区太大又造成内存空间的浪费。另一种现有技术可参阅2007年5月30日公开的中国专利技术专利第200610157163. 6 号所揭露的一种移动多媒体广播视音频同步播放的方法,所述方法在子帧头中设一个起始 播放时间字段,用来表示该频道数据的起始播放时间;将视频、音频数据分别分割为多个视 频、音频单元,根据每个视频、音频单元的起始播放时间与该整个频道数据的起始播放时间 的时间差,在每个视频、音频段头中为每个视频、音频单元设置一个相对播放时间字段,来 记录每个视频、音频单元的播放相对时间差;每个视频、音频单元的实际播放时间是起始播 放时间与该视频、音频单元的相对播放时间的和。终端接收到数据后计算出每个视音频单 元的实际播放时间进行播放,就能实现视频音频的同步播放。但这种方法并没有考虑图像 和声音内容的不确定性,而且分割视频和音频也带来困难和麻烦。
技术实现思路
本专利技术主要解决的技术问题是提供一种资源占用少并且可实现音视频同步播放 的多线程的音视频同步控制方法及装置。为解决上述技术问题,本专利技术采用的一个技术方案是提供一种多线程的音视频 同步控制方法,包括将所述传输流或节目流拆分成音频基本流、视频基本流、以及分别对 应所述音频基本流、视频基本流中数据元素的各自时间信息;分别解码所述音频基本流和 视频基本流中的比特流,得到待输出的音频数据和图像数据;解码后根据所述时间信息分 别选择符合本地系统时钟要求的待输出音频数据和图像数据进行输出,并选择时间信息与 本地系统时钟值最接近的音频数据和图像数据,计算选择得到的音频数据对应时间和选择 得到的图像数据对应时间的差值,在所述选择得到的视频数据对应时间大于选择得到的音 频数据对应时间时,重复输出所述视频数据进行显示,在所述选择得到的视频数据对应时 间小于选择得到的音频数据对应时间时,跳过该视频数据对视频播放进行跳帧处理,使音视频同步输出。其中,将所述传输流或节目流拆分的步骤之前,包括创建解复用线程、音频解码 线程、视频解码线程、音频同步输出线程和视频同步输出线程,所述解复用线程用于将所述 传输流或节目流拆分;将所述传输流或节目流拆分的步骤之后,包括将音频基本流插入 音频基本流队列尾部,将视频基本流插入视频基本流队列尾部,激活解码线程;若音频基本 流队列或视频基本流队列溢出则解复用线程挂起等待;在将音频基本流插入音频基本流队 列尾部、将视频基本流插入视频基本流队列尾部并激活解码线程之后,包括启动音频解码 线程和视频解码线程,进行所述分别解码音频基本流队列和视频基本流队列中的比特流的 步骤,并将解码后的音频数据和图像数据和各自相应时间信息分别插入音频输出队列和视 频输出队列;在将解码后的音频数据和图像数据和各自相应时间信息分别插入音频输出队 列和视频输出队列之后,包括根据解码后的时间戳与本地系统时钟的差值,启动音频同步 输出线程和视频同步输出线程。其中,所述时间信息包括时间戳。其中,根据所述时间信息分别选择符合本地系统时钟要求的待输出音频数据和图 像数据进行输出的步骤包括计算当前时刻的本地系统时钟,查找音频输出队列中时间戳 值与本地系统时钟值最接近的队列元素,作为符合本地系统时钟要求的待输出音频数据; 以及计算当前时刻的本地系统时钟,查找视频输出队列中时间戳值与本地系统时钟值最接 近的队列元素,作为符合本地系统时钟要求的待输出图像数据。其中,所述激活解码线程通过对信号量进行申请资源的P操作完成。其中,所述解复用线程与音频解码线程、视频解码线程间的同步处理采用信号量 机制完成,通过对信号的申请资源/释放资源的PV操作协调解复用线程与音频解码线程、 视频解码线程间的同步。其中,采用所述信号量机制完成解复用线程与音频解码线程、视频解码线程间的 同步处理包括音频解码(a)音频解码线程阻塞于音频信号量,在解复用线程激活信号量 后开始解码;(b)对音频基本流队列头的音频基本流进行解码;(C)将解码后一帧音频数据 插入音频输出队列尾部,并激活音频输出条件变量;(d)将音频基本流队列中的时间戳值 保存在音频输出队列中;所述音频输出队列通过该队列的长度判断其是否溢出,若音频输 出队列溢出则音频解码线程挂起等待;视频解码(a)视频解码线程阻塞于音频信号量,在 解复用线程激活信号量后开始解码;(b)对视频基本流队列头的视频基本流进行解码;(C) 将解码后的一帧图像数据插入视频输出队列尾部,并激活视频输出条件变量;(d)将视频 基本流队列中的时间戳值保存在视频输出队列中;所述视频输出队列通过该队列的长度判 断其是否溢出,若视频输出队列溢出则视频解码线程挂起等待。为解决上述技术问题,本专利技术采用的另一个技术方案是提供一种多线程的音视 频同步控制装置,包括解复用模块,用于将所述传输流或节目流拆分成音频基本流、视频 基本流、以及分别对应所述音频基本流、视频基本流中数据元素的各自时间信息;音频解码 器,用于解码所述音频基本流中的比特流,得到待输出的音频数据;视频解码器,用于解码 所述视频基本流中的比特流,得到待输出的图像数据;输出模块,用于解码后根据所述时间 信息分别选择符合本地系统时钟要求的待输出音频数据和图像数据进行输出;同步模块, 用于选择时间信息与本地系统时钟值最接近的音频数据和图像数据,计算选择得到的音频数据对应时间和选择得到的图像数据对应时间的差值,在所述选择得到的视频数据对应时 间大于选择得到的音频数据对应时间时,控制所述输出模块重复输出所述视频数据进行显 示,在所述选择得到的视频数据对应时间小于选择得到的音频数据对应时间时,控制所述 输出模块跳过该视频数据对视频播放进行跳帧处理,使音视频同步输出。其中,包括用于保存音频基本流的音频基本流队列、用于保存视频基本流的视频 基本流队列、用于保存解码后的音频数据的音频输出队列、用于保存解码后的视频数据的 视频输出队列。其中,所述解复用模块具体用于对系统层的传输流或节目流进行解复用,将其拆 分成音频基本流和视频基本流后分别插入音频基本流队列和视频基本流队列,并获取相应 的时间戳;所述音频解码器和视频解码器具体用于分别对音频基本流队列和视频基本流队 列中的数据进行解码,将解码后的音频数据和视频数据分别插入音频输出队列和视频输出 队列;所述解码后的音频数据为脉冲调制编码数据。本专利技术的有益效果是区别于现有本文档来自技高网
...

【技术保护点】
一种多线程的音视频同步控制方法,其特征在于,包括:将所述传输流或节目流拆分成音频基本流、视频基本流、以及分别对应所述音频基本流、视频基本流中数据元素的各自时间信息;分别解码所述音频基本流和视频基本流中的比特流,得到待输出的音频数据和图像数据;解码后根据所述时间信息分别选择符合本地系统时钟要求的待输出音频数据和图像数据进行输出,并选择时间信息与本地系统时钟值最接近的音频数据和图像数据,计算选择得到的音频数据对应时间和选择得到的图像数据对应时间的差值,在所述选择得到的视频数据对应时间大于选择得到的音频数据对应时间时,重复输出所述视频数据进行显示,在所述选择得到的视频数据对应时间小于选择得到的音频数据对应时间时,跳过该视频数据对视频播放进行跳帧处理,使音视频同步输出。

【技术特征摘要】
一种多线程的音视频同步控制方法,其特征在于,包括将所述传输流或节目流拆分成音频基本流、视频基本流、以及分别对应所述音频基本流、视频基本流中数据元素的各自时间信息;分别解码所述音频基本流和视频基本流中的比特流,得到待输出的音频数据和图像数据;解码后根据所述时间信息分别选择符合本地系统时钟要求的待输出音频数据和图像数据进行输出,并选择时间信息与本地系统时钟值最接近的音频数据和图像数据,计算选择得到的音频数据对应时间和选择得到的图像数据对应时间的差值,在所述选择得到的视频数据对应时间大于选择得到的音频数据对应时间时,重复输出所述视频数据进行显示,在所述选择得到的视频数据对应时间小于选择得到的音频数据对应时间时,跳过该视频数据对视频播放进行跳帧处理,使音视频同步输出。2.根据权利要求1所述的多线程的音视频同步控制方法,其特征在于将所述传输流或节目流拆分的步骤之前,包括创建解复用线程、音频解码线程、视频 解码线程、音频同步输出线程和视频同步输出线程,所述解复用线程用于将所述传输流或 节目流拆分;将所述传输流或节目流拆分的步骤之后,包括将音频基本流插入音频基本流队列尾 部,将视频基本流插入视频基本流队列尾部,激活解码线程;若音频基本流队列或视频基本 流队列溢出则解复用线程挂起等待;在将音频基本流插入音频基本流队列尾部、将视频基本流插入视频基本流队列尾部并 激活解码线程之后,包括启动音频解码线程和视频解码线程,进行所述分别解码音频基本 流队列和视频基本流队列中的比特流的步骤,并将解码后的音频数据和图像数据和各自相 应时间信息分别插入音频输出队列和视频输出队列;在将解码后的音频数据和图像数据和各自相应时间信息分别插入音频输出队列和视 频输出队列之后,包括根据解码后的时间戳与本地系统时钟的差值,启动音频同步输出线 程和视频同步输出线程。3.根据权利要求2所述的多线程的音视频同步控制方法,其特征在于所述时间信息 包括时间戳。4.根据权利要求3所述的多线程的音视频同步控制方法,其特征在于根据所述时 间信息分别选择符合本地系统时钟要求的待输出音频数据和图像数据进行输出的步骤包 括计算当前时刻的本地系统时钟,查找音频输出队列中时间戳值与本地系统时钟值最接 近的队列元素,作为符合本地系统时钟要求的待输出音频数据;以及计算当前时刻的本地系统时钟,查找视频输出队列中时间戳值与本地系统时钟值最接 近的队列元素,作为符合本地系统时钟要求的待输出图像数据。5.根据权利要求4所述的多线程的音视频同步控制方法,其特征在于所述激活解码 线程通过对信号量进行申请资源的P操作完成。6.根据权利要求2所述的多线程的音视频同步控制方法,其特征在于所述解复用线 程与音频解码线程、视频解码线程间的同步处理采用信号量机制完成,通过对信号的申请 资源/释放资源的PV...

【专利技术属性】
技术研发人员:庄厝边李惠卿王欢
申请(专利权)人:深圳芯邦科技股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利