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

文档序号:7764117阅读:305来源:国知局
专利名称:多线程的音视频同步控制方法及装置的制作方法
技术领域
本发明涉及一种数字音视频技术领域,尤其涉及一种多线程的音视频同步控制方 法及装置。
背景技术
目前流行的视频编解码标准,例如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)将视频 基本流队列中的时间戳值保存在视频输出队列中;所述视频输出队列通过该队列的长度判 断其是否溢出,若视频输出队列溢出则视频解码线程挂起等待。为解决上述技术问题,本发明采用的另一个技术方案是提供一种多线程的音视 频同步控制装置,包括解复用模块,用于将所述传输流或节目流拆分成音频基本流、视频 基本流、以及分别对应所述音频基本流、视频基本流中数据元素的各自时间信息;音频解码 器,用于解码所述音频基本流中的比特流,得到待输出的音频数据;视频解码器,用于解码 所述视频基本流中的比特流,得到待输出的图像数据;输出模块,用于解码后根据所述时间 信息分别选择符合本地系统时钟要求的待输出音频数据和图像数据进行输出;同步模块, 用于选择时间信息与本地系统时钟值最接近的音频数据和图像数据,计算选择得到的音频数据对应时间和选择得到的图像数据对应时间的差值,在所述选择得到的视频数据对应时 间大于选择得到的音频数据对应时间时,控制所述输出模块重复输出所述视频数据进行显 示,在所述选择得到的视频数据对应时间小于选择得到的音频数据对应时间时,控制所述 输出模块跳过该视频数据对视频播放进行跳帧处理,使音视频同步输出。其中,包括用于保存音频基本流的音频基本流队列、用于保存视频基本流的视频 基本流队列、用于保存解码后的音频数据的音频输出队列、用于保存解码后的视频数据的 视频输出队列。其中,所述解复用模块具体用于对系统层的传输流或节目流进行解复用,将其拆 分成音频基本流和视频基本流后分别插入音频基本流队列和视频基本流队列,并获取相应 的时间戳;所述音频解码器和视频解码器具体用于分别对音频基本流队列和视频基本流队 列中的数据进行解码,将解码后的音频数据和视频数据分别插入音频输出队列和视频输出 队列;所述解码后的音频数据为脉冲调制编码数据。本发明的有益效果是区别于现有技术为实现音视频同步播放而需要补充大量视 频编码数据和音频图像数据而很大程度地降低对系统资源的使用效率的情况,本发明所述 方法利用系统层定义的时间信息和本地系统时间STC(SyStem Time clock),使音视频都对 照上述两个时间的差值来控制输出,从而使得音视频在同一的本地系统时钟的参考下按照 音视频本身时间信息严格输出,在遇到播放内容量波动情况下,分别采用重复播放、跳帧两 种手段实现严格的音视频同步输出,从而实现音视频同步播放,不仅有效地实现音视频的 同步输出,而且不需要补充大量的视频编码数据和音频图像数据,从而很大程度地降低对 系统资源的使用,适合于各种应用平台,比如适合于嵌入式平台;此外软件架构清晰,实现 复杂度低。


