一种解码多个视频文件的方法及设备的制作方法

文档序号:7861197阅读:246来源:国知局
专利名称:一种解码多个视频文件的方法及设备的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种解码多个视频文件的方法及设备。
背景技术
近年来,随着智能手机、平板电脑等智能移动产品的不断涌现,其功能也在不断完善。同时客户对使用这类智能移动产品观看视频时的要求也越来越高,例如,在线流畅地观看视频、本地视频的高清播放等等。目前,大多数智能移动产品都在使用一种新的悬浮窗口实现对视频的播放功能。用户可以一边利用这种悬浮窗口观看视频,一边查看短信、邮箱或浏览网页,同时还可对该 悬浮窗口实时拖动、缩放、最大最小化、播放、暂停、以及查找等操作,而不用在繁琐的操作中来回切换。由于这种悬浮窗口在使用过程中为用户带来极大的便利,因此,更多的智能移动产品都实现了可同时使用多个悬浮窗口播放不同的视频内容,播放过程如下
首先,需要对待播放的所有视频文件分别进行解码操作。该解码操作是由智能移动产品内置的多媒体解码芯片实现硬件解码操作或者软解码操作完成的。由于芯片的独有性,只能保证同一时刻只能硬解码一个视频文件,即对其中一个视频文件实现硬件解码操作时,对其他视频文件只能利用处理器进行软解码操作;最后,分别对解码后的视频文件进行播放。但本发明人发现,这样使用软解码操作的视频文件势必会因为处理器的性能影响解码效率而出现卡顿现象,影响用户体验感受。所谓卡顿现象是指在一个视频文件的播放过程中,并不是解码完一帧画面后马上显示,而是存在一个帧率控制和同步的过程。每个帧数据都有一个时间戳,它表示了此帧数据应该在什么时间点显示,时间点可以以系统时间或者音频时间做参考。当解码帧的操作完成后,如果发现还未到时间戳所指示的时间时,只能进行等待,直到时间到了才能显示这一帧的画面;如果发现已经过了时间戳所指示的时间时,就会直接丢掉此帧的数据不进行显示,当丢帧的情况增加时就会出现卡顿现象。为了避免上述现象,很多厂商都通过提高处理器的性能或者多增加媒体芯片的数量来解决此问题,但这样又会提高成本。因此,需要一种更加优选的方式更好的避免卡顿现象。

发明内容
本发明实施例提供一种解码多个视频文件的方法及设备,用于在同时播放多个视频文件时更好的避免卡顿现象。一种解码多个视频文件的方法,所述方法包括
确定需要进行硬解码操作的视频文件的目标帧;
对所述目标帧完成硬解码操作后,判断是否存在剩余时间;
如果存在所述剩余时间,确定需要进行硬解码操作的另一视频文件的目标帧,并完成硬解码操作。
一种解码多个视频文件的设备,所述设备包括
第一确定单元,用于确定需要进行硬解码操作的视频文件的目标帧;
判断单元,用于对所述目标帧完成硬解码操作后,判断是否存在剩余时间;
第二确定单元,用于如果存在所述剩余时间,确定需要进行硬解码操作的另一视频文件的目标帧,并完成硬解码操作。在对一个视频文件进行播放时,待显示的前后两帧之间存在一个显示间隔,硬解码操作就是在这个显示间隔中完成的。当对一个视频文件的某一帧显示后,将该帧的下一帧作为该视频文件的目标帧,并进行硬解码操作。此时,完成硬解码操作的时间有可能小于显示间隔,即存在剩余时间,则可利用该剩余时间对另一视频文件的目标帧进行硬解码操作。可见,使用本实施例提供的技术方案,可以使在同时播放的多个视频文件尽可能都通过硬解码的方式实现解码操作,最大限度的避免了使用软解码操作。由于,尽可能的避免了使用软解码操作,则多个视频文件在播放过程中受到处理器性能的影响将尽可能避免,因此, 也尽可能的避免了同时播放多个视频文件时的卡顿现象。


