一种面向视频实时渲染的云端同步方法及系统与流程

未命名 10-16 阅读:84 评论:0


1.本发明涉及视频处理技术领域,具体涉及一种面向视频实时渲染的云端同步方法和一种面向视频实时渲染的云端同步系统。


背景技术:

2.所谓“虚拟拍摄”,就是在电影拍摄中,根据导演所要求的拍摄动作,将全部镜头都在电脑里的虚拟场景中进行拍摄。拍摄镜头所需的各种元素,包括场景、人物、灯光等,全部被整合进了电脑,然后,导演就可以根据自己的意图,在计算机上“指挥”角色的表演和动作,从任意角度运动镜头。
3.在虚拟拍摄中,常常会将渲染任务放在云端进行,若是云端为了提高实时渲染效果,可能需要将每一帧画面切分成若干子画面,并将不同子画面分配至不同的渲染设备进行渲染,然而由不同渲染设备完成同一画面帧的渲染虽然提高了渲染速率,但是由于不同渲染设备之间难以同步,会造成各子画面同步到播放设备的效果不佳,因此,对正常播放也造成了影响。从而,云端的渲染需要保证同步进行。实际上,现有技术中从云端渲染到渲染结果传输至播放设备的过程中,经常会出现由于时延等原因而导致的同步效果不佳。因此,本发明提出一种面向视频实时渲染的云端同步方法及系统,以提高同步效果,降低同步过程中的时间误差。


技术实现要素:

