一种视频解码方法和移动终端与流程

文档序号:11254404阅读:283来源:国知局
本发明涉及通信
技术领域
:,尤其涉及一种视频解码方法和移动终端。
背景技术
::移动终端的视频播放能力越来越强,很多移动终端都支持播放高清晰度和高帧率的视频。但是当需要播放的视频的帧率超过解码器所支持的最大帧率时,视频播放效果会很差。例如,如果移动终端的解码器所支持的最大帧率为30fps,且需要播放的视频的帧率为60fps时,在播放过程中可能会出现三种情况:无法播放视频,仅可以播放音频;可以播放视频,但是音频和视频不同步,视频滞后于音频;可以播放视频,音频和视频可以同步,但是播放过程不流畅。因此,现有技术中,待播放视频的帧率高于解码器所支持的最大帧率时,播放效果很差。技术实现要素:本发明实施例提供一种视频解码方法和移动终端,以解决待播放视频的帧率高于解码器所支持的最大帧率时,播放效果很差的问题。第一方面,本发明实施例提供了一种视频解码方法,应用于移动终端,所述方法包括:获取待播放视频的帧率;获取解码器所支持的最大帧率;判断所述待播放视频的帧率是否大于所述解码器所支持的最大帧率;若所述待播放视频的帧率大于所述解码器所支持的最大帧率,则将所述解码器的帧率设置为所述解码器所支持的最大帧率;确定待解码的目标画面组中的目标视频帧,其中,所述目标画面组为所述待播放视频中的任意一个画面组,所述目标视频帧为所述目标画面组中的部分视频帧;利用帧率设置为所述最大帧率的解码器对所述目标视频帧进行解码。第二方面,本发明实施例还提供一种移动终端,包括:第一获取模块,用于获取待播放视频的帧率;第二获取模块,用于获取解码器所支持的最大帧率;判断模块,用于判断所述第一获取模块获取到的待播放视频的帧率是否大于所述第二获取模块获取到的解码器所支持的最大帧率;设置模块,用于若所述判断模块判断待播放视频的帧率大于所述解码器所支持的最大帧率,则将所述解码器的帧率设置为所述解码器所支持的最大帧率;确定模块,用于确定待解码的目标画面组中的目标视频帧,其中,所述目标画面组为所述待播放视频中的任意一个画面组,所述目标视频帧为所述目标画面组中的部分视频帧;解码模块,用于利用帧率被所述设置模块设置为所述最大帧率的解码器对所述确定模块所确定的目标视频帧进行解码。第三方面,本发明实施例还提供一种移动终端,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的视频解码控制程序,所述视频解码控制程序被所述处理器执行时实现上述视频解码方法的步骤。第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有视频解码控制程序,所述视频解码控制程序被处理器执行时实现上述视频解码方法的步骤。这样,本发明实施例中,获取待播放视频的帧率;获取解码器所支持的最大帧率;判断所述待播放视频的帧率是否大于所述解码器所支持的最大帧率;若所述待播放视频的帧率大于所述解码器所支持的最大帧率,则将所述解码器的帧率设置为所述解码器所支持的最大帧率;确定待解码的目标画面组中的目标视频帧,其中,所述目标画面组为所述待播放视频中的任意一个画面组,所述目标视频帧为所述目标画面组中的部分视频帧;利用帧率设置为所述最大帧率的解码器对所述目标视频帧进行解码。移动终端可以获取待播放视频的帧率和解码器所支持的最大帧率,当待播放视频的帧率大于解码器所支持的最大帧率时,移动终端可以将解码器的帧率设置为该最大帧率,并且利用帧率设置为该最大帧率的解码器对目标视频帧进行解码,使视频播放效果更好。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种视频解码方法的流程图;图2是本发明实施例提供的待播放视频的帧的示意图;图3是本发明实施例提供的另一种视频解码方法的流程图;图4是本发明实施例提供的修改了解码时间戳的待播放视频的帧的示意图;图5是本发明实施例提供的一种移动终端结构图;图6是本发明实施例提供的另一种移动终端的第一示意图;图7是本发明实施例提供的另一种移动终端的第二示意图;图8是本发明实施例提供的另一种移动终端的结构图;图9是本发明实施例提供的另一种移动终端的结构图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1,图1是本发明实施例提供的一种视频解码方法的流程图,应用于移动终端,如图1所示,包括以下步骤:步骤101、获取待播放视频的帧率。在步骤101中,在对待播放视频进行解码之前,移动终端可以获取待播放视频的帧率。待播放视频可以包含配置数据,可以从该配置数据中获取待播放视频的帧率。步骤102、获取解码器所支持的最大帧率。在步骤102中,获取到待播放视频的帧率之后,移动终端还可以获取解码器所支持的最大帧率。在获取解码器所支持的最大帧率时,可以有两种方式。第一种方式:移动终端中的解码器可以提供相应的接口,可以从解码器的设置参数中直接获取该最大帧率。第二种方式:可以在一个目标服务器上设置配置文件,用于记录各种解码器所支持的最大帧率。在对视频进行解码时,可以从该目标服务器上获取移动终端的解码器所支持的最大帧率。步骤103、判断所述待播放视频的帧率是否大于所述解码器所支持的最大帧率。在步骤103中,获取到待播放视频的帧率和解码器所支持的最大帧率之后,移动终端可以判断待播放视频的帧率是否大于解码器所支持的最大帧率。步骤104、若所述待播放视频的帧率大于所述解码器所支持的最大帧率,则将所述解码器的帧率设置为所述解码器所支持的最大帧率。在步骤104中,如果移动终端判断出待播放视频的帧率大于解码器所支持的最大帧率,就可以将解码器的帧率设置为该最大帧率。将解码器的帧率设置为其可支持的最大帧率,可以避免出现解码器初始化失败的现象。例如,假设待播放视频的帧率为50fps,而移动终端的解码器所支持的最大帧率为25fps。此时,移动终端可以判断出50fps>25fps,即移动终端可以判断出待播放视频的帧率大于解码器所支持的最大帧率。此时移动终端可以将解码器的帧率设置为25fps,即可以将解码器的帧率设置为解码器所支持的最大帧率。如果移动终端判断出待播放视频的帧率小于或者等于解码器所支持的最大帧率,可以将解码器的帧率设置为待播放视频的帧率。例如,假设待播放视频的帧率为60fps,而移动终端的解码器所支持的最大帧率为80fps。此时,移动终端可以判断出60fps<80fps,即移动终端可以判断出待播放视频的帧率小于解码器所支持的最大帧率。此时移动终端可以将解码器的帧率设置为60fps,即可以将解码器的帧率设置为待播放视频的帧率。步骤105、确定待解码的目标画面组中的目标视频帧,其中,所述目标画面组为所述待播放视频中的任意一个画面组,所述目标视频帧为所述目标画面组中的部分视频帧。在步骤105中,如果移动终端判断出待播放视频的帧率大于解码器所支持的最大帧率,并且将解码器的帧率设置为该最大帧率之后,就可以确定待解码的目标画面组中的目标视频帧,其中,目标画面组为待播放视频中的任意一个画面组,目标视频帧为目标画面组中的部分视频帧。例如,假设待播放视频的帧率为50fps,移动终端的解码器所支持的最大帧率为25fps。移动终端可以判断出50fps>25fps,即移动终端可以判断出待播放视频的帧率大于解码器所支持的最大帧率。此时移动终端可以将解码器的帧率设置为解码器所支持的最大帧率,即25fps。如图2所示,为待播放视频的帧的示意图。在图2中,编号为1-10的帧可以组成一个目标画面组,编号为11的帧为下一个目标画面组中的第一帧。且这11个帧中的每一帧都有相应的解码时间戳。由待播放视频的帧率和解码器所支持的最大帧率可以获得目标解码系数。例如,可以利用如下公式确定目标解码系数:其中,x为目标解码系数,m为解码器所支持的最大帧率,b为待播放视频的帧率。x,m和b均为大于0的数。当待播放视频的帧率为50fps,且解码器所支持的最大帧率为25fps时,由上述公式可以计算出目标解码系数x=0.5。对于编号为1-10的帧所组成的目标画面组,目标视频帧的帧数为10×0.5=5。因此,这10个帧中的前5个帧会作为目标视频帧,即编号为1-5的帧会作为目标视频帧,也即编号为1-5的帧会被送入解码器进行解码。而编号为6-10的帧不会被送入解码器,会被直接丢弃。接下来,会将另一个目标画面组中的目标视频帧送入解码器。即从编号为11的帧开始将另一个目标画面组中的目标视频帧送入解码器。由于丢帧后送入解码器的帧数变少,因此对于送入解码器的目标视频帧,要修改这些目标视频帧的解码时间戳,进而达到一种音视频近似同步的效果。在对目标画面组进行解码时,可以只将目标画面组中的部分视频帧送入解码器,即可以只将目标画面组中的目标视频帧送入解码器。而对于目标画面组中的除了目标视频帧之外的视频帧,则不送入解码器,直接丢弃。这样可以保证在视频播放过程中不会出现因丢帧所产生的花屏现象。步骤106、利用帧率设置为所述最大帧率的解码器对所述目标视频帧进行解码。在步骤106中,确定了待解码的目标画面组中的目标视频帧之后,就可以将目标视频帧送入帧率设置为最大帧率的解码器,进而就可以利用帧率设置为最大帧率的解码器对目标视频帧进行解码了。本发明实施例中,上述移动终端可以是任何具备解码器的手机、平板电脑(tabletpersonalcomputer)、膝上型电脑(laptopcomputer)、个人数字助理(personaldigitalassistant,简称pda)、移动上网装置(mobileinternetdevice,mid)或可穿戴式设备(wearabledevice)等。本发明实施例的视频解码方法,获取待播放视频的帧率;获取解码器所支持的最大帧率;判断所述待播放视频的帧率是否大于所述解码器所支持的最大帧率;若所述待播放视频的帧率大于所述解码器所支持的最大帧率,则将所述解码器的帧率设置为所述解码器所支持的最大帧率;确定待解码的目标画面组中的目标视频帧,其中,所述目标画面组为所述待播放视频中的任意一个画面组,所述目标视频帧为所述目标画面组中的部分视频帧;利用帧率设置为所述最大帧率的解码器对所述目标视频帧进行解码。移动终端可以获取待播放视频的帧率和解码器所支持的最大帧率,当待播放视频的帧率大于解码器所支持的最大帧率时,移动终端可以将解码器的帧率设置为该最大帧率,并且利用帧率设置为该最大帧率的解码器对目标视频帧进行解码,使视频播放效果更好。参见图3,图3是本发明实施例提供的另一种视频解码方法的流程图,应用于移动终端。本实施例与前一个实施例的区别在于详细阐述了修改目标视频帧的解码时间戳的过程。如图3所示,包括以下步骤:步骤301、获取待播放视频的帧率。在步骤301中,在对待播放视频进行解码之前,移动终端可以获取待播放视频的帧率。待播放视频可以包含配置数据,可以从该配置数据中获取待播放视频的帧率。步骤302、获取解码器所支持的最大帧率。在步骤302中,获取到待播放视频的帧率之后,移动终端还可以获取解码器所支持的最大帧率。可选的,所述获取解码器所支持的最大帧率,包括:从所述解码器的设置参数中获取所述最大帧率;或者从目标服务器上获取所述最大帧率,其中,所述目标服务器存储有配置文件,所述配置文件中包括所述解码器所支持的最大帧率。在获取解码器所支持的最大帧率时,可以有两种方式。第一种方式:移动终端中的解码器可以提供相应的接口,可以从解码器的设置参数中直接获取该最大帧率。第二种方式:可以在一个目标服务器上设置配置文件,用于记录各种解码器所支持的最大帧率。在对视频进行解码时,可以从该目标服务器所存储的配置文件中获取移动终端的解码器所支持的最大帧率。步骤303、判断所述待播放视频的帧率是否大于所述解码器所支持的最大帧率。在步骤303中,获取到待播放视频的帧率和解码器所支持的最大帧率之后,移动终端可以判断待播放视频的帧率是否大于解码器所支持的最大帧率。步骤304、若所述待播放视频的帧率大于所述解码器所支持的最大帧率,则将所述解码器的帧率设置为所述解码器所支持的最大帧率。在步骤304中,如果移动终端判断出待播放视频的帧率大于解码器所支持的最大帧率,就可以将解码器的帧率设置为该最大帧率。将解码器的帧率设置为其可支持的最大帧率,可以避免出现解码器初始化失败的现象。例如,假设待播放视频的帧率为75fps,而移动终端的解码器所支持的最大帧率为40fps。此时,移动终端可以判断出75fps>40fps,即移动终端可以判断出待播放视频的帧率大于解码器所支持的最大帧率。此时移动终端可以将解码器的帧率设置为40fps,即可以将解码器的帧率设置为解码器所支持的最大帧率。如果移动终端判断出待播放视频的帧率小于或者等于解码器所支持的最大帧率,可以将解码器的帧率设置为待播放视频的帧率。例如,假设待播放视频的帧率为45fps,而移动终端的解码器所支持的最大帧率为65fps。此时,移动终端可以判断出45fps<65fps,即移动终端可以判断出待播放视频的帧率小于解码器所支持的最大帧率。此时移动终端可以将解码器的帧率设置为45fps,即可以将解码器的帧率设置为待播放视频的帧率。步骤305、获取目标解码系数。在步骤305中,如果移动终端判断出待播放视频的帧率大于解码器所支持的最大帧率,并且将解码器的帧率设置为该最大帧率之后,就可以获取目标解码系数。在前一个实施例中提到过,假设待播放视频的帧率为50fps,移动终端的解码器所支持的最大帧率为25fps。移动终端可以判断出50fps>25fps,即移动终端可以判断出待播放视频的帧率大于解码器所支持的最大帧率。此时移动终端可以将解码器的帧率设置为解码器所支持的最大帧率,即25fps。由待播放视频的帧率和解码器所支持的最大帧率可以获得目标解码系数。例如,可以利用如下公式确定目标解码系数:其中,x为目标解码系数,m为解码器所支持的最大帧率,b为待播放视频的帧率。x,m和b均为大于0的数。当待播放视频的帧率为50fps,且解码器所支持的最大帧率为25fps时,由上述公式可以计算出目标解码系数x=0.5。步骤306、获取目标画面组的帧数,其中,所述目标画面组为所述待播放视频中的任意一个画面组。在步骤306中,获取到目标解码系数之后,移动终端就可以获取目标画面组的帧数,将目标画面组的帧数记为a。其中,目标画面组为待播放视频中的任意一个画面组。步骤307、根据所述目标解码系数和所述目标画面组的帧数确定目标视频帧,其中,所述目标视频帧为所述目标画面组中的部分视频帧。在步骤307中,获取到目标解码系数x和目标画面组的帧数a之后,就可以利用目标解码系数x和目标画面组的帧数a确定目标视频帧了。其中,目标视频帧为目标画面组中的部分视频帧。例如,可以利用以下公式确定目标视频帧的帧数:d=a×x其中,d为目标视频帧的帧数,x为目标解码系数,a为目标画面组的帧数。d,a和x均为大于0的数。如图2所示,编号为1-10的帧可以组成一个目标画面组,编号为11的帧为下一个目标画面组的第一帧。且这11个帧中的每一帧都有相应的解码时间戳。对于编号为1-10的帧所组成的目标画面组,目标视频帧的帧数为:d=a×x=10×0.5=5因此,这10个帧中的前5个帧会作为目标视频帧,即编号为1-5的帧会作为目标视频帧,也即编号为1-5的帧会被送入解码器进行解码。而编号为6-10的帧不会被送入解码器,会被直接丢弃。接下来,会将另一个目标画面组中的目标视频帧送入解码器。即从编号为11的帧开始将另一个目标画面组中的目标视频帧送入解码器。需要说明的是,由于丢帧后送入解码器的帧数变少,因此对于送入解码器的目标视频帧,要修改这些目标视频帧的解码时间戳,进而达到一种音视频近似同步的效果。在对目标画面组进行解码时,可以只将目标画面组中的部分视频帧送入解码器,即可以只将目标画面组中的目标视频帧送入解码器。而对于目标画面组中的除了目标视频帧之外的视频帧,则不送入解码器,直接丢弃。这样可以保证在视频播放过程中不会出现因丢帧所产生的花屏现象。步骤308、获取所述目标画面组中每一帧的原始解码时间戳。在步骤308中,移动终端可以获取目标画面组中每一帧的原始解码时间戳,即可以获取编号为1-10的10个帧中每一个帧的原始解码时间戳。步骤309、利用所述目标视频帧中每一帧的原始解码时间戳和所述目标解码系数确定所述目标视频帧中每一帧的目标时间戳。在步骤309中,获取到目标画面组中每一帧的原始解码时间戳之后,即获取到目标视频帧中每一帧的原始解码时间戳之后,移动终端可以利用目标视频帧中每一帧的原始解码时间戳和目标解码系数x确定目标视频帧中每一帧的目标时间戳。可选的,所述利用所述目标视频帧中每一帧的原始解码时间戳和所述目标解码系数确定所述目标视频帧中每一帧的目标时间戳,包括:通过如下公式确定所述目标视频帧中每一帧的目标时间戳:sn=t1+(tn–t1)/x(n≥1且n≤a×x)其中,sn为所述目标视频帧中任一帧的目标时间戳,t1为所述目标视频帧中的第一帧的原始解码时间戳,tn为所述目标视频帧中的任一帧的原始解码时间戳,x为所述目标解码系数,a为所述目标画面组的帧数,n为所述目标视频帧中的每一帧的序列号。在确定目标视频帧中每一帧的目标时间戳sn时,可以利用上述公式进行计算。仍以图2为例。编号为1-10的帧可以组成一个目标画面组,编号为11的帧为下一个目标画面组的第一帧。且目标解码系数x为0.5。此时,编号为1-10的帧中的前5个帧会作为目标视频帧,即编号为1-5的帧会作为目标视频帧。编号为11的帧会作为另一个目标画面组中的目标视频帧中的一个帧。对于编号为1-10的帧所组成的目标画面组,目标视频帧的帧数为10×0.5=5,即n的取值范围为1≤n≤5。由图2可知,对于第一帧,即n=1时,tn=t1=0。将t1=0,x=0.5代入上述公式后,可获得s1=0,即第一帧的目标时间戳为0。对于第二帧,即n=2时,tn=t2=20,将t1=0,t2=20,x=0.5代入上述公式后,可获得s2=40,即第二帧的目标时间戳为40。对于第三帧,即n=3时,tn=t3=40,将t1=0,t3=40,x=0.5代入上述公式后,可获得s3=80,即第三帧的目标时间戳为80。对于第四帧,即n=4时,tn=t4=80,将t1=0,t4=80,x=0.5代入上述公式后,可获得s4=160,即第四帧的目标时间戳为160。对于第五帧,即n=5时,tn=t5=60,将t1=0,t5=60,x=0.5代入上述公式后,可获得s5=120,即第五帧的目标时间戳为120。而对于第十一帧,则作为下一个目标画面组中的第一帧。因此,n=1,tn=t1=200,将tn=t1=200,x=0.5代入上述公式后,可获得s1=200,即第十一帧的目标时间戳为200。如图4所示,为修改了解码时间戳的待播放视频的帧的示意图。步骤3010、将所述目标视频帧中每一帧的解码时间戳设置为对应的目标时间戳。在步骤3010中,确定了目标视频帧中每一帧的目标时间戳之后,可以将目标视频帧中每一帧的解码时间戳设置为对应的目标时间戳。例如,对于编号为1-10的帧所组成的目标画面组,编号为1-5的帧会作为目标视频帧。对于目标视频帧中的第一帧,即对于编号为1的帧,该帧的解码时间戳会被设置为对应的目标时间戳0。对于目标视频帧中的第二帧,即对于编号为2的帧,该帧的解码时间戳会被设置为对应的目标时间戳40。对于目标视频帧中的第三帧,即对于编号为3的帧,该帧的解码时间戳会被设置为对应的目标时间戳80。对于目标视频帧中的第四帧,即对于编号为4的帧,该帧的解码时间戳会被设置为对应的目标时间戳160。对于目标视频帧中的第五帧,即对于编号为5的帧,该帧的解码时间戳会被设置为对应的目标时间戳120。而对于第十一帧,即下一个目标画面组中的第一帧,该帧的解码时间戳会被设置为对应的目标时间戳200。步骤3011、利用帧率设置为所述最大帧率的解码器对解码时间戳设置为目标时间戳的目标视频帧进行解码。在步骤3011中,将目标视频帧中每一帧的解码时间戳设置为对应的目标时间戳之后,就可以将解码时间戳设置为对应的目标时间戳的目标视频帧送入解码器,进而利用帧率设置为最大帧率的解码器对解码时间戳设置为目标时间戳的目标视频帧进行解码。本发明实施例的视频解码方法,移动终端可以获取待播放视频的帧率和解码器所支持的最大帧率,当待播放视频的帧率大于解码器所支持的最大帧率时,移动终端可以将解码器的帧率设置为该最大帧率。进一步的,移动终端可以将目标视频帧中每一帧的解码时间戳设置为对应的目标时间戳,并且利用帧率设置为最大帧率的解码器对解码时间戳设置为目标时间戳的目标视频帧进行解码,可以达到一种音视频近似同步的效果,使视频播放效果更好。参见图5,图5是本发明实施提供的移动终端的结构图,如图5所示,移动终端500包括第一获取模块501、第二获取模块502、判断模块503、设置模块504、确定模块505和解码模块506,其中:第一获取模块501,用于获取待播放视频的帧率;第二获取模块502,用于获取解码器所支持的最大帧率;判断模块503,用于判断所述第一获取模块501获取到的待播放视频的帧率是否大于所述第二获取模块502获取到的解码器所支持的最大帧率;设置模块504,用于若所述判断模块503判断待播放视频的帧率大于所述解码器所支持的最大帧率,则将所述解码器的帧率设置为所述解码器所支持的最大帧率;确定模块505,用于确定待解码的目标画面组中的目标视频帧,其中,所述目标画面组为所述待播放视频中的任意一个画面组,所述目标视频帧为所述目标画面组中的部分视频帧;解码模块506,用于利用帧率被所述设置模块504设置为所述最大帧率的解码器对所述确定模块505所确定的目标视频帧进行解码。可选的,如图6所示,确定模块505包括:第一获取子模块5051,用于获取目标解码系数;第二获取子模块5052,用于获取所述目标画面组的帧数;第一确定子模块5053,用于根据所述第一获取子模块5051获取到的目标解码系数和所述第二获取子模块5052获取到的目标画面组的帧数确定所述目标视频帧。可选的,如图7所示,解码模块506包括:第三获取子模块5061,用于获取所述目标画面组中每一帧的原始解码时间戳;第二确定子模块5062,用于利用所述第三获取子模块5061获取到的目标视频帧中每一帧的原始解码时间戳和所述第一获取子模块5051获取到的目标解码系数确定所述目标视频帧中每一帧的目标时间戳;设置子模块5063,用于将所述目标视频帧中每一帧的解码时间戳设置为所述第二确定子模块5062所确定的对应的目标时间戳;解码子模块5064,用于利用帧率设置为所述最大帧率的解码器对解码时间戳被所述设置子模块5063设置为目标时间戳的目标视频帧进行解码。可选的,第二确定子模块5062具体用于:通过如下公式确定所述目标视频帧中每一帧的目标时间戳:sn=t1+(tn–t1)/x(n≥1且n≤a×x)其中,sn为所述目标视频帧中任一帧的目标时间戳,t1为所述目标视频帧中的第一帧的原始解码时间戳,tn为所述目标视频帧中的任一帧的原始解码时间戳,x为所述目标解码系数,a为所述目标画面组的帧数,n为所述目标视频帧中的每一帧的序列号。可选的,第二获取模块502具体用于:从所述解码器的设置参数中获取所述最大帧率;或者从目标服务器上获取所述最大帧率,其中,所述目标服务器存储有配置文件,所述配置文件中包括所述解码器所支持的最大帧率。移动终端500能够实现图1和图3的方法实施例中移动终端实现的各个过程,为避免重复,这里不再赘述。且移动终端500可以获取待播放视频的帧率和解码器所支持的最大帧率,当待播放视频的帧率大于解码器所支持的最大帧率时,移动终端可以将解码器的帧率设置为该最大帧率。进一步的,移动终端可以将目标视频帧中每一帧的解码时间戳设置为对应的目标时间戳,并且利用帧率设置为最大帧率的解码器对解码时间戳设置为目标时间戳的目标视频帧进行解码,可以达到一种音视频近似同步的效果,使视频播放效果更好。参见图8,图8是本发明实施提供的移动终端的结构图,如图8所示,移动终端800包括:至少一个处理器801、存储器802、至少一个网络接口804和用户接口803及存储在存储器802上并可在处理器801上运行的视频解码控制程序,视频解码控制程序被处理器801执行时实现上述视频解码方法的步骤。移动终端800中的各个组件通过总线系统805耦合在一起。可理解,总线系统805用于实现这些组件之间的连接通信。总线系统805除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统805。其中,用户接口803可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。可以理解,本发明实施例中的存储器802可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。本文描述的系统和方法的存储器802旨在包括但不限于这些和任意其它适合类型的存储器。在一些实施方式中,存储器802存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统8021和应用程序8022。其中,操作系统8021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序8022,包含各种应用程序,例如媒体播放器(mediaplayer)、浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序8022中。在本发明实施例中,通过调用存储器802存储的程序或指令,具体的,可以是应用程序8022中存储的程序或指令,处理器801用于:获取待播放视频的帧率;获取解码器所支持的最大帧率;判断所述待播放视频的帧率是否大于所述解码器所支持的最大帧率;若所述待播放视频的帧率大于所述解码器所支持的最大帧率,则将所述解码器的帧率设置为所述解码器所支持的最大帧率;确定待解码的目标画面组中的目标视频帧,其中,所述目标画面组为所述待播放视频中的任意一个画面组,所述目标视频帧为所述目标画面组中的部分视频帧;利用帧率设置为所述最大帧率的解码器对所述目标视频帧进行解码。上述本发明实施例揭示的方法可以应用于处理器801中,或者由处理器801实现。处理器801可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器801可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器802,处理器801读取存储器802中的信息,结合其硬件完成上述方法的步骤。可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(applicationspecificintegratedcircuits,asic)、数字信号处理器(digitalsignalprocessing,dsp)、数字信号处理设备(dspdevice,dspd)、可编程逻辑设备(programmablelogicdevice,pld)、现场可编程门阵列(field-programmablegatearray,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。可选的,处理器801执行所述确定待解码的目标画面组中的目标视频帧,包括:获取目标解码系数;获取所述目标画面组的帧数;根据所述目标解码系数和所述目标画面组的帧数确定所述目标视频帧。可选的,处理器801执行所述利用帧率设置为所述最大帧率的解码器对所述目标视频帧进行解码,包括:获取所述目标画面组中每一帧的原始解码时间戳;利用所述目标视频帧中每一帧的原始解码时间戳和所述目标解码系数确定所述目标视频帧中每一帧的目标时间戳;将所述目标视频帧中每一帧的解码时间戳设置为对应的目标时间戳;利用帧率设置为所述最大帧率的解码器对解码时间戳设置为目标时间戳的目标视频帧进行解码。可选的,处理器801执行所述利用所述目标视频帧中每一帧的原始解码时间戳和所述目标解码系数确定所述目标视频帧中每一帧的目标时间戳,包括:通过如下公式确定所述目标视频帧中每一帧的目标时间戳:sn=t1+(tn–t1)/x(n≥1且n≤a×x)其中,sn为所述目标视频帧中任一帧的目标时间戳,t1为所述目标视频帧中的第一帧的原始解码时间戳,tn为所述目标视频帧中的任一帧的原始解码时间戳,x为所述目标解码系数,a为所述目标画面组的帧数,n为所述目标视频帧中的每一帧的序列号。可选的,处理器801执行所述获取解码器所支持的最大帧率,包括:从所述解码器的设置参数中获取所述最大帧率;或者从目标服务器上获取所述最大帧率,其中,所述目标服务器存储有配置文件,所述配置文件中包括所述解码器所支持的最大帧率。移动终端800能够实现前述实施例中移动终端实现的各个过程,为避免重复,这里不再赘述。且移动终端800可以获取待播放视频的帧率和解码器所支持的最大帧率,当待播放视频的帧率大于解码器所支持的最大帧率时,移动终端可以将解码器的帧率设置为该最大帧率。进一步的,移动终端可以将目标视频帧中每一帧的解码时间戳设置为对应的目标时间戳,并且利用帧率设置为最大帧率的解码器对解码时间戳设置为目标时间戳的目标视频帧进行解码,可以达到一种音视频近似同步的效果,使视频播放效果更好。参见图9,图9是本发明实施提供的另一种移动终端的结构图。如图9所示,移动终端900包括射频(radiofrequency,rf)电路910、存储器920、输入单元930、显示单元940、处理器950、音频电路960、通信模块970、电源980及存储在存储器920上并可在处理器950上运行的视频解码控制程序,视频解码控制程序被处理器950执行时实现上述视频解码方法的步骤。其中,输入单元930可用于接收用户输入的数字或字符信息,以及产生与移动终端900的用户设置以及功能控制有关的信号输入。具体地,本发明实施例中,该输入单元930可以包括触控面板931。触控面板931,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板931上的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板931可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给该处理器950,并能接收处理器950发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板931。除了触控面板931,输入单元930还可以包括其他输入设备932,其他输入设备932可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。其中,显示单元940可用于显示由用户输入的信息或提供给用户的信息以及移动终端900的各种菜单界面。显示单元940可包括显示面板941,可选的,可以采用lcd或有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板941。应注意,触控面板931可以覆盖显示面板941,形成触摸显示屏,当该触摸显示屏检测到在其上或附近的触摸操作后,传送给处理器950以确定触摸事件的类型,随后处理器950根据触摸事件的类型在触摸显示屏上提供相应的视觉输出。触摸显示屏包括应用程序界面显示区及常用控件显示区。该应用程序界面显示区及该常用控件显示区的排列方式并不限定,可以为上下排列、左右排列等可以区分两个显示区的排列方式。该应用程序界面显示区可以用于显示应用程序的界面。每一个界面可以包含至少一个应用程序的图标和/或widget桌面控件等界面元素。该应用程序界面显示区也可以为不包含任何内容的空界面。该常用控件显示区用于显示使用率较高的控件,例如,设置按钮、界面编号、滚动条、电话本图标等应用程序图标等。其中处理器950是移动终端900的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在第一存储器921内的软件程序和/或模块,以及调用存储在第二存储器922内的数据,执行移动终端900的各种功能和处理数据,从而对移动终端900进行整体监控。可选的,处理器950可包括一个或多个处理单元。在本发明实施例中,通过调用存储该第一存储器921内的软件程序和/或模块和/或该第二存储器922内的数据,处理器950用于:获取待播放视频的帧率;获取解码器所支持的最大帧率;判断所述待播放视频的帧率是否大于所述解码器所支持的最大帧率;若所述待播放视频的帧率大于所述解码器所支持的最大帧率,则将所述解码器的帧率设置为所述解码器所支持的最大帧率;确定待解码的目标画面组中的目标视频帧,其中,所述目标画面组为所述待播放视频中的任意一个画面组,所述目标视频帧为所述目标画面组中的部分视频帧;利用帧率设置为所述最大帧率的解码器对所述目标视频帧进行解码。可选的,处理器950执行所述确定待解码的目标画面组中的目标视频帧,包括:获取目标解码系数;获取所述目标画面组的帧数;根据所述目标解码系数和所述目标画面组的帧数确定所述目标视频帧。可选的,处理器950执行所述利用帧率设置为所述最大帧率的解码器对所述目标视频帧进行解码,包括:获取所述目标画面组中每一帧的原始解码时间戳;利用所述目标视频帧中每一帧的原始解码时间戳和所述目标解码系数确定所述目标视频帧中每一帧的目标时间戳;将所述目标视频帧中每一帧的解码时间戳设置为对应的目标时间戳;利用帧率设置为所述最大帧率的解码器对解码时间戳设置为目标时间戳的目标视频帧进行解码。可选的,处理器950执行所述利用所述目标视频帧中每一帧的原始解码时间戳和所述目标解码系数确定所述目标视频帧中每一帧的目标时间戳,包括:通过如下公式确定所述目标视频帧中每一帧的目标时间戳:sn=t1+(tn–t1)/x(n≥1且n≤a×x)其中,sn为所述目标视频帧中任一帧的目标时间戳,t1为所述目标视频帧中的第一帧的原始解码时间戳,tn为所述目标视频帧中的任一帧的原始解码时间戳,x为所述目标解码系数,a为所述目标画面组的帧数,n为所述目标视频帧中的每一帧的序列号。可选的,处理器950执行所述获取解码器所支持的最大帧率,包括:从所述解码器的设置参数中获取所述最大帧率;或者从目标服务器上获取所述最大帧率,其中,所述目标服务器存储有配置文件,所述配置文件中包括所述解码器所支持的最大帧率。移动终端900能够实现前述实施例中移动终端实现的各个过程,为避免重复,这里不再赘述。且移动终端900可以获取待播放视频的帧率和解码器所支持的最大帧率,当待播放视频的帧率大于解码器所支持的最大帧率时,移动终端可以将解码器的帧率设置为该最大帧率。进一步的,移动终端可以将目标视频帧中每一帧的解码时间戳设置为对应的目标时间戳,并且利用帧率设置为最大帧率的解码器对解码时间戳设置为目标时间戳的目标视频帧进行解码,可以达到一种音视频近似同步的效果,使视频播放效果更好。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读取存储介质上存储有视频解码控制程序,所述视频解码控制程序被处理器执行时,实现以下步骤:获取待播放视频的帧率;获取解码器所支持的最大帧率;判断所述待播放视频的帧率是否大于所述解码器所支持的最大帧率;若所述待播放视频的帧率大于所述解码器所支持的最大帧率,则将所述解码器的帧率设置为所述解码器所支持的最大帧率;确定待解码的目标画面组中的目标视频帧,其中,所述目标画面组为所述待播放视频中的任意一个画面组,所述目标视频帧为所述目标画面组中的部分视频帧;利用帧率设置为所述最大帧率的解码器对所述目标视频帧进行解码。可选的,所述确定待解码的目标画面组中的目标视频帧,包括:获取目标解码系数;获取所述目标画面组的帧数;根据所述目标解码系数和所述目标画面组的帧数确定所述目标视频帧。可选的,所述利用帧率设置为所述最大帧率的解码器对所述目标视频帧进行解码,包括:获取所述目标画面组中每一帧的原始解码时间戳;利用所述目标视频帧中每一帧的原始解码时间戳和所述目标解码系数确定所述目标视频帧中每一帧的目标时间戳;将所述目标视频帧中每一帧的解码时间戳设置为对应的目标时间戳;利用帧率设置为所述最大帧率的解码器对解码时间戳设置为目标时间戳的目标视频帧进行解码。可选的,所述利用所述目标视频帧中每一帧的原始解码时间戳和所述目标解码系数确定所述目标视频帧中每一帧的目标时间戳,包括:通过如下公式确定所述目标视频帧中每一帧的目标时间戳:sn=t1+(tn–t1)/x(n≥1且n≤a×x)其中,sn为所述目标视频帧中任一帧的目标时间戳,t1为所述目标视频帧中的第一帧的原始解码时间戳,tn为所述目标视频帧中的任一帧的原始解码时间戳,x为所述目标解码系数,a为所述目标画面组的帧数,n为所述目标视频帧中的每一帧的序列号。可选的,所述获取解码器所支持的最大帧率,包括:从所述解码器的设置参数中获取所述最大帧率;或者从目标服务器上获取所述最大帧率,其中,所述目标服务器存储有配置文件,所述配置文件中包括所述解码器所支持的最大帧率。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1