一种视频解码方法、装置及视音频播放系统的制作方法

文档序号:7751897阅读:149来源:国知局
专利名称:一种视频解码方法、装置及视音频播放系统的制作方法
技术领域
本发明涉及音视频编解码领域,尤其涉及一种视频解码方法、装置及视音频播放 系统。
背景技术
从 ITU-T (ITU-T for ITU Telecommunication Standardization Sector,国际 电信联盟远程通信标准化组)发布H261视频编码标准以来,任何兼容H261/263/264, MPEG-1/2/4 和 JPEG (Joint Photographic Experts Group,联合图象专家组规范)的视频 CODEC (coder-decoder,编译码器)都必须实现如下关于功能运动估计、运动补偿、系数变 换、量化和熵编码,这些视频标准都于基于同一个视频CODEC抽象模型DPCM/DCT(差值编 码/离散余弦变换)混合CODEC模型。如图1所示是现有技术视音频播放系统基本结构图,所述视音频播放系统包括 播放控制模块101、输入接口 102、音频解码模块103、视频解码模块104、回显接口 105、第一 缓冲区106、第二缓冲区107。所述输入接口 102、音频解码模块103、视频解码模块104、回 显接口 105分别于播放控制模块101相连接,所述第一缓冲区106与所述输入接口 102连 接,所述第二缓冲区107分别与所述视频解码模块104、回显接口 107和所述音频解码模块 103连接,所述视频解码模块104还与回显接口 105连接。其中,现有技术中,也有不设第二 缓冲区的视音频播放系统,回显接口直接根据音频解码器和视频解码器传输的解码后的数 据地址,进行音视频的效果的呈现。如图2所述是图1中视音频播放系统中的视频解码模块结构图,所述视频解码模 块包括熵解码模块1041,用于对输入的编码流进行熵解码,提取出各宏块的变换系数、运 动矢量和图信息;运行层解码和重排序模块1042,用于对运行层解码和重排序,得到量化和变换后 的子宏块;反量化模块1043,用于对所述子宏块进行反量化;反离散余弦变换模块1044,用于对所述反量化后的子宏块进行反离散余弦变换, 生成残差;运动补偿模块1045,用于对运动矢量和参考帧图像进行运动补偿预测,生成预测 宏块,其中参考帧为当前帧的前一帧;宏块重构模块1046,用于将所述预测宏块加到残差上生成重构的宏块,并用于当 前帧图像的全部宏块重构完毕后,直接生成当前帧解码图像;检测模块1047,用于检测当前帧图像的全部宏块重构完毕后,标明当前帧解码图 像生成完毕,可用于输出或下一次解码预测。现有技术中,视频解码模块每次解码输出一帧,解码后的视频帧raw数据(如YUV 图像数据)都是存放在视频解码模块的帧输出缓冲区(图2中未示出),这是一个完全由视频解码模块使用和管理的区域,它仅能存放当前解码输出的一帧图像raw数据,当视频 解码模块开始新的一次解码时,会先清空所述帧输出缓冲区。也就是说,不论是视音频播放 系统(如图1所示)中的第二缓冲区107还是回显接口 105,在一次访问视频解码模块104 和音频解码模块105时,必须把所述帧输出缓冲区中的数据全部拷贝到第二缓冲区107或 者是全部回显完毕(针对回显接口)。这个拷贝动作会导致所有播放数据都会被多复制一 次,极大的浪费了紧张的CPU资源;而没有第二缓冲区107的视音播放系统在I帧解码时, 如果CPU分配的计算资源不宽松,播放视频时常常会出现全屏拉伸、画面与声音停顿、等待 等情况。

