调整显示延迟的方法、电子装置和存储介质

文档序号:142640 发布日期:2021-10-22 浏览:18次 >En<

阅读说明:本技术 调整显示延迟的方法、电子装置和存储介质 (Method for adjusting display delay, electronic device and storage medium ) 是由 宫纪伟 于 2021-06-11 设计创作,主要内容包括:本申请涉及一种调整显示延迟的方法、电子装置和存储介质,其中,该调整显示延迟的方法包括:获取帧间时间间隔值、视频显示端下一帧的显示时间、视频显示端当前帧的显示时间和视频输入端当前帧的到达时间;根据帧间时间间隔值和视频显示端下一帧的显示时间,确定第一阈值;若视频输入端当前帧的到达时间满足预设条件,则调整视频显示端的像素时钟,直到视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第二阈值,其中,视频显示端的像素时钟被调整会引起视频显示端下一帧的显示时间被更新,通过本申请,解决了无法在通用的SOC芯片中调整视频显示端延迟时间的问题,降低了视频显示端的延迟时间。(The application relates to a method for adjusting display delay, an electronic device and a storage medium, wherein the method for adjusting display delay comprises the following steps: acquiring an inter-frame time interval value, the display time of the next frame of a video display end, the display time of the current frame of the video display end and the arrival time of the current frame of a video input end; determining a first threshold value according to the inter-frame time interval value and the display time of the next frame of the video display end; if the arrival time of the current frame at the video input end meets the preset condition, the pixel clock of the video display end is adjusted until the absolute value of the difference value between the arrival time of the current frame at the video input end and the first threshold is smaller than the second threshold, wherein the adjustment of the pixel clock of the video display end can cause the display time of the next frame at the video display end to be updated.)

调整显示延迟的方法、电子装置和存储介质

技术领域

本申请涉及图像处理领域,特别是涉及调整显示延迟的方法、电子装置和存储介质。

背景技术

随着传输带宽、硬件性能不断提高,客户对端到端显示实时性、稳定性要求越来越高。分布式系统中视频获取端与视频显示端采用独立的像素时钟,即使初始状态同相位,一段时间后视频获取端与视频显示端之间会存在相位差,导致视频输出端出现显示延迟时间,由于视频输出端与视频输出端连接是随机建立的,因此,视频输入端与视频输出端的相位差会不固定,表现为视频输出端的显示延迟时间忽高忽低,最大可相差一个显示周期。

现有方案中主要是基于FPGA获取视频显示端的时序参数,根据视频显示端的时序参数、视频获取端的帧率来调整视频显示端的帧率,以使视频显示端实时显示每一帧视频,但在通用的SOC芯片中,无法获取视频显示端的时序参数,进而无法调整视频显示端的延迟时间。

发明内容

在本实施例中提供了一种调整显示延迟的方法、电子装置和存储介质,以解决相关技术中无法调整视频显示端的延迟时间的问题。

第一个方面,在本实施例中提供了一种调整显示延迟的方法,包括:

获取帧间时间间隔值、视频显示端下一帧的显示时间、视频显示端当前帧的显示时间和视频输入端当前帧的到达时间,其中,所述帧间时间间隔值根据视频输入端前n帧中各帧之间的时间间隔确定,n≥2;

根据所述帧间时间间隔值和所述视频显示端下一帧的显示时间,确定第一阈值;

若所述视频输入端当前帧的到达时间满足预设条件,则调整视频显示端的像素时钟,直到所述视频输入端当前帧的到达时间与所述第一阈值的差值的绝对值小于第二阈值,其中,所述预设条件基于所述第一阈值、所述视频显示端下一帧的显示时间和所述视频显示端当前帧的显示时间而确定,所述视频显示端的像素时钟被调整会引起所述视频显示端下一帧的显示时间被更新。

在其中的一些实施例中,所述视频输入端当前帧的到达时间满足预设条件包括:

