一种视频传输处理方法与终端设备转让专利

申请号 : CN202211264205.1

文献号 : CN115348454B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 不公告发明人

申请人 : 此芯科技(上海)有限公司

摘要 :

本申请提供了一种视频传输处理方法与终端设备,涉及视频传输技术领域。首先获取初始化参数,其中,初始化参数包括第n‑1帧参数、第n帧参数、解码器参数以及显示器参数;其中,第n‑1帧为已解码视频帧,第n帧为待解码视频帧,且n≥2;然后依据初始化参数确定第n帧的目标片段建议值,并依据目标片段建议值生成控制显示器从缓存中读取第n帧视频帧的时间点;其中,视频解码器按片段对待解码视频帧进行解码,且每帧待解码视频帧均划分为多个片段。本申请提供的视频传输处理方法与终端设备具有缩短了视频传输延时的优点。

权利要求 :

1.一种视频传输处理方法,其特征在于,应用于终端设备的调控模块,所述终端设备还包括视频解码器、缓存以及显示器,所述缓存分别与所述解码器、所述显示器连接,所述调控模块分别与所述解码器、所述显示器通信连接;所述方法包括:获取初始化参数,其中,所述初始化参数包括第n‑1帧参数、第n帧参数、解码器参数以及显示器参数;其中,第n‑1帧为已解码视频帧,第n帧为待解码视频帧,且n≥2;

依据所述初始化参数确定第n帧的目标片段建议值,并依据所述目标片段建议值生成控制所述显示器从所述缓存中读取第n帧视频帧片段的时间点;其中,所述视频解码器按片段对待解码视频帧进行解码,且每帧待解码视频帧均划分为多个片段。

2.如权利要求1所述的视频传输处理方法,其特征在于,所述目标片段建议值满足公式:VSn=f(VBn‑1,VSn‑1,VSEn‑1,VEn‑1,DSn‑1,DVn‑1,DBn‑1,Tn‑1,Tn);

其中,f()表示函数,VSn表示第n帧的目标片段建议值,VBn‑1表示第n‑1帧开始解码的时间点,VSn‑1表示第n‑1帧的目标片段建议值,VSEn‑1表示第n‑1帧的目标片段完成解码的时间点,VEn‑1表示第n‑1帧完成解码的时间点,DSn‑1表示控制所述显示器从所述缓存中读取第n‑1帧视频帧片段的时间点;DVn‑1表示显示器实际开始从所述缓存中读取第n‑1帧视频帧的时间点,DBn‑1表示第n‑1帧开始显示图像数据的时间点,Tn‑1表示第n‑1帧的实际解码时间,Tn表示第n帧的预测解码时间。

3.如权利要求2所述的视频传输处理方法,其特征在于,所述第n帧的预测解码时间满足公式:Tn=f(Cn‑1,Cn,Tn‑1,Pn‑1,Pn,F)

其中,Tn表示第n帧的预测解码时间,Cn‑1表示第n‑1帧的压缩码流的大小,Cn表示第n帧压缩码流的大小,Pn‑1表示第n‑1帧的类型,Pn表示第n帧的类型,F表示视频解码器的类型。

4.如权利要求1所述的视频传输处理方法,其特征在于,依据所述目标片段建议值生成控制所述显示器从所述缓存中读取第n帧视频帧片段的时间点的步骤包括:将所述目标片段建议值发送至所述视频解码器;

当接收到所述视频解码器发送的目标片段解码完成信号时,确定控制所述显示器从所述缓存中读取第n帧视频帧片段的时间点。

5.如权利要求4所述的视频传输处理方法,其特征在于,控制所述显示器从所述缓存中读取第n帧视频帧片段的时间点满足公式:DSn=f(VSn,DSn‑1,DVn‑1)

其中,DSn表示控制所述显示器从所述缓存中读取第n帧视频帧片段的时间点,VSn表示接收到第n帧目标片段解码完成信号的时间点,DSn‑1表示控制所述显示器从所述缓存中读取第n‑1帧视频帧片段的时间点,DVn‑1表示显示器实际开始从所述缓存中读取第n‑1帧视频帧的时间点。