图1是本发明多线程的音视频同步控制方法的流程图;图2是本发明多线程的音视频同步控制方法的多线程控制流程图;图3是本发明多线程的音视频同步控制装置的系统框图。
具体实施例方式为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式 并配合附图详予说明。本发明多线程的音视频同步控制方法一实施例,是基于嵌入式Linux操作系统的 平台开发与实现的,由操作系统对音视频传输流或节目流进行多线程的并行处理,当然本 实施例仅列举了 Linux操作系统进行说明,在其他实施例中,其他类型的操作系统也可适 用。具体实施过程如图1所示,包括下述步骤步骤101 将所述传输流或节目流拆分成音频基本流、视频基本流、以及分别对应 所述音频基本流、视频基本流中数据元素的各自时间信息;步骤102 分别解码所述音频基本流和视频基本流中的比特流,得到待输出的音 频数据和图像数据;步骤103 解码后根据所述时间信息分别选择符合本地系统时钟要求的待输出音频数据和图像数据进行输出,并选择时间信息与本地系统时钟值最接近的音频数据和图像 数据,计算选择得到的音频数据对应时间和选择得到的图像数据对应时间的差值,在所述 选择得到的视频数据对应时间大于选择得到的音频数据对应时间时,重复输出所述视频数 据进行显示,在所述选择得到的视频数据对应时间小于选择得到的音频数据对应时间时, 跳过该视频数据对视频播放进行跳帧处理,使音视频同步输出。以上实施例,是利用系统层定义的时间信息和本地系统时间,使音视频都对照上 述两个时间的差值来控制输出,从而使得音视频在同一的本地系统时钟的参考下按照音视 频本身时间信息严格输出,在遇到播放内容量波动情况下,分别采用以下两种技术手段实 现严格的音视频同步输出1)在所述选择得到的视频数据对应时间大于选择得到的音频数据对应时间时,也 即视频数据快于音频数据时,进行视频的重复播放处理,使视频数据能“停下来等”音频数 据的播放;2)在所述选择得到的视频数据对应时间小于选择得到的音频数据对应时间时,也 即视频数据慢于音频数据时,对视频进行跳帧处理,使视频数据能“赶上”音频数据的播放。通过以上技术手段,实现音视频同步播放,不仅有效地实现音视频的同步输出,而 且不需要补充大量的视频编码数据和音频图像数据,从而很大程度地降低对系统资源的使 用,适合于各种应用平台,比如适合于嵌入式平台;此外软件架构清晰,实现复杂度低。在一个实施例中,是具体应用电子运算设备中,即在将所述传输流或节目流拆分 的步骤之前,包括创建解复用线程、音频解码线程、视频解码线程、音频同步输出线程和视 频同步输出线程,所述解复用线程用于将所述传输流或节目流拆分;将所述传输流或节目流拆分的步骤之后,包括将音频基本流插入音频基本流队 列尾部,将视频基本流插入视频基本流队列尾部,激活解码线程;若音频基本流队列或视频 基本流队列溢出则解复用线程挂起等待;在将音频基本流插入音频基本流队列尾部、将视频基本流插入视频基本流队列尾 部并激活解码线程之后,包括启动音频解码线程和视频解码线程,进行所述分别解码音频 基本流队列和视频基本流队列中的比特流的步骤,并将解码后的音频数据和图像数据和各 自相应时间信息分别插入音频输出队列和视频输出队列;在将解码后的音频数据和图像数据和各自相应时间信息分别插入音频输出队列 和视频输出队列之后,包括根据解码后的时间戳与本地系统时钟的差值,启动音频同步输 出线程和视频同步输出线程。当然,实现本发明的方式并不限于创建多个线程和排队队列的方式。在一实施例中,所述时间信息包括时间戳。而根据所述时间信息分别选择符合本 地系统时钟要求的待输出音频数据和图像数据进行输出的步骤包括1)计算当前时刻的本地系统时钟,查找音频输出队列中时间戳值与本地系统时钟 值最接近的队列元素,作为符合本地系统时钟要求的待输出音频数据;以及2)计算当前时刻的本地系统时钟,查找视频输出队列中时间戳值与本地系统时钟 值最接近的队列元素,作为符合本地系统时钟要求的待输出图像数据。当然如果采用延时播放或提前播放形式,则查找音频输出队列中时间戳值与本地 系统时钟值相隔预定时间的队列元素,并非最接近的队列元素。在其他实施例中不限于采用时间戳来进行时间比对,可以是各种形式的时间信息或参数。在一个实施例中,所述激活解码线程是通过对信号量进行申请资源的P操作完 成。所述解复用线程与音频解码线程、视频解码线程间的同步处理采用信号量机制完成,通 过对信号的申请资源/释放资源的PV操作协调解复用线程与音频解码线程、视频解码线程 间的同步。以下结合图1和图2,详细介绍本发明的其中一个具体实施例步骤1、创建五个线程,分别是解复用线程、音频解码线程、视频解码线程、音频同 步输出线程和视频同步输出线程。步骤2、启动解复用线程完成对系统层的传输流或节目流的解复用处理,将传输流 或节目流拆分成音频基本流、视频基本流以及时间信息;然后将音频基本流插入音频基本 流队列尾部,将视频基本流插入视频基本流队列尾部,激活解码线程;若音频基本流队列或 视频基本流队列溢出则解复用线程挂起等待。对于传输流,本步骤所述的音频基本流和视频基本流是通过PID值(进程标识符) 区分的,首先解析PID值为0x00的数据包,从该数据包中的节目关联表PAT获得各个节目 的节目映射表PMT的PID值,解码某个节目则解析该节目对应的节目映射表,从而获得该节 目中音频基本流的PID值以及视频基本流的PID值,然后接收相应PID值的数据包,将数据 重组成PES (Packetised Elementary Streams,带有包头的基本码流)分组后插入基本流队 列。对于节目流,则是通过各个PES数据分组中的StreamID (流标识符)标志位区分音频 和视频基本流。本步骤所述的时间信息是指PES分组中的时间戳PTS与节目参考时钟PCR,将解析 得到的PTS值保存在相应的队列中。解复用线程在将一整个PES分组的基本流插入基本流 队列后,对信号量进行P操作(即对信号量申请资源)来激活解码线程;所述音频基本流队 列或视频基本流队列通过该队列的长度判断其是否溢出,若溢出则解复用线程挂起等待。步骤3、启动音频解码线程和视频解码线程分别解码音频基本流队列和视频基本 流队列中的比特流,并将时间信息和解码后的音频数据和图像数据,分别插入音频输出队 列和视频输出队列。其中解码后的音频数据为PCM数据(Pulse Code Modulation,脉冲调 制编码数据)。本步骤所述的音频解码过程如下(a)音频解码线程阻塞于音频信号量,在解复用线程激活信号量后开始解码;(b)对音频基本流队列头的音频基本流进行解码;(c)将解码后一帧音频PCM数据插入音频输出队列尾部,并激活音频输出条件变 量;(d)将音频基本流队列中的时间戳PTS值保存在音频输出队列中;所述音频输出 队列通过该队列的长度判断其是否溢出,若音频输出队列溢出则音频解码线程挂起等待。本步骤所述的视频解码过程如下(a)视频解码线程阻塞于音频信号量,在解复用线程激活信号量后开始解码;(b)对视频基本流队列头的视频基本流进行解码;(c)将解码后的一帧图像数据插入视频输出队列尾部,并激活视频输出条件变 量;
(d)将视频基本流队列中的时间戳PTS值保存在视频输出队列中;所述视频输出 队列通过该队列的长度判断其是否溢出,若视频输出队列溢出则视频解码线程挂起等待。步骤4、根据解码后的时间戳与本地系统时钟的差值,启动音频同步输出线程和视 频同步输出线程,选择符合输出时间的数据进行输出;并根据视频与音频的时间戳的差值, 对视频播放进行跳帧处理,从而使得音视频同步输出。本步骤所述的音频输出过程由以下步骤实现(a)音频输出线程阻塞于音频输出条件变量;(b)在音频解码线程激活条件变量后,计算当前时刻的本地系统时钟STC ;(C)查找音频输出队列中时间戳PTS值与STC值最接近的队列元素,将该队列的音 频PCM数据输出。本步骤所述的视频输出过程由以下步骤实现(a)视频输出线程阻塞于视频输出条件变量;(b)在视频解码线程激活条件变量后,计算当前时刻的本地系统时钟STC ;(c)查找视频输出队列中PTS值与STC值最接近的队列元素,计算视频PTS与音 频PTS的差值,如果视频PTS值大于音频PTS值,则重复显示该队列元素中的图像,如果视 频PTS值小于音频PTS值,则跳过该队列元素。步骤2与步骤3线程间的同步处理采用的是信号量机制,通过对信号的PV操作协 调解复用线程与解码线程间的同步,其中PV操作由P操作(即申请资源)和V操作(即释 放一个资源)组成。步骤2和步骤3缓冲基本流数据与解码后的数据采用的是队列,在队 列尾插入数据,在队列头操作数据。步骤3与步骤4线程间的同步处理采用的是条件变量, 即通过激活条件变量来激活相应的输出线程。本发明所述方法采用操作系统信号量、条件变量、系统层定义的节目参考时钟 PCR(Program Clock Reference)和显示时间戳PTS (Presentation Time Stamp),从而使得 音视频在同一的本地系统时钟STC (System Time clock)的参考下按照PTS时刻严格输出, 从而实现了音视频同步播放,不仅有效地实现了音视频的同步输出,而且不需要补充大量 的视频编码数据和音频图像数据,从而很大程度地降低了对系统资源的使用,适合于嵌入 式平台;此外软件架构清晰,实现复杂度低。参阅图3,本发明还提供一种多线程的音视频同步控制装置实施例,包括解复用模块,用于将所述传输流或节目流拆分成音频基本流、视频基本流、以及分 别对应所述音频基本流、视频基本流中数据元素的各自时间信息;音频解码器,用于解码所述音频基本流中的比特流,得到待输出的音频数据;视频解码器,用于解码所述视频基本流中的比特流,得到待输出的图像数据;输出模块,用于解码后根据所述时间信息分别选择符合本地系统时钟要求的待输 出音频数据和图像数据进行输出;图3中输出模块包括音频输出模块和视频输出模块;同步模块,用于选择时间信息与本地系统时钟值最接近的音频数据和图像数据, 计算音频数据对应时间和图像数据对应时间的差值,在视频数据对应时间大于音频数据对 应时间时,控制所述输出模块重复输出所述视频数据进行显示,在视频数据对应时间小于 音频数据对应时间时,控制所述输出模块跳过该视频数据对视频播放进行重复与跳帧处 理,使音视频同步输出。
其中,为便于实现,可以包括用于保存音频基本流的音频基本流队列、用于保存视 频基本流的视频基本流队列、用于保存解码后的音频数据的音频输出队列、用于保存解码 后的视频数据的视频输出队列。在具体实施例中,所述解复用模块具体用于对系统层的传输流或节目流进行解复 用,将其拆分成音频基本流和视频基本流后分别插入音频基本流队列和视频基本流队列, 并获取相应的时间戳;所述音频解码器和视频解码器具体用于分别对音频基本流队列和视频基本流队 列中的数据进行解码,将解码后的音频数据和视频数据分别插入音频输出队列和视频输出 队列;所述解码后的音频数据为脉冲调制编码数据。其中的输出模块是根据解码后数据的时间戳与本地系统时钟的差值,选择符合输 出时间的数据进行输出,并根据视频与音频的时间戳的差值,对视频播放进行跳帧处理,从 而使得音视频同步输出。以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发 明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技 术领域,均同理包括在本发明的专利保护范围内。
权利要求
一种多线程的音视频同步控制方法,其特征在于,包括将所述传输流或节目流拆分成音频基本流、视频基本流、以及分别对应所述音频基本流、视频基本流中数据元素的各自时间信息;分别解码所述音频基本流和视频基本流中的比特流,得到待输出的音频数据和图像数据;解码后根据所述时间信息分别选择符合本地系统时钟要求的待输出音频数据和图像数据进行输出,并选择时间信息与本地系统时钟值最接近的音频数据和图像数据,计算选择得到的音频数据对应时间和选择得到的图像数据对应时间的差值,在所述选择得到的视频数据对应时间大于选择得到的音频数据对应时间时,重复输出所述视频数据进行显示,在所述选择得到的视频数据对应时间小于选择得到的音频数据对应时间时,跳过该视频数据对视频播放进行跳帧处理,使音视频同步输出。
2.根据权利要求1所述的多线程的音视频同步控制方法,其特征在于将所述传输流或节目流拆分的步骤之前,包括创建解复用线程、音频解码线程、视频 解码线程、音频同步输出线程和视频同步输出线程,所述解复用线程用于将所述传输流或 节目流拆分;将所述传输流或节目流拆分的步骤之后,包括将音频基本流插入音频基本流队列尾 部,将视频基本流插入视频基本流队列尾部,激活解码线程;若音频基本流队列或视频基本 流队列溢出则解复用线程挂起等待;在将音频基本流插入音频基本流队列尾部、将视频基本流插入视频基本流队列尾部并 激活解码线程之后,包括启动音频解码线程和视频解码线程,进行所述分别解码音频基本 流队列和视频基本流队列中的比特流的步骤,并将解码后的音频数据和图像数据和各自相 应时间信息分别插入音频输出队列和视频输出队列;在将解码后的音频数据和图像数据和各自相应时间信息分别插入音频输出队列和视 频输出队列之后,包括根据解码后的时间戳与本地系统时钟的差值,启动音频同步输出线 程和视频同步输出线程。
3.根据权利要求2所述的多线程的音视频同步控制方法,其特征在于所述时间信息 包括时间戳。
4.根据权利要求3所述的多线程的音视频同步控制方法,其特征在于根据所述时 间信息分别选择符合本地系统时钟要求的待输出音频数据和图像数据进行输出的步骤包 括计算当前时刻的本地系统时钟,查找音频输出队列中时间戳值与本地系统时钟值最接 近的队列元素,作为符合本地系统时钟要求的待输出音频数据;以及计算当前时刻的本地系统时钟,查找视频输出队列中时间戳值与本地系统时钟值最接 近的队列元素,作为符合本地系统时钟要求的待输出图像数据。
5.根据权利要求4所述的多线程的音视频同步控制方法,其特征在于所述激活解码 线程通过对信号量进行申请资源的P操作完成。
6.根据权利要求2所述的多线程的音视频同步控制方法,其特征在于所述解复用线 程与音频解码线程、视频解码线程间的同步处理采用信号量机制完成,通过对信号的申请 资源/释放资源的PV操作协调解复用线程与音频解码线程、视频解码线程间的同步。
7.根据权利要求6所述的多线程的音视频同步控制方法,其特征在于采用所述信号 量机制完成解复用线程与音频解码线程、视频解码线程间的同步处理包括音频解码(a)音频解码线程阻塞于音频信号量,在解复用线程激活信号量后开始解 码;(b)对音频基本流队列头的音频基本流进行解码;(c)将解码后一帧音频数据插入音频 输出队列尾部,并激活音频输出条件变量;(d)将音频基本流队列中的时间戳值保存在音 频输出队列中;所述音频输出队列通过该队列的长度判断其是否溢出,若音频输出队列溢 出则音频解码线程挂起等待;视频解码(a)视频解码线程阻塞于音频信号量,在解复用线程激活信号量后开始解 码;(b)对视频基本流队列头的视频基本流进行解码;(c)将解码后的一帧图像数据插入视 频输出队列尾部,并激活视频输出条件变量;(d)将视频基本流队列中的时间戳值保存在 视频输出队列中;所述视频输出队列通过该队列的长度判断其是否溢出,若视频输出队列 溢出则视频解码线程挂起等待。
8.一种多线程的音视频同步控制装置,其特征在于,包括解复用模块,用于将所述传输流或节目流拆分成音频基本流、视频基本流、以及分别对 应所述音频基本流、视频基本流中数据元素的各自时间信息;音频解码器,用于解码所述音频基本流中的比特流,得到待输出的音频数据;视频解码器,用于解码所述视频基本流中的比特流,得到待输出的图像数据;输出模块,用于解码后根据所述时间信息分别选择符合本地系统时钟要求的待输出音 频数据和图像数据进行输出;同步模块,用于选择时间信息与本地系统时钟值最接近的音频数据和图像数据,计算 选择得到的音频数据对应时间和选择得到的图像数据对应时间的差值,在所述选择得到的 视频数据对应时间大于选择得到的音频数据对应时间时,控制所述输出模块重复输出所述 视频数据进行显示,在所述选择得到的视频数据对应时间小于选择得到的音频数据对应时 间时,控制所述输出模块跳过该视频数据对视频播放进行跳帧处理,使音视频同步输出。
9.根据权利要求8所述的多线程的音视频同步控制装置,其特征在于包括用于保存 音频基本流的音频基本流队列、用于保存视频基本流的视频基本流队列、用于保存解码后 的音频数据的音频输出队列、用于保存解码后的视频数据的视频输出队列。
10.根据权利要求9所述的多线程的音视频同步控制装置,其特征在于所述解复用模块具体用于对系统层的传输流或节目流进行解复用,将其拆分成音频基 本流和视频基本流后分别插入音频基本流队列和视频基本流队列,并获取相应的时间戳;所述音频解码器和视频解码器具体用于分别对音频基本流队列和视频基本流队列中 的数据进行解码,将解码后的音频数据和视频数据分别插入音频输出队列和视频输出队 列;所述解码后的音频数据为脉冲调制编码数据。
全文摘要
本发明公开了一种多线程的音视频同步控制方法及装置,所述方法包括将所述传输流或节目流拆分成音频基本流、视频基本流、以及各自时间信息;解码并得到待输出的音频数据和图像数据;根据所述时间信息分别选择符合本地系统时钟要求的待输出音频数据和图像数据进行输出,并选择时间信息与本地系统时钟值最接近的音频数据和图像数据,计算所述音频数据对应时间和图像数据对应时间的差值,在所述视频数据对应时间大于音频数据对应时间时,重复输出所述视频数据进行显示,否则跳过该视频数据对视频播放进行跳帧处理,使音视频同步输出。本发明不需要补充大量的视频编码数据和音频图像数据,从而很大程度地降低对系统资源的使用。
文档编号H04N21/8547GK101984672SQ201010530498
公开日2011年3月9日 申请日期2010年11月3日 优先权日2010年11月3日
发明者庄厝边, 李惠卿, 王欢 申请人:深圳芯邦科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1