首页> 中国专利> 用于图像压缩的累积分布函数的有效率更新

用于图像压缩的累积分布函数的有效率更新

摘要

在算术编码期间更新累积分布函数(CDF)能够是一个挑战,因为CDF的最终元素在更新计算期间应保持固定。如果概率是浮点数,则这将不会是太大的挑战;然而,概率及由此的CDF被表示为整数以利用无限精度算术。这些困难中的一些可以通过引入“混合”CDF以及正在被更新的活动CDF来减轻;混合CDF提供非局部上下文以供由于在编码中引入特定符号而更新CDF。执行算术编码的改进技术包括使用两个一维混合CDF阵列,符号相关阵列和符号相关阵列,更新CDF。符号相关阵列是较大的固定阵列的子阵列,使得所选择的子阵列取决于所使用的符号。

著录项

  • 公开/公告号CN114846806A

    专利类型发明专利

  • 公开/公告日2022-08-02

    原文格式PDF

  • 申请/专利权人 谷歌有限责任公司;

    申请/专利号CN202080089257.2

  • 发明设计人 帕斯卡·马西米诺;文森特·拉博;

    申请日2020-07-06

  • 分类号H04N19/91(2006.01);H03M7/40(2006.01);

  • 代理机构中原信达知识产权代理有限责任公司 11219;中原信达知识产权代理有限责任公司 11219;

  • 代理人李佳;周亚荣

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 16:12:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-19

    实质审查的生效 IPC(主分类):H04N19/91 专利申请号:2020800892572 申请日:20200706

    实质审查的生效

  • 2022-08-02

    公开

    国际专利申请公布

说明书

技术领域

本说明书涉及图像压缩,并且具体地涉及用于图像压缩的累积分布函数的有效率更新。

背景技术

彩色图像的压缩是执行来用以减小存储图像的文件的大小,并且在一些实施方式中,可以通过消除图像内的冗余信息来执行彩色图像的压缩。例如,在将颜色通道从一个基(例如,RGB)变换到亮度-色度基(例如,YUV坐标)之后,可以从相邻像素之间的颜色值相关性的模型中减去变换的颜色通道中的值,以产生每个颜色通道中的残差值。然后可以将这些残差值变换为频率空间表示(例如,离散余弦变换(DCT)、离散小波变换(DVT)),使得可以消除对图像具有较小影响的高频残差值,并且可以相应地减小图像的大小。然后可以将这些变换的残差量化为一定数量的比特,并且可以根据诸如熵编码的编码方案来编码这些量化的残差。

发明内容

实施方式提供了使用高效率且鲁棒的编码器的图像压缩方案。编码器用码字替换符号的字母表,每个符号具有根据概率模型被使用的概率。将概率值指派给字母表的符号的模型是自适应的,使得每次观察到符号时,更新字母表的符号的累积分布函数(CDF)(即,符号的指定子序列的概率之和)。鲁棒更新过程包括基于预先计算的混合CDF生成对CDF的改变,其中混合CDF包括与字母表的每个符号相对应的相应的单独的混合模型。在这种情况下,混合CDF则是混合CDF值的二维阵列。虽然鲁棒,但是该更新过程不是非常有效率,因为二维阵列在存储和访问混合CDF数据时使用许多计算资源。改进的实施方式用两个一维阵列(符号无关的混合CDF阵列和符号相关的混合CDF阵列)代替二维混合CDF阵列。从较大的固定阵列中采样符号相关的混合阵列。因为CDF更新步骤平均占用大约40%的编码计算资源,所以在使用两个混合CDF阵列时获得的效率是显著的。