所述视频输入端当前帧的到达时间减去所述第一阈值得到的差值不小于所述第二阈值,且所述视频输入端当前帧的到达时间不大于所述视频显示端下一帧的显示时间;或者,

所述第一阈值减去所述视频输入端当前帧的到达时间得到的差值不小于所述第二阈值,且所述视频输入端当前帧的到达时间不小于所述视频显示端当前帧的显示时间。

在其中的一些实施例中,根据所述帧间时间间隔值和所述视频显示端下一帧的显示时间,确定第一阈值包括:

将所述视频显示端下一帧的显示时间与所述帧间时间间隔值的差值作为所述第一阈值。

在其中的一些实施例中,调整所述视频显示端的像素时钟,直到所述视频输入端当前帧的到达时间与所述第一阈值的差值的绝对值小于所述第二阈值,具体包括:

调整所述视频显示端的像素时钟,得到更新后的所述视频显示端下一帧的显示时间;

获取视频输入端下一帧的到达时间;

根据所述帧间时间间隔值和更新后的所述视频显示端下一帧的显示时间,确定更新后的第一阈值;

若所述视频输入端下一帧的到达时间与所述更新后的第一阈值的差值的绝对值不小于所述第二阈值,再次执行调整所述视频显示端的像素时钟的步骤,直至所述视频输入端下一帧的到达时间与更新后的第一阈值的差值的绝对值小于所述第二阈值。

在其中的一些实施例中,调整所述视频显示端的像素时钟,直到所述视频输入端当前帧的到达时间与所述第一阈值的差值的绝对值小于所述第二阈值之后,所述方法还包括:

确定所述视频输入端的实际像素时钟;

将所述视频输入端的实际像素时钟作为所述视频显示端的默认像素时钟;

将所述视频显示端的像素时钟设置为所述默认像素时钟;

若在预设时间段内,所述视频输入端当前帧的到达时间与所述第一阈值的差值的绝对值均不小于第三阈值,调整所述视频显示端的像素时钟,直到所述视频输入端当前帧的到达时间与所述第一阈值的差值的绝对值小于所述第三阈值,其中,所述第三阈值小于所述第二阈值。

在其中的一些实施例中,确定所述视频输入端的实际像素时钟包括:

获取所述视频输入端的理论像素时钟、所述视频输入端的帧率、所述视频输入端接收m帧的理论耗时和所述视频输入端接收m帧的实际耗时,其中,m≥2;

根据所述视频输入端的理论像素时钟与所述视频输入端的帧率的乘积,得到第一结果值;

根据所述第一结果值与所述视频输入端接收m帧的实际耗时的乘积,得到第二结果值;

根据所述第二结果与所述视频输入端接收m帧的理论耗时的比值,得到所述视频输入端的实际像素时钟。

在其中的一些实施例中,所述帧间时间间隔值根据所述视频输入端前n帧中各帧之间的时间间隔确定,具体包括:

所述帧间时间间隔值根据平均时间间隔和/或最大时间间隔确定,其中,所述平均时间间隔和所述最大时间间隔是根据所述视频输入端前n帧中各帧之间的时间间隔计算得到的。

在其中的一些实施例中,获取所述视频显示端下一帧的显示时间包括:

获取所述视频显示端的理论像素时钟、所述视频显示端的实际像素时钟和所述视频显示端的帧率,计算所述视频显示端输出每帧需要的时间;

根据所述视频显示端当前帧的显示时间和所述视频显示端输出每帧需要的时间,确定所述视频显示端下一帧的显示时间。

在其中的一些实施例中,获取所述视频显示端当前帧的显示时间包括:

根据所述视频显示端当前帧的VSYNC信号,获取所述视频显示端当前帧的显示时间。

第二个方面,在本实施例中提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的调整显示延迟的方法。

第三个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的调整显示延迟的方法。

