一种视频解码和播放的方法、系统、终端设备技术方案

技术编号:4106445 阅读:155 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种视频解码和播放的方法、系统、终端设备,通过操作系统控制解码与播放的工作线程的优先级,解码视频帧生成图像帧后,根据缓冲区的存储状态控制图像帧的存储或者解码线程的休眠,播放的工作线程读取缓冲区中的图像帧和相对时间戳,根据相对系统时间与相对时间戳的对比结果控制图像帧的显示或者播放线程的休眠。即使在解码某一帧占用CPU时间过高时,并不影响播放装置显示图像帧,可以准确的把缓冲区里的图像按时显示。在解码和显示过程中,设定的休眠时间,确保工作线程无需工作的情况下进入休眠状态,避免占用CPU,兼容CPU运行频率低又能处理高码率高帧率的终端嵌入式终端设备,适用无音频的视频解码和播放。

【技术实现步骤摘要】

本专利技术涉及视频播放领域,尤其涉及一种视频解码和播放的方法、系统、终端设 备。
技术介绍
移动终端以及移动流媒体技术特点有无线网络带宽窄,干扰严重,导致网络传输的误码的可能性大大增加。移动终端处 理能力低,内存容量小。手机中低端用户基数庞大而带来的巨大的市场商机。流媒体解码 技术需要较高的处理能力,运算开销比较大,对CPU的处理能力要求比较高,效率低下。移 动流媒体不适合低比特网络传输。现有视频播放技术为了保障视频流畅播放,多数从解码和播放同步性来大概保证 其流畅播放,但是在一秒内的帧图像输出确不能保证其流畅和均勻性。现有技术的表现会 因解码某帧耗时过长,要么就尽快连续显示第二帧,要么就丢弃第二帧,会呈现出图象显示 的不均勻性。虽然计算机领域刚刚面世的GPU硬解码技术不依赖于CPU的能力,但解码支持度 不高,对不同的视频编码、封装格式,硬解码无法做到全面兼容,画面输出补偿及画质增强 技术不够,难以解决秒内的帧图像输出的均勻性。
技术实现思路
本专利技术实施例的目的在于提出一种视频播放的方法,旨在解决现有技术中因解码 某帧视频帧时间过长,而导致显示输出延迟、显示不均勻的问题,同时本专利技术可应用CPU运 行频率低又能处理高码率高帧率的终端嵌入式终端设备。本专利技术实施例是这样实现的,一种视频解码的方法,包括以下步骤读取视频帧和相对时间戳,对视频帧解码并生成图像帧;判断缓冲区是否已满,如果否,存储未写入的图像帧和相对时间戳到缓冲区,并继 续读取视频帧和相对时间戳;如果是,休眠一个等待周期;等待周期期满,休眠被唤醒,再次判断缓冲区是否已满。本专利技术实施例的另一目的在于提出一种视频解码装置,所述装置包括解码模块,与第一判断模块相连,用于获取视频帧和相对时间戳,对视频帧进行解 码并生成图像帧,向第一判断模块发送解码完成的指令,接收第一判断模块的存储指令;第一判断模块,与解码模块、缓冲模块和第一休眠模块相连,用于接收解码模块的 解码完成的指令,请求获取缓冲模块的存储状态,根据缓冲模块的存储状态向解码模块发 送存储指令或向第一休眠模块发送休眠指令;并根据第一休眠模块发送的休眠期满指令, 判断所述缓冲模块的存储状态为未满或已满,如果存储状态为未满,则向解码模块发送存 储指令,如果存储状态为已满,第一休眠模块发送休眠指令;4缓冲模块,与第一判断模块相连,用于接收第一判断模块的获取缓冲模块的存储 状态的请求,并向第一判断模块发送缓冲模块的存储状态,同时接收解码模块发送的图像 帧和相对时间戳,并存储;第一休眠模块,与第一判断模块相连,用于接收第一判断模块发送的休眠指令,进 入一个等待周期的休眠状态,接收操作系统发送的唤醒指令,向第一判断模块发送休眠期 满指令。本专利技术实施例的另一目的在于提出一种视频播放方法,包括以下步骤读取缓冲区的图像帧和相对时间戳;判断相对系统时间是否小于相对时间戳,如果否,显示图像帧,并继续读取缓冲区 的图像帧和相对时间戳;如果是,休眠一个等待周期;等待周期期满,休眠被唤醒,再次判断相对系统时间是否小于相对时间戳。本专利技术实施例的另一目的在于提出一种视频播放装置,所述装置包括读取模块,与第二判断模块相连,用于读取缓存区的图像帧和相对时间戳,向第二 判断模块发送读取完成指令,接收第二判断模块的显示指令,发送图像帧;第二判断模块,与读取模块、显示模块和第二休眠模块相连,用于接收读取模块的 读取完成指令和接收第二休眠模块发送的休眠期满指令,根据相对系统时间与相对时间戳 的对比结果,向读取模块和显示模块发送显示指令或向第二休眠模块发送休眠指令;显示模块,与第二判断模块相连,用于接收第二判断模块的显示指令,获取图像帧 并显示;第二休眠模块,与第二判断模块相连,用于接收第二判断模块发送的休眠指令,进 入一个等待周期的休眠状态;接收操作系统发送的唤醒指令,向第二判断模块发送休眠期 满指令。本专利技术实施例的另一目的在于提出一种视频解码和播放系统,所述的系统包括 解码装置和播放装置;解码模块,与第一判断模块相连,用于获取视频帧和相对时间戳,视频帧解码,生 成图像帧,向第一判断模块发送解码完成的指令,接收第一判断模块的存储指令;第一判断模块,与解码模块、缓冲模块和第一休眠模块相连,用于接收解码模块的 解码完成的指令,请求获取缓冲模块的存储状态,根据缓冲模块的存储状态向解码模块发 送存储指令或向第一休眠模块发送休眠指令;并根据第一休眠模块发送的休眠期满指令, 判断所述缓冲模块的存储状态为未满或已满,如果存储状态为未满,则向解码模块发送存 储指令,如果存储状态为已满,第一休眠模块发送休眠指令;缓冲模块,与第一判断模块相连,用于接收第一判断模块的获取缓冲模块的存储 状态的请求,并向第一判断模块发送缓冲模块的存储状态,同时接收解码模块发送的图像 帧和相对时间戳,并存储;第一休眠模块,与第一判断模块相连,用于接收第一判断模块发送的休眠指令,进 入一个等待周期的休眠状态,接收操作系统发送的唤醒指令,向第一判断模块发送休眠期 满指令;读取模块,与第二判断模块相连,用于读取缓存区的图像帧和相对时间戳,向第二5判断模块发送读取完成指令,接收第二判断模块的显示指令,发送图像帧;第二判断模块,与读取模块、显示模块和第二休眠模块相连,用于接收读取模块的 读取完成指令和接收第二休眠模块发送的休眠期满指令,根据相对系统时间与相对时间戳 的对比结果,向读取模块和显示模块发送显示指令或向第二休眠模块发送休眠指令;显示模块,与第二判断模块相连,用于接收第二判断模块的显示指令,获取图像帧 并显示;第二休眠模块,与第二判断模块相连,用于接收第二判断模块发送的休眠指令,进 入一个等待周期的休眠状态;并用于接收操作系统发送的唤醒指令,向第二判断模块发送 休眠期满指令。本专利技术实施例的另一目的在于提出一种包括所述视频解码和播放系统的终端设备。本专利技术的有益效果通过操作系统控制解码与播放的工作线程的优先级,解码视频帧生成图像帧后, 根据缓冲区的存储状态控制图像帧的存储或者解码线程的休眠,播放的工作线程读取缓冲 区中的图像帧和相对时间戳,根据相对系统时间与相对时间戳的对比结果控制图像帧的显 示或者播放线程的休眠。即使在解码某一帧占用CPU时间过高时,并不影响播放装置显示 图像帧,可以准确的把缓冲区里的图像按时显示。在解码和显示过程中,设定的休眠时间, 确保工作线程无需工作的情况下进入休眠状态,避免占用CPU,兼容CPU运行频率低又能处 理高码率高帧率的终端嵌入式终端设备,适用无音频的视频解码和播放。附图说明图1是本专利技术实施例一种视频解码方法流程图;图2是本专利技术实施例一种视频解码装置结构示意图;图3是本专利技术实施例一种视频播放方法流程图;图4是本专利技术实施例一种视频播放装置结构示意图;图5是本专利技术实施例一种视频解码和播放系统结构示意图。具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对 本专利技术进行进一步详细说明,为了便于说明,仅示出了与本专利技术实施例相关的部分。应当理 解,此处所描写的具体实施例,仅仅用于解释本专利技术,并不用以限制本专利技术。本专利技术通过操作系统控制解码与播放的工作线程的优先级,确保播放的工作线程 高于解码的工作线程的优先级,达到图像帧的顺畅显示本文档来自技高网...

