串长编码数字图像的制作方法

文档序号:6420853阅读:139来源:国知局
专利名称:串长编码数字图像的制作方法
技术领域
本发明涉及数字图像的压缩和/或解压。
背景技术
计算设备一般包括显示控制器,用于渲染数字图像并将所渲染的数字图像显示在如计算机监视器或平板显示器的显示设备上。显示控制器可渲染数字图像并将所渲染的数字图像存储在帧缓冲器中。帧缓冲器可位于共享系统存储器或专用视频存储器中。当到了要显示所渲染的数字图像的时间时,显示控制器可从帧缓冲器检索数字图像,并可产生一个信号以在显示设备上显示检索到的数字图像。存储数字图像和从帧缓冲器检索数字图像的过程可消耗大量的存储器带宽。如果帧缓冲器位于共享系统存储器中,由于显示控制器显著地减少其它任务的可用存储器带宽,将极大地降低计算设备的性能。另外,如果帧缓冲器位于专用视频存储器中,为了提供足够的存储器带宽,视频存储器子系统可能要用昂贵的存储技术来实现。

发明内容
本发明的目的是提供用于处理数字图像的新方法和新装置,以节约存储器带宽,提高系统性能。
根据本发明的第一方面,提供了一种方法,该方法包括量化第一象素和第二象素来获得量化第一象素和量化第二象素;以及响应于所述量化第一象素和所述量化第二象素具有预定的关系而增大和所述第一象素相关联的串长。
根据本发明的第二方面,提供了一种方法,该方法包括从代表一个或多个象素的符号中获得串长和量化象素;以及根据所述串长和所述量化象素构造所述一个或多个象素。
根据本发明的第三方面,提供了一种显示控制器,其包括压缩器,用于量化第一象素和第二象素来获得量化第一象素和量化第二象素,响应于所述量化第一象素和所述量化第二象素具有预定的关系来更新串长,以及用所述串长和所述量化第一象素来生成代表所述第一象素和所述第二象素的符号;所述显示控制器还包括存储器接口,用于将所述符号传送到帧缓冲器。
根据本发明的第四方面,提供了一种包括多个指令的机器可读介质,所述多个指令响应于被执行而导致计算设备进行以下操作量化多个象素来获得多个量化象素;识别多串的相等的连续量化象素;以及对每串识别出的连续量化象素生成符号,该符号包括串长和所述识别出的串的一个量化象素。
根据本发明的第五方面,提供了一种计算设备,其包括用于存储帧缓冲器的系统存储器,还包括集成显示控制器,用于从所述帧缓冲器获得符号,从所述符号获得串长和量化象素,并根据所述串长和所述量化象素构造一个或多个象素。
本发明所公开的基于串长编码的数字图像压缩及解压的方法和装置与现有技术相比,可以节约存储器资源,提高系统性能。