发明内容
本发明实施例的目的在于提出一种视频解码装置,旨在解决现有技术中播放视频 时常常会出现全屏拉伸、画面与声音停顿、等待等问题。本发明的实施例是这样实现的,一种视频解码装置,包括熵解码模块,用于对输入 的编码流进行熵解码,提取出各宏块的变换系数、运动矢量和头信息;运行层解码和重排序 模块,用于对运行层解码和重排序,得到量化和变换后的子宏块;反量化模块,用于对所述 子宏块进行反量化;反离散余弦变换模块,用于对所述反量化后的子宏块进行反离散余弦 变换,生成残差;运动补偿模块,用于对运动矢量和参考帧图像进行运动补偿预测,生成预 测宏块;宏块重构模块,用于将所述预测宏块加到所述残差上生成重构的宏块,并用于当前 帧图像的全部宏块重构完毕后,直接生成当前帧解码图像;检测模块,用于检测当前帧图像 的全部宏块重构完毕后,标明当前帧解码图像生成完毕,可用于输出或下一次解码预测,其 中,所述装置还包括第一调度模块,用于实现熵解码后,调度CPU进入睡眠状态;第二调度模块,用于实现运动补偿预测后,调度CPU进入睡眠状态。本发明实施例的目的在于提出一种视频解码方法,所述方法包括以下步骤对输入的编码流进行熵解码,提取出各宏块的变换系数、运动矢量和头信息;判断当前帧是I帧;调度CPU进入睡眠状态;对运行层解码和重排序,从而获取量化和变换后的子宏块;对所述子宏块进行反量化;对所述反量化后的子宏块进行反离散余弦变换,生成残差;对运动矢量和参考帧图像进行运动补偿预测,生成预测宏块;判断当前帧是I帧;调度CPU进入睡眠状态;将所述预测宏块加到所述残差上生成重构的宏块,并用于当前帧图像的全部宏块 重构完毕后,直接生成当前帧解码图像;判断当前帧图像的全部宏块重构完毕后,生成当前帧帧解码图像。本发明实施例的目的在于提出一种包括所述视频解码装置的视音频播放系统,所 述系统包括播放控制模块、输入接口、音频解码模块、视频解码装置、回显接口、第一缓冲 区;所述输入接口、音频解码模块、视频解码装置、回显接口分别与播放控制模块相连接,第一缓冲区与输入接口相连接;播放控制模块用于发出命令,选中要播放的文件或媒体数据 位置链接地址,通过操作系统文件输入输出接口将媒体数据读入第一缓冲区,其中,所述视频解码装置还包括第三输出队列缓冲区,所述视频解码装置用于通过输入 接口获取第一缓冲区中的要播放的文件或媒体数据,并进行视频解码,存入第三输出队列 缓冲区,并用于创建全局的互斥锁来保证对所述第三输出队列缓冲区的输出队列的互斥访 问,所述第三输出队列缓冲区用于存储所述视频解码模块所解码后的数据,并形成输出队 列以使所述回显接口和所述视频解码装置能异步地工作;所述音频解码模块还包括第二输出队列缓冲区,所述音频解码模块用于通过输入 接口获取第一缓冲区中的要播放的文件或媒体数据,并进行音频解码,存入第二输出队列 缓冲区,并用于创 建全局的互斥锁来保证对所述第二输出队列缓冲区的输出队列的互斥访 问,所述第二输出队列缓冲区用于存储所述音频解码模块所解码后的数据,并形成输出队 列以使所述回显接口和所述音频解码模块能异步地工作;回显接口,用于按一定时序,根据所述第二输出队列缓冲区、第三输出队列缓冲区 中所存储的视音频解码后的数据地址,进行视音频的效果呈现。本发明实施例的目的在于提出一种包括所述视频解码装置的视音频播放系统,所 述系统包括播放控制模块、输入接口、音频解码模块、视频解码装置、回显接口、第一缓冲 区;所述输入接口、音频解码模块、视频解码装置、回显接口分别与播放控制模块相连接,第 一缓冲区与输入接口相连接;播放控制模块用于发出命令,选中要播放的文件或媒体数据 位置链接地址,通过操作系统文件输入输出接口将媒体数据读入第一缓冲区,其中,所述视音频播放系统还包括第四缓冲区,所述第四缓冲区与所述音频解码模块和 所述回显接口相连接,用于存储所述音频解码模块的帧输出缓冲区输出的解码后的帧数据 并形成输出队列,并用于提供访问地址给所述回显接口访问;所述视频解码装置还包括第三输出队列缓冲区,所述视频解码装置用于通过输 入接口获取第一缓冲区中的要播放的文件或媒体数据,并进行视频解码,存入第三输出队 列缓冲区,并用于创建全局的互斥锁来保证对所述第三输出队列缓冲区的输出队列互斥访 问,所述第三输出队列缓冲区用于存储所述视频解码模块所解码后的数据,并形成输出队 列以使所述回显接口和所述视频解码装置能异步地工作;所述音频解码模块还与所述第四缓冲区相连接,用于通过所述输入接口获取第一 缓冲区中的要播放的文件或媒体数据,并进行音频解码,每次解码输出一帧,将解码后的视 频帧raw数据存放在所述音频解码模块的帧输出缓冲区;回显接口,用于按一定时序,根据第三输出队列缓冲区中所存储的视频解码后的 数据地址和第四缓冲区存储的音频解码后的数据地址进行视音频的效果呈现。本发明实施例通过在视频解码模块、音频解码模块中设置输出帧队列缓冲区,以 空间换取时间,使得回显模块和解码模块能异步地(准并行)工作,具体说,如果帧队列缓 冲中有视音频帧数据,回显时不用等待解码器输出,而是直接根据播放速度从缓冲队列取 数据回显。由于视频I帧的解码会耖时较长(常常远大于40ms),为了保证此时回显模块不 会因分配不到CPU而停止,本发明在视频解码过程中的熵解码和运动补偿后通过调度CPU, 保证回显模块能及时调度到CPU,从而保证播放的流畅平滑。这样,就能使得当处理器能提 供的计算解码资源相对勉强满足(例如单项视频解码测试时平均36ms每帧)时,能消除视音频播放不均衡或卡的现象,提供平滑、流畅的播放效果和更精准的音视频同步。


图1是现有技术视音频播放系统基本结构图;图2是图1中视音频播放系统中的视频解码模块结构图;图3是本发明实施例视音频播放系统结构图;图4是图3中视音频播放系统中的视频解码模块结构图;图5是本发明实施例视频解码方法流程图;图6是本发明另一实施例视音频播放系统结构图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对 本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理 解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。本发明实施例通过在视频解码模块、音频解码模块中设置输出帧队列缓冲区,以 空间换取时间,使得回显接口模块和解码模块能异步地(准并行)工作,具体说,如果帧队 列缓冲中有视音频帧数据,回显时不用等待解码器输出,而是直接根据播放速度从缓冲队 列取数据回显。由于视频I帧的解码会耖时较长(常常远大于40ms),为了保证此时回显模 块不会因分配不到CPU而停止,本发明在视频解码过程中的熵解码和运动补偿后通过调度 CPU,保证回显模块能及时调度到CPU,从而保证播放的流畅平滑。这样,就能使得当处理器 能提供的计算解码资源相对勉强满足(例如单项视频解码测试时平均36ms每帧)时,能消 除视音频播放不均衡或卡的现象,提供平滑、流畅的播放效果和更精准的音视频同步。如图3所示,为本发明实施例视音频播放系统结构图。所述系统包括播放控制 模块101、输入接口 102、音频解码模块103、视频解码模块104、回显接口 105、第一缓冲区 106,其中音频解码模块103包括第二输出队列缓冲区1031、视频解码模块104包括第三输 出队列缓冲区1048。所述输入接口 102、音频解码模块103、视频解码模块104、回显接口 105分别与播放控制模块101相连接,第一缓冲区106与输入接口 102相连接。播放控制模块101,用于发出命令,选中要播放的文件或媒体数据位置链接地址, 通过操作系统文件输入输出接口(图3中未示出),将媒体数据读入第一缓冲区106 ;音频解码模块103,用于通过输入接口 102获取第一缓冲区106中的要播放的文 件或媒体数据,并进行音频解码,存入第二输出队列缓冲区1031,并用于创建全局的互斥锁 来保证对所述第二输出队列缓冲区1031的输出队列互斥访问,所述第二输出队列缓冲区 1031用于存储所述音频解码模块103所解码后的数据,并形成输出队列以使回显接口 105 和音频解码模块103能异步地(准并行)工作(具体说,如果帧队列缓冲中有视音频帧数 据,回显时不用等待音频解码模块103输出,而是直接根据播放速度从输出队列取数据回 显)O视频解 码模块104,用于通过输入接口 102获取第一缓冲区106中的要播放的文件 或媒体数据,并进行视频解码,存入第三输出队列缓冲区1048,并用于创建全局的互斥锁来 保证对所述第三输出队列缓冲区1048的输出队列互斥访问,所述第三缓冲区1048用于存储所述视频解码模块104所解码后的数据,并形成输出队列以使回显接口 105和视频解码模块1048能异步地(准并行)工作(具体说,如果帧队列缓冲中有视音频帧数据,回显时 不用等待视频解码模块104输出,而是直接根据播放速度从输出队列取数据回显)。回显接口 105,用于按一定时序,根据所述第二输出队列缓冲区1031和第三输出 队列缓冲区1048中所存储的视音频解码后的数据地址,进行视音频的效果呈现。其中所述回显接口 105与音频解码模块和视频解码模块在不同的线程运行。如图4所示为图3中视音频播放系统中的视频解码模块结构图。所述视频解码模 块包括熵解码模块1041,用于对输入的编码流进行熵解码,提取出各宏块的变换系数、运 动矢量和头信息;第一调度模块1049,用于实现熵解码后,调度CPU进入睡眠状态以保证回显模块 能及时调度到CPU,其中所述睡眠状态的时间小于一个CPU时钟Tick。;运行层解码和重排序模块1042,用于对运行层解码和重排序,得到量化和变换后 的子宏块;反量化模块1043,用于对所述子宏块进行反量化;反离散余弦变换模块1044,用于对所述反量化后的子宏块进行反离散余弦变换, 生成残差;运动补偿模块1045,用于对运动矢量和参考帧图像进行运动补偿预测,生成预测 宏块,其中,所述参考帧为当前帧的前一帧;第二调度模块1040,用于实现运动补偿预测后实现调度CPU进入睡眠状态以保证 回显模块能及时调度到CPU,其中所述睡眠状态的时间小于一个CPU时钟Tick ;宏块重构模块1046,用于将所述预测宏块加到所述残差上生成重构的宏块,并用 于当前帧图像的全部宏块重构完毕后,直接生成当前帧解码图像;检测模块1047,用于检测当前帧图像的全部宏块重构完毕后,标明当前帧解码图 像生成完毕,可用于输出或下一次解码预测。本发明实施例通过在视频解码模块、音频解码模块中设置输出帧队列缓冲区,以 空间换取时间,使得回显接口模块和解码模块能异步地(准并行)工作,具体说,如果帧队 列缓冲中有视音频帧数据,回显时不用等待解码器输出,而是直接根据播放速度从缓冲队 列取数据回显。由于视频I帧的解码会耖时较长(常常远大于40ms),为了保证此时回显模 块不会因分配不到CPU而停止,本发明在视频解码过程中的熵解码和运动补偿后通过调度 CPU,保证回显模块能及时调度到CPU,从而保证播放的流畅平滑。这样,就能使得当处理器 能提供的计算解码资源相对勉强满足(例如单项视频解码测试时平均36ms每帧)时,能消 除视音频播放不均衡或卡的现象,提供平滑、流畅的播放效果和更精准的音视频同步。如图5所示为本发明实施例视频解码方法流程图。所述方法包括以下步骤S501,对输入的编码流进行熵解码,提取出各宏块的变换系数、运动矢量和头信 息;S513,判断当前帧是否为I帧,是则进入步骤S502,否则进入步骤S503 ;S502,调度CPU进入睡眠状态(其中所述睡眠状态的时间小于一个CPU时钟 Tick);
S503,对运行层解码和重排序,从而获取量化和变换后的子宏块;S504,对所述子宏块进行反量化;
S505,对所述反量化后的子宏块进行反离散余弦变换,生成残差;S506,对运动矢量和参考帧图像进行运动补偿预测,生成预测宏块,其中,所述参 考帧为当前帧的前一帧;S514,判断当前帧是否为I帧,是则进入步骤S507,否则进入步骤S508 ;S507,调度CPU进睡眠状态(其中所述睡眠状态的时间小于一个CPU时钟Tick);S508,将所述预测宏块加到所述残差上生成重构的宏块,并用于当前帧图像的全 部宏块重构完毕后,直接生成当前帧帧解码图像;S509,判断当前帧图像的全部宏块是否重构完毕后,是则进入步骤S510,否则返回 步骤S501 ;S510,生成当前帧帧解码图像。由于视频I帧的解码会耖时较长(常常远大于40ms),为了保证此时回显模块不 会因分配不到CPU而停止,本发明实施例在视频解码过程中的熵解码和运动补偿后通过调 度CPU,保证回显模块能及时调度到CPU,从而保证播放的流畅平滑,这样,就能使得当处理 器能提供的计算解码资源相对勉强满足(例如单项视频解码测试时平均36ms每帧)时,能 消除视音频播放不均衡或卡的现象,提供平滑、流畅的播放效果和更精准的音视频同步。图6为本发明另一实施例视音频播放系统结构图,其与图3的区别在于,所述音频 解码模块103并不包括输出队列缓冲区,只是在视频解码模块中设有第三输出队列缓冲区 1048,所示系统包括播放控制模块101、输入接口 102、音频解码模块103、视频解码模块104、回显接口 105、第一缓冲区106,其中,视频解码模块104包括第三输出队列缓冲区1048。所述输入接 口 102、音频解码模块103、视频解码模块104、回显接口 105分别与播放控制模块101相连 接,第一缓冲区106与输入接口 102相连接,所述视音频播放系统还包括第四缓冲区108,所 述第四缓冲区108与所述音频解码模块和所述回显接口相连接。播放控制模块101,用于发出命令,选中要播放的文件或媒体数据位置链接地址, 通过操作系统文件输入输出接口(图6中未示出),将媒体数据读入第一缓冲区106 ;音频解码模块103,用于通过输入接口 102获取第一缓冲区106中的要播放的文件 或媒体数据,并进行音频解码,每次解码输出一帧,将解码后的视频帧raw数据存放在音频 解码模块103的帧输出缓冲区(图6中未示出);第四缓冲区108,用于存储所述音频解码模块103的帧输出缓冲区输出的解码后 的帧数据并形成输出队列,并用于提供访问地址给所述回显接口 105访问;视频解码模块104,用于通过输入接口 102获取第一缓冲区106中的要播放的文件 或媒体数据,并进行视频解码,存入第三输出队列缓冲区1048,并用于创建全局的互斥锁来 保证对所述第三输出队列缓冲区1048的输出队列互斥访问,所述第三队列缓冲区1048用 于存储所述视频解码模块104解码后的数据,并形成输出队列以使回显接口 105和视频解 码模块104能异步地(准并行)工作(具体说,如果帧队列缓冲中有视音频帧数据,回显时 不用等待音频解码模块103输出,而是直接根据播放速度从输出队列取数据回显);回显接口 105,用于按一定时序,根据第三输出队列缓冲区1048中所存储的视频解码后的数据地址和第四缓冲区存储的音频解码后的数据地址,进行视音频的效果呈现。其中所述回显接口 105与音频解码模块和视频解码模块在不同的线程运行。所述图6中的视音频播放系统中的解码模块的内部结构和工作原理如实施例一 中所述,在此不在赘述。本发明实施例通过在视频解码模块、音频解码模块中设置输出帧队列缓冲区,以 空间换取时间,使得回显接口模块和解码模块能异步地(准并行)工作,具体说,如果帧队 列缓冲中有视音频帧数据,回显时不用等待解码器输出,而是直接根据播放速度从缓冲队 列取数据回显。由于视频I帧的解码会耖时较长(常常远大于40ms),为了保证此时回显模 块不会因分配不到CPU而停止,本发明在视频解码过程中的熵解码和运动补偿后通过调度 CPU,保证回显模块能及时调度到CPU,从而保证播放的流畅平滑。这样,就能使得当处理器 能提供的计算解码资源相对勉强满足(例如单项视频解码测试时平均36ms每帧)时,能消 除视音频播放不均衡或卡的现象,提供平滑、流畅的播放效果和更精准的音视频同步。
本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可 以通过程序指令相关硬件来完成的,所述的程序可以存储于一计算机可读取存储介质中, 所述的存储介质可以为ROM、RAM、磁盘、光盘等。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
一种视频解码装置,包括熵解码模块,用于对输入的编码流进行熵解码,提取出各宏块的变换系数、运动矢量和头信息;运行层解码和重排序模块,用于对运行层解码和重排序,得到量化和变换后的子宏块;反量化模块,用于对所述子宏块进行反量化;反离散余弦变换模块,用于对所述反量化后的子宏块进行反离散余弦变换,生成残差;运动补偿模块,用于对运动矢量和参考帧图像进行运动补偿预测,生成预测宏块;宏块重构模块,用于将所述预测宏块加到所述残差上生成重构的宏块,并用于当前帧图像的全部宏块重构完毕后,直接生成当前帧解码图像;检测模块,用于检测当前帧图像的全部宏块重构完毕后,标明当前帧解码图像生成完毕,可用于输出或下一次解码预测,其特征在于,所述装置还包括第一调度模块,用于实现熵解码后,调度CPU进入睡眠状态;第二调度模块,用于实现运动补偿预测后,调度CPU进入睡眠状态。
2.如权利要求1所述的视频解码装置,其特征在于所述参考帧为所述当前帧的前一帧。
3.如权利要求1所述的视频解码装置,其特征在于所述睡眠状态的时间小于一个CPU 时钟Tick。
4.一种视频解码方法,其特征在于,所述方法包括以下步骤对输入的编码流进行熵解码,提取出各宏块的变换系数、运动矢量和头信息; 判断当前帧是I帧; 调度CPU进入睡眠状态;对运行层解码和重排序,从而获取量化和变换后的子宏块; 对所述子宏块进行反量化;对所述反量化后的子宏块进行反离散余弦变换,生成残差; 对运动矢量和参考帧图像进行运动补偿预测,生成预测宏块; 判断当前帧是I帧; 调度CPU进入睡眠状态;将所述预测宏块加到所述残差上生成重构的宏块,并用于当前帧图像的全部宏块重构 完毕后,直接生成当前帧解码图像;判断当前帧图像的全部宏块重构完毕后,生成当前帧帧解码图像。
5.如权利要求4所述的视频解码方法,其特征在于,所述方法还包括第一次判断当前帧不是I帧时,进入步骤“对运行层解码和重排序,从而获取量化和变 换后的子宏块”。
6.如权利要求4所述的视频解码方法,其特征在于,所述方法还包括第二次判断当前帧不是I帧时,进入步骤“将所述预测宏块加到所述残差上生成重构 的宏块,并用于当前帧图像的全部宏块重构完毕后,直接生成当前帧解码图像”。
7.如权利要求4所述的视频解码方法,其特征在于所述参考帧为所述当前帧的前一帧。
8.如权利要求4所述的视频解码装置,其特征在于所述睡眠状态的时间小于一个CPU 时钟Tick。
9.一种包括如权利要求1所述视频解码装置的视音频播放系统,所述系统包括播放控 制模块、输入接口、音频解码模块、视频解码装置、回显接口、第一缓冲区;所述输入接口、音频解码模块、视频解码装置、回显接口分别与播放控制模块相连接,第一缓冲区与输入接口 相连接;播放控制模块用于发出命令,选中要播放的文件或媒体数据位置链接地址,通过操 作系统文件输入输出接口将媒体数据读入第一缓冲区,其特征在于所述视频解码装置还包括第三输出队列缓冲区,所述视频解码装置用于通过输入接口 获取第一缓冲区中的要播放的文件或媒体数据,并进行视频解码,存入第三输出队列缓冲 区,并用于创建全局的互斥锁来保证对所述第三输出队列缓冲区的输出队列的互斥访问, 所述第三输出队列缓冲区用于存储所述视频解码模块所解码后的数据,并形成输出队列以 使所述回显接口和所述视频解码装置能异步地工作;所述音频解码模块还包括第二输出队列缓冲区,所述音频解码模块用于通过输入接口 获取第一缓冲区中的要播放的文件或媒体数据,并进行音频解码,存入第二输出队列缓冲 区,并用于创建全局的互斥锁来保证对所述第二输出队列缓冲区的输出队列的互斥访问, 所述第二输出队列缓冲区用于存储所述音频解码模块所解码后的数据,并形成输出队列以 使所述回显接口和所述音频解码模块能异步地工作;回显接口,用于按一定时序,根据所述第二输出队列缓冲区、第三输出队列缓冲区中所 存储的视音频解码后的数据地址,进行视音频的效果呈现。
10. 一种包括如权利要求1所述视频解码装置的视音频播放系统,所述系统包括播放 控制模块、输入接口、音频解码模块、视频解码装置、回显接口、第一缓冲区;所述输入接口、 音频解码模块、视频解码装置、回显接口分别与播放控制模块相连接,第一缓冲区与输入接 口相连接;播放控制模块用于发出命令,选中要播放的文件或媒体数据位置链接地址,通过 操作系统文件输入输出接口将媒体数据读入第一缓冲区,其特征在于所述视音频播放系统还包括第四缓冲区,所述第四缓冲区与所述音频解码模块和所述 回显接口相连接,用于存储所述音频解码模块的帧输出缓冲区输出的解码后的帧数据并形 成输出队列,并用于提供访问地址给所述回显接口访问;所述视频解码装置还包括第三输出队列缓冲区,所述视频解码装置用于通过输入接口 获取第一缓冲区中的要播放的文件或媒体数据,并进行视频解码,存入第三缓冲区输出队 列,并用于创建全局的互斥锁来保证对所述第三输出队列缓冲区的输出队列的互斥访问, 所述第三缓冲区用于存储所述视频解码模块所解码后的数据,并形成输出队列以使所述回 显接口和所述视频解码装置能异步地工作;所述音频解码模块还与所述第四缓冲区相连接,用于通过所述输入接口获取第一缓冲 区中的要播放的文件或媒体数据,并进行音频解码,每次解码输出一帧,将解码后的视频帧 raw数据存放在所述音频解码模块的帧输出缓冲区;回显接口,用于按一定时序,根据所述第三输出队列缓冲区中所存储的视频解码后的 数据地址和第四缓冲区存储的音频解码后的数据地址进行视音频的效果呈现。
全文摘要
本发明公开一种视频解码方法、装置及视音频播放系统,通过在视频解码模块、音频解码模块中设置输出帧队列缓冲区,以空间换取时间,使得回显模块和解码模块能异步地工作,具体说,如果帧队列缓冲中有视音频帧数据,回显时不用等待解码器输出,而是直接根据播放速度从缓冲队列取数据回显。由于视频I帧的解码会耖时较长,为了保证此时回显模块不会因分配不到CPU而停止,本发明在视频解码过程中的熵解码和运动补偿后通过调度CPU,保证回显模块能及时调度到CPU,从而保证播放的流畅平滑。这样,就能使得当处理器能提供的计算解码资源相对勉强满足时,能消除视音频播放不均衡或卡的现象,提供平滑、流畅的播放效果和更精准的音视频同步。
文档编号H04N7/26GK101873498SQ20101020517
公开日2010年10月27日 申请日期2010年6月22日 优先权日2010年6月22日
发明者田逢春 申请人:深圳市融创天下科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1