与相关技术相比,在本实施例中提供的调整显示延迟的方法、电子装置和存储介质,在视频输入端当前帧的到达时间满足预设条件的情况下,调整视频显示端的像素时钟,直到将视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第二阈值,第一阈值由帧间时间间隔值和所述视频显示端下一帧的显示时间确定,因此,能将视频输入端当前帧的到达时间与视频显示端下一帧的显示时间的差值的绝对值控制在一个阈值范围内,解决了无法在通用的SOC芯片中调整视频显示端延迟时间的问题,降低了视频显示端的延迟时间。

本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的调整显示延迟的方法的应用终端的硬件结构框图;

图2是根据本申请实施例的一种调整显示延迟的方法的流程图;

图3是根据本申请实施例的再一种调整显示延迟的方法的流程图;

图4是根据本申请实施例的确定视频输入端的实际像素时钟的流程图;

图5是根据本申请实施例的又一种调整显示延迟的方法的流程图;

图6是根据本申请实施例的另一种调整显示延迟的方法的流程图。

具体实施方式

为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。

除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。

在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是根据本申请实施例的调整显示延迟的方法的应用终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的调整显示延迟的方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种调整显示延迟的方法,图2是根据本申请实施例的一种调整显示延迟的方法的流程图,如图2所示,该流程包括如下步骤:

步骤S201,获取帧间时间间隔值、视频显示端下一帧的显示时间、视频显示端当前帧的显示时间和视频输入端当前帧的到达时间,其中,帧间时间间隔值根据视频输入端前n帧中各帧之间的时间间隔确定,n≥2。

步骤S202,根据帧间时间间隔值和视频显示端下一帧的显示时间,确定第一阈值。

在本实施例中,根据视频输入端当前帧的到达时间和帧间时间间隔,能够计算出视频输入端下一帧的到达时间。

步骤S203,若视频输入端当前帧的到达时间满足预设条件,则调整视频显示端的像素时钟,直到视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第二阈值,其中,预设条件基于第一阈值、视频显示端下一帧的显示时间和视频显示端当前帧的显示时间而确定,视频显示端的像素时钟被调整会引起视频显示端下一帧的显示时间被更新。

在本实施例中,第二阈值可以根据实际情况做调整,在允许视频显示端的延迟时间在较大的情况下,第二阈值可以设置的较大,在允许视频显示端的延迟时间在较小的情况下,第二阈值可以设置的较小。

在具体实施例中,第二阈值的大小可以设置为[0.5,2]毫秒中的任意值。

通过上述步骤,在视频输入端当前帧的到达时间满足预设条件的情况下,调整视频显示端的像素时钟,直到将视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第二阈值,第一阈值由帧间时间间隔值和视频显示端下一帧的显示时间确定,而根据视频输入端当前帧的到达时间和帧间时间间隔,能够计算出视频输入端下一帧的到达时间,因此,能将视频输入端下一帧的到达时间与视频显示端下一帧的显示时间的差值的绝对值控制在一个阈值范围内,解决了无法在通用的SOC芯片中调整视频显示端延迟时间的问题,降低了视频显示端的延迟时间。

在其中的一些实施例中,步骤S203,视频输入端当前帧的到达时间满足预设条件包括:

视频输入端当前帧的到达时间减去第一阈值得到的差值不小于第二阈值,且视频输入端当前帧的到达时间不大于视频显示端下一帧的显示时间;或者,

第一阈值减去视频输入端当前帧的到达时间得到的差值不小于第二阈值,且视频输入端当前帧的到达时间不小于视频显示端当前帧的显示时间。

通过上述方式,若视频输入端当前帧的到达时间的范围在[L1,L2]时,调整视频显示端的像素时钟,L1是第一阈值与第二阈值的和,L2是视频显示端下一帧的显示时间,或者视频输入端当前帧的到达时间的范围在[K1,K2]时,调整视频显示端的像素时钟,K1是视频显示端当前帧的显示时间,K2是第一阈值与第二阈值的差,视频显示端的像素时钟被调整会引起视频显示端下一帧的显示时间被更新,从而能将视频输入端当前帧的到达时间与视频显示端下一帧的显示时间的差值的绝对值控制在一个阈值范围内,实现了对视频显示端延迟时间的调整,另外,在视频输入端当前帧的到达时间的范围不在[L1,L2]和[K1,K2]时,说明视频输入端的当前帧的到达时间与视频显示端的下一帧的显示时间的差值的绝对值超出了帧间时间间隔值,此时再去调整视频显示端的像素时钟已没有必要,将视频输入端的当前帧作为异常帧处理。