4.本发明的主要目的是提供一种面向视频实时渲染的云端同步方法和一种面向视频实时渲染的云端同步系统,旨在提高同步效果,降低同步过程中的时间误差。
5.为实现上述目的,本发明提出的一种面向视频实时渲染的云端同步方法中,云端与多个渲染节点通信连接,云端用于为渲染节点建立与播放设备的数据传输通道;所述方法包括如下步骤:获取画面帧在云端均匀切分成子画面的数量,以确定列数;获取画面帧的数量和空闲状态的渲染节点数量,以确定行数;根据列数和行数,建立用于排列各个空闲状态的渲染节点的矩阵;从历史数据中,获取各个空闲状态的渲染节点的渲染速率,并获取各个空闲状态的渲染节点向播放设备传输子画面的渲染结果的传输速率;根据各个空闲状态的渲染节点的渲染速率和传输速率,拟合成各个渲染节点的理论时钟参数;将理论时钟参数最相近的渲染节点排布于所述矩阵中的同一行,以形成排列好的各个矩阵行单元;按照平均理论时钟参数从大到小的顺序,依次排列各个矩阵行单元,以形成渲染节点处理矩阵;将画面帧发送至云端,按照画面帧的帧顺序依次将各个画面帧分配至各个矩阵行
单元;按照每个画面帧的切分数量,将切分后的子画面一一对应地发送至每个矩阵行单元的渲染节点进行渲染处理;各个渲染节点将子画面的渲染结果发送至播放设备进行播放。
6.优选地,所述方法,还包括:记录播放设备接收各个渲染节点的子画面的渲染结果的接收时间;根据接收时间,确定各个矩阵行单元中的渲染节点的实际时钟参数;根据实际时钟参数更新矩阵行单元;依次排列各个更新后的矩阵行单元,以更新所述渲染节点处理矩阵。
7.优选地,所述根据各个空闲状态的渲染节点的渲染速率和传输速率,拟合成各个渲染节点的理论时钟参数的步骤,包括:以各个空闲状态的渲染节点根据历史平均渲染速率渲染子画面的预测时间作为理论渲染时长;以各个空闲状态的渲染节点根据历史平均传输速率传输子画面的预测时间作为理论传输时长;根据理论渲染时长和理论传输时长,确定每个空闲状态的渲染节点的理论时钟参数。
8.优选地,所述根据接收时间,确定各个矩阵行单元中的渲染节点的实际时钟参数的步骤,包括:获取所述渲染节点处理矩阵中的各个渲染节点实际渲染子画面过程中的实际渲染时长和实际传输子画面渲染结果过程中的实际传输时长;根据实际渲染时长和实际传输时长,确定所述渲染节点处理矩阵中的每个渲染节点的实际时钟参数;所述根据实际时钟参数更新矩阵行单元的步骤,包括:将所述渲染节点处理矩阵上的各个渲染节点均布于参照网格中;根据实际时钟参数与理论时钟参数的偏移量,确定所述渲染节点处理矩阵中的各个渲染节点在参照网格中的纵向偏移,根据纵向偏移,形成渲染节点稳定性矩阵,根据稳定性矩阵,调整各个矩阵行单元中的渲染节点,以更新渲染节点处理矩阵。
9.优选地,所述根据实际时钟参数与理论时钟参数的偏移量,确定所述渲染节点处理矩阵中的各个渲染节点在参照网格中的纵向偏移,根据纵向偏移,形成渲染节点稳定性矩阵,根据稳定性矩阵,调整各个矩阵行单元中的渲染节点,以更新渲染节点处理矩阵的步骤,包括:以各个渲染节点的偏移量均值,作为参照网格中任意相邻两行渲染节点之间的间隔尺度;获取各个渲染节点的偏移量与偏移量均值的比值,将所述比值作为每个渲染节点的纵向偏移数值;获取各个渲染节点的偏移量的方向;根据每个渲染节点的纵向偏移数值和偏移量的方向,在所述参照网格中将各个所述渲染节点进行纵向偏移;
根据各个渲染节点在所述参照网格中的纵向偏移量,调整各个矩阵行单元中的渲染节点;根据各个矩阵行单元中的渲染节点的调整结果,更新渲染节点处理矩阵。
10.优选地,所述获取画面帧的数量和空闲状态的渲染节点数量,以确定行数的步骤,包括:获取空闲状态的渲染节点数量与列数的商;获取画面帧的数量;根据画面帧与所述商中的较小值,以较小值确定行数。
11.优选地,所述方法,还包括:根据理论时钟参数最相近的空闲状态的渲染节点的分布情况,确定空闲状态的渲染节点排列成矩阵行单元的多种情况,其中,每种情况的矩阵行单元对应的渲染节点数量不同;获取渲染节点数量最多的优选矩阵行单元;根据优选矩阵行单元的渲染节点数量,确定画面帧均匀切分数量。
12.优选地,参照如下方式更新渲染节点处理矩阵:;其中,c为渲染节点处理矩阵,为处于渲染节点处理矩阵中第i行第j列的渲染节点;,i为渲染节点处理矩阵的行数,j为渲染节点处理矩阵的列数;;;其中,为渲染节点处理矩阵中处于第i行第j列的渲染节点的实际时钟参数,为渲染节点处理矩阵中处于第i行第j列的渲染节点的子画面的实际渲染时长,为渲染节点处理矩阵中处于第i行第j列的渲染节点的子画面的渲染结果的实际传输时长;为渲染节点处理矩阵中处于第i行第j列的渲染节点的理论时钟参数;为渲染节点处理矩阵中处于第i行第j列的渲染节点的子画面的理论渲染时长,为渲染节点处理矩阵中处于第i行第j列的渲染节点的子画面的渲染结果的理论传输时长;;
为渲染节点处理矩阵中处于第i行第j列的渲染节点的偏移量;;为渲染节点处理矩阵中各个渲染节点的偏移量均值;;为渲染节点处理矩阵中处于第i行第j列的渲染节点的纵向偏移数值,其中纵向偏移数值为正数代表往上方偏移,纵向偏移数值为负数代表往下方偏移;;其中,y为渲染节点处理矩阵中各个渲染节点的纵向偏移数值的集合;;其中,d为各个渲染节点形成的稳定性矩阵,为对集合y中所有元素从大到小排序后,排列于稳定性矩阵中第i行第j列的渲染节点;获取每个渲染节点在渲染节点处理矩阵中的第一行序号,与在稳定性矩阵中的第二行序号;当存在第一行序号与第二行序号的差值超过设定值的不稳定渲染节点时,将不稳定渲染节点转移至渲染节点处理矩阵的末尾矩阵行单元,并将渲染节点处理矩阵中的其他渲染节点顺次前移,以调整各个矩阵行单元中的渲染节点;根据各个矩阵行单元中的渲染节点的调整结果,更新渲染节点处理矩阵。
13.优选地,参照如下方式确定画面帧均匀切分数量:;其中,为第q个空闲状态的渲染节点的理论时钟参数;为第q个空闲状态的渲染节点对标准子画面的理论渲染时长,为第q个空闲状态的渲染节点对标准子画面的渲染结果的理论传输时长;,q为空闲状态的渲染节点的数量;
;其中,h为对各个空闲状态的渲染节点的理论时钟参数从大到小排序形成的集合,为集合h中的第z个理论时钟参数,;;;则:;其中,;取能够使上述公式成立的最大正整数;为同一矩阵行单元中允许的最大偏差,为设定值;为集合h中的第f个理论时钟参数,为集合h中的第个理论时钟参数;集合h中的第个理论时钟参数,集合h中的第个理论时钟参数;n为不小于0的整数;j为画面帧均匀切分数量,即列数。
14.此外,为实现上述目的,本发明还提出一种面向视频实时渲染的云端同步系统,用于执行所述方法;所述系统包括云端和分别与所述云端通信连接的多个渲染节点,云端用于为渲染节点建立与播放设备的数据传输通道。
15.本发明的技术方案中,在云端还未接收到画面帧之前,先建立渲染节点处理矩阵,其中,渲染节点处理矩阵的每一行中包括多个渲染节点,同一矩阵行单元中的各个渲染节点的理论时钟参数最相近,也就是同一矩阵行单元中的渲染节点根据历史数据计算出的渲染速率和传输速率最为接近,从而,有利于同一画面帧通过同一矩阵行单元中的渲染节点进行并行渲染和传输至播放设备时,保持时间上的同步性最强;而对于各个矩阵行单元的排列,是按照平均理论时钟参数从大到小的顺序依次排列,这样排列的好处是,渲染速率和传输速率快的渲染节点能够优先处理帧顺序处于前列的画面帧,从而在实时渲染的过程中,前面的画面帧处理速度更快,有利于给后续的画面帧渲染预留足够的时长。由于本发明在正式开始接收画面帧进行渲染之前,已经搭建起了渲染节点处理矩阵,而渲染节点处理矩阵有利于实现每一画面帧的各个子画面的同步效果,所以当云端接收到画面帧时,只需要按渲染节点处理矩阵的行顺序,依次将各个画面帧分配到不同的矩阵行单元,而分配到矩阵行单元后,按照每一矩阵行单元的渲染节点数量完成画面帧的均匀拆分,拆分后依次分配到同一矩阵行单元的不同渲染节点进行并行渲染和向播放设备并行传输即可。因此,本发明通过渲染节点处理矩阵的构造,实现了每一画面帧的同步并行渲染,并且将画面帧分配到渲染节点的过程不是随机分配的过程,而是在搭建好渲染节点处理矩阵后,按照渲染节点处理矩阵的行顺序来分配画面帧渲染顺序,有利于节省渲染过程中的计算和分配资
源,提高渲染速率。因此,本发明有利于提高同步效果,降低同步渲染的时间误差。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
17.图1为本发明面向视频实时渲染的云端同步方法一实施例的流程图。
具体实施方式
18.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
20.另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
21.请参阅图1,本发明的面向视频实时渲染的云端同步方法的第一实施例中,云端与多个渲染节点通信连接,云端用于为渲染节点建立与播放设备的数据传输通道;所述方法包括如下步骤:步骤s10,获取画面帧在云端均匀切分成子画面的数量,以确定列数;步骤s20,获取画面帧的数量和空闲状态的渲染节点数量,以确定行数;步骤s30,根据列数和行数,建立用于排列各个空闲状态的渲染节点的矩阵;步骤s40,从历史数据中,获取各个空闲状态的渲染节点的渲染速率,并获取各个空闲状态的渲染节点向播放设备传输子画面的渲染结果的传输速率;步骤s50,根据各个空闲状态的渲染节点的渲染速率和传输速率,拟合成各个渲染节点的理论时钟参数;步骤s60,将理论时钟参数最相近的渲染节点排布于所述矩阵中的同一行,以形成排列好的各个矩阵行单元;步骤s70,按照平均理论时钟参数从大到小的顺序,依次排列各个矩阵行单元,以形成渲染节点处理矩阵;步骤s80,将画面帧发送至云端,按照画面帧的帧顺序依次将各个画面帧分配至各个矩阵行单元;步骤s90,按照每个画面帧的切分数量,将切分后的子画面一一对应地发送至每个矩阵行单元的渲染节点进行渲染处理;
步骤s100,各个渲染节点将子画面的渲染结果发送至播放设备进行播放。
22.本发明的技术方案中,在云端还未接收到画面帧之前,先建立渲染节点处理矩阵,其中,渲染节点处理矩阵的每一行中包括多个渲染节点,同一矩阵行单元中的各个渲染节点的理论时钟参数最相近,也就是同一矩阵行单元中的渲染节点根据历史数据计算出的渲染速率和传输速率最为接近,从而,有利于同一画面帧通过同一矩阵行单元中的渲染节点进行并行渲染和传输至播放设备时,保持时间上的同步性最强;而对于各个矩阵行单元的排列,是按照平均理论时钟参数从大到小的顺序依次排列,这样排列的好处是,渲染速率和传输速率快的渲染节点能够优先处理帧顺序处于前列的画面帧,从而在实时渲染的过程中,前面的画面帧处理速度更快,有利于给后续的画面帧渲染预留足够的时长。由于本发明在正式开始接收画面帧进行渲染之前,已经搭建起了渲染节点处理矩阵,而渲染节点处理矩阵有利于实现每一画面帧的各个子画面的同步效果,所以当云端接收到画面帧时,只需要按渲染节点处理矩阵的行顺序,依次将各个画面帧分配到不同的矩阵行单元,而分配到矩阵行单元后,按照每一矩阵行单元的渲染节点数量完成画面帧的均匀拆分,拆分后依次分配到同一矩阵行单元的不同渲染节点进行并行渲染和向播放设备并行传输即可。因此,本发明通过渲染节点处理矩阵的构造,实现了每一画面帧的同步并行渲染,并且将画面帧分配到渲染节点的过程不是随机分配的过程,而是在搭建好渲染节点处理矩阵后,按照渲染节点处理矩阵的行顺序来分配画面帧渲染顺序,有利于节省渲染过程中的计算和分配资源,提高渲染速率。因此,本发明有利于提高同步效果,降低同步渲染的时间误差。
23.进一步的,云端用于为渲染节点建立与播放设备的数据传输通道;具体的,云端按照默认的传输通道参数,在分配到子画面的渲染节点与播放设备之间建立数据传输通道。
24.由于云端建立的数据传输通道具有默认的传输通道参数,因此,渲染节点向播放设备之间传输子画面渲染结果的传输条件是相同的。
25.具体的,云端在为分配到子画面的渲染节点与播放设备之间建立数据传输通道时,可以具体采用如下方式:将渲染节点处理矩阵中的至少一个列作为同一组渲染节点,即同一组渲染节点至少形成一个列。
26.获取渲染节点处理矩阵中,位于同一组的各个渲染节点,位于同一组的各个渲染节点采用相同的数据传输通道,位于不同组的各个渲染节点采用不同的数据传输通道。在同一数据传输通道传输多个渲染节点的数据时,根据每个渲染节点对应的矩阵行单元的顺序先后(即画面的帧顺序先后)确定数据传输的第一优先级;当矩阵行单元相同时,根据每个渲染节点对应的矩阵列单元的顺序先后确定数据传输的第二优先级;根据第一优先级排列传输顺序,当第一优先级相同时,根据第二优先级排列传输顺序,从而,在对应的数据传输通道对同一组渲染节点中,每个渲染节点的渲染结果形成发送队列,以使帧顺序靠前的子画面优先发送至播放设备。
27.基于本发明的第一实施例,本发明的第二实施例中,所述方法,还包括:步骤s110,记录播放设备接收各个渲染节点的子画面的渲染结果的接收时间;步骤s120,根据接收时间,确定各个矩阵行单元中的渲染节点的实际时钟参数;步骤s130,根据实际时钟参数更新矩阵行单元;步骤s140,依次排列各个更新后的矩阵行单元,以更新所述渲染节点处理矩阵。
28.具体的,当空闲状态的渲染节点排列成的渲染节点处理矩阵中各个矩阵行单元均分配到画面帧后,会随着矩阵行单元的顺序,从第一个矩阵行单元开始,进行第二轮画面帧的分配,直至画面帧通过若干轮分配,实现分配完成。
29.在各个渲染节点分配到画面帧的子画面后,会开始进行渲染处理,并将渲染结果发送至播放设备。
30.根据各个渲染节点的实际时钟参数,对渲染节点处理矩阵中的排序进行校正,以排列形成第二渲染节点处理矩阵。
31.在第二渲染节点处理矩阵形成后,按照画面帧的排序,将还未被分配至矩阵行单元的画面帧按照帧顺序,分配至第二渲染节点处理矩阵中的各个矩阵行单元。
32.基于本发明的第二实施例,本发明的第三实施例中,所述步骤s50,包括:步骤s51,以各个空闲状态的渲染节点根据历史平均渲染速率渲染子画面的预测时间作为理论渲染时长;步骤s52,以各个空闲状态的渲染节点根据历史平均传输速率传输子画面的预测时间作为理论传输时长;步骤s53,根据理论渲染时长和理论传输时长,确定每个空闲状态的渲染节点的理论时钟参数。
33.具体的,每个渲染节点可以为一个计算机终端。每个计算机终端根据自身的资源与配置情况,具有不同的渲染速率和不同的传输速率。
34.本实施例中,根据历史数据,确定各个渲染节点的历史平均渲染速率,根据历史平均渲染速率以及当前子画面的渲染任务量,确定渲染节点渲染子画面的预测时间,该预测时间为理论渲染时长。
35.本实施例中,根据历史数据,确定各个渲染节点的历史平均传输速率,根据历史平均传输速率以及当前子画面的渲染结果的数据大小,确定渲染节点传输子画面的渲染结果的预测时间,该预测时间为理论传输时长。
36.本实施例中,根据理论渲染时长和理论传输时长之和,确定每个空闲状态的渲染节点的理论时钟参数,理论始终参数的意义是:从子画面分配至渲染节点开始,至播放设备成功接收子画面的渲染结果所需的理论时长。
37.基于本发明的第三实施例,本发明的第四实施例中,所述步骤s120,包括:步骤s1201,获取所述渲染节点处理矩阵中的各个渲染节点实际渲染子画面过程中的实际渲染时长和实际传输子画面渲染结果过程中的实际传输时长;步骤s1202,根据实际渲染时长和实际传输时长,确定所述渲染节点处理矩阵中的每个渲染节点的实际时钟参数;所述步骤s130,包括:步骤s1301,将所述渲染节点处理矩阵上的各个渲染节点均布于参照网格中;步骤s1302,根据实际时钟参数与理论时钟参数的偏移量,确定所述渲染节点处理矩阵中的各个渲染节点在参照网格中的纵向偏移,根据纵向偏移,形成渲染节点稳定性矩阵,根据稳定性矩阵,调整各个矩阵行单元中的渲染节点,以更新渲染节点处理矩阵。
38.具体的,实际时钟参数,指的是从子画面分配至渲染节点开始,至播放设备成功接收子画面的渲染结果所需的实际时长。
39.本实施例中,参照网格中形成有间隔均匀的多行网格线,与间隔均匀的多列网格线,以通过多行网格线和多列网格线排列成均匀的网格。
40.将渲染节点处理矩阵上的各个渲染节点均布于参照网格中,具体指的是,将每一矩阵行单元中的各个渲染节点均匀排列至参照网格的同一行中,并保持每一矩阵行单元之间的间距相等。例如,参照网格中形成有多行网格单元,同一矩阵行单元中的渲染节点依次置于同一行网格单元的各个网格中,不同矩阵行单元依次排列至不同行的网格单元中。
41.将所述渲染节点处理矩阵上的各个渲染节点均布于参照网格中的目的是,使得渲染节点处理矩阵上的各个渲染节点等间距的在参照网格中分布,其中,等间距包括:相邻两行的渲染节点间距相等,相邻两列的渲染节点间距也相同。
42.由于渲染节点处理矩阵在初始条件下,是按照历史传输速率与历史渲染速率对各个空闲渲染节点排列形成的。因此,在当前的实时渲染过程中,各个空闲渲染节点的实时渲染表现与实时传输表现可能会与历史数据存在一定区别,从而,本实施例需要根据实际数据,体现各个渲染节点的实时表现与历史表现之间的偏移程度,从而根据偏移程度确定各个渲染节点的性能稳定性,根据性能稳定性,调整渲染节点处理矩阵,以使本发明中的渲染节点处理矩阵达到更优的实时渲染同步效果。
43.基于本发明的第四实施例,本发明的第五实施例中,所述步骤s1302,包括:步骤s1302a,以各个渲染节点的偏移量均值,作为参照网格中任意相邻两行渲染节点之间的间隔尺度;步骤s1302b,获取各个渲染节点的偏移量与偏移量均值的比值,将所述比值作为每个渲染节点的纵向偏移数值;步骤s1302c,获取各个渲染节点的偏移量的方向;步骤s1302d,根据每个渲染节点的纵向偏移数值和偏移量的方向,在所述参照网格中将各个所述渲染节点进行纵向偏移;步骤s1302e,根据各个渲染节点在所述参照网格中的纵向偏移量,调整各个矩阵行单元中的渲染节点;步骤s1302f,根据各个矩阵行单元中的渲染节点的调整结果,更新渲染节点处理矩阵。
44.具体的,参照如下方式更新渲染节点处理矩阵:;其中,c为渲染节点处理矩阵,为处于渲染节点处理矩阵中第i行第j列的渲染节点;,i为渲染节点处理矩阵的行数,j为渲染节点处理矩阵的列数;;
;其中,为渲染节点处理矩阵中处于第i行第j列的渲染节点的实际时钟参数,为渲染节点处理矩阵中处于第i行第j列的渲染节点的子画面的实际渲染时长,为渲染节点处理矩阵中处于第i行第j列的渲染节点的子画面的渲染结果的实际传输时长;为渲染节点处理矩阵中处于第i行第j列的渲染节点的理论时钟参数;为渲染节点处理矩阵中处于第i行第j列的渲染节点的子画面的理论渲染时长,为渲染节点处理矩阵中处于第i行第j列的渲染节点的子画面的渲染结果的理论传输时长;;为渲染节点处理矩阵中处于第i行第j列的渲染节点的偏移量;;为渲染节点处理矩阵中各个渲染节点的偏移量均值;;为渲染节点处理矩阵中处于第i行第j列的渲染节点的纵向偏移数值,其中纵向偏移数值为正数代表往上方偏移,纵向偏移数值为负数代表往下方偏移;;其中,y为渲染节点处理矩阵中各个渲染节点的纵向偏移数值的集合;;其中,d为各个渲染节点形成的稳定性矩阵,为对集合y中所有元素从大到小排序后,排列于稳定性矩阵中第i行第j列的渲染节点;获取每个渲染节点在渲染节点处理矩阵中的第一行序号,与在稳定性矩阵中的第二行序号;
当存在第一行序号与第二行序号的差值超过设定值的不稳定渲染节点时,将不稳定渲染节点转移至渲染节点处理矩阵的末尾矩阵行单元,并将渲染节点处理矩阵中的其他渲染节点顺次前移,以调整各个矩阵行单元中的渲染节点;根据各个矩阵行单元中的渲染节点的调整结果,更新渲染节点处理矩阵。
45.具体的,当存在第一行序号与第二行序号的差值超过设定值的不稳定渲染节点时,表明该不稳定渲染节点的性能偏移较大,难以保证与同一矩阵行单元的渲染节点同步,所以需要将该渲染节点调整到渲染节点处理矩阵的末尾矩阵行单元。
46.基于本发明的第一实施例至第五实施例,本发明的第六实施例中,所述步骤s20,包括:步骤s21,获取空闲状态的渲染节点数量与列数的商;步骤s22,获取画面帧的数量;步骤s23,根据画面帧与所述商中的较小值,以较小值确定行数。
47.具体的,矩阵的列数是根据每一画面帧均匀切分成子画面的数量确定的,而矩阵的行数有两种方式确定:第一种方式是在视频包含的画面帧较少的情况下,直接以画面帧的数量确定行数,但这种方式下,要求空闲状态的渲染节点数量足够多,空闲状态的渲染节点数量必须超过画面帧数量与画面帧切分数量的乘积;这种情况下,视频中的画面帧从矩阵的第一行排至最后一行即可分配完成。
48.第二种方式是在空闲状态的渲染节点数量不够多的情况下,直接将空闲节点数量按照列数排列成若干行,直至一行中无法排满为止,此时,视频中的画面帧从矩阵的第一行排至最后一行还没有分配完成,则继续从矩阵的第一行排至最后一行完成第二轮分配,如此进行若干轮分配,直至视频的画面帧都分配到对应的矩阵行单元。
49.具体的,行数确定方式的计算方式如下:;其中,q为空闲状态的渲染节点数量,j为列数,s为空闲状态的渲染节点数量与列数的商,k为空闲状态的渲染节点数量与列数的余数;;其中,w为画面帧的数量;i为行数。
50.基于本发明的第一实施例至第六实施例,本发明的第七实施例中,所述方法,还包括:步骤s21,根据理论时钟参数最相近的空闲状态的渲染节点的分布情况,确定空闲状态的渲染节点排列成矩阵行单元的多种情况,其中,每种情况的矩阵行单元对应的渲染节点数量不同;步骤s22,获取渲染节点数量最多的优选矩阵行单元;步骤s23,根据优选矩阵行单元的渲染节点数量,确定画面帧均匀切分数量。
51.具体的,参照如下方式确定画面帧均匀切分数量:;
其中,为第q个空闲状态的渲染节点的理论时钟参数;为第q个空闲状态的渲染节点对标准子画面的理论渲染时长,为第q个空闲状态的渲染节点对标准子画面的渲染结果的理论传输时长;,q为空闲状态的渲染节点的数量;;其中,h为对各个空闲状态的渲染节点的理论时钟参数从大到小排序形成的集合,为集合h中的第z个理论时钟参数,;;;则:;其中,;取能够使上述公式成立的最大正整数;为同一矩阵行单元中允许的最大偏差,为设定值;为集合h中的第f个理论时钟参数,为集合h中的第个理论时钟参数;集合h中的第个理论时钟参数,集合h中的第个理论时钟参数;n为不小于0的整数;j为画面帧均匀切分数量,即列数。
52.此外,为实现上述目的,本发明还提出一种面向视频实时渲染的云端同步系统,用于执行所述方法;所述系统包括云端和分别与所述云端通信连接的多个渲染节点,云端用于为渲染节点建立与播放设备的数据传输通道。
53.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

