图像处理方法、装置、系统及存储介质与流程
未命名
10-08
阅读:76
评论:0

1.本技术涉及视频编码技术领域,尤其涉及一种图像处理方法、装置、系统及存储介质。
背景技术:
2.云端图像渲染(cloud 3d rendering applications,cloud 3d)是指通过部署在服务器的渲染应用进行渲染得到图像后,服务器再将图像经过码率分配并压缩后发送给用户的终端设备。其中,码率分配是指为图像的不同区域分别分配不同的比特数。为了适应服务器和终端设备之间的有限的信道带宽,服务器对渲染后的图像进行压缩方式通常为有损压缩。然而,由于图像的每个区域都按照相同或相似的码率进行压缩,导致压缩后的图像中每个区域的质量均低于渲染后的图像质量,因此造成服务器在渲染图像的过程中所消耗的计算能力的浪费,且经过有损压缩后的图像质量较差,难以满足用户的使用需求。
技术实现要素:
3.本技术实施例提供一种图像处理方法、装置、系统及存储介质,可以减少对渲染图像所消耗的计算能力的浪费,且提升压缩后的图像质量。
4.为达到上述目的,第一方面,本技术实施例提供了一种图像处理方法,包括:获取第一图像;然后将第一图像划分为多个像素区块,并确定每个像素区块的子码率。最后根据多个像素区块的多个子码率对第一图像进行压缩。其中,每个像素区块包括第一图像中的多个像素点,每个像素区块的子码率是根据每个像素区块的面积和每个像素区块包括的像素点数量确定的。本技术提供的方法能够在服务器和终端设备之间的信道带宽有限的情况下,也就第一图像的目标码率固定的情况下,根据每个像素区块包括的面积和像素点数量确定第一图像的不同像素区块的子码率,从而提升压缩后的第一图像的图像质量,并且减少服务器在渲染第一图像过程中的计算能力的浪费。
5.在第一方面的一种可能的实现方式中,确定每个像素区块的子码率,包括:根据每个像素区块的面积和每个像素区块包括的像素点数量确定每个像素区块的画质等级,画质等级用于表征每个像素区块中多个像素点对应的亮度值之间的离散程度;根据第一图像的目标码率和每个像素区块的画质等级,确定每个像素区块的子码率。本技术提供的方法通过每个像素区块中多个像素点对应的亮度值之间的离散程度确定每个像素区块的画质等级,并根据第一图像的画质等级和目标码率为每个像素区块分配不同的比特数,进而在服务器和终端设备之间的信道带宽有限的情况下,提升压缩后的第一图像的图像质量,并且减少服务器在渲染第一图像过程中的计算能力的浪费。
6.在第一方面的一种可能的实现方式中,确定每个像素区块的画质等级,包括:确定第一图像中的每个像素点的亮度值;确定每个像素区块包括的多个像素点的亮度方差值;基于亮度方差值确定每个像素区块的画质等级。本技术提供的方法通过确定第一图像上的每个像素区块的亮度方差值,进而能够根据亮度方差值确定每个像素区块的画质等级,从
而能够实现根据每个像素区块的画质等级确定第一图像的每个像素区块的子码率。
7.在第一方面的一种可能的实现方式中,每个像素区块的画质等级包括第一等级、第二等级或第三等级;第一等级指示:每个像素区块的亮度方差值小于或等于第一阈值;第二等级指示:每个像素区块的亮度方差值大于第一阈值,且小于第二阈值;第二阈值大于第一阈值;第二等级指示:每个像素区块的亮度方差值大于或等于第二阈值。本技术提供的方法通过设置第一阈值和第二阈值,并根据第一阈值和第二阈值确定了多个画质等级,进而实现了像素区块的更细粒度的画质等级的划分,从而实现了基于不同画质等级为每个像素区块分配码率。
8.在第一方面的一种可能的实现方式中,不同的画质等级分别关联不同的比特分配权重,画质等级与比特分配权重正相关,根据第一图像的目标码率和每个像素区块的画质等级,确定每个像素区块的子码率,包括:基于每个像素区块的画质等级确定第一图像中的每个像素区块对应的比特分配权重;根据第一图像的目标码率和每个像素区块对应的比特分配权重确定每个像素区块的子码率。本技术提供的方法通过为不同画质等级配置不同的比特分配权重,进而能够根据每帧图像的每个像素区块的画质等级确定每个像素区块的子码率。
9.在第一方面的一种可能的实现方式中,获取待处理的第一图像,包括:获取待处理的多帧源图像;对多帧源图像进行渲染,获取渲染后的多帧图像;渲染的方式包括执行渲染应用的渲染过程或人工智能生成内容(ai generated content,aigc)中的至少一种,渲染后的多帧图像包括第一图像。本技术提供的方法可以通过多种方式渲染得到第一图像,能够满足用户在不同使用场景下的使用需求。
10.在第一方面的一种可能的实现方式中,多帧源图像包括第一源图像和第二源图像,第一源图像对应于第一图像,第二源图像与第一源图像相邻,且第二源图像的时间戳在第一源图像的时间戳之后;对多帧源图像进行渲染,获取渲染后的多帧图像,包括:根据第一图像中每个像素区块的画质等级,确定第二源图像中每个像素区块的渲染方式;不同的画质等级配置有对应的渲染方式,且画质等级与画质等级对应的渲染方式的渲染精度正相关;根据第二源图像中每个像素区块的渲染方式渲染第二源图像,得到第二图像。本技术提供的方法通过在渲染图像过程中,基于第一图像的每个像素区块对应的画质等级,确定第二图像上每个像素区块的渲染方式,最后渲染得到第二图像。实现了图像渲染过程和图像压缩过程的协同,也就是基于第一图像的每个像素区块对应的画质等级,一方面实现了对第二图像的不同区域进行不同精细度的渲染。另一方面也实现了对第一图像的不同区域分配不同的比特数,这样一来,能够在服务器和终端设备之间的信道带宽有限的情况下,提升压缩后图像的图像质量,并且减少对渲染图像过程中服务器所消耗的计算能力的浪费。
11.在第一方面的一种可能的实现方式中,上述方法还包括:当多帧图像中的每帧图像渲染并压缩完成时,根据压缩后的多帧图像生成位流,发送位流。本技术提供的方法能够在信道带宽有限的云端图像渲染场景下,提升位流中包括的多帧图像的图像质量,从而提升用户的使用体验。并且能够减少服务器在渲染图像过程中的计算能力的浪费。
12.第二方面,本技术提供一种图像处理装置,上述装置包括:获取单元,用于获取待处理的第一图像;确定单元,用于将第一图像划分为多个像素区块,并确定每个像素区块的子码率;每个像素区块包括第一图像中的多个像素点,每个像素区块的子码率是根据每个
像素区块的面积和每个像素区块包括的像素点数量确定的;压缩单元,用于根据多个像素区块的多个子码率对第一图像进行压缩。
13.在第二方面的一种可能的实现方式中,确定单元,具体用于根据每个像素区块的面积和每个像素区块包括的像素点数量确定每个像素区块的画质等级,画质等级用于表征每个像素区块中多个像素点对应的亮度值之间的离散程度;根据第一图像的目标码率和每个像素区块的画质等级,确定每个像素区块的子码率。
14.在第二方面的一种可能的实现方式中,确定单元,具体用于:确定第一图像中的每个像素点的亮度值;确定每个像素区块包括的多个像素点的亮度方差值;基于亮度方差值确定每个像素区块的画质等级。
15.在第二方面的一种可能的实现方式中,每个像素区块的画质等级包括第一等级、第二等级或第三等级;第一等级指示:每个像素区块的亮度方差值小于或等于第一阈值;第二等级指示:每个像素区块的亮度方差值大于第一阈值,且小于第二阈值;第二阈值大于第一阈值;第二等级指示:每个像素区块的亮度方差值大于或等于第二阈值。
16.在第二方面的一种可能的实现方式中,不同的画质等级分别关联不同的比特分配权重,画质等级与比特分配权重正相关,确定单元,具体用于基于每个像素区块的画质等级确定第一图像中的每个像素区块对应的比特分配权重;根据第一图像的目标码率和每个像素区块对应的比特分配权重确定每个像素区块的子码率。
17.在第二方面的一种可能的实现方式中,获取单元,具体用于获取待处理的多帧源图像;对多帧源图像进行渲染,获取渲染后的多帧图像;渲染的方式包括执行渲染应用的渲染过程或人工智能生成内容aigc中的至少一种,渲染后的多帧图像包括第一图像。
18.在第二方面的一种可能的实现方式中,多帧源图像包括第一源图像和第二源图像,第一源图像对应于第一图像,第二源图像与第一源图像相邻,且第二源图像的时间戳在第一源图像的时间戳之后;获取单元,具体用于根据第一图像中每个像素区块的画质等级,确定第二源图像中每个像素区块的渲染方式;不同的画质等级配置有对应的渲染方式,且画质等级与画质等级对应的渲染方式的渲染精度正相关;根据第二源图像中每个像素区块的渲染方式渲染第二源图像,得到第二图像。
19.在第二方面的一种可能的实现方式中,上述装置还包括发送单元,用于当多帧图像中的每帧图像渲染并压缩完成时,根据压缩后的多帧图像生成并发送位流。
20.第三方面,本技术提供了一种图像处理系统,包括终端设备和服务器;终端设备,用于:向服务器发送获取位流的请求,请求包括连续的多帧图像;服务器用于:响应于请求,渲染得到多帧图像;将多帧图像中的每帧图像划分为多个像素区块,并确定每个像素区块的子码率;每个像素区块包括每帧图像中的多个像素点,每个像素区块的子码率是根据每个像素区块的面积和每个像素区块包括的像素点数量确定的;根据多个像素区块的多个子码率对多帧图像中的每帧图像进行压缩;根据压缩后的多帧图像生成位流;向终端设备发送位流。
21.第四方面,提供了一种服务器,包括:处理器和存储器,处理器与存储器连接。存储器用于存储计算机执行指令,处理器执行存储器存储的计算机执行指令,从而实现第一方面提供的任意一种方法。
22.第五方面,提供了一种芯片,该芯片包括:处理器和接口电路;接口电路,用于接收
代码指令并传输至处理器;处理器,用于运行代码指令以执行上述第一方面提供的任意一种方法。
23.第六方面,提供了一种计算机可读存储介质,存储有计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行上述第一方面提供的任意一种方法。
24.第七方面,提供了一种计算机程序产品,包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行上述第一方面提供的任意一种方法。
25.其中,第二方面至第七方面中任一种设计方式所带来的技术效果可以参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
26.图1为一种云端图像渲染的场景示意图;
27.图2为另一种云端图像渲染的场景示意图;
28.图3为又一种云端图像渲染的场景示意图;
29.图4a为本技术实施例示出的一种图像处理系统的架构示意图;
30.图4b为本技术实施例示出的一种图像处理方法的过程示意图;
31.图4c为本技术实施例示出的另一种图像处理方法的过程示意图;
32.图5为本技术实施例示出的一种服务器的结构方框图;
33.图6为本技术实施例示出的一种图像处理方法的交互流程图;
34.图7为本技术实施例示出的一种图像渲染的过程示意图;
35.图8为本技术实施例示出的一种像素区块的示意图;
36.图9为本技术实施例示出的另一种图像处理方法的流程示意图;
37.图10为本技术实施例示出的又一种图像处理方法的流程示意图;
38.图11为本技术实施例示出的一种渲染密度树的生成示意图;
39.图12为本技术实施例示出的一种像素区块的渲染示意图;
40.图13为本技术实施例示出的另一种像素区块的渲染示意图;
41.图14为本技术实施例示出的一种图像处理装置的结构方框图。
具体实施方式
42.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。其中,在本技术的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,a/b可以表示a或b;本技术中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。并且,在本技术的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
43.另外,为了便于清楚描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等
字样也并不限定一定不同。同时,在本技术的一些实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
44.此外,本技术实施例描述的网络架构以及业务场景是为了更加清楚地说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
45.云端图像渲染(cloud 3d rendering applications,cloud 3d)是指通过部署在服务器的渲染应用进行渲染得到图像后,服务器再将图像经过码率分配并压缩后发送给用户的终端设备。其中,码率分配是指为图像的不同区域分别分配不同的比特数。参见图1,图1为一种云端图像渲染的场景示意图,用户通过终端设备100将输入的操作信息发送给服务器110,服务器110根据用户输入的操作信息通过渲染应用进行渲染得到图像,然后通过编码器对渲染后的图像进行压缩,最后将压缩后的图像发送给用户的终端设备100。为了适应服务器110和终端设备100之间的有限的信道带宽,服务器110对渲染后的图像进行压缩方式通常为有损压缩。然而,由于图像的每个区域都按照相同或相似的码率进行压缩,导致压缩后的图像中每个区域的质量均低于渲染后的图像质量,因此造成服务器110在渲染图像的过程中所消耗的计算能力的浪费,且经过有损压缩后的图像质量较差,难以满足用户的使用需求。
46.在相关技术1中,参见图2,服务器110通常将压缩后的图像质量反馈给渲染应用,渲染应用基于压缩后的图像质量进行图像渲染,以使得渲染后的图像质量与压缩后的图像质量相匹配,进而避免渲染后的图像质量高于压缩后的图像质量,从而节约服务器110在渲染图像的过程中所消耗的计算能力。然而,这种方式虽然在渲染图像过程中节约了服务器110的计算能力,但是存在渲染得到的图像质量较差的问题,难以满足用户的使用需求。
47.在相关技术2中,参见图3,服务器110通过图像中的物体进行图像识别,然后基于图像中每个物体的位置信息确定每个物体的重要程度。例如,将距离相机位置较近的物体确定为重要程度高,将距离相机位置较远的物体确定为重要程度低,最后编码器根据每个物体的重要程度确定每帧图像的不同区域的码率,并完成压缩。这种方法虽然能够一定程度上提升图像上部分区域的图像质量,但基于位置信息确定物体的重要程度存在准确性较差的问题,例如,在一些场景中,距离相机位置较远的物体a为用户需要重点查看的内容,但由于物体a距离相机位置较远,导致服务器110确定物体a的重要程度低,从而为物体a分配的码率较低。这种情况下,图像中物体a的画面质量模糊,难以满足用户的使用需求。
48.基于上述内容,本技术实施例提供了一种图像处理方法,可以应用于上述云端图像渲染场景中,服务器通过确定第一图像的每个像素区块的画质等级,然后根据第一图像的目标码率和每个像素区块的画质等级确定第一图像上每个像素区块的子码率,然后基于每个像素区块的子码率对第一图像进行压缩,得到压缩后的第一图像。本技术实施例提供的方法通过基于第一图像的每个像素区块的画质等级,并基于每个像素区块的画质等级为每个像素区块分配不同的码率。例如,为第一图像上画质等级较高的区域分配较高的比特数,为第一图像上画质等级较低的区域分配较低的比特数。能够在服务器和终端设备之间
的信道带宽有限的情况下,也就第一图像的目标码率固定的情况下,提升压缩后的图像中部分区域的图像质量,且能够减少服务器在渲染第一图像过程中的计算能力的浪费。
49.本技术实施例提供的图像处理方法可以应用于图像处理系统中,参见图4a,图4a为本技术实施例提供的一种图像处理系统的架构示意图,包括终端设备410和图像处理装置420。
50.在一个示例中,参见图4b,图4b为本技术实施例示出的一种图像处理方法的过程示意图,图像处理装置420包括获取单元421、确定单元422以及压缩单元423。其中,获取单元421用于根据用户输入的操作信息进行渲染,得到第一图像,然后将第一图像发送给确定单元422。确定单元422用于将第一图像划分为多个像素区块,并确定第一图像的每个像素区块的画质等级。每个像素区块包括第一图像中的多个像素点,画质等级用于表征每个像素区块中多个像素点对应的亮度值之间的离散程度,确定单元422还用于将第一图像的每个像素区块的画质等级发送给压缩单元423。压缩单元423用于根据第一图像的目标码率和每个像素区块的画质等级,确定第一图像的每个像素区块的子码率,并用于根据多个像素区块的多个子码率对第一图像进行压缩。
51.可选的,参见图4c,在第一图像为连续多帧图像中的一帧的情况下,确定单元422还用于将第一图像的每个像素区块的画质等级发送给获取单元421,以使得获取单元421基于第一图像的每个像素区块的画质等级对第二图像进行渲染,得到第二图像,其中,第二图像为连续多帧图像中的与第一图像相邻的图像,且第二图像的时间戳在所述第一图像的时间戳之后。
52.应理解的是,本技术实施例提供的图像处理装置420在得到第二图像后,确定第二图像的每个像素区块的画质等级和子码率,并对第二图像进行压缩的具体方式与上述对第一图像的处理方式相同,此处不再赘述。
53.在一些实施例中,终端设备410和图像处理装置420之间建立有通信连接。通信连接可以包括有线通信连接或无线通信连接。例如,无线通信连接可以包括蓝牙通信连接、近场通信连接以及无线局域网通信连接等近距离无线通信连接。其中,终端设备410和图像处理装置420之间建立无线通信连接的无线通信技术包括但不限于以下的至少一种:无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt)(例如,传统蓝牙或者低功耗(bluetooth low energy,ble)蓝牙),近距离无线通信(near field communication,nfc),紫蜂(zigbee),调频(frequency modulation,fm)以及红外(infrared,ir)等。
54.可以理解的是,本技术实施例中终端设备410例如可以为手机、平板电脑、个人计算机(personal computer,pc)、个人数字助理(personal digital assistant,pda)、智能手表、上网本、可穿戴设备、增强现实技术(augmented reality,ar)设备、虚拟现实(virtual reality,vr)设备、车载设备、智慧屏、智能汽车、智能音响、机器人等,本技术对该终端设备410的具体形式不做特殊限制。
55.本技术实施例中图像处理装置420可以是具有任意计算处理能力的计算设备,或者是该计算设备中的功能模块。作为示例,计算设备可以是通用计算机、笔记本电脑或服务器等,本技术对该图像处理装置420的具体形式不做特殊限制。
56.并且,终端设备410和图像处理装置420安装的操作系统包括但不限于
或者其他操作系统。本技术对终端设备410和图像处理装置420的具体类型、在有安装操作系统下操作系统的类型均不作限制。
57.以下实施例以图像处理装置420为服务器为例进行示例性说明。
58.图5示出了本技术实施例提供的服务器的结构示意图。该服务器500包括处理器510、存储器520以及至少一个通信接口530。
59.处理器510可以包括一个或者多个处理核心。处理器510利用各种接口和线路连接服务器500内的各个部分,通过运行或执行存储在存储器520内的指令、程序、代码集或指令集,以及调用存储在存储器520内的数据,执行服务器500的各种功能和处理数据。可选的,处理器510可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器510可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。可以理解的是,上述调制解调器也可以不集成到处理器510中,单独通过一块通信芯片进行实现。
60.存储器520可用于存储指令、程序、代码、代码集或指令集。存储器520可包括存储程序区。其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如图像渲染功能、图像压缩功能等),用于实现下文所述各个方法实施例的指令等。
61.通信接口530,用于与通信网络或通讯网络中的设备通信,如以太网,无线接入网(ran),无线局域网(wireless local area networks,wlan)或wlan网络中的ap等。例如,服务器500的通信接口530与终端设备410进行通信。
62.具体实现时,在物理实现上,上述各器件(如处理器510、存储器520和通信接口530)可以是同一个计算设备中的器件;或者,其中的至少两个器件可以设置在同一个计算设备中,即作为一个计算设备中的不同器件,如类似于分布式系统中的设备或器件的部署方式。
63.可以理解的是,本实施例示意的结构并不构成对服务器500的具体限定。在一些实施例中,服务器500可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
64.以下结合说明书附图,对本技术实施例提供的图像处理方法进行说明。
65.图6为本技术实施例提供的一种图像处理方法的方法流程图。可选的,该方法可以由上述具有图5所示硬件结构的服务器500执行。该方法可以包括如下步骤:
66.s601、获取待处理的第一图像。
67.具体的,第一图像可以为服务器渲染得到的图像。例如,服务器通过对第一图像对应的第一源图像进行渲染,得到第一图像。
68.在一些实施例中,服务器渲染得到第一图像的方式包括执行渲染应用的渲染过程或人工智能生成内容中的至少一种。例如,参见图7,图7中的(a)为服务器基于第一源图像,通过渲染应用701得到第一图像的过程示意图。图7中的(b)为服务器根据第一源图像通过人工智能生成内容702得到第一图像的过程示意图。
69.应理解的是,服务器也可以基于其他方式渲染得到第一图像,申请实施例对服务器获取第一图像的具体的实现方式不作特别限制。
70.在一种可能的实现方式中,上述s601,具体包括如下步骤:
71.获取待处理的多帧源图像,对多帧源图像进行渲染,获取渲染后的多帧图像。
72.具体的,上述多帧源图像包括第一图像对应的第一源图像。渲染后的多帧图像包括第一图像。
73.在一些实施例中,多帧源图像为终端设备向服务器发送的请求中携带的。该请求用于请求服务器对请求中携带的多帧源图像进行渲染后得到多帧图像,并返回包括多帧图像的位流。
74.具体的,上述请求可以根据用户在终端设备显示的画面中输入的操作生成,该位流用于显示在用户输入操作后的终端设备应显示的多帧画面。例如,在终端设备运行游戏的场景中,当用户在终端设备显示的游戏画面中进行点击操作时,终端设备响应于用户在游戏界面的点击操作生成对应的请求,并将携带有多帧源图像的请求发送给服务器,以使得服务器返回包括多帧图像的位流,该位流用于显示在用户进行点击操作后的终端设备应显示的多帧游戏画面。
75.s602、将第一图像划分为多个像素区块。
76.具体的,每个像素区块分别对应第一图像上的不同区域,每个像素区块包括第一图像中的多个像素点。应理解的是,每个像素区块的形状和像素区块包括的像素点的数量可以基于用户需求自行设置,例如,同一帧图像上的不同像素区块包括的像素点的数量可以相同也可以不同,同一帧图像上的不同像素区块的形状可以相同也可以不同,本技术实施例对像素区块的具体实现方式不作特别限制。
77.示例性的,参见图8,图8为本技术实施例示出的一种像素区块的示意图,服务器将图像a划分为4个形状为正方形的像素区块,分别为像素区块a、像素区块b、像素区块c和像素区块d。其中,每个像素区块包括4*4个像素点。
78.s603、确定每个像素区块的子码率。
79.具体的,第一图像的每个像素区块的子码率为服务器为每个像素区块分配的比特数。
80.在一种可能的实现方式中,参见图9,上述s603,具体包括以下步骤:
81.s6031、根据每个像素区块的面积和每个像素区块包括的像素点数量确定每个像素区块的画质等级。
82.具体的,服务器可以预先梯度设置像素区块对应的多个画质等级,多个画质等级分别用于表征不同像素区块中多个像素点对应的亮度值之间的不同离散程度,从而能够表征每个像素区块不同的画面质量,画面质量也可以理解为像素区块显示的精细程度。
83.可选的,画质等级包括第一等级、第二等级和第三等级。其中,第一等级为画质等级最低、第三等级为画质等级最高。当一个像素区块上的内容需要低精度显示时,该像素区块对应的画质等级为第一等级,当一个像素区块上的内容需要中等精度显示时,该像素区块对应的画质等级为第二等级,当一个像素区块上的内容需要高精细显示时,该像素区块对应的画质等级为第三等级。
84.应理解的是,本技术实施例将像素区块的画质等级划分第一等级、第二等级和第三等级仅为示例性的划分,本技术实施例提供的方法对像素区块的画质等级进行更细粒度的划分。例如,根据像素区块上的内容的显示精度不同,将像素区块的画质等级划分为5个
等级。本技术实施例对像素区块的画质等级的具体划分方式不作特别限制。
85.在一些实施例中,参见图10,上述s6031,具体包括以下步骤:
86.s60311、确定第一图像中的每个像素点的亮度值。
87.具体的,服务器通过渲染应用得到的第一图像的色彩模式为rgb色彩模式。其中,rgb色彩模式是一种颜色标准,是通过对红(r)、绿(g)、蓝(b)三个颜色通道的变化以及它们相互之间的叠加来得到第一图像上每个像素的颜色。服务器首先将第一图像的色彩模式由rgb色彩模式切换为yuv色彩模式。其中,yuv色彩模式即通过亮度值(y)和两个色差值(u和v)来表示第一图像上每个像素的颜色。换言之,就是服务器根据渲染后的第一图像生成第一图像的yuv亮度图,然后从第一图像的yuv亮度图中获取第一图像上的每个像素点对应的亮度值。
88.s60312、确定每个像素区块包括的多个像素点的亮度方差值。
89.具体的,服务器根据每个像素点对应的亮度值计算每个像素区块的亮度方差值。其中,像素区块的亮度方差值等于该像素区块中的每个像素点的亮度值与全部像素点的亮度平均值的离差平方和的平均数。
90.s60313、基于亮度方差值确定每个像素区块的画质等级。
91.在一种可能的实现方式中,上述s60313具体包括以下步骤:
92.在像素区块的亮度方差值小于等于第一阈值的情况下,确定画质等级为第一等级;在像素区块的亮度方差值大于第一阈值,且小于第二阈值的情况下,确定画质等级为第二等级;在像素区块的亮度方差值大于等于第二阈值的情况下,确定画质等级为第三等级。
93.示例性的,结合图8,在第一阈值为2,第二阈值为10的情况下,假设像素区块a的亮度方差值为1,像素区块b的亮度方差值为4,像素区块c的亮度方差值为9,像素区块d的亮度方差值为15,那么服务器确定像素区块a的画质等级为第一等级,像素区块b和像素区块c的画质等级为第二等级,像素区块d的画质等级为第三等级。
94.应理解的是,本技术实施例预先设置第一阈值和第二阈值,以及基于第一阈值和第二阈值将画质等级划分为第一等级、第二等级和第三等级仅为示例性的,本技术实施例提供的方法也可以设置更多数量的阈值,进而基于更多数量的阈值划分出更多数量的阈值区间,以通过更多数量的阈值区间划分更细粒度的像素区块的画质等级,本技术实施例对像素区块的画质等级的具体划分方式不作特别限制。
95.由上述s60311-s60313可知,本技术实施例提供的方法通过生成第一图像对应的yuv亮度图,能够确定第一图像的每个像素区块的亮度方差值,进而能够根据亮度方差值确定第一图像的每个像素区块的画质等级。
96.在一种可能的实现方式中,本技术实施例提供的方法还包括以下步骤:基于每个像素区块对应的画质等级对第一图像上的不同像素区块进行标记,然后对具有相同画质等级的相邻像素区块进行合并,得到第一图像的渲染密度树,第一图像的渲染密度树用于标识第一图像上不同区域对应的画质等级。
97.示例性的,结合图8,参见图11,图11为本技术实施例提供的一种渲染密度树的生成示意图,服务器首先将图像a中画质等级为第一等级的像素区块标记为1、将画质等级为第二等级的像素区块标记为2、将画质等级为第三等级的像素区块标记为3。然后将具有相同画质等级的相邻像素区块进行合并,最终得到图像a对应的渲染密度树。
98.可选的,服务器对第一图像的每个像素区块的画质等级的确定过程,以及服务器生成第一图像的渲染密度树的过程可以基于服务器配置的图形处理器(graphics processing unit,gpu)中的计算着色器(compute shader,cs)工具实现。
99.s6032、根据第一图像的目标码率和每个像素区块的画质等级,确定每个像素区块的子码率。
100.具体的,服务器根据服务器和终端设备的信道带宽确定第一图像的目标码率,也就是服务器为第一图像分配的总比特数,第一图像的每个像素区块的子码率为服务器为每个像素区块分配的比特数。
101.在一些实施例中,不同的所述画质等级分别关联不同的比特分配权重,所述画质等级与所述比特分配权重正相关。上述s6032,具体包括以下步骤:
102.基于所述每个像素区块的画质等级确定所述第一图像中的每个像素区块对应的比特分配权重;根据所述第一图像的目标码率和所述每个像素区块对应的比特分配权重确定所述每个像素区块的子码率。
103.示例性的,画质等级为第一等级关联的比热分配权重为x,画质等级为第二等级关联的比特分配权重为y,画质等级为第三等级关联的比特分配权重为z。服务器根据服务器和终端设备之间的信道带宽确定的第一图像的目标码率,然后服务器根据第一图像的每个像素区块的画质等级,确定每个像素区块的比特分配权重,最后服务器基于第一图像的目标码率和每个像素区块的比特分配权重分别确定第一图像的每个像素区块的码率。
104.在一种可能的实现方式中,在服务器通过编码器进行编码树单元(coding tree unit,ctu)级的码率分配的情况下,上述s603具体包括以下步骤:
105.服务器根据每个像素区块对应的比特分配权重确定每个编码单元块(coding unit,cu)的比特分配权重,并根据每个编码单元块的比特分配权重和第一图像的目标码率确定每个像素区块对应的子码率。
106.具体的,在第一图像的一个像素区块和一个编码单元块重合的情况下,将像素区块的比特分配权重确定为编码单元块的比特分配权重。在第一图像的一个像素区块中包括多个编码单元块的情况下,根据编码单元块的数量确定像素区块的比特分配权重的平均值,将像素区块的比特分配权重的平均值分别确定为多个编码单元块中每个编码单元块的比特分配权重。在一个编码单元块包括多个像素区块的情况下,将多个像素区块的比特分配权重的加和确定为该编码单元块的比特分配权重。最后根据每个编码单元块的比特分配权重和第一图像的目标码率确定每个像素区块对应的子码率。
107.s604、根据多个像素区块的多个子码率对第一图像进行压缩。
108.可选的,本技术实施例提供的方法还包括以下步骤:
109.当所述多帧图像中的每帧图像渲染并压缩完成时,根据压缩后的多帧图像生成位流;
110.向终端设备发送包括多帧图像的位流。
111.由上述s601-s604可知,本技术实施例提供的方法通过基于第一图像的每个像素区块的画质等级,并基于每个像素区块的画质等级为每个像素区块分配不同的码率。例如,为第一图像上画质等级较高的区域分配较高的比特数,为第一图像上画质等级较低的区域分配较低的比特数。能够在服务器和终端设备之间的信道带宽有限的情况下,也就第一图
像的目标码率固定的情况下,提升压缩后的图像中部分区域的图像质量,且能够减少服务器在渲染第一图像过程中的计算能力的浪费。
112.在一些实施例中,当服务器依次渲染包括第一图像的多帧图像时,服务器可以在根据第一源图像渲染完成得到第一图像时,确定第一图像的每个像素区块对应的画质等级,然后再对第二源图像进行渲染,得到第二图像。其中,第二源图像与第一源图像相邻,且第二源图像的时间戳在第一源图像的时间戳之后。也可以在多帧图像中的每一帧图像全部渲染完成后,再依次确定每帧图像的每个像素区块对应的画质等级,本技术实施例对图像的渲染顺序不作特别限制。
113.可选的,在服务器可以在根据第一源图像渲染完成得到第一图像时,确定第一图像的每个像素区块对应的画质等级,然后再对第二源图像进行渲染,得到第二图像的情况下,本技术实施例提供的方法还包括以下步骤:
114.当渲染第二图像时,基于第一页图像的多个像素区块的画质等级,渲染第二图像的每个像素区块,得到渲染后的第二图像。
115.具体的,服务器在通过渲染应用或aigc渲染图像时,对于每帧图像的每个像素点,服务器可以采用精细渲染的方式得到,也可以采用插值计算的方式得到,其中,精细渲染得到的像素点的精细程度较高,插值计算得到的像素点的精细程度较低。
116.不同的画质等级分别关联有不同的渲染方式,由于第二图像为第一图像的下一帧,因此第二图像与第一图像上的像素区块的位置一一对应,且第一图像上每个像素区块的不同画质等级分别对应不同的渲染方式,因此,基于第一图像的每个像素区块对应的画质等级,将第一图像上每个像素区块对应的渲染方式确定第二源图像上每个位置相对应的像素区块的渲染方式。然后服务器基于不同的渲染方式对第二源图像上的每个像素区块分别进行渲染,得到第二图像。
117.示例性的,参见图12,图12为本技术实施例示出的一种像素区块的渲染示意图,假设第一图像包括3个像素区块,像素区块d1的画质等级为第一等级,像素区块e1的画质等级为第二等级,像素区块f1的画质等级为第三等级,渲染密度树i为第一图像的渲染密度树。当服务器根据第二源图像进行渲染时,由于第二图像的像素区块d2与像素区块d1的位置相对应,第二图像的像素区块e2与像素区块e1的位置相对应,第二图像的像素区块f2与像素区块f1的位置相对应。因此基于渲染密度树i分别确定第二源图像的不同像素区块的渲染方式。具体来说,也就是基于像素区块d1的画质等级确定像素区块d2的渲染方式,基于像素区块e1的画质等级确定像素区块e2的渲染方式,基于像素区块f1的画质等级确定像素区块f2的渲染方式,其中d2的渲染方式为第一等级对应的第一渲染方式,e2的渲染方式为第二等级对应的第二渲染方式,f2的渲染方式为第三等级对应的第三渲染方式。然后服务器根据像素区块d2、e2和f2分别对应的渲染方式对第二源图像进行渲染,得到第二图像。
118.在一个示例中,参见图13,图13为本技术实施例示出的一种像素区块渲染示意图,包括三个不同画质等级的区块的渲染过程,其中,被颜色填充的像素点为精细渲染方式得到的像素点,未被颜色填充的像素点为插值计算方式得到的像素点。假设像素区块a的画质等级为第一等级,第一等级对应的第一渲染方式如图13中的(a)所示,对该像素区块中第一比率的像素点通过精细渲染的方式生成,其余像素点通过插值计算的方式生成。其中,第一比率为25%。像素区块b的画质等级为第二等级,第二等级对应的第二渲染方式如图13中的
(b)所示,为对该像素区块中第二比率的像素点通过精细渲染的方式生成,其余像素点通过插值计算的方式生成。其中,第二比率为50%。第三等级对应的第三渲染方式如图13中的(c)所示,像素区块c的画质等级为第三等级,像素区块c的渲染方式为对该像素区块中第三比率的像素点通过精细渲染的方式生成,其余像素点通过插值计算的方式生成。其中,第三比率为100%。
119.需要说明的是,以上对于不同画质等级对应的不同渲染方式仅为示例性说明,本技术实施例可以划分更细粒度的画质等级,并为每个画质等级分别配置不同的渲染方式,本技术实施例对此不作特别限制。
120.本技术实施例提供的方法通过在渲染第二图像过程中,基于第一帧图像的每个像素区块对应的画质等级,确定第二图像上每个像素区块的渲染方式,最后对第二源图像进行渲染,得到第二图像。实现了服务器的图像渲染过程和图像压缩过程的协同,也就是基于第一图像的每个像素区块对应的画质等级,一方面实现了对第二图像的不同画面区域进行不同精细度的渲染。另一方面实现了对第一图像的不同画面区域进行不同精细度的压缩,这样一来,能够在服务器和终端设备之间的信道带宽有限的情况下,提升压缩后图像的图像质量,并且减少对渲染图像过程中服务器所消耗的计算能力的浪费。
121.可选的,本技术实施例提供的方法还包括以下步骤:
122.当所述多帧图像中的每帧图像渲染并压缩完成时,根据压缩后的多帧图像生成位流;
123.向终端设备发送包括多帧图像的位流。
124.在一种可能的实现方式中,可以将实现本技术实施例所提供的图像处理方法的各个步骤的程序配置在服务器内部,并以多个应用程序编程接口(application programming interface,api)被服务器调用的形式实现。
125.在一个示例中,将实现生成渲染密度树的过程通过服务器调用应用程序编程接口(application programming interface,api)实现,服务器调用api,以生成到第一图像的渲染密度树,其中,例如,生成第一图像的渲染密度树的api的名称可以为:
126.glgenrenderdensitytree(int*pixels,double thd,double k);
127.vkgenrenderdensitytree(int*pixels,double thd,double k);
128.其中,pixels为多帧图像中的每帧图像,thd为上述第一阈值,k*thd为上述第二阈值。
129.该api用于响应于服务器的调用,生成每帧图像的渲染密度树。
130.在另一个示例中,返回每帧图像的渲染密度树的api的名称可以为:
131.xxgetrenderdensitytree();
132.glgetrenderdensitytree();
133.glgetrenderdensitytree();
134.该api用于在生成渲染密度树后,响应于服务器的调用,以使得服务器获取第一图像的渲染密度树。
135.在又一个示例中,服务器基于第一图像的渲染密度树对第二源图像进行渲染的过程也可以基于api实现,该api的名称可以为:
136.glsetrenderdensitytree(tree);
137.vksetrenderdensitytree(tree);
138.该api用于在服务器接收到第一图像的渲染密度树后,也就是接收到第一图像上不同像素区块的画质等级后,基于第一图像的渲染密度树,对第二源图像进行渲染,以得到第二图像。
139.需要说明的是,以上api仅为示例性说明,本技术实施例对实现本技术提供的图像处理方法的各个步骤也可以通过其他方式实现,本技术实施例对此不作特别限制。
140.上述主要从方法的角度对本技术实施例的方案进行了介绍。可以理解的是,上述服务器为了实现上述功能,其包含了执行各个功能相应的硬件结构和软件模块中的至少一个。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。
141.本技术实施例可以根据上述方法示例对图像处理装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
142.示例性的,图14出了本技术实施例提供的一种图像处理装置的结构框图。该装置包括获取单元1410和确定单元1420和压缩单元1430,获取单元1410,用于获取待处理的第一图像;确定单元1420,用于将第一图像划分为多个像素区块,并确定每个像素区块的子码率;每个像素区块包括第一图像中的多个像素点,每个像素区块的子码率是根据每个像素区块的面积和每个像素区块包括的像素点数量确定的;压缩单元1430,用于根据多个像素区块的多个子码率对第一图像进行压缩。
143.可选的,确定单元1420,具体用于根据每个像素区块的面积和每个像素区块包括的像素点数量确定每个像素区块的画质等级,画质等级用于表征每个像素区块中多个像素点对应的亮度值之间的离散程度;根据第一图像的目标码率和每个像素区块的画质等级,确定每个像素区块的子码率。
144.可选的,确定单元1420,具体用于:确定第一图像中的每个像素点的亮度值;确定每个像素区块包括的多个像素点的亮度方差值;基于亮度方差值确定每个像素区块的画质等级。
145.可选的,每个像素区块的画质等级包括第一等级、第二等级或第三等级;第一等级指示:每个像素区块的亮度方差值小于或等于第一阈值;第二等级指示:每个像素区块的亮度方差值大于第一阈值,且小于第二阈值;第二阈值大于第一阈值;第二等级指示:每个像素区块的亮度方差值大于或等于第二阈值。
146.可选的,不同的画质等级分别关联不同的比特分配权重,画质等级与比特分配权重正相关,确定单元1420,具体用于基于每个像素区块的画质等级确定第一图像中的每个像素区块对应的比特分配权重;根据第一图像的目标码率和每个像素区块对应的比特分配权重确定每个像素区块的子码率。
transitory)。本领域技术人员应该可以意识到,在上述多个示例中,本技术实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读存储介质上的多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
155.以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:
1.一种图像处理方法,其特征在于,包括:获取待处理的第一图像;将所述第一图像划分为多个像素区块,并确定每个像素区块的子码率;所述每个像素区块包括所述第一图像中的多个像素点,所述每个像素区块的子码率是根据所述每个像素区块的面积和所述每个像素区块包括的像素点数量确定的;根据所述多个像素区块的多个子码率对所述第一图像进行压缩。2.根据权利要求1所述的方法,其特征在于,所述确定每个像素区块的子码率,包括:根据所述每个像素区块的面积和所述每个像素区块包括的像素点数量确定所述每个像素区块的画质等级,所述画质等级用于表征所述每个像素区块中多个像素点对应的亮度值之间的离散程度;根据所述第一图像的目标码率和所述每个像素区块的画质等级,确定所述每个像素区块的子码率。3.根据权利要求2所述的方法,其特征在于,所述确定每个像素区块的画质等级,包括:确定所述第一图像中的每个像素点的亮度值;确定所述每个像素区块包括的多个像素点的亮度方差值;基于所述亮度方差值确定所述每个像素区块的画质等级。4.根据权利要求3所述的方法,其特征在于,所述每个像素区块的画质等级包括第一等级、第二等级或第三等级;所述第一等级指示:所述每个像素区块的亮度方差值小于或等于第一阈值;所述第二等级指示:所述每个像素区块的亮度方差值大于所述第一阈值,且小于第二阈值;所述第二阈值大于所述第一阈值;所述第二等级指示:所述每个像素区块的亮度方差值大于或等于所述第二阈值。5.根据权利要求2-4中任一项所述的方法,其特征在于,不同的所述画质等级分别关联不同的比特分配权重,所述画质等级与所述比特分配权重正相关,所述根据所述第一图像的目标码率和所述每个像素区块的画质等级,确定所述每个像素区块的子码率,包括:基于所述每个像素区块的画质等级确定所述第一图像中的每个像素区块对应的比特分配权重;根据所述第一图像的目标码率和所述每个像素区块对应的比特分配权重确定所述每个像素区块的子码率。6.根据权利要求1-5中任一项所述的方法,其特征在于,所述获取待处理的第一图像,包括:获取待处理的多帧源图像;对所述多帧源图像进行渲染,获取渲染后的多帧图像;所述渲染的方式包括执行渲染应用的渲染过程或人工智能生成内容aigc中的至少一种,所述渲染后的多帧图像包括所述第一图像。7.根据权利要求6所述的方法,其特征在于,所述多帧源图像包括第一源图像和第二源图像,所述第一源图像对应于所述第一图像,所述第二源图像与所述第一源图像相邻,且所述第二源图像的时间戳在所述第一源图像的时间戳之后;所述对所述多帧源图像进行渲染,获取渲染后的多帧图像,包括:根据所述第一图像中每个像素区块的画质等级,确定所述第二源图像中每个像素区块
的渲染方式;不同的所述画质等级配置有对应的渲染方式,且所述画质等级与所述画质等级对应的渲染方式的渲染精度正相关;根据所述第二源图像中每个像素区块的渲染方式渲染所述第二源图像,得到所述第二图像。8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:当所述多帧图像中的每帧图像渲染并压缩完成时,根据压缩后的所述多帧图像生成位流;发送所述位流。9.一种图像处理装置,其特征在于,所述装置包括:获取单元,用于获取待处理的第一图像;确定单元,用于将所述第一图像划分为多个像素区块,并确定每个像素区块的子码率;所述每个像素区块包括所述第一图像中的多个像素点,所述每个像素区块的子码率是根据所述每个像素区块的面积和所述每个像素区块包括的像素点数量确定的;压缩单元,用于根据所述多个像素区块的多个子码率对所述第一图像进行压缩。10.一种图像处理系统,其特征在于,包括终端设备和服务器;所述终端设备,用于:向所述服务器发送获取位流的请求,所述请求包括连续的多帧图像;所述服务器用于:响应于所述请求,渲染得到所述多帧图像;将所述多帧图像中的每帧图像划分为多个像素区块,并确定每个像素区块的子码率;所述每个像素区块包括所述每帧图像中的多个像素点,所述每个像素区块的子码率是根据所述每个像素区块的面积和所述每个像素区块包括的像素点数量确定的;根据所述多个像素区块的多个子码率对所述多帧图像中的每帧图像进行压缩;根据压缩后的所述多帧图像生成位流;向所述终端设备发送所述位流。11.一种服务器,其特征在于,所述服务器包括存储器、多个处理器;所述存储器与所述处理器耦合;其中,所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,使得所述服务器执行如权利要求1-8任一项所述的方法。12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机可以执行如权利要求1-8任一项所述的方法。
技术总结
本申请关于一种图像处理方法、装置、系统及存储介质,涉及视频编码技术领域。在本申请中,服务器通过获取第一图像;然后将第一图像划分为多个像素区块,并确定每个像素区块的子码率。最后根据多个像素区块的多个子码率对第一图像进行压缩。其中,每个像素区块包括第一图像中的多个像素点,每个像素区块的子码率是根据每个像素区块的面积和每个像素区块包括的像素点数量确定的。本申请能够在服务器和终端设备之间的信道带宽有限的情况下,也就第一图像的目标码率固定的情况下,根据每个像素区块包括的像素点确定第一图像的不同像素区块的子码率,从而提升压缩后的第一图像的图像质量,并且减少服务器在渲染第一图像过程中的计算能力的浪费。算能力的浪费。算能力的浪费。
技术研发人员:刘天义 石仔良 刘晓
受保护的技术使用者:深圳华为云计算技术有限公司
技术研发日:2023.05.26
技术公布日:2023/10/6
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/