在其中的一些实施例中,步骤S202,根据帧间时间间隔值和视频显示端下一帧的显示时间,确定第一阈值包括:

将视频显示端下一帧的显示时间与帧间时间间隔值的差值作为第一阈值。

通过上述方式,在视频输入端当前帧的到达时间满足预设条件的情况下,调整视频显示端的像素时钟,直到视频输入端下一帧的到达时间与视频显示端下一帧的显示时间的差值的绝对值小于帧间时间间隔与第二阈值的和,即能够将视频输入端当前帧的到达时间与视频显示端下一帧的显示时间的差值的绝对值调整在一个阈值范围内,阈值为帧间时间间隔与第二阈值的和,解决了视频显示端的延迟时间无法调整的问题,降低了视频显示端的延迟时间。

在其中的一些实施例中,调整视频显示端的像素时钟,直到视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第二阈值,具体包括:

调整视频显示端的像素时钟,得到更新后的视频显示端下一帧的显示时间;

获取视频输入端下一帧的到达时间;

根据帧间时间间隔值和更新后的视频显示端下一帧的显示时间,确定更新后的第一阈值;

若视频输入端下一帧的到达时间与更新后的第一阈值的差值的绝对值不小于第二阈值,再次执行调整视频显示端的像素时钟的步骤,直至视频输入端下一帧的到达时间与更新后的第一阈值的差值的绝对值小于第二阈值。

通过上述方式,在视频输入端下一帧的到达时间与更新后的第一阈值的差值的绝对值不小于第二阈值的情况下,调整视频显示端的像素时钟,将视频显示端下一帧的显示时间进行更新,能够将视频输入端下一帧的到达时间与更新后的视频显示端下一帧的显示时间的差值的绝对值控制在一个范围内,实现了对视频显示端延迟时间的调整。

在其中的一些实施例中,图3是根据本申请实施例的再一种调整显示延迟的方法的流程图,如图3所示,调整视频显示端的像素时钟,直到视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第二阈值之后,方法还包括如下步骤:

步骤S301,确定视频输入端的实际像素时钟。

步骤S302,将视频输入端的实际像素时钟作为视频显示端的默认像素时钟。

步骤S303,将视频显示端的像素时钟设置为默认像素时钟。

步骤S304,若在预设时间段内,视频输入端当前帧的到达时间与第一阈值的差值的绝对值均不小于第三阈值,调整视频显示端的像素时钟,直到视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第三阈值,其中,第三阈值小于第二阈值。

在本实施例中,若在预设时间段内,视频输入端当前帧的到达时间与第一阈值的差值的绝对值均小于第三阈值,则不用调整视频显示端的像素时钟,说明视频显示端当前的默认像素时钟为视频显示端的最优像素时钟。

在将视频显示端的像素时钟设置为默认像素时钟后,判断在预设时间段内视频输入端当前帧的到达时间与第一阈值的差值的绝对值是否小于第三阈值,若是,说明视频显示端当前的默认像素时钟为最优的默认像素,若否,说明视频显示端当前的默认像素时钟不是最优的默认像素,此时,需要再去调节视频显示端的像素时钟,直到视频显示端的像素时钟为最优默认像素时钟。

通过上述步骤,确定视频显示端的最优像素时钟,从而在一个较长的时间段内,视频输入端当前帧的到达时间与第一阈值的差值的绝对值均小于第三阈值,避免了去频繁的调整视频显示端的像素时钟。

在其中的一些实施例中,图4是根据本申请实施例的确定视频输入端的实际像素时钟的流程图,如图4所示,确定视频输入端的实际像素时钟包括如下步骤:

