首页 / 专利库 / 软件 / 无损压缩 / 可变速率压缩的方法和可变速率解压缩的方法

可变速率压缩的方法和可变速率解压缩的方法

阅读:581发布:2020-05-11

专利汇可以提供可变速率压缩的方法和可变速率解压缩的方法专利检索,专利查询,专利分析的服务。并且公开可变速率压缩的方法和可变速率解压缩的方法。一种可变速率压缩的方法包括:将图像数据分割成均包括多个通道 块 的多个块;针对所述一个或多个非平坦通道块中的一个:生成包括与所述一个或多个非平坦通道块中的所述一个的值对应的多个残差值的残差块;响应于确定所述多个残差值中的特定残差值等于对应的先前残差值:使行程计数器增加;响应于确定行程计数器大于 阈值 ,生成行程模式标志并且在压缩的输出流中的所述特定残差值之后写入行程模式标志;并且响应于确定所述特定残差值不等于对应的先前残差值:响应于确定行程计数器大于所述阈值,在压缩的输出流中的行程模式标志之后生成行程长度。,下面是可变速率压缩的方法和可变速率解压缩的方法专利的具体信息内容。

1.一种图形处理系统的图像管道中的图像数据的可变速率压缩的方法,所述方法包括:
将图像数据分割成多个,所述多个块中的每个块包括与所述块的颜色空间的多个颜色通道对应的多个通道块;
识别所述多个通道块中的一个或多个非平坦通道块;以及
针对所述一个或多个非平坦通道块中的一个非平坦通道块:
生成包括与所述一个或多个非平坦通道块中的所述一个非平坦块的多个值对应的多个残差值的残差块;
确定所述多个残差值中的每个残差值是否等于先前残差值;
响应于确定所述多个残差值中的特定残差值等于对应的先前残差值:
使行程计数器增加;以及
响应于确定行程计数器等于阈值,生成行程模式标志并且在压缩的输出流中的所述特定残差值之后写入行程模式标志;
响应于确定所述特定残差值不等于对应的先前残差值:
响应于确定行程计数器大于或等于所述阈值,在压缩的输出流中的行程模式标志之后生成行程长度,所述行程长度与行程计数器对应;以及
对写入流进行编码以生成压缩的通道块。
2.根据权利要求1所述的方法,其中,所述阈值是三。
3.根据权利要求1所述的方法,其中,所述行程长度等于行程计数器或与行程计数器对应的量化值。
4.根据权利要求1所述的方法,其中,所述多个块包括对齐的块,所述多个块中的每个块包括图像数据的像素的k×l块,其中,k和l是大于1的整数。
5.根据权利要求1所述的方法,还包括:将所述多个块中的每个块的颜色空间变换到目标颜色空间。
6.根据权利要求5所述的方法,其中,所述多个块中的每个块的颜色空间是RGB颜色空间,并且目标颜色空间是YCbCr颜色空间,并且
其中,所述多个通道块包括:与Y颜色通道对应的第一通道块、与Cb颜色通道对应的第二通道块、以及与Cr颜色通道对应的第三通道块。
7.根据权利要求1所述的方法,其中,所述一个或多个非平坦通道块中的每个非平坦通道块包括具有不同颜色值的至少两个像素。
8.根据权利要求1所述的方法,其中,生成残差块的步骤包括:
使用预测方法确定针对所述一个或多个非平坦通道块中的所述一个非平坦通道块的值的预测值;以及
基于预测值和所述一个或多个非平坦通道块中的所述一个非平坦通道块的值确定残差值,以生成残差块。
9.根据权利要求8所述的方法,其中,预测方法包括:平均预测方法、差分脉冲编码调制方法、或低复杂度无损压缩预测方法。
10.根据权利要求1所述的方法,其中,行程模式标志是指示行程计数器超过所述阈值的二进制值。
11.根据权利要求1所述的方法,还包括:
将压缩的通道块的大小与所述一个或多个非平坦通道块中的所述一个非平坦通道块的大小进行比较;以及
响应于确定压缩的通道块的大小等于或大于所述一个或多个非平坦通道块中的所述一个非平坦通道块的大小,更新与所述一个或多个非平坦通道块中的所述一个非平坦通道块相关联的元数据,以指示所述一个或多个非平坦的通道块中的所述一个非平坦通道块不能够压缩。
12.根据权利要求1所述的方法,还包括:
识别所述多个通道块中的一个或多个平坦通道块,所述一个或多个平坦通道块中的每个平坦通道块包括具有相同颜色值的像素;以及
通过将所述一个或多个平坦通道块中的每个平坦通道块的颜色值存储在相关联的元数据中,来对所述一个或多个平坦通道块进行压缩。
13.根据权利要求1所述的方法,还包括:
识别所述多个通道块的多个复制通道块,所述多个复制通道块包括第一复制通道块;
以及
通过将到第一复制通道块的指针存储在与所述多个复制通道块中的除第一复制通道块之外的复制通道块相关联的元数据中,来对所述多个复制通道块进行压缩。
14.根据权利要求13所述的方法,其中,识别所述多个复制通道块的步骤包括:
维持所述多个通道块中的通道块的滑动窗口;以及
将所述多个通道块中的一个通道块与通道块的滑动窗口中的通道块进行比较以识别复制通道块。
15.根据权利要求14所述的方法,其中,对写入流进行编码的步骤包括:用算术编码、霍夫曼编码或葛洛姆编码对写入流进行编码以生成压缩的通道块。
16.一种用于图像管道中的图像数据的可变速率压缩的图形处理系统,所述系统包括:
处理器;以及
处理器本地的处理器存储器,其中,处理器存储器具有存储在处理器存储器上的指令,当所述指令由处理器执行时,使处理器执行:
将图像数据分割成多个块,所述多个块中的每个块包括与所述块的颜色空间的多个颜色通道对应的多个通道块;
识别所述多个通道块中的一个或多个非平坦通道块;以及
针对所述一个或多个非平坦通道块中的一个非平坦通道块:
生成包括与所述一个或多个非平坦通道块中的所述一个非平坦块的多个值对应的多个残差值的残差块;
确定所述多个残差值中的每个是否等于先前残差值;
响应于确定所述多个残差值中的特定残差值等于对应的先前残差值:
使行程计数器增加;以及
响应于确定行程计数器等于阈值,生成行程模式标志并且在压缩的输出流中的所述特定残差值之后写入行程模式标志;
响应于确定所述特定残差值不等于对应的先前残差值:
响应于确定行程计数器大于或等于所述阈值,在压缩的输出流中的行程模式标志之后生成行程长度,所述行程长度与行程计数器对应;以及
对写入流进行编码以生成压缩的通道块。
17.一种图形处理系统的图像管道中的图像数据的可变速率压缩的方法,所述方法包括:
将图像数据分割成多个块,所述多个块中的每个块包括与所述块的颜色空间的多个颜色通道对应的多个通道块;
识别所述多个通道块中的一个或多个非平坦通道块,所述一个或多个非平坦通道块中的一个非平坦通道块包括多个值;以及
针对所述一个或多个非平坦通道块中的所述一个非平坦通道块:
确定所述多个值中的每个值是否等于所述多个值中的先前值;
响应于确定所述多个值中的特定值等于对应的先前值:
使行程计数器增加;以及
响应于确定行程计数器等于阈值,生成行程模式标志并且在压缩的输出流中的所述特定值之后写入行程模式标志;
响应于确定所述特定值不等于对应的先前值:
响应于确定行程计数器大于或等于所述阈值,在压缩的输出流中的行程模式标志之后生成行程长度,所述行程长度与行程计数器对应;以及
生成包括与写入流的值对应的残差值的残差块;
对残差块进行编码以生成压缩的通道块。
18.一种图形处理系统的图像管道中的图像数据的可变速率解压缩的方法,所述方法包括:
取得与图像数据相关联的存储的通道块;
将存储的通道块识别为压缩的、未压缩的或平坦的;以及
响应于将存储的通道块识别为压缩的:
根据编码方案对存储的通道块进行解码以生成包括多个残差值的残差块;
确定所述多个残差值中的每个残差值是否等于多个先前残差值;
响应于确定所述多个残差值中的特定残差值等于所述多个先前残差值:
识别与特定原始值相关联的行程模式标志;以及
响应于确定行程模式标志为真:
取得行程长度;以及
将所述多个先前原始值中的一个先前原始值复制到写入流中的对应的先前原始值接下来的多个值中,多个值的数量对应于行程长度,写入流包括多个行程长度解码的残差值;
以及
基于写入流生成与图像数据相关联的未压缩的通道块。
19.根据权利要求18所述的方法,还包括:
根据预测方案基于多个行程长度解码的残差值来确定多个预测值;
基于所述多个预测值和所述多个残差值来确定多个原始值,以及
其中,基于所述多个原始值生成未压缩的通道块。
20.根据权利要求18所述的方法,其中,存储的通道块包括图像数据的像素的k×l块的通道的颜色值,其中,k和l是大于1的整数,以及
其中,所述多个先前残差值包括两个或更多个先前残差值。
21.根据权利要求18所述的方法,其中,编码方案包括:算术编码、霍夫曼编码或葛洛姆编码。
22.根据权利要求18所述的方法,其中,预测方案包括:平均预测方法、差分脉冲编码调制方法、或低复杂度无损压缩预测方法。
23.根据权利要求18所述的方法,其中,行程模式标志是指示行程计数器超过所述阈值的二进制值。
24.根据权利要求18所述的方法,还包括:将未压缩的通道块的颜色空间变换到目标颜色空间。

说明书全文

可变速率压缩的方法和可变速率解压缩的方法

[0001] 本申请要求于2018年10月2日提交的第62/740,166号美国临时申请(“用于GPU的无损在线图像压缩”)以及于2019年1月18日提交的第16/252,386号美国专利申请的优先权和权益,它们的全部内容通过引用包含于此。
[0002] 本申请涉及于2018年10月30日公布的第10,115,177号美国专利(“硬件中的在线纹理压缩和解压缩”),该美国专利要求于2016年10月24日提交的第62/412,026号美国临时申请和于2014年6月27日提交的第62/018,178号美国临时申请的优先权和权益,它们的全部内容通过引用包含于此。
[0003] 本申请还涉及于2018年4月17日公布的第9,947,071号美国专利(“具有在线可变速率字典压缩的纹理管道”),该美国专利要求于2014年6月27日提交的第62/018,178号美国临时申请的优先权和权益,它们的全部内容通过引用包含于此。

技术领域

[0004] 本公开的实施例的方面总体涉及图形处理单元(GPU)。特别地,本公开涉及硬件中的在线纹理压缩和解压缩。

背景技术

[0005] 图形处理单元(GPU)中的纹理映射负责向计算机生成的图形模型添加细节。处理包括提取实际颜色值并且对它们进行滤波以针对模型中的每个像素产生颜色。纹理化是用于3D渲染性能的关键设计组件,并且占用总处理器功率和存储器的很大一部分。在典型的GPU中,颜色值在进一步滤波之前从存储器被提取。由于纹理化导致的存储器访问贡献了存储器带宽和存储器功率,并且是性能瓶颈的主要来源。
[0006] 随着延迟渲染方法的出现,存储器使用已只能增加。在延迟渲染管道中,场景中的对象的所有相关材料属性从场景几何被转移到多个图像上。然后,照明以及所有随后的渲染和照明计算在后处理阶段中以每像素级别被执行,后处理阶段消耗被统称为几何缓冲(G-Buffer)的这些中间图像并且创建显示在屏幕上的输出图像。这些图像和中间图像通信量构成存储器带宽的主要消耗者和渲染性能的关键限制者。例如,当代屏幕上的大多数图像以具有每像素32位的1080p被渲染,图像通过自身构成8MB的数据并且被期望每秒被渲染30-60次,这仅针对最终图像需要每秒240-480MB的带宽。对于在消费者产品中正在获得普及的4K分辨率屏幕,带宽约束变得更加严峻。
[0007] 因此,减少或消除由于纹理化导致的存储器访问是重要的GPU设计约束。
[0008] 在本背景技术部分中公开的以上信息仅用于强化理解本公开,因此可包含不形成本领域普通技术人员已知的现有技术的信息。发明内容
[0009] 本公开的实施例的方面在于一种能够通过在渲染处理期间压缩图像来改善渲染性能同时降低能耗的系统。公开的一些实施例执行无损压缩,以便不妥协渲染的结果,并且确保压缩和解压缩对最终用户和应用保持透明。
[0010] 本公开的实施例的方面在于一种利用图像压缩技术的组合以比现有技术的技术提高压缩并且减少GPU纹理和/或存储器带宽使用的系统和方法。在一些实施例中,系统和方法采用若干处理以减少表示图像(例如,纹理)的数据中的冗余并且将剩余数据编码为尽可能的接近于熵。
[0011] 根据本公开的一些实施例,提供一种图形处理系统的图像管道中的图像数据的可变速率压缩的方法,所述方法包括:由图形处理系统的处理器将图像数据分割成多个,所述多个块中的每个块包括与所述块的颜色空间的多个颜色通道对应的多个通道块;由处理器识别所述多个通道块中的一个或多个非平坦通道块;以及针对所述一个或多个非平坦通道块中的一个非平坦通道块:由处理器生成包括与所述一个或多个非平坦块中的所述一个非平坦块的多个值对应的多个残差值的残差块;由处理器确定所述多个残差值中的每个残差值是否等于先前残差值;响应于确定所述多个残差值中的特定残差值等于对应的先前残差值:使行程计数器增加;以及响应于确定行程计数器大于阈值,由处理器生成行程模式标志并且在压缩的输出流中的特定残差值之后写入行程模式标志;以及响应于确定所述特定残差值不等于对应的先前值:响应于确定行程计数器大于所述阈值,由处理器在压缩的输出流中的行程模式标志之后生成行程长度,所述行程长度与行程计数器对应;以及由处理器对写入流进行编码以生成压缩的通道块。
[0012] 在一些实施例中,所述阈值是二。
[0013] 在一些实施例中,行程长度等于行程计数器或与行程计数器对应的量化值。
[0014] 在一些实施例中,所述多个块包括对齐的块,所述多个块中的每个块包括图像数据的像素的k×l块,其中,k和l是大于1的整数。
[0015] 在一些实施例中,所述方法还包括:由处理器将所述多个块中的每个块的颜色空间变换到目标颜色空间。
[0016] 在一些实施例中,所述多个块中的每个块的颜色空间是RGB(红、绿和蓝)颜色空间,并且目标颜色空间是YCbCr(亮度分量‘Y’、蓝色差色度分量‘Cb’以及红色差色度分量‘Cr’)颜色空间,并且所述多个通道块包括:与Y颜色通道对应的第一通道块、与Cb颜色通道对应的第二通道块、以及与Cr颜色通道对应的第三通道块。
[0017] 在一些实施例中,所述一个或多个非平坦通道块中的每个非平坦通道块包括具有不同颜色值的至少两个像素。
[0018] 在一些实施例中,生成残差块的步骤包括:由处理器使用预测方法确定针对所述一个或多个非平坦通道块中的所述一个非平坦通道块的值的预测值;以及由处理器基于预测值和所述一个或多个非平坦通道块中的所述一个非平坦通道块的值确定残差值,以生成残差块。
[0019] 在一些实施例中,预测方法包括:平均预测方法、差分脉冲编码调制(DPCM)方法、或低复杂度无损压缩(LOCO-I)预测方法。
[0020] 在一些实施例中,行程模式标志是指示行程计数器超过所述阈值的二进制值。
[0021] 在一些实施例中,所述方法还包括:由处理器将压缩的通道块的大小与所述一个或多个非平坦通道块中的所述一个非平坦通道块的大小进行比较;以及响应于确定压缩的通道块的大小等于或大于所述一个或多个非平坦通道块中的所述一个非平坦通道块的大小,由处理器更新与所述一个或多个非平坦通道块中的所述一个非平坦通道块相关联的元数据,以指示所述一个或多个非平坦的通道块中的所述一个非平坦通道块不能够压缩。
[0022] 在一些实施例中,所述方法还包括:由处理器识别所述多个通道块中的一个或多个平坦通道块,所述一个或多个平坦通道块中的每个平坦通道块包括具有相同颜色值的像素;以及由处理器通过将所述一个或多个平坦通道块中的每个平坦通道块的颜色值存储在相关联的元数据中,来对所述一个或多个平坦通道块进行压缩。
[0023] 在一些实施例中,所述方法还包括:由处理器识别所述多个通道块的多个复制通道块,所述多个复制通道块包括第一复制通道块;以及由处理器通过将到第一复制通道块的指针存储在与所述多个复制通道块中的除第一复制通道块之外的复制通道块相关联的元数据中,来对所述多个复制通道块进行压缩。
[0024] 在一些实施例中,识别所述多个复制通道块的步骤包括:由处理器维持所述多个通道块中的通道块的滑动窗口;以及由处理器将所述多个通道块中的一个通道块与通道块的滑动窗口中的通道块进行比较以识别匹配。
[0025] 在一些实施例中,对写入流进行编码的步骤包括:用算术编码、霍夫曼编码或葛洛姆编码对写入流进行编码以生成压缩的通道块。
[0026] 根据本公开的一些实施例,提供一种用于图像管道中的图像数据的可变速率压缩的图形处理系统,所述系统包括:处理器;以及处理器本地的处理器存储器,其中,处理器存储器具有存储在处理器存储器上的指令,当所述指令由处理器执行时,使处理器执行:将图像数据分割成多个块,所述多个块中的每个块包括与所述块的颜色空间的多个颜色通道对应的多个通道块;识别所述多个通道块中的一个或多个非平坦通道块;以及针对所述一个或多个非平坦通道块中的一个非平坦通道块:生成包括与所述一个或多个非平坦块中的所述一个非平坦块的多个值对应的多个残差值的残差块;确定所述多个残差值中的每个是否等于先前残差值;响应于确定所述多个残差值中的特定残差值等于对应的先前残差值:使行程计数器增加;以及响应于确定行程计数器大于阈值,生成行程模式标志并且在压缩的输出流中的特定残差值之后写入行程模式标志;响应于确定所述特定残差值不等于对应的先前值:响应于确定行程计数器大于所述阈值,在压缩的输出流中的行程模式标志之后生成写入行程长度,所述行程长度与行程计数器对应;以及对写入流进行编码以生成压缩的通道块。
[0027] 根据本公开的一些实施例,提供一种图形处理系统的图像管道中的图像数据的可变速率压缩的方法,所述方法包括:由图形处理系统的处理器将图像数据分割成多个块,所述多个块中的每个块包括与所述块的颜色空间的多个颜色通道对应的多个通道块;由处理器识别所述多个通道块中的一个或多个非平坦通道块,所述一个或多个非平坦通道块中的一个非平坦通道块包括多个值;以及针对所述一个或多个非平坦通道块中的所述一个非平坦通道块:由处理器确定所述多个值中的每个值是否等于所述多个值中的先前值;响应于确定所述多个值中的特定值等于对应的先前值:使行程计数器增加;以及响应于确定行程计数器大于阈值,由处理器生成行程模式标志并且在压缩的输出流中的特定值之后写入行程模式标志;响应于确定特定值不等于对应的先前值:响应于确定行程计数器大于所述阈值,由处理器在压缩的输出流中的行程模式标志之后生成行程长度,所述行程长度与行程计数器对应;以及由处理器生成包括与写入流的值对应的残差值的残差块;由处理器对残差块进行编码以生成压缩的通道块。
[0028] 根据本公开的一些实施例,提供一种图形处理系统的图像管道中的图像数据的可变速率解压缩的方法,所述方法包括:由图形处理系统的处理器取得与图像数据相关联的存储的通道块;由处理器将存储的通道块识别为压缩的、未压缩的或平坦的;以及响应于将存储的通道块识别为压缩的:由处理器根据编码方案对存储的通道块进行解码以生成包括多个残差值的残差块;由处理器确定所述多个残差值中的每个残差值是否等于多个先前残差值;响应于确定所述多个残差值中的特定残差值等于所述多个先前残差值:由处理器识别与特定原始值相关联的行程模式标志;以及响应于确定行程模式标志为真:由处理器取得行程长度;以及由处理器将所述多个先前原始值中的一个先前原始值复制到写入流中的对应的先前原始值接下来的多个值中,所述多个值对应于行程长度,写入流包括多个行程长度解码的残差值;以及由处理器基于写入流生成与图像数据相关联的未压缩的通道块。
[0029] 在一些实施例中,所述方法还包括:由处理器根据预测方案基于所述多个行程长度解码的残差值来确定多个预测值;基于所述多个预测值和所述多个残差值来确定多个原始值,其中,基于所述多个原始值生成未压缩的通道块。
[0030] 在一些实施例中,存储的通道块包括图像数据的像素的k×l块的通道的颜色值,其中,k和l是大于1的整数,以及所述多个先前残差值包括两个或更多个先前残差值。
[0031] 在一些实施例中,编码方案包括:算术编码、霍夫曼编码或葛洛姆编码。
[0032] 在一些实施例中,预测方法包括:平均预测方法、差分脉冲编码调制(DPCM)方法、或低复杂度无损压缩(LOCO-I)预测方法。
[0033] 在一些实施例中,行程模式标志是指示行程计数器超过所述阈值的二进制值。
[0034] 在一些实施例中,所述方法还包括:由处理器将未压缩的通道块的颜色空间变换目标颜色空间。附图说明
[0035] 附图与说明书一起示出了本公开的示例实施例,并且与描述一起用于解释本公开的原理。
[0036] 图1是示出根据本公开的一些示例实施例的在图形处理系统中的压缩系统的可变速率压缩和解压缩的框图
[0037] 图2示出根据本公开的一些示例实施例的未压缩的图像数据、块以及通道块之间的关系。
[0038] 图3是示出根据本公开的一些示例实施例的在图形处理系统的图像管道中的图像数据的可变速率压缩的处理的流程图
[0039] 图4是示出根据本公开的一些示例实施例的在图形处理系统的图像管道中的压缩的图像数据的可变速率解压缩的处理的流程图。

具体实施方式

[0040] 下面阐明的具体实施方式意在作为根据本公开提供的用于缺陷检测的系统和方法的示例性实施例的描述,并且不意在表示可构造或利用本公开的唯一形式。描述结合示出的实施例阐述本公开的特征。然而,将理解,相同或等价的功能和结构可通过也意在包含在本公开的范围内的不同实施例来实现。如在此其他地方所表示的,相同的元件编号意在指示相同的元件或特征。
[0041] 在前述中,“符号”是指通过编码算法被编码的值。根据一些示例,符号是指像素的单通道分量的8位值。“块”是指用于纹理压缩的细分的矩形单元。根据一些实施例,图像/纹理的块被独立地压缩。在一些实施例中,与块的不同通道(也被称为通道块)有关的数据被独立地压缩。“信号”是指从源发出的离散值的序列(例如,“1”和“0”的序列)。此外,“熵”是指对信号进行编码所需的每个符号的理论最少位。
[0042] 总体而言,本公开的实施例在于在图形系统中提供图像数据的可变速率、无损压缩(例如,可变速率无损压缩)以及压缩的数据的解压缩的压缩系统和方法。压缩包括生成与压缩的数据相关联并标识压缩的数据的元数据,解压缩器可利用压缩的数据以将压缩的数据正确地解码为原始图像数据的无损表示。由于压缩的数据和相关联的元数据的组合存储器占用量小于实际的未压缩的图像数据,因此本公开的实施例可在系统中(诸如,图形处理单元(GPU)、片上系统(SoC)等)传送图像数据时提供实质的带宽节省。
[0043] 图1是示出根据本公开的一些示例实施例的在图形处理系统10中的压缩系统100的可变速率无损压缩和解压缩的框图。
[0044] 在一些示例中,图形处理系统10可被实现为具有处理器、片上存储器以及图像管道的GPU或SoC中的更大的图形管道的部分。参照图1,图形处理系统10可包括压缩系统100和图形系统,压缩系统100包括压缩器(例如,可变速率压缩器)110和解压缩器(例如,可变速率解压缩器)120,压缩器110和解压缩器120用于分别执行图形系统中的压缩和解压缩,图形系统具有缓冲器12(也称为区块(tile)缓冲器)、存储器(例如,片上L2高速缓存)14以及纹理单元16,帧缓冲器12将图像数据输出到压缩系统100,存储器14用于例如最小化或减少访问片外存储器的需要,纹理单元16接收图像数据。
[0045] 在一些实施例中,压缩器110支持针对不同类型的数据的不同的压缩长度。由压缩器110生成的压缩的图像数据可被存储在存储器高速缓存14中。此外,压缩器110生成元数据以在解压缩期间协助地址映射。解压缩器120包括元数据高速缓存130和解码器150。如由图1中的箭头所示,元数据高速缓存130通过向存储器高速缓存14的元数据请求被填充元数据。元数据被高速缓存,以便元数据针对每次提取可被重复使用多次。这可用于增加带宽收益。图像数据普遍具有高度的空间局部性。因此,可首先访问元数据的高速缓存行(cache line),然后根据需要访问来自存储器高速缓存的压缩的数据的一个或多个数据高速缓存行。
[0046] 压缩的数据可从存储器高速缓存14被访问并且被提供给解码器150。根据一些实施例,解码器150支持基于不同的压缩类型的不同类型的解码,因此还可被认为具有若干不同的解码器。传递路径可针对压缩的数据被提供。一旦压缩的数据被接收,压缩的数据就根据可由元数据中的位的数量指示的压缩类型被发送到适当的解码器。例如,3位编码可用于指示未压缩的数据类型和7种不同的压缩类型。更普遍地,可支持任意数量的不同的压缩类型。
[0047] 当纹理单元16通过向解压缩器120发送与图像数据相关联的地址来请求图像数据时,解压缩器120(例如,经由头表或其他数据结构)在元数据高速缓存130中查找该地址,以在存储器高速缓存14中找到压缩的存储器地址。
[0048] 如上所述,由压缩系统100采用的压缩方法是可变速率的,并且在一些实施例中是无损的。因此,在一些实施例中,元数据的附加集合(additional set)被利用以定义针对每个块使用的压缩种类和压缩的块的对应的大小。根据一些实施例,为了减少元数据开销,元数据条目针对空间相干块的集合(例如,6、8或16个连续块的集合)被定义,而不是针对每个单独的块被定义。这种表示像素的矩形的集合的块的空间相干集合构成元数据条目。元数据条目存储关于如何压缩子块(即,与元数据条目对应的块)中的每个和每个块的压缩的大小的信息。增加每个元数据条目的块的数量可减少元数据开销;然而,增加块的数量超过特定点可能会以压缩为代价,因此可根据特定实施方式的需求在压缩与元数据开销之间达成平衡。
[0049] 每个元数据条目可被存储在高速缓存14中,并且由解压缩器120经由元数据高速缓存130访问。
[0050] 图2示出根据本公开的一些示例实施例的未压缩的图像数据200、块202以及通道块204之间的关系。
[0051] 参照图2,压缩器110将从帧缓冲器12接收的未压缩的图像数据200(例如,纹理或像素数据)组织成块202的集合。根据一些实施例,压缩器110将未压缩的图像数据200分割(例如,细分)成相同大小的对齐的块202(例如,每个块是k×l像素,其中,k和l是大于1的整数)。在一些示例中,每个单独块202对应于具有预先选择的k×l大小(其中,k和l是整数,k和l中的至少一个大于1)的像素颜色值的阵列(例如,矩阵),诸如,2×2、4×4、8×8或16×16阵列。
[0052] 为了说明本公开的方面的目的,块中的值的阵列中的每个元素将被描述为具有颜色数据的像素或纹素(texel),但是将理解,更普遍地,其他类型的数据可由纹理数据(诸如,深度数据、平均量(normals)、反射图等)表示。在计算机图形学中,纹素(纹理元素)是二维(2-D)纹理映射中用于创建纹理化的表面的印象(impression)的最小的图形元素。纹素与像素(图片元素)相似,因为它表示图形管道中的基本单元。每个纹素可具有一个颜色值,该颜色值可由一个或多个通道(例如,红色通道、绿色通道、蓝色通道、阿尔法通道)表示。此外,更普遍地,纹理可被认为是数据的阵列,并且可包括颜色数据、亮度数据、模板(stencil)数据或其他类型的数据。
[0053] 压缩器110然后可将每个块202的颜色空间变换到YUV(亮度分量‘Y’、蓝色差色度分量‘U’以及红色差色度分量‘V’)颜色空间。YUV颜色空间的示例可以是YCbCr(亮度分量‘Y’、蓝色差色度分量‘Cb’以及红色差色度分量‘Cr’)颜色空间。压缩器110然后可用通道块204表示块202的每个通道(例如,颜色通道)。在一些示例中,每个块202对应于Y通道块204、Cr通道块204和Cb通道块204(例如,用Y通道块204、Cr通道块204和Cb通道块204表示)。根据一些实施例,压缩器110然后将平坦(flat)块(以及在一些实施例中,复制)分解出来。然而,本发明的实施例不限于此,在一些示例中,压缩器110在执行任何颜色空间变换之前检测平坦块和复制块。在一些实施例中,压缩器110使用预测方法,以针对通道块204中的值中的每个产生残差,并且生成包括与通道块204对应的所有残差值的残差块206。在一些实施例中,压缩器110然后执行修改的行程长度编码(RLE)处理以减少开销:代替针对每个残差存储用于指示行程(run)是否已经开始的行程标志,而是通过连续的两个相同的残差的存在来指示行程。然后,行程标志指示行程是否继续,接下来是行程长度。一旦行程已被移除,压缩器
110就使用设置的或预定的方法(诸如,霍夫曼(Huffman)或算术编码)对剩余的残差进行熵编码,以生成压缩的通道块208。在一些实施例中,压缩器110将块类型标志存储在相关联的元数据(例如,块元数据210)中,块类型标志指示压缩的通道块数据208的类型。压缩器110还可存储到压缩的数据被写入之处的偏移/指针,以便允许对压缩的数据的随机访问。也就是说,指针允许对压缩的数据的任意封装,而元数据条目保持块的线性顺序。
[0054] 字典212可以是将输入残差映射到字典条目的霍夫曼字典。字典中的每个条目可包括在输入流中(在先前的步骤之后)合理地经常出现的残差值。在一些实施例中,字典可以是静态的/固定的,并且字典条目在压缩处理期间被消耗。在其他实施例中,字典可基于来自对字典的查询的残差值的运行直方图以在线方式(例如,实时)被更新。
[0055] 图3是示出根据本公开的一些示例实施例的在图形处理系统10的图像管道中的图像数据200的可变速率压缩的处理300的流程图。
[0056] 在一些实施例中,压缩器110对从帧缓冲器12接收的图像数据200执行图像预处理(S302)。根据一些实施例,压缩器110将从帧缓冲器12接收的图像数据200分割成对齐的k×l像素的多个块202(其中,k和l是大于1的整数)(S304)。在一些实施例中,每个块202包括k×k像素,其中,k是例如4、8或16。在一些示例中,如果图像数据200的尺寸(按像素)不能被k和/或l整除,则压缩器110可执行零填充,以便所有分割的块202是k×l像素。
[0057] 在一些实施例中,压缩器110确定图像数据200的颜色空间是否与目标颜色空间相同(S306),并且如果图像数据200的颜色空间与目标颜色空间不相同,则将颜色空间变换到目标颜色空间(S308)。在一些示例中,图像数据200的原始颜色空间可以是RGB(红、绿、蓝),目标(或期望的)颜色空间可以是YUV(亮度分量‘Y’、蓝色差色度分量‘U’以及红色差色度分量‘V’)或YCbCr(亮度分量‘Y’、蓝色差色度分量‘Cb’以及红色差色度分量‘Cr’)。RGB颜色空间可在通道分量之间具有高相关性。转换到YUV或YCrCb颜色空间可减少通道间相关性(例如,对Y通道与Cr和Cb通道之间的相关性进行去相关或减少Y通道与Cr和Cb通道之间的相关性),但是增加每个通道内的空间相关性。根据一些实施例,由于每个通道被单独地(例如,独立地)压缩,所以增加每个通道中的空间相关性可导致图像数据200的更大的整体压缩。RGB到YCbCr变换也是可逆的,从而解压缩器120可通过应用逆变换来恢复原始RGB颜色空间。
[0058] 虽然图3示出在颜色空间变换(S306和S308)之前执行分割(S304),但是本公开的实施例不限于此。例如,可在将图像数据200分割成多个块202之前对图像数据200执行颜色空间变换。
[0059] 在对图像数据200进行预处理之后,压缩器110继续对多个块202中的每个进行压缩(S310)。根据一些实施例,每个块202包括分别表示颜色空间的三个通道(例如,Y、Cb以及Cr)的三个通道块204,对通道块204中的每个执行压缩(S310)。因为,在由压缩器110执行的压缩(S310)中,每个通道被独立地对待,所以压缩器110可并行地对每个块202的三个通道块204进行压缩,这可极大地改善(例如,增加)在多处理器/核系统中的压缩速度。
[0060] 根据一些实施例,对于每个通道块204,压缩器110首先检查通道块204是平坦(即,恒定)块还是非平坦块(S312)。平坦块是块中所有值均相同的块。在通道块204中的每个值表示块202内的对应像素的通道强度。压缩器110基于比较操作(例如,位级别或逐位比较操作)来确定通道块204是否平坦。在逐位异或(XOR)操作的示例中,当通道块204内的所有像素的二进制值相同时,逐位异或操作产生全0的输出。在这种情况下,压缩器110确定通道块204是平坦块或恒定块。当异或操作的结果包含任何非零值时,压缩器110确定通道块204是不平坦的。压缩节省可针对平坦/恒定块是大的,因为重建整个块202所需的所有信息可存储在块202的元数据中,从而防止存储器取出。因此,在一些实施例中,当通道块204被确定为平坦的/恒定的时,压缩器110将平坦块的值(例如,颜色值)存储在相关联的元数据中(S314),并跳到下一个通道块204(S328)。在一些示例中,压缩器110可通过例如在对应的元数据(例如,块元数据210)中适当地设置块类型标志来将块标记为平坦类型/恒定类型。
[0061] 在一些实施例中,当通道块204是不平坦的/恒定的时,压缩器110进行确定通道块204是否是先前的通道块204的复制/克隆(S316)。与平坦块相似,复制块也可在图像数据
200(例如,纹理)中被找到。针对具有复制的块202,一旦克隆块的第一实例被遇到,所有后续实例都可返回指向第一实例。因此,根据一些实施例,压缩器110生成/更新与复制块/克隆块相关联的元数据以返回引用这样的通道块204的第一实例(S318)。在一些示例中,压缩器110可通过例如在对应的元数据(例如,块元数据210)中适当地设置块类型标志来将块标记为复制类型。
[0062] 在一些示例中,从复制块分解(factoring)获得最大压缩收益可以是存储器密集型的,因为它涉及存储图像数据200被读取时遇到的每个唯一通道块204,并且将每个后续通道块204与它们进行比较。因此,在一些实施例中,压缩系统100保持通道块204的滑动窗口,并且允许未来块202在该窗口中返回引用任何块(例如,将“块p是块p-q的重复”存储在元数据中,其中,q在设置的窗口长度内)。
[0063] 虽然复制块分解(S316和S318)在图4中示出,但是在本公开的一些实施例中,压缩器110不执行该动作(即,从块压缩S310省略S316和S318)。
[0064] 在图4的实施例中,虽然在检查通道块204是平坦/或复制之前执行颜色变换操作(S306和S308),但是本发明的实施例不限于此。也就是说,在一些实施例中,压缩器110首先确定通道块204是否平坦和/或复制(S312、S314、S316以及S318),如果通道块204不是平坦和/或复制,则进行检查通道块204是否在目标颜色空间中(S306),并且在必要时变换颜色空间(S308)。
[0065] 一旦平坦块(以及,在一些实施例中,复制块)已被分解出,压缩器110就通过利用预测方法对剩余通道块204(即,唯一通道块204)进行压缩,以生成符号的残差(S320)。在一些实施例中,压缩器110通过利用通道块204中的值的空间局部性对通道块204中的值的分布成形(例如,缩小),以基于每个值x的邻近值来计算每个值x的预测值x’。针对通道块204中的每个值x,在预测中使用的邻近值是在解压缩期间在值x之前将被解压缩的值。这样做是为了确保在解压缩期间,正确的预测值可被计算出。在一些示例中,使用的邻近值可以是上方的值、左方的值和/或左上方的值。一旦压缩器110计算出预测值x’,它就存储表示实际值与预测值之间的差的残差x-x’。当空间局部性高时,该残差建模可产生以0为中心的高度偏斜的分布,其具有用于压缩的期望属性。然而,存储残差可导致是原始值的两倍的字母表(alphabet)。换句话说,如果x∈[0,M],则x-x′∈[-M,M]。为了克服这种影响,压缩器110执行映射,该映射利用可能的残差的范围受预测限制的事实。在一些实施例中,压缩器110根据在等式1中所示的差分变换D(r)将残差r变换到范围 中:
[0066]
[0067] 其中,M表示未压缩的通道块204中的可能的值的上限范围。该变换产生比未改变的(即,未变换的)残差窄(例如,具有更小的方差/标准差)的差分变换的残差,并且更适合用于压缩。这种变换是期望的,因为它可将所述范围压缩1位。范围[-M,M]可利用log2(M)+1位,而范围[-M/2,M/2]可仅利用log2(M)位。这可减少符号集(下面描述的)的熵并且提高压缩极限。
[0068] 压缩器110可利用用于计算针对通道块204的给定值的预测值x’的任何合适的技术。在一些示例中,压缩器110可采用块预测,由此针对通道块204中的每个值的预测值是与通道块204的左上对应的值。在这样的示例中,左上角本身被未滤除地存储(即,不经历等式1的差分变换)。在一些示例中,压缩器110可采用平均预测,由此针对通道块204中的每个值的预测值是它的上方和左方邻近值的平均值。在这样的示例中,在左上角被未滤除地存储的情况下(即,在不经历等式1的差分变换的情况下),在边缘上,不可用的邻近值被可用的邻近值的副本替换(例如,在顶边缘处,左邻近值被使用,在左边缘处,上邻近值被使用)。在其他示例中,压缩器110还可采用在便携式网络图形(PNG)中使用的差分脉冲编码调制(DPCM),或者可采用在JPEG标准中使用的LOCO-I(低复杂度无损压缩)预测方法。在这样的示例中,通道块204的左上角处的值被未滤除地存储。根据一些示例,LOCO-I预测方法可通过产生具有相对低的熵的残差分布而避免(例如,完全避免)开销而优于其他方法。
[0069] 一旦压缩器110已经完成针对通道块204中的每个值计算预测器(predictor)的残差,包括所有残差的残差块206就被生成。在一些实施例中,压缩器110然后还用沿着平面曲线的行程长度编码对残差块206进行压缩(S322)。在这样做时,压缩器110可利用可存在于残差块206中的数据的任何行程(即,其中相同值连续出现的序列),这可针对所涉及的值提供高的压缩平。
[0070] 在一些实施例中,压缩器110以给定的顺序(例如,行主序、列主序或z顺序)遍历残差块206中的值(这可被称为输出流或写入流),捕获特定长度(例如,特定的行程长度/计数器)K(例如,三的长度)或更大的相同值的连续序列(例如,行程)在哪里出现,并且并存储它们在哪里开始和它们有多长。
[0071] 在一些实施例中,在输出流/写入流中的相同值的K次出现之后,压缩器110对输出流中的单位(single-bit)信号/标志(也称为行程模式标志)进行编码,单位信号/标志指示输出流中的下一个值是行程长度(或枚举(enum))。例如,当存在值15的6次出现时,则针对K=3,编码的输出流可以是:15、15、15、1、3,其中1是具有1位值的单位信号/标志,3是二进制值,该二进制值的位宽可不同于该值本身的位宽。因此,例如,如果15是8位值,则行程长度可以是3位。然而,如果行程长度是枚举(例如,可以是{1,2,4,8}),则输出流将是15、15、15、1、2、15(因为3是不可表示的)。
[0072] 在一些实施例中,在输出流中的相同值的K次出现之后,在不添加单位循环/标志的情况下,压缩器110直接对行程长度值(或者,量化的行程长度值的枚举)进行编码,行程长度值表示在解码的流中应当存在值的多少次额外出现。在这样的实施例中,行程长度0必须是可编码的。例如,当存在值15的6次出现时,则针对K=3,编码的输出流可以是:15、15、15、3。然而,如果行程长度是枚举(例如,可以是{0,2,4,8}),则输出流将会是15、15、15、2、
15(因为3是不可表示的)。
[0073] 对单位信号/标志进行编码允许具有恰好K的行程的惩罚(penalty)低于当该信号/标志不被使用时。例如,如果我们仅有三次出现15,则输出将简单地是15、15、15、0(其中,‘0’是1位信号),而不是如在另一实施例中那样的15、15、0(其中,行程长度‘0’具有大于1位宽的位宽)。
[0074] 根据一些实施例,压缩器110仅对具有大于或等于阈值长度的那些行程进行编码。在一些实施例中,阈值长度是3。也就是说,具有小于阈值长度的行程不被编码或压缩。这允许压缩器110减少将行程长度编码到流中所涉及的开销。
[0075] 在一些实施例中,由压缩器110执行的行程长度编码操作可使用以下伪代码来概括:
[0076] 设置行程计数器为1
[0077] 针对每个第(i)值:
[0078] 将值与先前的第(i-1)值进行比较
[0079] 如果相等,则:
[0080] 使行程计数器增加
[0081] 如果行程计数器==3,则写入行程模式标志
[0082] 否则:
[0083] 如果行程计数器>2,则将跟随着行程长度的值写入输出流。
[0084] 例如,在诸如WWBBBBWWWBWWWW的序列中(其中,W表示值255,B表示值0),压缩器110可将其作为WWBBB11WWW0BWWW11写到输出流中,其中,带下划线的数字指示1位行程模式标志/信号,跟随的任何数字是行程长度。
[0085] 在一些实施例中,当识别行程时,压缩器110通过采用z顺序遍历顺序使残差块206中的值线性化(即,以一维顺序重新排列残差块206中的值的二维排列),因为它允许线性化以维持空间局部性的程度(例如,相同的邻近值可跟随比行主序模式(row-major pattern)更多的块模式),同时在硬件中实现比一些其他遍历顺序成本更低。然而,本公开的实施例不限于此,在一些示例中,压缩器110可采用行主序遍历或列主序遍历。
[0086] 虽然图3中所示的实施例在残差建模(S320)之后应用行程长度编码(S322),但是本发明的实施例不限于此。例如,压缩器110可对每个非平坦的、非复制的通道块204执行行程长度编码,然后对行程长度编码的块执行残差建模。可这样做来通过相同值的多个连续实例减少残差编码的偏置。
[0087] 根据一些实施例,压缩器110还对写入流进行熵编码(S324)以进一步提高图像数据200的压缩。在一些实施例中,熵编码仅被应用于写入流中的残差值,而不应用于特定值,诸如,行程长度和行程模式标志。然而,本发明的实施例不限于此,熵编码可应用于包括所述特定值的整个写入流。在一些示例中,压缩器110采用算术编码以对写入流中的残差值进行熵编码,因为算术编码的性能可在增加序列长度和跨通道的残差分布的相对规律性的情况下而任意地接近熵。然而,本公开的实施例不限于此,熵编码可使用任何合适的无损编码方案(诸如,葛洛姆(Golomb)编码、霍夫曼(Huffman)编码等)被执行。
[0088] 有时,特定的压缩的通道块208(例如,包含高频分量数据的通道块)可能比原始的未压缩的通道块204占用更多的位数。这样,在一些实施例中,压缩器110将压缩的通道块208的长度(例如,计算的长度)与未压缩的通道块204的长度进行比较,以确定压缩是否导致位节省(S326)。如果压缩的长度小于原始的未压缩的长度,则压缩器将压缩的熵编码的残差数据存储为压缩的通道块208,并且生成/更新对应的元数据210(例如,通过在元数据中适当地设置块类型标志)以指示块类型为压缩的。然而,如果压缩的长度大于或等于原始的未压缩的长度,则压缩器110将通道块204标记为未压缩的,并且在没有任何压缩的情况下使未压缩的通道块204通过。在一些示例中,压缩器110将未压缩的通道块204保存/存储为压缩的通道块208,并且更新对应的元数据210(例如,通过在元数据中适当地设置块类型标志)以指示块类型为未压缩的。
[0089] 根据一些示例,压缩器110可不必等待直到熵编码之后才检查压缩长度(或写入流的长度),并且可在块压缩期间(S310)的任何其他点或者多个点执行该检查。
[0090] 压缩器110然后确定是否所有块202(例如,所有通道块204)已经被压缩(S328)。如果没有,则压缩器110进行到下一个块202(例如,下一个通道块204)(S330),并且开始新的处理(在S312)。
[0091] 一旦图像数据200的压缩被完成,它就可被存储在高速缓存14中。图形处理系统10可通过经由解压缩器120对压缩的图像数据进行解压缩来取得(retrieve)高速缓存的图像数据。
[0092] 图4是示出根据本公开的一些示例实施例的在图形处理系统10的图像管道中的压缩的图像数据的可变速率解压缩的处理400的流程图。
[0093] 根据一些实施例,解压缩器120通过对构成图像数据200的块202中的每个进行取得并解压缩,来从存储器/高速缓存14取得所存储的图像数据(例如,对存储在存储器/高速缓存14中的存储的通道块208进行解压缩)。在这样做时,解压缩器120单独地对存储的通道块208中的每个进行解压缩,并且通过重新对齐未压缩的块202以及在一些示例中将颜色空间变换到期望的颜色空间(例如,原始的未压缩的图像数据200的颜色空间)来重构原始的图像数据200。
[0094] 在一些实施例中,解压缩器120取得存储的通道块208和相关联的块元数据210(S402)。解压缩器120然后将块类型识别为平坦的/恒定的、复制的、压缩的或未压缩的(S404)。在一些示例中,解压缩器120可通过从对应的块元数据210读取块类型标志来识别块类型。
[0095] 如果块类型被识别为平坦的/恒定的(S406),则解压缩器120从对应的元数据将颜色值(例如,RGBA值)读入整个块(例如,通道块204)(S408)。也就是说,颜色值被应用于块(例如,通道块204)中的每个值元素。
[0096] 如果块类型被识别为先前解压缩的块的复制(S410),则解压缩器120针对所有复制块读取相同的压缩的数据并且对该数据进行解压缩。这是由于如果不是平坦的,则块的每个复制在元数据中被编码为具有相同的到压缩的数据的指针。在一些实施例中,解压缩器120仅对复制块进行解压缩一次,并且针对所有复制块使用相同的解压缩的数据。
[0097] 如果块被识别为未压缩的(S414),则解压缩器120读取在存储在对应的元数据中的特定起始地址处开始的未压缩的块(S416)。解压缩器120然后进行到下一个块202(例如,下一个通道块204)(S426),并且开始新的处理(在S402)。
[0098] 否则(如果块类型被识别为压缩的),则根据一些实施例,解压缩器120通过读取在元数据中指定的地址偏移处开始的高速缓存的块(例如,压缩的通道块208)来开始解压缩(S418)。解压缩器120然后根据在压缩期间采用的编码方案(例如,算术、霍夫曼或葛洛姆编码),以相反的在压缩期间使用的行程顺序(例如,Z顺序遍历或行顺序遍历)对残差值进行解码(S418)。
[0099] 解压缩器120通过对连续值进行相互比较来执行恢复值的行程长度解码(S420)。根据一些实施例,当第i值(其中,i是大于1的整数)等于它的先前的(即,紧接着在前的)两个值,即,第(i-1)值和第(i-2)值时,解压缩器120读取行程模式标志,行程模式标志为真或假。如果行程模式标志为真,则解压缩器120读取量化的行程长度n(其中,n是正整数),并且将先前的第(i-1)值复制到先前的第(i-1)值接下来的n个值。如果行程模式标志为假,则解压缩器120进行到下一个值,即,第(i+1)值。解压缩器120继续这种比较直到通道块204被完成。
[0100] 在一些实施例中,解压缩器120然后根据在压缩处理期间利用的预测方案计算预测值,并且将解码的残差添加到预测器以恢复原始值(S422)。在压缩器110在压缩期间执行等式1的映射的实施例中,解压缩器120可基于等式2恢复原始值x:
[0101] x=(x′+D(r))%M                  (2)
[0102] 其中,x’表示预测值,M表示未压缩的通道块204中的可能值的上限范围,r表示差分变换的残差,D(r)由等式1定义,%M表示用于将结果保持在log2(M)位范围内的整数取模。
[0103] 虽然图4所示的实施例在残差建模(S422)之前应用行程长度解码(S420),但是本发明的实施例不限于此,这两个处理的顺序可被颠倒。例如,在压缩器110在压缩期间在残差编码之前执行行程长度编码的实施例中,解压缩器120可在行程长度解码(S420)之前执行残差建模(即,计算残差和预测值;S422)。这种特定的顺序可通过相同值的多个连续实例来减少残差编码的偏置。
[0104] 解压缩器120然后检查与刚被处理的通道块204相关联的相同块202所对应的所有通道块204(例如,Y、Cr以及Cb通道块204)是否已被解压缩(S424)。如果没有,则解压缩器120然后进行到下一个块202(例如,下一个通道块204)(S426)并且开始新的处理(在S402)。
[0105] 在一些实施例中,如果与相同块202对应的所有通道块204(例如,Y、Cr以及Cb通道块204)已被解压缩,则解压缩器120然后检查对应的通道块204的颜色空间是否是期望的颜色空间(即,原始图像数据200的颜色空间)(S428)。如果颜色空间不是期望的颜色空间,则解压缩器120将未压缩的通道块204的颜色空间变换到期望的颜色空间(例如,RGB)(S430)。
[0106] 如果所有压缩的通道块208没有被解压缩(S432),则解压缩器进行到下一个通道块(S426)。
[0107] 解压缩器120然后可通过根据处理400对所有块202进行解压缩来重建原始图像数据200。
[0108] 虽然在图4中所示的处理400示出了处理S406、S410以及S414以特定顺序执行,但是本公开的实施例不限于此,处理S406、S410以及S414可以以任何合适的方式被重新排序。
[0109] 因此,如上所述,根据本公开的一些实施例的压缩系统提供可容易地在任何合适的系统(诸如,GPU、CPU、具有相机的图形处理系统等)中被采用的简单且经济有效还灵活的无损图像压缩和解压缩的实施方式。本公开的一些实施例采用若干压缩技术以减少图像数据中的冗余,并且对保持接近熵(例如,尽可能接近熵)的内容进行编码。因此,根据本发明的实施例的无损压缩能够取得比现有技术的无损压缩技术的压缩率大的压缩率。
[0110] 在此使用的术语仅用于描述特定的实施例的目的,而不意在限制本发明构思。如在此使用的,除非上下文明确另有指示,否则单数形式也意在包括复数形式。还将理解,术语“包括”和/或“包含”在本说明书中被使用时,指定存在叙述的特征、整体、步骤、操作、元件和/或组件,但并不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。如在此使用的,术语“和/或”包括相关所列项的一个或多个的任何一个和所有组合。诸如“……中的至少一个”的表述在位于一列元素之后时,修饰整列元素,而不修饰列的单个元素。此外,当描述本发明构思的实施例时,“可”的使用指的是“本发明构思的一个或多个实施例”。此外,术语“示例性”意在指示例或说明。
[0111] 如在此使用的,术语“使用”、“正在使用”以及“使用的”可分别被认为与术语“利用”、“正在利用”以及“利用的”同义。
[0112] 根据在此描述的本公开的实施例的压缩系统和/或任何其他相关装置或组件可通过利用任何合适的硬件、固件(例如,专用集成电路)、软件或软件、固件和硬件的合适组合来实现。例如,独立多源显示装置的各种组件可形成在一个集成电路(IC)芯片上或者在独立的多个IC芯片上。此外,压缩系统的各种组件可在柔性印刷电路膜、带载体封装(TCP)、印刷电路板(PCB)上实现,或者形成在同一基板上。此外,压缩系统的各种组件可以是进程或线程,进程或线程在一个或多个计算装置中的一个或多个处理器上运行,执行计算机程序指令并且与其他系统组件交互以执行在此描述的各种功能。计算机程序指令存储在存储器中,存储器可使用标准存储器装置(诸如,例如,随机存取存储器(RAM))在计算装置中实现。计算机程序指令还可存储在其他非暂时性计算机可读介质(诸如,例如,CD-ROM、闪存驱动器等)中。此外,本领域技术人员应当认识到,在不脱离本公开的示例性实施例的范围的情况下,各种计算装置的功能可被组合或集成到单个计算装置中,或者特定计算装置的功能可分布横跨一个或多个其他计算装置。
[0113] 虽然已经具体参照本公开的说明性实施例详细描述了本公开,但在此描述的实施例并不意在将本公开的范围详尽或限制到所公开的确切形式。本公开所涉及的领域和技术的技术人员将理解,在不意图脱离如权利要求及其等同物所阐述的本公开的原理和范围的情况下,描述的结构以及装配和操作的方法的改变和变化可被实践。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