在一个大体方面,一种方法可以包括接收用于编码的原始数据(诸如基于图像获得的数据),所述原始数据由符号的字母表表示。该方法还可以包括初始化表示以多个索引来评估的累积分布函数(CDF)的CDF阵列。索引可以具有预定顺序,例如,它们可以是相应的不同数值(例如,连续的整数,诸如0至N),使得索引的顺序是数值的顺序,其中,更低的数值在顺序上更早。在此,我们使用一个索引“小于”或“大于”另一个索引的术语来表示第一索引在顺序上分别早于或晚于第二索引;我们还提及某个索引小于或大于“阈值索引”,其分别意指在顺序上在阈值索引之前或之后。多个索引中的每个索引表示字母表的符号,该符号表示原始数据的一部分,多个索引中的索引处的CDF表示由多个索引中的小于或等于该索引的索引表示的字母表的符号的概率的累积和。该方法可以进一步包括:响应于接收到表示原始数据的第一部分的字母表的第一符号,基于第一混合CDF阵列和第二混合CDF阵列来更新CDF阵列以产生更新的CDF阵列,第一混合CDF阵列具有独立于第一符号的值,第二混合CDF阵列具有基于符号的值,更新的CDF阵列用于确定表示原始数据的第二部分的字母表的第二符号的概率。该方法可以进一步包括使用更新的CDF阵列对第一符号和第二符号进行编码以产生码字,该码字在被解码时再现原始数据的第一部分和第二部分。这种再现可能不准确;相反,它可以产生与原始数据的第一和第二部分相差满足微小性准则(smallness criterion)的量的数据。例如,未恰当再现的符号的比例可能低于阈值。

在另一个一般方面,一种计算机程序产品包括非暂时性存储介质,所述计算机程序产品包括代码,所述代码在由计算设备的处理电路执行时使所述处理电路执行方法。该方法可以包括接收用于编码的原始数据,原始数据由符号的字母表表示。该方法还可以包括初始化表示以多个索引来评估的累积分布函数(CDF)的CDF阵列,多个索引中的每一个表示字母表的符号,该符号表示原始数据的一部分,多个索引中的一索引处的CDF表示由多个索引中的、小于或等于该索引的索引表示的字母表的符号的概率的累积和。该方法可以进一步包括:响应于接收到表示原始数据的第一部分的字母表的第一符号,基于第一混合CDF阵列和第二混合CDF阵列来更新CDF阵列以产生更新的CDF阵列,第一混合CDF阵列具有独立于第一符号的值,第二混合CDF阵列具有基于符号的值,更新的CDF阵列用于确定表示原始数据的第二部分的字母表的第二符号的概率。该方法可以进一步包括使用更新的CDF阵列对第一符号和第二符号进行编码以产生码字,该码字在被解码时再现原始数据的第一部分和第二部分。

在另一个一般方面,一种被配置为生成重新爬取策略的电子装置包括存储器和耦合到存储器的控制电路。控制电路可以被配置为接收用于编码的原始数据,原始数据由符号的字母表表示。控制电路还可以被配置为初始化表示以多个索引来评估的累积分布函数(CDF)的CDF阵列,多个索引中的每一个表示字母表的符号,该符号表示原始数据的一部分,多个索引中的一索引处的CDF表示由多个索引中的、小于或等于该索引的索引表示的字母表的符号的概率的累积和。控制电路还可以被配置为响应于接收到表示原始数据的第一部分的字母表的第一符号,基于第一混合CDF阵列和第二混合CDF阵列来更新CDF阵列以产生更新的CDF阵列,第一混合CDF阵列具有独立于第一符号的值,第二混合CDF阵列具有基于符号的值,更新的CDF阵列用于确定表示原始数据的第二部分的字母表的第二符号的概率。控制电路还可以被配置为使用更新的CDF阵列对第一符号和第二符号进行编码以产生码字,该码字在被解码时再现原始数据的第一部分和第二部分。

在附图和以下描述中阐述了一个或多个实施方式的细节。根据说明书和附图以及权利要求书,其他特征将是显而易见的。

附图说明

图1是图示可以实现本文描述的改进技术的示例性电子环境的图。

图2是图示根据所公开的实施方式的操作增强现实系统的示例性方法的流程图。

图3是图示可以用于实现所描述的技术的计算机设备和移动计算机设备的示例的图。

具体实施方式

本文中所描述的图像压缩技术应用于可以使用算术编码技术编码的图像。这样的图像通常包括通过网络(例如,互联网)交换的大多数照片和图像。算术编码仅是在图像数据的表示上使用的一种技术,该图像数据已经被减少以提高压缩比。如本文中所论述的,需要若干步骤来将原始图像数据减少到使用算术编码器编码的量化残差数据。虽然其它编码技术可以应用于量化的残差数据,但算术编码在大多数情况下提供比其它编码(例如,霍夫曼编码)技术更好的压缩比改进。