步骤S401,获取视频输入端的理论像素时钟、视频输入端的帧率、视频输入端接收m帧的理论耗时和视频输入端接收m帧的实际耗时,其中,m≥2。

步骤S402,根据视频输入端的理论像素时钟与视频输入端的帧率的乘积,得到第一结果值。

步骤S403,根据第一结果值与视频输入端接收m帧的实际耗时的乘积,得到第二结果值。

步骤S404,根据第二结果与视频输入端接收m帧的理论耗时的比值,得到视频输入端的实际像素时钟。

通过上述步骤,在通用的SOC芯片中,无法获取视频显示端的时序参数的情况下,考虑视频输入端的接收m帧的理论耗时、接收m帧的实际耗时和视频输入端的理论像素时钟,来计算视频输入端的实际像素时钟,能够更加精确地确定视频输入端的实际像素时钟。

在其中的一些实施例中,帧间时间间隔值根据视频输入端前n帧中各帧之间的时间间隔确定,具体包括:

帧间时间间隔值根据平均时间间隔和/或最大时间间隔确定,其中,平均时间间隔和最大时间间隔是根据视频输入端前n帧中各帧之间的时间间隔计算得到的。

在本实施例中,帧间时间间隔根据视频输入端前n帧的平均时间间隔和/或最大时间间隔确定,根据视频输入端当前帧的到达时间和视频输入端前n帧的平均时间间隔能够计算出视频输入端下一帧的到达时间,或者根据视频输入端当前帧的到达时间和视频输入端前n帧的最大时间间隔能够计算出视频输入端下一帧的到达时间。

根据帧间时间间隔值和视频显示端下一帧的显示时间,确定第一阈值,若视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第二阈值,说明视频输入端下一帧的到达时间与视频显示端下一帧的到达时间的差值的绝对值小于预设阈值,从而根据视频输入端当前帧的到达时间与第一阈值的差值的绝对值的大小就能确定视频显示端下一帧的到达时间与视频输入端下一帧的到达时间的间隔大小,根据间隔大小能够确定是视频显示端相对于视频输入端的延迟时间,从而根据此延迟时间大小来判断是否要对视频显示端的像素时钟进行调节。

通过上述方式,能够确定视频输入端当前帧的到达时间与视频输入端下一帧的到达时间的时间间隔值,根据此时间间隔值和视频输入端当前帧的到达时间,能够计算出视频输入端下一帧的到达时间,从而能够计算出视频输出端下一帧的到达时间与视频显示端下一帧的显示时间的差值的绝对值,根据此绝对值的大小能够判断视频显示端的延迟时间是否在一个合适的范围内,实现了对视频显示端延迟的调整。

在其中的一些实施例中,获取视频显示端下一帧的显示时间包括:

获取视频显示端的理论像素时钟、视频显示端的实际像素时钟和视频显示端的帧率,计算视频显示端输出每帧需要的时间;

根据视频显示端当前帧的显示时间和视频显示端输出每帧需要的时间,确定视频显示端下一帧的显示时间。

通过上述方式,根据视频显示端的理论像素时钟、视频显示端的实际像素时钟和视频显示端的帧率,能够精确地计算出视频显示端输出每帧需要的时间,在此基础上,根据视频显示端当前帧的显示时间和视频显示端输出每帧需要的时间,能够更加精确地确定视频显示端下一帧的显示时间。

在其中的一些实施例中,获取视频显示端当前帧的显示时间包括:

根据视频显示端当前帧的VSYNC信号,获取视频显示端当前帧的显示时间。

需要说明的是,VSYNC信号:屏幕的刷新过程是每一行从左到右,从上到下。当整个屏幕刷新完毕,即一个垂直刷新周期完成,会有短暂的空白期,此时发出VSYNC信号。

通过上述方式,在通用的SOC芯片中,无法获取视频显示端的时序参数的情况下,能够根据视频显示端当前帧的VSYNC信号,精确地确定视频显示端当前帧的显示时间。

