速率受控的图像和纹理数据压缩的制作方法

文档序号:34127721发布日期:2023-05-11 13:51阅读:37来源:国知局
速率受控的图像和纹理数据压缩的制作方法

本公开总体上涉及数据压缩,且更具体地,涉及速率受控的图像和纹理数据压缩。


背景技术:

1、纹理通常可以包括映射到三维(three-dimensional,3d)表面的二维(two-dimensional,2d)图像,其中这些纹理图像的各个像素可以被称作“纹素”(例如,纹理元素)。例如,在图形渲染期间,对可见对象的纹理进行采样,以生成供显示的最终图像。然而,人工现实(例如,增强现实(augmented reality,ar)、虚拟现实(virtual reality,vr))头戴式设备可以包括使得不同波长的光具有不同焦距的一个或多个显示透镜。这可能导致视觉伪像,例如使得人工现实头戴式设备的显示器上的色差变得明显。例如,色差可以包括原始渲染图像中的像素的不同颜色通道,该原始渲染图像中的像素的不同颜色通道在该图像被显示时没有被投影到用户眼睛中的相同对应位置。因此,提供对色差进行补偿的技术可以是有用的。

2、根据本发明,提供了一种由计算系统实现的方法,该方法包括:确定用于对图像中的像素区的一个或多个颜色分量进行编码的比特深度,该一个或多个颜色分量具有颜色范围;通过以下确定具有第一量化端点和第二量化端点的量化范围:在将第二量化端点固定到基于颜色范围确定的初始值时,基于多个对应的第一量化误差针对第一量化端点选择多个第一候选值中的一个第一候选值,以及在将第一量化端点固定到选定的第一候选值时,基于多个对应的第二量化误差针对第二量化端点选择多个第二候选值中的一个第二候选值;使用由第一量化端点和第二量化端点定义的量化范围来定义与比特深度相对应的量化等级;以及使用量化等级对像素区的一个或多个颜色分量进行编码。

3、优选地,确定量化范围包括具有包括:确定与比特深度相对应的最大量化等级和最小量化等级。

4、优选地,该方法还包括:在将第二量化端点固定到最大量化等级时:基于最大量化等级和最小量化等级,针对第一量化端点的多个第一候选值执行第一搜索;确定与多个第一候选值中的每个第一候选值相关联的量化误差;以及将第一量化端点设置为多个第一候选值中的与最低量化误差相对应的一个第一候选值。

5、优选地,针对第一量化端点的多个第一候选值执行第一搜索包括:针对第一量化端点的m个候选值执行搜索。

6、优选地,该方法还包括:在将第一量化端点固定到多个第一候选值中的与最低量化误差相对应的一个第一候选值时:基于最大量化等级和第一量化端点,针对第二量化端点的多个第二候选值执行第二搜索;确定与多个第二候选值中的每个第二候选值相关联的量化误差;以及将第二量化端点设置为多个第二候选值中的与最低量化误差相对应的一个第二候选值。

7、优选地,针对第二量化端点的多个第二候选值执行第二搜索包括:针对第二量化端点的n个候选值执行搜索。

8、优选地,针对第一量化端点的多个第一候选值执行第一搜索以及针对第二量化端点的多个第二候选值执行第二搜索包括:针对总共(m+n)-1个候选值执行搜索。

9、优选地,针对第一量化端点的多个第一候选值执行第一搜索以及针对第二量化端点的多个第二候选值执行第二搜索包括:针对总共m*n个候选值执行搜索。

10、根据本发明的另一方面,提供了一种系统,该系统包括:一个或多个非暂态计算机可读存储介质,该一个或多个非暂态计算机可读存储介质包括指令;以及一个或多个处理器,该一个或多个处理器耦合到存储介质,该一个或多个处理器被配置成执行指令以:确定用于对图像中的像素区的一个或多个颜色分量进行编码的比特深度,该一个或多个颜色分量具有颜色范围;通过以下确定具有第一量化端点和第二量化端点的量化范围:在将第二量化端点固定到基于颜色范围确定的初始值时,基于多个对应的第一量化误差针对第一量化端点选择多个第一候选值中的一个第一候选值,以及在将第一量化端点固定到选定的第一候选值时,基于多个对应的第二量化误差针对第二量化端点选择多个第二候选值中的一个第二候选值;使用由第一量化端点和第二量化端点定义的量化范围来定义与比特深度相对应的量化等级;以及使用量化等级对像素区的一个或多个颜色分量进行编码。

11、优选地,一个或多个处理器还被配置成执行指令以确定与比特深度相对应的最大量化等级和最小量化等级。