6.如权利要求1所述的视频传输处理方法,其特征在于,在依据所述目标片段建议值生成控制所述显示器从所述缓存中读取第n帧视频帧片段的时间点的步骤之后,所述方法还包括:当接收到视频解码器发送的第n帧完成解码信号时,判断是否存在下一待解码视频帧;

如果是,则重复执行获取初始化参数并依据所述初始化参数确定第n帧的目标片段建议值的步骤,直至所有待解码视频帧解码完成。

7.如权利要求1所述的视频传输处理方法,其特征在于,在所述获取初始化参数的步骤之前,所述方法还包括:判断当前待解码视频帧是否为第一帧;如果否,则执行获取初始化参数的步骤;如果是,则按预设值生成当前的目标片段建议值。

8.一种终端设备,其特征在于,所述终端设备包括视频解码器、缓存、显示器以及调控模块,所述缓存分别与所述解码器、所述显示器连接,所述调控模块分别与所述解码器、所述显示器通信连接;其中,所述视频解码器用于对待解码视频帧按片段进行解码;

所述调控模块用于获取初始化参数,依据所述初始化参数确定第n帧的目标片段建议值,并依据所述目标片段建议值生成控制所述显示器从所述缓存中读取第n帧视频帧片段的时间点;其中,所述初始化参数配置包括第n‑1帧参数、第n帧参数、解码器参数以及显示器参数;其中,n≥2;

所述显示器用于依据所述调控模块的时间点信号从所述缓存中开始读取第n帧视频帧片段。

9.如权利要求8所述的终端设备,其特征在于,每个所述视频帧片段均包括16a行,其中,a≥1。

10.如权利要求8所述的终端设备,其特征在于,所述调控模块包括计算单元、第一通信单元、第二通信单元以及控制单元,所述控制单元分别与所述计算单元、所述第一通信单元以及所述第二通信单元连接,所述第一通信单元用于连接视频解码器,所述第二通信单元用于连接显示器。

说明书 :

一种视频传输处理方法与终端设备

技术领域

[0001] 本申请涉及视频传输技术领域,具体而言,涉及一种视频传输处理方法与终端设备。

背景技术

[0002] 随着网络传输速度以及视频处理技术的快速发展,远程桌面,云电脑,云游戏等应用逐渐普及,这对缩短视频传输和显示延迟有了更高的要求。远程视频传输到终端设备后需要经过视频解码处理器解码后写到缓存(DMA‑buffer),然后通知显示处理器读取缓存并显示。图像从解码到显示的延迟是终端设备所重点关注的地方。除了单方面的提高解码速度外,图像从解码器到显示器的通知和传输也是一个新的突破点。
[0003] 现有技术中,图像从解码器传输到显示器通常需要等到解码完整帧并写到缓存后才通过上层软件通知显示端,因此,从视频解码到显示会出现至少一帧的延迟。
[0004] 综上,现有技术中存在视频传输延迟较大的问题。

发明内容

