一种视频的平滑处理方法和装置制造方法

文档序号:7783207阅读:286来源:国知局
一种视频的平滑处理方法和装置制造方法
【专利摘要】本发明提供一种视频的平滑处理方法和装置,能够减轻视频播放过程中视频的抖动现象。方法包括:接收第一指示消息;根据第一指示消息,启动帧同步VSync事件监听线程;获取第N帧待播放视频帧并存储在预先建立的第一队列中,第N帧待播放视频帧携带对应的时间戳,并在获取第一帧待播放视频帧时,将VSync事件监听线程的时钟时间与第一时间戳同步;确定VSync事件监听线程是否被唤醒;若确定VSync事件监听线程被唤醒,根据第一队列中的待播放视频帧对应的时间戳检查第一队列中是否存储符合预设条件的待播放视频帧;若第一队列中存储符合预设条件的待播放视频帧,将该待播放视频帧渲染出去。本发明适用于计算机【技术领域】。
【专利说明】一种视频的平滑处理方法和装置
【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种视频的平滑处理方法和装置。
【背景技术】
[0002]一般视频在播放时,需要先从视频播放器获取待播放视频帧,然后将该待播放视频中贞通过图层渲染(surface render)后才视作最终播放出来。
[0003]但是现有的安卓系统中,视频播放器的播放精度较低,即一般情况下,从视频播放器获取待播放视频帧的时间与该待播放视频帧的时间戳相比至少存在±10ms的误差,比如,在20ms时获取到时间戳为30ms的待播放视频帧。
[0004]该误差使得从视频播放器获取的待播放视频帧在获取时间上是不固定的,而安卓系统中的图层渲染是以固定频率去渲染获取到的待播放视频帧的,这就导致在以待播放视频帧的获取时间为基准对待播放视频帧进行图层渲染时,一些视频帧可能被丢掉,一些视频帧的播放时间可能被拉长,从而引起严重的视频抖动现象。

【发明内容】