技术特征:
1.一种面向视频实时渲染的云端同步方法,其特征在于,云端与多个渲染节点通信连接,云端用于为渲染节点建立与播放设备的数据传输通道;所述方法包括如下步骤:获取画面帧在云端均匀切分成子画面的数量,以确定列数;获取画面帧的数量和空闲状态的渲染节点数量,以确定行数;根据列数和行数,建立用于排列各个空闲状态的渲染节点的矩阵;从历史数据中,获取各个空闲状态的渲染节点的渲染速率,并获取各个空闲状态的渲染节点向播放设备传输子画面的渲染结果的传输速率;根据各个空闲状态的渲染节点的渲染速率和传输速率,拟合成各个渲染节点的理论时钟参数;将理论时钟参数最相近的渲染节点排布于所述矩阵中的同一行,以形成排列好的各个矩阵行单元;按照平均理论时钟参数从大到小的顺序,依次排列各个矩阵行单元,以形成渲染节点处理矩阵;将画面帧发送至云端,按照画面帧的帧顺序依次将各个画面帧分配至各个矩阵行单元;按照每个画面帧的切分数量,将切分后的子画面一一对应地发送至每个矩阵行单元的渲染节点进行渲染处理;各个渲染节点将子画面的渲染结果发送至播放设备进行播放。2.根据权利要求1所述的面向视频实时渲染的云端同步方法,其特征在于,所述方法,还包括:记录播放设备接收各个渲染节点的子画面的渲染结果的接收时间;根据接收时间,确定各个矩阵行单元中的渲染节点的实际时钟参数;根据实际时钟参数更新矩阵行单元;依次排列各个更新后的矩阵行单元,以更新所述渲染节点处理矩阵。3.根据权利要求2所述的面向视频实时渲染的云端同步方法,其特征在于,所述根据各个空闲状态的渲染节点的渲染速率和传输速率,拟合成各个渲染节点的理论时钟参数的步骤,包括:以各个空闲状态的渲染节点根据历史平均渲染速率渲染子画面的预测时间作为理论渲染时长;以各个空闲状态的渲染节点根据历史平均传输速率传输子画面的预测时间作为理论传输时长;根据理论渲染时长和理论传输时长,确定每个空闲状态的渲染节点的理论时钟参数。4.根据权利要求3所述的面向视频实时渲染的云端同步方法,其特征在于,所述根据接收时间,确定各个矩阵行单元中的渲染节点的实际时钟参数的步骤,包括:获取所述渲染节点处理矩阵中的各个渲染节点实际渲染子画面过程中的实际渲染时长和实际传输子画面渲染结果过程中的实际传输时长;根据实际渲染时长和实际传输时长,确定所述渲染节点处理矩阵中的每个渲染节点的实际时钟参数;所述根据实际时钟参数更新矩阵行单元的步骤,包括:
将所述渲染节点处理矩阵上的各个渲染节点均布于参照网格中;根据实际时钟参数与理论时钟参数的偏移量,确定所述渲染节点处理矩阵中的各个渲染节点在参照网格中的纵向偏移,根据纵向偏移,形成渲染节点稳定性矩阵,根据稳定性矩阵,调整各个矩阵行单元中的渲染节点,以更新渲染节点处理矩阵。5.根据权利要求4所述的面向视频实时渲染的云端同步方法,其特征在于,所述根据实际时钟参数与理论时钟参数的偏移量,确定所述渲染节点处理矩阵中的各个渲染节点在参照网格中的纵向偏移,根据纵向偏移,形成渲染节点稳定性矩阵,根据稳定性矩阵,调整各个矩阵行单元中的渲染节点,以更新渲染节点处理矩阵的步骤,包括:以各个渲染节点的偏移量均值,作为参照网格中任意相邻两行渲染节点之间的间隔尺度;获取各个渲染节点的偏移量与偏移量均值的比值,将所述比值作为每个渲染节点的纵向偏移数值;获取各个渲染节点的偏移量的方向;根据每个渲染节点的纵向偏移数值和偏移量的方向,在所述参照网格中将各个所述渲染节点进行纵向偏移;根据各个渲染节点在所述参照网格中的纵向偏移量,调整各个矩阵行单元中的渲染节点;根据各个矩阵行单元中的渲染节点的调整结果,更新渲染节点处理矩阵。6.根据权利要求1所述的面向视频实时渲染的云端同步方法,其特征在于,所述获取画面帧的数量和空闲状态的渲染节点数量,以确定行数的步骤,包括:获取空闲状态的渲染节点数量与列数的商;获取画面帧的数量;根据画面帧与所述商中的较小值,以较小值确定行数。7.根据权利要求1所述的面向视频实时渲染的云端同步方法,其特征在于,所述方法,还包括:根据理论时钟参数最相近的空闲状态的渲染节点的分布情况,确定空闲状态的渲染节点排列成矩阵行单元的多种情况,其中,每种情况的矩阵行单元对应的渲染节点数量不同;获取渲染节点数量最多的优选矩阵行单元;根据优选矩阵行单元的渲染节点数量,确定画面帧均匀切分数量。8.根据权利要求5所述的面向视频实时渲染的云端同步方法,其特征在于,参照如下方式更新渲染节点处理矩阵:;其中,c为渲染节点处理矩阵,为处于渲染节点处理矩阵中第i行第j列的渲染节点;
,i为渲染节点处理矩阵的行数,j为渲染节点处理矩阵的列数;;;其中,为渲染节点处理矩阵中处于第i行第j列的渲染节点的实际时钟参数,为渲染节点处理矩阵中处于第i行第j列的渲染节点的子画面的实际渲染时长,为渲染节点处理矩阵中处于第i行第j列的渲染节点的子画面的渲染结果的实际传输时长;为渲染节点处理矩阵中处于第i行第j列的渲染节点的理论时钟参数;为渲染节点处理矩阵中处于第i行第j列的渲染节点的子画面的理论渲染时长,为渲染节点处理矩阵中处于第i行第j列的渲染节点的子画面的渲染结果的理论传输时长;;为渲染节点处理矩阵中处于第i行第j列的渲染节点的偏移量;;为渲染节点处理矩阵中各个渲染节点的偏移量均值;;为渲染节点处理矩阵中处于第i行第j列的渲染节点的纵向偏移数值,其中纵向偏移数值为正数代表往上方偏移,纵向偏移数值为负数代表往下方偏移;;其中,y为渲染节点处理矩阵中各个渲染节点的纵向偏移数值的集合;;其中,d为各个渲染节点形成的稳定性矩阵,为对集合y中所有元素从大到小
排序后,排列于稳定性矩阵中第i行第j列的渲染节点;获取每个渲染节点在渲染节点处理矩阵中的第一行序号,与在稳定性矩阵中的第二行序号;当存在第一行序号与第二行序号的差值超过设定值的不稳定渲染节点时,将不稳定渲染节点转移至渲染节点处理矩阵的末尾矩阵行单元,并将渲染节点处理矩阵中的其他渲染节点顺次前移,以调整各个矩阵行单元中的渲染节点;根据各个矩阵行单元中的渲染节点的调整结果,更新渲染节点处理矩阵。9.根据权利要求7所述的面向视频实时渲染的云端同步方法,其特征在于,参照如下方式确定画面帧均匀切分数量:;其中,为第q个空闲状态的渲染节点的理论时钟参数;为第q个空闲状态的渲染节点对标准子画面的理论渲染时长,为第q个空闲状态的渲染节点对标准子画面的渲染结果的理论传输时长;,q为空闲状态的渲染节点的数量;;其中,h为对各个空闲状态的渲染节点的理论时钟参数从大到小排序形成的集合,为集合h中的第z个理论时钟参数,;;;则:;其中,;取能够使上述公式成立的最大正整数;为同一矩阵行单元中允许的最大偏差,为设定值;为集合h中的第f个理论时钟参数,为集合h中的第个理论时钟参数;集合h中的第个理论时钟参数,集合h中的第个理论时钟参数;n为不小于0的整数;j为画面帧均匀切分数量,即列数。10.一种面向视频实时渲染的云端同步系统,其特征在于,用于执行如权利要求1至9中任一项所述的方法;所述系统包括云端和分别与所述云端通信连接的多个渲染节点,云端用于为渲染节点建立与播放设备的数据传输通道。

技术总结
本发明公开一种面向视频实时渲染的云端同步方法及系统,方法包括:根据列数和行数建立用于排列空闲状态的渲染节点的矩阵;拟合成各个渲染节点的时钟参数;将理论时钟参数最相近的渲染节点排布于所述矩阵中的同一行,以形成排列好的各个矩阵行单元;依次排列各个矩阵行单元,以形成渲染节点处理矩阵;将画面帧发送至云端,按照画面帧的帧顺序依次将各个画面帧分配至各个矩阵行单元;按照每个画面帧的切分数量,将切分后的子画面一一对应地发送至每个矩阵行单元的渲染节点进行渲染处理;各个渲染节点将子画面的渲染结果发送至播放设备进行播放。本发明提出的技术方案有利于提高同步效果,降低同步渲染的时间误差。降低同步渲染的时间误差。降低同步渲染的时间误差。


技术研发人员:邓正秋 吕绍和
受保护的技术使用者:湖南马栏山视频先进技术研究院有限公司
技术研发日:2023.09.05
技术公布日:2023/10/11
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