在附图中通过示例而非限制来图示所描述的本发明。为了图示的简单和清楚,图中所图示的元素并不一定按比例画出。例如,为了清楚,可能相对于其它元素夸张了一些元素的尺寸。另外,在认为合适的地方,标号在图中被重复使用以表示相应或相似的元素。
图1图示了具有含集成显示控制器的芯片组的计算设备的实施例;图2图示了数字图像的一个示例实施例;图3图示了具有和芯片组分离的显示控制器的计算设备的实施例;图4图示了一种图1和图3的显示控制器可用来压缩数字图像单元的方法;
图5图示了一种图1和图3的显示控制器可用来解压数字图像单元的方法。
具体实施例方式
下面的说明描述了用于压缩和解压数字图像单元的技术。在以下说明中,给出了大量的具体细节,如逻辑实现、操作码、指定操作数的方法、资源分配/共享/复制的实现、系统元件的类型和相互关系以及逻辑划分/集成的选择,以便于更充分地理解本发明。但是应认识到,没有这些具体细节,本领域的技术人员也可以实施本发明。在另外一些例子里,没有详细示出控制结构、门级电路和完整的软件指令序列,以免使本发明难以理解。本领域的一般技术人员用所包括的说明将能够实现合适的功能,而不必进行不必要的实验。
本说明书中对“一个实施例”、“实施例”和“一个示例实施例”等等的引用表示所描述的实施例可包括某个特定特征、结构或特性,但并非每个实施例都必须包括该特定特征、结构或特性。而且,这种短语并不一定指同一个实施例。另外,如果关于一个实施例描述了某个特定特征、结构或特性,则无论是否明确描述过,也认为实现与其它实施例相关的该特定特征、结构或特性是在本领域的技术人员知识范围之内的。
计算设备100的一个示例实施例如图1所示。计算设备100可包括一个或多个经由处理器总线106耦合到芯片组104的处理器102。芯片组104可包括一个或多个集成电路封装或芯片,以将处理器102耦合到系统存储器108、固件110和/或其它设备112(例如鼠标、键盘、磁盘驱动器、扫描仪和照相机等等)。固件110可包括基本输入/输出系统例行程序(BIOS),该例行程序可被处理器102在系统启动期间执行,以初始化计算设备100的元件并开始执行操作系统。
在一个实施例中,芯片组104可包括存储器控制器114。但是,在其它实施例中,处理器102可包括存储器控制器114的全部或一部分。存储器控制器114可为集成显示控制器116和计算设备100的其它元件提供访问系统存储器108的接口。芯片组104还可支持如下列I/O(输入/输出)总线上的I/O操作,例如外围部件互连(PCI)总线、PCI-Express总线、加速图形端口(AGP)总线、通用串行总线(USB)总线、低引脚数(LPC)总线或任何其它I/O总线(未示出)。
芯片组104还可包括集成显示控制器116,用来在例如计算机监视器、平板显示器或电视的显示设备118上显示数字图像。集成显示控制器116可包括计算机接口120,用来从计算设备100接收或获得命令和/或数据。计算机接口120可和存储器控制器114相互作用以从系统存储器108检索图形命令。此外,计算机接口120可提供一个或多个例如AGP端口、PCI端口或PCI-Express端口的视频端口,经由这些视频端口,计算机接口120可从处理器102接收数据和/或命令。集成显示控制器116还可包括存储器接口122,用来从视频存储器124获得象素(pel)、区域(zone)、帧和块(tile)等等。如所描述的,系统存储器108和视频存储器124可共享或被实施为同一物理存储设备。在这样一个实施例中,部分存储设备被静态或动态地分配给系统存储器108或视频存储器124。相应地,集成显示控制器116的存储器接口122可和芯片组104的存储器控制器114相互作用,以将象素、区域、帧和块等等向视频存储器124读取或写入。
集成显示控制器116的渲染引擎126可执行图形命令以产生用于显示的数字图像。如图2所示,数字图像可包括一个或多个矩形的非重叠区域(图2中的Z)。另外,每个区域可包括一条或多条线的图象元素(picture element)或象素(图2中的P),并且每个象素可定义在数字图像的某一特定点处数字图像的视觉外观(例如颜色、阴影、色调和透明度等等)。例如,象素可包括依照例如RGB格式、YUV格式、RGBA格式或其它格式的某一特定视频格式来定义外观的一个或多个通道。在RGB格式中,每个象素包括一个红色(R)通道、一个绿色(G)通道和一个蓝色(B)通道。类似地,在RGBA格式中,每个象素包括一个红色(R)通道、一个绿色(G)通道、一个蓝色(B)通道和表示透明程度的阿尔法(A)通道。例如,集成显示控制器116可通过给每个象素赋一个8位(bit)的红色通道、一个8位的绿色通道和一个8位的蓝色通道来实现24位的颜色。在YUV格式中,每个象素可包括一个亮度(Y)通道、一个第一色度(U)通道和一个第二色度(V)通道。类似地,集成显示控制器116可通过给每个象素的每个YUV通道赋一个8位的值来实现24位的YUV颜色。但是,集成显示控制器116可选择更精确地表示亮度(Y)通道。相应地,集成显示控制器116可通过给每个象素赋一个12位的亮度(Y)通道、一个6位的第一色度(U)通道和一个6位的第二色度(V)通道来实现24位的颜色。一个以YUV格式编码的数字图像还可使用如4∶1∶1格式的空间精简色度格式。在该4∶1∶1格式中,一个宏象素(macro-pel)可包括四个亮度(Y)通道、一个第一色度(U)通道和一个第二色度(V)通道,这些通道确定部分所述宏象素的视觉外观。
渲染引擎126可执行由指令/数据单元128从系统存储器108检索到的图形命令,并可更新存储在集成显示控制器116的区域高速缓存130中的一个或多个区域。在渲染数字图像的一个或多个区域之后,渲染引擎126可使所渲染的区域被清除出高速缓存130并被写入帧缓冲器132。帧缓冲器压缩器/解压器(编码译码器)134可压缩所清除的区域并将所压缩的区域提供给存储器接口122以存储在帧缓冲器132中。显示引擎136可随后从帧缓冲器132检索所渲染的数字图像以在合适的时间显示该数字图像。具体而言,显示引擎136可从帧缓冲器132检索所压缩的区域,并且编码译码器134可解压检索到的区域。显示引擎136可将数字图像的解压区域与例如覆盖(overlay)、硬件光标等等的其它视频源混和,并可将合成的视频信号提供给显示接口138。显示接口138可将从显示引擎136接收到的数字视频信号转换为适于显示设备118的模拟或数字信号。
现在参考图3,图示了计算设备100的另一个实施例。如图3所示,计算设备100可包括和芯片组104分开的非集成显示控制器140。和集成显示控制器116相似,非集成显示控制器140可包括计算机接口120、存储器接口122、渲染引擎126、指令/数据单元128、区域高速缓存130、编码译码器134、显示引擎136和显示接口138。另外,非集成显示控制器140可包括板载视频存储器124,非集成显示控制器140可以以类似于图1的集成显示控制器116的方式操作。但是,非集成显示控制器140的计算机接口120可包括AGP端口、PCI端口、PCI-Express端口或其它设备接口,用来与芯片组104的相应的图形接口142传送命令和/或数据,图形接口142也可包括AGP端口、PCI端口、PCI-Express端口或其它设备接口。而且,非集成显示控制器140的存储器接口122可直接访问视频存储器124,从而使得非集成显示控制器140能够向视频存储器124以及从视频存储器124传送象素、区域、块和帧等等,而不必消耗存储器控制器114和系统存储器108的大量带宽。
现在参考图4,描述了一种方法,可由编码译码器134用来在传送到帧缓冲器132之前压缩区域线(zone line)、区域、帧线(frame line)、帧场(frame field)、帧或其它数字图像单元的象素。一般地,所述方法对一个数字图像单元产生一个或多个符号,其中每个符号代表一串一个或多个象素。在块200中,编码译码器134可获得包含一个或多个通道的一个当前象素并设置串长为一初始值(例如0)。在块202中,编码译码器134可量化当前象素以获得包含一个或多个量化通道的量化当前象素。每个量化通道可包括每个通道的一个或多个最高有效位(MSB)并可丢弃每个通道的一个或多个最低有效位(LSB)。例如,编码译码器134可在18位的量化水平上量化一个24位的RGB象素(例如10010101-11111001-01110001)以获得一个包含三个6位的量化通道的量化当前象素(例如100101-111110-011100),这三个量化通道保留了每个通道的六个MSB并丢弃了每个通道的两个LSB。编码译码器134可利用多种不同技术来获得量化当前象素。在一个实施例中,编码译码器134可通过将通道和掩码进行按位与,和/或通过对当前象素的通道进行合适的移位操作,来获得量化当前象素。而且,编码译码器134可在不同水平上量化一个象素的每个通道。例如,编码译码器134对一个24位的YUV象素可保留Y通道的7个MSB、U通道的6个MSB以及V通道的5个MSB。
在块204中,编码译码器134可确定是否已经开始了一个新的象素串和相应的新的符号。在一个实施例中,编码译码器134可响应于确定串长和初始值(例如0)有预定的关系(例如相等),而确定已经开始了一个新串。响应于确定已经开始了一个新串,编码译码器134可进行到块210。否则,编码译码器134在块208中可设置量化串象素等于量化当前象素。
在块210中,编码译码器134可确定对当前象素是使用无损还是有损压缩。在一个实施例中,编码译码器134可根据芯片组104或显示控制器116、140的一个或多个配置寄存器(未示出)的状态来确定是使用无损还是有损压缩。在另一个实施例中,编码译码器134可根据计算设备100的负载来确定是使用无损还是有损压缩。例如,响应于计算设备100的存储系统、处理器和/或其它子系统的负载升高到超过一个临界水平,编码译码器134可确定使用有损压缩甚至增加损失的水平。具体而言,编码译码器134可响应于确定到系统存储器108的可用存储器带宽已降到低于某一水平,而确定增大损失。之后编码译码器134可响应于确定可用存储器带宽已升高到高于某一水平,而减小损失或使用无损压缩。
响应于确定使用无损压缩,编码译码器134在块212中可产生一个包含当前象素每个通道的无损通道误差的无损误差向量。具体而言,每个无损通道误差可包括在块202中从量化通道丢弃的一个或多个LSB。例如,编码译码器134可产生一个6位的无损误差向量(例如
),该无损误差向量对当前象素的每个通道都包括一个2位的无损通道误差。具体而言,每个无损通道误差可包括在块202的象素量化期间从相应通道丢弃的2个LSB。编码译码器134可利用多种不同技术来获得无损误差向量。在一个实施例中,编码译码器134可通过将通道和块202中所使用的掩码进行按位与,和/或通过对当前象素的通道进行合适的移位操作,来获得无损误差向量。
响应于确定使用有损压缩,编码译码器134在块214中可产生一个包含当前象素的每个通道的有损通道误差的有损误差向量。具体而言,每个有损通道误差可包括在当前象素的量化期间丢弃的位的子集。如上所述,所述压缩的损失可根据计算设备100所受的负载来调整。例如,可通过减少用来定义有损误差向量的丢弃位子集中的位数来增加损失。类似地,可通过增大用来定义有损误差向量的丢弃位子集中的位数来减小损失。例如,响应于将子集定义为一位,编码译码器134可生成一个3位的有损误差向量(例如0-0-0),其对当前象素的每个通道都包括一个1位的有损通道误差。具体而言,每个有损通道误差可包括在块202中从当前的24位RGB象素的每个通道丢弃的2个LSB中的MSB。此外,编码译码器134可利用多种不同技术来获得有损误差向量。在一个实施例中,编码译码器134可通过将通道和块202中所用掩码的取反进行按位与,和/或通过对当前象素的通道进行合适的移位操作,来获得有损误差向量。而且,在一个实施例中,有损误差向量可不包括位,以进一步增加压缩的损失。
在块215中,编码译码器134可确定量化当前象素和量化串象素是否有预定关系(例如相等)。如果量化象素有预定关系,则编码译码器134可进行到块217。否则,编码译码器134在块216中可向输出缓冲器输出一个代表一个或多个象素的符号,可更新串长以表示新的象素串,可为下一个符号清除误差向量缓冲器,并可设置量化串象素等于量化当前象素。在一个实施例中,由编码译码器134生成的符号可包括串长(例如0011)、量化当前象素(例如100101-111110-011100)和存储在误差向量缓冲器中的串的象素的误差向量(例如
[11-11-10])。在另一个实施例中,所述符号还可包括表示该串使用了无损压缩或某一水平的有损压缩的压缩模式(例如一个1位的值)。所述符号一般比这些一位或多位的原始象素表示包含更少的位。但是,在一个实施例中,所述符号比原始表示实际上包含更多的位。例如,在一个实施例中,表示或编码单个24位的RGB象素的符号可包括一个4位的串长、一个18位的量化象素和一个6位的无损误差向量,总共28位。但是,表示或编码两个24位的RGB象素的符号可包括一个4位的串长、一个18位的量化象素和一个12位的无损误差向量,总共34位。
编码译码器134在块217中可将所获得的无损或有损误差向量存储到误差向量缓冲器中。在块218中,编码译码器134可更新与当前象素和当前串相关的串长以表示将另一个象素加入了符号。在一个实施例中,编码译码器134可通过将串长加一来更新串长。编码译码器134在块220中可确定是否结束当前串。在一个实施例中,编码译码器134可响应于确定当前象素是区域线、区域、帧线、帧场、帧或被编码的数字图像单元的某一部分的最后一个象素,而结束当前串。在另一个实施例中,编码译码器134还可根据编码译码器134的限制来确定结束当前串。例如,编码译码器134可将由符号所代表的象素串限制为一个数,这个数使得编码译码器134的用来存储串长和/或误差向量的寄存器、缓冲器等等不会溢出。
响应于在块220中确定结束当前串,编码译码器134在块222中可向输出缓冲器输出一个代表一个或多个象素的符号,可更新串长以表示一个新串,并可为下一个符号清除误差向量缓冲器。在块222中输出符号或在块220中决定不结束串之后,编码译码器134在块223中可确定是否数字图像的所有象素已被编码。如果所有象素已被编码,则数字图像单元的编码完成了,编码译码器134可退出。否则,编码译码器134在块224中可设置当前象素等于数字图像单元的下一象素。随后编码译码器134可返回块202以量化和编码当前象素。
现在参考图5,描述了一种方法,可由编码译码器134用来从获得自帧缓冲器132的多个符号来重构区域线、区域、帧线、帧场、帧或其它数字图像单元。一般地,所述方法可用来从代表数字图像象素的一个或多个符号重构数字图像。编码译码器134在块300中可获得从帧缓冲器132检索到的压缩数字图像的一个符号。在块302中,编码译码器134可从所述符号获得串长。编码译码器134在块304中可从所述符号中获得一个量化象素(例如[100101-111110-011100])。在块306中,编码译码器134可根据串长来确定所述符号的解压是否完成了。在一个实施例中,编码译码器134可响应于串长和停止值(例如0)有预定的关系(例如大于)而确定解压未完成。
响应于确定解压完成了,编码译码器134在块307中可确定是否数字图像单元的所有符号都已被解码。如果数字图像单元的所有符号都已被解码,则数字图像单元的解码完成了,编码译码器134可退出。否则,编码译码器134可返回块300以得到数字图像单元的下一符号。
响应于确定解压未完成,编码译码器134在块308中可确定是进行有损还是无损解压。在一个实施例中,编码译码器134可根据芯片组104、集成显示控制器116、和/或非集成显示控制器140的一个或多个寄存器来确定是进行无损还是有损解压。在另一个实施例中,编码译码器134可根据从所述符号所获得的压缩模式来确定是进行无损解压还是某个水平的无损解压。响应于确定将使用无损解压,编码译码器134在块310中可从所述符号获得下一个无损误差向量(例如
)。
响应于确定将使用有损解压,编码译码器134在块312中可从所述符号获得下一个有损误差向量(例如
)。编码译码器134在块314中可替换有损误差向量的丢弃位以获得重构的误差向量。在一个实施例中,编码译码器134可对有损误差向量(例如
)的每个有损通道误差添加预定的值(例如0)以获得重构的误差向量(例如
)。在另一个实施例中,编码译码器134可对有损误差向量(例如
)的每个通道误差添加当前的抖动值(例如10)以获得重构的误差向量(例如
)。在另一个实施例中,编码译码器134可用抖动值替换有损误差向量的丢弃位以获得重构的误差向量。例如,编码译码器134可将抖动值0更新为抖动值1和将抖动值1更新为抖动值0,并可用更新后的抖动值来替换丢弃位。对丢弃多于单个位的实施例,编码译码器134可通过在两个中心值之间切换来更新抖动值。具体而言,编码译码器134可通过在01和10之间切换来抖动两位,可通过在011和100之间切换来抖动三位,并可通过在0111和1000之间切换来抖动四位。
在块316中,编码译码器134可从所获得的量化象素和所获得的误差向量(例如无损向量或重构误差向量)来生成象素并将重构的象素存储到输出缓冲器中。在一个实施例中,编码译码器134可将误差向量的每个通道误差添加到量化象素的每个量化通道中。编码译码器134可使用很多不同的技术来将通道误差添加到量化通道中。具体而言,编码译码器134可将量化通道合适地移位,并可将移位后的量化通道和通道误差进行按位或。
编码译码器134可在块318中更新串长以表示所述符号的象素已被重构。在一个实施例中,编码译码器134可通过将串长减一来更新串长。编码译码器134随后可回到块306来确定所述符号的解压是否完成。如果完成了,则编码译码器134可回到300来获得从帧缓冲器132检索到的压缩数字图像的下一个符号。
计算设备100可响应于执行机器可读介质的指令来进行图4和图5示例方法中的全部或子集,所述机器可读介质例如只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪存设备和/或电、光、声或其它形式的传播信号,例如载波、红外信号、数字信号和模拟信号。另外,虽然图4和图5的示例方法图示为操作序列,但在一些实施例中计算设备100可并行或以不同顺序来进行所述方法的各种图示操作。
在以下表1到7示出了一个无损压缩/解压的例子和一个有损压缩/解压的例子。具体而言,表1示出了一条具有四个24位RGB象素的区域线,表2示出了在被使用每个通道6位量化到18位的量化水平之后的所述四个24位RGB象素。由表可见,编码译码器可简单地通过每个通道去掉2个LSB来生成18位的量化象素。
表1四个24位RGB象素的区域线