为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。图I为本发明实施例提供的一种解码多个视频文件的方法流程示意 图2为本发明实施例提供的一种解码多个视频文件的方法的具体流程示意 图3为使用本发明实施例和使用现有技术时的硬解码操作对比示意 图4为本发明实施例提供的硬解码的操作流程示意 图5为本发明实施例提供的使用悬浮窗口播放视频的流程示意 图6为本发明实施例提供的一种解码多个视频文件的结构示意图。
具体实施例方式为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明。在对一个视频文件进行播放时,待显示的前后两帧之间存在一个显示间隔,硬解码操作就是在这个显示间隔中完成的。当对一个视频文件的某一帧显示后,将该帧的下一帧作为该视频文件的目标帧,并进行硬解码操作。此时,完成硬解码操作的时间有可能小于显示间隔,即存在剩余时间,则可利用该剩余时间对另一视频文件的目标帧进行硬解码操作。可见,使用本实施例提供的技术方案,可以使在同时播放的多个视频文件尽可能都通过硬解码的方式实现解码操作,最大限度的避免了使用软解码操作。由于,尽可能的避免了使用软解码操作,则多个视频文件在播放过程中受到处理器性能的影响将尽可能避免,因此,也尽可能的避免了同时播放多个视频文件时的卡顿现象。如图I所示,本发明实施例提供的方法如下
步骤11,确定需要进行硬解码操作的视频文件的目标帧;
步骤12,对所述目标帧完成硬解码操作后,判断是否存在剩余时间;步骤13,如果存在所述剩余时间,确定需要进行硬解码操作的另一视频文件的目标帧,并完成硬解码操作。具体的,步骤11中所述确定需要进行硬解码操作的视频文件的目标帧包括
将最先获得互斥锁的视频文件的待进行硬解码操作的帧作为目标帧;所述互斥锁使得
在同一时刻只对一个视频文件的帧进行硬解码操作。较佳的,在步骤11所述确定需要进行硬解码操作的视频文件的目标帧之前,进一步包括
将所有视频文件按照预先设置的优先级从高到低的顺序存入事件队列中;则所述确定需要进行硬解码操作的视频文件的目标帧包括
所述事件队列中优先级最高的视频文件获得互斥锁,将获得所述互斥锁的视频文件的 待进行硬解码操作的帧作为目标帧;所述互斥锁用于防止在同一时刻对其他视频文件的帧进行硬解码操作。具体的,在所述对所述视频文件的目标帧完成硬解码操作后、且在判断是否存在剩余时间之前,进一步包括
视频文件释放所述互斥锁;则所述如果存在所述剩余时间,确定需要进行硬解码操作的另一视频文件的目标帧包括
如果存在所述剩余时间,确定需要进行硬解码操作、且最先获得所述互斥锁的另一视频文件的目标帧。较佳的,判断是否存在剩余时间包括多种方法,具体可使用以下方法
判断对所述目标帧完成硬解码操作所需的时间是否小于所述视频文件的显示间隔;如果小于,则确定存在所述剩余时间。具体的,当不存在所述剩余时间时,将所述视频文件的目标帧的下一帧作为目标帧,并进行硬解码操作。较佳的,为了避免当硬解码操作无法正常完成时,该视频文件无法释放互斥锁,导致其它视频文件也无法实现硬解码操作的问题时,本方法添加以下过程
在进行硬解码操作的过程中,在确定所述硬解码操作失败后,释放正在进行硬解码操作的视频文件的互斥锁。以下以具体实施例说明。本发明实施例提供一种解码多个视频文件的方法,该方法可在用户同时使用多个悬浮窗口观看视频时,尽可能的避免卡顿现象,以提高用户在观看视频时的体验感,如图2所示,具体过程如下
步骤201,将所有视频文件存入事件队列中;
步骤202,确定需要进行硬解码操作的视频文件的目标帧;其中,目标帧为该视频文件中当前需要进行硬解码操作的帧;
具体的本步骤包括
由于在实际中会存在多个视频文件,由于芯片的独有性使得同一时刻一次只能对一个目标帧进行硬解码操作;因此,将最先获得所述互斥锁的视频文件的待进行硬解码操作的帧作为目标帧;所述互斥锁使得在同一时刻只对一个视频文件的帧进行硬解码操作。步骤203,对所述目标帧完成硬解码操作;步骤204,视频文件释放所述互斥锁;
步骤205,判断是否存在剩余时间,如果存在执行步骤206 ;否则,执行步骤208 ; 具体的,步骤204和步骤205还可同时进行;
具体的,本步骤中判断是否存在剩余时间的方法为 判断对所述目标帧完成硬解码操作所需的时间是否小于所述视频文件的显示间隔;如果小于,则确定存在所述剩余时间。所述显示间隔为显示同一视频文件中相邻俩帧所需的时间间隔,例如
一个巾贞率是25ms的视频文件,意味着每一巾贞显示的显示间隔是40ms。如果硬解码完此视频文件的一帧需要耗时20ms,那么就意味着此芯片每硬解码完一帧数据就要等待20ms的时间再去解码下一帧,此时的20ms即为剩余时间。可见,此时将会浪费20ms的时间,采用本发明提供的方法可以利用剩余时间对其他需要硬解码操作的视频文件利用起来,提高效率。步骤206,判断事件队列是否为空,如果不为空则执行步骤207 ;否则结束流程; 步骤207,确定需要进行硬解码操作的另一视频文件的目标帧,具体包括
确定需要进行硬解码操作、且最先获得所述互斥锁的另一视频文件的目标帧,此时确定的目标帧为可使用硬解码操作的帧;
步骤208,将所述视频文件的目标帧的下一帧作为目标帧,并进行硬解码操作,既从步骤203开始循环执行。具体的,本实施例中,在步骤201之前,还可为每一个视频文件创建一个线程,然后按照优先级从高到低的顺序将线程存入事件队列中。较佳的,在步骤201中还可将所有视频文件按照预先设置的优先级从高到低的顺序存入事件队列中;此时步骤202的具体步骤为
由于在实际中会存在多个视频文件,由于芯片的独有性使得同一时刻一次只能对一个目标帧进行硬解码操作;因此,按照优先级的顺序确定获得互斥锁的顺序,即优先级最高的视频文件最先获得互斥锁,将获得所述互斥锁的视频文件的待进行硬解码操作的帧作为目标帧;所述互斥锁用于防止在同一时刻对其他视频文件中的帧进行硬解码操作。此时,在步骤204中已经将互斥锁释放,因此,优先级高的视频文件即可获得该互斥锁;
具体的,本实施例中的利用剩余时间对目标帧进行硬解码操作可参见图3,其中左侧为现有技术中进行硬解码操作示意图,右侧为使用本发明提供的方法进行硬解码操作示意图;第一目标帧是第一视频文件中当前待进行硬解码操作的目标帧;第二目标帧是第二视频文件中当前待进行硬解码操作的目标帧;第三目标帧是第三视频文件中当前待进行硬解码操作的目标帧。可见,采用了本发明提供的方法可充分利用剩余时间对其他视频文件的目标帧进行硬解码操作,因此,可大大提高芯片的性能,减少卡顿现象,提高用户体验。如图4所示,本发明实施例提供的进行硬解码的操作过程如下
步骤401,视频文件或者视频文件所在线程获得互斥锁;
步骤402,对视频文件进行硬件配置;
步骤403,准备硬解码操作;
步骤404,判断即将进行的硬解码操作是否存在异常,如果不存在,则执行步骤405 ;否则执行步骤406 ;步骤405,完成硬解码操作;
步骤406,释放互斥锁,本步骤中,如果硬解码操作存在异常,则可直接将已获得的互斥锁释放,以避免影响其它视频文件的硬解码操作的正常进行。如图5所示,在平板电脑、手机或者电脑等设备上同时使用多个悬浮窗口播放视频,并在播放过程中使用本发明实施例提供的解码多个视频文件的方法过程如下
步骤501,多媒体播放器开始播放文件;本步骤中的多媒体播放器可以是平板电脑、手机或者电脑等多媒体设备;
步骤502,判断该多媒体播放器是否支持悬浮窗口的功能,如果支持则执行步骤503 ;否则结束播放,或者使用普通播放方式进行播放; 步骤503,使用悬浮窗口实现前台播放视频文件的功能;
具体的,本发明提供的解码多个视频文件的方法就在该步骤中实现;
步骤504,判断是否接收到用户输入的其它操作;如果接收到,则使用与其它功能相应的其它功能或者应用进行处理;否则执行步骤505 ;
本步骤中的其它操作是指排出步骤505、步骤507以及步骤509之外的其它步骤,例如上网,短信,打电话或者播放视频等等。步骤505,判断是否接收到用户输入的滑动置顶操作,如果接收到则执行步骤506 ;否则执行步骤506 ;
步骤506,将悬浮窗口置入通知栏,并结束播放;
步骤507,判断是否接收到用户输入的滑动其它边缘操作,如果接收到则执行步骤508 ;否则执行步骤509 ;
步骤508,隐藏悬浮窗口,并结束播放;
步骤509,判断是否接收到用户输入的多点触发操作,如果接收到则执行步骤510 ;否则执行步骤511 ;
步骤510,悬浮窗口放大或者缩小,并结束播放;
步骤511,判断是否接收到用户输入的单击操作,如果接收到则执行步骤501,否则执行步骤512 ;
步骤512,继续播放视频文件,在播放完成后结束播放。具体的,本发明提供的方案,可在进行硬解码操作的过程中同时进行软解码操作。如图6所示,本法名实施例还提供一种解码多个视频文件的设备,所述设备包括 第一确定单元62,用于确定需要进行硬解码操作的视频文件的目标帧;
判断单元64,用于对所述目标帧完成硬解码操作后,判断是否存在剩余时间;
第二确定单元65,用于如果存在所述剩余时间,确定需要进行硬解码操作的另一视频文件的目标帧,并完成硬解码操作。所述第一确定单元具体62用于将最先获得互斥锁的视频文件的待进行硬解码操作的帧作为目标帧;所述互斥锁使得在同一时刻只对一个视频文件的帧进行硬解码操作。所述设备还包括
储存单元61,用于将所有视频文件按照预先设置的优先级从高到低的顺序存入事件队列中;此时,所述第一确定单元62具体用于,所述事件队列中优先级最高的视频文件获得互斥锁,将获得所述互斥锁的视频文件的待进行硬解码操作的帧作为目标帧;所述互斥锁使得在同一时刻只对一个视频文件的帧进行硬解码操作。所述设备还包括
第一释放单元63,用于使得视频文件释放所述互斥锁;
所述第二确定单元65具体用于,如果存在所述剩余时间,确定需要进行硬解码操作、且最先获得所述互斥锁的另一视频文件的目标帧。所述判断单元64具体用于
判断对所述目标帧完成硬解码操作所需的时间是否小于所述视频文件的显示间隔;如果小于,则确定存在所述剩余时间。 所述设备还包括
第三确定单元66,用于当所述判断单元64确定不存在所述剩余时间时,将所述视频文件的目标帧的下一帧作为目标帧,并进行硬解码操作。所述设备还包括
第二释放单元67,用于在进行硬解码操作的过程中,在确定所述硬解码操作失败后,释放正在进行硬解码操作的视频文件的互斥锁。综上所述,有益效果
在对一个视频文件进行播放时,待显示的前后两帧之间存在一个显示间隔,硬解码操作就是在这个显示间隔中完成的。当对一个视频文件的某一帧显示后,将该帧的下一帧作为该视频文件的目标帧,并进行硬解码操作。此时,完成硬解码操作的时间有可能小于显示间隔,即存在剩余时间,则可利用该剩余时间对另一视频文件的目标帧进行硬解码操作。可见,使用本实施例提供的技术方案,可以使在同时播放的多个视频文件尽可能都通过硬解码的方式实现解码操作,最大限度的避免了使用软解码操作。由于,尽可能的避免了使用软解码操作,则多个视频文件在播放过程中受到处理器性能的影响将尽可能避免,因此,也尽可能的避免了同时播放多个视频文件时的卡顿现象。对于一个帧率是25ms的视频文件,意味着每一帧显示的显示间隔是40ms。如果硬解码完此视频文件的一帧需要耗时20ms,那么就意味着此芯片每硬解码完一帧数据就要等待20ms的时间再去解码下一帧,此时的20ms即为剩余时间。可见,此时将会浪费20ms的时间,采用本发明提供的方法可以利用剩余时间对其他需要硬解码操作的视频文件利用起来,提高效率。较佳的,在进行硬解码操作的过程中如果硬解码操作存在异常,则可直接将已获得的互斥锁释放,以避免影响其它视频文件的硬解码操作的正常进行。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种解码多个视频文件的方法,其特征在于,所述方法包括 确定需要进行硬解码操作的视频文件的目标帧; 对所述目标帧完成硬解码操作后,判断是否存在剩余时间; 如果存在所述剩余时间,确定需要进行硬解码操作的另一视频文件的目标帧,并完成硬解码操作。
2.如权利要求I所述的方法,其特征在于,所述确定需要进行硬解码操作的视频文件的目标巾贞包括 将最先获得互斥锁的视频文件的待进行硬解码操作的帧作为目标帧;所述互斥锁使得在同一时刻只对一个视频文件的帧进行硬解码操作。
3.如权利要求2所述的方法,其特征在于,在所述对所述视频文件的目标帧完成硬解码操作后、且在判断是否存在剩余时间之前,进一步包括 所述视频文件释放所述互斥锁; 所述如果存在所述剩余时间,确定需要进行硬解码操作的另一视频文件的目标帧包括 如果存在所述剩余时间,确定需要进行硬解码操作、且最先获得所述互斥锁的另一视频文件的目标帧。
4.如权利要求I所述的方法,其特征在于,判断是否存在剩余时间包括 判断对所述目标帧完成硬解码操作所需的时间是否小于所述视频文件的显示间隔;如果小于,则确定存在所述剩余时间。
5.如权利要求3所述的方法,其特征在于,当不存在所述剩余时间时,将所述视频文件的目标帧的下一帧作为目标帧,并进行硬解码操作。
6.如权利要求1、2、3或5所述的方法,其特征在于,在进行硬解码操作的过程中,在确定所述硬解码操作失败后,释放正在进行硬解码操作的视频文件的互斥锁。
7.一种解码多个视频文件的设备,其特征在于,所述设备包括 第一确定单元,用于确定需要进行硬解码操作的视频文件的目标帧; 判断单元,用于对所述目标帧完成硬解码操作后,判断是否存在剩余时间; 第二确定单元,用于如果存在所述剩余时间,确定需要进行硬解码操作的另一视频文件的目标帧,并完成硬解码操作。
8.如权利要求7所述的方法,其特征在于,所述第一确定单元具体用于将最先获得互斥锁的视频文件的待进行硬解码操作的帧作为目标帧;所述互斥锁使得在同一时刻只对一个视频文件的帧进行硬解码操作。
9.如权利要求8所述的方法,其特征在于,所述设备还包括 第一释放单元,用于释放所述互斥锁; 所述第二确定单元具体用于,如果存在所述剩余时间,确定需要进行硬解码操作、且最先获得所述互斥锁的另一视频文件的目标帧。
10.如权利要求7所述的方法,其特征在于,所述判断单元具体用于 判断对所述目标帧完成硬解码操作所需的时间是否小于所述视频文件的显示间隔;如果小于,则确定存在所述剩余时间。
11.如权利要求9所述的方法,其特征在于,所述设备还包括第三确定单元,用于当所述判断单元确定不存在所述剩余时间时,将所述视频文件的目标帧的下一帧作为目标帧,并进行硬解码操作。
12.如权利要求7、8、9或11所述的方法,其特征在于,所述设备还包括 第二释放单元,用于在进行硬解码操作的过程中,在确定所述硬解码操作失败后,释放正在进行硬解码操作的视频文件的互斥锁。
全文摘要
本发明涉及通信技术领域,尤其涉及一种解码多个视频文件的方法及设备。用于在同时播放多个视频文件时更好的避免卡顿现象,该方法包括确定需要进行硬解码操作的视频文件的目标帧;对所述目标帧完成硬解码操作后,判断是否存在剩余时间;如果存在所述剩余时间,确定需要进行硬解码操作的另一视频文件的目标帧,并完成硬解码操作。可见该方法可尽可能的避免了使用软解码操作,则多个视频文件在播放过程中受到处理器性能的影响将尽可能避免,因此,也尽可能的避免了同时播放多个视频文件时的卡顿现象。
文档编号H04N21/44GK102883218SQ201210357168
公开日2013年1月16日 申请日期2012年9月21日 优先权日2012年9月21日
发明者孙国云 申请人:北京君正集成电路股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1