本发明涉及多媒体信息处理领域,尤其涉及视频播放领域,具体是指一种视频播放器的跳帧同步系统及其控制方法。
背景技术:
随着多媒体压缩技术和网络通信技术的发展,媒体业务提供商推出了越来越多的高压缩比、高分辨率、高帧率的视频内容,它将极大地改善用户的视觉体验,丰富用户的娱乐生活。但要播放这些高压缩比、高分辨率、高帧率的视频内容,对终端播放器的计算能力和数据处理能力也提出了很高的要求。
由于很大一部分用户的电视机、机顶盒、手机、平板电脑等播放设备的更新速度跟不上媒体内容清晰度更新换代的速度。比如对当前出现的超高分辨率(如UHD 4k分辨率3840×2160)、高帧率(如高达120p)、高压缩比(如H.265编码)的视频,很多视频播放设备还不支持或不能流畅播放这样的视频。
如果使用老的播放设备中自带的播放器播放这些高压缩比、高分辨率、高帧率的视频内容,就会出现这样的情况:要么播放格式不支持,要么音/视频严重不同步(声音播放正常,图像越来越滞后)。从而严重影响用户体验。如何使播放设备自适应播放大部分通用格式的视频,已经成为当前视频播放领域较为热门的研究课题。
技术实现要素:
为了克服上述现有技术中的问题,本发明提出了一种支持大多数通用视频播放的视频播放器的跳帧同步系统及其控制方法。
本发明的视频播放器的跳帧同步系统及其控制方法具体如下:
该视频播放器的跳帧同步系统,其主要特点是,所述的系统包括播放能力检测模块、跳帧处理模块、音/视频解码输出模块及音/视频输出模块,其中,
所述的播放能力检测模块获取视频数据的基本信息,对所述的视频数据进行播放能力检测并判断视频数据是否需要跳帧处理,根据判断结果传送视频数据至所述的音/视频解码模块或所述的跳帧处理模块;
所述的跳帧处理模块获取视频数据的基本信息,并对需进行跳帧处理的视频数据进行跳帧处理,获取跳帧处理视频数据;
所述的音/视频解码模块用以对其接收到的视频数据和音频数据进行解码,以获取音/视频解码数据,并将所述的音/视频解码数据传送至所述的音/视频输出模块,所述的音/视频解码模块还向所述的播放能力检测模块和所述的跳帧处理模块提供解码信息;
所述的音/视频输出模块用以输出其接收到的所述的音/视频解码数据;
所述的基本信息包括视频数据的帧率;
所述的解码信息包括当前解码图像帧的解码时间戳Tvc、下一个I帧图像的解码时间戳Ti、当前解码音频帧的解码时间戳Tac和解码该帧视频图像所需的时间t。
较佳地,所述的播放能力检测模块包括第一计算单元、第一控制单元和第一判断单元,其中,
所述的第一计算单元用以根据其所获取的解码该帧视频图像所需的时间t获取解码每帧图像的平均花费时间T,且所述的第一计算单元还用以根据所述的视频数据的帧率计算视频数据的解码一帧图像允许最大时间Tmax;
所述的第一判断单元用以根据所述的解码每帧图像的平均花费时间T和所述的解码一帧图像允许最大时间Tmax判断视频数据当前是否需要跳帧处理;
所述的控制单元根据所述的第一判断单元得出的判断结果将所述的当前视频数据传送给所述的音/视频解码模块或所述的跳帧处理模块。
较佳地,所述的跳帧处理模块包括第二计算单元、第二判断单元、I帧型跳帧单元、B帧型跳帧单元和第二控制单元,其中,
所述的第二计算单元用以获取播放能力检测参数和音/视频同步参数;
所述的第二判断单元根据需进行跳帧的视频数据的帧率、所述的播放能力检测参数和所述的音/视频同步参数以判断需进行跳帧的视频数据的跳帧模式,且所述的跳帧模式包括I帧型跳帧模式和B帧型跳帧模式;
所述的第二控制单元用以根据所述的第二判断单元的判断将需进行跳帧的视频数据传送给所述的I帧型跳帧单元或所述的B帧型跳帧单元;
其中,所述的I帧型跳帧单元用以实现所述的I帧型跳帧模式,所述的I帧型跳帧模式即为跳过当前帧到下一个I帧之间的所有类型的图像帧;
所述的B帧型跳帧单元用以实现所述的B帧型跳帧模式,所述的B帧型跳帧模式即为跳过当前的B帧,且当前连续3个B帧时保留中间的B帧。
基于上述的系统实现视频播放器跳帧同步控制的方法,其主要特点是,所述的方法包括以下步骤:
(1)所述的播放能力检测模块对接收到的视频数据进行播放能力检测,并判断该视频数据是否需要跳帧处理,如果需要,则所述的播放能力检测模块将所述的视频数据传送给所述的跳帧处理模块,并继续步骤(2);否则所述的播放能力检测模块将所述的视频数据传送给所述的音/视频解码模块,并继续步骤(3);
(2)所述的跳帧处理模块对输入的需进行跳帧的视频数据进行跳帧处理,并将所得的跳帧处理数据传送给所述的音/视频解码模块;
(3)所述的音/视频解码模块对视频数据进行解码,并将所述的音/视频解码数据传送给所述的视频输出模块,且所述的音/视频解码模块将所述的解码信息传送给所述的播放能力检测模块和所述的跳帧处理模块;
(4)所述的音/视频输出模块输出其接收到的视频数据。
较佳地,所述的步骤(1)的具体步骤如下:
(1.1)所述的播放检测模块根据其获取的视频数据的帧率和所述的解码该帧视频图像所需的时间t获取解码一帧图像允许最大时间Tmax和解码每帧图像的平均花费时间T;
(1.2)所述的播放检测模块将计算所述的解码一帧图像允许最大时间Tmax和所述的解码每帧图像的平均花费时间T按以下公式相比较:
ΔT=T-0.5×Tmax;
其中所述的ΔT为一播放能力检测参数,所述的T为所述的平均解码每帧图像所需时间,所述的Tmax为所述的解码一帧图像允许最大时间;
(1.3)所述的播放能力检测模块判断所述的ΔT是否大于零,如果所述的ΔT大于零,则判断该视频数据需要进行跳帧操作,并将所述的视频数据传送给所述的跳帧处理模块;否则判断该视频数据不需要进行跳帧操作,所述的播放能力检测模块将视频数据传送给所述的音/视频解码模块。
较佳地,所述的步骤(2)的具体步骤如下:
(2.1)所述的跳帧处理模块根据其获取的解码该视频数据的基本信息,判断该视频数据的跳帧模式为对应于所述的B帧跳帧单元的B帧跳帧模式或对应于所述的I帧跳帧单元的I帧跳帧模式;
(2.2)所述的跳帧处理模块根据该视频数据的跳帧模式将所述的视频数据传送到该跳帧模式对应的所述的I帧跳帧单元、B帧跳帧单元或音/视频解码模块中。
更佳地,所述的步骤(2.1)具体为:
(2.1.1)所述的跳帧处理模块获取当前解码图像帧的解码时间戳Tvc、下一个I帧图像的解码时间戳Ti和当前解码音频帧的解码时间戳Tac,按以下公式计算该视频数据的音/视频同步情况:
ΔT1=Ti-Tac-Tmax;
其中,所述的ΔT1为该视频数据的音/视频同步参数,所述的Ti为所述的下一个I帧图像的解码时间戳,所述的Tac为所述的当前解码音频帧的解码时间戳,所述的Tmax为所述的解码一帧图像所需时间;
(2.1.2)所述的跳帧处理模块判断该ΔT1是否大于零,如果所述的ΔT1的大于零,则继续步骤(2.1.4);否则继续步骤(2.1.3);
(2.1.3)所述的跳帧处理模块判断该视频数据的跳帧模式为I帧跳帧模式并继续所述的步骤(2.2);
(2.1.4)所述的跳帧处理模块按以下公式判断该视频数据的解码是否滞后于所述的音频帧的解码:
ΔT2=Tac-Tvc;
其中所述的ΔT2为该视频数据的解码是否滞后于所述的音频帧的解码的判断标准,所述的Tac为所述的当前解码音频帧的解码时间戳,所述的Tvc当前解码图像帧的解码时间戳;
(2.1.4)所述的跳帧处理模块比较所述的ΔT2和零的大小关系,如果所述的ΔT2大于零,所述的跳帧处理模块判断该视频数据的解码相对于音频帧的解码滞后,并判断该视频数据的跳帧模式为B帧跳帧模式,继续所述的步骤(2.2);否则所述的跳帧处理模块判断该视频数据的解码同步于音频帧的解码,所述的跳帧处理模块将视频数据发送至所述的音/视频解码模块,并继续所述的步骤(3)。
更佳地,所述的步骤(2.2)具体为:
该跳帧处理模块根据其判断的视频数据的跳帧模式,将视频数据传送给所述的I帧跳帧单元或B帧跳帧单元进行处理,以获取I帧跳帧视频数据或B帧跳帧视频数据,且所述的跳帧处理模块将所述的I帧跳帧视频数据或B帧跳帧视频数据传送给所述的音/视频输出模块,继续所述的步骤(3)。
采用了该种视频播放器的跳帧同步系统及其控制方法,由于其存在一播放能力检测模块和一跳帧控制模块,此播放器能够解码当前通用格式的视频文件,在视频播放过程中,当播放器检测到播放器处理能力不够时,在保证音频数据正常解码输出的情况下,合理进行视频跳帧处理,从而实现音视频的同步播放;当播放器检测到播放器处理能力足够时,就和通用视频播放器一样进行音视频的正常解码输出。解决了通用播放器在终端处理能力不足的情况下不能音视频同步播放高压缩比、高分辨率、高帧率的视频内容的问题,改善了用户体验。本发明提供的视频播放器对播放能力的检测是实时进行的,一旦发现播放能力不足即刻就能精确确定跳帧时间点,而且需要跳过的图像帧类型和需要跳过的帧数都是根据播放器处理能力进行动态调节的。
基于跳帧同步方法设计的播放器与通用视频播放器兼容,可应用于没有及时硬件更新的视频播放终端,如标清机顶盒播放高清节目、高清(HD)机顶盒播放超高清(UHD)节目等场合,更具有普遍适用性。
附图说明
图1为本发明的视频播放器的跳帧同步系统及其控制方法的流程图。
图2为本发明的视频播放器的跳帧同步系统的方法的播放能力检测示意图。
图3为本发明的视频播放器的跳帧同步系统的方法的跳帧处理流程图。
具体实施方式
为了更好的说明对本发明进行说明,下面举出一些实施例来对本发明进行进一步的说明。
该视频播放器的跳帧同步系统,其中,所述的系统包括播放能力检测模块、跳帧处理模块、音/视频解码输出模块及音/视频输出模块,其中,
所述的播放能力检测模块获取视频数据的基本信息,对所述的视频数据进行播放能力检测并判断视频数据是否需要跳帧处理,根据判断结果传送视频数据至所述的音/视频解码模块或所述的跳帧处理模块;
所述的跳帧处理模块获取视频数据的基本信息,并对需进行跳帧处理的视频数据进行跳帧处理,获取跳帧处理视频数据;
所述的音/视频解码模块用以对其接收到的视频数据和音频数据进行解码,以获取音/视频解码数据,并将所述的音/视频解码数据传送至所述的音/视频输出模块,所述的音/视频解码模块还向所述的播放能力检测模块和所述的跳帧处理模块提供解码信息;
所述的音/视频输出模块用以输出其接收到的所述的音/视频解码数据;
所述的基本信息包括视频数据的帧率;
所述的解码信息包括当前解码图像帧的解码时间戳Tvc、下一个I帧图像的解码时间戳Ti、当前解码音频帧的解码时间戳Tac和解码该帧视频图像所需的时间t。
所述的播放能力检测模块包括第一计算单元、第一控制单元和第一判断单元,其中,
所述的第一计算单元用以根据其所获取的解码该帧视频图像所需的时间t获取解码每帧图像的平均花费时间T,且所述的第一计算单元还用以根据所述的视频数据的帧率计算视频数据的解码一帧图像允许最大时间Tmax;
所述的第一判断单元用以根据所述的解码每帧图像的平均花费时间T和所述的解码一帧图像允许最大时间Tmax判断视频数据当前是否需要跳帧处理;
所述的控制单元根据所述的第一判断单元得出的判断结果将所述的当前视频数据传送给所述的音/视频解码模块或所述的跳帧处理模块。
所述的跳帧处理模块包括第二计算单元、第二判断单元、I帧型跳帧单元、B帧型跳帧单元和第二控制单元,其中,
所述的第二计算单元用以获取一播放能力检测参数和一音/视频同步参数;
所述的第二判断单元根据需进行跳帧的视频数据的帧率、所述的播放能力检测参数和所述的音/视频同步参数以判断需进行跳帧的视频数据的跳帧模式,且所述的跳帧模式包括I帧型跳帧模式和B帧型跳帧模式;
所述的第二控制单元用以根据所述的第二判断单元的判断将需进行跳帧的视频数据传送给所述的I帧型跳帧单元或所述的B帧型跳帧单元;
其中,所述的I帧型跳帧单元用以实现所述的I帧型跳帧模式,所述的I帧型跳帧模式即为跳过当前帧到下一个I帧之间的所有类型的图像帧;
所述的B帧型跳帧单元用以实现所述的B帧型跳帧模式,所述的B帧型跳帧模式即为跳过当前的B帧,且当前连续3个B帧时保留中间的B帧。
基于上述的系统实现视频播放器跳帧同步控制的方法,其中,所述的方法包括以下步骤:
(1)所述的播放能力检测模块对接收到的视频数据进行播放能力检测,并判断该视频数据是否需要跳帧处理,如果需要,则所述的播放能力检测模块将所述的视频数据传送给所述的跳帧处理模块,并继续步骤(2);否则所述的播放能力检测模块将所述的视频数据传送给所述的音/视频解码模块,并继续步骤(3);
(2)所述的跳帧处理模块对输入的需进行跳帧的视频数据进行跳帧处理,并将所得的跳帧处理数据传送给所述的音/视频解码模块;
(3)所述的音/视频解码模块对视频数据进行解码,并将所述的音/视频解码数据传送给所述的视频输出模块,且所述的音/视频解码模块将所述的解码信息传送给所述的播放能力检测模块和所述的跳帧处理模块;
(4)所述的音/视频输出模块输出其接收到的视频数据。
所述的步骤(1)的具体步骤如下:
(1.1)所述的播放检测模块根据其获取的视频数据的帧率和所述的解码该帧视频图像所需的时间t获取所述的解码一帧图像允许最大时间Tmax和一解码每帧图像的平均花费时间T;
(1.2)所述的播放检测模块将计算所述的解码一帧图像允许最大时间Tmax和所述的解码每帧图像的平均花费时间T按以下公式相比较:
ΔT=T-0.5×Tmax;
其中所述的ΔT为一播放能力检测参数,所述的T为所述的平均解码每帧图像所需时间,所述的Tmax为所述的解码一帧图像允许最大时间;
(1.3)所述的播放能力检测模块判断所述的ΔT是否大于零,如果所述的ΔT大于零,则判断该视频数据需要进行跳帧操作,并将所述的视频数据传送给所述的跳帧处理模块;否则判断该视频数据不需要进行跳帧操作,所述的播放能力检测模块将视频数据传送给所述的音/视频解码模块。
所述的步骤(2)的具体步骤如下:
(2.1)所述的跳帧处理模块根据其获取的解码该视频数据的基本信息,判断该视频数据的跳帧模式为对应于所述的B帧跳帧单元的B帧跳帧模式或对应于所述的I帧跳帧单元的I帧跳帧模式;
(2.2)所述的跳帧处理模块根据该视频数据的跳帧模式将所述的视频数据传送到该跳帧模式对应的所述的I帧跳帧单元、B帧跳帧单元或音/视频解码模块中。
更佳地,所述的步骤(2.1)具体为:
所述的跳帧处理模块获取当前解码图像帧的解码时间戳Tvc、下一个I帧图像的解码时间戳Ti和当前解码音频帧的解码时间戳Tac,按以下公式计算该视频数据的音/视频同步情况:
ΔT1=Ti-Tac-Tmax;
其中,所述的ΔT1为该视频数据的音/视频同步参数,所述的Ti为所述的下一个I帧图像的解码时间戳,所述的Tac为所述的当前解码音频帧的解码时间戳,所述的Tmax为所述的解码一帧图像允许最大时间;
(2.1.2)所述的跳帧处理模块判断该ΔT1是否大于零,如果所述的ΔT1大于零,则继续步骤(2.1.4);否则继续步骤(2.1.3);
(2.1.3)所述的跳帧处理模块判断该视频数据的跳帧模式为I帧跳帧模式并继续所述的步骤(2.2);
(2.1.4)所述的跳帧处理模块按以下公式判断该视频数据的解码是否滞后于所述的音频帧的解码:
ΔT2=Tac-Tvc;
其中所述的ΔT2为该视频数据的解码是否滞后于所述的音频帧的解码的判断标准,所述的Tac为所述的当前解码音频帧的解码时间戳,所述的Tvc当前解码图像帧的解码时间戳;
所述的跳帧处理模块比较所述的ΔT2和零的大小关系,如果所述的ΔT2大于零,所述的跳帧处理模块判断该视频数据的解码相对于音频帧的解码滞后,并判断该视频数据的跳帧模式为B帧跳帧模式,继续所述的步骤(2.2);否则所述的跳帧处理模块判断该视频数据的解码同步于音频帧的解码,所述的跳帧处理模块将视频数据发送至所述的音/视频解码模块,并继续所述的步骤(3)。
所述的步骤(2.2)具体为:
该跳帧处理模块根据其判断的视频数据的跳帧模式,将视频数据传送给所述的I帧跳帧单元或B帧跳帧单元进行处理,以获取I帧跳帧视频数据或B帧跳帧视频数据,且所述的跳帧处理模块将所述的I帧跳帧视频数据或B帧跳帧视频数据传送给所述的音/视频输出模块,继续所述的步骤(3)。
下面针对本发明的实施例进行详细完整地描述。
请参阅图1,跳帧同步处理过程嵌入到播放器的播放处理流程中,原始音视频数据输入后先进行播放器播放能力的检测,当检测到终端设备播放能力不足时才进行视频帧的跳帧处理,当检测到终端设备的播放能力充足时,即和通用播放器一样进行正常的音视频解码输出。
原始视频是指各种压缩格式的视频数据,如H.264格式压缩的视频,AAC格式压缩的音频,TS格式包装的容器。原始视频数据可以指视频文件,也可以指视频流。
播放能力检测模块与跳帧处理模块是本发明的核心模块,这里的跳帧处理仅对视频图像帧进行跳帧处理,音频数据不能跳帧,以音频帧的时间戳作为播放器的播放时间基准。
音/视频解码模块和音/视频输出模块指对一帧一帧的音视频数据进行解码、缓存后再同步播放。
请参阅图2,原始压缩音视频数据先经过此播放能力检测模块进行播放能力的检测,当检测到终端播放器播放能力不够时,再经过跳帧处理模块进行视频图像的跳帧同步处理;当检测到播放器播放能力足够时,则不经过跳帧处理模块而直接进入到音、视频解码输出模块。
其中第一计算单元计算解码一帧图像允许最大时间Tmax,Tmax是通过此视频的帧率f计算而来:Tmax=1/f,例如视频帧率f=25帧/秒,则Tmax=1/f=1/25=40ms。
且该播放能力检测模块还解码每帧视频图像平均所花的时间T,T=(t1+t2+...+tn)/n,t1、t2和tn为解码从一个I帧开始的第一、第二、…第n帧所花的时间,n为统计的帧数。
当T≤0.5×Tmax时,即当实际解码时间小于等于允许解码时间的一半时,判断播放器的播放处理能力充足;否则认为播放器的播放处理能力可能不足,需要进入后面步骤做进一步的判断和处理。
如果该播放能力检测模块判断视频播放器对该视频的播放能力可能不足时,进入跳帧处理模块,当该播放能力检测模块判断视频播放器对该视频的播放能力充足时,跳过此模块而直接进入到音/视频解码模块和音/视频输出模块。
请参阅图3,该跳帧处理模块记录当前解码图像帧的解码时间戳(DTS),记为Tvc、下一个I帧图像的解码时间戳(DTS),记为Ti和当前解码音频帧的解码时间戳(DTS),记为Tac,其中音频时间戳用以作为播放器同步播放的时间基准,I帧类型的图像是指仅有帧内编码的图像,它的解码不依赖于其它帧的图像,它常用来作为同步参考点。
当Ti-Tac<Tmax时,即当前解码基准时间,即当前解码音频帧的解码时间戳Tac与下一个I帧的解码时间接近时,说明当前解码时间应该同步到解码下一个I帧图像,进入一种类型的I型跳帧模式;否则说明播放器还来得及解码下一个I帧前的图像,继续解码下一个I帧前的图像,且若Tac>Tvc,说明当前视频帧的解码已经滞后于音频帧的解码,进入B帧跳帧模式,否则说明当前视频帧的解码同步于音频帧的解码,该跳帧处理模块将视频数据发送给到音/视频解码模块和音/视频输出模块进行解码输出。
I帧跳帧模式为跳过当前帧到下一个I帧之间的所有类型的图像帧,包括P帧和B帧。P帧是指前向预测图像帧,它的解码依赖于它前面的图像帧,同时它也作为其它图像帧的参考帧。B帧是指双向预测图像帧,它的解码依赖于它前面的和后面的参考图像帧,它不作为其它图像帧的参考帧。
B帧跳帧模式是指跳过当前的B帧图像,其对应的是B帧跳帧单元,当出现连续3个B帧时,通常要保留中间的B帧进行解码输出,这样可以更好地保持视频播放器的流畅性。另外注意这里不能跳过P帧,因为其后的图像P帧或B帧的解码依赖于P帧。
采用了该种视频播放器的跳帧同步系统及其控制方法,由于其存在一播放能力检测模块和一跳帧控制模块,此播放器能够解码当前通用格式的视频文件,在视频播放过程中,当播放器检测到播放器处理能力不够时,在保证音频数据正常解码输出的情况下,合理进行视频跳帧处理,从而实现音视频的同步播放;当播放器检测到播放器处理能力足够时,就和通用视频播放器一样进行音视频的正常解码输出。解决了通用播放器在终端处理能力不足的情况下不能音视频同步播放高压缩比、高分辨率、高帧率的视频内容的问题,改善了用户体验。本发明提供的视频播放器对播放能力的检测是实时进行的,一旦发现播放能力不足即刻就能精确确定跳帧时间点,而且需要跳过的图像帧类型和需要跳过的帧数都是根据播放器处理能力进行动态调节的。
基于跳帧同步方法设计的播放器与通用视频播放器兼容,可应用于没有及时硬件更新的视频播放终端,如标清机顶盒播放高清节目、高清(HD)机顶盒播放超高清(UHD)节目等场合,更具有普遍适用性。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。