表2区域线的18位量化象素

表3还示出了表2的18位量化象素的无损误差向量。从表3可见,编码译码器可简单地通过保留在象素量化期间从每个通道去掉的2个LSB来生成6位的无损误差向量。现在参考表4,示出了表2的18位量化象素的有损误差向量。编码译码器可简单地通过保留在象素量化期间从每个通道所去掉的MSB来生成3位的有损误差向量。
表318位量化象素的无损误差向量

表418位量化象素的有损误差向量

现在参考表5,示出了对表1的四个24位RGB象素的无损编码。如所描述的,无损编码包括将表1的象素0、1和2编码的符号0,和将表1的象素3编码的符号1。符号0包括一个表示所述符号代表三个象素的4位串长。而且,符号0包括一个等于表2的18位量化象素0、1和2的18位量化象素。此外,符号0包括如表3所示的对象素0、1和2的三个6位无损误差向量。类似地,符号1包括一个表示符号1代表单个象素的串长、象素3的18位量化象素以及象素3的无损误差向量。表5表示这两个符号仅用68位就代表了96位的象素数据,由此提供了对象素0、1、2和3的一种压缩表示。之后编码译码器可将每个符号的无损误差向量添加到每个符号的量化象素而解压符号并获得表1的四个象素。
表5区域线的无损符号

现在参考表6,示出了对表1的四个24位RGB象素的有损编码。如所描述的,有损编码包括将表1的象素0、1和2编码的符号0,和将表1的象素3编码的符号1。符号0包括一个表示符号0代表三个象素的4位串长。而且,符号0包括一个等于表2的18位量化象素0、1和2的18位量化象素。此外,符号0对每个象素0、1和2包括表4的3位有损误差向量。类似地,符号1包括一个表示符号1代表单个象素的串长,表2中的象素3的18位量化象素,以及表4中的象素3的有损误差向量。表6还表示这两个符号仅用56位就代表了96位的象素数据,由此提供了对象素0、1、2和3的一种压缩表示。
表6区域线的有损符号

之后编码译码器可向表6的有损误差向量添加一位而获得重构误差向量,还可将重构误差向量添加到表6的每个符号的量化象素而解压符号并获得四个24位象素。表7示出了可从表6的有损符号获得的一组可能的四个24位象素。具体而言,通过将象素0的每个通道的最后一位状态设为0并对每个象素切换通道的最后一位状态,就得到表7的四个象素。从对表7的重构象素和表1的原始象素的比较可见,每个通道的LSB有时正确有时不正确,但一般而言,重构通道即使不等于也非常接近于原始通道。在大多数情况下,用户不能辨别出原始数字图像和从有损符号重构的数字图像之间的不同。
表7从有损符号重构的区域线(w/抖动)

