像素块处理的制作方法

文档序号:6479423阅读:296来源:国知局
专利名称:像素块处理的制作方法
技术领域
本发明总体涉及像素块处理,具体涉及图像和纹理块的压缩和解压。
背景技术
为了提高图形处理单元的(GPU)的性能,带宽减小技术仍是重要的。由于计算能 力每年的性能增长率远远大于动态随机存取存储器(DRAM)的带宽和延迟的增长率,带宽 减小技术尤其重要。在目前的GPU(如来自NVIDIA的GeForce 8800架构)中已经能够看 到这种效果,其中,每纹素读取大约有14次标量运算。虽然有时可以利用更多的运算代替 存储器读取来对算法进行转换,但在特定时刻,可能满足计算需求,此时GPU将是空闲的, 等待存储器访问请求。一种减小带宽需求的方式是执行所谓纹理或图像压缩。通过以压缩形式在存储器 中存储纹理,并以压缩形式通过总线传输经压缩的纹理的块,可以极大地降低纹理带宽。最近,高动态范围(HDR)纹理开始变得流行起来。因此,引入了多种高动态范围纹 理压缩方案[1-3]。Munkberg[l]和Roimela[2]的方法依赖于处理不同于色度的亮度。原因在于,眼 睛对色度误差不是那么敏感,从而同亮度相比可以花费较少的比特对色度进行编码。然而, 就硬件而言,这些现有技术方法中使用的从RGB颜色空间到亮度/色度颜色空间的转换代
价高昂。Wang的算法[3]的缺陷在于,针对高比特速率提供较低的质量。

发明内容
因此,需要一种高效的纹理和图像压缩和解压方案,可用于处理HDR纹理但不具 有上述的现有技术方案的局限。本发明的一般目的是提供一种能够对HDR纹理进行压缩和解压的高效图像处理方案。上述和其他目的是由所附专利权利要求限定的发明实现的。简言之,本发明涉及对由具有相关属性值的像素组成的块进行压缩和解压。在压 缩中,将像素块无损压缩为候选压缩块。将产生的候选块的长度与目标比特长度进行比较。 如果其超过目标比特长度,针对该块提供量化参数,并基于该参数对属性值进行量化。以经 量化的值作为输入值,再次对该块进行无损压缩,以得到新的候选压缩块。以不同的量化参 数重复该过程,直到候选压缩块的比特长度等于或小于目标比特长度。优选地,产生的候选 压缩块具有最小可能量化,但仍满足长度要求。块的压缩表示是基于所选候选压缩块的比 特序列和标识符的比特序列确定的,所述标识符允许标识用于产生所选候选压缩块的量化 参数。当对压缩像素块进行解压时,标识与候选压缩块相对应的第一比特序列,并对其 进行解码,以得到至少一个像素属性值。标识与量化参数标识符相对应的压缩块的第二比
7特序列。如果该标识符具有预定义值,该预定义值指示在当前块的压缩期间未执行有损量 化,可以直接从经解码的属性值来确定像素属性值的表示。然而,如果标识符指示执行了有 损量化,首先利用第二比特序列所指示的量化参数,对像素的经解码的属性值进行解量化。 属性值的表示是基于该经解码和解量化的值提供的。本发明还涉及压缩器或编码器以及解压器或解码器。本实施例提供了对纹理的高效压缩和解压,并且能够甚至处理高动态范围属性值。