12、优选地,一个或多个处理器还被配置成执行指令以:在将第二量化端点固定到最大量化等级时:基于最大量化等级和最小量化等级,针对第一量化端点的多个第一候选值执行第一搜索;确定与多个第一候选值中的每个第一候选值相关联的量化误差;以及将第一量化端点设置为多个第一候选值中的与最低量化误差相对应的一个第一候选值。

13、优选地,一个或多个处理器还被配置成执行指令以针对第一量化端点的m个候选值执行搜索作为针对多个第一候选值的第一搜索。

14、优选地,一个或多个处理器还被配置成执行指令以:在将第一量化端点固定到多个第一候选值中的与最低量化误差相对应的一个第一候选值时:基于最大量化等级和第一量化端点,针对第二量化端点的多个第二候选值执行第二搜索;确定与多个第二候选值中的每个第二候选值相关联的量化误差;以及将第二量化端点设置为多个第二候选值中的与最低量化误差相对应的一个第二候选值。

15、优选地,一个或多个处理器还被配置成执行指令以针对第二量化端点的n个候选值执行搜索作为针对多个第二候选值的第二搜索。

16、优选地,一个或多个处理器还被配置成执行指令以针对总共(m+n)-1个候选值执行搜索作为针对多个第一候选值的第一搜索和针对多个第二候选值的第二搜索。

17、优选地,一个或多个处理器还被配置成执行指令以针对总共m*n个候选值执行搜索作为针对多个第一候选值的第一搜索和针对多个第二候选值的第二搜索。

18、根据本发明的另一方面,提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包括指令,这些指令当由计算系统的一个或多个处理器执行时,使该一个或多个处理器:确定用于对图像中的像素区的一个或多个颜色分量进行编码的比特深度,该一个或多个颜色分量具有颜色范围;通过以下确定具有第一量化端点和第二量化端点的量化范围:在将第二量化端点固定到基于颜色范围确定的初始值时,基于多个对应的第一量化误差针对第一量化端点选择多个第一候选值中的一个第一候选值,以及在将第一量化端点固定到选定的第一候选值时,基于多个对应的第二量化误差针对第二量化端点选择多个第二候选值中的一个第二候选值;使用由第一量化端点和第二量化端点定义的量化范围来定义与比特深度相对应的量化等级;以及使用量化等级对像素区的一个或多个颜色分量进行编码。

19、优选地,这些指令还使一个或多个处理器确定与比特深度相对应的最大量化等级和最小量化等级。

20、优选地,这些指令还使一个或多个处理器:在将第二量化端点固定到最大量化等级时:基于最大量化等级和最小量化等级,针对第一量化端点的多个第一候选值执行第一搜索;确定与多个第一候选值中的每个第一候选值相关联的量化误差;以及将第一量化端点设置为多个第一候选值中的与最低量化误差相对应的一个第一候选值。

21、优选地,这些指令还使一个或多个处理器:在将第一量化端点固定到多个第一候选值中的与最低量化误差相对应的一个第一候选值时:基于最大量化等级和第一量化端点,针对第二量化端点的多个第二候选值执行第二搜索;确定与多个第二候选值中的每个第二候选值相关联的量化误差;以及将第二量化端点设置为多个第二候选值中的与最低量化误差相对应的一个第二候选值。

22、特定实施例的概述

23、本实施例针对如下技术,即这些技术用于:(1)单独编码各个颜色分量;以及(2)提供压缩率控制方法,该压缩率控制方法基于每个像素块的每个像素的多个rgb颜色分量中的每个rgb颜色分量中包括的颜色信息量,将可用比特分配给不同的红色(r)分量、绿色(g)分量和蓝色(b)分量。在某些实施例中,编码器设备可以访问图像中的像素区的颜色分量。例如,在一个实施例中,该图像可以包括n比特颜色图像(例如,8比特颜色图像),该n比特颜色图像可以包括要被压缩和存储和/或传输的rgb颜色分量。然后,编码器设备可以确定像素区的多个颜色分量中的每个颜色分量的颜色方差。例如,在某些实施例中,编码器设备可以相对于每个像素区的每个像素的多个rgb颜色分量中的每个rgb颜色分量(逐个像素区地)执行n比特颜色图像的预分析、并确定平均值(例如,总像素值的平均值)和方差(例如,每个rgb颜色分量与平均值差距的平均程度的度量)。

24、在某些实施例中,编码器设备然后可以基于与该像素区的多个颜色分量中的每个颜色分量相关联的颜色方差,确定该颜色分量的期望比特分配。例如,在一些实施例中,编码器设备可以确定期望比特分配[x,y,z](例如,x–与像素区的所有红色分量对应;y–与像素区的所有绿色分量对应;以及z–与像素区的所有蓝色分量对应),以用于基于与多个rgb颜色分量中的每个rgb颜色分量相关联的颜色方差来对该像素区的多个rgb颜色分量中的每个rgb颜色分量进行编码。然后,编码器设备可以基于该像素区的多个颜色分量的期望比特分配和可用于分配的未分配比特数来确定该像素区的总比特分配预算。

