CN101427285A - 图像处理 - Google Patents
图像处理 Download PDFInfo
- Publication number
- CN101427285A CN101427285A CNA2007800142157A CN200780014215A CN101427285A CN 101427285 A CN101427285 A CN 101427285A CN A2007800142157 A CNA2007800142157 A CN A2007800142157A CN 200780014215 A CN200780014215 A CN 200780014215A CN 101427285 A CN101427285 A CN 101427285A
- Authority
- CN
- China
- Prior art keywords
- code word
- component
- interval
- vector
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/98—Adaptive-dynamic-range coding [ADRC]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
包括多个图像元素(610)的图像块(600)被压缩成至少一个基码字(720;750)、间隔码字(710;740)和索引序列(730,760)。码字(710;720;730;740)和索引序列(730;760)的至少两个的各自的比特长度基于图像元素(610)的原始向量分量动态地加以定义,尽管所得到的压缩块(700)的总比特长度不变。该基码字(720;750)代表基值(10),间隔码字(710;740)代表间隔(20)。这个间隔(20)包括多个相对于基值(10)的分量值(50)。该索引序列(730;750)表示为每个图像元素(610)选自多个可用值(50)的分量值。
Description
技术领域
本发明总的涉及图像处理,并且具体地涉及编码和译码图像的方法和系统。
背景技术
三维图形的实时再现(real-time rendering)在移动终端上拥有许多具有吸引力的应用,包括游戏、人机界面、接发消息和移动商务。由于三维再现是一项计算量很大的任务,经常必须建构专用硬件来达到足够的性能。降低复杂性和这种硬件结构的带宽使用的创新方法,因此具有重要意义。
尤其是对移动电话来说,主要瓶颈是存储器带宽。减少存储器带宽使用的通常技术是纹理压缩。纹理化指的是“粘合”图像(这里称作纹理)到所再现的三角形上的过程。如果纹理被压缩到存储器中,然后在访问期间它们被解压缩,可以避免大量的带宽使用。
大多数纹理压缩方案专注于图像类型的数据,比如照片。然而,随着可编程着色器(shader)的出现,纹理已经开始用于许多其他类型的数据而不仅仅是传统的摄影图像。凹凸映射(bump mapping)因此成为一种普及的技术,其以廉价的方式向几何物体增加细节的想象。更具体地说,纹理,所谓的凹凸图(bump map)或法线图(normal map),用在每个像素上来干扰表面法线。生成法线图的通常方法是从高的多边形计数模型开始,并且使用一些几何简化算法创建低复杂度模型。在这两个模型之间的“差异”然后被“烘培”成法线图。对于实时再现,应用法线图到低复杂度模型,给予它更详细的外观。例如,该文件[1]示出了如何可能从非常高的三角形计数模型(15000个多边形)变到一个非常低的三角形计数模型(1000个多边形),通过使用法线图而具有保存的质量。
能够使用较低多边形计数模型,当然对于移动设备和终端是非常有吸引力的,因为它们比PC系统具有更低的计算性能。
然而,一个问题是可利用的纹理压缩方法使用记忆中的摄影图像来创建,当数据为其他东西比如法线图时则不能很好工作。例如,已使用S3TC(与DXTC相同)[2]来压缩法线图,但是,结果具有块假象,见文件[1]。
在今天的大多数情况下,凹凸映射是在每个再现图元例如三角形的局部切线空间(X,Y,Z)上执行。由于法线的长度是没有关系的,可以使用单位法线。因此,问题是要压缩三元组(X,Y,Z),其中X2+Y2+Z2=1。这个最简单的方案仅仅是处理X,Y,Z为RGB(红、绿、蓝)并且使用S3TC/DXT1压缩它,但这给出相当差的质量。
另一种方法是仅压缩X和Y,然后使用等式1计算Z:
通过集中在X和Y上,有可能获得较低的失真。为了进一步提高质量,可以使用DXT5。通常,DXT5是用于α纹理即RGBA纹理的S3TC版本,其中RGB被一起编码,并且α分量(A)被独立地编码。因此,一种方法是使用α信道来编码X和使用G信道来编码Y。R和B一直未使用,以便给予G最高质量。然而,这仍然没有给予足够的质量。
其实,对于光滑表面,事实证明,甚至未压缩的RGB888/XYZ888没有给予一些物体足够的质量。特别是对于光滑表面,需要8个以上的比特。因此,ATI科技开发了3Dc[1],这是一种压缩格式,通常将允许比XYZ888更高的质量。
正如在DXT5中,只压缩X和Y,计算Z。X和Y单独地被压缩。X值被分组为4×4像素的块。这些值可以从-127.000变化到127.000,(或者可替换地,从0到255),但它们往往丛聚在间隔中。3Dc利用了这一点,并且使用16比特指定此值:8比特用于该间隔的开始并且8比特用于该间隔的结束。
在这一间隔内,每次使用3比特来指定每个值。这意味着,在该间隔内八个重建级(reconstruction level)是可能的。重建级总是等间隔的(均匀隔开的),反映一种假设,即在该间隔内的分布往往接近均匀。
整体上,16比特用来指定该间隔,并且花费3×16=48比特用于指定各个像素的重建级。因此,4×4块的X-数据被压缩到64比特。同一编码对于Y是有效的并且因此总共使用128比特,或每像素使用8比特。
虽然3Dc比DXT1或DXT5产生更好的质量,这可能仍然是不够的。该间隔使用8比特指定,并且最小的可能间隔是当间隔的开始和结束之间差仅仅为1时,比如,间隔[77,78]或[-3,-4]。在这种情况下,在中间有8个重建级,这意味着有另外3比特。因此,每分量理论上最大分辨率是8+3=11比特。对于缓慢变化的表面来说这可能还不够。
发明内容
因此,当压缩和解压缩法线图和其他类型图像形式的图像(其具有与图像元素相关的属性坐标)时总的需要提高质量。
本发明的总的目的是提供图像编码/压缩和图像译码/解压缩方法和系统。
这个和其他目的是由所附权利要求所限定的本发明来达到。
简而言之,本发明涉及以压缩(编码)图像和解压缩(译码)已压缩(已编码)图像的形式的图像处理。
根据本发明,将被压缩的图像被分解成包括多个图像元素(像素、纹理元素、纹元、或体积元素、体素)的若干图像块。图像块优选地包括16个图像元素并且具有大小为2m×2n的图像元素,其中m=4-n并且n=0,1,2,3,4或者具有大小为2m×2n×2p的图像元素,其中m,n,p=0,1,2,3,4,假定m,n,p并不都是零。块中的每个图像元素由特征向量来表征,特征向量具有两个或三个特征向量分量。然后压缩图像块。
在块压缩中,为每个向量分量和为基码字、间隔码字和索引序列中的至少两个动态地定义各个比特分辨率。这个比特分辨率或比特长度选择在块的基础上进行,这意味着第一图像块可以具有给定长度的它的第一基码字,而第二图像块具有另一比特长度的它的第一基码字。尽管这个可变比特长度编码,压缩块的总的各自大小是不变的并且相等。这意味着,例如,通过在间隔码字上花费更多的比特,对于关于同一向量分量的基码字可以使用更少的比特。
基于块中的图像元素的向量分量的至少一部分,将基码字确定作为基值的表示。相应地,间隔码字被确定作为间隔(其包括相对基值的多个分量值)的表示。这个间隔码字也基于块中的向量分量的至少一部分加以确定。该索引序列被确定以表示为块中的每个图像元素选自多个分量值的分量值。
由于每个图像元素优选与至少两个向量分量相关联,比如X和Y分量,第一(X)和第二(Y)基码字,第一(X)和第二(Y)间隔码字以及第一(X)和第二(Y)索引序列优选地生成并且共同形成已压缩的图像块。由于本发明的可变比特长度编码,第一和第二基码字的比特长度对于给定块不一定相同,并且可以在不同的图像块之间进一步不同。这同样适用于第一和第二间隔码字。
在本发明的解压缩中,基码字和间隔码字之一在压缩的块中基于构成已压缩块的比特序列的至少一部分的比特模式进行识别。此识别优选通过比特序列的选定部分解析直到达到某一比特模式来进行。该解析部分然后优选形成或构成基码字或间隔码字的基础。基码字和间隔码字中的另一个然后可以基于另一码字序列来识别。
一旦码字已经被识别,则基值基于基码字而被确定,间隔长度基于间隔码字而被确定。可用于当前块的多个分量值从基值和间隔长度中计算出来,该基值定义了间隔的位置,该间隔长度定义了间隔大小。索引序列然后用于为将被译码的每个图像元素识别这些多个分量值的哪些图像元素将用作那个图像元素的原始(X或Y)向量分量的表示。
附图说明
可以通过参考下列连同附图一起所做的说明,最佳地理解本发明连同其其他的目的和优点,其中:
图1是示例了根据本发明实施例的图像压缩方法和图像块压缩方法的流程图;
图2示例了根据本发明的图像块的实施例;
图3A至3C示例了根据本发明的图形块的压缩表示的不同实施例;
图4是更具体地示例了定义图1的比特分辨率的步骤的实施例的流程图;
图5是示例了在X和Y平面中向量分量的分布的图;
图6是更具体地示例了确定图1的间隔码字的步骤的实施例的流程图;
图7是更具体地示例了确定图1的索引序列的步骤的实施例的流程图;
图8是更具体地示例了确定图1的索引序列的步骤的另一实施例的流程图;
图9是示例了根据本发明实施例的图像解压缩方法和图像块解压缩方法的流程图;
图10是更具体地示例了识别图9的码字的步骤的实施例的流程图;
图11是更具体地示例了确定图9的分量值的步骤的实施例的流程图;
图12A至12C是示例了第一向量分量的分量值的计算的图;
图12D是示例了第一和第二向量分量的分量值的计算的图;
图13示意性示例了根据本发明的具有图像压缩器和解压缩器的用户终端的例子;
图14是示意性示例了根据本发明的图像压缩器的实施例的框图;
图15是示意性示例了根据本发明的块压缩器的实施例的框图;
图16是更具体地示意性示例了图15的分辨率定义器的实施例的框图;
图17是更具体地示意性示例了图15的索引量化器的实施例的框图;
图18是示意性示例了根据本发明的图像解压缩器的实施例的框图;
图19是示意性示例了根据本发明的块解压缩器的实施例的框图;
图20是更具体地示意性示例了图19的码字识别器的实施例的框图;以及
图21是更具体地示意性示例了图19的分量值生成器的实施例的框图。
具体实施方式
在整个附图中,同样的参考标记将被用于相应的或类似的元件。
本发明涉及图像和图形处理,并且具体涉及编码或压缩图像和图像块以及译码或解压缩已编码的(已压缩的)图像和图像块。
总的来说,根据本发明,在图像压缩期间,图像被分解或划分成若干图像块或图像片。每个这样的图像块然后包括多个图像元素(其具有一定的图像元素相关的属性或特征)。图像块被压缩以生成图像的压缩表示。
当已编码的图像或图形图元随后将被再现时,例如显示在屏幕上,压缩的图像块的相关图像元素被识别和解压缩。这些解压缩的图像元素然后用来生成原始图像或图形图元的解压缩表示。
本发明很好地适合于三维(3D)图形的使用,比如游戏、3D地图和场景、三维消息例如动画消息、屏幕保护程序、人机界面(MMI)等等,但并不局限于此。因此,该发明还可以用来压缩其他类型的图像或图形,例如一维(1D)、二维(2D)或3D图像。
本发明特别适合于处理凹凸或法线图或图像。在本技术领域众所周知的是,法线或表面法线表示3D向量,其垂直于表面(对于平面来说)或垂直于表面的切面(对于非平面来说)。
在3D图形处理中,通常创建几个三角形并且确定这些三角形的拐角的相应的屏幕坐标。图像(或图像的一部分),或所谓的纹理,被映射(“粘合”)到每个三角形上。当从存储器中取得纹理时,无论是利用存储器用于存储纹理还是在存储器访问期间的存储器带宽方面,管理纹理尽管对于图形系统来说很费成本。这是一个问题,尤其是对于细薄的客户比如移动单元和电话(具有有限的存储器容量和带宽)。结果,往往采用纹理或图像编码方案。在这样的方案下,纹理通常被分解或划分成包括多个纹元(texel)的若干图像块。图像块然后被压缩并且存储在存储器中。注意,图像块的压缩(版本)的大小小于图像块的未压缩版本的相应大小。
在本发明中,表述“图像元素”是指图像块或图像块的压缩表示中的元素。这个图像块反过来相当于部分图像或纹理。因此,根据本发明,图像元素可能是(1D,2D,3D)纹理的纹元(纹理元素),(1D或2D)图像的像素或3D图像的体素(体积元素)。一般来说,图像元素由特定的图像元素属性或特征来表征。在本发明中,每个图像元素具有特征向量,其代表与图像元素相关联的特征。这一特征可以控制或影响图像元素的外观。这样的特征向量的优选实施例是表面法线,更优选地是归一化的表面法线。这样的表面法线具有三个向量分量或坐标,即X-、Y-和Z-分量。然而,每图像元素只指定两个法线坐标比如X-和Y-坐标通常就足够,因为剩余的坐标可以由此计算,比如使用上面的等式1。
此外,下面,术语“图像”用于指任何1D、2D或3D图像或纹理,它们可以根据本发明被编码和译码,包括但不限于凹凸图、法线图、照片、游戏类型的纹理、文字、图画、高动态范围图像和纹理等等。
本发明提供了特别适合于压缩和解压缩图像和图像块的图像处理,其中每个图像元素具有二维特征向量。在本发明的优选实现中,这两个向量分量代表归一化表面法线的两个坐标,比如X-和Y-坐标(或X-和Z-坐标或Y-和Z-坐标)。下面,将结合包括X分量和Y分量的特征向量描述本发明。然而,这应当仅仅被看作是示例性例子,因为X、Y、Z分量中的两个的任何其他组合可以代替地被使用。如果采用非归一化的法线,则第三分量以类似于这里所描述的其他两个分量的方式简单地被添加和处理。
相比现有技术领域法线图压缩技术比如3Dc[1],本发明采取了根本不同的方法。本发明在固定速率压缩系统内部采用可变和动态比特长度编码。这意味着,用于表示图像块的码字的大小(比特分辨率或比特长度)分别是可变的,虽然压缩块表示的比特数量方面的总大小保持不变。这就允许在定位间隔(该间隔包括多个分量值)的精度上的动态适应,而且允许在那个间隔的分辨率上的动态适应。因此,本发明可以为这些图像块提供增加的定位精度(代价是间隔分辨率),其中这导致改善的图像质量,同时增加了其他图像块的间隔分辨率(代价是定位精度)。总之,最适当的定位精度和间隔分辨率因此可以为每个图像块被独立地确定,结果总体提高了所得到的解压缩图像的质量。
例如,在3Dc[1]中,当小间隔达到所述间隔的宽度时该小间隔具有非常顺序(course)的颗粒度。3Dc的最小可表示的间隔宽度是1,而下一最小间隔宽度为2。因此,当进行到下一较大间隔时,在大小上增加一倍。这应当相比于间隔宽度例如100并且将要进行到下一较大的间隔宽度101的情况。在这种情况下,大小仅增加1%,而不是100%。
在3Dc中小间隔的另一个问题是间隔的位置不能以极大的精度来指定。如果最小间隔被移动,则它必须移动整个步骤,例如从[3,4]到[4,5]。这个步骤大小大约比该间隔内的八个分量值之间的距离大8倍。另一方面,对于间隔宽度为100,比如[3,103],最小的转换,比如到[4,104]的转换,小于该间隔的八个分量值之间距离不止一个数量级。
本发明可以通过可变码字长度编码解决这一问题和其他类似问题。这允许例如使用其指定间隔宽度的颗粒度和使用其指定间隔转换并且该间隔转换可以被设置等于可能的向量值之间的距离的颗粒度。
压缩
图1示例了根据本发明的一个方面的压缩图像的(有损)方法。在第一步骤S1中,图像被分解或划分成若干图像块。每个这样的图像块包括多个即至少两个图像元素。在本发明的优选实施例中,图像块包括16个图像元素(像素、纹元或体素),并且具有大小为2m×2n的图像元素,其中m=4-n并且n=0,1,2,3,4。更优选地,m和n都是2。也可能利用大小为2m×2n或2m×2n×2p图像元素的图像块,其中m,n,p是零或正整数,条件是并非所有的m,n,p可以同时为零。图2示意性示例了根据本发明的图像块600的例子,该图像块具有16个图像元素610。这个图也示意性示例了与图像元素610相关联的不同特征向量615。返回图1,在步骤S1中整个图像块优选地被分解成(非重叠的)图像块。然而,在一些应用中,只有图像的一部分被压缩并且因此只有这一部分被分解成图像块。
下面的步骤S2和S5执行图像块的压缩。正如前面所指出的,图像块中的每个图像元素具有各自的特征向量,优选地为2D特征向量。这些特征向量的压缩可以通过独立地处理这两个特征向量分量类型来进行。换句话说,并行地或顺序地处理X分量和处理Y分量。下面,更具体地描述压缩所述向量分量之一,比如X分量。然后可以为其他向量分量比如Y分量或其他向量分量比如Y和Z分量执行同样的程序。尽管有可能执行X和Y的合并处理。这将进一步更具体地加以描述。
在步骤S2中,定义将被确定的压缩块表示的包括分量的各自比特分辨率。这些包括分量包括用于X分量的基码字(base codeword)、间隔码字和索引序列。步骤S2的这个比特分辨率定义基于块中的特征向量的X向量分量的至少一部分来执行,更加优选地基于所有的X向量分量来执行。因此,在基码字、间隔码字和索引序列中的至少两个的比特数量方面的各自大小可以是可变的并且在步骤S2中被定义。然而,尽管不同这样的码字和/或索引比特长度可以针对不同图像块加以定义,但是这些三个分量的总大小(比特长度)是固定的。因此,假设L(B)表示基码字的比特长度,L(W)表示间隔码字的相应比特长度并且L(I)表示索引序列的比特长度。在第一实施例中:
L(B)+L(W)+L(I)=k (2)
其中k是常数。在第二个实施例中:
L(B)+L(W)=m (3)
L(I)=n
其中m,n是常数。在优选实现中,k=64比特,m=16比特并且n=48比特。因为图像元素包括X和Y分量,这些等式2和3可改写为:
L(BX)+L(BY)+L(WX)+L(WY)+L(IX)+L(IY)=p (4)
其中下标X或Y表示索引序列的码字的特定向量分量,p是常数,优选地p=128比特。在另一个实施例中:
L(BX)+L(BY)+L(WX)+L(WY)=q
L(IX)=t1 (5)
L(IY)=t2
其中q,t1,t2是常数,t1优选地等于t2,优选地q=32比特,t1=t2=48比特。在优选实现中,L(BX)+L(WX)+L(IX)=L(BY)+L(WY)+L(IY)。
在下一步骤S3中,基于(X)向量分量的至少一部分,基码字被确定为基值的表示。步骤S3的这一确定优选地也基于为基码字定义的比特分辨率(L(B))来执行。可替换地,用于基码字的比特分辨率的定义和实际比特码字的确定可以总体地在单个程序中基于向量分量的至少一部分来执行。这个基值是这样的(X)值,其定义了由间隔码字所定义的间隔位置。在优选的实现中,基值表示间隔的中点。在其他实施例中,基值可以表示间隔的起点或终点。这一概念可以进一步扩展,这样使得该基值实际上可以是该间隔内的任何值或者实际上是允许值的范围比如[0,1]、[0,255]、[-1,1]、[-127,127]内或可用于定位间隔的其他一些间隔内的任何值。
步骤S4确定间隔码字作为包括相对基值的多个分量值的间隔的表示。这一码字的确定基于(X)向量分量的至少一部分来执行。在优选的实施例中,步骤S4的这一确定也至少部分地基于在步骤S2中为间隔码字所定义的比特分辨率(L(W))来执行。可替换地,用于间隔码字的比特分辨率的定义和间隔码字的实际确定可以总体地在单个程序中执行。这个间隔码字优选地为间隔长度的表示,用来与由基码字所表示的基值一起用于指定间隔的起点和终点(X)值。于是,这个间隔包括多个分量值比如8个分量值。
执行步骤S3和S4的顺序可以交换,即首先确定间隔码字(步骤S4),然后确定基码字(步骤S3)。此外,这两个步骤S3和S4可以可替换地并行执行。
在下一步骤S5中,确定索引序列。这种确定优选地至少部分地基于在步骤S2中为序列定义的比特分辨率来执行。可替换地,该索引序列确定和用于该索引序列的比特分辨率定义可以总体地在单个程序中执行。对于块中的每个图像元素来说,索引序列表示选自由间隔所包含的多个分量值的分量值。因此,在这个步骤S5中,为块中的图像元素选择(X)分量值和并且该(X)分量值被用作那个图像元素的“真实的”(X)向量分量的表示。
步骤S2至S5的结果是图像元素的第一(X)向量分量的压缩。为第二(Y)向量分量优选地按顺序执行或并行执行同样的程序。步骤S2至S5的编码结果于是为压缩的图像块或更确切地说图像块的压缩表示。这种压缩块表示700被示例在图3A至3C中。所述表示700包括第一(X)基码字720、第一(X)间隔码字710、(X)分量索引的第一序列730,第二(Y)基码字750、第二(Y)间隔码字740和(Y)分量索引的第二序列760。请注意,压缩图像块700的码字710、720、740和750以及索引序列730、760的相互顺序可以与图中所示例的顺序不同。
当比较图3A至3C的压缩表示时,本发明的动态且可变比特分辨率确定明显是显而易见。在图3A和3B中,X和Y索引序列730、760具有恒定比特长度。然而,基码字720、750和间隔码字710、740的比特分辨率可以独立地为不同图像块并且也为两个向量分量而定义。当比较图3B与图3A时,可以清楚地看到,图3B中的X间隔码字710的比特分辨率低于图3A中的比特分辨率,而X基码字720较大。Y码字740、750正好与此相反。
在图3C中,还可以选择X和Y索引序列730、740所花费的比特数量。当比较图3A与3C时,图3C的压缩块相比来说花费更多的比特在X索引序列730上。
然而,在图中两个压缩块表示700的总大小相等。这个大小优选地为128比特。在优选的实现中,为X码字710、720和X索引序列730所花费的比特数量优选地与Y码字740、750和Y索引序列760的比特总数相同,即64比特。
返回图1,步骤S2至S5优选地为在步骤S1的分解期间提供的所有图像块重复执行(由线L1示意性地示例)。请注意,由于本发明的动态比特分辨率选择,所得到的不同压缩块可以花费不同数量的比特在码字和/或索引序列上,尽管压缩块的总大小在比特方面是相同的。结果是压缩图像块的序列或文件。所得到的压缩图像块可以在文件中从左至右和自上而下以与它们在步骤S1的块分解中被打破的相同顺序排序。然后该方法结束。
压缩的图像可以被提供给存储器用于存储在其中直到随后图像的再现,例如显示。另外,压缩的图像可以作为压缩块表示的信号提供给发射机用于(无线或有线地)传输到另一单元。
图4是更具体地示例了图1的定义步骤的实施例的流程图。在这个实施例中,为基码字、间隔码字和索引序列的至少两个定义比特分辨率是基于图像块中的特征向量的(X或Y)向量分量的分布而执行的。因此,第一分量分布于是将引起基码字、间隔码字和可选地索引序列的第一各自比特长度,而第二分量分布可以给出码字和可选地索引序列的第二不同的各自比特长度。
该方法从图1的步骤S1继续进行。在下一步骤S10中,识别块中特征向量的最小(X或Y)向量分量。下一步骤S11,相应地识别块中的最大(X或Y)向量分量。这两个向量分量于是可以用作块中(X或Y)向量分量的分布的表示。因此,根据本发明,比较最小和最大向量分量可以用于定义码字和/或索引序列的比特分辨率。
在优选的实现中,用于间隔码字的比特分辨率首先基于块中的向量分量并且更优选地基于在步骤S10和S11中识别的最小和最大向量分量加以定义。这在步骤S12中示例出。在步骤S12中间隔码字分辨率的定义可以通过研究一组不同预定义的间隔长度或不同预定义的间隔长度的查询表格来实施,其中每个这样的间隔长度与给定的间隔码字相关联。此外,在该组/表格中的至少一些间隔码字具有不同的各自的比特分辨率。在这种情况下,优选地计算在最大和最小分量值之差。在该组或表格中,选择最接近所计算的差的预定义的宽度长度。这反过来又给出间隔码字用于当前的图像块并且还用于那个码字的比特分辨率。这在下面进一步加以描述。在这个方法中,因此实施间隔码字和间隔码字分辨率的组合确定。
在可替换的方法中,最大和最小向量分量之差是函数的输入或用作组或表格查询程序中的输入用于确定间隔码字比特分辨率。在这种情况下,函数或表格可以为不同的差范围指定不同的码字分辨率。
在下一步骤S13中,用于基码字的比特分辨率从在步骤S12中为间隔码字确定的比特分辨率和从预定义的最大分辨率值来计算。这意味着,获得基码字分辨率作为最大值和所确定的间隔码字分辨率之差。在优选的实施例中,这个预定义的最大分辨率值是16。因此,这个实施例在间隔码字分辨率是高(低)的情况下提供了基码字的低(高)比特分辨率。该方法然后继续进行到图1的步骤S3。
图5是示例了坐标空间中的X-Y平面图。图像块的每个图像元素具有(带有X和Y坐标的)各自的特征向量615(表面法线)。在这个图中,假定每块有16个图像元素,例如图2所示的。因此,该图包括代表图像元素的X-和Y-坐标的16个标志点。此外,只有两个特征向量615已经被示出以使得图更清楚。这个图也表示块中的最小(Xmin,Ymin)和最大(Xmax,Ymax)向量分量。
图6是示例了图1中的间隔码字的确定的实施例的流程图。该方法从图1的步骤S3继续。在下一步骤S20中,识别图像块的最小的(X或Y)向量分量。这一步骤对应图4的步骤S10。下一步骤S21对应图4的步骤S11并且识别最大的(X或Y)向量分量。下一步骤S22确定间隔码字作为最大和最小向量分量之差的表示。
这一步骤S22优选地通过计算两个向量分量之差来执行,然后步骤S23从一组多个预定义的间隔码字或多个预定义的间隔码字的表格识别合适的间隔码字。此外,分量差可以是函数的输入,该函数在步骤S23中输出想要的间隔码字。该组/表格然后包含或该函数访问多个不同的间隔码字,其中至少一些码字具有不同的比特长度(分辨率)。下面表格I是用于间隔码字的这种查询表格的例子。
表格 I-间隔码字和码字分辨率
在这个示例性表格I中,该间隔所包含的分量值之间的距离等于最小距离,利用该最小距离可以移动该间隔。例如,如果最大和最小分量值之间的距离等于或接近128,则选择间隔长度为128。在8个分量值的情况下,多个分量值之间的距离于是为128/8=16。4比特可用于指定基值和间隔的位置,这意味着它可以以256/24=16的精度被指定。因此,分量值之间的距离等于最小距离,利用该最小距离可以移动该间隔。这对于表格I中的所有可能的间隔长度都是如此的。
表格I应该仅仅被看作是可以根据本发明使用的示例性表格。举例来说,如果想要较高精度的基值,则最小可表示的间隔可以是1/4而非1/16,释放可用于增加基码字的比特分辨率的2比特。
另一种可能性是使用所释放的比特来增加间隔中的颗粒度。通常情况下,8个等距离分量值可用在确定的间隔中,通常为间隔的起点值和终点值的线性组合。如果基值表示间隔的中点(M),则8个分量值可以计算为:
在等式6的括号中提供的该组可以互换并且所释放的(一个或多个)比特可以用于在应该使用的哪个特定组之间的信令。压缩块然后包括用于用信号通知哪个特定组将要使用的码字。用于那个码字的0bin比特值于是可以表示该组 而1bin表示 这意味间隔大小每两个步长而不是每一个步长地加倍。如果信令码字包括两个比特,则下列组而是可用于计算不同的重建级:
表格 II-不同重建组的使用
这意味着间隔长度将在四个步长中增加一倍。实际上,表格II将与表格I或另一个这样的表格一起使用,其中表格I指定了间隔长度和码字,表格II指定了如何从间隔长度和基值计算分量值。
这一技术还可以扩展来使用具有相同宽度的不同类型的组。在表格II中,所得到的分量值都将均匀分布在该间隔中。但是,在该间隔内的其他形式的分量值分布,比如高斯、拉普拉斯算子或双模态(biomodal),可以代替地被使用或优选地被用作对均匀分布的一种补充。
如果由基码字编码的基值相反表示间隔的起点或终点,则等式6将改写为如等式7(起点)或等式8(终点)中所给出的:
表格I中给出的间隔码字不是任意选择。相反,它们是所谓的无前缀码。这意味着,表格I中没有码字是表格I中的任何其他码字的前缀。使用这样的无前缀间隔码字简化了压缩块中的间隔码字和基码字的解压缩和识别,这在下面进一步进行说明。可用于表格I中的这样的无前缀码字的另一个例子,是如下面的表格III中所示例的所公开的码字的逐位(bitwise)版本。
表格 III-间隔码字和码字分辨率
现有的间隔长度不一定必须是因数2或1/2,从而导致了每个步长间隔长度的加倍。例如可能是在几个图像上运行测试用于在这些图像中提供最常见的间隔宽度的统计。这些最常见的间隔长度然后可以替代表格I和III中所列出的宽度。
在表格I和表格III中,间隔长度越小间隔码字的比特分辨率越低。这反过来又意味着,定位间隔的精度,即基码字的分辨率,对于较短的间隔来说是增加了。对于将被处理的大多数图像,这通常会引起良好的图像质量。然而,对于特定图像,可能相反。在这种情况下,这可能仅仅通过转换表格I和表格III的间隔长度值的位置得到解决,这样以来最短的间隔码字表示最大的间隔,反之亦然。在这种情况下,定位间隔的精度随着间隔长度增加。
正如上面所提到的,可以在不同图像上运行试验,以便估计在这些图像中不同间隔长度的发生频率。当将表格设计成表格I和表格III时可以使用统计。在这种情况下,最常见的间隔长度优选地被分配最短间隔的码字长度。这反过来又意味着更多的比特可以花费在正确定位那些最常见的间隔上。结果,图像处理的质量将得到改善。
在这种情况下,最常见的间隔宽度具有最小的相应间隔码字大小。表格IV示例了这一原则。请注意,在表格中,对于不太常见的间隔长度,间隔码字大小增加。此外,达到一定长度,码字长度不会进一步增加。这意味着对于几种不同的间隔宽度采用同样的码字长度。这样做的理由是,否则与最不常见的宽度相关联的间隔码字将很长,留下极少的比特给基码字。
表格 IV-间隔码字和码字分辨率
一旦间隔码字已被确定,则可用于基码字的比特数量可以如上所述地加以确定。基码字确定通常涉及识别块中的最小和最大向量分量。然后计算这些分量的平均值,得到间隔的中点。基码字基于这个平均值和用于码字的可用比特分辨率通常通过选择最接近平均值的N比特值而确定,其中N=L(B)。如果代替地基值是间隔的起点或终点,则基码字通过选择最接近块中的最小或最大分量值的第N比特值而确定。
图7是更具体地示例了图1的索引序列确定步骤的实施例的流程图。该方法从步骤S4继续。在下一步骤S30中,为块中的当前图像元素提供(X或Y)分量索引。这个分量索引与从多个分量值选择的分量值相关联,间隔码字所表示的间隔包含所述多个分量值。例如,分量索引与可根据等式6、7或8获得的分量值之一相关联。所选择的分量值优选地为等于或最接近图像元素的原始(X或Y)向量分量的值。步骤S30优选地为图像块中的所有图像元素重复执行,由线L2示意性地示例出。
在本发明的第一实施例中,X和Y索引序列对于所有图像块含有相同数量的比特。如果8个不同的分量值可用于每个图像元素,则这意味着X和Y分量索引包括三个比特。X和Y索引序列然后每个包含16×3比特,因为块中优选地有16个图像元素。
除了基码字和间隔码字之外还有索引序列,具有可变比特分辨率,如果每分量索引将需要不止3个比特,可能存在问题。压缩图像块的总大小应该是固定的,并且优选地是128比特。例如,在一种实现中,对于分量值具有12个不同电平而不是8个可能是有利的。如果图像元素被独立地进行处理,这就等于具有4比特的分量索引分辨率。如果总的压缩块大小限于128比特的话,这反过来会导致总共花费128比特用于表示X和Y索引序列,没有比特留给基码字和间隔码字。
本发明通过为一组多个图像元素使用复合(composite)分量索引解决这一问题。图8示例了这一程序。该方法从图1的步骤S4继续。在下一步骤S40中,选择最能表示图像元素的向量分量的多个可用分量值的分量值。如由线L3表示的,为块中全部(16个)图像元素执行这个步骤。
与图7的情况相反,可用分量值的数量可能不同于不同图像块,并且也将超过8个。如果在多个索引组中(比如3个)编码索引,则需要极少的比特。对于具有12个不同电平的例子,使用一组三个图像元素,我们有以下可能的组合:12×12×12=3×3×3×4×4×4=27×64<25×26=211。这意味着,对于该组只需要11比特,而不是需要12比特,正如所需要的,如果被单独编码的话。查询表格于是可以用于列出如表格V中的可能的分量值组合和相应的复合分量索引:
表格 V-复合分量索引
在表格V中,vi,i=0-11,表示分量值。
然后基于该组图像元素的所选分量值从查询表格中识别用于该组图像元素的复合索引。这个程序为块中的每组图像元素重复执行,由线L4所示意性表示的。所得到的复合索引,可能连同或几个奇数的“常规的”分量索引一起构成本发明的索引序列。
上面,已经描述了可以实施X和Y向量分量的组合处理。第一个这样的例子是让间隔码字Wx和Wy(见图3A至3C)表示X-Y-平面中的半径和角度。这两个基码字Bx、By如先前描述加以确定并且表示X-Y-平面中各自的X和Y基值。这两个值因此形成平面中的个点。半径于是可以被定位在相对这个点的平面中,例如通过开始或结束在这个点上。半径的方向由角度定义,该角度可能是相对X轴或Y轴的角度。给定(X,Y)点、半径和角度,就可能计算出X间隔和Y间隔,每个包含多个X或Y分量值。
在这个组合编码中,基码字和编码半径的间隔码字(Wx)的比特分辨率可以根据本发明动态地定义,而表示角度的间隔码字(Wy)可以具有固定的比特长度。
在可替换的方法中,这两个基码字表示如上所述的基值。第一间隔码字编码对角线,而第二间隔码字是X或Y间隔的表示。这个第二码字于是可以表示间隔[0,1]内的权重。在解压缩期间,这个权重乘以由第一间隔码字表示的对角线长度用于给出第一(X或Y)间隔长度。这个第一间隔的位置可以由两个基值(该两个基值例如,可以定义间隔的起点或终点)定义。第二(Y或X)间隔长度于是可以根据第一间隔长度和对角线使用Phytagoras定理 计算出,其中11、12表示第一和第二间隔长度并且d是对角线。
这两个基码字和编码对角线的间隔码字的比特分辨率于是可以根据本发明动态地定义,而编码权重的间隔码字可能是固定比特长度。压缩的图像块优选地还包括X/Y比特,其用来鉴别通过对角线乘以权重可获得的间隔是X间隔还是Y间隔。在这个实施例的优选实现中,比较图像块中的最大和最小X向量分量之差和最大以及最小Y向量分量之差。X/Y比特然后基于那个比较而定义。例如,如果原始X向量分量上的分布小于Y向量分量的相应分布,则X/Y比特被设置以便使得可从权重和对角线直接计算的第一间隔是X间隔,即具有最小分布的分量。较大的Y间隔然后可根据X间隔和对角线计算。
本发明的教导可与传统的3Dc块处理相结合。在这种情况下,3Dc可用于快速移动法线,而本发明用于缓慢移动法线。在传统3Dc中,压缩块包括两个X码字(Xf,X1)和两个Y码字(Yf,Y1),它们表示了X和Y间隔的X和Y起点与终点。下面,讨论仅限于X分量,而同样的讨论也适用于Y分量。在3Dc中,如果Xf<X1和Xf≥X1,图像块传统上都是顺从性的。然而,在多模式实施例中,如果Xf<X1,则该块使用3Dc(默认)模式编码。这意味着它以与3Dc块相同的方式处理。但是,如果Xf≥X1,则该块根据本发明(辅助模式)处理。
请注意,3Dc块总是可以在默认模式下压缩。如果Xf恰好大于X1,这两个码字比特序列可以互换,然后Xf<X1成立。如果Xf=X1,第二码字比特序列可以设定为X1=Xf+1,并且让所有的图像元素特征值根据第一码字比特序列量化。可替换地,第一比特序列可以设定为Xf=X1-1并且所有图像元素值被量化到第二码字比特序列。这意味着所有当前的3Dc法线图可以使用仅默认模式编码。辅助模式因此变得“空闲”,而无默认有效载荷比特的任何损失。
乍一看似乎有限制施加在可以用作Xf≥X1和/或Yf≥Y1的间隔码字和块码字的实际值上。然而,实际上自由地在3Dc中可能使用两个(X或Y)码字比特序列的总共16比特中的15比特,即无任何限制基码字值和间隔码字值。将使用的该技术在文件[3]和[4]中更详细地说明。该技术允许使用最大数量16比特,同时保持Xf≥X1和/或Yf≥Y1。基本上,下列操作用于获得可用于辅助模式的15比特:
int get_15bits_back(Xf,X1)
{
if MSB(X1==0)
return(X1<<8)ORXf;
else
return(NOT(X1)<<8)OR NOT(Xf);
}
请注意,除了3Dc之外可能拥有高达三个辅助模式,这取决于是Xf≥X1和Yf<Y1、Xf<X1和Yf≥Y1还是Xf≥X1和Yf≥Y1。在这两个第一辅助模式下,128比特的127比特可自由设定,而在第三种情况下126比特可以自由设定。
在本发明的这样的辅助模式下,基码字表示可以是间隔起点的基值。间隔码字表示包括多个分量值的间隔,类似于前面所描述的。表格VI列出了可以用于间隔码字的可能码,其码具有不同的比特长度,并且是所谓的无前缀码。
表格 VI-间隔码字和码字分辨率
在这个表格VI中,基值将具有整数和小数比特。因此,8比特用来表示该值的整数部分,而2至5(取决于实际的比特分辨率)比特表示小数部分。这意味着间隔可以以非常高的精度定位。
表格VII是具有用于码字的间隔码字和比特分辨率的表格的另一个例子。
表格 VII-间隔码字和码字分辨率
在表格VII中,基值表示的精度是间隔W的最小宽度的四倍。
表格VIII是具有用于码字的间隔码字和比特分辨率的表格的另一个例子。
表格 VIII-间隔码字和码字分辨率
在表格VIII中,四种不同的间隔宽度可用于基值的每个精度级别上。
表格IX是又一个例子。
表格 IX-间隔码字和码字分辨率
表格IX具有相比于间隔的最小宽度四倍的基值精度。
表格X是可以根据本发明使用的表格的另一个例子。
表格 X-间隔码字和码字分辨率
上面的全部表格VI至X包含表示相当短间隔长度的间隔码字。这意味着,如果较大的间隔长度将在图像质量方面给予更好的结果,则将选择默认的3Dc模式。这反过来又意味着,压缩块中的第一(X或Y)码字的8比特将小于第二(X或Y)码字的随后的8比特,这时其被解释为整数。但是,如果较小的间隔长度将给予更好的质量结果,则该块根据本发明压缩,比如通过采用任何上述所给出的表格。在这种情况下,第一个8比特将大于随后的8比特,这时其被解释为整数。
解压缩
图9示例了根据本发明解压缩压缩图像的方法的流程图。该压缩图像基本上包括图像块的几个压缩表示。这些块的表示优选地通过上面所讨论的图像压缩方法来生成。
本方法通常通过识别(一个或多个)压缩图像块来开始解压缩。有可能是压缩图像的所有图像块应当被解压缩以生成原始图像的解压缩表示。可替换地,只有一部分的原始图像将被访问。结果,只有一些选定的图像块必须被解压缩(或更确切地说,特定图像块的选定的一些图像元素必须被译码)。
类似于块压缩,本发明的解压缩可以为两个向量分量X和Y单独地并行或顺序地完成。这一方法将首先描述如下。然而,对应组合压缩也可能有组合解压缩。
一旦识别正确的(一个或多个)压缩图像块,基码字和间隔码字之一基于至少一部分的压缩表示的比特模式而被识别。基码字和间隔码字中的另一个然后基于基码字和间隔码字中所识别的一个而被确定。在优选实现中,间隔码字在步骤S50中基于压缩表示形式的所定义的比特模式首先被识别。这一实现使用了这样的知识,即间隔码字是无前缀码的形式。一旦在构成压缩块的比特序列中已识别间隔码字,则当前向量分量(X或Y)的相应基码字可以被识别。这一识别优选地通过分配所识别的间隔码字之后的一组比特为基码字来实施。这组中的比特总数加上间隔码字中的比特数量优选地等于预定最大值。因此,知道了这个预定义值并且在步骤S50中确定了间隔码字的比特数量,允许在步骤S51中确定有多少随后比特共同形成了基码字。
下一个步骤S52基于在步骤S51中所识别的基码字确定基值。如果这个基码字包括少于8比特比如5比特,则该码字被延长或扩展成8比特。这可以通过复制码字的最重要比特和将它们添加为最不重要比特来形成8比特来实现。如果基码字包括8比特,它可以直接用作基值。相应地,如果基码字包括超过8比特,则前8比特优选地表示整数值,其余比特为分数值,例如为8.3的形式。
下面步骤S53基于从步骤S52所确定的基值和间隔码字确定多个分量值。因此,基值指定间隔应当沿着(X或Y)轴位于哪里,例如通过指定间隔的起点、终点或中点。将使用的间隔长度是从间隔码字比如通过使用码字作为函数的输入、预定义的查询表格或组来获得。
在下一步骤S54中,用作图像元素的原始(X或Y)向量分量的表示形式的分量值根据索引序列来选择。在这一步骤S54中,与当前图像元素相关联的(X或Y)分量索引被用来从在步骤S53中计算的多个(X或Y)分量值中选择分量值。
步骤S54可以为图像块中的若干图像元素执行(由线L5示意性示例出的)。本发明预期在一些应用中只有单个图像元素是从特定图像块中译码,特定图像块的多个图像元素被译码和/或特定块的所有图像元素被译码。
步骤S50至S54的程序于是可以以类似的方式为其他向量分量而执行,或者两个分量可以并行处理,基本上通过执行S50至S54的每个步骤两次(一次为第一(X)向量分量,一次为第二(Y)向量分量)。
步骤S50至S54然后优选地为包括应该被译码的图像元素的所有图像块重复执行(由线L6示意性示例出)。这意味着,步骤S50至S54的循环可以执行一次,但对于不同的压缩图像块往往是执行几次和/或对于特定压缩图像块是执行几次。请注意,间隔码字、基码字和可选地索引序列的各自的比特分辨率(比特长度),可能在根据图9处理的不同压缩图像块之间有所不同。
在可选步骤S55中,原始图像或其一部分的解压缩表示基于译码图像元素和块而生成。请注意,在某些应用中,一些图像元素必须被译码以便再现单个像素的译码表示。例如,在三线性插值期间,八个图像元素被译码并且对于双线性插值对应的数量是四个图像元素,对于本技术领域的技术人员来说这是众所周知的。然后该方法结束。
图10是更具体地示例了图9的识别步骤的实施例的流程图。在这个实施例中,基码字和间隔码字的另一个优选是基码字,基于基码字和间隔码字中所识别的一个(优选是间隔码字)的所确定的比特长度而被识别。
该方法开始于步骤S60,其中所选部分的压缩表示被解析直到达到预定义的比特模式。步骤S60的这一解析优选地从比特序列的起始处开始,该比特序列构成第一向量分量的压缩块,并且为第二向量分量从比特序列的中间开始。解析持续直到达到预定义的比特模式。这一实施例尤其适合于无前缀码的使用。在这种情况下,一旦识别多个比特组合的预定义的比特值,比特序列的前面的解析部分,以及可选地预定义的比特长度的后面部分,构成基码字和间隔码字之一,优选地为间隔码字。例如,如果使用了如表格I中所表示的间隔码字,通过压缩块实施解析,直到达到第一个零或者直至已解析12个比特。这一解析部分然后构成间隔码字。在表格IV中,直至并且包括第一1bin,的解析部分构成间隔码字,除非第一1bin之前是5个0bin。在这种情况下,解析部分加上后面三个比特构成间隔码字。
下一个步骤S61定义间隔码字为压缩块的解析部分(并且可选地预定义固定长度的后面部分)。在所识别的间隔码字之后的一部分压缩块在步骤S62中被定义为基码字。间隔码字和基码字的比特长度是固定的,并且等于预定义的最大值。该方法然后继续到图9的步骤S52。
图11是更具体地示例了图9的分量值确定步骤的流程图。该方法从图9的步骤S52继续。下一步骤S70基于间隔码字确定(X或Y)间隔长度。这一确定可以通过直接从码字计算长度来执行。在另一种可选方法中,码字用作函数、查询表格等等的输入,以给予相应的间隔长度。多个分量值基于这个间隔长度和基值来计算。
在一个优选实现中,该方法继续进行到步骤S71,其中确定间隔的起点。如果基值表示间隔的起点的话,这一确定可以使用仅基值来完成。否则,该确定使用基值和间隔长度来实施。相应的步骤S72使用基值或基值和间隔长度确定间隔的终点。多个压缩值优选地在步骤S73中被计算为起点和终点的线性组合:
其中Xi表示X分量值,Xmin是间隔起点,Xmax是间隔终点,NX是X分量值的数量并且i=0,1,...NX-1,NX优选地为8。起点和终点可以根据等式10至12的任何一个计算,这取决于X基值是间隔的起点、中点还是终点:
Xmin=BX
(10)
Xmax=Bx+WX
Xmin=BX-0.5×WX
(11)
Xmax=Bx+0.5×WX
Xmin=BX-WX
(12)
Xmax=Bx
然后该方法继续到图9的步骤S54。
图12A至12C是示例了在由间隔码字所定义的间隔20内不同分量值50的概念的图。在图12A中,基值10表示间隔20的中点。间隔的起点30和终点40可以根据基值10和间隔长度20使用上面的等式11计算出来。八个分量值50根据终点30、40依靠上面的等式9来获得。尽管应该指出的是,分量值当然可以直接根据基值10和间隔长度20计算出来而无需首先计算出终点30、40,例如见等式6。
在图12B中,间隔长度20相对大于图12A中的间隔长度。此外,基值10在这里是间隔的起点30。终点40可从等式10获得。由于间隔20现在相对较大,分量值50之间的距离相比图12A也增加。图12C示例了具有小间隔长度20的图并且其中基值10表示间隔20的终点40。
组合译码两个向量分量可以根据本发明来完成。举例来说,两个间隔码字可以表示角度和半径。在这种情况下,压缩块优选地被解析用于寻找半径编码的间隔码字。这反过来又允许识别两个基码字。在这一实施例的优选实现中,X和Y基码字具有相同的比特分辨率。此外,角度编码的间隔码字具有固定长度。X间隔长度可以被确定为r×cos(θ)并且Y间隔长度是r×sin(θ),其中r是用第一间隔码字表示的半径并且θ是用第二码字表示的角度。如上所述,不同的X和Y分量值根据X和Y间隔长度以及X和Y基值计算出来。
图12D示例了另一组合解压缩,其中间隔码字之一表示对角线25,并且另一个表示权重,其与对角线25一起使用来计算间隔长度20。X/Y比特决定间隔长度20应当是X还是Y间隔。另一间隔根据对角线25和第一间隔20计算出来。基值10、15给出两个所计算的间隔20的位置。在图12D中,除了相应的X点30、40和值50之外,还示例了Y间隔的起点35和终点45和Y分量值55。
解压缩例子
这里,接着是使用如图3A至3C中所示例的比特序列布局的解压缩例子。
压缩图像块通过下列比特序列来表示:
1100110011110100 110 001...001
1111111101011001 101 110...010
表格I这里用于提供不同的间隔码字。从X向量分量开始,压缩块的前面的64比特从开始向着末端被解析,以便找到X间隔码字。在这种情况下,一旦到达第一个零,解析结束。这个零和前面的比特,即110bin,构成X间隔码字。在表格I中,码字对应间隔宽度1/4。
以下的16-L(WX)=13比特形成基码字。头8个比特是整数比特,而其余的5比特形成小数比特:
整数:01100111bin=103
分数:10100bin=1/2+1/8=0.625
X基值因此是103.625并且X间隔长度是0.25。
为Y分量实施同样的程序,其中最后的64比特首先从第64比特开始解析。在这种情况下,Y间隔码字是111111110bin,根据表格I,其对应间隔长度24=16。下面的16-L(WY)=7比特形成了Y基码字。在Y基值被计算之前,该码字首先被扩展成8比特:
1011001bin→10110011bin=179
Y基值因此是179并且Y间隔长度是16。
在这个示例性例子中,基值表示间隔的中点。上面等式6给出了可能的X和Y分量值:
值x=(103.5,103.536,103.571,103.607,103.643,103.679,103.714,103.75)
值y=(171,173.286,175.571,177.857,180.143,182.429,184.714,187)
第一个图像元素具有X分量索引110bin和Y分量索引101bin。这意味着,应当选择X分量值103.714和Y分量值182.429。如果使用了到间隔[-1,1]的重新映射,这些值变成:2×103.714/255-1=-0.187并且2×182.429/255-1=0.431。图像元素的Z-坐标表示然后使用等式1从这两个所重新映射的值计算出来: 因此,第一图像元素的最后法线为(X,Y,Z)=(-0.187,0.431,0.470)。
第二个图像元素具有X索引001bin,它对应X分量值103.536和与值184.714相关联的Y索引110bin。在重新映射之后,值是-0.188和0.449。Z坐标变为:0.487。用于第二图像元素的法线是(X,Y,Z)=(-0.188,0.449,0.487)。这个程序然后使用应当被译码的块中的余下的图像元素继续进行。
实现方面
根据本发明的图像(块)压缩和图像(块)解压缩方案可以在一般的数据处理系统中提供,例如在被配置用于处理和/或再现图像的用户终端或其他单元中。这种终端可以是计算机例如PC、游戏控制机或轻薄型客户机比如个人数字助理(PDA)、移动单元和电话。
用户终端
图13示例了用移动单元表示的用户终端100。然而,该发明并不限于移动单元,而是可以实现在其他终端和数据处理单元中,比如PC计算机和游戏控制机。仅直接包含在本发明中的移动单元100中的装置和元件在这个图中被示例出。
移动单元100包括(中央)处理器(CPU)200,用于在移动单元100内处理包括图像数据的数据。图形系统130提供在移动单元100中用于管理图像和图形数据。特别是,图形系统130适应于再现或显示在所连接的屏幕120或其他显示单元上的图像。移动单元100还包括储存器或存储器140用于在其中存储数据。在这个存储器140中,可以存储图像数据,特别是根据本发明的压缩图像数据。
根据本发明,图像压缩器210通常被提供在移动单元100中。这种压缩器210被配置用于压缩图像或纹理成为图像的压缩表示。正如上面所讨论的,这种压缩的表示包括多个压缩图像块的序列或文件。此图像压缩器210可以被提供作为运行在CPU 200上的软件,如图中所示。可替换地,或此外,压缩器210可以被设置在图形系统130中或移动单元100中的其他地方。
来自块压缩器210的图像的压缩表示可以通过(存储器)总线150被提供给存储器140,用于在其中存储直到随后的图像再现。可替换地,或此外,压缩图像数据可以被转发到输入和输出(I/O)单元110用于(无线或有线)传输到其他外部终端或单元。该I/O单元110可能例如表示用户终端的发射机和接收机链。I/O单元110也可以适用于从外部单元接收图像数据。这个图像数据可能是应该由图像压缩器210压缩的图像,或应当被解压缩的压缩图像数据。也可以在例如在图形系统130中提供的专用纹理存储器中存储压缩图像表示。此外,部分的压缩图像还可以或者可替换地(暂时)存储在纹理缓存存储器中,例如在图形系统130中。
根据本发明,图像解压缩器220通常被提供在移动单元100中用于解压缩已压缩图像,以便生成解压缩的图像表示。这个解压缩的表示可以对应于整个原始图像或其一部分。图像解压缩器220提供解压缩的图像数据给图形系统130,该系统通常进而又在它被再现或显示在屏幕120上之前处理数据。图像解压缩器220可以被设置在图形系统130中,如图中所示。可替换地,或此外,译码器200可以提供为在CPU 200上或移动单元100中的其他地方上运行的软件。
移动单元100可以配备有图像压缩器210和图像解压缩器220,如图所示。然而,对于一些终端100,它有可能只包含图像压缩器210。在这种情况下,压缩的图像数据可以传送到执行解压缩的另一个终端,并且可能的话,再现图像。相应地,终端100只能包含图像解压缩器220,即没有压缩器。这种终端100然后从另一实体接收包括压缩图像数据的信号并且解压缩它以生成解压缩的图像表示。因此,压缩的图像信号可以在终端之间使用无线电发射机和接收机无线地传送。可替换地,可以采用用于根据本发明在终端之间分布图像和压缩图像表示的其他技术,比如蓝牙使用红外端口的红外技术以及终端之间有线传输图像数据。另外,包括USB存储器的存储器卡或芯片,可以在终端之间连接和交换,可用于这个图像数据的终端间分布。
移动单元100的单元110、130、200、210和220可以作为软件、硬件或两者的组合而提供。
图像编码字器
图14示例了根据本发明的图像压缩器210的实施例的框图。压缩器210通常包括图像分解器215用于分解或划分输入图像成为若干图像块。分解器215优选地被配置用于分解图像成包括16个图像元素(像素、纹元或体素)的图像块,即具有一般大小为4×4的图像元素。这一分解器215可以适应用于分解不同的输入图像成为具有不同大小的图像块。在这种情况下,分解器215优选地接收输入信息,使得能够识别哪个图像块格式用于特定图像。
图像压缩器210的这一实施例包括块压缩器300。这一块压缩器300压缩从图像分解器接收的(一个或多个)图像块以生成压缩块(一个或多个)表示。块表示的总体大小小于未编码图像块的相应大小。该块压缩器300优选地被配置用于顺序地处理(编码)来自分解器215的每个图像块。
在可选实现中,压缩器210包括多个块压缩器300用于并行处理来自图像分解器215的多个图像块,这降低了总的图像编码时间。
图像压缩器210的单元215和300可以被提供作为软件、硬件或两者的组合。单元215和300可以共同实现在图像压缩器210中。可替换地,分布实现也可能使用在移动单元中的其他地方提供的一些单元。
块编码器
图15示例了根据本发明的块压缩器300的实施例的框图,比如图14中的图像压缩器的块压缩器。压缩器300包括分辨率定义器310,其被设置用于为(X或Y)基码字、(X或Y)间隔码字和(X或Y)索引序列中的至少两个定义各自的比特分辨率。定义器310接收将被压缩的图像块的原始X和Y向量分量并且基于至少一部分分量执行比特分辨率定义。基准量化器320被设置用于确定(X或Y)基码字为(X或Y)基值的表示。这一码字确定基于至少一部分的(X或Y)向量分量也优选地基于比特分辨率即由分辨率定义器320定义的比特方面的码字长度来执行。相应的间隔量化器330被设置在块编码器300中,用于确定(X或Y)间隔码字为(X或Y)间隔的表示,该间隔包含相对(X或Y)基值的多个(X或Y)分量值。量化器330基于至少一部分的(X或Y)向量分量并且优选地基于由定义器310分配给码字的比特分辨率来执行这一码字确定。压缩器300还包括索引量化器340。这一量化器340被设置用于确定(X或Y)索引序列,它表示为块中的每个图像元素选自由(X或Y)间隔所包含的(X或Y)值的(X或Y)分量值。该索引量化器340优选地识别最佳地表示块中的图像元素的(X或Y)向量分量的多个(X或Y)值的(X或Y)分量值。这一识别优选地依靠设置在编码器中的误差估计器350来实施。与所识别的分量值相关的(X或Y)分量索引然后由索引量化器340提供。误差估计器350被实施来为多个可用(X或Y)值的每个(X或Y)分量值估计误差估计,该误差估计表示具有那个(X或Y)分量值的图像元素的(X或Y)向量分量。因此,所提供的(X或Y)分量索引允许识别(X或Y)分量值,它能最佳地表示,即与最小误差相关联,那个图像元素的特征向量的原始(X或Y)向量分量。不同的(X或Y)分量索引共同形成了(X或Y)索引序列。
该块压缩器300优选地还包括分量识别器360,其被设置用于识别图像块中的最大(X或Y)向量分量和最小(X或Y)向量分量。这一信息可以由分辨率定义器310、基准量化器320和间隔量化器330所使用。例如,间隔量化器330可以被设置用于确定(X或Y)间隔码字为最大和最小(X或Y)向量分量之差的表示。量化器330优选地使用该差值作为函数、预定义组或者如图中所示的包括多个预定义的(X或Y)间隔码字的查询表格370的输入。因此,量化器330选择与最接近最大和最小(X和Y)分量值之差的间隔长度相关联的(X或Y)码字。表格370中的至少一些码字具有不同的比特长度以提供本发明的动态可变的比特分辨率。
该基准量化器320优选地确定(X或Y)基码字为由(X或Y)间隔码字所表示的间隔的起点、中点或终点。在起点的情况下,基准量化器320使用来自分量识别器360的最小(X或Y)值的信息,并且生成(X或Y)基码字为那个最小值的表示。相应地,如果(X或Y)值是终点,则基准量化器320使用最大(X或Y)值的信息。如果(X或Y)基值成为间隔的中点,则这两种(X或Y)值均由量化器320所使用。
该分辨率定义器310优选地基于(X或Y)向量分量的分布定义了各自的比特分辨率。这种分布基于来自识别器360的最大和最小(X或Y)分量而确定。定义器310可能例如基于最大和最小(X或Y)向量分量之差定义比特分辨率。
块压缩器300的单元310至360可以被提供作为软件、硬件或其组合。单元310至370可以在块压缩器300中一起实现。可替换地,分布实现也可能使用在图像压缩器中其他地方提供的一些单元。
图16是图15的分辨率定义器310的实施例的详细示意框图。这个定义器310被设置用于基于至少一部分的(X或Y)向量分量,优选地基于最大和最小的(X或Y)向量分量,定义(X或Y)间隔码字的比特分辨率。分辨率计算器312实施在定义器310中用于计算来自这个间隔码字分辨率和预定义的最大分辨率值的(X或Y)基码字的相应比特分辨率。
分辨率定义器310的单元312可以被提供作为软件、硬件或其组合。单元312可替换地可以在块压缩器的其他地方实现。
图17是图15的索引量化器330的实施例的详细示意框图。量化器330包括值选择器332,其被设置用于为块中的每个图像元素选择包括在(X或Y)间隔中的多个(X或Y)值的(X或Y)分量值。这一选定的(X或Y)值给出了可用值的最小误差。索引识别器334然后基于由选择器332选择的(X或Y)分量值为一组多个图像元素识别复合(X或Y)分量索引。这意味着,一个(X或Y)索引总起来说用于几个图像元素。识别器334优选地访问查询表格336,该查询表格包括多个这样的分量索引。识别器334因此从这个表格336中选择最合适的复合索引。所得到的(X或Y)索引序列将在此实施例中包括至少一个这样的复合索引和可选地也包括只为单个图像元素分配的至少一个传统(X或Y)分量索引。
索引量化器330的单元332和334可以被提供作为软件、硬件或其组合。单元332、334和336可替换地可以在块压缩器的其他地方实现。
图像译码器
图18示例了根据本发明的图像解压缩器220的实施例的框图。图像解压缩器220优选地包括块选择器222,其适合于例如从存储器中选择哪个(一个或多个)编码图像块应当被提供给块解压缩器400用于解压缩。该块选择器222优选地例如从报头或再现引擎接收与压缩图像数据相关联的输入信息。具有想要的(一个或多个)图像元素的压缩图像块的地址,然后基于输入信息被计算。这个所计算的地址优选地取决于图像内的图像元素(像素、纹元或像素)坐标。使用该地址,块选择器222识别来自存储器的压缩图像块。这个所识别的压缩图像块然后从存储器中取得并且提供给块解压缩器400。
该(随机)访问图像块的图像元素有利地使得能够有选择地解压缩仅需要的那些图像部分。此外,图像可以以数据所需要的任何次序解压缩。例如,在纹理映射中,可能需要仅一部分纹理并且这些部分将一般需以非顺序的次序。因此,通过适用于处理仅一部分或一段图像,本发明的图像解压缩可以具有优势。
所选的压缩图像块然后转发给块解压缩器400。除了图像块,解压缩器400优选地还接收指定块的哪些图像元素应当被译码的信息。这些信息可以指定整个图像块,即这里的所有图像元素应该被译码。然而,所接收的信息可以识别应该被译码的仅单个或几个图像元素。块解压缩400然后生成块中的(一个或多个)图像元素的解压缩表示。
可选的图像构成器(image composer)224可以提供在图像解压缩器220中。这一构成器接收来自块解压缩器400的译码图像元素并且构成它们来生成可以被再现或显示在屏幕上的像素。这个图像构成器224可替换地被提供在图形系统中。
可替换地,图像解压缩器220包括多个块解压缩器400。通过访问多个块解压缩器400,图像译码器220可以并行处理多个编码图像块。这些多个块解压缩器400允许并行处理,其提高处理性能和图像解压缩器220的效率。
图像解压缩器220的单元222、224和400可以被提供作为软件、硬件或其组合。单元222、224和400可以在图像解压缩器220中一起实现。可替换地,分布实现也可能使用在用户终端中的其他地方提供的一些其他单元。
块译码器
图19是根据本发明的块解压缩器400的实施例的图解。该块解压缩器400包括码字识别器410,其被设置用于基于至少一部分的压缩块的比特模式识别(X或Y)基码字和(X或Y)间隔码字之一。识别器410还基于第一个识别的(X或Y)码字识别(X或Y)基码字和间隔码字的另一个。在优选实现中,一旦识别器410已经识别(X或Y)基码字和间隔码字的第一个,它就确定那个码字的比特长度。给定这一长度和预定义的最大值,识别器410可以定位(X或Y)基码字和间隔码字的另一个作为压缩块中的后续部分。
基值生成器420使用所识别的(X或Y)基码字用于确定(X或Y)基值,如前所述。分量值生成器430使用所确定的(X或Y)基值和所识别的(X或Y)间隔码字作为生成多个(X或Y)分量值的输入。该块解压缩器400还包括值选择器440,它使用(X或Y)索引序列用于为至少一个图像元素从所生成的分量值选择(X或Y)分量值。在典型方法中,选择器440识别与当前图像元素相关的(X或Y)分量索引用于选择其中一个分量值。在复合索引的情况中,选择器440可以为多个图像元素同时总起来说选择(X或Y)分量值。这一选择优选地使用查询表格450进行,比如上面的表格V。
块解压缩400的单元410至440可以被提供作为软件、硬件或其组合。单元410至450可以在块解压缩器400中一起实现。可替换地,分布实现也可能使用在图像解压缩器中的其他地方提供的一些单元。
图20是图19的码字识别器410的实施例的详细示意框图。该码字识别器410包括比特解析器412,其被设置用于通过所选部分的压缩块解析直到达到预定义的比特模式。解析器通常从第一个(X)向量分量的压缩块的开始并且从第二(Y)分量的块的中间开始解析,见图3A至3C。这一比特模式可能是第一0bin或1bin或零或一的第一组合。此外,比特模式可能是具有最大长度的压缩块的一段。识别器410的码字定义器414被设置用于定义所解析的部分最大达到,并且优选地包括压缩块的预定义的比特模式,作为(X或Y)基码字和(X或Y)间隔码字之一,优选地是(X或Y)间隔码字。定义器414还定义压缩块的以下部分作为(X或Y)基码字和(X或Y)间隔码字的另一个,优选地是(X或Y)基码字。被识别为(X或Y)间隔码字的这部分和被识别为(X或Y)基码字的这部分的比特长度对于所有图像块是固定的并且等于预定义的最大值。
码字识别器410的单元412和414可以被提供作为软件、硬件或其组合。单元412和414可以可替换地在块解压缩器中的其他地方实现。
图21是图19的分量值生成器430的实施例的详细示意框图。值生成器430包括间隔生成器432,其被设置用于基于间隔码字确定(X或Y)间隔的长度。这一间隔长度可以直接从码字中计算出来。在替代方法中,生成器432采用了被设置在值生成器430中或提供在块译码器的其他地方(见图19的表格450)的函数或查询表格。值生成器430的值计算器434被设置用于基于来自间隔生成器432的(X或Y)间隔长度和来自基值生成器的(X或Y)基值来计算多个(X或Y)分量值。
在优选实现中,值生成器430还包括起点生成器436和终点生成器438。这些生成器436、438使用间隔长度和基值计算(X或Y)间隔的起点和终点。值计算器434可以使用两个端点的这一信息用于计算多个(X或Y)分量值,通常作为起点和终点的线性组合。
上面,本发明已经参照将具有法线(优选地归一化表面法线)的图像块处理为特征向量进行了描述。在另一可替换实现中,特征向量可能是颜色空间中的颜色向量,比如RGB(红、绿、蓝)空间。在这种情况下,压缩的图像块包括一个基码字,其表示颜色空间中的基色,例如RGB点。间隔码字于是可以表示与基色相关的颜色空间中的向量,即定义了间隔长度和方向。该基色和向量将共同定义颜色空间中的具有起点和终点的间隔。这个间隔包含多个颜色值,其优选地可作为两个间隔端点的线性组合而获得。压缩块还包括索引序列,每图像元素具有颜色索引,其中颜色索引每个都与多个颜色值之一相关联。根据本发明,间隔码字和基码字的比特分辨率可以被适配和改变,尽管压缩块的总的比特长度保持相同。例如,如果间隔长度很大,则间隔码字可以具有相对长的比特长度,留下极少的比特给基码字。然而,对于短的间隔长度,相应地花费更多的比特在基码字上,给间隔码字更少的比特。
本发明预期间隔码字可以包含两部分,例如角度表示部分和半径表示部分。在这种情况下,花费在角度表示部分上的比特数量可以是固定的,而半径表示部分的比特长度可以根据颜色空间中图像元素的原始颜色向量的分布进行调整。
本技术领域的技术人员将理解可以对本发明做出各种修改和变化而不背离由所附权利要求所限定的它的范围。
参考文献
[1]http://www.ati.com/products/radeonx800/3DcWhitePaper.pdfATITMRadeonTM X800 3DcTM White Paper
[2]US Patent 5,956,431
[3]Munkberg et al.,“High quality normal map compression”,GraphicsHardware September 2006
[4]PCT/SE2007/000053
Claims (34)
1.压缩多个图像元素的图像块的方法,其中多个图像元素具有代表与所述图像元素相关联的特征的各自特征向量,该方法包括步骤:
-基于所述特征向量的向量分量的至少一部分,定义基码字、间隔码字和索引序列的至少两个的各自的比特分辨率,其中所述各自的比特分辨率之和是固定的;
-基于所述向量分量的至少一部分,确定所述基码字作为基值的表示;
-基于所述向量分量的至少一部分,确定所述间隔码字作为包括相对于所述基值的多个分量值的间隔的表示;以及
-确定所述索引序列,所述索引序列表示为所述多个图像元素的每个图像元素选自所述多个分量值的分量值。
2.根据权利要求1所述的方法,其中所述定义步骤包括基于所述特征向量的所述向量分量的分布定义所述各自的比特分辨率。
3.根据权利要求1或2所述的方法,其中所述定义步骤包括步骤:
-识别所述特征向量的最大向量分量;
-识别所述特征向量的最小向量分量;以及
-基于所述最大向量分量和所述最小向量分量的比较定义所述各自的比特分辨率。
4.根据权利要求1至3的任一权利要求所述的方法,其中所述定义步骤包括步骤:
-基于所述向量分量的所述至少一部分,定义所述间隔码字的所述比特分辨率;以及
-计算所述基码字的所述比特分辨率作为预定义的最高分辨率值和为所述间隔码字定义的所述比特分辨率之差。
5.根据权利要求1至4的任一权利要求所述的方法,其中确定所述间隔码字的所述步骤包括基于所述向量分量的至少一部分和为所述间隔码字定义的比特分辨率来确定所述间隔码字作为所述间隔的表示。
6.根据权利要求1至5的任一权利要求所述的方法,其中确定所述间隔码字的所述步骤包括步骤:
-识别所述特征向量的最大向量分量;
-识别所述特征向量的最小向量分量;以及
-确定所述间隔码字作为所述最大向量分量和所述最小向量分量之差的表示。
7.根据权利要求6所述的方法,其中确定所述间隔码字的步骤包括基于所述最大向量分量和所述最小向量分量之差从一组多个预定义的间隔码字中识别所述间隔码字。
8.根据权利要求7所述的方法,其中所述多个预定义的间隔码字的每个具有预定义的比特分辨率,并且所述多个预定义的间隔码字的第一间隔码字的比特分辨率不同于所述多个预定义的间隔码字的第二间隔码字的比特分辨率。
9.根据权利要求1至8的任一权利要求所述的方法,其中确定所述基码字的所述步骤包括基于所述向量分量的至少一部分和为所述基码字定义的比特分辨率确定所述基码字作为所述基值的表示。
10.根据权利要求1至9的任一权利要求所述的方法,其中确定所述基码字的所述步骤包括基于所述向量分量的所述至少一部分和为所述基码字定义的所述比特分辨率,确定所述基码字作为所述间隔的起点、中点和终点的至少一个。
11.根据权利要求1至10的任一权利要求所述的方法,其中确定所述索引序列的所述步骤包括基于为所述索引序列定义的比特分辨率确定所述索引序列,所述索引序列表示为所述多个图像元素的每个图像元素选自所述多个分量值的分量值。
12.根据权利要求1至11的任一权利要求所述的方法,其中确定所述索引序列的所述步骤包括为所述多个图像元素的每个图像元素提供分量索引,该分量索引表示选自所述多个分量值的分量值。
13.根据权利要求1至11的任一权利要求所述的方法,其中确定所述索引序列的所述步骤包括步骤:
-为所述多个图像元素的每个图像元素选择最佳表示所述图像元素的向量分量的所述多个分量值的分量值;以及
-基于为一组图像元素所选的分量值,识别查询表格中的所述组多个图像元素的复合分量索引。
14.处理包括多个图像元素的图像块的压缩表示的方法,其中所述压缩表示包括基码字、间隔码字和索引序列,所述方法包括步骤:
-基于所述压缩表示的至少一部分的比特模式,识别所述压缩表示中的所述基码字和所述间隔码字之一;
-基于所述已识别的所述基码字和所述间隔码字之一,识别所述压缩表示中的所述基码字和所述间隔码字的另一个;
-基于所述基码字确定基值;
-基于所述基值和所述间隔码字确定多个分量值;以及
对于所述图像块中的至少一个图像元素:
-基于所述索引序列,从所述多个分量值中选择分量值。
15.根据权利要求14所述的方法,其中识别所述基码字和所述间隔码字的另一个的所述步骤包括:基于所述已识别的所述基码字和所述间隔码字之一的已确定的比特长度,识别所述压缩表示中的所述基码字和所述间隔码字的另一个。
16.根据权利要求14或15所述的方法,其中所述识别步骤总起来说包括步骤:
-通过所述压缩表示解析直到达到预定义的比特模式;
-基于所述压缩表示的所述解析部分,定义所述基码字和所述间隔码字的所述之一;并且
-定义所述压缩表示的以下部分作为所述基码字和所述间隔码字的所述另一个,其中所述间隔码字和所述基码字的比特长度是固定的。
17.根据权利要求14至16的任一权利要求所述的方法,其中确定所述多个分量值的所述步骤包括步骤:
-基于所述间隔码字确定间隔的长度;以及
-基于所述间隔长度和所述基值计算所述多个分量值。
18.根据权利要求17所述的方法,其中所述计算步骤包括步骤:
-基于所述间隔长度和所述基值,确定所述间隔的起点;
-基于所述间隔长度和所述基值,确定所述间隔的终点;
-基于所述起点和所述终点,计算所述多个分量值。
19.根据权利要求18所述的方法,其中所述计算步骤包括计算所述多个分量值作为所述起点和所述终点的线性组合。
20.一种块压缩器,用于压缩包括多个图像元素的图像块,所述图像元素具有表示与所述图像元素相关联的特征的各自的特征向量,所述块压缩器包括:
-分辨率定义器,其被设置用于基于所述特征向量的向量分量的至少一部分来定义基码字、间隔码字和索引序列的至少两个的各自的比特分辨率,其中所述各自的比特分辨率之和是固定的;
-基准量化器,其被设置用于基于所述向量分量的至少一部分来确定所述基码字作为基值的表示;
-间隔量化器,其被设置用于基于所述向量分量的至少一部分确定所述间隔码字作为间隔的表示,该间隔包括相对所述基值的多个分量值;
-索引量化器,其被设置用于确定所述索引序列,所述索引序列表示为所述多个图像元素的每个图像元素选自所述多个分量值的分量值。
21.根据权利要求20所述的块压缩器,其中所述分辨率定义器被设置用于基于所述特征向量的所述向量分量的分布来定义所述各自的比特分辨率。
22.根据权利要求20或21所述的块压缩器,进一步包括分量识别器,其被设置用于:i)识别所述特征向量的最大向量分量,以及ii)识别所述特征向量的最小向量分量,其中所述分辨率定义器被设置用于基于由所述分量识别器所识别的所述最大向量分量和所述最小向量分量的比较来定义所述各自的比特分辨率。
23.根据权利要求20至22的任一权利要求所述的块压缩器,其中所述分辨率定义器被设置用于基于所述向量分量的所述至少一部分来定义所述间隔码字的所述比特分辨率,所述分辨率定义器进一步包括分辨率计算器,其被设置用于计算所述基码字的所述比特分辨率作为预定义的最大分辨率值和由所述分辨率定义器为所述间隔码字所定义的所述比特分辨率之差。
24.根据权利要求20至23的任一权利要求所述的块压缩器,其中所述间隔量化器被设置用于,基于所述向量分量的至少一部分和由所述分辨率定义器为所述间隔码字定义的比特分辨率来确定所述间隔码字作为间隔的表示,该间隔包括相对所述基值的多个分量值。
25.根据权利要求20至24的任一权利要求所述的块压缩器,进一步包括分量识别器,其被设置用于i)识别所述特征向量的最大向量分量,以及ii)识别所述特征向量的最小向量分量,其中所述间隔量化器被设置用于确定所述间隔码字作为由所述分量识别器所识别的所述最大向量分量和所述最小向量分量之差的表示。
26.根据权利要求20至25的任一权利要求所述的块压缩器,其中所述基准量化器被设置用于基于所述向量分量的至少一部分和由所述分辨率定义器为所述基码字所定义的比特分辨率来确定所述基码字作为所述基值的表示。
27.根据权利要求20至26的任一权利要求所述的块压缩器,其中所述基准量化器被设置用于基于所述向量分量的所述至少一部分和为所述基码字定义的所述比特分辨率来确定所述基码字作为所述间隔的起点、中点和终点的至少一个。
28.根据权利要求20至27的任一权利要求所述的块压缩器,其中所述索引量化器被设置用于基于由所述分辨率定义器为所述索引序列定义的比特分辨率,来确定所述索引序列,所述索引序列表示为所述多个图像元素的每个图像元素选自所述多个分量值的分量值。
29.根据权利要求20至28的任一权利要求所述的块压缩器,其中所述索引量化器被设置用于为所述多个图像元素的每个图像元素提供分量索引,该分量索引表示选自所述多个分量值的分量值。
30.根据权利要求20至29的任一权利要求所述的块压缩器,其中所述索引量化器包括:
-值选择器,其被设置用于为所述多个图像元素的每个图像元素选择所述多个分量值的分量值,它最佳地表示所述图像元素的向量分量;以及
-索引识别器,其被设置用于基于由所述值选择器选择的所述组的所述图像元素的所述分量值来识别查询表格中的一组多个图像元素的复合分量索引。
31.一种块解压缩器,用于处理包括多个图像元素的图像块的压缩表示,所述压缩表示包括基码字、间隔码字和索引序列,所述块解压缩器包括:
-码字识别器,其被设置来i)基于所述压缩表示的至少一部分的比特模式,识别所述压缩表示中的所述基码字和所述间隔码字之一;ii)基于在所述压缩表示中由所述码字识别器所识别的所述基码字和所述间隔码字之一,识别所述压缩表示中的所述基码字和所述间隔码字的另一个;
-基值生成器,其被设置用于基于所述基码字确定基值;
-分量值生成器,其被设置用于基于由所述基值生成器所确定的所述基值和所述间隔码字来确定多个分量值;以及
-值选择器,其被设置用于为所述图像块中的至少一个图像元素并且基于所述索引序列,从所述多个分量值中选择分量值。
32.根据权利要求31所述的块解压缩器,其中所述码字识别器被设置用于基于由所述码字识别器在所述压缩表示中所识别的所述基码字和所述间隔码字的所述之一所确定的比特长度来识别所述压缩表示中的所述基码字和所述间隔码字的另一个。
33.根据权利要求31或32所述的块解压缩器,其中所述码字识别器包括:
-比特解析器,其被设置用于通过所述压缩表示解析直到达到预定义的比特模式;以及
-码字定义器,其被设置用于i)基于所述压缩表示的所述解析部分定义所述基码字和所述间隔码字的所述之一,以及ii)定义了所述压缩表示的随后部分作为所述基码字和所述间隔码字的所述另一个,其中所述间隔码字和所述基码字的比特长度是固定的。
34.根据权利要求31至33的任一权利要求所述的块解压缩器,其中所述分量值生成器包括:
-间隔生成器,其被设置用于基于所述间隔码字确定间隔长度;以及
-值计算器,其被设置用于基于由所述间隔生成器所确定的所述间隔长度和由所述基值生成器所确定的所述基值来计算所述多个分量值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US74519906P | 2006-04-20 | 2006-04-20 | |
US60/745,199 | 2006-04-20 | ||
PCT/SE2007/000291 WO2007123452A2 (en) | 2006-04-20 | 2007-03-23 | Image processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101427285A true CN101427285A (zh) | 2009-05-06 |
CN101427285B CN101427285B (zh) | 2012-05-30 |
Family
ID=38625438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800142157A Expired - Fee Related CN101427285B (zh) | 2006-04-20 | 2007-03-23 | 图像处理 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8260066B2 (zh) |
EP (1) | EP2008248A2 (zh) |
JP (1) | JP5085642B2 (zh) |
KR (1) | KR101464770B1 (zh) |
CN (1) | CN101427285B (zh) |
HK (1) | HK1132074A1 (zh) |
WO (1) | WO2007123452A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103738266A (zh) * | 2013-08-21 | 2014-04-23 | 深圳市辂元科技有限公司 | 移动终端与车机的互联方法及一种车机 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5306317B2 (ja) * | 2007-04-04 | 2013-10-02 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | ベクトルを使用する画像処理 |
CA2683841A1 (en) | 2007-04-04 | 2008-10-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Vector-based image processing |
US8787685B2 (en) | 2008-02-21 | 2014-07-22 | France Telecom | Encoding and decoding an image or image sequence divided into pixel blocks |
JP5228111B2 (ja) * | 2008-09-23 | 2013-07-03 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 画素ブロック処理 |
EP2390838B1 (en) * | 2009-01-23 | 2019-10-02 | Nec Corporation | Image identifier extracting apparatus |
KR101353104B1 (ko) * | 2009-04-14 | 2014-01-17 | 닛본 덴끼 가부시끼가이샤 | 이미지 시그니처 추출 장치 |
WO2010146786A1 (ja) * | 2009-06-16 | 2010-12-23 | 日本電気株式会社 | 画像識別子照合装置 |
CN103035018A (zh) * | 2012-12-11 | 2013-04-10 | 大连创达技术交易市场有限公司 | 一种简单快速的皮肤构造技术 |
US10244250B2 (en) * | 2015-05-29 | 2019-03-26 | Samsung Electronics Co., Ltd. | Variable-rate texture compression using fixed-rate codes |
US10296580B1 (en) | 2015-09-18 | 2019-05-21 | Amazon Technologies, Inc. | Delivering parsed content items |
US10127210B1 (en) | 2015-09-25 | 2018-11-13 | Amazon Technologies, Inc. | Content rendering |
US10241983B1 (en) * | 2015-09-28 | 2019-03-26 | Amazon Technologies, Inc. | Vector-based encoding for content rendering |
US10601894B1 (en) | 2015-09-28 | 2020-03-24 | Amazon Technologies, Inc. | Vector-based encoding for content rendering |
US10348797B1 (en) | 2015-12-15 | 2019-07-09 | Amazon Technologies, Inc. | Network browser configuration |
US10341345B1 (en) | 2015-12-15 | 2019-07-02 | Amazon Technologies, Inc. | Network browser configuration |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6256347B1 (en) * | 1996-12-17 | 2001-07-03 | Thomson Licensing S.A. | Pixel block compression apparatus in an image processing system |
US6459495B1 (en) | 1997-07-15 | 2002-10-01 | Silverbrook Research Pty Ltd | Dot center tracking in optical storage systems using ink dots |
US6658146B1 (en) * | 1997-10-02 | 2003-12-02 | S3 Graphics Co., Ltd. | Fixed-rate block-based image compression with inferred pixel values |
US6775417B2 (en) * | 1997-10-02 | 2004-08-10 | S3 Graphics Co., Ltd. | Fixed-rate block-based image compression with inferred pixel values |
US5956431A (en) * | 1997-10-02 | 1999-09-21 | S3 Incorporated | System and method for fixed-rate block-based image compression with inferred pixel values |
US6771264B1 (en) * | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
CN1462982A (zh) * | 2002-05-29 | 2003-12-24 | 明日工作室股份有限公司 | 智能动画生成方法以及系统 |
US7379608B2 (en) * | 2003-12-04 | 2008-05-27 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. | Arithmetic coding for transforming video and picture data units |
JP4805924B2 (ja) * | 2004-07-08 | 2011-11-02 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | マルチモード画像処理のための方法、システム、及びシステムを具備するユーザ端末 |
EP1977605B1 (en) | 2006-01-23 | 2020-04-15 | Telefonaktiebolaget LM Ericsson (publ) | Image processing |
-
2007
- 2007-03-23 US US12/226,478 patent/US8260066B2/en active Active
- 2007-03-23 CN CN2007800142157A patent/CN101427285B/zh not_active Expired - Fee Related
- 2007-03-23 EP EP07716088A patent/EP2008248A2/en not_active Ceased
- 2007-03-23 KR KR1020087028207A patent/KR101464770B1/ko active IP Right Grant
- 2007-03-23 WO PCT/SE2007/000291 patent/WO2007123452A2/en active Application Filing
- 2007-03-23 JP JP2009506440A patent/JP5085642B2/ja not_active Expired - Fee Related
-
2009
- 2009-10-23 HK HK09109858.3A patent/HK1132074A1/xx not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103738266A (zh) * | 2013-08-21 | 2014-04-23 | 深圳市辂元科技有限公司 | 移动终端与车机的互联方法及一种车机 |
Also Published As
Publication number | Publication date |
---|---|
JP5085642B2 (ja) | 2012-11-28 |
US20090202159A1 (en) | 2009-08-13 |
WO2007123452A3 (en) | 2007-12-27 |
HK1132074A1 (en) | 2010-02-12 |
EP2008248A2 (en) | 2008-12-31 |
US8260066B2 (en) | 2012-09-04 |
CN101427285B (zh) | 2012-05-30 |
WO2007123452A2 (en) | 2007-11-01 |
JP2009534914A (ja) | 2009-09-24 |
KR20090005197A (ko) | 2009-01-12 |
KR101464770B1 (ko) | 2014-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101427285B (zh) | 图像处理 | |
CN100504926C (zh) | 阿尔法图像处理 | |
EP1924970B1 (en) | Texture compression based on two hues with modified brightness | |
CN101233542B (zh) | 基于权重的图像处理 | |
EP2005393B1 (en) | High quality image processing | |
US8369629B2 (en) | Image processing using resolution numbers to determine additional component values | |
US7734105B2 (en) | Multi-mode image processing | |
US8571339B2 (en) | Vector-based image processing | |
US8437563B2 (en) | Vector-based image processing | |
US8837842B2 (en) | Multi-mode processing of texture blocks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1132074 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1132074 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120530 |
|
CF01 | Termination of patent right due to non-payment of annual fee |