在将从本文描述的技术中受益最多的图像中,这种图像中的像素处的颜色通道的值与相邻像素中的颜色通道的值良好相关。良好相关意指存在预测模型,该预测模型在给定相邻像素的颜色值的情况下提供对像素的颜色值的准确估计。当然,这种估计不会在任何图像中提供精确的预测。然而,当将良好的预测模型应用于图像时,所得到的残差--像素处的实际颜色值与由预测模型得到的那些值之间的差--将不再良好地相关。可以比原始图像数据更有效率地代码化这种不良相关的残差数据。

一旦生成了残差数据,下一步是以更自然地提供过滤掉可能不会被人类观察者感知的数据的能力的方式来表达该残差数据。例如,与高空间频率相关联的数据最可能将具有非常小的亮度值。在这种情况下,使用诸如离散余弦变换(DCT)或离散小波变换(DVT)的变换来识别残差数据的高频内容。在将此变换应用于残差数据之后,可以使用低通滤波器以通过消除与最高频率相关联的数据来减小数据大小。

最后,为了准备使用算术编码(或另一熵编码技术),对变换的残差数据进行量化,使得所得到的量化残差数据由有限数量的值表示。虽然导致有损压缩,但是量化变换的残差数据具有显著地提高压缩比的优点。因为量化的残差数据由有限数量的值表示,所以编码器可以依据码本中所使用的有限字母表的符号来表示量化的残差数据。

在算术编码中,存在用于对量化残差进行编码的N个符号的字母表,其中,在一些编码器中,N基于量化中使用的比特数。(一些编码器使用N=16个符号。)字母表的一些符号比其他符号更可能出现,即一些符号比其他符号具有更高的出现概率。字母表的每个符号出现的概率可以根据历史行为或模型来确定。

在算术编码器的示例性实施方式中,编码器如下表示字母表的每一符号出现在原始数据(即,量化的残差数据)中的概率。想象数字行上的区间[0,1)。区间表示作为该区间出现在原始数据中的字母表的所有符号。字母表的每个符号被指派该区间中的子区间,就像每个符号是字母表的一部分一样。例如,考虑字母表包含三个符号:a,b和c。假设符号a出现在原始数据中的概率为0.4,符号b具有0.5的概率,并且符号c具有0.1的概率。然后,在对量化的残差进行编码时,将区间细分为用于a的子区间[0,0.4)、用于b的子区间[0.4,0.9)和用于c的子区间[0.9,1.0)。如果在编码期间在包含原始数据的比特流中观察到的第一符号是b,则所选择的子区间是[0.4,0.9),因为该子区间表示符号b。当算术编码方案不是自适应的并且在观察原始数据的比特流中的下一个符号时,根据符号的概率按比例再次细分该子区间,即,细分为用于a的子区间[0.4,0.6)(即,子区间的40%)、用于b的子区间[0.6,0.85)(即,子区间的50%)和用于c的子区间[0.85,0.9)(即,子区间的10%)。该过程继续,直到最终子区间大小小于或等于用在解码量化的残差的符号的概率的乘积。在这种情况下,在每个符号具有两个比特时,并且对于具有M个符号的编码,则子区间端点的前2M个比特将在解码时唯一地标识量化的残差。例如,当数据流中的符号是“bbbc”时,最终的区间具有0.0125的长度,其等于(0.5)

大体上,当字母表的第k个符号a

一些算术编码器是自适应的,因为它们在编码中使用符号时更新符号概率,并因此更新相应的CDF。在许多场景中,优选的是更新CDF而不是直接更新概率,因为CDF更容易使用整数算术来工作。更新算术编码器中的CDF的常规方法包括在对应于符号的索引处以及在大于符号的索引处增加CDF。

注意,CDF被表示为数值的阵列,每个数值表示对应于字母表中的符号的累积概率。由于概率是正数,因此对于对应于字母表的每个符号的索引k的所有值,CDF应该满足关系CDF[k]≥CDF[k-1]。此外,CDF阵列的第一和最后一个元素应该满足CDF[0]=0和CDF[N]=PMAX,其中,PMAX是表示CDF的最大值和所有概率的总和的固定数;这两个值在更新期间是固定的。

更新算术编码器中的CDF的上述常规方法的技术问题在于,这些常规方法在实现非二进制字母表时引起实际困难。例如,更新CDF可能是一个挑战,因为CDF的最终元素应该在更新计算期间保持固定。如果概率是浮点数,则这将不是很大的挑战。然而,符号概率及因此的CDF被表示为整数以利用无限精度算术。

为了看到整数算术中固有的问题,考虑两个3符号整数概率阵列:p=(3 3 2)和q=(1 6 2)的相加,使得元素的总和恒定为8。这两个阵列的平均值为

这些困难中的一些可以通过引入“混合”CDF以及正被更新的活动CDF来减轻,其中,混合CDF提供非局部上下文(nonlocal context)以供由于在编码中引入特定符号而更新CDF。然而,这种混合CDF(其采用表示每个符号的固定模型的二维矩阵的形式)可以使用大量的CPU和存储器资源(当这种资源可能稀缺时)。

根据本文描述的实施方式,上述技术问题的技术解决方案包括使用两个一维混合CDF阵列(符号相关阵列和符号无关阵列)更新CDF。符号相关阵列可以是较大的固定阵列的子阵列,使得所选择的子阵列取决于正在使用的符号。

所公开的实施方式的技术优点在于,上述编码器使用少得多的资源,并且因此比根据常规方法操作的编码器更有效率。

图1是图示可以实现上述技术方案的示例性电子环境100的图。电子环境100包括被配置为执行图像压缩和解压缩的计算机120。

计算机120包括网络接口122、一个或多个处理单元124、存储器126和显示接口128。网络接口122包括例如以太网适配器、令牌环适配器等,用于将从通信网络接收的电子和/或光信号转换为电子形式以供计算机120使用。该组处理单元124包括一个或多个处理芯片和/或组件。存储器126包括易失性存储器(例如,RAM)和非易失性存储器,诸如一个或多个ROM、磁盘驱动器、固态驱动器等。该组处理单元124和存储器126一起形成控制电路,其被配置和布置为执行如本文所述的各种方法和功能。

在一些实施方式中,计算机120的一个或多个组件可以是或可以包括被配置为处理存储在存储器126中的指令的处理器(例如,处理单元124)。如图1所示的这种指令的示例包括图像管理器130、预压缩管理器140、算术代码化管理器150和解码管理器160(注意,在一些变型中,计算机系统可以仅包括用于生成由另一计算机解码的代码的算术代码化管理器150,或者仅包括用于生成由另一计算机编码的代码的解码管理器160)。此外,如图1所示,存储器126被配置为存储各种数据,将参考使用这样的数据的相应管理器来描述这些数据。

图像管理器130被配置为接收或获取图像数据132。在一些实施方式中,图像管理器130被配置为通过网络接口122(即,通过网络(诸如网络190))从显示设备170接收或获取图像数据132。在一些实施方式中,图像管理器130被配置为从本地储存器(例如,磁盘驱动器、闪存驱动器、SSD等)接收或获取图像数据132。

图像数据132表示彩色图像。图像数据132包括一组像素,该组像素中的每一个具有图像内的坐标和一组数值,该组数值中的每一个表示颜色通道内的值。在一些实施方式中,图像数据132中使用的颜色通道是RBG,例如RGB数据133。

在一些实施方式中,图像管理器130还被配置为将图像数据132从一组颜色通道(例如,RGB数据133)转换为另一组颜色通道(例如,YUV数据134)。在将颜色通道从RGB转换为YUV时,编码器可以直接在亮度通道上操作,因为YUV通道中的这种亮度数据的压缩通常比RGB通道中的颜色数据的压缩更有效率。

预压缩管理器140被配置为生成原始数据以供算术代码化管理器150使用来编码。在一些实施方式中,原始数据不是YUV图像数据134本身,而是被配置用于有效率熵编码的该数据的导出形式。这样的实施方式依赖于像素周围的小邻域中的颜色通道的值之间的高相关性量。然后,预压缩管理器140被配置为应用表示相关性的预测模型并生成残差,即,YUV数据134中的给定图像值与根据预测模型的值之间的差。由于残差值之间的相关性降低,这种残差数据具有比实际图像数据更低的熵。

残差数据142表示如上所述的残差值。当从YUV数据134导出时,残差数据142包括指示与作为图像内的空间坐标的函数的预测模型的偏差的分布的实数值的三元组。诸如通过已知方法,基于YUV数据134导出预测模型。

预压缩管理器140还被配置为在一些实施方式中,执行将图像坐标空间中的残差数据142变换为图像频率空间中的变换的残差数据143。在一些实施方式中,变换是傅里叶变换。在一些实施方式中,变换是离散余弦变换(DCT)。在一些实施方式中,变换是离散小波变换(DVT)。

预压缩管理器140还被配置为在一些实施方式中,执行变换的残差数据143的量化以产生量化的残差数据144。量化的残差数据144允许编码器以减少图像中的信息内容为代价来实现更高压缩比。当使用DCT(诸如通过使用8×8DCT矩阵)生成变换的残差数据时,将固定量化矩阵(诸如固定的8×8量化矩阵)用于YUV数据134的亮度和色度分量来执行量化。量化矩阵通常减少或消除对应于高频的残差值。

算术编码管理器150被配置为执行量化的残差数据144的算术代码化以产生编码的数据156。算术代码化管理器用使用比符号更少的存储器空间的数值替换由符号数据152表示的符号的字母表中的符号(在这种情况下符号表示量化的残差数据144)。

符号数据152表示包含量化的残差数据144的可能基本表示的符号的字母表或集合。因为残差数据已被量化,所以该数据144仅具有有限数量的值。这些值中的每一个可以由字母表的符号表示。此外,每个符号具有出现概率。概率可以基于历史数据或基于对量化的残差数据144中的符号的出现的更理论理解。应注意,字母表(且因此CDF)可以不仅应用于量化的残差数据144,而且应用于比特流中的任何句法元素(例如,块类型、变换类型、预测器类型等)。

CDF阵列数据153表示CDF阵列或字母表中的符号的CDF。也就是说,CDF阵列的两个连续条目之间的差产生符号的概率,即,如果CDF阵列被表示为CDF[k],其中,k表示字母表的第k个符号的索引,则可以将第k个符号的概率写为p

□CDF[0]=0。(字母表之外的符号出现的概率为零,这在更新后也成立。)

□CDF[N]=PMAX。这在更新后保持不变。

□当k>0时,CDF[k]≥CDF[k-1]。即,无为负的概率。

在一些实施方式中,N=16;也就是说,在算术编码管理器150中使用的字母表中有16个符号。

在原始数据(例如,量化的残差数据144)的比特流中观察到具有索引k的符号的至少一些情况下,算术编码管理器150被配置为更新CDF阵列数据153以反映具有索引k的符号更频繁地出现的事实。该更新可以在接收到符号的所有情况下进行,或者仅在这些情况中的一些情况下进行,例如,当自从上次更新完成以来已经接收到一定数量的符号时。更新的困难在于使用整数算术来执行更新操作。因此,在上述更新操作期间保持CDF阵列(表示为CDF)的三个属性不是微不足道的。

此外,其他约束可以被认为如下:

字母表中从未看到的符号(即,具有等于零的概率的符号)在未观察到该符号的更新之后保持为零的概率。

相反,已经看到的符号在更新之后保持非零概率。

然而,在一些实施方式中,由算术编码管理器150执行的更新使用速度值(正实数),该速度值指示如果符号是比特流中编码的唯一符号,则该符号所采取以增加其概率的步数。

一些更新过程包括使用表示特定CDF模型的预定义的“混合”CDF。这种混合CDF被用来确保在更新期间维持上述CDF阵列的属性。例如,对应于第k个符号的一个这样的混合CDF由以下表达式给出:

其中,δ

因为混合CDF取决于符号,所以对于字母表的每个符号存在单独的混合CDF模型。因此,如上所示,混合CDF是需要N(N+1)个条目的二维阵列。在CDF更新平均占用大约40%的处理器资源的编码操作中,表示混合CDF的该数据结构可能使用太多的资源。

混合CDF在一些实施方式中,替代地可以被分解为以下的两个一维阵列:符号无关的混合CDF数据154和符号相关的混合CDF数据155。这样的表示被用作上述改进技术的一部分,并且使用比上述常规二维阵列更少的计算资源。符号无关的混合CDF数据154表示符号无关的混合CDF阵列,其被表示为sym_ind_cdf。阵列sym_ind_cdf是如下定义的固定阵列:sym_ind_cdf[k]等于具有大于零的概率的、具有小于k的索引的符号的数目。也就是说,如果使用字母表中的所有符号,则sym_ind_cdf[k]=k。