虽然已经参照示例实施例对本发明的某些特征进行了描述,但并不意于在限定的意义上理解说明书。对本发明所属领域的技术人员很清楚的是,对于所述示例实施例的各种修改以及本发明的其它实施例,都被认为包含在本发明的精神和范围之内。
权利要求
1.一种方法,包括量化第一象素和第二象素来获得量化第一象素和量化第二象素;和响应于所述量化第一象素和所述量化第二象素具有预定的关系,增大和所述第一象素相关联的串长。
2.如权利要求1所述的方法,还包括生成一个包括所述量化第一象素和所述串长的符号来代表所述第一象素和所述第二象素。
3.如权利要求1所述的方法,其中所述量化包括丢弃所述第一象素的一个或多个最低有效位;和丢弃所述第二象素的一个或多个最低有效位。
4.如权利要求3所述的方法,还包括生成包括从所述第一象素丢弃的所述一个或多个最低有效位的第一误差向量;生成包括从所述第二象素丢弃的所述一个或多个最低有效位的第二误差向量;生成代表所述第一象素和所述第二象素的符号,所述符号包括所述量化第一象素、所述串长、所述第一误差向量和所述第二误差向量。
5.如权利要求3所述的方法,还包括生成第一误差向量,该第一误差向量包括从所述第一象素丢弃的所述一个或多个最低有效位的子集;生成第二误差向量,该第二误差向量包括从所述第二象素丢弃的所述一个或多个最低有效位的子集;以及生成代表所述第一象素和所述第二象素的符号,所述符号包括所述量化第一象素、所述串长、所述第一误差向量和所述第二误差向量。
6.如权利要求1所述的方法,其中所述第一象素包括多个第一通道,所述第二象素包括多个第二通道,并且所述量化包括从所述多个第一通道丢弃一个或多个最低有效位;和从所述多个第二通道丢弃一个或多个最低有效位。
7.如权利要求6所述的方法,还包括生成包括从所述多个第一通道丢弃的所述一个或多个最低有效位的第一误差向量;生成包括从所述多个第二通道丢弃的所述一个或多个最低有效位的第二误差向量;生成代表所述第一象素和所述第二象素的符号,所述符号包括所述量化第一象素、所述串长、所述第一误差向量和所述第二误差向量。
8.如权利要求6所述的方法,还包括生成第一误差向量,该第一误差向量包括从所述多个第一通道丢弃的所述一个或多个最低有效位的子集;生成第二误差向量,该第二误差向量包括从所述多个第二通道丢弃的所述一个或多个最低有效位的子集;生成代表所述第一象素和所述第二象素的符号,所述符号包括所述量化第一象素、所述串长、所述第一误差向量和所述第二误差向量。
9.如权利要求6所述的方法,其中根据计算设备的负载来调整包括在所述子集中的位数。
10.一种方法,包括从代表一个或多个象素的符号中获得串长和量化象素;和根据所述串长和所述量化象素构造所述一个或多个象素。
11.如权利要求10所述的方法,还包括从所述符号获得一个或多个误差向量,所述一个或多个误差向量对应于所述符号的所述一个或多个象素;并且还根据所述一个或多个误差向量来构造所述一个或多个象素。
12.如权利要求10所述的方法,还包括从所述符号获得一个或多个有损误差向量,所述一个或多个有损误差向量对应于所述符号的所述一个或多个象素;并且还根据所述一个或多个有损误差向量和所述一个或多个象素的丢失位的预定值来构造所述一个或多个象素。
13.如权利要求10所述的方法,还包括从所述符号获得一个或多个有损误差向量,所述一个或多个有损误差向量对应于所述符号的所述一个或多个象素;还根据所述一个或多个有损误差向量来构造所述一个或多个象素;和抖动所述一个或多个象素的丢失位。
14.一种显示控制器,包括压缩器,用于量化第一象素和第二象素来获得量化第一象素和量化第二象素,响应于所述量化第一象素和所述量化第二象素具有预定的关系来更新串长,以及用所述串长和所述量化第一象素来生成代表所述第一象素和所述第二象素的符号;和存储器接口,用于将所述符号传送到帧缓冲器。
15.如权利要求14所述的显示控制器,还包括视频存储器,所述视频存储器包括所述帧缓冲器。
16.如权利要求14所述的显示控制器,其中所述压缩器从所述第一象素的多个第一通道丢弃一个或多个最低有效位,并从所述第二象素的多个第二通道丢弃一个或多个最低有效位。
17.如权利要求16所述的显示控制器,其中所述压缩器生成包括从所述多个第一通道丢弃的所述一个或多个最低有效位的第一误差向量,生成包括从所述多个第二通道丢弃的所述一个或多个最低有效位的第二误差向量,并经由所述第一误差向量和所述第二误差向量生成进一步代表所述第一象素和所述第二象素的所述符号。
18.如权利要求17所述的显示控制器,其中所述存储器接口还从所述帧缓冲器获得所述符号,所述显示控制器还包括解压器,用于从获得自所述帧缓冲器的所述符号来获得所述串长、所述量化第一象素、所述第一误差向量和所述第二误差向量,并根据来自所述符号的所述串长、所述量化第一象素、所述第一误差向量和所述第二误差向量来构造所述第一象素和所述第二象素。
19.如权利要求16所述的显示控制器,其中所述压缩器生成第一误差向量,该第一误差向量包括从所述多个第一通道丢弃的所述一个或多个最低有效位的子集;所述压缩器生成第二误差向量,该第二误差向量包括从所述多个第二通道丢弃的所述一个或多个最低有效位的子集;以及所述压缩器经由所述第一误差向量和所述第二误差向量,生成进一步代表所述第一象素和所述第二象素的所述符号。
20.如权利要求19所述的显示控制器,其中所述存储器接口还从所述帧缓冲器获得所述符号,所述显示控制器还包括解压器,用于从获得自所述帧缓冲器的所述符号来获得所述串长、所述量化第一象素、所述第一误差向量和所述第二误差向量,并根据来自所述符号的所述串长、所述量化第一象素、所述第一误差向量和所述第二误差向量来构造所述第一象素和所述第二象素。
21.如权利要求20所述的显示控制器,其中所述解压器还使用预定值来作为所述第一象素和所述第二象素的丢失位。
22.如权利要求20所述的显示控制器,其中所述解压器还抖动所述第一象素和所述第二象素的丢失位。
23.如权利要求19所述的显示控制器,其中根据计算设备的负载来调整包括在所述子集中的位数。
24.如权利要求19所述的显示控制器,其中所述存储器接口还从所述帧缓冲器获得所述符号,所述显示控制器还包括解压器,用于从获得自所述帧缓冲器的所述符号来获得所述串长,从所述符号获得所述量化第一象素,并根据所述串长和所述量化第一象素来构造来自所述符号的所述第一象素和所述第二象素。
25.一种机器可读介质,包括多个指令,所述多个指令响应于被执行而导致计算设备量化多个象素来获得多个量化象素;识别多串相等的连续量化象素;并且对每串识别出的连续量化象素生成符号,该符号包括串长和所述识别出的串的一个量化象素。
26.如权利要求25所述的机器可读介质,其中,所述多个指令响应于被执行还导致所述计算设备对所述多个象素中的每一个生成误差向量,该误差向量包括从其各个象素丢弃的一个位或多个位;并且对每个识别出的串生成所述符号,使得所述符号包括和所述串的每个象素相关联的所述误差向量。
27.如权利要求25所述的机器可读介质,其中,所述多个指令响应于被执行还导致所述计算设备对所述多个象素中的每一个生成误差向量,所述误差向量包括从其各个象素丢弃的一个位或多个位的子集;并且对每个识别出的串生成所述符号,使得所述符号包括和所述串的每个象素相关联的所述误差向量。
28.如权利要求25所述的机器可读介质,其中所述多个指令响应于被执行,还导致所述计算设备根据所述计算设备的负载来调整包括在所述子集中的位数。
29.一种计算设备,包括系统存储器,用于存储帧缓冲器;和集成显示控制器,用于从所述帧缓冲器获得符号,从所述符号获得串长和量化象素,并根据所述串长和所述量化象素构造一个或多个象素。
30.如权利要求29所述的计算设备,其中所述集成显示控制器从所述符号获得一个或多个误差向量,所述一个或多个误差向量对应于所述符号的所述一个或多个象素,并且还根据所述一个或多个误差向量来构造所述一个或多个象素。
31.如权利要求29所述的计算设备,其中所述集成显示控制器从所述符号获得一个或多个有损误差向量,所述一个或多个有损误差向量对应于所述符号的所述一个或多个象素,并且还根据所述一个或多个有损误差向量和用于所述一个或多个象素的丢失位的预定值来构造所述一个或多个象素。
32.如权利要求29所述的计算设备,其中所述集成显示控制器从所述符号获得一个或多个有损误差向量,所述一个或多个有损误差向量对应于所述符号的所述一个或多个象素,并且还根据所述一个或多个有损误差向量和丢失位的抖动来构造所述一个或多个象素。
全文摘要
本发明描述了以无损或有损方式压缩和/或解压数字图像的方法、装置和计算机可读介质。在一些实施例中,显示控制器可量化数字图像的象素并可识别多串相等的连续量化象素。显示控制器可生成符号来代表识别出的一串象素。所述符号可包括可用来重构该串象素的串长和量化象素。所述符号还可包括串中每个象素的误差向量,所述误差向量还可被用来重构象素串。
文档编号G06T9/00GK1512782SQ20031011729
公开日2004年7月14日 申请日期2003年12月10日 优先权日2002年12月30日
发明者迈克尔·K·德怀尔, 迈克尔 K 德怀尔, A 皮亚扎, 托马斯·A·皮亚扎 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1