编码方法及电子设备与流程
未命名
09-24
阅读:89
评论:0

1.本技术实施例涉及编解码领域,尤其涉及一种编码方法及电子设备。
背景技术:
2.随着人们对渲染出的画面质量要求逐渐提高,渲染过程中模拟着色效果的手段也从之前的模拟直接光照着色效果(即模拟光线进行一次反射的着色效果),逐渐过渡到模拟间接光照着色效果(即模拟光线进行多次反射的着色效果),以使画面更逼真。其中,探针是模拟间接光照着色效果的方式之一。
3.目前,端云协同的场景中,由云端生成探针数据,然后将探针数据压缩后发送给端侧。端侧在接收到码流后,对码流进行解压,得到探针数据,然后在渲染过程中,根据解码得到的探针数据计算3d(3-dimension,三维)场景中由物体反射光线所产生的间接着色效果。
技术实现要素:
4.本技术提供一种编码方法及电子设备。该方法与现有技术相比,在同等渲染效果的情况下,能够降低码率;或,在同等码率的情况下,能够提高渲染效果。
5.第一方面,本技术实施例提供一种编码方法,该方法包括:首先,获取探针数据,探针数据与三维场景中的一个或多个探针对应,探针数据用于第二设备在渲染过程中确定三维场景中对象的着色效果,其中,三维场景中对象与该三维场景中的三维模型对应,可以包括物的模型或人的模型;接着,对探针数据进行数据形式转换,以得到中间数据,其中,数据形式转换包括域转换;随后,对中间数据进行编码,以得到对应的码流。这样,通过对探针数据进行数据形式转换,来将探针数据转换为更紧凑的表示形式,相对于现有技术而言,在同等渲染效果的情况下,能够降低码率;或者,通过对探针数据进行数据形式转换,来增加渲染过程重要性更高的数据在码流中占用的比特数,相对于现有技术而言,在同等码率的情况下,渲染效果更好。
6.示例性的,本技术的编码方法可以应用于n(n为大于1的整数)端协同渲染的场景中,如云游戏、云展览、室内装修、服装设计、建筑设计等场景,本技术对此不作限制。其中,第一设备可以是服务器,也可以是终端;第二设备可以是终端。
7.例如,本技术的编码方法应用于端云协同渲染的场景中,其中,第一设备为服务器,第二设备为终端,如个人电脑、手机、vr(virtual reality,虚拟现实)穿戴设备等终端设备。
8.示例性的,域转换可以是指将数据的表示形式从一个域转换到另一个域。其中,域可以按照需求从不同角度进行划分,例如:
9.从是否归一化的角度划分,可以划分为:归一化域和非归一化域。
10.从色彩空间的角度划分,可以划分为:rgb域、yuv域、xyz域和lab域。
11.从数值关系的角度划分,可以划分为:线性域和非线性域,其中,非线性域可以如指数域、pq(perceptual quantization,感知量化)域、hlg(hybird log gamma,混合对数伽
马)域等。
12.从数值表示形式的角度划分,可以划分为:图像域和变换域。示例性的,图像域可以是指采用图像表示的域。示例性的,变换域可以是指使用变换基底函数与对应的变换系数表示的域;对于变换域中的数据y(t),可以使用x个变换基底e_1(t)~e_x(t)对其进行近似,使得数据y(t)近似等于x个变换基底与对应变换系数相乘的和。其中,变换基底包括但不限于:球谐函数基底、球面小波基底、特征向量等,本技术对此不作限制。
13.示例性的,rgb域、yuv域、xyz域和lab域分别指的是cie 1931rgb色彩空间、yuv色彩空间(包括ycbcr、ypbpr、ycocg等变种)、cie 1931xyz色彩空间、cielab色彩空间。
14.示例性的,可以采用任一种视频编码方式,对中间数据进行编码,以得到探针数据对应的码流。例如,可以对中间数据进行hevc(high efficiency video coding,高效视频编码)编码,以得到对应的码流。又例如,可以对中间数据进行avc(advancedvideo coding,高级视频编码)编码,以得到对应的码流。还例如,可以对中间数据进行vvc(versatile video coding,多功能视频编码)编码,以得到对应的码流。再例如,可以对中间数据进行熵编码,以得到对应的码流。再例如,还可以采用avs(audio video coding standard,音视频编码标准)等其他的视频编码方式对中间数据进行编码,以得到对应的码流,本技术对此不作限制。
15.根据第一方面,对探针数据进行数据形式转换,以得到中间数据,包括:对探针数据进行第一处理,以得到转换数据;对转换数据进行第二处理,以得到中间数据;其中:当第一处理是域转换时,第二处理包括:量化和/或第一方式重排布;当第二处理是域转换时,第一处理包括:量化和/或第一方式重排布。这样,可以采用域转换和量化组合的方式,或者,域转换和第一方式重排布组合的方式,或者,域转换和量化及第一方式重排布组合的方式,来实现对探针数据进行数据形式转换。由于量化和第一方式重排布均可以进一步将数据转换为更紧凑的表示形式,进而采用域转换与量化和/或第一方式重排布组合的方式,来实现对探针数据进行数据形式转换,能够进一步降低码率。
16.应该理解的是,采用域转换与量化和/或第一方式重排布组合时,本技术不限制域转换、量化以及第一方式重排布的执行顺序,也不限制域转换、量化以及第一方式重排布中任一种处理方式被执行的次数。
17.示例性的,量化可以包括均匀量化或非均匀量化;其中,非均匀量化包但不限于:u-law量化、a-law量化等,本技术对此不作限制。此外,量化还可以包括自适应量化,以及其他类型的量化,本技术对此也不作限制。
18.示例性的,本技术的转换数据可以包括下述实施例中的转换数据1~转换数据15中的至少一种。
19.根据第一方面,或者以上第一方面的任意一种实现方式,对探针数据进行数据形式转换,以得到中间数据,还包括:在对探针数据进行第一处理之前,对探针数据进行第三处理;其中,第三处理以下至少一种:域转换、量化和第一方式重排布。这样,能够增加对探针数据进行数据形式转换的次数,进而进一步降低码率。
20.根据第一方面,或者以上第一方面的任意一种实现方式,对转换数据进行第二处理之后,得到中间数据之前,该方法还包括:对第二处理后的数据进行第二方式重排布,以得到中间数据,其中,第二方式重排布为将第二处理后的数据填充至yuv平面。这样,便于压
缩,也可以进一步降低码率。
21.根据第一方面,或者以上第一方面的任意一种实现方式,当探针数据为光照数据,且光照数据包括多个通道时,第一方式重排布包括以下至少一种:丢弃部分通道的数据、将光照数据转换为预设精度、或将光照数据进行维度转换。
22.示例性的,预设精度可以按照需求,设置为大于或等于精度阈值,以保证发送至第二设备的光照数据的精度,进而保证渲染效果。其中,精度阈值可以按照需求设置,如精度阈值为16bit浮点数,则预设精度可以为设置为16bit浮点数,或32bit浮点数,本技术对此不作限制。此外,由于不同应用场景中生成的光照数据的精度可能不同,进而通过将数据转换为预设精度,能够将不同应用场景中的光照数据转换为同一精度,便于后续的数据形式转换。
23.需要说明的是,“将光照数据转换为预设精度”中的“光照数据”,可以是原始的光照数据,或者域转换后的光照数据,或者量化后的光照数据,或者丢弃部分通道的数据后的光照数据,或者维度转换后的光照数据。
24.需要说明的是,“将光照数据进行维度转换”中的“光照数据”,可以是原始的光照数据,或者域转换后的光照数据,或者量化后的光照数据,或者丢弃部分通道的数据后的光照数据,或者转换为预设精度后的光照数据。
25.其中,丢弃的通道数据可以是对第二设备在渲染过程中确定三维场景中对象的着色效果响应较小的数据,因此丢弃部分通道的数据可以提高编码速度,进而可以降低探针数据由第一设备发送至第二设备的时延。
26.示例性的,光照数据可以用于描述探针周围对象的出射光照。
27.示例性的,探针数据可以为矩阵。示例性的,维度转换可以是指改变矩阵尺寸,例如,探针数据为100*1000*3的矩阵,通过维度转换可以将探针数据转换为50*60*100的矩阵。又例如,探针数据为150*240*3的矩阵,通过维度转换可以将探针数据转换为190*190*3的矩阵,并用无效数据补足不足的部分。
28.根据第一方面,或者以上第一方面的任意一种实现方式,当探针数据为可见性数据,且可见性数据包括多个通道时,第一方式重排布包括以下至少一种:通道拆分、将可见性数据转换为预设精度、或将可见性数据进行维度转换。
29.需要说明的是,“将可见性数据转换为预设精度”中的“可见性数据”,可以是原始的可见性数据,或者域转换后的可见性数据,或者量化后的可见性数据,或者通道拆分后的可见性数据,或者维度转换后的可见性数据。
30.需要说明的是,“将可见性数据进行维度转换”中的“可见性数据”,可以是原始的可见性数据,或者域转换后的可见性数据,或者量化后的可见性数据,或者通道拆分后的可见性数据,或者转换为预设精度后的可见性数据。
31.示例性的,通过通道拆分可以将可见性数据拆分为独立的多个通道;由于不同帧同一通道数据的相似度,相对于不同通道数据的相似度高,进而使得后续分别对各个通道数据进行编码更加容易,从而可以进一步降低码率。
32.示例性的,可见性数据可以用于描述探针周围对象与探针的距离的分布(也可以称为深度分布),可包括但不限于:距离数据、距离数据的方差和距离数据的平方等;本技术对此不作限制。
33.需要说明的是,当可见性数据为单通道数据时,第一方式重排布可以包括将可见性数据转换为预设精度和/或将可见性数据进行维度转换。
34.示例性的,预设精度可以按照需求,设置为大于或等于精度阈值,以保证发送至第二设备的可见性数据的精度,进而保证渲染效果。其中,精度阈值可以按照需求设置,如精度阈值为16bit浮点数,则预设精度可以为设置为16bit浮点数,或32bit浮点数,本技术对此不作限制。此外,由于不同应用场景中生成的可见性数据的精度可能不同,进而通过将数据转换为预设精度,能够将不同应用场景中的可见性数据转换为同一精度,便于后续的数据形式转换。
35.根据第一方面,或者以上第一方面的任意一种实现方式,域转换包括以下至少一种:非归一化域至归一化域的转换,线性域至非线性域的转换,rgb域至yuv域的转换,rgb域至xyz域的转换,rgb域至lab域的转换,以及图像域至变换域的转换。
36.根据第一方面,或者以上第一方面的任意一种实现方式,探针数据采用二维图像或球谐函数基底系数或球面小波基底系数表示。
37.根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:对一个或多个探针的属性数据进行编码,以得到码流,其中,属性数据包括:用于数据形式转换的第一属性数据和/或用于渲染过程中的第二属性数据。
38.示例性的,还可以先对探针的属性数据进行第三方式重排布,再对重排布后的属性数据进行编码。其中,第三方式重排布可以是拼接。
39.示例性的,第一属性数据包括以下至少一种:量化参数、域转换参数和重排布参数。
40.示例性的,域转换参数可以包括以下至少一种:归一化参数、指数转换参数、pq转换参数、hlg转换参数、色彩空间转换参数等,本技术对此不作限制。
41.根据第一方面,或者以上第一方面的任意一种实现方式,当探针数据包括光照数据和可见性数据时,码流包括:码流结构信息,其中,码流结构信息包括光照数据对应的中间数据的位置和/或可见性数据对应的中间数据的位置。
42.示例性的,码流结构信息还可以包括但不限于:探针数量,光照数据对应的中间数据的长度以及数据格式,光照数据对应的数据形式转换类型的执行顺序,可见性数据对应的中间数据的长度以及数据格式,可见性数据对应的数据形式转换类型的执行顺序,第一属性数据的位置、长度以及数据格式,以及第二属性数据的位置、长度以及数据格式,等等;本技术对此不作限制。其中,数据形式转换类型可以包括:各种第一方式重排布类型(如丢弃部分通道的数据、通道拆分、精度转换、维度转换等),各种归一化类型(如自适应归一化,固定参数归一化,最大最小归一化,z-score(标准分数)归一化等),各种域转换类型(如线性域至非线性域的转换,rgb域至yuv域的转换,rgb域至xyz域的转换,rgb域至lab域的转换,以及图像域至变换域的转换等),各种量化类型(如均匀量化、非均匀量化等),第二方式重排布类型如填入yuv平面等,本技术对此不作限制。应该理解的是,码流结构信息可以包括比上述的更多或更少的信息,本技术对此不作限制。此外,码流中也可以不包含码流结构信息,具体可以按照需求设置,本技术对此也不作限制。
43.根据第一方面,或者以上第一方面的任意一种实现方式,当探针数据包括光照数据和可见性数据时,方法还包括:根据光照数据的数据量、可见性数据的数据量和预设码
率,确定光照数据对应的第一目标码率和可见性数据对应的第二目标码率;对中间数据进行编码,以得到对应的码流,包括:按照第一目标码率对光照数据对应的中间数据进行编码,以及按照第二目标码率对可见性数据对应的中间数据进行编码,以得到码流。
44.示例性的,可以按照光照数据的数据量和可见性数据的数据量,确定第一目标码率和第二目标码率的比例。这样,可以为光照数据和可见性数据分配合适的码率,相对于光照数据对应的目标码率与可见性数据对应的目标码率是固定比例而言,本技术可以在同等码流的情况下,提升渲染效果。
45.根据第一方面,或者以上第一方面的任意一种实现方式,当探针数据包括光照数据和可见性数据时,方法还包括:根据光照数据的数据量、可见性数据的数据量和信道反馈信息,确定光照数据对应的编码方式和可见性数据对应的编码方式;其中,编码方式包括帧内编码或帧间编码;对中间数据进行编码,以得到对应的码流,包括:按照光照数据对应的编码方式对光照数据对应的中间数据进行编码,以及按照可见性数据对应的编码方式对可见性数据对应的中间数据进行编码,以得到码流。这样,能够对码流大小和渲染效果进行均衡。
46.示例性的,所述帧内编码为编码当前帧时只使用了当前帧信息的编码方式,例如可以使用hevc的帧内编码来完成探针数据组的帧内编码;示例性的,所述帧间编码为编码当前帧时使用了非当前帧信息的编码方式,例如可以使用hevc的帧间编码来完成探针数据组的帧间编码。
47.第二方面,本技术实施例提供一种第一设备,该第一设备包括:
48.数据获取模块,用于获取探针数据,探针数据与三维场景中的一个或多个探针对应,探针数据用于第二设备在渲染过程中确定三维场景中对象的着色效果;
49.数据形式转换模块,用于对探针数据进行数据形式转换,以得到中间数据,其中,数据形式转换包括域转换;
50.编码模块,用于对中间数据进行编码,以得到对应的码流。
51.根据第二方面,数据形式转换模块,包括:
52.域转换模块,用于对探针数据进行第一处理,以得到转换数据,其中,第一处理为域转换;或用于对转换数据进行第二处理,以得到中间数据,第二处理为域转换;
53.量化模块,用于对探针数据进行第一处理,以得到转换数据,其中,第一处理为量化;或用于对转换数据进行第二处理,以得到中间数据,第二处理为量化;
54.重排布模块,用于对探针数据进行第一处理,以得到转换数据,其中,第一处理为第一方式重排布;或用于对转换数据进行第二处理,以得到中间数据,第二处理为第一方式重排布。
55.根据第二方面,或者以上第二方面的任意一种实现方式,域转换模块,还用于在对探针数据进行第一处理之前,对探针数据进行第三处理,其中,第三处理为域转换;
56.量化模块,还用于在对探针数据进行第一处理之前,对探针数据进行第三处理,其中,第三处理为量化;
57.重排布模块,还用于在对探针数据进行第一处理之前,对探针数据进行第三处理,其中,第三处理为第一方式重排布。
58.根据第二方面,或者以上第二方面的任意一种实现方式,重排布模块,还用于对转
换数据进行第二处理之后,得到中间数据之前,对第二处理后的数据进行第二方式重排布,以得到中间数据,其中,第二方式重排布为将第二处理后的数据填充至yuv平面。
59.根据第二方面,或者以上第二方面的任意一种实现方式,当探针数据为光照数据,且光照数据包括多个通道时,第一方式重排布包括以下至少一种:丢弃部分通道的数据、将光照数据转换为预设精度、或将光照数据进行维度转换。
60.根据第二方面,或者以上第二方面的任意一种实现方式,当探针数据为可见性数据,且可见性数据包括多个通道时,第一方式重排布包括以下至少一种:通道拆分、将可见性数据转换为预设精度、或将可见性数据进行维度转换。
61.根据第二方面,或者以上第二方面的任意一种实现方式,域转换包括以下至少一种:非归一化域至归一化域的转换,线性域至非线性域的转换,rgb域至yuv域的转换,rgb域至xyz域的转换,rgb域至lab域的转换,以及图像域至变换域的转换。
62.根据第二方面,或者以上第二方面的任意一种实现方式,探针数据采用二维图像或球谐函数基底系数或球面小波基底系数表示。
63.根据第二方面,或者以上第二方面的任意一种实现方式,编码模块,还用于对一个或多个探针的属性数据进行编码,以得到码流,其中,属性数据包括:用于数据形式转换的第一属性数据和/或用于渲染过程中的第二属性数据。
64.根据第二方面,或者以上第二方面的任意一种实现方式,当探针数据包括光照数据和可见性数据时,码流包括:码流结构信息,其中,码流结构信息包括光照数据对应的中间数据的位置和/或可见性数据对应的中间数据的位置。
65.根据第二方面,或者以上第二方面的任意一种实现方式,该第一设备还包括:
66.码流负载均衡模块,用于当探针数据包括光照数据和可见性数据时,根据光照数据的数据量、可见性数据的数据量和预设码率,确定光照数据对应的第一目标码率和可见性数据对应的第二目标码率;
67.编码模块,具体用于按照第一目标码率对光照数据对应的中间数据进行编码,以及按照第二目标码率对可见性数据对应的中间数据进行编码,以得到码流。
68.根据第二方面,或者以上第二方面的任意一种实现方式,该第一设备还包括:
69.码流负载均衡模块,用于当探针数据包括光照数据和可见性数据时,根据光照数据的数据量、可见性数据的数据量和信道反馈信息,确定光照数据对应的编码方式和可见性数据对应的编码方式;其中,编码方式包括帧内编码或帧间编码;
70.编码模块,具体用于按照光照数据对应的编码方式对光照数据对应的中间数据进行编码,以及按照可见性数据对应的编码方式对可见性数据对应的中间数据进行编码,以得到码流。
71.第二方面以及第二方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二方面以及第二方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
72.第三方面,本技术实施例提供一种电子设备,包括:存储器和处理器,存储器与处理器耦合;存储器存储有程序指令,当程序指令由处理器执行时,使得电子设备执行第一方面或第一方面的任意可能的实现方式中的编码方法。
73.第三方面以及第三方面的任意一种实现方式分别与第一方面以及第一方面的任
意一种实现方式相对应。第三方面以及第三方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
74.第四方面,本技术实施例提供一种芯片,包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括计算机指令;当处理器执行计算机指令时,使得电子设备执行第一方面或第一方面的任意可能的实现方式中的编码方法。
75.第四方面以及第四方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第四方面以及第四方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
76.第五方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序运行在计算机或处理器上时,使得计算机或处理器执行第一方面或第一方面的任意可能的实现方式中的编码方法。
77.第五方面以及第五方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第五方面以及第五方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
78.第六方面,本技术实施例提供一种计算机程序产品,计算机程序产品包括软件程序,当软件程序被计算机或处理器执行时,使得计算机或处理器执行第一方面或第一方面的任意可能的实现方式中的编码方法。
79.第六方面以及第六方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第六方面以及第六方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
80.第七方面,本技术提供一种存储有码流的计算机可读存储介质,其中,码流由前述第一方面或第一方面的任意可能的实现方式中的编码方法得到。
81.第七方面以及第七方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第七方面以及第七方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
附图说明
82.图1a为示例性示出的系统框架示意图;
83.图1b为示例性示出的三维场景中探针分布示意图;
84.图2a为示例性示出的编码框架示意图;
85.图2b为示例性示出的数据形式转换模块结构示意图;
86.图3a为示例性示出的编码流程示意图;
87.图3b为示例性示出的编码流程示意图;
88.图4a为示例性示出的编码流程示意图;
89.图4b为示例性示出的编码流程示意图;
90.图4c为示例性示出的编码流程示意图
91.图5为示例性示出的编码流程示意图;
92.图6为示例性示出的编码流程示意图;
93.图7为示例性示出的编码流程示意图;
94.图8为示例性示出的编码流程示意图;
95.图9为示例性示出的编码流程示意图;
96.图10为示例性示出的编码流程示意图;
97.图11为示例性示出的编码流程示意图;
98.图12为示例性示出的码流结构示意图;
99.图13为示例性示出的电子设备示意图;
100.图14a为示例性示出压缩效果示意图;
101.图14b为示例性示出压缩效果示意图
102.图15为示例性示出的装置的结构示意图。
具体实施方式
103.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
104.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
105.本技术实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
106.在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
107.在本技术实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
108.示例性的,本技术实施例可以应用到n端(也就是n个设备)协同渲染的场景中,其中,n为大于1的整数。
109.一种可能的场景中,可以由1个设备生成渲染输入信息(渲染输入信息可以包括三维模型(也可以称为3d(3-dimension,三维)模型,包括人的模型和/或物的模型)、探针数据等中的一种或多种,本技术对此不作限制;本技术以渲染输入信息为探针数据为例进行示例性说明),然后将探针数据分发给另外n-1个设备。另外n-1个设备接收到探针数据后,在渲染过程中可以根据探针数据,确定三维场景中对象(与三维模型对应)的着色效果;待渲染完成后,可以得到渲染后的图像。
110.一种可能的场景中,可以由n1(n1的取值范围为2~n,其中,n1可以等于2或n,n1为整数)个设备协同生成探针数据,其中,n1个设备中每个设备生成探针数据的一部分。接着,这n1个设备中每个设备将自身生成的部分探针数据,分发给另外n-1个设备。其中,n1个设备接收到探针数据后,在渲染过程中,可以根据接收到的探针数据和自身生成的部分探针
数据,确定三维场景中对象的着色效果;待渲染完成后,可以得到渲染后的图像。另外n-n1个设备接收到探针数据后,在渲染过程中,可以根据接收到的探针数据,确定三维场景中对象的着色效果;待渲染完成后,可以得到渲染后的图像。
111.为了便于说明,可以将n端协同渲染场景中生成探针数据的设备,称为第一设备,将用于渲染,且在渲染过程中根据探针数据确定三维场景中对象的着色效果的设备,称为第二设备;同一设备既可以是第一设备,也可以是第二设备,本技术对此不作限制。其中,第一设备可以是服务器,也可以是终端;第二设备可以是终端。
112.图1a为示例性示出的系统框架示意图。在图1a的实施例中,第一设备为布设在云端的计算中心服务器,第二设备为客户端,图1a为示例性示出的端云协同渲染系统框架示意图。
113.参照图1a,示例性的,端云协同渲染系统可以包括:计算中心服务器、边缘服务器和客户端;其中,边缘服务器可以包括n(n为大于1的整数)个,客户端可以包括k1+k2+......+kn个,k1、k2......kn均为正整数。计算中心服务器与n个边缘服务器连接,每个边缘服务器与至少一个客户端连接。如图1a所示,边缘服务器1与客户端11、客户端12、......、客户端k1这k1个客户端连接,边缘服务器2与客户端21、客户端22、......、客户端k2这k2个客户端连接,......,边缘服务器n与客户端n1、客户端n2、......、客户端kn这kn个客户端连接。
114.示例性的,客户端可以通过基站、wi-fi接入点等无线接入点接入网络,并通过网络与边缘服务器通信,或者客户端与边缘服务器也可以通过有线连接进行通信。边缘服务器也可以通过基站、wi-fi接入点等无线接入点接入网络,并通过网络与计算中心服务器通信,或者边缘服务器与计算中心服务器也可以通过有线连接进行通信。
115.示例性的,计算中心服务器可以是一个服务器,也可以是由多个服务器组成的服务器集群,或其他分布式系统,本技术对此不作限制。
116.示例性的,本技术不限制边缘服务器的数量n,具体可以根据实际应用场景设置,本技术对此不作限制。在一种可能的场景下,部分客户端也可以不与边缘服务器连接,而是直接与计算中心服务器连接;在另一种可能的场景下,所有客户端都不与边缘服务器连接,而是直接与计算中心服务器连接。
117.示例性的,本技术不限制每个边缘服务器所连接的客户端的数量,具体可以根据实际应用场景设置。此外,每个边缘服务器所连接的客户端的数量可以相同,也可以不同(即k1、k2......kn可以相等,也可以不等),具体可以根据实际应用场景设置,本技术对此也不作限制。
118.示例性的,客户端可以包括但不限于:手机(mobile phone)、个人电脑(personal computer,pc)、笔记本电脑、平板电脑、智慧电视、移动互联网设备(mobile internet device,mid)、可穿戴设备(如智能手表、智能眼镜或者智能头盔等),虚拟现实(virtual reality,vr)设备、增强现实(augmented reality,ar)设备、工业控制(industrial control)中的无线电子设备、无人驾驶(selfdriving)中的无线电子设备、远程手术(remote medical surgery)中的无线电子设备、智能电网(smart grid)中的无线电子设备、运输安全(transportation safety)中的无线电子设备、智慧城市(smart city)中的无线电子设备、智慧家庭(smart home)中的无线电子设备等。以下实施例对该客户端的具体
形式不做特殊限制。
119.应该理解的是,图1a所示的端云协同渲染系统框架仅是本技术端云协同渲染系统框架的一个示例,本技术的端云协同渲染系统中,计算中心服务器和边缘服务器可以是同一个服务器;或者本技术的端云协同渲染系统不包含边缘服务器,而是计算中心服务器与各客户端连接,本技术对此不作限制。本技术以图1a所示的端云协同渲染系统框架为例进行示例性说明。
120.示例性的,计算中心服务,可以用于生成探针数据;例如,可以生成所有客户端共用的探针数据,以及每个客户端个性化的探针数据。
121.示例性的,边缘服务器,可以用于分发探针数据,还可以用于生成与边缘服务器连接的客户端个性化的探针数据。例如,当计算中心服务器生成了所有客户端共用的探针数据和每个客户端个性化探针数据时,边缘服务器可以分发计算中心服务器生成的探针数据。又例如,当计算中心服务器仅生成了所有客户端共用的探针数据时,边缘服务器可以生成与边缘服务器连接的客户端个性化的探针数据,然后可以分发计算中心服务器生成的探针数据和自身生成的探针数据。
122.示例性的,客户端,可以用于渲染以及显示渲染后的图像;其中,在渲染过程中,可以根据探针数据确定三维场景中对象的着色效果。
123.示例性的,云游戏、云展览、室内装修、服装设计、建筑设计等n端协同渲染的场景,均可以采用图1a所示的端云协同渲染系统框架实现。
124.例如,云游戏场景中,计算中心服务器接收到客户端11发送的视角切换指示后,可以生成目标视角对应游戏场景的探针数据;然后将探针数据发送给边缘服务器1,由边缘服务器1将该探针数据发送给客户端11。客户端11接收到探针数据后可以进行渲染,以及在渲染过程中根据接收到的探针数据,确定目标视角对应游戏场景中对象的着色效果;待渲染完成后,可以得到目标视角对应游戏场景的图像并显示。
125.例如,室内装修场景中,计算中心服务器接收到客户端21发送的添加家具指示后,可以生成添加目标家具后的客厅场景对应的探针数据;然后将探针数据发送给边缘服务器2,由边缘服务器2将该探针数据发送给客户端21。客户端21接收到探针数据后可以进行渲染,以及在渲染过程中根据接收到的探针数据,确定添加目标家具后的客厅场景中对象的着色效果;待渲染完成后,可以得到添加目标家具后的客厅图像并显示。
126.为了便于后续说明,以下对计算中心服务器生成探针数据的过程,以及客户端在渲染过程中,根据探针数据确定三维场景中对象的着色效果的过程进行介绍。
127.计算中心服务器生成探针数据的过程:
128.示例性的,计算中心服务器的渲染过程可以如下:将三维模型(可以包括人的模型或物的模型)加载到三维场景(也可以称为3d场景)中(这样可以将三维模型转换为三维场景中的对象);接着,可以对三维场景中的对象进行渲染,以得到当前帧(也就是渲染后的图像)。为了模拟三维场景中光线进行多次反射后,三维场景中对象的着色效果,可以在对三维场景中的对象进行渲染过程中,在三维场景中放置多个探针,采用探针探测周围环境,以得到探针数据;然后,根据探针数据,确定三维场景中对象的着色效果。
129.图1b为示例性示出的三维场景中探针分布示意图。图1b中每一个小球,代表一个探针,在图1b的实施例中,探针为ddgi(dynamic diffuse global illumination,动态漫反
射全局光照)探针。
130.参照图1b,示例性的,每个探针在三维场景中放置的位置,以及每个探针与其他探针之间的位置关系可以按照需求设置,本技术对此不作限制。例如,在图1b中,每个探针与其周围6个方向(正上方、正下方、正前方、正后方、正左方和正右方)上的6个探针之间的距离相等。此外,在三维场景中放置的探针的数量也可以按照需求设置,本技术对此也不作限制。
131.其中,在三维场景中放置多个探针后,可以按照场景需求,为每个探针配置对应的属性数据(该属性数据用于渲染过程中)。其中,属性数据包括但不限于:探针的类型(如反射探针、ddgi探针)、探针的启用标识、探针的位置、探针的位置偏移(例如,按照预设的方式放置探针后,可以得到各个探针的初始位置;为了获取更好的着色效果,可以调整部分探针的位置;这样,针对这些探针而言,调整后的位置与初始位置的偏移,可以称为探针的位置偏移。例如,按照图1b的方式放置探针后,每个探针与其周围6个探针之间的距离均相等;若调整了某一个探针的位置,则该探针与其周围6个探针之间的距离不等),等等;本技术对此不作限制。
132.示例性的,在三维场景中放置多个探针后,每个探针可以探测以其自身为中心的周围环境,即探测三维场景中以其自身为中心的周围对象的特性,并记录这些特性,作为该探针的环境数据。其中,环境数据可以包括:光照数据、颜色数据、可见性数据、法线方向、纹理坐标、材质信息等。光照数据可以用于描述探针周围对象的出射光照,可见性数据可以用于描述探针周围对象与探针的距离的分布(也可以称为深度分布),可包括但不限于:距离数据、距离数据的方差和距离数据的平方等;本技术对此不作限制。以下以生成光照数据和可见性数据为例进行示例性说明。
133.示例性的,可以采用ddgi算法,生成每个探针对应的光照数据和可见性数据;以下以当前帧的一个探针为例,对生成该探针的光照数据和可见性数据的过程进行说明。首先,采样若干条从该探针发出的光线,以及计算这若干条光线与三维场景中各对象的第一个交点。接着,计算探针的若干条光线中每条光线与三维场景中各对象的第一个交点之间的距离,得到初始距离数据;以及计算三维场景中各对象与若干条光线中每条光线的第一个交点的光照,得到初始光照数据。随后,可以将初始距离数据从离散域,转换成连续域的球面数据,具体的,可以在球面上使用cos^k核函数(k为正整数),对初始距离数据进行滤波处理,以得到候选距离数据。以及可以将初始距离数据的从离散域,转换成连续域的球面数据,具体的,可以在球面上使用cos^k核函数(k为正整数),对初始距离数据的平方进行滤波处理,以得到候选距离数据的平方。以及可以将初始光照数据从离散域,转换成连续域的球面数据,具体的,可以在球面上使用cos核函数,对初始光照数据进行滤波处理,以得到候选光照数据。然后,将该探针的候选距离数据,与上一帧的该探针的距离数据进行加权计算,得到当前帧的该探针的距离数据;将该探针的候选距离数据的平方,与上一帧的该探针的距离数据的平方进行加权计算,得到当前帧的该探针的距离数据的平方;以及将该探针的候选光照数据,与上一帧的该探针的光照数据进行加权计算,得到当前帧的该探针的光照数据。这样,可以得到当前帧的所有探针的光照数据和可见性数据。
134.示例性的,每个探针的光照数据和可见性数据,均可以采用二维图像表示,也可以采用球谐函数基底系数表示,还可以采用球面小波基底系数表示,本技术对此不作限制。
135.需要说明的是,假设三维场景中包括m(m为正整数)个探针,其中,m1个探针具有光照数据、可见性数据和属性数据中的任意一种数据,m2个探针具有光照数据、可见性数据和属性数据中的任意两种数据,m3个探针具有光照数据、可见性数据和属性数据,m4个探针不具有探针数据。其中,m1+m2+m3+m4=m,m1、m2、m3和m1均为整数,m1、m2、m3和m4的数值,可以按照需求设置,本技术对此不作限制。
136.示例性的,探针数据可以包括上述用于渲染过程的属性数据和环境数据。
137.客户端在渲染过程中,根据探针数据确定三维场景中对象的着色效果的过程:
138.示例性的,在客户端的渲染过程中,探针数据会被用于计算三维场景中对象的着色效果。具体来说,在渲染每个像素时,首先获取该像素对应的3d空间的坐标,然后查找包围该坐标的8个探针。接下来,通过探针的可见性数据计算每个探针对该像素的贡献权重,即通过距离判断探针与其3d坐标是否互相可见,若不可见,则权重为0,若可见,则再通过距离、距离的平方、探针的位置计算探针的贡献权重。之后,使用贡献权重对探针的光照数据进行加权平均,得到该像素的着色结果。
139.由于探针数据的数据量比较大,计算中心服务器可以将探针数据压缩后再发送给客户端,以降低服务器和客户端的带宽占用、客户端的渲染时延。
140.图2a为示例性示出的编码框架示意图。
141.参照图2a,示例性的,编码器可以包括:码流负载均衡模块,数据形式转换模块、第一重排布模块和编码模块。
142.示例性的,码流负载均衡模块,可以用于确定探针数据的目标码率以及编码方式(如帧内编码或帧间编码)。
143.示例性的,数据形式转换模块,可以用于对环境数据进行数据形式转换,以将环境数据转换为更为紧凑的表示形式;或者增加渲染过程所需的重要性更高的数据在码流中占用的比特数。
144.示例性的,第一重排布模块,可以用于对探针的属性数据进行重排布。其中,探针的属性数据可以包括用于数据形式转换的属性数据(后续称为第一属性数据),和上述用于渲染过程中的属性数据(后续称为第二属性数据)。
145.示例性的,编码模块,用于编码,以得到码流。
146.需要说明的是,码流负载均衡模块、数据形式转换模块和第一重排布模块执行的步骤,属于编码器编码流程中的步骤。
147.应该理解的是,图2a仅是本技术编码器的一个示例性,本技术的编码器可以具有比图2a更少的模块。例如,编码器包括:码流负载均衡模块、数据形式转换模块以及编码模块;又例如,编码器包括:数据形式转换模块、第一重排布模块以及编码模块;还例如,编码器包括:数据形式转换模块和编码模块;等等。此外,本技术的编码器可以具有比图2a更多的模块,本技术对此不作限制。
148.应该理解的是,图2a中的码流负载均衡模块,数据形式转换模块、第一重排布模块和编码模块可以是相互独立的模块,或者其中的任意两个及两个以上的模块是一个整体,本技术对此不作限制。此外,码流负载均衡模块,数据形式转换模块、第一重排布模块和编码模块是逻辑模块,编码器还可以划分为其他模块或者这些模块采用其他名称,本技术对此也不作限制。
149.应该理解的是,一种可能的方式中,编码器仅包括编码模块,码流负载均衡模块、数据形式转换模块和第一重排布模块,可以独立于编码器,本技术对此不作限制。本技术以图2a中的编码器为例进行示例性说明。
150.图2b为示例性示出的数据形式转换模块结构示意图。
151.参照图2b,示例性的,数据形式转换模块可以包括:量化模块、域转换模块和第二重排布模块。
152.示例性的,量化模块,可以用于将探针数据进行量化。
153.示例性的,域转换模块,可以用于将探针数据进行域转换。
154.示例性的,域转换可以是指将数据的表示形式从一个域转换到另一个域。其中,域可以按照需求从不同角度进行划分,例如:
155.从是否归一化的角度划分,可以划分为:归一化域和非归一化域。
156.从颜色的角度划分,可以划分为:rgb域、yuv域、xyz域和lab域。
157.从数值关系的角度划分,可以划分为:线性域和非线性域,其中,非线性域可以如指数域、pq(perceptual quantization,感知量化)域、hlg(hybird log gamma,混合对数伽马)域等。
158.从数值表示形式的角度划分,可以划分为:图像域和变换域。示例性的,图像域可以是指采用图像表示的域。示例性的,变换域可以是指使用变换基底函数与对应变换系数表示的域;对于变换域中的数据y(t),可以使用x个变换基底e_1(t)~e_x(t)对其进行近似,使得数据y(t)近似等于x个变换基底与对应变换系数相乘的和。其中,变换基底包括但不限于:球谐函数基底、球面小波基底、特征向量等,本技术对此不作限制。
159.示例性的,第二重排布模块,可以用于进行数据的重排布。
160.应该理解的是,图2b仅是本技术数据形式转换模块的一个示例性,本技术的数据形式转换模块可以具有比图2b更少的模块,例如,数据形式转换模块仅包括域转换模块;又例如,数据形式转换模块仅包括量化模块和域转换模块;再例如,数据形式转换模块仅包括域转换模块和第二重排布模块,本技术对此不作限制。此外,本技术的数据形式转换模块可以具有比图2b更多的模块,本技术对此也不作限制。
161.应该理解的是,图2b中的量化模块、域转换模块和第二重排布模块可以是相互独立的模块,或者其中的任意两个及两个以上的模块是一个整体,本技术对此不作限制。此外,量化模块、域转换模块和第二重排布模块是逻辑模块,数据形式转换模块还可以划分为其他模块或者这些模块采用其他名称,本技术对此也不作限制。
162.以下对第一设备的编码过程进行示例性说明。
163.图3a为示例性示出的编码流程示意图,编码流程可以包括s301,数据获取;s302,数据形式转换;s303,编码。
164.s301,数据获取,即获取探针数据。
165.示例性的,在n端协同渲染场景中,第一设备可以按照上述描述,生成当前帧的k(k为正整数,k小于或等于m)个探针的探针数据;接着,可以将k个探针的探针数据输入至编码器。这样,编码器可以获取到k个探针的探针数据,然后可以参照下述s302~s303对k个探针的探针数据进行编码,以得到探针数据对应的码流。
166.示例性的,在图3a的实施例中,任一探针的探针数据可以包括:光照数据和/或可
见性数据。
167.s302,数据形式转换,即对s301获取到的探针数据进行数据形式转换,以得到中间数据。
168.示例性的,在接收到k个探针的探针数据后,可以对k个探针的探针数据均进行数据形式转换,即将k个探针的探针数据由一种数据形式转换为另一种数据形式,一方面,能够将k个探针的探针数据转换为更紧凑的表示形式,便于压缩,进而相对于现有技术而言,在同等渲染效果的情况下,能够降低码率。另一方面,能够增加渲染过程所需的重要性更高的数据在码流中占用的比特数,从而相对于现有技术而言,在同等码率下,渲染效果更好。
169.示例性的,数据形式转换可以包括域转换。
170.示例性的,域转换可以包括以下至少一种:非归一化域至归一化域的转换,线性域至非线性域的转换,rgb域至yuv域的转换,rgb域至xyz域的转换,rgb域至lab域的转换,以及图像域至变换域的转换。应该理解的是,本技术还可以包括其他类型的域转换,本技术对此不作限制。
171.示例性的,非归一化域至归一化域的转换,即归一化。当域转换为非归一化域至归一化域的转换时,可以根据归一化参数,对k个探针的探针数据进行归一化,以得到k个探针的探针数据所对应的中间数据。示例性的,可以将k个探针的探针数据归一化至[0,1]内,此时,k个探针的探针数据所对应的中间数据属于[0,1]。
[0172]
其中,归一化可以包括但不限于:自适应归一化、固定参数归一化、最大最小归一化、z-score归一化等等,本技术对此不作限制。应该理解的是,本技术还可以包括其他类型的归一化,本技术对此不作限制。
[0173]
这样,通过对探针数据进行归一化,将探针数据转换到固定范围,使得探针数据的数值更集中,也就是将探针数据转换为更紧凑的表示形式,使得压缩更容易,从而相对于现有技术而言,在同等渲染效果的情况下,能够降低码率。
[0174]
示例性的,获取k个探针的探针数据是线性域的数据。当非线性域为指数域时,可以根据指数转换参数,将k个探针的探针数据由线性域转换至指数域,以得到k个探针的探针数据所对应的中间数据;此时,k个探针的探针数据所对应的中间数据属于指数域。
[0175]
示例性的,当非线性域为pq域时,可以采用pq曲线,将k个探针的探针数据由线性域转换至pq域,以得到k个探针的探针数据所对应的中间数据;此时,k个探针的探针数据所对应的中间数据属于pq域。
[0176]
示例性的,当非线性域为hlg域时,可以采用hlg曲线,将k个探针的探针数据由线性域转换至hlg域,以得到k个探针的探针数据所对应的中间数据;此时,k个探针的探针数据所对应的中间数据属于hlg域。
[0177]
这样,通过将探针数据由线性域转换至非线性域,可以增加渲染过程所需的重要性更高的数据在码流中占用的比特数,从而相对于现有技术而言,在同等码率的情况下,渲染效果更好。
[0178]
示例性的,获取k个探针的探针数据是采用rgb表示的数据。一种可能的方式中,可以按照rgb色彩空间至yuv 444色彩空间的转换方式,将k个探针的探针数据从rgb域转换为yuv域,以得到k个探针的探针数据所对应的中间数据;此时,k个探针的探针数据所对应的中间数据采用yuv表示。
[0179]
一种可能的方式中,可以按照rgb色彩空间至yuv 420色彩空间的转换方式,将k个探针的探针数据从rgb域转换为yuv域,以得到k个探针的探针数据所对应的中间数据;此时,k个探针的探针数据所对应的中间数据采用yuv表示。
[0180]
示例性的,按照rgb色彩空间至xyz色彩空间的转换方式,将k个探针的探针数据从rgb域转换为xyz域,以得到k个探针的探针数据所对应的中间数据,即k个探针的探针数据所对应的中间数据采用xyz表示。
[0181]
示例性的,按照rgb色彩空间至lab色彩空间的转换方式,将k个探针的探针数据从rgb域转换为lab域,以得到k个探针的探针数据所对应的中间数据,即k个探针的探针数据所对应的中间数据采用lab表示。
[0182]
这样,通过将k个探针的探针数据从rgb域转换至yuv域,能够去除各探针的探针数据的冗余,进而相对于现有技术而言,在同等渲染效果情况下,能够降低码率。或者,通过将k个探针的探针数据从rgb域转换至xyz域/lab域,能够使数据更符合人眼感知,进而相对于现有技术而言,在同等码率的情况下,能够提升渲染效果。
[0183]
示例性的,当获取的k个探针的探针数据均是采用二维图像表示时,可以对k个探针的探针数据进行分解(如采用pca(principal componentanalysis,主要成分分析)方式分解),使得每个探针的探针数据近似等于x个变换基底e_1(t)~e_x(t)与对应变换系数相乘的和,进而实现将k个探针的探针数据由图像域转换为变换域。
[0184]
示例性的,每个探针的探针数据理论上是等于无穷个或y个变换基底和对应变换系数相乘的和,而本技术仅采用有限的x(x《y)个变换基底e_1(t)~e_x(t)与对应的变换系数相乘的和,来近似表示每个探针的探针数据,实质上是丢弃了高阶的基底和对应的系数。而高阶的基底及系数对渲染效果影响较小;这样,通过将探针数据由图像域转换为变换域,能够降低所需压缩的数据量,进而相对于现有技术而言,在同等渲染效果的情况下,能够降低码率。
[0185]
应该理解的是,可以采用上述多种类型的域转换中的两种或两种以上类型的域转换,来实现对探针数据的数据形式转换,本技术对此不作限制。当采用两种或两种以上类型的域转换,来实现对探针数据的数据形式转换时,本技术不限制各种类型的域转换的执行顺序以及执行次数。
[0186]
例如,假设,采用归一化以及图像域至变换域的转换,来实现对探针数据的数据形式转换。一种可能的方式中,可以先对探针数据进行归一化;然后将归一化后的探针数据从图像域转换至变换域,以得到中间数据。一种可能的方式中,可以先将探针数据从图像域转换至变换域;然后对变换域的探针数据进行归一化,以得到中间数据。
[0187]
又例如,假设,采用归一化、rgb域至yuv域的转换以及线性域至指数域的转换,来实现对探针数据的数据形式转换。一种可能的方式中,可以先对探针数据进行归一化;然后,将归一化后的探针数据从线性域转换至指数域;随后,将指数域的数据从rgb域转换至yuv域,以得到中间数据。一种可能的方式中,可以先对探针数据进行归一化;然后,将归一化后的探针数据从rgb域转换至yuv域;随后,将yuv域的数据由线性域转换为指数域,以得到中间数据。一种可能的方式中,可以先按照归一化参数,对探针数据进行第一次归一化;然后,按照另一归一化参数,对归一化后的探针数据进行第二次归一化;接着,将两次归一化后的探针数据从rgb域转换至yuv域;随后,将yuv域的数据由线性域转换为指数域,以得
到中间数据。
[0188]
s303,编码,即对s302得到的中间数据进行编码,以得到对应的码流。
[0189]
示例性的,由于相邻帧的三维场景可能是相同的,进而相邻帧的探针数据会存在一定的关联性;因此若当前帧与上一帧的三维场景相同,则可以对当前帧的k个探针的探针数据所对应的中间数据进行帧间编码,以得到对应的码流。这样,能够在保证渲染效果的基础上,降低码率。若当前帧与上一帧的三维场景不同,则可以对当前帧的k个探针的探针数据所对应的中间数据进行帧内编码,以保证渲染效果。
[0190]
示例性的,可以采用任一种视频编码方式,对中间数据进行编码,以得到探针数据对应的码流。例如,可以对中间数据进行hevc(high efficiency video coding,高效视频编码)编码,以得到对应的码流。又例如,可以对中间数据进行avc(advanced video coding,高级视频编码)编码,以得到对应的码流。还例如,可以对中间数据进行vvc(versatile video coding,多功能视频编码)编码,以得到对应的码流。再例如,可以对中间数据进行熵编码,以得到对应的码流。再例如,还可以采用avs(audio video coding standard,音视频编码标准)等其他的视频编码方式对中间数据进行编码,以得到对应的码流。
[0191]
应该理解的是,本技术不限制对中间数据的视频编码方式。此外,对中间数据可以是有损压缩,也可以是无损压缩,具体可以按照需求设置,本技术对此也不作限制。
[0192]
示例性的,当探针数据包括光照数据时,s303得到的码流为光照数据对应的码流。当探针数据包括可见性数据时,s303得到的码流为可见性数据对应的码流。当探针数据包括光照数据和可见性数据时,s303得到的码流包括:光照数据对应的码流和可见性数据对应的码流。
[0193]
需要说明的是,s302所执行的步骤,属于编码流程中的步骤。
[0194]
这样,通过对探针数据进行数据形式转换,来将探针数据转换为更紧凑的表示形式,相对于现有技术而言,在同等渲染效果的情况下,能够降低码率;或者,通过对探针数据进行数据形式转换,来增加渲染过程重要性更高的数据在码流中占用的比特数,相对于现有技术而言,在同等码率的情况下,渲染效果更好。
[0195]
图3b为示例性示出的编码流程示意图。
[0196]
参照图3b(1),示例性的,获取的探针数据为光照数据。接着,对光照数据进行rgb域至yuv域的转换,以得到中间数据。之后,对中间数据进行hevc编码(或其他编码),以得到光照数据对应的码流。
[0197]
参照图3b(2),示例性的,获取的探针数据为光照数据。接着,对光照数据进行线性域至指数域的转换,以得到中间数据。之后,对中间数据进行hevc编码(或其他编码),以得到光照数据对应的码流。
[0198]
参照图3b(3),示例性的,获取的探针数据为光照数据。接着,对光照数据进行图像域至变换域的转换,以得到中间数据。之后,对中间数据进行熵编码(或其他编码),以得到光照数据对应的码流。
[0199]
参照图3b(4),示例性的,获取的探针数据为可见性数据。接着,对可见性数据进行归一化,以得到中间数据。之后,对中间数据进行熵编码(或其他编码),以得到可见性数据对应的码流。
[0200]
参照图3b(5),示例性的,获取的探针数据为光照数据。接着,对光照数据进行归一化以及rgb域至yuv域的转换,以得到中间数据。之后,对中间数据进行熵编码(或其他编码),以得到光照数据对应的码流。
[0201]
参照图3b(6),示例性的,获取的探针数据包括光照数据和可见性数据。接着,对光照数据和可见性数据进行归一化以及图像域至变换域的转换,以得到中间数据。之后,对中间数据进行熵编码(或其他编码),以得到光照数据对应的码流和可见性数据对应的码流。
[0202]
示例性的,数据形式转换还可以包括:量化和/或重排布。这样,可以采用域转换和量化组合的方式,或者,域转换和重排布组合的方式,或者,域转换和量化及重排布组合的方式,来实现对探针数据进行数据形式转换。由于量化和重排布均可以进一步将数据转换为更紧凑的表示形式,进而采用域转换与量化和/或重排布组合的方式,来实现对探针数据进行数据形式转换,能够进一步降低码率。
[0203]
应该理解的是,采用域转换与量化和/或重排布组合时,本技术不限制域转换、量化以及重排布的执行顺序,也不限制域转换、量化以及重排布中任一种处理方式被执行的次数。
[0204]
示例性的,量化可以包括均匀量化或非均匀量化;其中,非均匀量化可以包括但不限于:u-law量化、a-law量化等,本技术对此不作限制。此外,量化还可以包括自适应量化,以及其他类型的量化,本技术对此也不作限制。
[0205]
示例性的,重排布可以包括第一方式重排布和/或第二方式重排布。
[0206]
示例性的,当探针数据为光照数据,且光照数据包括多个通道时,第一方式重排布包括以下至少一种:丢弃部分通道的数据、将光照数据转换为预设精度、或将光照数据进行维度转换。
[0207]
需要说明的是,“将光照数据转换为预设精度”中的“光照数据”,可以是原始的光照数据,或者域转换后的光照数据,或者量化后的光照数据,或者丢弃部分通道的数据后的光照数据,或者维度转换后的光照数据。
[0208]
需要说明的是,“将光照数据进行维度转换”中的“光照数据”,可以是原始的光照数据,或者域转换后的光照数据,或者量化后的光照数据,或者丢弃部分通道的数据后的光照数据,或者转换为预设精度后的光照数据。
[0209]
示例性的,当探针数据为可见性数据,且可见性数据包括多个通道时,第一方式重排布包括以下至少一种:通道拆分、将可见性数据转换为预设精度、或将可见性数据进行维度转换。
[0210]
需要说明的是,“将可见性数据转换为预设精度”中的“可见性数据”,可以是原始的可见性数据,或者域转换后的可见性数据,或者量化后的可见性数据,或者通道拆分后的可见性数据,或者维度转换后的可见性数据。
[0211]
需要说明的是,“将可见性数据进行维度转换”中的“可见性数据”,可以是原始的可见性数据,或者域转换后的可见性数据,或者量化后的可见性数据,或者通道拆分后的可见性数据,或者转换为预设精度后的可见性数据。
[0212]
示例性的,第二方式重排布可以用于将数据(可以是指域转换后的探针数据,或量化后的探针数据,或第一方式重排布后的探针数据)填入yuv平面。
[0213]
以下对域转换与量化和/或重排布组合的多种方式进行说明。
[0214]
图4a为示例性示出的编码流程示意图。
[0215]
图4a(1)中的实施例中,描述的是域转换与量化组合的方式。参照图4a(1),示例性的,在获取探针数据后,可以先对探针数据进行域转换,以得到转换数据1;接着,对转换数据1进行量化,以得到中间数据。随后,对中间数据进行编码,以得到对应的码流。
[0216]
图4a(2)中的实施例中,描述的是域转换与重排布组合的方式。参照图4a(2),示例性的,在获取探针数据后,可以先对探针数据进行域转换,以得到转换数据1;接着,对转换数据1进行重排布,以得到中间数据。随后,对中间数据进行编码,以得到对应的码流。其中,图4a(2)中的重排布可以包括:第一方式重排布和/或第二方式重排布。
[0217]
图4a(3)中的实施例中,描述的是域转换、量化和重排布组合的方式。参照图4a(3),示例性的,在获取探针数据后,可以先对探针数据进行域转换,以得到转换数据1;接着,对转换数据1进行量化,以得到转换数据2;然后,对转换数据2进行重排布,以得到中间数据。随后,对中间数据进行编码,以得到对应的码流。
[0218]
图4a(4)中的实施例中,描述的是域转换、量化和第一方式重排布组合的方式。参照图4a(4),示例性的,在获取探针数据后,可以先对探针数据进行域转换,以得到转换数据1;接着,对转换数据1进行第一方式重排布,以得到转换数据3;然后,对转换数据3进行量化,以得到中间数据。随后,对中间数据进行编码,以得到对应的码流。
[0219]
图4a(5)中的实施例中,描述的是域转换、量化和重排布组合的另一种方式。参照图4a(5),示例性的,在获取探针数据后,可以先对探针数据进行域转换,以得到转换数据1;接着,对转换数据1进行第一方式重排布,以得到转换数据3;然后,对转换数据3进行量化,以得到转换数据4;随后,对转换数据4进行第二方式重排布,以得到中间数据。之后,对中间数据进行编码,以得到对应的码流。
[0220]
图4b为示例性示出的编码流程示意图。
[0221]
图4b(1)中的实施例中,描述的是域转换与量化组合的方式。参照图4b(1),示例性的,在获取探针数据后,可以先对探针数据进行量化,以得到转换数据5;接着,对转换数据5进行域转换,以得到中间数据。随后,对中间数据进行编码,以得到对应的码流。
[0222]
图4b(2)中的实施例中,描述的是域转换、量化和重排布组合的方式。参照图4b(2),示例性的,在获取探针数据后,可以先对探针数据进行量化,以得到转换数据5;接着,对转换数据5进行域转换,以得到转换数据6;随后,对转换数据6进行重排布,以得到中间数据。之后,对中间数据进行编码,以得到对应的码流。其中,图4b(2)中的重排布可以包括第一方式重排布和/或第二方式重排布。
[0223]
图4b(3)中的实施例中,描述的是域转换、量化和重排布组合的方式。参照图4b(3),示例性的,在获取探针数据后,可以先对探针数据进行量化,以得到转换数据5;接着,对转换数据5进行第一方式重排布,以得到转换数据7;随后,对转换数据7进行域转换,以得到中间数据。之后,对中间数据进行编码,以得到对应的码流。
[0224]
图4b(4)中的实施例中,描述的是域转换、量化和重排布组合的方式。参照图4b(4),示例性的,在获取探针数据后,可以先对探针数据进行量化,以得到转换数据5;接着,对转换数据5进行第一方式重排布,以得到转换数据7;随后,对转换数据7进行域转换,以得到转换数据8;然后对转换数据8进行第二方式重排布,以得到中间数据。之后,对中间数据进行编码,以得到对应的码流。
[0225]
图4c为示例性示出的编码流程示意图。
[0226]
图4c(1)中的实施例中,描述的是域转换与重排布组合的方式。参照图4c(1),示例性的,在获取探针数据后,可以先对探针数据进行第一方式的重排布,以得到转换数据9;接着,对转换数据9进行域转换,以得到中间数据。之后,对中间数据进行编码,以得到对应的码流。
[0227]
图4c(2)中的实施例中,描述的是域转换、重排布和量化组合的方式。参照图4c(2),示例性的,在获取探针数据后,可以先对探针数据进行第一方式的重排布,以得到转换数据9;接着,对转换数据9进行域转换,以得到转换数据10;随后,对转换数据10进行量化,以得到中间数据。之后,对中间数据进行编码,以得到对应的码流。
[0228]
图4c(3)中的实施例中,描述的是域转换、重排布和量化组合的方式。参照图4c(3),示例性的,在获取探针数据后,可以先对探针数据进行第一方式的重排布,以得到转换数据9;接着,对转换数据9进行量化,以得到转换数据11;随后,对转换数据11进行域转换,以得到中间数据。之后,对中间数据进行编码,以得到对应的码流。
[0229]
图4c(4)中的实施例中,描述的是域转换和重排布组合的方式。参照图4c(4),示例性的,在获取探针数据后,可以先对探针数据进行第一方式的重排布,以得到转换数据9;接着,对转换数据9进行域转换,以得到转换数据10;随后,对转换数据10进行第二方式重排布,以得到中间数据。之后,对中间数据进行编码,以得到对应的码流。
[0230]
图4c(5)中的实施例中,描述的是域转换、重排布和量化组合的方式。参照图4c(5),示例性的,在获取探针数据后,可以先对探针数据进行第一方式的重排布,以得到转换数据9;接着,对转换数据9进行域转换,以得到转换数据10;随后,对转换数据10进行量化,以得到转换数据12;然后,对转换数据12第二方式重排布,以得到中间数据。之后,对中间数据进行编码,以得到对应的码流。
[0231]
图4c(6)中的实施例中,描述的是域转换、重排布和量化组合的方式。参照图4c(6),示例性的,在获取探针数据后,可以先对探针数据进行第一方式的重排布,以得到转换数据9;接着,对转换数据9进行量化,以得到转换数据11;随后,对转换数据11进行域转换,以得到转换数据13;然后,对转换数据13进行第二方式重排布,以得到中间数据。之后,对中间数据进行编码,以得到对应的码流。
[0232]
图4c(7)中的实施例中,描述的是域转换、重排布和量化组合的方式。参照图4c(7),示例性的,在获取探针数据后,可以先对探针数据进行第一方式的重排布,以得到转换数据9;接着,对转换数据9进行域转换,以得到转换数据10;随后,对转换数据10进行第一方式重排布,以得到转换数据14;然后,对转换数据14进行域转换,以得到转换数据15;随后,对转换数据15进行第二方式重排布,以得到中间数据。之后,对中间数据进行编码,以得到对应的码流。
[0233]
需要说明的是,图4c(7)中对探针数据进行第一方式的重排布,以得到转换数据9中的第一方式重排布,可以包括以下至少一种:丢弃部分通道的数据,通道拆分,将数据转换为预设精度。对转换数据10进行第一方式重排布,以得到转换数据14中的第一方式重排布,可以是维度转换。对转换数据9进行域转换,以得到转换数据10中的域转换,可以是由图像域至球谐函数域的转换。对转换数据14进行域转换,以得到转换数据15中的域转换,可以是球谐函数域至特征向量域的转换。
[0234]
需要说明的是,图4a(1)~图4a(5)、图4b(1)~图4b(4)以及图4c(1)~图4c(6)中的域转换,可以包括以下至少一种:归一化,线性域至非线性域的转换,rgb域至yuv域的转换,rgb域至xyz域的转换,rgb域至lab域的转换,以及图像域至变换域的转换。此外,本技术不限制图4a(1)~图4a(5)、图4b(1)~图4b(4)以及图4c(1)~图4c(6)中各种类型的域转换的执行次数,以及不同种类型的域转换的执行顺序。
[0235]
需要说明的是,图4a(1)~图4a(5)、图4b(1)~图4b(4)以及图4c(1)~图4c(6)中的量化可以是均匀量化和/或非均匀量化,且本技术不限制图4a(1)~图4a(5)、图4b(1)~图4b(4)以及图4c(1)~图4c(6)中各种类型的量化的执行次数,以及不同种类型的量化的执行顺序。
[0236]
需要说明的是,图4a(1)~图4a(5)、图4b(1)~图4b(4)以及图4c(1)~图4c(6)中的第一方式重排布可以包括以下至少一种:丢弃通道,拆分通道,将数据转换为预设精度,维度转换。此外,本技术不限制图4a(1)~图4a(5)、图4b(1)~图4b(4)以及图4c(1)~图4c(6)中各种类型的第一方式重排布的执行次数,以及不同种类型的第一方式重排布的执行顺序。
[0237]
以下以如图4c(5)所示的编码流程为例,对光照数据的编码过程进行详细说明。
[0238]
图5为示例性示出的编码流程示意图,编码流程可以包括:s501,数据获取;s502,通道丢弃;s503,精度转换;s504,自适应归一化;s505,线性域至指数域的转换;s506,rgb域至yuv域的转换;s507,均匀量化;s508,填入yuv平面;s509,hevc编码。在图5的实施例中,光照数据采用二维图像表示。其中,转换数据9包括转换数据9a和转换数据9b;转换数据10包括转换数据10a、转换数据10b和转换数据10c。
[0239]
s501,数据获取,即获取光照数据,其中,光照数据采用二维图像表示。
[0240]
示例性的,k个探针的光照数据可以是单像素由rgb三通道构成的二维图像,也可以是单像素由rgba四通道构成的二维图像。其中,每一个探针可以对应二维图像中的多个像素。
[0241]
示例性的,本技术不限制每个像素的rgb的格式,如可以是r11g11b10f(r通道和g通道采用11bit的浮点数表示,b通道采用10bit浮点数表示),也可以是rgb9e5(r通道、b通道以及g通道,均采用9bit的整数表示,共用5bit的整数表示的指数位)等。
[0242]
示例性的,本技术不限制每个像素的rgba的格式,如可以是rgb10a2(r通道、b通道以及g通道均采用10bit的整数表示,a通道采用2bit的整数表示)、也可以是rgba16f(r通道、b通道、g通道以及a通道,均采用16bit的浮点数表示)等。
[0243]
s502,通道丢弃,若s501获取到的光照数据包括rgba四个通道,则丢弃光照数据中的a通道,以得到转换数据9a。
[0244]
示例性的,若光照数据包括rgba四个通道,则丢弃光照数据中的a通道,以得到转换数据9a。其中,转换数据9a也是单像素由rgb三个通道构成的二维图像。
[0245]
示例性的,若光照数据包括rgb三个通道,则可以不执行s502,在执行完s501后,直接跳转执行s503。
[0246]
s503,精度转换,即将s502得到的转换数据9a转换成预设精度,以得到转换数据9b。
[0247]
示例性的,预设精度可以按照需求,设置为大于或等于精度阈值,以保证发送至第
二设备的光照数据的精度,进而保证渲染效果。其中,精度阈值可以按照需求设置,如精度阈值为16bit浮点数,则预设精度可以为设置为16bit浮点数,或32bit浮点数,本技术对此不作限制。
[0248]
示例性的,可以将转换数据9a中每个像素的每个通道(r通道、g通道以及b通道)数据,均转换为预设精度,以得到转换数据9b。其中,转换数据9b也是单像素由rgb三个通道构成的二维图像,且每个通道数据为预设精度。
[0249]
此外,由于不同应用场景中生成的光照数据的精度可能不同,进而通过s503能够将不同应用场景中的光照数据转换为同一精度,便于后续的数据形式转换。
[0250]
s504,自适应归一化,即对s503得到的转换数据9b进行自适应归一化,以得到转换数据10a。
[0251]
一种可能的方式中,可以确定转换数据9b中所有像素的r通道数据的最大值,将r通道数据的最大值作为归一化参数;接着,分别将转换数据9b中每个像素的r通道数据除以该归一化参数,来对转换数据9b中每个像素的r通道数据进行归一化,进而实现将转换数据9b中每个像素的r通道数据归一化至[0,1]内。对应的,可以按照针对转换数据9b中所有像素的r通道数据归一化的方式,对转换数据9b中所有像素的g通道数据和b通道数据分别进行归一化,以实现将转换数据9b中每个像素的g通道数据,以及b通道数据归一化至[0,1]内;这样,可以得到转换数据10a。其中,转换数据10a也是单像素由rgb三个通道构成的二维图像,且每个通道数据为预设精度,且每个通道数据属于[0,1]。
[0252]
一种可能的方式中,可以确定转换数据9b中所有像素的rgb三个通道数据的最大值,将rgb三个通道数据的最大值作为归一化参数。接着,针对转换数据9b中一个像素,可以将该像素的r通道数据除以该归一化参数,将该像素的g通道数据除以该归一化参数,以及将该像素的b通道数据除以该归一化参数,来对转换数据9b中该像素的rgb三通道数据进行归一化。这样,能够实现将转换数据9b中每个像素的rgb三通道数据均归一化至[0,1]内。这样,也可以得到转换数据10a。
[0253]
应该理解的是,s504中的自适应归一化,可以替换为固定参数归一化、最大最小归一化以及z-score归一化等各种类型的归一化中的任意一种,本技术对此不作限制。
[0254]
固定参数归一化:可以预先设置预设固定参数,将该预设固定参数作为归一化参数。接着,针对转换数据9b中一个像素,可以将该像素的r通道数据除以该归一化参数,将该像素的g通道数据除以该归一化参数,以及将该像素的b通道数据除以该归一化参数,来对转换数据9b中该像素的rgb三通道数据进行归一化。这样,能够实现将转换数据9b中每个像素的rgb三通道数据均归一化至[0,1]内;进而也可以得到转换数据10a。
[0255]
最大最小归一化:一种可能的方式中,可以确定转换数据9b中所有像素的r通道数据的最大值和最小值,以及计算r通道数据的最大值和最小值之间的差值,得到差值q1。接着,针对转换数据9b中一个像素,计算该像素的r通道数据与最小值的差值,得到差值f1;采用差值f1除以差值q1,来对转换数据9b中该像素的r通道数据进行归一化。这样,能够实现将转换数据9b中每个像素的r通道数据归一化至[0,1]内。对应的,可以按照针对转换数据9b中所有像素的r通道数据归一化的方式,对转换数据9b中所有像素的g通道数据和b通道数据分别进行归一化,以实现将转换数据9b中每个像素的g通道数据,以及b通道数据归一化至[0,1]内;这样,可以得到转换数据10a。
[0256]
一种可能的方式中,可以确定转换数据9b中所有像素的rgb三通道数据的最大值和最小值,以及计算rgb三通道数据的最大值和最小值之间的差值,得到差值q2。接着,针对转换数据9b中一个像素,计算该像素的r通道数据与最小值的差值,得到差值f2并采用差值f2除以差值q2,来对转换数据9b中该像素的r通道数据进行归一化。以及计算该像素的g通道数据与最小值的差值,得到差值f3以及采用差值f3除以差值q2,来对二维图像中该像素的g通道数据进行归一化。以及计算该像素的b通道数据与最小值的差值,得到差值f4以及采用差值f4除以差值q2,来对转换数据9b中该像素的b通道数据进行归一化。这样,能够实现将转换数据9b中每个像素的rgb三通道数据均归一化至[0,1]内;进而也可以得到转换数据10a。
[0257]
z-score归一化:针对转换数据9b中一个像素,可以计算转换数据9b中所有像素的r通道的数据的均值和标准差,然后根据均值和标准差,对该像素的r通道的数据进行归一化。例如,可以参照如下公式进行z-score归一化:
[0258][0259]
其中,x为转换数据9b中一个像素的r通道的数据,x
*
为一个像素的r通道z-score归一化后的数据,e(x)为转换数据9b中所有像素r通道的数据的均值,为转换数据9b中所有像素r通道的数据的标准差。
[0260]
按照上述方式,可以对该像素的g通道的数据和b通道的数据进行z-score归一化。进而,按照上述方式,可以针对转换数据9b中所有像素的rgb三通道中每个通道的数据进行z-score归一化,在此不再赘述。
[0261]
s505,线性域至指数域的转换,即将s504得到的转换数据10a由线性域转换为指数域,以得到转换数据10b。
[0262]
示例性的,可以预先设置一指数转换参数(可以是指数值,如2.2、5.0等),然后可以计算转换数据10a的指数为该指数转换参数时所对应的值,来将转换数据10a从线性域转换至指数域,以得到转换数据10b。其中,转换数据10b也是单像素由rgb三个通道构成的二维图像,且每个通道数据为预设精度,且每个通道数据为指数域数据。
[0263]
应该理解的是,s505中的由线性域转换为指数域,可以替换为pq域或hlg域,本技术对此不作限制。
[0264]
示例性的,若s505为将转换数据10a由线性域转换为pq域,以得到转换数据10b,则可以采用pq曲线将转换数据10a映射至pq域,得到转换数据10b。此时,转换数据10b也是单像素由rgb三个通道构成的二维图像,且每个通道数据为预设精度,且每个通道数据为pq域数据。示例性的,可以采用pq曲线,分别针对二维图像中每个像素的rgb三通道中每个通道数据进行映射,以得到转换数据10b。
[0265]
示例性的,若s505为将转换数据10a由线性域转换为hlg域,以得到转换数据10b,则可以采用hlg曲线将转换数据10a映射至hlg域,得到转换数据10b。转换数据10b也是单像素由rgb三个通道构成的二维图像,且每个通道数据为预设精度,且每个通道数据为hlg域数据。示例性的,可以采用hlg曲线,分别针对二维图像中每个像素的rgb三通道中每个通道数据进行映射,以得到转换数据10b。
[0266]
s506,rgb域至yuv域的转换,即将s505得到的转换数据10b由rgb域转换为yuv域,以得到转换数据10c。
[0267]
一种可能的方式中,可以按照rgb色彩空间至yuv 444色彩空间的转换方式,将针对每个像素的rgb三通道数据,转换为yuv三个通道数据,以得到转换数据10c。其中,转换数据10c是单像素由yuv三个通道构成的二维图像,且每个通道数据为预设精度,且每个通道数据为指数域数据。其中,每个像素对应一个y通道、一个u通道和一个v通道。
[0268]
一种可能的方式中,可以按照rgb色彩空间至yuv 420色彩空间的转换方式,将针对每个像素的rgb三通道数据,转换为yuv三个通道数据,以得到转换数据10c。其中,转换数据10c是单像素由yuv三个通道构成的二维图像,且每个通道数据为预设精度,且每个通道数据为指数域数据。其中,每个像素对应一个y通道,四个像素共用一个u通道和一个v通道。
[0269]
应该理解的是,s506中的由rgb域转换为yuv域,可以采用由rgb域转换为xyz域,或由rgb域转换lab域替换,本技术对此不作限制。
[0270]
s507,均匀量化,即对s506得到的转换数据10c进行均匀量化,以得到转换数据12。
[0271]
示例性的,可以预先设置目标量化精度,如8bit无符号整型,12bit无符号整型,16bit无符号整型等等,本技术对此不作限制。
[0272]
示例性的,可以根据目标量化精度,对转换数据10c进行均匀量化,以得到转换数据12。其中,转换数据12是单像素由yuv三个通道构成的二维图像,且每个通道数据为目标量化精度,且每个通道数据为指数域数据。
[0273]
例如,假设目标量化精度为12bit无符号整型,转换数据10c的数值范围为[l1,l2];则可以将[l1,l2]划分为等间隔的4096个数值,针对一个像素的yuv三个通道中一个通道,若该像素的该通道数据属于[z1,z2](其中,z1大于或等于l1,z2小于或等于l2),则可以将该像素的该通道数据量化为z2。这样,转换数据12是单像素由yuv三个通道构成的二维图像,且每个通道数据为12bit无符号整型,且每个通道数据为指数域数据。
[0274]
应该理解的是,s507中的均匀量化,也可以采用非均匀量化、自适应量化替换,本技术对此不作限制。
[0275]
s508,填入yuv平面,即将s507得到的转换数据12填入yuv平面,以得到中间数据。
[0276]
示例性的,若是按照rgb色彩空间至yuv 420色彩空间的转换方式,将转换数据10b从rgb域转换为yuv域的,则可以将转换数据12,填入yuv 420平面。示例性的,可以采用每个像素的y通道数据填充yuv 420平面中的y-plane(y平面),采用每个像素的u通道数据填充yuv420平面中的u-plane(u平面),采用每个像素的v通道数据填充yuv 420平面中的v-plane(v平面)。其中,y-plane:u-plane:v-plane=4:1:1。
[0277]
示例性的,若是按照rgb色彩空间至yuv 444色彩空间的转换方式,将转换数据10b从rgb域转换为yuv域的,则可以将转换数据12,填入yuv 444平面。示例性的,可以采用每个像素的y通道数据填充yuv 444平面中的y-plane(y平面),采用每个像素的u通道数据填充yuv444平面中的u-plane(u平面),采用每个像素的v通道数据填充yuv 444平面中的v-plane(v平面)。其中,y-plane:u-plane:v-plane=1:1:1。
[0278]
示例性的,当yuv平面(可以是yuv 420平面或yuv 444平面)的数据精度高于转换数据12的数据精度时,可以对转换数据12的高位或低位进行填充,以将转换数据12的精度转换为与yuv平面相同的精度。然后将填充后的转换数据12,填入yuv平面。例如,yuv平面的
数据精度为16bit,转换数据12的数据精度为12bit,则可以将每个像素的每个通道数据的高四位或低四位填充0,然后将填充后的转换数据12,填入16bit的yuv平面。
[0279]
s509,hevc编码,即对s508得到的中间数据进行hevc编码,以得到光照数据对应的码流。
[0280]
需要说明的是,s502~s507这6个步骤的顺序可以任意调换,本技术对此不作限制。
[0281]
图6为示例性示出的编码流程示意图,编码流程可以包括:s601,数据获取;s602,通道丢弃;s603,精度转换;s604,最大最小归一化;s605,线性域至指数域的转换;s606,rgb域至yuv域的转换;s607,均匀量化;s608,填入yuv平面;s609,hevc编码。在图6的实施例中,光照数据采用球谐函数基底系数表示;其中,转换数据9包括转换数据9a和转换数据9b;转换数据10包括转换数据10a、转换数据10b和转换数据10c。
[0282]
s601,数据获取,即获取光照数据,其中,光照数据采用球谐函数基底系数表示。
[0283]
示例性的,每个探针的光照数据均可以由rgb三通道或rgba四通道构成,其中,每个通道数据由x个球谐函数基底系数构成。
[0284]
应该理解的是,在图6的实施例中,本技术也限制光照数据的格式,例如可以是r11g11b10f,也可以是rgb9e5,还可以是rgba16f等,本技术对此不作限制。
[0285]
应该理解的是,光照数据也可以采用球面小波基底系数表示,本技术对此不作限制。
[0286]
s602,通道丢弃,即若s601获取到的光照数据包括rgba四个通道,则丢弃光照数据中的a通道,以得到转换数据9a。
[0287]
示例性的,每个探针的转换数据9a也可以是由rgb三通道构成,其中,每个通道数据由x个球谐函数基底系数构成。示例性的,s602可以参照上述s502的描述,在此不再赘述。
[0288]
s603,精度转换,即将s602得到的转换数据9a转换成预设精度,以得到转换数据9b。
[0289]
示例性的,每个探针的转换数据9b也可以是由rgb三通道构成,其中,每个通道数据由x个球谐函数基底系数构成,每个球谐函数基底系数的精度为预设精度。
[0290]
示例性的,s603可以参照上述s503的描述,在此不再赘述。
[0291]
s604,最大最小归一化,即对s603得到的转换数据9b进行最大最小归一化,以得到转换数据10a。
[0292]
一种可能的方式中,可以针对所有探针的同一通道的同一个球谐函数基底对应的球谐函数基底系数,进行最大最小归一化。示例性的,可以确定所有探针的r通道中第i(i取值为1~x,i为整数)个球谐函数基底对应的球谐函数基底系数的最大值和最小值,以及计算该最大值和最小值之间的差值,得到差值q3。接着,针对每一个探针的r通道的第i个球谐函数基底对应的球谐函数基底系数,计算该探针的r通道的第i个球谐函数基底对应的球谐函数基底系数与最小值的差值,得到差值f5;采用差值f5除以差值q3,来对该探针的r通道的第i个球谐函数基底对应的球谐函数基底系数进行归一化。这样,能够实现将所有探针的r通道的第i个球谐函数基底对应的球谐函数基底系数归一化至[0,1]内。按照该种方式,可以实现将所有探针的r通道的x个球谐函数基底对应的球谐函数基底系数归一化至[0,1]内。对应的,可以按照上述将所有探针的r通道的x个球谐函数基底对应的球谐函数基底系
数归一化的方式,对所有探针的g通道和b通道的x个球谐函数基底对应的球谐函数基底系数进行归一化,以实现将所有探针的g通道和b通道的x个球谐函数基底对应的球谐函数基底系数归一化至[0,1]内;这样,可以得到转换数据10a。其中,每个探针的转换数据10a也可以是由rgb三通道构成,每个通道数据由x个球谐函数基底系数构成,每个球谐函数基底系数的精度为预设精度,且每个球谐函数基底系数属于[0,1]。
[0293]
一种可能的方式中,可以针对所有探针的rgb三个通道的同一个球谐函数基底对应的球谐函数基底系数,进行最大最小归一化。示例性的,可以所有探针的rgb三通道中第i个球谐函数基底对应的球谐函数基底系数的最大值和最小值,以及计算该最大值和最小值之间的差值,得到差值q4。接着,针对每一个探针的r通道的第i个球谐函数基底对应的球谐函数基底系数,计算该探针的r通道的第i个球谐函数基底对应的球谐函数基底系数与最小值的差值,得到差值f6;采用差值f6除以差值q4,来对该探针的r通道的第i个球谐函数基底对应的球谐函数基底系数进行归一化。以及针对每一个探针的g通道的第i个球谐函数基底对应的球谐函数基底系数,计算该探针的g通道的第i个球谐函数基底对应的球谐函数基底系数与最小值的差值,得到差值f7;采用差值f7除以差值q4,来对该探针的g通道的第i个球谐函数基底对应的球谐函数基底系数进行归一化。针对每一个探针的b通道的第i个球谐函数基底对应的球谐函数基底系数,计算该探针的b通道的第i个球谐函数基底对应的球谐函数基底系数与最小值的差值,得到差值f8;采用差值f8除以差值q4,来对该探针的b通道的第i个球谐函数基底对应的球谐函数基底系数进行归一化。这样,能够实现将每个探针的rgb三通道数据均归一化至[0,1]内,以得到转换数据10a。
[0294]
s605,线性域至指数域的转换,即将s604得到的转换数据10a由线性域转换为指数域,以得到转换数据10b。
[0295]
其中,每个探针的转换数据10b也可以是由rgb三通道构成,每个通道数据由x个球谐函数基底系数构成,每个球谐函数基底系数的精度为预设精度,且每个球谐函数基底系数属于指数域。
[0296]
示例性的,s605可以参照上述s505的描述,在此不再赘述。
[0297]
s606,rgb域至yuv域的转换,即将s605得到的转换数据10b由rgb域转换为yuv域,以得到转换数据10c。
[0298]
其中,每个探针的转换数据10c也可以是由yuv三通道构成,每个通道数据由x个球谐函数基底系数构成,每个球谐函数基底系数的精度为预设精度,且每个球谐函数基底系数属于指数域。
[0299]
示例性的,s606可以参照上述s506的描述,在此不再赘述。
[0300]
s607,均匀量化,即对s606得到的转换数据10c进行均匀量化,以得到转换数据12。
[0301]
其中,每个探针的转换数据12也可以是由yuv三通道构成,每个通道数据由x个球谐函数基底系数构成,每个球谐函数基底系数的精度为目标量化精度,且每个球谐函数基底系数属于指数域。
[0302]
示例性的,s607可以参照上述s507的描述,在此不再赘述。
[0303]
s608,填入yuv平面,即将s607得到的转换数据12填入yuv平面,以得到中间数据。
[0304]
s609,hevc编码,即对s608得到的中间数据进行hevc编码,以得到光照数据对应的码流。
[0305]
示例性的,s608~s609,可以参照上述s508~s509的描述,在此不再赘述。
[0306]
需要说明的是,s602~s607这6个步骤的顺序可以任意调换,本技术对此不作限制。
[0307]
图7为示例性示出的编码流程示意图,编码流程可以包括:s701,数据获取;s702,通道丢弃;s703,精度转换;s704,自适应归一化;s705,线性域至指数域的转换;s706,rgb域至yuv域的转换;s707,图像域至变换域的转换;s708,均匀量化;s709,填入yuv平面;s710,hevc编码。在图7的实施例中,光照数据采用二维图像表示;其中,转换数据9包括转换数据9a和转换数据9b;转换数据10包括转换数据10a、转换数据10b、转换数据10c和转换数据10d。
[0308]
s701,数据获取,即获取光照数据,其中,光照数据采用二维图像表示。
[0309]
s702,通道丢弃,即若s701获取到的光照数据包括rgba四个通道,则丢弃光照数据中的a通道,以得到转换数据9a。
[0310]
s703,精度转换,即将s702得到的转换数据9a转换成预设精度,以得到转换数据9b。
[0311]
s704,自适应归一化,即对s703得到的转换数据9b进行自适应归一化,以得到转换数据10a。
[0312]
s705,线性域至指数域的转换,即将s704得到的转换数据10a由线性域转换为指数域,以得到转换数据10b。
[0313]
s706,rgb域至yuv域的转换,即将s705得到的转换数据10b由rgb域转换为yuv域,以得到转换数据10c。
[0314]
示例性的,s701~s706,可以参照s501~s506的描述,在此不再赘述。
[0315]
s707,图像域至变换域的转换,即将s706得到的转换数据10c由图像域转换为变换域,以得到转换数据10d。
[0316]
一种可能的方式中,可以将由二维图像表示的转换数据10c进行分解,可以得到球谐函数基底和球谐函数基底系数;然后可以将球谐函数基底系数,作为转换数据10d。
[0317]
一种可能的方式中,可以将由二维图像表示的转换数据10c进行分解,可以得到特征向量和特征向量系数;然后可以将特征向量和特征向量系数,作为转换数据10d。
[0318]
一种可能的方式中,可以将由二维图像表示的转换数据10c进行分解,可以得到球面小波基底和球面小波基底系数;然后可以将球面小波基底系数,作为转换数据10d。
[0319]
s708,均匀量化,即对s707得到的转换数据10d进行均匀量化,以得到转换数据12。
[0320]
s709,填入yuv平面,即将s708得到的转换数据12填入yuv平面,以得到中间数据。
[0321]
s710,hevc编码,即对s709得到的中间数据进行hevc编码,以得到光照数据对应的码流。
[0322]
示例性的,s708~s710,可以参照s507~s509的描述,在此不再赘述。
[0323]
需要说明的是,s702~s708这7个步骤的顺序可以任意调换,本技术对此不作限制。其中,当s707在s704之前执行时,则s704可以替换为s604。
[0324]
以下以如图4c(5)所示的编码流程为例,对可见性数据的编码过程进行详细说明。
[0325]
图8为示例性示出的编码流程示意图,编码流程可以包括:s801,数据获取;s802,通道丢弃;s803a,精度转换;s803b,精度转换;s804a,固定参数归一化;s804b,固定参数归
一化;s805a,均匀量化;s805b,均匀量化;s806a,填入yuv平面;s806b,填入yuv平面;s807a,hevc编码;s807b,hevc编码。在图8的实施例中,可见性数据采用二维图像表示;其中,转换数据9包括转换数据9a1、转换数据9a2、转换数据9b1和转换数据9b2;转换数据10包括转换数据10a和转换数据10b;转换数据12包括:转换数据12a和转换数据12b;中间数据可以包括:中间数据1和中间数据2。
[0326]
s801,数据获取,即获取可见性数据,其中,可见性数据是单像素由rg双通道构成的二维图像。
[0327]
示例性的,k个探针的可见性数据可以是单像素由rg双通道构成的二维图像。一种可能方式中,r通道对应距离数据,g通道对应距离数据的平方。一种可能方式中,g通道对应距离数据,r通道对应距离数据的平方。其中,每个探针对应二维图像中的多个像素。
[0328]
s802,通道丢弃,即对s801获取到的可见性数据进行通道拆分,以得到转换数据9a1和转换数据9a2。
[0329]
示例性的,可以对可见性数据进行通道拆分,将可见性数据拆分为两个独立通道。其中,可以将通道拆分得到的r通道对应的数据,称为转换数据9a1;将通道拆分得到的g通道对应的数据,称为转换数据9a2。
[0330]
s803a,精度转换,即将s802得到的转换数据9a1转换成预设精度,以得到转换数据9b1。
[0331]
s803b,精度转换,即将s802得到的转换数据9a2转换成预设精度,以得到转换数据9b2。
[0332]
示例性的,s803a和s803b可以参照上述s503的描述,在此不再赘述。
[0333]
需要说明的是,s803a和s803b可以并行执行,也可以串行执行,本技术对此不作限制。
[0334]
s804a,固定参数归一化,即对s803a得到的转换数据9b1进行固定参数归一化,以得到转换数据10a。
[0335]
示例性的,可以根据距离最大值设置预设固定参数;其中,距离最大值可以按照需求设置,例如,三维场景中探针间距的1.5倍等,本技术对此不作限制。具体归一化过程,可以参照上述s504描述,在此不再赘述。
[0336]
示例性的,可以将对转换数据9b1进行固定参数归一化得到的数据,称为转换数据10a,转换数据10a属于[0,1]。
[0337]
需要说明的是,当某个像素的某个通道数据大于归一化参数时,可以将该像素的该通道数据进行截断,使得该像素的该通道数据等于归一化参数。然后将该像素的该通道数据除以归一化参数,来实现对该像素的该通道数据进行归一化,此时,该像素的该通道数据被归一化为1。
[0338]
s804b,固定参数归一化,即对s803b得到的转换数据9b2进行固定参数归一化,以得到转换数据10b。
[0339]
示例性的,可以预先设置距离最大值的平方,作为归一化参数。然后可以参照s804a,对转换数据9b2进行最大归一化,以得到转换数据10b,在此不再赘述。
[0340]
需要说明的是,s804a和s804b可以并行执行,也可以串行执行,本技术对此不作限制。
[0341]
s805a,均匀量化,即对s804a得到的转换数据10a进行均匀量化,以得到转换数据12a。
[0342]
s805b,均匀量化,即对s804b得到的转换数据10b进行均匀量化,以得到转换数据12b。
[0343]
示例性的,s805a和s805b可以参数上述s507的描述,在此不再赘述。
[0344]
需要说明的是,s805a和s805b可以并行执行,也可以串行执行,本技术对此不作限制。
[0345]
s806a,填入yuv平面,即将s805a得到的转换数据12a填入yuv平面,以得到中间数据1。
[0346]
s806b,填入yuv平面,即将s805b得到的转换数据12b填入yuv平面,以得到中间数据2。
[0347]
示例性的,s806a和s806b可以参数上述s508的描述,在此不再赘述。
[0348]
需要说明的是,s806a和s806b可以并行执行,也可以串行执行,本技术对此不作限制。
[0349]
s807a,hevc编码,即对s806a得到的中间数据1进行hevc编码,以得到对应的码流。
[0350]
s807b,hevc编码,即对s806b得到的中间数据2进行hevc编码,以得到对应的码流。
[0351]
示例性的,对中间数据1进行编码得到的码流和对中间数据2进行编码得到的码流,可以称为可见性数据对应的码流。
[0352]
需要说明的是,s807a和s807b可以并行执行,也可以串行执行,本技术对此不作限制。
[0353]
图9为示例性示出的编码流程示意图,编码流程可以包括:s901,数据获取;s902,通道丢弃;s903a,精度转换;s903b,精度转换;s904a,最大最小归一化;s904b,最大最小归一化;s905a,均匀量化;s905b,均匀量化;s906a,填入yuv平面;s906b,填入yuv平面;s907a,hevc编码;s907b,hevc编码。在图9的实施例中,可见性数据采用球谐函数基底系数表示;其中,转换数据9包括转换数据9a1、转换数据9a2、转换数据9b1和转换数据9b2;转换数据10包括转换数据10a和转换数据10b;转换数据12包括:转换数据12a和转换数据12b;中间数据可以包括:中间数据1和中间数据2。
[0354]
s901,数据获取,即获取可见性数据,其中,可见性数据包括rg两个通道,每个通道均采用球谐函数基底系数表示。
[0355]
示例性的,每个探针的可见性数据由rg两通道构成,其中,每个通道数据由x个球谐函数基底系数构成。一种可能方式中,r通道对应距离数据,g通道对应距离数据的平方。一种可能方式中,g通道对应距离数据,r通道对应距离数据的平方。
[0356]
s902,通道丢弃,即对s901获取到的可见性数据进行通道拆分,以得到转换数据9a1和转换数据9a2。
[0357]
s903a,精度转换,即将s902得到的转换数据9a1转换成预设精度,以得到转换数据9b1。
[0358]
s903b,精度转换,即将s902得到的转换数据9a2转换成预设精度,以得到转换数据9b2。
[0359]
示例性的,s903a和s903b可以参照上述s503的描述,在此不再赘述。
[0360]
需要说明的是,s903a和s903b可以并行执行,也可以串行执行,本技术对此不作限制。
[0361]
s904a,最大最小归一化,即对s903a得到的转换数据9b1进行最大最小归一化,以得到转换数据10a。
[0362]
s904b,最大最小归一化,即对s903b得到的转换数据9b2进行最大最小归一化,以得到转换数据10b。
[0363]
示例性的,s904a和s904b可以参照上文s604的描述,在此不再赘述。
[0364]
需要说明的是,s904a和s904b可以并行执行,也可以串行执行,本技术对此不作限制。
[0365]
s905a,均匀量化,即对s904a得到的转换数据10a进行均匀量化,以得到转换数据12a。
[0366]
s905b,均匀量化,即对s904b得到的转换数据10b进行均匀量化,以得到转换数据12b。
[0367]
示例性的,s905a和s905b可以参数上述s507的描述,在此不再赘述。
[0368]
需要说明的是,s905a和s905b可以并行执行,也可以串行执行,本技术对此不作限制。
[0369]
s906a,填入yuv平面,即将s905a得到的转换数据12a填入yuv平面,以得到中间数据1。
[0370]
s906b,填入yuv平面,即将s905b得到的转换数据12b填入yuv平面,以得到中间数据2。
[0371]
示例性的,s906a和s906b可以参数上述s508的描述,在此不再赘述。
[0372]
需要说明的是,s906a和s906b可以并行执行,也可以串行执行,本技术对此不作限制。
[0373]
s907a,hevc编码,即对s906a得到的中间数据1进行hevc编码,以得到对应的码流。
[0374]
s907b,hevc编码,即对s906b得到的中间数据2进行hevc编码,以得到对应的码流。
[0375]
示例性的,对中间数据1进行编码得到的码流和对中间数据2进行编码得到的码流,可以称为可见性数据对应的码流。
[0376]
需要说明的是,s907a和s907b可以并行执行,也可以串行执行,本技术对此不作限制。
[0377]
图10为示例性示出的编码流程示意图,编码流程可以包括:s1001,数据获取;s1002,通道丢弃;s1003a,精度转换;s1003b,精度转换;s1004a,固定参数归一化;s1004b,固定参数归一化;s1005a,图像域至变换域的转换;s1005b,图像域至变换域的转换;s1006a,均匀量化;s1006b,均匀量化;s1007a,填入yuv平面;s1007b,填入yuv平面;s1008a,hevc编码;s1008b,hevc编码。在图10的实施例中,可见性数据采用二维图像表示;其中,转换数据9包括转换数据9a1、转换数据9a2、转换数据9b1和转换数据9b2;转换数据10包括转换数据10a1、转换数据10a2、转换数据10b1和转换数据10b2;转换数据12包括:转换数据12a和转换数据12b;中间数据可以包括:中间数据1和中间数据2。
[0378]
s1001,数据获取,即获取可见性数据,其中,可见性数据是单像素由rg双通道构成的二维图像。
[0379]
s1002,通道丢弃,即对s1001获取到的可见性数据进行通道拆分,以得到转换数据9a1和转换数据9a2。
[0380]
s1003a,精度转换,即将s1002得到的转换数据9a1转换成预设精度,以得到转换数据9b1。
[0381]
s1003b,精度转换,即将s1002得到的转换数据9a2转换成预设精度,以得到转换数据9b2。
[0382]
s1004a,固定参数归一化,即对s1003a得到的转换数据9b1进行固定参数归一化,以得到转换数据10a1。
[0383]
s1004b,固定参数归一化,即对s1003b得到的转换数据9b2进行固定参数归一化,以得到转换数据10a2。
[0384]
示例性的,s1001、s1002、s1003a、s1003b、s1004a和s1004b,可以参照上述s801、s802、s803a、s803b、s804a和s804b的描述,在此不再赘述。
[0385]
s1005a,图像域至变换域的转换,即对s1004a得到的转换数据10a1由图像域转换为变换域,以得到转换数据10b1。
[0386]
s1005a,图像域至变换域的转换,即对s1004b得到的转换数据10a2由图像域转换为变换域,以得到转换数据10b2。
[0387]
示例性的,s1005a和s1005b,可以参照上述s707的描述,本技术对此不作限制。
[0388]
需要说明的是,s1005a和s1005b可以并行执行,也可以串行执行,本技术对此不作限制。
[0389]
s1006a,均匀量化,即对s1005a得到的转换数据10b1进行均匀量化,以得到转换数据12a。
[0390]
s1006b,均匀量化,即对s1005b得到的转换数据10b2进行均匀量化,以得到转换数据12b。
[0391]
示例性的,s1006a和s1006b可以参数上述s507的描述,在此不再赘述。
[0392]
需要说明的是,s1006a和s1006b可以并行执行,也可以串行执行,本技术对此不作限制。
[0393]
s1007a,填入yuv平面,即将s1006a得到的转换数据12a填入yuv平面,以得到中间数据1。
[0394]
s1007b,填入yuv平面,即将s1006b得到的转换数据12b填入yuv平面,以得到中间数据2。
[0395]
示例性的,s1007a和s1007b可以参数上述s508的描述,在此不再赘述。
[0396]
需要说明的是,s1007a和s1007b可以并行执行,也可以串行执行,本技术对此不作限制。
[0397]
s1008a,hevc编码,即对s1007a得到的中间数据1进行hevc编码,以得到对应的码流。
[0398]
s1008b,hevc编码,即对s1007b得到的中间数据2进行hevc编码,以得到对应的码流。
[0399]
示例性的,对中间数据1进行编码得到的码流和对中间数据2进行编码得到的码流,可以称为可见性数据对应的码流。
[0400]
需要说明的是,s1008a和s1008b可以并行执行,也可以串行执行,本技术对此不作限制。
[0401]
需要说明的是,s1008a和s1008b可以采用两个编码模块进行编码(s807a和s807b,也可以采用两个编码模块进行编码;以及s907a和s907b,也可以采用两个编码模块进行编码)。由于相对于距离数据与距离数据的平方的相似度而言,距离数据与距离数据的相似度以及距离数据的平方与距离数据的平方的相似度更高;这样,采用两个编码模块分别对距离数据进行帧间编码以及对距离数据的平方进行帧间编码更容易,进而在同等渲染效果的情况下,进一步降低了码率。
[0402]
需要说明的是,对可见性数据进行通道拆分,可以在精度转换、归一化、量化这些步骤之后。此外,也可以无需执行s1002(或s802或s902),即直接对包含rg两个通道的可见性数据进行精度转换、归一化、量化这些步骤;然后将可见性数据中rg两个通道的数据填入同一个yuv平面,再对中间数据进行编码;本技术对此不作限制。
[0403]
以下以如图4c(2)所示的编码流程为例,对探针数据的编码过程进行详细说明。
[0404]
图11为示例性示出的编码过程示意图,编码流程可以包括:s1101,数据获取;s1102,维度转换;s1103,pca分解;s1104,最大最小归一化;s1105,均匀量化;s1106,熵编码。在图11的实施例中,探针数据可以包括光照数据和/或可见性数据;其中,转换数据10可以包括转换数据10a和转换数据10b。
[0405]
s1101,数据获取,即获取探针数据。
[0406]
示例性的,在图11的实施例中,探针数据包括光照数据和/或可见性数据。其中,光照数据可以采用二维图像表示,也可以采用球谐函数基底(或球面小波基底)系数表示;可见性数据可以采用二维图像表示,也可以采用球谐函数基底(或球面小波基底)系数表示,本技术对此不作限制。
[0407]
s1102,维度转换,即对s1101获取到的探针数据进行维度转换,以得到二维矩阵。
[0408]
示例性的,光照数据采用二维图像表示时,针对二维图像中的一个像素,可以将该像素的r通道数据作为二维矩阵的一个元素,将该像素的g通道数据作为二维矩阵的一个元素,以及将该像素的b通道数据作为二维矩阵的一个元素。
[0409]
示例性的,光照数据采用球谐函数基底系数(或球面小波基底系数)表示时,针对每一个探针,可以将该探针的r通道的每个球谐函数基底(或球面小波基底)的球谐函数基底(或球面小波基底)系数,均作为二维矩阵的一个元素,即可以得到n个元素。以及将该探针的g通道的每个球谐函数基底(或球面小波基底)的球谐函数基底(或球面小波基底)系数,均作为二维矩阵的一个元素,也可以得到n个元素。以及将该探针的b通道的每个球谐函数基底(或球面小波基底)的球谐函数基底(或球面小波基底)系数,均作为二维矩阵的一个元素,也可以得到n个元素。这样,针对一个探针,可以将该探针的光照数据展开成二维矩阵的3n个元素。
[0410]
示例性的,可以将所有探针中同一球谐函数基底的球谐函数基底系数,排列成一行或一列。示例性的,也可以将所有探针中同一通道的同一球谐函数基底的球谐函数基底系数,排列成一行或一列;本技术对此不作限制。
[0411]
示例性的,将可见性数据转换为二维矩阵的方式,与将光照数据转换为二维矩阵的方式类似,在此不再赘述。
[0412]
示例性的,可以将光照数据转换为一个二维矩阵,将可见性数据转换为另一个二维矩阵。
[0413]
需要说明的是,在将探针数据转换为二维矩阵的过程中,若探针数据无法直接转换为预设尺寸的二维矩阵时,可用无效数据补全不足的部分。其中,预设尺寸可以按照需求设置,本技术对此不作限制。
[0414]
示例性的,得到的二维矩阵,也就是上述的转换数据9。
[0415]
需要说明的是,对探针数据进行维度转换,也可以得到其他维度的矩阵(如5维矩阵),本技术对此不作限制;以下为对探针数据进行维度转换以得到二维矩阵为例进行示例性说明。
[0416]
s1103,pca分解,即对s1102得到的二维矩阵进行pca分解,得到转换数据10a。
[0417]
示例性的,可以对二维矩阵进行pca分解,将二维矩阵分解为特征向量和特征向量系数;然后将特征向量和特征向量系数,作为转换数据10a。
[0418]
s1104,最大最小归一化,即对s1103得到的转换数据10a进行最大最小归一化,得到转换数据10b。
[0419]
示例性的,可以对转换数据10a中的特征向量和特征向量系数分别进行最大最小归一化,具体可以参照上述最大最小归一化的描述,在此不再赘述。
[0420]
s1105,均匀量化,即对s1104得到的转换数据10b进行均匀量化,得到中间数据。
[0421]
示例性的,可以对转换数据10b中的特征向量和特征向量系数分别进行均匀量化,具体可以参照上述s507中均匀量化的描述,在此不再赘述。
[0422]
s1106,熵编码,即对s1105得到的中间数据进行熵编码,以得到对应的码流。
[0423]
示例性的,当探针数据为光照数据时,可以对光照数据进行熵编码,得到光照数据对应的码流。
[0424]
示例性的,当探针数据为可见性数据时,可以对可见性数据进行熵编码,得到可见性数据对应的码流。
[0425]
示例性的,当探针数据为光照数据和可见性数据时,可以对光照数据进行熵编码,得到光照数据对应的码流;以及对可见性数据进行熵编码,得到可见性数据对应的码流。
[0426]
示例性的,可以根据探针数据的数据量进行负载均衡,来确定探针数据的目标码率以及编码方式。
[0427]
一种可能的方式中,可以根据光照数据的数据量、可见性数据的数据量和预设码率,确定光照数据对应的第一目标码率和可见性数据对应的第二目标码率。这样,后续可以按照第一目标码率对光照数据对应的中间数据进行编码,以及按照第二目标码率对可见性数据对应的中间数据进行编码,以得到码流。其中,预设码率可以按照需求设置,本技术对此不作限制。
[0428]
例如,可以按照光照数据的数据量与可见性数据的数据量的比例,来确定第一目标码率和第二目标码率。假设,预设码率为1000kbps,若光照数据的数据量与可见性数据的数据量的比例为9:1,则可以确定第一目标码率为900kbps,第二目标码率为100kbps。
[0429]
这样,可以为光照数据和可见性数据分配合适的码率,相对于光照数据对应的码流与可见性数据对应的码流是固定比例而言,本技术可以在同等码流的情况下,提升渲染效果。
[0430]
一种可能的方式中,根据光照数据的数据量、可见性数据的数据量和信道反馈信息,确定光照数据对应的编码方式和可见性数据对应的编码方式;其中,编码方式包括帧内编码或帧间编码。这样,后续可以按照光照数据对应的编码方式对光照数据对应的中间数据进行编码,以及按照可见性数据对应的编码方式对可见性数据对应的中间数据进行编码,以得到码流。这样,能够对码流大小和渲染效果进行均衡。
[0431]
例如,可以根据信道反馈信息,确定信道可承载的码率;然后根据光照数据的数据量和信道可承载的码率,来确定对光照数据是进行帧内编码,还是帧间编码。例如,可以预估对光照数据进行帧内编码后对应码流的预测码率,若预测码率小于或等于信道可承载的码率,则可以对光照数据进行帧内编码;若预设码率大于信道可承载的码流,则可以对光照数据进行帧间编码。类似的,也可以按照上述方式,判断对可见性数据是进行帧内编码,还是帧间编码,本技术对此不作限制。
[0432]
示例性的,对于用于对探针数据进行数据形式转换的第一属性数据(如归一化参数(归一化所使用的参数)、量化参数(量化所使用的参数)、色彩空间转换参数(rgb域至yuv/xyz/lab域转换所使用的参数)、指数转换参数(线性域至指数域的转换所使用的参数)、pq转换参数(线性域至pq域的转换所使用的参数,如pq曲线相关的参数)、hlg转换参数(线性域至hlg域的转换所使用的参数,如hlg曲线相关的参数)等等),也可以发送至第二设备,以便于第二设备根据第一属性数据进行数据形式转换,还原出探针数据。
[0433]
示例性的,也可以将用于渲染过程中的第二属性数据发送至第二设备,以便于第二设备根据第二属性数据进行渲染。
[0434]
一种可能的方式中,可以将k个探针的属性数据进行编码,以得到属性数据对应的码流。示例性的,对k个探针的属性数据编码的方式可以上下文编码,也可以是其他的编码方式,本技术对此不作限制。
[0435]
一种可能的方式中,也可以先将k个探针的属性数据进行第三方式重排布,再将重排布后的属性数据进行编码成对应的码流。其中,第三方式重排布可以用于拼接,也就是说,可以拼接第一属性数据和第二属性数据,然后对拼接后的数据进行编码,以得到对应的码流。
[0436]
一种可能的方式中,若第一设备仅对光照数据进行了编码,则得到的码流包括光照数据对应的中间数据。
[0437]
一种可能的方式中,若第一设备仅对可见性数据进行了编码,则得到的码流包括可见性数据对应的中间数据。
[0438]
一种可能的方式中,若第一设备对光照数据和可见性数据均进行了编码,则得到的码流可以包含可见性数据对应的中间数据和光照数据对应的中间数据。
[0439]
一种可能方式中,若第一设备对光照数据和属性数据进行了编码,则得到的码流包括光照数据对应的中间数据和属性数据。
[0440]
一种可能的方式中,若第一设备仅对可见性数据和属性数据进行了编码,则得到的码流包括可见性数据对应的中间数据和属性数据。
[0441]
一种可能的方式中,若第一设备对光照数据、可见性数据以及属性数据进行了编码,则得到的码流可以包含可见性数据对应的中间数据、光照数据对应的中间数据和属性数据。
[0442]
示例性的,在得到码流后,可以根据码流结构生成码流结构信息,然后将码流结构信息写入上述得到的码流中。示例性的,码流结构信息可以包括但不限于:探针数量,光照数据对应的中间数据的位置、长度以及数据格式,光照数据对应的数据形式转换类型的执行顺序,可见性数据对应的中间数据的位置、长度以及数据格式,可见性数据对应的数据形式转换类型的执行顺序,第一属性数据的位置、长度以及数据格式,以及第二属性数据的位置、长度以及数据格式,等等;本技术对此不作限制。
[0443]
其中,数据形式转换类型可以包括:各种第一方式重排布类型(如丢弃部分通道的数据、通道拆分、精度转换、维度转换等),各种归一化类型(如自适应归一化,固定参数归一化,最大最小归一化,z-score归一化等),各种域转换类型(如线性域至非线性域的转换,rgb域至yuv域的转换,rgb域至xyz域的转换,rgb域至lab域的转换,以及图像域至变换域的转换等),各种量化类型(如均匀量化、非均匀量化等),第二方式重排布类型如填入yuv平面等,本技术对此不作限制。
[0444]
应该理解的是,码流结构信息可以包括比上述所述的更多或更少的信息,本技术对此不作限制。此外,码流中也可以不包含码流结构信息,具体可以按照需求设置,本技术对此也不作限制。
[0445]
应该理解的是,本技术不限制可见性数据对应的中间数据、光照数据对应的中间数据、属性数据和码流结构信息,在码流中的位置。
[0446]
图12为示例性示出的码流结构示意图。在图12示出的码流包括:可见性数据对应的中间数据、光照数据对应的中间数据、属性数据和码流结构信息。
[0447]
示例性的,第一设备在得到探针数据对应的码流后,可以将探针数据发送给第二设备;这样,第二设备在渲染过程中,可以根据该探针数据确定三维场景中对象的着色效果。
[0448]
图13为示例性示出的电子设备示意图。在图13的实施例中,该电子设备为第一设备,可以用于执行前述实施例的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。其中,第一设备可以包括:
[0449]
数据获取模块1301,用于获取探针数据,探针数据与三维场景中的一个或多个探针对应,探针数据用于第二设备在渲染过程中确定三维场景中对象的着色效果;
[0450]
数据形式转换模块1302,用于对探针数据进行数据形式转换,以得到中间数据,其中,数据形式转换包括域转换;
[0451]
编码模块1303,用于对中间数据进行编码,以得到对应的码流。
[0452]
示例性的,数据形式转换模块1302包括:
[0453]
域转换模块13021,用于对探针数据进行第一处理,以得到转换数据,其中,第一处理为域转换;或用于对转换数据进行第二处理,以得到中间数据,其中,第二处理为域转换。
[0454]
量化模块13022,用于对探针数据进行第一处理,以得到转换数据,其中,第一处理为量化;或用于对转换数据进行第二处理,以得到中间数据,其中,第二处理为量化。
[0455]
重排布模块13023,用于对探针数据进行第一处理,以得到转换数据,其中,第一处理为第一方式重排布;或用于对转换数据进行第二处理,以得到中间数据,其中,第二处理为第一方式重排布。
[0456]
示例性的,域转换模块13021,还用于在对探针数据进行第一处理之前,对探针数
据进行第三处理,第三处理为域转换。
[0457]
示例性的,量化模块13022,还用于在对探针数据进行第一处理之前,对探针数据进行第三处理,第三处理为量化。
[0458]
示例性的,重排布模块13023,还用于在对探针数据进行第一处理之前,对探针数据进行第三处理,第三处理为第一方式重排布。
[0459]
示例性的,重排布模块,还用于对转换数据进行第二处理之后,得到中间数据之前,对第二处理后的数据进行第二方式重排布,以得到中间数据,其中,第二方式重排布为将第二处理后的数据填充至yuv平面。
[0460]
示例性的,当探针数据为光照数据,且光照数据包括多个通道时,第一方式重排布包括以下至少一种:丢弃部分通道的数据、将光照数据转换为预设精度、或将光照数据进行维度转换。
[0461]
示例性的,当探针数据为可见性数据,且可见性数据包括多个通道时,第一方式重排布包括以下至少一种:通道拆分、将可见性数据转换为预设精度、或将可见性数据进行维度转换。
[0462]
示例性的,域转换包括以下至少一种:非归一化域至归一化域的转换,线性域至非线性域的转换,rgb域至yuv域的转换,rgb域至xyz域的转换,rgb域至lab域的转换,以及图像域至变换域的转换。
[0463]
示例性的,探针数据采用二维图像或球谐函数基底系数或球面小波基底系数表示。
[0464]
示例性的,编码模块1302还用于:对一个或多个探针的属性数据进行编码,以得到码流,其中,属性数据包括:用于数据形式转换的第一属性数据和/或用于渲染过程中的第二属性数据。
[0465]
示例性的,当探针数据包括光照数据和可见性数据时,码流包括:码流结构信息,其中,码流结构信息包括光照数据对应的中间数据的位置和/或可见性数据对应的中间数据的位置。
[0466]
示例性的,第一电子设备还包括:
[0467]
码流负载均衡模块1304,用于当探针数据包括光照数据和可见性数据时,根据光照数据的数据量、可见性数据的数据量和预设码率,确定光照数据对应的第一目标码率和可见性数据对应的第二目标码率;
[0468]
编码模块1303,具体用于按照第一目标码率对光照数据对应的中间数据进行编码,以及按照第二目标码率对可见性数据对应的中间数据进行编码,以得到码流。
[0469]
示例性的,码流负载均衡模块1304,还用于当探针数据包括光照数据和可见性数据时,根据光照数据的数据量、可见性数据的数据量和信道反馈信息,确定光照数据对应的编码方式和可见性数据对应的编码方式;其中,编码方式包括帧内编码或帧间编码;
[0470]
编码模块1303,具体用于按照光照数据对应的编码方式对光照数据对应的中间数据进行编码,以及按照可见性数据对应的编码方式对可见性数据对应的中间数据进行编码,以得到码流。
[0471]
图14a为示例性示出压缩效果示意图。在图14a中示出了无损压缩对应的psnr(peak signal to noise ratio,峰值信噪比)曲线和本技术的编码方法对应的psnr曲线,
其中psnr可以表示处理前的图像(图14a中指编码侧进行压缩之前的图像)与处理后的图像(图14a中指解码侧通过解码编码侧发送的码流得到的图像)的差异,这个值越大,表示处理后的图像相较于处理前的图像的损失越小,可以用于衡量经过压缩、解压缩后的图像质量或渲染效果。其中,图14a中纵坐标为psnr,横坐标为帧数。
[0472]
参照图14a,示例性的,reference(delay 1 frame)对应的曲线,是延迟1帧的情况下采用现有技术中无损压缩对应的psnr曲线,其平均psnr为58.49db。probe compression(delay 1 frame)对应的曲线,是延迟1帧的情况下采用本技术的编码方法进行有损压缩对应的psnr曲线,其平均psnr为50.59db。reference(delay 4 frame)对应的曲线,是延迟4帧的情况下采用现有技术中无损压缩对应的psnr曲线,其平均psnr为51.15db。probe compression(delay 4 frame)对应的曲线,是延迟4帧的情况下采用本技术的编码方法进行有损压缩对应的psnr曲线,其平均psnr为47.97db。
[0473]
需要说明的是,对于两张psnr大于40db的图像,用户对它们的差异感知不明显。可见,本技术的编码方法不会明显降低渲染效果。
[0474]
需要说明的是,采用现有技术的数据形式变换处理后,若进行有损压缩,则会严重影响解码端解码得到的探针数据的准确性,进而严重影响渲染效果。而采用本技术提供的数据形式变换处理后,既可以对处理后的中间数据进行无损压缩,也可以对处理后的中间数据进行有损压缩,而且如图14a所示,即使对经过本技术的数据形式变换处理后的中间数据进行有损压缩,解码侧也能得到高质量的图像,用户基本无法通过肉眼感知到渲染效果的区别。而本技术提供的方法中,探针数据经过数据形式变换和有损压缩后,数据量却大大减少,可以显著降低码率,减少传输的数据,进而降低客户端的渲染延迟,使得用户体验更好,尤其是对实时性要求很高的场景而言。
[0475]
图14b为示例性示出的压缩效果示意图。图14b中纵坐标是数据量,单位为kb,横坐标为帧(frame)。
[0476]
参照图14b,示例性的,编码前探针数据大于40000kb,采用本技术编码方法得到的大多数帧编码后的探针数据的数据量属于8kb~100kb这个区间,少部分帧编码后的探针数据的数据量为2000kb左右。可见,采用本技术的编码方法能够显著降低码率。
[0477]
一个示例中,图15示出了本技术实施例的一种示意性框图装置1500,装置1500可包括:处理器1501和通信接口1502,可选地,还包括存储器1503。
[0478]
装置1500的各个组件通过总线1504耦合在一起,其中总线1504除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都称为总线1504。
[0479]
可选地,存储器1503可以用于存储前述方法实施例中的指令。该处理器1501可用于执行存储器1503中的指令,并控制通信接口接收/发送信号。
[0480]
装置1500可以是上述方法实施例中的电子设备或电子设备的芯片。
[0481]
示例性的,处理器1501用于处理数据,控制数据访问和存储,发出命令以及控制其它组件执行操作。处理器1501可以被实现为一个或多个处理器,一个或多个控制器和/或可用于执行程序的其它结构。处理器1501具体可以包括通用处理器,数字信号处理器(dsp),专用集成电路(asic),现场可编程门阵列(fpga)或其它可编程逻辑组件中的至少一种。通用处理器可以包括微处理器,以及任何常规的处理器,控制器,微控制器,或状态机。处理器
1501也可以实现为计算组件,例如dsp和微处理器的组合。
[0482]
存储器1503可以包括计算机可读存储介质,如磁存储设备(例如,硬盘,软盘,磁条),光存储介质(例如,数字多功能盘(dvd)),智能卡,闪存设备,随机存取存储器(ram),只读存储器(rom),可编程rom(prom),可擦除prom(eprom),寄存器,以及它们的任意组合。存储器1503可以耦合到处理器1501以使得处理器1501可读取信息和将信息写入到存储器1503。具体地,存储器1503可以集成到处理器1501,或者存储器1503和处理器1501可以是分开的。
[0483]
通信接口1502可包括电路和/或程序以实现终端1500与一个或多个无线网络设备(例如,路由器、交换机、接入点等等)之间的双向通信。通信接口1502包括至少一个接收电路和/或至少一个发射电路。在一个实施例中,通信接口1502可以是全部或部分由无线调制解调器来实现。
[0484]
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
[0485]
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的编码方法。
[0486]
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的编码方法。
[0487]
另外,本技术的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的编码方法。
[0488]
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
[0489]
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0490]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0491]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0492]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0493]
本技术各个实施例的任意内容,以及同一实施例的任意内容,均可以自由组合。对上述内容的任意组合均在本技术的范围之内。
[0494]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0495]
上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
[0496]
结合本技术实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,ram)、闪存、只读存储器(read only memory,rom)、可擦除可编程只读存储器(erasable programmable rom,eprom)、电可擦可编程只读存储器(electrically eprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。
[0497]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本技术实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机可读存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0498]
上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
技术特征:
1.一种应用于第一设备的编码方法,其特征在于,所述方法包括:获取探针数据,所述探针数据与三维场景中的一个或多个探针对应,所述探针数据用于第二设备在渲染过程中确定所述三维场景中对象的着色效果;对所述探针数据进行数据形式转换,以得到中间数据,其中,所述数据形式转换包括域转换;对所述中间数据进行编码,以得到对应的码流。2.根据权利要求1所述的方法,其特征在于,所述对所述探针数据进行数据形式转换,以得到中间数据,包括:对所述探针数据进行第一处理,以得到转换数据;对所述转换数据进行第二处理,以得到所述中间数据;其中:当所述第一处理是域转换时,所述第二处理包括:量化和/或第一方式重排布;当所述第二处理是域转换时,所述第一处理包括:量化和/或第一方式重排布。3.根据权利要求2所述的方法,其特征在于,所述对探针数据进行数据形式转换,以得到中间数据,还包括:在所述对所述探针数据进行第一处理之前,对所述探针数据进行第三处理;其中,所述第三处理包括以下至少一种:域转换、量化和第一方式重排布。4.根据权利要求2或3所述的方法,其特征在于,对所述转换数据进行第二处理之后,得到所述中间数据之前,所述方法还包括:对所述第二处理后的数据进行第二方式重排布,以得到所述中间数据,其中,所述第二方式重排布为将所述第二处理后的数据填充至yuv平面。5.根据权利要求2至4中任一项所述的方法,其特征在于,当所述探针数据为光照数据,且所述光照数据包括多个通道时,所述第一方式重排布包括以下至少一种:丢弃部分通道的数据、将光照数据转换为预设精度、或将光照数据进行维度转换。6.根据权利要求2至4中任一项所述的方法,其特征在于,当所述探针数据为可见性数据,且所述可见性数据包括多个通道时,所述第一方式重排布包括以下至少一种:通道拆分、将可见性数据转换为预设精度、或将可见性数据进行维度转换。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述域转换包括以下至少一种:非归一化域至归一化域的转换,线性域至非线性域的转换,rgb域至yuv域的转换,rgb域至xyz域的转换,rgb域至lab域的转换,以及图像域至变换域的转换。8.根据权利要求1至7中任一项所述的方法,其特征在于,所述探针数据采用二维图像或球谐函数基底系数或球面小波基底系数表示。9.根据权利要求1至8中任一项所述的方法,其特征在于,所述方法还包括:对所述一个或多个探针的属性数据进行编码,以得到所述码流,其中,所述属性数据包括:用于所述数据形式转换的第一属性数据和/或用于所述渲染过程中的第二属性数据。10.根据权利要求1至9中任一项所述的方法,其特征在于,当所述探针数据包括光照数据和可见性数据时,所述码流包括:码流结构信息,其中,所述码流结构信息包括所述光照数据对应的中间数据的位置和/或所述可见性数据对应的中间数据的位置。11.根据权利要求1至10中任一项所述的方法,其特征在于,当所述探针数据包括光照数据和可见性数据时,所述方法还包括:
根据所述光照数据的数据量、所述可见性数据的数据量和预设码率,确定所述光照数据对应的第一目标码率和所述可见性数据对应的第二目标码率;所述对所述中间数据进行编码,以得到对应的码流,包括:按照所述第一目标码率对所述光照数据对应的中间数据进行编码,以及按照所述第二目标码率对所述可见性数据对应的中间数据进行编码,以得到所述码流。12.根据权利要求1至11中任一项所述的方法,其特征在于,当所述探针数据包括光照数据和可见性数据时,所述方法还包括:根据所述光照数据的数据量、所述可见性数据的数据量和信道反馈信息,确定所述光照数据对应的编码方式和所述可见性数据对应的编码方式;其中,所述编码方式包括帧内编码或帧间编码;所述对所述中间数据进行编码,以得到对应的码流,包括:按照所述光照数据对应的编码方式对所述光照数据对应的中间数据进行编码,以及按照所述可见性数据对应的编码方式对所述可见性数据对应的中间数据进行编码,以得到所述码流。13.一种第一设备,其特征在于,所述第一设备包括:数据获取模块,用于获取探针数据,所述探针数据与三维场景中的一个或多个探针对应,所述探针数据用于第二设备在渲染过程中确定所述三维场景中对象的着色效果;数据形式转换模块,用于对所述探针数据进行数据形式转换,以得到中间数据,其中,所述数据形式转换包括域转换;编码模块,用于对所述中间数据进行编码,以得到对应的码流。14.根据权利要求13所述的第一设备,其特征在于,所述数据形式转换模块,包括:域转换模块,用于对所述探针数据进行第一处理,以得到转换数据,其中,所述第一处理为域转换;或用于对所述转换数据进行第二处理,以得到所述中间数据,所述第二处理为域转换;量化模块,用于对所述探针数据进行第一处理,以得到转换数据,其中,所述第一处理为量化;或用于对所述转换数据进行第二处理,以得到所述中间数据,所述第二处理为量化;重排布模块,用于对所述探针数据进行第一处理,以得到转换数据,其中,所述第一处理为第一方式重排布;或用于对所述转换数据进行第二处理,以得到所述中间数据,所述第二处理为第一方式重排布。15.根据权利要求14所述的第一设备,其特征在于,所述域转换模块,还用于在所述对所述探针数据进行第一处理之前,对所述探针数据进行第三处理,其中,所述第三处理为域转换;所述量化模块,还用于在所述对所述探针数据进行第一处理之前,对所述探针数据进行第三处理,其中,所述第三处理为量化;所述重排布模块,还用于在所述对所述探针数据进行第一处理之前,对所述探针数据进行第三处理,其中,所述第三处理为第一方式重排布。16.根据权利要求14或15所述的第一设备,其特征在于,所述重排布模块,还用于对所述转换数据进行第二处理之后,得到所述中间数据之前,
对所述第二处理后的数据进行第二方式重排布,以得到所述中间数据,其中,所述第二方式重排布为将所述第二处理后的数据填充至yuv平面。17.根据权利要求14至16中任一项所述的第一设备,其特征在于,当所述探针数据为光照数据,且所述光照数据包括多个通道时,所述第一方式重排布包括以下至少一种:丢弃部分通道的数据、将光照数据转换为预设精度、或将光照数据进行维度转换。18.根据权利要求14至16中任一项所述的第一设备,其特征在于,当所述探针数据为可见性数据,且所述可见性数据包括多个通道时,所述第一方式重排布包括以下至少一种:通道拆分、将可见性数据转换为预设精度、或将可见性数据进行维度转换。19.根据权利要求13至18中任一项所述的第一设备,其特征在于,所述域转换包括以下至少一种:非归一化域至归一化域的转换,线性域至非线性域的转换,rgb域至yuv域的转换,rgb域至xyz域的转换,rgb域至lab域的转换,以及图像域至变换域的转换。20.根据权利要求13至19中任一项所述的第一设备,其特征在于,所述探针数据采用二维图像或球谐函数基底系数或球面小波基底系数表示。21.根据权利要求13至20中任一项所述的第一设备,其特征在于,所述编码模块,还用于对所述一个或多个探针的属性数据进行编码,以得到所述码流,其中,所述属性数据包括:用于所述数据形式转换的第一属性数据和/或用于所述渲染过程中的第二属性数据。22.根据权利要求13至21中任一项所述的第一设备,其特征在于,当所述探针数据包括光照数据和可见性数据时,所述码流包括:码流结构信息,其中,所述码流结构信息包括所述光照数据对应的中间数据的位置和/或所述可见性数据对应的中间数据的位置。23.根据权利要求13至22中任一项所述的第一设备,其特征在于,所述第一设备还包括:码流负载均衡模块,用于当所述探针数据包括光照数据和可见性数据时,根据所述光照数据的数据量、所述可见性数据的数据量和预设码率,确定所述光照数据对应的第一目标码率和所述可见性数据对应的第二目标码率;所述编码模块,具体用于按照所述第一目标码率对所述光照数据对应的中间数据进行编码,以及按照所述第二目标码率对所述可见性数据对应的中间数据进行编码,以得到所述码流。24.根据权利要求13至23中任一项所述的第一设备,其特征在于,所述第一设备还包括:码流负载均衡模块,用于当所述探针数据包括光照数据和可见性数据时,根据所述光照数据的数据量、所述可见性数据的数据量和信道反馈信息,确定所述光照数据对应的编码方式和所述可见性数据对应的编码方式;其中,所述编码方式包括帧内编码或帧间编码;所述编码模块,具体用于按照所述光照数据对应的编码方式对所述光照数据对应的中间数据进行编码,以及按照所述可见性数据对应的编码方式对所述可见性数据对应的中间数据进行编码,以得到所述码流。25.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器与所述处理器耦合;所述存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得所述电子设
备执行权利要求1至权利要求12中任一第一设备所执行的编码方法。26.一种芯片,其特征在于,包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行权利要求1至权利要求12中任一第一电子设备所执行的编码方法。27.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序运行在计算机或处理器上时,使得所述计算机或所述处理器执行如权利要求1至12任一项所述的编码方法。28.一种计算机程序产品,其特征在于,所述计算机程序产品包含软件程序,当所述软件程序被计算机或处理器执行时,使得权利要求1至12任一项所述的方法的步骤被执行。
技术总结
本申请实施例提供了一种编码方法及电子设备。该方法包括:首先获取探针数据,探针数据与三维场景中的一个或多个探针对应,探针数据用于第二设备在渲染过程中确定三维场景中对象的着色效果;接着,对探针数据进行数据形式转换,以得到中间数据,其中,数据形式转换包括域转换;然后,对中间数据进行编码,以得到对应的码流。与现有技术相比,本申请在同等渲染效果的情况下,能够降低码率;或,在同等码率的情况下,能够提高渲染效果。能够提高渲染效果。能够提高渲染效果。
技术研发人员:林泽辉 蔡康颖 魏榕 莫运能
受保护的技术使用者:华为技术有限公司
技术研发日:2022.03.15
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/