CN115190325B - 丢帧控制方法、装置、设备、存储介质及程序产品 - Google Patents
丢帧控制方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN115190325B CN115190325B CN202210775268.7A CN202210775268A CN115190325B CN 115190325 B CN115190325 B CN 115190325B CN 202210775268 A CN202210775268 A CN 202210775268A CN 115190325 B CN115190325 B CN 115190325B
- Authority
- CN
- China
- Prior art keywords
- frame
- time
- acquisition
- real
- interval
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000009499 grossing Methods 0.000 claims abstract description 60
- 238000012545 processing Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 235000012976 tarts Nutrition 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000003796 beauty Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种丢帧控制方法、装置、设备、存储介质及程序产品,其中该方法包括:获取相邻两个采集帧的实时采集间隔,并对所述实时采集间隔进行平滑处理,得到实时帧间隔;根据所述实时帧间隔以及预设的目标帧率预测下一次采集的目标时间戳;当接收到采集帧时,获取所述采集帧的实时采集时间戳;确定所述实时采集时间戳与所述目标时间戳的误差;根据所述误差以及所述实时帧间隔中的至少一个,判断是否丢弃所述采集帧。可以在保证帧率控制准确性的同时减小丢帧误差以提高输出帧率的流畅度,降低jank卡顿,从而带来更好的用户观看体验。
Description
技术领域
本申请涉及视频处理技术领域,尤其涉及一种丢帧控制方法、一种丢帧控制装置、一种丢帧控制设备、一种计算机可读存储介质以及一种计算机程序产品。
背景技术
为保证视频直播质量和流畅度,一些直播产品会对采集帧率进行约束,例如设置目标最大帧率。iOS设备会在开启相机时将采集帧率固定在目标最大帧率上,Android设备则会默认选择第一个采集帧率区间,该帧率区间内的帧率通常比目标最大帧率要大。
在主播直播过程中,主播屏幕渲染和编码器因图像处理能力或发送带宽约束需动态调整帧率。例如,当主播开启美颜或特效、或者长时间开播手机发热等原因导致性能下降时,其渲染或编码单帧图像的处理能力均会下降,即每帧图像的处理耗时会增加,这会导致图像帧处理不过来而丢帧,并且这种丢帧受耗时抖动的影响,耗时突增甚至会带来连续丢帧,使得帧率的平滑度进一步下降,流畅度降低,此时需要限制采集帧率不能超过图像帧处理速率。
此外,在带宽不足或带宽受限时同样需要动态调整编码帧率:一是在码率有限的情况下,通过限制帧率提升单帧码率来保证编码图像的质量;二是在带宽抖动下可以通过动态调整帧率的方式控制码率输出达到自适应的目的。因此,准确且灵活的帧率控制策略是应对性能和网络变化以保障直播清晰度和流畅度的重要手段。
而直接控制原始采集帧率在实现中达不到实时的控制精度,并且iOS设备与Android设备在采集上存在差异,比如iOS设备在改变相机采集帧率时会导致相机重启,此过程中可能出现黑帧或丢帧,黑帧会导致视频画面出现闪烁,丢帧则会出现短暂卡顿;Android设备的相机采集差异性比较大,其通常会提供一组的采集帧率区间,而在每个区间内其采集帧率会受相机进光强度变化,进光强度越高帧率越高,反之帧率越低,而有限的采集帧率区间也决定了采集帧率不能灵活控制在任意的水平。iOS设备和Android设备的这种采集策略的差异性也使得直接控制采集帧率的复杂度更高。
发明内容
本申请提供了一种丢帧控制方法、装置、设备、存储介质及程序产品,以解决现有的丢帧处理方式流畅度较低、帧率控制准确度较低、复杂度较高等问题。
根据本申请的一方面,提供了一种丢帧控制方法,所述方法包括:
获取相邻两个采集帧的实时采集间隔,并对所述实时采集间隔进行平滑处理,得到实时帧间隔;
根据所述实时帧间隔以及预设的目标帧率预测下一次采集的目标时间戳;
当接收到采集帧时,获取所述采集帧的实时采集时间戳;
确定所述实时采集时间戳与所述目标时间戳的误差;
根据所述误差以及所述实时帧间隔中的至少一个,判断是否丢弃所述采集帧。
根据本申请的另一方面,提供了一种丢帧控制装置,所述装置包括:
实时采集间隔获取模块,用于获取相邻两个采集帧的实时采集间隔;
平滑处理模块,用于对所述实时采集间隔进行平滑处理,得到实时帧间隔;
目标时间戳预测模块,用于根据所述实时帧间隔以及预设的目标帧率预测下一次采集的目标时间戳;
实时采集时间戳获取模块,用于当接收到采集帧时,获取所述采集帧的实时采集时间戳;
误差确定模块,用于确定所述实时采集时间戳与所述目标时间戳的误差;
丢帧判断模块,用于根据所述误差以及所述实时帧间隔中的至少一个,判断是否丢弃所述采集帧。
根据本申请的另一方面,提供了一种丢帧控制设备,所述丢帧控制设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请任一实施例所述的方法。
根据本申请的又一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本申请任一实施例所述的方法。
根据本申请的又一方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述计算机可执行指令在被执行时用于实现本申请任一实施例所述的方法。
在本实施例中,通过对实时采集间隔进行平滑处理获得实时帧间隔,平滑后得到的实时帧间隔为后续的目标时间戳预测和误差评估提供了准确有效的参考。然后根据该实时帧间隔以及预设的目标帧率估算下一次采集的目标时间戳,来保证帧率控制的准确性。接着计算该目标时间戳与实时时间戳的误差,根据该误差以及实时采集间隔的至少一个来判断是否进行丢帧处理,以此提高帧率平滑度,实现准确平稳地控制帧率的目的。可以在保证帧率控制准确性的同时减小丢帧误差以提高输出帧率的流畅度,降低jank卡顿,从而带来更好的用户观看体验。且该方法实现简单灵活,实时性高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的一种丢帧控制方法的流程图;
图2是本申请实施例二提供的一种丢帧控制方法的流程图;
图3是本申请实施例三提供的一种丢帧控制方法的流程图;
图4是本申请实施例四提供的一种丢帧控制方法的流程图
图5是本申请实施例五提供的一种丢帧控制装置的结构示意图;
图6是实现本申请实施例的一种丢帧控制方法的丢帧控制设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本申请实施例一提供的一种丢帧控制方法的流程图,本实施例可以应用于终端设备中,由终端设备在进行视频采集时判断是否需要进行丢帧处理,该终端设备可以包括移动终端、固定终端、可穿戴终端等。例如,本实施例可以应用于直播场景中,当在终端设备中安装了直播应用程序(包括APP、小程序等方式)以后,则终端设备可以采用该直播应用程序提供的丢帧控制逻辑来进行丢帧处理。在其他实现中,该丢帧控制逻辑也可以集成或安装在终端设备本地,本实施例对此不作限制。当然,除了直播场景以外,本实施例还可以应用于监控场景、影视制作场景等需要对视频进行处理的场景中,本实施例对此不作限制。
需要说明的是,由于一般不会在视频采集之初进行丢帧处理,因此本实施例中丢帧控制逻辑的初始化可以设置为设定时长或者设定帧之后,例如,默认初始化为1000/24fps=41ms。
如图1所示,本实施例可以包括如下步骤:
步骤110,获取相邻两个采集帧的实时采集间隔,并对所述实时采集间隔进行平滑处理,得到实时帧间隔。
终端设备可以通过其内置或者外置的图像采集模块(如摄像头)采集视频数据,并实时确定实时采集间隔以及实时帧间隔。其中,采集间隔(间隔可以理解为相邻两帧出现的间隔长度或间隔大小)可以理解为相邻两个采集帧的实际的采集时间间隔,而帧间隔可以理解为相邻两个采集帧的平滑后的采集时间间隔。这是因为实际的采集间隔是会存在抖动的,例如,实际的采集间隔分别为25ms、30ms、35ms等,互相之间存在波动,因此可以采用设定的平滑手段,例如滤波处理方式(比如指数加权移动平均EWMA滤波),对实际的采集间隔进行平滑,得到比较稳定的帧间隔,比如将上述的25ms、30ms、35ms等采集间隔,平滑处理后得到的帧间隔为30ms左右。
步骤120,根据所述实时帧间隔以及预设的目标帧率预测下一次采集的目标时间戳。
其中,预设的目标帧率可以是人工配置的当前业务场景想要的需求帧率,可以是开发人员在开发时进行配置,也可以提供交互界面供操作人员配置,本实施例对目标帧率的配置过程不作限制。
在该步骤中,可以结合实时帧间隔以及预设的目标帧率,对下一次采集的目标时间戳进行估算。在实现时,可以根据实时帧间隔来确定实时的采集帧率,然后根据该采集帧率判断是否有需要对预设的目标帧率进行修正,使得目标帧率不超过该采集帧率。然后根据该目标帧率来估算目标时间戳。
步骤130,当接收到采集帧时,获取所述采集帧的实时采集时间戳。
步骤140,确定所述实时采集时间戳与所述目标时间戳的误差。
在实际中,用于帧的采集间隔本身会存在抖动,这会导致实时采集时间戳与目标时间戳之间存在误差,该步骤可以将该误差计算出来,作为后续丢帧的判断依据之一。
在实现时,该误差可以体现为实时采集时间戳与目标时间戳的差值。
步骤150,根据所述误差以及所述实时帧间隔中的至少一个,判断是否丢弃所述采集帧。
在实际中,根据目标帧率预测的目标时间戳可以保证帧率控制的精度,即单位时间内可以得到目标帧率所要求的帧数,但无法保证帧与帧之间间隔的平滑度,相同的帧率平滑度不同时其流畅度体验也会不同,平滑度差的甚至会感知到卡顿。因此,在该步骤中,可以结合经过平滑的实时帧间隔和误差来判断是否需要进行丢帧处理。
在一种实现中,可以预先配置丢帧条件,然后根据该误差以及实时帧间隔中的至少一个,判断当前采集帧是否满足该丢帧条件,如果满足丢帧条件,则将当前采集帧丢弃,否则保留当前采集帧。
在本实施例中,通过对实时采集间隔进行平滑处理获得实时帧间隔,平滑后得到的实时帧间隔为后续的目标时间戳预测和误差评估提供了准确有效的参考。然后根据该实时帧间隔以及预设的目标帧率估算下一次采集的目标时间戳,来保证帧率控制的准确性。接着计算该目标时间戳与实时时间戳的误差,根据该误差以及实时采集间隔的至少一个来判断是否进行丢帧处理,以此提高帧率平滑度,实现准确平稳地控制帧率的目的。可以在保证帧率控制准确性的同时减小丢帧误差以提高输出帧率的流畅度,降低jank卡顿(jank卡顿是指当前帧间隔超过前三帧帧间隔的两倍,产生的不连贯性视觉的卡顿),从而带来更好的用户观看体验。且该方法无需改变相机采集的情况,简单灵活,实时性高。
实施例二
图2为本申请实施例二提供的一种丢帧控制方法的流程图,本实施例在实施例一的基础上,对平滑处理过程进行更具体的说明。如图2所示,本实施例可以包括如下步骤:
步骤210,获取相邻两个采集帧的实时采集间隔。
在实际中,图像采集模块采集的图像帧的采集时间戳并不一定是均匀的,且输出的原始采集帧率也不一定固定或者准确,为了更准确实时地确定采集帧率,可以记录每一个采集帧的采集时间戳。然后通过计算前后两个采集帧的采集时间戳的差值得到采集间隔。而实时采集间隔为实时接收到的采集帧的采集时间戳以及上一采集帧的采集时间戳的差值,即:
Samplei=Tsi-Tsi-1
其中,Samplei为当前第i时刻收到的采集帧计算的实时采集间隔,Tsi为当前第i时刻收到的采集帧的采集时间戳,Tsi-1为当前第i时刻的上一采集帧的采集时间戳。
当获得实时采集间隔以后,则可以将该采集间隔与对应时刻的采集帧、对应的采集时间戳进行关联存储。
步骤220,获取上一次获得的帧间隔。
各采集帧的帧间隔可以采用设定的平滑手段进行处理,并存储在指定的存储位置,在存储时,该帧间隔可以与对应的采集帧、采集时间戳等进行关联存储。因此可以从该指定的存储位置读取上一次获得的帧间隔。例如,可以将最近保存的帧间隔作为上一次获得的帧间隔。
步骤230,基于设定的平滑系数,分别对所述实时采集间隔以及所述上一次获得的帧间隔进行平滑处理。
在本实施例中,可以根据实时采集间隔以及上一次获得的帧间隔,确定当前的实时帧间隔。该实时帧间隔为平滑后的帧间隔。
其中,平滑系数可以为经验值,例如,其可以为小于1的正数值,比如平滑系数α=0.98。
在一种实施例中,步骤230进一步可以包括如下步骤:
将所述平滑系数作为第一权重,以及,将数值1与所述平滑系数的差值作为第二权重;将所述第一权重与所述第二权重进行比较,并将两者中的较大者作为所述上一次获得的帧间隔的权重,较小者作为所述实时采集间隔的权重;采用所述权重,分别对所述实时采集间隔以及所述上一次获得的帧间隔进行加权处理。
具体的,在实际中,在进行平滑处理时,由于上一次获得的帧间隔是进行平滑处理后的采集间隔,具有更高的稳定性,因此,可以给予上一次获得的帧间隔更大的平滑系数(即更大的权重),使得实时帧间隔更趋向于上一采集帧的帧间隔,从而确保各连续的帧间隔的稳定性。
例如,若平滑系数α=0.98,可以将上一次获得的帧间隔的平滑系数设定为α,将实时采集间隔的平滑系数确定为(1-α)。
步骤240,基于平滑后的实时采集间隔以及平滑后的帧间隔,计算出实时帧间隔。
在一种实现中,可以计算加权处理后的实时采集间隔以及上一次获得的帧间隔之和,作为实时帧间隔。即:
CapDiffi=α*CapDiffi-1+(1-α)*Samplei
其中,CapDiffi-1为上一采集帧的帧间隔,CapDiffi为当前第i个时刻的实时帧间隔。
步骤250,根据所述实时帧间隔以及预设的目标帧率预测下一次采集的目标时间戳。
步骤260,当接收到采集帧时,获取所述采集帧的实时采集时间戳。
步骤270,确定所述实时采集时间戳与所述目标时间戳的误差。
步骤280,根据所述误差以及所述实时帧间隔中的至少一个,判断是否丢弃所述采集帧。
在本实施例中,在进行平滑处理时,除了会考虑相邻两个采集帧的实时采集间隔以外,还会考虑上一次获得的平滑后的帧间隔,然后通过平滑系数来对该实时采集间隔以及上一帧间隔进行平滑处理,并将平滑后的实时采集间隔以及上一帧间隔融合得到实时帧间隔,实现对帧间隔的平滑处理,避免出现帧间隔抖动较大的情况,提高了连续帧间隔的平滑度,平滑后得到的实时帧间隔还可以为后续的目标时间戳预测和误差评估提供了准确有效的参考。
实施例三
图3为本申请实施例三提供的一种丢帧控制方法的流程图,本实施例在实施例一或实施例二的基础上,对目标时间戳的预测过程进行更具体的说明。如图3所示,本实施例可以包括如下步骤:
步骤310,获取相邻两个采集帧的实时采集间隔,并对所述实时采集间隔进行平滑处理,得到实时帧间隔。
步骤320,根据所述实时帧间隔确定采集帧率。
当获得当前的实时帧间隔以后,可以根据该实时帧间隔计算出采集帧率。由于实时帧间隔是平滑处理后的,因此采集帧率也是平滑处理后的。其中,采集帧率(acquisitionrate)是指单位时间内采集到的图像帧的数量,用帧/秒(f/s,fps)表示。
在一种实现中,采集帧率可以为实时帧间隔的倒数,即:
其中,CapFpsi为当前第i个时刻的采集帧率。
步骤330,根据所述采集帧率以及预设的目标帧率确定最终的目标帧率。
在实际中,目标帧率不应该低于实际的采集帧率,因此,可以基于采集帧率对目标帧率进行修正。在一种实现中,可以将采集帧率与预设的目标帧率进行比较,取两者之间的最大帧率作为最终的目标帧率,即:
TarFpsi=max(TarFpsi,CapFpsi)
其中,TarFpsi为目标帧率。
步骤340,基于所述最终的目标帧率,确定目标帧间隔。
当获得最终的目标帧率以后,如果想要实现该最终的目标帧率,可以首先计算出在该目标帧率下单位时间内所能容纳的帧数,而最小的单位时间为一个目标帧间隔,由此可以实现最高精度的帧率控制。在一种实现中,目标帧间隔可以为目标帧率的倒数,即:
其中,TarDiffi为目标帧间隔。
步骤350,获取上一次预测的目标时间戳,并根据所述上一次的目标时间戳以及所述目标帧间隔,确定下一次采集的目标时间戳。
在该步骤中,当获得目标帧间隔以后,则可以根据该目标帧间隔预测图像采集模块下一次采集的目标时间戳。为了能够达到更准确的预测效果,可以结合上一次预测的目标时间戳来获得本次预测的目标时间戳。
在实现时,该上一次预测的目标时间戳可以存储在指定的存储位置,从该存储位置中读取最新保存的目标时间戳,作为上一次预测的目标时间戳。
进一步地,如果从该存储位置中查找不到上一次预测的目标时间戳,或者,若预设的目标帧率发生变化,则可以将上一次采集的采集时间戳作为上一次目标时间戳,如此可以避免前面帧率控制的误差传递至下一个帧率控制环节。
在一种实施例中,可以计算上一次计算的目标时间戳与目标帧间隔之和,作为下一次采集的目标时间戳,即:
TarTsi=TarDiffi+TarTsi-1
其中,TarTsi为下一次采集的目标时间戳,TarTsi-1为上一次计算的目标时间戳。
步骤360,当接收到采集帧时,获取所述采集帧的实时采集时间戳。
步骤370,确定所述实时采集时间戳与所述目标时间戳的误差。
在一种实现中,该误差可以为目标时间戳与实时采集时间戳的差值的绝对值,即:
其中,为时间戳的误差。
步骤380,根据所述误差以及所述实时帧间隔中的至少一个,判断是否丢弃所述采集帧。
在一种实施例中,为了保证帧率控制精度,当实时帧间隔超过目标帧间隔时需要保留当前采集帧。否则,若实时帧间隔不超过目标帧间隔,则丢弃当前采集帧。
在本实施例中,通过实时帧间隔可以进一步计算采集帧率,由于该实时帧间隔是平滑处理后的,使得采集帧率也是平滑处理后的。然后可以根据该采集帧率以及预设的目标帧率确定最终的目标帧率。当目标帧率确定以后可以进一步根据该目标帧率确定目标帧间隔,然后根据上一次预测的目标时间戳以及该目标帧间隔估算下一次采集的理想目标时间戳,该目标时间戳的确定有利于后续计算误差,从而根据误差来进行丢帧判断,进一步保证帧率控制的准确性。
实施例四
图4为本申请实施例四提供的一种丢帧控制方法的流程图,本实施例在实施例一或实施例二或实施例三的基础上,对丢帧判断的过程进行更具体的说明。如图4所示,本实施例可以包括如下步骤:
步骤410,获取相邻两个采集帧的实时采集间隔,并对所述实时采集间隔进行平滑处理,得到实时帧间隔。
步骤420,根据所述实时帧间隔以及预设的目标帧率预测下一次采集的目标时间戳;
步骤430,当接收到采集帧时,获取所述采集帧的实时采集时间戳。
步骤440,确定所述实时采集时间戳与所述目标时间戳的误差。
步骤450,若所述误差大于所述实时帧间隔的一半,则丢弃所述采集帧。
步骤460,若所述误差小于或等于所述实时帧间隔的一半,则保留所述采集帧。
在实际中,当误差控制在半个实时帧间隔以内时,则可以判定当前采集帧的采集间隔的随机抖动平均误差也控制在半个实时帧间隔以内,此时可以保留当前采集帧。否则,需要丢弃当前采集帧而选择下一个采集帧。
实际上,采集帧的丢帧判断可以表示为:
即满足该条件的采集帧会被丢弃,否则保留下来,以此实现帧率控制,达到最终的目标帧率。
对于保留下来的采集帧,一方面可以传入本地的渲染模块进行渲染播放,另一方面还可以传入编码模块进行编码,并将编码后的视频帧发送出去。
在本实施例中,根据该误差以及半个实时采集间隔相结合来判断是否进行丢帧处理,如果误差在半个实时帧间隔内则保留当前采集帧,如果该误差超过半个实时帧间隔则丢弃当前采集帧,而由于实时帧间隔是平滑处理后的,从而实现了平滑丢帧处理,以此提高帧率平滑度,实现准确平稳地控制帧率的目的。可以在保证帧率控制准确性的同时减小丢帧误差以提高输出帧率的流畅度,降低jank卡顿(jank卡顿是指当前帧间隔超过前三帧帧间隔的两倍,产生的不连贯性视觉的卡顿),从而带来更好的用户观看体验。且该方法无需改变相机采集的情况,简单灵活,实时性高。
实施例五
图5为本申请实施例二提供的一种丢帧控制装置的结构示意图,可以包括如下模块:
实时采集间隔获取模块510,用于获取相邻两个采集帧的实时采集间隔;
平滑处理模块520,用于对所述实时采集间隔进行平滑处理,得到实时帧间隔;
目标时间戳预测模块530,用于根据所述实时帧间隔以及预设的目标帧率预测下一次采集的目标时间戳;
实时采集时间戳获取模块540,用于当接收到采集帧时,获取所述采集帧的实时采集时间戳;
误差确定模块550,用于确定所述实时采集时间戳与所述目标时间戳的误差;
丢帧判断模块560,用于根据所述误差以及所述实时帧间隔中的至少一个,判断是否丢弃所述采集帧。
在一种实施例中,平滑处理模块520可以包括如下模块:
上一帧间隔获取模块,用于获取上一次获得的帧间隔;
平滑模块,用于基于设定的平滑系数,分别对所述实时采集间隔以及所述上一次获得的帧间隔进行平滑处理;
实时帧间隔计算模块,用于基于平滑后的实时采集间隔以及平滑后的帧间隔,计算出实时帧间隔。
在一种实施例中,所述平滑系数为小于1的正数值,所述平滑模块具体用于:
将所述平滑系数作为第一权重,以及,将数值1与所述平滑系数的差值作为第二权重;
将所述第一权重与所述第二权重进行比较,并将两者中的较大者作为所述上一次获得的帧间隔的权重,较小者作为所述实时采集间隔的权重;
采用所述权重,分别对所述实时采集间隔以及所述上一次获得的帧间隔进行加权处理。
在一种实施例中,实时帧间隔计算模块具体用于:
计算加权处理后的所述实时采集间隔以及所述上一次获得的帧间隔之和,作为实时帧间隔。
在一种实施例中,目标时间戳预测模块530可以包括如下模块:
采集帧率确定模块,用于根据所述实时帧间隔确定采集帧率;
最终目标帧率确定模块,用于根据所述采集帧率以及预设的目标帧率确定最终的目标帧率;
目标帧间隔确定模块,用于基于所述最终的目标帧率,确定目标帧间隔;
目标时间戳计算模块,用于获取上一次预测的目标时间戳,并根据所述上一次的目标时间戳以及所述目标帧间隔,确定下一次采集的目标时间戳。
在一种实施例中,最终目标帧率确定模块具体用于:
将所述采集帧率与所述预设的目标帧率进行比较,取两者之间的最大帧率作为最终的目标帧率。
在一种实施例中,所述目标时间戳计算模块还用于:
若获取不到上一次预测的目标时间戳,或者,若所述预设的目标帧率发生变化,则将上一次采集的采集时间戳作为上一次目标时间戳。
在一种实施例中,丢帧判断模块560具体用于:
若所述实时帧间隔超过所述目标帧间隔,则保留所述采集帧;
若所述实时帧间隔不超过所述目标帧间隔,则丢弃所述采集帧。
在另一种实施例中,丢帧判断模块560具体用于:
若所述误差大于所述实时帧间隔的一半,则丢弃所述采集帧;
若所述误差小于或等于所述实时帧间隔的一半,则保留所述采集帧。
本申请实施例所提供的一种丢帧控制装置可执行本申请实施例一至实施例四中任一实施例所提供的一种丢帧控制方法,具备执行方法相应的功能模块和有益效果。
实施例六
图6示出了可以用来实施本申请的方法实施例的丢帧控制设备10的结构示意图。如图6所示,丢帧控制设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储装置,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储装置存储有可被至少一个处理器执行的一个或多个计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储丢帧控制设备10操作所需的各种程序和数据。
在一些实施例中,一种丢帧控制方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到丢帧控制设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的一种丢帧控制方法的一个或多个步骤。
在一些实施例中,一种丢帧控制方法可被实现为计算机程序产品,该计算机程序产品包括计算机可执行指令,该计算机可执行指令在被执行时用于执行上文描述的一种丢帧控制方法的一个或多个步骤。
Claims (12)
1.一种丢帧控制方法,其特征在于,所述方法包括:
获取相邻两个采集帧的实时采集间隔,并对所述实时采集间隔进行平滑处理,得到实时帧间隔;
根据所述实时帧间隔以及预设的目标帧率预测下一次采集的目标时间戳;
当接收到采集帧时,获取所述采集帧的实时采集时间戳;
确定所述实时采集时间戳与所述目标时间戳的误差;
根据所述误差以及所述实时帧间隔中的至少一个,判断是否丢弃所述采集帧,
其中,所述对所述实时采集间隔进行平滑处理,得到实时帧间隔,包括:
计算加权处理后的所述实时采集间隔以及上一次获得的帧间隔之和,作为实时帧间隔,所述上一次获得的帧间隔的权重大于所述实时采集间隔的权重。
2.根据权利要求1所述的方法,其特征在于,所述对所述实时采集间隔进行平滑处理,得到实时帧间隔,包括:
获取上一次获得的帧间隔;
基于设定的平滑系数,分别对所述实时采集间隔以及所述上一次获得的帧间隔进行平滑处理;
基于平滑后的实时采集间隔以及平滑后的帧间隔,计算出实时帧间隔。
3.根据权利要求2所述的方法,其特征在于,所述平滑系数为小于1的正数值,所述基于设定的平滑系数,分别对所述实时采集间隔以及所述上一次获得的帧间隔进行平滑处理,包括:
将所述平滑系数作为第一权重,以及,将数值1与所述平滑系数的差值作为第二权重;
将所述第一权重与所述第二权重进行比较,并将两者中的较大者作为所述上一次获得的帧间隔的权重,较小者作为所述实时采集间隔的权重;
采用所述权重,分别对所述实时采集间隔以及所述上一次获得的帧间隔进行加权处理。
4.根据权利要求3所述的方法,其特征在于,所述基于平滑后的实时采集间隔以及平滑后的帧间隔,计算出实时帧间隔,包括:
计算加权处理后的所述实时采集间隔以及所述上一次获得的帧间隔之和,作为实时帧间隔。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述实时帧间隔以及预设的目标帧率预测下一次采集的目标时间戳,包括:
根据所述实时帧间隔确定采集帧率;
根据所述采集帧率以及预设的目标帧率确定最终的目标帧率;
基于所述最终的目标帧率,确定目标帧间隔;
获取上一次预测的目标时间戳,并根据所述上一次的目标时间戳以及所述目标帧间隔,确定下一次采集的目标时间戳。
6.根据权利要求5所述的方法,其特征在于,所述根据所述采集帧率以及预设的目标帧率确定最终的目标帧率,包括:
将所述采集帧率与所述预设的目标帧率进行比较,取两者之间的最大帧率作为最终的目标帧率。
7.根据权利要求5所述的方法,其特征在于,所述获取上一次预测的目标时间戳,包括:
若获取不到上一次预测的目标时间戳,或者,若所述预设的目标帧率发生变化,则将上一次采集的采集时间戳作为上一次目标时间戳。
8.根据权利要求5所述的方法,其特征在于,所述根据所述误差以及所述实时帧间隔中的至少一个,判断是否丢弃所述采集帧,包括:
若所述实时帧间隔超过所述目标帧间隔,则保留所述采集帧;
若所述实时帧间隔不超过所述目标帧间隔,则丢弃所述采集帧。
9.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述误差以及所述实时帧间隔中的至少一个,判断是否丢弃所述采集帧,包括:
若所述误差大于所述实时帧间隔的一半,则丢弃所述采集帧;
若所述误差小于或等于所述实时帧间隔的一半,则保留所述采集帧。
10.一种丢帧控制装置,其特征在于,所述装置包括:
实时采集间隔获取模块,用于获取相邻两个采集帧的实时采集间隔;
平滑处理模块,用于对所述实时采集间隔进行平滑处理,得到实时帧间隔,所述对所述实时采集间隔进行平滑处理,得到实时帧间隔,包括:计算加权处理后的所述实时采集间隔以及上一次获得的帧间隔之和,作为实时帧间隔,所述上一次获得的帧间隔的权重大于所述实时采集间隔的权重;
目标时间戳预测模块,用于根据所述实时帧间隔以及预设的目标帧率预测下一次采集的目标时间戳;
实时采集时间戳获取模块,用于当接收到采集帧时,获取所述采集帧的实时采集时间戳;
误差确定模块,用于确定所述实时采集时间戳与所述目标时间戳的误差;
丢帧判断模块,用于根据所述误差以及所述实时帧间隔中的至少一个,判断是否丢弃所述采集帧。
11.一种丢帧控制设备,其特征在于,所述丢帧控制设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210775268.7A CN115190325B (zh) | 2022-07-01 | 2022-07-01 | 丢帧控制方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210775268.7A CN115190325B (zh) | 2022-07-01 | 2022-07-01 | 丢帧控制方法、装置、设备、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115190325A CN115190325A (zh) | 2022-10-14 |
CN115190325B true CN115190325B (zh) | 2023-09-05 |
Family
ID=83516276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210775268.7A Active CN115190325B (zh) | 2022-07-01 | 2022-07-01 | 丢帧控制方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115190325B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115942010A (zh) * | 2022-11-11 | 2023-04-07 | 北京奇艺世纪科技有限公司 | 一种质量评估结果获取方法、装置、服务器及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002232893A (ja) * | 2001-02-05 | 2002-08-16 | Matsushita Electric Ind Co Ltd | 画像符号化装置 |
JP2006148409A (ja) * | 2004-11-18 | 2006-06-08 | Matsushita Electric Ind Co Ltd | フレームレート変換方法 |
WO2014102337A1 (en) * | 2012-12-27 | 2014-07-03 | Barco Nv | A method and system for managing a queue of video frames |
CN105245976A (zh) * | 2015-09-30 | 2016-01-13 | 合一网络技术(北京)有限公司 | 音频和视频同步播放的方法及系统 |
CN105282547A (zh) * | 2014-07-03 | 2016-01-27 | 深圳市腾讯计算机系统有限公司 | 一种视频编码的码率控制方法及装置 |
CN108933768A (zh) * | 2017-05-27 | 2018-12-04 | 成都鼎桥通信技术有限公司 | 视频帧的发送帧率的获取方法和装置 |
CN110618801A (zh) * | 2019-10-08 | 2019-12-27 | Oppo(重庆)智能科技有限公司 | 平滑画面帧率表现方法、装置、终端设备及存储介质 |
CN110650320A (zh) * | 2019-10-23 | 2020-01-03 | 海能达通信股份有限公司 | 动态帧率存储方法及装置、监控设备 |
CN112423072A (zh) * | 2020-09-02 | 2021-02-26 | 上海幻电信息科技有限公司 | 直播场景下的视频推送方法及系统 |
CN112822505A (zh) * | 2020-12-31 | 2021-05-18 | 杭州星犀科技有限公司 | 音视频丢帧方法、装置、系统、存储介质和计算机设备 |
CN113453054A (zh) * | 2021-06-30 | 2021-09-28 | 深圳市斯博科技有限公司 | 音视频丢帧方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140104493A1 (en) * | 2012-10-11 | 2014-04-17 | Tangome, Inc. | Proactive video frame dropping for hardware and network variance |
-
2022
- 2022-07-01 CN CN202210775268.7A patent/CN115190325B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002232893A (ja) * | 2001-02-05 | 2002-08-16 | Matsushita Electric Ind Co Ltd | 画像符号化装置 |
JP2006148409A (ja) * | 2004-11-18 | 2006-06-08 | Matsushita Electric Ind Co Ltd | フレームレート変換方法 |
WO2014102337A1 (en) * | 2012-12-27 | 2014-07-03 | Barco Nv | A method and system for managing a queue of video frames |
CN105282547A (zh) * | 2014-07-03 | 2016-01-27 | 深圳市腾讯计算机系统有限公司 | 一种视频编码的码率控制方法及装置 |
CN105245976A (zh) * | 2015-09-30 | 2016-01-13 | 合一网络技术(北京)有限公司 | 音频和视频同步播放的方法及系统 |
CN108933768A (zh) * | 2017-05-27 | 2018-12-04 | 成都鼎桥通信技术有限公司 | 视频帧的发送帧率的获取方法和装置 |
CN110618801A (zh) * | 2019-10-08 | 2019-12-27 | Oppo(重庆)智能科技有限公司 | 平滑画面帧率表现方法、装置、终端设备及存储介质 |
CN110650320A (zh) * | 2019-10-23 | 2020-01-03 | 海能达通信股份有限公司 | 动态帧率存储方法及装置、监控设备 |
CN112423072A (zh) * | 2020-09-02 | 2021-02-26 | 上海幻电信息科技有限公司 | 直播场景下的视频推送方法及系统 |
CN112822505A (zh) * | 2020-12-31 | 2021-05-18 | 杭州星犀科技有限公司 | 音视频丢帧方法、装置、系统、存储介质和计算机设备 |
CN113453054A (zh) * | 2021-06-30 | 2021-09-28 | 深圳市斯博科技有限公司 | 音视频丢帧方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115190325A (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105578068B (zh) | 一种高动态范围图像的生成方法、装置及移动终端 | |
US9294687B2 (en) | Robust automatic exposure control using embedded data | |
CN111355864B (zh) | 一种图像闪烁消除方法及装置 | |
CN105744175B (zh) | 一种屏幕补光方法、装置及移动终端 | |
CN110876060B (zh) | 一种编码过程中的码率调整方法及装置 | |
CN105827633B (zh) | 一种视频传输方法及装置 | |
CN110839129A (zh) | 图像处理方法、装置以及移动终端 | |
US20160352996A1 (en) | Terminal, image processing method, and image acquisition method | |
US8493499B2 (en) | Compression-quality driven image acquisition and processing system | |
US10110929B2 (en) | Method of pre-processing digital images, and digital image preprocessing system | |
CN115190325B (zh) | 丢帧控制方法、装置、设备、存储介质及程序产品 | |
WO2017152274A1 (en) | Method and system for automatic user quality-of-experience measurement of streaming video | |
CN108989832B (zh) | 一种图像数据处理方法及其设备、存储介质、终端 | |
US20130003846A1 (en) | Frame encoding selection based on frame similarities and visual quality and interests | |
US20060152605A1 (en) | Image processing apparatus, image processing method, and program | |
WO2017173750A1 (zh) | 调整图像曝光度的方法及系统 | |
CN110708570A (zh) | 视频的编码码率确定方法、装置、设备及存储介质 | |
DE112009002346T5 (de) | Verarbeitung von Videodaten in Geräten mit eingeschränkten Ressourcen | |
US20150256822A1 (en) | Method and Apparatus for Assessing Video Freeze Distortion Degree | |
CN110971833A (zh) | 一种图像处理方法、装置、电子设备及存储介质 | |
EP3379820B1 (en) | Controller, video camera, and method for controlling a video camera | |
CN109120856B (zh) | 一种摄像方法及装置 | |
CN114449130B (zh) | 一种多摄像头的视频融合方法及系统 | |
CN110072050B (zh) | 曝光参数的自适应调整方法、装置及一种拍摄设备 | |
CN113840090B (zh) | 快门调整方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |