一种画面渲染方法和相关装置与流程
未命名
08-01
阅读:205
评论:0

1.本技术涉及图像处理技术领域,特别是涉及一种画面渲染方法和相关装置。
背景技术:
2.一般情况下,一个画面的分辨率越高代表影像质量越好,越能表现出更多的细节,但相对的,由于纪录的信息增多,渲染该画面的时间就越长。
3.为了提高待渲染画面的渲染速度,相关技术中,会将一个待渲染的画面划分为多个子画面,然后将多个子画面分发给多个渲染机分别进行渲染,最后通过导播机将多个渲染机渲染后的多个子画面进行合成,得到渲染后的一个画面。
4.但是,上述方式中会出现导播机难以将属于一个待渲染的画面的多个子画面合成至一起的情况,从而导致最后渲染得到的画面的效果较差。
技术实现要素:
5.为了解决上述技术问题,本技术提供了一种画面渲染方法和相关装置,用于提高将属于一个待渲染的画面的多个子画面合成至一起的合成率,提高渲染得到的画面的效果。
6.本技术实施例公开了如下技术方案:
7.第一方面,本技术实施例提供一种画面渲染方法,包括n个待渲染子内容的待渲染内容用于渲染得到一个虚拟画面,所述n个待渲染子内容通过n个渲染机分别进行画面渲染,针对所述n个渲染机中的目标渲染机,n为大于1的整数,所述方法包括:
8.获取所述待渲染内容中的目标待渲染子内容,所述目标待渲染子内容为所述n个待渲染子内容的一个;
9.根据所述目标待渲染子内容渲染得到渲染子画面时,生成渲染完成标识;
10.向其他渲染机发送所述渲染完成标识,所述其他渲染机为所述n个渲染机中除所述目标渲染机外的n-1个渲染机;
11.若从所述其他渲染机获取到n-1个所述渲染完成标识,则根据n个所述渲染完成标识生成统一完成标识,所述统一完成标识用于标识所述虚拟画面完成渲染的次序;
12.向导播机发送所述统一完成标识和所述渲染子画面,以便所述导播机根据所述统一完成标识和所述渲染子画面合成得到所述虚拟画面。
13.第二方面,本技术实施例提供一种画面渲染方法,所述方法包括:
14.接收n个渲染机发送的m个渲染子画面,以及所述m个渲染子画面分别对应的m个统一完成标识,所述统一完成标识用于标识所述虚拟画面完成渲染的次序,n为小于或等于m的正整数;
15.从所述m个渲染子画面中获取具有同一个统一完成标识的n个渲染子画面;
16.合成所述n个渲染子画面,得到所述虚拟画面。
17.第三方面,本技术实施例提供一种画面渲染装置,包括n个待渲染子内容的待渲染
内容用于渲染得到一个虚拟画面,所述n个待渲染子内容通过n个渲染机分别进行画面渲染,针对所述n个渲染机中的目标渲染机,所述目标渲染机包括画面渲染装置,n为大于1的整数,所述装置包括:获取单元、第一生成单元、第一发送单元、第二生成单元和第二发送单元;
18.所述获取单元,用于获取所述待渲染内容中的目标待渲染子内容,所述目标待渲染子内容为所述n个待渲染子内容的一个;
19.所述第一生成单元,用于根据所述目标待渲染子内容渲染得到渲染子画面时,生成渲染完成标识;
20.所述第一发送单元,用于向其他渲染机发送所述渲染完成标识,所述其他渲染机为所述n个渲染机中除所述目标渲染机外的n-1个渲染机;
21.所述第二生成单元,用于若从所述其他渲染机获取到n-1个所述渲染完成标识,则根据n个所述渲染完成标识生成统一完成标识,所述统一完成标识用于标识所述虚拟画面完成渲染的次序;
22.所述第二发送单元,用于向导播机发送所述统一完成标识和所述渲染子画面,以便所述导播机根据所述统一完成标识和所述渲染子画面合成得到所述虚拟画面。
23.第四方面,本技术实施例提供一种画面渲染装置,所述装置包括:接收单元、获取单元和合成单元;
24.所述接收单元,用于接收n个渲染机发送的m个渲染子画面,以及所述m个渲染子画面分别对应的m个统一完成标识,所述统一完成标识用于标识所述虚拟画面完成渲染的次序,n为小于或等于m的正整数;
25.所述获取单元,用于从所述m个渲染子画面中获取具有同一个统一完成标识的n个渲染子画面;
26.所述合成单元,用于合成所述n个渲染子画面,得到所述虚拟画面。
27.第五方面,本技术实施例提供一种画面渲染系统,其特征在于,所述系统包括多个渲染机和导播机;
28.所述渲染机,用于执行第一方面所涉及的方法;
29.所述导播机,用于执行第二方面所涉及的方法。
30.另一方面,本技术实施例提供一种计算机设备,所述计算机设备包括处理器以及存储器:
31.所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
32.所述处理器用于根据所述计算机程序中的指令执行上述方面所述的方法。
33.另一方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述方面所述的方法。
34.另一方面,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面所述的方法。
35.由上述技术方案可以看出,一个虚拟画面对应的待渲染内容被划分为n个待渲染子内容,n个待渲染子内容分别通过n个渲染机分别进行画面渲染,以n个渲染机中的目标渲
染机为例,目标渲染机获取目标待渲染子内容,其中,目标待渲染子内容是待渲染内容包括的n个待渲染子内容中的一个,在对目标待渲染子内容进行渲染得到渲染子画面时,生成渲染完成标识,向其他渲染机发送该渲染完成标识。若获取到其他渲染机分别发送的n-1个渲染完成标识,说明n个渲染机均完成对各自负责的待渲染子内容的渲染,则根据n个渲染完成标识生成统一完成标识,该统一完成标识用于标识该虚拟画面完成渲染的次序,或者说,不同的虚拟画面使用不同的统一完成标识。向导播机发送统一完成标识和渲染子画面,以便导播机能够根据统一完成标识和渲染子画面合成得到对应的虚拟画面。由此,虽然属于一个虚拟画面的n个渲染子画面分别通过n个渲染机分别进行渲染,得到n个渲染子画面,但是n个渲染子画面共用一个统一完成标识,导播机能够根据统一完成标识获取该虚拟画面的n个渲染子画面进行合成,得到虚拟画面,从而提高属于一个虚拟画面的多个渲染子画面合成率,进而提高该虚拟画面的渲染效果。
附图说明
36.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1为本技术实施例提供的画面渲染方法的应用场景示意图;
38.图2本技术实施例提供的一种画面渲染方法的交互图;
39.图3为本技术实施例提供的一种渲染子画面传输路径的示意图;
40.图4为本技术实施例提供的一种渲染子画面传输路径的示意图;
41.图5为本技术实施例提供的一种渲染子画面传输路径的示意图;
42.图6为本技术实施例提供的一种发送数据流的数据流送带宽示意图;
43.图7为本技术实施例提供的一种合成n个渲染子画面的示意图;
44.图8为本技术实施例提供的一种获取渲染子画面的示意图;
45.图9为本技术实施例提供的一种画面渲染方法的场景示意图;
46.图10为本技术实施例提供的一种画面渲染装置的结构示意图;
47.图11为本技术实施例提供的一种画面渲染装置的结构示意图;
48.图12为本技术实施例提供的一种画面渲染装置的结构示意图;
49.图13为本技术实施例提供的一种画面渲染系统的应用场景示意图;
50.图14为本技术实施例提供的服务器的结构示意图;
51.图15为本技术实施例提供的终端设备的结构示意图。
具体实施方式
52.下面结合附图,对本技术的实施例进行描述。
53.多个渲染机由于信号的延迟不固定,使得相关技术中,导播机会不断接收到属于不同画面的多个子画面,导播机得到的多个子画面无法在时间上对齐,从而出现难以将属于一个画面的多个子画面匹配到一起的情况,进而导致最后渲染得到的画面的效果较差。
54.基于此,本技术实施例提供一种画面渲染方法,通过为属于一个虚拟画面的多个
渲染子画面生成一个统一完成标识,以便导播机能够根据统一完成标识获取属于不同虚拟画面的多个渲染子画面进行合成,提高属于一个虚拟画面的多个渲染子画面的合成率,进而提高虚拟画面的渲染效果。
55.本技术实施例提供的画面渲染方法可以应用于具有数据处理能力的画面渲染设备,如终端设备、服务器。其中,终端设备具体可以为手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等,但并不局限于此;服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
56.本技术实施例提供的画面渲染方法可以基于云计算技术实现。云计算(cloud computing)指it基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可是其他服务。云计算是网格计算(grid computing)、分布式计算(distributedcomputing)、并行计算(parallel computing)、效用计算(utility computing)、网络存储(network storage technologies)、虚拟化(virtualization)、负载均衡(load balance)等传统计算机和网络技术发展融合的产物。
57.随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。本技术实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
58.为了便于理解本技术实施例提供的画面渲染方法,下面以该画面渲染方法的执行主体为服务器为例,对该画面渲染方法的应用场景进行示例性介绍。
59.参见图1,该图为本技术实施例提供的画面渲染方法的应用场景示意图。如图1所示,该应用场景中包括服务器110、服务器120和服务器130,三个服务器之间可以通过网络通信。服务器110和服务器120作为渲染机,服务器130作为导播机。
60.在图1所示的应用场景中,一个虚拟画面对应的待渲染内容包括2个待渲染子内容,2个待渲染子内容分别通过服务器110和服务器120进行画面渲染,下面以服务器110作为目标渲染机为例进行说明。
61.服务器110获取2个待渲染子内容中的1个,为了方便说明,下面将服务器110获取的待渲染子内容称之为目标待渲染子内容。服务器110根据目标待渲染内容进行渲染,得到渲染子画面时,生成渲染完成标识,并向服务器120发送该渲染完成标识。同理,服务器120也可以作为目标渲染机,获取另一个待渲染内容进行渲染,并且在得到渲染子画面时生成渲染完成标识,并向服务器110发送该渲染完成标识。
62.服务器110若获取到服务器120发送的渲染完成标识,说明服务器120完成渲染,此时两个渲染机均完成了渲染,则服务器110根据得到的2个渲染完成标识生成统一完成标识。此时,服务器110渲染得到的渲染子画面和服务器120渲染得到的渲染子画面共用同一个统一完成标识。
63.服务器110向作为导播机的服务器130发送统一完成标识和渲染子画面,同理,服务器120向作为导播机的服务器130发送统一完成标识和渲染子画面,服务器130根据统一完成标识和渲染子画面合成得到对应的虚拟画面。
64.由此,虽然属于一个虚拟画面的n个渲染子画面分别通过n个渲染机分别进行渲染,得到n个渲染子画面,但是n个渲染子画面共用一个统一完成标识,导播机能够根据统一完成标识获取该虚拟画面的n个渲染子画面进行合成,得到虚拟画面,从而提高属于一个虚拟画面的多个渲染子画面合成率,进而提高该虚拟画面的渲染效果。
65.本技术实施例所提供的画面渲染方法可以由服务器执行。但是,在本技术的其它实施例中,终端设备也可以与服务器具有相似的功能,从而执行本技术实施例所提供的画面渲染方法,或者由终端设备和服务器共同执行本技术实施例所提供的画面渲染方法,本实施例对此不做限定。
66.结合上述介绍,下面将对本技术提供的画面渲染系统进行介绍,该画面渲染系统包括多个渲染机和一个导播机。为了便于描述,下述实施例仍以该渲染机和导播机为服务器为例进行介绍。
67.参见图2,该图为本技术实施例提供的一种画面渲染方法的交互图。
68.s201:目标渲染机获取待渲染内容中的目标待渲染子内容。
69.渲染机可以通过将虚拟元素进行渲染得到虚拟画面。随着虚拟画面包括的细节越来越多,渲染虚拟画面所需的时间也会越来越长,为了缩短渲染时间,会将一个虚拟画面对应的待渲染内容拆分至多个渲染机中,以便每个渲染机对待渲染内容中的一部分进行渲染得到子画面,最后导播机将多个子画面进行合成,得到虚拟画面。
70.虚拟画面是待渲染内容进行渲染得到的画面,待渲染内容是图形的集合,图形通过渲染变为画面中的元素,待渲染内容可以拆分为n个待渲染子内容,n为大于1的整数。每个待渲染子内容均通过不同的渲染机进行渲染,即n个待渲染子内容通过n个渲染机分别进行画面渲染。例如,可以预先确定渲染机的数量,然后待渲染内容划分的数量与渲染机的数量相等。
71.为了方便说明,本技术实施例以n个渲染机中的一个渲染机为例进行说明,后续为了方便将其称为目标渲染机。由此,目标渲染机可以获取目标待渲染子内容,目标待渲染子内容为n个待渲染子画面中的一个,从而目标渲染机对目标待渲染内容进行渲染。
72.s202:目标渲染机根据目标待渲染子内容渲染得到渲染子画面时,生成渲染完成标识。
73.目标渲染机对目标待渲染内容进行渲染,可以得到渲染子画面,由此,n个渲染机分别对应n个待渲染内容分别进行渲染,能够得到n个渲染子画面,以便后续导播机根据n个渲染子画面合成得到虚拟画面。
74.在目标渲染机根据目标待渲染子内容渲染得到渲染子画面时,生成渲染完成标识,该渲染完成标识用于标识本次渲染操作执行完毕。需要说明的是,根据目标待渲染子内容成功得到渲染子画面可以生成渲染完成标识,渲染失败也可以生成渲染完成标识,因为渲染失败也能够证明本次渲染操作执行完毕。作为一种可能的实现方式,渲染完成标识可以包括两种类型,分别是渲染成功类型和渲染失败类型。
75.具体地,若目标渲染机对目标待渲染子内容渲染成功,得到渲染子画面,则生成渲
染完成标识,且渲染完成标识的类型为渲染成功。若目标渲染机在根据目标待渲染子内容对渲染子内容进行渲染的过程中,若预设时间内没有得到渲染子内容,则说明本次渲染操作执行失败,则生成渲染完成标识,且渲染完成标识的类型为渲染失败。本技术不具体限定预设时间的大小,本领域技术人员可以根据实际需要进行设置。例如,预设时间可以为一次渲染成功的时间,则超过该时间还没有得到渲染子画面,则说明本次渲染操作执行失败。又如,预设时间可以为多次渲染成功的时间,则超过该时间还没有得到渲染子画面,则说明不仅一次渲染操作失败,重新尝试渲染操作也失败。由此,若在预设时间内,没有得到渲染子画面,可以生成渲染完成标识,避免无法收集到n个渲染完成标识,从而无法生成统一完成标识,导致虚拟画面渲染失败。
76.s203:目标渲染机向其他渲染机发送渲染完成标识。
77.其中,其他渲染机为n个渲染机中除目标渲染机之外的n-1个渲染机。需要说明的是,其他渲染机中的每一个渲染机均可以作为目标渲染机生成渲染完成标识,并发送给除自己之外的n-1个渲染机。
78.s204:目标渲染机若从其他渲染机获取到n-1个渲染完成标识,则根据n个渲染完成标识生成统一完成标识。
79.目标渲染机向其他渲染机发送渲染完成标识,同理,其他渲染机也会向目标渲染机发送渲染完成标识,由此,目标渲染机能够接收到n-1个渲染机发送的n-1个渲染完成标识。此时,目标渲染机具有n-1个渲染完成标识和自己生成的一个渲染完成标识,共计n个渲染完成标识,则目标渲染机可以根据n个渲染完成标识生成统一完成标识。
80.其中,统一完成标识用于标识虚拟画面完成渲染的次序。也就是说,虚拟画面包括的n个渲染子画面均共用一个统一完成标识,且不同虚拟画面包括的多个渲染子画面对应的统一完成标识不同,例如,第一个虚拟画面的n个渲染子画面共用的统一完成标识为001,第二个虚拟画面包括的n个渲染子画面共用的统一完成标识为002。又例如,依据每个虚拟画面中最后一个渲染完成的渲染子画面的时间作为统一完成标识等,本技术对此不做具体限定。
81.需要说明是,n个渲染机生成统一完成标识的方式一致,从而保证n个渲染机分别生成的统完成标识一致。
82.s205:目标渲染机向导播机发送统一完成标识和渲染子画面。
83.需要说明的是,其他渲染机中的每一个渲染机也可以作为目标渲染机,生成统一完成标识和渲染子画面,并将渲染子画面和统一完成标识发送给导播机。
84.s206:导播机接收n个渲染机发送的m个渲染子画面,以及m个渲染子画面分别对应的m个统一完成标识。
85.目标渲染机在渲染得到渲染子画面,并生成对应的统一完成标识后,将统一完成标识和渲染子画面发送给导播机。同理,其他渲染机也会将各自生成的统一完成标识以及渲染得到的渲染子画面发送给导播机。由此,导播机会接收到n个渲染机分别发送的n个渲染子画面,以及n个渲染子画面分别对应的n个统一完成标识。
86.由于渲染机在渲染得到一个虚拟画面的一个渲染子画面后,还会渲染得到另一虚拟画面的一个渲染子画面,故导播机也会不断接收渲染子画面,即导播机接收n个渲染机发送的m个渲染子画面,以及m个渲染子画面分别对应的m个统一完成标识,其中,n为小于或等
于m的正整数。
87.s207:导播机从m个渲染子画面中获取具有同一个统一完成标识的n个渲染子画面。
88.例如,导播机根据统一完成标识,将m个渲染子画面划分为多组,每组渲染子画面包括n个,且共用一个统一完成标识。又例如,导播机获取一个统一完成标识后,从m个子画面中获取该统一完成标识对应的n个渲染子画面。
89.s208:导播机合成n个渲染子画面,得到虚拟画面。
90.导播机在得到共用一个统一完成标识的n个子画面后,将n个子画面合成为一个虚拟画面。例如,可以通过图像识别等技术,识别n个渲染子画面所在的位置,也可以在获取渲染子画面的同时,获取用于标识渲染子画面在虚拟画面位置的头文件等,本技术对此不做具体限定。
91.由此,即使属于一个虚拟画面的n个渲染子画面分别通过n个渲染机分别进行渲染,但是n个渲染子画面共用一个统一完成标识,导播机能够根据统一完成标识获取该虚拟画面的n个渲染子画面进行合成,得到虚拟画面,避免了由于多个渲染机由于信号的延迟不固定,导致多个渲染子画面无法在时间上对齐,从而出现导播机难以将属于一个画面的多个子画面匹配到一起的情况,在提高渲染速度的同时提高了渲染效果。
92.由上述技术方案可以看出,一个虚拟画面对应的待渲染内容被划分为n个待渲染子内容,n个待渲染子内容分别通过n个渲染机分别进行画面渲染,以n个渲染机中的目标渲染机为例,目标渲染机获取目标待渲染子内容,其中,目标待渲染子内容是待渲染内容包括的n个待渲染子内容中的一个,在对目标待渲染子内容进行渲染得到渲染子画面时,生成渲染完成标识,向其他渲染机发送该渲染完成标识。若获取到其他渲染机分别发送的n-1个渲染完成标识,说明n个渲染机均完成对各自负责的待渲染子内容的渲染,则根据n个渲染完成标识生成统一完成标识,该统一完成标识用于标识该虚拟画面完成渲染的次序,或者说,不同的虚拟画面使用不同的统一完成标识。向导播机发送统一完成标识和渲染子画面,以便导播机能够根据统一完成标识和渲染子画面合成得到对应的虚拟画面。由此,虽然属于一个虚拟画面的n个渲染子画面分别通过n个渲染机分别进行渲染,得到n个渲染子画面,但是n个渲染子画面共用一个统一完成标识,导播机能够根据统一完成标识获取该虚拟画面的n个渲染子画面进行合成,得到虚拟画面,从而提高属于一个虚拟画面的多个渲染子画面合成率,进而提高该虚拟画面的渲染效果。
93.本技术实施例不具体限定目标渲染机获取目标待渲染子内容的方式,例如,预先将待渲染内容按照渲染机的数量n进行划分,得到n个待渲染子内容,然后再将n个待渲染子内容分别分配至n个渲染机中。又例如,预先建立标识与裁剪区域的对应关系,每一个渲染机均获取待渲染内容,然后基于对应关系确定其各自负责渲染的待渲染子内容。下面通过a1-a3具体进行说明。
94.a1:获取待渲染内容、用于标识目标渲染机的目标标识,以及标识与裁剪区域的对应关系。
95.每一个渲染机均会获取待渲染内容,然后根据标识确定出其负责渲染的待渲染子内容。每一个渲染机均具有其对应的标识,通过标识可以确定出当前是哪一个渲染机。例如,目标渲染机的标识为目标标识。
96.标识与裁剪区域的对应关系用于描述每个渲染机应该负责的裁剪区域。例如,当前有9个渲染机,虚拟画面应该被划分为3*3的渲染子画面,从待渲染内容按照其所处在虚拟画面的位置被划分为9个待渲染子内容,每个渲染机负责其中一个待渲染子内容,二者构成标识与裁剪区域的对应关系。例如,渲染机的标识为1与处于虚拟画面左上角的待渲染子内容具有对应关系,渲染机的标识为9与处于虚拟画面右下角的待渲染子内容具有对应关系。
97.由此,在建立标识与裁剪区域的对应关系后,可以将其预置在每个渲染机中,也可以将待渲染内容和标识与裁剪区域的对应关系一起下发给每个渲染机等,本技术对此不做具体限定。
98.a2:根据标识与裁剪区域的对应关系,确定目标标识对应的目标裁剪区域。
99.根据标识与裁剪区域的对应关系,确定出目标标识对应的目标裁剪区域,即目标渲染机应该渲染的区域。
100.a3:根据目标裁剪区域,从待渲染内容中获取目标待渲染子内容。
101.在得到目标渲染机应该渲染的内容后,从待渲染内容中获取渲染目标裁剪区域所需的目标待渲染子内容。
102.由此,在需要渲染的虚拟画面较多的时候,若一个一个虚拟画面进行拆分,并分配给对应的渲染机,可能需要的时间较多,且很容易出错。若预先建立标识与裁剪区域的对应关系,每一个渲染机均获取待渲染内容,然后基于该对应关系确定其各自负责渲染的待渲染子内容,不仅能够降低分发的时间,条了渲染速度,还能够降低由于分发出错造成的虚拟画面的渲染效果较差的问题。
103.作为一种可能的实现方式,可以根据每个渲染机的显卡性能确定每个渲染机应该负责的裁剪区域的大小,进而建立标识与裁剪区域的对应关系。其中,显卡性能越高的渲染机所对应的裁剪区域越大,从而虽然n个渲染机的显卡性能不同,但由于其各自负责的裁剪区域的大小有区别,即显卡性能越高的渲染机所对应的裁剪区域越大,从而能够使得n个渲染机渲染完成各自负责的渲染子画面所需的时间大致相同,进而降低目标渲染机等待接收其他渲染机发送的渲染完成标识的时间,进一步提高虚拟画面的渲染速度。
104.作为一种可能的实现方式,还可以确定虚拟画面对应的渲染内容,按照渲染机的数量将渲染内容中的物体进行拆分,从而每个渲染机负责对一个或多个物体对应的待渲染子内容进行渲染。
105.作为一种可能的实现方式,还可以确定虚拟画面包括的图层数量,按照渲染机的数量将虚拟画面的图层进行拆分,从而每个渲染机负责对一个图层、多个图层或部分图层对应的待渲染子内容进行渲染。
106.作为一种可能的实现方式,还可以确定虚拟画面的尺寸信息,按照渲染机的数量将虚拟画面平均拆分,得到多个渲染子画面,从而每个渲染机负责对一个渲染子画面对应的待渲染子内容进行渲染。
107.进一步的,还可以在预先划分待渲染子内容时,除了将渲染子画面对应的待渲染内容确定为待渲染子内容外,还可以将渲染子画面周围的画面对应的待渲染内容确定为待渲染子内容,即待渲染子内容不仅包括渲染子画面对应的待渲染内容,还包括其周围画面对应的待渲染子内容。例如,目标待渲染子内容包括渲染子画面对应的待渲染内容和位于
渲染子画面周围的画面对应的待渲染内容。使得在目标渲染机根据目标待渲染子内容进行渲染,得到的待定渲染子画面的大小大于所需渲染子画面的大小。此时,可以获取渲染子画面的尺寸信息,根据渲染子画面的尺寸信息裁剪待定渲染子画面,得到渲染子画面。
108.由此,在渲染过程中,在确定一个像素的像素值时,经常会根据该像素的像素值及其周围像素的像素值共同得到该像素的像素值。若待渲染子内容仅包括渲染子画面对应的待渲染内容,会使得渲染得到的渲染子画面的边缘清晰度较低,进而导致根据渲染子画面得到的虚拟画面的渲染效果较差。若采用上述方式,即待渲染子内容不仅包括渲染子画面对应的待渲染内容,还包括其周围画面对应的待渲染子内容,在对其进行渲染以后裁剪,可以降低渲染子画面边缘清晰度较低的概率,从而提高虚拟画面的渲染效果。
109.作为一种可能的实现方式,可以将n个渲染机中最后一个生成渲染完成标识的时间作为统一完成标识,下面结合b1-b4具体说明。
110.b1:获取用于表征渲染完成标识生成时间的时间戳。
111.在生成渲染完成标识时,还可以获取用于表征渲染完成标识生成时间的时间戳。例如,一个时间发生器不断向n个渲染机发送时间戳,从而使得n个渲染机的时间一致。由此,目标渲染机在生成渲染完成标识的同时,将当前最近接收的一个时间戳作为该渲染标识的生成时间。
112.b2:向其他渲染机发送渲染完成标识和用于表征渲染完成标识生成时间的时间戳。
113.目标渲染机向其他渲染机发送渲染完成标识的同时,还可以发送时间戳,该时间戳用于标识渲染完成标识的生成时间,从而目标渲染机除了接收n-1个渲染完成标识外,还会接收n-1个渲染完成标识对应的时间戳。
114.b3:从n个渲染完成标识对应的时间戳中,确定时间最晚的时间戳。
115.目标渲染机接收n-1个渲染完成标识及其对应的时间戳,加上目标渲染机自己生成的渲染标识及其对应的时间戳,目标渲染机共有n个渲染标识及其对应的时间戳,即目标渲染机具有每个渲染机生成的渲染完成标识和对应的时间戳。目标渲染机从n个渲染完成标识对应的时间戳中,确定时间最晚的时间戳,并将该时间戳作为统一完成标识。
116.作为一种可能的实现方式,还可以将n个时间戳中任意一个时间戳作为统一完成标识,从而保证n个渲染子画面具有一个统一完成标识。
117.b4:将时间最晚的时间戳作为统一完成标识。
118.由此,通过将时间发生器生成的时间戳不断分发给每一个渲染机,能够保证n个渲染机的时间一致,并将n个时间戳中的最后一个时间戳作为统一完成标识,从而保证n个渲染子画面在时间上的一致性。避免多个子画面无法在时间上对齐的问题,提高虚拟画面的渲染质量。
119.相关技术中,渲染机和导播机进行通信的通信链路较长,从而导致导播机显示虚拟画面的时间较长。参见图3,该图为本技术实施例提供的一种渲染子画面传输路径的示意图。渲染机在将渲染子画面传输给导播机的过程中,渲染机需要将渲染子画面从显卡的显存中读取到系统内存中,然后通过渲染机的网卡,利用远程直接数据存取(remote direct memory access,rdma)技术,将渲染子画面从系统内存中,通过导播机的网卡传输至导播机的系统内存中,导播机再从系统内存中获取渲染子画面到显卡的显存中进行显示。
120.但是,上述方式使得渲染机和导播机之间的通信链路较长,从而造成虚拟画面的渲染时间较长。基于此,本技术实施例不再将渲染子画面从显卡中读取到系统内存中,而是渲染机的网卡从显存中获取渲染子画面,并通过导播机的网卡发送至显存中,如图4所示,从而缩短渲染子画面的传输路径,提高渲染子画面的传输速度,进而提高虚拟画面的渲染速度。
121.作为一种可能的实现方式,若渲染机和导播机分别为两个图形处理器(graphics processing unit,gpu),渲染机的网卡可以采用用于加速多机间gpu通信技术(gpudirect rdma)无需通过系统内存实现渲染子画面的传输,减少了gpu通信的数据复制次数,进一步降低通信延迟。
122.作为一种可能的实现方式,导播机的网卡和渲染机的网络均可以为处理器分散处理单元(data processing unit,dpu),从而提高渲染子画面的传输速度,提高虚拟画面的渲染速度。
123.作为一种可能的实现方式,渲染子画面和统一完成标识可以包括在头文件中发送给导播机。下面结合c1-c3具体说明。
124.c1:目标渲染机根据渲染子画面和统一完成标识生成头文件。
125.其中,头文件用于指示导播机合成得到虚拟画面。例如,头文件可以包括统一完成标识和渲染子画面在虚拟画面中的位置。作为一种可能的实现方式,渲染子画面在虚拟画面中的位置可以通二维数组来表示,二维数组中第一个元素表示渲染子画面为横向第几个画面,二维数组中第二个元素表示渲染子画面为纵向第几个画面。以虚拟画面包括9个渲染子画面为例,且9个渲染子画面的排列方式为横向三个纵向三个,则(3,1)表示第三行第一列,即该渲染子画面位于虚拟画面的左下角。
126.作为一种可能的实现方式,头文件还可以包括渲染子画面所对应的虚拟画面的尺寸信息、渲染子画面的尺寸信息、渲染子画面所在的数据流、自定义指令中的一种或多种组合。其中,虚拟画面的尺寸信息用于描述虚拟画面的长宽,渲染子画面的尺寸信息用于描述虚拟画面的长宽,渲染子画面所在的数据量能够标识生成渲染子画面的渲染机的标识,自定义指令可以为心跳检测指令,以便导播机通过心跳检测确定是否接收到头文件。
127.c2:目标渲染机根据头文件和渲染子画面生成数据流。
128.c3:目标渲染机向导播机发送数据流。
129.作为一种可能的实现方式,数据流通过高速串行计算机扩展总线标准插口(peripheral component interconnect express,pcie)直接传输到渲染机的网卡上,通过gpudirect rdma向导播机发送数据流。
130.导播机在接收数据流后,可以将数据流存储至系统内存中,以便后续进行处理。作为一种可能的实现方式,除了渲染机可以无需将渲染子画面存储至系统内存中,导播机也可以无需将渲染子画面存储至系统内存中,下面继续以c1-c3为例,结合c4-c6进行说明。
131.c4:导播机接收n个渲染机发送的m个数据流。
132.其中,数据流中包括头文件和渲染子画面,m个数据流对应与m个渲染子画面及其对应的头文件。以其中一个数据流为例,导播机可以对数据流进行分离,得到头文件和渲染子画面。
133.c5:导播机将头文件存储至系统内存中。
134.c6:导播机将渲染子画面存储至显存中。
135.其中,存储在系统内存中的头文件可以控制显存中渲染子画面合成为虚拟画面。
136.作为一种可能的实现方式,导播机的网卡可以对数据流进行分离,从而得到头文件和渲染子画面。参见图5,导播机的网卡将头文件存储至系统内存中,将渲染子画面存储在显存中,从而无需先将渲染子画面存储至系统内存中,再从系统内存读取值显存中。降低了渲染子画面的复制次数,缩短了虚拟画面的渲染时间。
137.作为一种可能的实现方式,在向导播机发送数据流的过程中,可能会出现数据流送带宽不足的情况,其中,流送带宽是指发送数据流所占用的带宽。下面结合图6进行具体说明。
138.参见图6,该图为本技术实施例提供的一种发送数据流的数据流送带宽示意图。在图6中,横轴是时间,纵轴是流送带宽。图6(a)是非节奏突发数据流情况下,如果发送的一个数据流较大,会在数据流联合后,超过线速,即出现有的时间段流送带宽不足、有的时间段却没有流送带宽的使用的情况。
139.基于此,本技术实施例通过根据预设的固定比特率,将数据流分割为多份子数据流,并向导播机逐一发送多份子数据流。其中,固定比特率是根据渲染机向导播机发送一次数据流的时间长度和一次数据流的大小确定的,以便在发送一次数据流的时间长度中,均匀发送子数据流,从而避免有的时间段流送带宽不足的情况。例如,图6(b)是硬件数据包节奏数据流情况下,会按照设置的固定比特率,将数据流拆分为多份子数据流,从而不会出现超过线速的情况。由此,通过对数据流进行分割,能够避免峰值数据导致的流送带宽不足的情况出现。
140.作为一种可能的实现方式,导播机可以根据头文件合成n个渲染子画面,下面结合图7进行说明。参见图7,该图为本技术实施例提供的一种导播机合成n个渲染子画面的示意图。
141.s701:接收多个数据流。
142.s702:确定虚拟画面的尺寸信息。
143.例如,根据数据流中包括头文件,获取一个虚拟画面包括的n个渲染子画面的尺寸信息,从而确定虚拟画面的尺寸信息。又如,导播机根据数据流中的头文件直接获取虚拟画面的尺寸信息。再如,导播机根据数据流中的头文件获取一个渲染子画面的尺寸信息,且n个渲染子画面的大小相同,则根据一个渲染子画面的尺寸信息和渲染子画面的排列方式,确定虚拟画面的尺寸信息。
144.s703:导播机获取第i个数据流所包括的渲染子画面的尺寸信息和其在虚拟子画面所处的位置。
145.同理,第i-1个数据流和第i+1个数据流也执行该操作,即获取第i-1个数据流所包括的渲染子画面的尺寸信息和其在虚拟子画面所处的位置,以及获取第i+1个数据流所包括的渲染子画面的尺寸信息和其在虚拟子画面所处的位置。
146.s704:队列缓冲,时间戳对齐。
147.由于一个虚拟画面包括多个渲染子画面,且一个数据流包括一个渲染子画面,故可以先将所有渲染子画面放入队列中,进行缓冲,当根据时间戳,即统一完成标识的一种获取一个虚拟画面的n个渲染子画面后,将n个渲染子画面合成在一起,得到虚拟画面。
148.s705:合成得到虚拟画面。
149.作为一种可能的实现方式,还可以进行数据备份。下面结合d1-d2具体进行说明。
150.d1:目标渲染机获取备份渲染机的标识。
151.需要说明的是,为了进行多数据的容灾备份,可以为目标渲染机配备备份渲染机,备份渲染机与目标渲染机的作用一样,均可以执行前述所述的画面渲染方法,即根据目标待渲染子内容得到渲染子画面。从而在目标渲染机渲染出现问题时,备份渲染机渲染得到的渲染子画面可以用于给导播机合成得到虚拟画面。
152.例如,在设置目标渲染机的备份渲染机后,可以建立二者之间的对应关系,以便目标渲染机能够根据该对应关系获取到备份渲染机的标识。又或者,可以将备份渲染机的标识内置于目标渲染机中,以便目标渲染机获取。需要说明的是,可以为每个渲染机配置备份渲染机,还可以为部分渲染机配置备份渲染机,本技术对此不做具体限定。
153.d2:根据备份渲染机的标识、渲染子画面和统一完成标识生成头文件。
154.由此,头文件中不仅可以包括渲染子画面的相关信息和统一完成标识,还可以包括备份渲染机的标识。
155.在目标渲染机根据前述方式生成数据流并发送给导播机后,导播机接收到的头文件包括备份渲染机的标识,在目标渲染机渲染出现问题时,导播机可以根据备份渲染机渲染得到的渲染子画面合成虚拟画面,下面通过d3-d6具体进行说明。
156.参见图8,该图为本技术实施例提供的一种获取渲染子画面的示意图。
157.d3:若从m个数据流中确定出异常数据流。
158.d4:获取异常数据流中的头文件。
159.该头文件包括备份渲染机的标识。
160.d5:从异常数据流中的头文件中获取备份渲染机的标识。
161.d6:根据备份渲染机的标识获取备份渲染机渲染得到的渲染子画面。
162.备份渲染机能够采用本技术实施例提供的画面渲染方法,根据目标待渲染子内容渲染得到渲染子画面。由此,当目标渲染机发送的数据流出现异常,可以采用备份渲染机渲染得到的渲染子画面,从而提高虚拟子画面的渲染效果。
163.本技术实施例不具体限定根据导播机根据备份渲染机的标识获取备份渲染机渲染得到的渲染子画面。下面以两种方式为例进行说明。
164.方式一:备份渲染机不将渲染得到的渲染子画面发送给导播机,导播机仅接收目标渲染机发送的数据流,若数据流存在异常,则从该数据流的头文件中获取备份渲染机的标识,导播机与备份渲染机通信,以便从备份渲染机中获取渲染子画面。
165.方式二:备份渲染机将渲染得到的渲染子画面发送给导播机,导播机不仅接收目标渲染机发送的数据流,还接收备份渲染机发送的数据流,两种数据流处于不同的队列中。导播机先获取目标渲染机发送的数据流,若数据流存在异常,则从该数据流的头文件中获取备份渲染机的标识,该标识不仅能够标识对应的备份渲染机,还能够标识该备份渲染机生成的数据流,从而根据该备份渲染机的标识能够获取对应的数据流,进而获取到渲染子画面。
166.需要说明的是,当备份渲染机也将数据流发送给导播机,则需要根据目标渲染机和其他渲染机生成的渲染完成标识,以及以及备份渲染机生成的渲染完成标识生成统一完
成标识。
167.d7:若获取成功,后续播放渲染子画面构成的虚拟画面。
168.d8:若获取失败,则将备用安全画面作为渲染子画面,后续播放虚拟画面。
169.其中,备用安全画面是预先设置在导播机中,用于避免目标渲染机和备份渲染机分别生成的数据流均异常的情况。
170.d9:若m个数据流均正常,则后续播放虚拟画面。
171.由此,通过为渲染机设置备份渲染机,二者均共同根据待渲染子内容生成渲染子画面,以便在渲染机渲染得到的渲染子画面无法获取时,通过备份渲染机渲染得到的渲染子画面合成虚拟画面,提高虚拟画面的渲染效果。
172.为了便于进一步理解本技术实施例提供的技术方案,下面以本技术实施例提供的画面渲染方法所涉及的渲染机和导播机均为服务器为例,对该画面方法进行整体示例性介绍。
173.需要说明的是,本技术实施例提供的画面渲染方法可以应用于虚拟制片、修图、虚拟拍摄、扩展现实(extended reality,xr)等需要渲染得到虚拟画面的场景。
174.下面对前述的术语分别进行介绍。
175.(1)虚拟制片:把虚拟图像与真实演员的表演融合在一起,而且在拍摄现场就能把加特效的画面实时做可视化呈现的制片方法。例如,在拍摄现场中,表演者在绿幕前表演完成后,通过虚拟制片将演员的表演画面和特效画面渲染在一起,不仅可以实时看到最终的特效画面,还可以随时更换背景、与场景特效互动等。
176.(2)修图:在已有画面(如照片)上增加贴纸图案等元素,渲染得到美化后的画面。
177.(3)虚拟拍摄:在电影拍摄中,根据导演所要求的拍摄动作,全部镜头都在电脑里的虚拟场景中进行。拍摄这个镜头所需的各种元素,包括场景、人物、灯光等,全部被整合进了电脑,然后,导演就可以根据自己的意图,在计算机上“指挥”角色的表演和动作,从任意角度运动他的镜头。
178.(4)扩展现实:指通过计算机将真实与虚拟相结合,打造一个可人机交互的虚拟环境,这也是增强现实(augmented reality,ar)、虚拟现实技术(virtual reality,vr)、混合现实(mixed reality,mr)等多种技术的统称。通过将三者的视觉交互技术相融合,为体验者带来虚拟世界与现实世界之间无缝转换的“沉浸感”。
179.需要说明的是,本技术重点对渲染得到虚拟画面进行说明,虚拟画面与真实画面结合的方式可以为,将合成得到的虚拟画面与真实画面结合,或者将真实画面作为待虚渲染内容进行拆分后,分别进行渲染得到渲染子画面,以便后续合成等,本技术对此不做具体限定。
180.下面对渲染得到虚拟画面进行说明。
181.参加图9,该图为本技术实施例提供的一种画面渲染方法的场景示意图。渲染机在生成数据流前需要执行三个内容,如下所示:
182.(1)获取待渲染子内容。
183.(2)根据待渲染子内容渲染得到渲染子画面。
184.(3)根据渲染子画面和统一完成标识生成头文件。
185.具体地,根据目标待渲染子内容渲染得到渲染子画面时,生成渲染完成标识向其
他渲染机发送渲染完成标识,若从其他渲染机获取到n-1个渲染完成标识,则根据n个渲染完成标识生成统一完成标识。
186.渲染机中的dpu获取生成的数据流,并通过交换机将该数据流发送给导播机的dpu。其中,数据流可以遵循smpte st 2110协议标准,传输无损音频和视频,同时包含精确时间协议(precision time protocol,ptp)时间信息。待渲染子内容可以包括定义传输内容格式,渲染子画面的尺寸信息,虚拟画面的尺寸信息、视频分辨率,帧率,色彩空间等信息。其中,传输内容格式可以为rgb(红色绿色蓝色)颜色排列等,色彩空间可以为rgb颜色的范围等。
187.导播机分离数据流得到头文件和渲染子画面,并根据头文件合成虚拟画面,并展示虚拟画面。
188.针对上文描述的画面渲染方法,本技术还提供了对应的画面渲染装置,以使上述画面渲染方法在实际中得以应用及实现。
189.参见图10,该图为本技术实施例提供的一种画面渲染装置的结构示意图。包括n个待渲染子内容的待渲染内容用于渲染得到一个虚拟画面,所述n个待渲染子内容通过n个渲染机分别进行画面渲染,针对所述n个渲染机中的目标渲染机,所述目标渲染机包括画面渲染装置,n为大于1的整数,如图10所示,该画面渲染装置1000包括:获取单元1001、第一生成单元1002、第一发送单元1003、第二生成单元1004和第二发送单元1005;
190.所述获取单元1001,用于获取所述待渲染内容中的目标待渲染子内容,所述目标待渲染子内容为所述n个待渲染子内容的一个;
191.所述第一生成单元1002,用于根据所述目标待渲染子内容渲染得到渲染子画面时,生成渲染完成标识;
192.所述第一发送单元1003,用于向其他渲染机发送所述渲染完成标识,所述其他渲染机为所述n个渲染机中除所述目标渲染机外的n-1个渲染机;
193.所述第二生成单元1004,用于若从所述其他渲染机获取到n-1个所述渲染完成标识,则根据n个所述渲染完成标识生成统一完成标识,所述统一完成标识用于标识所述虚拟画面完成渲染的次序;
194.所述第二发送单元1005,用于向导播机发送所述统一完成标识和所述渲染子画面,以便所述导播机根据所述统一完成标识和所述渲染子画面合成得到所述虚拟画面。
195.作为一种可能的实现方式,所述获取单元1001,具体用于:
196.获取所述待渲染内容、用于标识所述目标渲染机的目标标识,以及标识与裁剪区域的对应关系;
197.根据所述标识与裁剪区域的对应关系,确定所述目标标识对应的目标裁剪区域;
198.根据所述目标裁剪区域,从所述待渲染内容中获取所述目标待渲染子内容。
199.作为一种可能的实现方式,所述标识与裁剪区域的对应关系是根据所述n个渲染机的显卡性能确定的,显卡性能越高的渲染机所对应的裁剪区域越大。
200.作为一种可能的实现方式,所述第一生成单元1002,还用于:
201.在根据所述目标待渲染子内容渲染所述渲染子内容的过程中,若预设时间内没有得到所述渲染子内容,生成渲染完成标识。
202.作为一种可能的实现方式,所述获取单元1001,还用于:
203.获取用于表征所述渲染完成标识生成时间的时间戳;
204.所述第一发送单元1003,具体用于:
205.向其他渲染机发送所述渲染完成标识和用于表征所述渲染完成标识生成时间的时间戳;
206.所述第二生成单元1004,具体用于:
207.从n个所述渲染完成标识对应的时间戳中,确定时间最晚的时间戳;
208.将所述时间最晚的时间戳作为所述统一完成标识。
209.作为一种可能的实现方式,所述目标待渲染子内容包括所述渲染子画面对应的待渲染内容和位于所述渲染子画面周围的画面对应的待渲染内容,所述装置还包括渲染单元,用于:
210.根据所述目标待渲染子内容渲染得到待定渲染子画面;
211.获取所述渲染子画面的尺寸信息;
212.根据所述渲染子画面的尺寸信息裁剪所述待定渲染子画面,得到所述渲染子画面。
213.作为一种可能的实现方式,所述第二发送单元1005,具体用于:
214.通过用于加速多机间图形处理器通信技术,向导播机发送统一完成标识和渲染子画面。
215.作为一种可能的实现方式,所述第二发送单元1005,具体用于:
216.根据所述渲染子画面和所述统一完成标识生成头文件,所述头文件用于指示所述导播机合成得到所述虚拟画面;
217.根据所述头文件和所述渲染子画面生成数据流;
218.向所述导播机发送所述数据流。
219.作为一种可能的实现方式,所述第二发送单元1005,具体用于:
220.根据固定比特率,将所述数据流分割为多份子数据流,所述固定比特率是根据时间长度和数据流的大小确定的;
221.向所述导播机逐一发送所述多份子数据流。
222.作为一种可能的实现方式,所述装置还包括备份单元,用于:
223.获取备份渲染机的标识,所述备份渲染机用于根据所述目标待渲染子内容渲染得到渲染子内容;
224.所述根据所述渲染子画面和所述统一完成标识生成头文件,包括:
225.根据所述备份渲染机的标识、所述渲染子画面和所述统一完成标识生成头文件。
226.由上述技术方案可以看出,一个虚拟画面对应的待渲染内容被划分为n个待渲染子内容,n个待渲染子内容分别通过n个渲染机分别进行画面渲染,以n个渲染机中的目标渲染机为例,目标渲染机获取目标待渲染子内容,其中,目标待渲染子内容是待渲染内容包括的n个待渲染子内容中的一个,在对目标待渲染子内容进行渲染得到渲染子画面时,生成渲染完成标识,向其他渲染机发送该渲染完成标识。若获取到其他渲染机分别发送的n-1个渲染完成标识,说明n个渲染机均完成对各自负责的待渲染子内容的渲染,则根据n个渲染完成标识生成统一完成标识,该统一完成标识用于标识该虚拟画面完成渲染的次序,或者说,不同的虚拟画面使用不同的统一完成标识。向导播机发送统一完成标识和渲染子画面,以
便导播机能够根据统一完成标识和渲染子画面合成得到对应的虚拟画面。由此,虽然属于一个虚拟画面的n个渲染子画面分别通过n个渲染机分别进行渲染,得到n个渲染子画面,但是n个渲染子画面共用一个统一完成标识,导播机能够根据统一完成标识获取该虚拟画面的n个渲染子画面进行合成,得到虚拟画面,从而提高属于一个虚拟画面的多个渲染子画面合成率,进而提高该虚拟画面的渲染效果。
227.参见图11,该图为本技术实施例提供的一种画面渲染装置的结构示意图。如图11所示,该画面渲染装置1100包括:接收单元1101、获取单元1102和合成单元1103;
228.所述接收单元1101,用于接收n个渲染机发送的m个渲染子画面,以及所述m个渲染子画面分别对应的m个统一完成标识,所述统一完成标识用于标识所述虚拟画面完成渲染的次序,n为小于或等于m的正整数;
229.所述获取单元1102,用于从所述m个渲染子画面中获取具有同一个统一完成标识的n个渲染子画面;
230.所述合成单元1103,用于合成所述n个渲染子画面,得到所述虚拟画面。
231.作为一种可能的实现方式,所述接收单元1101,具体用于:
232.接收n个渲染机发送的m个数据流,所述数据流包括头文件和渲染子画面,所述头文件为根据所述渲染子画面和所述统一完成标识生成的;
233.将所述头文件存储至系统内存中;
234.将所述渲染子画面存储至显存中。
235.作为一种可能的实现方式,所述头文件还包括备份渲染机的标识,所述备份渲染机用于根据所述目标待渲染子内容渲染得到渲染子内容,所述装置还包括备用单元,用于:
236.若从所述m个数据流中确定出异常数据流;
237.获取所述异常数据流中的头文件;
238.从所述异常数据流中的头文件中获取备份渲染机的标识;
239.根据所述备份渲染机的标识获取备份渲染机渲染得到的渲染子画面。
240.由上述技术方案可以看出,一个虚拟画面对应的待渲染内容被划分为n个待渲染子内容,n个待渲染子内容分别通过n个渲染机分别进行画面渲染,以n个渲染机中的目标渲染机为例,目标渲染机获取目标待渲染子内容,其中,目标待渲染子内容是待渲染内容包括的n个待渲染子内容中的一个,在对目标待渲染子内容进行渲染得到渲染子画面时,生成渲染完成标识,向其他渲染机发送该渲染完成标识。若获取到其他渲染机分别发送的n-1个渲染完成标识,说明n个渲染机均完成对各自负责的待渲染子内容的渲染,则根据n个渲染完成标识生成统一完成标识,该统一完成标识用于标识该虚拟画面完成渲染的次序,或者说,不同的虚拟画面使用不同的统一完成标识。向导播机发送统一完成标识和渲染子画面,以便导播机能够根据统一完成标识和渲染子画面合成得到对应的虚拟画面。由此,虽然属于一个虚拟画面的n个渲染子画面分别通过n个渲染机分别进行渲染,得到n个渲染子画面,但是n个渲染子画面共用一个统一完成标识,导播机能够根据统一完成标识获取该虚拟画面的n个渲染子画面进行合成,得到虚拟画面,从而提高属于一个虚拟画面的多个渲染子画面合成率,进而提高该虚拟画面的渲染效果。
241.针对上文描述的画面渲染方法,本技术还提供了对应的画面渲染系统,以使上述画面渲染方法在实际中得以应用及实现。
242.参见图12,该图为本技术实施例提供的一种画面渲染装置的结构示意图。如图12所示,该画面渲染系统1200包括:包括多个渲染机1201和导播机1202;
243.包括n个待渲染子内容的待渲染内容用于渲染得到一个虚拟画面,所述n个待渲染子内容通过n个渲染机分别进行画面渲染,针对所述n个渲染机中的目标渲染机,n为大于1的整数。
244.其中,渲染机用于执行前述目标渲染机所执行的任意一项所述的画面渲染方法,例如:
245.获取待渲染内容中的目标待渲染子内容,目标待渲染子内容为n个待渲染子内容的一个;
246.根据目标待渲染子内容渲染得到渲染子画面时,生成渲染完成标识;
247.向其他渲染机发送渲染完成标识,其他渲染机为n个渲染机中除目标渲染机外的n-1个渲染机;
248.若从其他渲染机获取到n-1个渲染完成标识,则根据n个渲染完成标识生成统一完成标识,统一完成标识用于标识虚拟画面完成渲染的次序;
249.向导播机发送统一完成标识和渲染子画面,以便导播机根据统一完成标识和渲染子画面合成得到虚拟画面。
250.需要说明的是,渲染机还可以执行前述目标渲染机所执行的任意一项所述的画面渲染方法。
251.导播机,用于用于执行前述导播机所执行的任意一项所述的画面渲染方法,例如:
252.接收n个渲染机发送的m个渲染子画面,以及m个渲染子画面分别对应的m个统一完成标识,统一完成标识用于标识虚拟画面完成渲染的次序,n为小于或等于m的正整数;
253.从m个渲染子画面中获取具有同一个统一完成标识的n个渲染子画面;
254.合成n个渲染子画面,得到虚拟画面。
255.作为一种可能的实现方式,该画面渲染系统还包括交换机,由于导播机一般仅具有一个网口,很难与多个渲染机连接,而交换机具有多个网口,可以与多个渲染机连接,以便渲染机通过交换机将渲染子画面发送给导播机。例如,渲染机中的dpu将数据流分割后发送给交换机,交互机再将其转发给导播机进行合成,得到虚拟画面。
256.作为一种可能的实现方式,渲染机通过专有nvidia bluefield dpu发送数据到交换机中,其中,nvidia bluefield dpu是一款片上数据中心基础设施,可用于卸载、加速、隔离,在主机cpu上运行的各种软件定义的基础设施服务,能够突破性能、可扩展性和安全方面的一些瓶颈。
257.作为一种可能的实现方式,为了应对数据量较大的场景,可以选用25gbit以上的带宽机器作为交换机。
258.由上述技术方案可以看出,一个虚拟画面对应的待渲染内容被划分为n个待渲染子内容,n个待渲染子内容分别通过n个渲染机分别进行画面渲染,以n个渲染机中的目标渲染机为例,目标渲染机获取目标待渲染子内容,其中,目标待渲染子内容是待渲染内容包括的n个待渲染子内容中的一个,在对目标待渲染子内容进行渲染得到渲染子画面时,生成渲染完成标识,向其他渲染机发送该渲染完成标识。若获取到其他渲染机分别发送的n-1个渲染完成标识,说明n个渲染机均完成对各自负责的待渲染子内容的渲染,则根据n个渲染完
成标识生成统一完成标识,该统一完成标识用于标识该虚拟画面完成渲染的次序,或者说,不同的虚拟画面使用不同的统一完成标识。向导播机发送统一完成标识和渲染子画面,以便导播机能够根据统一完成标识和渲染子画面合成得到对应的虚拟画面。由此,虽然属于一个虚拟画面的n个渲染子画面分别通过n个渲染机分别进行渲染,得到n个渲染子画面,但是n个渲染子画面共用一个统一完成标识,导播机能够根据统一完成标识获取该虚拟画面的n个渲染子画面进行合成,得到虚拟画面,从而提高属于一个虚拟画面的多个渲染子画面合成率,进而提高该虚拟画面的渲染效果。
259.参见图13,该图为本技术实施例提供的一种画面渲染系统的应用场景示意图。
260.时间发生器为每一个渲染机不断发送时间戳,使得多个渲染机的时间能够同步,以便根据时间戳生成统一完成标识。其中,六个渲染机中,三个作为备份渲染机。渲染机根据本技术实施例提供的画面渲染方法,将直播画面中的每一帧进行渲染,得到渲染子画面和统一完成标识,并通过交换机发送给导播机。
261.导播机接收所有的音频和渲染子画面,用于合成虚拟画面,并发送给推流机。推流机将接收到的虚拟画面进行编码,并上传到云端,以便其他终端设备(如笔记本电脑、个人电脑、手机、平板电脑、掌上电脑等)才能够从云端获取到直播的虚拟画面。
262.由此,在直播环境中实现了一种容灾备份,和画面渲染的方案,能够达到低延迟,高分辨率合成,同时高可用的效果,支持对设备的横向扩展,达到更好的效果。
263.本技术实施例还提供了一种计算机设备,该计算机设备为前述介绍的计算机设备,该计算机设备可以为服务器或者终端设备,前述所述的画面渲染装置可以内置于服务器或终端设备中,下面将从硬件实体化的角度对本技术实施例提供的计算机设备进行介绍。其中,图14所示为服务器的结构示意图,图15所示为终端设备的结构示意图。
264.参见图14,该图为本技术实施例提供的一种服务器结构示意图,该服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器1422,如中央处理器(central processing units,cpu),存储器1432,一个或一个以上应用程序1442或数据1444的存储介质1430(例如一个或一个以上海量存储设备)。其中,存储器1432和存储介质1430可以是短暂存储或持久存储。存储在存储介质1430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,处理器1422可以设置为与存储介质1430通信,在服务器1400上执行存储介质1430中的一系列指令操作。
265.服务器1400还可以包括一个或一个以上电源1426,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1458,和/或,一个或一个以上操作系统1441,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
,freebsd
tm
等等。
266.上述实施例中由服务器所执行的步骤可以基于该图14所示的服务器结构。
267.其中,cpu 1422用于执行如下步骤:
268.获取所述待渲染内容中的目标待渲染子内容,所述目标待渲染子内容为所述n个待渲染子内容的一个;
269.根据所述目标待渲染子内容渲染得到渲染子画面时,生成渲染完成标识;
270.向其他渲染机发送所述渲染完成标识,所述其他渲染机为所述n个渲染机中除所述目标渲染机外的n-1个渲染机;
271.若从所述其他渲染机获取到n-1个所述渲染完成标识,则根据n个所述渲染完成标识生成统一完成标识,所述统一完成标识用于标识所述虚拟画面完成渲染的次序;
272.向导播机发送所述统一完成标识和所述渲染子画面,以便所述导播机根据所述统一完成标识和所述渲染子画面合成得到虚拟画面,所述虚拟画面对应的待渲染内容包括n个待渲染子内容,所述n个待渲染子内容通过n个渲染机分别进行画面渲染。
273.可选的,cpu 1422还可以执行本技术实施例中画面渲染方法任一具体实现方式的方法步骤。
274.参见图15,该图为本技术实施例提供的一种终端设备的结构示意图。图15示出的是与本技术实施例提供的终端设备相关的智能手机的部分结构的框图,该智能手机包括:射频(radio frequency,简称rf)电路1510、存储器1520、输入单元1530、显示单元1540、传感器1550、音频电路1560、无线保真(简称wifi)模块1570、处理器1580、以及电源1590等部件。本领域技术人员可以理解,图15中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
275.下面结合图15对智能手机的各个构成部件进行具体的介绍:
276.rf电路1510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1580处理;另外,将设计上行的数据发送给基站。
277.存储器1520可用于存储软件程序以及模块,处理器1580通过运行存储在存储器1520的软件程序以及模块,从而实现智能手机的各种功能应用以及数据处理。
278.输入单元1530可用于接收输入的数字或字符信息,以及产生与智能手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1530可包括触控面板1531以及其他输入设备1532。触控面板1531,也称为触摸屏,可收集用户在其上或附近的触摸操作,并根据预先设定的程式驱动相应的连接装置。除了触控面板1531,输入单元1530还可以包括其他输入设备1532。具体地,其他输入设备1532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
279.显示单元1540可用于显示由用户输入的信息或提供给用户的信息以及智能手机的各种菜单。显示单元1540可包括显示面板1541,可选的,可以采用液晶显示器(liquid crystal display,简称lcd)、有机发光二极管(organic light-emitting diode,简称oled)等形式来配置显示面板1541。
280.智能手机还可包括至少一种传感器1550,比如光传感器、运动传感器以及其他传感器。至于智能手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
281.音频电路1560、扬声器1561,传声器1562可提供用户与智能手机之间的音频接口。音频电路1560可将接收到的音频数据转换后的电信号,传输到扬声器1561,由扬声器1561转换为声音信号输出;另一方面,传声器1562将收集的声音信号转换为电信号,由音频电路1560接收后转换为音频数据,再将音频数据输出处理器1580处理后,经rf电路1510以发送给比如另一智能手机,或者将音频数据输出至存储器1520以便进一步处理。
282.处理器1580是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器1520内的软件程序和/或模块,以及调用存储在存储器1520内的数据,执行智能手机的各种功能和处理数据。可选的,处理器1580可包括一个或
多个处理单元。
283.智能手机还包括给各个部件供电的电源1590(比如电池),优选的,电源可以通过电源管理系统与处理器1580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
284.尽管未示出,智能手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
285.在本技术实施例中,该智能手机所包括的存储器1520可以存储程序代码,并将所述程序代码传输给所述处理器。
286.该智能手机所包括的处理器1580可以根据所述程序代码中的指令执行上述实施例提供的画面渲染方法。
287.本技术实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行上述实施例提供的画面渲染方法。
288.本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的画面渲染方法。
289.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:rom)、ram、磁碟或者光盘等各种可以存储程序代码的介质。
290.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
291.以上所述,仅为本技术的一种具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。因此,本技术的保护范围应该以权利要求的保护范围为准。
技术特征:
1.一种画面渲染方法,其特征在于,包括n个待渲染子内容的待渲染内容用于渲染得到一个虚拟画面,所述n个待渲染子内容通过n个渲染机分别进行画面渲染,针对所述n个渲染机中的目标渲染机,n为大于1的整数,所述方法包括:获取所述待渲染内容中的目标待渲染子内容,所述目标待渲染子内容为所述n个待渲染子内容的一个;根据所述目标待渲染子内容渲染得到渲染子画面时,生成渲染完成标识;向其他渲染机发送所述渲染完成标识,所述其他渲染机为所述n个渲染机中除所述目标渲染机外的n-1个渲染机;若从所述其他渲染机获取到n-1个所述渲染完成标识,则根据n个所述渲染完成标识生成统一完成标识,所述统一完成标识用于标识所述虚拟画面完成渲染的次序;向导播机发送所述统一完成标识和所述渲染子画面,以便所述导播机根据所述统一完成标识和所述渲染子画面合成得到所述虚拟画面。2.根据权利要求1所述的方法,其特征在于,所述获取所述待渲染内容中的目标待渲染子内容,包括:获取所述待渲染内容、用于标识所述目标渲染机的目标标识,以及标识与裁剪区域的对应关系;根据所述标识与裁剪区域的对应关系,确定所述目标标识对应的目标裁剪区域;根据所述目标裁剪区域,从所述待渲染内容中获取所述目标待渲染子内容。3.根据权利要求2所述的方法,其特征在于,所述标识与裁剪区域的对应关系是根据所述n个渲染机的显卡性能确定的,显卡性能越高的渲染机所对应的裁剪区域越大。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在根据所述目标待渲染子内容渲染所述渲染子内容的过程中,若预设时间内没有得到所述渲染子内容,生成渲染完成标识。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取用于表征所述渲染完成标识生成时间的时间戳;所述向其他渲染机发送所述渲染完成标识,包括:向其他渲染机发送所述渲染完成标识和用于表征所述渲染完成标识生成时间的时间戳;所述根据n个所述渲染完成标识生成统一完成标识,包括:从n个所述渲染完成标识对应的时间戳中,确定时间最晚的时间戳;将所述时间最晚的时间戳作为所述统一完成标识。6.根据权利要求1所述的方法,其特征在于,所述目标待渲染子内容包括所述渲染子画面对应的待渲染内容和位于所述渲染子画面周围的画面对应的待渲染内容,所述方法还包括:根据所述目标待渲染子内容渲染得到待定渲染子画面;获取所述渲染子画面的尺寸信息;根据所述渲染子画面的尺寸信息裁剪所述待定渲染子画面,得到所述渲染子画面。7.根据权利要求1所述的方法,其特征在于,所述向导播机发送所述统一完成标识和所述渲染子画面,包括:
通过用于加速多机间图形处理器通信技术,向导播机发送统一完成标识和渲染子画面。8.根据权利要求1所述的方法,其特征在于,所述向导播机发送所述统一完成标识和所述渲染子画面,包括:根据所述渲染子画面和所述统一完成标识生成头文件,所述头文件用于指示所述导播机合成得到所述虚拟画面;根据所述头文件和所述渲染子画面生成数据流;向所述导播机发送所述数据流。9.根据权利要求8所述的方法,其特征在于,所述向所述导播机发送所述数据流,包括:根据固定比特率,将所述数据流分割为多份子数据流,所述固定比特率是根据时间长度和数据流的大小确定的;向所述导播机逐一发送所述多份子数据流。10.根据权利要求8所述的方法,其特征在于,所述方法还包括:获取备份渲染机的标识,所述备份渲染机用于根据所述目标待渲染子内容渲染得到渲染子内容;所述根据所述渲染子画面和所述统一完成标识生成头文件,包括:根据所述备份渲染机的标识、所述渲染子画面和所述统一完成标识生成头文件。11.一种画面渲染方法,其特征在于,所述方法包括:接收n个渲染机发送的m个渲染子画面,以及所述m个渲染子画面分别对应的m个统一完成标识,所述统一完成标识用于标识所述虚拟画面完成渲染的次序,n为小于或等于m的正整数;从所述m个渲染子画面中获取具有同一个统一完成标识的n个渲染子画面;合成所述n个渲染子画面,得到所述虚拟画面。12.根据权利要求11所述的方法,其特征在于,所述接收n个渲染机发送的m个渲染子画面,包括:接收n个渲染机发送的m个数据流,所述数据流包括头文件和渲染子画面,所述头文件为根据所述渲染子画面和所述统一完成标识生成的;将所述头文件存储至系统内存中;将所述渲染子画面存储至显存中。13.根据权利要求12所述的方法,其特征在于,所述头文件还包括备份渲染机的标识,所述备份渲染机用于根据所述目标待渲染子内容渲染得到渲染子内容,所述方法还包括:若从所述m个数据流中确定出异常数据流;获取所述异常数据流中的头文件;从所述异常数据流中的头文件中获取备份渲染机的标识;根据所述备份渲染机的标识获取备份渲染机渲染得到的渲染子画面。14.一种画面渲染装置,其特征在于,包括n个待渲染子内容的待渲染内容用于渲染得到一个虚拟画面,所述n个待渲染子内容通过n个渲染机分别进行画面渲染,针对所述n个渲染机中的目标渲染机,所述目标渲染机包括画面渲染装置,n为大于1的整数,所述装置包括:获取单元、第一生成单元、第一发送单元、第二生成单元和第二发送单元;
所述获取单元,用于获取所述待渲染内容中的目标待渲染子内容,所述目标待渲染子内容为所述n个待渲染子内容的一个;所述第一生成单元,用于根据所述目标待渲染子内容渲染得到渲染子画面时,生成渲染完成标识;所述第一发送单元,用于向其他渲染机发送所述渲染完成标识,所述其他渲染机为所述n个渲染机中除所述目标渲染机外的n-1个渲染机;所述第二生成单元,用于若从所述其他渲染机获取到n-1个所述渲染完成标识,则根据n个所述渲染完成标识生成统一完成标识,所述统一完成标识用于标识所述虚拟画面完成渲染的次序;所述第二发送单元,用于向导播机发送所述统一完成标识和所述渲染子画面,以便所述导播机根据所述统一完成标识和所述渲染子画面合成得到所述虚拟画面。15.一种画面渲染装置,其特征在于,所述装置包括:接收单元、获取单元和合成单元;所述接收单元,用于接收n个渲染机发送的m个渲染子画面,以及所述m个渲染子画面分别对应的m个统一完成标识,所述统一完成标识用于标识所述虚拟画面完成渲染的次序,n为小于或等于m的正整数;所述获取单元,用于从所述m个渲染子画面中获取具有同一个统一完成标识的n个渲染子画面;所述合成单元,用于合成所述n个渲染子画面,得到所述虚拟画面。16.一种画面渲染系统,其特征在于,所述系统包括多个渲染机和导播机;所述渲染机,用于执行权利要求1-10中任意一项所述的方法;所述导播机,用于执行权利要求11-13中任一项所述的方法。17.根据权利要求16所述的系统,其特征在于,所述系统还包括交换机,以便所述渲染机通过所述交换机将所述渲染子画面发送给所述导播机。18.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;所述处理器用于根据所述计算机程序中的指令执行权利要求1-10中任意一项所述的方法,或执行权利要求11-13中任意一项所述的方法。19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-10中任意一项所述的方法,或执行权利要求11-13中任意一项所述的方法。20.一种包括计算机程序的计算机程序产品,其特征在于,当其在计算机设备上运行时,使得所述计算机设备执行权利要求1-10中任意一项所述的方法,或执行权利要求11-13中任意一项所述的方法。
技术总结
本申请实施例公开了一种画面渲染方法和相关装置,目标渲染机获取目标待渲染子内容,目标待渲染子内容是待渲染内容包括的N个待渲染子内容中的一个,在对目标待渲染子内容进行渲染得到渲染子画面时,生成渲染完成标识,向其他渲染机发送该渲染完成标识。若获取到其他渲染机分别发送的N-1个渲染完成标识,说明N个渲染机均完成对各自负责的待渲染子内容的渲染,则根据N个渲染完成标识生成统一完成标识。向导播机发送统一完成标识和渲染子画面,以便导播机能够根据统一完成标识和渲染子画面合成得到对应的虚拟画面。由此,提高属于一个虚拟画面的多个渲染子画面合成率。拟画面的多个渲染子画面合成率。拟画面的多个渲染子画面合成率。
技术研发人员:李锐 李想 周鑫
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2022.09.28
技术公布日:2023/7/31
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:有机金属络合物涂布液和近红外线吸收膜的制作方法 下一篇:阵列天线的制作方法