符号相关的混合CDF数据155表示符号相关的混合CDF阵列,其被表示为sym_cdf。阵列sym_cdf是固定的一维阵列fix_cdf的子阵列。固定阵列fix_cdf具有2N+1个元素并且可以定义如下:

其中P

现在可以以以下代码描述更新过程。注意,虽然用C语言编写了下述代码,但是该过程可以用任何语言编写。

输入:CDF,N,k(所观察的符号的索引),f(如上所述的速度值)。

输出:更新的CDF。

int*sym_cdf=fixed_cdf[N-1-k];

for(int i=0;i

int delta=sym_cdf[i]+sym_ind_cdf[i]-CDF[i];

CDF[i]+=(int)(delta*f)>>16

}

在接收到符号ai时对CDF[k]的每个值的更新是使当前值CDF[k]增加通过对速度值(f)和求和项(delta)的乘积执行凑整运算而获得的量。求和项基于符号无关的混合CDF阵列的第i元素和符号相关的混合CDF阵列的第i元素。例如,求和项可以从符号无关的混合CDF阵列的第i元素和符号相关的混合CDF阵列的第i元素的和减去CDF[k]的当前值来获得。

在一些实施方式中,可以并行地执行上述过程。使用专用Intel SSE4.1指令实现的示例性代码如下。

__m128i A=_mm_loadu_si128((const__m128i*)sym_cdf);

__m128i B=_mm_loadu_si128((const__m128i*)sym_ind_cdf);

__m128i C=_mm_loadu_si128((const__m128i*)CDF);

__m128i D=_mm_add_epi16(A,B);

__m128i E=_mm_sub_epi16(D,C);

__m128i F=_mm_mulhi_epi16(E,f);

__m128i G=_mm_add_epi16(C,F);

_mm_storeu_si128(CDF,G);

在此,f是速度f的16位精度表示。这些指令仅是一个示例,并且其他指令也是可能的。

在观察到量化的残差数据144中的最终符号之后,算术编码管理器150根据上述区间流程完成量化的残差数据144的编码,例如,以产生编码的数据156。对于算术编码,编码的数据156采取浮点数的形式,但在一些实施方式中,编码的数据156可以采取位串的形式。

解码管理器160被配置为解码编码的数据156以产生解码的量化残差数据162,即,量化的残差数据144。在对编码数据156执行解码操作时,解码管理器160以与算术代码化管理器150相反地操作。此外,解码管理器160还被配置为通过大致颠倒由预压缩管理器140使用的操作来产生RGB数据格式的原始图像数据132的有损版本:解量化量化的残差数据144以产生解码的变换的残差数据163;应注意,该解量化过程可能不会确切地产生原始变换的残差数据143,但损失应尽可能察觉不到。例如,将逆DCT或DVT应用于解码的变换的残差数据163以产生解码的残差数据164,即,在坐标空间表示中。解码管理器160进一步被配置为将预测模型值加回到解码的残差数据164以产生解码的YUV数据164,且最后解码管理器160进一步被配置为将YUV通道变换回到RGB通道以产生解码的RGB数据166作为解码过程的产物。

用户设备120的组件(例如,模块、处理单元124)可以被配置为基于可以包括一种或多种类型的硬件、软件、固件、操作系统、运行时库等的一个或多个平台(例如,一个或多个类似或不同的平台)来操作。在一些实施方式中,计算机120的组件可以被配置为在设备集群(例如,服务器群)内操作。在这样的实施方式中,计算机120的组件的功能和处理可以分布到设备集群的若干设备。

计算机120的组件可以是或可以包括被配置为处理属性的任何类型的硬件和/或软件。在一些实施方式中,图1中的计算机120的组件中所示的组件的一个或多个部分可以是或可以包括基于硬件的模块(例如,数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器)、固件模块和/或基于软件的模块(例如,计算机代码的模块、可以在计算机处执行的计算机可读指令集)。例如,在一些实施方式中,计算机120的组件的一个或多个部分可以是或可以包括被配置为由至少一个处理器(未示出)执行的软件模块。在一些实施方式中,组件的功能可以被包括在与图1所示的模块和/或组件不同的模块和/或组件中,包括将图示为两个组件的功能组合成单个组件。