[0005] 本申请的目的在于提供一种视频传输处理方法与终端设备,以解决现有技术中存在的视频传输延迟较大的问题。
[0006] 为了实现上述目的,本申请实施例采用的技术方案如下:
[0007] 第一方面,本申请实施例提供了一种视频传输处理方法,应用于终端设备的调控模块,所述终端设备还包括视频解码器、缓存以及显示器,所述缓存分别与所述解码器、所述显示器连接,所述调控模块分别与所述解码器、所述显示器通信连接;所述方法包括:
[0008] 获取初始化参数,其中,所述初始化参数包括第n‑1帧参数、第n帧参数、解码器参数以及显示器参数;其中,第n‑1帧为已解码视频帧,第n帧为待解码视频帧,且n≥2;
[0009] 依据所述初始化参数确定第n帧的目标片段建议值,并依据所述目标片段建议值生成控制所述显示器从所述缓存中读取第n帧视频帧的时间点;其中,所述视频解码器按片段对待解码视频帧进行解码,且每帧待解码视频帧均划分为多个片段。
[0010] 可选地,所述目标片段建议值满足公式:
[0011] VSn=f(VBn‑1,VSn‑1,VSEn‑1,VEn‑1,DSn‑1,DVn‑1,DBn‑1,Tn‑1,Tn);
[0012] 其中,f()表示函数,VSn表示第n帧的目标片段建议值,VBn‑1表示第n‑1帧开始解码的时间点,VSn‑1表示第n‑1帧的目标片段建议值,VSEn‑1表示第n‑1帧的目标片段完成解码的时间点,VEn‑1表示第n‑1帧完成解码的时间点,DSn‑1表示控制所述显示器从所述缓存中读取第n‑1帧视频帧片段的时间点;DVn‑1表示显示器实际开始从所述缓存中读取第n‑1帧视频帧的时间点,DBn‑1表示第n‑1帧开始显示图像数据的时间点,Tn‑1表示第n‑1帧的实际解码时间,Tn表示第n帧的预测解码时间。
[0013] 可选地,所述第n帧的预测解码时间满足公式:
[0014] Tn=f(Cn‑1,Cn,Tn‑1,Pn‑1,Pn,F)
[0015] 其中,Tn表示第n帧的预测解码时间,Cn‑1表示第n‑1帧的压缩码流的大小,Cn表示第n帧压缩码流的大小,Pn‑1表示第n‑1帧的类型,Pn表示第n帧的类型,F表示视频解码器的类型。
[0016] 可选地,依据所述目标片段建议值生成控制所述显示器从所述缓存中读取第n帧视频帧片段的时间点的步骤包括:
[0017] 将所述目标片段建议值发送至所述视频解码器;
[0018] 当接收到所述视频解码器发送的目标片段解码完成信号时,确定控制所述显示器从所述缓存中读取第n帧视频帧片段的时间点。
[0019] 可选地,控制所述显示器从所述缓存中读取第n帧视频帧片段的时间点满足公式:
[0020] DSn=f(VSn,DSn‑1,DVn‑1)
[0021] 其中,DSn表示控制所述显示器从所述缓存中读取第n帧视频帧片段的时间点,VSn表示接收到第n帧目标片段解码完成信号的时间点,DSn‑1表示控制所述显示器从所述缓存中读取第n‑1帧视频帧片段的时间点,DVn‑1表示显示器实际开始从所述缓存中读取第n‑1帧视频帧的时间点。
[0022] 可选地,在依据所述目标片段建议值生成控制所述显示器从所述缓存中读取第n帧视频帧片段的时间点的步骤之后,所述方法还包括:
[0023] 当接收到视频解码器发送的第n帧完成解码信号时,判断是否存在下一待解码视频帧;
[0024] 如果是,则重复执行获取初始化参数并依据所述初始化参数确定第n帧的目标片段建议值的步骤,直至所有待解码视频帧解码完成。
[0025] 可选地,在所述获取初始化参数的步骤之前,所述方法还包括:
[0026] 判断当前待解码视频帧是否为第一帧;如果否,则执行获取初始化参数的步骤;如果是,则按预设值生成当前的目标片段建议值。
[0027] 另一方面,本申请实施例还提供了一种终端设备,所述终端设备包括视频解码器、缓存、显示器以及调控模块,所述缓存分别与所述解码器、所述显示器连接,所述调控模块分别与所述解码器、所述显示器通信连接;其中,
[0028] 所述视频解码器用于对待解码视频帧按片段进行解码;
[0029] 所述调控模块用于获取初始化参数,依据所述初始化参数确定第n帧的目标片段建议值,并依据所述目标片段建议值生成控制所述显示器从所述缓存中读取第n帧视频帧的时间点;其中,所述初始化参数配置包括第n‑1帧参数、第n帧参数、解码器参数以及显示器参数;其中,n≥2;
[0030] 所述显示器用于依据所述调控模块的时间点信号从所述缓存中开始读取第n帧视频帧。
[0031] 可选地,每个所述视频帧片段均包括16a行,其中,a≥1。
[0032] 可选地,所述调控模块包括计算单元、第一通信单元、第二通信单元以及控制单元,所述控制单元分别与所述计算单元、所述第一通信单元以及所述第二通信单元连接,所述第一通信单元用于连接视频解码器,所述第二通信单元用于连接显示器。
[0033] 相对于现有技术,本申请具有以下有益效果:
[0034] 本申请提供了一种视频传输处理方法与终端设备,该视频传输处理方法应用于终端设备的调控模块,终端设备还包括视频解码器、缓存以及显示器,缓存分别与解码器、显示器连接,调控模块分别与解码器、显示器通信连接,首先获取初始化参数,其中,初始化参数包括第n‑1帧参数、第n帧参数、解码器参数以及显示器参数;其中,第n‑1帧为已解码视频帧,第n帧为待解码视频帧,且n≥2;然后依据初始化参数确定第n帧的目标片段建议值,并依据目标片段建议值生成控制显示器从缓存中读取第n帧视频帧的时间点;其中,视频解码器按片段对待解码视频帧进行解码,且每帧待解码视频帧均划分为多个片段。一方面,由于本申请将待解码视频帧分为多个片段进行解码,因此其能够将延时从帧级别缩短至片段级别,有效缩短了视频传输延时。另一方面,通过增设调控模块,实时调控显示器从缓存中读取已解码视频帧的时间点,保证了视频帧读取时的连续性,避免出现超前读写或覆盖写入的情况,提升了视频显示的质量。
[0035] 为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