【技术保护点】
一种视频解码的方法,其特征在于,所述方法包括以下步骤:读取视频帧和相对时间戳,对视频帧进行解码并生成图像帧;判断缓冲区是否已满,如果是,休眠一个等待周期。

【技术特征摘要】
一种视频解码的方法,其特征在于,所述方法包括以下步骤读取视频帧和相对时间戳,对视频帧进行解码并生成图像帧;判断缓冲区是否已满,如果是,休眠一个等待周期。2.如权利要求1所述的视频解码的方法,其特征在于,所述的步骤“判断缓冲区是否已 满”还包括步骤如果否,存储图像帧和相对时间戳到缓冲区,并进入步骤“读取视频帧和相对时间戳, 对视频帧进行解码并生成图像帧”。3.如权利要求1所述的视频解码的方法,其特征在于,所述的步骤“休眠一个等待周 期”之后还包括步骤“等待周期期满,休眠被唤醒,再次判断缓冲区是否已满”。4.如权利要求1所述的视频解码的方法,其特征在于,等待周期为1000ms*[(缓冲区所 能容纳的帧数/2)/帧率]。5.如权利要求1所述的视频解码的方法,其特征在于,所述的相对时间戳可替换为相 对音频时间。6.一种视频解码装置,其特征在于,所述装置包括解码模块,与第一判断模块相连,用于获取视频帧和相对时间戳,视频帧解码,生成图 像帧,向第一判断模块发送解码完成的指令,接收第一判断模块的存储指令;第一判断模块,与解码模块、缓冲模块和第一休眠模块相连,用于接收解码模块的解码 完成的指令,请求获取缓冲模块的存储状态,根据缓冲模块的存储状态向解码模块发送存 储指令或向第一休眠模块发送休眠指令;并根据第一休眠模块发送的休眠期满指令,判断 所述缓冲模块的存储状态为未满或已满,如果存储状态为未满,则向解码模块发送存储指 令,如果存储状态为已满,第一休眠模块发送休眠指令;缓冲模块,与第一判断模块相连,用于接收第一判断模块的获取缓冲模块的存储状态 的请求,并向第一判断模块发送缓冲模块的存储状态,同时接收解码模块发送的图像帧和 相对时间戳,并存储;第一休眠模块,与第一判断模块相连,用于接收第一判断模块发送的休眠指令,进入一 个等待周期的休眠状态,接收操作系统发送的唤醒指令,向第一判断模块发送休眠期满指 令。7.一种视频播放的方法,其特征在于,所述方法包括以下步骤读取缓冲区的图像帧和相对时间戳;判断相对系统时间是否小于相对时间戳,如果是,休眠一个等待周期。8.如权利要求7所述的视频播放方法,其特征在于,所述的步骤“判断相对系统时间是 否小于相对时间戳”还包括步骤如果否,显示图像帧,并进入步骤“读取缓冲区的图像帧和相对时间戳”。9.如权利要求7所述的视频播放方法,其特征在于,所述的步骤“休眠一个等待周期” 之后还包括步骤“等待周期期满,休眠被唤醒,再次判断相对系统时间是否小于相对时间 戳”。10.如权利要求7所述的视频播放方法,其特征在于,所述的一个等待周期是1000ms/ (帧率*2)(取整数)。11.如权利要求7所述的视频播放方法,其特征在于,所述的相对系统时间替换为...

【专利技术属性】
技术研发人员:刘骁
申请(专利权)人:深圳市融创天下科技发展有限公司
类型:发明
国别省市:94[中国|深圳]

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

1