CN1606038A - 将位样型或比特流中数据压缩的装置 - Google Patents

将位样型或比特流中数据压缩的装置 Download PDF

Info

Publication number
CN1606038A
CN1606038A CN200410087937.3A CN200410087937A CN1606038A CN 1606038 A CN1606038 A CN 1606038A CN 200410087937 A CN200410087937 A CN 200410087937A CN 1606038 A CN1606038 A CN 1606038A
Authority
CN
China
Prior art keywords
pixel
shielding
order
data
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
Application number
CN200410087937.3A
Other languages
English (en)
Other versions
CN1301485C (zh
Inventor
提莫·佩塔西
柏瑞斯·柏克潘克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN1606038A publication Critical patent/CN1606038A/zh
Application granted granted Critical
Publication of CN1301485C publication Critical patent/CN1301485C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

本发明涉及一种将位样型或比特流中数据压缩的装置,特别是一种绘图系统,包含一逻辑用以产生一屏蔽来辨识复数个位中未被一随后的计算所影响的位,上述的绘图系统更包含一对应至该屏蔽的压缩逻辑,用以产生一压缩比特流,使得未被该计算所影响的该些位未包含于该压缩比特流之中。本发明还提供另一种绘图系统,包含一逻辑用以产生一屏蔽来辨识比特流中复数个位置在一压缩运算期间未被移除的位置。上述的绘图系统更包含一对应至该屏蔽的逻辑,用以产生一压缩比特流,使得未被移除的该些位置通过一适当的量值变化挪移相继位置的内容来加以移除,如此得以覆盖那些应被移除(或前次被挪移)的位置的内容。

Description

将位样型或比特流中数据压缩的装置
技术领域
本发明涉及一种将位样型或比特流中数据压缩的装置,即一种绘图系统,特别是一种比特流或位样型(bit pattern)中数据压缩的装置。
背景技术
如大家所知,三维(3D;three-dimensional)计算机绘图技术与科学着重于如何产生三维物件的二维影像,以及将其彩现(rendering)或显示于一显示装置或一显示器,如CRT(传统映像管显示器)、LCD(平面液晶显示器)。此物件可以是一简单的几何图元(primitive),例如:一个点、一线段、一三角形或一多边形;而较为复杂的物件其可以通过一系列彼此连接的平面多边形来表示该物件,如此来展现至一显示装置,例如:将物件通过一系列连接的平面三角形来表示该物件。所以几何图元最后能够以一顶点或一组顶点来叙述,举例来说,坐标(x,y,z)用以定义一个点以及一线段的终点或一多边形的一角。
为了产生一数据组以通过投射表示三维图元至二维空间的观看平面,而呈现影像资料于一计算机屏幕或其它显示装置,图元的许多顶点通过一系列的运算或绘图彩现管线(graphics-rendering pipeline)的处理阶段来加以处理。一般的管线仅为一系列串联处理单元或处理阶段,其中前一阶段的输出将被当作下一随后阶段的输入。一绘图处理器中包含许多阶段,例如:每一顶点运算(per-vertex operations)、图元配置运算(primitive assembly operations)、像素运算(pixel operations)、材质配置运算(texture assembly operations)、图形描绘运算(rasterizationoperations)以及资料分段运算(fragment operations)。
在一典型绘图显示系统中,一影像数据库(例如:一指令集)可以储存在此场景(scene)中的许多物件的描述。这些物件以一些小多边形被加以描述,这些多边形覆盖该物件的表面,许多分割图块(tiles)以同样的方式覆盖一墙面或其它表面。每一多边形被描述为顶点坐标(模型坐标中的X、Y、Z)的列表,以及材料表面性质的一些规格详述(例如:颜色、材质、亮度等等),也有可能包含每一顶点至该表面的法线向量。对于具有复杂曲面的三维物件而言,多边形一般必须是三角形或四边形,而后者通常可以被分解成许多成对的三角形。
一转换引擎用以转换物件的坐标来对应至使用者输入所选择的观看角度。此外,使用者可以指定浏览的区域、所制造影像的大小、浏览区块所涵盖的体积,以便使用者依其所需包含或去除背景。
一旦浏览区域被选择之后,一修剪逻辑(clipping logic)用以去除超出浏览区域范围的多边形(例如:三角形),接着修剪该些多边形,其有可能部分在范围之内而部分在范围之外。这些修剪过后的多边形相当于具有新的边缘(edges)的浏览区域内的多边形,而这些新的边缘相当于浏览区域的该些边缘。接着,多边形的顶点,相当于浏览屏幕坐标(X、Y坐标)以及每一顶点的相关深度(即Z坐标),被传送至下一阶段。接着在一典型系统中,一光影模块(lighting model)在考量一光源下将被加以应用。这些多边形包含其颜色值被传送至一描绘处理器(rasterizer)。
对于每一多边形而言,描绘处理器决定哪些像素位置被多边形所覆盖,且试图将相关颜色值及深度值(即Z值)写入至讯框缓冲器(framebuffer)。描绘处理器将那些正在被处理的多边形的深度值与一像素的深度值加以比较,其亦可以是已经被写入至讯框缓冲器的深度值。假设新的多边形像素的深度值为较小的,意谓其位于已写入至讯框缓冲器的多边形的前面,而该值将会取代讯框缓冲器中的值,因新的多边形将遮掩前次处理且写入至讯框缓冲器的多边形。这样的处理过程将会重复直至所有的多边形已被描绘出(rasterized)。此时,一影像控制器(video controller)展示一讯框缓冲器的内容依据描绘的顺序一次以一扫描线展示出。
通过上述技术背景的描述,接着参照图1所示,其展示一计算机绘图系统中绘图管线的数个单元功能流程图。此处需要说明的是,在绘图管线中的单元可以适应着不同系统而有所不同,且将以不同方式加以说明。如大家所知,一主机计算机10,或者一主机计算机中所执行的绘图应用程序接口(application programming interface;API),可以产生一指令集12,其包含一列的绘图指令及数据用以展现于一绘图显示环境。绘图管线中的元件可以在指令集12中的数据及指令运算,来由此展现于一绘图显示环境。
就这一点而言,语法解析器(parser)14可以从指令集12撷取数据、经由这些数据加以剖析并由此解释这些指令,以及沿着绘图管线通过数据定义像素(primitive)。图元可以通过位置数据(例如:x、y、z以及w坐标)、光影以及材质信息被加以定义。对于每一图元而言,这些信息可以从指令集12被语法解析器14所撷取,且通过至一顶点着色器(vertex shader)16。如大家所知,顶点着色器16可以针对从指令集12接收到的绘图数据作不同的转换。就这一点而言,这些数据可以从世界坐标(world coordinates)转换至模型浏览坐标(modelview coordinates)、投影坐标(projection coordinates)以及最后转换至屏幕坐标。由顶点着色器16所执行的功能性处理为熟悉此技术领域人士所知晓且不需要于此处赘述。之后,绘图数据可以被传送至描绘处理器18,其运作原理如上所述。
接着,正被运算的图元中每一像素将立即进行z测试(z-test)。如大家所知,此处的z测试为将一目前的z值(亦即,目前图元一给定像素的z值)与所储存相对应像素位置的z值加以比较。所储存的z值提供每一先前已彩现(previously-rendered)的图元某一像素位置的深度值。假设目前的z值显示,一深度相比于所储存的z值较接近浏览者眼睛时,则目前的z值将取代所储存的z值,而目前的绘图信息(亦即,颜色值)将取代在相对应的讯框缓冲器中像素位置(由像素着色器22所决定)的颜色信息。假设目前的z值相比于所储存的z值,较为不接近于目前的观看点(viewpoint),则讯框缓冲器及z缓冲器的内容不需要被取代,先前已彩现的像素将被视作在目前像素的前面。
再次地,对于那些位于图元中已彩现(rendered)的像素,其被判定为相比于先前储存的像素较为接近观看点,则那些跟图元有关的信息将会被传送至像素着色器(pixel shader)22,其决定图元中被判定为较为接近目前观看点的每一像素的颜色信息。一旦像素着色器22已计算颜色信息,此信息将被储存在讯框缓冲器24。
虽然前述已经简要地叙述不同处理元件的运算,凡熟悉此技术领域的人士皆认为绘图数据的处理是相当重要的。因此亟需提高图像处理的效率。
发明内容
本发明的目的、优点及特点将于其后详加叙述,且其对于熟知本技术领域的专门人士应可明了及实施。本发明的目的、优点并不应受限于本实施例,反而其意图在涵盖有关本发明精神及在权利要求中所定义的发明范围所有可替代、修正的及类似的案件。
本发明的目的在于克服现有技术的不足与缺陷,提供一种将位样型或比特流中数据压缩的装置。
为达上述目的,根据本发明一具体实施例的一种逻辑结构,用以提供所输入信号或位可变长度(variable-length)的数据压缩。此一实施例包含多排复数个多任务器(multiplexers),其中第一排多任务器具有多个输入,其连接至跟待压缩的数据有关(或待压缩的数据代表性位置)的信号。下一排多任务器具有多个输入,其连接到前一排多任务器的输出。多任务器的选择线(select lines)是被控制的,使得与第一排多任务器输入所提供信号有关的数据可以被压缩。
根据本发明另一具体实施例的一种绘图系统,包含一逻辑用以产生一屏蔽来辨识复数个位中未被一随后的计算所影响(impacted)的位。上述的绘图系统更包含一对应至该屏蔽的压缩逻辑,用以产生一压缩比特流(bit stream),使得未被该计算所影响的该些位未包含于该压缩比特流之中。
根据本发明又一具体实施例的一种绘图系统,包含一逻辑用以产生一屏蔽来辨识比特流中复数个位置在一压缩运算期间未被移除的位置。上述的绘图系统更包含一对应至该屏蔽的逻辑,用以产生一压缩比特流,使得未被移除的该些位置通过一适当的量值变化挪移相继位置的内容来加以移除,如此得以覆盖那些应被移除(或前次被挪移)的位置的内容。
本发明的其它实施例以及其差异将于后面结合附图详细叙述。
附图说明
图1为现有技术中一传统绘图管线的方块图;
图2为一方块图用以说明根据本发明一具体实施例中一绘图单元的数个绘图元件;
图3为一方块图用以说明根据本发明一具体实施例中一绘图管线中的绘图单元的数个元件;
图4为一方块图用以说明一绘图管线,其具有根据本发明一具体实施例中的多个单元;
图5为一方块图用以说明一绘图系统的数个部分,此绘图系统根据本发明另一具体实施例;
图6A至图6F说明产生一屏蔽的数个步骤,其可被用于本发明的实施例中;
图7为一方块图用以说明根据本发明一具体实施例一绘图系统中用以数据压缩的单元;
图8为一方块图用以说明根据本发明另一具体实施例一绘图系统中用以数据压缩的单元;
图9为一方块图用以说明根据本发明一具体实施例的逻辑单元,其用以信号压缩、位压缩及一数据流中位置的压缩;
图10为一方块图用以说明根据本发明一具体实施例的图9中多任务器中一种产生选择信号线的机制;
图11为一方块图用以说明根据本发明一具体实施例中产生具有压缩数据的数据流;
图12A及图12B分别与图10、图9类似,用以说明此二图式中逻辑元件的运算,并举一假设性例子;
图13为一方块图用以说明本发明一具体实施例中数个单元,其用以数据压缩及解压缩;
图14为与图9类似的方块图,用以说明根据本发明一具体实施例中实行一解压缩运算的逻辑。
图中符号说明
10    主机计算机(绘图应用程序接口)
14    语法解析器
16    顶点着色器
18    描绘处理器
20    Z测试
22    像素着色器
24    讯框缓冲器
100   绘图管线
110   绘图单元
112   提供可变长度压缩(位封装)的逻辑
114   提供解压缩(解封装)的逻辑
120    第一单元
130    第二单元
132    封装逻辑
140    第N单元
142    解封装逻辑
162    指令语法解析器
164    顶点及几何着色器
166    三角形设置
168    图幅及分割图块的产生
170    分割图块的Z范围测试
172    Z快取区块
174    Z压缩器
176    封装逻辑
178    解封装逻辑
180    像素Z测试
182    像素封装逻辑
184    像素着色器
186    α测试
188    像素解封装逻辑
210    多重执行绪共享处理器
220    以分割图块为基础的存储器
282    像素封装逻辑
284    像素着色器
352    存放分割图块n像素数据及内容的存储器
354    压缩逻辑
356    分割图块n的像素屏蔽
358    分割图块n的压缩像素数据及内容
362    屏蔽/控制器
364    封装程序
366    解封装像素数据及内容
368    封装像素数据及内容
410    分割图块数据锁存器
420    封装对准数据移位器
460    每一像素挪移量产生器(多任务器选择控制的产生)
470    屏蔽指针的产生
525    压缩逻辑
540    处理器
545    运算单元
550    解压缩逻辑
具体实施方式
本发明的一些实施例将详细描述如下。然而,除了如下描述外,本发明还可以广泛地在其它的实施例施行,且本发明的范围并不受实施例的限定,其以权利要求书为准。再者,为提供更清楚的描述及更易理解本发明,附图内各部分并没有依照其相对尺寸绘图,某些尺寸与其它相关尺度相比已经被夸张;不相关的细节部分也未完全绘出,以求附图的简洁。
如同前面已简要叙述,本发明为提供一种在比特流或位样型中用以位于连续位位置(或多组位)中可变长度压缩的系统。本发明一具体实施例中包含一逻辑单元,有时被称为封装程序(packer)与解封装程序(unpacker),于硬件中加入该逻辑单元用以计算机绘图系统。然而,此处需要加以说明的是,本发明并不限于此实施例之内。本发明还包括一些具体实施例的实现,其包含一个或多个用以压缩数据的逻辑单元(有时被称为封装程序),以及一个或多个用以解压缩先前压缩数据的逻辑单元(有时被称为解封装程序)。
为了更进一步地详述,本发明的特点与观点可实行于绘图系统中的多个位置(locations)。同样地,其它与计算机绘图有关的系统与环境,其仍位于本发明的精神与范围之内。
在实行一像素着色(pixel-shading)运算之前,一实施例的特点可以被实行,例如:位压缩或像素封装。如同其名称所示以及如大家所知,像素着色运算以每一像素为基础而实行。然而,为了不同的理由,一给定图元的许多像素可以不需要进行像素着色运算。举例来说,一图元的部分像素被其它图元所遮盖(例如:Z测试所判定),不需要在其上进行像素着色运算。这些像素被传送到像素着色器之前,被加以确认并从位序列(bit sequence)移除。就这一点而言,位序列可以被加以压缩使得那些被传送到像素着色器的像素才会被加以运算。
接着,参照图2所示,其为一方块图用以说明根据本发明一具体实施例中数个基本绘图元件。图2包含一绘图单元110,其标示或代表一绘图管线中的硬件单元。在绘图单元110中,逻辑112用来提供一位序列中可变长度压缩(例如:位封装)。同样地,逻辑114用来提供在数据压缩处理之后,位序列中的解压缩(例如:解封装)。本发明的此一具体实施例可以被实行在提供可程序处理某些功能的系统之中,诸如绘图处理单元(GPU;graphic processing units)用以处理像素着色,而不是用专用的硬件来实行此项功能。在这样的系统中,像素的消除(elimination)不需要被处理,通过上述的像素封装处理,大幅地改善GPU处理器可程序化的效能。
继续参照图3所示,其为一方块图用以一般性地说明一绘图管线中数个元件,其可以据以实行本发明具体实施例的许多特点。如前所述,一主机计算机提供以一种图元或几何数据的形式输入至一绘图管线。关于此信息及相关数据为众所皆知,在此不加以赘述。如同更进一步所知,绘图管线包含一列功能性单元及(或)逻辑单元,其被用以实行从主机计算机所传送的绘图信息的处理工作。这些单元于图3中加以叙述,例如:第一单元120、第二单元130以及第N单元140。这些单元可以不同形式呈现,其随着不同的实施可以有较大的差异,例如:绘图硬件有不同的实施方式的差异。然而,一般来说,处理器的前端(第一单元120)通常用以接收图元几何信息及实行某些几何运算或以顶点为基础的运算。这些运算的类型包含转换、光影、三角形设置等等。在一些实施例中,绘图管线的前端也可以包含用以实行棋盘形(tessellation)运算的逻辑单元,其将图元分离为较小的图元或三角形。在进行绘图管线前端运算之后,更进一步的运算包含产生图幅(span)及分割图块(tiles)、Z测试、像素着色、α测试及α混色等等,其中产生分割图块是通过三角形描绘处理。这些运算为熟悉此技术的专业人士所熟知,因此不需要另行赘述。
本发明一具体实施例包含一封装逻辑132,用以执行位于绘图管线中内部单元的位序列的封装运算。在一实施例中,封装运算通常用于像素运算,而非顶点运算。再者,封装逻辑可被实行于一个以上的内部单元。举例来说,在一实施例中,封装逻辑132可以在执行一像素着色运算之前而提供。同样地,封装功能也可以被运用于Z压缩器,其中Z压缩器用以产生压缩的Z信息。
接着,解封装逻辑142可以被提供于封装逻辑132之后。解封装运算本质上为封装运算的反运算(inverse),较佳地是与封装运算相同,以及伴随的逻辑结构与方法来实施。当然,用于封装运算的屏蔽亦被使用于解封装运算。因此,实行封装运算的逻辑单元,其结构及运算的叙述已经足以使得熟悉此技术人士知道解封装运算的实施方式。
图4为一方块图用以说明一绘图管线多个单元用以实施封装及解封装功能,其具有根据本发明一具体实施例中的多个单元。
更明确地说,图4说明本发明一具体实施例的绘图管线,其运用了许多传统的单元以实施一些创新性特点。举例来说,指令语法解析器162、顶点及几何着色器164、三角形设置166,以及图幅与分割图块的产生168皆为已知的运算,因此不需要加以赘述。同样地,分割图块的z范围测试170也是已知的,z测试在压缩的z数据中执行。以这样方式所执行的压缩的z测试可以通过压缩的z信息得以琐细地接受某些图元或琐细地拒绝某些图元(或是两者选一的方式)来改善其效能。此外,一个相似的测试(每一像素测试)其可以由像素z测试方块180来实行。
而z快取区块172可以被耦合至上述两个测试方块(亦即,分割图块的z范围测试170以及像素z测试180),如此可提供z数据的高速存储器存取,例如:远较于z缓冲区存储器较为高速地取回及存取。此外,也可以提供z压缩器174。如大家所知,z数据(深度数据)可以被加以压缩以期效能及值的计算能得以提高。然而,在本发明一具体实施例中,压缩z信息的机制可以将z数据封装逻辑176及解封装逻辑178的单元来实施。就这一点而言,如同以下将详细叙述的,一像素屏蔽(使用深度信息所产生)可以被用来定义可变挪移长度(variable shift lengths),其造成位或比特流中的数据被移动,使得数据被挪移之前已经被覆盖。在实行此压缩及挪移运算之前,需事先作一项判定来获知哪些像素数据不被一计算(例如:z范围测试)所影响。
如大家所知,有不同的方式可以来压缩z数据。一个简单易做的方式为,针对一给定的分割图块(例如:4×4像素分割图块、8×8像素分割图块或其它尺寸的分割图块)仅储存此一分割图块z值的最小值及最大值。在这样的情况下,一个16像素分割图块的z值将会从16压缩至2(亦即,最小值及最大值)。而z压缩器174可以通过分派单一位至每一分割图块的位置,以及假设该像素不是此分割图块z值的最小值就是其最大值,则对于一给定分割图块位置来说在该位记录为1,如此来产生一4×4像素分割图块的像素屏蔽。而0将被记录在所有其它剩下的位位置。接着,封装逻辑176可以左移与像素位置(屏蔽值为1)有关的像素信息,而移除其它所有像素信息。在此一实施例中,仅有压缩的信息被传送至方块170以执行z范围测试。消除那些受到z范围测试的计算所影响的数据,用以减少此逻辑方块执行的运算并由此改善其计算效能。
图4中的绘图管线也说明了用以执行像素封装运算的逻辑182、像素着色器184、执行α测试的方块186及用以执行像素解封装运算的逻辑188。像素着色器184及α测试方块186皆为熟悉此技术的人士所知道,因此不另赘述。如同其名称所示,像素着色器184以像素为基础来执行一着色运算。对于一给定正被运算的绘图图元来说,或是对于以分割图块为基础运算的一给定分割图块而言,通常一定数量的像素最后会被可视化至一使用者(其根据深度信息、介于目前像素及观看点之间的其它物件所阻碍)。对于这样的像素而言,像素着色及α测试运算不需要被执行。因此,需要压缩像素信息使得仅有那些不受由像素着色器及(或)α测试运算的计算所影响的信息或数据通过此管线被传送至这些逻辑方块。
像素封装逻辑182可以执行从绘图管线的上部通过至像素封装逻辑182的像素数据的压缩。像素封装逻辑182的运算与封装逻辑176类似,而封装逻辑176结合z压缩器174的运作原理已于前面简要叙述。以下将继续进一步叙述的是,其可以基于深度值信息形成一屏蔽(例如一像素屏蔽),用以控制数据的压缩。更明确地而言,在执行像素着色或α测试时那些被使用的或受影响的数据将被加以压缩,而那些未被这些运算或计算影响的数据,在其经由管线传送至逻辑方块(像素着色器184及α测试186)之前,由比特流(bit stream)之中移除。最后,移除的数据由像素解封装188的逻辑方块所恢复。
接着参照图5,其包含图4已说明的部分单元。图5中的实施例为具有多重执行绪共享平行处理器的绘图系统,其可以用来执行在绘图管线内多数逻辑单元的中央处理运算。在此具体实施例中,并不是绘图管线中的每一单元或逻辑方块由专用硬件所执行,而是一些处理功能可以被传递至一中央共享可程序处理资源210来执行之。在一具体实施例中,处理单元可以使用多重执行绪处理器210来实现,而此处理器可以包含一规划逻辑用以管理传送至此处理器的工作。此处需要详细说明的是,封装逻辑282可以由一适合的屏蔽224(例如:像素屏蔽)所控制,其可以用来辨识哪些位(像素)位置或储存位置需被保存,以及哪些位置在压缩运算或封装运算中可以被舍弃。屏蔽224可以被储存在储存区220,且其为可中央存取的,可被解封装逻辑所使用,因此原先的位序列可被恢复。
从一操作性或功能性观点来看,图5说明的单元其实施方法与图4所对应的单元相似。然而,因为图5中的绘图单元包含一多重执行绪共享处理器210,所以个别逻辑方块所执行的运算可以由处理器210所中央处理。在此一具体实施例中,尽管不同逻辑方块的功能性观点为相同(与图4相同),然而逻辑方块之内的结构可以稍微地不同。
如图4中已叙述的,像素屏蔽可以被封装及解封装单元(也就是压缩器及解压缩器)所使用。图5说明了两个这样的屏蔽222及224,其可以与其它数据储存在以分割方块为基础的储存区域里220。当然,对于一给定分割图块而言,像素屏蔽222的内容对于z压缩器来说可以不同于像素屏蔽224的内容(像素封装程序所相对应的分割图块)。因此,这些屏蔽已经于图5中分别叙述。
需要加以说明的是,如图5所叙述的系统中,根据本发明的具体实施例所实行的压缩其效益是相当大的。也就是说,使用多重执行绪处理器210共享资源的一实施例中,假设多重执行绪处理器的效能增加,则系统整体的效能亦明显地增加。假如没有实行根据本发明的具体实施例所实行的压缩,像素着色器284可用其它方式传送那些需要处理器210加以处理的像素数据。对于那些不显示于一显示装置的像素,任何在那些像素所执行的像素着色运算将是大大地浪费。在执行像素着色运算时,一共享资源的使用(例如处理器210)可以避免处理器去处理其它请求或执行管线中其它单元的工作。因此,整体看来,像素封装逻辑282所实行的压缩可以提供处理器210当其运算时具有显著的改善。
接着,参照图6所示,其说明了根据本发明一具体实施例可使用的一种屏蔽的产生方式。此处需说明的是,为了方便说明本发明具体实施例的许多观点,图6A至图6F已经过简化。然而,熟悉此技术的相关技术领域人士可以据此而实施更为复杂一点或较为实际的例子。
参考图6A,其为显示画面310边界的三角形图元320。众所皆知的,计算机绘图的显示在单一绘图显示画面中,通常需要扫描图元千次,或是数百次。这些图元频繁地被破坏成为三角形图元,例如三角形320。如大家所知,绘图管线中较为前端单元用以在这些图元上执行一些步骤及以顶点为基础的运算。图幅及分割图块产生单元将一图元分离为数条扫描线322,如图6B所示,而分割图块由垂直线324与交叉的图幅线322来加以定义,如图6C所示。分割图块中的数个正方形通常被群组为2×2、4×4、8×8或其它尺寸的分割图块。图6D说明了具有4×4像素的分割图块326。分割图块326的组合可参考三角形图元320。三角形图元320位于4×4分割图块范围之外的部分将被舍弃,图6E说明了分割图块326及三角形图元320的重叠部分,如并行线相交的阴影328所示。每一像素可以由1或0(单一位)来表示,其用以显示像素320是否占据一给定像素的支配部分(predominateportion)。就这一点而言,由图6D可以观察到,分割图块326像素的其中五个完全被图元320所覆盖。此五个像素分别位于分割图块326的右下方处的四个像素以及此四个像素的上方的一个像素。同样地,沿着分割图块326的左方垂直边有四个像素没有被图元320所覆盖。而其它像素则是部分为图元320所覆盖。一种用以减少图形效果失真或提供图元(其边界落于不同像素之间)的混色效果的机制,其为众所皆知的且不需要赘述。从一简单易懂的观点来看,一像素屏蔽330(参照图6F所示)的产生可以通过放置一个1于像素位置上(其主要像素为图元320所覆盖)。而上述结果可以是一像素屏蔽,其具有如图6F所叙述的内容。
前述所提出的一种产生像素屏蔽的方法,而其它较为复杂一些的方法也可以据以实施。举例来说,那些完全或部分包含于一目前图元的其它图元深度值信息,也可以被考虑进来。然而,此处需要说明的是,本发明并不局限于特定的方法或任何用以产生一像素屏蔽的方法,但是不同的方法皆不脱离本发明的精神和范围内。就这一点而言,本发明的实施例中,一像素屏蔽(或其它屏蔽)的产生需要考量到较为广泛的方法。
基于前述,继续参照图7所示,其为一方块图用以说明根据本发明一具体实施例。更为具体地说,图7说明了用以压缩像素数据的绘图系统的其中一部分350,其通过绘图管线或绘图系统中的数个单元来执行之后接续的运算。如同前面所提到的,绘图信息从一主机传送至绘图管线。一些步骤及顶点运算会被实行,但绘图数据最后会不储存在存储器中。在执行图幅及分割图块运算之后,存储器会保持像素的多数个分割图块有关的绘图数据或内容。图7说明了一存储器352,其具有一给定分割图块n的像素数据或内容。当然,存储器352也可以包含其它分割图块的数据。逻辑354用以压缩绘图数据的内容,作为绘图系统中其它元件之后接续的运算或计算。压缩逻辑用以使得一屏蔽执行压缩。就此点而言,屏蔽便是像素位置,其具有不受一随后运算或计算所影响的数据,也因此在压缩运算期间可以将之移除。在一较佳的实施例中,此屏蔽为一像素屏蔽。
接着,更进一步地说明图7,一像素屏蔽356用以将分割图块n加以压缩。于一具体实施例中,压缩逻辑354产生一输出358,其包含分割图块n的压缩像素数据或内容。于另一具体实施例中,压缩逻辑354的输出可以被简化为位于存储器352之内的存储器储存位置的确认那些接着将被执行的数据(有效的解压缩数据)。假如适当的话,处理器或其它在绘图系统中的运算单元(用以执行压缩数据的运)其可以从存储器352中撷取数据。
于一具体实施例中,图7中的数个单元可以叠合用以执行像素数据的多个分割图块的压缩。在另一具体实施例中,图7中所叙述的单元是可以调整尺寸的,用以储存及管理像素数据中多个分割图块的压缩。
继续参考图8,其为根据本发明另一实施例的方块图。在此一具体实施例中,屏蔽(例如一像素屏蔽)被控制器362用来控制封装程序364的运算。封装程序364用以实行输入至封装程序的解封装像素数据366(或是其它与提供至输入有关的信号)的可变长度压缩运算。封装程序的输出368包含压缩或封装像素数据(或与压缩或封装数据有关的信号)。符合本发明的精神与范围之内,其可以有不同的方法与架构用以实施例图8所示的单元其实现方法。接下来,图9至图11将说明一示范性实施例。然而,需要加以说明的是,本发明并不受限于实施例所示的相关附图,其保护范围视本发明的权利要求书所界定者为准。
参考图9所示,为一方块图用以说明根据本发明一具体实施例的逻辑单元,其用以实行数据的压缩。图9中的逻辑单元400可以被用以实现如图8所示实施例中的封装程序364,也可以用以实现如图7所示实施例中的压缩逻辑354。当考虑到此一特定的实施方式,需要加以浏览图9至图11所叙述,如此才能通盘了解根据本发明一实施例用以可变地压缩数据(或位群组)的屏蔽。
自图9开始,待压缩的数据可以由一锁存器提供,例如一分割图块数据锁存器410。在前述已说明的实施例中,数据中有16位位置(bit0至bit 15)为待压缩的。每一位位置的信号输出连接至一多任务器(位于第一排多任务器)的输入端。在一具体实施例中,分割图块数据锁存器410的每一位位置对应至(或者与之相关联)屏蔽的一位位置(例如,图6F所示),其用以定义与分割图块数据锁存410相关数据的压缩。需要说明的是,使用图9所示的逻辑结构,其可以有不同的方式来作数据压缩。举例来说,假设定义位于屏蔽内的任一位置(例如:图6F所示)对应至一个或多个数据字节(在大多数的实施例中皆为如此),接着图9中的结构可以被复制(叠合)对应至一给定分割图块位置的位信息。经由例子可知,假设屏蔽的每一位置对应数据的一字节(亦即8位),接着图9中的结构可以有效地重叠到多层架构(例如:八层的深度)。第一层的分割图块数据锁存器410其中的位0位置,其可以保持在待压缩数据范围之内的字节的最低有效位。同样地,图9逻辑架构第二层(图中未示的连续的层)分割图块数据锁存器410其中的位0位置,其可以保持对应至屏蔽位置的数据下一个最低有效位。复制如图9中所示的结构,以这样的方式使得不同组的位得以压缩。以下将继续叙述,一组的所有位(例如:与分割图块数据锁存器的一给定位置有关的所有位)在压缩运算期间不是被保留就是被舍弃。也就是说,假设第一层的位0位置的位在压缩期间不是被舍弃的,则没有任一位0位置的位(位于任一层)在压缩期间将会被舍弃。同样地,假设第一层的位0位置的位在压缩期间被舍弃,则任一位0位置的位(位于任一层)在压缩期间将会被舍弃。
图9中的结构亦可以另一种方式来达到数据压缩。举例来说,于一具体实施例中,绝大多数的数据与分割图块数据锁存器的每一位位置有关,重复图9中的结构以使得数据之中的每一位位置可能导致不大合意的大量硬件使用。在此实施例中,储存在分割图块数据锁存器之中的数据可以是地址数据(或一指针),其指向存储器中数据记录的开始位置(再次重述,图9中的逻辑结构其可以是复合的)。有关于储存于存储器储存位置的数据的现有技术,据此可知此一实施例为可行的。如此可以减少所需的逻辑单元(较少组的位可以用来定义数据的地址),使之仅为处理数据本身真正所需的逻辑。
举例来说,在计算机绘图系统中,其可能具有与每一像素位置有关的绘图数据的有效量。此一绘图数据可以包含色彩值信息,例如:红绿蓝及α值(也就是R、G、B、A),深度值信息(Z)以及材质信息(例如:U、V坐标)等等。假设一给定像素并未用以显示,则所有与该像素有关的相对应信息可以被压缩、被移除(假如其由绘图管线中的一些计算)。
有关图9中所示结构的运算将会叙述压缩数据的单一位相关背景知识。然而,再次地说明,图9中的逻辑可以通过新增用以压缩数据的群组位的数层而被立即地复制(或调整尺寸)。
图9中的逻辑提供一种以屏蔽为基础可变地压缩数据位(或数据的群组位)的结构,其通过挪移待压缩至那些待移除数据的位位置的数据。就这一点而言,图9中的结构可用于坚韧的(robust)运算,而图10(将于稍后叙述)则是提供如图9中所使用的多任务器的不同选择线的操控。首先,有关图9结构,其使用复数个多排多任务器(分别为402、404、406及408)。第一排多任务器402中的多任务器具有多个输入端,其连接至来自分割图块数据锁存器410不同位位置所输出的信号线。同样地,接续的每一排多任务器亦具有多数个输入端,其连接至前一排多任务器的输出端。通过不同多任务器输入端选择控制,分割图块数据锁存器410一给定位位置的信号值,其可以是直接被传送至封装对准数据移位器420一相对应的位位置,不然就是交替地挪移任一数量的位位置至左侧。举例来说,假设分割图块数据锁存器410的位位置11的数据值需被挪移至封装对准数据移位器420的位位置3,其通过控制多任务器432、434、436及438选择输入端来得以实行。更明确地说,多任务器432的控制输入端可以借助选择(在其输入端)位位置11所保持的信号值被控制。多任务器434可以借助选择(在其输入端)多任务器432的输出端被控制;同样地,多任务器436可以借助选择(在其输入端)多任务器434的输出端被控制。最后,多任务器438借助选择(在其输入端)多任务器436的输出端被控制。
通过检视图9可以得到证实,每一多任务器具有两输入端及一输出端。由图中可知,输入端0位于每一多任务器的左边,而输入端1则是位于每一多任务器的右边。第一排多任务器402之中的每一多任务器具有输入端0,其输入至分割图块数据锁存器410的相对应位位置。而第一排多任务器402之中的每一多任务器具有输入端1,与相对应的位位置右边1位的分割图块数据锁存器410的位位置。为了简化学术用语,图9中的多任务器可以被视为一矩阵,其中这些多任务器可以标示为R(代表列数)、C(代表行数)。因此,第一排多任务器402之中的多任务器可以标示为多任务器0,0(例如:u0,0)至0,14。同样地,第二排多任务器404之中的多任务器可以标示为多任务器1,0至1,13。第三排多任务器406之中的多任务器可以标示为多任务器2,0至2,11。最后,最后一排多任务器408之中的多任务器可以标示为多任务器3,0至3,7。由于考量到图9所示的单元的密度,仅有其中几个多任务器已经以这种方式被加以标示。
如前所述,接续数排多任务器的多任务器数量相较于前一排为少。甚者,第一排多任务器402的每一多任务器分别具有输入端,连接至输入数据两相邻位位置。第二排多任务器404的每一多任务器分别具有两输入端,连接至第一排每一第二个多任务器的输出端。同样地,第三排多任务器406的每一多任务器分别具有两输入端,连接至第二排每一第四个多任务器的输出端。最后,第四排多任务器408的每一多任务器分别具有两输入端,连接至第三排多任务器406每一第八个多任务器的输出端。以这样的方式将多个多任务器连接,第四排多任务器408的多任务器的选择信号线用以控制不是0就是8位的挪移(有关于分割图块数据锁存器410中的原始位位置),其根据所选择的输入端而定。同样地,第三排多任务器406的多任务器的选择信号线用以控制不是0就是4位的挪移,亦根据所选择的输入端而定。第二排多任务器404的多任务器的选择信号线用以控制不是0就是2位的挪移,亦根据所选择的输入端而定。第一排多任务器402的多任务器的选择信号线用以控制不是0就是1位的挪移,亦根据所选择的输入端而定。
在先前的例子中,其叙述多任务器432、434、436及438如何被控制以将分割图块数据锁存器410的位位置11挪移至封装对准数据移位器420的位3的位置。而此例则是包含8位的挪移。假设相同的数据位(分割图块数据锁存器410的位位置11)需要被挪移七个位置(封装对准数据移位器420的第四个位的位置),其通过选择控制多任务器442、444、446及448的选择线来据以实施。就这一点而言,多任务器442借助选择连接至分割图块数据锁存器410的第十一位位置的输入端而可以被控制。同样地,多任务器444借助选择多任务器442的输出端,而多任务器446借助选择多任务器444的输出端,多任务器448借助选择多任务器446的输出端而可以被控制。
需要说明的是,图9中逻辑单元的结构轻易地被缩放屏蔽的不同尺寸大小(例如:具有不同数量位位置的分割图块数据锁存器)。举例来说,假设一屏蔽的大小2×2取代为4×4屏蔽,仅需要三排的多任务器。如此将可有效地得到三排多任务器的外形,如图9右半部所示。同样地,假设图9中的逻辑扩充为8×8屏蔽,则需要新增一排多任务器。就这一点而言,图9中的结构可轻易地缩放尺寸,其通过容纳不同的屏蔽尺寸大小。
需要加以说明的是,图9中已叙述一主要操作性观点,其与控制信号(用以控制不同多任务器的适当选择)的产生有关。一种产生这种控制信号的方法,于图10中说明。如同先前已叙述,本发明的一些具体实施例以像素屏蔽或分割图块的形式来实行屏蔽。不同的屏蔽可以被用于像素的不同分割图块,以及不同的图元。于图10的具体实施例中,其说明图9的多任务器中控制信号的产生,此实施例使用4×4屏蔽452为例。每一分割图块中的位位置以一定顺序排列。就这一点而言,一特定顺序的指派及安排为任意的。但对于不同的分割图块需为固定且已知的。本发明具体实施例中的所有例子,4×4屏蔽的序列顺序或排序如屏蔽453所述。也就是说,左上位置为0位置,而后渐渐地至右边则为1位置,其可由图10中得知。逻辑460用以判定或定义每一像素挪移量。就此点而言,逻辑460产生图9中多任务器所用的控制信号,在此实施例中,用以控制不同个别的多任务器的不同控制值,其可以由一ROM(只读存储器)所产生,其与提供给寻址输入至ROM的分割图块屏蔽许多位值编码在一起(hard coded)。图9所示的多任务器及控制结构可以通过提供任何适合的水平挪移至任一像素至像素插槽(pixel-slot)而轻易地被证实。再者,通过忽略或置换所有像素屏蔽中所有0值可以将位序列加以压缩。
继续回到图9,不同的多任务器除了以数排的方式排列之外,尚可以行的方式安排多任务器(分别标示为C0至C14)。图10中的逻辑460产生多组输出,其为不同行之间的多任务器的选择(控制)线。如图10中所叙述,C0至C7每一行有四条信号线,而C8至C11每一行有三条信号线,C12至C13每一行有两条信号线,C14的多任务器则有一条信号线(因为在此行中,仅有一个多任务器)。
多任务器控制逻辑460内的逻辑或电路可以不同方式加以实施。从一功能性观点来看,一给定行的多任务器信号线所产生的值用以控制从像素屏蔽453的所有前面位位置加总运算的信号(例如:C3)结果。如前所述,像素屏蔽453的每一位置为一单一位(不是0就是1)。屏蔽中的0值代表对应到该位置的值不是受到一随后的运算影响(或者说于压缩运算期间被移除)。相反地,相素屏蔽中一特定位置的逻辑1代表相对应的数据受一随后的运算影响(或者说于数据压缩运算期间不被移除)。因此,当计算一行多任务器(例如C3)的一给定群组信号线的总和时,前面数行多任务器的位位置(位位置0、1及2)的总和会被计算。与此一致的是,第三行有四个多任务器,多任务器控制逻辑460产生一四位输出(C3)用以根据位位置0、1及2的总和来控制该些多任务器。在此四位输出中,最有效位控制第四排多任务408,而最少有效位控制第一排多任务器 402的选择线。
继续参照图12A及图12B,其分别对应至图10及图9,用以说明根据上述具体实施例一给定像素屏蔽的运算实际例子。如上所述,在像素屏蔽中相对应数据的六个不同位置被保留用以压缩运算,其分别对应至屏蔽位置1、4、10、12、13及14的数据。在此例中,不同的多任务器选择如逻辑460的输出端所示的值,接着每一多任务器选择线会标示一数字(不是0就是1),用以显示应用到每一相对选择线的值。同样地,输入数据(在分割图块数据锁存器410)一般标示为D0至D15。如前所述的封装对准数据移位器420的输出,数据值D1、D4、D10、D12、D13及D14被挪移至数据移位器420最左边的六个位置。为了更方便说明起见,在图12B中,此例子中未被当作搬运数据使用的数据路径将以加注底线的方式叙述之。同样地,未被当作搬运数据使用的多任务器以加注底线的方式叙述之,而其控制(选择)输入则标示为X(代表其为不重要的值)。
接着回到图10,其为屏蔽指针产生逻辑470及其输出472。在绘图系统的背景知识,对应至单一显示屏幕许多分割图块的数据将被压缩。所压缩的量随着分割图块而有所不同(依据个别分割图块屏蔽),一系统可以标示或标记数据流中的分割图块边界,将会结合图11来加以叙述。在所产生的数据流中,对应至压缩数据(由屏蔽定义之)的数据值(或多组位)将在数据流中展示。在前面提到的例子(图12A及图12B),在最后的数据流中,一特定分割图块屏蔽具有六个合理的数据值会被保留。因此,屏蔽指针的产生用以标记对应到该分割图块的数据的边界。在一具体实施例中,屏蔽指针产生逻辑470可以简化为分割图块屏蔽452许多个别值的总和。此值也可以在图12A的例子中叙述。
参照图11,其可以结合图9及图10而共同观看。就此点而言,在一绘图系统中用以处理的压缩数据流,将不随着单一分割图块数据的处理而结束,但会发生许多次包含一绘图显示的许多分割图块。图11叙述说明四个这样的连续分割图块,每一分割图块具有不同的屏蔽值。图9及图10的讨论,以及结合图12A及图12B所描述的例子中,其叙述一给定分割图块屏蔽(或像素屏蔽)如何被使用在产生对应至该分割图块的压缩值。连续分割图块的屏蔽被用以产生一压缩数据流,该压缩数据流包含对应至复数个分割图块的数据。图11叙述一分割图块屏蔽482如何被转换成一线性屏蔽483(例如:图10所示的像素屏蔽453)。因为分割图块i的屏蔽482用以定义六个合理值的位置(或者具有合理的相对应数据值的像素位置),屏蔽指针产生逻辑470可以产生具有一值为6的指针。如数据流490所示,对应至分割图块i的部分数据流可以具有数据值D0、D1、D4、D5、D7及D8,接着具有一指针492的插入用以标示分割图块i的结尾。同样地,基于分割图块i+1 484所表示的值(数据值D2、D3、D8、D9、D10、D11及D13)可以被压缩至紧接着一指针493的数据流490。因为在屏蔽484中具有七个位位置需要被保留(或于压缩过程被保存),数据流490中提供七个相对应的数据值。此屏蔽的指针可以具有一值为7,其将被加入至前面的指针值6使的成为一值为13。随后的分割图块的数据及指针产生值可以用同样的方式来产生。
此外,在本发明一具体实施例中,绘图系统中一数据流通过离散大小的数据封包从一单元传送到另一单元。在一实施例中,数据封包可以包含十六个数据值。假设一封包边界落入一分割图块的中间位置,则将插入一部分指针,如图11所示。就这一点而言,分割图块i+2486标示六个屏蔽位置其于压缩过程中需要被保留。这些屏蔽位置对应到数据值D2、D5、D7、D8、D12及D13。如数据流490所述,对应至此分割图块的数据被分离介于封包j及封包j+1之间。因此,部分指针值495被插入封包J的结尾而一完整的分割图块指针496被插入在封包j+1第三个数据值之后。
图11仅用以说明一种连续或多个分割图块屏蔽的数据值管理方法或方式。此处需说明的是,与本发明的精神与范围一致,根据此观点的不同实施方式都可以据以实现。就这一点而言,指针的功能性的实施方式可以通过不同的方法与机制(例如:在压缩数据流中区分出分割图块边界的机制)。
在已叙述有关实施例的许多细节及实施方式后,接着参照图13所示,为一方块图用以说明本发明另一具体实施例的许多特点。在此实施例中,存储器510用以储存一屏蔽中对应至不同位置的数据。在绘图系统的背景知识中,一像素屏蔽的每一位置可以有其相对应的数据,这些数据包含色彩值信息(RGB、A)、深度值信息、材质信息(U、V)以及其它与绘图系统中像素有关的属性。这些类型信息的作用与管理为熟悉此技术的技术人士所众所皆知的,此处不需要分开叙述。就这一点而言,需注意到的是对于每一给定像素位置,其具有与该像素相对而言大量的数据。图13中的存储器510说明存储器中的十六个分散区域,其中每一区域包含多字节的数据,这些数据有关于一相关像素的不同属性。屏蔽520的每一位置对应包含数据的存储器510一区域。
根据本发明一具体实施例,压缩逻辑525用以使屏蔽520的内容压缩储存于存储器510中的数据。如图13所述,屏蔽520包含两位置用以标示该分割图块的有效数据。存储器510相对应的存储器区块也可以被强调。因此,在压缩逻辑525的压缩之后,将产生数据的缩减量,如530所示。接着,此压缩数据将提供给处理器540用以执行一个或多个数据530的运算。就此点而言,运算逻辑545为处理器540的一部分。运算逻辑545一般被标示为此种方式,与本发明的精神与范围一致,其可以包含不同种类的运算。在执行此运算之后,解压缩逻辑550用以恢复数据至原先未压缩的形式。
就这一点而言,需要加以思量的是,运算545仅影响存储器区块512及514的数据。此数据可以提供给处理器540当作运算的依据,以及通过解压缩逻辑550将之恢复至适当的存储器区块。
如前已注意到的是,除了实际的数据(存储器510实际的内容)被压缩,压缩逻辑也可以用于存储器地址的运算,例如:处理器540可以被用来接收存储器区块512及514启始地址的确认。接着,处理器540撷取(直接从存储器510中撷取)有关的数据以执行运算545。
关于解压缩逻辑550,假设压缩逻辑525为结构上与图9中的逻辑相类似,则一相似的对等结构用以执行解压缩。这样的结构于图14叙述。图9中运算及结构已经于前面说明过,已经足够用以了解图14中结构600的运算(此结构可以具以实行对等的运算),因此关于图14的相关细节讨论并不是需要的。就这一点而言,解压缩逻辑600包含多排复数个多任务器602、604、606及608及多行多任务器C0至C15。每一多任务器具有一控制输入端(例如:u0,1控制多任务器0,1的输入选择)。通过控制复数个多任务器控制输入端的值,图14中的逻辑所实行的解压缩可以类似于图9的方式被控制。
需要加以说明的是,关于本发明的实施例具有不同的创新特点。这些特点包含绘图管线中一单元的数据可变长度压缩,使用一列多任务器的封装程序的实施架构,其中每一多任务器的控制输入端被独特地控制,以及一种用以封装功能中控制压缩层级的使用位或像素屏蔽的方法。
虽然本发明已以若干较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此技术者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视权利要求书所界定者为准。

Claims (18)

1.一种绘图系统,其特征在于,包含:
一产生逻辑,用以产生一屏蔽来辨识在复数个位中未被一计算所影响的位;以及
一对应至该屏蔽的压缩逻辑,用以产生一压缩比特流,其中该压缩比特流未包含该些未被该计算所影响的位。
2.如权利要求1所述的绘图系统,其中,该屏蔽为一像素屏蔽,该像素屏蔽对应至显示于一显示装置的一含有复数个像素的分割图块。
3.如权利要求1所述的绘图系统,其中,该产生逻辑根据一深度值信息用以产生该屏蔽。
4.如权利要求3所述的绘图系统,其中,该深度值信息由一z缓冲区块来获得。
5.如权利要求1所述的绘图系统,其中,该压缩逻辑包含复数个多任务器用以根据该屏蔽的内容来挪移该复数个位的个别位一变化量值,且每一新增挪移的位有效地覆盖未被该计算所影响的该些位。
6.如权利要求5所述的绘图系统,其中,更包含一压缩控制逻辑,用以控制该压缩逻辑挪移个别位相等于复数个位位置的一量值,该复数个位位置位于目前位位置的前面且为未被该计算所影响。
7.如权利要求1所述的绘图系统,其中,更包含一解压缩逻辑,用以解压缩一压缩信息,其中该解压缩逻辑使用该屏蔽来解压缩该压缩信息。
8.一种压缩复数个位的装置,其特征在于,包含:
以复数排方式排列的复数个多任务器,其中该些第一排多任务器具有连接至复数个信号的复数个输入端,而该复数个信号用以定义需要被压缩的复数个位,该些随后复数排多任务器具有复数个输入端,连接至该些前一排多任务器的复数个输出端,其中每一该些随后复数排多任务器相较于该些前一排多任务器具有较少的多任务器;以及
一控制逻辑,用以控制使用于该复数个多任务器的复数个数据选择输入信号,使得该复数个位的个别位可以被挪移随变化量值,且该挪移量值由一屏蔽所判定。
9.如权利要求8所述的压缩复数个位的装置,其中,该复数个多任务器根据该屏蔽的内容来挪移该复数个位的个别位一变化量值,且每一新增挪移值有效地覆盖未被一随后计算所影响的一位。
10.如权利要求9所述的压缩复数个位的装置,其中,更包含一压缩控制逻辑,用以控制该控制逻辑挪移个别位相等于复数个位位置的一量值,该复数个位位置位于目前位位置的前面且为未被该计算所影响。
11.如权利要求8所述的压缩复数个位的装置,其中,该屏蔽为一像素屏蔽,该像素屏蔽对应至显示于一显示装置的一含有复数个像素的分割图块。
12.如权利要求11所述的压缩复数个位的装置,其中,该像素屏蔽的内容为根据一深度值信息。
13.如权利要求8所述的压缩复数个位的装置,其中,多组该复数个位用以定义复数个数据值来表示显示于一显示装置复数个像素的一属性。
14.如权利要求13所述的压缩复数个位的装置,其中,该属性选自下列族群之一:R、G、B、A、U及V。
15.一种用于计算机绘图系统中的单元,其特征在于,包含:
一逻辑,用以根据一像素屏蔽压缩复数个群组位,其中该屏蔽的内容由未被一计算所影响的相对应群组位的一判定而取得,该像素屏蔽的该内容定义该复数个位被挪移在压缩期间的一可变量值。
16.如权利要求15所述的用于计算机绘图系统中的单元,其中,该像素屏蔽的每一位置定义一群组位的挪移量。
17.如权利要求16所述的用于计算机绘图系统中的单元,其中,该像素屏蔽的每一位置的内容用一单一位加以定义,一群组位的该些挪移量由前面像素屏蔽位置的一总和来定义,该前面像素屏蔽位置的内容显示未被一随后计算影响的相对应复数个像素,其中该像素屏蔽的该些位置以一顺序加以安排,而该些前面像素屏蔽位置以一给定位置之前的顺序安排。
18.如权利要求17所述的用于计算机绘图系统中的单元,其中,该像素屏蔽的该像素位置的安排顺序为任意的。
CNB2004100879373A 2003-10-29 2004-10-27 将位样型或比特流中数据压缩的装置 Active CN1301485C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US51584103P 2003-10-29 2003-10-29
US60/515,841 2003-10-29

Publications (2)

Publication Number Publication Date
CN1606038A true CN1606038A (zh) 2005-04-13
CN1301485C CN1301485C (zh) 2007-02-21

Family

ID=34794196

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB2004100879354A Active CN1322413C (zh) 2003-10-29 2004-10-27 将位样型或比特流中数据压缩的方法
CNB2004100879373A Active CN1301485C (zh) 2003-10-29 2004-10-27 将位样型或比特流中数据压缩的装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNB2004100879354A Active CN1322413C (zh) 2003-10-29 2004-10-27 将位样型或比特流中数据压缩的方法

Country Status (3)

Country Link
US (2) US7202872B2 (zh)
CN (2) CN1322413C (zh)
TW (2) TWI297569B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101068363B (zh) * 2006-06-09 2010-08-25 威盛电子股份有限公司 减少传输图形数据的频宽需求的系统与方法
CN108886367A (zh) * 2016-01-29 2018-11-23 零点科技公司 用于压缩和解压缩数据的方法、设备和系统

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7202872B2 (en) * 2003-10-29 2007-04-10 Via Technologies, Inc. Apparatus for compressing data in a bit stream or bit pattern
US7570267B2 (en) 2004-05-03 2009-08-04 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US7978205B1 (en) 2004-05-03 2011-07-12 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US7782339B1 (en) * 2004-06-30 2010-08-24 Teradici Corporation Method and apparatus for generating masks for a multi-layer image decomposition
US8442311B1 (en) * 2005-06-30 2013-05-14 Teradici Corporation Apparatus and method for encoding an image generated in part by graphical commands
US8624906B2 (en) * 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8424012B1 (en) 2004-11-15 2013-04-16 Nvidia Corporation Context switching on a video processor having a scalar execution unit and a vector execution unit
JPWO2007015309A1 (ja) * 2005-08-04 2009-02-19 日立プラズマディスプレイ株式会社 プラズマディスプレイ装置
US7616202B1 (en) * 2005-08-12 2009-11-10 Nvidia Corporation Compaction of z-only samples
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US7728841B1 (en) 2005-12-19 2010-06-01 Nvidia Corporation Coherent shader output for multiple targets
US8081184B1 (en) * 2006-05-05 2011-12-20 Nvidia Corporation Pixel shader program thread assembly
US7898550B2 (en) * 2006-06-09 2011-03-01 Via Technologies, Inc. System and method for memory bandwidth compressor
US8134570B1 (en) * 2006-09-18 2012-03-13 Nvidia Corporation System and method for graphics attribute packing for pixel shader usage
US7663621B1 (en) * 2006-11-03 2010-02-16 Nvidia Corporation Cylindrical wrapping using shader hardware
US7965291B1 (en) * 2006-11-03 2011-06-21 Nvidia Corporation Isosurface extraction utilizing a graphics processing unit
US7692659B1 (en) * 2006-11-06 2010-04-06 Nvidia Corporation Color-compression using automatic reduction of multi-sampled pixels
US8233004B1 (en) 2006-11-06 2012-07-31 Nvidia Corporation Color-compression using automatic reduction of multi-sampled pixels
US8736627B2 (en) * 2006-12-19 2014-05-27 Via Technologies, Inc. Systems and methods for providing a shared buffer in a multiple FIFO environment
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US7911480B2 (en) * 2007-10-08 2011-03-22 Via Technologies, Inc. Compression of multiple-sample-anti-aliasing tile data in a graphics pipeline
US8243086B1 (en) * 2007-12-13 2012-08-14 Nvidia Corporation Variable length data compression using a geometry shading unit
US8295621B1 (en) * 2007-12-13 2012-10-23 Nvidia Corporation Data decompression using a geometry shading unit
US8254701B1 (en) * 2007-12-13 2012-08-28 Nvidia Corporation Data compression using a geometry shading unit
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
US8619087B2 (en) * 2009-10-06 2013-12-31 Nvidia Corporation Inter-shader attribute buffer optimization
JP5050094B2 (ja) * 2010-12-21 2012-10-17 株式会社東芝 映像処理装置及び映像処理方法
US9378560B2 (en) 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
CN103108197A (zh) 2011-11-14 2013-05-15 辉达公司 一种用于3d视频无线显示的优先级压缩方法和系统
US9829715B2 (en) 2012-01-23 2017-11-28 Nvidia Corporation Eyewear device for transmitting signal and communication method thereof
US9105250B2 (en) 2012-08-03 2015-08-11 Nvidia Corporation Coverage compaction
US9578224B2 (en) 2012-09-10 2017-02-21 Nvidia Corporation System and method for enhanced monoimaging
US9002125B2 (en) 2012-10-15 2015-04-07 Nvidia Corporation Z-plane compression with z-plane predictors
US10935788B2 (en) 2014-01-24 2021-03-02 Nvidia Corporation Hybrid virtual 3D rendering approach to stereovision
US9491490B1 (en) * 2015-06-12 2016-11-08 Intel Corporation Facilitating environment-based lossy compression of data for efficient rendering of contents at computing devices
US9906981B2 (en) 2016-02-25 2018-02-27 Nvidia Corporation Method and system for dynamic regulation and control of Wi-Fi scans
US10096147B2 (en) 2016-03-10 2018-10-09 Qualcomm Incorporated Visibility information modification
US11469772B2 (en) * 2017-04-11 2022-10-11 Joshua Huang Method, system and program product for mask-based compression of a sparse matrix
WO2018123801A1 (ja) * 2016-12-28 2018-07-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元モデル配信方法、三次元モデル受信方法、三次元モデル配信装置及び三次元モデル受信装置
US20190392287A1 (en) 2018-06-22 2019-12-26 Samsung Electronics Co., Ltd. Neural processor
US11671111B2 (en) 2019-04-17 2023-06-06 Samsung Electronics Co., Ltd. Hardware channel-parallel data compression/decompression
US11211944B2 (en) 2019-04-17 2021-12-28 Samsung Electronics Co., Ltd. Mixed-precision compression with random access

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5819091B2 (ja) * 1976-02-26 1983-04-16 キヤノン株式会社 デ−タ処理装置
DE3486126T2 (de) 1983-09-29 1993-11-04 Matsushita Electric Ind Co Ltd Expansions- und/oder ziehungsverfahren und -geraet fuer bilddaten.
JPS61159686A (ja) * 1985-01-07 1986-07-19 株式会社日立製作所 画像表示装置
DE3525898A1 (de) * 1985-07-19 1987-01-29 Reinhard Lidzba Verfahren zum komprimieren und dekomprimieren mehrerer strukturverwandter datenfolgen sowie einrichtungen zur durchfuehrung des verfahrens
GB9001335D0 (en) * 1990-01-19 1990-03-21 Hewlett Packard Ltd Data storage on tape
JPH0656546B2 (ja) * 1991-07-22 1994-07-27 インターナショナル・ビジネス・マシーンズ・コーポレイション イメージバッファ
CA2067418C (en) * 1991-07-22 1998-05-19 Sung M. Choi Frame buffer organization and control for real-time image decompression
US5408542A (en) * 1992-05-12 1995-04-18 Apple Computer, Inc. Method and apparatus for real-time lossless compression and decompression of image data
US5471628A (en) 1992-06-30 1995-11-28 International Business Machines Corporation Multi-function permutation switch for rotating and manipulating an order of bits of an input data byte in either cyclic or non-cyclic mode
US5652718A (en) * 1995-05-26 1997-07-29 National Semiconductor Corporation Barrel shifter
US6381690B1 (en) 1995-08-01 2002-04-30 Hewlett-Packard Company Processor for performing subword permutations and combinations
US6525722B1 (en) * 1995-08-04 2003-02-25 Sun Microsystems, Inc. Geometry compression for regular and irregular mesh structures
US5842004A (en) * 1995-08-04 1998-11-24 Sun Microsystems, Inc. Method and apparatus for decompression of compressed geometric three-dimensional graphics data
US6009191A (en) * 1996-02-15 1999-12-28 Intel Corporation Computer implemented method for compressing 48-bit pixels to 16-bit pixels
KR970071323A (ko) 1996-04-22 1997-11-07 포만 제프리 엘 그래픽 서브시스템
US5790125A (en) * 1996-04-22 1998-08-04 International Business Machines Corporation System and method for use in a computerized imaging system to efficiently transfer graphics information to a graphics subsystem employing masked span
US5941937A (en) * 1996-10-29 1999-08-24 Matsushita Electric Industrial Co., Ltd. Layout structure for barrel shifter with decode circuit
US6006244A (en) * 1997-12-19 1999-12-21 Advanced Micro Devices, Inc. Circuit for shifting or rotating operands of multiple size
US6492991B1 (en) * 1998-08-28 2002-12-10 Ati International Srl Method and apparatus for controlling compressed Z information in a video graphics system
US6480205B1 (en) * 1998-07-22 2002-11-12 Nvidia Corporation Method and apparatus for occlusion culling in graphics systems
WO2000008552A1 (en) * 1998-08-06 2000-02-17 Koninklijke Philips Electronics N.V. Data processor and method of processing data
AU5688199A (en) * 1998-08-20 2000-03-14 Raycer, Inc. System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
US6459429B1 (en) * 1999-06-14 2002-10-01 Sun Microsystems, Inc. Segmenting compressed graphics data for parallel decompression and rendering
US6501471B1 (en) * 1999-12-13 2002-12-31 Intel Corporation Volume rendering
US7039241B1 (en) * 2000-08-11 2006-05-02 Ati Technologies, Inc. Method and apparatus for compression and decompression of color data
US6961057B1 (en) * 2000-10-12 2005-11-01 Nvidia Corporation Method and apparatus for managing and accessing depth data in a computer graphics system
US7206804B1 (en) * 2000-11-10 2007-04-17 Sharp Laboratories Of America, Inc. Methods and systems for transmitting digital images
GB0128888D0 (en) * 2001-12-03 2002-01-23 Imagination Tech Ltd Method and apparatus for compressing data and decompressing compressed data
US7110596B2 (en) * 2002-04-25 2006-09-19 Microsoft Corporation System and method facilitating document image compression utilizing a mask
US7202872B2 (en) * 2003-10-29 2007-04-10 Via Technologies, Inc. Apparatus for compressing data in a bit stream or bit pattern

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101068363B (zh) * 2006-06-09 2010-08-25 威盛电子股份有限公司 减少传输图形数据的频宽需求的系统与方法
CN108886367A (zh) * 2016-01-29 2018-11-23 零点科技公司 用于压缩和解压缩数据的方法、设备和系统
CN108886367B (zh) * 2016-01-29 2022-01-11 零点科技公司 用于压缩和解压缩数据的方法、设备和系统

Also Published As

Publication number Publication date
CN1322413C (zh) 2007-06-20
US20050093873A1 (en) 2005-05-05
TWI264183B (en) 2006-10-11
CN1301485C (zh) 2007-02-21
TW200515716A (en) 2005-05-01
TW200515717A (en) 2005-05-01
TWI297569B (en) 2008-06-01
CN1648948A (zh) 2005-08-03
US20050093872A1 (en) 2005-05-05
US7202872B2 (en) 2007-04-10

Similar Documents

Publication Publication Date Title
CN1301485C (zh) 将位样型或比特流中数据压缩的装置
CN1773552A (zh) 计算机绘图之颜色资料的压缩系统及方法
CN100342403C (zh) 使用图案阴影来产生阴影效果的方法与装置
CN1136517C (zh) 图象数据处理方法、图象数据处理装置
US20210097642A1 (en) Graphics processing
US9965886B2 (en) Method of and apparatus for processing graphics
EP0850462B1 (en) Method and system for rendering graphical objects to image chunks and combining image layers into a display image
CN1110022C (zh) 用于纹理映射的方法和装置
CN101201932B (zh) 绘图处理系统及其方法
CN1770205A (zh) 基于纹理的像素打包
CN1707522A (zh) 使用边缘数据位元遮罩的色彩压缩系统与方法
CN111508052A (zh) 三维网格体的渲染方法和装置
EP1306810A1 (en) Triangle identification buffer
CN1893564A (zh) 图像特效设备、图形处理器和记录介质
CN1870055A (zh) 一种高动态范围材质渲染绘制方法
CN1122945C (zh) 图象处理器及图象处理方法
CN1086040C (zh) 产生图象的方法和装置
US8553041B1 (en) System and method for structuring an A-buffer to support multi-sample anti-aliasing
US8654135B1 (en) A-Buffer compression for different compression formats
US20180101980A1 (en) Method and apparatus for processing image data
GB2444628A (en) Sorting graphics data for processing
US20040008205A1 (en) Tagging single-color images for improved compression
CN1661632A (zh) 在绘图系统中执行除以w 运算的装置与方法
CN1103972C (zh) 数据转换装置及图象发生装置
GB2603156A (en) Tile-based graphics processing systems

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