图5是根据本申请实施例的又一种调整显示延迟的方法的流程图,如图5所示,该流程包括如下步骤:

步骤S501,根据平均时间间隔和/或最大时间间隔确定帧间时间间隔值。

在本实施例中,平均时间间隔和最大时间间隔是根据视频输入端前n帧中各帧之间的时间间隔计算得到的

步骤S502,根据视频显示端当前帧的VSYNC信号,获取视频显示端当前帧的显示时间。

步骤S503,获取视频显示端的理论像素时钟、视频显示端的实际像素时钟和视频显示端的帧率,计算视频显示端输出每帧需要的时间,根据视频显示端当前帧的显示时间和视频显示端输出每帧需要的时间,确定视频显示端下一帧的显示时间。

步骤S504,获取视频输入端当前帧的到达时间。

步骤S505,将视频显示端下一帧的显示时间与帧间时间间隔值的差值作为第一阈值。

步骤S506,若视频输入端当前帧的到达时间满足预设条件,则调整视频显示端的像素时钟,直到视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第二阈值。

在本实施例中,预设条件基于第一阈值、视频显示端下一帧的显示时间和视频显示端当前帧的显示时间而确定,视频显示端的像素时钟被调整会引起视频显示端下一帧的显示时间被更新。

在其中一个实施例中,视频输入端当前帧的到达时间满足预设条件包括:

视频输入端当前帧的到达时间减去第一阈值得到的差值不小于第二阈值,且视频输入端当前帧的到达时间不大于视频显示端下一帧的显示时间;或者,第一阈值减去视频输入端当前帧的到达时间得到的差值不小于第二阈值,且视频输入端当前帧的到达时间不小于视频显示端当前帧的显示时间。

在其中一个实施例中,调整视频显示端的像素时钟,直到视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第二阈值,具体包括:

调整视频显示端的像素时钟,得到更新后的视频显示端下一帧的显示时间;

获取视频输入端下一帧的到达时间;

根据帧间时间间隔值和更新后的视频显示端下一帧的显示时间,确定更新后的第一阈值;

若视频输入端下一帧的到达时间与更新后的第一阈值的差值的绝对值不小于第二阈值,再次执行调整视频显示端的像素时钟的步骤,直至视频输入端下一帧的到达时间与更新后的第一阈值的差值的绝对值小于第二阈值。

步骤S507,获取视频输入端的理论像素时钟、视频输入端的帧率、视频输入端接收m帧的理论耗时和视频输入端接收m帧的实际耗时,其中,m≥2。

步骤S508,根据视频输入端的理论像素时钟与视频输入端的帧率的乘积,得到第一结果值,根据第一结果值与视频输入端接收m帧的实际耗时的乘积,得到第二结果值,根据第二结果与视频输入端接收m帧的理论耗时的比值,得到视频输入端的实际像素时钟。

步骤S509,将视频输入端的实际像素时钟作为视频显示端的默认像素时钟,将视频显示端的像素时钟设置为默认像素时钟。

步骤S510,若在预设时间段内,视频输入端当前帧的到达时间与第一阈值的差值的绝对值均不小于第三阈值,调整视频显示端的像素时钟,直到视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第三阈值,其中,第三阈值小于第二阈值。

通过上述步骤,在视频输入端当前帧的到达时间满足预设条件的情况下,调整视频显示端的像素时钟,直到将视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第二阈值,第一阈值由帧间时间间隔值和视频显示端下一帧的显示时间确定,而根据视频输入端当前帧的到达时间和帧间时间间隔,能够计算出视频输入端下一帧的到达时间,因此,能将视频输入端下一帧的到达时间与视频显示端下一帧的显示时间的差值的绝对值控制在一个阈值范围内,解决了无法在通用的SOC芯片中调整视频显示端延迟时间的问题,降低了视频显示端的延迟时间。

需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。例如,步骤S501与步骤S502之间可以互换。

