1.一种高效的视频播放丢帧控制系统,包括视频播放模块,其特征在于,还包括:丢帧控制模块、视频解码模块;
所述视频解码模块,用于在视频帧解码后,将该视频帧的时间戳与视频解码时钟的当前时间做比较,获取比较结果并反馈给所述丢帧控制模块;
所述丢帧控制模块,用于根据该比较结果设置丢帧标志,由所述视频解码模块根据该丢帧标志对该视频帧的下一帧进行丢帧控制。
2.根据权利要求1所述的视频播放丢帧控制系统,其特征在于,所述视频解码模块当该时间戳早于或等于该视频解码时钟的当前时间时,不丢弃该视频帧的下一帧,当该时间戳晚于该视频解码时钟的当前时间时,丢弃该视频帧的下一帧。
3.根据权利要求1或2所述的视频播放丢帧控制系统,其特征在于,所述丢帧控制模块当该时间戳晚于该视频解码时钟的当前时间时,设置该丢帧标志。
4.根据权利要求1或2所述的视频播放丢帧控制系统,其特征在于,所述丢帧控制模块当该时间戳早于或等于该视频解码时钟的当前时间时,清除该丢帧标志。
5.根据权利要求3所述的视频播放丢帧控制系统,其特征在于,所述丢帧控制模块当该时间戳早于或等于该视频解码时钟的当前时间时,清除该丢帧标志。
6.一种高效的视频播放丢帧控制方法,其特征在于,包括:
步骤一,在视频帧解码后,将该视频帧的时间戳与视频解码时钟的当前时间做比较,获取比较结果;
步骤二,根据该比较结果设置丢帧标志,进行解码处理并根据该丢帧标志对该视频帧的下一帧进行丢帧控制。
7.根据权利要求6所述的视频播放丢帧控制方法,其特征在于,所述步骤一中,包括:
当该时间戳早于或等于该视频解码时钟的当前时间时,不丢弃该视频帧的下一帧,当该时间戳晚于该视频解码时钟的当前时间时,丢弃该视频帧的下一帧。
8.根据权利要求6或7所述的视频播放丢帧控制方法,其特征在于,所述步骤二中,包括:
当该时间戳晚于该视频解码时钟的当前时间时,设置该丢帧标志。
9.根据权利要求6或7所述的视频播放丢帧控制方法,其特征在于,所述步骤二中,包括:
当该时间戳早于或等于该视频解码时钟的当前时间时,清除该丢帧标志。
10.根据权利要求8所述的视频播放丢帧控制方法,其特征在于,所述步骤二中,包括:
当该时间戳早于或等于该视频解码时钟的当前时间时,清除该丢帧标志。
一种高效的视频播放丢帧控制系统及其方法\n技术领域\n[0001] 本发明涉及视频播放技术,特别是涉及一种高效的视频播放丢帧控制系统及其方法。\n背景技术\n[0002] 现有的视频播放器结构大体上如图1所示,音频和视频分别播放,具体地,音视频分离后,分别得到视频压缩数据、音频压缩数据,对视频压缩数据进行视频解码得到视频帧数据,对音频压缩数据进行音频解码得到音频采样数据,对视频帧数据进行视频显示,对音频采样数据进行音频播放。\n[0003] 如果音视频解码的速度足够快(硬件性能非常好,在显示完一帧、等待下一帧显示的间隔内,能完成解码)时,则这种没有播放控制的方案就可以满足要求。但对于性能一般的硬件设备,这种方案会造成音视频播放不同步的问题,如视频中人的口型和声音对不上,而且会相差的越来越远。\n[0004] 要实现音视频同步,则视频播放的进度要与视频播放时钟同步。视频播放时钟来源于音频播放时钟或系统时钟。视频播放的控制模块接收到一个视频帧后,把视频帧的时间戳与视频播放时钟的当前时间进行对比,从而决定当前视频帧的显示时机。如果时间未到,则等待一段时间后再显示;如果时间已到或已经晚了少许时间,则马上显示;如果时间已经晚了很多,则一般会丢弃该帧、不再显示,以便给后续视频帧争取时间以保证音视频同步播放。\n[0005] 视频播放的控制问题基本包括如下几种情形:\n[0006] 1、需优先保证音频数据的解码和播放,音频数据不能丢;\n[0007] 2、视频的播放进度需要与音频一致(同步到音频)或与独立的时钟一致,总之视频要根据一个视频播放时钟的时间安排播放;\n[0008] 3、音频的解码和播放由于运算量较小,因而比较容易及时完成;\n[0009] 4、视频解码和显示的运算量较大,如果硬件设备的运算能力不足,就会出现视频帧的显示时间落后于相应音频的现象,这个现象就是音视频不同步。\n[0010] 5、要解决运算能力不足引起的音视频不同步,策略是在显示前或解码前丢掉部分视频帧,以降低系统的平均负载,使视频播放能在一个较低的水平保持稳定。\n[0011] 显示前丢帧的实现难度很小,在现有的播放器中使用比较普遍,但其调控效果也很有限,这里不再关注。解码前丢帧效果比较明显,但实现难度较大,方法还不成熟,目前在部分播放器中有使用,但效果不是很理想,造成视频不连续、产生跳跃的效果。因此需要针对解码前丢帧提出新的技术方案,以改善丢帧控制的效果。\n[0012] 目前已有的解码前丢帧方法主要是基于播放延迟反馈的分级丢帧,如下图2所示:\n[0013] 在视频帧播放时,将视频帧时间戳与当前时间做比较,将差值反馈给视频解码器,视频解码器根据播放延迟的大小评估是否要进行丢帧处理。现有丢帧算法的核心是将播放延迟分为从轻到重的几个级别,将丢帧的力度也分为从少到多的几个级别,然后将丢帧级别与播放延迟级别相匹配,确定当前的丢帧级别,然后根据当前的丢帧级别决定是否丢弃下一帧。\n[0014] 现有丢帧控制方法的主要缺点是延迟大、控制量与反馈量之间的对应关系不严谨。\n[0015] 1)延迟大是因为视频帧从解码结束到显示之前还要在视频帧缓冲区中停留一段时间,这就导致反馈点与控制点之间的距离较长,时间延迟较大,反馈控制反应不灵敏。\n[0016] 2)控制量与反馈量之间的对应关系不严谨是指丢帧级别与播放延迟级别的匹配关系并没有严格的计算方法,往往是凭经验和试验确定的,在控制效果和适应性方面有很大的局限性。\n发明内容\n[0017] 本发明的目的在于提供一种高效的视频播放丢帧控制系统及其方法,用于在计算资源有限的嵌入式设备(如手机)上实现视频文件的音视频同步播放。\n[0018] 为了实现上述目的,本发明提供一种高效的视频播放丢帧控制系统,包括视频播放模块,还包括:丢帧控制模块、视频解码模块;\n[0019] 所述视频解码模块,用于在视频帧解码完成后,将该视频帧的时间戳与视频解码时钟的当前时间做比较,获取比较结果并反馈给所述丢帧控制模块;\n[0020] 所述丢帧控制模块,用于根据该比较结果设置丢帧标志,由所述视频解码模块根据该丢帧标志对该视频帧的下一帧进行丢帧控制。\n[0021] 所述的视频播放丢帧控制系统,其中,所述视频解码模块当该时间戳早于或等于该视频解码时钟的当前时间时,不丢弃该视频帧的下一帧,当该时间戳晚于该视频解码时钟的当前时间时,丢弃该视频帧的下一帧。\n[0022] 所述的视频播放丢帧控制系统,其中,所述丢帧控制模块当该时间戳晚于该视频解码时钟的当前时间时,设置该丢帧标志。\n[0023] 所述的视频播放丢帧控制系统,其中,所述丢帧控制模块当该时间戳早于或等于该视频解码时钟的当前时间时,清除该丢帧标志。\n[0024] 为了实现上述目的,本发明提供一种高效的视频播放丢帧控制方法,包括:\n[0025] 步骤一,在视频帧解码完成后,将该视频帧的时间戳与视频解码时钟的当前时间做比较,获取比较结果;\n[0026] 步骤二,根据该比较结果设置丢帧标志,进行解码处理并根据该丢帧标志对该视频帧的下一帧进行丢帧控制。\n[0027] 所述的视频播放丢帧控制方法,其中,所述步骤一中,包括:\n[0028] 当该时间戳早于或等于该视频解码时钟的当前时间时,不丢弃该视频帧的下一帧,当该时间戳晚于该视频解码时钟的当前时间时,丢弃该视频帧的下一帧。\n[0029] 所述的视频播放丢帧控制方法,其中,所述步骤二中,包括:\n[0030] 当该时间戳晚于该视频解码时钟的当前时间时,设置该丢帧标志。\n[0031] 所述的视频播放丢帧控制方法,其中,所述步骤二中,包括:\n[0032] 当该时间戳早于或等于该视频解码时钟的当前时间时,清除该丢帧标志。\n[0033] 与现有技术相比,本发明的有益技术效果在于:\n[0034] 1)在计算资源有限的嵌入式设备(如手机)上实现了视频文件的音视频同步播放;\n[0035] 2)取得了更好的控制效果和适应性,使得任意性能硬件设备上的视频播放更加连续、音视频同步效果更好;\n[0036] 3)通过在解码之后将已解码视频帧的时间戳与时钟时间比较,决定下一帧是否丢帧,通过解码前丢帧的方法,有效降低系统负载,满足视频同步播放要求。\n[0037] 4)反馈控制的路径短,延迟小,控制精确,反应迅速;丢帧不分级,完全根据运行时的实际状况实时反馈,实时调节;控制量与反馈量之间有明确的对应关系和数学解释,算法实现有的放矢,不依赖经验数据;\n[0038] 5)控制逻辑简单,实现容易,效果可靠。\n附图说明\n[0039] 图1是现有视频播放器结构图;\n[0040] 图2是现有基于播放延迟反馈的分级丢帧流程图;\n[0041] 图3是本发明的高效的视频播放丢帧控制系统结构图;\n[0042] 图4是本发明的高效的视频播放丢帧控制方法流程图。\n具体实施方式\n[0043] 以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。\n[0044] 如图3所示,是本发明的高效的视频播放丢帧控制系统结构图。该系统300包括:丢帧控制模块10、视频解码模块20、视频播放模块30。\n[0045] 视频解码模块20,用于在视频帧解码完成后,将视频帧时间戳与视频解码时钟的当前时间做比较,将其比较结果反馈给视频解码前的丢帧控制模块10。\n[0046] 视频解码时钟与视频播放时钟类似,是视频解码时需要参照的时钟,视频解码模块20在对每个视频帧完成解码后,其时间戳应该早于或等于视频解码时钟的当前时间。\n[0047] 若解码后视频帧的时间戳早于或等于视频解码时钟的当前时间,则视频解码模块\n20进行视频帧解码的速度及时,解码状态良好,不需要干预,视频播放模块30播放解码后的视频帧;若解码后视频帧的时间戳晚于视频解码时钟的当前时间,则视频解码模块20进行视频帧解码的速度偏慢,赶不上视频播放模块30进行视频播放的需求,接下来需要丢帧。\n[0048] 由于压缩的视频帧分I帧、P帧、B帧等不同类型,不是所有的帧都能自由丢弃,所以丢帧控制模块10并不最后决定某一视频帧是否被丢弃,而是设定一个丢帧标志,由视频解码模块20决定是否丢弃该视频帧。当视频解码模块20解码后视频帧的时间戳早于或等于视频解码时钟的当前时间时,丢帧控制模块10清除该丢帧标志,完成一个反馈控制循环。\n[0049] 视频解码模块20接收丢帧控制模块10输出的丢帧标志。视频解码模块20当获知丢帧标志已设置并且视频帧是B帧时,则进行丢帧处理,对其他视频帧则拒绝丢帧。\n[0050] 视频解码模块20决定是否丢弃该视频帧是通过解码器实现的,属于解码器接口的一部分。如果解码器没有这样的接口,那必须在解码前确定一个视频帧的种类(I,B,P帧),由丢帧控制模块10来丢帧。B帧和最后一个P帧可以丢弃。\n[0051] 如图4所示,是本发明的高效的视频播放丢帧控制方法流程图。结合图3,该方法流程的具体步骤包括:\n[0052] 步骤401,视频解码模块20取得参考时间;\n[0053] 步骤402,视频解码模块20取得视频帧时间戳;\n[0054] 步骤403,视频解码模块20判断视频帧时间戳是否早于参考时间,若是,则不需要进行丢帧处理,进入下一步骤404,若否,则需要进行丢帧处理,由丢帧控制模块10设置丢帧标志,并进入下一步骤404;\n[0055] 步骤404,视频解码模块20进行解码处理;\n[0056] 步骤405,视频解码模块20保存视频时间戳;\n[0057] 步骤406,判断是否结束视频播放,若是,则播放结束,若否,则返回步骤401。\n[0058] 上述步骤401、403中,参考时间是为视频解码时钟的当前时间。\n[0059] 本发明提出的丢帧控制方法,是将视频帧时间戳与视频解码时钟的当前时间进行比较,根据比较结果决定是否丢帧,实现方法简单,并能达到相当好的技术效果。\n[0060] 本发明提出的丢帧控制方法,通过解码前进行丢帧处理,有效降低系统负载,满足视频同步播放要求。\n[0061] 本发明提出的丢帧控制方法,取得了更好的控制效果和适应性,使得任意性能硬件设备上的视频播放更加连续、音视频同步效果更好。\n[0062] 本发明提出的丢帧控制方法,反馈控制的路径短,延迟小,控制精确,反应迅速;丢帧不分级,完全根据运行时的实际状况实时反馈,实时调节;控制量与反馈量之间有明确的对应关系和数学解释,算法实现有的放矢,不依赖经验数据。\n[0063] 本发明提出的丢帧控制方法,已经实际应用于手机视频播放中,播放高码率、大尺寸视频时的流畅程度和音视频同步性都明显优于同类技术。\n[0064] 当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
法律信息
- 2020-11-27
未缴年费专利权终止
IPC(主分类): H04N 21/647
专利号: ZL 201210552949.3
申请日: 2012.12.18
授权公告日: 2017.10.20
- 2017-10-20
- 2014-07-16
实质审查的生效
IPC(主分类): H04N 21/647
专利申请号: 201210552949.3
申请日: 2012.12.18
- 2014-06-18
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2009-03-25
|
2008-10-29
| | |
2
| |
2012-04-04
|
2011-11-30
| | |
3
| |
2012-03-07
|
2011-06-28
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |