CN101038736A - 实时压缩及解压缩的绘图系统 - Google Patents
实时压缩及解压缩的绘图系统 Download PDFInfo
- Publication number
- CN101038736A CN101038736A CN 200610059826 CN200610059826A CN101038736A CN 101038736 A CN101038736 A CN 101038736A CN 200610059826 CN200610059826 CN 200610059826 CN 200610059826 A CN200610059826 A CN 200610059826A CN 101038736 A CN101038736 A CN 101038736A
- Authority
- CN
- China
- Prior art keywords
- image
- real time
- decompression
- real
- time compression
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
Abstract
本发明是有关于一种实时压缩及解压缩的绘图系统,包含一储存装置、一解压缩装置、一运算引擎、一第一实时压缩装置、一暂存缓冲区、及一第一实时解压缩装置。储存装置储存一小精灵的压缩影像及一背景的压缩影像;解压缩装置执行解压缩运算,而得到一小精灵影像及一背景影像;运算引擎对解压缩的小精灵影像及背景影像执行影像处理,以产生一部分的显示影像;第一实时压缩装置对部分的显示影像执行实时压缩处理,而得到一压缩的部分显示影像;暂存缓冲区暂存压缩的部分显示影像;第一实时解压缩装置对压缩的部分显示影像执行实时解压缩处理,并输出一影像信号,以供显示。
Description
技术领域
本发明涉及一种绘图系统,特别涉及一种实时压缩及解压缩的绘图系统。
背景技术
图1是已知游戏应用平台的方框图。在一般二维(two dimension、2D)游戏应用的平台上,为了节省运算量与带宽,通常是把小精灵(sprite)影像与背景(background)影像预先编码并储存于一储存装置110中。而当运算引擎(rendering engine、RE)130要读取小精灵影像与背景影像的时候,一解压缩装置120再把小精灵影像与背景影像进行解码。运算引擎(RE)130再对小精灵影像与背景影像进行影像处理,例如执行透明处理(alpha blending)。然后,运算引擎(RE)130把影像处理后的RGB值储存于一暂存缓冲区(framebuffer)112。一显示装置140再读取暂存缓冲区112的数据,进而显示小精灵影像与背景影像。在对小精灵影像与背景影像编码时,最常用的方法,除了利用可变长度(variable length coding,VLC)编码,还可以利用颜色对照表(color look-up table、CLUT)或是霍夫曼(Huffman)编码等。
当运算引擎(RE)130储存至暂存缓冲区112的数据已经是RGB值时,可针对此张影像再进一步做编码。在实时绘图及显像系统(real-time renderingand display graphic image)的应用中,已知技术是利用颜色对照表(CLUT)。也就是说,运算引擎(RE)130写到暂存缓冲区112的数据不再是RGB值,而是以指针(index)为主。例如一张影像只需256种颜色时,则在写到暂存缓冲区112所需的数据只要8位的指针值即可。显示影像时,再根据指针值去查询一颜色对照表(CLUT)而得到真正的RGB数据,该RGB数据可为16位或是24位。然而,此种方法最大的缺点是限制住颜色的种类。
目前运算引擎(RE)130的设计皆以命令形式来驱动,所以,运算引擎(RE)130必须把一整张影像进行影像处理完成后,已知编码方法再依据此张影像以决定编码的方式,故已知编码方法通常都无法达到动态的效果。例如当运算引擎(RE)130收到一个要显示小精灵的命令且此小精灵的位置为{(20,20)-(39,39)}时,运算引擎(RE)130就会去从装置中110读取此小精灵的数据,然后把此小精灵的数据写到暂存缓冲区112的{(20,20)-(39,39)}区块中。当有另一个显示另一小精灵的命令且该小精灵的位置为{(10,10)-(49,49)}时,那么先前所显示小精灵影像就会被覆盖过去。由上所述可知,如果要对运算引擎(RE)130输出的RGB值做压缩的话,就必须等运算引擎(RE)130处理完一整张影像后,才能开始对整张影像执行压缩编码,因此会产生许多带宽的浪费,也不适合实时绘图及显像系统的架构。
而目前已知的mpeg与jpeg编码压缩方法,由于需要大量的运算量和带宽,也不适合实时绘图及显像系统的应用。由于运算引擎(RE)130的输出没有被压缩,故需要较大的带宽以传送数据至该暂存缓冲区112。因此难以将暂存缓冲区112及储存装置中110整合至同一存储器装置中,而增加系统硬件成本。因此,已知的实时绘图及显像系统仍存有诸多的缺陷而有予以改进的必要。
发明内容
本发明的主要目的是提供一种实时压缩及解压缩的绘图系统,以节省运算引擎传送数据至一暂存缓冲区的带宽,且可达到实时影像输出的功效,藉此减少暂存缓冲区的存取时间,以提升整个系统的效能。
本发明的另一目的是提供一种实时压缩及解压缩的绘图系统,以节省运算引擎传送数据至一暂存缓冲区的使用量,且可达到实时影像输出的功效,从而减少硬件成本。
为了达到上述目的,本发明提出一种实时压缩及解压缩的绘图系统,包含一储存装置、一解压缩装置、一运算引擎、一第一实时压缩装置、一暂存缓冲区及一第一实时解压缩装置。该储存装置储存至少一小精灵的压缩影像及至少一背景的压缩影像;该解压缩装置耦合至该储存装置,以对该至少一小精灵的压缩影像及该至少一背景的压缩影像执行解压缩运算而得到至少一小精灵影像及至少一背景影像;该运算引擎耦合至该解压缩装置,以对经过解压缩后的该至少一小精灵影像及该至少一背景影像执行影像处理,以产生一部分的显示影像;该第一实时压缩装置耦合至该运算引擎,以对该部分的显示影像执行实时压缩处理,而产生一压缩的部分显示影像;该暂存缓冲区耦合至该第一实时压缩装置,以暂存该压缩的部分显示影像;该第一实时解压缩装置耦合至该暂存缓冲区,以对该压缩的部分显示影像执行实时解压缩处理,并输出一影像信号,以供显示。
综上所述,本发明利用第一实时压缩装置将影像处理后的多个像素执行实时压缩,以节省传送至暂存缓冲区的数据量,用以降低暂存缓冲区的存取频带宽及减少暂存缓冲区的硬件需求。
附图说明
图1是已知游戏应用平台的方框图;
图2是本发明的实时压缩及解压缩的绘图系统的方框图;
图3是本发明的小精灵的数据结构示意图;
图4是本发明的运算引擎执行影像处理的示意图;
图5是本发明的golomb-rice编码运算的示意图;
图6是本发明的压缩数据格式的示意图;
图7是本发明实时压缩及解压缩的绘图系统另一实施例的方框图。
具体实施方式
本发明是一种实时压缩及解压缩的绘图系统,当一运算引擎执行完影像处理,将影像处理处理后的多个像素执行实时压缩,以节省运算引擎传送影像处理后的数据至一暂存缓冲区的带宽,且可达到实时影像输出的功效,从而减少暂存缓冲区的存取时间,以提升整个系统的效能。
图2是本发明实时压缩及解压缩的绘图系统的方框图。该绘图系统包含一储存装置210、一解压缩装置220、一运算引擎230、一第一实时压缩装置240、一暂存缓冲区(frame buffer)250、一第一实时解压缩装置260、及一显示装置270。
该储存装置210储存至少一小精灵的压缩影像及至少一背景的压缩影像。该解压缩装置220耦合至该储存装置210,以对该至少一小精灵的压缩影像及该至少一背景的压缩影像执行解压缩运算而得到至少一小精灵影像及至少一背景影像。
该运算引擎230耦合至该解压缩装置220,以对解压缩的该至少一小精灵影像及该至少一背景影像执行影像处理,以产生一部分的显示影像。该第一实时压缩装置240耦合至该运算引擎230,以对该部分的显示影像执行实时压缩处理,而产生一压缩的部分显示影像。
该暂存缓冲区250耦合至该第一实时压缩装置240,以暂存该压缩的部分显示影像。该第一实时解压缩装置260耦合至该暂存缓冲区250,以对该压缩的部分显示影像执行实时解压缩处理,并输出一影像信号,以供显示。该显示装置270耦合至该第一实时解压缩装置260,以显示该第一实时解压缩装置输出的影像信号。
该储存装置210除了储存至少一小精灵的压缩影像及至少一背景的压缩影像外,该储存装置210还储存该至少一小精灵的数据结构。图3是小精灵的数据结构示意图,其中,该数据结构包含一坐标字段310、一深度字段320、及一透明处理字段330。
该坐标字段310是记录小精灵显像时的位置。该深度字段320是记录该小精灵显像时的深度(depth)。该透明处理字段330记录该小精灵显像时是否执行透明处理(alpha blending)。
图4是该运算引擎230执行影像处理的示意图。在图4中,该储存装置210储存小精灵A的压缩影像410及数据结构420~440,以及小精灵B的压缩影像450及数据结构460~480。该运算引擎230处理一显示影像490的像素(i,j)时,该运算引擎230先检测像素(i,j)是否落在小精灵影像中。也就是说,该运算引擎230比较像素(i,j)与小精灵A的坐标420、小精灵B的坐标460。例如,像素(0,0)没有落在小精灵A的坐标及小精灵B的坐标中,故该运算引擎230获取背景的影像,作为像素(0,0)影像数据。像素(1,3)落在小精灵A的坐标中,但没有落在小精灵B的坐标中,故该运算引擎230获取小精灵A的影像,作为像素(1,3)影像数据。像素(3,5)落在小精灵A的坐标中及小精灵B的坐标中,但是小精灵B的深度为1且小精灵A的深度为2,故该运算引擎230获取小精灵B的影像,作为像素(3,5)影像数据。
该运算引擎230在处理像素(1,3)时,小精灵A的透明处理为0,故该运算引擎230获取小精灵A的对应处的影像,作为像素(1,3)影像数据。若小精灵A的透明处理为1,则该运算引擎230将小精灵A对应处的影像与背景影像做透明处理(alpha blending)后,再将透明处理后的影像数据作为像素(1,3)影像数据。
该运算引擎230针对每8个像素执行影像处理后,则将该8个像素为一组传送至该第一实时压缩装置240。
该第一实时压缩装置240对该8个像素值执行哈达玛转换(HadamardTransform),以获得该多个像素的频率域值。该哈达玛转换可以用公式(1)描述:
其中,p0~p7为该8个像素值,h0~h7为该8个像素值的频率域值。h0可视为直流值(DC term),h1~h7可视为交流值(AC term)。当该显示影像490的格式为RGB时,p0~p7为该8个像素的R值、G值、或是B值。当该显示影像490的格式为YUV时,p0~p7为该8个像素的Y值、U值、或是V值。
该第一实时压缩装置240再对h1~h7执行golomb-rice编码运算。图5是golomb-rice编码运算的示意图。例如,h1为-6,golomb-rice编码运算是先将6除以4,而获得商为1,余数为2。因为余数为2故字段B为10。因为商为1故字段A为01。若商为2则字段A为001,若商为3则字段A为0001,依序类推。由于h1为-6,故正负号字段为1。故h1为-6时,经由golomb-rice编码后,产生01101b。
该第一实时压缩装置240依据h0及golomb-rice编码后的数据,产生一对应于该8个像素p0~p7的压缩数据。图6是该压缩数据的格式的示意图。因为h0为一直流值(DC term),故以直流字段620记录h0,其中,直流字段620是8位。h1~h7为交流值(AC term),其值接近于0,故经golomb-rice编码后可放置于29位的交流字段630中。
若h1~h7经golomb-rice编码后的位数大于29位时,也就是h1~h7经golomb-rice编码后无法放置于29位的交流字段630中,则先将h1~h7向右位移1位(也就是将h1~h7的值除以2),再对位移后的h1~h7执行golomb-rice编码。同时,在位移字段610中记录001b,以表示h1~h7向右位移1位。若仍无法放置于29位的交流字段630中,则先将h1~h7向右位移2位(也就是将h1~h7的值除以4),再对位移后的h1~h7执行golomb-rice编码。同时,在位移字段610中记录010b,以表示h1~h7向右位移2位。依此类推,直至将golomb-rice编码后的编码数据放置于29位的交流字段630中为止。
该第一实时压缩装置240则将如图6所示的压缩数据写入该暂存缓冲区250中。当要显示影像时,该第一实时解压缩装置260从该暂存缓冲区250读取压缩数据,并对该压缩数据执行反golomb-rice解码运算后,以获得对应该多个像素的频率域值h1~h7。
解压缩时,请一并参照图6的该压缩数据格式,当字段A为1,表示对应的hi(i=1~7)在该压缩数据中占4位,且hi的大小为“字段B的值”和“位移字段的值”的乘积的总和。字段A为01,表示对应的hi(i=1~7)在该压缩数据中占5位,且hi的大小为“4+字段B的值”和“位移字段的值”的乘积的总和。字段A为001,表示对应的hi(i=1~7)在该压缩数据中占6位,且hi的大小为“4×2+字段B的值”和“位移字段的值”的乘积的总和。依序类推,即可获得对应该多个像素的频率域值h1~h7。
该第一实时解压缩装置260在对该多个像素的频率域值h0~h7执行反哈达玛转换(inverse Hadamard Transform)运算后,可获得对应该多个像素值p0~p7。该反哈达玛转换可以用公式(2)描述:
该第一实时解压缩装置260经由反哈达玛转换获得空间域(spatialdomain)的多个像素值p0~p7,再将多个像素值p0~p7传送至该显示装置270,以显示对应的影像。
于本实施例中,该储存装置210及该暂存缓冲区250可为存储器。当该储存装置210及该暂存缓冲区250为存储器时,该储存装置210及该暂存缓冲区250可整合至同一存储器中。
图7是本发明实时压缩及解压缩的绘图系统另一实施例的方框图。其与图2主要差别在于图7中新增数据供应装置710、一第二实时压缩装置720、及一第二实时解压缩装置730。
该数据供应装置710用以提供一对象的影像数据。该数据供应装置710可为一CCD影像撷取装置、或是一CMOS影像撷取装置。
该第二实时压缩装置720耦合至该数据供应装置710,以对该对象影像执行实时压缩处理,再将压缩的对象影像储存至该暂存缓冲区250中。该第二实时解压缩装置730耦合至该暂存缓冲区250,以对该压缩的对象影像执行实时解压缩处理,以获得该对象影像。该运算引擎230耦合至该第二实时解压缩装置730,以将该对象影像叠至于该显示影像之上(superimposed)。
综上所述,本发明在运算引擎230执行完影像处理后利用第一实时压缩装置240将影像处理后的多个像素执行实时压缩,以节省传送至暂存缓冲区250的数据量,用以降低暂存缓冲区250的存取频带宽及减少暂存缓冲区250的硬件需求。总而言之,本发明主要的突出技术特征有三:第一,由于运算引擎(RE)230的输出数据被压缩,故相较于已知技术,仅需较少的带宽即可传送数据至该暂存缓冲区250,并利用第一实时解压缩装置260执行实时解压缩,而达到实时影像输出的功效;第二,由于经运算引擎的输出数据被压缩,数据量大幅减少,藉此可以减少暂存缓冲区250的存取时间,以提升整个系统的效能;最后,相关数据的减少,间接减少暂存缓冲区的硬件需求,因此可将暂存缓冲区250及储存装置中210整合至同一存储器装置中,更进而减少系统硬件成本的功效。
上述实施例仅是为了方便说明而举例而已,本发明所主张的权利范围自应以权利要求所述为准,而非仅限于上述实施例。
Claims (17)
1、一种实时压缩及解压缩的绘图系统,包含:
一储存装置,其储存至少一小精灵的压缩影像及至少一背景影像;
一解压缩装置,耦合至该储存装置,以对该至少一小精灵的压缩影像及该至少一背景的压缩影像执行解压缩运算而得到至少一小精灵影像及至少一背景影像;
一运算引擎,耦合至该解压缩装置,以对解压缩的该至少一小精灵影像及该至少一背景影像执行影像处理,以产生一部分的显示影像;
一第一实时压缩装置,耦合至该运算引擎,以对该部分的显示影像执行实时压缩处理,而得到一压缩的部分显示影像;
一暂存缓冲区,耦合至该第一实时压缩装置,以暂存该压缩的部分显示影像;以及
一第一实时解压缩装置,耦合至该暂存缓冲区,以对该压缩的部分显示影像执行实时解压缩处理,并输出一影像信号,以供显示。
2、如权利要求1所述的实时压缩及解压缩的绘图系统,还包含一显示装置,其耦合至该第一实时解压缩装置,以显示该第一实时解压缩装置输出的影像信号。
3、如权利要求1所述的实时压缩及解压缩的绘图系统,其中,该储存装置还储存了该至少一小精灵的一数据结构。
4、如权利要求3所述的实时压缩及解压缩的绘图系统,其中,该数据结构包含一坐标字段、一深度字段及一透明处理字段,该坐标字段记录该至少一小精灵显像时的位置,该深度字段记录该至少一小精灵显像时的深度,该透明处理字段记录该至少一小精灵显像时是否执行透明处理。
5、如权利要求4所述的实时压缩及解压缩的绘图系统,其中,该运算引擎是对该至少一小精灵影像及该至少一背景影像做一透明处理。
6、如权利要求4所述的实时压缩及解压缩的绘图系统,其中,该运算引擎在获取像素的影像数据时,根据小精灵的像素值判断像素是否落在小精灵影像中,如没有,则获取背景的影像作为该像素影像数据;如果落在一个小精灵影像中,则以该小精灵的影像作为该像素影像数据;如果同时落在多个小精灵影像中,则比较这些小精灵的深度值,以深度值最小的小精灵的影像作为该像素影像数据。
7、如权利要求1所述的实时压缩及解压缩的绘图系统,其中,该第一实时压缩装置是对该部分的显示影像的多个像素值执行哈达玛转换,以获得该多个像素的频率域值。
8、如权利要求7所述的实时压缩及解压缩的绘图系统,其中,该第一实时压缩装置是对该多个频率域值执行golomb-rice编码运算后,以获得对应于该多个像素的一压缩数据,再将该压缩数据储存至该暂存缓冲区。
9、如权利要求8所述的实时压缩及解压缩的绘图系统,其中,该第一实时解压缩装置是对该压缩数据执行反golomb-rice解码运算后,以获得对应该多个像素的频率域值。
10、如权利要求9所述的实时压缩及解压缩的绘图系统,其中,该第一实时解压缩装置是对该多个像素的频率域值执行反哈达玛转换运算后,以获得对应该多个像素值。
11、如权利要求7所述的实时压缩及解压缩的绘图系统,其中,该多个像素为8个像素。
12、如权利要求1所述的实时压缩及解压缩的绘图系统,其中,该储存装置及该暂存缓冲区为存储器。
13、如权利要求12所述的实时压缩及解压缩的绘图系统,其中,该储存装置及该暂存缓冲区是整合至同一存储器中。
14、如权利要求2所述的实时压缩及解压缩的绘图系统,其更包含:
一数据供应装置,其用以提供一对象的影像数据;
一第二实时压缩装置,耦合至该数据供应装置,以对该对象影像执行实时压缩处理,而得到一压缩的对象影像,再将该压缩的对象影像储存至该暂存缓冲区中;以及
一第二实时解压缩装置,耦合至该暂存缓冲区,以对该压缩的对象影像执行实时解压缩处理,以获得该对象影像。
15、如权利要求14所述的实时压缩及解压缩的绘图系统,其中,该运算引擎耦合至该第二实时解压缩装置,以将该对象影像叠至于该显示影像之上。
16、如权利要求15所述的实时压缩及解压缩的绘图系统,其中,该数据供应装置为一影像撷取装置。
17、如权利要求16所述的实时压缩及解压缩的绘图系统,其中,该影像撷取装置为一CCD影像撷取装置或一CMOS影像撷取装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100598260A CN100573656C (zh) | 2006-03-15 | 2006-03-15 | 实时压缩及解压缩的绘图系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100598260A CN100573656C (zh) | 2006-03-15 | 2006-03-15 | 实时压缩及解压缩的绘图系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101038736A true CN101038736A (zh) | 2007-09-19 |
CN100573656C CN100573656C (zh) | 2009-12-23 |
Family
ID=38889601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100598260A Expired - Fee Related CN100573656C (zh) | 2006-03-15 | 2006-03-15 | 实时压缩及解压缩的绘图系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100573656C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103918011A (zh) * | 2011-11-07 | 2014-07-09 | 史克威尔·艾尼克斯控股公司 | 渲染系统、渲染服务器、其控制方法、程序以及记录媒体 |
-
2006
- 2006-03-15 CN CNB2006100598260A patent/CN100573656C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103918011A (zh) * | 2011-11-07 | 2014-07-09 | 史克威尔·艾尼克斯控股公司 | 渲染系统、渲染服务器、其控制方法、程序以及记录媒体 |
US9717988B2 (en) | 2011-11-07 | 2017-08-01 | Square Enix Holdings Co., Ltd. | Rendering system, rendering server, control method thereof, program, and recording medium |
Also Published As
Publication number | Publication date |
---|---|
CN100573656C (zh) | 2009-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5930390A (en) | Encoding/decoding signals using a remap table | |
US20070076971A1 (en) | Compression of images for computer graphics | |
EP2512137A2 (en) | A method and system for data compression | |
US20130021350A1 (en) | Apparatus and method for decoding using coefficient compression | |
CN101123723A (zh) | 基于图形处理器的数字视频解码方法 | |
CN109889846B (zh) | 一种Demura表数据的压缩与解压方法、装置及编解码系统 | |
CN101494788B (zh) | 视频图像的压缩/解压缩方法与装置 | |
CN101059953A (zh) | 图像译码系统与方法 | |
CN101030365A (zh) | 一种数字图像的存储、显示方法及装置 | |
EP3104613A1 (en) | Video processing system | |
CN1285217C (zh) | 运动图像的压缩装置及利用其的摄像装置 | |
CN102970544A (zh) | Jpeg编码和解码方法及系统 | |
CN1574966A (zh) | 压缩运动图像的解压装置及利用其的图像显示装置 | |
KR102194615B1 (ko) | 그래픽 애플리케이션을 위한 타일 기반 압축 및 압축 해제 | |
CN101038736A (zh) | 实时压缩及解压缩的绘图系统 | |
US6519286B1 (en) | Method and apparatus for decoding a stream of data | |
CN1182488C (zh) | 数据压缩/解压缩方法与影像数据压缩/解压缩装置 | |
Okada et al. | A single chip motion JPEG codec LSI | |
CN1246019A (zh) | 用于从编码高分辨率视频信号中产生解码低分辨率视频信号的系统 | |
CN101754034B (zh) | 透明属性的离散余弦转换压缩图数据的解压缩系统及方法 | |
TWI307056B (zh) | ||
CN1852439A (zh) | 一种摄像头和数据处理装置 | |
CN2583731Y (zh) | 影像数据压缩装置 | |
JPH0746407A (ja) | 画像データ圧縮装置および画像データ復元装置 | |
CN1856102A (zh) | 逆扫描频率系数的方法和系统 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091223 Termination date: 20170315 |