尽管未示出,但是在一些实施方式中,计算机120的组件(或其部分)可以被配置为在例如数据中心(例如,云计算环境)、计算机系统、一个或多个服务器/主机设备等内操作。在一些实施方式中,计算机120的组件(或其部分)可以被配置为在网络内操作。因此,计算机120的组件(或其部分)可以被配置为在可以包括一个或多个设备和/或一个或多个服务器设备的各种类型的网络环境内运行。例如,网络可以是或可以包括局域网(LAN)、广域网(WAN)等。网络可以是或可以包括无线网络和/或使用例如网关设备、桥接器、交换机等实现的无线网络。网络可以包括一个或多个段和/或可以具有基于诸如互联网协议(IP)和/或专有协议的各种协议的部分。网络可以包括互联网的至少一部分。

在一些实施方式中,计算机120的一个或多个组件可以是或可以包括被配置为处理存储在存储器中的指令的处理器。例如,图像管理器130(和/或其一部分)、预压缩140(和/或其一部分)、算术代码化管理器150(和/或其一部分)和解码管理器160(和/或其一部分)可以是被配置为执行与实现一个或多个功能的过程相关的指令的处理器和存储器的组合。

在一些实施方式中,存储器126可以是任何类型的存储器,诸如随机存取存储器、磁盘驱动器存储器、闪存等。在一些实施方式中,存储器126可以被实施为与VR服务器计算机120的组件相关联的多于一个存储器组件(例如,多于一个RAM组件或磁盘驱动器存储器)。在一些实施方式中,存储器126可以是数据库存储器。在一些实施方式中,存储器126可以是或可以包括非本地存储器。例如,存储器126可以是或可以包括由多个设备(未示出)共享的存储器。在一些实施方式中,存储器126可以与网络内的服务器设备(未示出)相关联,并且被配置为服务计算机120的组件。如图1所示,存储器126被配置为存储各种数据,包括图像数据132、量化的残差数据144、符号无关和符号相关的混合CDF数据154和155、编码数据156和解码RGB数据166。

图2是描绘根据上述改进技术的示例性方法200的流程图。方法200可以由结合图1描述的软件构造来执行,该软件构造驻留在计算机120的存储器126中并且由该组处理单元124运行。

在202,预压缩管理器140接收用于编码的原始数据,原始数据由符号的字母表表示。例如,在一些实施方式中,原始数据是由预压缩管理器140基于由图像管理器130接收的图像生成的量化的残差数据144。

在204处,算术编码管理器150初始化表示以多个索引来评估的累积分布函数(CDF)的CDF阵列(例如,CDF阵列数据153),多个索引中的每一个表示字母表的符号,该符号表示原始数据的一部分,多个索引中的索引处的CDF表示由多个索引中的小于或等于该索引的索引表示的字母表的符号的概率的累积和。

在206处,算术编码管理器150响应于接收到字母表的第一符号,基于第一混合CDF阵列(例如,符号无关的混合CDF数据154)和第二混合CDF阵列(例如,符号相关的混合CDF数据155)来更新CDF阵列以产生更新的CDF阵列,第一混合CDF阵列具有独立于第一符号的值,第二混合CDF阵列具有基于符号的值。更新的CDF阵列可以被用来确定表示原始数据的第二部分的字母表的第二符号的概率。

在208处,算术编码管理器150使用更新的CDF阵列对第一符号和第二符号进行编码以产生码字,该码字在被解码时再现原始数据。

图3图示了可以与在此描述的技术一起使用的通用计算机设备300和通用移动计算机设备350的示例。计算机设备300是图1的计算机120的一个示例性配置。

如图3所示,计算设备300旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型主机和其他适当的计算机。计算设备350旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。在此示出的组件、它们的连接和关系以及它们的功能仅仅是示例性的,并不意指限制本文档中描述和/或要求保护的本发明的实施方式。