25、例如,在一些实施例中,编码器设备可以基于像素区的多个rgb颜色分量中的每个颜色分量的期望比特分配(例如,x,y,z)的总和(例如,n=比特分配预算+可用于分配的未分配比特数)和可用于分配的未分配比特数(例如,多个比特)来确定总比特分配预算。然后,编码器设备可以根据多个颜色分量中的每个颜色分量的期望比特分配,通过将该像素区的总比特分配分配到该像素区的多个颜色分量中的每个颜色分量来确定该多个颜色分量中的每个颜色分量的最终比特分配。例如,在某些实施例中,编码器设备例如可以通过例如将可用于分配的未分配比特数(例如,n个比特)与期望比特分配[x,y,z]进行比较来确定最终比特分配。具体地,在一些实施例中,可用于分配的未分配比特数可以对应于像素区的预定比特分配预算(例如,n bpp)。

26、在一些实施例中,响应于确定多个rgb颜色分量中的每个rgb颜色分量的期望比特分配(例如,x,y,z)的总和小于或等于像素区的比特分配预算(例如,n bpp),编码器设备可以使用最终比特分配对该像素区的多个颜色分量中的每个颜色分量进行编码。例如,当多个rgb颜色分量中的每个rgb颜色分量的期望比特分配(例如,x,y,z)的总和小于或等于比特分配预算(例如,n bpp)时,最终比特分配可以对应于期望比特分配[x、y、z]。因此,可以将n比特的比特分配预算分配给该像素区的多个rgb颜色分量中的每个rgb颜色分量,以对应于期望比特分配[x,y,z]。

27、本实施例还提供了如下技术,即这些技术用于高效且最优地选择提供最小量的量化误差以提高视觉质量的量化等级。在某些实施例中,编码器设备可以确定用于对图像中的像素区的一个或多个颜色分量进行编码的比特深度,在该图像中该一个或多个颜色分量包括颜色范围。例如,在一个实施例中,该图像可以包括n比特颜色图像,该n比特颜色图像可以包括要被单独且独立地编码并压缩的rgb颜色分量。然后,编码器设备可以确定具有第一量化端点和第二量化端点的量化范围。

28、在一些实施例中,为了计算第一量化端点,编码器设备可以将第二量化端点固定到基于颜色范围确定的初始值,然后基于整个像素块上的多个对应的第一量化误差来针对第一量化端点选择多个第一候选值中的一个第一候选值。类似地,为了计算第二量化端点,编码器设备可以将第一量化端点固定到针对第一量化端点选定的第一候选值,然后基于多个对应的第二量化误差来针对第二量化端点选择多个第二候选值中的一个第二候选值。例如,在某些实施例中,编码器设备例如可以执行分治算法以识别第一量化端点的最优量化值(例如,量化范围的最优最低量化值),而第二量化端点(例如,量化范围的最优最高量化值)被固定到预定值。具体地,在一些实施例中,执行分治算法例如可以包括首先确定红色分量、绿色分量、或蓝色分量的颜色范围的最小颜色值和最大颜色值。然后,编码器设备可以将第二量化端点固定到特定颜色分量范围(例如,红色分量的单独颜色范围、绿色分量的单独颜色范围、或蓝色分量的单独颜色范围)的最大颜色值。

29、在某些实施例中,编码器设备然后可以列举第一量化端点的所有可能的像素值,以识别第一量化端点的最优量化值。然后,编码器设备可以计算第一量化端点的所识别的多个可能的量化值中的每个量化值的量化误差,然后选择具有最小量的量化误差的量化值。例如,在一个实施例中,可以基于第一量化端点的不同量化值的m次试验来确定并选择第一量化端点的量化值,而第二量化端点保持固定到最大颜色值。在一个实施例中,第一量化端点的不同量化值的m次试验可以由计算的量化步长间隔开。

30、在一些实施例中,在确定并选择第一量化端点的最优像素值时,编码器设备然后可以通过列举第二量化端点的所有可能的量化值来确定并选择第二量化端点的最优量化值,而第一量化端点保持固定在第一量化端点的确定并选择的最优量化值。在一个实施例中,可以基于第二量化端点的不同像素值的n-1次试验来确定并选择第二量化端点。

31、在其它实施例中,为了确定第一量化端点和第二量化端点,编码器设备可以执行例如穷举搜索算法(例如,蛮力法),其中列举第一量化端点和第二量化端点的所有可能组合以识别第一量化端点的最优量化值和第二量化端点的最优量化值。具体地,如果对于第一量化端点存在m个可能的选择并且对于第二量化端点存在n个可能的选择,则编码器设备可以通过计算所有m*n组合的量化误差,然后选择具有最小量的量化误差的特定m*n组合,来选择第一量化端点和第二量化端点中的每个量化端点的最优量化值。

32、在某些实施例中,在选择并确定第一量化端点的最优量化值(例如,量化范围的最优最低量化值)和第二量化端点的最优量化值(例如,量化范围的最优最高量化值)之后,编码器设备可以使用由第一量化端点和第二量化端点定义的量化范围来定义与比特深度相对应的量化等级。例如,在一个实施例中,多个中间量化等级然后可以被选择为第一量化端点和第二量化端点之间的多个等间隔的量化值(例如,基于计算的量化步长相等地间隔开),从而形成针对一个或多个颜色分量的与比特深度相对应的量化等级范围。然后,编码器设备可以使用确定的量化等级对像素区的一个或多个颜色分量进行编码。

33、本实施例还包括如下技术,即这些技术用于选择性地执行将可用比特分配给多个不同的阿尔法(alpha)分量的压缩率控制方法,该压缩率控制方法可以用于减少内存消耗、减小网络带宽以及降低数据传输延迟。在某些实施例中,编码器设备可以访问与n比特颜色图像(例如,8比特颜色图像)的第一像素区中的第一像素相关联的第一阿尔法值。然后,编码器设备可以确定用于对第一阿尔法值进行编码的比特预算。例如,在一些实施例中,定点表示可以用于确定每个像素块的每个阿尔法通道分量的比特预算。例如,因为编码器设备例如可能无法利用许多比特来遮掩前景像素和背景像素,所以仅可以利用高达4比特的量化值。因此,在一些实施例中,编码器设备例如可以为平均定点确定2.67bpp的阿尔法分配预算。

34、在某些实施例中,编码器设备然后可以选择第一阿尔法值的第一阿尔法编码模式,以反映确定了第一阿尔法值全部完全透明或全部完全不透明。例如,在一些实施例中,对于与预定的“透明模式”或“不透明模式”对应的阿尔法编码模式,像素块中的所有阿尔法分量可以由编码器设备确定为“0”阿尔法值(当处于“透明模式”时)和“255”阿尔法值(当处于“不透明模式”时)。然后,编码器设备可以通过将选定的第一阿尔法编码模式存储为与第一像素区相关联的元数据的一部分来对第一阿尔法值进行编码,而不使用比特预算来对第一阿尔法值进行单独编码。例如,当编码器设备确定了第一阿尔法值全部完全透明或全部完全不透明时,编码器设备可以不对阿尔法分量进行编码,且可以替代地将指示第一阿尔法值全部完全透明或全部完全不透明的一个或多个2比特阿尔法编码模式记号存储为元数据。

35、在某些实施例中,编码器设备然后可以基于在第一阿尔法值的编码中未使用的比特预算来更新可用于分配的未分配比特的记录。例如,编码器设备可以增加2.67比特的未分配比特阿尔法分配预算的记录(例如,经确定的2.67bpp的阿尔法分配预算中未使用的比特)。然后,编码器设备可以基于未分配比特的记录来分配一个或多个比特,以对与第一阿尔法值不同的一组阿尔法值进行编码。例如,来自经确定的2.67bpp的阿尔法分配预算的未使用的比特(例如,2.67比特)可以被记录并分配以例如用于对一个或多个其它颜色分量的阿尔法值进行编码。

36、本文公开的实施例仅是示例,并且本公开的范围不限于这些实施例。特定实施例可以包括以上公开的实施例的所有或一些部件、元件、特征、功能、操作或步骤,或者不包括这些部件、元件、特征、功能、操作或步骤。针对方法、存储介质、系统和计算机程序产品的所附权利要求中特别地公开了根据本公开的实施例,其中,在一个权利要求类别(例如,方法)中提及的任何特征也可以在另一权利要求类别(例如,系统)中被要求保护。所附权利要求中的从属关系或引用关系仅出于形式原因而被选择。然而,也可以要求保护由对任何先前权利要求(特别是多项从属权利要求)的有意引用而产生的任何主题,使得公开了权利要求及其特征的任何组合,并且无论在所附权利要求中选择的从属关系如何,这些组合都可以要求得到保护。可以要求保护的主题不仅包括所附权利要求中阐述的特征的组合,而且还包括权利要求中的特征的任何其它组合,其中,权利要求中提及的每个特征可以与权利要求中的任何其它特征、或其它特征的组合进行组合。此外,可以在单独的权利要求中要求保护本文描述或描绘的实施例和特征中的任何实施例和特征,和/或可以要求保护本文描述或描绘的实施例和特征中的任何实施例和特征与本文描述或描绘的任何实施例或特征的任何组合、或与所附权利要求的特征中的任何特征的任何组合。


技术实现思路

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1