通过参考结合附图的以下说明可以最佳地理解实施例及其进一步的目的和优点, 附图中图1是示出了根据实施例的压缩方法的流程图;图2根据实施例的像素块的示意图;图3是示出了图1中压缩方法的无损压缩步骤的实施例的流程图;图4是示出了图3中压缩方法的预测确定步骤的实施例的流程图;图5是示出了图1中压缩方法的量化步骤和图11中解压方法的解量化步骤的实 施例的流程图;图6是示出了图1中压缩方法的量化步骤的另一实施例的流程图;图7是示出了图1中压缩方法的量化步骤的又一实施例的流程图;图8是示出了图1中压缩方法的附加、可选步骤的流程图;图9是根据实施例的块的压缩表示的总体示意图;图10是根据另一实施例的块的压缩表示的总体示意图;图11是示出了根据实施例的解压方法的流程图;图12是示出了图11中解压方法的解量化步骤的实施例的流程图;图13是示出了图11中解压方法的解量化步骤的另一实施例的流程图;图14是示出了图11中解压方法的解码步骤的实施例的流程图;图15是根据实施例的压缩器的示意框图;图16是图15中压缩器的无损压缩器的实施例的示意框图;图17是图15中压缩器的预测确定器的实施例的示意框图;图18是图15中压缩器的值量化器的实施例的示意框图;图19是图15中压缩器的值量化器的另一实施例的示意框图;图20是图15中压缩器的值量化器的又一实施例的示意框图;图21是根据实施例的解压器的示意框图;图22是图21中解压器的表示确定器的实施例的示意框图;图23是图21中解压器的表示确定器的另一实施例的示意框图;图24是图21中解压器的表示确定器的又一实施例的示意框图;以及图25是图21中解压器的解码器的实施例的示意框图。
具体实施例方式在附图中,对相应或相似的元件使用相同的参考标记。
8
本发明总体涉及像素属性值的压缩和解压,具体涉及适于纹理压缩和解压的这样 一种压缩和解压,以及针对高动态范围纹理的这样一种处理。本发明完全适于与诸如游戏、三维(3D)地图和场景、3D消息(如动画消息)、屏 保、人机接口(MMI)等3D图形一起使用,但不限于此。因此,如此处所公开的,还可以对其 他类型的图像或图形(如一维(ID)、二维(2D)或3D图像)进行处理。在本公开中,压缩和解压共同地处理多个像素,典型地以像素的块(在本领域中 通常表示为像素块或像素片)的形式处理像素。在优选实施例中,像素块具有MXN像素的 尺寸,其中M、N是整数,且M和N不同时为1。优选地,M= 2m且N = 2n,其中m、η是零或 整数,且m和η不同时为0。在典型实现中,M = N,并且优选地这种块的实施例可以是4X4 像素、8X8像素或16X16像素。表述像素或“块元素”指块或块的编码表示的元素。继而,该块对应于图像或纹理 的一部分。因此,像素可以是1D、2D、3D纹理的纹素(纹理元素);ID或2D图像的像素;或 3D图像的体素(体元素)。一般地,以相关像素参数或属性值来表征像素。存在不同的这种特征属性值,典型地可以根据要压缩/解压哪种像素块将所述特 征属性值分配给像素。例如,属性值可以是分配给像素的颜色值。如本领域所公知的,不同 的颜色空间是可用的,并且可用于表示颜色值。一般的这种颜色空间是所谓红、绿、蓝(RGB) 颜色空间。因此,像素属性值可以是RGB颜色的红色值、绿色值或蓝色值。还可以以亮度和色度分量的形式来表示像素颜色。在这种情况下,可以使用变换 将RGB颜色值转换为亮度值以及典型地两个色度分量。本领域中亮度_色度空间的示例包 括YUV、YC0Cg和Yt;cb。因此,属性值还可以是这种亮度值⑴或色度值(U,V,C0, Cg, Cr或 Cb)。然而,从RGB到其他颜色格式的变换及其对应的反变换就硬件而言通常代价高昂。因 此,RGB颜色是可与本实施例一起使用的有利的像素颜色。但是,这些实施例可用于除RGB以外的、本领域中用于纹理和图像的像素的其他 属性值的上下文中。因此,根据本发明的像素的属性值可以是RGB颜色的R值、G值或B值 或上述和/或本领域中使用的某些其他属性值。此外,以下,术语“图像”用于表示可以利用本实施例进行编码和解码的任何1D、 2D或3D图像或纹理,包括但不限于凸凹贴图、法线贴图、照片、游戏型纹理、文本、图画、高 动态范围图像和纹理等。实施例有利地用于对HDR属性值进行压缩,但也可以高效地用于处理所谓低动态 范围(LDR)属性值。在本领域中,后者典型地由8比特整数的有限解析度表示。作为明显的 对比,HDR—般涉及利用浮点数,如fp 16(又称半精度)、fp 32(浮点)或fp64(双精度), 来表示属性值。然而,半精度的浮点属性引起问题。由于浮点数的密度是非均勻的,两个浮点数间 的差可能无法表示为具有相同精度的浮点数。通过将每个浮点数映射为相应的整数表示可 以解决该问题。这基本对应于向每个浮点数分配唯一的整数。因此,从浮点到整数域的映 射涉及将更大的整数分配给更大的浮点数,浮点数0.0将被分配整数表示0,下一次小正 浮点数被分配1,再下一次小浮点数被分配2,以此类推。在整数域中进行计算和算术预算还避免了代价高昂的浮点运算。此外,由于压缩 是无损的,还获得了对非数(NaN)、无穷(Inf)和非标准数(异常)的正确处理。在这种情况下,在压缩期间,浮点数根据以上介绍的映射被解释为整数。解压后,再通过上述整数和 浮点数间的一一映射重新将整数解释为浮点数。本发明涉及适于纹理和其他图像类型的块压缩或编码以及解压或解码,其中需要 随机访问和固定速率。如本领域所公知的,在光栅化期间可以按任意顺序访问纹素和纹理 中的像素。因此,由于固定速率纹理压缩系统允许在不使用复杂的查找机制的情况下随机 寻址,因此是所期望的。此外,优选地,解压应当是快速的并且以GPU硬件实现代价相对不 高,虽然对于可以在中央处理单元(CPU)中“离线”执行的压缩而言这些要求不一定是需要 的。本领域中的传统方式使用有损压缩方案来实现固定比特率。然而,本发明采用根 本上不同的方式,将无损压缩与单独的量化过程一起使用。这允许逐块独立调整像素的属 性值的量化等级,从而达到尽可能高的质量,并仍在块的固定目标比特长度的比特预算以 内。压缩图1是示出了根据实施例的、对多个像素的块进行压缩的方法的流程图。块的每 个像素具有至少一个相应的像素属性值,如相应的R、G和B值。该方法起始于步骤Si,其中,利用所定义的无损压缩算法对块的原始属性值进行 无损压缩,以得到块的候选压缩表示以及块的候选压缩表示的属性值。给定步骤Sl中无损 压缩的性质,所产生的候选压缩块的比特长度可能大于或等于(对应于无损压缩实际不可 能的情况)或小于块的原始比特长度,块的原始比特长度被定义为ΝΧΜΧ0,其中N表示块 的行中的像素数,M表示块的列中的像素数,0表示像素的相应像素属性值的总比特数,典 型地,对于HDR纹理为3X16。在步骤Sl中实际可以使用现有技术中已知的、适于处理特定属性值(优选地半色 值)的任何无损压缩算法。如此处进一步讨论的,典型地,基于预测的无损压缩是优选的。下一步骤S2将候选压缩块的结果比特长度BL与所定义的目标或阈值比特长度T 进行比较。在优选实施例中,优选地,该目标比特长度T定义为T = Tta,get-TQP,其中,Ttarget 是由于固定速率要求而可以用在压缩块上的总比特数,Tqp是此处进一步讨论的、分配给压 缩块的量化参数的标识符所需的比特数。如果在步骤S2中候选压缩块的比特长度等于或小于目标比特长度,方法继续至 步骤S5。该步骤S5基于来自步骤Sl的无损候选压缩块来提供像素块的压缩表示。此 外,优选地,压缩表示还包括量化参数标识符,该量化参数标识符具有指示当前块确实可 以无损压缩并仍满足目标比特长度的值。压缩表示的总尺寸是BL+TQPK特,满足要求 BL+TQP ^ Ttarget。接着,方法结束,或优选地返回步骤Sl (由线Ll示意表示),对当前图像或纹理的 其他块或片进行压缩。然而,如果在步骤S2中来自步骤Sl的候选压缩块的比特长度超过目标比特长度, 则方法继续至步骤S3。在步骤S3中,提供指示有损处理并且适用于当前块的量化参数,以 用于对块的像素属性值进行量化的目的。为了将块的属性值量化为经量化的像素属性值, 在下一步骤S4中利用该量化参数。接着,在步骤Sl中再次对块进行无损压缩,然而,以经量化的属性值代替原始属性值作为输入。因此,虽然在步骤Sl中执行的压缩同样是无损的,但由于量化步骤S4,所产 生的候选压缩块通常将是块的有损压缩表示。与第一遍相同的方式执行步骤Sl的无损压 缩,但存在以下重要的区别此时经量化的属性值代替原始属性值作为输入数据。在步骤S2中,再次将所产生的压缩块的比特长度与目标比特长度进行比较。应注 意的是,在第二遍执行步骤S2中使用的目标比特长度可以不同于第一遍所用的目标比特 长度。其原因在于,每次执行步骤S2时,量化参数的标识符所需的比特数可能不同。作为步骤S4中执行的量化的结果,优选地,同使用原始的、未经量化的值相比,在 无损压缩中可以将块压缩至更短的比特长度。这意味着,第二遍无损压缩后的比特长度比 第一遍无损压缩后的比特长度短。如果此时在步骤S2中所产生的比特长度等于或小于目标比特长度,方法继续至 步骤S5,其中,块的压缩表示是基于经过量化和后续无损压缩得到的候选压缩块提供的。此 外,优选地,针对当前候选压缩块,压缩表示还包括在步骤S4中采用的量化参数的标识符, 该参数还指示由于量化,候选块是通过有损处理获得的。然而,如果在步骤S2中比特长度仍超过目标比特长度,方法继续至步骤S3。在该 步骤中,提供量化参数。在优选实施例中,该量化参数与在由步骤S1、S2、S3和S4限定的第 一遍循环中使用的量化参数不同。在这种情况下,在步骤S4中使用该量化参数对原始属性 值进行量化,以得到块的新的经量化的属性值。每次执行步骤Sl至S4的循环时对原始像 素属性值应用新的量化参数是一种优选方式。可替代地,一种可选方式对第一遍循环后获得的经量化的属性值应用步骤S3中 提供的量化参数。因此,如果fQP0表示对像素属性值Pu进行量化的运算,那么如果在第一 和第二遍中使用相同的量化参数,第二遍循环后的经量化的属性值将是fQP(fQP(Pij))。重复步骤Sl至S4的循环,在步骤S4中基于来自步骤S3的量化参数执行新的量化 过程,接着执行步骤Sl的无损压缩,直到压缩块的比特长度等于或小于目标比特长度。可 以通过在第一次执行步骤S4时应用最小可能量化而后每次执行后续循环时相继提高量化 度来执行该过程。在这种情况下,选择并使用比特长度等于或小于目标比特长度的第一候 选压缩块,以在步骤S5中提供块的压缩表示。在可选方式中,在步骤S4第一次活动时,执行最大可用量化,接着每次执行后续 循环时逐步降低量化度。在这种情况下,候选压缩块是比特长度低于目标比特长度且先 于产生第一候选压缩块的循环的候选压缩块,所述第一候选压缩的长度超过了目标比特长度。可选搜索当然是可行的,如利用二分查找在可用量化参数间搜索。例如,第一次执 行步骤S3时,提供导致在步骤S4中对像素属性值的最小量化的量化参数。如果在以该参 数进行量化并进行步骤Sl的无损压缩后,比特长度超过目标比特长度,下一遍步骤S3测试 位于在步骤S4中给出最小量化的参数和导致最大可用量化的参数之间的量化参数。如果 比特长度仍超过目标比特长度,选择导致最大量化和“中等”量化之间的量化的量化参数, 以此类推。如果相反比特长度低于目标比特长度,选择导致最小量化和“中等”量化之间的 量化的量化参数。优选地,重复该过程,直到在仍不满足目标长度的最小量化和满足目标长 度的最小量化之间不再存在“中等”量化为止。此时,选择后一量化参数。优选地,最大量化被设置为确保每个可能的块在压缩后低于目标比特长度的级
11
—般地,图1的方法选择出在步骤S4中执行了尽可能小的量化但比特长度仍等于 或小于目标比特长度的候选压缩块,并且该候选压缩块用于步骤S5的提供压缩块表示。一旦在步骤S5中对块进行了正确地压缩,并且满足步骤S2的目标比特长度要求, 方法就结束或返回步骤Si,以压缩纹理的新像素块。应注意的是,给定要根据图1公开的方法压缩的输入纹理,可以使用不同等级的 量化来压缩不同的像素块。例如,对块的第一集合进行无损压缩,因此,块的第一集合具有 表示无损压缩的量化参数。为了在进行无损压缩时达到目标比特长度,必须对输入块的其 他集合进行量化。因此,某些块可以使用第一量化参数,某些块使用第二量化参数,以此类 推。优选地,在压缩方法中使用的无损压缩是基于预测的压缩算法。图3示意了这种 算法。该方法起始于步骤S10,其中,针对要编码的像素来确定属性值的预测。优选地,预测 库是与当前像素相邻的一个或多个相邻像素,典型地存在于同一行或列中。下一步骤Sll基于像素的原始或经量化的属性值及其预测,计算像素的预测误 差。优选实现计算预测误差,作为属性值及其预测之间的差式=巧-式,其中Pij表示原始 或经量化的属性值,Ay是对原始或经量化的属性值的预测,式是预测误差。优选地,针对块中多个像素的至少一部分,重复步骤SlO和Sl 1。在这种情况下,这 些像素中的每个像素具有相关的预测误差。块中的一个或多个像素可以被用作起始或重新 起始像素,因此不具有任何预测或预测误差。因此,优选地,在候选压缩块中对这些像素的 值进行显式编码,而不进行预测或熵编码。在后续步骤S12中对来自步骤Sll的预测误差进行熵编码,从而得到像素的相应 的编码表示。此时,候选压缩块包括这些经熵编码的预测误差,以及优选地上述起始/重新 起始像素属性值。方法继续至图1的步骤S2,其中,评估所产生的候选压缩块的比特长度。此处,给出对无损的、基于预测的压缩算法的更详细的描述。但本发明不限于此, 相反可以对所给出的算法以及现有技术中的其他已知无损压缩算法进行各种修改。在优选实施例中,首先针对要压缩的块选择起始属性值。优选地,该起始属性值是 位于块中所定义的位置处的像素的属性值。参考示意了像素块300的示例的图2,优选地, 该所定义的位置是块中的第一像素位置310,即位于左上角。可能的起始像素位置的其他示 例可以是其他块角落中的任一个。实际上,块中的任何预定义位置都可用作起始位置,虽然 角落位置特别是左上角像素310极大地简化了块的压缩。 在对纹理进行压缩的情况下,每个像素具有相应的R、G和B分量,起始属性值被选 为等于起始像素310的颜色分量之一(优选红色分量)。候选压缩块包括所选起始属性值
的表示P startRn。 接下来,以对像素进行压缩来进一步讨论压缩,其中像素属性值是红色分量。然 而,这应当仅仅被看作说明性而非限制性示例。此后,确定对与起始像素310属于块的同一 行或列的剩余像素311、312、313的预测。在优选实现中,这涉及基于块的像素行或列中先 前相邻像素的红色分量来确定红色分量预测。例如,第一行中的像素311、312可能具有等 于Rlij-D的预测戎,,其中j = 2,3,...,并且R11是以上选择的起始分量值。第一列中像素
12313的对应预测定义为,其中i = 2,3,...,并且R11是起始分量值。可选地,基于 第一行/列中的紧接前一像素和再前面一个像素来确定预测,如成7,并
且举例而言,成,=SRch) -i 1(/_2),其中 j = 3,· · ·。此时已经确定了针对像素311、312、313的红色分量的预测,并且算法继续执行, 提供对块中剩余像素314、315、316、317的预测。图4的流程图中示出了该过程。该预测提 供操作起始于步骤S20。该步骤S20涉及计算块300中第一相邻像素316的红色分量和块 300中第二相邻像素315的红色分量之间的差。因此,这两个相邻像素315、316与块300中 要压缩的当前像素317相邻。此外,像素315、316与相对于当前像素317的两个不同的预 测方向相关。在优选实施例中,这两个相邻像素315、316包括块300的同一行中的先前像 素316和块300的同一列中的先前像素315。优选地,步骤S20的计算涉及计算差R(H),其中Rij表示块位置(i,j)处的 像素的红色分量。由于差的幅度是相关的而符号无关,因此在步骤S20中可以计算绝对差
Ra-Dj-Ri(J-I)U在可选方式中,在步骤S20中可替代地计算平方差(RfDj-RKj-D)2。当然, 除以上两种之外的其他幅度表示也是可行的。在任一情况下,接着,将所计算的差表示与所定义的阈值h进行比较。因此,可以将比较实现为- 巧或⑷,—…-代糾)2丨/72。如果相邻像素 315、316的红色分量之间的差小于阈值,方法从步骤S20继续至步骤S21,否则方法继续至 步骤S22。可以在优化过程中确定阈值h的值,优化过程的优化目标是压缩尽可能多的不同 纹理的块,并产生就比特数而言尽可能短的块压缩长度。根据本发明可以使用并且由初步 优化过程获得的阈值的非限制示例是h = 2048。然而,阈值的实际值取决于多种因素,包 括所用的特定颜色格式、颜色分量值的可用范围等。该值2048对于RGB颜色表现良好,在 RGB颜色中颜色分量表示为半精度浮点数。步骤S21涉及基于这两个相邻像素315、316的红色分量来计算当前像素317的颜 色分量预测。换言之,式=/(i (,_1X/,i ,(H)),其中式对当前像素Rij的预测,f()是函数,优选 地定义了两个相邻红色分量的第一加权组合式=wl^R^+WlwRiu^。还可以对第一加 权组合进行舍入、上取整或下取整,以得到整数预测值。在优选实施例中,步骤S21基于两个相邻像素的红色分量的平均来计算像素预测
Ril=/
,R(j-”J + R丨(.H)、 ν2J
,即, ,在优选实现中,将所计算的平均值用作预测,
IV1), = wu-\)j = O·5 °
即&^.Sx&m + O.SX^W)。如果仅采用整数预测,可以对商进行舍入,或输入至根据 Rfl =Lo.5xi (,_1X/ +0.5χ‘_υ」的下取整,或作为替代进行对应上取整。基于平均数确定的其
他预测也是可行的,如^ =2χ Α'-1)"= -1) -Riim ο 如果相反在步骤20中调查发现差不小于阈值,方法继续至步骤S22。步骤S22包 括计算当前像素317的红色分量和相邻像素315、316的红色分量的第二加权组合WC2之 间的第一差。步骤S22还涉及计算当前像素317的红色分量与相邻像素315、316的红色分量的不同的第三加权组合间的第二差。接着,像素317的颜色分量预测被选择为基 于(优选地等于)这两个相邻红色分量的第二和第三加权组合之一。此外,基于这两个所 计算的差来执行该预测选择。一般地,选择与所调查的像素的红色分量最接近的加权组合。 因此,如果Rij-WC2 < Rij-WC3或等效地(Rij-WC2)2 < (Rij-WC3)2或者实际上(虽然不是 优选的)IRij-Rii-DjI < I Rij-Ri,在步骤S23中选择红色分量的第二加权组合作为红色 预测& = WC2,否则在步骤S24中选择第三加权组合作为红色预测& = WC3。两个相邻红色分量的三个加权组合是不同的加权组合,即,使用不 同的权重FC1 = 山+ W,1(广)代旧)、WC2 = wlA)jR{i_X)j + wf^R^ , WCi - WlwRi^j + wkdAH)。如以上结合第一加权组合所讨论的,可以对第二和第三加 权组合进行舍入、上取整或下取整,以得到整数值。第一加权组合或线性组合的权重、是非零权重,并且优选地在区间0 〈W1 < 1中。优选地,第二和第三加权组合的权重也是非零的,但每个加权组合中的一个 权重可以是零。在这种情况下,WC2 =W^7In,,优选地<_1)7 =1,WC^w\H)Ri{jA), 优选地=1。在优选实施例中,<H) =(1-,=(I-M^1)7),其中 0 < Sl。更优选地,= (1 - <Η>)。在这种情况下,第二加权组合是 WC2 = w^AM^G-乂-υ》‘-υ且第三加权组合是肥3 =G-w^")巧M" +Wi-”A.H) ° 第二和第三组合的适当权重值的示例可以是WC2 = 0. 751^4j+Ο.和WC3 = 0. 25Κα_1} j+0. 75Ri(J_1)0 在=0的情况下,WC2 = R(H)j 且 WC3 =氏的)。这对应于选择 两个相邻像素315、316的红色分量之一作为对当前像素317的红色分量的预测。接着,方法继续至步骤S25,其中,提供与所选预测相关的引导比特。因此,如果在 步骤S23中将第二加权组合选为红色预测,引导比特可以被设置为Obin或lbin。然而,如果 相反在步骤S24中选择了第三加权组合,引导比特可以是Ibin或0bin。接着,方法继续至图3的步骤S11,其中基于当前像素317的红色分量和在步骤 S21、S23或S23中提供的预测来计算预测误差。优选地,预测误差被计算为像素的原始 红色分量Rij及其预测式之间的差^ = Rij-Rij。与其他数据无关地对红色分量进行编码,相反,优选地,相对于红色分量对绿色分 量进行编码。在这种情况下,针对块300中的每个像素310-317计算相应的分量差。该分 量差是像素的绿色和红色分量之间的差Gu-Ru。此后,提供对块中第二颜色分量的对应预 测。对于存在于与起始像素310同一行或列中的那些像素311、312、313,与红色分量 类似地进行压缩,只不过使用绿色和红色分量之间的差。因此,与起始像素310位于同一行 的像素311、312、313可以具有第二预测误差GfRij = (Glj -Rlj)-(Gij-Rij) = (Glj -Rlj)-(G1(广丨)-U.按以下方式对块300中的剩余像素314、315、316、317进行编码。首先,在图4的步 骤S20中,调查两个相邻像素315、316的红色分量之间的绝对/平方差是否超过阈值。因 此,即使要提供对绿色分量的预测,调查也采用红色分量值。
如果差小于阈值,基于第一相邻像素316的绿色和红色分量之间的第一差和第 二相邻像素315的绿色和红色分量之间的第二差的第一加权组合来计算预测。换言之,
在优选实施例中,基于两个分量差的平均值来计算预测,更优选地等于平均值,在下取整函 数的情况下(V =~rO-^-rKj-^。然而,如果相邻红色分量之间的绝对差超过阈值,作为替代,算法继续执行,针对 当前像素317,利用在图4的步骤S25中确定的引导比特,选择两个差的第二加权组合作为
(即选择第一预测方向),或选择
第三加权组合作为预测
即选择第二 预测方向)。也可以对这些第二和第三加权组合进行舍入、上取整或下取整。在优选实施例中,用于确定上述颜色分量差的三个不同加权组合所采用的权重是 确定红色分量的三个不同加权组合所采用的相同的权重。此后,计算像素317的绿色分量的预测误差,作为像素的绿色和红色分量与所选 预测间的差 接着,如上所述,针对蓝色和剩余颜色分量执行相同的过程。然而,在这种情况下, 计算蓝色和绿色分量之间的差Bij-Gijtl在可选方式中,作为替代,在步骤中计算蓝色和红色 分量之间的差Bu-Rijtl如以上讨论的,优选地,结合无损压缩的上述实施例执行图3的熵编码步骤S12。 优选地,首先对预测误差进行修改,以得到正预测误差。优选地,该修改涉及对负预测误 差(包括零误差)应用函数η (χ) =-2χ和对正预测误差(不包括零误差)应用函数P(X) =2χ-1,此处χ表示输入的像素误差。这将导致预测误差的新的排列,如{0,1, -1,2, -2, 3,-3,.. . },意味着大量小幅度将具有较小的值。接着,优选地,对每个经修改的预测误差进 行Golomb-Rice编码[5_6],以获得编码表示。Golumb-Rice编码涉及搜索指数k。优选地,针对块中至少一个像素的集合采用该 指数k。例如,块中2X2组中的四个像素可以共享相同的k。可以使用在可用k值中(如 在O和15之间)穷尽搜索,来查找针对组的最佳k值。然而,可以通过仅查看可用k值的 所选部分,来降低搜索的运算量。该优选k搜索包括在[ρ-4,ρ]的区间中搜索k,其中ρ 是像素组的最大预测误差的最高有效比特的比特位置。此后,将组的每个预测误差除以2k,以形成相应的商和余数。对商进行一元编码, 优选地,根据以下表1执行编码。表1-一元码 由表1显而易见,一元编码对较大值分配较长的码。一般地,对于大于31的值,利 用OxfTfThex后接该值的16比特,对该值进行编码。预测误差的编码表示包括一元码和k比特余数。此外,针对像素组存储值k。针对 块中起始像素以外的每个像素执行该过程。如上所述,将该像素的原始颜色分量值分别存 储为起始分量值。虽然Golomb-Rice编码是一个可以使用的可行的编码算法,但本发明不限于此。 相反,可选地可以采用其他编码算法,包括Huffman编码[7]或Timstall编码[8]。图10是根据上述压缩算法压缩的像素块的压缩表示400的示意图。压缩块400 包括量化参数标识符410。压缩块表示400还包括候选压缩块420。该候选压缩块420包 括起始属性值的表示422。候选压缩块420还包括所确定的k值的表示424、引导比特426 以及来自Golomb-Rice编码的商和余数的一元码(在图中标记为经编码的误差表示428)。 压缩块400中所包含的分量的实际顺序可以不同于图10中示出的顺序。根据本发明可以使用的另一可能的无损压缩算法基于Weinberger预测器[4]。参 照图2,该预测器基于沿三个预测方向的相邻像素314、315、316的属性值来确定当前像素 317的属性值的预测。更具体地,该预测为Plj = minOwD,如果 p(i
-1) (j-1)彡 maX (Pi(j-i) P(i-i)j)Plj = maxO^.]),;^")如果 p(i
-D (j-D ( min (Pi0-D, Pii-Dj)Pij = + P(I-X)J -外―1)(广1)否则接着,如前所述计算预测误差。接着,将所计算的预测误差输入熵编码器,如首先 在[5]中公开的上述Golomb-Rice编码器。可选地,可以使用Huffman或Tunstall编码。根据本发明可以使用的另一无损压缩算法基于R32预测器。第一行和列中的像素 311、312、313是基于相同行或列中的最中间的相邻像素预测的。接着,以扫描顺序(即从第 二行的第二像素起逐行)预测剩余像素。这些剩余像素中的每一个是基于存在于同一行中 的先前像素的属性值预测的。接着,计算预测误差,并利用上述任一熵编码器对预测误差进 行熵编码。本发明不一定限于使用基于预测的无损压缩算法。相反,显而易见,可以使用现有 技术中其他形式的无损压缩技术。例如,可以使用PIZ[9]。简言之,PIZ对块中的属性值执 行Haar小波变换,以得到结果符号。接着,游程长度编码(RLE)用单个符号值和计数代替 符号游程(即在多个连续数据元素中出现相同符号值的序列)。例如,假设前15个像素的
16属性值具有值P1且最后一个像素具有值P2的像素块。游程长度编码用以下编码15Pi1P2来 代替15个?1和1个&的序列。接着,可以对PIZ和RLE后的结果值进行熵编码(例如使 用Huffman编码)。图5是示出了图1量化步骤S4的实施例的流程图。该方法延续自图1中的步骤 S3。下一步骤S30将块的属性值逐比特地右移若干步,其中步数由步骤S3中提供的量化参 数限定。因此,假设量化参数具有值S。那么,将块中的属性值右移s步,以得到经量化的值 Py = & “在可选实施例中,可以在移位s步前增加常数1 << (s-1),以确保正确的舍入。在该实施例中,量化参数s可以具有从零(对应于零量化)和等于或大于1的正 整数值直到15 (在半精度情况下)的任意值。因此,量化参数需要4比特。如果块的固定 比特率是Ttawt比特,图1中使用的目标比特长度将是T = Ttarget-4比特。在这种情况下,首先对像素块进行不采用任何量化的无损压缩。如果所产生的候 选块的比特长度满足目标比特长度,优选地,将值0的量化参数与候选块一起存储为块的 压缩表示。否则,对于后继每遍压缩,可以令量化参数加1,直到所产生的候选压缩块的比特 长度等于或低于目标比特长度。图6示出了量化步骤的可选实施例。正如本领域公知的,将比特样式右移s步等 同于将该值除以2s。然而,这种方式将分母限制为2的各次幂。有时,使用非2次幂的分母 可能是有利的。例如,假设目标比特长度为252比特,利用s = 3的移位量化参数给出260 的比特率,不符合比特预算。另一方面,利用s = 4的移位可能给出200的比特率,虽然低 于252但质量差得多。在这种情况下,可能有兴趣使用分母d位于23和24之间的除法,如 d = 12,这可以给出239的速率,符合比特预算并且仍给出好的质量。在该实施例中,甚至 可以使用非整数除数。因此,该实施例涉及在步骤S40中将属性值除以所提供的量化参数,然后在后继 步骤S41中对商进行舍入。该舍入可以通过使用本领域公知的上取整函数、下取整函数或
舍入函数执行。因此,《=令,Pl= e^ ^Pl =Wundi^p。在优选实施例中,可允许量化参数(在该示例中即分母)的数量受限于参数集合。 否则,量化参数的比特长度变为可变的,这继而影响图1的步骤S2中使用的目标比特长度。 因此,对于该实施例的优选方式是,访问具有预定义分母的表,如以下表2的说明性示例。表2-分母量化参数 此时,这意味着,在块的压缩表示中仅存储所选量化参数的固定比特长度标识符 (即表索引)而不是整个量化参数值。应注意的是,表2中给出分母1的码OOOObin定义了 无损压缩(即不量化)。图7是图1的量化步骤S4的又一实施例的流程图。该方法延续自图1中步骤 S3。下一步骤S50标识块中的最小和最大属性值。可选地,计算最大和最小值之间的差, 并将该差的比特长度记为bit (diff)。为了以稍精确的方式将属性值编码为与最小值或 实际上最大值的偏移,取bit (diff)个比特。此时,根据该实施例的量化在于减少可用偏 移值的数量。在步骤S51中,可以根据多个不同实施例实现该减少。第一实施例使用固定 数量的中间值,这些中间值是最大和最小值的不同线性组合,如对于6个中间值的情况,
kPmm +{1~k)P^,其中pmin/max表示块中的最小/最大属性值,且k = 1,2,. . .,6 (k = 0对
应于最大值,k = 7给出最小值)。可选地,可以基于bit(diff)的值计算可用偏移值的数量,如
bits{noOfOffset) = max(l,M^) + 1)。这导致大约一半的比特数量,并且在实践中表现良
好。因此,用根据本实施例的量化将最小-最大区间划分为2bits(n°°f°ffsrt)步,其中步长被计 算为 st印Size = 1 << (bit(difT)-bit(noOfOffset))。另一实施例允许可变数量的偏移值,并且以信号表示使用了多少偏移值。对于复
18杂的块,可以使用较少数量的允许偏移值;反之,对于简单块,可以使用较大数量的允许偏 移值。此时,可以在候选压缩块中存储与允许偏移值的数量有关的信息。对于每个像素,通过首先计算到最小或最大值的距离ClistToMinij = Pij-Pmin或 ClistToMaxij = Pmax-Pij来确定任一可允许的经量化的值的值索引。此时,将像素的值索引确
(HstToMinii(HstToMaxii
定为-Jndexij= round、-或index丨〗=round(-—。如果像素的属性值等于
stepSizeStepSize
最大值或最小值(Pij = Pmax或Pij = Pmin),优选地,将值索引设置为等于最大索引(indeXij =max Index 或者 min Indexij = min Index0该有效地将每个像素偏移值量化为较少比特的值索引。接着,可以将这些值索引 输入预测器,如此处描述的Weinberger或R32预测器。这意味着,在候选压缩块中非编码 地存储起始像素的值索引。对于其他像素,根据特定预测器,基于一个或多个相邻像素的对 应值索引/索引,计算相应的预测。例如,计算相应的预测误差,并例如使用Golomb-Rice 熵编码器对预测误差进行熵编码。该实施例的扩展是,计算值索引的分布,并且如果分布较密集则增加步数(即降 低量化度),如果属性值的分布较为稀疏则减少步数(即提高量化度)。该实施例的优选实现针对块中的像素,计算到最大和最小值的相应距离 ClistToMinij = Pij-Pmin和distToMaXij = pmax-piJO接着,将块中的像素分类为较接近于最小 值或较接近于最大值如果(ClistToMinij < (IistToMaxij)Cij = Obin否则Cij = Ibin此后,计算块中为O和为1的分类参数 的数量,并且测试是否有一类大于所定 义的阈值,如所有像素的75%。在这种情况下,如果分类参数中零的数量大于该阈值数量, 属性值大多分布在最小值附近。此时,标识被分类为 =O的像素的最大属性值。针对从 最小值到所标识的“最小值”中的最大值的区间,如通过针对该区间将bits (noOfOffset) 加1并针对其他区间将bits (noOfOffset)减1,减小从最小值到所标识的“最小值”中的最 大值的区间内的步长。相应地,如果多于阈值数量的属性值大多分布在最大值附近,标识被分类为Cij = 1的像素的最小值。针对从所标识的“最大值”中的最小值到最大值的区间,如通过针对该 区间将bits (noOfOffset)加1并针对其他区间将bits (noOfOffset)减1,减小从所标识的 “最大值”中的最小值到最大值的区间内的步长。可以用模式标识符以信号比特表示当前块符合上述两种模式之一或是不符合两 种模式中的任一种模式(即在整个区间中均勻量化)。例如,OObin表示均勻量化,Olbin表示 接近于最小值的量化度降低,IObin表示接近于最大值的量化度降低。在模式IObin下需要存 储最小的最大值,并且在模式Oibin下在候选压缩块中存储最大的最小值。剩余模式标识符 值Iibin可用于引入其他模式,比如大多数属性值分布在区间的中点附近时的情况。可选方式是在步骤S50中标识最小属性值。将最大值的表示确定为相对于最小值 的偏移,使得最大值近似为Pmin+2X,其中,χ是在步骤S50中确定的偏移值。此时,候选压缩块包括偏移和最小值的表示。接着,如上所述,即利用量化等级的均勻或非均勻分布,在近 似和最小值之间的区间内定义中间值。上述量化实施例应仅仅被看作根据本发明可以使用的说明性的、但优选的量化技 术。同样,可以使用本领域的其他已知量化协议,并且其他已知量化协议属于本发明的范围。在某些情况下,比特长度尺寸最接近于目标比特长度但未超过目标比特长度的候 选压缩块具有相当低的质量。例如,假设通过将属性值移位来执行量化并且当目标比特长 度为252比特时,移位参数3给出254比特的比特长度。然而,下一较大的移位参数4可能 导致仅仅200比特的比特长度,从而远远低于目标比特长度。这意味着,例如以峰值信噪比 (PSNR)来测量,同长度254比特的候选压缩块相比,长度为200比特的候选压缩块通常具有 低得多的质量。在这种情况下,从质量的观点来看,修改一个或多个、可能经量化的属性值, 从而使得候选压缩块的比特长度恰在目标以下,可能是较为有利的。图8中示意了这种过 程。方法延续自图1的步骤S2。下一步骤S60计算比特长度等于或短于目标比特长 度的第一候选压缩块的比特长度BL1和目标比特长度T之间的第一差DnD1 = T-BLp优选 地,该第一候选压缩块是具有最小可能量化并仍导致长度不超过目标比特长度的块。在步骤S61中,计算第二候选压缩块的比特长度BL2和目标比特长度T之间对应 &SD2,D2 = bl2-T。该第二候选块具有超过目标比特长度的比特长度,并且优选地是具有 导致比特长度仍超过目标比特长度的最大可能量化的候选块。在下一步骤S62中,将第一差与第一阈值差、进行比较,并将第二差与第二阈值 差、进行比较。如果第一候选压缩块的长度远远短于目标比特长度(即Di〉、),并且第 二候选压缩块的长度不是远远长于目标比特长度(即D2 < t2),方法继续至步骤S63。然而, 如果不满足这些条件,可以稍微修改第二压缩块从而提供比第一压缩块高的质量但比特长 度不超过目标比特长度是极为不可能的。因此,此时方法继续至步骤S5,其中,第一候选压 缩块用于提供当前块的压缩表示。在步骤S63中,标识块的至少一个像素,其中,接着,在下一步骤S64中修改该/这 些像素的经量化的属性值。标识步骤S63可以标识在对块的无损压缩以给出第二压缩块期间块中具有最大 预测误差的一个像素或像素的子集。这些属性值可能(虽然并不是确保)以压缩块表示来 产生块的长编码表示。因此,在步骤S64中稍微调整这些像素的属性值,使得它们的预测误 差变短,从而优选地熵编码后的编码误差也变短。为了标识要修改的像素或像素子集,该实 施例不需要对属性值进行任何熵编码。然而,不利因素在于,大的预测误差不一定导致长 码。因此,为了减小候选压缩块的总长度,在步骤S63中可能标识非最优像素。在另一实施例中,步骤S63标识块中在第二压缩表示中具有最长残余比特长度的 一个像素或像素的子集。由于该实施例实际上标识对候选压缩块的总长度贡献最大的一个 像素或像素的子集,因而更为有利。不利因素在于,为了在步骤S63中标识像素,需要进行 熵编码。优选地,将所标识的像素的经量化的属性值改变为新值,该新值导致熵编码后的 残余比特长度比可能给出的未修改值短至少一比特。由于属性值的改变影响根据其预测的所有值,可能优选将要修改其属性值的像素的标识限制为不根据其进行预测的那些像素。 根据所采用的特定的预测器,这可以通过像素的相对位置和引导比特的使用来确定。步骤S63和S64的标识和修改可以执行多次或一次。在前一情况下,在第一遍中 标识和修改第一像素。此后,在步骤S65中,利用经修改的值对像素块进行无损压缩,并且 确定其比特长度,将其比特长度与目标比特长度进行比较。如果其仍超过目标比特长度,可 以在第二遍执行步骤S63和S64时标识第二像素并修改其属性值,以此类推,直到比特长度 等于或低于目标比特长度为止。一旦已经在步骤S65中将块无损压缩至低于目标比特率的比特率,就针对该候选 压缩块计算质量参数。还针对第一候选压缩块(即具有最小可能量化但仍导致比特长度不 超过目标比特长度的候选压缩块)计算对应的质量参数。质量参数代表以两种候选压缩版 本之一表示原始像素块的图像质量。适当的质量参数的示例是mPSNR[l]。下一步骤S67选择导致最高质量的候选压缩块。接着,在图1的步骤S5中将该所 选候选压缩块用于提供像素块的压缩表示。图9是根据实施例的像素块的压缩表示400的总体示意图。表示400包括压缩 表示400所基于的、用于产生候选压缩块的量化参数的标识符410。该标识符410可以表 示已对候选压缩块进行了无损压缩(即不量化),或者已经使用了量化,大体产生了块的 有损表示。量化标识符410可以是与特定量化值相关的标识符,如采用表索引的形式。可 选地,标识符410可以实际包括特定量化参数自身的码。如前所述,压缩表示400还包括所选候选压缩块420的码或表示。所包括的压缩 块表示400的元素410、420的实际顺序不必一定如图9所示。应注意的是,针对量化标识符410因而针对所选候选压缩块420可以使用可变数 量的比特。此处重要特征在于,标识符410和候选压缩块420的比特之和等于或低于最大 允许比特长度。解压图11是示出了根据本发明的、对压缩或编码像素块进行解压或解码的方法的流 程图。该方法起始于步骤S70,其中标识并获取压缩像素块的第一比特序列。该第一比特序 列包括块的(量化的)像素属性值的编码表示的比特。换言之,序列对应于在压缩期间针 对当前块选择的候选压缩块。下一步骤S71基于所标识和获取的比特序列对像素块的至少一个像素进行解码。 在步骤S71中采用的特定解码算法是由在对像素块进行编码时采用的特定无损压缩算法 决定的。一般地,可以将解码或解压算法的操作看作编码或压缩算法的逆操作。解码结果 是块中至少一个像素的原始属性值的量化表示。步骤S71可以仅仅涉及对单个像素进行解 码,以获得其经量化的属性值。可选地,可以对多个像素(可能是块中的所有像素)进行解 码。下一步骤S72标识压缩像素块的第二(优选地剩余)序列。该第二序列包括为 产生包括在第一比特序列中的所选候选压缩块所采用的量化参数的标识符的比特序列。如 上所述,第二比特序列可以实际包括(例如取自列出多个可用量化参数的表的)特定量化 参数的码、或用于提供相对量化参数的标识符的码。接着,在下一步骤S73中利用由步骤S72提供的量化参数,以确定像素块是无损压缩(即不进行任何量化)的,还是为了达到比特预算而实际采用了量化,因而第一比特序列 的压缩像素块是原始像素属性值的有损表示。步骤S73的确定是基于量化参数的实际值执 行的。因此,量化参数或标识符可能具有的可能值的至少一个是专用于表示不对像素属性 值进行任何量化的无损压缩,或表示哑(dummy)量化(如乘1)。如果所提供的参数指示针对当前块执行了无任何量化的这种无损压缩,方法继续 至步骤S74。步骤S74基于经量化的属性值的解码表示,提供在步骤S71中解码得到的至少 一个像素的属性值。因此,在这种情况下,无需解量化,而可以将解码值直接用作解码后的 像素属性值,虽然可能之后要变换至另一颜色空间。作为可选方案,即使压缩是无损的,也可以执行哑解量化,例如乘以1。在某些情况 下,例如在if声明代价极高但纯计算代价低的架构中,这可能更为迅速。在这种情况下,省 去步骤S73和S74,并且方法直接从步骤S72继续至S75。然而,相反,如果所提供的量化参数具有指示在压缩期间执行了量化、从而指示即 使使用了无损压缩算法、由于量化引入了近似、因而是有损的、因此像素块进行了有损处理 的值,方法则继续至步骤S75。在步骤S75中,首先利用所提供的量化参数,对来自步骤S71 的至少一个解码得到的经量化的属性值进行解量化。解量化后的结果是像素属性值的最终 解码表示,虽然可以对其进行进一步处理,如输入至颜色变换。一旦在步骤S74或S75中已解码出所需数量的像素,并且提供了它/它们的属性 值,方法结束或返回步骤S70(由线L2示意表示),以对又一压缩像素块进行解码。如果要 解码多于一个的像素,首先对所有这些像素的经量化的属性值进行解码然后对它们进行解 量化可能更加高效。图5是示出了图11的解量化步骤S75的特定实施例的流程图。该方法延续自图 11的步骤S73。在该实施例中,量化参数是移位参数。在这种情况下,将经解码且经量化的 像素属性值逐比特地左移由移位参数限定的步数,即巧=P〖<<s。在可选实施例中,首先,将经解码但仍为量化后的属性值比特序列移位一步,然后 向移位后的比特序列加上Ibin或将移位后的比特序列与Ibin进行OR(或)运算,接着移位剩 余的s-1步。这具有向数据增加量化步长的一半的效果,如果该值是通过右移而不进行舍 入而量化的,其结果是量化后的值的期望值。图12示出了解量化步骤的另一实施例。该方法延续自图11的步骤S73。下一步 骤S80将经解码且经量化的属性值与所提供的量化参数相乘,以得到原始像素属性值的表
7J\ ο一可选实现首先向经解码且经量化的属性值增加0. 5的值,以得到经解码且经量 化的属性值的正确的期望值。这样做以及在移位实施例中对应的加1运算的原因在于,当 使用下取整函数时,例如9. 000到9. 999的区间都被舍入为9。因此,期望值是9. 5。然而, 如果使用舍入函数而不是下取整,无需加0. 5。图13是示出了根据本发明可以使用的解量化步骤的又一实施例的流程图。该方 法延续自图11的步骤S73。下一步骤S90提供像素块的最小像素属性值和最大属性值。此 外,该值提供是基于压缩块中包括的量化参数标识符执行的。在这种情况下,压缩块的第二 比特序列可以包括最小和最大值的编码表示。可选地,基于第二比特序列仅仅提供最小/ 最大值之一。接着,基于也包括在第二比特序列中的偏移值来计算另一极值。
22
在步骤S91中,计算多个中间值,作为最小和最大值的不同线性组合。在该实施例 中,将针对要解压的像素解码得到的经量化的像素属性值用作对最小、中间和最大值的属 性值之一的值索引。因此,在步骤S92中,基于在以上结合图7讨论的压缩期间分配给像素 的值索引,在这些最小、中间和最大值之间标识像素的正确的经解量化的且解码后的属性值。图14是示出了在图11的解压方法中对可能经量化的属性值进行解码的特定实施 例的流程图。该方法延续自图11的步骤S70。优选地,基于压缩块表示的第一比特序列中包 括的起始属性值的表示,来提供块中起始像素的属性值(如红色分量)。在优选实施例中, 在压缩像素块中以非编码形式提供起始属性值,并且因此可以将起始属性值直接分配为起 始像素的红色分量。如前所述,该像素在块中具有预定义位置,优选地位于(i,j) = (Ll)0此后,提供针对与起始像素位于同一像素行或列中的下一像素的预测。在该实施 例中,将起始像素的红色分量(即起始属性值)用作针对相邻像素的预测。接着,基于该分 量预测以及基于第一比特序列针对该像素所确定的预测误差来确定像素的颜色分量。针对 包括起始像素在内的像素行或列中的剩余像素重复该过程。然而,对于这些其他像素,预测 不一定必须是起始像素的红色分量,相反,显而易见,可以等于与当前像素位于同一行或列 中的位于最前的相邻像素的红色分量。此时,对第一列和行中的像素的属性值(例如红色 分量)进行了解码,并且方法继续处理块中的剩余像素。在步骤SlOO中,针对要解码的块的像素确定预测误差。该预测误差是基于与像素 相关并包括在压缩块中的经编码的误差表示确定的。因此,步骤SlOO涉及利用经编码的误 差表示来计算像素预测误差。优选地,通过例如对预测误差的编码表示进行Golomb-Rice或Hoffman或 Tunstall解码来执行预测误差。在这种情况下,优选地,预测误差包括经一元编码的商、 余数和指数值k。商可以利用以上表1根据经一元编码的数据获得。此后,商和余数形成一 个值,该值与2k相乘形成预测误差。确定像素的红色(即第一)颜色分量的预测。预测确定涉及计算块中两个相邻像 素的红色分量间的差。这两个像素是块中不同预测方向的相邻像素,并且优选地位于块中 与要解码的当前像素位于同一行或列中的前一像素位置。优选地,该差是绝对差或平方差, 以提供与符号无关的差的幅度表示。在步骤SlOl中将该差与预定义阈值进行比较。如果 该差小于阈值,就根据步骤S102执行颜色分量预测,否则方法继续至步骤S103。步骤S102根据块中两个相邻像素的红色分量来计算分量预测,所述两个相邻像 素用于计算在步骤SlOl比较中所使用的差。优选地,分量预测是基于非零权重的第一加权 组合(优选地,如结合图4的步骤S21讨论的两个红色分量的平均)计算的。如果在步骤SlOl中确定差不小于阈值,步骤S103调查与经编码的像素相关且包 括在压缩像素块中的引导比特的值。如果引导比特具有第一比特值(如Obin),方法继续至 步骤S104。然而,相反,如果引导比特具有第二比特值(如lbin),根据步骤S105执行预测 提供。步骤S104涉及计算颜色分量预测,颜色分量预测基于(优选地等于)块中两个相邻 像素的红色分量的第二加权组合。步骤S105相应地涉及计算块中相邻像素的红色分量的 第三加权组合,作为像素的分量预测。这意味着,在这种情况下,块中包括的针对当前像素 的引导比特决定了针对像素要使用两个可能候选预测中的哪一个。上述步骤S104和S105
23的操作与图4的步骤S23和S24相似。最后,步骤S106基于在步骤SlOO中确定的预测误差和在步骤S102、S104或S105 中提供的分量预测,计算像素的红色分量的量化表示。优选地,通过向分量预测加上所确定 的预测误差从而得到部分解码的像素的红色分量,来实现该计算。优选地,在提供了红色分量后,对剩余的绿色和蓝色分量进行解码。首先,确定要 解码的像素的第二预测误差。以同结合步骤SlOO讨论的第一(例如红色)预测误差类似 的方式,确定绿色分量的预测误差。换言之,基于压缩像素块中包括的编码表示来确定预测 误差。这意味着,优选地,编码表示包括经一元编码的商、余数和指数值k。因此,优选地,预 测误差确定涉及对编码表示进行Golomb-Rice、Hoffman或Tunstall解码。此后,针对像素确定绿色或第二颜色分量的预测。首先,在步骤SlOl中确定两 个先前相邻像素的红色分量之间的差,并利用该差确定是要根据步骤S102还是根据步骤 S104和S105之一来进行预测提供。如果在步骤SlOl中绝对或平方差小于阈值,步骤S102利用非零权重,根据第一相 邻像素的绿色和红色分量之间的第一差和第二相邻像素的绿色和红色分量之间的第二差 的第一加权组合,来计算预测。优选地,该计算确定两个差的平均,并且优选地,预测基于所 述平均并且优选地被设置为等于所述平均 如果在步骤SlOl中绝对或平方差超过阈值,方法继续至步骤S103,利用引导比特 选择针对当前像素要使用两个可能候选预测中的哪一个。如果引导比特具有第一值,方法 继续至步骤S104,其中,预测被选择为基于或等于相邻像素的绿色和红色分量之间的差的 第二加权组合。然而,如果引导比特具有第二值,取而代之,在步骤S105中选择两个相邻像 素的绿色和红色分量之间的差的第三加权组合。接着,方法继续至步骤S106,其中,基于在步骤SlOO中确定的预测误差和在步骤 S102、S104或S105中提供的分量预测,来确定像素的绿色分量的表示。优选地,该步骤S106 涉及将预测加到预测误差上,以得到像素的绿色和红色分量之间的差。接着,可以通过简单 地加上先前确定的红色分量,来确定绿色分量。为了对蓝色或第三分量进行解码,重复上述过程。然而,在这种情况下,不处理绿 色和红色分量之间的差而是处理蓝色和绿色分量之间或蓝色和红色分量之间的差。压缩器图15是根据实施例的压缩器100的示意框图。压缩器100包括无损压缩器110, 用于对块中像素的像素属性值进行无损压缩以得到块的候选压缩表示。提供了相连接的长度比较器120,用于将来自无损压缩器110的候选压缩块的比 特长度与目标比特长度进行比较。如果结果比特长度等于或小于目标比特长度,参数供应 器130优选地确定量化参数,指示对像素块进行了不采用任何有损量化的无损压缩。表示 供应器150将所产生的块的压缩表示确定为包括来自无损压缩器110的候选压缩块和来自参数供应器130的量化参数。然而,如果长度比较器120确定候选压缩块的比特长度超过了目标比特长度,值 量化器140被操作为基于来自参数供应器130的量化参数对块的像素属性值进行量化。该 值量化的输出是输入至无损压缩器110并由无损压缩器110进行处理的多个经量化的属性 值的集合。压缩器110确定新的候选压缩块,但使用经量化的值代替原始像素属性值。比 较器120将该新的候选压缩块的长度与目标比特长度进行比较。如果长度满足比特预算, 表示供应器150基于候选压缩块的比特序列和量化参数的标识符的比特序列来确定压缩 块表示。然而,如果比特长度仍超过目标比特长度,参数供应器130提供新的量化参数或先 前使用的参数。量化器140以量化参数对像素属性值进行量化,并进行新一遍的无损压缩。在优选实施例中,压缩器100允许确定具有最长可能比特长度但总长度仍不超过 比特预算的候选压缩块。这继而对应于采用获得尽可能接近于目标比特长度但不超过目 标比特长度所需的、对属性值的最小可能量化。图16是图15的无损压缩器110的特定实现的示意框图。在该实现中,压缩器110 包括预测确定器112,用于确定块中多个像素的至少一部分的像素属性值的相应预测。优选 地,预测确定器112计算预测,所述预测基于块中在相对于要编码的当前像素的一个或多 个预测方向上的一个或多个相邻像素的加权组合。误差计算器114利用来自预测确定器112的预测来计算像素的预测误差,优选地 作为原始或经量化的属性值及其所确定的预测之间的差。接着,利用相连接的熵编码器116 对预测误差进行编码。例如,该熵编码器116可以是Golomb-Rice编码器、Huffman编码器、 Timstall编码器或实际上本领域公知的任何其他熵编码器。无损压缩器110的单元112至116可以被提供为软件、硬件或其组合。单元112 至116可以一起实现在无损压缩器110中。可选地,分布式实现也是可行的,其中在压缩器 中其他位置提供某些单元。图17是示出了图16中的预测确定器112的实施例的示意框图。优选地,无损压 缩器被配置为选择要压缩的块的起始属性值。在实施例,该起始属性值是块中所选择的像 素的红色分量。优选地,该像素在块中具有预定义的像素位置,并且优选地是左上角像素。 压缩块表示包括起始属性值的表示。预测确定器112被配置为提供对与起始像素位于同一行和列(优选地第一行和 列)中的像素的预测。对于这些像素,在第一预测情况下,相应预测被选择为基于朝向与当 前像素位于同一行或列中的起始像素的方向、刚好前一位置的像素的红色分量,在第二预 测情况下,相应预测被选择为基于所述像素的绿色和红色分量之间的差,在第三预测情况 下,相应预测被选择为基于所述像素的蓝色和绿色分量或蓝色和红色分量之间的差。预测确定器112包括预测计算器111,用于计算与当前像素相邻但位于块中同一 像素列或像素行中先前位置的两个相邻像素的红色分量之间的差。至少部分基于该差,来 确定针对剩余像素选择的特定预测。如果值比较器117确定差的绝对值或平方差小于预定义阈值,预测计算器111基 于两个相邻像素的红色分量的第一加权组合,来计算像素的颜色分量预测。优选地,预测计 算器111确定这两个相邻红色分量的平均。接着,根据该平均(可以利用块中像素的其他 颜色分量),来计算预测,但优选地预测等于该平均。
然而,如果差不小于阈值,激活确定器112的预测选择器113。该预测选择器113 选择两个相邻像素的红色分量的第二加权组合和不同的第三加权组合之一,作为对该像素 的预测。优选地,预测选择器113还被配置为计算红色分量的相应的第二和第三加权组合。在优选实施例中,如果值比较器117确定差IR(H)j-Ri(H) |不小于阈值,预测选择 器113计算两个相邻像素和当前像素的红色分量的第二加权组合之间的第一差以及相邻 像素和当前像素的红色分量的第三加权组合之间的第二差。预测选择器113利用两个所计 算的差,选择当前像素的红色分量的预测。一般地,选择器113选择导致就幅度而言第一和 第二差中最小差的第二和第三加权组合中的那个加权组合。引导比特供应器115在功能上被配置为连接至预测选择器113。供应器115产生 表示所选预测方向和被预测选择器113选为当前颜色分量的预测的加权组合的引导比特。预测确定器112还确定针对绿色和蓝色分量的预测。然而,当压缩像素的绿或第 二颜色分量时,无损压缩器针对块中的每个像素,计算该像素的绿色和红色分量之间的相 应的差Gij-Rijtl在这种情况下,值比较器117针对给定像素调查其沿预定义预测方向的两个相邻 像素的红色分量之间的差是否超过阈值。如果该差小于阈值,预测计算器111基于第一相 邻像素的绿色和红色分量之间的第一差和第二相邻像素的绿色和红色分量之间的第二差 的第一加权组合(优选地利用与红色分量的第一加权组合相同的非零权重),计算像素的 第二预测。在优选实施例中,基于第一和第二差的平均来计算第二预测,并且更优选地,第 二预测等于第一和第二差的平均。相反,如果该差超过了阈值,预测选择器113选择第一和第二差(G^1)j-R(H)j.或 Giij-D-Ri(j-D)的第二和第三加权组合之一(优选地利用与红色分量的相应的第二和第三加 权组合相同的权重),作为当前像素的第二预测。优选地,预测选择器113利用先前确定的 分配给像素的引导比特,来选择要将两个加权组合中的哪一个用作第二预测。可选地,差计 算器可以重新计算差Rij-WC2和Rij-WC3,并基于此来选择第二预测。优选地,无损压缩器还计算块中像素的蓝色和绿色分量之间的差Bij-Gij或块中像 素的蓝色和红色分量之间的差。接着,按上述类似的方式处理上述差,以提供像素的蓝色分 量预测和经编码的第三预测误差表示。预测确定器112的单元111至117可以被提供为软件、硬件或其组合。单元111 至117可以一起实现在预测确定器112中。可选地,分布式实现也是可行的,其中在无损压 缩器中其他位置提供某些单元。图18是压缩器的值量化器140的实施例的示意框图。在该实施例中,量化器140 包括样式移位器,用于将像素属性值的比特样式逐比特地右移若干步,其中步数由量化参 数限定。比特移位后的值对应于属性值的量化版本。值量化器140的单元142可以被提供为软件、硬件或其组合。单元142可以实现 在值量化器140中或压缩器中的其他位置。图19是压缩器的值量化器140的另一实施例的示意框图。在该实施例中,量化器 140包括除法器144,用于将属性值除以量化参数或基于量化参数确定的值。接着,由值舍 入器146根据上取整、下取整或舍入函数对得到的商进行舍入,以得到经量化的像素属性值。
值量化器140的单元144和146可以被提供为软件、硬件或其组合。单元144和 146可以一起实现在值量化器140中。可选地,分布式实现也是可行的,其中在压缩器中其 他位置提供某些单元。图20是压缩器的值量化器140的实施例的示意框图。在该实施例中,量化器140 包括值标识器141,用于标识输入像素块中的最小像素属性值和最大像素属性值。值定义器 143将中间值定义为最小和最大值的线性组合。接着,将经量化的属性值定义为最小、中间 和最大值中与像素的原始属性值最接近的值。如前所述,将针对当前像素选择的该值的值 标识符提供并分配给像素。在该实施例中,量化参数包括前述最小和最大值的表示。候选 压缩块可以包括分配给像素且与最小、中间和最大值中任一个相关的值标识符的编码序 列。在优选实施例中,无损压缩器利用所分配的值索引作为输入来执行基于预测的压缩,从 而减少表示值索引和压缩像素块所需的比特数量。值量化器140的单元141和143可以被提供为软件、硬件或其组合。单元141和 143可以一起实现在值量化器140中。可选地,分布式实现也是可行的,其中在压缩器中其 他位置提供某些单元。在优选实施例中,图15的压缩器100包括差计算器160。该计算器160计算第一 候选压缩块的比特长度和目标比特长度之间的第一差。优选地,量化器140利用最小可能 量化对该第一候选块的属性值进行了量化,但仍导致第一候选块的长度不超过目标比特长度。计算器160还计算第二候选压缩块的比特长度和目标比特长度之间的第二差。优 选地,量化器140利用最大可能量化对该第二候选块的属性值进行了量化,使得第二块的 总长度超过目标比特长度。如果第一差超过第一阈值但第二差未超过第二阈值,压缩器100的像素标识器 170标识块中至少一个像素。优选地,标识器170标识块中具有由无损压缩器110确定的L 个最大预测误差的L个像素,其中,1<L<NXM且NXM表示块中的像素数。可选地,标识 器170标识块中具有候选压缩块的L个最长残余比特长度的L个像素。值修改器180被配置为修改所标识的L个像素的属性值,从而得到经量化、修改的 像素属性值。无损压缩器110再次对块进行压缩,但用经修改、量化的属性值代替所标识的 像素位置的先前经量化的属性值,从而得到第三候选压缩块。修改器180所执行的修改调 整特定像素的属性值,使得同值修改前的情形相比,来自熵编码器的、构成第三候选压缩块 的所产生的码变短,即比经压缩的第二候选的比特长度短。因此,此时,第三候选压缩块的 比特长度等于或短于目标比特长度。参数估计器190估计第一压缩块和具有至少一个经修改的量化后属性值的候选 压缩块的相应的质量参数。表示供应器150选择并使用导致最高图像质量的候选块(即由 原始像素块的质量参数确定的最佳表示),来确定当前像素块的压缩表示。压缩器100的单元110至190可以被提供为软件、硬件或其组合。单元110至190 可以一起实现在压缩器100中。可选地,分布式实现也是可行的。优选地,压缩器100实现 在计算机、移动电话、膝上型计算机、游戏控制台、或需要对图像和纹理进行压缩的其他终 端或单元的CPU中。解压器
图21是用于对压缩像素块进行解压的解压器200的实施例的框图。解压器200 包括第一序列标识器210,用于标识压缩像素块的第一比特序列。该第一比特序列对应于块 的可能经量化的像素属性值的编码表示。解码器230对所标识的第一比特序列进行处理,并对其进行解码,以提供块中至 少一个像素的可能经量化的像素属性值。解压器200还包括第二序列标识器220,用于标识压缩块的第二比特序列。该第二 比特序列允许标识结合块的压缩使用的量化参数。表示供应器240适于在量化参数指示对压缩块进行了未采用任何有损量化的无 损压缩的情况下工作。此时,供应器240基于来自解码器230的经解码的属性值,确定至少 一个像素的属性值的表示。然而,相反,如果量化参数指示在块压缩期间进行了有损量化,表示确定器250利 用所提供的量化参数对来自解码器230的属性值进行解量化。接着,将经解量化的值用作 像素的原始属性值的表示。即使在压缩期间未对块执行有损量化,使用 参数的解量化也 是可行的。解压器200的单元210至250可以被提供为软件、硬件或其组合。单元210至250 可以一起实现在解压器200中。可选地,分布式实现也是可行的。优选地,解压器200实现 在计算机、移动电话、膝上型计算机、游戏控制台、或需要对图像和纹理进行解压的其他终 端或单元的GPU中。图22是解压器的表示确定器250的实施例的示意框图。在该实施例中,确定器 250包括样式移位器252,所述样式移位器252被实现为将经解码的属性值的比特样式左移 s步,以得到经解量化的属性值。在这种情况下,移位数s对应于量化参数。表示确定器250的单元252可以被提供为软件、硬件或其组合。单元252可以实 现在表示确定器250中。可选地,分布式实现也是可行的,其中在解压器中其他位置提供所 述单元。图23是表示确定器250的另一实施例的示意。在该实施例中,确定器250包括乘 法器254,乘法器254被配置为将经解码的属性值与量化参数或基于量化参数计算的值相 乘,以得到经解量化的属性值。表示确定器250的单元254可以被提供为软件、硬件或其组合。单元254可以实 现在表示确定器250中。可选地,分布式实现也是可行的,其中在解压器中其他位置提供所 述单元。图24的示意框图中示意了表示确定器250的又一实施例。确定器250的值供应 器251基于量化参数的标识符来提供块的最小和最大属性值。值计算器253计算至少一个 中间值,作为最大和最小属性值的线性组合。在这种情况下,经解码且经量化的属性值是分 配给像素的值标识符,针对给定像素,该标识符允许表示标识器255标识最小、中间和最大 值中的值。接着,将所标识的值分配为像素的解量化后的属性值。表示确定器250的单元251至255可以被提供为软件、硬件或其组合。单元251 至255可以一起实现在表示确定器250中。可选地,分布式实现也是可行的,其中在解压器 中其他位置提供某些单元。图25是可由解压器使用的解码器230的实施例的示意框图。解码器230被实现用于提供块中起始像素的起始属性值,如红色分量。优选地,该分量被设置为等于压缩像素 块中包括的起始属性值。优选地,预测供应器234通过将预测设置为等于行或列中的先前像素的红色分 量、绿色和红色分量之间的差以及蓝色和绿色分量之间的差,来提供对于与起始像素位于 同一行和列中的像素的预测。解码器230包括误差确定器232,所述误差确定器232被配置为确定要解码的像素 的预测误差。该预测误差是基于分配给像素且包括在压缩像素块中的经编码的误差表示而 确定的。预测供应器234计算与当前像素位于同一块行和列中的两个相邻像素的先前解 码的红色分量之间的差。将该差(或优选地绝对值或平方差)与预定义阈值进行比较。如 果值比较器235确定该差小于阈值,预测计算器231被激活,并基于这两个相邻颜色分量的 第一非零加权组合来计算预测。如上所述,优选地,基于两个颜色分量的平均进行计算。然而,如果该差超过了阈值,预测选择器233选用相邻像素的先前解码的颜色分 量的第二和第三加权组合之一作为预测。此外,该选择是基于分配给像素且包括在压缩像 素块中的引导比特执行的。表示计算器234使用来自误差确定器232的预测误差和来自供应器234的预测, 来计算像素的红色分量。相应地,当对像素的绿色分量进行解码时,误差确定器232根据压缩像素块中包 含的数据,来确定像素的第二误差预测。如果两个相邻像素的红色分量间的差小于阈值,如 前所述,预测计算器231基于两个相邻像素的先前解码的绿色和红色分量之间的差的第一 加权组合,计算第二预测。在另一情况下(即差超过阈值),选择器233使用引导比特,选择 两个相邻像素的先前解码的绿色和红色分量之间的差的第二和第三加权组合之一,作为第 二预测。优选地,表示计算器236将来自确定器232的第二预测误差加至来自预测供应器 234的第二预测。此外,将像素的先前解码的红色分量加至上述和,以得到经解码的绿色分 量。解码器230通过确定第三预测误差并提供第三预测,针对蓝色分量重复该过程。将先 前解码的绿色分量加至上述第三误差和预测,以得到像素的经解码的蓝色分量。解码器230的单元231至236可以被提供为软件、硬件或其组合。单元231至236 可以一起实现在解码器230中。可选地,分布式实现也是可行的,其中在解压器中其他位置 提供某些单元。已对此处公开的算法进行了测试,并将其同现有技术HDR纹理处理方案进行了比 较。在该简单测试中,采用4比特量化参数利用逐比特移位进行量化/解量化。目标比特 长度被设置为252,从而导致对于4x4像素块的256比特的总比特率和每像素16比特的比 特率。无损压缩按此处结合图4所述的方式进行,解压按结合图14公开的方式进行。在测 试中使用单个图像“纪念堂”,并估计两种不同的质量度量,HDR-VDP 75% (高动态范围视 差预测器)(值越小越好)和多重曝光PSNR(值越大越好)。表3-质量参数比较 所属领域技术人员将理解,可以在不背离由所附权利要求限定的本发明的范围的 前提下对本发明进行各种修改和改变。参考文献[l]Munkberg,Clarberg,Hasselgren,and Akenine- Moller5 2006,High dynamic range texture compression for graphics hardware, ACM Transactions on Graphics, 25(3) 698-706[2] Roimela, Aarnio,and Itaranta9 2006,High dynamic range texture compression, ACM Transactions on Graphics,25(3) :707_712[3]Wang, Wang, Sloan, Wei, Tong and Guo,2007, Rendering from compressed high dynamic range textures on programmable graphics hardware, Symposium on Interactive 3D Graphics, Proceeding of the 2007 symposium on Interactive 3D graphics and games,pp.17-24[4]Weinberger,Seroussi, Sapiro, 1996, L0C0-I A low complexity context-based lossless image compression algorithm, In In Data Compression Conference,pp.140-149[5]Golomb,1996, Run-length encodings, IEEE Transactions on Information Theory,12(3) 399-401[6]Rice and Plaunt,1971, Adaptive variable-length coding for efficient compression of spacecraft television data,IEEE Transactions on Communications, 16(9) 889-897[7]Huffman,1952, A method for the construction of minimum-redundancy codes,Proceedings of the I. R. Ε. , pp. 1098-1102[8] Tunstal 1,1967,Synthesis of noiseless compression codes, Ph. D. dissertation,Georgia Inst. Techn.,Atlanta,GA, USA[9]Technical Introduction to OpenEXR,2006,pp.1-14, www. openexr. com/ TechnicalIntroduction, pdf
30
权利要求
一种压缩多个像素的块的方法,每个像素具有像素属性值,所述方法包括以下步骤a)对所述多个像素的所述像素属性值进行无损压缩,以得到候选压缩块;b)将所述候选压缩块的比特长度与目标比特长度进行比较;c)提供量化参数;d)如果所述比特长度超过所述目标比特长度,则基于所述量化参数对所述像素属性值进行量化,以得到经量化的像素属性值;e)如果所述比特长度超过所述目标比特长度,则利用所述经量化的像素属性值重复所述无损压缩步骤a)、和所述步骤b)至d),直到所述比特长度等于或短于所述目标比特长度;以及f)基于比特长度等于或短于所述目标比特长度的候选压缩块和所提供的量化参数的标识符,提供所述块的压缩表示。
2.根据权利要求1所述的方法,其中,所述无损压缩步骤a)包括步骤 确定所述多个像素的至少一部分的像素属性值的相应预测;基于所述相应预测,计算所述多个像素的所述至少一部分的相应预测误差;以及 对所述相应预测误差进行熵编码,以得到所述候选压缩块。
3.根据权利要求2所述的方法,其中,所述确定步骤包括通过以下步骤,针对所述多 个像素的所述至少一部分的每个像素,提供所述像素的像素属性值的预测如果所述块中第一相邻像素和所述块中第二相邻像素的像素属性值间的幅度差小于 阈值,基于所述相邻像素的所述像素属性值的采用非零权重的第一加权组合,计算所述预 测;如果所述幅度差不小于所述阈值,将所述预测选为基于所述相邻像素的所述像素属性 值的不同的第二加权组合和所述相邻像素的所述像素属性值的不同的第三加权组合之一; 以及如果所述幅度差不小于所述阈值,提供与所述第二加权组合和所述第三加权组合中所 选择的一个加权组合相关的引导比特。
4.根据权利要求1至3中任一项所述的方法,其中,所述量化步骤d)包括如果所述 比特长度超过所述目标比特长度,将所述像素属性值的比特样式右移s步,以得到所述经 量化的像素属性值,其中s表示所述量化参数。
5.根据权利要求1至3中任一项所述的方法,其中,所述量化步骤d)包括以下步骤 如果所述比特长度超过所述目标比特长度,将所述像素属性值除以所述量化参数;以及对所述像素属性值和所述量化参数间的商进行舍入。
6.根据权利要求1至3中任一项所述的方法,其中,所述量化步骤d)包括以下步骤 如果所述比特长度超过所述目标比特长度,标识所述多个像素的最小像素属性值和最大像素属性值;以及基于所述量化参数,定义所述经量化的像素属性值,作为所述最大像素属性值和所述 最小像素属性值的不同的线性组合。
7.根据权利要求1至6中任一项所述的方法,还包括以下步骤计算第一候选压缩块的比特长度和所述目标比特长度之间的第一差,所述第一候选压 缩块的所述比特长度等于或短于所述目标比特长度;计算第二候选压缩块的比特长度和所述目标比特长度之间的第二差,所述第二候选压 缩块的所述比特长度超过所述目标比特长度,并且所述第二候选压缩块具有比所述第一候 选压缩块的量化等级低的量化等级;如果所述第一差超过第一阈值且所述第二差等于或小于第二阈值,标识所述多个像素 中的至少一个像素;修改所标识的所述至少一个像素的经量化的像素属性值;在所述属性值修改后对所述多个像素的所述经量化的像素属性值进行无损压缩,以得 到比特长度等于或小于所述目标比特长度的第三候选压缩块;估计所述第一候选压缩块和所述第三候选压缩块的相应的质量参数;以及 基于所估计的所述质量参数,将所述块(300)的所述压缩表示(400)选为所述第一候 选压缩块和所述第三候选压缩块之一。
8.根据权利要求7所述的方法,其中,所述标识步骤包括如果所述第一差超过所述第 一阈值且所述第二差等于或小于所述第二阈值,标识所述多个像素中具有L个最大预测误 差的L个像素,其中,1 < L < NXM且NXM表示块中的像素数。
9.根据权利要求7所述的方法,其中,所述标识步骤包括如果所述第一差超过所述第 一阈值且所述第二差等于或小于所述第二阈值,标识所述多个像素中具有所述第二候选压 缩块的L个最长残余比特长度的L个像素,其中,1 < L < NXM且NXM表示所述块中的像 素数。
10.一种对压缩像素块进行解压的方法,所述方法包括以下步骤标识与像素块中多个像素的像素属性值的编码表示相对应的所述压缩像素块的第一 比特序列;对所述第一比特序列进行解码,以得到至少一个像素的像素属性值的解码表示; 标识与量化参数的标识符相对应的所述压缩像素块的第二比特序列; 如果所述量化参数指示对所述压缩像素块进行了无损压缩,基于所述像素属性值的所 述解码表示,提供所述至少一个像素的像素属性值的表示;以及如果所述量化参数指示在对所述像素块进行压缩期间对所述压缩像素块进行了有损 量化,基于所述像素属性值的所述解码表示和所述量化参数,确定所述至少一个像素的所 述像素属性值的所述表示。
11.根据权利要求10所述的方法,其中,所述确定步骤包括将所述像素属性值的所述 解码表示的比特样式左移S步,以得到所述像素属性值的所述表示,其中S表示所述量化参 数。
12.根据权利要求10所述的方法,其中,所述确定步骤包括将所述像素属性值的所述 解码表示与所述量化参数相乘,以得到所述像素属性值的所述表示。
13.根据权利要求10所述的方法,其中,所述确定步骤包括以下步骤 基于所述标识符,提供所述像素块的最小像素属性值和最大像素属性值;作为所述最大像素属性值和所述最小像素属性值的不同的线性组合,计算多个像素属 性值;以及基于所述像素属性值的所述解码表示,在所述最小像素属性值、所述最大像素属性值 和所计算的所述多个像素属性值中标识所述像素属性值的所述表示。
14.根据权利要求10至13中任一项所述的方法,其中,所述解码步骤包括以下步骤 针对所述至少一个像素,基于与所述至少一个像素相关且包含在所述第一比特序列中的经编码的误差表示,确定预测误差;通过以下步骤,提供所述像素属性值的所述解码表示的预测 如果所述块中第一相邻像素和所述块中第二相邻像素的像素属性值之间的幅度差小 于阈值,基于所述相邻像素的所述像素属性值的采用非零权重的第一加权组合,计算所述 预测;以及如果所述幅度差不小于所述阈值,基于与所述至少一个像素相关且包含在所述第一比 特序列中的引导比特,将所述预测选为基于所述相邻像素的所述像素属性值的不同的第二 加权组合和所述相邻像素的所述像素属性值的不同的第三加权组合之一;以及 基于所述预测误差和所述预测,计算所述像素属性值的所述解码表示。
15.一种用于对多个像素的块进行压缩的压缩器,每个像素具有像素属性值,所述压缩 器包括无损压缩器,用于对所述多个像素的所述像素属性值进行无损压缩,以得到候选压缩块;长度比较器,用于将所述候选压缩块的比特长度与目标比特长度进行比较; 参数供应器,用于提供量化参数;值量化器,用于在所述长度比较器确定所述比特长度超过所述目标比特长度的情况 下,基于所述量化参数对所述像素属性值进行量化,以得到经量化的像素属性值,其中,所 述无损压缩器、所述长度比较器、所述参数供应器和所述值量化器被配置为顺序地分别对 经量化的像素属性值进行无损压缩、比较比特长度、提供量化参数和对像素属性值进行量 化,直到所述长度比较器确定所述比特长度等于或短于所述目标比特长度;以及表示供应器,用于基于比特长度等于或短于所述目标比特长度的候选压缩块和所提供 的量化参数的标识符,提供所述块的压缩表示。
16.根据权利要求15所述的压缩器,其中,所述无损压缩器包括预测确定器,用于确定所述多个像素的至少一部分的像素属性值的相应预测; 误差计算器,用于基于所述相应预测,计算所述多个像素的所述至少一部分的相应预 测误差;以及熵编码器,用于对所述相应预测误差进行熵编码,以得到所述候选压缩块。
17.根据权利要求16所述的压缩器,其中,所述预测确定器包括预测计算器,用于在所述块中第一相邻像素和所述块中第二相邻像素的像素属性值间 的幅度差小于阈值的情况下,基于所述相邻像素的所述像素属性值的采用非零权重的第一 加权组合,针对所述多个像素的所述至少一部分的每个像素,计算预测;预测选择器,用于在所述幅度差不小于所述阈值的情况下,将所述预测选为基于所述 相邻像素的所述像素属性值的不同的第二加权组合和所述相邻像素的所述像素属性值的 不同的第三加权组合之一;以及比特供应器,用于在所述幅度差不小于所述阈值的情况下,提供与所述第二加权组合和所述第三加权组合中所选择的一个加权组合相关的引导比特。
18.根据权利要求15至17中任一项所述的压缩器,其中,所述值量化器包括样式移 位器,用于在所述长度比较器确定所述比特长度超过所述目标比特长度的情况下,将所述 像素属性值的比特样式右移s步,以得到所述经量化的像素属性值,其中s表示所述量化参 数。
19.根据权利要求15至17中任一项所述的压缩器,其中,所述值量化器包括除法器,用于在所述长度比较器确定所述比特长度超过所述目标比特长度的情况下, 将所述像素属性值除以所述量化参数;以及值舍入器,用于对所述像素属性值和所述量化参数之间的商进行舍入。
20.根据权利要求15至17中任一项所述的压缩器,其中,所述值量化器包括值标识器,用于在所述长度比较器确定所述比特长度超过所述目标比特长度的情况下,标识所述多个像素的最小像素属性值和最大像素属性值;以及值定义器,用于基于所述量化参数,定义所述经量化的像素属性值,作为所述最大像素 属性值和所述最小像素属性值的不同的线性组合。
21.根据权利要求15至20中任一项所述的压缩器,还包括差计算器,用于i)计算第一候选压缩块的比特长度和所述目标比特长度间的第一差 和ii)计算第二候选压缩块的比特长度和所述目标比特长度间的第二差,所述第一候选压 缩块的所述比特长度等于或短于所述目标比特长度,所述第二候选压缩块的所述比特长度 超过所述目标比特长度,并且所述第二候选压缩块的量化等级低于所述第一候选压缩块的 量化等级;像素标识器,用于在所述第一差超过第一阈值且所述第二差等于或小于第二阈值的情 况下,标识所述多个像素中的至少一个像素;值修改器,修改由所述像素标识器标识的所述至少一个像素的经量化的像素属性值, 其中,所述无损压缩器被配置用于在所述属性值修改后对所述多个像素的所述经量化的像 素属性值进行无损压缩,以得到比特长度等于或小于所述目标比特长度的第三候选压缩 块;以及参数估计器,用于估计所述第一候选压缩块和所述第三候选压缩块的相应的质量参 数,其中,所述表示供应器被配置用于基于所估计的所述质量参数,将所述块的所述压缩表 示选为所述第一候选压缩块和所述第三候选压缩块之一。
22.一种用于对压缩像素块进行解压的解压器,所述解压器包括第一序列标识器,用于标识与像素块中多个像素的像素属性值的编码表示相对应的所 述压缩像素块的第一比特序列;解码器,用于对所述第一比特序列进行解码,以得到至少一个像素的像素属性值的解 码表示;第二序列标识器,用于标识与所述量化参数的标识符相对应的所述压缩像素块的第二 比特序列;表示供应器,适于在所述量化参数指示对所述压缩像素块进行了无损压缩的情况下工 作,并被配置为基于所述像素属性值的所述解码表示,提供所述至少一个像素的像素属性 值的表示;以及表示确定器,适于在所述量化参数指示在对所述像素块进行压缩期间对所述压缩像素 块进行了有损量化的情况下工作,并被配置为基于所述像素属性值的所述解码表示和所述 量化参数,确定所述至少一个像素的所述像素属性值的所述表示。
23.根据权利要求22所述的解压器,其中,所述表示确定器包括样式移位器,用于将 所述像素属性值的所述解码表示的比特样式左移s步,以得到所述像素属性值的所述表 示,其中s表示所述量化参数。
24.根据权利要求22所述的解压器,其中,所述表示确定器包括乘法器,用于将所述 像素属性值的所述解码表示与所述量化参数相乘,以得到所述像素属性值的所述表示。
25.根据权利要求22所述的解压器,其中,所述表示确定器包括值供应器,用于基于所述标识符,提供所述像素块的最小像素属性值和最大像素属性值;值计算器,用于作为所述最大像素属性值和所述最小像素属性值的不同的线性组合, 计算多个像素属性值;以及表示标识器,用于基于所述像素属性值的所述解码表示,在所述最小像素属性值、所述 最大像素属性值和所计算的所述多个像素属性值中标识所述像素属性值的所述表示。
26.根据权利要求22至25中任一项所述的解压器,其中,所述解码器包括误差确定器,用于针对所述至少一个像素,基于与所述至少一个像素相关且包含在所 述第一比特序列中的经编码的误差表示,确定预测误差;预测供应器,用于提供所述像素属性值的所述解码表示的预测,所述预测供应器包括预测计算器,用于在所述块中第一相邻像素和所述块中第二相邻像素的像素属性值之 间的幅度差小于阈值的情况下,基于所述相邻像素的所述像素属性值的采用非零权重的第 一加权组合,计算所述预测;以及预测选择器,用于在所述幅度差不小于所述阈值的情况下,基于与所述至少一个像素 相关且包含在所述第一比特序列中的引导比特,将所述预测选为基于所述相邻像素的所述 像素属性值的不同的第二加权组合和所述相邻像素的所述像素属性值的不同的第三加权 组合之一;以及表示计算器,用于基于所述预测误差和所述预测,计算所述像素属性值的所述解码表
全文摘要
将像素块(300)无损压缩为候选压缩块。如果候选块的比特长度超过阈值,对块(300)中像素(310-317)的属性值进行量化,并将经量化的值无损压缩为新的候选压缩块。重复该过程,直到找到具有良好图像质量且比特长度低于阈值的候选压缩块。块(300)的压缩表示(400)是基于所找到的候选压缩块(420)和所使用的量化参数的标识符(410)而确定的。
文档编号G06T9/00GK101919250SQ200880125162
公开日2010年12月15日 申请日期2008年9月17日 优先权日2008年1月21日
发明者托马斯·阿卡纳-穆勒, 玻尔·温纳斯滕, 雅各布·斯特罗姆 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1