计算设备300包括处理器302、存储器304、存储设备306、连接到存储器304和高速扩展端口310的高速接口308、以及连接到低速总线314和存储设备306的低速接口312。组件302、304、306、308、310和312中的每一个使用各种总线互连,并且可以适当地安装在公共主板上或以其他方式安装。处理器302可以处理用于在计算设备300内执行的指令,包括存储在存储器304中或存储设备306上的指令,以在外部输入/输出设备(诸如耦合到高速接口308的显示器316)上显示用于GUI的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线以及多个存储器和多个类型的存储器。此外,可以连接多个计算设备300,其中,每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。

存储器304存储计算设备300内的信息。在一个实施方式中,存储器304是一个或多个易失性存储器单元。在另一实施方式中,存储器304是一个或多个非易失性存储器单元。存储器304还可以是另一种形式的计算机可读介质,诸如磁盘或光盘。

存储设备306能够为计算设备300提供大容量存储。在一个实施方式中,存储设备306可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、或磁带设备、闪存或其他类似的固态存储器设备、或设备阵列,包括存储区域网络或其他配置中的设备。计算机程序产品可以有形地体现在信息载体中。计算机程序产品还可以包含指令,所述指令在被执行时执行一种或多种方法,诸如上述那些方法。信息载体是计算机或机器可读介质,诸如存储器304、存储设备306或处理器302上的存储器。

高速控制器308管理用于计算设备300的带宽密集型操作,而低速控制器312管理较低带宽密集型操作。这种功能分配仅是示例性的。在一个实施方式中,高速控制器308被耦合到存储器304、显示器316(例如,通过图形处理器或加速器),并且耦合到高速扩展端口310,高速扩展端口310可以接受各种扩展卡(未示出)。在该实施方式中,低速控制器312被耦合到存储设备306和低速扩展端口914。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪或诸如交换机或路由器的联网设备。

计算设备300可以以多种不同的形式实现,如图所示。例如,它可以被实现为标准服务器320,或者在一组这样的服务器中多次实现。它还可以被实现为机架服务器系统324的一部分。此外,它可以在诸如膝上型计算机322的个人计算机中实现。可替代地,来自计算设备300的组件可以与诸如设备350的移动设备(未示出)中的其他组件组合。这些设备中的每一个可以包含计算设备300、350中的一个或多个,并且整个系统可以由彼此通信的多个计算设备300、350组成。

在此描述的系统和技术的各种实施方式可以在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,该可编程处理器可以是专用的或通用的,被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并将数据和指令发送到存储系统、至少一个输入设备和至少一个输出设备。

这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实现。如本文所使用的,术语“机器可读介质”、“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。

为了提供与用户的交互,在此描述的系统和技术可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以通过其向计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)的计算机上实现。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。

在此描述的系统和技术可以在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该图形用户界面或Web浏览器与在此描述的系统和技术的实施方式交互),或者包括这种后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和互联网。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。

已经描述了许多实施方式。然而,应当理解,在不脱离本说明书的精神和范围的情况下,可以进行各种修改。

还将理解到,当元件被称为在另一元件上、连接到、电连接到、耦合到或电耦合到另一元件时,它可以直接在另一元件上、连接或耦合到另一元件,或者可以存在一个或多个中间元件。相反,当元件被称为直接在另一元件上、直接连接到另一元件或直接耦合到另一元件时,不存在中间元件。尽管在整个具体实施方式中可能不使用术语“直接在...上”、“直接连接到”或“直接耦合到”,但是被示出为“直接在...上”、“直接连接到”或“直接耦合到”的元件可以被如此称呼。可以修改本申请的权利要求书以记载说明书中描述的或附图中示出的示例性关系。

虽然已经如本文所述示出了所描述的实施方式的某些特征,但是本领域技术人员现在将想到许多修改、替换、改变和等同物。因此,应当理解,所附权利要求书旨在覆盖落入实施方式的范围内的所有这些修改和改变。应当理解到,它们仅通过示例而非限制的方式呈现,并且可以进行形式和细节上的各种改变。除了相互排斥的组合之外,本文描述的装置和/或方法的任何部分可以以任何组合进行组合。本文描述的实施方式可以包括所描述的不同实施方式的功能、组件和/或特征的各种组合和/或子组合。

另外,附图中描绘的逻辑流程不需要所示的特定顺序或相继顺序来实现期望的结果。另外,可以提供其他步骤,或者可以从所描述的流程中消除步骤,并且可以将其他组件添加到所描述的系统或从所描述的系统中移除。因此,其他实施方式在所附权利要求书的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号