图6是根据本申请实施例的另一种调整显示延迟的方法的流程图,如图6所示,该调整显示延迟的方法包括如下步骤:

步骤S601,完成系统初始化,分配两个帧缓冲设备用于显示切换,开启高精度定时器,根据上层下发的任务,完成数据链路创建,视频输入端发送码流,完成数据预处理后,更新到备用显存。

需要说明的是,双缓冲framebuffer:双缓冲framebuffer是一种画图技术,使用这种技术可以使得画图没有闪烁、撕裂等不良效果,并减少等待时间。双缓冲framebuffer被映射进显存,通过更新地址完成显示切换。

在其中一个实施例中,根据上层下发的任务,完成数据链路创建包括:在单屏网络拉流时,需要创建解码资源、CSC资源和缩放资源等,假如有两个帧缓冲设备,分别为0号帧缓冲设备和1号帧缓冲设备,0号帧缓冲设备正作为显存输出,则数据存入1号帧缓冲设备。

步骤S602,根据视频显示端当前帧的VSYNC信号触发时间,获取视频显示端当前帧的显示时间,根据视频显示端下一帧的VSYNC信号触发时间,获取视频显示端下一帧的显示时间。

步骤S603,根据视频输入端当前帧写入帧缓冲设备的时间,获取视频输入端当前帧的到达时间。

步骤S604,统计视频输入端前n帧中的最大时间间隔值。

步骤S605,视频显示端下一帧的显示时间减去最大时间间隔值,得到第一阈值。

步骤S606,设置第二阈值,判断视频输入端当前帧的到达时间是否在[L1,L2]和[K1,K2]范围内,其中,L1是第一阈值与第二阈值的和,L2是视频显示端下一帧的显示时间,K1是视频显示端当前帧的显示时间,K2是第一阈值与第二阈值的差。

在本实施例中,每次VSYNC中断上报后,判断视频输入端当前帧的到达时间是否在[L1,L2]和[K1,K2]范围内,第二阈值根据实际情况进行设置,优选的,第二阈值可设置为1毫秒,若视频输入端当前帧的到达时间在[L1,L2]和[K1,K2]范围内,进入步骤S607,若视频输入端当前帧的到达时间不在[L1,L2]和[K1,K2]范围内,进入步骤S608。

步骤S607,调整视频显示端的像素时钟,直到视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第二阈值。

在本实施例中,若视频输入端当前帧的到达时间在[L1,L2]范围内,减慢视频显示端的像素时钟,若视频输入端当前帧的到达时间在[K1,K2]范围内,加快视频显示端的像素时钟。

根据视频输入端当前帧的到达时间与第一阈值的差值的绝对值的大小,将视频输入端当前帧的到达时间记为T2,第一阈值记为phase_diff,视频显示端当前帧的到达时间记为,视频显示端下一帧的到达时间记为,视频输入端前n帧中的最大时间间隔值记为max_diff,假设第二阈值为1ms,选择合适的调节值,加速/减慢视频显示端的像素时钟,最终调节的目标|T2-phase_diff|<1ms(phase_diff=T1-max_diff,帧接收间隔最大值max_diff)。

如果phase_diff+1<=T2<=T1,需要减少视频显示端的像素时钟,如果T0<=T2<=phase_diff-1,需要增大视频显示端的像素时钟,根据|T2-phase_diff|大小确定视频显示端调节像素时钟的大小,多次观察|T2-phase_diff|变化趋势,如与预想趋势一致,视频显示端的像素时钟暂不修改,不一致需要调大/调小视频显示端的像素时钟,直到|T2-phase_diff|<1ms。

在一个实施例中,设定视频显示端的像素时钟最大可调节值(如500KHZ)和每次调节的步阶(如5KHZ),在[email protected]码流的情况下,视频输入端的理论像素时钟为148.5MHZ,如果视频显示端的像素时钟增大500KHZ变为149MHZ,每秒可以多传输0.2帧(149000*60/148500),视频显示端理论每帧耗时1000s/60帧=16.67ms,实际每帧耗时1000s/60.2帧=16.61ms,1s内调节接近0.6ms,视频显示端平均每帧调节0.01ms(0.6/60)。

