CN100367316C - 窗口空闲帧存储器压缩 - Google Patents
窗口空闲帧存储器压缩 Download PDFInfo
- Publication number
- CN100367316C CN100367316C CNB028192427A CN02819242A CN100367316C CN 100367316 C CN100367316 C CN 100367316C CN B028192427 A CNB028192427 A CN B028192427A CN 02819242 A CN02819242 A CN 02819242A CN 100367316 C CN100367316 C CN 100367316C
- Authority
- CN
- China
- Prior art keywords
- group
- pixel byte
- pixel
- byte value
- idle frame
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
Abstract
通过评价两个空闲帧以创建用于用代码替换随后的空闲帧中的所选像素字节值的编码表,由图形控制器接收的空闲帧被压缩。可能的像素字节值与第一组计数器相关联,当若干不同的字节值随第一空闲帧而出现时,各计数器对它们进行计数。基于在第一计数器中的计数选择可能的像素字节值的第一子集,在第一子集中的各字节值与第二计数器相关联。在第二帧中,像素字节值的第一子集的出现被计数,并且像素字节值的第二子集基于在第二计数器中的计数而被选择,并被用于创建编码表。在本发明一个方面中,当像素字节值的第二子集满足阈值的时候创建编码表。
Description
技术领域
本发明一般地涉及图形控制器。更具体地,本发明涉及在图形控制器中对帧的压缩。
背景技术
图形控制器将图形数据和指令转换为像素,并将像素存储在图形存储器或者系统存储器中,直到到了刷新显示设备上的图形的时候,这个时候从存储器中读取出像素并发送给显示设备。当产生图形的应用是空闲的时候,正在被显示的图形从一个刷新周期到下一个之间并不改变。但是,图形控制器对每个刷新周期都继续读取存储器中的相应的像素。其结果是,由于功率消耗与存储器读取带宽成比例,无论像素是用于空闲的图像还是活动的图像,从存储器读取像素所消耗的功率值都是一样的。
发明内容
根据本发明的一个方面,提供了一种用于空闲帧压缩的方法,包括:将多个第一计数器与多个像素字节值相关联,其中每个计数器与若干像素字节值相关联;一旦在第一空闲帧中出现所述多个像素字节值中的一个,则递增相关联的第一计数器中的计数;选择与具有相对高的计数的第一计数器相关联的第一组像素字节值;将所述第一组像素字节值中的每一个与多个第二计数器中的一个相关联;一旦在第二空闲帧中出现所述第一组像素字节值中的一个,则递增相关联的第二计数器中的计数;选择与具有相对高的计数的第二计数器相关联的第二组像素字节值;将所述第二组像素字节值中的每一个与一个代码相关联;以及通过用所述相关联的代码在随后的空闲帧中至少替换最低数量的所述第二组像素字节值,压缩所述随后的空闲帧,其中所述压缩包括将所述随后的空闲帧格式化为多个数据块,每个数据块包括:包含表示了多个像素字节的数据的数据字段;和编码键,所述编码键说明在所述数据字段中哪些像素字节是被代码表示的。
根据本发明的另一个方面,提供了一种用于空闲帧压缩的图形系统,包括:用于将多个第一计数器与多个像素字节值相关联的装置,其中每个计数器与若干像素字节值相关联;用于一旦在第一空闲帧中出现所述多个像素字节值中的一个,则递增相关联的第一计数器中的计数的装置;用于选择与具有相对高的计数的第一计数器相关联的第一组像素字节值的装置;用于将所述第一组像素字节值中的每一个与多个第二计数器中的一个相关联的装置;用于一旦在第二空闲帧中出现所述第一组像素字节值中的一个,则递增相关联的第二计数器中的计数的装置;用于基于在所述第二计数器中的计数,选择与具有相对高的计数的第二计数器相关联的第二组像素字节值的装置;用于将所述第二组像素字节值中的每一个与一个代码相关联的装置;以及用于通过用所述相关联的代码在随后的空闲帧中至少替换最低数量的所述第二组像素字节值,压缩所述随后的空闲帧的装置,其中所述压缩包括将所述随后的空闲帧格式化为多个数据块,每个数据块包括:包含表示了多个像素字节的数据的数据字段;和编码键,所述编码键说明在所述数据字段中哪些像素字节是被代码表示的。
根据本发明的另一个方面,提供了一种用于空闲帧压缩的计算机系统,包括:通过总线耦合到存储器的处理器;通过所述总线耦合到所述处理器的图形控制器;存储在所述存储器中的多个第一计数器;和存储在所述存储器中的多个第二计数器,其中,所述图形控制器用于将所述多个第一计数器与多个像素字节值相关联,其中每个计数器与若十像素字节值相关联,一旦在第一空闲帧中出现所述多个像素字节值中的一个,则递增相关联的第一计数器中的计数,选择与具有相对高的计数的第一计数器相关联的第一组像素字节值,将所述第一组像素字节值中的每一个与所述多个第二计数器中的一个相关联,一旦在第二空闲帧中出现所述第一组像素字节值中的一个,则递增相关联的第二计数器中的计数,选择与具有相对高的计数的第二计数器相关联的第二组像素字节值,将所述第二组像素字节值中的每一个与一个代码相关联,以及通过用所述相关联的代码在随后的空闲帧中至少替换最低数量的所述第二组像素字节值,压缩所述随后的空闲帧,其中所述压缩处理使得所述图形控制器将所述被压缩的随后的空闲帧作为多个数据块存储到所述存储器中,每个数据块包括:包含表示了多个像素字节的数据的数据字段;和编码键,所述编码键说明在所述数据字段中哪些像素字节是被代码表示的。
根据本发明的另一个方面,提供了一种用于确定空闲帧中占主要地位的像素字节值的装置,包括:耦合到一组累加器的第一组比较器,当一个空闲帧中的像素字节值满足对于所述第一组比较器中的一个的参数的时候,所述第一组比较器中的这个比较器递增相应的累加器;耦合到所述累加器组的统计寄存器,用于确定具有相对高的计数的多个累加器,所述多个累加器是所述累加器组的子集;与所述累加器组和所述统计寄存器两者耦合的第二组比较器,用于确定对应于所述累加器组的子集的一组像素字节值,其中,在第一阶段中,所述参数是作为帧的可能的像素字节值的子集而选择的值的范围,并且所述第二组比较器确定出第一组像素字节值;在第二阶段中,所述参数是根据所述第一组像素字节值而确定的,并且所述第二组比较器确定出第二组像素字节值;和耦合到所述第二组比较器的一组寄存器,用于一旦所述第二阶段完毕,则保存所述第二组像素字节值。
附图说明
图1是示出结合本发明实施例的图形控制器操作的示图;
图2是示出在本发明的一个实施例中使用的数据结构的示图;
图3是示出本发明的一个实施例所使用的编码模式的示图;
图4A是创建编码表的方法的流程图;
图4B~图4C是根据本发明的一个实施例用于编码和解码空闲帧的方法的流程图;
图5A是产生对图形控制器的空闲通知的逻辑的示图;
图5B是执行图4A的方法的一个实施例的逻辑的示图;
图6是在其中可以实现本发明的嵌入式图形和存储器芯片的一个实施例的示图;
图7是在其中可以实现本发明的计算机系统的一个实施例的示图。
具体实施方式
在以下对本发明实施例的详细描述中,参考了附图,其中,类似的标记指示相似的元素,并且其中是通过举例说明的方式示出本发明可以在其中被实现的特定实施例。这些实施例被充分详细地描述,以使得本领域的技术人员能够实现本发明,并且应当理解,也可以使用其他实施例,并且可以作出逻辑的、机械的、电的、功能的或者其他的变化,而不脱离本发明的范围。因此,以下的详细描述不应认为是限定的含意,并且本发明的范围只由所附权利要求来确定。
参考图1描述根据本发明一个实施例的压缩和解压缩空闲帧的计算机系统显示适配器100的操作。压缩操作将结合图2和图3被进一步详细地描述。与普通的插入式显示适配器一样,显示适配器100包括诸如微处理器的图形控制器101和图形存储器103。在其他实施例中,图形控制器101可以被嵌入在容纳中央处理单元的主板中,并且系统存储器可以被用作图形存储器103。
图1中所示的实施例中,显示驱动器105通知图形控制器101显示驱动器是空闲的,即,在显示设备113上的图像没有变化。当图形控制器101收到空闲通知时,它随后从显示驱动器105接收的全部帧都是空闲帧107,直到被通知显示驱动器105不再是空闲的。通常,一些像素值将在空闲帧中占主要地位。图形控制器101确定代表总共的空闲帧的预先确定的百分比的像素值,并压缩这些值。得到的被压缩的空闲帧被存储在图形存储器103中(由箭头109示出),结果降低了图形存储器103所消耗的功率。当需要刷新显示设备113上的图像的时候,图形控制器101从图形存储器103读出被压缩的空闲帧,并将其解压缩成由显示设备113显示的完整的帧111。
在图1中所示的另一实施例中,当图形控制器101从显示驱动器105收到重载指示符(override indicator)的时候,它还可以压缩非空闲帧115。当应用程序知道在帧之间的变化很小的时候,例如,只有光标闪烁或者时钟被更新的时候,重载指示符在显示驱动器105中被设置在应用程序级别(application level)。虽然下面的图形控制器101的操作的细节是按照空闲帧而描述的,但是当已经收到重载指示符的时候,图形控制器101可以用相同的方式处理非空闲帧。
图像的颜色深度越大,表示像素颜色所需要的位就越多。这里参考“真彩色”描述本发明,其中,每个像素由三个字节定义,每个字节表示红、蓝和绿色成份中的一个的值,这些成份定义了一个像素的颜色。因此,每个像素字节可以具有0~255的值。本领域的技术人员将立刻理解对于要求更少或者更多数量的位的颜色深度的本发明应用,并且本发明并不被其按照真彩色的描述所限定。还应当理解,本发明于不依赖于显示分辨率。
图形控制器101评价两个空闲帧,以确定哪些像素字节值是在空闲帧中占主要地位的,并从得到的结果创建编码查找表,如图2所示。一旦得到显示驱动器105空闲的通知,图形控制器101初始化第一组计数器200(计数器1-1 201、1-2 203...1-N 205),其中N取决于显示适配器的当前颜色深度。每个计数器200与可能的字节值的子集相关联,其中,集合中的值通常是数字序列,虽然本发明并不如此被限定。因而,举例来说,假设值的范围是从0到255,如果N是32,则每个计数器将对八个不同的字节值计数,例如0~7、8~15等。
当从显示驱动器105收到空闲帧的时候,图形控制器101评价各像素字节,以确定其值与哪个计数器相关联,并将适当的计数器更新一次。一旦帧中所有的像素字节都已经被评价过了,则图形控制器101选择具有最高计数值,即与在帧中出现最频繁的字节值相关联的X个计数器(由箭头207示出)。
图形控制器101初始化第二组计数器210(计数器2-1211、2-2213...2-M 215),以确定在最高的X个计数器中哪些字节值最频繁出现。每个计数器210只与一个字节值相关联。继续该示例,假设X等于4,则M等于32,即四个计数器乘以每个计数器的八个值。应当认识到,图形控制器101可以对计数器200和计数器210使用相同的结构。
一旦收到另一个空闲帧,图形控制器101评价像素字节,更新适当的计数器210,并确定最高的Z个计数器210是否满足阈值Y。如果满足,则图形控制器101对Z个字节值的每一个指定一个代码227,并在编码查找表220中创建包括代码227和相关联的字节值229的条目221、223、225(由箭头217示出)。从而,举例来说,只有当最高四个(Z)值代表了在空闲帧中出现的全部不同的值的至少75%(Y)时,图形控制器101才会压缩空闲帧。应当认识到,参数N、M、X和Z是对于显示适配器100的每个可用的颜色深度而预先确定的,而Y是全部字节值的预先确定的百分比,或者是其他对于某些字节值优势的其他度量。可以通过试验来确定参数N、M、X、Y和Z的各种值。
图形控制器101使用查找表220通过用相关联的代码227在随后的空闲帧中至少替换一个或最低数量的像素字节值229来压缩随后的空闲帧。在图3中所示的实施例中,假定图形存储器103的读/写块大小是128位,四种不同的压缩模式被用于压缩真彩色空闲帧。每个被压缩的像素字节用两位代码来表示。本领域的技术人员将立刻设想到使用其他的代码长度和指定代码值的各种算法的另外的实施例,并且这些另外的实施例被认为是在本发明的范围之内。
每个128位的块用两位的模式字段301、可变长度编码键303和可变长度数据字段305被编码。被压缩的和/或未被压缩的像素字节被存储在数据字段305中。编码键303中的每个位表示被存储的像素字节中的一个。0的位指示相应的像素字节是未被压缩的,1的位指示相应的像素字节是被压缩的。应当认识到,图3中所示的示例性的块编码并非用来限定本发明,本领域的技术人员将容易地设想到同样适用的并被认为是在本发明的范围之内的其他的编码方法。
各压缩模式被设计来将序列中被压缩的像素字节的不同范围进行编码。如果在15个的序列中少于4个像素字节可以被压缩,则使用模式0(00),在数据字段中的15个像素字节中没有一个被压缩,结果在块300的编码字段303中全部是零。表1指明了对于压缩模式1到3的每一个可以被存储在128位块中的被压缩和未被压缩的像素字节的各种组合(组态)。
表1
模式1(01)(数据104位;最大字节22) | 模式2(10)(数据96位;最大字节30) | 模式3(11)(数据99位;最大字节38) | |||
压缩 | 未压缩 | 压缩 | 未压缩 | 压缩 | 未压缩 |
4 | 12 | 13~16 | 8 | 25~28 | 4 |
5~8 | 11 | 17~20 | 7 | 29~32 | 3 |
9~12 | 10 | 21~24 | 6 | 33~36 | 2 |
应当认识到,对于一些组合,因为在数据字段中将存储比编码位更少的像素字节,所以在编码字段303中并非所有的编码位将被使用。因为模式字段301指示了数据字段305的长度,所以在解压缩过程中,即使一些编码位还没有被处理,图形控制器101也将识别出已经从数据字段305解析了全部的像素字节。类似地,对于一些组合,数据字段305的至少1到7个位可以不被使用,并且相应的编码位设置为零,但是图形控制器101将识别出未被使用的字节不代表未被压缩的像素字节,所述未被压缩的像素字节要求8个位。
接着,参考图4A~图4C中的流程图,描述用于由图形控制器执行上面所描述的本发明实施例的操作的具体方法,其中,可执行指令分别由框401至431、框441至471和框481至499来表示。参考流程图描述这些方法使得本领域的技术人员能够开发这样的指令,以在诸如图形控制器101的被适当配置的处理器中执行这些方法。可执行指令可以用计算机程序语言编写,或者可以嵌入在固件逻辑中。另外,在本领域中将可执行指令说成进行一个动作或者引起一个结果是普遍的。这样的表述仅仅是对叙述指令被处理器的执行使得处理进行一个动作或者产生一个结果的简略说法。
首先参考图4A,描述了要被图形控制器执行的动作,其执行创建编码查找表220的两阶段(pass)建立方法400。当图形控制器从显示驱动器收到空闲或者重载通知的时候,调用建立方法400。建立方法400初始化像素值计数器(框401),并等待接收第一空闲帧(框403)。对于该空闲帧中的每个像素字节,方法400通过确定(框407)和递增(框409)适当的阶段一计数器来进行阶段一。一旦该空闲帧中的全部像素字节都已经在阶段一中被评价了,则建立方法400选择最高的X个阶段一计数器(框413),并初始化阶段二计数器(框415)。当方法400接收到另一个空闲帧(框417)的时候,该方法通过确定与各像素字节相关联的,如果有的话,是哪个计数器(框421),并且如果该字节值要被计数的话,则递增适当的阶段二计数器(框423),从而进行阶段二。
一旦第二空闲帧在阶段二中已经被评价过了,则建立方法400确定最高的Z个阶段二计数器(框427),并确定最高的Z个像素值的百分比是否大于阈值Y(框429)。如果是的话,则在框431创建查找表。否则,空闲帧将不被压缩。
图4B示出使用由方法400所创建的查找表以在输入的空闲帧被存储在图形存储器中之前对它们进行压缩的压缩方法440。在框441,帧中的每个像素字节被检查,以确定其值是否出现在查找表中(框443)。如果是的话,表中的相应的代码被存储在被编码的块的数据字段中(框445),相应的编码位被设置为1(框447),并且压缩计数器被递增(框449)。如果像素字节将不被压缩,则字节值被存储在数据字段中(框451),相应的编码位如果还不是零的话则被设置为零(框453,用虚线表示),并且未压缩计数器被递增(框455)。
在框457,压缩方法440确定当前未被压缩的和被压缩的像素字节组合是否与模式组态相匹配。如果是的话,则块的模式字段、编码字段和数据字段被完成(框459),并且所得到的被编码的块被写入存储器中(框461)。如果还有另外的像素要被评价(框463),则压缩方法440返回框441。当空闲帧中全部的像素都已经被存储在图形存储器中,则压缩方法440终止。
假设在框457,当前的组合与模式组态不匹配,则压缩方法440确定是否还有另外的像素要被评价(框465)。如果没有,则被编码的块将被存储为未被压缩的模式0,因而数据字段中的全部存在的代码都被它们的值取代,以解压缩像素字节(框467),模式字段和编码字段被设置成零(框469),并且所得到的被编码的块被写入存储器(框471)。
图4C示出对应于图4B的压缩方法480的解压缩方法480。当图形控制器收到刷新显示器屏幕的命令时,它从存储器将空闲屏幕读出为一组被编码的块(框481)。检查被编码的块的模式字段,以确定块的压缩模式。如果模式是0(框483),则被编码的块的数据字段中的像素字节是未被压缩的并在框485处被输出。如果模式不是0,则方法480基于模式确定编码键的长度(框489),并开始由框491到499所表示的解码块处理。读出编码键中的每个位以确定相应的像素字节是否是被压缩的(框493)。如果是的话,则从数据字段读出两位的代码,并且查找表中相应的值被存储在缓冲器中(框495)。否则,直接从数据字段读出值,并存储在缓冲器中(框497)。当已经从数据字段解析出全部数据的时候,在框485,缓冲器被输出。如果对于帧的全部的被编码的块都已经被处理了(框487),则解压缩方法480终止。
图5A和图5B是执行本发明的操作的逻辑的示例。如果若干系统部件中的至少一个是空闲的,则图5A中所示的逻辑实施例产生对图形控制器102的空闲通知515。逻辑500接收命令流(CS)空闲信号501、存储器接口(MI)空闲信号503、像素流水线(Pix)空闲信号505和文本流水线(Tex)507。通过从相应的掩码509输出一个1,在产生空闲通知515中,逻辑500可以选择仅使用空闲信号中的一个子集。掩码509的输出和被反相的空闲信号被输入到一组与非门511。从全部NAND门511的输出被输入到与门513。当空闲通知515是零的时候,图形控制器101得知至少一个所选的系统部件是空闲的,并继续进行上面所描述的空闲帧压缩。
在一个实施例中,使用在图5B中所示的逻辑确定要被压缩的字节值。输入的帧中的每个像素521被分离成其RGB字节523,并且每个字节的值被输入到一组N个比较器527,其中,所述字节的值被与一组字节值范围525相比较,以确定一组N个累加器529中的哪一个与它的值相关联。来自累加器529的计数被送给统计寄存器531。一旦当前帧中所有的像素字节都已经被累加器529计数了,则统计寄存器531确定最高的X个累加器529,并使对于最高的X个累加器的标识符被保持在X个比较器533中。如果当前帧是第一个空闲帧,则与最高的X个累加器相关联的字节值被用作对于第二个空闲帧的范围525。如果当前帧是第二个空闲帧,则在比较器533中所保持的标识符对应最高的X个字节值,这些值随后被存储在一组X个寄存器535中,并输出537以建立编码查找表。
下面对图6和图7的描述是用来提供计算机硬件配置的概述,在其中可以实现本发明的实施例,但是它并非是用来限定适用的环境。
图6示出嵌入式图形和存储器芯片601,包括图形控制器603和存储器接口605。芯片601通过系统总线609耦合到处理器607。存储器接口605耦合到系统存储器611以对图形控制器603和处理器607两者提供存储器访问。图形芯片601结合了本发明的空闲帧压缩,以在系统存储器中压缩和存储空闲帧,并读取和解压缩这些空闲帧用于在显示设备613上的显示。
图7示出传统计算机系统的一个示例,包括处理器701和通过系统总线723耦合到处理器705的存储器709。存储器709可以是动态随机存取存储器(DRAM),还可以包括静态RAM(SRAM)。桥725将系统总线723耦合到输入/输出(I/O)总线707,其进一步将结合了本发明的非嵌入式显示控制器711、非易失性存储装置715和I/O控制器717耦合到处理单元705。调制解调器或者其他网络接口703也可以被耦合到I/O总线707,以将计算机系统701连接到网络721。显示控制器711以传统的方式控制在显示设备713上的显示,该显示设备713可以是阴极射线管(CRT)或者液晶显示器。输入/输出设备719可以包括键盘、磁盘驱动器、打印机、扫描仪和其他的输入和输出设备,包括鼠标或者其他的点选设备。显示控制器711和I/O控制器717可以用传统的公知的技术实现。输入/输出设备719还可以包括诸如数码照相机的数字图像输入设备,其被耦合到I/O控制器717以便允许来自数字图像输入设备的图像被输入到计算机系统701中。非易失性存储装置715经常是磁硬盘、光盘或者对于大量数据的其他形式的存储器。在执行计算机系统701中的软件的过程中,这些数据中的某些经常是通过直接存储器访问处理而被写入存储器709。本领域的技术人员将立刻认识到,术语“计算机可读介质”包括可被处理器705访问的任何类型的存储设备,并且还包括含有数据信号的载波。
应当认识到,计算机系统701是具有不同体系结构的许多可能的计算机系统中的一个示例。除了图形控制器,用于本发明的典型的计算机系统通常将至少包括处理器、存储器以及将存储器与处理器相耦合的总线。
在图形控制器中对空闲帧的压缩已经被描述了。虽然这里已经示出和描述了特定的实施例,但是本领域的一般技术人员应当认识到,适合用于获得相同目的的任何安排可以取代所示的特定的实施例。本申请意于覆盖本发明的任何适用或者变化方案。
Claims (29)
1.一种用于空闲帧压缩的方法,包括:
将多个第一计数器与多个像素字节值相关联,其中每个计数器与若干像素字节值相关联;
一旦在第一空闲帧中出现所述多个像素字节值中的一个,则递增相关联的第一计数器中的计数;
选择与具有相对高的计数的第一计数器相关联的第一组像素字节值;
将所述第一组像素字节值中的每一个与多个第二计数器中的一个相关联;
一旦在第二空闲帧中出现所述第一组像素字节值中的一个,则递增相关联的第二计数器中的计数;
选择与具有相对高的计数的第二计数器相关联的第二组像素字节值;
将所述第二组像素字节值中的每一个与一个代码相关联;以及
通过用所述相关联的代码在随后的空闲帧中至少替换最低数量的所述第二组像素字节值,压缩所述随后的空闲帧,其中所述压缩包括将所述随后的空闲帧格式化为多个数据块,每个数据块包括:包含表示了多个像素字节的数据的数据字段;和编码键,所述编码键说明在所述数据字段中哪些像素字节是被代码表示的。
2.根据权利要求1所述的方法,其中,如果所述第二组像素字节值满足阈值,则所述第二组像素字节值中的每一个与一个代码相关联。
3.根据权利要求1所述的方法,还包括:
通过用与代码相关联的像素字节值替换所述代码,将被压缩的空闲帧解压缩。
4.根据权利要求1所述的方法,还包括:
在接收到重载指示符时,通过用所述相关联的代码在非空闲帧中至少替换所述第二组像素字节值中的一个,压缩所述非空闲帧。
5.根据权利要求4所述的方法,还包括:
通过用与代码相关联的像素字节值替换所述代码,将被压缩的非空闲帧解压缩。
6.根据权利要求1所述的方法,其中,所述每个数据块还包括说明所述数据字段的压缩模式的模式字段。
7.根据权利要求6所述的方法,其中,所述模式字段确定所述数据字段和所述编码键的长度。
8.根据权利要求6所述的方法,还包括:
基于在所述随后的空闲帧中的所述第二组像素字节值的组态,确定所述压缩模式。
9.根据权利要求1所述的方法,还包括:
在接收所述第一空闲帧之前接收空闲通知。
10.一种用于空闲帧压缩的图形系统,包括:
用于将多个第一计数器与多个像素字节值相关联的装置,其中每个计数器与若干像素字节值相关联;
用于一旦在第一空闲帧中出现所述多个像素字节值中的一个,则递增相关联的第一计数器中的计数的装置;
用于选择与具有相对高的计数的第一计数器相关联的第一组像素字节值的装置;
用于将所述第一组像素字节值中的每一个与多个第二计数器中的一个相关联的装置;
用于一旦在第二空闲帧中出现所述第一组像素字节值中的一个,则递增相关联的第二计数器中的计数的装置;
用于基于在所述第二计数器中的计数,选择与具有相对高的计数的第二计数器相关联的第二组像素字节值的装置;
用于将所述第二组像素字节值中的每一个与一个代码相关联的装置;以及
用于通过用所述相关联的代码在随后的空闲帧中至少替换最低数量的所述第二组像素字节值,压缩所述随后的空闲帧的装置,其中所述压缩包括将所述随后的空闲帧格式化为多个数据块,每个数据块包括:包含表示了多个像素字节的数据的数据字段;和编码键,所述编码键说明在所述数据字段中哪些像素字节是被代码表示的。
11.根据权利要求10所述的图形系统,其中,如果所述第二组像素字节值满足阈值,则所述第二组像素字节值中的每一个与一个代码相关联。
12.根据权利要求10所述的图形系统,还包括:
用于通过用与代码相关联的像素字节值替换所述代码,将被压缩的空闲帧解压缩的装置。
13.根据权利要求10所述的图形系统,还包括:
用于在接收到重载指示符时,通过用所述相关联的代码在非空闲帧中至少替换所述第二组像素字节值中的一个,压缩所述非空闲帧的装置。
14.根据权利要求13所述的图形系统,还包括:
用于通过用与代码相关联的像素字节值替换所述代码,将被压缩的非空闲帧解压缩的装置。
15.根据权利要求10所述的图形系统,其中,所述每个数据块还包括:说明所述数据字段的压缩模式的模式字段。
16.根据权利要求15所述的图形系统,其中,所述模式字段确定所述数据字段和所述编码键的长度。
17.根据权利要求15所述的图形系统,还包括:
用于基于在所述随后的空闲帧中检测所述第二组像素字节值的组态来确定所述压缩模式的装置。
18.根据权利要求10所述的图形系统,还包括:
用于在接收所述第一空闲帧之前接收空闲通知的装置。
19.一种用于空闲帧压缩的计算机系统,包括:
通过总线耦合到存储器的处理器;
通过所述总线耦合到所述处理器的图形控制器;
存储在所述存储器中的多个第一计数器;和
存储在所述存储器中的多个第二计数器,
其中,所述图形控制器用于
将所述多个第一计数器与多个像素字节值相关联,其中每个计数器与若干像素字节值相关联,
一旦在第一空闲帧中出现所述多个像素字节值中的一个,则递增相关联的第一计数器中的计数,
选择与具有相对高的计数的第一计数器相关联的第一组像素字节值,
将所述第一组像素字节值中的每一个与所述多个第二计数器中的一个相关联,
一旦在第二空闲帧中出现所述第一组像素字节值中的一个,则递增相关联的第二计数器中的计数,
选择与具有相对高的计数的第二计数器相关联的第二组像素字节值,
将所述第二组像素字节值中的每一个与一个代码相关联,以及
通过用所述相关联的代码在随后的空闲帧中至少替换最低数量的
所述第二组像素字节值,压缩所述随后的空闲帧,其中所述压缩处理使得所述图形控制器将所述被压缩的随后的空闲帧作为多个数据块存储到所述存储器中,每个数据块包括:包含表示了多个像素字节的数据的数据字段;和编码键,所述编码键说明在所述数据字段中哪些像素字节是被代码表示的。
20.根据权利要求19所述的系统,其中,所述压缩处理还使得如果所述第二组像素字节值满足阈值,则所述图形控制器将所述第二组像素字节值中的每一个与一个代码相关联。
21.根据权利要求19所述的系统,其中,所述压缩处理还使得所述图形控制器一旦从所述处理器收到重载指示符,则通过用所述相关联的代码在从所述处理器收到的非空闲帧中至少替换最低数量的所述第二组像素字节值,来压缩所述非空闲帧。
22.根据权利要求19所述的系统,其中,所述图形控制器一旦从所述处理器收到空闲通知,则执行所述压缩处理。
23.根据权利要求19所述的系统,其中,所述每个数据块还包括:说明所述数据字段的压缩模式的模式字段。
24.根据权利要求23所述的系统,其中,所述存储器是被耦合到所述图形控制器的图形存储器。
25.根据权利要求19所述的系统,其中所述压缩处理被嵌入到所述图形控制器内的逻辑中。
26.根据权利要求19所述的系统,还包括由所述图形控制器执行的解压缩处理,用于使得所述图形控制器通过用与代码相关联的像素字节值替换所述代码,将被压缩的空闲帧解压缩。
27.一种用于确定空闲帧中占主要地位的像素字节值的装置,包括:
耦合到一组累加器的第一组比较器,当一个空闲帧中的像素字节值满足对于所述第一组比较器中的一个的参数的时候,所述第一组比较器中的这个比较器递增相应的累加器;
耦合到所述累加器组的统计寄存器,用于确定具有相对高的计数的多个累加器,所述多个累加器是所述累加器组的子集;
与所述累加器组和所述统计寄存器两者耦合的第二组比较器,用于确定对应于所述累加器组的子集的一组像素字节值,
其中,在第一阶段中,所述参数是作为帧的可能的像素字节值的子集而选择的值的范围,并且所述第二组比较器确定出第一组像素字节值;
在第二阶段中,所述参数是根据所述第一组像素字节值而确定的,并且所述第二组比较器确定出第二组像素字节值;和
耦合到所述第二组比较器的一组寄存器,用于一旦所述第二阶段完毕,则保存所述第二组像素字节值。
28.根据权利要求27所述的装置,还包括:
用于将所述空闲帧中的像素分离为像素字节的逻辑。
29.根据权利要求27所述的装置,其中,所述第一阶段处理第一空闲帧,并且所述第二阶段处理第二空闲帧。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/968,166 | 2001-09-28 | ||
US09/968,166 US6731290B2 (en) | 2001-09-28 | 2001-09-28 | Window idle frame memory compression |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1561504A CN1561504A (zh) | 2005-01-05 |
CN100367316C true CN100367316C (zh) | 2008-02-06 |
Family
ID=25513843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028192427A Expired - Fee Related CN100367316C (zh) | 2001-09-28 | 2002-09-30 | 窗口空闲帧存储器压缩 |
Country Status (4)
Country | Link |
---|---|
US (2) | US6731290B2 (zh) |
CN (1) | CN100367316C (zh) |
TW (1) | TWI244052B (zh) |
WO (1) | WO2003027957A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005524450A (ja) * | 2002-05-02 | 2005-08-18 | フォーキッズ エンターテイメント ライセンシング, インク. | ハンドヘルドデータ圧縮装置 |
US7111142B2 (en) * | 2002-09-13 | 2006-09-19 | Seagate Technology Llc | System for quickly transferring data |
JP2004214828A (ja) * | 2002-12-27 | 2004-07-29 | Ricoh Co Ltd | 画像処理装置、画像処理方法、画像処理用コンピュータプログラム、及びこの画像処理用コンピュータプログラムを記憶する記憶媒体 |
US7348957B2 (en) | 2003-02-14 | 2008-03-25 | Intel Corporation | Real-time dynamic design of liquid crystal display (LCD) panel power management through brightness control |
US20050057484A1 (en) * | 2003-09-15 | 2005-03-17 | Diefenbaugh Paul S. | Automatic image luminance control with backlight adjustment |
US20050057485A1 (en) * | 2003-09-15 | 2005-03-17 | Diefenbaugh Paul S. | Image color transformation to compensate for register saturation |
KR100543592B1 (ko) * | 2004-03-29 | 2006-01-20 | 엘지전자 주식회사 | 플라즈마 디스플레이 패널의 화상처리 장치 |
US8170841B2 (en) * | 2004-04-16 | 2012-05-01 | Knowledgebase Marketing, Inc. | Predictive model validation |
US8358262B2 (en) | 2004-06-30 | 2013-01-22 | Intel Corporation | Method and apparatus to synchronize backlight intensity changes with image luminance changes |
US20100202532A1 (en) * | 2007-03-09 | 2010-08-12 | Dolby Laboratories Licensing Corporation | Multi-frame motion extrapolation from a compressed video source |
US9218040B2 (en) | 2012-09-27 | 2015-12-22 | Apple Inc. | System cache with coarse grain power management |
US9058676B2 (en) * | 2013-03-26 | 2015-06-16 | Apple Inc. | Mechanism to detect idle screen on |
US9153212B2 (en) * | 2013-03-26 | 2015-10-06 | Apple Inc. | Compressed frame writeback and read for display in idle screen on case |
US9400544B2 (en) | 2013-04-02 | 2016-07-26 | Apple Inc. | Advanced fine-grained cache power management |
US8984227B2 (en) | 2013-04-02 | 2015-03-17 | Apple Inc. | Advanced coarse-grained cache power management |
US9396122B2 (en) | 2013-04-19 | 2016-07-19 | Apple Inc. | Cache allocation scheme optimized for browsing applications |
US9261939B2 (en) | 2013-05-09 | 2016-02-16 | Apple Inc. | Memory power savings in idle display case |
US10565677B2 (en) * | 2017-10-16 | 2020-02-18 | Think Silicon Sa | System and method for adaptive z-buffer compression in low power GPUS and improved memory operations with performance tracking |
US11405622B2 (en) * | 2020-04-22 | 2022-08-02 | Apple Inc. | Lossless compression techniques |
CN113993163B (zh) * | 2021-10-26 | 2023-07-25 | 新华三信息安全技术有限公司 | 一种业务处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5512921A (en) * | 1994-06-22 | 1996-04-30 | Microsoft Corporation | Visual display system having low energy data storage subsystem with date compression capabilities, and method for operating same |
CN1230080A (zh) * | 1998-03-19 | 1999-09-29 | 日本胜利株式会社 | 采用一种自适应量化技术的视频信号编码方法及设备 |
CN1248863A (zh) * | 1998-09-17 | 2000-03-29 | 汤姆森多媒体公司 | 图形数据压缩方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4813056A (en) | 1987-12-08 | 1989-03-14 | General Electric Company | Modified statistical coding of digital signals |
US4914508A (en) * | 1988-04-27 | 1990-04-03 | Universal Video Communications Corp. | Method and system for compressing and statistically encoding color video data |
JP2863818B2 (ja) * | 1990-08-31 | 1999-03-03 | 工業技術院長 | 動画像の変化点検出方法 |
US5764804A (en) * | 1993-10-14 | 1998-06-09 | Seiko Epson Corporation | Data encoding and decoding system |
JP2647033B2 (ja) * | 1994-11-24 | 1997-08-27 | 日本電気株式会社 | ルックアップテーブル作成方法及びルックアップテーブル作成装置 |
US5740345A (en) * | 1995-03-28 | 1998-04-14 | Compaq Computer Corporation | Method and apparatus for displaying computer graphics data stored in a compressed format with an efficient color indexing system |
US5930387A (en) * | 1995-06-05 | 1999-07-27 | Apple Computer, Inc. | Method and apparatus for encoding color image data using dynamic color matching |
US5734744A (en) * | 1995-06-07 | 1998-03-31 | Pixar | Method and apparatus for compression and decompression of color data |
US5930390A (en) | 1996-03-28 | 1999-07-27 | Intel Corporation | Encoding/decoding signals using a remap table |
US6037982A (en) * | 1996-03-28 | 2000-03-14 | Intel Corporation | Multi-pass video compression |
US5774191A (en) * | 1996-06-26 | 1998-06-30 | Intel Corporation | Chroma-key color range determination |
US5845140A (en) * | 1997-02-20 | 1998-12-01 | Intel Corporation | Method and apparatus for ensuring CPU halts during idle processing |
US6359625B1 (en) * | 1997-05-27 | 2002-03-19 | National Semiconductor Corporation | Video refresh compression |
US6195458B1 (en) * | 1997-07-29 | 2001-02-27 | Eastman Kodak Company | Method for content-based temporal segmentation of video |
US5961617A (en) * | 1997-08-18 | 1999-10-05 | Vadem | System and technique for reducing power consumed by a data transfer operations during periods of update inactivity |
-
2001
- 2001-09-28 US US09/968,166 patent/US6731290B2/en not_active Expired - Lifetime
-
2002
- 2002-09-26 TW TW091122156A patent/TWI244052B/zh not_active IP Right Cessation
- 2002-09-30 CN CNB028192427A patent/CN100367316C/zh not_active Expired - Fee Related
- 2002-09-30 WO PCT/US2002/031329 patent/WO2003027957A1/en not_active Application Discontinuation
-
2004
- 2004-03-11 US US10/800,182 patent/US7042461B2/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5512921A (en) * | 1994-06-22 | 1996-04-30 | Microsoft Corporation | Visual display system having low energy data storage subsystem with date compression capabilities, and method for operating same |
CN1230080A (zh) * | 1998-03-19 | 1999-09-29 | 日本胜利株式会社 | 采用一种自适应量化技术的视频信号编码方法及设备 |
CN1248863A (zh) * | 1998-09-17 | 2000-03-29 | 汤姆森多媒体公司 | 图形数据压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1561504A (zh) | 2005-01-05 |
US7042461B2 (en) | 2006-05-09 |
WO2003027957A1 (en) | 2003-04-03 |
WO2003027957A8 (en) | 2003-07-24 |
TWI244052B (en) | 2005-11-21 |
US20040174369A1 (en) | 2004-09-09 |
US6731290B2 (en) | 2004-05-04 |
US20030067471A1 (en) | 2003-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100367316C (zh) | 窗口空闲帧存储器压缩 | |
CN101438319B (zh) | 使用多图形处理单元的改进的图形去阶梯 | |
CN101154291B (zh) | 图像数据压缩方法、图像显示方法及其相应装置 | |
US20180144725A1 (en) | Adaptive lossy framebuffer compression with controllable error rate | |
CN101919254B (zh) | 基于预测的图像处理 | |
US7663511B2 (en) | Dynamic character encoding | |
US7554464B1 (en) | Method and system for processing data having a pattern of repeating bits | |
CN107092961B (zh) | 一种基于模式频率统计编码的神经网络处理器及设计方法 | |
EP0154860A2 (en) | Model driven data compression/decompression system for data transfer | |
CN101272442B (zh) | 数字图像无损压缩方法和装置、解析方法及图像译码器 | |
CN110533117B (zh) | 图像比对方法、装置、设备和存储介质 | |
TWI273779B (en) | Method and apparatus for optimized lossless compression using a plurality of coders | |
CN100586182C (zh) | 图像处理、压缩、解压缩、传输、发送、接收装置和方法以及显示装置 | |
CN103152054A (zh) | 算术编码的方法和设备 | |
CN1291826A (zh) | 可变长编码方法和装置 | |
CN105120276A (zh) | 自适应Motion JPEG编码方法和系统 | |
US6205255B1 (en) | Method and apparatus for run-length encoding of multi-colored images | |
US10771089B2 (en) | Method of input data compression, associated computer program product, computer system and extraction method | |
CN103262123A (zh) | 图块编码和解码 | |
US10565677B2 (en) | System and method for adaptive z-buffer compression in low power GPUS and improved memory operations with performance tracking | |
US20010022664A1 (en) | Image processing device | |
CN114466082B (zh) | 数据压缩、数据解压方法、系统及人工智能ai芯片 | |
US5880688A (en) | Arithmetic coding context model that adapts to the amount of data | |
US20110038551A1 (en) | Method for encoding and decoding images | |
US20060171597A1 (en) | Method and apparatus for compressing a stream of video data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080206 Termination date: 20140930 |
|
EXPY | Termination of patent right or utility model |