[0036] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
[0037] 图1为现有技术中提供的终端设备的模块示意图。
[0038] 图2为本申请实施例提供的终端设备的模块示意图。
[0039] 图3本申请实施例提供的视频传输处理方法的示例性流程图。
[0040] 图4本申请实施例提供的终端设备的信号传输示意图。
[0041] 110‑调控模块;120‑视频解码器;130‑显示器;140缓存。

具体实施方式

[0042] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
[0043] 因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0044] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0045] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0046] 在本申请的描述中,需要说明的是,术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
[0047] 在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
[0048] 下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
[0049] 正如背景技术中所述,现有技术中在进行视频传输时,图像从解码器传输到显示器通常需要等到解码完整帧并写到缓存后才通过上层软件通知显示端,因此,从视频解码到显示会出现至少一帧的延迟。
[0050] 例如,请参阅图1,在图像传输过程中,当终端设备接收到视频信号后,需要先经过视频解码处理器将视频数据进行解码,其中,视频数据包括未解码图像帧1、未解码图像帧2、未解码图像帧3…,当视频解码处理器解码后,需要将解码后的图像帧写到缓存,然后由显示器从缓存中依次读取已解码的图像帧1、图像帧2、图像帧3…。
[0051] 在此基础上,现有技术中,对于图像帧的读写方式一般以帧为单位,即当视频解码处理器解码图像帧1时,此时显示器无法从缓存中读取数据,当视频解码处理器已经解码图像帧1后,将解码后的图像帧1写入缓存,同时开始继续解码图像帧2,此时,显示器才从缓存中读取图像帧1进行显示;而当视频解码处理器已经解码图像帧2后,将解码后的图像帧2写入缓存,同时开始继续解码图像帧3,此时,显示器才从缓存中读取图像帧2进行显示,以此类推。
[0052] 可见,现有技术中的视频帧读写方式,至少存在一帧的延时,加之数据读写本身还存在一定延时、数据传输也存在一定延时,因此实际应用中,在视频帧读写过程中,其延时会大于一帧,导致延迟较大。
[0053] 目前,也有一些针对图像解码和显示同步进行的方案,但是在同步机制方面只是根据读写指针的地址进行检查和控制,对通知显示的时间点没有进行精确的计算,在不同的视频场景下容易出现超前读写或者覆盖写入的情况,也没有最大可能的缩短通知显示的延迟。
[0054] 有鉴于此,本申请实施例提供了一种视频传输处理方法,通过将每个视频帧均划分为多个片段,并同时设置调控模块控制显示器从缓存中读取视频帧片段的时间点的方式,缩短视频读写的延时,且不会出现超前读写或覆盖写入的情况。
[0055] 需要说明的是,该视频传输处理方法可以应用于终端设备的调控模块,请参阅图2,终端设备还包括视频解码器、缓存以及显示器,缓存分别与解码器、显示器连接,调控模块分别与解码器、显示器通信连接。其中,视频帧可以拆分成多个片段,视频解码器可以对视频帧按照片段进行解析,进而可以将视频传输处理过程中的读写延时从帧级别降低为片段级别。
[0056] 如图2中,将待解码图像帧n拆分为5个片段,分别为片段0、片段1、片段2、片段3以及片段4,当视频解码器将片段0解码后,将片段0存入缓存,同时继续解码片段1,显示器可以从缓存中读取已解码的数据进行显示。
[0057] 理论上,若视频解码器解码片段1时,显示器从缓存中读取片段0开始显示,则其延时仅为1个片段,当待解码图像帧n拆分为5个片段时,其延时可以缩短80%,大幅缩短了读写过程的延时。同时,视频解码器和显示器共用一个缓存,进而可以减少不必要的数据拷贝和延迟。
[0058] 作为一种实现方式,每个片段的行数需要与解码块的行数对齐,其行数可以为16a行,a≥1,例如,在将一帧图像拆分为多个片段时,每个片段可以为16行,也可以为32行,或者64行等,在此不做限定。可以理解地,每个片段的行数越小,其读写过程中延时可以达到更低。因此,本申请提供的每个片段的行数设置为16。在此基础上,当每个片段的行数设置后,每帧视频帧拆分的片段也固定,例如,每帧视频帧拆分的片段固定为400个。
[0059] 虽然每帧拆分的片段数量相同,但是,由于每帧类型的差异,每帧视频帧的压缩码流大小也并不相同,因此,每个片段需要解析的时长也并不相同,例如,对于I帧中每个片段解析所需时长需要大于P帧中每个片段的时长。
[0060] 在此基础上,若按照固定的延时控制显示器从缓存中读取已经解析的片段进行显示,显然并不能满足实际需求。例如,按照延时一个片段的方式控制显示器从缓存中读取数据,由于延时较短,因此若在某一帧中的解析中,某一片段的解析时长较长,则会导致其写入至缓存中时间点滞后,此过程中显示器无法从缓存中读取视频帧片段进行显示,导致显示过程不连续,容易出现花屏等情况。例如,片段A、片段B与片段C连续,设置的延时为1个片段,当解析片段A时,耗时1ms,当解析片段2时,耗时也是1ms,然而,片段C的数据量较大,解析耗时较长,其需要耗时3ms,因此,当显示器从缓存中读取数据时,第1ms时读取的片段A并进行显示,第2ms时读取的片段B并进行显示,而第3ms时,由于此时视频解码器正在对片段C进行解析,因此导致了显示器读取数据的中断,最终可能出现花屏的情况。
[0061] 若延时设置得过长,虽然能够保证显示器从缓存中连续读取已解析的视频帧片段,但可能其延时也已经接近帧级别,对于延时的缩短已无明显效果,且还容易出现覆盖写入的情况。
[0062] 因此,本申请通过设置调控模块,并利用调控模块控制显示器从缓存中读取已解码视频帧片段的时间点的方式,保证在不出现超前读写或者覆盖写入的情况下,尽可能地提前通知显示,以此达到缩短延迟的目的。
[0063] 下面对本申请提供的视频处理方法进行示例性说明:
[0064] 作为一种可选的实现方式,请参阅图3,该视频处理方法包括:
[0065] S102,获取初始化参数,其中,初始化参数包括第n‑1帧参数、第n帧参数、解码器参数以及显示器参数;其中,第n‑1帧为已解码视频帧,第n帧为待解码视频帧,且n≥2;
[0066] S104,依据初始化参数确定第n帧的目标片段建议值,并依据目标片段建议值生成控制显示器从缓存中读取第n帧视频帧的时间点;其中,视频解码器按片段对待解码视频帧进行解码,且每帧待解码视频帧均划分为多个片段。
[0067] 即本申请中,实际为通过调控模块获取相关初始化参数,然后根据初始化参数估算当前帧解码所需时长,并据此确定显示器从缓存中读取视频帧片段的时间点,以此尽可能的缩短延时。例如,当视频解码器解码第n‑1帧时,需要花费3ms,则在视频解码器解码至第10个片段时,调控模块控制显示器从缓存中开始读取已解码的视频片段并显示;当视频解码器解码第n帧时,需要花费9ms,则在视频解码器解码至第30个片段时,调控模块控制显示器从缓存中开始读取已解码的视频片段并显示。通过实时调控显示器从缓存中开始读取数据的时间点,保证在不出现超前读写或者覆盖写入的情况下,尽可能地提前通知显示,进而缩短视频传输延时。
[0068] 需要说明的是,一方面,由于调控模块分别与视频解码器与缓存器直接通信连接,因此可以直接进行数据传输,减少了数据同步过程中可能出现的延时,有利于进一步缩短视频传输处理的延时。另一方面,本申请提供的调控模块,可以为软件调控模块,也可以为硬件调控模块,在此不做限定。
[0069] 在一种可选的实现方式中,目标片段建议值满足公式:
[0070] VSn=f(VBn‑1,VSn‑1,VSEn‑1,VEn‑1,DSn‑1,DVn‑1,DBn‑1,Tn‑1,Tn);
[0071] 其中,f()表示函数,VSn表示第n帧的目标片段建议值,VBn‑1表示第n‑1帧开始解码的时间点,VSn‑1表示第n‑1帧的目标片段建议值,VSEn‑1表示第n‑1帧的目标片段完成解码的时间点,VEn‑1表示第n‑1帧完成解码的时间点,DSn‑1表示控制显示器从缓存中读取第n‑1帧视频帧片段的时间点;DVn‑1表示显示器实际开始从缓存中读取第n‑1帧视频帧的时间点,DBn‑1表示第n‑1帧开始显示图像数据的时间点,Tn‑1表示第n‑1帧的实际解码时间,Tn表示第n帧的预测解码时间。
[0072] 即本申请所述的目标片段建议值VSn分别与VBn‑1,VSn‑1,VSEn‑1,VEn‑1,DSn‑1,DVn‑1,DBn‑1,Tn‑1,Tn关联。在此基础上,当视频解码器需要解码视频帧时,会先将视频帧的相关信息发送至调控模块,以使调控模块参照上一帧的工作情况,结合当前帧的实际出参数,预估在当前帧处理时,显示器开始从缓存中读取数据的时间点。
[0073] 具体地,当视频解码器开始解码时,会向调控模块发送开始解码信号VBn,调控模块以接收到开始解码信号的时间点作为第n帧开始解码的时间点。同时,当第n帧解码完成后,会向调控模块发送完成解码信号,同理地,调控模块以接收到完成解码的时间点作为第n帧完成解码的时间点。
[0074] 并且,第n帧的预测解码时间满足公式:
[0075] Tn=f(Cn‑1,Cn,Tn‑1,Pn‑1,Pn,F)
[0076] 其中,Tn表示第n帧的预测解码时间,Cn‑1表示第n‑1帧的压缩码流的大小,Cn表示第n帧压缩码流的大小,Pn‑1表示第n‑1帧的类型,Pn表示第n帧的类型,F表示视频解码器的类型。
[0077] 即预测解码时间与压缩码流的大小、视频帧类型以及解码器类型关联。其中,视频帧类型包括I帧、B帧以及P帧(以H264为例),一般而言,I帧、B帧以及P帧的压缩码流大小不同,因此其解码所需时间不同,一般地,解码所需时间的关系为I帧>B帧>P帧。解码器的类型包括H264、HEVC、AV1等,针对不同类型,上述公式的函数关系可能不同。
[0078] 例如,在某一解码器工作时,P帧的压缩码流大小为20K,解码需要2ms,I帧的压缩码流大小为30K,解码需要3ms。
[0079] 并且,作为一种实现方式,依据目标片段建议值生成控制显示器从缓存中读取第n帧视频帧片段的时间点的步骤包括:
[0080] S1041,将目标片段建议值发送至视频解码器。
[0081] S142,当接收到视频解码器发送的目标片段解码完成信号时,确定控制显示器从缓存中读取第n帧视频帧片段的时间点。
[0082] 其中,调控模块在获取初始化参数后,会生成目标片段建议值VSn,并将目标片段建议值VSn发送至视频解码器,在视频解码器解码时,当解码至该目标片段时,则向调控模块发送目标片段完成解码信号VSEn,调控模块将接收到目标片段完成解码信号VSEn的时间点作为第n帧的目标片段完成解码的时间点,并向显示器发送控制信号DSn,以控制显示器从缓存中读取数据。
[0083] 可选地,控制显示器从缓存中读取第n帧视频帧片段的时间点满足公式:
[0084] DSn=f(VSn,DSn‑1,DVn‑1)
[0085] 其中,DSn表示控制显示器从缓存中读取第n帧视频帧片段的时间点,即显示切换时间点,VSn表示接收到第n帧目标片段解码完成信号的时间点,DSn‑1表示控制显示器从缓存中读取第n‑1帧视频帧片段的时间点,DVn‑1表示显示器实际开始从缓存中读取第n‑1帧视频帧的时间点。
[0086] 其中,显示器在接收到控制信号DSn后,会在下一个VSYNC时从缓存中读取第n帧视频帧片段,可以理解地,由于显示第n‑1帧需要一定时间,因此,虽然DSn表示的时间点与DVn表示的时间点相近但仍有一定的时间间隔,例如,DVn表示的时间点比DSn表示的时间点延后了零点几毫秒。在显示器的边框处,仍有一定黑框,因此,开始显示图像数据的时间点会晚于DVn表示的时间点,即DBn表示的时间点会晚于DVn表示的时间点。
[0087] 作为一种实现方式,在104之后,该方法还包括:
[0088] S106,当接收到视频解码器发送的第n帧完成解码信号时,判断是否存在下一待解码视频帧;
[0089] 如果是,则重复执行获取初始化参数并依据初始化参数确定第n帧的目标片段建议值的步骤,直至所有待解码视频帧解码完成。
[0090] 作为一种实现方式,在获取初始化参数的步骤之前,方法还包括:
[0091] S101‑1,判断当前待解码视频帧是否为第一帧;如果否,则执行获取初始化参数的步骤;如果是,执行S101‑2。
[0092] S101‑2,按预设值生成当前的目标片段建议值。
[0093] 基于上述实现方式,本申请实施例还提供了一种终端设备,该终端设备包括视频解码器、缓存、显示器以及调控模块,缓存分别与解码器、显示器连接,调控模块分别与解码器、显示器通信连接;其中,视频解码器用于对待解码视频帧按片段进行解码;调控模块用于获取初始化参数,依据初始化参数确定第n帧的目标片段建议值,并依据目标片段建议值生成控制显示器从缓存中读取第n帧视频帧的时间点;其中,初始化参数配置包括第n‑1帧参数、第n帧参数、解码器参数以及显示器参数;其中,n≥2;显示器用于依据调控模块的时间点信号从缓存中开始读取第n帧视频帧。
[0094] 可选地,每个视频帧片段均包括16a行,其中,a≥1。
[0095] 并且,调控模块包括计算单元、第一通信单元、第二通信单元以及控制单元,控制单元分别与计算单元、第一通信单元以及第二通信单元连接,第一通信单元用于连接视频解码器,第二通信单元用于连接显示器。
[0096] 综上,本申请提供了一种视频传输处理方法与终端设备,该视频传输处理方法应用于终端设备的调控模块,终端设备还包括视频解码器、缓存以及显示器,缓存分别与解码器、显示器连接,调控模块分别与解码器、显示器通信连接,首先获取初始化参数,其中,初始化参数包括第n‑1帧参数、第n帧参数、解码器参数以及显示器参数;其中,第n‑1帧为已解码视频帧,第n帧为待解码视频帧,且n≥2;然后依据初始化参数确定第n帧的目标片段建议值,并依据目标片段建议值生成控制显示器从缓存中读取第n帧视频帧片段的时间点;其中,视频解码器按片段对待解码视频帧进行解码,且每帧待解码视频帧均划分为多个片段。一方面,由于本申请将待解码视频帧分为多个片段进行解码,因此其能够将延时从帧级别缩短至片段级别,有效缩短了视频传输延时。另一方面,通过增设调控模块,实时调控显示器从缓存中读取已解码视频帧的时间点,保证了视频帧读取时的连续性,避免出现超前读写或覆盖写入的情况,提升了视频显示的质量。
[0097] 以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
[0098] 对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。