[0005]本发明提供一种视频的平滑处理方法和装置,能够减轻视频播放过程中视频的抖动现象。
[0006]为达到上述目的,本发明采用如下技术方案:
[0007]第一方面,提供一种视频的平滑处理方法,所述方法包括:
[0008]接收第一指示消息,所述第一指示消息指示视频播放器开始播放;
[0009]根据所述第一指示消息,启动帧同步VSync事件监听线程,所述Vsync事件监听线程用于在被唤醒时检查是否存储符合预设条件的待播放视频帧;
[0010]获取第N帧待播放视频帧并存储在预先建立的第一队列中,其中,所述第N帧待播放视频帧携带对应的时间戳,并在获取第一帧待播放视频帧时,将所述VSync事件监听线程的时钟时间与第一时间戳同步,其中,N ≥1,为整数,所述第一时间戳为所述第一帧待播放视频帧对应的时间戳;
[0011]确定所述VSync事件监听线程是否被唤醒;
[0012]若确定所述VSync事件监听线程被唤醒,根据所述第一队列中的待播放视频帧对应的时间戳检查所述第一队列中是否存储符合所述预设条件的待播放视频帧;
[0013]若所述第一队列中存储所述符合所述预设条件的待播放视频帧,将所述符合所述预设条件的待播放视频帧渲染出去。
[0014]在第一方面第一种可能的实现方式中,结合第一方面,所述确定所述VSync事件监听线程是否被唤醒具体包括:
[0015]确定是否接收到由于图层渲染周期而生成的Vsync信号;
[0016]若接收到所述Vsync信号,确定所述VSync事件监听线程被唤醒。
[0017]在第一方面第二种可能的实现方式中,结合第一方面或第一方面第一种可能的实现方式,所述预设条件具体包括:
[0018]所述待播放视频帧所携带的时间戳满足如下第一关系,所述第一关系为:
[0019]tl-a ≤ PTS < tl+(T_a),
[0020]其中,tl表示所述VSync事件监听线程的当前时钟时间,a表示预设时钟偏移量,PTS表示所述时间戳,T表示所述图层渲染周期。
[0021]在第一方面第三种可能的实现方式中,结合第一方面第二种可能的实现方式,所述第一关系中的所述预设时钟偏移量满足第二条件,所述第二条件为:
[0022]O ≤ a < T0
[0023]在第一方面第四种可能的实现方式中,结合第一方面第三种可能的实现方式,所述预设时间偏移量具体包括:
[0024]a=l/2T ;则所述第一关系为:
[0025]tl-l/2T ( PTS < tl+l/2T。
[0026]第二方面,提供一种视频的平滑处理装置,所述装置包括:
[0027]接收单元,用于接收第一指示消息,所述第一指示消息指示视频播放器开始播放;
[0028]启动单元,用于根据所述接收单元接收的所述第一指示消息,启动帧同步VSync事件监听线程,所述Vsync事件监听线程用于在被唤醒时监听是否存储符合预设条件的待播放视频帧;
[0029]获取单元,用于获取第N帧待播放视频帧;
[0030]存储单元,用于将所述获取单元获取的所述第N帧待播放视频帧存储在预先建立的第一队列中,其中,所述第N帧待播放视频帧携带对应的时间戳;
[0031]时钟同步单元,用于在所述获取单元获取所述第一帧待播放视频帧时,将所述VSync事件监听线程的时钟时间与第一时间戳同步,其中,NS 1,为整数,所述第一时间戳为所述第一帧待播放视频帧对应的时间戳;
[0032]确定单元,用于确定所述VSync事件监听线程是否被唤醒;
[0033]检查单元,用于若所述确定单元确定所述VSync事件监听线程被唤醒,则根据所述存储单元存储的所述第一队列中的待播放视频帧对应的时间戳检查所述第一队列中是否存储符合所述预设条件的待播放视频帧;
[0034]渲染单元,用于若所述检查单元确定所述存储单元存储的所述第一队列中存储所述符合所述预设条件的待播放视频帧,将所述符合所述预设条件的待播放视频帧渲染出去。
[0035]在第二方面第一种可能的实现方式中,结合第二方面,所述确定单元具体用于:
[0036]确定是否接收到由于图层渲染周期而生成的Vsync信号;
[0037]若接收到所述Vsync信号,确定所述VSync事件监听线程被唤醒。
[0038]在第二方面第二种可能的实现方式中,结合第二方面或第二方面第一种可能的实现方式,所述预设条件具体包括:
[0039]所述待播放视频帧所携带的时间戳是否满足如下第一关系,所述第一关系为:
[0040]tl-a ≤ PTS < tl+(T_a),
[0041]其中,tl表示所述VSync事件监听线程的当前时钟时间,a表示预设时钟偏移量,PTS表示所述时间戳,T表示所述图层渲染周期。
[0042]在第二方面第三种可能的实现方式中,结合第二方面第二种可能的实现方式,所述第一关系中的所述预设时钟偏移量满足第二条件,所述第二条件为:
[0043]O < a < T。
[0044]在第二方面第四种可能的实现方式中,结合第二方面第三种可能的实现方式,所述预设时间偏移量具体包括:
[0045]a=l/2T ;则所述第一关系为:
[0046]tl-l/2T ( PTS < tl+l/2T。
[0047]本发明提供一种视频的平滑处理方法和装置,包括:视频的平滑处理装置接收第一指示消息,根据第一指示消息,启动VSync事件监听线程,该VSync事件监听线程用于在被唤醒时检查是否存储符合预设条件的待播放视频;获取第N帧待播放视频帧并存储在预先建立的第一队列中,其中,第N帧待播放视频帧携带对应的时间戳,并在获取第一帧待播放视频帧时,将VSync事件监听线程的时钟时间与第一时间戳同步,其中,NS 1,为整数,第一时间戳为第一帧待播放视频帧对应的时间戳;确定VSync事件监听线程是否被唤醒,若确定VSync事件监听线程被唤醒,根据第一队列中待播放视频帧对应的时间戳检查第一队列中是否存储符合预设条件的待播放视频帧,若第一队列中存储符合预设条件的待播放视频帧,将该符合预设条件的待播放视频帧渲染出去。基于本发明实施例提供的上述方案,在播放器开始播放时,启动VSync事件监听线程,在该VSync事件监听线程被唤醒时,根据第一队列中的待播放视频帧对应的时间戳检查第一队列中是否存储符合预设条件的待播放视频帧,在确定存储符合预设条件的待播放视频帧时,将该待播放视频帧渲染出去,因为待播放视频对应的时间戳有较为稳定的周期,因此以待播放视频帧为基准选择符合条件的待播放视频帧渲染出去可以使得待播放视频帧以相对稳定的频率渲染出去,减轻了视频播放过程中视频的抖动现象。
【专利附图】

【附图说明】
[0048]图1为本发明实施例一提供的视频的平滑处理方法流程示意图;
[0049]图2为本发明实施例二提供的视频的平滑处理方法流程示意图;
[0050]图3为本发明实施例三提供的视频的平滑处理装置结构示意图。
【具体实施方式】
[0051]下面结合附图对本发明实施例提供的一种视频的平滑处理方法和装置进行详细描述。
[0052]实施例一、
[0053]本发明实施例提供一种视频的平滑处理方法,具体如图1所示,包括:
[0054]101、视频的平滑处理装置接收第一指示消息,该第一指示消息指示视频播放器开始播放。
[0055]具体的,在用户播放视频时,视频的平滑处理装置首先会接收到用户触发视频播放器而产生的第一指示消息,该第一指示消息指示视频播放器开始播放。
[0056]需要说明的是,本发明实施例中的视频平滑处理的装置具体可以是安装在安卓视频播放设备中的一个独立装置,也可以是集成在安卓视频播放设备中的一个装置,本发明实施例对此不作具体限定,仅说明视频的平滑处理装置接收第一指示消息,该第一指示消息指示视频播放器开始播放。
[0057]102、视频的平滑处理装置根据第一指示消息,启动帧同步(VerticalSynchronization, Vsync)事件监听线程。
[0058]其中,该Vsync事件监听线程用于在被唤醒时检查是否存储符合预设条件的待播放视频帧。
[0059]具体的,在视频的平滑处理装置接收到第一指示消息之后,将根据该第一指示消息,启动Vsync事件监听线程。
[0060]需要说明的是,该Vsync事件监听线程用于监测系统因图层渲染周期而生成的Vsync信号,没有Vsync信号到来时该Vsync事件监听线程是被阻塞的,当有一个Vsync信号到来时会被唤醒一次,进而检查是否存储有合适的待播放视频帧数据,若存在则进行图层渲染,将该视频帧数据渲染出去。
[0061]需要说明的是,本发明实施例中的Vsync不仅仅可以是视频帧同步,还可以是其它渲染帧的同步,因此Vsync事件监听线程在被唤醒后不仅仅只检查视频帧的同步信息,还同时检查其它渲染帧的同步信息,本发明实施例对此不作具体限定,但是基于本发明实施例讨论的是视频的平滑处理,因此本发明实施例仅讨论检查视频帧的同步信息的情况,对其它渲染帧在Vsync事件监听线程下的处理情况,本发明实施例在此不予讨论。
[0062]103、视频的平滑 处理装置获取第N帧待播放视频并存储在预先建立的第一队列中,其中,第N帧待播放视频携带对应的时间戳,并在获取第一帧待播放视频时,将Vsync事件监听线程的时钟时间与第一时间戳同步。
[0063]其中,N ^ 1,为整数,第一时间戳为第一帧待播放视频对应的时间戳。
[0064]具体的,在视频播放的过程中,视频的平滑处理装置会获取第N帧待播放视频,并将该第N帧待播放视频存储在预先建立的第一队列中,该第N帧待播放视频携带对应的时间戳。
[0065]其中,在获取第一帧待播放视频时,需要将Vsync事件监听线程的时钟时间与第一帧待播放视频对应的时间戳同步,即假设第一帧待播放视频的时间戳为25ms,则在获取第一帧待播放视频时,将Vsync事件监听线程的时钟时间同步为25ms,以保证从第一帧待播放视频开始的所有待播放视频的时间戳均位于Vsync事件监听线程的监听时间范围内。
[0066]104、视频的平滑处理装置确定Vsync事件监听线程是否被唤醒。
[0067]具体的,视频的平滑处理装置确定Vsync事件监听线程是否被唤醒可以通过如下方式实现:
[0068]确定是否接收到由于图层渲染周期而生成的Vsync信号;
[0069]若接收到Vsync信号,确定Vsync事件监听线程被唤醒。
[0070]示例性的,一般图层渲染频率为60HZ,即渲染周期为16ms,则每隔16ms系统会生成一个Vsync信号,并将该Vsync信号发送给视频的平滑处理装置,视频的平滑处理装置接收到Vsync信号,可确定Vsync事件监听线程被唤醒,继续执行下述各步骤;当然,若没有Vsync信号到来时该Vsync事件监听线程是被阻塞的,暂时不执行下述各步骤。
[0071]105、若确定Vsync事件监听线程被唤醒,视频的平滑处理装置根据第一队列中存储的待播放视频帧对应的时间戳检查第一队列中是否存储符合预设条件的待播放视频帧。
[0072]具体的,若确定Vsync事件监听线程被唤醒,则视频平滑处理的装置根据第一队列中存储的待播放视频帧对应的时间戳检查第一队列中是否存储符合预设条件的待播放视频帧,其中,该预设条件具体可以包括:
[0073]待播放视频帧所携带的时间戳是否满足如下第一关系,该第一关系为:
[0074]tl-a ≤PTS < tl+(T_a)
[0075]其中,tl表示VSync事件监听线程的当前时钟时间,a表示预设时钟偏移量,PTS表示第一队列中的待播放视频帧所携带的时间戳,T表示图层渲染周期,也即Vsync周期。
[0076]需要说明的是,本发明实施例中的预设时钟偏移量是一个预先设定的参考量,它反映的是可以进行图层渲染的待播放视频帧的时间戳相对于图层渲染时间的一个整体偏移量,可以为小于T的一个参考量,也可以为不小于T的一个参考量,本发明实施例对此不作具体限定。
[0077]优选的,该第一关系中的预设时钟偏移量满足第二条件,该第二条件为O ≤a < T。
[0078]需要说明的是,为了保证待播放视频帧在更为接近自己的时间戳的时刻渲染出去,因此第一关系中的预设时钟偏移量限定在小于图层渲染周期时,这样可以进一步的减少视频的抖动。
[0079]进一步的,优选的,a的取值为1/2T,这样第一关系为tl_l/2T ≤PTS < tl+l/2T,此时可以保证待播放视频帧在最为接近自己的时间戳的时刻渲染出去,这样可以更进一步的减少视频的抖动。
[0080]需要说明的是,因为待播放视频帧的时间戳周期一般大于图层的渲染周期,因此在以待播放视频帧的时间戳为基准值确定第一队列中是否存储符合预设条件的待播放视频帧时,不存在同时有两个符合预设条件的待播放视频帧的情况,因此不会出现现有技术中以待播放视频帧的采集时间为基准,而采集时间与视频帧的时间戳存在至少±10ms的误差而导致的在图层渲染时,有大于I帧的视频帧存储在显示缓存中,但是仅能渲染I帧而其它视频帧需要丢弃的情况,减少了视频的抖动。
[0081]106、若第一队列中存储符合预设条件的待播放视频帧,视频的平滑处理装置将该符合预设条件的待播放视频帧渲染出去。
[0082]具体的,若第一队列中存储符合预设条件的待播放视频帧,则视频的平滑处理装置将该符合预设条件的待播放视频帧渲染出去。
[0083]示例性的,假设预设条件为第一队列中的待播放视频帧所携带的时间戳满足关系tl-l/2T ≤ PTS < tl+l/2T,图层渲染周期为16ms,待播放视频的时间戳周期为25ms,则以下列举几个从获取第一帧待播放视频,将VSync事件监听线程的时钟时间与第一时间戳同步后的待播放视频帧的渲染情况,如表一所示:
[0084]表一
[0085]
【权利要求】
1.一种视频的平滑处理方法,其特征在于,所述方法包括: 接收第一指示消息,所述第一指示消息指示视频播放器开始播放; 根据所述第一指示消息,启动帧同步VSync事件监听线程,所述Vsync事件监听线程用于在被唤醒时检查是否存储符合预设条件的待播放视频帧; 获取第N帧待播放视频帧并存储在预先建立的第一队列中,其中,所述第N帧待播放视频帧携带对应的时间戳,并在获取第一帧待播放视频帧时,将所述VSync事件监听线程的时钟时间与第一时间戳同步,其中,N ^ 1,为整数,所述第一时间戳为所述第一帧待播放视频帧对应的时间戳; 确定所述VSync事件监听线程是否被唤醒; 若确定所述VSync事件监听线程被唤醒,根据所述第一队列中的待播放视频帧对应的时间戳检查所述第一队列中是否存储符合所述预设条件的待播放视频帧; 若所述第一队列中存储所述符合所述预设条件的待播放视频帧,将所述符合所述预设条件的待播放视频帧渲染出去。
2.根据权利要求1所述的方法,其特征在于,所述确定所述VSync事件监听线程是否被唤醒具体包括: 确定是否接收到由于图层渲染周期而生成的Vsync信号; 若接收到所述Vsync信号,确定所述VSync事件监听线程被唤醒。
3.根据权利要求1或2所述的方法,其特征在于,所述预设条件具体包括: 所述待播放视频帧所携带的时间戳满足如下第一关系,所述第一关系为: tl-a ( PTS < tl+(T-a), 其中,tl表示所述VSync事件监听线程的当前时钟时间,a表示预设时钟偏移量,PTS表示所述时间戳,T表示所述图层渲染周期。
4.根据权利要求3所述的方法,其特征在于,所述第一关系中的所述预设时钟偏移量满足第二条件,所述第二条件为:
O < a < T。
5.根据权利要求4所述的方法,其特征在于,所述预设时间偏移量具体包括: a=l/2T ;则所述第一关系为:
tl-l/2T ( PTS < tl+l/2T。
6.一种视频的平滑处理装置,其特征在于,所述装置包括: 接收单元,用于接收第一指示消息,所述第一指示消息指示视频播放器开始播放; 启动单元,用于根据所述接收单元接收的所述第一指示消息,启动帧同步VSync事件监听线程,所述Vsync事件监听线程用于在被唤醒时检查是否存储符合预设条件的待播放视频帧; 获取单元,用于获取第N帧待播放视频帧; 存储单元,用于将所述获取单元获取的所述第N帧待播放视频帧存储在预先建立的第一队列中,其中,所述第N帧待播放视频帧携带对应的时间戳; 时钟同步单元,用于在所述获取单元获取所述第一帧待播放视频帧时,将所述VSync事件监听线程的时钟时间与第一时间戳同步,其中,N ^ 1,为整数,所述第一时间戳为所述第一帧待播放视频帧对应的时间戳;确定单元,用于确定所述VSync事件监听线程是否被唤醒; 检查单元,用于若所述确定单元确定所述VSync事件监听线程被唤醒,则根据所述存储单元存储的所述第一队列中的待播放视频帧对应的时间戳检查所述第一队列中是否存储符合所述预设条件的待播放视频帧; 渲染单元,用于若所述检查单元确定所述存储单元存储的所述第一队列中存储所述符合所述预设条件的待播放视频帧,将所述符合所述预设条件的待播放视频帧渲染出去。
7.根据权利要求6所述的装置,其特征在于,所述确定单元具体用于: 确定是否接收到由于图层渲染周期而生成的Vsync信号; 若接收到所述Vsync信号,确定所述VSync事件监听线程被唤醒。
8.根据权利要求6或7所述的装置,其特征在于,所述预设条件具体包括: 所述待播放视频帧所携带的时间戳是否满足如下第一关系,所述第一关系为: tl-a ( PTS < tl+(T-a), 其中,tl表示所述VSync事件监听线程的当前时钟时间,a表示预设时钟偏移量,PTS表示所述时间戳,T表示所述图层渲染周期。
9.根据权利要求8所述的装置,其特征在于,所述第一关系中的所述预设时钟偏移量满足第二条件,所述第二条件为:
O< a < T。
10.根据权利要求9所述的装置,其特征在于,所述预设时间偏移量具体包括: a=l/2T ;则所述第一关系为:
tl-l/2T ( PTS < tl+l/2T。
【文档编号】H04N21/44GK103747332SQ201310750815
【公开日】2014年4月23日 申请日期:2013年12月25日 优先权日:2013年12月25日
【发明者】平凯, 唐江杰 申请人:乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1