用以最小化存储及总线带宽需求的有效图像压缩方案的制作方法

文档序号:7938708阅读:231来源:国知局

专利名称::用以最小化存储及总线带宽需求的有效图像压缩方案的制作方法
技术领域
:本发明涉及数字视频的领域,且更明确地说,涉及一种用以最小化存储及带宽需求的有效编码方案。
背景技术
:近年来归因于许多新数字无线通信协议的快速进步及采用而已存在无线电子革命。举例来说,码分多址(CDMA)及全球移动通信系统(GSM)已极大地增加数字蜂窝式电话的风行度,例如802.llb、802.llg、802.11a等Wi-Fi局域网(LAN)协议已使无线计算机网络发生巨大变化,且蓝牙已向许多不同数字装置提供非常有用的近程无线数字协议。无线协议的进步已产生能够下载、显示、存储及/或检索越来越多数据的便携式电子装置的领域。因此,现代移动装置通常采用多种多媒体应用程序及数据。现代便携式及/或移动装置使用单芯片上系统或芯片上系统(SoC或S0C)技术,其有利地将计算机或其它电子系统的许多组件集成到单一集成电路或IC芯片中。所述单一芯片经常含有数字、模拟、混合信号,且经常含有射频(RF)功能,且全部处于所述一个芯片上。嵌入式系统经常利用芯片上系统技术。然而,此类系统常规上具有有限能力,尤其是在存储及/或总线带宽的方面。同时,多媒体应用程序可能使用大量带宽及存储资源。举例来说,数字视频帧的传输及/或显示需要可支持大量位的存储器、缓冲器、信道及总线。常规上,以包含许多像素的帧来呈现图像数据。一般来说,较高分辨率的图像使用较大数目的像素。此外,通过使用一组系数描述像素的性质(例如,色彩或亮度或色度)来表示每一像素。对于彩色图像,常规上针对单一像素使用各自为八个位的三个系数。在红绿蓝系统(RGB)及其变型中,使用24个位来表示每一色彩,有时将其称为24位像素深度。增加广播的分辨率、显示大小或其它质量会进一步增加显示帧大小或其它需求。明确地说,现代装置及广播能够具有超出传统QVGA、VGA到XGA格式的多媒体信息。较高数据速率的宽带传输对任何系统置以更进一步的要求。举例来说,当LCD控制器必须支持以接近100Hz的刷新速率来读取帧缓冲器时,带宽情形变差。此外,由多媒体应用程序所使用的多媒体数据的存储及/或检索呈现类似问题。用以解决上文所描述的问题的先前尝试已使用如游程长度编码(RLE)及游程长度编码的变型等压縮技术。然而,这些先前尝试遭受多种缺点。
发明内容—种有效帧缓冲器压縮方案最小化对移动系统且尤其对采用芯片上系统的移动系统的存储、总线带宽及/或功率消耗需求。一些实施例使用尤其有效的无损图像压縮方5案,而一些实施例进一步采用额外有损编码级。无损压縮算法及任选的有损级两者均减小图像的总存储空间,且因此有利地减小对系统总线的读取及写入带宽负荷。无损或有损级均不显著地使图像及/或视频数据呈现降级。进一步以紧密空间节省格式或替代地以随机寻址及/或存取的格式(例如,基于瓦片或基于条带的格式)来选择性地将经编码图像数据打包到帧缓冲器中。因此,一种数据压縮方法接收图像且将图像瓦解为一组瓦片。每一瓦片包括一组像素。所述方法选择第一瓦片且确定第一瓦片中的像素的第一组值。所述方法将第一瓦片中的每一像素的所确定值分离为多个流。对于第一流,所述方法确定偏差值,且从流内的每一值减去偏差值,进而产生一组经减去值。通常,经减去值具有一个或一个以上前导零,且所述方法优选地移除所述前导零中的至少一些,进而减小表示第一流内的经减去值所需要的位的数目。因此,有利地用较少位表示第一流内的值中的一者或一者以上。在特定实施例中,所述方法确定流中的值的最小值,且偏差值为值流中的最小值。所述值流通常与瓦片中的像素有关。这些值通常包括像素的属性的系数。举例来说,所述值有时为红绿蓝(RGB)色彩系统的色彩值,或替代地为例如用于亮度、色度或其它经取样或縮放系统(YCrCb)的另一类型的值。—些实施例的方法包括多个级别的编码及/或压縮。更具体来说,这些实施例中的一些实施例对经减去值进行舍入及/或舍位,进而产生一组经舍入及/或经舍位值,且将经舍入值除以一因子。在特定实施例中,将值舍入为例如最近偶数等偶数,且接着除以2。优选地,通过使位移位而执行除法运算。一旦经编码,便通过使用多种手段将图像数据打包到帧缓冲器中。紧密地打包帧缓冲器会顺序地将图像瓦片数据放置到帧缓冲器中,这节约了存储空间及总线使用。或者,松散地打包瓦片数据会允许随机存取每一图像(像素)数据瓦片。作为另一替代方案,以松散地打包但随机存取及/或可寻址的格式而使图像数据条带化。第一流优选地包含用于指示第一瓦片的像素的第一色彩的一组系数。因此,对于第一流,一些实施例有利地确定偏差值是否包括足以重构第一色彩的系数信息。如果偏差值包括足以重构第一色彩的系数信息,则这些实施例通过使用偏差值而将第一色彩编码到包标头中,但放弃在包主体内对第一色彩的系数的编码。另外,选择编码类型以用于指示标头是否包括足以如实地重构第一瓦片的第一色彩的像素信息。因此,解码器获取包标头,进而接收编码类型,且通过使用编码类型来解码第一色彩。如果编码类型指示包标头包括足以重构第一色彩的信息,则所述方法有利地放弃从包主体获取第一色彩的信息的步骤。鉴于前述内容,特定实施方案的编码类型包括以下各项中的一者或一者以上针对未在包主体中对第一瓦片的色彩信息进行编码的条件的第一选择;针对在包主体中对一个色彩的信息进行编码的条件的第二选择;针对在包主体中对两个色彩的信息进行编码的条件的第三选择;及/或针对在包主体中对三个色彩的信息进行编码的条件的第四选择。在特定情况下,色彩信息包括(例如)亮度值及/或色度值。在额外实施例中,编码器包括具有存储器及统计块的第一级。存储器及统计块中的每一者接收一组输入数据。在一个实施方案中,输入数据包括(例如)对应于来自瓦片的流的一组像素系数。统计块经配置以例如从低到高对输入数据加以排序。编码器还包括第一减法器,其耦合到存储器的输出及统计块的输出。第一减法器用于对存储器的输出及统计块的输出执行算术运算。举例来说,在特定情况下,统计块输出最小值,且减法器从来自存储器的值流减去最小值。优选地,最小值或偏差值是如由统计块所执行的排序功能所确定的流内的最小值。编码器进一步包括耦合到减法器的第一逻辑单元。第一逻辑单元用于接收减法器的输出且输出具有选定格式的一组位。因此,编码器具有打包器,其耦合到逻辑单元以用于接收呈选定格式的所述组位。打包器使用选定组位以用于形成数据包。优选地,第一逻辑单元经配置以基于特定数据流来输出减小数目的位。举例来说,在一些实施方案中,第一逻辑单元包括通过使用控制信号来输出减小数目的位(例如,无前导零)的解码单元。这些实施方案中的控制信号优选地由统计块提供。额外实施例包括用于通过使用减小数目的位来编码数据的编码器以及用于传输、接收、显示、存储及/或检索的系统及解码器。在所附权利要求书中陈述本发明的新颖特征。然而,出于阐释的目的,在以下图式中陈述本发明的若干实施例。图1说明根据本发明的一些实施例的过程100。图2说明经瓦解图像。图3说明针对特定瓦片中的每一像素而划分为三个色彩分量的图2的经瓦解图像。图4说明在移除偏差之后每一像素的三个色彩分量。图5说明根据一些实施例的编码器。图6说明图4的数据流的包。图7说明多级编码器。图8说明用于图7的编码器的包。图9说明根据本发明的实施例的解码器。图10说明解码过程。图11说明紧密地打包于帧缓冲器中的瓦片。图12说明松散地打包于帧缓冲器中的瓦片。图13说明帧缓冲器中的条带。图14说明根据本发明的实施例的若干测试图像。图15说明一些实施例的替代编码系统。图16说明用于图15的编码的示范性包。图17说明用于图15的编码及/或图16的包的示范性标头。图18说明一些实施例的编码系统。图19说明用于图18的编码的示范性包。图20说明用于图18的编码及/或图19的包的示范性标头。图21说明一些实施例的解码系统。图22说明示范性经编码格式。具体实施例方式在以下描述中,出于阐释的目的而陈述众多细节及替代方案。然而,所属领域的一般技术人员将认识到,可在不使用这些特定细节的情况下实践本发明。在其它例子中,以框图形式来展示众所周知的结构及装置,以免用不必要的细节模糊本发明的描述。I.方法及编码器本发明的一些实施例包括最小化存储及总线带宽需求的有效无损图像压縮方案。这些实施例尤其适用于移动系统的一个或一个以上芯片上系统(S0C)。举例来说,特定实施方案包括简单无损压縮算法以减小图像的总存储空间。图像所需要的减小的存储空间具有额外益处,例如其减小对总线的读取及/或写入带宽负荷,这进一步有利地改进系统的整体性能。还描述利用算法的某些帧缓冲器实施方案。常规上,经处理且存储于存储器中的图像具有完全取样类型且占据完整的八个位来以色彩表示像素。然而,并非图像内的所有像素均需要全部八个位来如实地表示色彩。通常,存在具有具类似色彩或在较小系数值范围内的像素的图像部分。一些实施例利用在色彩上且因此在系数值上具有较小范围的图像区域。这些实施例优选地通过使用减小数目的位来重新量化色彩系数。此方案中有助于降低用以存储色彩的位的数目的一个重要属性是约束或限制从图像的一个区域到另一区域的像素值的任何大转变的瓦解过程。本发明的实施例进一步理想地针对已被低通滤波的图像及/或具有具类似色彩的许多区域的图像实现较高压縮比。另外,这些实施例适用于多种数据格式,例如YCbCr或RGB。图1说明涉及用于压縮图像的过程100的特定实施例。如此图所示,过程100在步骤110处开始,在步骤110处接收并瓦解图像。优选地,瓦解图像包含将图像像素划分为离散组。接着,过程100转变到步骤120,在步骤120处分离瓦片中的每一像素的色彩。优选地,将瓦片分离为三个色彩流,例如红色、绿色及蓝色。在特定实施例中,通过使用八个位来表示每一像素的色彩值,且将瓦片的色彩作为三个具有八位值的流(每一色彩一个流)来处理。因此,如果每一瓦片具有MXM的大小,则存在三个具有M'2数目的八位值的流。优选地,每一流(例如,对于红色、绿色及蓝色)经独立处理以进行压縮。—旦在步骤120处确定了瓦片的色彩及流,过程100便转变到步骤130,在步骤130处确定色彩流中的每一者的最小值(偏差)且将其从所述流中的每一者中减去。经减去值(即,来自所述相减的剩余值)的所得流通常含有小于原始流的值。接着,过程100转变到步骤140,在步骤140处从每一色彩流值移除前导零。有利地,通过移除前导零而用减小数目的位来表示所述流中的每一者中在相减之后的较小值范围,使得仍可用相减的剩余部分来表示最大值。在步骤140之后,过程100结束。举例来说,在瓦片包含四个像素乘四个像素的情况下,所述瓦片的单一色彩流含有十六个像素的色彩值。举例来说,如果红色流中的最大值仅为六,则通过移除前导零,仅需要三个位来表示此流中的每一值,因为对于此实例,所述流内的最大值在对应二进制代码中为"110"。II.图形实例图2说明在对示范性图像200的操作中上文所描述的方法及/或编码器。如此图所示,优选地将图像划分为瓦片,例如示范性第一瓦片201。如上文所提及,瓦解步骤通常减小流的像素值变化。此外,从图2可注意到,图像的区域不具有大像素值变化,使得并不需8要完整的八位像素深度的所有值来表示瓦片内的所有色彩。图3及图4以图形方式说明如何通过移除偏差及/或前导零而减小图像300中的冗余信息。如图3所示,将瓦片301的色彩分量划分为三个流,S卩,用于红色的流302、用于绿色的流304及用于蓝色的流306。以图表格式图解地说明每一色彩流的系数。如由图表的x轴进一步展示,四乘四瓦片具有十六个像素,而y轴包括对应于每一像素的量值的系数值。在图3中,原始图像数据通常为八位格式,因此系数值在约0到255的范围内。图4说明在确定每一流的偏差值且将其从流中减去之后每一流402、404及406的色彩分量。有利地,对于瓦片中的每一像素保持不同信息。因此,图4中更清楚地说明像素系数值之间的差异。此外,如此图所示,三个流(红色、绿色及蓝色)内的最大值不大于六,因此仅需要三个位而非全部八个位来完整地表示所述相减的表示像素值的剩余部分。如上文关于图1所描述,一旦从每一色彩分量的系数减去了偏差值,便有利地计算最小必要位宽度以如实地表示所述相减的剩余部分。此外,优选地移除或串联任何过量前导零,如下文关于图5到图8进一步描述。图5说明一些实施例的编码器500的框图。编码器500将经编码色彩信息及标头打包到瓦片中。标头描述如何解码瓦片。为了实现前述内容,编码器500包括存储器502及统计块504,其各自接收输入数据流。存储器502通常包含具有足以存储瓦片的流值的尺寸的随机存取存储器(RAM)类型,而统计块504用于(例如)从低到高对瓦片的值加以排序。存储器502向减法器506输出,所述减法器506还从统计块504接收偏差输入。通常,偏差包含由统计块504所确定的瓦片中的最低值。减法器506从来自存储器502的流值中减去偏差,且向解码器508输出。解码器508有利地输出表示减法器506的结果所需要的最小数目的位,且将所述位输出到打包器510。所说明的实施方案包括一到八解码器508,其基于从统计块504所接收的storage—size而输出所需要的最小数目的位。然而,一般技术人员认识到解码器508及系统500的其它组件的不同实施方案,包括总线宽度及位数目的变化。打包器510还接收tile—start—add:ress、偏差、sto:rage—size及tile—size(从统计块504),且输出特定瓦片的经压縮数据流。优选地,打包器510的输出呈一个或一个以上包的形式。这些实施例的包关于图6来进一步描述。图6说明用于图4的流的包600。如图6所示,包600包括用于tile—size的字段602、用于偏差的字段604、用于storage—size的字段606(所述三者形成包600的标头)及用于像素数据的字段608。在特定所说明的实例中,仅需要三个位来表示tile—size及storage—size中的每一者,而对于偏差需要八个位。将偏差及表示剩余部分所需要的位打包到标头中且与每一流(红色、绿色及蓝色)的剩余值串联。在此实例中,每一瓦片需要总共180个位以用于存储、检索及/或显示。这180个位包括用于标头的36个位及用于每一流的像素数据的48个位。180个位=[36个标头位+3个流*(3个位/像素*16个像素/瓦片)]更具体来说,此实例的标头针对三个参数(即,偏差、storage—size及tile—size)使用以下格式24个偏差位=(用于每一流的偏差值的8个位*3个流)9个storage_size位=(用于每一流的3个storage_size位*3个流)3个tile—size位,因为实例中的每一流使用相同tile_siZe,所以对于所有三个流仅需要一个字段。因此,用于此实例的三个流的总标头位为36个位=(24个偏差位+9个storage—size位+3个tile—size位)。在不压縮的情况下,需要总共384个位来存储相同图像数据。384个位=(16个像素/瓦片*24个位/像素)因此,压縮比为(180个位/384个位)46.6%。—般技术人员将认识到许多替代方案。举例来说,在特定实施例的实验期间,已确定4X4瓦片大小具有质量与性能(例如处理速度与压縮比)之间的尤为良好的平衡。因此,一些实施例将瓦片大小固定为4X4,且在标头的附加项中编码及/或传递tile—size参数。这些实施例接着在每个包标头中具有三个位的节省,且具有压縮比及速度的改进。III.有损级编码任选地对剩余值执行第二级别的编码以进一步增加压縮比。此第二级别的压縮通过对经减去值进行舍入且将所述值除以一因子而进一步减小色彩流中的每一值的位宽度。举例来说,在特定实施例中,将值舍入为最近偶数且/或除以2。因此,第二压縮为有损的,因为奇数值剩余值在从原始瓦片中的像素系数值减去偏差之后将在编码及解码(由编码器除以2且由解码器乘以2)的过程期间使一个量化级别或一个最低有效位(LSB)松散。然而,在此实施方案下,仅具有奇数系数的像素将经历较小程度的损失,且偶数系数将不具有任何损失。此外,如下文进一步论述,测试此实施方案的实验指示信息损失不会引起在视觉上引人注意的效应。然而,第二压縮级有利地导致高达12.5%的压縮比改进。而且,依据所要图像质量及/或所要压縮比而定,例如通过软件来选择性地启用或停用第二压縮。另外,除数因子优选地为2的任何倍数,例如4、8及16。较大因子导致较高有损级压縮,且具有对应质量损失。然而,减少的像素信息的较低分辨率有时是合乎需要的,例如在预览、低功率及/或待用模式中。位移位器便利地在数字逻辑中提供除法函数,以容易地实施可选的N位有损编码器,其中所述移位器针对1位有损编码器而移位一个最低有效位。图7说明包括第一级别(无损)及第二级别(有损)编码器700的实施例。如此图所示,编码器700包括存储器702、统计块704、减法器706、解码单元708及打包器710。这些组件优选地如上文关于图5所描述而耦合且操作。所述两级编码器700进一步包括额外级,其包括移位模块712、减法器714及两个多路复用器716与718。所述两个多路复用器接收lossy—enable信号,其仅选择第一(无损)级编码或选择第一(无损)及第二(有损)级两者以用于编码。移位模块712通常经配置以提供舍入及/或除以2或舍位运算。如一般技术人员认识到,便利地通过选择性地使位移位而提供除法。举例来说,向右移位一个位有利地导致对寄存器中的位进行除以2运算,而移位两个位除以4。移位模块712及多路复用器716耦合于减法器706与解码器708之间,使得多路复用器716接收减法器706的输出及移位模块712的输出,且依据lossy—enable信号而定,将一者或另一者的输出提供到解码器708。减法器714及多路复用器718耦合于统计块704与打包器710之间,使得多路复用器718选择统计块704的输出或减法器714的输出,且将选定输出提供到打包器710作为storage_size。减法器714选择性地在启用有损级时使storage_size递减1。图8说明用于图7的编码器的示范性包800。包800包括标头,其具有用于tile_size的字段802、用于偏差的字段804及用于storage—size的字段806,以及用于像素数据的字段808。如此图所示,在四个像素乘四个像素的tile_siZe的情况下,将tile—size有利地减小为仅两个位。另外,在无损及有损级两者的操作之后,每一流的storage—size仅为三个位。如上文所提及,在具有固定及/或预定瓦片大小的实施例中省略tile_siZe字段以在编码、传输、处理及/或存储中获得额外附加项节省。III.解码器图9说明根据一些实施例的解码器900。如此图所示,解码器900包括接收输入数据且向解包器904及标头解码模块906输出的数据获取器902。解包器904扩展任何丢失的前导零以针对所接收输入数据中的每一像素形成八位宽的格式,且将八位宽的数据输出到加法器908。加法器908从提取标头字段中所含有的信息的标头解码器906接收偏差。加法器908将偏差(以八位格式)相加到每一像素的所接收值,且将合计值输出到存储器910。如上文所描述,所接收数据经常包含用于像素瓦片的流,因此这些实施例的存储器910优选地具有如从标头解码模块906所接收或替代地如在系统900内所预定及/或固定的像素瓦片tile—size的尺寸。存储器910的输出是特定瓦片的特定流的经解码像素值。因此,解码器900的所说明实施方案执行上文所描述的编码器的相反步骤。图10说明概述图9的解码器的步骤的过程1000。过程1000在步骤1010处开始,在步骤1010处接收一组传入位。接着,过程1000转变到步骤1020,在步骤1020处剖析所述传入位以提取标头。一旦标头被提取,接着过程1000便转变到步骤1030,在步骤1030处使用标头中的位来确定关于系统的一组参数的信息,例如tile—size、偏差及/或每一经编码流所使用的位的数目。接下来,在步骤1040处,将像素位解包且相加到偏差以产生在所述组传入位中所传输的特定瓦片的特定流的经解码像素值。接着,过程1000结束。IV.帧缓冲器实施方案在这部分中呈现两个替代实施方案以利用上文所描述的编码器及/或压縮方案。这些实施方案包括紧密地打包的实施方案及松散地打包的实施方案。A.帧缓冲器中紧密地打包的瓦片第一实施方案要求将经压縮瓦片一起紧密地打包于一个长位流中。紧密打包的瓦片又紧密存储于帧缓冲器中。瓦片在帧缓冲器中紧密打包存储有效地使用存储资源,且另外,实现了总线的最有效使用。举例来说,在紧密打包的帧缓冲器的情况下,解码器中的数据获取器单元能够针对总线上的每个事务使用最大突发大小。此紧密打包的实施方案还有效地使用存储器,且对于无需随机地存取帧缓冲器中的瓦片的应用程序来说尤其有用。液晶显示器(LCD)控制器为将会使用紧密打包的帧缓冲器的一种此类处理块。图11说明帧缓冲器1100中紧密打包的瓦片。如此图所示,说明性地标记为瓦片1、瓦片2、瓦片3、……、瓦片N的紧密打包的瓦片具有边界1104,其不同于原始帧缓冲器边界1102。有利的是,经打包瓦片具有减小的存储需求。然而,具有紧密打包的帧缓冲器存在缺点。需要随机地存取瓦片的应用程序要求获取引擎从帧缓冲器的开始处进行搜索以在紧密打包的帧缓冲器内寻找所需瓦片。这导致显著延迟及总线的低效使用。因此,一些实施例以松散打包的格式来存储经压縮瓦片,使得可通过使用特定参数(例如,通过使用瓦片宽度、瓦片高度及/或y跨距)来计算个别瓦片的地址。B.帧缓冲器中松散打包的瓦片第二实施方案通过使用预分配格式而将经压縮瓦片放置于存储器中。举例来说,这些实施方案中的一些实施方案定位或寻址从存储器中的一点开始的在字节上与相邻瓦片或瓦片条带具有恒定偏移的每一瓦片。每一预分配地址处的瓦片被压縮且需要存储器中比预分配空间小的空间来存储。此实施方案的优势在于,通过使用特定属性(例如,y跨距、瓦片大小及/或条带大小)进行的地址计算来便利地确定帧缓冲器中瓦片或瓦片条带中的每一者的开始点。因此,应用程序能够以随机存取方式来存取帧缓冲器中的个别瓦片。图12说明具有帧边界1202的帧缓冲器1200中松散打包的瓦片。如此图所示,帧缓冲器1200包括经压縮瓦片1到N,其具有可变大小,但其位于固定大小的可寻址位置中。每一可寻址位置具有预定固定宽度tile—w及高度tileji。优选地,将每一可寻址位置中的未使用空间留为空白,使得每一位置为可随机地存取的。对于图12的说明,将y—stride参数定义为帧缓冲器的宽度,且预分配地址位置占据帧缓冲器的宽度或y—stride的固定倍数。图13说明替代地以条带化格式而将经压縮及/或经编码像素数据打包到帧缓冲器1300中。如此图所示,每一条带(条带1到条带N)的可寻址位置具有固定尺寸(高度及宽度)。对于图13的说明,将条带界定为帧缓冲器的tileJieightXframejidth,而y_stride为帧缓冲器1300的宽度。为了在基于瓦片边界的打包方案(例如,图12所说明)中存取瓦片,仅存取一个瓦片。然而,为了在基于条带边界的打包方案(例如,图13所说明)中存取瓦片,必须在对瓦片进行操作之前读取并解压縮整个条带。图13的条带化配置具有某些优势。举例来说,当y—stride或图像宽度为约1024个像素时,则单一条带优选地含有256个瓦片(对于四乘四个像素的tile—size)。在此配置中,(例如)SDRAM的页加载有利地加载全部256个瓦片,这是总线、存储器及页加载的较有效使用。在图像加载速度方面及在功率效率方面均具有效率,因为页存储器的每一次加载及/或刷新均需要功率及/或归因于等待时间的延迟。V.结果使用以MATLAB写入的代码及与由另一无损压縮方案(即,常规游程长度编码)所产生的结果相比的压縮比来压縮RGB888格式的若干不同图像。在模拟期间使用若干不同瓦片大小,且类似于上文所描述的实例的4X4瓦片大小产生良好结果。以下表1展示常规RLE24编码与本发明的实施例(包括上文所描述的级别l(无损)以及级别2(有损)编码方案)之间的比较。如表l所示,用以评估瓦片压縮方案的一些测试图像包括roost、mobile、qc、vplayer、friends、wanted、starcraft、diablo2、Adobetext、icons、hp、hpl及hp2。这些图像在视觉上呈现为图14中的经解包且经解码群组1400,其指示视觉质量的极小可察觉损失或无可察觉损失。12以下表1呈现通过使用常规RLE24编码与一些实施例的瓦片编码方法而获得的示范性结果。一般技术人员认识到替代实施例的压縮比的变化。举例来说,本发明的一些实施方案已展示甚至更大的压縮比。<table>tableseeoriginaldocumentpage13</column></row><table>进一步有利地向动画图像或视频应用级别1及级别2(有损)实施方案。表2呈现上文所描述的实施例向YCbCr420电影剪辑的应用。如表2所提到,测试电影剪辑在左列中列出,而每一剪辑的压縮比在右列中报告且在100个帧上加以平均。<table>tableseeoriginaldocumentpage13</column></row><table><table>tableseeoriginaldocumentpage14</column></row><table>用上文所描述的实施例的有损压縮方案编码(及解码)的表2的经解压縮电影剪辑通常可通过因特网或另一源得到。在表1及表2中,对于具有由于偏差的减去而具有奇数值剩余值的像素系数值的色彩来说,色彩的最大误差为一个最低有效位(LSB)或一个量化级别。对于在偏差的减去之后具有偶数值剩余值的像素的色彩来说不存在误差。此外,即使对于级别2(有损)压縮,在图像中也不存在引人注意的假影。因此,本发明的实施方案提供在质量上没有显著折衷的压縮。下文给出通过一些实施例而有利地实现的压縮比。压缩比_totoZ—Zn.fs—>r—compressed_/rawte+/leader—*ioo—些实施例通过还移除数据包的标头部分中的冗余信息而进一步改进上文所给出的压縮比,而一些实施例放弃包括例如任选tile_siZe参数等固定参数。此外,本发明的实施例在多级别增强型编码及/或压縮方面具有优于此项技术的特定优势。举例来说,如表中所呈现,YCrCb实例展示甚至比RGB实例大的压縮。这是因为YCrCb格式自身为经编码格式,且上文所描述的实施例允许优于现有经编码格式的显著的额外多级别编码改进。本文中进一步描述额外实施例。举例来说,图15说明一些实施例的替代编码系统1500。如此图所示,编码系统1500包括存储器1502及统计块1504,其各自接收输入数据流。在此实施方案中,所述数据包括24个位,或对于三个色彩(RGB、YCrCb及其类似者)中的每一者的八个位。存储器1502通常包含具有足以存储瓦片的流值的尺寸的随机存取存储器(RAM)类型,而统计块1504用于(例如)从低到高对瓦片的值加以排序。在特定实施方案中,存储器1502用于接收4X4瓦片。统计块1504有利地确定多种有用值。举例来说,统计块1504对传入的三色数据值加以排序,且优选地使用每一色彩的最小系数作为所述色彩的偏差值。通过使用24个位或对于每一色彩的八个位来输出偏差值。统计块1504进一步确定其通过使用九个位而输出到打包器的剩余部分的存储大小。统计块1504确定经压縮瓦片中的encode—type及总14字节数,且将这些输出到标头模块1520。标头模块1520还从统计块1504接收偏差值且产生图17所示的标头。存储器1502向减法器1506输出,所述减法器1506还从统计块1504接收偏差输入。通常,偏差包含由统计块1504所确定的瓦片中的最低值。减法器1506从来自存储器1502的流值减去偏差,且向打包器1510输出。打包器1510还接收tile—start—address、偏差、storage—size及tile—size(从统计块1504),且输出用于特定瓦片的经压縮数据流。所述输出优选地基于从统计块1504所接收的storage—size而包含所需要的最小数目的位。一般技术人员认识到打包器1510及系统1500的其它组件的不同实施方案,包括总线宽度及位数目的变化。优选地,打包器1510的输出呈一个或一个以上包的形式。这些实施例的包关于图16而进一步描述,而标头在图17中说明。图16说明用于图15的编码的示范性包1600。包1600包括优选地具有为九个位或对于每一色彩的三个位(例如,r_size、g—size及b—size)的前同步码的主体。如此图所示,有利地通过使用三位代码格式来编码每一色彩所需要的大小。更具体来说,用以编码每一色彩的位数目依据代码(例如,对于一个位为000,或对于八个位为111)而在一个位到八个位之间变化。主体进一步包括例如呈RGB交错格式的经压縮瓦片的数据。图17说明用于图15的编码及/或图16的包的示范性标头1700。如此图所示,标头1700包括encode—type、字节数目及三色偏差值。在此实施方案中,标头1700使用(例如)用于encode—type的四个位,加上用于字节数目的四个位,加上24个位或对于三个色彩中的每一者的偏差的八个位。然而,一般技术人员认识到用于不同实施方案的标头的替代方案。如图所示,字节数目字段以从八个字节(0001)到56个字节(0111)的8的倍数来表示大小。类似地,encode—type字段允许多个编码方案,如图所示。图18说明一些实施例的编码系统1800。更具体来说,图18说明包括第一级别(无损)及第二级别(有损)编码器1800的实施例。如此图所示,编码器1800包括存储器1802、统计块1804、减法器1806及打包器1810。这些组件优选地如上文关于图15所描述而耦合且操作。举例来说,存储器1802及统计块1804各自接收输入数据流。在一些实施方案中,数据包括24个位,或对于三个三色色彩(RGB、YCrCb及其类似者)中的每一者的八个位。存储器1802通常包含具有足以存储瓦片的流值的尺寸的随机存取存储器(RAM)类型,而统计块1804用于(例如)从低到高对瓦片的值加以排序。在特定实施方案中,存储器1802用于接收4X4瓦片。统计块1804有利地确定多种有用值。举例来说,统计块1804对传入的三色数据值加以排序,且优选地使用每一色彩的最小系数作为所述色彩的偏差值。统计块1804优选地通过使用24个位或对于每一色彩的八个位来输出偏差值。统计块1804进一步确定其通过使用九个位而输出到减法器1814及多路复用器1818(其在下文进一步描述)的剩余部分的存储大小。统计块1804确定经压縮瓦片中的encode—type及字节总数,且将这些输出到标头模块1820。标头模块1820还从统计块1804接收偏差值且产生图20所示的标头。存储器1802向减法器1806输出,所述减法器1806还从统计块1804接收偏差输入。通常,偏差包含由统计块1804所确定的瓦片中的最低值。减法器1806从来自存储器1802的流值减去偏差(经由统计块1804而接收),且向多路复用器1816及移位器1812输出。多路复用器1816基于有损压縮启用信号(loSSy_COmp_enable)来选择减法器1806的输出或移位器1812的输出且向打包器1810输出。打包器1810还接收Tile—start—address、Tile_size及storage_size(经由统计土央1804),且基于从统计土央1804所接收的storage—size来输出所需要的最小数目的位。然而,一般技术人员认识到打包器1810及系统1800的其它组件的不同实施方案,包括总线宽度及位数目的变化。如上文所描述,打包器1810输出用于特定瓦片的经压縮数据流。优选地,打包器1810的输出呈一个或一个以上包的形式。这些实施例的包关于图19而进一步描述,而标头由图20说明。因此,两级编码器1800进一步包括额外级,其包括移位模块1812、减法器1814及两个多路复用器1816与1818。所述两个多路复用器接收lossy—comp—enable信号,其仅选择第一(无损)级编码,或选择第一(无损)及第二(有损)级两者以用于编码。移位模块1812通常经配置以提供舍入及/或除以2或舍位运算。如一般技术人员认识到,便利地通过选择性地使位移位而提供除法。举例来说,向右移位一个位有利地导致对寄存器中的位进行除以2运算,而移位两个位除以4。移位模块1812及多路复用器1816耦合于减法器1806与打包器1810之间,使得多路复用器1816接收减法器1806的输出及移位模块1812的输出,且依据lOSSy_Comp_enable信号而定,将一者或另一者的输出提供到打包器1810。减法器1814及多路复用器1818耦合于统计块1804与打包器1810之间,使得多路复用器1818选择统计块1804的输出或减法器1814的输出,且将选定输出提供到打包器1810作为storage—size。如图进一步所说明,减法器1814选择性地在启用有损级时使storage—size递减1。一般技术人员认识到,替代实施例使存储大小递减不同量,例如1、2、3、4,或递减另一数目N。图19说明用于图18的编码的示范性包1900。包1900包括优选地具有为九个位或对于每一色彩的三个位(例如,r_size、g—size及b—size)的前同步码的主体。如此图所示,有利地通过使用三位代码格式来编码每一色彩所需要的大小。更具体来说,用以编码每一色彩的位数目依据代码(例如,对于一个位为000,或对于八个位为111)而在一个位到八个位之间变化。主体进一步包括例如呈RGB交错格式的经压縮瓦片的数据。图20说明用于图18的编码及/或图19的包的示范性标头。如此图所示,标头2000包括encode—type、字节数目及三色偏差值。在此实施方案中,标头2000使用(例如)用于encode—type的四个位,加上用于字节数目的四个位,加上24个位或对于三个色彩中的每一者的偏差的八个位。然而,一般技术人员认识到用于不同实施方案的标头的替代方案。如图所示,字节数目字段(例如)通过使用四个位代码而以从八个字节(0001)到56个字节(0111)的八个字节的倍数来表示大小。类似地,encode—type字段允许多个编码方案,如图所示。因此,不同实施方案的标头及/或包含有字段及灵活性来处置单级及/或多级编码(例如,有损及/或无损编码级)的输出。特定实施例的解码系统同样经类似地配置以处置多种编码。举例来说,图21说明一些实施例的解码系统2100。如此图所示,解码器2100包括主体获取器2102,其接收通常呈包的形式的输入数据,且将包的主体输出到解包器2104及前同步码解码模块2107。标头获取器2105也接收输入数据,且向优选地剖析标头的标头解码模块2106输出。举例来说,特定标头解码模块2106将encode—type的四个位输出到前同步码解码模块2107,且将偏差的24个位(对于三个三色色彩中的每一者的八个位)输出到加法器2108。前同步码解码模块2107将九个位输出到解包器2104。所述九个位优选地以三位代码格式(例如,对于使用红色、绿色、蓝色的系统的rgb—size)来指示三个三色色彩中的每一者的大小。解包器2104扩展任何丢失的前导零以针对所接收输入数据中的每一像素形成八位宽的格式,且将八位宽的数据输出到上文所提及的加法器2108。加法器2108从提取标头字段中所含有的信息的标头解码器2106接收偏差。加法器2108将偏差(以八位格式)相加到每一像素的所接收值,且将合计值输出到存储器2110。如上文所描述,所接收数据经常包含用于像素瓦片的流,因此这些实施例的存储器2110优选地具有如从标头解码模块2106所接收或替代地如在系统2100内所预定及/或固定的像素瓦片或tile_size的尺寸,且进而有利地减小对传输这些固定大小的需要。存储器2110的输出是用于特定瓦片的特定流的经解码像素值。举例来说,一些实施例输出24个位,所述24个位包括对于三个色彩中的每一者的八个位。存储器2110优选地向多路复用器2112及移位器2114(例如,向多路复用器2112输出的乘以N移位器)输出。多路复用器2112基于有损压縮启用信号(loSSy_COmp_enable)来选择存储器2110的输出或经移位输出(经由多路复用器2114)。因此,解码器2100的所说明实施方案执行上文关于图15及图18而描述的编码器1500及1800的相反步骤,且进一步选择性地提供对无损及/或有损编码的解码。图22说明示范性经编码格式2200。如此图所示,有利地(例如)通过使用上文所描述的一些实施例而将未经压縮瓦片压縮为较小格式。特定实施方案将16X16未经压縮瓦片压縮为4X4经压縮瓦片。每一瓦片优选地包括(例如)四个字节的标头。在一实施方案中,标头对于三个三色色彩中的每一者的偏差使用三个字节,或对于blue_biaS、green_bias及red_biaS中的每一者使用八个位。一个字节用于encode—type及字节数目字段。在此情况下,这些字段中的每一者针对所述两个字段使用字节的四个位。在所说明的实例中,有利地压縮48个瓦片且接着将其打包到帧缓冲器中。更具体来说,所说明的实施方案2200使用松散打包的格式,其包括上文所描述的速度及随机存取的优势。另外,在松散打包的实施方案中,有意地将针对每一瓦片所分配的未使用空间留为空白。所说明的特定帧缓冲器为十二个瓦片宽及四个瓦片高。因此,对于具有4X4个像素的瓦片,帧缓冲器为16个像素宽乘以三或48个像素宽,且16个像素高。所属领域的技术人员将理解,可通过使用多种不同技术及技艺中的任一者来表示信息及信号。举例来说,可通过电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或者其任何组合来表示可能在整个以上描述中提及的数据、指令、命令、信息、信号、位、符号及码片。技术人员将进一步了解,结合本文所揭示的实施例而描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件与软件的此互换性,上文中已大体上在功能性方面描述了各种说明性组件、块、模块、电路及步骤。将所述功能性实施为硬件还是软件依据特定应用及强加于整个系统的设计约束而定。熟练的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但所述实施方案决策不应被解释为引起脱离本发明的范围。结合本文所揭示的实施例而描述的各种说明性逻辑块、模块及电路可用经设计以执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微处理器或任何其它此类配置。结合本文所揭示的实施例而描述的方法或算法的步骤可直接以硬件、以由处理器所执行的软件模块或以所述两者的组合来体现。软件模块可驻留于RAM存储器、快闪存储器、ROM存储器、EPR0M存储器、EEPR0M存储器、寄存器、硬盘、可装卸盘、CD-ROM或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息及将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器及存储媒体可驻留于ASIC中。ASIC可驻留于用户终端、个人计算机或移动计算及/或电信装置中。在替代方案中,处理器及存储媒体可作为离散组件而驻留于用户终端中。提供所揭示实施例的先前描述以使所属领域的技术人员能够制作或使用本发明。所属领域的技术人员将容易明白对这些实施例的各种修改,且本文中所界定的一般原理可在不脱离本发明的精神或范围的情况下应用于其它实施例。举例来说,已关于移动装置的图像及/或视频数据而描述了各种实施例。然而,一般技术人员同样认识到其它数据类型及其它平台。因此,本发明不希望限于本文中所示的实施例,而是应符合与本文所揭示的原理及新颖特征一致的最广范围。权利要求一种编码方法,其包含接收图像;将所述图像瓦解为一组瓦片,其中每一瓦片包含一组像素;选择第一瓦片;确定所述第一瓦片中的所述像素的第一组值;将所述第一瓦片中的每一像素的所述所确定值分离为多个流;对于第一流,确定偏差值;以及从所述流内的每一值减去所述偏差值,进而产生一组经减去值。2.根据权利要求1所述的方法,所述经减去值包含一个或一个以上前导零,所述方法进一步包含移除前导零,进而减小表示所述第一流内的所述经减去值所需的位的数目;以及用较少位表示所述第一流内的值。3.根据权利要求1所述的方法,其进一步包含对于流中的所述值,确定最小值,其中所述偏差值包含所述最小值。4.根据权利要求1所述的方法,其进一步包含对所述经减去值进行舍入,进而产生一组经舍入值;以及将所述经舍入值除以一因子。5.根据权利要求4所述的方法,其中所述因子包含2的倍数,其中通过使用移位运算来执行所述除法,以便实施N位有损编码器,其中N为经移位的最低有效位的数目。6.根据权利要求1所述的方法,其中所述多个流包含针对红色、绿色及蓝色中的每一者的流。7.根据权利要求1所述的方法,其中所述多个流包含Y、Cr、Cb。8.根据权利要求1所述的方法,其进一步包含将一组经编码瓦片打包于帧缓冲器内。9.根据权利要求8所述的方法,其中将所述瓦片紧密地打包,使得由每一瓦片所占据的空间为可变的。10.根据权利要求8所述的方法,其中将所述瓦片打包于预定可寻址位置中。11.根据权利要求1所述的方法,所述第一流包含用于指示所述第一瓦片的所述像素的第一色彩的一组系数,所述方法进一步包含对于所述第一流,确定所述偏差值是否包括足以重构所述第一色彩的系数信息。12.根据权利要求11所述的方法,其进一步包含如果所述偏差值包括足以重构所述第一色彩的系数信息,则通过使用所述偏差值来将所述第一色彩编码到包标头中;放弃在包主体内对所述第一色彩的所述系数的编码;且选择编码类型以用于指示标头是否包括足以如实地重构所述第一瓦片的所述第一色彩的像素信息。13.根据权利要求12所述的方法,其进一步包含获取所述包标头;接收所述编码类型;以及通过使用所述编码类型来解码所述第一色彩,其中如果所述编码类型指示所述包标头包括足以重构所述第一色彩的信息,则所述方法放弃从所述包主体获取所述第一色彩的所述信息的步骤。14.根据权利要求12所述的方法,所述编码类型包含以下各项中的至少一者针对不在所述包主体中对所述第一瓦片的色彩信息进行编码的条件的第一选择;针对在所述包主体中对一个色彩的信息进行编码的条件的第二选择;针对在所述包主体中对两个色彩的信息进行编码的条件的第三选择;针对在所述包主体中对三个色彩的信息进行编码的条件的第四选择。15.根据权利要求12所述的方法,其中所述系数信息包含亮度值及色度值中的一者。16.—种存储用于编码的程序的计算机可读媒体,所述程序包含用于进行以下操作的指令接收图像;将所述图像瓦解为一组瓦片,其中每一瓦片包含一组像素;选择第一瓦片;确定所述第一瓦片中的所述像素的第一组值;将所述第一瓦片中的每一像素的所述所确定值分离为多个流;对于第一流,确定偏差值;以及从所述流内的每一值减去所述偏差值,进而产生一组经减去值。17.—种图像压縮系统,所述系统包含用于接收图像的装置;用于将所述图像瓦解为一组瓦片的装置,其中每一瓦片包含一组像素;用于选择第一瓦片的装置;用于确定所述第一瓦片中的所述像素的第一组值的装置;用于将所述第一瓦片中的每一像素的所述所确定值分离为多个流的装置;对于第一流,用于确定偏差值的装置;以及用于从所述流内的每一值减去所述偏差值进而产生一组经减去值的装置。18.—种编码器,其包含具有以下各项的第一级存储器,其用于接收一组输入数据;统计块,其用于接收所述组输入数据,所述统计块经配置以对所述输入数据加以排序;第一减法器,其耦合到所述存储器的输出及所述统计块的输出,所述第一减法器用于对所述存储器的所述输出及所述统计块的所述输出执行算术运算;第一逻辑单元,其耦合到所述减法器,所述第一逻辑单元用于接收所述减法器的输出且输出多个位;以及打包器,其耦合到所述逻辑单元以用于接收所述多个位且形成数据包,其中所述第一逻辑单元经配置以基于特定数据流来输出减小数目的位。19.根据权利要求18所述的编码器,所述存储器经配置用于从瓦片接收数据流,其中瓦片包含一个或一个以上数据流,其中所述存储器是基于来自所述瓦片的所述数据流来设定大小的。20.根据权利要求18所述的编码器,其中所述算术运算包含从所述存储器的所述输出中减去所述统计块的所述输出,进而产生一组经减去值,所述经减去值包含一个或一个以上前导零,所述编码器进一步经配置用于移除前导零,进而减小表示第一流内的所述经减去值所需的位的数目;以及用较少位表示所述第一流内的值。21.根据权利要求18所述的编码器,其中所述第一逻辑单元包含解码单元,使得由所述解码单元输出的位的数目由用于所述解码单元的控制输入来确定,所述控制输入由所述统计块提供。22.根据权利要求18所述的编码器,所述统计块经配置用于通过使用所述输入数据中的值来确定偏差值,所述统计块进一步经配置以提供偏差值以供所述第一减法器减去。23.根据权利要求18所述的编码器,其进一步包含帧缓冲器,其中所述编码器经配置用于将一组经编码瓦片打包于所述帧缓冲器内。24.根据权利要求18所述的编码器,其进一步包含第二级,所述第二级包含第二逻辑单元,其耦合到所述第一减法器的输出,所述第二逻辑单元用于提供舍入函数及除法函数;第一多路复用器,其耦合到所述第一减法器及所述第二逻辑单元,所述第一多路复用器用于选择性地提供所述第一减法器及所述第二逻辑单元的输出;第二减法器,其耦合到所述统计块的输出,所述第二减法器用于递减1;第二多路复用器,其耦合到所述统计块及所述第二减法器,所述第二多路复用器用于选择性地提供所述统计块及所述第二减法器的输出;lossy—enable线,其耦合到所述第一及第二多路复用器中的每一者,其中当所述lossy—enable线具有一个状态时,所述第一多路复用器提供所述第一减法器的所述输出,且所述第二多路复用器提供所述统计块的所述输出,当所述lossy—enable线具有另一状态时,所述第一多路复用器提供所述第二逻辑单元的所述输出,且所述第二多路复用器提供所述第二减法器的所述输出。25.—种系统,其包含发射器,其具有经配置以通过使用减小数目的数据位来对数据进行编码的编码器;传输信道;以及接收器,其包括解码器,所述解码器包含数据获取器,其用于接收输入数据,解包器,其耦合到所述数据获取器,使得所述数据获取器向所述解包器输出,所述解包器用于扩展任何丢失的前导零以针对所述所接收输入数据形成预定格式,且输出八位宽的数据;标头解码模块,其用于从所述输入数据提取标头信息;以及加法器,其耦合到所述标头解码模块及所述解包器,所述加法器用于从所述标头解码模块接收偏差值且将所述偏差值相加到打包器的输出。全文摘要本发明提供一种编码方法,其接收图像且将所述图像瓦解为一组瓦片。每一瓦片包括一组像素。所述方法选择第一瓦片且确定所述第一瓦片中的所述像素的第一组值。所述方法将所述第一瓦片中的每一像素的所述所确定值分离为若干流。对于第一流,所述方法确定偏差值,且从所述流内的每一值减去所述偏差值,进而产生一组经减去值。通常,所述经减去值具有一个或一个以上前导零,且所述方法优选地移除所述前导零中的一者或一者以上,进而减小表示所述第一流内的所述经减去值所需的位的数目。因此,有利地用较少位来表示所述第一流内的所述值中的一者或一者以上。额外实施例包括用于通过使用减小数目的位对数据进行编码的编码器以及用于传输、接收、显示、存储及/或检索的系统及解码器。文档编号H04N7/26GK101796842SQ200880021891公开日2010年8月4日申请日期2008年6月24日优先权日2007年6月28日发明者维贾伊·苏布拉马尼亚姆申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1