步骤S608,丢弃视频输入端当前帧。

在本实施例中,丢弃视频输入端当前帧后转至步骤S602。

步骤S609,获取视频输入端的理论像素时钟、视频输入端的帧率、视频输入端接收m帧的理论耗时和视频输入端接收m帧的实际耗时,其中,m≥2。

步骤S610,根据视频输入端的理论像素时钟与视频输入端的帧率的乘积,得到第一结果值,根据第一结果值与视频输入端接收m帧的实际耗时的乘积,得到第二结果值,根据第二结果与视频输入端接收m帧的理论耗时的比值,得到视频输入端的实际像素时钟。

在其中一个实施中,假设视频输入端的理论像素时钟为PLL(理论像素时钟为148.5MHZ),帧率为FPS,视频输入端每接收固定帧数统计一次耗时T1,视频输入端每接收固定帧数理论耗时T2,比如1080P60理论每接收60帧耗时1s,则实际像素时钟=PLL×T1×FPS/T2。

步骤S611,将视频输入端的实际像素时钟作为视频显示端的默认像素时钟。

步骤S612,判断在预设时间段内,视频输入端当前帧的到达时间与第一阈值的差值的绝对值是否小于第三阈值。

在本实施例中,第三阈值小于第二阈值,预设时间段可以设置为[3,8]分钟,但预设时间不限于此时间段,可以根据实际的情况来调整预设时间段,若视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第三阈值,则完成视频显示端像素时钟的调整,若视频输入端当前帧的到达时间与第一阈值的差值的绝对值不小于第三阈值,则进入步骤S609,统计视频输入端更多帧的理论耗时和实际耗时,重新计算视频输入端的实际像素时钟,直到视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第三阈值。

步骤S613,当前视频显示端的默认像素时钟作为最优像素时钟。

通过上述步骤,在视频输入端当前帧的到达时间在[L1,L2]和[K1,K2]范围内的情况下,调整视频显示端的像素时钟,直到将视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第二阈值,第一阈值由帧间时间间隔值和视频显示端下一帧的显示时间确定,而根据视频输入端当前帧的到达时间和帧间时间间隔,能够计算出视频输入端下一帧的到达时间,因此,能将视频输入端下一帧的到达时间与视频显示端下一帧的显示时间的差值的绝对值控制在一个阈值范围内,解决了无法在通用的SOC芯片中调整视频显示端延迟时间的问题,降低了视频显示端的延迟时间,另外,在将视频输入端下一帧的到达时间与视频显示端下一帧的显示时间的差值的绝对值控制在一个阈值范围内之后,确定视频显示端的最优像素时钟,从而在一个较长的时间段内,视频输入端当前帧的到达时间与第一阈值的差值的绝对值均小于第三阈值,避免了去频繁的调整视频显示端的像素时钟。

需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。例如,步骤S602与步骤S603之间可以互换。

在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

获取帧间时间间隔值、视频显示端下一帧的显示时间、视频显示端当前帧的显示时间和视频输入端当前帧的到达时间,其中,帧间时间间隔值根据视频输入端前n帧中各帧之间的时间间隔确定,n≥2。

根据帧间时间间隔值和视频显示端下一帧的显示时间,确定第一阈值。

若视频输入端当前帧的到达时间满足预设条件,则调整视频显示端的像素时钟,直到视频输入端当前帧的到达时间与第一阈值的差值的绝对值小于第二阈值,其中,预设条件基于第一阈值、视频显示端下一帧的显示时间和视频显示端当前帧的显示时间而确定,视频显示端的像素时钟被调整会引起视频显示端下一帧的显示时间被更新。

需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。

此外,结合上述实施例中提供的调整显示延迟的方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种调整显示延迟的方法。

应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。

显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。

“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。

以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:投屏方法和投屏系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类